patch #209978, missing svn:eol-style
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,94 +1,94 @@
|
||||
<?php
|
||||
/**
|
||||
* Enter description here...
|
||||
*
|
||||
*/
|
||||
require_once './libraries/List_Database.class.php';
|
||||
|
||||
/**
|
||||
* phpMyAdmin main Controller
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
class PMA
|
||||
{
|
||||
/**
|
||||
* Holds database list
|
||||
*
|
||||
* @var PMA_List_Database
|
||||
*/
|
||||
protected $databases = null;
|
||||
|
||||
/**
|
||||
* DBMS user link
|
||||
*
|
||||
* @var resource
|
||||
*/
|
||||
protected $userlink = null;
|
||||
|
||||
/**
|
||||
* DBMS control link
|
||||
*
|
||||
* @var resource
|
||||
*/
|
||||
protected $controllink = null;
|
||||
|
||||
/**
|
||||
* magic access to protected/inaccessible members/properties
|
||||
*
|
||||
* @see http://php.net/language.oop5.overloading
|
||||
*/
|
||||
public function __get($param)
|
||||
{
|
||||
switch ($param) {
|
||||
case 'databases' :
|
||||
return $this->getDatabaseList();
|
||||
break;
|
||||
case 'userlink' :
|
||||
return $this->userlink;
|
||||
break;
|
||||
case 'controllink' :
|
||||
return $this->controllink;
|
||||
break;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* magic access to protected/inaccessible members/properties
|
||||
*
|
||||
* @see http://php.net/language.oop5.overloading
|
||||
*/
|
||||
public function __set($param, $value)
|
||||
{
|
||||
switch ($param) {
|
||||
case 'userlink' :
|
||||
$this->userlink = $value;
|
||||
break;
|
||||
case 'controllink' :
|
||||
$this->controllink = $value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor to PMA::$databases
|
||||
*
|
||||
* @uses PMA::$databases
|
||||
* @uses PMA::$userlink
|
||||
* @uses PMA::$controllink
|
||||
* @uses PMA_List_Database
|
||||
* @return PMA_List_Databases
|
||||
*/
|
||||
public function getDatabaseList()
|
||||
{
|
||||
if (null === $this->databases) {
|
||||
$this->databases = new PMA_List_Database($this->userlink, $this->controllink);
|
||||
}
|
||||
|
||||
return $this->databases;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* Enter description here...
|
||||
*
|
||||
*/
|
||||
require_once './libraries/List_Database.class.php';
|
||||
|
||||
/**
|
||||
* phpMyAdmin main Controller
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
class PMA
|
||||
{
|
||||
/**
|
||||
* Holds database list
|
||||
*
|
||||
* @var PMA_List_Database
|
||||
*/
|
||||
protected $databases = null;
|
||||
|
||||
/**
|
||||
* DBMS user link
|
||||
*
|
||||
* @var resource
|
||||
*/
|
||||
protected $userlink = null;
|
||||
|
||||
/**
|
||||
* DBMS control link
|
||||
*
|
||||
* @var resource
|
||||
*/
|
||||
protected $controllink = null;
|
||||
|
||||
/**
|
||||
* magic access to protected/inaccessible members/properties
|
||||
*
|
||||
* @see http://php.net/language.oop5.overloading
|
||||
*/
|
||||
public function __get($param)
|
||||
{
|
||||
switch ($param) {
|
||||
case 'databases' :
|
||||
return $this->getDatabaseList();
|
||||
break;
|
||||
case 'userlink' :
|
||||
return $this->userlink;
|
||||
break;
|
||||
case 'controllink' :
|
||||
return $this->controllink;
|
||||
break;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* magic access to protected/inaccessible members/properties
|
||||
*
|
||||
* @see http://php.net/language.oop5.overloading
|
||||
*/
|
||||
public function __set($param, $value)
|
||||
{
|
||||
switch ($param) {
|
||||
case 'userlink' :
|
||||
$this->userlink = $value;
|
||||
break;
|
||||
case 'controllink' :
|
||||
$this->controllink = $value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor to PMA::$databases
|
||||
*
|
||||
* @uses PMA::$databases
|
||||
* @uses PMA::$userlink
|
||||
* @uses PMA::$controllink
|
||||
* @uses PMA_List_Database
|
||||
* @return PMA_List_Databases
|
||||
*/
|
||||
public function getDatabaseList()
|
||||
{
|
||||
if (null === $this->databases) {
|
||||
$this->databases = new PMA_List_Database($this->userlink, $this->controllink);
|
||||
}
|
||||
|
||||
return $this->databases;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@@ -1,139 +1,139 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @version $Id: header.inc.php 10719 2007-10-04 15:03:44Z cybot_tm $
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once './libraries/common.inc.php';
|
||||
|
||||
|
||||
// Cross-framing protection
|
||||
if ( false === $GLOBALS['cfg']['AllowThirdPartyFraming']) {
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
try {
|
||||
// can't access this if on a different domain
|
||||
var topdomain = top.document.domain;
|
||||
// double-check just for sure
|
||||
if (topdomain != self.document.domain) {
|
||||
alert("Redirecting...");
|
||||
top.location.replace(self.document.URL.substring(0, self.document.URL.lastIndexOf("/")+1));
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
alert("Redirecting... (error: " + e);
|
||||
top.location.replace(self.document.URL.substring(0, self.document.URL.lastIndexOf("/")+1));
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
// generate title
|
||||
$title = str_replace(
|
||||
array(
|
||||
'@HTTP_HOST@',
|
||||
'@SERVER@',
|
||||
'@VERBOSE@',
|
||||
'@VSERVER@',
|
||||
'@DATABASE@',
|
||||
'@TABLE@',
|
||||
'@PHPMYADMIN@',
|
||||
),
|
||||
array(
|
||||
PMA_getenv('HTTP_HOST') ? PMA_getenv('HTTP_HOST') : '',
|
||||
isset($GLOBALS['cfg']['Server']['host']) ? $GLOBALS['cfg']['Server']['host'] : '',
|
||||
isset($GLOBALS['cfg']['Server']['verbose']) ? $GLOBALS['cfg']['Server']['verbose'] : '',
|
||||
!empty($GLOBALS['cfg']['Server']['verbose']) ? $GLOBALS['cfg']['Server']['verbose'] : (isset($GLOBALS['cfg']['Server']['host']) ? $GLOBALS['cfg']['Server']['host'] : ''),
|
||||
$GLOBALS['db'],
|
||||
$GLOBALS['table'],
|
||||
'phpMyAdmin ' . PMA_VERSION,
|
||||
),
|
||||
!empty($GLOBALS['table']) ? $GLOBALS['cfg']['TitleTable'] :
|
||||
(!empty($GLOBALS['db']) ? $GLOBALS['cfg']['TitleDatabase'] :
|
||||
(!empty($GLOBALS['cfg']['Server']['host']) ? $GLOBALS['cfg']['TitleServer'] :
|
||||
$GLOBALS['cfg']['TitleDefault']))
|
||||
);
|
||||
// here, the function does not exist with this configuration: $cfg['ServerDefault'] = 0;
|
||||
$is_superuser = function_exists('PMA_isSuperuser') && PMA_isSuperuser();
|
||||
|
||||
if (in_array('functions.js', $GLOBALS['js_include'])) {
|
||||
$GLOBALS['js_messages']['strFormEmpty'] = $GLOBALS['strFormEmpty'];
|
||||
$GLOBALS['js_messages']['strNotNumber'] = $GLOBALS['strNotNumber'];
|
||||
|
||||
if (!$is_superuser && !$GLOBALS['cfg']['AllowUserDropDatabase']) {
|
||||
$GLOBALS['js_messages']['strNoDropDatabases'] = $GLOBALS['strNoDropDatabases'];
|
||||
} else {
|
||||
$GLOBALS['js_messages']['strNoDropDatabases'] = '';
|
||||
}
|
||||
|
||||
if ($GLOBALS['cfg']['Confirm']) {
|
||||
$GLOBALS['js_messages']['strDoYouReally'] = $GLOBALS['strDoYouReally'];
|
||||
$GLOBALS['js_messages']['strDropDatabaseStrongWarning'] = $GLOBALS['strDropDatabaseStrongWarning'];
|
||||
|
||||
// rajk - for blobstreaming
|
||||
$GLOBALS['js_messages']['strBLOBRepositoryDisableStrongWarning'] = $GLOBALS['strBLOBRepositoryDisableStrongWarning'];
|
||||
$GLOBALS['js_messages']['strBLOBRepositoryDisableAreYouSure'] = sprintf($GLOBALS['strBLOBRepositoryDisableAreYouSure'], $GLOBALS['db']);
|
||||
} else {
|
||||
$GLOBALS['js_messages']['strDoYouReally'] = '';
|
||||
$GLOBALS['js_messages']['strDropDatabaseStrongWarning'] = '';
|
||||
|
||||
// rajk - for blobstreaming
|
||||
$GLOBALS['js_messages']['strBLOBRepositoryDisableStrongWarning'] = '';
|
||||
$GLOBALS['js_messages']['strBLOBRepositoryDisableAreYouSure'] = '';
|
||||
}
|
||||
} elseif (in_array('indexes.js', $GLOBALS['js_include'])) {
|
||||
$GLOBALS['js_messages']['strFormEmpty'] = $GLOBALS['strFormEmpty'];
|
||||
$GLOBALS['js_messages']['strNotNumber'] = $GLOBALS['strNotNumber'];
|
||||
}
|
||||
|
||||
if (in_array('server_privileges.js', $GLOBALS['js_include'])) {
|
||||
$GLOBALS['js_messages']['strHostEmpty'] = $GLOBALS['strHostEmpty'];
|
||||
$GLOBALS['js_messages']['strUserEmpty'] = $GLOBALS['strUserEmpty'];
|
||||
$GLOBALS['js_messages']['strPasswordEmpty'] = $GLOBALS['strPasswordEmpty'];
|
||||
$GLOBALS['js_messages']['strPasswordNotSame'] = $GLOBALS['strPasswordNotSame'];
|
||||
}
|
||||
|
||||
$GLOBALS['js_include'][] = 'tooltip.js';
|
||||
|
||||
$GLOBALS['js_events'][] = array(
|
||||
'object' => 'window',
|
||||
'event' => 'load',
|
||||
'function' => 'PMA_TT_init',
|
||||
);
|
||||
|
||||
foreach ($GLOBALS['js_include'] as $js_script_file) {
|
||||
echo '<script src="./js/' . $js_script_file . '" type="text/javascript"></script>' . "\n";
|
||||
}
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
// Updates the title of the frameset if possible (ns4 does not allow this)
|
||||
if (typeof(parent.document) != 'undefined' && typeof(parent.document) != 'unknown'
|
||||
&& typeof(parent.document.title) == 'string') {
|
||||
parent.document.title = '<?php echo PMA_sanitize(PMA_escapeJsString($title)); ?>';
|
||||
}
|
||||
|
||||
var PMA_messages = new Array();
|
||||
<?php
|
||||
foreach ($GLOBALS['js_messages'] as $name => $js_message) {
|
||||
echo "PMA_messages['" . $name . "'] = '" . PMA_escapeJsString($js_message) . "';\n";
|
||||
}
|
||||
|
||||
foreach ($GLOBALS['js_events'] as $js_event) {
|
||||
echo "window.parent.addEvent(" . $js_event['object'] . ", '" . $js_event['event'] . "', "
|
||||
. $js_event['function'] . ");\n";
|
||||
}
|
||||
?>
|
||||
// ]]>
|
||||
</script>
|
||||
<?php
|
||||
// Reloads the navigation frame via JavaScript if required
|
||||
PMA_reloadNavigation();
|
||||
|
||||
?>
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @version $Id: header.inc.php 10719 2007-10-04 15:03:44Z cybot_tm $
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once './libraries/common.inc.php';
|
||||
|
||||
|
||||
// Cross-framing protection
|
||||
if ( false === $GLOBALS['cfg']['AllowThirdPartyFraming']) {
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
try {
|
||||
// can't access this if on a different domain
|
||||
var topdomain = top.document.domain;
|
||||
// double-check just for sure
|
||||
if (topdomain != self.document.domain) {
|
||||
alert("Redirecting...");
|
||||
top.location.replace(self.document.URL.substring(0, self.document.URL.lastIndexOf("/")+1));
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
alert("Redirecting... (error: " + e);
|
||||
top.location.replace(self.document.URL.substring(0, self.document.URL.lastIndexOf("/")+1));
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
// generate title
|
||||
$title = str_replace(
|
||||
array(
|
||||
'@HTTP_HOST@',
|
||||
'@SERVER@',
|
||||
'@VERBOSE@',
|
||||
'@VSERVER@',
|
||||
'@DATABASE@',
|
||||
'@TABLE@',
|
||||
'@PHPMYADMIN@',
|
||||
),
|
||||
array(
|
||||
PMA_getenv('HTTP_HOST') ? PMA_getenv('HTTP_HOST') : '',
|
||||
isset($GLOBALS['cfg']['Server']['host']) ? $GLOBALS['cfg']['Server']['host'] : '',
|
||||
isset($GLOBALS['cfg']['Server']['verbose']) ? $GLOBALS['cfg']['Server']['verbose'] : '',
|
||||
!empty($GLOBALS['cfg']['Server']['verbose']) ? $GLOBALS['cfg']['Server']['verbose'] : (isset($GLOBALS['cfg']['Server']['host']) ? $GLOBALS['cfg']['Server']['host'] : ''),
|
||||
$GLOBALS['db'],
|
||||
$GLOBALS['table'],
|
||||
'phpMyAdmin ' . PMA_VERSION,
|
||||
),
|
||||
!empty($GLOBALS['table']) ? $GLOBALS['cfg']['TitleTable'] :
|
||||
(!empty($GLOBALS['db']) ? $GLOBALS['cfg']['TitleDatabase'] :
|
||||
(!empty($GLOBALS['cfg']['Server']['host']) ? $GLOBALS['cfg']['TitleServer'] :
|
||||
$GLOBALS['cfg']['TitleDefault']))
|
||||
);
|
||||
// here, the function does not exist with this configuration: $cfg['ServerDefault'] = 0;
|
||||
$is_superuser = function_exists('PMA_isSuperuser') && PMA_isSuperuser();
|
||||
|
||||
if (in_array('functions.js', $GLOBALS['js_include'])) {
|
||||
$GLOBALS['js_messages']['strFormEmpty'] = $GLOBALS['strFormEmpty'];
|
||||
$GLOBALS['js_messages']['strNotNumber'] = $GLOBALS['strNotNumber'];
|
||||
|
||||
if (!$is_superuser && !$GLOBALS['cfg']['AllowUserDropDatabase']) {
|
||||
$GLOBALS['js_messages']['strNoDropDatabases'] = $GLOBALS['strNoDropDatabases'];
|
||||
} else {
|
||||
$GLOBALS['js_messages']['strNoDropDatabases'] = '';
|
||||
}
|
||||
|
||||
if ($GLOBALS['cfg']['Confirm']) {
|
||||
$GLOBALS['js_messages']['strDoYouReally'] = $GLOBALS['strDoYouReally'];
|
||||
$GLOBALS['js_messages']['strDropDatabaseStrongWarning'] = $GLOBALS['strDropDatabaseStrongWarning'];
|
||||
|
||||
// rajk - for blobstreaming
|
||||
$GLOBALS['js_messages']['strBLOBRepositoryDisableStrongWarning'] = $GLOBALS['strBLOBRepositoryDisableStrongWarning'];
|
||||
$GLOBALS['js_messages']['strBLOBRepositoryDisableAreYouSure'] = sprintf($GLOBALS['strBLOBRepositoryDisableAreYouSure'], $GLOBALS['db']);
|
||||
} else {
|
||||
$GLOBALS['js_messages']['strDoYouReally'] = '';
|
||||
$GLOBALS['js_messages']['strDropDatabaseStrongWarning'] = '';
|
||||
|
||||
// rajk - for blobstreaming
|
||||
$GLOBALS['js_messages']['strBLOBRepositoryDisableStrongWarning'] = '';
|
||||
$GLOBALS['js_messages']['strBLOBRepositoryDisableAreYouSure'] = '';
|
||||
}
|
||||
} elseif (in_array('indexes.js', $GLOBALS['js_include'])) {
|
||||
$GLOBALS['js_messages']['strFormEmpty'] = $GLOBALS['strFormEmpty'];
|
||||
$GLOBALS['js_messages']['strNotNumber'] = $GLOBALS['strNotNumber'];
|
||||
}
|
||||
|
||||
if (in_array('server_privileges.js', $GLOBALS['js_include'])) {
|
||||
$GLOBALS['js_messages']['strHostEmpty'] = $GLOBALS['strHostEmpty'];
|
||||
$GLOBALS['js_messages']['strUserEmpty'] = $GLOBALS['strUserEmpty'];
|
||||
$GLOBALS['js_messages']['strPasswordEmpty'] = $GLOBALS['strPasswordEmpty'];
|
||||
$GLOBALS['js_messages']['strPasswordNotSame'] = $GLOBALS['strPasswordNotSame'];
|
||||
}
|
||||
|
||||
$GLOBALS['js_include'][] = 'tooltip.js';
|
||||
|
||||
$GLOBALS['js_events'][] = array(
|
||||
'object' => 'window',
|
||||
'event' => 'load',
|
||||
'function' => 'PMA_TT_init',
|
||||
);
|
||||
|
||||
foreach ($GLOBALS['js_include'] as $js_script_file) {
|
||||
echo '<script src="./js/' . $js_script_file . '" type="text/javascript"></script>' . "\n";
|
||||
}
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
// Updates the title of the frameset if possible (ns4 does not allow this)
|
||||
if (typeof(parent.document) != 'undefined' && typeof(parent.document) != 'unknown'
|
||||
&& typeof(parent.document.title) == 'string') {
|
||||
parent.document.title = '<?php echo PMA_sanitize(PMA_escapeJsString($title)); ?>';
|
||||
}
|
||||
|
||||
var PMA_messages = new Array();
|
||||
<?php
|
||||
foreach ($GLOBALS['js_messages'] as $name => $js_message) {
|
||||
echo "PMA_messages['" . $name . "'] = '" . PMA_escapeJsString($js_message) . "';\n";
|
||||
}
|
||||
|
||||
foreach ($GLOBALS['js_events'] as $js_event) {
|
||||
echo "window.parent.addEvent(" . $js_event['object'] . ", '" . $js_event['event'] . "', "
|
||||
. $js_event['function'] . ");\n";
|
||||
}
|
||||
?>
|
||||
// ]]>
|
||||
</script>
|
||||
<?php
|
||||
// Reloads the navigation frame via JavaScript if required
|
||||
PMA_reloadNavigation();
|
||||
|
||||
?>
|
||||
|
@@ -1,287 +1,287 @@
|
||||
<?php
|
||||
$type='TrueTypeUnicode';
|
||||
$name='DejaVuSans-Bold';
|
||||
$desc=array('Ascent'=>928,'Descent'=>-236,'CapHeight'=>928,'Flags'=>32,'FontBBox'=>'[-1069 -388 1975 1123]','ItalicAngle'=>0,'StemV'=>120,'MissingWidth'=>600);
|
||||
$up=-42;
|
||||
$ut=44;
|
||||
$cw=array(
|
||||
0=>600, 32=>348, 33=>456, 34=>521, 35=>838, 36=>696, 37=>1002, 38=>872, 39=>306, 40=>457, 41=>457, 42=>523, 43=>838, 44=>380, 45=>415, 46=>380,
|
||||
47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>400, 59=>400, 60=>838, 61=>838, 62=>838,
|
||||
63=>580, 64=>1000, 65=>774, 66=>762, 67=>734, 68=>830, 69=>683, 70=>683, 71=>821, 72=>837, 73=>372, 74=>372, 75=>775, 76=>637, 77=>995, 78=>837,
|
||||
79=>850, 80=>733, 81=>850, 82=>770, 83=>720, 84=>682, 85=>812, 86=>774, 87=>1103, 88=>771, 89=>724, 90=>725, 91=>457, 92=>365, 93=>457, 94=>838,
|
||||
95=>500, 96=>500, 97=>675, 98=>716, 99=>593, 100=>716, 101=>678, 102=>435, 103=>716, 104=>712, 105=>343, 106=>343, 107=>665, 108=>343, 109=>1042, 110=>712,
|
||||
111=>687, 112=>716, 113=>716, 114=>493, 115=>595, 116=>478, 117=>712, 118=>652, 119=>924, 120=>645, 121=>652, 122=>582, 123=>712, 124=>365, 125=>712, 126=>838,
|
||||
8364=>696, 1027=>637, 8218=>380, 402=>435, 8222=>657, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1440, 352=>720, 8249=>412, 338=>1167, 1036=>817, 381=>725, 1039=>837,
|
||||
8216=>380, 8217=>380, 8220=>657, 8221=>657, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>595, 8250=>412, 339=>1094, 1116=>679, 382=>582, 376=>724, 160=>348,
|
||||
161=>456, 162=>696, 163=>696, 164=>636, 165=>696, 166=>365, 167=>500, 168=>500, 169=>1000, 170=>564, 171=>646, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500,
|
||||
177=>838, 178=>438, 179=>438, 180=>500, 181=>736, 182=>636, 183=>380, 184=>500, 185=>438, 186=>564, 187=>646, 188=>1035, 189=>1035, 190=>1035, 191=>580, 192=>774,
|
||||
193=>774, 194=>774, 195=>774, 196=>774, 197=>774, 198=>1085, 199=>734, 200=>683, 201=>683, 202=>683, 203=>683, 204=>372, 205=>372, 206=>372, 207=>372, 208=>838,
|
||||
209=>837, 210=>850, 211=>850, 212=>850, 213=>850, 214=>850, 215=>838, 216=>850, 217=>812, 218=>812, 219=>812, 220=>812, 221=>724, 222=>738, 223=>719, 224=>675,
|
||||
225=>675, 226=>675, 227=>675, 228=>675, 229=>675, 230=>1048, 231=>593, 232=>678, 233=>678, 234=>678, 235=>678, 236=>343, 237=>343, 238=>343, 239=>343, 240=>687,
|
||||
241=>712, 242=>687, 243=>687, 244=>687, 245=>687, 246=>687, 247=>838, 248=>687, 249=>712, 250=>712, 251=>712, 252=>712, 253=>652, 254=>716, 255=>652, 256=>774,
|
||||
257=>675, 258=>774, 259=>675, 260=>774, 261=>675, 262=>734, 263=>593, 264=>734, 265=>593, 266=>734, 267=>593, 268=>734, 269=>593, 270=>830, 271=>716, 272=>838,
|
||||
273=>716, 274=>683, 275=>678, 276=>683, 277=>678, 278=>683, 279=>678, 280=>683, 281=>678, 282=>683, 283=>678, 284=>821, 285=>716, 286=>821, 287=>716, 288=>821,
|
||||
289=>716, 290=>821, 291=>716, 292=>837, 293=>712, 294=>974, 295=>790, 296=>372, 297=>343, 298=>372, 299=>343, 300=>372, 301=>343, 302=>372, 303=>343, 304=>372,
|
||||
305=>343, 306=>744, 307=>686, 308=>372, 309=>343, 310=>775, 311=>665, 312=>665, 313=>637, 314=>343, 315=>637, 316=>343, 317=>637, 318=>479, 319=>637, 320=>557,
|
||||
321=>642, 322=>371, 323=>837, 324=>712, 325=>837, 326=>712, 327=>837, 328=>712, 329=>983, 330=>837, 331=>712, 332=>850, 333=>687, 334=>850, 335=>687, 336=>850,
|
||||
337=>687, 340=>770, 341=>493, 342=>770, 343=>493, 344=>770, 345=>493, 346=>720, 347=>595, 348=>720, 349=>595, 350=>720, 351=>595, 354=>682, 355=>478, 356=>682,
|
||||
357=>478, 358=>682, 359=>478, 360=>812, 361=>712, 362=>812, 363=>712, 364=>812, 365=>712, 366=>812, 367=>712, 368=>812, 369=>712, 370=>812, 371=>712, 372=>1103,
|
||||
373=>924, 374=>724, 375=>652, 377=>725, 378=>582, 379=>725, 380=>582, 383=>435, 384=>716, 385=>811, 386=>762, 387=>716, 388=>762, 389=>716, 390=>734, 391=>734,
|
||||
392=>593, 393=>838, 394=>879, 395=>757, 396=>716, 397=>688, 398=>683, 399=>849, 400=>696, 401=>683, 403=>821, 404=>793, 405=>1045, 406=>436, 407=>389, 408=>775,
|
||||
409=>665, 410=>360, 411=>592, 412=>1042, 413=>837, 414=>712, 415=>850, 416=>874, 417=>687, 418=>1114, 419=>962, 420=>782, 421=>716, 422=>770, 423=>720, 424=>595,
|
||||
425=>683, 426=>552, 427=>478, 428=>707, 429=>478, 430=>682, 431=>835, 432=>712, 433=>769, 434=>813, 435=>797, 436=>778, 437=>725, 438=>582, 439=>772, 440=>772,
|
||||
441=>641, 442=>582, 443=>696, 444=>772, 445=>641, 446=>573, 447=>716, 448=>372, 449=>659, 450=>544, 451=>372, 452=>1555, 453=>1412, 454=>1298, 455=>1009, 456=>980,
|
||||
457=>686, 458=>1209, 459=>1180, 460=>1055, 461=>774, 462=>675, 463=>372, 464=>343, 465=>850, 466=>687, 467=>812, 468=>712, 469=>812, 470=>712, 471=>812, 472=>712,
|
||||
473=>812, 474=>712, 475=>812, 476=>712, 477=>678, 478=>774, 479=>675, 480=>774, 481=>675, 482=>1085, 483=>1048, 484=>821, 485=>716, 486=>821, 487=>716, 488=>775,
|
||||
489=>665, 490=>850, 491=>687, 492=>850, 493=>687, 494=>772, 495=>582, 496=>343, 497=>1555, 498=>1412, 499=>1298, 500=>821, 501=>716, 502=>1289, 503=>787, 504=>837,
|
||||
505=>712, 506=>774, 507=>675, 508=>1085, 509=>1048, 510=>850, 511=>687, 512=>774, 513=>675, 514=>774, 515=>675, 516=>683, 517=>678, 518=>683, 519=>678, 520=>372,
|
||||
521=>343, 522=>372, 523=>343, 524=>850, 525=>687, 526=>850, 527=>687, 528=>770, 529=>493, 530=>770, 531=>493, 532=>812, 533=>712, 534=>812, 535=>712, 536=>720,
|
||||
537=>595, 538=>682, 539=>478, 540=>690, 541=>607, 542=>837, 543=>712, 544=>837, 545=>865, 546=>809, 547=>659, 548=>725, 549=>582, 550=>774, 551=>675, 552=>683,
|
||||
553=>678, 554=>850, 555=>687, 556=>850, 557=>687, 558=>850, 559=>687, 560=>850, 561=>687, 562=>724, 563=>652, 564=>492, 565=>867, 566=>512, 567=>343, 568=>1088,
|
||||
569=>1088, 570=>774, 571=>734, 572=>593, 573=>637, 574=>682, 575=>595, 576=>582, 577=>782, 578=>614, 579=>762, 580=>812, 581=>774, 582=>683, 583=>678, 584=>372,
|
||||
585=>343, 586=>860, 587=>791, 588=>770, 589=>493, 590=>724, 591=>652, 592=>675, 593=>716, 594=>716, 595=>716, 596=>593, 597=>593, 598=>717, 599=>792, 600=>678,
|
||||
601=>678, 602=>876, 603=>557, 604=>545, 605=>815, 606=>731, 607=>343, 608=>792, 609=>716, 610=>627, 611=>735, 612=>635, 613=>712, 614=>712, 615=>712, 616=>545,
|
||||
617=>440, 618=>545, 619=>559, 620=>693, 621=>343, 622=>841, 623=>1042, 624=>1042, 625=>1042, 626=>712, 627=>793, 628=>642, 629=>687, 630=>909, 631=>681, 632=>796,
|
||||
633=>538, 634=>538, 635=>650, 636=>493, 637=>493, 638=>596, 639=>596, 640=>642, 641=>642, 642=>595, 643=>415, 644=>435, 645=>605, 646=>552, 647=>478, 648=>478,
|
||||
649=>920, 650=>769, 651=>670, 652=>652, 653=>924, 654=>652, 655=>724, 656=>694, 657=>684, 658=>641, 659=>641, 660=>573, 661=>573, 662=>573, 663=>573, 664=>850,
|
||||
665=>633, 666=>731, 667=>685, 668=>691, 669=>343, 670=>732, 671=>539, 672=>792, 673=>573, 674=>573, 675=>1156, 676=>1214, 677=>1155, 678=>974, 679=>769, 680=>929,
|
||||
681=>1026, 682=>792, 683=>780, 684=>591, 685=>415, 686=>677, 687=>789, 688=>456, 689=>456, 690=>219, 691=>315, 692=>315, 693=>315, 694=>411, 695=>591, 696=>417,
|
||||
697=>302, 698=>521, 699=>380, 700=>380, 701=>380, 702=>366, 703=>366, 704=>326, 705=>326, 706=>500, 707=>500, 708=>500, 709=>500, 711=>500, 712=>306, 713=>500,
|
||||
714=>500, 715=>500, 716=>306, 717=>500, 718=>500, 719=>500, 720=>337, 721=>337, 722=>366, 723=>366, 724=>500, 725=>500, 726=>500, 727=>500, 728=>500, 729=>500,
|
||||
730=>500, 731=>500, 733=>500, 734=>351, 735=>500, 736=>412, 737=>219, 738=>381, 739=>413, 740=>326, 741=>500, 742=>500, 743=>500, 744=>500, 745=>500, 748=>500,
|
||||
749=>500, 750=>500, 755=>500, 759=>500, 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0,
|
||||
780=>0, 781=>0, 782=>0, 783=>0, 784=>0, 785=>0, 786=>0, 787=>0, 788=>0, 789=>0, 790=>0, 791=>0, 792=>0, 793=>0, 794=>0, 795=>0,
|
||||
796=>0, 797=>0, 798=>0, 799=>0, 800=>0, 801=>0, 802=>0, 803=>0, 804=>0, 805=>0, 806=>0, 807=>0, 808=>0, 809=>0, 810=>0, 811=>0,
|
||||
812=>0, 813=>0, 814=>0, 815=>0, 816=>0, 817=>0, 818=>0, 819=>0, 820=>0, 821=>0, 822=>0, 823=>0, 824=>0, 825=>0, 826=>0, 827=>0,
|
||||
828=>0, 829=>0, 830=>0, 831=>0, 832=>0, 833=>0, 834=>0, 835=>0, 836=>0, 837=>0, 838=>0, 839=>0, 840=>0, 841=>0, 842=>0, 843=>0,
|
||||
844=>0, 845=>0, 846=>0, 847=>0, 849=>0, 850=>0, 851=>0, 855=>0, 856=>0, 860=>0, 861=>0, 862=>0, 863=>0, 864=>0, 865=>0, 866=>0,
|
||||
884=>302, 885=>302, 890=>500, 891=>593, 892=>550, 893=>549, 894=>337, 900=>441, 901=>500, 902=>797, 903=>380, 904=>846, 905=>1009, 906=>563, 908=>891, 910=>980,
|
||||
911=>894, 912=>390, 913=>774, 914=>762, 915=>637, 916=>774, 917=>683, 918=>725, 919=>837, 920=>850, 921=>372, 922=>775, 923=>774, 924=>995, 925=>837, 926=>632,
|
||||
927=>850, 928=>837, 929=>733, 931=>683, 932=>682, 933=>724, 934=>850, 935=>771, 936=>850, 937=>850, 938=>372, 939=>724, 940=>687, 941=>557, 942=>712, 943=>390,
|
||||
944=>675, 945=>687, 946=>716, 947=>681, 948=>687, 949=>557, 950=>591, 951=>712, 952=>687, 953=>390, 954=>710, 955=>633, 956=>736, 957=>681, 958=>591, 959=>687,
|
||||
960=>791, 961=>716, 962=>593, 963=>779, 964=>638, 965=>675, 966=>782, 967=>645, 968=>794, 969=>869, 970=>390, 971=>675, 972=>687, 973=>675, 974=>869, 976=>651,
|
||||
977=>661, 978=>746, 979=>981, 980=>746, 981=>796, 982=>869, 983=>744, 984=>850, 985=>687, 986=>734, 987=>593, 988=>683, 989=>494, 990=>702, 991=>660, 992=>919,
|
||||
993=>627, 994=>1093, 995=>837, 996=>832, 997=>716, 998=>928, 999=>744, 1000=>733, 1001=>650, 1002=>789, 1003=>671, 1004=>752, 1005=>716, 1006=>682, 1007=>590, 1008=>744,
|
||||
1009=>716, 1010=>593, 1011=>343, 1012=>850, 1013=>645, 1014=>644, 1015=>738, 1016=>716, 1017=>734, 1018=>995, 1019=>732, 1020=>716, 1021=>698, 1022=>734, 1023=>698, 1024=>683,
|
||||
1025=>683, 1026=>878, 1028=>734, 1029=>720, 1030=>372, 1031=>372, 1032=>372, 1033=>1154, 1034=>1130, 1035=>878, 1037=>837, 1038=>771, 1040=>774, 1041=>762, 1042=>762, 1043=>637,
|
||||
1044=>891, 1045=>683, 1046=>1224, 1047=>710, 1048=>837, 1049=>837, 1050=>817, 1051=>831, 1052=>995, 1053=>837, 1054=>850, 1055=>837, 1056=>733, 1057=>734, 1058=>682, 1059=>771,
|
||||
1060=>992, 1061=>771, 1062=>928, 1063=>808, 1064=>1235, 1065=>1326, 1066=>939, 1067=>1036, 1068=>762, 1069=>734, 1070=>1174, 1071=>770, 1072=>675, 1073=>698, 1074=>633, 1075=>522,
|
||||
1076=>808, 1077=>678, 1078=>995, 1079=>581, 1080=>701, 1081=>701, 1082=>679, 1083=>732, 1084=>817, 1085=>691, 1086=>687, 1087=>691, 1088=>716, 1089=>593, 1090=>580, 1091=>652,
|
||||
1092=>992, 1093=>645, 1094=>741, 1095=>687, 1096=>1062, 1097=>1105, 1098=>751, 1099=>904, 1100=>632, 1101=>593, 1102=>972, 1103=>642, 1104=>678, 1105=>678, 1106=>714, 1107=>522,
|
||||
1108=>593, 1109=>595, 1110=>343, 1111=>343, 1112=>343, 1113=>991, 1114=>956, 1115=>734, 1117=>701, 1118=>652, 1119=>691, 1120=>1093, 1121=>869, 1122=>840, 1123=>736, 1124=>1012,
|
||||
1125=>839, 1126=>992, 1127=>832, 1128=>1358, 1129=>1121, 1130=>850, 1131=>687, 1132=>1236, 1133=>1007, 1134=>696, 1135=>557, 1136=>1075, 1137=>1061, 1138=>850, 1139=>667, 1140=>850,
|
||||
1141=>695, 1142=>850, 1143=>695, 1144=>1148, 1145=>1043, 1146=>1074, 1147=>863, 1148=>1405, 1149=>1173, 1150=>1093, 1151=>869, 1152=>734, 1153=>593, 1154=>652, 1155=>0, 1156=>0,
|
||||
1157=>0, 1158=>0, 1160=>418, 1161=>418, 1162=>957, 1163=>807, 1164=>762, 1165=>611, 1166=>733, 1167=>716, 1168=>637, 1169=>522, 1170=>666, 1171=>543, 1172=>808, 1173=>669,
|
||||
1174=>1224, 1175=>995, 1176=>710, 1177=>581, 1178=>775, 1179=>679, 1180=>817, 1181=>679, 1182=>817, 1183=>679, 1184=>1015, 1185=>826, 1186=>956, 1187=>808, 1188=>1103, 1189=>874,
|
||||
1190=>1273, 1191=>1017, 1192=>875, 1193=>710, 1194=>734, 1195=>593, 1196=>682, 1197=>580, 1198=>724, 1199=>652, 1200=>724, 1201=>652, 1202=>771, 1203=>645, 1204=>1112, 1205=>1000,
|
||||
1206=>808, 1207=>687, 1208=>808, 1209=>687, 1210=>808, 1211=>712, 1212=>1026, 1213=>810, 1214=>1026, 1215=>810, 1216=>372, 1217=>1224, 1218=>995, 1219=>775, 1220=>630, 1221=>951,
|
||||
1222=>805, 1223=>837, 1224=>691, 1225=>957, 1226=>807, 1227=>808, 1228=>687, 1229=>1115, 1230=>933, 1231=>343, 1232=>774, 1233=>675, 1234=>774, 1235=>675, 1236=>1085, 1237=>1048,
|
||||
1238=>683, 1239=>678, 1240=>849, 1241=>678, 1242=>849, 1243=>678, 1244=>1224, 1245=>995, 1246=>710, 1247=>581, 1248=>772, 1249=>641, 1250=>837, 1251=>701, 1252=>837, 1253=>701,
|
||||
1254=>850, 1255=>687, 1256=>850, 1257=>687, 1258=>850, 1259=>687, 1260=>734, 1261=>593, 1262=>771, 1263=>652, 1264=>771, 1265=>652, 1266=>771, 1267=>652, 1268=>808, 1269=>687,
|
||||
1270=>637, 1271=>522, 1272=>1036, 1273=>904, 1274=>666, 1275=>543, 1276=>771, 1277=>645, 1278=>771, 1279=>645, 1280=>762, 1281=>608, 1282=>1159, 1283=>893, 1284=>1119, 1285=>920,
|
||||
1286=>828, 1287=>693, 1288=>1242, 1289=>1017, 1290=>1248, 1291=>1013, 1292=>839, 1293=>638, 1294=>938, 1295=>803, 1296=>696, 1297=>557, 1298=>831, 1299=>732, 1329=>984, 1330=>812,
|
||||
1331=>984, 1332=>984, 1333=>812, 1334=>777, 1335=>812, 1336=>812, 1337=>975, 1338=>984, 1339=>812, 1340=>710, 1341=>1078, 1342=>1136, 1343=>812, 1344=>710, 1345=>757, 1346=>984,
|
||||
1347=>876, 1348=>984, 1349=>793, 1350=>984, 1351=>812, 1352=>812, 1353=>812, 1354=>958, 1355=>777, 1356=>984, 1357=>812, 1358=>984, 1359=>720, 1360=>812, 1361=>793, 1362=>895,
|
||||
1363=>850, 1364=>936, 1365=>850, 1366=>720, 1369=>366, 1370=>380, 1371=>550, 1372=>550, 1373=>380, 1374=>546, 1375=>521, 1377=>1042, 1378=>712, 1379=>866, 1380=>868, 1381=>712,
|
||||
1382=>817, 1383=>653, 1384=>712, 1385=>811, 1386=>817, 1387=>712, 1388=>498, 1389=>1018, 1390=>716, 1391=>712, 1392=>712, 1393=>716, 1394=>819, 1395=>712, 1396=>751, 1397=>343,
|
||||
1398=>882, 1399=>559, 1400=>712, 1401=>559, 1402=>1042, 1403=>559, 1404=>863, 1405=>712, 1406=>813, 1407=>1042, 1408=>712, 1409=>716, 1410=>571, 1411=>1042, 1412=>778, 1413=>687,
|
||||
1414=>720, 1415=>862, 1417=>400, 1418=>487, 1456=>0, 1457=>0, 1458=>0, 1459=>0, 1460=>0, 1461=>0, 1462=>0, 1463=>0, 1464=>0, 1465=>0, 1467=>0, 1468=>0,
|
||||
1469=>0, 1471=>0, 1472=>372, 1473=>0, 1474=>0, 1475=>372, 1478=>532, 1479=>0, 1488=>751, 1489=>731, 1490=>537, 1491=>684, 1492=>778, 1493=>372, 1494=>521, 1495=>778,
|
||||
1496=>770, 1497=>372, 1498=>778, 1499=>750, 1500=>718, 1501=>778, 1502=>856, 1503=>372, 1504=>532, 1505=>855, 1506=>720, 1507=>802, 1508=>777, 1509=>628, 1510=>751, 1511=>803,
|
||||
1512=>778, 1513=>963, 1514=>822, 1520=>692, 1521=>692, 1522=>692, 1548=>380, 1557=>0, 1563=>400, 1567=>580, 1569=>511, 1570=>343, 1571=>343, 1572=>622, 1573=>343, 1574=>917,
|
||||
1575=>343, 1576=>1005, 1577=>590, 1578=>1005, 1579=>1005, 1580=>721, 1581=>721, 1582=>721, 1583=>513, 1584=>513, 1585=>576, 1586=>576, 1587=>1380, 1588=>1380, 1589=>1345, 1590=>1345,
|
||||
1591=>1039, 1592=>1039, 1593=>683, 1594=>683, 1600=>342, 1601=>1162, 1602=>894, 1603=>917, 1604=>868, 1605=>733, 1606=>854, 1607=>590, 1608=>622, 1609=>917, 1610=>917, 1611=>0,
|
||||
1612=>0, 1613=>0, 1614=>0, 1615=>0, 1616=>0, 1617=>0, 1618=>0, 1619=>0, 1620=>0, 1621=>0, 1626=>500, 1632=>610, 1633=>610, 1634=>610, 1635=>610, 1636=>610,
|
||||
1637=>610, 1638=>610, 1639=>610, 1640=>610, 1641=>610, 1642=>610, 1643=>374, 1644=>380, 1645=>545, 1646=>1005, 1647=>894, 1652=>292, 1657=>1005, 1658=>1005, 1659=>1005, 1660=>1005,
|
||||
1661=>1005, 1662=>1005, 1663=>1005, 1664=>1005, 1665=>721, 1666=>721, 1667=>721, 1668=>721, 1669=>721, 1670=>721, 1671=>721, 1681=>576, 1682=>576, 1685=>681, 1688=>576, 1697=>1162,
|
||||
1700=>1162, 1702=>1162, 1705=>1024, 1711=>1024, 1717=>868, 1722=>854, 1727=>721, 1734=>622, 1740=>917, 1742=>917, 1749=>590, 1776=>610, 1777=>610, 1778=>610, 1779=>610, 1780=>610,
|
||||
1781=>610, 1782=>610, 1783=>610, 1784=>610, 1785=>610, 3647=>743, 3713=>790, 3714=>748, 3716=>749, 3719=>569, 3720=>742, 3722=>744, 3725=>761, 3732=>706, 3733=>704, 3734=>747,
|
||||
3735=>819, 3737=>730, 3738=>727, 3739=>727, 3740=>922, 3741=>827, 3742=>866, 3743=>866, 3745=>836, 3746=>761, 3747=>770, 3749=>769, 3751=>713, 3754=>827, 3755=>1031, 3757=>724,
|
||||
3758=>784, 3759=>934, 3760=>688, 3761=>0, 3762=>610, 3763=>610, 3764=>0, 3765=>0, 3766=>0, 3767=>0, 3768=>0, 3769=>0, 3771=>0, 3772=>0, 3773=>670, 3776=>516,
|
||||
3777=>860, 3778=>516, 3779=>650, 3780=>632, 3782=>759, 3784=>0, 3785=>0, 3786=>0, 3787=>0, 3788=>0, 3789=>0, 3804=>1363, 3805=>1363, 5121=>774, 5122=>774, 5123=>774,
|
||||
5124=>774, 5125=>905, 5126=>905, 5127=>905, 5129=>905, 5130=>905, 5131=>905, 5132=>1018, 5133=>1009, 5134=>1018, 5135=>1009, 5136=>1018, 5137=>1009, 5138=>1149, 5139=>1140, 5140=>1149,
|
||||
5141=>1140, 5142=>905, 5143=>1149, 5144=>1142, 5145=>1149, 5146=>1142, 5147=>905, 5149=>310, 5150=>529, 5151=>425, 5152=>425, 5153=>395, 5154=>395, 5155=>395, 5156=>395, 5157=>564,
|
||||
5158=>470, 5159=>310, 5160=>395, 5161=>395, 5162=>395, 5163=>1213, 5164=>986, 5165=>1216, 5166=>1297, 5167=>774, 5168=>774, 5169=>774, 5170=>774, 5171=>886, 5172=>886, 5173=>886,
|
||||
5175=>886, 5176=>886, 5177=>886, 5178=>1018, 5179=>1009, 5180=>1018, 5181=>1009, 5182=>1018, 5183=>1009, 5184=>1149, 5185=>1140, 5186=>1149, 5187=>1140, 5188=>1149, 5189=>1142, 5190=>1149,
|
||||
5191=>1142, 5192=>886, 5193=>576, 5194=>229, 5196=>812, 5197=>812, 5198=>812, 5199=>812, 5200=>815, 5201=>815, 5202=>815, 5204=>815, 5205=>815, 5206=>815, 5207=>1056, 5208=>1048,
|
||||
5209=>1056, 5210=>1048, 5211=>1056, 5212=>1048, 5213=>1060, 5214=>1054, 5215=>1060, 5216=>1054, 5217=>1060, 5218=>1052, 5219=>1060, 5220=>1052, 5221=>1060, 5222=>483, 5223=>1005, 5224=>1005,
|
||||
5225=>1023, 5226=>1017, 5227=>743, 5228=>743, 5229=>743, 5230=>743, 5231=>743, 5232=>755, 5233=>743, 5234=>743, 5235=>743, 5236=>1029, 5237=>975, 5238=>980, 5239=>975, 5240=>980,
|
||||
5241=>975, 5242=>1029, 5243=>975, 5244=>1029, 5245=>975, 5246=>980, 5247=>975, 5248=>980, 5249=>975, 5250=>980, 5251=>501, 5252=>501, 5253=>938, 5254=>938, 5255=>938, 5256=>938,
|
||||
5257=>743, 5258=>743, 5259=>743, 5260=>743, 5261=>743, 5262=>755, 5263=>743, 5264=>743, 5265=>743, 5266=>1029, 5267=>975, 5268=>1029, 5269=>975, 5270=>1029, 5271=>975, 5272=>1029,
|
||||
5273=>975, 5274=>1029, 5275=>975, 5276=>1029, 5277=>975, 5278=>1029, 5279=>975, 5280=>1029, 5281=>501, 5282=>501, 5283=>626, 5284=>626, 5285=>626, 5286=>626, 5287=>626, 5288=>667,
|
||||
5289=>626, 5290=>626, 5291=>626, 5292=>881, 5293=>854, 5294=>863, 5295=>874, 5296=>863, 5297=>874, 5298=>881, 5299=>874, 5300=>881, 5301=>874, 5302=>863, 5303=>874, 5304=>863,
|
||||
5305=>874, 5306=>863, 5307=>436, 5308=>548, 5309=>436, 5312=>988, 5313=>988, 5314=>988, 5315=>988, 5316=>931, 5317=>931, 5318=>931, 5319=>931, 5320=>931, 5321=>1238, 5322=>1247,
|
||||
5323=>1200, 5324=>1228, 5325=>1200, 5326=>1228, 5327=>931, 5328=>660, 5329=>497, 5330=>660, 5331=>988, 5332=>988, 5333=>988, 5334=>988, 5335=>931, 5336=>931, 5337=>931, 5338=>931,
|
||||
5339=>931, 5340=>1231, 5341=>1247, 5342=>1283, 5343=>1228, 5344=>1283, 5345=>1228, 5346=>1228, 5347=>1214, 5348=>1228, 5349=>1214, 5350=>1283, 5351=>1228, 5352=>1283, 5353=>1228, 5354=>660,
|
||||
5356=>886, 5357=>730, 5358=>730, 5359=>730, 5360=>730, 5361=>730, 5362=>755, 5363=>730, 5364=>730, 5365=>730, 5366=>998, 5367=>958, 5368=>967, 5369=>989, 5370=>967, 5371=>989,
|
||||
5372=>998, 5373=>958, 5374=>998, 5375=>958, 5376=>967, 5377=>989, 5378=>967, 5379=>989, 5380=>967, 5381=>493, 5382=>460, 5383=>493, 5392=>923, 5393=>923, 5394=>923, 5395=>1136,
|
||||
5396=>1136, 5397=>1136, 5398=>1136, 5399=>1209, 5400=>1202, 5401=>1209, 5402=>1202, 5403=>1209, 5404=>1202, 5405=>1431, 5406=>1420, 5407=>1431, 5408=>1420, 5409=>1431, 5410=>1420, 5411=>1431,
|
||||
5412=>1420, 5413=>746, 5414=>776, 5415=>776, 5416=>776, 5417=>776, 5418=>776, 5419=>776, 5420=>776, 5421=>776, 5422=>776, 5423=>1003, 5424=>1003, 5425=>1013, 5426=>996, 5427=>1013,
|
||||
5428=>996, 5429=>1003, 5430=>1003, 5431=>1003, 5432=>1003, 5433=>1013, 5434=>996, 5435=>1013, 5436=>996, 5437=>1013, 5438=>495, 5440=>395, 5441=>510, 5442=>1033, 5443=>1033, 5444=>976,
|
||||
5445=>976, 5446=>976, 5447=>976, 5448=>733, 5449=>733, 5450=>733, 5451=>733, 5452=>733, 5453=>733, 5454=>1003, 5455=>959, 5456=>495, 5458=>886, 5459=>774, 5460=>774, 5461=>774,
|
||||
5462=>774, 5463=>928, 5464=>928, 5465=>928, 5466=>928, 5467=>1172, 5468=>1142, 5469=>602, 5470=>812, 5471=>812, 5472=>812, 5473=>812, 5474=>812, 5475=>812, 5476=>815, 5477=>815,
|
||||
5478=>815, 5479=>815, 5480=>1060, 5481=>1052, 5482=>548, 5492=>977, 5493=>977, 5494=>977, 5495=>977, 5496=>977, 5497=>977, 5498=>977, 5499=>618, 5500=>837, 5501=>510, 5502=>1238,
|
||||
5503=>1238, 5504=>1238, 5505=>1238, 5506=>1238, 5507=>1238, 5508=>1238, 5509=>989, 5514=>977, 5515=>977, 5516=>977, 5517=>977, 5518=>1591, 5519=>1591, 5520=>1591, 5521=>1295, 5522=>1295,
|
||||
5523=>1591, 5524=>1591, 5525=>848, 5526=>1273, 5536=>988, 5537=>988, 5538=>931, 5539=>931, 5540=>931, 5541=>931, 5542=>660, 5543=>776, 5544=>776, 5545=>776, 5546=>776, 5547=>776,
|
||||
5548=>776, 5549=>776, 5550=>495, 5551=>743, 5598=>830, 5601=>830, 5702=>496, 5703=>496, 5742=>413, 5743=>1238, 5744=>1591, 5745=>2016, 5746=>2016, 5747=>1720, 5748=>1678, 5749=>2016,
|
||||
5750=>2016, 7424=>652, 7425=>833, 7426=>1048, 7427=>608, 7428=>593, 7429=>676, 7430=>676, 7431=>559, 7432=>557, 7433=>343, 7434=>494, 7435=>665, 7436=>539, 7437=>817, 7438=>701,
|
||||
7439=>687, 7440=>593, 7441=>660, 7442=>660, 7443=>660, 7444=>1094, 7446=>687, 7447=>687, 7448=>556, 7449=>642, 7450=>642, 7451=>580, 7452=>634, 7453=>737, 7454=>948, 7455=>695,
|
||||
7456=>652, 7457=>924, 7458=>582, 7459=>646, 7462=>539, 7463=>652, 7464=>691, 7465=>556, 7466=>781, 7467=>732, 7468=>487, 7469=>683, 7470=>480, 7472=>523, 7473=>430, 7474=>430,
|
||||
7475=>517, 7476=>527, 7477=>234, 7478=>234, 7479=>488, 7480=>401, 7481=>626, 7482=>527, 7483=>527, 7484=>535, 7485=>509, 7486=>461, 7487=>485, 7488=>430, 7489=>511, 7490=>695,
|
||||
7491=>458, 7492=>458, 7493=>479, 7494=>712, 7495=>479, 7496=>479, 7497=>479, 7498=>479, 7499=>386, 7500=>386, 7501=>479, 7502=>219, 7503=>487, 7504=>664, 7505=>456, 7506=>488,
|
||||
7507=>414, 7508=>488, 7509=>488, 7510=>479, 7511=>388, 7512=>456, 7513=>462, 7514=>664, 7515=>501, 7517=>451, 7518=>429, 7519=>433, 7520=>493, 7521=>406, 7522=>219, 7523=>315,
|
||||
7524=>456, 7525=>501, 7526=>451, 7527=>429, 7528=>433, 7529=>493, 7530=>406, 7543=>716, 7544=>527, 7547=>545, 7557=>514, 7579=>479, 7580=>414, 7581=>414, 7582=>488, 7583=>386,
|
||||
7584=>377, 7585=>348, 7586=>479, 7587=>456, 7588=>347, 7589=>281, 7590=>347, 7591=>347, 7592=>431, 7593=>326, 7594=>330, 7595=>370, 7596=>664, 7597=>664, 7598=>562, 7599=>562,
|
||||
7600=>448, 7601=>488, 7602=>542, 7603=>422, 7604=>396, 7605=>388, 7606=>583, 7607=>494, 7608=>399, 7609=>451, 7610=>501, 7611=>417, 7612=>523, 7613=>470, 7614=>455, 7615=>425,
|
||||
7620=>0, 7621=>0, 7622=>0, 7623=>0, 7624=>0, 7625=>0, 7680=>774, 7681=>675, 7682=>762, 7683=>716, 7684=>762, 7685=>716, 7686=>762, 7687=>716, 7688=>734, 7689=>593,
|
||||
7690=>830, 7691=>716, 7692=>830, 7693=>716, 7694=>830, 7695=>716, 7696=>830, 7697=>716, 7698=>830, 7699=>716, 7700=>683, 7701=>678, 7702=>683, 7703=>678, 7704=>683, 7705=>678,
|
||||
7706=>683, 7707=>678, 7708=>683, 7709=>678, 7710=>683, 7711=>435, 7712=>821, 7713=>716, 7714=>837, 7715=>712, 7716=>837, 7717=>712, 7718=>837, 7719=>712, 7720=>837, 7721=>712,
|
||||
7722=>837, 7723=>712, 7724=>372, 7725=>343, 7726=>372, 7727=>343, 7728=>775, 7729=>665, 7730=>775, 7731=>665, 7732=>775, 7733=>665, 7734=>637, 7735=>343, 7736=>637, 7737=>343,
|
||||
7738=>637, 7739=>343, 7740=>637, 7741=>343, 7742=>995, 7743=>1042, 7744=>995, 7745=>1042, 7746=>995, 7747=>1042, 7748=>837, 7749=>712, 7750=>837, 7751=>712, 7752=>837, 7753=>712,
|
||||
7754=>837, 7755=>712, 7756=>850, 7757=>687, 7758=>850, 7759=>687, 7760=>850, 7761=>687, 7762=>850, 7763=>687, 7764=>733, 7765=>716, 7766=>733, 7767=>716, 7768=>770, 7769=>493,
|
||||
7770=>770, 7771=>493, 7772=>770, 7773=>493, 7774=>770, 7775=>493, 7776=>720, 7777=>595, 7778=>720, 7779=>595, 7780=>720, 7781=>595, 7782=>720, 7783=>595, 7784=>720, 7785=>595,
|
||||
7786=>682, 7787=>478, 7788=>682, 7789=>478, 7790=>682, 7791=>478, 7792=>682, 7793=>478, 7794=>812, 7795=>712, 7796=>812, 7797=>712, 7798=>812, 7799=>712, 7800=>812, 7801=>712,
|
||||
7802=>812, 7803=>712, 7804=>774, 7805=>652, 7806=>774, 7807=>652, 7808=>1103, 7809=>924, 7810=>1103, 7811=>924, 7812=>1103, 7813=>924, 7814=>1103, 7815=>924, 7816=>1103, 7817=>924,
|
||||
7818=>771, 7819=>645, 7820=>771, 7821=>645, 7822=>724, 7823=>652, 7824=>725, 7825=>582, 7826=>725, 7827=>582, 7828=>725, 7829=>582, 7830=>712, 7831=>478, 7832=>924, 7833=>652,
|
||||
7834=>675, 7835=>435, 7840=>774, 7841=>675, 7842=>774, 7843=>675, 7844=>774, 7845=>675, 7846=>774, 7847=>675, 7848=>774, 7849=>675, 7850=>774, 7851=>675, 7852=>774, 7853=>675,
|
||||
7854=>774, 7855=>675, 7856=>774, 7857=>675, 7858=>774, 7859=>675, 7860=>774, 7861=>675, 7862=>774, 7863=>675, 7864=>683, 7865=>678, 7866=>683, 7867=>678, 7868=>683, 7869=>678,
|
||||
7870=>683, 7871=>678, 7872=>683, 7873=>678, 7874=>683, 7875=>678, 7876=>683, 7877=>678, 7878=>683, 7879=>678, 7880=>372, 7881=>343, 7882=>372, 7883=>343, 7884=>850, 7885=>687,
|
||||
7886=>850, 7887=>687, 7888=>850, 7889=>687, 7890=>850, 7891=>687, 7892=>850, 7893=>687, 7894=>850, 7895=>687, 7896=>850, 7897=>687, 7898=>874, 7899=>687, 7900=>874, 7901=>687,
|
||||
7902=>874, 7903=>687, 7904=>874, 7905=>687, 7906=>874, 7907=>687, 7908=>812, 7909=>712, 7910=>812, 7911=>712, 7912=>835, 7913=>712, 7914=>835, 7915=>712, 7916=>835, 7917=>712,
|
||||
7918=>835, 7919=>712, 7920=>835, 7921=>712, 7922=>724, 7923=>652, 7924=>724, 7925=>652, 7926=>724, 7927=>652, 7928=>724, 7929=>652, 7936=>687, 7937=>687, 7938=>687, 7939=>687,
|
||||
7940=>687, 7941=>687, 7942=>687, 7943=>687, 7944=>774, 7945=>774, 7946=>1041, 7947=>1043, 7948=>935, 7949=>963, 7950=>835, 7951=>859, 7952=>557, 7953=>557, 7954=>557, 7955=>557,
|
||||
7956=>557, 7957=>557, 7960=>792, 7961=>794, 7962=>1100, 7963=>1096, 7964=>1023, 7965=>1052, 7968=>712, 7969=>712, 7970=>712, 7971=>712, 7972=>712, 7973=>712, 7974=>712, 7975=>712,
|
||||
7976=>945, 7977=>951, 7978=>1250, 7979=>1250, 7980=>1180, 7981=>1206, 7982=>1054, 7983=>1063, 7984=>390, 7985=>390, 7986=>390, 7987=>390, 7988=>390, 7989=>390, 7990=>390, 7991=>390,
|
||||
7992=>483, 7993=>489, 7994=>777, 7995=>785, 7996=>712, 7997=>738, 7998=>604, 7999=>604, 8000=>687, 8001=>687, 8002=>687, 8003=>687, 8004=>687, 8005=>687, 8008=>892, 8009=>933,
|
||||
8010=>1221, 8011=>1224, 8012=>1053, 8013=>1082, 8016=>675, 8017=>675, 8018=>675, 8019=>675, 8020=>675, 8021=>675, 8022=>675, 8023=>675, 8025=>930, 8027=>1184, 8029=>1199, 8031=>1049,
|
||||
8032=>869, 8033=>869, 8034=>869, 8035=>869, 8036=>869, 8037=>869, 8038=>869, 8039=>869, 8040=>909, 8041=>958, 8042=>1246, 8043=>1251, 8044=>1076, 8045=>1105, 8046=>1028, 8047=>1076,
|
||||
8048=>687, 8049=>687, 8050=>557, 8051=>557, 8052=>712, 8053=>712, 8054=>390, 8055=>390, 8056=>687, 8057=>687, 8058=>675, 8059=>675, 8060=>869, 8061=>869, 8064=>687, 8065=>687,
|
||||
8066=>687, 8067=>687, 8068=>687, 8069=>687, 8070=>687, 8071=>687, 8072=>774, 8073=>774, 8074=>1041, 8075=>1043, 8076=>935, 8077=>963, 8078=>835, 8079=>859, 8080=>712, 8081=>712,
|
||||
8082=>712, 8083=>712, 8084=>712, 8085=>712, 8086=>712, 8087=>712, 8088=>945, 8089=>951, 8090=>1250, 8091=>1250, 8092=>1180, 8093=>1206, 8094=>1054, 8095=>1063, 8096=>869, 8097=>869,
|
||||
8098=>869, 8099=>869, 8100=>869, 8101=>869, 8102=>869, 8103=>869, 8104=>909, 8105=>958, 8106=>1246, 8107=>1251, 8108=>1076, 8109=>1105, 8110=>1028, 8111=>1076, 8112=>687, 8113=>687,
|
||||
8114=>687, 8115=>687, 8116=>687, 8118=>687, 8119=>687, 8120=>774, 8121=>774, 8122=>876, 8123=>797, 8124=>774, 8125=>500, 8126=>500, 8127=>500, 8128=>500, 8129=>500, 8130=>712,
|
||||
8131=>712, 8132=>712, 8134=>712, 8135=>712, 8136=>929, 8137=>846, 8138=>1080, 8139=>1009, 8140=>837, 8141=>500, 8142=>500, 8143=>500, 8144=>390, 8145=>390, 8146=>390, 8147=>390,
|
||||
8150=>390, 8151=>390, 8152=>372, 8153=>372, 8154=>621, 8155=>563, 8157=>500, 8158=>500, 8159=>500, 8160=>675, 8161=>675, 8162=>675, 8163=>675, 8164=>716, 8165=>716, 8166=>675,
|
||||
8167=>675, 8168=>724, 8169=>724, 8170=>1020, 8171=>980, 8172=>838, 8173=>500, 8174=>500, 8175=>500, 8178=>869, 8179=>869, 8180=>869, 8182=>869, 8183=>869, 8184=>1065, 8185=>891,
|
||||
8186=>1084, 8187=>894, 8188=>850, 8189=>500, 8190=>500, 8192=>500, 8193=>1000, 8194=>500, 8195=>1000, 8196=>330, 8197=>250, 8198=>167, 8199=>696, 8200=>380, 8201=>200, 8202=>100,
|
||||
8203=>0, 8204=>0, 8205=>0, 8206=>0, 8207=>0, 8208=>415, 8209=>415, 8210=>696, 8213=>1000, 8214=>500, 8215=>500, 8219=>380, 8223=>657, 8227=>639, 8228=>333, 8229=>667,
|
||||
8231=>348, 8234=>0, 8235=>0, 8236=>0, 8237=>0, 8238=>0, 8239=>200, 8241=>1887, 8242=>264, 8243=>447, 8244=>630, 8245=>264, 8246=>447, 8247=>630, 8248=>733, 8251=>972,
|
||||
8252=>627, 8253=>580, 8254=>500, 8255=>828, 8256=>828, 8257=>329, 8258=>1023, 8259=>500, 8260=>456, 8261=>457, 8262=>457, 8263=>1030, 8264=>829, 8265=>829, 8266=>513, 8267=>636,
|
||||
8268=>500, 8269=>500, 8270=>523, 8271=>400, 8272=>828, 8273=>523, 8274=>556, 8275=>838, 8276=>828, 8277=>838, 8278=>684, 8279=>813, 8280=>838, 8281=>838, 8282=>380, 8283=>872,
|
||||
8284=>838, 8285=>380, 8286=>380, 8287=>222, 8288=>0, 8289=>0, 8290=>0, 8291=>0, 8298=>0, 8299=>0, 8300=>0, 8301=>0, 8302=>0, 8303=>0, 8304=>438, 8305=>219,
|
||||
8308=>438, 8309=>438, 8310=>438, 8311=>438, 8312=>438, 8313=>438, 8314=>528, 8315=>528, 8316=>528, 8317=>288, 8318=>288, 8319=>456, 8320=>438, 8321=>438, 8322=>438, 8323=>438,
|
||||
8324=>438, 8325=>438, 8326=>438, 8327=>438, 8328=>438, 8329=>438, 8330=>528, 8331=>528, 8332=>528, 8333=>288, 8334=>288, 8336=>458, 8337=>479, 8338=>488, 8339=>413, 8340=>479,
|
||||
8352=>929, 8353=>696, 8354=>696, 8355=>696, 8356=>696, 8357=>1042, 8358=>837, 8359=>1518, 8360=>1205, 8361=>1103, 8362=>904, 8363=>696, 8365=>696, 8366=>682, 8367=>1392, 8368=>696,
|
||||
8369=>696, 8370=>696, 8371=>696, 8372=>859, 8373=>696, 8400=>0, 8401=>0, 8406=>0, 8407=>0, 8448=>1120, 8449=>1170, 8450=>734, 8451=>1211, 8452=>896, 8453=>1091, 8454=>1144,
|
||||
8455=>614, 8456=>698, 8457=>1086, 8459=>1073, 8460=>913, 8461=>850, 8462=>712, 8463=>712, 8464=>604, 8465=>694, 8466=>868, 8467=>472, 8468=>974, 8469=>837, 8470=>1203, 8471=>1000,
|
||||
8472=>697, 8473=>702, 8474=>850, 8475=>876, 8476=>814, 8477=>792, 8478=>896, 8479=>710, 8480=>1020, 8481=>1281, 8483=>755, 8484=>725, 8485=>578, 8486=>850, 8487=>769, 8488=>763,
|
||||
8489=>338, 8490=>775, 8491=>774, 8492=>928, 8493=>776, 8494=>854, 8495=>636, 8496=>738, 8497=>811, 8498=>683, 8499=>1193, 8500=>465, 8501=>794, 8502=>736, 8503=>503, 8504=>695,
|
||||
8505=>380, 8506=>945, 8507=>1348, 8508=>790, 8509=>737, 8510=>652, 8511=>845, 8512=>840, 8513=>775, 8514=>557, 8515=>637, 8516=>760, 8517=>830, 8518=>716, 8519=>678, 8520=>343,
|
||||
8521=>343, 8523=>872, 8526=>547, 8531=>1035, 8532=>1035, 8533=>1035, 8534=>1035, 8535=>1035, 8536=>1035, 8537=>1035, 8538=>1035, 8539=>1035, 8540=>1035, 8541=>1035, 8542=>1035, 8543=>615,
|
||||
8544=>372, 8545=>659, 8546=>945, 8547=>1099, 8548=>774, 8549=>1099, 8550=>1386, 8551=>1672, 8552=>1121, 8553=>771, 8554=>1120, 8555=>1407, 8556=>637, 8557=>734, 8558=>830, 8559=>995,
|
||||
8560=>343, 8561=>607, 8562=>872, 8563=>984, 8564=>652, 8565=>962, 8566=>1227, 8567=>1491, 8568=>969, 8569=>645, 8570=>969, 8571=>1233, 8572=>343, 8573=>593, 8574=>716, 8575=>1042,
|
||||
8576=>1289, 8577=>830, 8578=>1289, 8579=>734, 8580=>593, 8592=>838, 8593=>838, 8594=>838, 8595=>838, 8596=>838, 8597=>838, 8598=>838, 8599=>838, 8600=>838, 8601=>838, 8602=>838,
|
||||
8603=>838, 8604=>838, 8605=>838, 8606=>838, 8607=>838, 8608=>838, 8609=>838, 8610=>838, 8611=>838, 8612=>838, 8613=>838, 8614=>838, 8615=>838, 8616=>838, 8617=>838, 8618=>838,
|
||||
8619=>838, 8620=>838, 8621=>838, 8622=>838, 8623=>838, 8624=>838, 8625=>838, 8626=>838, 8627=>838, 8628=>838, 8629=>838, 8630=>838, 8631=>838, 8632=>838, 8633=>838, 8634=>838,
|
||||
8635=>838, 8636=>838, 8637=>838, 8638=>838, 8639=>838, 8640=>838, 8641=>838, 8642=>838, 8643=>838, 8644=>838, 8645=>838, 8646=>838, 8647=>838, 8648=>838, 8649=>838, 8650=>838,
|
||||
8651=>838, 8652=>838, 8653=>838, 8654=>838, 8655=>838, 8656=>838, 8657=>838, 8658=>838, 8659=>838, 8660=>838, 8661=>838, 8662=>838, 8663=>838, 8664=>838, 8665=>838, 8666=>838,
|
||||
8667=>838, 8668=>838, 8669=>838, 8670=>838, 8671=>838, 8672=>838, 8673=>838, 8674=>838, 8675=>838, 8676=>838, 8677=>838, 8678=>838, 8679=>838, 8680=>838, 8681=>838, 8682=>838,
|
||||
8683=>838, 8684=>838, 8685=>838, 8686=>838, 8687=>838, 8688=>838, 8689=>838, 8690=>838, 8691=>838, 8692=>838, 8693=>838, 8694=>838, 8695=>838, 8696=>838, 8697=>838, 8698=>838,
|
||||
8699=>838, 8700=>838, 8701=>838, 8702=>838, 8703=>838, 8704=>774, 8705=>696, 8706=>544, 8707=>683, 8708=>683, 8709=>856, 8710=>697, 8711=>697, 8712=>896, 8713=>896, 8714=>750,
|
||||
8715=>896, 8716=>896, 8717=>750, 8718=>636, 8719=>787, 8720=>787, 8721=>718, 8722=>838, 8723=>838, 8724=>696, 8725=>167, 8726=>696, 8727=>838, 8728=>626, 8729=>380, 8730=>667,
|
||||
8731=>667, 8732=>667, 8733=>669, 8734=>833, 8735=>838, 8736=>896, 8737=>896, 8738=>838, 8739=>500, 8740=>500, 8741=>500, 8742=>500, 8743=>812, 8744=>812, 8745=>812, 8746=>812,
|
||||
8747=>610, 8748=>929, 8749=>1295, 8750=>563, 8751=>977, 8752=>1313, 8753=>563, 8754=>563, 8755=>563, 8756=>696, 8757=>696, 8758=>294, 8759=>696, 8760=>838, 8761=>838, 8762=>838,
|
||||
8763=>838, 8764=>838, 8765=>838, 8766=>838, 8767=>838, 8768=>375, 8769=>838, 8770=>838, 8771=>838, 8772=>838, 8773=>838, 8774=>838, 8775=>838, 8776=>838, 8777=>838, 8778=>838,
|
||||
8779=>838, 8780=>838, 8781=>838, 8782=>838, 8783=>838, 8784=>838, 8785=>838, 8786=>838, 8787=>838, 8788=>1063, 8789=>1063, 8790=>838, 8791=>838, 8792=>838, 8793=>838, 8794=>838,
|
||||
8795=>838, 8796=>838, 8797=>838, 8798=>838, 8799=>838, 8800=>838, 8801=>838, 8802=>838, 8803=>838, 8804=>838, 8805=>838, 8806=>838, 8807=>838, 8808=>841, 8809=>841, 8810=>1047,
|
||||
8811=>1047, 8812=>500, 8813=>838, 8814=>838, 8815=>838, 8816=>838, 8817=>838, 8818=>838, 8819=>838, 8820=>838, 8821=>838, 8822=>838, 8823=>838, 8824=>838, 8825=>838, 8826=>838,
|
||||
8827=>838, 8828=>838, 8829=>838, 8830=>838, 8831=>838, 8832=>838, 8833=>838, 8834=>838, 8835=>838, 8836=>838, 8837=>838, 8838=>838, 8839=>838, 8840=>838, 8841=>838, 8842=>838,
|
||||
8843=>838, 8844=>812, 8845=>812, 8846=>812, 8847=>838, 8848=>838, 8849=>838, 8850=>838, 8851=>754, 8852=>754, 8853=>838, 8854=>838, 8855=>838, 8856=>838, 8857=>838, 8858=>838,
|
||||
8859=>838, 8860=>838, 8861=>838, 8862=>838, 8863=>838, 8864=>838, 8865=>838, 8866=>914, 8867=>914, 8868=>914, 8869=>914, 8870=>542, 8871=>542, 8872=>914, 8873=>914, 8874=>914,
|
||||
8875=>914, 8876=>914, 8877=>914, 8878=>914, 8879=>914, 8882=>838, 8883=>838, 8884=>838, 8885=>838, 8886=>1000, 8887=>1000, 8888=>838, 8889=>838, 8890=>542, 8891=>812, 8892=>812,
|
||||
8893=>812, 8896=>843, 8897=>843, 8898=>843, 8899=>843, 8900=>494, 8901=>380, 8902=>626, 8904=>1000, 8905=>1000, 8906=>1000, 8907=>1000, 8908=>1000, 8909=>838, 8918=>838, 8919=>838,
|
||||
8920=>1422, 8921=>1422, 8922=>838, 8923=>838, 8924=>838, 8925=>838, 8926=>838, 8927=>838, 8928=>838, 8929=>838, 8930=>838, 8931=>838, 8932=>838, 8933=>838, 8934=>838, 8935=>838,
|
||||
8936=>838, 8937=>838, 8938=>838, 8939=>838, 8940=>838, 8941=>838, 8946=>1158, 8947=>896, 8948=>750, 8949=>896, 8950=>896, 8951=>750, 8952=>896, 8953=>896, 8954=>1158, 8955=>896,
|
||||
8956=>750, 8957=>896, 8958=>750, 8959=>896, 8962=>716, 8966=>917, 8968=>457, 8969=>457, 8970=>457, 8971=>457, 8976=>838, 8977=>539, 8984=>928, 8985=>838, 8992=>610, 8993=>610,
|
||||
8997=>1000, 9000=>1443, 9085=>863, 9115=>500, 9116=>500, 9117=>500, 9118=>500, 9119=>500, 9120=>500, 9121=>500, 9122=>500, 9123=>500, 9124=>500, 9125=>500, 9126=>500, 9127=>750,
|
||||
9128=>750, 9129=>750, 9130=>750, 9131=>750, 9132=>750, 9133=>750, 9134=>610, 9166=>838, 9167=>945, 9250=>716, 9251=>716, 9312=>847, 9313=>847, 9314=>847, 9315=>847, 9316=>847,
|
||||
9317=>847, 9318=>847, 9319=>847, 9320=>847, 9321=>847, 9600=>769, 9601=>769, 9602=>769, 9603=>769, 9604=>769, 9605=>769, 9606=>769, 9607=>769, 9608=>769, 9609=>769, 9610=>769,
|
||||
9611=>769, 9612=>769, 9613=>769, 9614=>769, 9615=>769, 9616=>769, 9617=>769, 9618=>769, 9619=>769, 9620=>769, 9621=>769, 9622=>769, 9623=>769, 9624=>769, 9625=>769, 9626=>769,
|
||||
9627=>769, 9628=>769, 9629=>769, 9630=>769, 9631=>769, 9632=>945, 9633=>945, 9634=>945, 9635=>945, 9636=>945, 9637=>945, 9638=>945, 9639=>945, 9640=>945, 9641=>945, 9642=>678,
|
||||
9643=>678, 9644=>945, 9645=>945, 9646=>550, 9647=>550, 9648=>769, 9649=>769, 9650=>769, 9651=>769, 9652=>502, 9653=>502, 9654=>769, 9655=>769, 9656=>502, 9657=>502, 9658=>769,
|
||||
9659=>769, 9660=>769, 9661=>769, 9662=>502, 9663=>502, 9664=>769, 9665=>769, 9666=>502, 9667=>502, 9668=>769, 9669=>769, 9670=>769, 9671=>769, 9672=>769, 9673=>873, 9674=>494,
|
||||
9675=>873, 9676=>873, 9677=>873, 9678=>873, 9679=>873, 9680=>873, 9681=>873, 9682=>873, 9683=>873, 9684=>873, 9685=>873, 9686=>527, 9687=>527, 9688=>840, 9689=>970, 9690=>970,
|
||||
9691=>970, 9692=>387, 9693=>387, 9694=>387, 9695=>387, 9696=>769, 9697=>769, 9698=>769, 9699=>769, 9700=>769, 9701=>769, 9702=>639, 9703=>945, 9704=>945, 9705=>945, 9706=>945,
|
||||
9707=>945, 9708=>769, 9709=>769, 9710=>769, 9711=>1119, 9712=>945, 9713=>945, 9714=>945, 9715=>945, 9716=>873, 9717=>873, 9718=>873, 9719=>873, 9720=>769, 9721=>769, 9722=>769,
|
||||
9723=>830, 9724=>830, 9725=>732, 9726=>732, 9727=>769, 9728=>896, 9729=>1000, 9730=>896, 9731=>896, 9732=>896, 9733=>896, 9734=>896, 9735=>573, 9736=>896, 9737=>896, 9738=>888,
|
||||
9739=>888, 9740=>671, 9741=>1013, 9742=>1246, 9743=>1250, 9744=>896, 9745=>896, 9746=>896, 9747=>532, 9748=>896, 9749=>896, 9750=>896, 9751=>896, 9752=>896, 9753=>896, 9754=>896,
|
||||
9755=>896, 9756=>896, 9757=>609, 9758=>896, 9759=>609, 9760=>896, 9761=>896, 9762=>896, 9763=>896, 9764=>669, 9765=>746, 9766=>649, 9767=>784, 9768=>545, 9769=>896, 9770=>896,
|
||||
9771=>896, 9772=>710, 9773=>896, 9774=>896, 9775=>896, 9776=>896, 9777=>896, 9778=>896, 9779=>896, 9780=>896, 9781=>896, 9782=>896, 9783=>896, 9784=>896, 9785=>896, 9786=>896,
|
||||
9787=>896, 9788=>896, 9789=>896, 9790=>896, 9791=>614, 9792=>731, 9793=>731, 9794=>896, 9795=>896, 9796=>896, 9797=>896, 9798=>896, 9799=>896, 9800=>896, 9801=>896, 9802=>896,
|
||||
9803=>896, 9804=>896, 9805=>896, 9806=>896, 9807=>896, 9808=>896, 9809=>896, 9810=>896, 9811=>896, 9812=>896, 9813=>896, 9814=>896, 9815=>896, 9816=>896, 9817=>896, 9818=>896,
|
||||
9819=>896, 9820=>896, 9821=>896, 9822=>896, 9823=>896, 9824=>896, 9825=>896, 9826=>896, 9827=>896, 9828=>896, 9829=>896, 9830=>896, 9831=>896, 9832=>896, 9833=>472, 9834=>638,
|
||||
9835=>896, 9836=>896, 9837=>472, 9838=>357, 9839=>484, 9840=>748, 9841=>766, 9842=>896, 9843=>896, 9844=>896, 9845=>896, 9846=>896, 9847=>896, 9848=>896, 9849=>896, 9850=>896,
|
||||
9851=>896, 9852=>896, 9853=>896, 9854=>896, 9855=>896, 9856=>869, 9857=>869, 9858=>869, 9859=>869, 9860=>869, 9861=>869, 9862=>896, 9863=>896, 9864=>896, 9865=>896, 9866=>896,
|
||||
9867=>896, 9868=>896, 9869=>896, 9870=>896, 9871=>896, 9872=>896, 9873=>896, 9874=>896, 9875=>896, 9876=>896, 9877=>541, 9878=>896, 9879=>896, 9880=>896, 9881=>896, 9882=>896,
|
||||
9883=>896, 9884=>896, 9888=>896, 9889=>702, 9890=>838, 9891=>838, 9892=>838, 9893=>838, 9894=>838, 9895=>838, 9896=>838, 9897=>838, 9898=>838, 9899=>838, 9900=>838, 9901=>838,
|
||||
9902=>838, 9903=>838, 9904=>844, 9905=>838, 9906=>731, 9985=>838, 9986=>838, 9987=>838, 9988=>838, 9990=>838, 9991=>838, 9992=>838, 9993=>838, 9996=>838, 9997=>838, 9998=>838,
|
||||
9999=>838, 10000=>838, 10001=>838, 10002=>838, 10003=>838, 10004=>838, 10005=>838, 10006=>838, 10007=>838, 10008=>838, 10009=>838, 10010=>838, 10011=>838, 10012=>838, 10013=>838, 10014=>838,
|
||||
10015=>838, 10016=>838, 10017=>838, 10018=>838, 10019=>838, 10020=>838, 10021=>838, 10022=>838, 10023=>838, 10025=>838, 10026=>838, 10027=>838, 10028=>838, 10029=>838, 10030=>838, 10031=>838,
|
||||
10032=>838, 10033=>838, 10034=>838, 10035=>838, 10036=>838, 10037=>838, 10038=>838, 10039=>838, 10040=>838, 10041=>838, 10042=>838, 10043=>838, 10044=>838, 10045=>838, 10046=>838, 10047=>838,
|
||||
10048=>838, 10049=>838, 10050=>838, 10051=>838, 10052=>838, 10053=>838, 10054=>838, 10055=>838, 10056=>838, 10057=>838, 10058=>838, 10059=>838, 10061=>896, 10063=>896, 10064=>896, 10065=>896,
|
||||
10066=>896, 10070=>896, 10072=>838, 10073=>838, 10074=>838, 10075=>347, 10076=>347, 10077=>587, 10078=>587, 10081=>838, 10082=>838, 10083=>838, 10084=>838, 10085=>838, 10086=>838, 10087=>838,
|
||||
10088=>838, 10089=>838, 10090=>838, 10091=>838, 10092=>838, 10093=>838, 10094=>838, 10095=>838, 10096=>838, 10097=>838, 10098=>838, 10099=>838, 10100=>838, 10101=>838, 10102=>847, 10103=>847,
|
||||
10104=>847, 10105=>847, 10106=>847, 10107=>847, 10108=>847, 10109=>847, 10110=>847, 10111=>847, 10112=>838, 10113=>838, 10114=>838, 10115=>838, 10116=>838, 10117=>838, 10118=>838, 10119=>838,
|
||||
10120=>838, 10121=>838, 10122=>838, 10123=>838, 10124=>838, 10125=>838, 10126=>838, 10127=>838, 10128=>838, 10129=>838, 10130=>838, 10131=>838, 10132=>838, 10136=>838, 10137=>838, 10138=>838,
|
||||
10139=>838, 10140=>838, 10141=>838, 10142=>838, 10143=>838, 10144=>838, 10145=>838, 10146=>838, 10147=>838, 10148=>838, 10149=>838, 10150=>838, 10151=>838, 10152=>838, 10153=>838, 10154=>838,
|
||||
10155=>838, 10156=>838, 10157=>838, 10158=>838, 10159=>838, 10161=>838, 10162=>838, 10163=>838, 10164=>838, 10165=>838, 10166=>838, 10167=>838, 10168=>838, 10169=>838, 10170=>838, 10171=>838,
|
||||
10172=>838, 10173=>838, 10174=>838, 10208=>494, 10214=>487, 10215=>487, 10216=>457, 10217=>457, 10218=>721, 10219=>721, 10224=>838, 10225=>838, 10226=>838, 10227=>838, 10228=>1157, 10229=>1434,
|
||||
10230=>1434, 10231=>1434, 10232=>1434, 10233=>1434, 10234=>1434, 10235=>1434, 10236=>1434, 10237=>1434, 10238=>1434, 10239=>1434, 10240=>781, 10241=>781, 10242=>781, 10243=>781, 10244=>781, 10245=>781,
|
||||
10246=>781, 10247=>781, 10248=>781, 10249=>781, 10250=>781, 10251=>781, 10252=>781, 10253=>781, 10254=>781, 10255=>781, 10256=>781, 10257=>781, 10258=>781, 10259=>781, 10260=>781, 10261=>781,
|
||||
10262=>781, 10263=>781, 10264=>781, 10265=>781, 10266=>781, 10267=>781, 10268=>781, 10269=>781, 10270=>781, 10271=>781, 10272=>781, 10273=>781, 10274=>781, 10275=>781, 10276=>781, 10277=>781,
|
||||
10278=>781, 10279=>781, 10280=>781, 10281=>781, 10282=>781, 10283=>781, 10284=>781, 10285=>781, 10286=>781, 10287=>781, 10288=>781, 10289=>781, 10290=>781, 10291=>781, 10292=>781, 10293=>781,
|
||||
10294=>781, 10295=>781, 10296=>781, 10297=>781, 10298=>781, 10299=>781, 10300=>781, 10301=>781, 10302=>781, 10303=>781, 10304=>781, 10305=>781, 10306=>781, 10307=>781, 10308=>781, 10309=>781,
|
||||
10310=>781, 10311=>781, 10312=>781, 10313=>781, 10314=>781, 10315=>781, 10316=>781, 10317=>781, 10318=>781, 10319=>781, 10320=>781, 10321=>781, 10322=>781, 10323=>781, 10324=>781, 10325=>781,
|
||||
10326=>781, 10327=>781, 10328=>781, 10329=>781, 10330=>781, 10331=>781, 10332=>781, 10333=>781, 10334=>781, 10335=>781, 10336=>781, 10337=>781, 10338=>781, 10339=>781, 10340=>781, 10341=>781,
|
||||
10342=>781, 10343=>781, 10344=>781, 10345=>781, 10346=>781, 10347=>781, 10348=>781, 10349=>781, 10350=>781, 10351=>781, 10352=>781, 10353=>781, 10354=>781, 10355=>781, 10356=>781, 10357=>781,
|
||||
10358=>781, 10359=>781, 10360=>781, 10361=>781, 10362=>781, 10363=>781, 10364=>781, 10365=>781, 10366=>781, 10367=>781, 10368=>781, 10369=>781, 10370=>781, 10371=>781, 10372=>781, 10373=>781,
|
||||
10374=>781, 10375=>781, 10376=>781, 10377=>781, 10378=>781, 10379=>781, 10380=>781, 10381=>781, 10382=>781, 10383=>781, 10384=>781, 10385=>781, 10386=>781, 10387=>781, 10388=>781, 10389=>781,
|
||||
10390=>781, 10391=>781, 10392=>781, 10393=>781, 10394=>781, 10395=>781, 10396=>781, 10397=>781, 10398=>781, 10399=>781, 10400=>781, 10401=>781, 10402=>781, 10403=>781, 10404=>781, 10405=>781,
|
||||
10406=>781, 10407=>781, 10408=>781, 10409=>781, 10410=>781, 10411=>781, 10412=>781, 10413=>781, 10414=>781, 10415=>781, 10416=>781, 10417=>781, 10418=>781, 10419=>781, 10420=>781, 10421=>781,
|
||||
10422=>781, 10423=>781, 10424=>781, 10425=>781, 10426=>781, 10427=>781, 10428=>781, 10429=>781, 10430=>781, 10431=>781, 10432=>781, 10433=>781, 10434=>781, 10435=>781, 10436=>781, 10437=>781,
|
||||
10438=>781, 10439=>781, 10440=>781, 10441=>781, 10442=>781, 10443=>781, 10444=>781, 10445=>781, 10446=>781, 10447=>781, 10448=>781, 10449=>781, 10450=>781, 10451=>781, 10452=>781, 10453=>781,
|
||||
10454=>781, 10455=>781, 10456=>781, 10457=>781, 10458=>781, 10459=>781, 10460=>781, 10461=>781, 10462=>781, 10463=>781, 10464=>781, 10465=>781, 10466=>781, 10467=>781, 10468=>781, 10469=>781,
|
||||
10470=>781, 10471=>781, 10472=>781, 10473=>781, 10474=>781, 10475=>781, 10476=>781, 10477=>781, 10478=>781, 10479=>781, 10480=>781, 10481=>781, 10482=>781, 10483=>781, 10484=>781, 10485=>781,
|
||||
10486=>781, 10487=>781, 10488=>781, 10489=>781, 10490=>781, 10491=>781, 10492=>781, 10493=>781, 10494=>781, 10495=>781, 10502=>838, 10503=>838, 10506=>838, 10507=>838, 10560=>838, 10561=>838,
|
||||
10702=>838, 10703=>1046, 10704=>1046, 10705=>1000, 10706=>1000, 10707=>1000, 10708=>1000, 10709=>1000, 10731=>494, 10752=>1000, 10753=>1000, 10754=>1000, 10764=>1661, 10765=>563, 10766=>563, 10767=>563,
|
||||
10768=>563, 10769=>563, 10770=>563, 10771=>563, 10772=>563, 10773=>563, 10774=>563, 10775=>563, 10776=>563, 10777=>563, 10778=>563, 10779=>563, 10780=>563, 10877=>838, 10878=>838, 10879=>838,
|
||||
10880=>838, 10881=>838, 10882=>838, 10883=>838, 10884=>838, 10885=>838, 10886=>838, 10887=>838, 10888=>838, 10889=>838, 10890=>838, 10891=>838, 10892=>838, 10893=>838, 10894=>838, 10895=>838,
|
||||
10896=>838, 10897=>838, 10898=>838, 10899=>838, 10900=>838, 10901=>838, 10902=>838, 10903=>838, 10904=>838, 10905=>838, 10906=>838, 10907=>838, 10908=>838, 10909=>838, 10910=>838, 10911=>838,
|
||||
10912=>838, 10926=>838, 10927=>838, 10928=>838, 10929=>838, 10930=>838, 10931=>838, 10932=>838, 10933=>838, 10934=>838, 10935=>838, 10936=>838, 10937=>838, 10938=>838, 11001=>838, 11002=>838,
|
||||
11008=>838, 11009=>838, 11010=>838, 11011=>838, 11012=>838, 11013=>838, 11014=>838, 11015=>838, 11016=>838, 11017=>838, 11018=>838, 11019=>838, 11020=>838, 11021=>838, 11022=>838, 11023=>838,
|
||||
11024=>838, 11025=>838, 11026=>945, 11027=>945, 11028=>945, 11029=>945, 11030=>769, 11031=>769, 11032=>769, 11033=>769, 11034=>945, 11040=>869, 11041=>873, 11042=>873, 11043=>873, 11360=>637,
|
||||
11361=>360, 11362=>637, 11363=>733, 11364=>770, 11365=>675, 11366=>478, 11367=>956, 11368=>712, 11369=>775, 11370=>665, 11371=>725, 11372=>582, 11380=>652, 11381=>649, 11382=>516, 11383=>782,
|
||||
61960=>860, 62047=>720, 63173=>687, 64256=>810, 64257=>741, 64258=>741, 64259=>1115, 64260=>1116, 64261=>808, 64262=>1020, 64275=>1388, 64276=>1384, 64277=>1378, 64278=>1384, 64279=>1713, 64285=>372,
|
||||
64287=>692, 64288=>720, 64297=>838, 64298=>963, 64299=>963, 64300=>963, 64301=>963, 64302=>751, 64303=>751, 64304=>751, 64305=>731, 64306=>537, 64307=>684, 64308=>778, 64309=>467, 64310=>521,
|
||||
64312=>770, 64313=>467, 64314=>778, 64315=>750, 64316=>718, 64318=>856, 64320=>532, 64321=>855, 64323=>802, 64324=>777, 64326=>751, 64327=>803, 64328=>778, 64329=>963, 64330=>822, 64331=>372,
|
||||
64332=>731, 64333=>754, 64334=>777, 64338=>1005, 64339=>1059, 64340=>375, 64341=>408, 64342=>1005, 64343=>1059, 64344=>375, 64345=>408, 64346=>1005, 64347=>1059, 64348=>375, 64349=>408, 64350=>1005,
|
||||
64351=>1059, 64352=>375, 64353=>408, 64354=>1005, 64355=>1059, 64356=>375, 64357=>408, 64358=>1005, 64359=>1059, 64360=>375, 64361=>408, 64362=>1162, 64363=>1191, 64364=>655, 64365=>720, 64366=>1162,
|
||||
64367=>1191, 64368=>655, 64369=>720, 64370=>721, 64371=>721, 64372=>721, 64373=>721, 64374=>721, 64375=>721, 64376=>721, 64377=>721, 64378=>721, 64379=>721, 64380=>721, 64381=>721, 64382=>721,
|
||||
64383=>721, 64384=>721, 64385=>721, 64394=>576, 64395=>622, 64396=>576, 64397=>622, 64398=>1024, 64399=>1024, 64400=>582, 64401=>582, 64402=>1024, 64403=>1024, 64404=>582, 64405=>582, 64414=>854,
|
||||
64415=>900, 64473=>622, 64474=>627, 64488=>375, 64489=>408, 64508=>917, 64509=>1012, 64510=>375, 64511=>408, 65024=>0, 65025=>0, 65026=>0, 65027=>0, 65028=>0, 65029=>0, 65030=>0,
|
||||
65031=>0, 65032=>0, 65033=>0, 65034=>0, 65035=>0, 65036=>0, 65037=>0, 65038=>0, 65039=>0, 65136=>342, 65137=>342, 65138=>342, 65139=>346, 65140=>342, 65142=>342, 65143=>342,
|
||||
65144=>342, 65145=>342, 65146=>342, 65147=>342, 65148=>342, 65149=>342, 65150=>342, 65151=>342, 65152=>511, 65153=>343, 65154=>375, 65155=>343, 65156=>375, 65157=>622, 65158=>627, 65159=>343,
|
||||
65160=>375, 65161=>917, 65162=>917, 65163=>375, 65164=>408, 65165=>343, 65166=>375, 65167=>1005, 65168=>1059, 65169=>375, 65170=>408, 65171=>590, 65172=>606, 65173=>1005, 65174=>1059, 65175=>375,
|
||||
65176=>408, 65177=>1005, 65178=>1059, 65179=>375, 65180=>408, 65181=>721, 65182=>721, 65183=>721, 65184=>721, 65185=>721, 65186=>721, 65187=>721, 65188=>721, 65189=>721, 65190=>721, 65191=>721,
|
||||
65192=>721, 65193=>513, 65194=>578, 65195=>513, 65196=>578, 65197=>576, 65198=>622, 65199=>576, 65200=>622, 65201=>1380, 65202=>1414, 65203=>983, 65204=>1018, 65205=>1380, 65206=>1414, 65207=>983,
|
||||
65208=>1018, 65209=>1345, 65210=>1364, 65211=>966, 65212=>985, 65213=>1345, 65214=>1364, 65215=>966, 65216=>985, 65217=>1039, 65218=>1071, 65219=>942, 65220=>974, 65221=>1039, 65222=>1071, 65223=>942,
|
||||
65224=>974, 65225=>683, 65226=>683, 65227=>683, 65228=>564, 65229=>683, 65230=>683, 65231=>683, 65232=>564, 65233=>1162, 65234=>1191, 65235=>655, 65236=>720, 65237=>894, 65238=>901, 65239=>655,
|
||||
65240=>720, 65241=>917, 65242=>931, 65243=>582, 65244=>582, 65245=>868, 65246=>893, 65247=>375, 65248=>408, 65249=>733, 65250=>784, 65251=>619, 65252=>670, 65253=>854, 65254=>900, 65255=>375,
|
||||
65256=>408, 65257=>590, 65258=>606, 65259=>693, 65260=>660, 65261=>622, 65262=>627, 65263=>917, 65264=>1012, 65265=>917, 65266=>1012, 65267=>375, 65268=>408, 65269=>745, 65270=>759, 65271=>745,
|
||||
65272=>759, 65273=>745, 65274=>759, 65275=>745, 65276=>759, 65279=>0, 65533=>1113);
|
||||
$enc='';
|
||||
$diff='';
|
||||
$file='DejaVuSans-Bold.z';
|
||||
$ctg='DejaVuSans-Bold.ctg.z';
|
||||
$originalsize=494260;
|
||||
?>
|
||||
<?php
|
||||
$type='TrueTypeUnicode';
|
||||
$name='DejaVuSans-Bold';
|
||||
$desc=array('Ascent'=>928,'Descent'=>-236,'CapHeight'=>928,'Flags'=>32,'FontBBox'=>'[-1069 -388 1975 1123]','ItalicAngle'=>0,'StemV'=>120,'MissingWidth'=>600);
|
||||
$up=-42;
|
||||
$ut=44;
|
||||
$cw=array(
|
||||
0=>600, 32=>348, 33=>456, 34=>521, 35=>838, 36=>696, 37=>1002, 38=>872, 39=>306, 40=>457, 41=>457, 42=>523, 43=>838, 44=>380, 45=>415, 46=>380,
|
||||
47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>400, 59=>400, 60=>838, 61=>838, 62=>838,
|
||||
63=>580, 64=>1000, 65=>774, 66=>762, 67=>734, 68=>830, 69=>683, 70=>683, 71=>821, 72=>837, 73=>372, 74=>372, 75=>775, 76=>637, 77=>995, 78=>837,
|
||||
79=>850, 80=>733, 81=>850, 82=>770, 83=>720, 84=>682, 85=>812, 86=>774, 87=>1103, 88=>771, 89=>724, 90=>725, 91=>457, 92=>365, 93=>457, 94=>838,
|
||||
95=>500, 96=>500, 97=>675, 98=>716, 99=>593, 100=>716, 101=>678, 102=>435, 103=>716, 104=>712, 105=>343, 106=>343, 107=>665, 108=>343, 109=>1042, 110=>712,
|
||||
111=>687, 112=>716, 113=>716, 114=>493, 115=>595, 116=>478, 117=>712, 118=>652, 119=>924, 120=>645, 121=>652, 122=>582, 123=>712, 124=>365, 125=>712, 126=>838,
|
||||
8364=>696, 1027=>637, 8218=>380, 402=>435, 8222=>657, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1440, 352=>720, 8249=>412, 338=>1167, 1036=>817, 381=>725, 1039=>837,
|
||||
8216=>380, 8217=>380, 8220=>657, 8221=>657, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>595, 8250=>412, 339=>1094, 1116=>679, 382=>582, 376=>724, 160=>348,
|
||||
161=>456, 162=>696, 163=>696, 164=>636, 165=>696, 166=>365, 167=>500, 168=>500, 169=>1000, 170=>564, 171=>646, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500,
|
||||
177=>838, 178=>438, 179=>438, 180=>500, 181=>736, 182=>636, 183=>380, 184=>500, 185=>438, 186=>564, 187=>646, 188=>1035, 189=>1035, 190=>1035, 191=>580, 192=>774,
|
||||
193=>774, 194=>774, 195=>774, 196=>774, 197=>774, 198=>1085, 199=>734, 200=>683, 201=>683, 202=>683, 203=>683, 204=>372, 205=>372, 206=>372, 207=>372, 208=>838,
|
||||
209=>837, 210=>850, 211=>850, 212=>850, 213=>850, 214=>850, 215=>838, 216=>850, 217=>812, 218=>812, 219=>812, 220=>812, 221=>724, 222=>738, 223=>719, 224=>675,
|
||||
225=>675, 226=>675, 227=>675, 228=>675, 229=>675, 230=>1048, 231=>593, 232=>678, 233=>678, 234=>678, 235=>678, 236=>343, 237=>343, 238=>343, 239=>343, 240=>687,
|
||||
241=>712, 242=>687, 243=>687, 244=>687, 245=>687, 246=>687, 247=>838, 248=>687, 249=>712, 250=>712, 251=>712, 252=>712, 253=>652, 254=>716, 255=>652, 256=>774,
|
||||
257=>675, 258=>774, 259=>675, 260=>774, 261=>675, 262=>734, 263=>593, 264=>734, 265=>593, 266=>734, 267=>593, 268=>734, 269=>593, 270=>830, 271=>716, 272=>838,
|
||||
273=>716, 274=>683, 275=>678, 276=>683, 277=>678, 278=>683, 279=>678, 280=>683, 281=>678, 282=>683, 283=>678, 284=>821, 285=>716, 286=>821, 287=>716, 288=>821,
|
||||
289=>716, 290=>821, 291=>716, 292=>837, 293=>712, 294=>974, 295=>790, 296=>372, 297=>343, 298=>372, 299=>343, 300=>372, 301=>343, 302=>372, 303=>343, 304=>372,
|
||||
305=>343, 306=>744, 307=>686, 308=>372, 309=>343, 310=>775, 311=>665, 312=>665, 313=>637, 314=>343, 315=>637, 316=>343, 317=>637, 318=>479, 319=>637, 320=>557,
|
||||
321=>642, 322=>371, 323=>837, 324=>712, 325=>837, 326=>712, 327=>837, 328=>712, 329=>983, 330=>837, 331=>712, 332=>850, 333=>687, 334=>850, 335=>687, 336=>850,
|
||||
337=>687, 340=>770, 341=>493, 342=>770, 343=>493, 344=>770, 345=>493, 346=>720, 347=>595, 348=>720, 349=>595, 350=>720, 351=>595, 354=>682, 355=>478, 356=>682,
|
||||
357=>478, 358=>682, 359=>478, 360=>812, 361=>712, 362=>812, 363=>712, 364=>812, 365=>712, 366=>812, 367=>712, 368=>812, 369=>712, 370=>812, 371=>712, 372=>1103,
|
||||
373=>924, 374=>724, 375=>652, 377=>725, 378=>582, 379=>725, 380=>582, 383=>435, 384=>716, 385=>811, 386=>762, 387=>716, 388=>762, 389=>716, 390=>734, 391=>734,
|
||||
392=>593, 393=>838, 394=>879, 395=>757, 396=>716, 397=>688, 398=>683, 399=>849, 400=>696, 401=>683, 403=>821, 404=>793, 405=>1045, 406=>436, 407=>389, 408=>775,
|
||||
409=>665, 410=>360, 411=>592, 412=>1042, 413=>837, 414=>712, 415=>850, 416=>874, 417=>687, 418=>1114, 419=>962, 420=>782, 421=>716, 422=>770, 423=>720, 424=>595,
|
||||
425=>683, 426=>552, 427=>478, 428=>707, 429=>478, 430=>682, 431=>835, 432=>712, 433=>769, 434=>813, 435=>797, 436=>778, 437=>725, 438=>582, 439=>772, 440=>772,
|
||||
441=>641, 442=>582, 443=>696, 444=>772, 445=>641, 446=>573, 447=>716, 448=>372, 449=>659, 450=>544, 451=>372, 452=>1555, 453=>1412, 454=>1298, 455=>1009, 456=>980,
|
||||
457=>686, 458=>1209, 459=>1180, 460=>1055, 461=>774, 462=>675, 463=>372, 464=>343, 465=>850, 466=>687, 467=>812, 468=>712, 469=>812, 470=>712, 471=>812, 472=>712,
|
||||
473=>812, 474=>712, 475=>812, 476=>712, 477=>678, 478=>774, 479=>675, 480=>774, 481=>675, 482=>1085, 483=>1048, 484=>821, 485=>716, 486=>821, 487=>716, 488=>775,
|
||||
489=>665, 490=>850, 491=>687, 492=>850, 493=>687, 494=>772, 495=>582, 496=>343, 497=>1555, 498=>1412, 499=>1298, 500=>821, 501=>716, 502=>1289, 503=>787, 504=>837,
|
||||
505=>712, 506=>774, 507=>675, 508=>1085, 509=>1048, 510=>850, 511=>687, 512=>774, 513=>675, 514=>774, 515=>675, 516=>683, 517=>678, 518=>683, 519=>678, 520=>372,
|
||||
521=>343, 522=>372, 523=>343, 524=>850, 525=>687, 526=>850, 527=>687, 528=>770, 529=>493, 530=>770, 531=>493, 532=>812, 533=>712, 534=>812, 535=>712, 536=>720,
|
||||
537=>595, 538=>682, 539=>478, 540=>690, 541=>607, 542=>837, 543=>712, 544=>837, 545=>865, 546=>809, 547=>659, 548=>725, 549=>582, 550=>774, 551=>675, 552=>683,
|
||||
553=>678, 554=>850, 555=>687, 556=>850, 557=>687, 558=>850, 559=>687, 560=>850, 561=>687, 562=>724, 563=>652, 564=>492, 565=>867, 566=>512, 567=>343, 568=>1088,
|
||||
569=>1088, 570=>774, 571=>734, 572=>593, 573=>637, 574=>682, 575=>595, 576=>582, 577=>782, 578=>614, 579=>762, 580=>812, 581=>774, 582=>683, 583=>678, 584=>372,
|
||||
585=>343, 586=>860, 587=>791, 588=>770, 589=>493, 590=>724, 591=>652, 592=>675, 593=>716, 594=>716, 595=>716, 596=>593, 597=>593, 598=>717, 599=>792, 600=>678,
|
||||
601=>678, 602=>876, 603=>557, 604=>545, 605=>815, 606=>731, 607=>343, 608=>792, 609=>716, 610=>627, 611=>735, 612=>635, 613=>712, 614=>712, 615=>712, 616=>545,
|
||||
617=>440, 618=>545, 619=>559, 620=>693, 621=>343, 622=>841, 623=>1042, 624=>1042, 625=>1042, 626=>712, 627=>793, 628=>642, 629=>687, 630=>909, 631=>681, 632=>796,
|
||||
633=>538, 634=>538, 635=>650, 636=>493, 637=>493, 638=>596, 639=>596, 640=>642, 641=>642, 642=>595, 643=>415, 644=>435, 645=>605, 646=>552, 647=>478, 648=>478,
|
||||
649=>920, 650=>769, 651=>670, 652=>652, 653=>924, 654=>652, 655=>724, 656=>694, 657=>684, 658=>641, 659=>641, 660=>573, 661=>573, 662=>573, 663=>573, 664=>850,
|
||||
665=>633, 666=>731, 667=>685, 668=>691, 669=>343, 670=>732, 671=>539, 672=>792, 673=>573, 674=>573, 675=>1156, 676=>1214, 677=>1155, 678=>974, 679=>769, 680=>929,
|
||||
681=>1026, 682=>792, 683=>780, 684=>591, 685=>415, 686=>677, 687=>789, 688=>456, 689=>456, 690=>219, 691=>315, 692=>315, 693=>315, 694=>411, 695=>591, 696=>417,
|
||||
697=>302, 698=>521, 699=>380, 700=>380, 701=>380, 702=>366, 703=>366, 704=>326, 705=>326, 706=>500, 707=>500, 708=>500, 709=>500, 711=>500, 712=>306, 713=>500,
|
||||
714=>500, 715=>500, 716=>306, 717=>500, 718=>500, 719=>500, 720=>337, 721=>337, 722=>366, 723=>366, 724=>500, 725=>500, 726=>500, 727=>500, 728=>500, 729=>500,
|
||||
730=>500, 731=>500, 733=>500, 734=>351, 735=>500, 736=>412, 737=>219, 738=>381, 739=>413, 740=>326, 741=>500, 742=>500, 743=>500, 744=>500, 745=>500, 748=>500,
|
||||
749=>500, 750=>500, 755=>500, 759=>500, 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0,
|
||||
780=>0, 781=>0, 782=>0, 783=>0, 784=>0, 785=>0, 786=>0, 787=>0, 788=>0, 789=>0, 790=>0, 791=>0, 792=>0, 793=>0, 794=>0, 795=>0,
|
||||
796=>0, 797=>0, 798=>0, 799=>0, 800=>0, 801=>0, 802=>0, 803=>0, 804=>0, 805=>0, 806=>0, 807=>0, 808=>0, 809=>0, 810=>0, 811=>0,
|
||||
812=>0, 813=>0, 814=>0, 815=>0, 816=>0, 817=>0, 818=>0, 819=>0, 820=>0, 821=>0, 822=>0, 823=>0, 824=>0, 825=>0, 826=>0, 827=>0,
|
||||
828=>0, 829=>0, 830=>0, 831=>0, 832=>0, 833=>0, 834=>0, 835=>0, 836=>0, 837=>0, 838=>0, 839=>0, 840=>0, 841=>0, 842=>0, 843=>0,
|
||||
844=>0, 845=>0, 846=>0, 847=>0, 849=>0, 850=>0, 851=>0, 855=>0, 856=>0, 860=>0, 861=>0, 862=>0, 863=>0, 864=>0, 865=>0, 866=>0,
|
||||
884=>302, 885=>302, 890=>500, 891=>593, 892=>550, 893=>549, 894=>337, 900=>441, 901=>500, 902=>797, 903=>380, 904=>846, 905=>1009, 906=>563, 908=>891, 910=>980,
|
||||
911=>894, 912=>390, 913=>774, 914=>762, 915=>637, 916=>774, 917=>683, 918=>725, 919=>837, 920=>850, 921=>372, 922=>775, 923=>774, 924=>995, 925=>837, 926=>632,
|
||||
927=>850, 928=>837, 929=>733, 931=>683, 932=>682, 933=>724, 934=>850, 935=>771, 936=>850, 937=>850, 938=>372, 939=>724, 940=>687, 941=>557, 942=>712, 943=>390,
|
||||
944=>675, 945=>687, 946=>716, 947=>681, 948=>687, 949=>557, 950=>591, 951=>712, 952=>687, 953=>390, 954=>710, 955=>633, 956=>736, 957=>681, 958=>591, 959=>687,
|
||||
960=>791, 961=>716, 962=>593, 963=>779, 964=>638, 965=>675, 966=>782, 967=>645, 968=>794, 969=>869, 970=>390, 971=>675, 972=>687, 973=>675, 974=>869, 976=>651,
|
||||
977=>661, 978=>746, 979=>981, 980=>746, 981=>796, 982=>869, 983=>744, 984=>850, 985=>687, 986=>734, 987=>593, 988=>683, 989=>494, 990=>702, 991=>660, 992=>919,
|
||||
993=>627, 994=>1093, 995=>837, 996=>832, 997=>716, 998=>928, 999=>744, 1000=>733, 1001=>650, 1002=>789, 1003=>671, 1004=>752, 1005=>716, 1006=>682, 1007=>590, 1008=>744,
|
||||
1009=>716, 1010=>593, 1011=>343, 1012=>850, 1013=>645, 1014=>644, 1015=>738, 1016=>716, 1017=>734, 1018=>995, 1019=>732, 1020=>716, 1021=>698, 1022=>734, 1023=>698, 1024=>683,
|
||||
1025=>683, 1026=>878, 1028=>734, 1029=>720, 1030=>372, 1031=>372, 1032=>372, 1033=>1154, 1034=>1130, 1035=>878, 1037=>837, 1038=>771, 1040=>774, 1041=>762, 1042=>762, 1043=>637,
|
||||
1044=>891, 1045=>683, 1046=>1224, 1047=>710, 1048=>837, 1049=>837, 1050=>817, 1051=>831, 1052=>995, 1053=>837, 1054=>850, 1055=>837, 1056=>733, 1057=>734, 1058=>682, 1059=>771,
|
||||
1060=>992, 1061=>771, 1062=>928, 1063=>808, 1064=>1235, 1065=>1326, 1066=>939, 1067=>1036, 1068=>762, 1069=>734, 1070=>1174, 1071=>770, 1072=>675, 1073=>698, 1074=>633, 1075=>522,
|
||||
1076=>808, 1077=>678, 1078=>995, 1079=>581, 1080=>701, 1081=>701, 1082=>679, 1083=>732, 1084=>817, 1085=>691, 1086=>687, 1087=>691, 1088=>716, 1089=>593, 1090=>580, 1091=>652,
|
||||
1092=>992, 1093=>645, 1094=>741, 1095=>687, 1096=>1062, 1097=>1105, 1098=>751, 1099=>904, 1100=>632, 1101=>593, 1102=>972, 1103=>642, 1104=>678, 1105=>678, 1106=>714, 1107=>522,
|
||||
1108=>593, 1109=>595, 1110=>343, 1111=>343, 1112=>343, 1113=>991, 1114=>956, 1115=>734, 1117=>701, 1118=>652, 1119=>691, 1120=>1093, 1121=>869, 1122=>840, 1123=>736, 1124=>1012,
|
||||
1125=>839, 1126=>992, 1127=>832, 1128=>1358, 1129=>1121, 1130=>850, 1131=>687, 1132=>1236, 1133=>1007, 1134=>696, 1135=>557, 1136=>1075, 1137=>1061, 1138=>850, 1139=>667, 1140=>850,
|
||||
1141=>695, 1142=>850, 1143=>695, 1144=>1148, 1145=>1043, 1146=>1074, 1147=>863, 1148=>1405, 1149=>1173, 1150=>1093, 1151=>869, 1152=>734, 1153=>593, 1154=>652, 1155=>0, 1156=>0,
|
||||
1157=>0, 1158=>0, 1160=>418, 1161=>418, 1162=>957, 1163=>807, 1164=>762, 1165=>611, 1166=>733, 1167=>716, 1168=>637, 1169=>522, 1170=>666, 1171=>543, 1172=>808, 1173=>669,
|
||||
1174=>1224, 1175=>995, 1176=>710, 1177=>581, 1178=>775, 1179=>679, 1180=>817, 1181=>679, 1182=>817, 1183=>679, 1184=>1015, 1185=>826, 1186=>956, 1187=>808, 1188=>1103, 1189=>874,
|
||||
1190=>1273, 1191=>1017, 1192=>875, 1193=>710, 1194=>734, 1195=>593, 1196=>682, 1197=>580, 1198=>724, 1199=>652, 1200=>724, 1201=>652, 1202=>771, 1203=>645, 1204=>1112, 1205=>1000,
|
||||
1206=>808, 1207=>687, 1208=>808, 1209=>687, 1210=>808, 1211=>712, 1212=>1026, 1213=>810, 1214=>1026, 1215=>810, 1216=>372, 1217=>1224, 1218=>995, 1219=>775, 1220=>630, 1221=>951,
|
||||
1222=>805, 1223=>837, 1224=>691, 1225=>957, 1226=>807, 1227=>808, 1228=>687, 1229=>1115, 1230=>933, 1231=>343, 1232=>774, 1233=>675, 1234=>774, 1235=>675, 1236=>1085, 1237=>1048,
|
||||
1238=>683, 1239=>678, 1240=>849, 1241=>678, 1242=>849, 1243=>678, 1244=>1224, 1245=>995, 1246=>710, 1247=>581, 1248=>772, 1249=>641, 1250=>837, 1251=>701, 1252=>837, 1253=>701,
|
||||
1254=>850, 1255=>687, 1256=>850, 1257=>687, 1258=>850, 1259=>687, 1260=>734, 1261=>593, 1262=>771, 1263=>652, 1264=>771, 1265=>652, 1266=>771, 1267=>652, 1268=>808, 1269=>687,
|
||||
1270=>637, 1271=>522, 1272=>1036, 1273=>904, 1274=>666, 1275=>543, 1276=>771, 1277=>645, 1278=>771, 1279=>645, 1280=>762, 1281=>608, 1282=>1159, 1283=>893, 1284=>1119, 1285=>920,
|
||||
1286=>828, 1287=>693, 1288=>1242, 1289=>1017, 1290=>1248, 1291=>1013, 1292=>839, 1293=>638, 1294=>938, 1295=>803, 1296=>696, 1297=>557, 1298=>831, 1299=>732, 1329=>984, 1330=>812,
|
||||
1331=>984, 1332=>984, 1333=>812, 1334=>777, 1335=>812, 1336=>812, 1337=>975, 1338=>984, 1339=>812, 1340=>710, 1341=>1078, 1342=>1136, 1343=>812, 1344=>710, 1345=>757, 1346=>984,
|
||||
1347=>876, 1348=>984, 1349=>793, 1350=>984, 1351=>812, 1352=>812, 1353=>812, 1354=>958, 1355=>777, 1356=>984, 1357=>812, 1358=>984, 1359=>720, 1360=>812, 1361=>793, 1362=>895,
|
||||
1363=>850, 1364=>936, 1365=>850, 1366=>720, 1369=>366, 1370=>380, 1371=>550, 1372=>550, 1373=>380, 1374=>546, 1375=>521, 1377=>1042, 1378=>712, 1379=>866, 1380=>868, 1381=>712,
|
||||
1382=>817, 1383=>653, 1384=>712, 1385=>811, 1386=>817, 1387=>712, 1388=>498, 1389=>1018, 1390=>716, 1391=>712, 1392=>712, 1393=>716, 1394=>819, 1395=>712, 1396=>751, 1397=>343,
|
||||
1398=>882, 1399=>559, 1400=>712, 1401=>559, 1402=>1042, 1403=>559, 1404=>863, 1405=>712, 1406=>813, 1407=>1042, 1408=>712, 1409=>716, 1410=>571, 1411=>1042, 1412=>778, 1413=>687,
|
||||
1414=>720, 1415=>862, 1417=>400, 1418=>487, 1456=>0, 1457=>0, 1458=>0, 1459=>0, 1460=>0, 1461=>0, 1462=>0, 1463=>0, 1464=>0, 1465=>0, 1467=>0, 1468=>0,
|
||||
1469=>0, 1471=>0, 1472=>372, 1473=>0, 1474=>0, 1475=>372, 1478=>532, 1479=>0, 1488=>751, 1489=>731, 1490=>537, 1491=>684, 1492=>778, 1493=>372, 1494=>521, 1495=>778,
|
||||
1496=>770, 1497=>372, 1498=>778, 1499=>750, 1500=>718, 1501=>778, 1502=>856, 1503=>372, 1504=>532, 1505=>855, 1506=>720, 1507=>802, 1508=>777, 1509=>628, 1510=>751, 1511=>803,
|
||||
1512=>778, 1513=>963, 1514=>822, 1520=>692, 1521=>692, 1522=>692, 1548=>380, 1557=>0, 1563=>400, 1567=>580, 1569=>511, 1570=>343, 1571=>343, 1572=>622, 1573=>343, 1574=>917,
|
||||
1575=>343, 1576=>1005, 1577=>590, 1578=>1005, 1579=>1005, 1580=>721, 1581=>721, 1582=>721, 1583=>513, 1584=>513, 1585=>576, 1586=>576, 1587=>1380, 1588=>1380, 1589=>1345, 1590=>1345,
|
||||
1591=>1039, 1592=>1039, 1593=>683, 1594=>683, 1600=>342, 1601=>1162, 1602=>894, 1603=>917, 1604=>868, 1605=>733, 1606=>854, 1607=>590, 1608=>622, 1609=>917, 1610=>917, 1611=>0,
|
||||
1612=>0, 1613=>0, 1614=>0, 1615=>0, 1616=>0, 1617=>0, 1618=>0, 1619=>0, 1620=>0, 1621=>0, 1626=>500, 1632=>610, 1633=>610, 1634=>610, 1635=>610, 1636=>610,
|
||||
1637=>610, 1638=>610, 1639=>610, 1640=>610, 1641=>610, 1642=>610, 1643=>374, 1644=>380, 1645=>545, 1646=>1005, 1647=>894, 1652=>292, 1657=>1005, 1658=>1005, 1659=>1005, 1660=>1005,
|
||||
1661=>1005, 1662=>1005, 1663=>1005, 1664=>1005, 1665=>721, 1666=>721, 1667=>721, 1668=>721, 1669=>721, 1670=>721, 1671=>721, 1681=>576, 1682=>576, 1685=>681, 1688=>576, 1697=>1162,
|
||||
1700=>1162, 1702=>1162, 1705=>1024, 1711=>1024, 1717=>868, 1722=>854, 1727=>721, 1734=>622, 1740=>917, 1742=>917, 1749=>590, 1776=>610, 1777=>610, 1778=>610, 1779=>610, 1780=>610,
|
||||
1781=>610, 1782=>610, 1783=>610, 1784=>610, 1785=>610, 3647=>743, 3713=>790, 3714=>748, 3716=>749, 3719=>569, 3720=>742, 3722=>744, 3725=>761, 3732=>706, 3733=>704, 3734=>747,
|
||||
3735=>819, 3737=>730, 3738=>727, 3739=>727, 3740=>922, 3741=>827, 3742=>866, 3743=>866, 3745=>836, 3746=>761, 3747=>770, 3749=>769, 3751=>713, 3754=>827, 3755=>1031, 3757=>724,
|
||||
3758=>784, 3759=>934, 3760=>688, 3761=>0, 3762=>610, 3763=>610, 3764=>0, 3765=>0, 3766=>0, 3767=>0, 3768=>0, 3769=>0, 3771=>0, 3772=>0, 3773=>670, 3776=>516,
|
||||
3777=>860, 3778=>516, 3779=>650, 3780=>632, 3782=>759, 3784=>0, 3785=>0, 3786=>0, 3787=>0, 3788=>0, 3789=>0, 3804=>1363, 3805=>1363, 5121=>774, 5122=>774, 5123=>774,
|
||||
5124=>774, 5125=>905, 5126=>905, 5127=>905, 5129=>905, 5130=>905, 5131=>905, 5132=>1018, 5133=>1009, 5134=>1018, 5135=>1009, 5136=>1018, 5137=>1009, 5138=>1149, 5139=>1140, 5140=>1149,
|
||||
5141=>1140, 5142=>905, 5143=>1149, 5144=>1142, 5145=>1149, 5146=>1142, 5147=>905, 5149=>310, 5150=>529, 5151=>425, 5152=>425, 5153=>395, 5154=>395, 5155=>395, 5156=>395, 5157=>564,
|
||||
5158=>470, 5159=>310, 5160=>395, 5161=>395, 5162=>395, 5163=>1213, 5164=>986, 5165=>1216, 5166=>1297, 5167=>774, 5168=>774, 5169=>774, 5170=>774, 5171=>886, 5172=>886, 5173=>886,
|
||||
5175=>886, 5176=>886, 5177=>886, 5178=>1018, 5179=>1009, 5180=>1018, 5181=>1009, 5182=>1018, 5183=>1009, 5184=>1149, 5185=>1140, 5186=>1149, 5187=>1140, 5188=>1149, 5189=>1142, 5190=>1149,
|
||||
5191=>1142, 5192=>886, 5193=>576, 5194=>229, 5196=>812, 5197=>812, 5198=>812, 5199=>812, 5200=>815, 5201=>815, 5202=>815, 5204=>815, 5205=>815, 5206=>815, 5207=>1056, 5208=>1048,
|
||||
5209=>1056, 5210=>1048, 5211=>1056, 5212=>1048, 5213=>1060, 5214=>1054, 5215=>1060, 5216=>1054, 5217=>1060, 5218=>1052, 5219=>1060, 5220=>1052, 5221=>1060, 5222=>483, 5223=>1005, 5224=>1005,
|
||||
5225=>1023, 5226=>1017, 5227=>743, 5228=>743, 5229=>743, 5230=>743, 5231=>743, 5232=>755, 5233=>743, 5234=>743, 5235=>743, 5236=>1029, 5237=>975, 5238=>980, 5239=>975, 5240=>980,
|
||||
5241=>975, 5242=>1029, 5243=>975, 5244=>1029, 5245=>975, 5246=>980, 5247=>975, 5248=>980, 5249=>975, 5250=>980, 5251=>501, 5252=>501, 5253=>938, 5254=>938, 5255=>938, 5256=>938,
|
||||
5257=>743, 5258=>743, 5259=>743, 5260=>743, 5261=>743, 5262=>755, 5263=>743, 5264=>743, 5265=>743, 5266=>1029, 5267=>975, 5268=>1029, 5269=>975, 5270=>1029, 5271=>975, 5272=>1029,
|
||||
5273=>975, 5274=>1029, 5275=>975, 5276=>1029, 5277=>975, 5278=>1029, 5279=>975, 5280=>1029, 5281=>501, 5282=>501, 5283=>626, 5284=>626, 5285=>626, 5286=>626, 5287=>626, 5288=>667,
|
||||
5289=>626, 5290=>626, 5291=>626, 5292=>881, 5293=>854, 5294=>863, 5295=>874, 5296=>863, 5297=>874, 5298=>881, 5299=>874, 5300=>881, 5301=>874, 5302=>863, 5303=>874, 5304=>863,
|
||||
5305=>874, 5306=>863, 5307=>436, 5308=>548, 5309=>436, 5312=>988, 5313=>988, 5314=>988, 5315=>988, 5316=>931, 5317=>931, 5318=>931, 5319=>931, 5320=>931, 5321=>1238, 5322=>1247,
|
||||
5323=>1200, 5324=>1228, 5325=>1200, 5326=>1228, 5327=>931, 5328=>660, 5329=>497, 5330=>660, 5331=>988, 5332=>988, 5333=>988, 5334=>988, 5335=>931, 5336=>931, 5337=>931, 5338=>931,
|
||||
5339=>931, 5340=>1231, 5341=>1247, 5342=>1283, 5343=>1228, 5344=>1283, 5345=>1228, 5346=>1228, 5347=>1214, 5348=>1228, 5349=>1214, 5350=>1283, 5351=>1228, 5352=>1283, 5353=>1228, 5354=>660,
|
||||
5356=>886, 5357=>730, 5358=>730, 5359=>730, 5360=>730, 5361=>730, 5362=>755, 5363=>730, 5364=>730, 5365=>730, 5366=>998, 5367=>958, 5368=>967, 5369=>989, 5370=>967, 5371=>989,
|
||||
5372=>998, 5373=>958, 5374=>998, 5375=>958, 5376=>967, 5377=>989, 5378=>967, 5379=>989, 5380=>967, 5381=>493, 5382=>460, 5383=>493, 5392=>923, 5393=>923, 5394=>923, 5395=>1136,
|
||||
5396=>1136, 5397=>1136, 5398=>1136, 5399=>1209, 5400=>1202, 5401=>1209, 5402=>1202, 5403=>1209, 5404=>1202, 5405=>1431, 5406=>1420, 5407=>1431, 5408=>1420, 5409=>1431, 5410=>1420, 5411=>1431,
|
||||
5412=>1420, 5413=>746, 5414=>776, 5415=>776, 5416=>776, 5417=>776, 5418=>776, 5419=>776, 5420=>776, 5421=>776, 5422=>776, 5423=>1003, 5424=>1003, 5425=>1013, 5426=>996, 5427=>1013,
|
||||
5428=>996, 5429=>1003, 5430=>1003, 5431=>1003, 5432=>1003, 5433=>1013, 5434=>996, 5435=>1013, 5436=>996, 5437=>1013, 5438=>495, 5440=>395, 5441=>510, 5442=>1033, 5443=>1033, 5444=>976,
|
||||
5445=>976, 5446=>976, 5447=>976, 5448=>733, 5449=>733, 5450=>733, 5451=>733, 5452=>733, 5453=>733, 5454=>1003, 5455=>959, 5456=>495, 5458=>886, 5459=>774, 5460=>774, 5461=>774,
|
||||
5462=>774, 5463=>928, 5464=>928, 5465=>928, 5466=>928, 5467=>1172, 5468=>1142, 5469=>602, 5470=>812, 5471=>812, 5472=>812, 5473=>812, 5474=>812, 5475=>812, 5476=>815, 5477=>815,
|
||||
5478=>815, 5479=>815, 5480=>1060, 5481=>1052, 5482=>548, 5492=>977, 5493=>977, 5494=>977, 5495=>977, 5496=>977, 5497=>977, 5498=>977, 5499=>618, 5500=>837, 5501=>510, 5502=>1238,
|
||||
5503=>1238, 5504=>1238, 5505=>1238, 5506=>1238, 5507=>1238, 5508=>1238, 5509=>989, 5514=>977, 5515=>977, 5516=>977, 5517=>977, 5518=>1591, 5519=>1591, 5520=>1591, 5521=>1295, 5522=>1295,
|
||||
5523=>1591, 5524=>1591, 5525=>848, 5526=>1273, 5536=>988, 5537=>988, 5538=>931, 5539=>931, 5540=>931, 5541=>931, 5542=>660, 5543=>776, 5544=>776, 5545=>776, 5546=>776, 5547=>776,
|
||||
5548=>776, 5549=>776, 5550=>495, 5551=>743, 5598=>830, 5601=>830, 5702=>496, 5703=>496, 5742=>413, 5743=>1238, 5744=>1591, 5745=>2016, 5746=>2016, 5747=>1720, 5748=>1678, 5749=>2016,
|
||||
5750=>2016, 7424=>652, 7425=>833, 7426=>1048, 7427=>608, 7428=>593, 7429=>676, 7430=>676, 7431=>559, 7432=>557, 7433=>343, 7434=>494, 7435=>665, 7436=>539, 7437=>817, 7438=>701,
|
||||
7439=>687, 7440=>593, 7441=>660, 7442=>660, 7443=>660, 7444=>1094, 7446=>687, 7447=>687, 7448=>556, 7449=>642, 7450=>642, 7451=>580, 7452=>634, 7453=>737, 7454=>948, 7455=>695,
|
||||
7456=>652, 7457=>924, 7458=>582, 7459=>646, 7462=>539, 7463=>652, 7464=>691, 7465=>556, 7466=>781, 7467=>732, 7468=>487, 7469=>683, 7470=>480, 7472=>523, 7473=>430, 7474=>430,
|
||||
7475=>517, 7476=>527, 7477=>234, 7478=>234, 7479=>488, 7480=>401, 7481=>626, 7482=>527, 7483=>527, 7484=>535, 7485=>509, 7486=>461, 7487=>485, 7488=>430, 7489=>511, 7490=>695,
|
||||
7491=>458, 7492=>458, 7493=>479, 7494=>712, 7495=>479, 7496=>479, 7497=>479, 7498=>479, 7499=>386, 7500=>386, 7501=>479, 7502=>219, 7503=>487, 7504=>664, 7505=>456, 7506=>488,
|
||||
7507=>414, 7508=>488, 7509=>488, 7510=>479, 7511=>388, 7512=>456, 7513=>462, 7514=>664, 7515=>501, 7517=>451, 7518=>429, 7519=>433, 7520=>493, 7521=>406, 7522=>219, 7523=>315,
|
||||
7524=>456, 7525=>501, 7526=>451, 7527=>429, 7528=>433, 7529=>493, 7530=>406, 7543=>716, 7544=>527, 7547=>545, 7557=>514, 7579=>479, 7580=>414, 7581=>414, 7582=>488, 7583=>386,
|
||||
7584=>377, 7585=>348, 7586=>479, 7587=>456, 7588=>347, 7589=>281, 7590=>347, 7591=>347, 7592=>431, 7593=>326, 7594=>330, 7595=>370, 7596=>664, 7597=>664, 7598=>562, 7599=>562,
|
||||
7600=>448, 7601=>488, 7602=>542, 7603=>422, 7604=>396, 7605=>388, 7606=>583, 7607=>494, 7608=>399, 7609=>451, 7610=>501, 7611=>417, 7612=>523, 7613=>470, 7614=>455, 7615=>425,
|
||||
7620=>0, 7621=>0, 7622=>0, 7623=>0, 7624=>0, 7625=>0, 7680=>774, 7681=>675, 7682=>762, 7683=>716, 7684=>762, 7685=>716, 7686=>762, 7687=>716, 7688=>734, 7689=>593,
|
||||
7690=>830, 7691=>716, 7692=>830, 7693=>716, 7694=>830, 7695=>716, 7696=>830, 7697=>716, 7698=>830, 7699=>716, 7700=>683, 7701=>678, 7702=>683, 7703=>678, 7704=>683, 7705=>678,
|
||||
7706=>683, 7707=>678, 7708=>683, 7709=>678, 7710=>683, 7711=>435, 7712=>821, 7713=>716, 7714=>837, 7715=>712, 7716=>837, 7717=>712, 7718=>837, 7719=>712, 7720=>837, 7721=>712,
|
||||
7722=>837, 7723=>712, 7724=>372, 7725=>343, 7726=>372, 7727=>343, 7728=>775, 7729=>665, 7730=>775, 7731=>665, 7732=>775, 7733=>665, 7734=>637, 7735=>343, 7736=>637, 7737=>343,
|
||||
7738=>637, 7739=>343, 7740=>637, 7741=>343, 7742=>995, 7743=>1042, 7744=>995, 7745=>1042, 7746=>995, 7747=>1042, 7748=>837, 7749=>712, 7750=>837, 7751=>712, 7752=>837, 7753=>712,
|
||||
7754=>837, 7755=>712, 7756=>850, 7757=>687, 7758=>850, 7759=>687, 7760=>850, 7761=>687, 7762=>850, 7763=>687, 7764=>733, 7765=>716, 7766=>733, 7767=>716, 7768=>770, 7769=>493,
|
||||
7770=>770, 7771=>493, 7772=>770, 7773=>493, 7774=>770, 7775=>493, 7776=>720, 7777=>595, 7778=>720, 7779=>595, 7780=>720, 7781=>595, 7782=>720, 7783=>595, 7784=>720, 7785=>595,
|
||||
7786=>682, 7787=>478, 7788=>682, 7789=>478, 7790=>682, 7791=>478, 7792=>682, 7793=>478, 7794=>812, 7795=>712, 7796=>812, 7797=>712, 7798=>812, 7799=>712, 7800=>812, 7801=>712,
|
||||
7802=>812, 7803=>712, 7804=>774, 7805=>652, 7806=>774, 7807=>652, 7808=>1103, 7809=>924, 7810=>1103, 7811=>924, 7812=>1103, 7813=>924, 7814=>1103, 7815=>924, 7816=>1103, 7817=>924,
|
||||
7818=>771, 7819=>645, 7820=>771, 7821=>645, 7822=>724, 7823=>652, 7824=>725, 7825=>582, 7826=>725, 7827=>582, 7828=>725, 7829=>582, 7830=>712, 7831=>478, 7832=>924, 7833=>652,
|
||||
7834=>675, 7835=>435, 7840=>774, 7841=>675, 7842=>774, 7843=>675, 7844=>774, 7845=>675, 7846=>774, 7847=>675, 7848=>774, 7849=>675, 7850=>774, 7851=>675, 7852=>774, 7853=>675,
|
||||
7854=>774, 7855=>675, 7856=>774, 7857=>675, 7858=>774, 7859=>675, 7860=>774, 7861=>675, 7862=>774, 7863=>675, 7864=>683, 7865=>678, 7866=>683, 7867=>678, 7868=>683, 7869=>678,
|
||||
7870=>683, 7871=>678, 7872=>683, 7873=>678, 7874=>683, 7875=>678, 7876=>683, 7877=>678, 7878=>683, 7879=>678, 7880=>372, 7881=>343, 7882=>372, 7883=>343, 7884=>850, 7885=>687,
|
||||
7886=>850, 7887=>687, 7888=>850, 7889=>687, 7890=>850, 7891=>687, 7892=>850, 7893=>687, 7894=>850, 7895=>687, 7896=>850, 7897=>687, 7898=>874, 7899=>687, 7900=>874, 7901=>687,
|
||||
7902=>874, 7903=>687, 7904=>874, 7905=>687, 7906=>874, 7907=>687, 7908=>812, 7909=>712, 7910=>812, 7911=>712, 7912=>835, 7913=>712, 7914=>835, 7915=>712, 7916=>835, 7917=>712,
|
||||
7918=>835, 7919=>712, 7920=>835, 7921=>712, 7922=>724, 7923=>652, 7924=>724, 7925=>652, 7926=>724, 7927=>652, 7928=>724, 7929=>652, 7936=>687, 7937=>687, 7938=>687, 7939=>687,
|
||||
7940=>687, 7941=>687, 7942=>687, 7943=>687, 7944=>774, 7945=>774, 7946=>1041, 7947=>1043, 7948=>935, 7949=>963, 7950=>835, 7951=>859, 7952=>557, 7953=>557, 7954=>557, 7955=>557,
|
||||
7956=>557, 7957=>557, 7960=>792, 7961=>794, 7962=>1100, 7963=>1096, 7964=>1023, 7965=>1052, 7968=>712, 7969=>712, 7970=>712, 7971=>712, 7972=>712, 7973=>712, 7974=>712, 7975=>712,
|
||||
7976=>945, 7977=>951, 7978=>1250, 7979=>1250, 7980=>1180, 7981=>1206, 7982=>1054, 7983=>1063, 7984=>390, 7985=>390, 7986=>390, 7987=>390, 7988=>390, 7989=>390, 7990=>390, 7991=>390,
|
||||
7992=>483, 7993=>489, 7994=>777, 7995=>785, 7996=>712, 7997=>738, 7998=>604, 7999=>604, 8000=>687, 8001=>687, 8002=>687, 8003=>687, 8004=>687, 8005=>687, 8008=>892, 8009=>933,
|
||||
8010=>1221, 8011=>1224, 8012=>1053, 8013=>1082, 8016=>675, 8017=>675, 8018=>675, 8019=>675, 8020=>675, 8021=>675, 8022=>675, 8023=>675, 8025=>930, 8027=>1184, 8029=>1199, 8031=>1049,
|
||||
8032=>869, 8033=>869, 8034=>869, 8035=>869, 8036=>869, 8037=>869, 8038=>869, 8039=>869, 8040=>909, 8041=>958, 8042=>1246, 8043=>1251, 8044=>1076, 8045=>1105, 8046=>1028, 8047=>1076,
|
||||
8048=>687, 8049=>687, 8050=>557, 8051=>557, 8052=>712, 8053=>712, 8054=>390, 8055=>390, 8056=>687, 8057=>687, 8058=>675, 8059=>675, 8060=>869, 8061=>869, 8064=>687, 8065=>687,
|
||||
8066=>687, 8067=>687, 8068=>687, 8069=>687, 8070=>687, 8071=>687, 8072=>774, 8073=>774, 8074=>1041, 8075=>1043, 8076=>935, 8077=>963, 8078=>835, 8079=>859, 8080=>712, 8081=>712,
|
||||
8082=>712, 8083=>712, 8084=>712, 8085=>712, 8086=>712, 8087=>712, 8088=>945, 8089=>951, 8090=>1250, 8091=>1250, 8092=>1180, 8093=>1206, 8094=>1054, 8095=>1063, 8096=>869, 8097=>869,
|
||||
8098=>869, 8099=>869, 8100=>869, 8101=>869, 8102=>869, 8103=>869, 8104=>909, 8105=>958, 8106=>1246, 8107=>1251, 8108=>1076, 8109=>1105, 8110=>1028, 8111=>1076, 8112=>687, 8113=>687,
|
||||
8114=>687, 8115=>687, 8116=>687, 8118=>687, 8119=>687, 8120=>774, 8121=>774, 8122=>876, 8123=>797, 8124=>774, 8125=>500, 8126=>500, 8127=>500, 8128=>500, 8129=>500, 8130=>712,
|
||||
8131=>712, 8132=>712, 8134=>712, 8135=>712, 8136=>929, 8137=>846, 8138=>1080, 8139=>1009, 8140=>837, 8141=>500, 8142=>500, 8143=>500, 8144=>390, 8145=>390, 8146=>390, 8147=>390,
|
||||
8150=>390, 8151=>390, 8152=>372, 8153=>372, 8154=>621, 8155=>563, 8157=>500, 8158=>500, 8159=>500, 8160=>675, 8161=>675, 8162=>675, 8163=>675, 8164=>716, 8165=>716, 8166=>675,
|
||||
8167=>675, 8168=>724, 8169=>724, 8170=>1020, 8171=>980, 8172=>838, 8173=>500, 8174=>500, 8175=>500, 8178=>869, 8179=>869, 8180=>869, 8182=>869, 8183=>869, 8184=>1065, 8185=>891,
|
||||
8186=>1084, 8187=>894, 8188=>850, 8189=>500, 8190=>500, 8192=>500, 8193=>1000, 8194=>500, 8195=>1000, 8196=>330, 8197=>250, 8198=>167, 8199=>696, 8200=>380, 8201=>200, 8202=>100,
|
||||
8203=>0, 8204=>0, 8205=>0, 8206=>0, 8207=>0, 8208=>415, 8209=>415, 8210=>696, 8213=>1000, 8214=>500, 8215=>500, 8219=>380, 8223=>657, 8227=>639, 8228=>333, 8229=>667,
|
||||
8231=>348, 8234=>0, 8235=>0, 8236=>0, 8237=>0, 8238=>0, 8239=>200, 8241=>1887, 8242=>264, 8243=>447, 8244=>630, 8245=>264, 8246=>447, 8247=>630, 8248=>733, 8251=>972,
|
||||
8252=>627, 8253=>580, 8254=>500, 8255=>828, 8256=>828, 8257=>329, 8258=>1023, 8259=>500, 8260=>456, 8261=>457, 8262=>457, 8263=>1030, 8264=>829, 8265=>829, 8266=>513, 8267=>636,
|
||||
8268=>500, 8269=>500, 8270=>523, 8271=>400, 8272=>828, 8273=>523, 8274=>556, 8275=>838, 8276=>828, 8277=>838, 8278=>684, 8279=>813, 8280=>838, 8281=>838, 8282=>380, 8283=>872,
|
||||
8284=>838, 8285=>380, 8286=>380, 8287=>222, 8288=>0, 8289=>0, 8290=>0, 8291=>0, 8298=>0, 8299=>0, 8300=>0, 8301=>0, 8302=>0, 8303=>0, 8304=>438, 8305=>219,
|
||||
8308=>438, 8309=>438, 8310=>438, 8311=>438, 8312=>438, 8313=>438, 8314=>528, 8315=>528, 8316=>528, 8317=>288, 8318=>288, 8319=>456, 8320=>438, 8321=>438, 8322=>438, 8323=>438,
|
||||
8324=>438, 8325=>438, 8326=>438, 8327=>438, 8328=>438, 8329=>438, 8330=>528, 8331=>528, 8332=>528, 8333=>288, 8334=>288, 8336=>458, 8337=>479, 8338=>488, 8339=>413, 8340=>479,
|
||||
8352=>929, 8353=>696, 8354=>696, 8355=>696, 8356=>696, 8357=>1042, 8358=>837, 8359=>1518, 8360=>1205, 8361=>1103, 8362=>904, 8363=>696, 8365=>696, 8366=>682, 8367=>1392, 8368=>696,
|
||||
8369=>696, 8370=>696, 8371=>696, 8372=>859, 8373=>696, 8400=>0, 8401=>0, 8406=>0, 8407=>0, 8448=>1120, 8449=>1170, 8450=>734, 8451=>1211, 8452=>896, 8453=>1091, 8454=>1144,
|
||||
8455=>614, 8456=>698, 8457=>1086, 8459=>1073, 8460=>913, 8461=>850, 8462=>712, 8463=>712, 8464=>604, 8465=>694, 8466=>868, 8467=>472, 8468=>974, 8469=>837, 8470=>1203, 8471=>1000,
|
||||
8472=>697, 8473=>702, 8474=>850, 8475=>876, 8476=>814, 8477=>792, 8478=>896, 8479=>710, 8480=>1020, 8481=>1281, 8483=>755, 8484=>725, 8485=>578, 8486=>850, 8487=>769, 8488=>763,
|
||||
8489=>338, 8490=>775, 8491=>774, 8492=>928, 8493=>776, 8494=>854, 8495=>636, 8496=>738, 8497=>811, 8498=>683, 8499=>1193, 8500=>465, 8501=>794, 8502=>736, 8503=>503, 8504=>695,
|
||||
8505=>380, 8506=>945, 8507=>1348, 8508=>790, 8509=>737, 8510=>652, 8511=>845, 8512=>840, 8513=>775, 8514=>557, 8515=>637, 8516=>760, 8517=>830, 8518=>716, 8519=>678, 8520=>343,
|
||||
8521=>343, 8523=>872, 8526=>547, 8531=>1035, 8532=>1035, 8533=>1035, 8534=>1035, 8535=>1035, 8536=>1035, 8537=>1035, 8538=>1035, 8539=>1035, 8540=>1035, 8541=>1035, 8542=>1035, 8543=>615,
|
||||
8544=>372, 8545=>659, 8546=>945, 8547=>1099, 8548=>774, 8549=>1099, 8550=>1386, 8551=>1672, 8552=>1121, 8553=>771, 8554=>1120, 8555=>1407, 8556=>637, 8557=>734, 8558=>830, 8559=>995,
|
||||
8560=>343, 8561=>607, 8562=>872, 8563=>984, 8564=>652, 8565=>962, 8566=>1227, 8567=>1491, 8568=>969, 8569=>645, 8570=>969, 8571=>1233, 8572=>343, 8573=>593, 8574=>716, 8575=>1042,
|
||||
8576=>1289, 8577=>830, 8578=>1289, 8579=>734, 8580=>593, 8592=>838, 8593=>838, 8594=>838, 8595=>838, 8596=>838, 8597=>838, 8598=>838, 8599=>838, 8600=>838, 8601=>838, 8602=>838,
|
||||
8603=>838, 8604=>838, 8605=>838, 8606=>838, 8607=>838, 8608=>838, 8609=>838, 8610=>838, 8611=>838, 8612=>838, 8613=>838, 8614=>838, 8615=>838, 8616=>838, 8617=>838, 8618=>838,
|
||||
8619=>838, 8620=>838, 8621=>838, 8622=>838, 8623=>838, 8624=>838, 8625=>838, 8626=>838, 8627=>838, 8628=>838, 8629=>838, 8630=>838, 8631=>838, 8632=>838, 8633=>838, 8634=>838,
|
||||
8635=>838, 8636=>838, 8637=>838, 8638=>838, 8639=>838, 8640=>838, 8641=>838, 8642=>838, 8643=>838, 8644=>838, 8645=>838, 8646=>838, 8647=>838, 8648=>838, 8649=>838, 8650=>838,
|
||||
8651=>838, 8652=>838, 8653=>838, 8654=>838, 8655=>838, 8656=>838, 8657=>838, 8658=>838, 8659=>838, 8660=>838, 8661=>838, 8662=>838, 8663=>838, 8664=>838, 8665=>838, 8666=>838,
|
||||
8667=>838, 8668=>838, 8669=>838, 8670=>838, 8671=>838, 8672=>838, 8673=>838, 8674=>838, 8675=>838, 8676=>838, 8677=>838, 8678=>838, 8679=>838, 8680=>838, 8681=>838, 8682=>838,
|
||||
8683=>838, 8684=>838, 8685=>838, 8686=>838, 8687=>838, 8688=>838, 8689=>838, 8690=>838, 8691=>838, 8692=>838, 8693=>838, 8694=>838, 8695=>838, 8696=>838, 8697=>838, 8698=>838,
|
||||
8699=>838, 8700=>838, 8701=>838, 8702=>838, 8703=>838, 8704=>774, 8705=>696, 8706=>544, 8707=>683, 8708=>683, 8709=>856, 8710=>697, 8711=>697, 8712=>896, 8713=>896, 8714=>750,
|
||||
8715=>896, 8716=>896, 8717=>750, 8718=>636, 8719=>787, 8720=>787, 8721=>718, 8722=>838, 8723=>838, 8724=>696, 8725=>167, 8726=>696, 8727=>838, 8728=>626, 8729=>380, 8730=>667,
|
||||
8731=>667, 8732=>667, 8733=>669, 8734=>833, 8735=>838, 8736=>896, 8737=>896, 8738=>838, 8739=>500, 8740=>500, 8741=>500, 8742=>500, 8743=>812, 8744=>812, 8745=>812, 8746=>812,
|
||||
8747=>610, 8748=>929, 8749=>1295, 8750=>563, 8751=>977, 8752=>1313, 8753=>563, 8754=>563, 8755=>563, 8756=>696, 8757=>696, 8758=>294, 8759=>696, 8760=>838, 8761=>838, 8762=>838,
|
||||
8763=>838, 8764=>838, 8765=>838, 8766=>838, 8767=>838, 8768=>375, 8769=>838, 8770=>838, 8771=>838, 8772=>838, 8773=>838, 8774=>838, 8775=>838, 8776=>838, 8777=>838, 8778=>838,
|
||||
8779=>838, 8780=>838, 8781=>838, 8782=>838, 8783=>838, 8784=>838, 8785=>838, 8786=>838, 8787=>838, 8788=>1063, 8789=>1063, 8790=>838, 8791=>838, 8792=>838, 8793=>838, 8794=>838,
|
||||
8795=>838, 8796=>838, 8797=>838, 8798=>838, 8799=>838, 8800=>838, 8801=>838, 8802=>838, 8803=>838, 8804=>838, 8805=>838, 8806=>838, 8807=>838, 8808=>841, 8809=>841, 8810=>1047,
|
||||
8811=>1047, 8812=>500, 8813=>838, 8814=>838, 8815=>838, 8816=>838, 8817=>838, 8818=>838, 8819=>838, 8820=>838, 8821=>838, 8822=>838, 8823=>838, 8824=>838, 8825=>838, 8826=>838,
|
||||
8827=>838, 8828=>838, 8829=>838, 8830=>838, 8831=>838, 8832=>838, 8833=>838, 8834=>838, 8835=>838, 8836=>838, 8837=>838, 8838=>838, 8839=>838, 8840=>838, 8841=>838, 8842=>838,
|
||||
8843=>838, 8844=>812, 8845=>812, 8846=>812, 8847=>838, 8848=>838, 8849=>838, 8850=>838, 8851=>754, 8852=>754, 8853=>838, 8854=>838, 8855=>838, 8856=>838, 8857=>838, 8858=>838,
|
||||
8859=>838, 8860=>838, 8861=>838, 8862=>838, 8863=>838, 8864=>838, 8865=>838, 8866=>914, 8867=>914, 8868=>914, 8869=>914, 8870=>542, 8871=>542, 8872=>914, 8873=>914, 8874=>914,
|
||||
8875=>914, 8876=>914, 8877=>914, 8878=>914, 8879=>914, 8882=>838, 8883=>838, 8884=>838, 8885=>838, 8886=>1000, 8887=>1000, 8888=>838, 8889=>838, 8890=>542, 8891=>812, 8892=>812,
|
||||
8893=>812, 8896=>843, 8897=>843, 8898=>843, 8899=>843, 8900=>494, 8901=>380, 8902=>626, 8904=>1000, 8905=>1000, 8906=>1000, 8907=>1000, 8908=>1000, 8909=>838, 8918=>838, 8919=>838,
|
||||
8920=>1422, 8921=>1422, 8922=>838, 8923=>838, 8924=>838, 8925=>838, 8926=>838, 8927=>838, 8928=>838, 8929=>838, 8930=>838, 8931=>838, 8932=>838, 8933=>838, 8934=>838, 8935=>838,
|
||||
8936=>838, 8937=>838, 8938=>838, 8939=>838, 8940=>838, 8941=>838, 8946=>1158, 8947=>896, 8948=>750, 8949=>896, 8950=>896, 8951=>750, 8952=>896, 8953=>896, 8954=>1158, 8955=>896,
|
||||
8956=>750, 8957=>896, 8958=>750, 8959=>896, 8962=>716, 8966=>917, 8968=>457, 8969=>457, 8970=>457, 8971=>457, 8976=>838, 8977=>539, 8984=>928, 8985=>838, 8992=>610, 8993=>610,
|
||||
8997=>1000, 9000=>1443, 9085=>863, 9115=>500, 9116=>500, 9117=>500, 9118=>500, 9119=>500, 9120=>500, 9121=>500, 9122=>500, 9123=>500, 9124=>500, 9125=>500, 9126=>500, 9127=>750,
|
||||
9128=>750, 9129=>750, 9130=>750, 9131=>750, 9132=>750, 9133=>750, 9134=>610, 9166=>838, 9167=>945, 9250=>716, 9251=>716, 9312=>847, 9313=>847, 9314=>847, 9315=>847, 9316=>847,
|
||||
9317=>847, 9318=>847, 9319=>847, 9320=>847, 9321=>847, 9600=>769, 9601=>769, 9602=>769, 9603=>769, 9604=>769, 9605=>769, 9606=>769, 9607=>769, 9608=>769, 9609=>769, 9610=>769,
|
||||
9611=>769, 9612=>769, 9613=>769, 9614=>769, 9615=>769, 9616=>769, 9617=>769, 9618=>769, 9619=>769, 9620=>769, 9621=>769, 9622=>769, 9623=>769, 9624=>769, 9625=>769, 9626=>769,
|
||||
9627=>769, 9628=>769, 9629=>769, 9630=>769, 9631=>769, 9632=>945, 9633=>945, 9634=>945, 9635=>945, 9636=>945, 9637=>945, 9638=>945, 9639=>945, 9640=>945, 9641=>945, 9642=>678,
|
||||
9643=>678, 9644=>945, 9645=>945, 9646=>550, 9647=>550, 9648=>769, 9649=>769, 9650=>769, 9651=>769, 9652=>502, 9653=>502, 9654=>769, 9655=>769, 9656=>502, 9657=>502, 9658=>769,
|
||||
9659=>769, 9660=>769, 9661=>769, 9662=>502, 9663=>502, 9664=>769, 9665=>769, 9666=>502, 9667=>502, 9668=>769, 9669=>769, 9670=>769, 9671=>769, 9672=>769, 9673=>873, 9674=>494,
|
||||
9675=>873, 9676=>873, 9677=>873, 9678=>873, 9679=>873, 9680=>873, 9681=>873, 9682=>873, 9683=>873, 9684=>873, 9685=>873, 9686=>527, 9687=>527, 9688=>840, 9689=>970, 9690=>970,
|
||||
9691=>970, 9692=>387, 9693=>387, 9694=>387, 9695=>387, 9696=>769, 9697=>769, 9698=>769, 9699=>769, 9700=>769, 9701=>769, 9702=>639, 9703=>945, 9704=>945, 9705=>945, 9706=>945,
|
||||
9707=>945, 9708=>769, 9709=>769, 9710=>769, 9711=>1119, 9712=>945, 9713=>945, 9714=>945, 9715=>945, 9716=>873, 9717=>873, 9718=>873, 9719=>873, 9720=>769, 9721=>769, 9722=>769,
|
||||
9723=>830, 9724=>830, 9725=>732, 9726=>732, 9727=>769, 9728=>896, 9729=>1000, 9730=>896, 9731=>896, 9732=>896, 9733=>896, 9734=>896, 9735=>573, 9736=>896, 9737=>896, 9738=>888,
|
||||
9739=>888, 9740=>671, 9741=>1013, 9742=>1246, 9743=>1250, 9744=>896, 9745=>896, 9746=>896, 9747=>532, 9748=>896, 9749=>896, 9750=>896, 9751=>896, 9752=>896, 9753=>896, 9754=>896,
|
||||
9755=>896, 9756=>896, 9757=>609, 9758=>896, 9759=>609, 9760=>896, 9761=>896, 9762=>896, 9763=>896, 9764=>669, 9765=>746, 9766=>649, 9767=>784, 9768=>545, 9769=>896, 9770=>896,
|
||||
9771=>896, 9772=>710, 9773=>896, 9774=>896, 9775=>896, 9776=>896, 9777=>896, 9778=>896, 9779=>896, 9780=>896, 9781=>896, 9782=>896, 9783=>896, 9784=>896, 9785=>896, 9786=>896,
|
||||
9787=>896, 9788=>896, 9789=>896, 9790=>896, 9791=>614, 9792=>731, 9793=>731, 9794=>896, 9795=>896, 9796=>896, 9797=>896, 9798=>896, 9799=>896, 9800=>896, 9801=>896, 9802=>896,
|
||||
9803=>896, 9804=>896, 9805=>896, 9806=>896, 9807=>896, 9808=>896, 9809=>896, 9810=>896, 9811=>896, 9812=>896, 9813=>896, 9814=>896, 9815=>896, 9816=>896, 9817=>896, 9818=>896,
|
||||
9819=>896, 9820=>896, 9821=>896, 9822=>896, 9823=>896, 9824=>896, 9825=>896, 9826=>896, 9827=>896, 9828=>896, 9829=>896, 9830=>896, 9831=>896, 9832=>896, 9833=>472, 9834=>638,
|
||||
9835=>896, 9836=>896, 9837=>472, 9838=>357, 9839=>484, 9840=>748, 9841=>766, 9842=>896, 9843=>896, 9844=>896, 9845=>896, 9846=>896, 9847=>896, 9848=>896, 9849=>896, 9850=>896,
|
||||
9851=>896, 9852=>896, 9853=>896, 9854=>896, 9855=>896, 9856=>869, 9857=>869, 9858=>869, 9859=>869, 9860=>869, 9861=>869, 9862=>896, 9863=>896, 9864=>896, 9865=>896, 9866=>896,
|
||||
9867=>896, 9868=>896, 9869=>896, 9870=>896, 9871=>896, 9872=>896, 9873=>896, 9874=>896, 9875=>896, 9876=>896, 9877=>541, 9878=>896, 9879=>896, 9880=>896, 9881=>896, 9882=>896,
|
||||
9883=>896, 9884=>896, 9888=>896, 9889=>702, 9890=>838, 9891=>838, 9892=>838, 9893=>838, 9894=>838, 9895=>838, 9896=>838, 9897=>838, 9898=>838, 9899=>838, 9900=>838, 9901=>838,
|
||||
9902=>838, 9903=>838, 9904=>844, 9905=>838, 9906=>731, 9985=>838, 9986=>838, 9987=>838, 9988=>838, 9990=>838, 9991=>838, 9992=>838, 9993=>838, 9996=>838, 9997=>838, 9998=>838,
|
||||
9999=>838, 10000=>838, 10001=>838, 10002=>838, 10003=>838, 10004=>838, 10005=>838, 10006=>838, 10007=>838, 10008=>838, 10009=>838, 10010=>838, 10011=>838, 10012=>838, 10013=>838, 10014=>838,
|
||||
10015=>838, 10016=>838, 10017=>838, 10018=>838, 10019=>838, 10020=>838, 10021=>838, 10022=>838, 10023=>838, 10025=>838, 10026=>838, 10027=>838, 10028=>838, 10029=>838, 10030=>838, 10031=>838,
|
||||
10032=>838, 10033=>838, 10034=>838, 10035=>838, 10036=>838, 10037=>838, 10038=>838, 10039=>838, 10040=>838, 10041=>838, 10042=>838, 10043=>838, 10044=>838, 10045=>838, 10046=>838, 10047=>838,
|
||||
10048=>838, 10049=>838, 10050=>838, 10051=>838, 10052=>838, 10053=>838, 10054=>838, 10055=>838, 10056=>838, 10057=>838, 10058=>838, 10059=>838, 10061=>896, 10063=>896, 10064=>896, 10065=>896,
|
||||
10066=>896, 10070=>896, 10072=>838, 10073=>838, 10074=>838, 10075=>347, 10076=>347, 10077=>587, 10078=>587, 10081=>838, 10082=>838, 10083=>838, 10084=>838, 10085=>838, 10086=>838, 10087=>838,
|
||||
10088=>838, 10089=>838, 10090=>838, 10091=>838, 10092=>838, 10093=>838, 10094=>838, 10095=>838, 10096=>838, 10097=>838, 10098=>838, 10099=>838, 10100=>838, 10101=>838, 10102=>847, 10103=>847,
|
||||
10104=>847, 10105=>847, 10106=>847, 10107=>847, 10108=>847, 10109=>847, 10110=>847, 10111=>847, 10112=>838, 10113=>838, 10114=>838, 10115=>838, 10116=>838, 10117=>838, 10118=>838, 10119=>838,
|
||||
10120=>838, 10121=>838, 10122=>838, 10123=>838, 10124=>838, 10125=>838, 10126=>838, 10127=>838, 10128=>838, 10129=>838, 10130=>838, 10131=>838, 10132=>838, 10136=>838, 10137=>838, 10138=>838,
|
||||
10139=>838, 10140=>838, 10141=>838, 10142=>838, 10143=>838, 10144=>838, 10145=>838, 10146=>838, 10147=>838, 10148=>838, 10149=>838, 10150=>838, 10151=>838, 10152=>838, 10153=>838, 10154=>838,
|
||||
10155=>838, 10156=>838, 10157=>838, 10158=>838, 10159=>838, 10161=>838, 10162=>838, 10163=>838, 10164=>838, 10165=>838, 10166=>838, 10167=>838, 10168=>838, 10169=>838, 10170=>838, 10171=>838,
|
||||
10172=>838, 10173=>838, 10174=>838, 10208=>494, 10214=>487, 10215=>487, 10216=>457, 10217=>457, 10218=>721, 10219=>721, 10224=>838, 10225=>838, 10226=>838, 10227=>838, 10228=>1157, 10229=>1434,
|
||||
10230=>1434, 10231=>1434, 10232=>1434, 10233=>1434, 10234=>1434, 10235=>1434, 10236=>1434, 10237=>1434, 10238=>1434, 10239=>1434, 10240=>781, 10241=>781, 10242=>781, 10243=>781, 10244=>781, 10245=>781,
|
||||
10246=>781, 10247=>781, 10248=>781, 10249=>781, 10250=>781, 10251=>781, 10252=>781, 10253=>781, 10254=>781, 10255=>781, 10256=>781, 10257=>781, 10258=>781, 10259=>781, 10260=>781, 10261=>781,
|
||||
10262=>781, 10263=>781, 10264=>781, 10265=>781, 10266=>781, 10267=>781, 10268=>781, 10269=>781, 10270=>781, 10271=>781, 10272=>781, 10273=>781, 10274=>781, 10275=>781, 10276=>781, 10277=>781,
|
||||
10278=>781, 10279=>781, 10280=>781, 10281=>781, 10282=>781, 10283=>781, 10284=>781, 10285=>781, 10286=>781, 10287=>781, 10288=>781, 10289=>781, 10290=>781, 10291=>781, 10292=>781, 10293=>781,
|
||||
10294=>781, 10295=>781, 10296=>781, 10297=>781, 10298=>781, 10299=>781, 10300=>781, 10301=>781, 10302=>781, 10303=>781, 10304=>781, 10305=>781, 10306=>781, 10307=>781, 10308=>781, 10309=>781,
|
||||
10310=>781, 10311=>781, 10312=>781, 10313=>781, 10314=>781, 10315=>781, 10316=>781, 10317=>781, 10318=>781, 10319=>781, 10320=>781, 10321=>781, 10322=>781, 10323=>781, 10324=>781, 10325=>781,
|
||||
10326=>781, 10327=>781, 10328=>781, 10329=>781, 10330=>781, 10331=>781, 10332=>781, 10333=>781, 10334=>781, 10335=>781, 10336=>781, 10337=>781, 10338=>781, 10339=>781, 10340=>781, 10341=>781,
|
||||
10342=>781, 10343=>781, 10344=>781, 10345=>781, 10346=>781, 10347=>781, 10348=>781, 10349=>781, 10350=>781, 10351=>781, 10352=>781, 10353=>781, 10354=>781, 10355=>781, 10356=>781, 10357=>781,
|
||||
10358=>781, 10359=>781, 10360=>781, 10361=>781, 10362=>781, 10363=>781, 10364=>781, 10365=>781, 10366=>781, 10367=>781, 10368=>781, 10369=>781, 10370=>781, 10371=>781, 10372=>781, 10373=>781,
|
||||
10374=>781, 10375=>781, 10376=>781, 10377=>781, 10378=>781, 10379=>781, 10380=>781, 10381=>781, 10382=>781, 10383=>781, 10384=>781, 10385=>781, 10386=>781, 10387=>781, 10388=>781, 10389=>781,
|
||||
10390=>781, 10391=>781, 10392=>781, 10393=>781, 10394=>781, 10395=>781, 10396=>781, 10397=>781, 10398=>781, 10399=>781, 10400=>781, 10401=>781, 10402=>781, 10403=>781, 10404=>781, 10405=>781,
|
||||
10406=>781, 10407=>781, 10408=>781, 10409=>781, 10410=>781, 10411=>781, 10412=>781, 10413=>781, 10414=>781, 10415=>781, 10416=>781, 10417=>781, 10418=>781, 10419=>781, 10420=>781, 10421=>781,
|
||||
10422=>781, 10423=>781, 10424=>781, 10425=>781, 10426=>781, 10427=>781, 10428=>781, 10429=>781, 10430=>781, 10431=>781, 10432=>781, 10433=>781, 10434=>781, 10435=>781, 10436=>781, 10437=>781,
|
||||
10438=>781, 10439=>781, 10440=>781, 10441=>781, 10442=>781, 10443=>781, 10444=>781, 10445=>781, 10446=>781, 10447=>781, 10448=>781, 10449=>781, 10450=>781, 10451=>781, 10452=>781, 10453=>781,
|
||||
10454=>781, 10455=>781, 10456=>781, 10457=>781, 10458=>781, 10459=>781, 10460=>781, 10461=>781, 10462=>781, 10463=>781, 10464=>781, 10465=>781, 10466=>781, 10467=>781, 10468=>781, 10469=>781,
|
||||
10470=>781, 10471=>781, 10472=>781, 10473=>781, 10474=>781, 10475=>781, 10476=>781, 10477=>781, 10478=>781, 10479=>781, 10480=>781, 10481=>781, 10482=>781, 10483=>781, 10484=>781, 10485=>781,
|
||||
10486=>781, 10487=>781, 10488=>781, 10489=>781, 10490=>781, 10491=>781, 10492=>781, 10493=>781, 10494=>781, 10495=>781, 10502=>838, 10503=>838, 10506=>838, 10507=>838, 10560=>838, 10561=>838,
|
||||
10702=>838, 10703=>1046, 10704=>1046, 10705=>1000, 10706=>1000, 10707=>1000, 10708=>1000, 10709=>1000, 10731=>494, 10752=>1000, 10753=>1000, 10754=>1000, 10764=>1661, 10765=>563, 10766=>563, 10767=>563,
|
||||
10768=>563, 10769=>563, 10770=>563, 10771=>563, 10772=>563, 10773=>563, 10774=>563, 10775=>563, 10776=>563, 10777=>563, 10778=>563, 10779=>563, 10780=>563, 10877=>838, 10878=>838, 10879=>838,
|
||||
10880=>838, 10881=>838, 10882=>838, 10883=>838, 10884=>838, 10885=>838, 10886=>838, 10887=>838, 10888=>838, 10889=>838, 10890=>838, 10891=>838, 10892=>838, 10893=>838, 10894=>838, 10895=>838,
|
||||
10896=>838, 10897=>838, 10898=>838, 10899=>838, 10900=>838, 10901=>838, 10902=>838, 10903=>838, 10904=>838, 10905=>838, 10906=>838, 10907=>838, 10908=>838, 10909=>838, 10910=>838, 10911=>838,
|
||||
10912=>838, 10926=>838, 10927=>838, 10928=>838, 10929=>838, 10930=>838, 10931=>838, 10932=>838, 10933=>838, 10934=>838, 10935=>838, 10936=>838, 10937=>838, 10938=>838, 11001=>838, 11002=>838,
|
||||
11008=>838, 11009=>838, 11010=>838, 11011=>838, 11012=>838, 11013=>838, 11014=>838, 11015=>838, 11016=>838, 11017=>838, 11018=>838, 11019=>838, 11020=>838, 11021=>838, 11022=>838, 11023=>838,
|
||||
11024=>838, 11025=>838, 11026=>945, 11027=>945, 11028=>945, 11029=>945, 11030=>769, 11031=>769, 11032=>769, 11033=>769, 11034=>945, 11040=>869, 11041=>873, 11042=>873, 11043=>873, 11360=>637,
|
||||
11361=>360, 11362=>637, 11363=>733, 11364=>770, 11365=>675, 11366=>478, 11367=>956, 11368=>712, 11369=>775, 11370=>665, 11371=>725, 11372=>582, 11380=>652, 11381=>649, 11382=>516, 11383=>782,
|
||||
61960=>860, 62047=>720, 63173=>687, 64256=>810, 64257=>741, 64258=>741, 64259=>1115, 64260=>1116, 64261=>808, 64262=>1020, 64275=>1388, 64276=>1384, 64277=>1378, 64278=>1384, 64279=>1713, 64285=>372,
|
||||
64287=>692, 64288=>720, 64297=>838, 64298=>963, 64299=>963, 64300=>963, 64301=>963, 64302=>751, 64303=>751, 64304=>751, 64305=>731, 64306=>537, 64307=>684, 64308=>778, 64309=>467, 64310=>521,
|
||||
64312=>770, 64313=>467, 64314=>778, 64315=>750, 64316=>718, 64318=>856, 64320=>532, 64321=>855, 64323=>802, 64324=>777, 64326=>751, 64327=>803, 64328=>778, 64329=>963, 64330=>822, 64331=>372,
|
||||
64332=>731, 64333=>754, 64334=>777, 64338=>1005, 64339=>1059, 64340=>375, 64341=>408, 64342=>1005, 64343=>1059, 64344=>375, 64345=>408, 64346=>1005, 64347=>1059, 64348=>375, 64349=>408, 64350=>1005,
|
||||
64351=>1059, 64352=>375, 64353=>408, 64354=>1005, 64355=>1059, 64356=>375, 64357=>408, 64358=>1005, 64359=>1059, 64360=>375, 64361=>408, 64362=>1162, 64363=>1191, 64364=>655, 64365=>720, 64366=>1162,
|
||||
64367=>1191, 64368=>655, 64369=>720, 64370=>721, 64371=>721, 64372=>721, 64373=>721, 64374=>721, 64375=>721, 64376=>721, 64377=>721, 64378=>721, 64379=>721, 64380=>721, 64381=>721, 64382=>721,
|
||||
64383=>721, 64384=>721, 64385=>721, 64394=>576, 64395=>622, 64396=>576, 64397=>622, 64398=>1024, 64399=>1024, 64400=>582, 64401=>582, 64402=>1024, 64403=>1024, 64404=>582, 64405=>582, 64414=>854,
|
||||
64415=>900, 64473=>622, 64474=>627, 64488=>375, 64489=>408, 64508=>917, 64509=>1012, 64510=>375, 64511=>408, 65024=>0, 65025=>0, 65026=>0, 65027=>0, 65028=>0, 65029=>0, 65030=>0,
|
||||
65031=>0, 65032=>0, 65033=>0, 65034=>0, 65035=>0, 65036=>0, 65037=>0, 65038=>0, 65039=>0, 65136=>342, 65137=>342, 65138=>342, 65139=>346, 65140=>342, 65142=>342, 65143=>342,
|
||||
65144=>342, 65145=>342, 65146=>342, 65147=>342, 65148=>342, 65149=>342, 65150=>342, 65151=>342, 65152=>511, 65153=>343, 65154=>375, 65155=>343, 65156=>375, 65157=>622, 65158=>627, 65159=>343,
|
||||
65160=>375, 65161=>917, 65162=>917, 65163=>375, 65164=>408, 65165=>343, 65166=>375, 65167=>1005, 65168=>1059, 65169=>375, 65170=>408, 65171=>590, 65172=>606, 65173=>1005, 65174=>1059, 65175=>375,
|
||||
65176=>408, 65177=>1005, 65178=>1059, 65179=>375, 65180=>408, 65181=>721, 65182=>721, 65183=>721, 65184=>721, 65185=>721, 65186=>721, 65187=>721, 65188=>721, 65189=>721, 65190=>721, 65191=>721,
|
||||
65192=>721, 65193=>513, 65194=>578, 65195=>513, 65196=>578, 65197=>576, 65198=>622, 65199=>576, 65200=>622, 65201=>1380, 65202=>1414, 65203=>983, 65204=>1018, 65205=>1380, 65206=>1414, 65207=>983,
|
||||
65208=>1018, 65209=>1345, 65210=>1364, 65211=>966, 65212=>985, 65213=>1345, 65214=>1364, 65215=>966, 65216=>985, 65217=>1039, 65218=>1071, 65219=>942, 65220=>974, 65221=>1039, 65222=>1071, 65223=>942,
|
||||
65224=>974, 65225=>683, 65226=>683, 65227=>683, 65228=>564, 65229=>683, 65230=>683, 65231=>683, 65232=>564, 65233=>1162, 65234=>1191, 65235=>655, 65236=>720, 65237=>894, 65238=>901, 65239=>655,
|
||||
65240=>720, 65241=>917, 65242=>931, 65243=>582, 65244=>582, 65245=>868, 65246=>893, 65247=>375, 65248=>408, 65249=>733, 65250=>784, 65251=>619, 65252=>670, 65253=>854, 65254=>900, 65255=>375,
|
||||
65256=>408, 65257=>590, 65258=>606, 65259=>693, 65260=>660, 65261=>622, 65262=>627, 65263=>917, 65264=>1012, 65265=>917, 65266=>1012, 65267=>375, 65268=>408, 65269=>745, 65270=>759, 65271=>745,
|
||||
65272=>759, 65273=>745, 65274=>759, 65275=>745, 65276=>759, 65279=>0, 65533=>1113);
|
||||
$enc='';
|
||||
$diff='';
|
||||
$file='DejaVuSans-Bold.z';
|
||||
$ctg='DejaVuSans-Bold.ctg.z';
|
||||
$originalsize=494260;
|
||||
?>
|
||||
|
@@ -1,130 +1,130 @@
|
||||
<?php
|
||||
$type='TrueTypeUnicode';
|
||||
$name='DejaVuSerif-Bold';
|
||||
$desc=array('Ascent'=>939,'Descent'=>-236,'CapHeight'=>939,'Flags'=>32,'FontBBox'=>'[-836 -423 1796 1235]','ItalicAngle'=>0,'StemV'=>120,'MissingWidth'=>600);
|
||||
$up=-42;
|
||||
$ut=44;
|
||||
$cw=array(
|
||||
0=>600, 32=>348, 33=>439, 34=>521, 35=>838, 36=>696, 37=>950, 38=>903, 39=>306, 40=>473, 41=>473, 42=>523, 43=>838, 44=>348, 45=>415, 46=>348,
|
||||
47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>369, 59=>369, 60=>838, 61=>838, 62=>838,
|
||||
63=>586, 64=>1000, 65=>776, 66=>845, 67=>796, 68=>867, 69=>762, 70=>710, 71=>854, 72=>945, 73=>468, 74=>473, 75=>869, 76=>703, 77=>1107, 78=>914,
|
||||
79=>871, 80=>752, 81=>871, 82=>831, 83=>722, 84=>744, 85=>872, 86=>776, 87=>1123, 88=>776, 89=>714, 90=>730, 91=>473, 92=>365, 93=>473, 94=>838,
|
||||
95=>500, 96=>500, 97=>648, 98=>699, 99=>609, 100=>699, 101=>636, 102=>430, 103=>699, 104=>727, 105=>380, 106=>362, 107=>693, 108=>380, 109=>1058, 110=>727,
|
||||
111=>667, 112=>699, 113=>699, 114=>527, 115=>563, 116=>462, 117=>727, 118=>581, 119=>861, 120=>596, 121=>581, 122=>568, 123=>643, 124=>364, 125=>643, 126=>838,
|
||||
8364=>696, 1027=>690, 8218=>348, 402=>430, 8222=>575, 8230=>1000, 8224=>523, 8225=>523, 710=>500, 8240=>1385, 352=>722, 8249=>400, 338=>1180, 1036=>910, 381=>730, 1039=>945,
|
||||
8216=>348, 8217=>348, 8220=>575, 8221=>575, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>563, 8250=>400, 339=>1028, 1116=>722, 382=>568, 376=>714, 160=>348,
|
||||
161=>439, 162=>696, 163=>696, 164=>636, 165=>696, 166=>364, 167=>523, 168=>500, 169=>1000, 170=>487, 171=>625, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500,
|
||||
177=>838, 178=>438, 179=>438, 180=>500, 181=>732, 182=>636, 183=>348, 184=>500, 185=>438, 186=>500, 187=>625, 188=>1043, 189=>1043, 190=>1043, 191=>586, 192=>776,
|
||||
193=>776, 194=>776, 195=>776, 196=>776, 197=>776, 198=>1034, 199=>796, 200=>762, 201=>762, 202=>762, 203=>762, 204=>468, 205=>468, 206=>468, 207=>468, 208=>874,
|
||||
209=>914, 210=>871, 211=>871, 212=>871, 213=>871, 214=>871, 215=>838, 216=>871, 217=>872, 218=>872, 219=>872, 220=>872, 221=>714, 222=>757, 223=>760, 224=>648,
|
||||
225=>648, 226=>648, 227=>648, 228=>648, 229=>648, 230=>975, 231=>609, 232=>636, 233=>636, 234=>636, 235=>636, 236=>380, 237=>380, 238=>380, 239=>380, 240=>667,
|
||||
241=>727, 242=>667, 243=>667, 244=>667, 245=>667, 246=>667, 247=>838, 248=>667, 249=>727, 250=>727, 251=>727, 252=>727, 253=>581, 254=>699, 255=>581, 256=>776,
|
||||
257=>648, 258=>776, 259=>648, 260=>776, 261=>648, 262=>796, 263=>609, 264=>796, 265=>609, 266=>796, 267=>609, 268=>796, 269=>609, 270=>867, 271=>699, 272=>874,
|
||||
273=>699, 274=>762, 275=>636, 276=>762, 277=>636, 278=>762, 279=>636, 280=>762, 281=>636, 282=>762, 283=>636, 284=>854, 285=>699, 286=>854, 287=>699, 288=>854,
|
||||
289=>699, 290=>854, 291=>699, 292=>945, 293=>727, 294=>945, 295=>727, 296=>468, 297=>380, 298=>468, 299=>380, 300=>468, 301=>380, 302=>468, 303=>380, 304=>468,
|
||||
305=>380, 306=>942, 307=>751, 308=>473, 309=>362, 310=>869, 311=>693, 312=>693, 313=>703, 314=>380, 315=>703, 316=>380, 317=>703, 318=>508, 319=>703, 320=>557,
|
||||
321=>710, 322=>385, 323=>914, 324=>727, 325=>914, 326=>727, 327=>914, 328=>727, 329=>1008, 330=>914, 331=>727, 332=>871, 333=>667, 334=>871, 335=>667, 336=>871,
|
||||
337=>667, 340=>831, 341=>527, 342=>831, 343=>527, 344=>831, 345=>527, 346=>722, 347=>563, 348=>722, 349=>563, 350=>722, 351=>563, 354=>744, 355=>462, 356=>744,
|
||||
357=>462, 358=>744, 359=>462, 360=>872, 361=>727, 362=>872, 363=>727, 364=>872, 365=>727, 366=>872, 367=>727, 368=>872, 369=>727, 370=>872, 371=>727, 372=>1123,
|
||||
373=>861, 374=>714, 375=>581, 377=>730, 378=>568, 379=>730, 380=>568, 383=>430, 384=>699, 385=>845, 386=>854, 387=>699, 388=>854, 389=>699, 390=>796, 391=>796,
|
||||
392=>609, 393=>874, 394=>867, 395=>854, 396=>699, 397=>667, 398=>762, 399=>871, 400=>696, 401=>710, 403=>854, 404=>771, 405=>1043, 406=>468, 407=>468, 408=>869,
|
||||
409=>693, 410=>380, 411=>701, 412=>1058, 413=>914, 414=>727, 415=>871, 416=>871, 417=>667, 418=>1200, 419=>943, 420=>752, 421=>699, 422=>831, 423=>722, 424=>563,
|
||||
425=>707, 426=>331, 427=>462, 428=>744, 429=>462, 430=>744, 431=>872, 432=>727, 433=>890, 434=>890, 435=>714, 436=>708, 437=>730, 438=>568, 439=>568, 440=>568,
|
||||
441=>568, 443=>696, 444=>754, 445=>568, 446=>536, 448=>295, 449=>492, 450=>459, 451=>295, 452=>1597, 453=>1435, 454=>1267, 455=>1176, 456=>1065, 457=>742, 458=>1387,
|
||||
459=>1276, 460=>1089, 461=>776, 462=>648, 463=>468, 464=>380, 465=>871, 466=>667, 467=>872, 468=>727, 469=>872, 470=>727, 471=>872, 472=>727, 473=>872, 474=>727,
|
||||
475=>872, 476=>727, 477=>636, 478=>776, 479=>648, 480=>776, 481=>648, 482=>1034, 483=>975, 484=>896, 485=>699, 486=>854, 487=>699, 488=>869, 489=>693, 490=>871,
|
||||
491=>667, 492=>871, 493=>667, 494=>568, 495=>568, 496=>380, 497=>1597, 498=>1435, 499=>1267, 500=>854, 501=>699, 502=>1221, 504=>914, 505=>727, 506=>776, 507=>648,
|
||||
508=>1034, 509=>975, 510=>871, 511=>667, 512=>776, 513=>648, 514=>776, 515=>648, 516=>762, 517=>636, 518=>762, 519=>636, 520=>468, 521=>380, 522=>468, 523=>380,
|
||||
524=>871, 525=>667, 526=>871, 527=>667, 528=>831, 529=>527, 530=>831, 531=>527, 532=>872, 533=>727, 534=>872, 535=>727, 536=>722, 537=>563, 538=>744, 539=>462,
|
||||
542=>945, 543=>727, 545=>791, 548=>730, 549=>568, 550=>776, 551=>648, 552=>762, 553=>636, 554=>871, 555=>667, 556=>871, 557=>667, 558=>871, 559=>667, 560=>871,
|
||||
561=>667, 562=>714, 563=>581, 564=>573, 565=>922, 566=>564, 567=>362, 568=>1031, 569=>1031, 570=>776, 571=>796, 572=>609, 573=>703, 574=>744, 575=>563, 576=>568,
|
||||
577=>660, 578=>547, 581=>776, 592=>648, 593=>699, 594=>699, 595=>699, 596=>609, 597=>609, 598=>699, 599=>730, 600=>636, 601=>636, 602=>907, 603=>608, 604=>562,
|
||||
605=>907, 606=>720, 607=>387, 608=>699, 609=>699, 610=>626, 611=>712, 612=>627, 613=>727, 614=>727, 615=>727, 616=>380, 617=>380, 618=>380, 619=>409, 620=>514,
|
||||
621=>380, 622=>795, 623=>1058, 624=>1058, 625=>1058, 626=>727, 627=>727, 628=>712, 629=>667, 630=>1061, 631=>749, 632=>667, 633=>571, 634=>571, 635=>571, 636=>527,
|
||||
637=>527, 638=>452, 639=>487, 640=>801, 641=>801, 642=>563, 643=>331, 644=>430, 645=>540, 646=>331, 647=>492, 648=>462, 649=>727, 650=>679, 651=>694, 652=>641,
|
||||
653=>907, 654=>635, 655=>727, 656=>568, 657=>568, 658=>568, 659=>568, 660=>536, 661=>536, 662=>536, 663=>545, 664=>871, 665=>695, 666=>720, 667=>626, 668=>732,
|
||||
669=>384, 670=>740, 671=>646, 672=>699, 673=>536, 674=>536, 675=>1117, 676=>1179, 677=>1117, 678=>911, 679=>715, 680=>909, 681=>1039, 682=>790, 683=>795, 684=>662,
|
||||
685=>443, 686=>613, 687=>717, 688=>521, 689=>519, 690=>313, 691=>414, 692=>414, 693=>480, 694=>527, 695=>662, 696=>485, 697=>302, 699=>348, 700=>348, 701=>348,
|
||||
702=>366, 703=>366, 704=>313, 705=>313, 711=>500, 712=>282, 713=>500, 716=>282, 720=>369, 721=>369, 722=>366, 723=>366, 726=>392, 728=>500, 729=>500, 730=>500,
|
||||
731=>500, 733=>500, 734=>417, 736=>458, 737=>292, 738=>395, 739=>475, 740=>313, 741=>484, 742=>484, 743=>484, 744=>484, 745=>484, 750=>553, 768=>0, 769=>0,
|
||||
770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0, 780=>0, 781=>0, 782=>0, 783=>0, 784=>0, 785=>0,
|
||||
786=>0, 787=>0, 788=>0, 789=>0, 790=>0, 791=>0, 792=>0, 793=>0, 794=>0, 795=>0, 796=>0, 797=>0, 798=>0, 799=>0, 800=>0, 801=>0,
|
||||
802=>0, 803=>0, 804=>0, 805=>0, 806=>0, 807=>0, 808=>0, 809=>0, 810=>0, 811=>0, 812=>0, 813=>0, 814=>0, 815=>0, 816=>0, 817=>0,
|
||||
818=>0, 819=>0, 820=>0, 821=>0, 822=>0, 823=>0, 824=>0, 825=>0, 826=>0, 827=>0, 828=>0, 829=>0, 830=>0, 831=>0, 835=>0, 847=>0,
|
||||
856=>0, 865=>0, 884=>302, 885=>302, 890=>500, 894=>369, 900=>500, 901=>500, 902=>776, 903=>348, 904=>947, 905=>1118, 906=>662, 908=>887, 910=>953, 911=>911,
|
||||
912=>484, 913=>776, 914=>845, 915=>710, 916=>776, 917=>762, 918=>730, 919=>945, 920=>871, 921=>468, 922=>869, 923=>776, 924=>1107, 925=>914, 926=>704, 927=>871,
|
||||
928=>944, 929=>752, 931=>707, 932=>744, 933=>714, 934=>871, 935=>776, 936=>913, 937=>890, 938=>468, 939=>714, 940=>770, 941=>608, 942=>727, 943=>484, 944=>694,
|
||||
945=>770, 946=>664, 947=>660, 948=>667, 949=>608, 950=>592, 951=>727, 952=>667, 953=>484, 954=>750, 955=>701, 956=>732, 957=>694, 958=>592, 959=>667, 960=>732,
|
||||
961=>665, 962=>609, 963=>737, 964=>673, 965=>694, 966=>905, 967=>658, 968=>941, 969=>952, 970=>484, 971=>694, 972=>667, 973=>694, 974=>952, 976=>667, 977=>849,
|
||||
978=>764, 979=>969, 980=>764, 981=>941, 982=>952, 983=>655, 984=>871, 985=>667, 986=>796, 987=>609, 988=>710, 989=>527, 990=>590, 991=>660, 992=>796, 993=>667,
|
||||
1008=>655, 1009=>665, 1010=>609, 1011=>362, 1012=>871, 1013=>609, 1014=>609, 1015=>757, 1016=>699, 1017=>796, 1018=>1107, 1019=>860, 1020=>692, 1021=>796, 1022=>796, 1023=>796,
|
||||
1024=>762, 1025=>762, 1026=>901, 1028=>795, 1029=>722, 1030=>468, 1031=>468, 1032=>473, 1033=>1202, 1034=>1262, 1035=>963, 1037=>945, 1038=>812, 1040=>814, 1041=>854, 1042=>845,
|
||||
1043=>690, 1044=>889, 1045=>762, 1046=>1312, 1047=>721, 1048=>945, 1049=>945, 1050=>910, 1051=>884, 1052=>1107, 1053=>945, 1054=>871, 1055=>944, 1056=>752, 1057=>796, 1058=>744,
|
||||
1059=>812, 1060=>949, 1061=>776, 1062=>966, 1063=>913, 1064=>1268, 1065=>1293, 1066=>957, 1067=>1202, 1068=>825, 1069=>795, 1070=>1287, 1071=>882, 1072=>648, 1073=>667, 1074=>695,
|
||||
1075=>613, 1076=>667, 1077=>636, 1078=>1010, 1079=>638, 1080=>742, 1081=>742, 1082=>722, 1083=>705, 1084=>869, 1085=>732, 1086=>667, 1087=>732, 1088=>699, 1089=>609, 1090=>620,
|
||||
1091=>640, 1092=>902, 1093=>596, 1094=>739, 1095=>732, 1096=>1075, 1097=>1082, 1098=>767, 1099=>1002, 1100=>679, 1101=>609, 1102=>1025, 1103=>739, 1104=>636, 1105=>636, 1106=>719,
|
||||
1107=>613, 1108=>609, 1109=>563, 1110=>380, 1111=>380, 1112=>362, 1113=>968, 1114=>995, 1115=>727, 1117=>742, 1118=>640, 1119=>732, 1122=>880, 1123=>703, 1138=>871, 1139=>652,
|
||||
1140=>916, 1141=>749, 1164=>792, 1165=>664, 1168=>700, 1169=>618, 1170=>710, 1171=>637, 1172=>868, 1173=>716, 1174=>1312, 1175=>1010, 1176=>721, 1177=>638, 1178=>947, 1179=>744,
|
||||
1182=>910, 1183=>693, 1184=>999, 1185=>733, 1186=>966, 1187=>739, 1188=>1187, 1189=>980, 1190=>1345, 1191=>1059, 1194=>796, 1195=>609, 1196=>744, 1197=>620, 1198=>714, 1199=>581,
|
||||
1202=>866, 1203=>649, 1204=>1250, 1205=>997, 1206=>928, 1207=>739, 1210=>910, 1211=>727, 1216=>468, 1217=>1312, 1218=>1010, 1219=>869, 1220=>693, 1223=>945, 1224=>732, 1227=>913,
|
||||
1228=>732, 1231=>380, 1232=>814, 1233=>648, 1234=>814, 1235=>648, 1236=>1034, 1237=>975, 1238=>762, 1239=>636, 1240=>871, 1241=>636, 1242=>871, 1243=>636, 1244=>1312, 1245=>1010,
|
||||
1246=>721, 1247=>638, 1248=>568, 1249=>568, 1250=>945, 1251=>742, 1252=>945, 1253=>742, 1254=>871, 1255=>667, 1256=>871, 1257=>667, 1258=>871, 1259=>667, 1260=>795, 1261=>609,
|
||||
1262=>812, 1263=>640, 1264=>812, 1265=>640, 1266=>812, 1267=>640, 1268=>913, 1269=>732, 1270=>690, 1271=>613, 1272=>1202, 1273=>1002, 7426=>940, 7432=>509, 7433=>320, 7444=>989,
|
||||
7446=>667, 7447=>667, 7453=>737, 7454=>948, 7455=>948, 7491=>466, 7492=>466, 7493=>498, 7494=>657, 7495=>499, 7496=>498, 7497=>444, 7498=>444, 7499=>412, 7500=>412, 7501=>498,
|
||||
7502=>300, 7503=>523, 7504=>729, 7505=>473, 7506=>467, 7507=>427, 7508=>467, 7509=>467, 7510=>499, 7511=>371, 7512=>520, 7513=>434, 7514=>729, 7515=>491, 7543=>640, 7547=>380,
|
||||
7557=>380, 7579=>498, 7580=>427, 7581=>427, 7582=>467, 7583=>412, 7584=>383, 7585=>373, 7586=>498, 7587=>522, 7588=>300, 7589=>307, 7590=>300, 7591=>300, 7592=>370, 7593=>368,
|
||||
7594=>321, 7595=>430, 7596=>682, 7597=>729, 7598=>588, 7599=>587, 7600=>472, 7601=>467, 7602=>522, 7603=>400, 7604=>387, 7605=>371, 7606=>520, 7607=>475, 7609=>489, 7610=>491,
|
||||
7611=>412, 7612=>527, 7613=>412, 7614=>452, 7615=>467, 7680=>776, 7681=>648, 7682=>845, 7683=>699, 7684=>845, 7685=>699, 7686=>845, 7687=>699, 7688=>796, 7689=>609, 7690=>867,
|
||||
7691=>699, 7692=>867, 7693=>699, 7694=>867, 7695=>699, 7696=>867, 7697=>699, 7698=>867, 7699=>699, 7700=>762, 7701=>636, 7702=>762, 7703=>636, 7704=>762, 7705=>636, 7706=>762,
|
||||
7707=>636, 7710=>710, 7711=>430, 7712=>854, 7713=>699, 7714=>945, 7715=>727, 7716=>945, 7717=>727, 7718=>945, 7719=>727, 7720=>945, 7721=>727, 7722=>945, 7723=>727, 7724=>468,
|
||||
7725=>380, 7728=>869, 7729=>693, 7730=>869, 7731=>693, 7732=>869, 7733=>693, 7734=>703, 7735=>380, 7736=>703, 7737=>380, 7738=>703, 7739=>380, 7740=>703, 7741=>380, 7742=>1107,
|
||||
7743=>1058, 7744=>1107, 7745=>1058, 7746=>1107, 7747=>1058, 7748=>914, 7749=>727, 7750=>914, 7751=>727, 7752=>914, 7753=>727, 7754=>914, 7755=>727, 7760=>871, 7761=>667, 7762=>871,
|
||||
7763=>667, 7764=>752, 7765=>699, 7766=>752, 7767=>699, 7768=>831, 7769=>527, 7770=>831, 7771=>527, 7772=>831, 7773=>527, 7774=>831, 7775=>527, 7776=>722, 7777=>563, 7778=>722,
|
||||
7779=>563, 7784=>722, 7785=>563, 7786=>744, 7787=>462, 7788=>744, 7789=>462, 7790=>744, 7791=>462, 7792=>744, 7793=>462, 7794=>872, 7795=>727, 7796=>872, 7797=>727, 7798=>872,
|
||||
7799=>727, 7800=>872, 7801=>727, 7802=>872, 7803=>727, 7804=>776, 7805=>581, 7806=>776, 7807=>581, 7808=>1123, 7809=>861, 7810=>1123, 7811=>861, 7812=>1123, 7813=>861, 7814=>1123,
|
||||
7815=>861, 7816=>1123, 7817=>861, 7818=>776, 7819=>596, 7820=>776, 7821=>596, 7822=>714, 7823=>581, 7824=>730, 7825=>568, 7826=>730, 7827=>568, 7828=>730, 7829=>568, 7830=>727,
|
||||
7831=>462, 7832=>861, 7833=>581, 7834=>1014, 7835=>563, 7840=>776, 7841=>648, 7842=>776, 7843=>648, 7852=>776, 7853=>648, 7854=>776, 7855=>648, 7856=>776, 7857=>648, 7858=>776,
|
||||
7859=>648, 7860=>776, 7861=>648, 7862=>776, 7863=>648, 7864=>762, 7865=>636, 7866=>762, 7867=>636, 7868=>762, 7869=>636, 7878=>762, 7879=>636, 7880=>468, 7881=>380, 7882=>468,
|
||||
7883=>380, 7884=>871, 7885=>667, 7886=>871, 7887=>667, 7896=>871, 7897=>667, 7908=>872, 7909=>727, 7910=>872, 7911=>727, 7922=>714, 7923=>581, 7924=>714, 7925=>581, 7926=>714,
|
||||
7927=>581, 7928=>714, 7929=>581, 7936=>770, 7937=>770, 7938=>770, 7939=>770, 7940=>770, 7941=>770, 7942=>770, 7943=>770, 7944=>776, 7945=>776, 7946=>978, 7947=>978, 7948=>832,
|
||||
7949=>849, 7950=>776, 7951=>776, 7952=>608, 7953=>608, 7954=>608, 7955=>608, 7956=>608, 7957=>608, 7960=>917, 7961=>909, 7962=>1169, 7963=>1169, 7964=>1093, 7965=>1120, 7968=>727,
|
||||
7969=>727, 7970=>727, 7971=>727, 7972=>727, 7973=>727, 7974=>727, 7975=>727, 7976=>1100, 7977=>1094, 7978=>1358, 7979=>1361, 7980=>1279, 7981=>1308, 7982=>1197, 7983=>1194, 7984=>484,
|
||||
7985=>484, 7986=>484, 7987=>484, 7988=>484, 7989=>484, 7990=>484, 7991=>484, 7992=>629, 7993=>617, 7994=>878, 7995=>881, 7996=>799, 7997=>831, 7998=>723, 7999=>714, 8000=>667,
|
||||
8001=>667, 8002=>667, 8003=>667, 8004=>667, 8005=>667, 8008=>900, 8009=>935, 8010=>1240, 8011=>1237, 8012=>1035, 8013=>1066, 8016=>694, 8017=>694, 8018=>694, 8019=>694, 8020=>694,
|
||||
8021=>694, 8022=>694, 8023=>694, 8025=>922, 8027=>1186, 8029=>1133, 8031=>1019, 8032=>952, 8033=>952, 8034=>952, 8035=>952, 8036=>952, 8037=>952, 8038=>952, 8039=>952, 8040=>931,
|
||||
8041=>963, 8042=>1268, 8043=>1274, 8044=>1054, 8045=>1088, 8046=>1023, 8047=>1060, 8048=>770, 8049=>770, 8050=>608, 8051=>608, 8052=>727, 8053=>727, 8054=>484, 8055=>484, 8056=>667,
|
||||
8057=>667, 8058=>694, 8059=>694, 8060=>952, 8061=>952, 8064=>770, 8065=>770, 8066=>770, 8067=>770, 8068=>770, 8069=>770, 8070=>770, 8071=>770, 8072=>776, 8073=>776, 8074=>978,
|
||||
8075=>978, 8076=>832, 8077=>849, 8078=>776, 8079=>776, 8080=>727, 8081=>727, 8082=>727, 8083=>727, 8084=>727, 8085=>727, 8086=>727, 8087=>727, 8088=>1100, 8089=>1094, 8090=>1358,
|
||||
8091=>1361, 8092=>1279, 8093=>1308, 8094=>1197, 8095=>1194, 8096=>952, 8097=>952, 8098=>952, 8099=>952, 8100=>952, 8101=>952, 8102=>952, 8103=>952, 8104=>931, 8105=>963, 8106=>1268,
|
||||
8107=>1274, 8108=>1054, 8109=>1088, 8110=>1023, 8111=>1060, 8112=>770, 8113=>770, 8114=>770, 8115=>770, 8116=>770, 8118=>770, 8119=>770, 8120=>776, 8121=>776, 8122=>811, 8123=>776,
|
||||
8124=>776, 8125=>500, 8126=>500, 8127=>500, 8128=>500, 8129=>500, 8130=>727, 8131=>727, 8132=>727, 8134=>727, 8135=>727, 8136=>1000, 8137=>947, 8138=>1191, 8139=>1118, 8140=>945,
|
||||
8141=>500, 8142=>500, 8143=>500, 8144=>484, 8145=>484, 8146=>484, 8147=>484, 8150=>484, 8151=>484, 8152=>468, 8153=>468, 8154=>714, 8155=>662, 8157=>500, 8158=>500, 8159=>500,
|
||||
8160=>694, 8161=>694, 8162=>694, 8163=>694, 8164=>665, 8165=>665, 8166=>694, 8167=>694, 8168=>714, 8169=>714, 8170=>1019, 8171=>953, 8172=>910, 8173=>500, 8174=>500, 8175=>500,
|
||||
8178=>952, 8179=>952, 8180=>952, 8182=>952, 8183=>952, 8184=>1069, 8185=>887, 8186=>1101, 8187=>911, 8188=>890, 8189=>500, 8190=>500, 8192=>500, 8193=>1000, 8194=>500, 8195=>1000,
|
||||
8196=>330, 8197=>250, 8198=>167, 8199=>696, 8200=>348, 8201=>200, 8202=>100, 8203=>0, 8204=>0, 8205=>0, 8206=>0, 8207=>0, 8208=>415, 8209=>415, 8210=>696, 8213=>1000,
|
||||
8215=>500, 8219=>348, 8223=>575, 8227=>639, 8228=>348, 8229=>674, 8234=>0, 8235=>0, 8236=>0, 8237=>0, 8238=>0, 8239=>200, 8241=>1820, 8252=>629, 8253=>586, 8254=>500,
|
||||
8263=>1082, 8264=>856, 8265=>856, 8287=>222, 8288=>0, 8289=>0, 8290=>0, 8291=>0, 8298=>0, 8299=>0, 8300=>0, 8301=>0, 8302=>0, 8303=>0, 8304=>438, 8308=>438,
|
||||
8309=>438, 8310=>438, 8311=>438, 8312=>438, 8313=>438, 8319=>519, 8320=>438, 8321=>438, 8322=>438, 8323=>438, 8324=>438, 8325=>438, 8326=>438, 8327=>438, 8328=>438, 8329=>438,
|
||||
8358=>696, 8367=>1155, 8369=>790, 8372=>876, 8373=>696, 8462=>727, 8470=>1087, 8486=>890, 8490=>869, 8491=>776, 8531=>1035, 8532=>1035, 8533=>1035, 8534=>1035, 8535=>1035, 8536=>1035,
|
||||
8537=>1035, 8538=>1035, 8539=>1035, 8540=>1035, 8541=>1035, 8542=>1035, 8543=>615, 8592=>838, 8593=>838, 8594=>838, 8595=>838, 8706=>534, 8710=>753, 8711=>753, 8719=>842, 8721=>753,
|
||||
8722=>838, 8725=>167, 8729=>348, 8730=>657, 8733=>672, 8734=>833, 8735=>838, 8736=>838, 8743=>812, 8744=>812, 8745=>812, 8746=>812, 8747=>579, 8748=>1000, 8749=>1391, 8770=>838,
|
||||
8771=>838, 8776=>838, 8800=>838, 8801=>838, 8804=>838, 8805=>838, 8962=>834, 8968=>473, 8969=>473, 8970=>473, 8971=>473, 8976=>838, 8977=>539, 8984=>928, 8985=>838, 8992=>579,
|
||||
8993=>579, 8997=>1000, 9000=>1443, 9085=>1008, 9134=>579, 9167=>945, 9251=>834, 9600=>769, 9601=>769, 9602=>769, 9603=>769, 9604=>769, 9605=>769, 9606=>769, 9607=>769, 9608=>769,
|
||||
9609=>769, 9610=>769, 9611=>769, 9612=>769, 9613=>769, 9614=>769, 9615=>769, 9616=>769, 9617=>769, 9618=>769, 9619=>769, 9620=>769, 9621=>769, 9622=>769, 9623=>769, 9624=>769,
|
||||
9625=>769, 9626=>769, 9627=>769, 9628=>769, 9629=>769, 9630=>769, 9631=>769, 9632=>945, 9633=>945, 9634=>945, 9635=>945, 9636=>945, 9637=>945, 9638=>945, 9639=>945, 9640=>945,
|
||||
9641=>945, 9642=>678, 9643=>678, 9644=>945, 9645=>945, 9646=>550, 9647=>550, 9648=>769, 9649=>769, 9650=>769, 9651=>769, 9652=>502, 9653=>502, 9654=>769, 9655=>769, 9656=>502,
|
||||
9657=>502, 9658=>769, 9659=>769, 9660=>769, 9661=>769, 9662=>502, 9663=>502, 9664=>769, 9665=>769, 9666=>502, 9667=>502, 9668=>769, 9669=>769, 9670=>769, 9671=>769, 9672=>769,
|
||||
9673=>873, 9674=>494, 9675=>873, 9676=>873, 9677=>873, 9678=>873, 9679=>873, 9680=>873, 9681=>873, 9682=>873, 9683=>873, 9684=>873, 9685=>873, 9686=>527, 9687=>527, 9688=>791,
|
||||
9689=>970, 9690=>970, 9691=>970, 9692=>387, 9693=>387, 9694=>387, 9695=>387, 9696=>873, 9697=>873, 9698=>769, 9699=>769, 9700=>769, 9701=>769, 9702=>590, 9703=>945, 9704=>945,
|
||||
9705=>945, 9706=>945, 9707=>945, 9708=>769, 9709=>769, 9710=>769, 9711=>1119, 9712=>945, 9713=>945, 9714=>945, 9715=>945, 9716=>873, 9717=>873, 9718=>873, 9719=>873, 9720=>769,
|
||||
9721=>769, 9722=>769, 9723=>830, 9724=>830, 9725=>732, 9726=>732, 9727=>769, 9728=>896, 9784=>896, 9785=>896, 9786=>896, 9787=>896, 9788=>896, 9791=>614, 9792=>731, 9793=>731,
|
||||
9794=>896, 9795=>896, 9796=>896, 9797=>896, 9798=>896, 9799=>896, 9824=>896, 9825=>896, 9826=>896, 9827=>896, 9828=>896, 9829=>896, 9830=>896, 9831=>896, 9833=>472, 9834=>638,
|
||||
9835=>896, 9836=>896, 9837=>472, 9838=>357, 9839=>484, 10208=>494, 10216=>457, 10217=>457, 10731=>494, 10764=>1782, 10765=>610, 10766=>610, 11026=>945, 11027=>945, 11028=>945, 11029=>945,
|
||||
11030=>769, 11031=>769, 11032=>769, 11033=>769, 11034=>945, 63173=>667, 63185=>500, 63188=>500, 64256=>930, 64257=>727, 64258=>727, 64259=>1126, 64260=>1123, 64261=>871, 64262=>971, 65024=>0,
|
||||
65025=>0, 65026=>0, 65027=>0, 65028=>0, 65029=>0, 65030=>0, 65031=>0, 65032=>0, 65033=>0, 65034=>0, 65035=>0, 65036=>0, 65037=>0, 65038=>0, 65039=>0, 65533=>1113);
|
||||
$enc='';
|
||||
$diff='';
|
||||
$file='DejaVuSerif-Bold.z';
|
||||
$ctg='DejaVuSerif-Bold.ctg.z';
|
||||
$originalsize=203488;
|
||||
?>
|
||||
<?php
|
||||
$type='TrueTypeUnicode';
|
||||
$name='DejaVuSerif-Bold';
|
||||
$desc=array('Ascent'=>939,'Descent'=>-236,'CapHeight'=>939,'Flags'=>32,'FontBBox'=>'[-836 -423 1796 1235]','ItalicAngle'=>0,'StemV'=>120,'MissingWidth'=>600);
|
||||
$up=-42;
|
||||
$ut=44;
|
||||
$cw=array(
|
||||
0=>600, 32=>348, 33=>439, 34=>521, 35=>838, 36=>696, 37=>950, 38=>903, 39=>306, 40=>473, 41=>473, 42=>523, 43=>838, 44=>348, 45=>415, 46=>348,
|
||||
47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>369, 59=>369, 60=>838, 61=>838, 62=>838,
|
||||
63=>586, 64=>1000, 65=>776, 66=>845, 67=>796, 68=>867, 69=>762, 70=>710, 71=>854, 72=>945, 73=>468, 74=>473, 75=>869, 76=>703, 77=>1107, 78=>914,
|
||||
79=>871, 80=>752, 81=>871, 82=>831, 83=>722, 84=>744, 85=>872, 86=>776, 87=>1123, 88=>776, 89=>714, 90=>730, 91=>473, 92=>365, 93=>473, 94=>838,
|
||||
95=>500, 96=>500, 97=>648, 98=>699, 99=>609, 100=>699, 101=>636, 102=>430, 103=>699, 104=>727, 105=>380, 106=>362, 107=>693, 108=>380, 109=>1058, 110=>727,
|
||||
111=>667, 112=>699, 113=>699, 114=>527, 115=>563, 116=>462, 117=>727, 118=>581, 119=>861, 120=>596, 121=>581, 122=>568, 123=>643, 124=>364, 125=>643, 126=>838,
|
||||
8364=>696, 1027=>690, 8218=>348, 402=>430, 8222=>575, 8230=>1000, 8224=>523, 8225=>523, 710=>500, 8240=>1385, 352=>722, 8249=>400, 338=>1180, 1036=>910, 381=>730, 1039=>945,
|
||||
8216=>348, 8217=>348, 8220=>575, 8221=>575, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>563, 8250=>400, 339=>1028, 1116=>722, 382=>568, 376=>714, 160=>348,
|
||||
161=>439, 162=>696, 163=>696, 164=>636, 165=>696, 166=>364, 167=>523, 168=>500, 169=>1000, 170=>487, 171=>625, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500,
|
||||
177=>838, 178=>438, 179=>438, 180=>500, 181=>732, 182=>636, 183=>348, 184=>500, 185=>438, 186=>500, 187=>625, 188=>1043, 189=>1043, 190=>1043, 191=>586, 192=>776,
|
||||
193=>776, 194=>776, 195=>776, 196=>776, 197=>776, 198=>1034, 199=>796, 200=>762, 201=>762, 202=>762, 203=>762, 204=>468, 205=>468, 206=>468, 207=>468, 208=>874,
|
||||
209=>914, 210=>871, 211=>871, 212=>871, 213=>871, 214=>871, 215=>838, 216=>871, 217=>872, 218=>872, 219=>872, 220=>872, 221=>714, 222=>757, 223=>760, 224=>648,
|
||||
225=>648, 226=>648, 227=>648, 228=>648, 229=>648, 230=>975, 231=>609, 232=>636, 233=>636, 234=>636, 235=>636, 236=>380, 237=>380, 238=>380, 239=>380, 240=>667,
|
||||
241=>727, 242=>667, 243=>667, 244=>667, 245=>667, 246=>667, 247=>838, 248=>667, 249=>727, 250=>727, 251=>727, 252=>727, 253=>581, 254=>699, 255=>581, 256=>776,
|
||||
257=>648, 258=>776, 259=>648, 260=>776, 261=>648, 262=>796, 263=>609, 264=>796, 265=>609, 266=>796, 267=>609, 268=>796, 269=>609, 270=>867, 271=>699, 272=>874,
|
||||
273=>699, 274=>762, 275=>636, 276=>762, 277=>636, 278=>762, 279=>636, 280=>762, 281=>636, 282=>762, 283=>636, 284=>854, 285=>699, 286=>854, 287=>699, 288=>854,
|
||||
289=>699, 290=>854, 291=>699, 292=>945, 293=>727, 294=>945, 295=>727, 296=>468, 297=>380, 298=>468, 299=>380, 300=>468, 301=>380, 302=>468, 303=>380, 304=>468,
|
||||
305=>380, 306=>942, 307=>751, 308=>473, 309=>362, 310=>869, 311=>693, 312=>693, 313=>703, 314=>380, 315=>703, 316=>380, 317=>703, 318=>508, 319=>703, 320=>557,
|
||||
321=>710, 322=>385, 323=>914, 324=>727, 325=>914, 326=>727, 327=>914, 328=>727, 329=>1008, 330=>914, 331=>727, 332=>871, 333=>667, 334=>871, 335=>667, 336=>871,
|
||||
337=>667, 340=>831, 341=>527, 342=>831, 343=>527, 344=>831, 345=>527, 346=>722, 347=>563, 348=>722, 349=>563, 350=>722, 351=>563, 354=>744, 355=>462, 356=>744,
|
||||
357=>462, 358=>744, 359=>462, 360=>872, 361=>727, 362=>872, 363=>727, 364=>872, 365=>727, 366=>872, 367=>727, 368=>872, 369=>727, 370=>872, 371=>727, 372=>1123,
|
||||
373=>861, 374=>714, 375=>581, 377=>730, 378=>568, 379=>730, 380=>568, 383=>430, 384=>699, 385=>845, 386=>854, 387=>699, 388=>854, 389=>699, 390=>796, 391=>796,
|
||||
392=>609, 393=>874, 394=>867, 395=>854, 396=>699, 397=>667, 398=>762, 399=>871, 400=>696, 401=>710, 403=>854, 404=>771, 405=>1043, 406=>468, 407=>468, 408=>869,
|
||||
409=>693, 410=>380, 411=>701, 412=>1058, 413=>914, 414=>727, 415=>871, 416=>871, 417=>667, 418=>1200, 419=>943, 420=>752, 421=>699, 422=>831, 423=>722, 424=>563,
|
||||
425=>707, 426=>331, 427=>462, 428=>744, 429=>462, 430=>744, 431=>872, 432=>727, 433=>890, 434=>890, 435=>714, 436=>708, 437=>730, 438=>568, 439=>568, 440=>568,
|
||||
441=>568, 443=>696, 444=>754, 445=>568, 446=>536, 448=>295, 449=>492, 450=>459, 451=>295, 452=>1597, 453=>1435, 454=>1267, 455=>1176, 456=>1065, 457=>742, 458=>1387,
|
||||
459=>1276, 460=>1089, 461=>776, 462=>648, 463=>468, 464=>380, 465=>871, 466=>667, 467=>872, 468=>727, 469=>872, 470=>727, 471=>872, 472=>727, 473=>872, 474=>727,
|
||||
475=>872, 476=>727, 477=>636, 478=>776, 479=>648, 480=>776, 481=>648, 482=>1034, 483=>975, 484=>896, 485=>699, 486=>854, 487=>699, 488=>869, 489=>693, 490=>871,
|
||||
491=>667, 492=>871, 493=>667, 494=>568, 495=>568, 496=>380, 497=>1597, 498=>1435, 499=>1267, 500=>854, 501=>699, 502=>1221, 504=>914, 505=>727, 506=>776, 507=>648,
|
||||
508=>1034, 509=>975, 510=>871, 511=>667, 512=>776, 513=>648, 514=>776, 515=>648, 516=>762, 517=>636, 518=>762, 519=>636, 520=>468, 521=>380, 522=>468, 523=>380,
|
||||
524=>871, 525=>667, 526=>871, 527=>667, 528=>831, 529=>527, 530=>831, 531=>527, 532=>872, 533=>727, 534=>872, 535=>727, 536=>722, 537=>563, 538=>744, 539=>462,
|
||||
542=>945, 543=>727, 545=>791, 548=>730, 549=>568, 550=>776, 551=>648, 552=>762, 553=>636, 554=>871, 555=>667, 556=>871, 557=>667, 558=>871, 559=>667, 560=>871,
|
||||
561=>667, 562=>714, 563=>581, 564=>573, 565=>922, 566=>564, 567=>362, 568=>1031, 569=>1031, 570=>776, 571=>796, 572=>609, 573=>703, 574=>744, 575=>563, 576=>568,
|
||||
577=>660, 578=>547, 581=>776, 592=>648, 593=>699, 594=>699, 595=>699, 596=>609, 597=>609, 598=>699, 599=>730, 600=>636, 601=>636, 602=>907, 603=>608, 604=>562,
|
||||
605=>907, 606=>720, 607=>387, 608=>699, 609=>699, 610=>626, 611=>712, 612=>627, 613=>727, 614=>727, 615=>727, 616=>380, 617=>380, 618=>380, 619=>409, 620=>514,
|
||||
621=>380, 622=>795, 623=>1058, 624=>1058, 625=>1058, 626=>727, 627=>727, 628=>712, 629=>667, 630=>1061, 631=>749, 632=>667, 633=>571, 634=>571, 635=>571, 636=>527,
|
||||
637=>527, 638=>452, 639=>487, 640=>801, 641=>801, 642=>563, 643=>331, 644=>430, 645=>540, 646=>331, 647=>492, 648=>462, 649=>727, 650=>679, 651=>694, 652=>641,
|
||||
653=>907, 654=>635, 655=>727, 656=>568, 657=>568, 658=>568, 659=>568, 660=>536, 661=>536, 662=>536, 663=>545, 664=>871, 665=>695, 666=>720, 667=>626, 668=>732,
|
||||
669=>384, 670=>740, 671=>646, 672=>699, 673=>536, 674=>536, 675=>1117, 676=>1179, 677=>1117, 678=>911, 679=>715, 680=>909, 681=>1039, 682=>790, 683=>795, 684=>662,
|
||||
685=>443, 686=>613, 687=>717, 688=>521, 689=>519, 690=>313, 691=>414, 692=>414, 693=>480, 694=>527, 695=>662, 696=>485, 697=>302, 699=>348, 700=>348, 701=>348,
|
||||
702=>366, 703=>366, 704=>313, 705=>313, 711=>500, 712=>282, 713=>500, 716=>282, 720=>369, 721=>369, 722=>366, 723=>366, 726=>392, 728=>500, 729=>500, 730=>500,
|
||||
731=>500, 733=>500, 734=>417, 736=>458, 737=>292, 738=>395, 739=>475, 740=>313, 741=>484, 742=>484, 743=>484, 744=>484, 745=>484, 750=>553, 768=>0, 769=>0,
|
||||
770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0, 780=>0, 781=>0, 782=>0, 783=>0, 784=>0, 785=>0,
|
||||
786=>0, 787=>0, 788=>0, 789=>0, 790=>0, 791=>0, 792=>0, 793=>0, 794=>0, 795=>0, 796=>0, 797=>0, 798=>0, 799=>0, 800=>0, 801=>0,
|
||||
802=>0, 803=>0, 804=>0, 805=>0, 806=>0, 807=>0, 808=>0, 809=>0, 810=>0, 811=>0, 812=>0, 813=>0, 814=>0, 815=>0, 816=>0, 817=>0,
|
||||
818=>0, 819=>0, 820=>0, 821=>0, 822=>0, 823=>0, 824=>0, 825=>0, 826=>0, 827=>0, 828=>0, 829=>0, 830=>0, 831=>0, 835=>0, 847=>0,
|
||||
856=>0, 865=>0, 884=>302, 885=>302, 890=>500, 894=>369, 900=>500, 901=>500, 902=>776, 903=>348, 904=>947, 905=>1118, 906=>662, 908=>887, 910=>953, 911=>911,
|
||||
912=>484, 913=>776, 914=>845, 915=>710, 916=>776, 917=>762, 918=>730, 919=>945, 920=>871, 921=>468, 922=>869, 923=>776, 924=>1107, 925=>914, 926=>704, 927=>871,
|
||||
928=>944, 929=>752, 931=>707, 932=>744, 933=>714, 934=>871, 935=>776, 936=>913, 937=>890, 938=>468, 939=>714, 940=>770, 941=>608, 942=>727, 943=>484, 944=>694,
|
||||
945=>770, 946=>664, 947=>660, 948=>667, 949=>608, 950=>592, 951=>727, 952=>667, 953=>484, 954=>750, 955=>701, 956=>732, 957=>694, 958=>592, 959=>667, 960=>732,
|
||||
961=>665, 962=>609, 963=>737, 964=>673, 965=>694, 966=>905, 967=>658, 968=>941, 969=>952, 970=>484, 971=>694, 972=>667, 973=>694, 974=>952, 976=>667, 977=>849,
|
||||
978=>764, 979=>969, 980=>764, 981=>941, 982=>952, 983=>655, 984=>871, 985=>667, 986=>796, 987=>609, 988=>710, 989=>527, 990=>590, 991=>660, 992=>796, 993=>667,
|
||||
1008=>655, 1009=>665, 1010=>609, 1011=>362, 1012=>871, 1013=>609, 1014=>609, 1015=>757, 1016=>699, 1017=>796, 1018=>1107, 1019=>860, 1020=>692, 1021=>796, 1022=>796, 1023=>796,
|
||||
1024=>762, 1025=>762, 1026=>901, 1028=>795, 1029=>722, 1030=>468, 1031=>468, 1032=>473, 1033=>1202, 1034=>1262, 1035=>963, 1037=>945, 1038=>812, 1040=>814, 1041=>854, 1042=>845,
|
||||
1043=>690, 1044=>889, 1045=>762, 1046=>1312, 1047=>721, 1048=>945, 1049=>945, 1050=>910, 1051=>884, 1052=>1107, 1053=>945, 1054=>871, 1055=>944, 1056=>752, 1057=>796, 1058=>744,
|
||||
1059=>812, 1060=>949, 1061=>776, 1062=>966, 1063=>913, 1064=>1268, 1065=>1293, 1066=>957, 1067=>1202, 1068=>825, 1069=>795, 1070=>1287, 1071=>882, 1072=>648, 1073=>667, 1074=>695,
|
||||
1075=>613, 1076=>667, 1077=>636, 1078=>1010, 1079=>638, 1080=>742, 1081=>742, 1082=>722, 1083=>705, 1084=>869, 1085=>732, 1086=>667, 1087=>732, 1088=>699, 1089=>609, 1090=>620,
|
||||
1091=>640, 1092=>902, 1093=>596, 1094=>739, 1095=>732, 1096=>1075, 1097=>1082, 1098=>767, 1099=>1002, 1100=>679, 1101=>609, 1102=>1025, 1103=>739, 1104=>636, 1105=>636, 1106=>719,
|
||||
1107=>613, 1108=>609, 1109=>563, 1110=>380, 1111=>380, 1112=>362, 1113=>968, 1114=>995, 1115=>727, 1117=>742, 1118=>640, 1119=>732, 1122=>880, 1123=>703, 1138=>871, 1139=>652,
|
||||
1140=>916, 1141=>749, 1164=>792, 1165=>664, 1168=>700, 1169=>618, 1170=>710, 1171=>637, 1172=>868, 1173=>716, 1174=>1312, 1175=>1010, 1176=>721, 1177=>638, 1178=>947, 1179=>744,
|
||||
1182=>910, 1183=>693, 1184=>999, 1185=>733, 1186=>966, 1187=>739, 1188=>1187, 1189=>980, 1190=>1345, 1191=>1059, 1194=>796, 1195=>609, 1196=>744, 1197=>620, 1198=>714, 1199=>581,
|
||||
1202=>866, 1203=>649, 1204=>1250, 1205=>997, 1206=>928, 1207=>739, 1210=>910, 1211=>727, 1216=>468, 1217=>1312, 1218=>1010, 1219=>869, 1220=>693, 1223=>945, 1224=>732, 1227=>913,
|
||||
1228=>732, 1231=>380, 1232=>814, 1233=>648, 1234=>814, 1235=>648, 1236=>1034, 1237=>975, 1238=>762, 1239=>636, 1240=>871, 1241=>636, 1242=>871, 1243=>636, 1244=>1312, 1245=>1010,
|
||||
1246=>721, 1247=>638, 1248=>568, 1249=>568, 1250=>945, 1251=>742, 1252=>945, 1253=>742, 1254=>871, 1255=>667, 1256=>871, 1257=>667, 1258=>871, 1259=>667, 1260=>795, 1261=>609,
|
||||
1262=>812, 1263=>640, 1264=>812, 1265=>640, 1266=>812, 1267=>640, 1268=>913, 1269=>732, 1270=>690, 1271=>613, 1272=>1202, 1273=>1002, 7426=>940, 7432=>509, 7433=>320, 7444=>989,
|
||||
7446=>667, 7447=>667, 7453=>737, 7454=>948, 7455=>948, 7491=>466, 7492=>466, 7493=>498, 7494=>657, 7495=>499, 7496=>498, 7497=>444, 7498=>444, 7499=>412, 7500=>412, 7501=>498,
|
||||
7502=>300, 7503=>523, 7504=>729, 7505=>473, 7506=>467, 7507=>427, 7508=>467, 7509=>467, 7510=>499, 7511=>371, 7512=>520, 7513=>434, 7514=>729, 7515=>491, 7543=>640, 7547=>380,
|
||||
7557=>380, 7579=>498, 7580=>427, 7581=>427, 7582=>467, 7583=>412, 7584=>383, 7585=>373, 7586=>498, 7587=>522, 7588=>300, 7589=>307, 7590=>300, 7591=>300, 7592=>370, 7593=>368,
|
||||
7594=>321, 7595=>430, 7596=>682, 7597=>729, 7598=>588, 7599=>587, 7600=>472, 7601=>467, 7602=>522, 7603=>400, 7604=>387, 7605=>371, 7606=>520, 7607=>475, 7609=>489, 7610=>491,
|
||||
7611=>412, 7612=>527, 7613=>412, 7614=>452, 7615=>467, 7680=>776, 7681=>648, 7682=>845, 7683=>699, 7684=>845, 7685=>699, 7686=>845, 7687=>699, 7688=>796, 7689=>609, 7690=>867,
|
||||
7691=>699, 7692=>867, 7693=>699, 7694=>867, 7695=>699, 7696=>867, 7697=>699, 7698=>867, 7699=>699, 7700=>762, 7701=>636, 7702=>762, 7703=>636, 7704=>762, 7705=>636, 7706=>762,
|
||||
7707=>636, 7710=>710, 7711=>430, 7712=>854, 7713=>699, 7714=>945, 7715=>727, 7716=>945, 7717=>727, 7718=>945, 7719=>727, 7720=>945, 7721=>727, 7722=>945, 7723=>727, 7724=>468,
|
||||
7725=>380, 7728=>869, 7729=>693, 7730=>869, 7731=>693, 7732=>869, 7733=>693, 7734=>703, 7735=>380, 7736=>703, 7737=>380, 7738=>703, 7739=>380, 7740=>703, 7741=>380, 7742=>1107,
|
||||
7743=>1058, 7744=>1107, 7745=>1058, 7746=>1107, 7747=>1058, 7748=>914, 7749=>727, 7750=>914, 7751=>727, 7752=>914, 7753=>727, 7754=>914, 7755=>727, 7760=>871, 7761=>667, 7762=>871,
|
||||
7763=>667, 7764=>752, 7765=>699, 7766=>752, 7767=>699, 7768=>831, 7769=>527, 7770=>831, 7771=>527, 7772=>831, 7773=>527, 7774=>831, 7775=>527, 7776=>722, 7777=>563, 7778=>722,
|
||||
7779=>563, 7784=>722, 7785=>563, 7786=>744, 7787=>462, 7788=>744, 7789=>462, 7790=>744, 7791=>462, 7792=>744, 7793=>462, 7794=>872, 7795=>727, 7796=>872, 7797=>727, 7798=>872,
|
||||
7799=>727, 7800=>872, 7801=>727, 7802=>872, 7803=>727, 7804=>776, 7805=>581, 7806=>776, 7807=>581, 7808=>1123, 7809=>861, 7810=>1123, 7811=>861, 7812=>1123, 7813=>861, 7814=>1123,
|
||||
7815=>861, 7816=>1123, 7817=>861, 7818=>776, 7819=>596, 7820=>776, 7821=>596, 7822=>714, 7823=>581, 7824=>730, 7825=>568, 7826=>730, 7827=>568, 7828=>730, 7829=>568, 7830=>727,
|
||||
7831=>462, 7832=>861, 7833=>581, 7834=>1014, 7835=>563, 7840=>776, 7841=>648, 7842=>776, 7843=>648, 7852=>776, 7853=>648, 7854=>776, 7855=>648, 7856=>776, 7857=>648, 7858=>776,
|
||||
7859=>648, 7860=>776, 7861=>648, 7862=>776, 7863=>648, 7864=>762, 7865=>636, 7866=>762, 7867=>636, 7868=>762, 7869=>636, 7878=>762, 7879=>636, 7880=>468, 7881=>380, 7882=>468,
|
||||
7883=>380, 7884=>871, 7885=>667, 7886=>871, 7887=>667, 7896=>871, 7897=>667, 7908=>872, 7909=>727, 7910=>872, 7911=>727, 7922=>714, 7923=>581, 7924=>714, 7925=>581, 7926=>714,
|
||||
7927=>581, 7928=>714, 7929=>581, 7936=>770, 7937=>770, 7938=>770, 7939=>770, 7940=>770, 7941=>770, 7942=>770, 7943=>770, 7944=>776, 7945=>776, 7946=>978, 7947=>978, 7948=>832,
|
||||
7949=>849, 7950=>776, 7951=>776, 7952=>608, 7953=>608, 7954=>608, 7955=>608, 7956=>608, 7957=>608, 7960=>917, 7961=>909, 7962=>1169, 7963=>1169, 7964=>1093, 7965=>1120, 7968=>727,
|
||||
7969=>727, 7970=>727, 7971=>727, 7972=>727, 7973=>727, 7974=>727, 7975=>727, 7976=>1100, 7977=>1094, 7978=>1358, 7979=>1361, 7980=>1279, 7981=>1308, 7982=>1197, 7983=>1194, 7984=>484,
|
||||
7985=>484, 7986=>484, 7987=>484, 7988=>484, 7989=>484, 7990=>484, 7991=>484, 7992=>629, 7993=>617, 7994=>878, 7995=>881, 7996=>799, 7997=>831, 7998=>723, 7999=>714, 8000=>667,
|
||||
8001=>667, 8002=>667, 8003=>667, 8004=>667, 8005=>667, 8008=>900, 8009=>935, 8010=>1240, 8011=>1237, 8012=>1035, 8013=>1066, 8016=>694, 8017=>694, 8018=>694, 8019=>694, 8020=>694,
|
||||
8021=>694, 8022=>694, 8023=>694, 8025=>922, 8027=>1186, 8029=>1133, 8031=>1019, 8032=>952, 8033=>952, 8034=>952, 8035=>952, 8036=>952, 8037=>952, 8038=>952, 8039=>952, 8040=>931,
|
||||
8041=>963, 8042=>1268, 8043=>1274, 8044=>1054, 8045=>1088, 8046=>1023, 8047=>1060, 8048=>770, 8049=>770, 8050=>608, 8051=>608, 8052=>727, 8053=>727, 8054=>484, 8055=>484, 8056=>667,
|
||||
8057=>667, 8058=>694, 8059=>694, 8060=>952, 8061=>952, 8064=>770, 8065=>770, 8066=>770, 8067=>770, 8068=>770, 8069=>770, 8070=>770, 8071=>770, 8072=>776, 8073=>776, 8074=>978,
|
||||
8075=>978, 8076=>832, 8077=>849, 8078=>776, 8079=>776, 8080=>727, 8081=>727, 8082=>727, 8083=>727, 8084=>727, 8085=>727, 8086=>727, 8087=>727, 8088=>1100, 8089=>1094, 8090=>1358,
|
||||
8091=>1361, 8092=>1279, 8093=>1308, 8094=>1197, 8095=>1194, 8096=>952, 8097=>952, 8098=>952, 8099=>952, 8100=>952, 8101=>952, 8102=>952, 8103=>952, 8104=>931, 8105=>963, 8106=>1268,
|
||||
8107=>1274, 8108=>1054, 8109=>1088, 8110=>1023, 8111=>1060, 8112=>770, 8113=>770, 8114=>770, 8115=>770, 8116=>770, 8118=>770, 8119=>770, 8120=>776, 8121=>776, 8122=>811, 8123=>776,
|
||||
8124=>776, 8125=>500, 8126=>500, 8127=>500, 8128=>500, 8129=>500, 8130=>727, 8131=>727, 8132=>727, 8134=>727, 8135=>727, 8136=>1000, 8137=>947, 8138=>1191, 8139=>1118, 8140=>945,
|
||||
8141=>500, 8142=>500, 8143=>500, 8144=>484, 8145=>484, 8146=>484, 8147=>484, 8150=>484, 8151=>484, 8152=>468, 8153=>468, 8154=>714, 8155=>662, 8157=>500, 8158=>500, 8159=>500,
|
||||
8160=>694, 8161=>694, 8162=>694, 8163=>694, 8164=>665, 8165=>665, 8166=>694, 8167=>694, 8168=>714, 8169=>714, 8170=>1019, 8171=>953, 8172=>910, 8173=>500, 8174=>500, 8175=>500,
|
||||
8178=>952, 8179=>952, 8180=>952, 8182=>952, 8183=>952, 8184=>1069, 8185=>887, 8186=>1101, 8187=>911, 8188=>890, 8189=>500, 8190=>500, 8192=>500, 8193=>1000, 8194=>500, 8195=>1000,
|
||||
8196=>330, 8197=>250, 8198=>167, 8199=>696, 8200=>348, 8201=>200, 8202=>100, 8203=>0, 8204=>0, 8205=>0, 8206=>0, 8207=>0, 8208=>415, 8209=>415, 8210=>696, 8213=>1000,
|
||||
8215=>500, 8219=>348, 8223=>575, 8227=>639, 8228=>348, 8229=>674, 8234=>0, 8235=>0, 8236=>0, 8237=>0, 8238=>0, 8239=>200, 8241=>1820, 8252=>629, 8253=>586, 8254=>500,
|
||||
8263=>1082, 8264=>856, 8265=>856, 8287=>222, 8288=>0, 8289=>0, 8290=>0, 8291=>0, 8298=>0, 8299=>0, 8300=>0, 8301=>0, 8302=>0, 8303=>0, 8304=>438, 8308=>438,
|
||||
8309=>438, 8310=>438, 8311=>438, 8312=>438, 8313=>438, 8319=>519, 8320=>438, 8321=>438, 8322=>438, 8323=>438, 8324=>438, 8325=>438, 8326=>438, 8327=>438, 8328=>438, 8329=>438,
|
||||
8358=>696, 8367=>1155, 8369=>790, 8372=>876, 8373=>696, 8462=>727, 8470=>1087, 8486=>890, 8490=>869, 8491=>776, 8531=>1035, 8532=>1035, 8533=>1035, 8534=>1035, 8535=>1035, 8536=>1035,
|
||||
8537=>1035, 8538=>1035, 8539=>1035, 8540=>1035, 8541=>1035, 8542=>1035, 8543=>615, 8592=>838, 8593=>838, 8594=>838, 8595=>838, 8706=>534, 8710=>753, 8711=>753, 8719=>842, 8721=>753,
|
||||
8722=>838, 8725=>167, 8729=>348, 8730=>657, 8733=>672, 8734=>833, 8735=>838, 8736=>838, 8743=>812, 8744=>812, 8745=>812, 8746=>812, 8747=>579, 8748=>1000, 8749=>1391, 8770=>838,
|
||||
8771=>838, 8776=>838, 8800=>838, 8801=>838, 8804=>838, 8805=>838, 8962=>834, 8968=>473, 8969=>473, 8970=>473, 8971=>473, 8976=>838, 8977=>539, 8984=>928, 8985=>838, 8992=>579,
|
||||
8993=>579, 8997=>1000, 9000=>1443, 9085=>1008, 9134=>579, 9167=>945, 9251=>834, 9600=>769, 9601=>769, 9602=>769, 9603=>769, 9604=>769, 9605=>769, 9606=>769, 9607=>769, 9608=>769,
|
||||
9609=>769, 9610=>769, 9611=>769, 9612=>769, 9613=>769, 9614=>769, 9615=>769, 9616=>769, 9617=>769, 9618=>769, 9619=>769, 9620=>769, 9621=>769, 9622=>769, 9623=>769, 9624=>769,
|
||||
9625=>769, 9626=>769, 9627=>769, 9628=>769, 9629=>769, 9630=>769, 9631=>769, 9632=>945, 9633=>945, 9634=>945, 9635=>945, 9636=>945, 9637=>945, 9638=>945, 9639=>945, 9640=>945,
|
||||
9641=>945, 9642=>678, 9643=>678, 9644=>945, 9645=>945, 9646=>550, 9647=>550, 9648=>769, 9649=>769, 9650=>769, 9651=>769, 9652=>502, 9653=>502, 9654=>769, 9655=>769, 9656=>502,
|
||||
9657=>502, 9658=>769, 9659=>769, 9660=>769, 9661=>769, 9662=>502, 9663=>502, 9664=>769, 9665=>769, 9666=>502, 9667=>502, 9668=>769, 9669=>769, 9670=>769, 9671=>769, 9672=>769,
|
||||
9673=>873, 9674=>494, 9675=>873, 9676=>873, 9677=>873, 9678=>873, 9679=>873, 9680=>873, 9681=>873, 9682=>873, 9683=>873, 9684=>873, 9685=>873, 9686=>527, 9687=>527, 9688=>791,
|
||||
9689=>970, 9690=>970, 9691=>970, 9692=>387, 9693=>387, 9694=>387, 9695=>387, 9696=>873, 9697=>873, 9698=>769, 9699=>769, 9700=>769, 9701=>769, 9702=>590, 9703=>945, 9704=>945,
|
||||
9705=>945, 9706=>945, 9707=>945, 9708=>769, 9709=>769, 9710=>769, 9711=>1119, 9712=>945, 9713=>945, 9714=>945, 9715=>945, 9716=>873, 9717=>873, 9718=>873, 9719=>873, 9720=>769,
|
||||
9721=>769, 9722=>769, 9723=>830, 9724=>830, 9725=>732, 9726=>732, 9727=>769, 9728=>896, 9784=>896, 9785=>896, 9786=>896, 9787=>896, 9788=>896, 9791=>614, 9792=>731, 9793=>731,
|
||||
9794=>896, 9795=>896, 9796=>896, 9797=>896, 9798=>896, 9799=>896, 9824=>896, 9825=>896, 9826=>896, 9827=>896, 9828=>896, 9829=>896, 9830=>896, 9831=>896, 9833=>472, 9834=>638,
|
||||
9835=>896, 9836=>896, 9837=>472, 9838=>357, 9839=>484, 10208=>494, 10216=>457, 10217=>457, 10731=>494, 10764=>1782, 10765=>610, 10766=>610, 11026=>945, 11027=>945, 11028=>945, 11029=>945,
|
||||
11030=>769, 11031=>769, 11032=>769, 11033=>769, 11034=>945, 63173=>667, 63185=>500, 63188=>500, 64256=>930, 64257=>727, 64258=>727, 64259=>1126, 64260=>1123, 64261=>871, 64262=>971, 65024=>0,
|
||||
65025=>0, 65026=>0, 65027=>0, 65028=>0, 65029=>0, 65030=>0, 65031=>0, 65032=>0, 65033=>0, 65034=>0, 65035=>0, 65036=>0, 65037=>0, 65038=>0, 65039=>0, 65533=>1113);
|
||||
$enc='';
|
||||
$diff='';
|
||||
$file='DejaVuSerif-Bold.z';
|
||||
$ctg='DejaVuSerif-Bold.ctg.z';
|
||||
$originalsize=203488;
|
||||
?>
|
||||
|
@@ -1,22 +1,22 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @version $Id: text_plain__dateformat.inc.php 10239 2007-04-01 09:51:41Z cybot_tm $
|
||||
*/
|
||||
|
||||
/**
|
||||
* returns IPv4 address
|
||||
*
|
||||
* @see http://php.net/long2ip
|
||||
*/
|
||||
function PMA_transformation_text_plain__longToIpv4($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
if ($buffer < 0 || $buffer > 4294967295) {
|
||||
return $buffer;
|
||||
}
|
||||
|
||||
return long2ip($buffer);
|
||||
}
|
||||
|
||||
?>
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @version $Id: text_plain__dateformat.inc.php 10239 2007-04-01 09:51:41Z cybot_tm $
|
||||
*/
|
||||
|
||||
/**
|
||||
* returns IPv4 address
|
||||
*
|
||||
* @see http://php.net/long2ip
|
||||
*/
|
||||
function PMA_transformation_text_plain__longToIpv4($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
if ($buffer < 0 || $buffer > 4294967295) {
|
||||
return $buffer;
|
||||
}
|
||||
|
||||
return long2ip($buffer);
|
||||
}
|
||||
|
||||
?>
|
||||
|
198
setup/config.php
198
setup/config.php
@@ -1,100 +1,100 @@
|
||||
<?php
|
||||
/**
|
||||
* Front controller for config view / download and clear
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
require './lib/common.inc.php';
|
||||
require_once './setup/lib/Form.class.php';
|
||||
require_once './setup/lib/FormDisplay.class.php';
|
||||
|
||||
/**
|
||||
* Returns config file contents depending on GET type value:
|
||||
* o session - uses ConfigFile::getConfigFile()
|
||||
* o post - uses POST textconfig value
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function get_config() {
|
||||
$type = PMA_ifSetOr($_GET['type'], 'session');
|
||||
|
||||
if ($type == 'session') {
|
||||
$config = ConfigFile::getInstance()->getConfigFile();
|
||||
} else {
|
||||
$config = PMA_ifSetOr($_POST['textconfig'], '');
|
||||
// make sure our eol is \n
|
||||
$config = str_replace("\r\n", "\n", $config);
|
||||
if ($_SESSION['eol'] == 'win') {
|
||||
$config = str_replace("\n", "\r\n", $config);
|
||||
}
|
||||
}
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
|
||||
$form_display = new FormDisplay();
|
||||
$form_display->registerForm('_config.php');
|
||||
$form_display->save('_config.php');
|
||||
$config_file_path = ConfigFile::getInstance()->getFilePath();
|
||||
|
||||
if (isset($_POST['eol'])) {
|
||||
$_SESSION['eol'] = ($_POST['eol'] == 'unix') ? 'unix' : 'win';
|
||||
}
|
||||
|
||||
if (PMA_ifSetOr($_POST['submit_clear'], '')) {
|
||||
//
|
||||
// Clear current config and return to main page
|
||||
//
|
||||
$_SESSION['ConfigFile'] = array();
|
||||
// drop post data
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
} elseif (PMA_ifSetOr($_POST['submit_download'], '')) {
|
||||
//
|
||||
// Output generated config file
|
||||
//
|
||||
header('Content-Type: text/plain');
|
||||
header('Content-Disposition: attachment; filename="config.inc.php"');
|
||||
echo get_config();
|
||||
exit;
|
||||
} elseif (PMA_ifSetOr($_POST['submit_save'], '')) {
|
||||
//
|
||||
// Save generated config file on the server
|
||||
//
|
||||
file_put_contents($config_file_path, get_config());
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
} elseif (PMA_ifSetOr($_POST['submit_load'], '')) {
|
||||
//
|
||||
// Load config file from the server
|
||||
//
|
||||
$cfg = array();
|
||||
require_once $config_file_path;
|
||||
$_SESSION['ConfigFile'] = $cfg;
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
} elseif (PMA_ifSetOr($_POST['submit_delete'], '')) {
|
||||
//
|
||||
// Delete config file on the server
|
||||
//
|
||||
@unlink($config_file_path);
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
} else {
|
||||
//
|
||||
// Show generated config file in a <textarea>
|
||||
//
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php?page=config');
|
||||
exit;
|
||||
}
|
||||
<?php
|
||||
/**
|
||||
* Front controller for config view / download and clear
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
require './lib/common.inc.php';
|
||||
require_once './setup/lib/Form.class.php';
|
||||
require_once './setup/lib/FormDisplay.class.php';
|
||||
|
||||
/**
|
||||
* Returns config file contents depending on GET type value:
|
||||
* o session - uses ConfigFile::getConfigFile()
|
||||
* o post - uses POST textconfig value
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function get_config() {
|
||||
$type = PMA_ifSetOr($_GET['type'], 'session');
|
||||
|
||||
if ($type == 'session') {
|
||||
$config = ConfigFile::getInstance()->getConfigFile();
|
||||
} else {
|
||||
$config = PMA_ifSetOr($_POST['textconfig'], '');
|
||||
// make sure our eol is \n
|
||||
$config = str_replace("\r\n", "\n", $config);
|
||||
if ($_SESSION['eol'] == 'win') {
|
||||
$config = str_replace("\n", "\r\n", $config);
|
||||
}
|
||||
}
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
|
||||
$form_display = new FormDisplay();
|
||||
$form_display->registerForm('_config.php');
|
||||
$form_display->save('_config.php');
|
||||
$config_file_path = ConfigFile::getInstance()->getFilePath();
|
||||
|
||||
if (isset($_POST['eol'])) {
|
||||
$_SESSION['eol'] = ($_POST['eol'] == 'unix') ? 'unix' : 'win';
|
||||
}
|
||||
|
||||
if (PMA_ifSetOr($_POST['submit_clear'], '')) {
|
||||
//
|
||||
// Clear current config and return to main page
|
||||
//
|
||||
$_SESSION['ConfigFile'] = array();
|
||||
// drop post data
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
} elseif (PMA_ifSetOr($_POST['submit_download'], '')) {
|
||||
//
|
||||
// Output generated config file
|
||||
//
|
||||
header('Content-Type: text/plain');
|
||||
header('Content-Disposition: attachment; filename="config.inc.php"');
|
||||
echo get_config();
|
||||
exit;
|
||||
} elseif (PMA_ifSetOr($_POST['submit_save'], '')) {
|
||||
//
|
||||
// Save generated config file on the server
|
||||
//
|
||||
file_put_contents($config_file_path, get_config());
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
} elseif (PMA_ifSetOr($_POST['submit_load'], '')) {
|
||||
//
|
||||
// Load config file from the server
|
||||
//
|
||||
$cfg = array();
|
||||
require_once $config_file_path;
|
||||
$_SESSION['ConfigFile'] = $cfg;
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
} elseif (PMA_ifSetOr($_POST['submit_delete'], '')) {
|
||||
//
|
||||
// Delete config file on the server
|
||||
//
|
||||
@unlink($config_file_path);
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
} else {
|
||||
//
|
||||
// Show generated config file in a <textarea>
|
||||
//
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php?page=config');
|
||||
exit;
|
||||
}
|
||||
?>
|
@@ -1,45 +1,45 @@
|
||||
<?php
|
||||
/**
|
||||
* Config file view and save screen
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if (!defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once './setup/lib/FormDisplay.class.php';
|
||||
require_once './setup/lib/index.lib.php';
|
||||
|
||||
$config_readable = false;
|
||||
$config_writable = false;
|
||||
$config_exists = false;
|
||||
check_config_rw($config_readable, $config_writable, $config_exists);
|
||||
?>
|
||||
<h2><?php echo $GLOBALS['str']['Configuration_file'] ?></h2>
|
||||
<?php display_form_top('config.php?type=post'); ?>
|
||||
<input type="hidden" name="eol" value="<?php echo htmlspecialchars(PMA_ifSetOr($_GET['eol'], 'unix')) ?>" />
|
||||
<?php display_fieldset_top('', '', null, array('class' => 'simple')); ?>
|
||||
<tr>
|
||||
<td>
|
||||
<textarea cols="50" rows="20" name="textconfig" id="textconfig" spellcheck="false"><?php
|
||||
echo htmlspecialchars(ConfigFile::getInstance()->getConfigFile())
|
||||
?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="lastrow" style="text-align: left">
|
||||
<input type="submit" name="submit_download" value="<?php echo $GLOBALS['str']['Download'] ?>" class="green" />
|
||||
<input type="submit" name="submit_save" value="<?php echo $GLOBALS['strSave'] ?>"<?php if (!$config_writable) echo ' disabled="disabled"' ?> />
|
||||
|
||||
<input type="reset" value="<?php echo $GLOBALS['strReset'] ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
display_fieldset_bottom_simple();
|
||||
display_form_bottom();
|
||||
<?php
|
||||
/**
|
||||
* Config file view and save screen
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if (!defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once './setup/lib/FormDisplay.class.php';
|
||||
require_once './setup/lib/index.lib.php';
|
||||
|
||||
$config_readable = false;
|
||||
$config_writable = false;
|
||||
$config_exists = false;
|
||||
check_config_rw($config_readable, $config_writable, $config_exists);
|
||||
?>
|
||||
<h2><?php echo $GLOBALS['str']['Configuration_file'] ?></h2>
|
||||
<?php display_form_top('config.php?type=post'); ?>
|
||||
<input type="hidden" name="eol" value="<?php echo htmlspecialchars(PMA_ifSetOr($_GET['eol'], 'unix')) ?>" />
|
||||
<?php display_fieldset_top('', '', null, array('class' => 'simple')); ?>
|
||||
<tr>
|
||||
<td>
|
||||
<textarea cols="50" rows="20" name="textconfig" id="textconfig" spellcheck="false"><?php
|
||||
echo htmlspecialchars(ConfigFile::getInstance()->getConfigFile())
|
||||
?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="lastrow" style="text-align: left">
|
||||
<input type="submit" name="submit_download" value="<?php echo $GLOBALS['str']['Download'] ?>" class="green" />
|
||||
<input type="submit" name="submit_save" value="<?php echo $GLOBALS['strSave'] ?>"<?php if (!$config_writable) echo ' disabled="disabled"' ?> />
|
||||
|
||||
<input type="reset" value="<?php echo $GLOBALS['strReset'] ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
display_fieldset_bottom_simple();
|
||||
display_form_bottom();
|
||||
?>
|
@@ -1,47 +1,47 @@
|
||||
<?php
|
||||
/**
|
||||
* Form edit view
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if (!defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once './setup/lib/Form.class.php';
|
||||
require_once './setup/lib/FormDisplay.class.php';
|
||||
require_once './setup/lib/form_processing.lib.php';
|
||||
|
||||
$formsets = array(
|
||||
'features' => array(
|
||||
'forms' => array('Import_export', 'Security', 'Sql_queries', 'Other_core_settings')),
|
||||
'left_frame' => array(
|
||||
'forms' => array('Left_frame', 'Left_servers', 'Left_databases', 'Left_tables')),
|
||||
'main_frame' => array(
|
||||
'forms' => array('Startup', 'Browse', 'Edit', 'Tabs', 'Sql_box')),
|
||||
'import' => array(
|
||||
'forms' => array('Import', 'Import_sql', 'Import_csv', 'Import_ldi')),
|
||||
'export' => array(
|
||||
'forms' => array('Export_defaults'))
|
||||
);
|
||||
|
||||
$formset_id = filter_input(INPUT_GET, 'formset');
|
||||
$mode = filter_input(INPUT_GET, 'mode');
|
||||
if (!isset($formsets[$formset_id])) {
|
||||
die('Incorrect formset');
|
||||
}
|
||||
|
||||
$formset = $formsets[$formset_id];
|
||||
if (isset($GLOBALS['str']['Formset_' . $formset_id])) {
|
||||
echo '<h2>' . $GLOBALS['str']['Formset_' . $formset_id] . '</h2>';
|
||||
}
|
||||
$form_display = new FormDisplay();
|
||||
foreach ($formset['forms'] as $form_name) {
|
||||
$form_display->registerForm($form_name);
|
||||
}
|
||||
process_formset($form_display);
|
||||
<?php
|
||||
/**
|
||||
* Form edit view
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if (!defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once './setup/lib/Form.class.php';
|
||||
require_once './setup/lib/FormDisplay.class.php';
|
||||
require_once './setup/lib/form_processing.lib.php';
|
||||
|
||||
$formsets = array(
|
||||
'features' => array(
|
||||
'forms' => array('Import_export', 'Security', 'Sql_queries', 'Other_core_settings')),
|
||||
'left_frame' => array(
|
||||
'forms' => array('Left_frame', 'Left_servers', 'Left_databases', 'Left_tables')),
|
||||
'main_frame' => array(
|
||||
'forms' => array('Startup', 'Browse', 'Edit', 'Tabs', 'Sql_box')),
|
||||
'import' => array(
|
||||
'forms' => array('Import', 'Import_sql', 'Import_csv', 'Import_ldi')),
|
||||
'export' => array(
|
||||
'forms' => array('Export_defaults'))
|
||||
);
|
||||
|
||||
$formset_id = filter_input(INPUT_GET, 'formset');
|
||||
$mode = filter_input(INPUT_GET, 'mode');
|
||||
if (!isset($formsets[$formset_id])) {
|
||||
die('Incorrect formset');
|
||||
}
|
||||
|
||||
$formset = $formsets[$formset_id];
|
||||
if (isset($GLOBALS['str']['Formset_' . $formset_id])) {
|
||||
echo '<h2>' . $GLOBALS['str']['Formset_' . $formset_id] . '</h2>';
|
||||
}
|
||||
$form_display = new FormDisplay();
|
||||
foreach ($formset['forms'] as $form_name) {
|
||||
$form_display->registerForm($form_name);
|
||||
}
|
||||
process_formset($form_display);
|
||||
?>
|
@@ -1,243 +1,243 @@
|
||||
<?php
|
||||
/**
|
||||
* Overview (main page)
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if (!defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once './libraries/display_select_lang.lib.php';
|
||||
require_once './setup/lib/FormDisplay.class.php';
|
||||
require_once './setup/lib/index.lib.php';
|
||||
|
||||
// prepare unfiltered language list
|
||||
$all_languages = PMA_langList();
|
||||
uasort($all_languages, 'PMA_language_cmp');
|
||||
|
||||
$cf = ConfigFile::getInstance();
|
||||
$separator = PMA_get_arg_separator('html');
|
||||
|
||||
// message handling
|
||||
messages_begin();
|
||||
|
||||
//
|
||||
// Check phpMyAdmin version
|
||||
//
|
||||
if (isset($_GET['version_check'])) {
|
||||
PMA_version_check();
|
||||
}
|
||||
|
||||
//
|
||||
// Perform various security, compatibility and consistency checks
|
||||
//
|
||||
perform_config_checks();
|
||||
|
||||
//
|
||||
// Check whether we can read/write configuration
|
||||
//
|
||||
$config_readable = false;
|
||||
$config_writable = false;
|
||||
$config_exists = false;
|
||||
check_config_rw($config_readable, $config_writable, $config_exists);
|
||||
if (!$config_writable || !$config_readable) {
|
||||
messages_set('warning', 'config_rw', 'Cannot_load_config', PMA_lang('Cannot_load_config_desc'));
|
||||
}
|
||||
//
|
||||
// Check https connection
|
||||
//
|
||||
$is_https = !empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on';
|
||||
if (!$is_https) {
|
||||
$text = $GLOBALS['str']['Insecure_connection_desc1'];
|
||||
if (!empty($_SERVER['REQUEST_URI']) && !empty($_SERVER['HTTP_HOST'])) {
|
||||
$text .= ' ' . PMA_lang('Insecure_connection_desc2',
|
||||
'https://' . htmlspecialchars($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']));
|
||||
}
|
||||
messages_set('warning', 'no_https', 'Insecure_connection', $text);
|
||||
}
|
||||
?>
|
||||
|
||||
<form id="select_lang" method="post" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']) ?>">
|
||||
<?php echo PMA_generate_common_hidden_inputs() ?>
|
||||
<bdo xml:lang="en" dir="ltr"><label for="lang">
|
||||
<?php echo $GLOBALS['strLanguage'] . ($GLOBALS['strLanguage'] != 'Language' ? ' - Language' : '') ?>
|
||||
</label></bdo><br />
|
||||
<select id="lang" name="lang" onchange="this.form.submit();" xml:lang="en" dir="ltr">
|
||||
<?php
|
||||
// create language list
|
||||
$lang_list = array();
|
||||
foreach ($all_languages as $each_lang_key => $each_lang) {
|
||||
if (!file_exists('./setup/lang/' . $each_lang[1] . '.inc.php')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$lang_name = ucfirst(substr(strrchr($each_lang[0], '|'), 1));
|
||||
// Include native name if non empty
|
||||
if (!empty($each_lang[3])) {
|
||||
$lang_name = $each_lang[3] . ' - ' . $lang_name;
|
||||
}
|
||||
|
||||
//Is current one active?
|
||||
$selected = ($GLOBALS['lang'] == $each_lang_key) ? ' selected="selected"' : '';
|
||||
echo '<option value="' . $each_lang_key . '"' . $selected . '>' . $lang_name
|
||||
. '</option>' . "\n";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</form>
|
||||
|
||||
<h2><?php echo $GLOBALS['str']['Overview'] ?></h2>
|
||||
|
||||
<?php
|
||||
// message handling
|
||||
messages_end();
|
||||
messages_show_html();
|
||||
?>
|
||||
|
||||
<a href="#" id="show_hidden_messages" style="display:none"><?php echo $str['Show_hidden_messages'] ?></a>
|
||||
|
||||
<h3><?php echo $GLOBALS['strServers'] ?></h3>
|
||||
<?php
|
||||
//
|
||||
// Display server list
|
||||
//
|
||||
display_form_top('index.php', 'get', array(
|
||||
'page' => 'servers',
|
||||
'mode' => 'add'
|
||||
));
|
||||
?>
|
||||
<div class="form">
|
||||
<?php if ($cf->getServerCount() > 0): ?>
|
||||
<table cellspacing="0" class="datatable" style="table-layout: fixed">
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th><?php echo $GLOBALS['strName'] ?></th>
|
||||
<th>Authentication type</th>
|
||||
<th colspan="2">DSN</th>
|
||||
</tr>
|
||||
<?php foreach ($_SESSION['ConfigFile']['Servers'] as $id => $server): ?>
|
||||
<tr>
|
||||
<td><?php echo $id ?></td>
|
||||
<td><?php echo $cf->getServerName($id) ?></td>
|
||||
<td><?php echo htmlspecialchars($cf->getValue("Servers/$id/auth_type")) ?></td>
|
||||
<td><?php echo htmlspecialchars($cf->getServerDSN($id)) ?></td>
|
||||
<td style="white-space: nowrap">
|
||||
<small>
|
||||
<a href="<?php echo "?page=servers{$separator}mode=edit{$separator}id=$id" ?>"><?php echo $GLOBALS['strEdit'] ?></a>
|
||||
| <a href="<?php echo "?page=servers{$separator}mode=remove{$separator}id=$id" ?>"><?php echo $GLOBALS['strDelete'] ?></a>
|
||||
</small>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<?php else: ?>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
<i><?php echo $GLOBALS['str']['No_servers'] ?></i>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="lastrow" style="text-align: left">
|
||||
<input type="submit" name="submit" value="<?php echo $GLOBALS['str']['New_server'] ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<?php
|
||||
display_form_bottom();
|
||||
?>
|
||||
|
||||
<h3><?php echo $GLOBALS['str']['Configuration_file'] ?></h3>
|
||||
<?php
|
||||
//
|
||||
// Display config file settings and load/save form
|
||||
//
|
||||
$form_display = new FormDisplay();
|
||||
|
||||
display_form_top('config.php');
|
||||
display_fieldset_top('', '', null, array('class' => 'simple'));
|
||||
|
||||
// Display language list
|
||||
$opts = array(
|
||||
'doc' => $form_display->getDocLink('DefaultLang'),
|
||||
'wiki' => $form_display->getWikiLink('DefaultLang'),
|
||||
'values' => array(),
|
||||
'values_escaped' => true);
|
||||
foreach ($all_languages as $each_lang_key => $each_lang) {
|
||||
if (!file_exists($GLOBALS['lang_path'] . $each_lang[1] . '.inc.php')) {
|
||||
continue;
|
||||
}
|
||||
$lang_name = ucfirst(substr(strrchr($each_lang[0], '|'), 1));
|
||||
// Include native name if non empty
|
||||
if (!empty($each_lang[3])) {
|
||||
$lang_name = $each_lang[3] . ' - ' . $lang_name;
|
||||
}
|
||||
$opts['values'][$each_lang_key] = $lang_name;
|
||||
}
|
||||
display_input('DefaultLang', $GLOBALS['str']['Default_language'], '', 'select',
|
||||
$cf->getValue('DefaultLang'), true, $opts);
|
||||
|
||||
// Display server list
|
||||
$opts = array(
|
||||
'doc' => $form_display->getDocLink('ServerDefault'),
|
||||
'wiki' => $form_display->getWikiLink('ServerDefault'),
|
||||
'values' => array(),
|
||||
'values_disabled' => array());
|
||||
if ($cf->getServerCount() > 0) {
|
||||
$opts['values']['0'] = $GLOBALS['str']['let_the_user_choose'];
|
||||
$opts['values']['-'] = '------------------------------';
|
||||
if ($cf->getServerCount() == 1) {
|
||||
$opts['values_disabled'][] = '0';
|
||||
}
|
||||
$opts['values_disabled'][] = '-';
|
||||
|
||||
foreach ($_SESSION['ConfigFile']['Servers'] as $id => $server) {
|
||||
$opts['values'][(string)$id] = $cf->getServerName($id) . " [$id]";
|
||||
}
|
||||
} else {
|
||||
$opts['values']['1'] = $GLOBALS['str']['-none-'];
|
||||
$opts['values_escaped'] = true;
|
||||
}
|
||||
display_input('ServerDefault', $GLOBALS['str']['Default_server'], '', 'select',
|
||||
$cf->getValue('ServerDefault'), true, $opts);
|
||||
|
||||
// Display EOL list
|
||||
$opts = array(
|
||||
'values' => array(
|
||||
'unix' => 'UNIX / Linux (\n)',
|
||||
'win' => 'Windows (\r\n)'),
|
||||
'values_escaped' => true);
|
||||
$eol = PMA_ifSetOr($_SESSION['eol'], (PMA_IS_WINDOWS ? 'win' : 'unix'));
|
||||
display_input('eol', $GLOBALS['str']['End_of_lne'], '', 'select',
|
||||
$eol, true, $opts);
|
||||
?>
|
||||
<tr>
|
||||
<td colspan="2" class="lastrow" style="text-align: left">
|
||||
<input type="submit" name="submit_display" value="<?php echo $GLOBALS['str']['Display'] ?>" />
|
||||
<input type="submit" name="submit_download" value="<?php echo $GLOBALS['str']['Download'] ?>" />
|
||||
|
||||
<input type="submit" name="submit_save" value="<?php echo $GLOBALS['strSave'] ?>"<?php if (!$config_writable) echo ' disabled="disabled"' ?> />
|
||||
<input type="submit" name="submit_load" value="<?php echo $GLOBALS['str']['Load'] ?>"<?php if (!$config_exists) echo ' disabled="disabled"' ?> />
|
||||
<input type="submit" name="submit_delete" value="<?php echo $GLOBALS['strDelete'] ?>"<?php if (!$config_exists || !$config_writable) echo ' disabled="disabled"' ?> />
|
||||
|
||||
<input type="submit" name="submit_clear" value="<?php echo $GLOBALS['str']['Clear'] ?>" class="red" />
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
display_fieldset_bottom_simple();
|
||||
display_form_bottom();
|
||||
?>
|
||||
<div id="footer">
|
||||
<a href="http://phpmyadmin.net"><?php echo $GLOBALS['str']['Homepage_link'] ?></a>
|
||||
<a href="http://sourceforge.net/donate/index.php?group_id=23067"><?php echo $GLOBALS['str']['Donate_link'] ?></a>
|
||||
<a href="?version_check=1<?php echo "{$separator}token=" . $_SESSION[' PMA_token '] ?>"><?php echo $GLOBALS['str']['Version_check_link'] ?></a>
|
||||
<?php
|
||||
/**
|
||||
* Overview (main page)
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if (!defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once './libraries/display_select_lang.lib.php';
|
||||
require_once './setup/lib/FormDisplay.class.php';
|
||||
require_once './setup/lib/index.lib.php';
|
||||
|
||||
// prepare unfiltered language list
|
||||
$all_languages = PMA_langList();
|
||||
uasort($all_languages, 'PMA_language_cmp');
|
||||
|
||||
$cf = ConfigFile::getInstance();
|
||||
$separator = PMA_get_arg_separator('html');
|
||||
|
||||
// message handling
|
||||
messages_begin();
|
||||
|
||||
//
|
||||
// Check phpMyAdmin version
|
||||
//
|
||||
if (isset($_GET['version_check'])) {
|
||||
PMA_version_check();
|
||||
}
|
||||
|
||||
//
|
||||
// Perform various security, compatibility and consistency checks
|
||||
//
|
||||
perform_config_checks();
|
||||
|
||||
//
|
||||
// Check whether we can read/write configuration
|
||||
//
|
||||
$config_readable = false;
|
||||
$config_writable = false;
|
||||
$config_exists = false;
|
||||
check_config_rw($config_readable, $config_writable, $config_exists);
|
||||
if (!$config_writable || !$config_readable) {
|
||||
messages_set('warning', 'config_rw', 'Cannot_load_config', PMA_lang('Cannot_load_config_desc'));
|
||||
}
|
||||
//
|
||||
// Check https connection
|
||||
//
|
||||
$is_https = !empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on';
|
||||
if (!$is_https) {
|
||||
$text = $GLOBALS['str']['Insecure_connection_desc1'];
|
||||
if (!empty($_SERVER['REQUEST_URI']) && !empty($_SERVER['HTTP_HOST'])) {
|
||||
$text .= ' ' . PMA_lang('Insecure_connection_desc2',
|
||||
'https://' . htmlspecialchars($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']));
|
||||
}
|
||||
messages_set('warning', 'no_https', 'Insecure_connection', $text);
|
||||
}
|
||||
?>
|
||||
|
||||
<form id="select_lang" method="post" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']) ?>">
|
||||
<?php echo PMA_generate_common_hidden_inputs() ?>
|
||||
<bdo xml:lang="en" dir="ltr"><label for="lang">
|
||||
<?php echo $GLOBALS['strLanguage'] . ($GLOBALS['strLanguage'] != 'Language' ? ' - Language' : '') ?>
|
||||
</label></bdo><br />
|
||||
<select id="lang" name="lang" onchange="this.form.submit();" xml:lang="en" dir="ltr">
|
||||
<?php
|
||||
// create language list
|
||||
$lang_list = array();
|
||||
foreach ($all_languages as $each_lang_key => $each_lang) {
|
||||
if (!file_exists('./setup/lang/' . $each_lang[1] . '.inc.php')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$lang_name = ucfirst(substr(strrchr($each_lang[0], '|'), 1));
|
||||
// Include native name if non empty
|
||||
if (!empty($each_lang[3])) {
|
||||
$lang_name = $each_lang[3] . ' - ' . $lang_name;
|
||||
}
|
||||
|
||||
//Is current one active?
|
||||
$selected = ($GLOBALS['lang'] == $each_lang_key) ? ' selected="selected"' : '';
|
||||
echo '<option value="' . $each_lang_key . '"' . $selected . '>' . $lang_name
|
||||
. '</option>' . "\n";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</form>
|
||||
|
||||
<h2><?php echo $GLOBALS['str']['Overview'] ?></h2>
|
||||
|
||||
<?php
|
||||
// message handling
|
||||
messages_end();
|
||||
messages_show_html();
|
||||
?>
|
||||
|
||||
<a href="#" id="show_hidden_messages" style="display:none"><?php echo $str['Show_hidden_messages'] ?></a>
|
||||
|
||||
<h3><?php echo $GLOBALS['strServers'] ?></h3>
|
||||
<?php
|
||||
//
|
||||
// Display server list
|
||||
//
|
||||
display_form_top('index.php', 'get', array(
|
||||
'page' => 'servers',
|
||||
'mode' => 'add'
|
||||
));
|
||||
?>
|
||||
<div class="form">
|
||||
<?php if ($cf->getServerCount() > 0): ?>
|
||||
<table cellspacing="0" class="datatable" style="table-layout: fixed">
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th><?php echo $GLOBALS['strName'] ?></th>
|
||||
<th>Authentication type</th>
|
||||
<th colspan="2">DSN</th>
|
||||
</tr>
|
||||
<?php foreach ($_SESSION['ConfigFile']['Servers'] as $id => $server): ?>
|
||||
<tr>
|
||||
<td><?php echo $id ?></td>
|
||||
<td><?php echo $cf->getServerName($id) ?></td>
|
||||
<td><?php echo htmlspecialchars($cf->getValue("Servers/$id/auth_type")) ?></td>
|
||||
<td><?php echo htmlspecialchars($cf->getServerDSN($id)) ?></td>
|
||||
<td style="white-space: nowrap">
|
||||
<small>
|
||||
<a href="<?php echo "?page=servers{$separator}mode=edit{$separator}id=$id" ?>"><?php echo $GLOBALS['strEdit'] ?></a>
|
||||
| <a href="<?php echo "?page=servers{$separator}mode=remove{$separator}id=$id" ?>"><?php echo $GLOBALS['strDelete'] ?></a>
|
||||
</small>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<?php else: ?>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
<i><?php echo $GLOBALS['str']['No_servers'] ?></i>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="lastrow" style="text-align: left">
|
||||
<input type="submit" name="submit" value="<?php echo $GLOBALS['str']['New_server'] ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<?php
|
||||
display_form_bottom();
|
||||
?>
|
||||
|
||||
<h3><?php echo $GLOBALS['str']['Configuration_file'] ?></h3>
|
||||
<?php
|
||||
//
|
||||
// Display config file settings and load/save form
|
||||
//
|
||||
$form_display = new FormDisplay();
|
||||
|
||||
display_form_top('config.php');
|
||||
display_fieldset_top('', '', null, array('class' => 'simple'));
|
||||
|
||||
// Display language list
|
||||
$opts = array(
|
||||
'doc' => $form_display->getDocLink('DefaultLang'),
|
||||
'wiki' => $form_display->getWikiLink('DefaultLang'),
|
||||
'values' => array(),
|
||||
'values_escaped' => true);
|
||||
foreach ($all_languages as $each_lang_key => $each_lang) {
|
||||
if (!file_exists($GLOBALS['lang_path'] . $each_lang[1] . '.inc.php')) {
|
||||
continue;
|
||||
}
|
||||
$lang_name = ucfirst(substr(strrchr($each_lang[0], '|'), 1));
|
||||
// Include native name if non empty
|
||||
if (!empty($each_lang[3])) {
|
||||
$lang_name = $each_lang[3] . ' - ' . $lang_name;
|
||||
}
|
||||
$opts['values'][$each_lang_key] = $lang_name;
|
||||
}
|
||||
display_input('DefaultLang', $GLOBALS['str']['Default_language'], '', 'select',
|
||||
$cf->getValue('DefaultLang'), true, $opts);
|
||||
|
||||
// Display server list
|
||||
$opts = array(
|
||||
'doc' => $form_display->getDocLink('ServerDefault'),
|
||||
'wiki' => $form_display->getWikiLink('ServerDefault'),
|
||||
'values' => array(),
|
||||
'values_disabled' => array());
|
||||
if ($cf->getServerCount() > 0) {
|
||||
$opts['values']['0'] = $GLOBALS['str']['let_the_user_choose'];
|
||||
$opts['values']['-'] = '------------------------------';
|
||||
if ($cf->getServerCount() == 1) {
|
||||
$opts['values_disabled'][] = '0';
|
||||
}
|
||||
$opts['values_disabled'][] = '-';
|
||||
|
||||
foreach ($_SESSION['ConfigFile']['Servers'] as $id => $server) {
|
||||
$opts['values'][(string)$id] = $cf->getServerName($id) . " [$id]";
|
||||
}
|
||||
} else {
|
||||
$opts['values']['1'] = $GLOBALS['str']['-none-'];
|
||||
$opts['values_escaped'] = true;
|
||||
}
|
||||
display_input('ServerDefault', $GLOBALS['str']['Default_server'], '', 'select',
|
||||
$cf->getValue('ServerDefault'), true, $opts);
|
||||
|
||||
// Display EOL list
|
||||
$opts = array(
|
||||
'values' => array(
|
||||
'unix' => 'UNIX / Linux (\n)',
|
||||
'win' => 'Windows (\r\n)'),
|
||||
'values_escaped' => true);
|
||||
$eol = PMA_ifSetOr($_SESSION['eol'], (PMA_IS_WINDOWS ? 'win' : 'unix'));
|
||||
display_input('eol', $GLOBALS['str']['End_of_lne'], '', 'select',
|
||||
$eol, true, $opts);
|
||||
?>
|
||||
<tr>
|
||||
<td colspan="2" class="lastrow" style="text-align: left">
|
||||
<input type="submit" name="submit_display" value="<?php echo $GLOBALS['str']['Display'] ?>" />
|
||||
<input type="submit" name="submit_download" value="<?php echo $GLOBALS['str']['Download'] ?>" />
|
||||
|
||||
<input type="submit" name="submit_save" value="<?php echo $GLOBALS['strSave'] ?>"<?php if (!$config_writable) echo ' disabled="disabled"' ?> />
|
||||
<input type="submit" name="submit_load" value="<?php echo $GLOBALS['str']['Load'] ?>"<?php if (!$config_exists) echo ' disabled="disabled"' ?> />
|
||||
<input type="submit" name="submit_delete" value="<?php echo $GLOBALS['strDelete'] ?>"<?php if (!$config_exists || !$config_writable) echo ' disabled="disabled"' ?> />
|
||||
|
||||
<input type="submit" name="submit_clear" value="<?php echo $GLOBALS['str']['Clear'] ?>" class="red" />
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
display_fieldset_bottom_simple();
|
||||
display_form_bottom();
|
||||
?>
|
||||
<div id="footer">
|
||||
<a href="http://phpmyadmin.net"><?php echo $GLOBALS['str']['Homepage_link'] ?></a>
|
||||
<a href="http://sourceforge.net/donate/index.php?group_id=23067"><?php echo $GLOBALS['str']['Donate_link'] ?></a>
|
||||
<a href="?version_check=1<?php echo "{$separator}token=" . $_SESSION[' PMA_token '] ?>"><?php echo $GLOBALS['str']['Version_check_link'] ?></a>
|
||||
</div>
|
@@ -1,24 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* Menu items
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if (!defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$separator = PMA_get_arg_separator('html');
|
||||
?>
|
||||
<ul>
|
||||
<li><a href="index.php"><?php echo $GLOBALS['str']['Overview'] ?></a></li>
|
||||
<li><a href="?page=form<?php echo $separator ?>formset=features"><?php echo $GLOBALS['str']['Formset_features'] ?></a></li>
|
||||
<li><a href="?page=form<?php echo $separator ?>formset=left_frame"><?php echo $GLOBALS['str']['Form_Left_frame'] ?></a></li>
|
||||
<li><a href="?page=form<?php echo $separator ?>formset=main_frame"><?php echo $GLOBALS['str']['Form_Main_frame'] ?></a></li>
|
||||
<li><a href="?page=form<?php echo $separator ?>formset=import"><?php echo $GLOBALS['str']['Form_Import'] ?></a></li>
|
||||
<li><a href="?page=form<?php echo $separator ?>formset=export"><?php echo $GLOBALS['str']['Form_Export'] ?></a></li>
|
||||
</ul>
|
||||
<?php
|
||||
/**
|
||||
* Menu items
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if (!defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$separator = PMA_get_arg_separator('html');
|
||||
?>
|
||||
<ul>
|
||||
<li><a href="index.php"><?php echo $GLOBALS['str']['Overview'] ?></a></li>
|
||||
<li><a href="?page=form<?php echo $separator ?>formset=features"><?php echo $GLOBALS['str']['Formset_features'] ?></a></li>
|
||||
<li><a href="?page=form<?php echo $separator ?>formset=left_frame"><?php echo $GLOBALS['str']['Form_Left_frame'] ?></a></li>
|
||||
<li><a href="?page=form<?php echo $separator ?>formset=main_frame"><?php echo $GLOBALS['str']['Form_Main_frame'] ?></a></li>
|
||||
<li><a href="?page=form<?php echo $separator ?>formset=import"><?php echo $GLOBALS['str']['Form_Import'] ?></a></li>
|
||||
<li><a href="?page=form<?php echo $separator ?>formset=export"><?php echo $GLOBALS['str']['Form_Export'] ?></a></li>
|
||||
</ul>
|
||||
|
@@ -1,47 +1,47 @@
|
||||
<?php
|
||||
/**
|
||||
* Server create and edit view
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if (!defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once './setup/lib/Form.class.php';
|
||||
require_once './setup/lib/FormDisplay.class.php';
|
||||
require_once './setup/lib/form_processing.lib.php';
|
||||
|
||||
$mode = filter_input(INPUT_GET, 'mode');
|
||||
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
|
||||
|
||||
$cf = ConfigFile::getInstance();
|
||||
$server_exists = !empty($id) && $cf->get("Servers/$id") !== null;
|
||||
|
||||
if ($mode == 'edit' && $server_exists) {
|
||||
$page_title = $GLOBALS['str']['page_servers_edit']
|
||||
. ' ' . $id . ' <small>(' . $cf->getServerDSN($id) . ')</small>';
|
||||
} elseif ($mode == 'remove' && $server_exists) {
|
||||
$cf->removeServer($id);
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
} elseif ($mode == 'revert' && $server_exists) {
|
||||
// handled by process_formset()
|
||||
} else {
|
||||
$page_title = $GLOBALS['str']['page_servers_add'];
|
||||
$id = 0;
|
||||
}
|
||||
?>
|
||||
<h2><?php echo $page_title ?></h2>
|
||||
<?php
|
||||
$form_display = new FormDisplay();
|
||||
$form_display->registerForm('Server', $id);
|
||||
$form_display->registerForm('Server_login_options', $id);
|
||||
$form_display->registerForm('Server_config', $id);
|
||||
$form_display->registerForm('Server_pmadb', $id);
|
||||
process_formset($form_display);
|
||||
<?php
|
||||
/**
|
||||
* Server create and edit view
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if (!defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once './setup/lib/Form.class.php';
|
||||
require_once './setup/lib/FormDisplay.class.php';
|
||||
require_once './setup/lib/form_processing.lib.php';
|
||||
|
||||
$mode = filter_input(INPUT_GET, 'mode');
|
||||
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
|
||||
|
||||
$cf = ConfigFile::getInstance();
|
||||
$server_exists = !empty($id) && $cf->get("Servers/$id") !== null;
|
||||
|
||||
if ($mode == 'edit' && $server_exists) {
|
||||
$page_title = $GLOBALS['str']['page_servers_edit']
|
||||
. ' ' . $id . ' <small>(' . $cf->getServerDSN($id) . ')</small>';
|
||||
} elseif ($mode == 'remove' && $server_exists) {
|
||||
$cf->removeServer($id);
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
} elseif ($mode == 'revert' && $server_exists) {
|
||||
// handled by process_formset()
|
||||
} else {
|
||||
$page_title = $GLOBALS['str']['page_servers_add'];
|
||||
$id = 0;
|
||||
}
|
||||
?>
|
||||
<h2><?php echo $page_title ?></h2>
|
||||
<?php
|
||||
$form_display = new FormDisplay();
|
||||
$form_display->registerForm('Server', $id);
|
||||
$form_display->registerForm('Server_login_options', $id);
|
||||
$form_display->registerForm('Server_config', $id);
|
||||
$form_display->registerForm('Server_pmadb', $id);
|
||||
process_formset($form_display);
|
||||
?>
|
102
setup/index.php
102
setup/index.php
@@ -1,51 +1,51 @@
|
||||
<?php
|
||||
/**
|
||||
* Front controller for setup script
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @copyright Copyright (c) 2008, Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
require './lib/common.inc.php';
|
||||
|
||||
$page = filter_input(INPUT_GET, 'page');
|
||||
$page = preg_replace('/[^a-z]/', '', $page);
|
||||
if ($page === '') {
|
||||
$page = 'index';
|
||||
}
|
||||
if (!file_exists("./setup/frames/$page.inc.php")) {
|
||||
// it will happen only when enterung URL by hand, we don't care for these cases
|
||||
die('Wrong GET file attribute value');
|
||||
}
|
||||
|
||||
// send no-cache headers
|
||||
require './libraries/header_http.inc.php';
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>phpMyAdmin <?php echo $_SESSION['PMA_Config']->get('PMA_VERSION'); ?> setup</title>
|
||||
<link href="../favicon.ico" rel="icon" type="image/x-icon" />
|
||||
<link href="../favicon.ico" rel="shortcut icon" type="image/x-icon" />
|
||||
<link href="styles.css" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javascript" src="../js/mootools.js"></script>
|
||||
<script type="text/javascript" src="scripts.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1><span class="blue">php</span><span class="orange">MyAdmin</span> <?php echo $_SESSION['PMA_Config']->get('PMA_VERSION'); ?> setup</h1>
|
||||
<div id="menu">
|
||||
<?php
|
||||
require './setup/frames/menu.inc.php';
|
||||
?>
|
||||
</div>
|
||||
<div id="page">
|
||||
<?php
|
||||
require "./setup/frames/$page.inc.php";
|
||||
?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
/**
|
||||
* Front controller for setup script
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @copyright Copyright (c) 2008, Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
require './lib/common.inc.php';
|
||||
|
||||
$page = filter_input(INPUT_GET, 'page');
|
||||
$page = preg_replace('/[^a-z]/', '', $page);
|
||||
if ($page === '') {
|
||||
$page = 'index';
|
||||
}
|
||||
if (!file_exists("./setup/frames/$page.inc.php")) {
|
||||
// it will happen only when enterung URL by hand, we don't care for these cases
|
||||
die('Wrong GET file attribute value');
|
||||
}
|
||||
|
||||
// send no-cache headers
|
||||
require './libraries/header_http.inc.php';
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>phpMyAdmin <?php echo $_SESSION['PMA_Config']->get('PMA_VERSION'); ?> setup</title>
|
||||
<link href="../favicon.ico" rel="icon" type="image/x-icon" />
|
||||
<link href="../favicon.ico" rel="shortcut icon" type="image/x-icon" />
|
||||
<link href="styles.css" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javascript" src="../js/mootools.js"></script>
|
||||
<script type="text/javascript" src="scripts.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1><span class="blue">php</span><span class="orange">MyAdmin</span> <?php echo $_SESSION['PMA_Config']->get('PMA_VERSION'); ?> setup</h1>
|
||||
<div id="menu">
|
||||
<?php
|
||||
require './setup/frames/menu.inc.php';
|
||||
?>
|
||||
</div>
|
||||
<div id="page">
|
||||
<?php
|
||||
require "./setup/frames/$page.inc.php";
|
||||
?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -1,429 +1,429 @@
|
||||
<?php
|
||||
/**
|
||||
* Setup script language file: English
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @copyright Copyright (c) 2008, Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
// page titles
|
||||
$str['page_servers_add'] = 'Add a new server';
|
||||
$str['page_servers_edit'] = 'Edit server';
|
||||
$str['Formset_features'] = 'Features';
|
||||
$str['Formset_left_frame'] = 'Customize navigation frame';
|
||||
$str['Formset_main_frame'] = 'Customize main frame';
|
||||
$str['Formset_import'] = 'Customize import defaults';
|
||||
$str['Formset_export'] = 'Customize export options';
|
||||
|
||||
// forms
|
||||
$str['true'] = 'yes';
|
||||
$str['false'] = 'no';
|
||||
$str['Display'] = 'Display';
|
||||
$str['Download'] = 'Download';
|
||||
$str['Clear'] = 'Clear';
|
||||
$str['Load'] = 'Load';
|
||||
$str['Restore_default'] = 'Restore default value';
|
||||
$str['Set_value'] = 'Set value: %s';
|
||||
$str['Warning'] = 'Warning';
|
||||
$str['Ignore_errors'] = 'Ignore errors';
|
||||
$str['Revert_erroneous_fields'] = 'Try to revert erroneous fields to their default values';
|
||||
$str['Show_form'] = 'Show form';
|
||||
|
||||
// main page
|
||||
$str['Overview'] = 'Overview';
|
||||
$str['Show_hidden_messages'] = 'Show hidden messages (#MSG_COUNT)';
|
||||
$str['No_servers'] = 'There are no configured servers';
|
||||
$str['New_server'] = 'New server';
|
||||
$str['Default_language'] = 'Default language';
|
||||
$str['Default_server'] = 'Default server';
|
||||
$str['let_the_user_choose'] = 'let the user choose';
|
||||
$str['-none-'] = '- none -';
|
||||
$str['End_of_lne'] = 'End of line';
|
||||
$str['Configuration_file'] = 'Configuration file';
|
||||
$str['Homepage_link'] = 'phpMyAdmin homepage';
|
||||
$str['Donate_link'] = 'Donate';
|
||||
$str['Version_check_link'] = 'Check for latest version';
|
||||
|
||||
// main page messages
|
||||
$str['Cannot_load_config'] = 'Cannot load or save configuration';
|
||||
$str['Cannot_load_config_desc'] = 'Please create web server writeable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.';
|
||||
$str['Insecure_connection'] = 'Insecure connection';
|
||||
$str['Insecure_connection_desc1'] = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!';
|
||||
$str['Insecure_connection_desc2'] = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.';
|
||||
$str['Version_check'] = 'Version check';
|
||||
$str['Version_check_wrapper_error'] = 'Neither URL wrapper nor CURL is available. Version check is not possible.';
|
||||
$str['Version_check_data_error'] = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.';
|
||||
$str['Version_check_invalid'] = 'Got invalid version string from server';
|
||||
$str['Version_check_unparsable'] = 'Unparsable version string';
|
||||
$str['Version_check_new_available'] = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.';
|
||||
$str['Version_check_new_available_svn'] = 'You are using subversion version, run [kbd]svn update[/kbd] :-).[br]The latest stable version is %s, released on %s.';
|
||||
$str['Version_check_none'] = 'No newer stable version is available';
|
||||
$str['Server_security_info_msg'] = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&mode=edit&id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.';
|
||||
$str['Server_ssl_msg'] = 'You should use SSL connections if your web server supports it';
|
||||
$str['Server_extension_msg'] = 'You should use mysqli for performance reasons';
|
||||
$str['Server_auth_config_msg'] = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&mode=edit&id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].';
|
||||
$str['Server_no_password_root_msg'] = 'You allow for connecting to the server as root without a passowrd.';
|
||||
$str['blowfish_secret_msg'] = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.';
|
||||
$str['blowfish_secret_length_msg'] = 'Key is too short, it should have at least 8 characters';
|
||||
$str['blowfish_secret_chars_msg'] = 'Key should contain alphanumerics, letters [em]and[/em] special characters';
|
||||
$str['ForceSSL_msg'] = 'This [a@?page=form&formset=features#tab_Security]option[/a] should be enabled if your web server supports it';
|
||||
$str['AllowArbitraryServer_msg'] = 'This [a@?page=form&formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.';
|
||||
$str['LoginCookieValidity_msg'] = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.';
|
||||
$str['Directory_notice'] = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writeable by other users on your server.';
|
||||
|
||||
// form errors
|
||||
$str['error_form'] = 'Submitted form contains errors';
|
||||
$str['error_missing_field_data'] = 'Missing data for %s';
|
||||
$str['error_incorrect_port'] = 'Not a valid port number';
|
||||
$str['error_incorrect_value'] = 'Incorrect value';
|
||||
$str['error_incorrect_ip_address'] = 'Incorrect IP address: %s';
|
||||
$str['error_nan_p'] = 'Not a positive number';
|
||||
$str['error_nan_nneg'] = 'Not a non-negative number';
|
||||
$str['error_empty_pmadb_user'] = 'Empty phpMyAdmin control user while using pmadb';
|
||||
$str['error_empty_pmadb_password'] = 'Empty phpMyAdmin control user password while using pmadb';
|
||||
$str['error_empty_user_for_config_auth'] = 'Empty username while using config authentication method';
|
||||
$str['error_empty_signon_session'] = 'Empty signon session name while using signon authentication method';
|
||||
$str['error_empty_signon_url'] = 'Empty signon URL while using signon authentication method';
|
||||
$str['error_connection'] = 'Could not connect to MySQL server';
|
||||
|
||||
// form names
|
||||
$str['Form_Server'] = 'Basic settings';
|
||||
$str['Form_Server_desc'] = 'Enter server connection parameters';
|
||||
$str['Form_Server_login_options'] = 'Signon login options';
|
||||
$str['Form_Server_login_options_desc'] = 'Enter login options for signon authentication';
|
||||
$str['Form_Server_config'] = 'Server configuration';
|
||||
$str['Form_Server_config_desc'] = 'Advanced server configuration, do not change these options unless you know what they are for';
|
||||
$str['Form_Server_pmadb'] = 'PMA database';
|
||||
$str['Form_Server_pmadb_desc'] = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation';
|
||||
$str['Form_Import_export'] = 'Import / export';
|
||||
$str['Form_Import_export_desc'] = 'Set import and export directories and compression options';
|
||||
$str['Form_Security'] = 'Security';
|
||||
$str['Form_Security_desc'] = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL';
|
||||
$str['Form_Sql_queries'] = 'SQL queries';
|
||||
$str['Form_Sql_queries_desc'] = 'SQL queries settings, for SQL Query box options see [a@?page=form&formset=main_frame#tab_Sql_box]Navigation frame[/a] settings';
|
||||
$str['Form_Other_core_settings'] = 'Other core settings';
|
||||
$str['Form_Other_core_settings_desc'] = 'Settings that didn\'t fit enywhere else';
|
||||
$str['Form_Left_frame'] = 'Navigation frame';
|
||||
$str['Form_Left_frame_desc'] = 'Customize appearance of the navigation frame';
|
||||
$str['Form_Left_servers'] = 'Servers';
|
||||
$str['Form_Left_servers_desc'] = 'Servers display options';
|
||||
$str['Form_Left_databases'] = 'Databases';
|
||||
$str['Form_Left_databases_desc'] = 'Databases display options';
|
||||
$str['Form_Left_tables'] = 'Tables';
|
||||
$str['Form_Left_tables_desc'] = 'Tables display options';
|
||||
$str['Form_Main_frame'] = 'Main frame';
|
||||
$str['Form_Startup'] = 'Startup';
|
||||
$str['Form_Startup_desc'] = 'Customize startup page';
|
||||
$str['Form_Browse'] = 'Browse mode';
|
||||
$str['Form_Browse_desc'] = 'Customize browse mode';
|
||||
$str['Form_Edit'] = 'Edit mode';
|
||||
$str['Form_Edit_desc'] = 'Customize edit mode';
|
||||
$str['Form_Tabs'] = 'Tabs display';
|
||||
$str['Form_Tabs_desc'] = 'Choose how you want tabs to work';
|
||||
$str['Form_Sql_box'] = 'SQL Query box';
|
||||
$str['Form_Sql_box_desc'] = 'Customize links shown in SQL Query boxes';
|
||||
$str['Form_Import'] = $GLOBALS['strImport'];
|
||||
$str['Form_Import_desc'] = 'Customize default common import options';
|
||||
$str['Form_Import_sql'] = $GLOBALS['strSQL'];
|
||||
$str['Form_Import_sql_desc'] = 'Customize default SQL import options';
|
||||
$str['Form_Import_csv'] = $GLOBALS['strCSV'];
|
||||
$str['Form_Import_csv_desc'] = 'Customize default CSV import options';
|
||||
$str['Form_Import_ldi'] = $GLOBALS['strLDI'];
|
||||
$str['Form_Import_ldi_desc'] = 'Customize default CSV using LOAD DATA import options';
|
||||
$str['Form_Export'] = $GLOBALS['strExport'];
|
||||
$str['Form_Export_defaults'] = 'Defaults';
|
||||
$str['Form_Export_defaults_desc'] = 'Customize default export options';
|
||||
|
||||
// Form: Server
|
||||
$str['Servers/verbose_name'] = 'Verbose name of this server';
|
||||
$str['Servers/verbose_desc'] = 'Hostname where MySQL server is running';
|
||||
$str['Servers/host_name'] = 'Server hostname';
|
||||
$str['Servers/host_desc'] = '';
|
||||
$str['Servers/port_name'] = 'Server port';
|
||||
$str['Servers/port_desc'] = 'Port on which MySQL server is listening, leave empty for default';
|
||||
$str['Servers/socket_name'] = 'Server socket';
|
||||
$str['Servers/socket_desc'] = 'Socket on which MySQL server is listening, leave empty for default';
|
||||
$str['Servers/ssl_name'] = 'Use SSL';
|
||||
$str['Servers/ssl_desc'] = '';
|
||||
$str['Servers/connect_type_name'] = 'Connection type';
|
||||
$str['Servers/connect_type_desc'] = 'How to connect to server, keep tcp if unsure';
|
||||
$str['Servers/extension_name'] = 'PHP extension to use';
|
||||
$str['Servers/extension_desc'] = 'What PHP extension to use, use mysqli if supported';
|
||||
$str['Servers/compress_name'] = 'Compress connection';
|
||||
$str['Servers/compress_desc'] = 'Compress connection to MySQL server';
|
||||
$str['Servers/auth_type_name'] = 'Authentication type';
|
||||
$str['Servers/auth_type_desc'] = 'Authentication method to use';
|
||||
$str['Servers/user_name'] = 'User for config auth';
|
||||
$str['Servers/user_desc'] = 'Leave empty if not using config auth';
|
||||
$str['Servers/password_name'] = 'Password for config auth';
|
||||
$str['Servers/password_desc'] = 'Leave empty if not using config auth';
|
||||
$str['Servers/nopassword_name'] = 'Connect without password';
|
||||
$str['Servers/nopassword_desc'] = 'Try to connect without password';
|
||||
|
||||
// Form: Server_login_options
|
||||
$str['Servers/SignonSession_name'] = 'Signon session name';
|
||||
$str['Servers/SignonSession_desc'] = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example';
|
||||
$str['Servers/SignonURL_name'] = 'Signon URL';
|
||||
$str['Servers/LogoutURL_name'] = 'Logout URL';
|
||||
$str['Servers/auth_swekey_config_name'] = 'SweKey config file';
|
||||
$str['Servers/auth_swekey_config_desc'] = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf';
|
||||
|
||||
// Form: Server_config
|
||||
$str['Servers/only_db_name'] = 'Show only listed databases';
|
||||
$str['Servers/only_db_desc'] = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\'';
|
||||
$str['Servers/hide_db_name'] = 'Hide databases';
|
||||
$str['Servers/hide_db_desc'] = 'Hide databases matching regular expression (PCRE)';
|
||||
$str['Servers/AllowRoot_name'] = 'Allow root login';
|
||||
$str['Servers/AllowNoPasswordRoot_name'] = 'Allow root without password';
|
||||
$str['Servers/DisableIS_name'] = 'Disable use of INFORMATION_SCHEMA';
|
||||
$str['Servers/DisableIS_desc'] = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]';
|
||||
$str['Servers/AllowDeny/order_name'] = 'Host authentication order';
|
||||
$str['Servers/AllowDeny/order_desc'] = 'Leave blank if not used';
|
||||
$str['Servers/AllowDeny/rules_name'] = 'Host authentication rules';
|
||||
$str['Servers/AllowDeny/rules_desc'] = 'Leave blank for defaults';
|
||||
$str['Servers/ShowDatabasesCommand_name'] = 'SHOW DATABASES command';
|
||||
$str['Servers/ShowDatabasesCommand_desc'] = 'SQL command to fetch available databases';
|
||||
$str['Servers/CountTables_name'] = 'Count tables';
|
||||
$str['Servers/CountTables_desc'] = 'Count tables when showing database list';
|
||||
|
||||
// Form: Server_pmadb
|
||||
$str['Servers/pmadb_name'] = 'PMA database';
|
||||
$str['Servers/pmadb_desc'] = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]';
|
||||
$str['Servers/controluser_name'] = 'Control user';
|
||||
$str['Servers/controluser_desc'] = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]';
|
||||
$str['Servers/controlpass_name'] = 'Control user password';
|
||||
$str['Servers/verbose_check_name'] = 'Verbose check';
|
||||
$str['Servers/verbose_check_desc'] = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance';
|
||||
$str['Servers/bookmarktable_name'] = 'Bookmark table';
|
||||
$str['Servers/bookmarktable_desc'] = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]';
|
||||
$str['Servers/relation_name'] = 'Relation table';
|
||||
$str['Servers/relation_desc'] = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]';
|
||||
$str['Servers/table_info_name'] = 'Display fields table';
|
||||
$str['Servers/table_info_desc'] = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]';
|
||||
$str['Servers/table_coords_name'] = 'PDF schema: table coordinates';
|
||||
$str['Servers/table_coords_desc'] = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]';
|
||||
$str['Servers/pdf_pages_name'] = 'PDF schema: pages table';
|
||||
$str['Servers/pdf_pages_desc'] = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]';
|
||||
$str['Servers/column_info_name'] = 'Column information table';
|
||||
$str['Servers/column_info_desc'] = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]';
|
||||
$str['Servers/history_name'] = 'SQL query history table';
|
||||
$str['Servers/history_desc'] = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]';
|
||||
$str['Servers/designer_coords_name'] = 'Designer table';
|
||||
$str['Servers/designer_coords_desc'] = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]';
|
||||
|
||||
// Form: Import_export
|
||||
$str['UploadDir_name'] = 'Upload directory';
|
||||
$str['UploadDir_desc'] = 'Directory on server where you can upload files for import';
|
||||
$str['SaveDir_name'] = 'Save directory';
|
||||
$str['SaveDir_desc'] = 'Directory where exports can be saved on server';
|
||||
$str['AllowAnywhereRecoding_name'] = 'Allow character set conversion';
|
||||
$str['DefaultCharset_name'] = 'Default character set';
|
||||
$str['DefaultCharset_desc'] = 'Default character set used for conversions';
|
||||
$str['RecodingEngine_name'] = 'Recoding engine';
|
||||
$str['RecodingEngine_desc'] = 'Select which functions will be used for character set conversion';
|
||||
$str['IconvExtraParams_name'] = 'Extra parameters for iconv';
|
||||
$str['ZipDump_name'] = 'ZIP';
|
||||
$str['ZipDump_desc'] = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations';
|
||||
$str['GZipDump_name'] = 'GZip';
|
||||
$str['GZipDump_desc'] = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations';
|
||||
$str['BZipDump_name'] = 'Bzip2';
|
||||
$str['BZipDump_desc'] = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations';
|
||||
$str['CompressOnFly_name'] = 'Compress on the fly';
|
||||
$str['CompressOnFly_desc'] = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature';
|
||||
|
||||
// Form: Security
|
||||
$str['blowfish_secret_name'] = 'Blowfish secret';
|
||||
$str['blowfish_secret_desc'] = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication';
|
||||
$str['ForceSSL_name'] = 'Force SSL connection';
|
||||
$str['ForceSSL_desc'] = 'Force secured connection while using phpMyAdmin';
|
||||
$str['CheckConfigurationPermissions_name'] = 'Check config file permissions';
|
||||
$str['TrustedProxies_name'] = 'List of trusted proxies for IP allow/deny';
|
||||
$str['TrustedProxies_desc'] = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]';
|
||||
$str['AllowUserDropDatabase_name'] = 'Show "Drop database" link to normal users';
|
||||
$str['AllowArbitraryServer_name'] = 'Allow login to any MySQL server';
|
||||
$str['AllowArbitraryServer_desc'] = 'If enabled user can enter any MySQL server in login form for cookie auth';
|
||||
$str['LoginCookieRecall_name'] = 'Recall user name';
|
||||
$str['LoginCookieRecall_desc'] = 'Define whether the previous login should be recalled or not in cookie authentication mode';
|
||||
$str['LoginCookieValidity_name'] = 'Login cookie validity';
|
||||
$str['LoginCookieValidity_desc'] = 'Define how long (in seconds) a login cookie is valid';
|
||||
$str['LoginCookieStore_name'] = 'Login cookie store';
|
||||
$str['LoginCookieStore_desc'] = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.';
|
||||
$str['LoginCookieDeleteAll_name'] = 'Delete all cookies on logout';
|
||||
$str['LoginCookieDeleteAll_desc'] = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.';
|
||||
|
||||
// Form: Sql_queries
|
||||
$str['ShowSQL_name'] = 'Show SQL queries';
|
||||
$str['ShowSQL_desc'] = 'Defines whether SQL queries generated by phpMyAdmin should be displayed';
|
||||
$str['Confirm_name'] = 'Confirm DROP queries';
|
||||
$str['Confirm_desc'] = 'Whether a warning ("Are your really sure...") should be displayed when you\'re about to lose data';
|
||||
$str['QueryHistoryDB_name'] = 'Permanent query history';
|
||||
$str['QueryHistoryDB_desc'] = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).';
|
||||
$str['QueryHistoryMax_name'] = 'Query history length';
|
||||
$str['QueryHistoryMax_desc'] = 'How many queries are kept in history';
|
||||
$str['IgnoreMultiSubmitErrors_name'] = 'Ignore multiple statement errors';
|
||||
$str['IgnoreMultiSubmitErrors_desc'] = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed';
|
||||
$str['VerboseMultiSubmit_name'] = 'Verbose multiple statements';
|
||||
$str['VerboseMultiSubmit_desc'] = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.';
|
||||
|
||||
// Form: Other_core_options
|
||||
$str['MaxDbList_name'] = 'Maximum databases';
|
||||
$str['MaxDbList_desc'] = 'Maximum number of databases displayed in left frame and database list';
|
||||
$str['MaxTableList_name'] = 'Maximum tables';
|
||||
$str['MaxTableList_desc'] = 'Maximum number of tables displayed in table list';
|
||||
$str['MaxCharactersInDisplayedSQL_name'] = 'Maximum displayed SQL length';
|
||||
$str['MaxCharactersInDisplayedSQL_desc'] = 'Maximum number of characters used when a SQL query is displayed';
|
||||
$str['OBGzip_name'] = 'GZip output buffering';
|
||||
$str['OBGzip_desc'] = 'use GZip output buffering for increased speed in HTTP transfers';
|
||||
$str['PersistentConnections_name'] = 'Persistent connections';
|
||||
$str['PersistentConnections_desc'] = 'Use persistent connections to MySQL databases';
|
||||
$str['ExecTimeLimit_name'] = 'Maximum execution time';
|
||||
$str['ExecTimeLimit_desc'] = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)';
|
||||
$str['MemoryLimit_name'] = 'Memory limit';
|
||||
$str['MemoryLimit_desc'] = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)';
|
||||
$str['SkipLockedTables_name'] = 'Skip locked tables';
|
||||
$str['SkipLockedTables_desc'] = 'Mark used tables and make it possible to show databases with locked tables';
|
||||
$str['UseDbSearch_name'] = 'Use database search';
|
||||
$str['UseDbSearch_desc'] = 'Allow for searching inside the entire database';
|
||||
|
||||
// Form: Left_frame
|
||||
$str['LeftFrameLight_name'] = 'Use light version';
|
||||
$str['LeftFrameLight_desc'] = 'Disable this if you want to see all databases at once';
|
||||
$str['LeftDisplayLogo_name'] = 'Display logo';
|
||||
$str['LeftDisplayLogo_desc'] = 'Show logo in left frame';
|
||||
$str['LeftLogoLink_name'] = 'Logo link URL';
|
||||
$str['LeftLogoLinkWindow_name'] = 'Logo link target';
|
||||
$str['LeftLogoLinkWindow_desc'] = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])';
|
||||
$str['LeftDefaultTabTable_name'] = 'Target for quick access icon';
|
||||
$str['LeftPointerEnable_name'] = 'Enable highlighting';
|
||||
$str['LeftPointerEnable_desc'] = 'Highlight server under the mouse cursor';
|
||||
|
||||
// Form: Left_servers
|
||||
$str['LeftDisplayServers_name'] = 'Display servers selection';
|
||||
$str['LeftDisplayServers_desc'] = 'Display server choice at the top of the left frame';
|
||||
$str['DisplayServersList_name'] = 'Display servers as a list';
|
||||
$str['DisplayServersList_desc'] = 'Show server listing as a list instead of a drop down';
|
||||
|
||||
// Form: Left_databases
|
||||
$str['DisplayDatabasesList_name'] = 'Display databases as a list';
|
||||
$str['DisplayDatabasesList_desc'] = 'Show database listing as a list instead of a drop down';
|
||||
$str['LeftFrameDBTree_name'] = 'Display databases in a tree';
|
||||
$str['LeftFrameDBTree_desc'] = 'Only light version; display databases in a tree (determined by the separator defined below)';
|
||||
$str['LeftFrameDBSeparator_name'] = 'Database tree separator';
|
||||
$str['LeftFrameDBSeparator_desc'] = 'String that separates databases into different tree levels';
|
||||
$str['ShowTooltipAliasDB_name'] = 'Display database comment instead of its name';
|
||||
$str['ShowTooltipAliasDB_desc'] = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name';
|
||||
|
||||
// Form: Left_tables
|
||||
$str['LeftFrameTableSeparator_name'] = 'Table tree separator';
|
||||
$str['LeftFrameTableSeparator_desc'] = 'String that separates tables into different tree levels';
|
||||
$str['LeftFrameTableLevel_name'] = 'Maximum table tree depth';
|
||||
$str['ShowTooltip_name'] = 'Display table comments in tooltips';
|
||||
$str['ShowTooltipAliasTB_name'] = 'Display table comment instead of its name';
|
||||
$str['ShowTooltipAliasTB_desc'] = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged';
|
||||
|
||||
// Form: Startup
|
||||
$str['ShowStats_name'] = 'Show statistics';
|
||||
$str['ShowStats_desc'] = 'Allow to display database and table statistics (eg. space usage)';
|
||||
$str['ShowPhpInfo_name'] = 'Show phpinfo() link';
|
||||
$str['ShowPhpInfo_desc'] = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output';
|
||||
$str['ShowServerInfo_name'] = 'Show detailed MySQL server information';
|
||||
$str['ShowChgPassword_name'] = 'Show password change form';
|
||||
$str['ShowChgPassword_desc'] = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly';
|
||||
$str['ShowCreateDb_name'] = 'Show create database form';
|
||||
$str['SuggestDBName_name'] = 'Suggest new database name';
|
||||
$str['SuggestDBName_desc'] = 'Suggest a database name on the "Create Database" form (if possible) or keep the text field empty';
|
||||
|
||||
// Form: Browse
|
||||
$str['NavigationBarIconic_name'] = 'Iconic navigation bar';
|
||||
$str['NavigationBarIconic_desc'] = 'Use only icons, only text or both';
|
||||
$str['ShowAll_name'] = 'Allow to display all the rows';
|
||||
$str['ShowAll_desc'] = 'Whether a user should be displayed a "show all (records)" button';
|
||||
$str['MaxRows_name'] = 'Maximum number of rows to display';
|
||||
$str['MaxRows_desc'] = 'Number of rows displayed when browsing a result set. If the result set contains more rows, "Previous" and "Next" links will be shown.';
|
||||
$str['Order_name'] = 'Default sorting order';
|
||||
$str['Order_desc'] = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise';
|
||||
$str['BrowsePointerEnable_name'] = 'Highlight pointer';
|
||||
$str['BrowsePointerEnable_desc'] = 'Highlight row pointed by the mouse cursor';
|
||||
$str['BrowseMarkerEnable_name'] = 'Row marker';
|
||||
$str['BrowseMarkerEnable_desc'] = 'Highlight selected rows';
|
||||
|
||||
// Form: Edit
|
||||
$str['ProtectBinary_name'] = 'Protect binary fields';
|
||||
$str['ProtectBinary_desc'] = 'Disallow BLOB or BLOB and BINARY fields from editing';
|
||||
$str['ShowFunctionFields_name'] = 'Show function fields';
|
||||
$str['ShowFunctionFields_desc'] = 'Display the function fields in edit/insert mode';
|
||||
$str['CharEditing_name'] = 'CHAR fields editing';
|
||||
$str['CharEditing_desc'] = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields';
|
||||
$str['CharTextareaCols_name'] = 'CHAR textarea columns';
|
||||
$str['CharTextareaCols_desc'] = 'Number of columns for textareas, this value will be emphasized (*2) for SQL query textareas and (*1.25) for SQL textareas inside the query window';
|
||||
$str['CharTextareaRows_name'] = 'CHAR textarea rows';
|
||||
$str['CharTextareaRows_desc'] = 'Number of rows for textareas, this value will be emphasized (*2) for SQL query textareas and (*1.25) for SQL textareas inside the query window';
|
||||
$str['InsertRows_name'] = 'Number of inserted rows';
|
||||
$str['InsertRows_desc'] = 'How many rows can be inserted at one time';
|
||||
$str['ForeignKeyDropdownOrder_name'] = 'Foreign key dropdown order';
|
||||
$str['ForeignKeyDropdownOrder_desc'] = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value';
|
||||
$str['ForeignKeyMaxLimit_name'] = 'Foreign key limit';
|
||||
$str['ForeignKeyMaxLimit_desc'] = 'A dropdown will be used if fewer items are present';
|
||||
|
||||
// Form: Tabs
|
||||
$str['LightTabs_name'] = 'Light tabs';
|
||||
$str['LightTabs_desc'] = 'Use less graphically intense tabs';
|
||||
$str['PropertiesIconic_name'] = 'Iconic table operations';
|
||||
$str['PropertiesIconic_desc'] = 'Use only icons, only text or both';
|
||||
$str['DefaultTabServer_name'] = 'Default server tab';
|
||||
$str['DefaultTabServer_desc'] = 'Tab that is displayed when entering a server';
|
||||
$str['DefaultTabDatabase_name'] = 'Default database tab';
|
||||
$str['DefaultTabDatabase_desc'] = 'Tab that is displayed when entering a database';
|
||||
$str['DefaultTabTable_name'] = 'Default table tab';
|
||||
$str['DefaultTabTable_desc'] = 'Tab that is displayed when entering a table';
|
||||
|
||||
// Form: Sql_Box
|
||||
$str['SQLQuery/Edit_name'] = $GLOBALS['strEdit'];
|
||||
$str['SQLQuery/Explain_name'] = $GLOBALS['strExplain'];
|
||||
$str['SQLQuery/ShowAsPHP_name'] = $GLOBALS['strPhp'];
|
||||
$str['SQLQuery/Validate_name'] = $GLOBALS['strValidateSQL'];
|
||||
$str['SQLQuery/Refresh_name'] = $GLOBALS['strRefresh'];
|
||||
|
||||
// Form: Import
|
||||
$str['Import/format_name'] = $GLOBALS['strImportFormat'];
|
||||
$str['Import/format_desc'] = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable';
|
||||
$str['Import/allow_interrupt_name'] = 'Partial import: allow interrupt';
|
||||
$str['Import/allow_interrupt_desc'] = $GLOBALS['strAllowInterrupt'];
|
||||
$str['Import/skip_queries_name'] = 'Partial import: skip queries';
|
||||
$str['Import/skip_queries_desc'] = $GLOBALS['strSkipQueries'];
|
||||
|
||||
// Form: Import_sql
|
||||
$str['Import/sql_compatibility_name'] = $GLOBALS['strSQLCompatibility'];
|
||||
$str['Import/sql_compatibility_desc'] = 'You can find more information on SQL compatibility modes in [a@http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html]MySQL Reference Manual[/a]';
|
||||
// Form: Import_csv
|
||||
$str['Import/csv_replace_name'] = $GLOBALS['strReplaceTable'];
|
||||
$str['Import/csv_terminated_name'] = $GLOBALS['strFieldsTerminatedBy'];
|
||||
$str['Import/csv_enclosed_name'] = $GLOBALS['strFieldsEnclosedBy'];
|
||||
$str['Import/csv_escaped_name'] = $GLOBALS['strFieldsEscapedBy'];
|
||||
$str['Import/csv_new_line_name'] = $GLOBALS['strLinesTerminatedBy'];
|
||||
$str['Import/csv_columns_name'] = $GLOBALS['strColumnNames'];
|
||||
|
||||
// Form: Import_ldi
|
||||
$str['Import/ldi_replace_name'] = $GLOBALS['strReplaceTable'];
|
||||
$str['Import/ldi_terminated_name'] = $GLOBALS['strFieldsTerminatedBy'];
|
||||
$str['Import/ldi_enclosed_name'] = $GLOBALS['strFieldsEnclosedBy'];
|
||||
$str['Import/ldi_escaped_name'] = $GLOBALS['strFieldsEscapedBy'];
|
||||
$str['Import/ldi_new_line_name'] = $GLOBALS['strLinesTerminatedBy'];
|
||||
$str['Import/ldi_columns_name'] = $GLOBALS['strColumnNames'];
|
||||
$str['Import/ldi_local_option_name'] = $GLOBALS['strLDILocal'];
|
||||
|
||||
// Form: Export_defaults
|
||||
$str['Export/format_name'] = 'Format';
|
||||
$str['Export/compression_name'] = $GLOBALS['strCompression'];
|
||||
$str['Export/asfile_name'] = $GLOBALS['strSend'];
|
||||
$str['Export/charset_name'] = $GLOBALS['strCharsetOfFile'];
|
||||
$str['Export/onserver_name'] = 'Save on server';
|
||||
$str['Export/onserver_overwrite_name'] = $GLOBALS['strOverwriteExisting'];
|
||||
$str['Export/remember_file_template_name'] = 'Remember file name template';
|
||||
$str['Export/file_template_table_name'] = 'Table name template';
|
||||
$str['Export/file_template_database_name'] = 'Database name template';
|
||||
$str['Export/file_template_server_name'] = 'Server name template';
|
||||
<?php
|
||||
/**
|
||||
* Setup script language file: English
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @copyright Copyright (c) 2008, Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
// page titles
|
||||
$str['page_servers_add'] = 'Add a new server';
|
||||
$str['page_servers_edit'] = 'Edit server';
|
||||
$str['Formset_features'] = 'Features';
|
||||
$str['Formset_left_frame'] = 'Customize navigation frame';
|
||||
$str['Formset_main_frame'] = 'Customize main frame';
|
||||
$str['Formset_import'] = 'Customize import defaults';
|
||||
$str['Formset_export'] = 'Customize export options';
|
||||
|
||||
// forms
|
||||
$str['true'] = 'yes';
|
||||
$str['false'] = 'no';
|
||||
$str['Display'] = 'Display';
|
||||
$str['Download'] = 'Download';
|
||||
$str['Clear'] = 'Clear';
|
||||
$str['Load'] = 'Load';
|
||||
$str['Restore_default'] = 'Restore default value';
|
||||
$str['Set_value'] = 'Set value: %s';
|
||||
$str['Warning'] = 'Warning';
|
||||
$str['Ignore_errors'] = 'Ignore errors';
|
||||
$str['Revert_erroneous_fields'] = 'Try to revert erroneous fields to their default values';
|
||||
$str['Show_form'] = 'Show form';
|
||||
|
||||
// main page
|
||||
$str['Overview'] = 'Overview';
|
||||
$str['Show_hidden_messages'] = 'Show hidden messages (#MSG_COUNT)';
|
||||
$str['No_servers'] = 'There are no configured servers';
|
||||
$str['New_server'] = 'New server';
|
||||
$str['Default_language'] = 'Default language';
|
||||
$str['Default_server'] = 'Default server';
|
||||
$str['let_the_user_choose'] = 'let the user choose';
|
||||
$str['-none-'] = '- none -';
|
||||
$str['End_of_lne'] = 'End of line';
|
||||
$str['Configuration_file'] = 'Configuration file';
|
||||
$str['Homepage_link'] = 'phpMyAdmin homepage';
|
||||
$str['Donate_link'] = 'Donate';
|
||||
$str['Version_check_link'] = 'Check for latest version';
|
||||
|
||||
// main page messages
|
||||
$str['Cannot_load_config'] = 'Cannot load or save configuration';
|
||||
$str['Cannot_load_config_desc'] = 'Please create web server writeable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.';
|
||||
$str['Insecure_connection'] = 'Insecure connection';
|
||||
$str['Insecure_connection_desc1'] = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!';
|
||||
$str['Insecure_connection_desc2'] = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.';
|
||||
$str['Version_check'] = 'Version check';
|
||||
$str['Version_check_wrapper_error'] = 'Neither URL wrapper nor CURL is available. Version check is not possible.';
|
||||
$str['Version_check_data_error'] = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.';
|
||||
$str['Version_check_invalid'] = 'Got invalid version string from server';
|
||||
$str['Version_check_unparsable'] = 'Unparsable version string';
|
||||
$str['Version_check_new_available'] = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.';
|
||||
$str['Version_check_new_available_svn'] = 'You are using subversion version, run [kbd]svn update[/kbd] :-).[br]The latest stable version is %s, released on %s.';
|
||||
$str['Version_check_none'] = 'No newer stable version is available';
|
||||
$str['Server_security_info_msg'] = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&mode=edit&id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.';
|
||||
$str['Server_ssl_msg'] = 'You should use SSL connections if your web server supports it';
|
||||
$str['Server_extension_msg'] = 'You should use mysqli for performance reasons';
|
||||
$str['Server_auth_config_msg'] = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&mode=edit&id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].';
|
||||
$str['Server_no_password_root_msg'] = 'You allow for connecting to the server as root without a passowrd.';
|
||||
$str['blowfish_secret_msg'] = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.';
|
||||
$str['blowfish_secret_length_msg'] = 'Key is too short, it should have at least 8 characters';
|
||||
$str['blowfish_secret_chars_msg'] = 'Key should contain alphanumerics, letters [em]and[/em] special characters';
|
||||
$str['ForceSSL_msg'] = 'This [a@?page=form&formset=features#tab_Security]option[/a] should be enabled if your web server supports it';
|
||||
$str['AllowArbitraryServer_msg'] = 'This [a@?page=form&formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.';
|
||||
$str['LoginCookieValidity_msg'] = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.';
|
||||
$str['Directory_notice'] = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writeable by other users on your server.';
|
||||
|
||||
// form errors
|
||||
$str['error_form'] = 'Submitted form contains errors';
|
||||
$str['error_missing_field_data'] = 'Missing data for %s';
|
||||
$str['error_incorrect_port'] = 'Not a valid port number';
|
||||
$str['error_incorrect_value'] = 'Incorrect value';
|
||||
$str['error_incorrect_ip_address'] = 'Incorrect IP address: %s';
|
||||
$str['error_nan_p'] = 'Not a positive number';
|
||||
$str['error_nan_nneg'] = 'Not a non-negative number';
|
||||
$str['error_empty_pmadb_user'] = 'Empty phpMyAdmin control user while using pmadb';
|
||||
$str['error_empty_pmadb_password'] = 'Empty phpMyAdmin control user password while using pmadb';
|
||||
$str['error_empty_user_for_config_auth'] = 'Empty username while using config authentication method';
|
||||
$str['error_empty_signon_session'] = 'Empty signon session name while using signon authentication method';
|
||||
$str['error_empty_signon_url'] = 'Empty signon URL while using signon authentication method';
|
||||
$str['error_connection'] = 'Could not connect to MySQL server';
|
||||
|
||||
// form names
|
||||
$str['Form_Server'] = 'Basic settings';
|
||||
$str['Form_Server_desc'] = 'Enter server connection parameters';
|
||||
$str['Form_Server_login_options'] = 'Signon login options';
|
||||
$str['Form_Server_login_options_desc'] = 'Enter login options for signon authentication';
|
||||
$str['Form_Server_config'] = 'Server configuration';
|
||||
$str['Form_Server_config_desc'] = 'Advanced server configuration, do not change these options unless you know what they are for';
|
||||
$str['Form_Server_pmadb'] = 'PMA database';
|
||||
$str['Form_Server_pmadb_desc'] = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation';
|
||||
$str['Form_Import_export'] = 'Import / export';
|
||||
$str['Form_Import_export_desc'] = 'Set import and export directories and compression options';
|
||||
$str['Form_Security'] = 'Security';
|
||||
$str['Form_Security_desc'] = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL';
|
||||
$str['Form_Sql_queries'] = 'SQL queries';
|
||||
$str['Form_Sql_queries_desc'] = 'SQL queries settings, for SQL Query box options see [a@?page=form&formset=main_frame#tab_Sql_box]Navigation frame[/a] settings';
|
||||
$str['Form_Other_core_settings'] = 'Other core settings';
|
||||
$str['Form_Other_core_settings_desc'] = 'Settings that didn\'t fit enywhere else';
|
||||
$str['Form_Left_frame'] = 'Navigation frame';
|
||||
$str['Form_Left_frame_desc'] = 'Customize appearance of the navigation frame';
|
||||
$str['Form_Left_servers'] = 'Servers';
|
||||
$str['Form_Left_servers_desc'] = 'Servers display options';
|
||||
$str['Form_Left_databases'] = 'Databases';
|
||||
$str['Form_Left_databases_desc'] = 'Databases display options';
|
||||
$str['Form_Left_tables'] = 'Tables';
|
||||
$str['Form_Left_tables_desc'] = 'Tables display options';
|
||||
$str['Form_Main_frame'] = 'Main frame';
|
||||
$str['Form_Startup'] = 'Startup';
|
||||
$str['Form_Startup_desc'] = 'Customize startup page';
|
||||
$str['Form_Browse'] = 'Browse mode';
|
||||
$str['Form_Browse_desc'] = 'Customize browse mode';
|
||||
$str['Form_Edit'] = 'Edit mode';
|
||||
$str['Form_Edit_desc'] = 'Customize edit mode';
|
||||
$str['Form_Tabs'] = 'Tabs display';
|
||||
$str['Form_Tabs_desc'] = 'Choose how you want tabs to work';
|
||||
$str['Form_Sql_box'] = 'SQL Query box';
|
||||
$str['Form_Sql_box_desc'] = 'Customize links shown in SQL Query boxes';
|
||||
$str['Form_Import'] = $GLOBALS['strImport'];
|
||||
$str['Form_Import_desc'] = 'Customize default common import options';
|
||||
$str['Form_Import_sql'] = $GLOBALS['strSQL'];
|
||||
$str['Form_Import_sql_desc'] = 'Customize default SQL import options';
|
||||
$str['Form_Import_csv'] = $GLOBALS['strCSV'];
|
||||
$str['Form_Import_csv_desc'] = 'Customize default CSV import options';
|
||||
$str['Form_Import_ldi'] = $GLOBALS['strLDI'];
|
||||
$str['Form_Import_ldi_desc'] = 'Customize default CSV using LOAD DATA import options';
|
||||
$str['Form_Export'] = $GLOBALS['strExport'];
|
||||
$str['Form_Export_defaults'] = 'Defaults';
|
||||
$str['Form_Export_defaults_desc'] = 'Customize default export options';
|
||||
|
||||
// Form: Server
|
||||
$str['Servers/verbose_name'] = 'Verbose name of this server';
|
||||
$str['Servers/verbose_desc'] = 'Hostname where MySQL server is running';
|
||||
$str['Servers/host_name'] = 'Server hostname';
|
||||
$str['Servers/host_desc'] = '';
|
||||
$str['Servers/port_name'] = 'Server port';
|
||||
$str['Servers/port_desc'] = 'Port on which MySQL server is listening, leave empty for default';
|
||||
$str['Servers/socket_name'] = 'Server socket';
|
||||
$str['Servers/socket_desc'] = 'Socket on which MySQL server is listening, leave empty for default';
|
||||
$str['Servers/ssl_name'] = 'Use SSL';
|
||||
$str['Servers/ssl_desc'] = '';
|
||||
$str['Servers/connect_type_name'] = 'Connection type';
|
||||
$str['Servers/connect_type_desc'] = 'How to connect to server, keep tcp if unsure';
|
||||
$str['Servers/extension_name'] = 'PHP extension to use';
|
||||
$str['Servers/extension_desc'] = 'What PHP extension to use, use mysqli if supported';
|
||||
$str['Servers/compress_name'] = 'Compress connection';
|
||||
$str['Servers/compress_desc'] = 'Compress connection to MySQL server';
|
||||
$str['Servers/auth_type_name'] = 'Authentication type';
|
||||
$str['Servers/auth_type_desc'] = 'Authentication method to use';
|
||||
$str['Servers/user_name'] = 'User for config auth';
|
||||
$str['Servers/user_desc'] = 'Leave empty if not using config auth';
|
||||
$str['Servers/password_name'] = 'Password for config auth';
|
||||
$str['Servers/password_desc'] = 'Leave empty if not using config auth';
|
||||
$str['Servers/nopassword_name'] = 'Connect without password';
|
||||
$str['Servers/nopassword_desc'] = 'Try to connect without password';
|
||||
|
||||
// Form: Server_login_options
|
||||
$str['Servers/SignonSession_name'] = 'Signon session name';
|
||||
$str['Servers/SignonSession_desc'] = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example';
|
||||
$str['Servers/SignonURL_name'] = 'Signon URL';
|
||||
$str['Servers/LogoutURL_name'] = 'Logout URL';
|
||||
$str['Servers/auth_swekey_config_name'] = 'SweKey config file';
|
||||
$str['Servers/auth_swekey_config_desc'] = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf';
|
||||
|
||||
// Form: Server_config
|
||||
$str['Servers/only_db_name'] = 'Show only listed databases';
|
||||
$str['Servers/only_db_desc'] = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\'';
|
||||
$str['Servers/hide_db_name'] = 'Hide databases';
|
||||
$str['Servers/hide_db_desc'] = 'Hide databases matching regular expression (PCRE)';
|
||||
$str['Servers/AllowRoot_name'] = 'Allow root login';
|
||||
$str['Servers/AllowNoPasswordRoot_name'] = 'Allow root without password';
|
||||
$str['Servers/DisableIS_name'] = 'Disable use of INFORMATION_SCHEMA';
|
||||
$str['Servers/DisableIS_desc'] = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]';
|
||||
$str['Servers/AllowDeny/order_name'] = 'Host authentication order';
|
||||
$str['Servers/AllowDeny/order_desc'] = 'Leave blank if not used';
|
||||
$str['Servers/AllowDeny/rules_name'] = 'Host authentication rules';
|
||||
$str['Servers/AllowDeny/rules_desc'] = 'Leave blank for defaults';
|
||||
$str['Servers/ShowDatabasesCommand_name'] = 'SHOW DATABASES command';
|
||||
$str['Servers/ShowDatabasesCommand_desc'] = 'SQL command to fetch available databases';
|
||||
$str['Servers/CountTables_name'] = 'Count tables';
|
||||
$str['Servers/CountTables_desc'] = 'Count tables when showing database list';
|
||||
|
||||
// Form: Server_pmadb
|
||||
$str['Servers/pmadb_name'] = 'PMA database';
|
||||
$str['Servers/pmadb_desc'] = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]';
|
||||
$str['Servers/controluser_name'] = 'Control user';
|
||||
$str['Servers/controluser_desc'] = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]';
|
||||
$str['Servers/controlpass_name'] = 'Control user password';
|
||||
$str['Servers/verbose_check_name'] = 'Verbose check';
|
||||
$str['Servers/verbose_check_desc'] = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance';
|
||||
$str['Servers/bookmarktable_name'] = 'Bookmark table';
|
||||
$str['Servers/bookmarktable_desc'] = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]';
|
||||
$str['Servers/relation_name'] = 'Relation table';
|
||||
$str['Servers/relation_desc'] = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]';
|
||||
$str['Servers/table_info_name'] = 'Display fields table';
|
||||
$str['Servers/table_info_desc'] = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]';
|
||||
$str['Servers/table_coords_name'] = 'PDF schema: table coordinates';
|
||||
$str['Servers/table_coords_desc'] = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]';
|
||||
$str['Servers/pdf_pages_name'] = 'PDF schema: pages table';
|
||||
$str['Servers/pdf_pages_desc'] = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]';
|
||||
$str['Servers/column_info_name'] = 'Column information table';
|
||||
$str['Servers/column_info_desc'] = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]';
|
||||
$str['Servers/history_name'] = 'SQL query history table';
|
||||
$str['Servers/history_desc'] = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]';
|
||||
$str['Servers/designer_coords_name'] = 'Designer table';
|
||||
$str['Servers/designer_coords_desc'] = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]';
|
||||
|
||||
// Form: Import_export
|
||||
$str['UploadDir_name'] = 'Upload directory';
|
||||
$str['UploadDir_desc'] = 'Directory on server where you can upload files for import';
|
||||
$str['SaveDir_name'] = 'Save directory';
|
||||
$str['SaveDir_desc'] = 'Directory where exports can be saved on server';
|
||||
$str['AllowAnywhereRecoding_name'] = 'Allow character set conversion';
|
||||
$str['DefaultCharset_name'] = 'Default character set';
|
||||
$str['DefaultCharset_desc'] = 'Default character set used for conversions';
|
||||
$str['RecodingEngine_name'] = 'Recoding engine';
|
||||
$str['RecodingEngine_desc'] = 'Select which functions will be used for character set conversion';
|
||||
$str['IconvExtraParams_name'] = 'Extra parameters for iconv';
|
||||
$str['ZipDump_name'] = 'ZIP';
|
||||
$str['ZipDump_desc'] = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations';
|
||||
$str['GZipDump_name'] = 'GZip';
|
||||
$str['GZipDump_desc'] = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations';
|
||||
$str['BZipDump_name'] = 'Bzip2';
|
||||
$str['BZipDump_desc'] = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations';
|
||||
$str['CompressOnFly_name'] = 'Compress on the fly';
|
||||
$str['CompressOnFly_desc'] = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature';
|
||||
|
||||
// Form: Security
|
||||
$str['blowfish_secret_name'] = 'Blowfish secret';
|
||||
$str['blowfish_secret_desc'] = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication';
|
||||
$str['ForceSSL_name'] = 'Force SSL connection';
|
||||
$str['ForceSSL_desc'] = 'Force secured connection while using phpMyAdmin';
|
||||
$str['CheckConfigurationPermissions_name'] = 'Check config file permissions';
|
||||
$str['TrustedProxies_name'] = 'List of trusted proxies for IP allow/deny';
|
||||
$str['TrustedProxies_desc'] = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]';
|
||||
$str['AllowUserDropDatabase_name'] = 'Show "Drop database" link to normal users';
|
||||
$str['AllowArbitraryServer_name'] = 'Allow login to any MySQL server';
|
||||
$str['AllowArbitraryServer_desc'] = 'If enabled user can enter any MySQL server in login form for cookie auth';
|
||||
$str['LoginCookieRecall_name'] = 'Recall user name';
|
||||
$str['LoginCookieRecall_desc'] = 'Define whether the previous login should be recalled or not in cookie authentication mode';
|
||||
$str['LoginCookieValidity_name'] = 'Login cookie validity';
|
||||
$str['LoginCookieValidity_desc'] = 'Define how long (in seconds) a login cookie is valid';
|
||||
$str['LoginCookieStore_name'] = 'Login cookie store';
|
||||
$str['LoginCookieStore_desc'] = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.';
|
||||
$str['LoginCookieDeleteAll_name'] = 'Delete all cookies on logout';
|
||||
$str['LoginCookieDeleteAll_desc'] = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.';
|
||||
|
||||
// Form: Sql_queries
|
||||
$str['ShowSQL_name'] = 'Show SQL queries';
|
||||
$str['ShowSQL_desc'] = 'Defines whether SQL queries generated by phpMyAdmin should be displayed';
|
||||
$str['Confirm_name'] = 'Confirm DROP queries';
|
||||
$str['Confirm_desc'] = 'Whether a warning ("Are your really sure...") should be displayed when you\'re about to lose data';
|
||||
$str['QueryHistoryDB_name'] = 'Permanent query history';
|
||||
$str['QueryHistoryDB_desc'] = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).';
|
||||
$str['QueryHistoryMax_name'] = 'Query history length';
|
||||
$str['QueryHistoryMax_desc'] = 'How many queries are kept in history';
|
||||
$str['IgnoreMultiSubmitErrors_name'] = 'Ignore multiple statement errors';
|
||||
$str['IgnoreMultiSubmitErrors_desc'] = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed';
|
||||
$str['VerboseMultiSubmit_name'] = 'Verbose multiple statements';
|
||||
$str['VerboseMultiSubmit_desc'] = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.';
|
||||
|
||||
// Form: Other_core_options
|
||||
$str['MaxDbList_name'] = 'Maximum databases';
|
||||
$str['MaxDbList_desc'] = 'Maximum number of databases displayed in left frame and database list';
|
||||
$str['MaxTableList_name'] = 'Maximum tables';
|
||||
$str['MaxTableList_desc'] = 'Maximum number of tables displayed in table list';
|
||||
$str['MaxCharactersInDisplayedSQL_name'] = 'Maximum displayed SQL length';
|
||||
$str['MaxCharactersInDisplayedSQL_desc'] = 'Maximum number of characters used when a SQL query is displayed';
|
||||
$str['OBGzip_name'] = 'GZip output buffering';
|
||||
$str['OBGzip_desc'] = 'use GZip output buffering for increased speed in HTTP transfers';
|
||||
$str['PersistentConnections_name'] = 'Persistent connections';
|
||||
$str['PersistentConnections_desc'] = 'Use persistent connections to MySQL databases';
|
||||
$str['ExecTimeLimit_name'] = 'Maximum execution time';
|
||||
$str['ExecTimeLimit_desc'] = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)';
|
||||
$str['MemoryLimit_name'] = 'Memory limit';
|
||||
$str['MemoryLimit_desc'] = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)';
|
||||
$str['SkipLockedTables_name'] = 'Skip locked tables';
|
||||
$str['SkipLockedTables_desc'] = 'Mark used tables and make it possible to show databases with locked tables';
|
||||
$str['UseDbSearch_name'] = 'Use database search';
|
||||
$str['UseDbSearch_desc'] = 'Allow for searching inside the entire database';
|
||||
|
||||
// Form: Left_frame
|
||||
$str['LeftFrameLight_name'] = 'Use light version';
|
||||
$str['LeftFrameLight_desc'] = 'Disable this if you want to see all databases at once';
|
||||
$str['LeftDisplayLogo_name'] = 'Display logo';
|
||||
$str['LeftDisplayLogo_desc'] = 'Show logo in left frame';
|
||||
$str['LeftLogoLink_name'] = 'Logo link URL';
|
||||
$str['LeftLogoLinkWindow_name'] = 'Logo link target';
|
||||
$str['LeftLogoLinkWindow_desc'] = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])';
|
||||
$str['LeftDefaultTabTable_name'] = 'Target for quick access icon';
|
||||
$str['LeftPointerEnable_name'] = 'Enable highlighting';
|
||||
$str['LeftPointerEnable_desc'] = 'Highlight server under the mouse cursor';
|
||||
|
||||
// Form: Left_servers
|
||||
$str['LeftDisplayServers_name'] = 'Display servers selection';
|
||||
$str['LeftDisplayServers_desc'] = 'Display server choice at the top of the left frame';
|
||||
$str['DisplayServersList_name'] = 'Display servers as a list';
|
||||
$str['DisplayServersList_desc'] = 'Show server listing as a list instead of a drop down';
|
||||
|
||||
// Form: Left_databases
|
||||
$str['DisplayDatabasesList_name'] = 'Display databases as a list';
|
||||
$str['DisplayDatabasesList_desc'] = 'Show database listing as a list instead of a drop down';
|
||||
$str['LeftFrameDBTree_name'] = 'Display databases in a tree';
|
||||
$str['LeftFrameDBTree_desc'] = 'Only light version; display databases in a tree (determined by the separator defined below)';
|
||||
$str['LeftFrameDBSeparator_name'] = 'Database tree separator';
|
||||
$str['LeftFrameDBSeparator_desc'] = 'String that separates databases into different tree levels';
|
||||
$str['ShowTooltipAliasDB_name'] = 'Display database comment instead of its name';
|
||||
$str['ShowTooltipAliasDB_desc'] = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name';
|
||||
|
||||
// Form: Left_tables
|
||||
$str['LeftFrameTableSeparator_name'] = 'Table tree separator';
|
||||
$str['LeftFrameTableSeparator_desc'] = 'String that separates tables into different tree levels';
|
||||
$str['LeftFrameTableLevel_name'] = 'Maximum table tree depth';
|
||||
$str['ShowTooltip_name'] = 'Display table comments in tooltips';
|
||||
$str['ShowTooltipAliasTB_name'] = 'Display table comment instead of its name';
|
||||
$str['ShowTooltipAliasTB_desc'] = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged';
|
||||
|
||||
// Form: Startup
|
||||
$str['ShowStats_name'] = 'Show statistics';
|
||||
$str['ShowStats_desc'] = 'Allow to display database and table statistics (eg. space usage)';
|
||||
$str['ShowPhpInfo_name'] = 'Show phpinfo() link';
|
||||
$str['ShowPhpInfo_desc'] = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output';
|
||||
$str['ShowServerInfo_name'] = 'Show detailed MySQL server information';
|
||||
$str['ShowChgPassword_name'] = 'Show password change form';
|
||||
$str['ShowChgPassword_desc'] = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly';
|
||||
$str['ShowCreateDb_name'] = 'Show create database form';
|
||||
$str['SuggestDBName_name'] = 'Suggest new database name';
|
||||
$str['SuggestDBName_desc'] = 'Suggest a database name on the "Create Database" form (if possible) or keep the text field empty';
|
||||
|
||||
// Form: Browse
|
||||
$str['NavigationBarIconic_name'] = 'Iconic navigation bar';
|
||||
$str['NavigationBarIconic_desc'] = 'Use only icons, only text or both';
|
||||
$str['ShowAll_name'] = 'Allow to display all the rows';
|
||||
$str['ShowAll_desc'] = 'Whether a user should be displayed a "show all (records)" button';
|
||||
$str['MaxRows_name'] = 'Maximum number of rows to display';
|
||||
$str['MaxRows_desc'] = 'Number of rows displayed when browsing a result set. If the result set contains more rows, "Previous" and "Next" links will be shown.';
|
||||
$str['Order_name'] = 'Default sorting order';
|
||||
$str['Order_desc'] = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise';
|
||||
$str['BrowsePointerEnable_name'] = 'Highlight pointer';
|
||||
$str['BrowsePointerEnable_desc'] = 'Highlight row pointed by the mouse cursor';
|
||||
$str['BrowseMarkerEnable_name'] = 'Row marker';
|
||||
$str['BrowseMarkerEnable_desc'] = 'Highlight selected rows';
|
||||
|
||||
// Form: Edit
|
||||
$str['ProtectBinary_name'] = 'Protect binary fields';
|
||||
$str['ProtectBinary_desc'] = 'Disallow BLOB or BLOB and BINARY fields from editing';
|
||||
$str['ShowFunctionFields_name'] = 'Show function fields';
|
||||
$str['ShowFunctionFields_desc'] = 'Display the function fields in edit/insert mode';
|
||||
$str['CharEditing_name'] = 'CHAR fields editing';
|
||||
$str['CharEditing_desc'] = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields';
|
||||
$str['CharTextareaCols_name'] = 'CHAR textarea columns';
|
||||
$str['CharTextareaCols_desc'] = 'Number of columns for textareas, this value will be emphasized (*2) for SQL query textareas and (*1.25) for SQL textareas inside the query window';
|
||||
$str['CharTextareaRows_name'] = 'CHAR textarea rows';
|
||||
$str['CharTextareaRows_desc'] = 'Number of rows for textareas, this value will be emphasized (*2) for SQL query textareas and (*1.25) for SQL textareas inside the query window';
|
||||
$str['InsertRows_name'] = 'Number of inserted rows';
|
||||
$str['InsertRows_desc'] = 'How many rows can be inserted at one time';
|
||||
$str['ForeignKeyDropdownOrder_name'] = 'Foreign key dropdown order';
|
||||
$str['ForeignKeyDropdownOrder_desc'] = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value';
|
||||
$str['ForeignKeyMaxLimit_name'] = 'Foreign key limit';
|
||||
$str['ForeignKeyMaxLimit_desc'] = 'A dropdown will be used if fewer items are present';
|
||||
|
||||
// Form: Tabs
|
||||
$str['LightTabs_name'] = 'Light tabs';
|
||||
$str['LightTabs_desc'] = 'Use less graphically intense tabs';
|
||||
$str['PropertiesIconic_name'] = 'Iconic table operations';
|
||||
$str['PropertiesIconic_desc'] = 'Use only icons, only text or both';
|
||||
$str['DefaultTabServer_name'] = 'Default server tab';
|
||||
$str['DefaultTabServer_desc'] = 'Tab that is displayed when entering a server';
|
||||
$str['DefaultTabDatabase_name'] = 'Default database tab';
|
||||
$str['DefaultTabDatabase_desc'] = 'Tab that is displayed when entering a database';
|
||||
$str['DefaultTabTable_name'] = 'Default table tab';
|
||||
$str['DefaultTabTable_desc'] = 'Tab that is displayed when entering a table';
|
||||
|
||||
// Form: Sql_Box
|
||||
$str['SQLQuery/Edit_name'] = $GLOBALS['strEdit'];
|
||||
$str['SQLQuery/Explain_name'] = $GLOBALS['strExplain'];
|
||||
$str['SQLQuery/ShowAsPHP_name'] = $GLOBALS['strPhp'];
|
||||
$str['SQLQuery/Validate_name'] = $GLOBALS['strValidateSQL'];
|
||||
$str['SQLQuery/Refresh_name'] = $GLOBALS['strRefresh'];
|
||||
|
||||
// Form: Import
|
||||
$str['Import/format_name'] = $GLOBALS['strImportFormat'];
|
||||
$str['Import/format_desc'] = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable';
|
||||
$str['Import/allow_interrupt_name'] = 'Partial import: allow interrupt';
|
||||
$str['Import/allow_interrupt_desc'] = $GLOBALS['strAllowInterrupt'];
|
||||
$str['Import/skip_queries_name'] = 'Partial import: skip queries';
|
||||
$str['Import/skip_queries_desc'] = $GLOBALS['strSkipQueries'];
|
||||
|
||||
// Form: Import_sql
|
||||
$str['Import/sql_compatibility_name'] = $GLOBALS['strSQLCompatibility'];
|
||||
$str['Import/sql_compatibility_desc'] = 'You can find more information on SQL compatibility modes in [a@http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html]MySQL Reference Manual[/a]';
|
||||
// Form: Import_csv
|
||||
$str['Import/csv_replace_name'] = $GLOBALS['strReplaceTable'];
|
||||
$str['Import/csv_terminated_name'] = $GLOBALS['strFieldsTerminatedBy'];
|
||||
$str['Import/csv_enclosed_name'] = $GLOBALS['strFieldsEnclosedBy'];
|
||||
$str['Import/csv_escaped_name'] = $GLOBALS['strFieldsEscapedBy'];
|
||||
$str['Import/csv_new_line_name'] = $GLOBALS['strLinesTerminatedBy'];
|
||||
$str['Import/csv_columns_name'] = $GLOBALS['strColumnNames'];
|
||||
|
||||
// Form: Import_ldi
|
||||
$str['Import/ldi_replace_name'] = $GLOBALS['strReplaceTable'];
|
||||
$str['Import/ldi_terminated_name'] = $GLOBALS['strFieldsTerminatedBy'];
|
||||
$str['Import/ldi_enclosed_name'] = $GLOBALS['strFieldsEnclosedBy'];
|
||||
$str['Import/ldi_escaped_name'] = $GLOBALS['strFieldsEscapedBy'];
|
||||
$str['Import/ldi_new_line_name'] = $GLOBALS['strLinesTerminatedBy'];
|
||||
$str['Import/ldi_columns_name'] = $GLOBALS['strColumnNames'];
|
||||
$str['Import/ldi_local_option_name'] = $GLOBALS['strLDILocal'];
|
||||
|
||||
// Form: Export_defaults
|
||||
$str['Export/format_name'] = 'Format';
|
||||
$str['Export/compression_name'] = $GLOBALS['strCompression'];
|
||||
$str['Export/asfile_name'] = $GLOBALS['strSend'];
|
||||
$str['Export/charset_name'] = $GLOBALS['strCharsetOfFile'];
|
||||
$str['Export/onserver_name'] = 'Save on server';
|
||||
$str['Export/onserver_overwrite_name'] = $GLOBALS['strOverwriteExisting'];
|
||||
$str['Export/remember_file_template_name'] = 'Remember file name template';
|
||||
$str['Export/file_template_table_name'] = 'Table name template';
|
||||
$str['Export/file_template_database_name'] = 'Database name template';
|
||||
$str['Export/file_template_server_name'] = 'Server name template';
|
||||
?>
|
@@ -1,314 +1,314 @@
|
||||
<?php
|
||||
/**
|
||||
* Config file management and generation class
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
class ConfigFile
|
||||
{
|
||||
/**
|
||||
* Stores default PMA config from config.default.php
|
||||
* @var array
|
||||
*/
|
||||
private $cfg;
|
||||
|
||||
/**
|
||||
* Stores allowed values for non-standard fields
|
||||
* @var array
|
||||
*/
|
||||
private $cfgDb;
|
||||
|
||||
/**
|
||||
* Keys which will be always written to config file
|
||||
* @var array
|
||||
*/
|
||||
private $persistKeys;
|
||||
|
||||
/**
|
||||
* ConfigFile instance
|
||||
* @var ConfigFile
|
||||
*/
|
||||
private static $_instance;
|
||||
|
||||
/**
|
||||
* Private constructor, use {@link getInstance()}
|
||||
*/
|
||||
private function __construct()
|
||||
{
|
||||
// load default config values
|
||||
$cfg = &$this->cfg;
|
||||
require './libraries/config.default.php';
|
||||
|
||||
// load additionsl config information
|
||||
$cfg_db = &$this->cfgDb;
|
||||
$persist_keys = array();
|
||||
require './setup/lib/config_info.inc.php';
|
||||
|
||||
// apply default values overrides
|
||||
if (count($cfg_db['_overrides'])) {
|
||||
foreach ($cfg_db['_overrides'] as $path => $value) {
|
||||
array_write($path, $cfg, $value);
|
||||
}
|
||||
}
|
||||
|
||||
// checking key presence is much faster than searching so move values to keys
|
||||
$this->persistKeys = array_flip($persist_keys);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns class instance
|
||||
*
|
||||
* @return ConfigFile
|
||||
*/
|
||||
public static function getInstance()
|
||||
{
|
||||
if (is_null(self::$_instance)) {
|
||||
self::$_instance = new ConfigFile();
|
||||
}
|
||||
return self::$_instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets config value
|
||||
*
|
||||
* @param string $path
|
||||
* @param mixed $value
|
||||
* @param string $canonical_path
|
||||
*/
|
||||
public function set($path, $value, $canonical_path = null)
|
||||
{
|
||||
if ($canonical_path === null) {
|
||||
$canonical_path = $this->getCanonicalPath($path);
|
||||
}
|
||||
// remove if the path isn't protected and it's empty or has a default value
|
||||
$default_value = $this->getDefault($canonical_path);
|
||||
if (!isset($this->persistKeys[$canonical_path])
|
||||
&& (($value == $default_value) || (empty($value) && empty($default_value)))) {
|
||||
array_remove($path, $_SESSION['ConfigFile']);
|
||||
} else {
|
||||
array_write($path, $_SESSION['ConfigFile'], $value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns config value or $default if it's not set
|
||||
*
|
||||
* @param string $path
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
public function get($path, $default = null)
|
||||
{
|
||||
return array_read($path, $_SESSION['ConfigFile'], $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns default config value or $default it it's not set ie. it doesn't
|
||||
* exist in config.default.php ($cfg) and config_info.inc.php
|
||||
* ($_cfg_db['_overrides'])
|
||||
*
|
||||
* @param string $canonical_path
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
public function getDefault($canonical_path, $default = null)
|
||||
{
|
||||
return array_read($canonical_path, $this->cfg, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns config value, if it's not set uses the default one; returns
|
||||
* $default if the path isn't set and doesn't contain a default value
|
||||
*
|
||||
* @param string $path
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
public function getValue($path, $default = null)
|
||||
{
|
||||
$v = array_read($path, $_SESSION['ConfigFile'], null);
|
||||
if ($v !== null) {
|
||||
return $v;
|
||||
}
|
||||
$path = $this->getCanonicalPath($path);
|
||||
return $this->getDefault($path, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns canonical path
|
||||
*
|
||||
* @param string $path
|
||||
* @return string
|
||||
*/
|
||||
public function getCanonicalPath($path) {
|
||||
return preg_replace('#^Servers/([\d]+)/#', 'Servers/1/', $path);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns config database entry for $path ($cfg_db in config_info.php)
|
||||
*
|
||||
* @param string $path
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
public function getDbEntry($path, $default = null)
|
||||
{
|
||||
return array_read($path, $this->cfgDb, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns server count
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getServerCount()
|
||||
{
|
||||
return isset($_SESSION['ConfigFile']['Servers'])
|
||||
? count($_SESSION['ConfigFile']['Servers'])
|
||||
: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns DSN of given server
|
||||
*
|
||||
* @param integer $server
|
||||
* @return string
|
||||
*/
|
||||
function getServerDSN($server)
|
||||
{
|
||||
if (!isset($_SESSION['ConfigFile']['Servers'][$server])) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$path = 'Servers/' . $server;
|
||||
$dsn = $this->getValue("$path/extension") . '://';
|
||||
if ($this->getValue("$path/auth_type") == 'config') {
|
||||
$dsn .= $this->getValue("$path/user");
|
||||
if (!$this->getValue("$path/nopassword")) {
|
||||
$dsn .= ':***';
|
||||
}
|
||||
$dsn .= '@';
|
||||
}
|
||||
if ($this->getValue("$path/connect_type") == 'tcp') {
|
||||
$dsn .= $this->getValue("$path/host");
|
||||
$port = $this->getValue("$path/port");
|
||||
if ($port) {
|
||||
$dsn .= ':' . $port;
|
||||
}
|
||||
} else {
|
||||
$dsn .= $this->getValue("$path/socket");
|
||||
}
|
||||
return $dsn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns server name
|
||||
*
|
||||
* @param int $id
|
||||
* @return string
|
||||
*/
|
||||
public function getServerName($id)
|
||||
{
|
||||
if (!isset($_SESSION['ConfigFile']['Servers'][$id])) {
|
||||
return '';
|
||||
}
|
||||
$verbose = $this->get("Servers/$id/verbose");
|
||||
if (!empty($verbose)) {
|
||||
return $verbose;
|
||||
}
|
||||
$host = $this->get("Servers/$id/host");
|
||||
return empty($host) ? 'localhost' : $host;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes server
|
||||
*
|
||||
* @param int $server
|
||||
*/
|
||||
public function removeServer($server)
|
||||
{
|
||||
if (!isset($_SESSION['ConfigFile']['Servers'][$server])) {
|
||||
return;
|
||||
}
|
||||
$last_server = $this->getServerCount();
|
||||
|
||||
for ($i = $server; $i < $last_server; $i++) {
|
||||
$_SESSION['ConfigFile']['Servers'][$i] = $_SESSION['ConfigFile']['Servers'][$i+1];
|
||||
}
|
||||
unset($_SESSION['ConfigFile']['Servers'][$last_server]);
|
||||
|
||||
if (isset($_SESSION['ConfigFile']['ServerDefault'])
|
||||
&& $_SESSION['ConfigFile']['ServerDefault'] >= 0) {
|
||||
unset($_SESSION['ConfigFile']['ServerDefault']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns config file path
|
||||
*
|
||||
* @return unknown
|
||||
*/
|
||||
public function getFilePath()
|
||||
{
|
||||
return $this->getDbEntry('_config_file_path');
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates config file
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getConfigFile()
|
||||
{
|
||||
$crlf = (isset($_SESSION['eol']) && $_SESSION['eol'] == 'win') ? "\r\n" : "\n";
|
||||
$c = $_SESSION['ConfigFile'];
|
||||
|
||||
// header
|
||||
$ret = '<?php' . $crlf
|
||||
. '/*' . $crlf
|
||||
. ' * Generated configuration file' . $crlf
|
||||
. ' * Generated by: phpMyAdmin '
|
||||
. $_SESSION['PMA_Config']->get('PMA_VERSION')
|
||||
. ' setup script by Piotr Przybylski <piotrprz@gmail.com>' . $crlf
|
||||
. ' * Date: ' . date(DATE_RFC1123) . $crlf
|
||||
. ' */' . $crlf . $crlf;
|
||||
|
||||
// servers
|
||||
if ($this->getServerCount() > 0) {
|
||||
$ret .= "/* Servers configuration */$crlf\$i = 0;" . $crlf . $crlf;
|
||||
foreach ($c['Servers'] as $id => $server) {
|
||||
$ret .= '/* Server: ' . $this->getServerName($id) . " [$id] */" . $crlf
|
||||
. '$i++;' . $crlf;
|
||||
foreach ($server as $k => $v) {
|
||||
$ret .= "\$cfg['Servers'][\$i]['$k'] = "
|
||||
. var_export($v, true) . ';' . $crlf;
|
||||
}
|
||||
$ret .= $crlf;
|
||||
}
|
||||
$ret .= '/* End of servers configuration */' . $crlf . $crlf;
|
||||
}
|
||||
unset($c['Servers']);
|
||||
|
||||
// other settings
|
||||
$persistKeys = $this->persistKeys;
|
||||
foreach ($c as $k => $v) {
|
||||
$ret .= "\$cfg['$k'] = " . var_export($v, true) . ';' . $crlf;
|
||||
if (isset($persistKeys[$k])) {
|
||||
unset($persistKeys[$k]);
|
||||
}
|
||||
}
|
||||
// keep 1d array keys which are present in $persist_keys (config_info.inc.php)
|
||||
foreach (array_keys($persistKeys) as $k) {
|
||||
if (strpos($k, '/') === false) {
|
||||
$ret .= "\$cfg['$k'] = " . var_export($this->getDefault($k), true) . ';' . $crlf;
|
||||
}
|
||||
}
|
||||
$ret .= '?>';
|
||||
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
<?php
|
||||
/**
|
||||
* Config file management and generation class
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
class ConfigFile
|
||||
{
|
||||
/**
|
||||
* Stores default PMA config from config.default.php
|
||||
* @var array
|
||||
*/
|
||||
private $cfg;
|
||||
|
||||
/**
|
||||
* Stores allowed values for non-standard fields
|
||||
* @var array
|
||||
*/
|
||||
private $cfgDb;
|
||||
|
||||
/**
|
||||
* Keys which will be always written to config file
|
||||
* @var array
|
||||
*/
|
||||
private $persistKeys;
|
||||
|
||||
/**
|
||||
* ConfigFile instance
|
||||
* @var ConfigFile
|
||||
*/
|
||||
private static $_instance;
|
||||
|
||||
/**
|
||||
* Private constructor, use {@link getInstance()}
|
||||
*/
|
||||
private function __construct()
|
||||
{
|
||||
// load default config values
|
||||
$cfg = &$this->cfg;
|
||||
require './libraries/config.default.php';
|
||||
|
||||
// load additionsl config information
|
||||
$cfg_db = &$this->cfgDb;
|
||||
$persist_keys = array();
|
||||
require './setup/lib/config_info.inc.php';
|
||||
|
||||
// apply default values overrides
|
||||
if (count($cfg_db['_overrides'])) {
|
||||
foreach ($cfg_db['_overrides'] as $path => $value) {
|
||||
array_write($path, $cfg, $value);
|
||||
}
|
||||
}
|
||||
|
||||
// checking key presence is much faster than searching so move values to keys
|
||||
$this->persistKeys = array_flip($persist_keys);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns class instance
|
||||
*
|
||||
* @return ConfigFile
|
||||
*/
|
||||
public static function getInstance()
|
||||
{
|
||||
if (is_null(self::$_instance)) {
|
||||
self::$_instance = new ConfigFile();
|
||||
}
|
||||
return self::$_instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets config value
|
||||
*
|
||||
* @param string $path
|
||||
* @param mixed $value
|
||||
* @param string $canonical_path
|
||||
*/
|
||||
public function set($path, $value, $canonical_path = null)
|
||||
{
|
||||
if ($canonical_path === null) {
|
||||
$canonical_path = $this->getCanonicalPath($path);
|
||||
}
|
||||
// remove if the path isn't protected and it's empty or has a default value
|
||||
$default_value = $this->getDefault($canonical_path);
|
||||
if (!isset($this->persistKeys[$canonical_path])
|
||||
&& (($value == $default_value) || (empty($value) && empty($default_value)))) {
|
||||
array_remove($path, $_SESSION['ConfigFile']);
|
||||
} else {
|
||||
array_write($path, $_SESSION['ConfigFile'], $value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns config value or $default if it's not set
|
||||
*
|
||||
* @param string $path
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
public function get($path, $default = null)
|
||||
{
|
||||
return array_read($path, $_SESSION['ConfigFile'], $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns default config value or $default it it's not set ie. it doesn't
|
||||
* exist in config.default.php ($cfg) and config_info.inc.php
|
||||
* ($_cfg_db['_overrides'])
|
||||
*
|
||||
* @param string $canonical_path
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
public function getDefault($canonical_path, $default = null)
|
||||
{
|
||||
return array_read($canonical_path, $this->cfg, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns config value, if it's not set uses the default one; returns
|
||||
* $default if the path isn't set and doesn't contain a default value
|
||||
*
|
||||
* @param string $path
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
public function getValue($path, $default = null)
|
||||
{
|
||||
$v = array_read($path, $_SESSION['ConfigFile'], null);
|
||||
if ($v !== null) {
|
||||
return $v;
|
||||
}
|
||||
$path = $this->getCanonicalPath($path);
|
||||
return $this->getDefault($path, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns canonical path
|
||||
*
|
||||
* @param string $path
|
||||
* @return string
|
||||
*/
|
||||
public function getCanonicalPath($path) {
|
||||
return preg_replace('#^Servers/([\d]+)/#', 'Servers/1/', $path);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns config database entry for $path ($cfg_db in config_info.php)
|
||||
*
|
||||
* @param string $path
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
public function getDbEntry($path, $default = null)
|
||||
{
|
||||
return array_read($path, $this->cfgDb, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns server count
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getServerCount()
|
||||
{
|
||||
return isset($_SESSION['ConfigFile']['Servers'])
|
||||
? count($_SESSION['ConfigFile']['Servers'])
|
||||
: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns DSN of given server
|
||||
*
|
||||
* @param integer $server
|
||||
* @return string
|
||||
*/
|
||||
function getServerDSN($server)
|
||||
{
|
||||
if (!isset($_SESSION['ConfigFile']['Servers'][$server])) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$path = 'Servers/' . $server;
|
||||
$dsn = $this->getValue("$path/extension") . '://';
|
||||
if ($this->getValue("$path/auth_type") == 'config') {
|
||||
$dsn .= $this->getValue("$path/user");
|
||||
if (!$this->getValue("$path/nopassword")) {
|
||||
$dsn .= ':***';
|
||||
}
|
||||
$dsn .= '@';
|
||||
}
|
||||
if ($this->getValue("$path/connect_type") == 'tcp') {
|
||||
$dsn .= $this->getValue("$path/host");
|
||||
$port = $this->getValue("$path/port");
|
||||
if ($port) {
|
||||
$dsn .= ':' . $port;
|
||||
}
|
||||
} else {
|
||||
$dsn .= $this->getValue("$path/socket");
|
||||
}
|
||||
return $dsn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns server name
|
||||
*
|
||||
* @param int $id
|
||||
* @return string
|
||||
*/
|
||||
public function getServerName($id)
|
||||
{
|
||||
if (!isset($_SESSION['ConfigFile']['Servers'][$id])) {
|
||||
return '';
|
||||
}
|
||||
$verbose = $this->get("Servers/$id/verbose");
|
||||
if (!empty($verbose)) {
|
||||
return $verbose;
|
||||
}
|
||||
$host = $this->get("Servers/$id/host");
|
||||
return empty($host) ? 'localhost' : $host;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes server
|
||||
*
|
||||
* @param int $server
|
||||
*/
|
||||
public function removeServer($server)
|
||||
{
|
||||
if (!isset($_SESSION['ConfigFile']['Servers'][$server])) {
|
||||
return;
|
||||
}
|
||||
$last_server = $this->getServerCount();
|
||||
|
||||
for ($i = $server; $i < $last_server; $i++) {
|
||||
$_SESSION['ConfigFile']['Servers'][$i] = $_SESSION['ConfigFile']['Servers'][$i+1];
|
||||
}
|
||||
unset($_SESSION['ConfigFile']['Servers'][$last_server]);
|
||||
|
||||
if (isset($_SESSION['ConfigFile']['ServerDefault'])
|
||||
&& $_SESSION['ConfigFile']['ServerDefault'] >= 0) {
|
||||
unset($_SESSION['ConfigFile']['ServerDefault']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns config file path
|
||||
*
|
||||
* @return unknown
|
||||
*/
|
||||
public function getFilePath()
|
||||
{
|
||||
return $this->getDbEntry('_config_file_path');
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates config file
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getConfigFile()
|
||||
{
|
||||
$crlf = (isset($_SESSION['eol']) && $_SESSION['eol'] == 'win') ? "\r\n" : "\n";
|
||||
$c = $_SESSION['ConfigFile'];
|
||||
|
||||
// header
|
||||
$ret = '<?php' . $crlf
|
||||
. '/*' . $crlf
|
||||
. ' * Generated configuration file' . $crlf
|
||||
. ' * Generated by: phpMyAdmin '
|
||||
. $_SESSION['PMA_Config']->get('PMA_VERSION')
|
||||
. ' setup script by Piotr Przybylski <piotrprz@gmail.com>' . $crlf
|
||||
. ' * Date: ' . date(DATE_RFC1123) . $crlf
|
||||
. ' */' . $crlf . $crlf;
|
||||
|
||||
// servers
|
||||
if ($this->getServerCount() > 0) {
|
||||
$ret .= "/* Servers configuration */$crlf\$i = 0;" . $crlf . $crlf;
|
||||
foreach ($c['Servers'] as $id => $server) {
|
||||
$ret .= '/* Server: ' . $this->getServerName($id) . " [$id] */" . $crlf
|
||||
. '$i++;' . $crlf;
|
||||
foreach ($server as $k => $v) {
|
||||
$ret .= "\$cfg['Servers'][\$i]['$k'] = "
|
||||
. var_export($v, true) . ';' . $crlf;
|
||||
}
|
||||
$ret .= $crlf;
|
||||
}
|
||||
$ret .= '/* End of servers configuration */' . $crlf . $crlf;
|
||||
}
|
||||
unset($c['Servers']);
|
||||
|
||||
// other settings
|
||||
$persistKeys = $this->persistKeys;
|
||||
foreach ($c as $k => $v) {
|
||||
$ret .= "\$cfg['$k'] = " . var_export($v, true) . ';' . $crlf;
|
||||
if (isset($persistKeys[$k])) {
|
||||
unset($persistKeys[$k]);
|
||||
}
|
||||
}
|
||||
// keep 1d array keys which are present in $persist_keys (config_info.inc.php)
|
||||
foreach (array_keys($persistKeys) as $k) {
|
||||
if (strpos($k, '/') === false) {
|
||||
$ret .= "\$cfg['$k'] = " . var_export($this->getDefault($k), true) . ';' . $crlf;
|
||||
}
|
||||
}
|
||||
$ret .= '?>';
|
||||
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
?>
|
@@ -1,177 +1,177 @@
|
||||
<?php
|
||||
/**
|
||||
* Base class for forms, loads default configuration options, checks allowed
|
||||
* values etc.
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
class Form
|
||||
{
|
||||
/**
|
||||
* Form name
|
||||
* @var string
|
||||
*/
|
||||
public $name;
|
||||
|
||||
/**
|
||||
* Arbitrary index, doesn't affect class' behavior
|
||||
* @var int
|
||||
*/
|
||||
public $index;
|
||||
|
||||
/**
|
||||
* Form fields (paths), filled by {@link readFormPaths()}, indexed by field name
|
||||
* @var array
|
||||
*/
|
||||
public $fields;
|
||||
|
||||
/**
|
||||
* Stores default values for some fields (eg. pmadb tables)
|
||||
* @var array
|
||||
*/
|
||||
public $default;
|
||||
|
||||
/**
|
||||
* Caches field types, indexed by field names
|
||||
* @var array
|
||||
*/
|
||||
private $fieldsTypes;
|
||||
|
||||
/**
|
||||
* Cached forms
|
||||
* @var array
|
||||
*/
|
||||
private static $_forms;
|
||||
|
||||
/**
|
||||
* Constructor, reads default config values
|
||||
*
|
||||
* @param string $form_name
|
||||
* @param int $index arbitrary index, stored in Form::$index
|
||||
*/
|
||||
public function __construct($form_name, $index = null)
|
||||
{
|
||||
$this->index = $index;
|
||||
$this->loadForm($form_name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns type of given option
|
||||
*
|
||||
* @param string $option_name path or field name
|
||||
* @return string|null one of: boolean, integer, double, string, select, array
|
||||
*/
|
||||
public function getOptionType($option_name)
|
||||
{
|
||||
$key = ltrim(substr($option_name, strrpos($option_name, '/')), '/');
|
||||
return isset($this->fieldsTypes[$key])
|
||||
? $this->fieldsTypes[$key]
|
||||
: null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns allowed values for select fields
|
||||
*
|
||||
* @param string $option_path
|
||||
* @return array
|
||||
*/
|
||||
public function getOptionValueList($option_path)
|
||||
{
|
||||
$value = ConfigFile::getInstance()->getDbEntry($option_path);
|
||||
if ($value === null) {
|
||||
trigger_error("$option_path - select options not defined", E_USER_ERROR);
|
||||
return array();
|
||||
}
|
||||
if (!is_array($value)) {
|
||||
trigger_error("$option_path - not a static value list", E_USER_ERROR);
|
||||
return array();
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* array_walk callback function, reads path of form fields from
|
||||
* array (see file comment in forms.inc.php)
|
||||
*
|
||||
* @param mixed $value
|
||||
* @param mixed $key
|
||||
* @param mixed $prefix
|
||||
*/
|
||||
private function _readFormPathsCallback($value, $key, $prefix)
|
||||
{
|
||||
if (is_array($value)) {
|
||||
$prefix .= (empty($prefix) ? '' : '/') . $key;
|
||||
array_walk($value, array($this, '_readFormPathsCallback'), $prefix);
|
||||
} else {
|
||||
if (!is_int($key)) {
|
||||
$this->default[$prefix . '/' . $key] = $value;
|
||||
$value = $key;
|
||||
}
|
||||
$this->fields[] = $prefix . '/' . $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads form paths to {@link $fields}
|
||||
*/
|
||||
protected function readFormPaths()
|
||||
{
|
||||
if (is_null(self::$_forms)) {
|
||||
$forms =& self::$_forms;
|
||||
require './setup/lib/forms.inc.php';
|
||||
}
|
||||
|
||||
if (!isset(self::$_forms[$this->name])) {
|
||||
return;
|
||||
}
|
||||
|
||||
// flatten form fields' paths and save them to $fields
|
||||
$this->fields = array();
|
||||
array_walk(self::$_forms[$this->name], array($this, '_readFormPathsCallback'), '');
|
||||
|
||||
// $this->fields is an array of the form: [0..n] => 'field path'
|
||||
// change numeric indexes to contain field names (last part of the path)
|
||||
$paths = $this->fields;
|
||||
$this->fields = array();
|
||||
foreach ($paths as $path) {
|
||||
$path = ltrim($path, '/');
|
||||
$key = ltrim(substr($path, strrpos($path, '/')), '/');
|
||||
$this->fields[$key] = $path;
|
||||
}
|
||||
// now $this->fields is an array of the form: 'field name' => 'field path'
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads fields' types to $this->fieldsTypes
|
||||
*/
|
||||
protected function readTypes()
|
||||
{
|
||||
$cf = ConfigFile::getInstance();
|
||||
foreach ($this->fields as $name => $path) {
|
||||
$v = $cf->getDbEntry($path);
|
||||
if ($v !== null) {
|
||||
$type = is_array($v) ? 'select' : $v;
|
||||
} else {
|
||||
$type = gettype($cf->getDefault($path));
|
||||
}
|
||||
$this->fieldsTypes[$name] = $type;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads form settings and prepares class to work with given subset of
|
||||
* config file
|
||||
*
|
||||
* @param string $form_name
|
||||
*/
|
||||
public function loadForm($form_name)
|
||||
{
|
||||
$this->name = $form_name;
|
||||
$this->readFormPaths();
|
||||
$this->readTypes();
|
||||
}
|
||||
}
|
||||
<?php
|
||||
/**
|
||||
* Base class for forms, loads default configuration options, checks allowed
|
||||
* values etc.
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
class Form
|
||||
{
|
||||
/**
|
||||
* Form name
|
||||
* @var string
|
||||
*/
|
||||
public $name;
|
||||
|
||||
/**
|
||||
* Arbitrary index, doesn't affect class' behavior
|
||||
* @var int
|
||||
*/
|
||||
public $index;
|
||||
|
||||
/**
|
||||
* Form fields (paths), filled by {@link readFormPaths()}, indexed by field name
|
||||
* @var array
|
||||
*/
|
||||
public $fields;
|
||||
|
||||
/**
|
||||
* Stores default values for some fields (eg. pmadb tables)
|
||||
* @var array
|
||||
*/
|
||||
public $default;
|
||||
|
||||
/**
|
||||
* Caches field types, indexed by field names
|
||||
* @var array
|
||||
*/
|
||||
private $fieldsTypes;
|
||||
|
||||
/**
|
||||
* Cached forms
|
||||
* @var array
|
||||
*/
|
||||
private static $_forms;
|
||||
|
||||
/**
|
||||
* Constructor, reads default config values
|
||||
*
|
||||
* @param string $form_name
|
||||
* @param int $index arbitrary index, stored in Form::$index
|
||||
*/
|
||||
public function __construct($form_name, $index = null)
|
||||
{
|
||||
$this->index = $index;
|
||||
$this->loadForm($form_name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns type of given option
|
||||
*
|
||||
* @param string $option_name path or field name
|
||||
* @return string|null one of: boolean, integer, double, string, select, array
|
||||
*/
|
||||
public function getOptionType($option_name)
|
||||
{
|
||||
$key = ltrim(substr($option_name, strrpos($option_name, '/')), '/');
|
||||
return isset($this->fieldsTypes[$key])
|
||||
? $this->fieldsTypes[$key]
|
||||
: null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns allowed values for select fields
|
||||
*
|
||||
* @param string $option_path
|
||||
* @return array
|
||||
*/
|
||||
public function getOptionValueList($option_path)
|
||||
{
|
||||
$value = ConfigFile::getInstance()->getDbEntry($option_path);
|
||||
if ($value === null) {
|
||||
trigger_error("$option_path - select options not defined", E_USER_ERROR);
|
||||
return array();
|
||||
}
|
||||
if (!is_array($value)) {
|
||||
trigger_error("$option_path - not a static value list", E_USER_ERROR);
|
||||
return array();
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* array_walk callback function, reads path of form fields from
|
||||
* array (see file comment in forms.inc.php)
|
||||
*
|
||||
* @param mixed $value
|
||||
* @param mixed $key
|
||||
* @param mixed $prefix
|
||||
*/
|
||||
private function _readFormPathsCallback($value, $key, $prefix)
|
||||
{
|
||||
if (is_array($value)) {
|
||||
$prefix .= (empty($prefix) ? '' : '/') . $key;
|
||||
array_walk($value, array($this, '_readFormPathsCallback'), $prefix);
|
||||
} else {
|
||||
if (!is_int($key)) {
|
||||
$this->default[$prefix . '/' . $key] = $value;
|
||||
$value = $key;
|
||||
}
|
||||
$this->fields[] = $prefix . '/' . $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads form paths to {@link $fields}
|
||||
*/
|
||||
protected function readFormPaths()
|
||||
{
|
||||
if (is_null(self::$_forms)) {
|
||||
$forms =& self::$_forms;
|
||||
require './setup/lib/forms.inc.php';
|
||||
}
|
||||
|
||||
if (!isset(self::$_forms[$this->name])) {
|
||||
return;
|
||||
}
|
||||
|
||||
// flatten form fields' paths and save them to $fields
|
||||
$this->fields = array();
|
||||
array_walk(self::$_forms[$this->name], array($this, '_readFormPathsCallback'), '');
|
||||
|
||||
// $this->fields is an array of the form: [0..n] => 'field path'
|
||||
// change numeric indexes to contain field names (last part of the path)
|
||||
$paths = $this->fields;
|
||||
$this->fields = array();
|
||||
foreach ($paths as $path) {
|
||||
$path = ltrim($path, '/');
|
||||
$key = ltrim(substr($path, strrpos($path, '/')), '/');
|
||||
$this->fields[$key] = $path;
|
||||
}
|
||||
// now $this->fields is an array of the form: 'field name' => 'field path'
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads fields' types to $this->fieldsTypes
|
||||
*/
|
||||
protected function readTypes()
|
||||
{
|
||||
$cf = ConfigFile::getInstance();
|
||||
foreach ($this->fields as $name => $path) {
|
||||
$v = $cf->getDbEntry($path);
|
||||
if ($v !== null) {
|
||||
$type = is_array($v) ? 'select' : $v;
|
||||
} else {
|
||||
$type = gettype($cf->getDefault($path));
|
||||
}
|
||||
$this->fieldsTypes[$name] = $type;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads form settings and prepares class to work with given subset of
|
||||
* config file
|
||||
*
|
||||
* @param string $form_name
|
||||
*/
|
||||
public function loadForm($form_name)
|
||||
{
|
||||
$this->name = $form_name;
|
||||
$this->readFormPaths();
|
||||
$this->readTypes();
|
||||
}
|
||||
}
|
||||
?>
|
File diff suppressed because it is too large
Load Diff
@@ -1,294 +1,294 @@
|
||||
<?php
|
||||
/**
|
||||
* Form templates
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
/**
|
||||
* Displays top part of the form
|
||||
*
|
||||
* @param string $action default: $_SERVER['REQUEST_URI']
|
||||
* @param string $method 'post' or 'get'
|
||||
* @param array $hidden_fields array of form hidden fields (key: field name)
|
||||
*/
|
||||
function display_form_top($action = null, $method = 'post', $hidden_fields = null)
|
||||
{
|
||||
static $has_check_page_refresh = false;
|
||||
|
||||
if ($action === null) {
|
||||
$action = $_SERVER['REQUEST_URI'];
|
||||
}
|
||||
if ($method != 'post') {
|
||||
$method = 'get';
|
||||
}
|
||||
?>
|
||||
<form method="<?php echo $method ?>" action="<?php echo htmlspecialchars($action) ?>">
|
||||
<?php
|
||||
// we do validation on page refresh when browser remembers field values,
|
||||
// add a field with known value which will be used for checks
|
||||
if (!$has_check_page_refresh) {
|
||||
$has_check_page_refresh = true;
|
||||
echo '<input type="hidden" name="check_page_refresh" id="check_page_refresh"'
|
||||
. ' value="" />' . "\n";
|
||||
}
|
||||
echo PMA_generate_common_hidden_inputs() . "\n";
|
||||
echo PMA_getHiddenFields((array)$hidden_fields);
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays form tabs which are given by an array indexed by fieldset id
|
||||
* ({@link display_fieldset_top}), with values being tab titles.
|
||||
*
|
||||
* @param array $tabs
|
||||
*/
|
||||
function display_tabs_top($tabs) {
|
||||
?>
|
||||
<ul class="tabs">
|
||||
<?php foreach ($tabs as $tab_id => $tab_name): ?>
|
||||
<li><a href="#<?php echo $tab_id ?>"><?php echo $tab_name ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<br clear="right" />
|
||||
<div class="tabs_contents">
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Displays top part of a fieldset
|
||||
*
|
||||
* @param string $title
|
||||
* @param string $description
|
||||
* @param array $errors
|
||||
* @param array $attributes
|
||||
*/
|
||||
function display_fieldset_top($title = '', $description = '', $errors = null, $attributes = array())
|
||||
{
|
||||
$attributes = array_merge(array('class' => 'optbox'), $attributes);
|
||||
foreach ($attributes as $k => &$attr) {
|
||||
$attr = $k . '="' . htmlspecialchars($attr) . '"';
|
||||
}
|
||||
|
||||
echo '<fieldset ' . implode(' ', $attributes) . '>';
|
||||
echo '<legend>' . $title . '</legend>';
|
||||
if (!empty($description)) {
|
||||
echo '<p>' . $description . '</p>';
|
||||
}
|
||||
// this must match with displayErrors() in scripts.js
|
||||
if (is_array($errors) && count($errors) > 0) {
|
||||
echo '<dl class="errors">';
|
||||
foreach ($errors as $error) {
|
||||
echo '<dd>' . $error . '</dd>';
|
||||
}
|
||||
echo '</dl>';
|
||||
}
|
||||
?>
|
||||
<table width="100%" cellspacing="0">
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays input field
|
||||
*
|
||||
* $opts keys:
|
||||
* o doc - (string) documentation link
|
||||
* o errors - error array
|
||||
* o setvalue - (string) shows button allowing to set poredefined value
|
||||
* o show_restore_default - (boolean) whether show "restore default" button
|
||||
* o values - key - value paris for <select> fields
|
||||
* o values_escaped - (boolean) tells whether values array is already escaped (defaults to false)
|
||||
* o values_disabled - (array)list of disabled values (keys from values)
|
||||
* o wiki - (string) wiki link
|
||||
*
|
||||
* @param string $path
|
||||
* @param string $name
|
||||
* @param string $description
|
||||
* @param string $type
|
||||
* @param mixed $value
|
||||
* @param bool $value_is_default
|
||||
* @param array $opts
|
||||
*/
|
||||
function display_input($path, $name, $description = '', $type, $value, $value_is_default = true, $opts = null)
|
||||
{
|
||||
$field_class = $value_is_default ? '' : ' class="custom"';
|
||||
$name_id = 'name="' . $path . '" id="' . $path . '"';
|
||||
?>
|
||||
<tr>
|
||||
<th>
|
||||
<label for="<?php echo htmlspecialchars($path) ?>"><?php echo $name ?></label>
|
||||
<?php if (!empty($opts['doc']) || !empty($opts['wiki'])): ?>
|
||||
<span class="doc">
|
||||
<?php if (!empty($opts['doc'])) { ?><a href="<?php echo $opts['doc'] ?>"><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/b_help.png" width="11" height="11" alt="Doc" title="<?php echo $GLOBALS['strDocu'] ?>" /></a><?php } ?>
|
||||
<?php if (!empty($opts['wiki'])){ ?><a href="<?php echo $opts['wiki'] ?>"><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/b_info.png" width="11" height="11" alt="Wiki" title="Wiki" /></a><?php } ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($description)) { ?><small><?php echo $description ?></small><?php } ?>
|
||||
|
||||
</th>
|
||||
<td>
|
||||
<?php
|
||||
switch ($type) {
|
||||
case 'text':
|
||||
echo '<input type="text" size="50" ' . $name_id . $field_class
|
||||
. ' value="' . htmlspecialchars($value) . '" />';
|
||||
break;
|
||||
case 'checkbox':
|
||||
echo '<span class="checkbox' . ($value_is_default ? '' : ' custom')
|
||||
. '"><input type="checkbox" ' . $name_id
|
||||
. ($value ? ' checked="checked"' : '') . ' /></span>';
|
||||
break;
|
||||
case 'select':
|
||||
echo '<select ' . $name_id . $field_class . '>';
|
||||
$escape = !(isset($opts['values_escaped']) && $opts['values_escaped']);
|
||||
$values_disabled = isset($opts['values_disabled'])
|
||||
? array_flip($opts['values_disabled']) : array();
|
||||
foreach ($opts['values'] as $opt_value => $opt_name) {
|
||||
// set names for boolean values
|
||||
if (is_bool($opt_name)) {
|
||||
$opt_name = $GLOBALS['str'][$opt_value ? 'true' : 'false'];
|
||||
}
|
||||
// cast boolean values to integers
|
||||
$display_value = is_bool($opt_value) ? (int) $opt_value : $opt_value;
|
||||
// escape if necessary
|
||||
if ($escape) {
|
||||
$display = htmlspecialchars($opt_name);
|
||||
$display_value = htmlspecialchars($display_value);
|
||||
} else {
|
||||
$display = $opt_name;
|
||||
}
|
||||
// compare with selected value
|
||||
// boolean values are cast to integers when used as array keys
|
||||
$selected = is_bool($value)
|
||||
? (int) $value === $opt_value
|
||||
: $opt_value === $value;
|
||||
echo '<option value="' . $display_value . '"'
|
||||
. ($selected ? ' selected="selected"' : '')
|
||||
. (isset($values_disabled[$opt_value]) ? ' disabled="disabled"' : '')
|
||||
. '>' . $display . '</option>';
|
||||
}
|
||||
echo '</select>';
|
||||
break;
|
||||
case 'list':
|
||||
echo '<textarea cols="40" rows="5" ' . $name_id . $field_class . '>'
|
||||
. htmlspecialchars(implode("\n", $value))
|
||||
. '</textarea>';
|
||||
break;
|
||||
}
|
||||
if (isset($opts['setvalue']) && $opts['setvalue']) {
|
||||
?>
|
||||
<a class="set-value" href="#<?php echo "$path={$opts['setvalue']}" ?>" title="<?php echo sprintf($GLOBALS['str']['Set_value'], htmlspecialchars($opts['setvalue'])) ?>" style="display:none"><img alt="set-value" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/b_edit.png" width="16" height="16" /></a>
|
||||
<?php
|
||||
}
|
||||
if (isset($opts['show_restore_default']) && $opts['show_restore_default']) {
|
||||
?>
|
||||
<a class="restore-default" href="#<?php echo $path ?>" title="<?php echo $GLOBALS['str']['Restore_default'] ?>" style="display:none"><img alt="restore-default" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/s_reload.png" width="16" height="16" /></a>
|
||||
<?php
|
||||
}
|
||||
// this must match with displayErrors() in scripts.js
|
||||
if (isset($opts['errors']) && !empty($opts['errors'])) {
|
||||
echo "\n <dl class=\"inline_errors\">";
|
||||
foreach ($opts['errors'] as $error) {
|
||||
echo '<dd>' . htmlspecialchars($error) . '</dd>';
|
||||
}
|
||||
echo '</dl>';
|
||||
}
|
||||
?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays bottom part of a fieldset
|
||||
*
|
||||
* @param array $js_array
|
||||
*/
|
||||
function display_fieldset_bottom()
|
||||
{
|
||||
?>
|
||||
<tr>
|
||||
<td colspan="2" class="lastrow">
|
||||
<input type="submit" name="submit_save" value="<?php echo $GLOBALS['strSave'] ?>" class="green" />
|
||||
<input type="button" name="submit_reset" value="<?php echo $GLOBALS['strReset'] ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays simple bottom part of a fieldset (without submit buttons)
|
||||
*/
|
||||
function display_fieldset_bottom_simple()
|
||||
{
|
||||
?>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes form tabs
|
||||
*/
|
||||
function display_tabs_bottom() {
|
||||
echo "</div>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays bottom part of the form
|
||||
*/
|
||||
function display_form_bottom()
|
||||
{
|
||||
echo "</form>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Appends JS validation code to $js_array
|
||||
*
|
||||
* @param string $field_id
|
||||
* @param string $validator
|
||||
* @param array $js_array
|
||||
*/
|
||||
function js_validate($field_id, $validator, &$js_array) {
|
||||
$js_array[] = "validateField('$field_id', '$validator', true)";
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays JavaScript code
|
||||
*
|
||||
* @param array $js_array
|
||||
*/
|
||||
function display_js($js_array) {
|
||||
if (empty($js_array)) {
|
||||
return;
|
||||
}
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
<?php echo implode(";\n", $js_array) . ";\n" ?>
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays error list
|
||||
*
|
||||
* @param string $name
|
||||
* @param array $error_list
|
||||
*/
|
||||
function display_errors($name, $error_list) {
|
||||
echo '<dl>';
|
||||
echo '<dt>' . htmlspecialchars($name) . '</dt>';
|
||||
foreach ($error_list as $error) {
|
||||
echo '<dd>' . htmlspecialchars($error) . '</dd>';
|
||||
}
|
||||
echo '</dl>';
|
||||
}
|
||||
<?php
|
||||
/**
|
||||
* Form templates
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
/**
|
||||
* Displays top part of the form
|
||||
*
|
||||
* @param string $action default: $_SERVER['REQUEST_URI']
|
||||
* @param string $method 'post' or 'get'
|
||||
* @param array $hidden_fields array of form hidden fields (key: field name)
|
||||
*/
|
||||
function display_form_top($action = null, $method = 'post', $hidden_fields = null)
|
||||
{
|
||||
static $has_check_page_refresh = false;
|
||||
|
||||
if ($action === null) {
|
||||
$action = $_SERVER['REQUEST_URI'];
|
||||
}
|
||||
if ($method != 'post') {
|
||||
$method = 'get';
|
||||
}
|
||||
?>
|
||||
<form method="<?php echo $method ?>" action="<?php echo htmlspecialchars($action) ?>">
|
||||
<?php
|
||||
// we do validation on page refresh when browser remembers field values,
|
||||
// add a field with known value which will be used for checks
|
||||
if (!$has_check_page_refresh) {
|
||||
$has_check_page_refresh = true;
|
||||
echo '<input type="hidden" name="check_page_refresh" id="check_page_refresh"'
|
||||
. ' value="" />' . "\n";
|
||||
}
|
||||
echo PMA_generate_common_hidden_inputs() . "\n";
|
||||
echo PMA_getHiddenFields((array)$hidden_fields);
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays form tabs which are given by an array indexed by fieldset id
|
||||
* ({@link display_fieldset_top}), with values being tab titles.
|
||||
*
|
||||
* @param array $tabs
|
||||
*/
|
||||
function display_tabs_top($tabs) {
|
||||
?>
|
||||
<ul class="tabs">
|
||||
<?php foreach ($tabs as $tab_id => $tab_name): ?>
|
||||
<li><a href="#<?php echo $tab_id ?>"><?php echo $tab_name ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<br clear="right" />
|
||||
<div class="tabs_contents">
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Displays top part of a fieldset
|
||||
*
|
||||
* @param string $title
|
||||
* @param string $description
|
||||
* @param array $errors
|
||||
* @param array $attributes
|
||||
*/
|
||||
function display_fieldset_top($title = '', $description = '', $errors = null, $attributes = array())
|
||||
{
|
||||
$attributes = array_merge(array('class' => 'optbox'), $attributes);
|
||||
foreach ($attributes as $k => &$attr) {
|
||||
$attr = $k . '="' . htmlspecialchars($attr) . '"';
|
||||
}
|
||||
|
||||
echo '<fieldset ' . implode(' ', $attributes) . '>';
|
||||
echo '<legend>' . $title . '</legend>';
|
||||
if (!empty($description)) {
|
||||
echo '<p>' . $description . '</p>';
|
||||
}
|
||||
// this must match with displayErrors() in scripts.js
|
||||
if (is_array($errors) && count($errors) > 0) {
|
||||
echo '<dl class="errors">';
|
||||
foreach ($errors as $error) {
|
||||
echo '<dd>' . $error . '</dd>';
|
||||
}
|
||||
echo '</dl>';
|
||||
}
|
||||
?>
|
||||
<table width="100%" cellspacing="0">
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays input field
|
||||
*
|
||||
* $opts keys:
|
||||
* o doc - (string) documentation link
|
||||
* o errors - error array
|
||||
* o setvalue - (string) shows button allowing to set poredefined value
|
||||
* o show_restore_default - (boolean) whether show "restore default" button
|
||||
* o values - key - value paris for <select> fields
|
||||
* o values_escaped - (boolean) tells whether values array is already escaped (defaults to false)
|
||||
* o values_disabled - (array)list of disabled values (keys from values)
|
||||
* o wiki - (string) wiki link
|
||||
*
|
||||
* @param string $path
|
||||
* @param string $name
|
||||
* @param string $description
|
||||
* @param string $type
|
||||
* @param mixed $value
|
||||
* @param bool $value_is_default
|
||||
* @param array $opts
|
||||
*/
|
||||
function display_input($path, $name, $description = '', $type, $value, $value_is_default = true, $opts = null)
|
||||
{
|
||||
$field_class = $value_is_default ? '' : ' class="custom"';
|
||||
$name_id = 'name="' . $path . '" id="' . $path . '"';
|
||||
?>
|
||||
<tr>
|
||||
<th>
|
||||
<label for="<?php echo htmlspecialchars($path) ?>"><?php echo $name ?></label>
|
||||
<?php if (!empty($opts['doc']) || !empty($opts['wiki'])): ?>
|
||||
<span class="doc">
|
||||
<?php if (!empty($opts['doc'])) { ?><a href="<?php echo $opts['doc'] ?>"><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/b_help.png" width="11" height="11" alt="Doc" title="<?php echo $GLOBALS['strDocu'] ?>" /></a><?php } ?>
|
||||
<?php if (!empty($opts['wiki'])){ ?><a href="<?php echo $opts['wiki'] ?>"><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/b_info.png" width="11" height="11" alt="Wiki" title="Wiki" /></a><?php } ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($description)) { ?><small><?php echo $description ?></small><?php } ?>
|
||||
|
||||
</th>
|
||||
<td>
|
||||
<?php
|
||||
switch ($type) {
|
||||
case 'text':
|
||||
echo '<input type="text" size="50" ' . $name_id . $field_class
|
||||
. ' value="' . htmlspecialchars($value) . '" />';
|
||||
break;
|
||||
case 'checkbox':
|
||||
echo '<span class="checkbox' . ($value_is_default ? '' : ' custom')
|
||||
. '"><input type="checkbox" ' . $name_id
|
||||
. ($value ? ' checked="checked"' : '') . ' /></span>';
|
||||
break;
|
||||
case 'select':
|
||||
echo '<select ' . $name_id . $field_class . '>';
|
||||
$escape = !(isset($opts['values_escaped']) && $opts['values_escaped']);
|
||||
$values_disabled = isset($opts['values_disabled'])
|
||||
? array_flip($opts['values_disabled']) : array();
|
||||
foreach ($opts['values'] as $opt_value => $opt_name) {
|
||||
// set names for boolean values
|
||||
if (is_bool($opt_name)) {
|
||||
$opt_name = $GLOBALS['str'][$opt_value ? 'true' : 'false'];
|
||||
}
|
||||
// cast boolean values to integers
|
||||
$display_value = is_bool($opt_value) ? (int) $opt_value : $opt_value;
|
||||
// escape if necessary
|
||||
if ($escape) {
|
||||
$display = htmlspecialchars($opt_name);
|
||||
$display_value = htmlspecialchars($display_value);
|
||||
} else {
|
||||
$display = $opt_name;
|
||||
}
|
||||
// compare with selected value
|
||||
// boolean values are cast to integers when used as array keys
|
||||
$selected = is_bool($value)
|
||||
? (int) $value === $opt_value
|
||||
: $opt_value === $value;
|
||||
echo '<option value="' . $display_value . '"'
|
||||
. ($selected ? ' selected="selected"' : '')
|
||||
. (isset($values_disabled[$opt_value]) ? ' disabled="disabled"' : '')
|
||||
. '>' . $display . '</option>';
|
||||
}
|
||||
echo '</select>';
|
||||
break;
|
||||
case 'list':
|
||||
echo '<textarea cols="40" rows="5" ' . $name_id . $field_class . '>'
|
||||
. htmlspecialchars(implode("\n", $value))
|
||||
. '</textarea>';
|
||||
break;
|
||||
}
|
||||
if (isset($opts['setvalue']) && $opts['setvalue']) {
|
||||
?>
|
||||
<a class="set-value" href="#<?php echo "$path={$opts['setvalue']}" ?>" title="<?php echo sprintf($GLOBALS['str']['Set_value'], htmlspecialchars($opts['setvalue'])) ?>" style="display:none"><img alt="set-value" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/b_edit.png" width="16" height="16" /></a>
|
||||
<?php
|
||||
}
|
||||
if (isset($opts['show_restore_default']) && $opts['show_restore_default']) {
|
||||
?>
|
||||
<a class="restore-default" href="#<?php echo $path ?>" title="<?php echo $GLOBALS['str']['Restore_default'] ?>" style="display:none"><img alt="restore-default" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/s_reload.png" width="16" height="16" /></a>
|
||||
<?php
|
||||
}
|
||||
// this must match with displayErrors() in scripts.js
|
||||
if (isset($opts['errors']) && !empty($opts['errors'])) {
|
||||
echo "\n <dl class=\"inline_errors\">";
|
||||
foreach ($opts['errors'] as $error) {
|
||||
echo '<dd>' . htmlspecialchars($error) . '</dd>';
|
||||
}
|
||||
echo '</dl>';
|
||||
}
|
||||
?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays bottom part of a fieldset
|
||||
*
|
||||
* @param array $js_array
|
||||
*/
|
||||
function display_fieldset_bottom()
|
||||
{
|
||||
?>
|
||||
<tr>
|
||||
<td colspan="2" class="lastrow">
|
||||
<input type="submit" name="submit_save" value="<?php echo $GLOBALS['strSave'] ?>" class="green" />
|
||||
<input type="button" name="submit_reset" value="<?php echo $GLOBALS['strReset'] ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays simple bottom part of a fieldset (without submit buttons)
|
||||
*/
|
||||
function display_fieldset_bottom_simple()
|
||||
{
|
||||
?>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes form tabs
|
||||
*/
|
||||
function display_tabs_bottom() {
|
||||
echo "</div>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays bottom part of the form
|
||||
*/
|
||||
function display_form_bottom()
|
||||
{
|
||||
echo "</form>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Appends JS validation code to $js_array
|
||||
*
|
||||
* @param string $field_id
|
||||
* @param string $validator
|
||||
* @param array $js_array
|
||||
*/
|
||||
function js_validate($field_id, $validator, &$js_array) {
|
||||
$js_array[] = "validateField('$field_id', '$validator', true)";
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays JavaScript code
|
||||
*
|
||||
* @param array $js_array
|
||||
*/
|
||||
function display_js($js_array) {
|
||||
if (empty($js_array)) {
|
||||
return;
|
||||
}
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
<?php echo implode(";\n", $js_array) . ";\n" ?>
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays error list
|
||||
*
|
||||
* @param string $name
|
||||
* @param array $error_list
|
||||
*/
|
||||
function display_errors($name, $error_list) {
|
||||
echo '<dl>';
|
||||
echo '<dt>' . htmlspecialchars($name) . '</dt>';
|
||||
foreach ($error_list as $error) {
|
||||
echo '<dd>' . htmlspecialchars($error) . '</dd>';
|
||||
}
|
||||
echo '</dl>';
|
||||
}
|
||||
?>
|
@@ -1,242 +1,242 @@
|
||||
<?php
|
||||
/**
|
||||
* Loads libraries/common.inc.php and preforms some additional actions
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
// TODO: remove
|
||||
error_reporting(E_ALL | E_STRICT);
|
||||
|
||||
define('PMA_MINIMUM_COMMON', TRUE);
|
||||
define('PMA_SETUP', TRUE);
|
||||
chdir('..');
|
||||
|
||||
require_once './libraries/common.inc.php';
|
||||
require_once './libraries/url_generating.lib.php';
|
||||
require_once './setup/lib/ConfigFile.class.php';
|
||||
|
||||
// TODO: remove
|
||||
restore_error_handler();
|
||||
if ($error_handler->countErrors() > 0) {
|
||||
$error_handler->dispAllErrors();
|
||||
}
|
||||
|
||||
// check selected language
|
||||
$lang_file = './setup/lang/' . $GLOBALS['available_languages'][$GLOBALS['lang']][1] . '.inc.php';
|
||||
if (!file_exists($lang_file)) {
|
||||
// select_lang.lib.php did detection for us, so if language failed assume
|
||||
// English is the only matching choice
|
||||
$GLOBALS['lang'] = 'en-utf-8';
|
||||
require_once $GLOBALS['lang_path'] . 'english-utf-8.inc.php';
|
||||
}
|
||||
|
||||
// Load setup script translation
|
||||
$lang_file = './setup/lang/' . $GLOBALS['available_languages'][$GLOBALS['lang']][1] . '.inc.php';
|
||||
if (!file_exists($lang_file)) {
|
||||
$lang_file = './setup/lang/english-utf-8.inc.php';
|
||||
}
|
||||
require_once $lang_file;
|
||||
if (file_exists('./setup/lang/added_messages.php')) {
|
||||
include './setup/lang/added_messages.php';
|
||||
}
|
||||
|
||||
if (PMA_ifSetOr($_COOKIE['pma_lang'], '') != $GLOBALS['lang']) {
|
||||
PMA_setCookie('pma_lang', $GLOBALS['lang']);
|
||||
}
|
||||
|
||||
if (!isset($_SESSION['ConfigFile'])) {
|
||||
$_SESSION['ConfigFile'] = array();
|
||||
}
|
||||
|
||||
// allows for redirection even after sending some data
|
||||
ob_start();
|
||||
|
||||
/**
|
||||
* Returns value of an element in $array given by $path.
|
||||
* $path is a string describing position of an element in an associative array,
|
||||
* eg. Servers/1/host refers to $array[Servers][1][host]
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $array
|
||||
* @param mixed $default
|
||||
* @return mixed array element or $default
|
||||
*/
|
||||
function array_read($path, $array, $default = null)
|
||||
{
|
||||
$keys = explode('/', $path);
|
||||
$value =& $array;
|
||||
foreach ($keys as $key) {
|
||||
if (!isset($value[$key])) {
|
||||
return $default;
|
||||
}
|
||||
$value =& $value[$key];
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores value in an array
|
||||
*
|
||||
* @param string $path
|
||||
* @param array &$array
|
||||
* @param mixed $value
|
||||
*/
|
||||
function array_write($path, &$array, $value)
|
||||
{
|
||||
$keys = explode('/', $path);
|
||||
$last_key = array_pop($keys);
|
||||
$a =& $array;
|
||||
foreach ($keys as $key) {
|
||||
if (!isset($a[$key])) {
|
||||
$a[$key] = array();
|
||||
}
|
||||
$a =& $a[$key];
|
||||
}
|
||||
$a[$last_key] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes value from an array
|
||||
*
|
||||
* @param string $path
|
||||
* @param array &$array
|
||||
* @param mixed $value
|
||||
*/
|
||||
function array_remove($path, &$array)
|
||||
{
|
||||
$keys = explode('/', $path);
|
||||
$keys_last = array_pop($keys);
|
||||
$path = array();
|
||||
$depth = 0;
|
||||
|
||||
$path[0] =& $array;
|
||||
$found = true;
|
||||
// go as deep as required or possible
|
||||
foreach ($keys as $key) {
|
||||
if (!isset($path[$depth][$key])) {
|
||||
$found = false;
|
||||
break;
|
||||
}
|
||||
$depth++;
|
||||
$path[$depth] =& $path[$depth-1][$key];
|
||||
}
|
||||
// if element found, remove it
|
||||
if ($found) {
|
||||
unset($path[$depth][$keys_last]);
|
||||
$depth--;
|
||||
}
|
||||
|
||||
// remove empty nested arrays
|
||||
for (; $depth >= 0; $depth--) {
|
||||
if (!isset($path[$depth+1]) || count($path[$depth+1]) == 0) {
|
||||
unset($path[$depth][$keys[$depth]]);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns sanitized language string, taking into account our special codes
|
||||
* for formatting. Takes variable number of arguments.
|
||||
* Based on PMA_sanitize from sanitize.lib.php.
|
||||
*
|
||||
* @param string $lang_key
|
||||
* @param mixed $args arguments for sprintf
|
||||
* @return string
|
||||
*/
|
||||
function PMA_lang($lang_key)
|
||||
{
|
||||
static $search, $replace;
|
||||
|
||||
// some quick cache'ing
|
||||
if ($search === null) {
|
||||
$replace_pairs = array(
|
||||
'<' => '<',
|
||||
'>' => '>',
|
||||
'[em]' => '<em>',
|
||||
'[/em]' => '</em>',
|
||||
'[strong]' => '<strong>',
|
||||
'[/strong]' => '</strong>',
|
||||
'[code]' => '<code>',
|
||||
'[/code]' => '</code>',
|
||||
'[kbd]' => '<kbd>',
|
||||
'[/kbd]' => '</kbd>',
|
||||
'[br]' => '<br />',
|
||||
'[sup]' => '<sup>',
|
||||
'[/sup]' => '</sup>');
|
||||
$search = array_keys($replace_pairs);
|
||||
$replace = array_values($replace_pairs);
|
||||
}
|
||||
if (!isset($GLOBALS['str'][$lang_key])) {
|
||||
return $lang_key;
|
||||
}
|
||||
$message = str_replace($search, $replace, $GLOBALS['str'][$lang_key]);
|
||||
// replace [a@"$1"]$2[/a] with <a href="$1">$2</a>
|
||||
$message = preg_replace('#\[a@("?)([^\]]+)\1\]([^\[]+)\[/a\]#e',
|
||||
"PMA_lang_link_replace('$2', '$3')", $message);
|
||||
|
||||
if (func_num_args() == 1) {
|
||||
return $message;
|
||||
} else {
|
||||
$args = func_get_args();
|
||||
array_shift($args);
|
||||
return vsprintf($message, $args);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns translated field name
|
||||
*
|
||||
* @param string $canonical_path
|
||||
* @return string
|
||||
*/
|
||||
function PMA_lang_name($canonical_path)
|
||||
{
|
||||
$lang_key = str_replace('Servers/1/', 'Servers/', $canonical_path) . '_name';
|
||||
return isset($GLOBALS['str'][$lang_key])
|
||||
? $GLOBALS['str'][$lang_key]
|
||||
: $lang_key;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns translated field description
|
||||
*
|
||||
* @param string $canonical_path
|
||||
* @return string
|
||||
*/
|
||||
function PMA_lang_desc($canonical_path)
|
||||
{
|
||||
$lang_key = str_replace('Servers/1/', 'Servers/', $canonical_path) . '_desc';
|
||||
return isset($GLOBALS['str'][$lang_key])
|
||||
? PMA_lang($lang_key)
|
||||
: '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Wraps link in <a> tags and replaces argument separator in internal links
|
||||
* to the one returned by PMA_get_arg_separator()
|
||||
*
|
||||
* @param string $link
|
||||
* @param string $text
|
||||
* @return string
|
||||
*/
|
||||
function PMA_lang_link_replace($link, $text)
|
||||
{
|
||||
static $separator;
|
||||
|
||||
if (!isset($separator)) {
|
||||
$separator = PMA_get_arg_separator('html');
|
||||
}
|
||||
|
||||
if (!preg_match('#^http://#', $link)) {
|
||||
$link = str_replace('&', $separator, $link);
|
||||
}
|
||||
|
||||
return '<a href="' . $link . '">' . $text . '</a>';
|
||||
}
|
||||
<?php
|
||||
/**
|
||||
* Loads libraries/common.inc.php and preforms some additional actions
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
// TODO: remove
|
||||
error_reporting(E_ALL | E_STRICT);
|
||||
|
||||
define('PMA_MINIMUM_COMMON', TRUE);
|
||||
define('PMA_SETUP', TRUE);
|
||||
chdir('..');
|
||||
|
||||
require_once './libraries/common.inc.php';
|
||||
require_once './libraries/url_generating.lib.php';
|
||||
require_once './setup/lib/ConfigFile.class.php';
|
||||
|
||||
// TODO: remove
|
||||
restore_error_handler();
|
||||
if ($error_handler->countErrors() > 0) {
|
||||
$error_handler->dispAllErrors();
|
||||
}
|
||||
|
||||
// check selected language
|
||||
$lang_file = './setup/lang/' . $GLOBALS['available_languages'][$GLOBALS['lang']][1] . '.inc.php';
|
||||
if (!file_exists($lang_file)) {
|
||||
// select_lang.lib.php did detection for us, so if language failed assume
|
||||
// English is the only matching choice
|
||||
$GLOBALS['lang'] = 'en-utf-8';
|
||||
require_once $GLOBALS['lang_path'] . 'english-utf-8.inc.php';
|
||||
}
|
||||
|
||||
// Load setup script translation
|
||||
$lang_file = './setup/lang/' . $GLOBALS['available_languages'][$GLOBALS['lang']][1] . '.inc.php';
|
||||
if (!file_exists($lang_file)) {
|
||||
$lang_file = './setup/lang/english-utf-8.inc.php';
|
||||
}
|
||||
require_once $lang_file;
|
||||
if (file_exists('./setup/lang/added_messages.php')) {
|
||||
include './setup/lang/added_messages.php';
|
||||
}
|
||||
|
||||
if (PMA_ifSetOr($_COOKIE['pma_lang'], '') != $GLOBALS['lang']) {
|
||||
PMA_setCookie('pma_lang', $GLOBALS['lang']);
|
||||
}
|
||||
|
||||
if (!isset($_SESSION['ConfigFile'])) {
|
||||
$_SESSION['ConfigFile'] = array();
|
||||
}
|
||||
|
||||
// allows for redirection even after sending some data
|
||||
ob_start();
|
||||
|
||||
/**
|
||||
* Returns value of an element in $array given by $path.
|
||||
* $path is a string describing position of an element in an associative array,
|
||||
* eg. Servers/1/host refers to $array[Servers][1][host]
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $array
|
||||
* @param mixed $default
|
||||
* @return mixed array element or $default
|
||||
*/
|
||||
function array_read($path, $array, $default = null)
|
||||
{
|
||||
$keys = explode('/', $path);
|
||||
$value =& $array;
|
||||
foreach ($keys as $key) {
|
||||
if (!isset($value[$key])) {
|
||||
return $default;
|
||||
}
|
||||
$value =& $value[$key];
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores value in an array
|
||||
*
|
||||
* @param string $path
|
||||
* @param array &$array
|
||||
* @param mixed $value
|
||||
*/
|
||||
function array_write($path, &$array, $value)
|
||||
{
|
||||
$keys = explode('/', $path);
|
||||
$last_key = array_pop($keys);
|
||||
$a =& $array;
|
||||
foreach ($keys as $key) {
|
||||
if (!isset($a[$key])) {
|
||||
$a[$key] = array();
|
||||
}
|
||||
$a =& $a[$key];
|
||||
}
|
||||
$a[$last_key] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes value from an array
|
||||
*
|
||||
* @param string $path
|
||||
* @param array &$array
|
||||
* @param mixed $value
|
||||
*/
|
||||
function array_remove($path, &$array)
|
||||
{
|
||||
$keys = explode('/', $path);
|
||||
$keys_last = array_pop($keys);
|
||||
$path = array();
|
||||
$depth = 0;
|
||||
|
||||
$path[0] =& $array;
|
||||
$found = true;
|
||||
// go as deep as required or possible
|
||||
foreach ($keys as $key) {
|
||||
if (!isset($path[$depth][$key])) {
|
||||
$found = false;
|
||||
break;
|
||||
}
|
||||
$depth++;
|
||||
$path[$depth] =& $path[$depth-1][$key];
|
||||
}
|
||||
// if element found, remove it
|
||||
if ($found) {
|
||||
unset($path[$depth][$keys_last]);
|
||||
$depth--;
|
||||
}
|
||||
|
||||
// remove empty nested arrays
|
||||
for (; $depth >= 0; $depth--) {
|
||||
if (!isset($path[$depth+1]) || count($path[$depth+1]) == 0) {
|
||||
unset($path[$depth][$keys[$depth]]);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns sanitized language string, taking into account our special codes
|
||||
* for formatting. Takes variable number of arguments.
|
||||
* Based on PMA_sanitize from sanitize.lib.php.
|
||||
*
|
||||
* @param string $lang_key
|
||||
* @param mixed $args arguments for sprintf
|
||||
* @return string
|
||||
*/
|
||||
function PMA_lang($lang_key)
|
||||
{
|
||||
static $search, $replace;
|
||||
|
||||
// some quick cache'ing
|
||||
if ($search === null) {
|
||||
$replace_pairs = array(
|
||||
'<' => '<',
|
||||
'>' => '>',
|
||||
'[em]' => '<em>',
|
||||
'[/em]' => '</em>',
|
||||
'[strong]' => '<strong>',
|
||||
'[/strong]' => '</strong>',
|
||||
'[code]' => '<code>',
|
||||
'[/code]' => '</code>',
|
||||
'[kbd]' => '<kbd>',
|
||||
'[/kbd]' => '</kbd>',
|
||||
'[br]' => '<br />',
|
||||
'[sup]' => '<sup>',
|
||||
'[/sup]' => '</sup>');
|
||||
$search = array_keys($replace_pairs);
|
||||
$replace = array_values($replace_pairs);
|
||||
}
|
||||
if (!isset($GLOBALS['str'][$lang_key])) {
|
||||
return $lang_key;
|
||||
}
|
||||
$message = str_replace($search, $replace, $GLOBALS['str'][$lang_key]);
|
||||
// replace [a@"$1"]$2[/a] with <a href="$1">$2</a>
|
||||
$message = preg_replace('#\[a@("?)([^\]]+)\1\]([^\[]+)\[/a\]#e',
|
||||
"PMA_lang_link_replace('$2', '$3')", $message);
|
||||
|
||||
if (func_num_args() == 1) {
|
||||
return $message;
|
||||
} else {
|
||||
$args = func_get_args();
|
||||
array_shift($args);
|
||||
return vsprintf($message, $args);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns translated field name
|
||||
*
|
||||
* @param string $canonical_path
|
||||
* @return string
|
||||
*/
|
||||
function PMA_lang_name($canonical_path)
|
||||
{
|
||||
$lang_key = str_replace('Servers/1/', 'Servers/', $canonical_path) . '_name';
|
||||
return isset($GLOBALS['str'][$lang_key])
|
||||
? $GLOBALS['str'][$lang_key]
|
||||
: $lang_key;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns translated field description
|
||||
*
|
||||
* @param string $canonical_path
|
||||
* @return string
|
||||
*/
|
||||
function PMA_lang_desc($canonical_path)
|
||||
{
|
||||
$lang_key = str_replace('Servers/1/', 'Servers/', $canonical_path) . '_desc';
|
||||
return isset($GLOBALS['str'][$lang_key])
|
||||
? PMA_lang($lang_key)
|
||||
: '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Wraps link in <a> tags and replaces argument separator in internal links
|
||||
* to the one returned by PMA_get_arg_separator()
|
||||
*
|
||||
* @param string $link
|
||||
* @param string $text
|
||||
* @return string
|
||||
*/
|
||||
function PMA_lang_link_replace($link, $text)
|
||||
{
|
||||
static $separator;
|
||||
|
||||
if (!isset($separator)) {
|
||||
$separator = PMA_get_arg_separator('html');
|
||||
}
|
||||
|
||||
if (!preg_match('#^http://#', $link)) {
|
||||
$link = str_replace('&', $separator, $link);
|
||||
}
|
||||
|
||||
return '<a href="' . $link . '">' . $text . '</a>';
|
||||
}
|
||||
?>
|
@@ -1,136 +1,136 @@
|
||||
<?php
|
||||
/**
|
||||
* Description of options with non-standard values, list of persistent options
|
||||
* and validator assignments.
|
||||
*
|
||||
* By default data types are taken from config.default.php, here we define
|
||||
* only allowed values for select fields and type overrides.
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
$cfg_db = array();
|
||||
|
||||
// path to config file, relative to phpMyAdmin's root path
|
||||
$cfg_db['_config_file_path'] = './config/config.inc.php';
|
||||
|
||||
/**
|
||||
* Value meaning:
|
||||
* o array - select field, array contains allowed values
|
||||
* o string - type override
|
||||
*
|
||||
* Use normal array, paths won't be expanded
|
||||
*/
|
||||
$cfg_db['Servers'] = array(1 => array(
|
||||
'port' => 'integer',
|
||||
'connect_type' => array('tcp', 'socket'),
|
||||
'extension' => array('mysql', 'mysqli'),
|
||||
'auth_type' => array('config', 'http', 'signon', 'cookie'),
|
||||
'AllowDeny' => array(
|
||||
'order' => array('', 'deny,allow', 'allow,deny', 'explicit')),
|
||||
'only_db' => 'array'));
|
||||
$cfg_db['RecodingEngine'] = array('auto', 'iconv', 'recode');
|
||||
$cfg_db['DefaultCharset'] = $GLOBALS['cfg']['AvailableCharsets'];
|
||||
$cfg_db['OBGzip'] = array('auto', true, false);
|
||||
$cfg_db['ShowTooltipAliasTB'] = array('nested', true, false);
|
||||
$cfg_db['DisplayDatabasesList'] = array('auto', true, false);
|
||||
$cfg_db['LeftLogoLinkWindow'] = array('main', 'new');
|
||||
$cfg_db['LeftDefaultTabTable'] = array(
|
||||
'tbl_structure.php', // fields list
|
||||
'tbl_sql.php', // SQL form
|
||||
'tbl_select.php', // search page
|
||||
'tbl_change.php', // insert row page
|
||||
'sql.php'); // browse page
|
||||
$cfg_db['NavigationBarIconic'] = array(true, false, 'both');
|
||||
$cfg_db['Order'] = array('ASC', 'DESC', 'SMART');
|
||||
$cfg_db['ProtectBinary'] = array(false, 'blob', 'all');
|
||||
$cfg_db['CharEditing'] = array('input', 'textarea');
|
||||
$cfg_db['PropertiesIconic'] = array(true, false, 'both');
|
||||
$cfg_db['DefaultTabServer'] = array(
|
||||
'main.php', // the welcome page (recommended for multiuser setups)
|
||||
'server_databases.php', // list of databases
|
||||
'server_status.php', // runtime information
|
||||
'server_variables.php', // MySQL server variables
|
||||
'server_privileges.php', // user management
|
||||
'server_processlist.php'); // process list
|
||||
$cfg_db['DefaultTabDatabase'] = array(
|
||||
'db_structure.php', // tables list
|
||||
'db_sql.php', // SQL form
|
||||
'db_search.php', // search query
|
||||
'db_operations.php'); // operations on database
|
||||
$cfg_db['DefaultTabTable'] = array(
|
||||
'tbl_structure.php', // fields list
|
||||
'tbl_sql.php', // SQL form
|
||||
'tbl_select.php', // search page
|
||||
'tbl_change.php', // insert row page
|
||||
'sql.php'); // browse page
|
||||
$cfg_db['Import']['format'] = array(
|
||||
'csv', // CSV
|
||||
'docsql', // DocSQL
|
||||
'ldi', // CSV using LOAD DATA
|
||||
'sql'); // SQL
|
||||
$cfg_db['Import']['sql_compatibility'] = array(
|
||||
'NONE', 'ANSI', 'DB2', 'MAXDB', 'MYSQL323', 'MYSQL40', 'MSSQL', 'ORACLE',
|
||||
// removed; in MySQL 5.0.33, this produces exports that
|
||||
// can't be read by POSTGRESQL (see our bug #1596328)
|
||||
//'POSTGRESQL',
|
||||
'TRADITIONAL');
|
||||
$cfg_db['Import']['ldi_local_option'] = array('auto', true, false);
|
||||
$cfg_db['Export']['format'] = array('codegen', 'csv', 'excel', 'htmlexcel',
|
||||
'htmlword', 'latex', 'ods', 'odt', 'pdf', 'sql', 'texytext', 'xls', 'xml',
|
||||
'yaml');
|
||||
$cfg_db['Export']['compression'] = array('none', 'zip', 'gzip', 'bzip2');
|
||||
$cfg_db['Export']['charset'] = array_merge(array(''), $GLOBALS['cfg']['AvailableCharsets']);
|
||||
|
||||
/**
|
||||
* Config options which will be placed in config file even if they are set
|
||||
* to their default values (use only full paths)
|
||||
*/
|
||||
$persist_keys = array(
|
||||
'DefaultLang',
|
||||
'ServerDefault',
|
||||
'UploadDir',
|
||||
'SaveDir',
|
||||
'Servers/1/verbose',
|
||||
'Servers/1/host',
|
||||
'Servers/1/port',
|
||||
'Servers/1/socket',
|
||||
'Servers/1/extension',
|
||||
'Servers/1/connect_type',
|
||||
'Servers/1/auth_type',
|
||||
'Servers/1/user',
|
||||
'Servers/1/password');
|
||||
|
||||
/**
|
||||
* Default values overrides
|
||||
* Use only full paths
|
||||
*/
|
||||
$cfg_db['_overrides'] = array();
|
||||
$cfg_db['_overrides']['Servers/1/extension'] = extension_loaded('mysqli')
|
||||
? 'mysqli' : 'mysql';
|
||||
|
||||
/**
|
||||
* Validator assignments (functions from validate.lib.php and 'validators'
|
||||
* object in scripts.js)
|
||||
* Use only full paths and form ids
|
||||
*/
|
||||
$cfg_db['_validators'] = array(
|
||||
'Server' => 'validate_server',
|
||||
'Server_pmadb' => 'validate_pmadb',
|
||||
'Servers/1/port' => 'validate_port_number',
|
||||
'Servers/1/hide_db' => 'validate_regex',
|
||||
'TrustedProxies' => 'validate_trusted_proxies',
|
||||
'LoginCookieValidity' => 'validate_positive_number',
|
||||
'LoginCookieStore' => 'validate_non_negative_number',
|
||||
'QueryHistoryMax' => 'validate_positive_number',
|
||||
'LeftFrameTableLevel' => 'validate_positive_number',
|
||||
'MaxRows' => 'validate_positive_number',
|
||||
'CharTextareaCols' => 'validate_positive_number',
|
||||
'CharTextareaRows' => 'validate_positive_number',
|
||||
'InsertRows' => 'validate_positive_number',
|
||||
'ForeignKeyMaxLimit' => 'validate_positive_number',
|
||||
'Import/skip_queries' => 'validate_non_negative_number');
|
||||
<?php
|
||||
/**
|
||||
* Description of options with non-standard values, list of persistent options
|
||||
* and validator assignments.
|
||||
*
|
||||
* By default data types are taken from config.default.php, here we define
|
||||
* only allowed values for select fields and type overrides.
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
$cfg_db = array();
|
||||
|
||||
// path to config file, relative to phpMyAdmin's root path
|
||||
$cfg_db['_config_file_path'] = './config/config.inc.php';
|
||||
|
||||
/**
|
||||
* Value meaning:
|
||||
* o array - select field, array contains allowed values
|
||||
* o string - type override
|
||||
*
|
||||
* Use normal array, paths won't be expanded
|
||||
*/
|
||||
$cfg_db['Servers'] = array(1 => array(
|
||||
'port' => 'integer',
|
||||
'connect_type' => array('tcp', 'socket'),
|
||||
'extension' => array('mysql', 'mysqli'),
|
||||
'auth_type' => array('config', 'http', 'signon', 'cookie'),
|
||||
'AllowDeny' => array(
|
||||
'order' => array('', 'deny,allow', 'allow,deny', 'explicit')),
|
||||
'only_db' => 'array'));
|
||||
$cfg_db['RecodingEngine'] = array('auto', 'iconv', 'recode');
|
||||
$cfg_db['DefaultCharset'] = $GLOBALS['cfg']['AvailableCharsets'];
|
||||
$cfg_db['OBGzip'] = array('auto', true, false);
|
||||
$cfg_db['ShowTooltipAliasTB'] = array('nested', true, false);
|
||||
$cfg_db['DisplayDatabasesList'] = array('auto', true, false);
|
||||
$cfg_db['LeftLogoLinkWindow'] = array('main', 'new');
|
||||
$cfg_db['LeftDefaultTabTable'] = array(
|
||||
'tbl_structure.php', // fields list
|
||||
'tbl_sql.php', // SQL form
|
||||
'tbl_select.php', // search page
|
||||
'tbl_change.php', // insert row page
|
||||
'sql.php'); // browse page
|
||||
$cfg_db['NavigationBarIconic'] = array(true, false, 'both');
|
||||
$cfg_db['Order'] = array('ASC', 'DESC', 'SMART');
|
||||
$cfg_db['ProtectBinary'] = array(false, 'blob', 'all');
|
||||
$cfg_db['CharEditing'] = array('input', 'textarea');
|
||||
$cfg_db['PropertiesIconic'] = array(true, false, 'both');
|
||||
$cfg_db['DefaultTabServer'] = array(
|
||||
'main.php', // the welcome page (recommended for multiuser setups)
|
||||
'server_databases.php', // list of databases
|
||||
'server_status.php', // runtime information
|
||||
'server_variables.php', // MySQL server variables
|
||||
'server_privileges.php', // user management
|
||||
'server_processlist.php'); // process list
|
||||
$cfg_db['DefaultTabDatabase'] = array(
|
||||
'db_structure.php', // tables list
|
||||
'db_sql.php', // SQL form
|
||||
'db_search.php', // search query
|
||||
'db_operations.php'); // operations on database
|
||||
$cfg_db['DefaultTabTable'] = array(
|
||||
'tbl_structure.php', // fields list
|
||||
'tbl_sql.php', // SQL form
|
||||
'tbl_select.php', // search page
|
||||
'tbl_change.php', // insert row page
|
||||
'sql.php'); // browse page
|
||||
$cfg_db['Import']['format'] = array(
|
||||
'csv', // CSV
|
||||
'docsql', // DocSQL
|
||||
'ldi', // CSV using LOAD DATA
|
||||
'sql'); // SQL
|
||||
$cfg_db['Import']['sql_compatibility'] = array(
|
||||
'NONE', 'ANSI', 'DB2', 'MAXDB', 'MYSQL323', 'MYSQL40', 'MSSQL', 'ORACLE',
|
||||
// removed; in MySQL 5.0.33, this produces exports that
|
||||
// can't be read by POSTGRESQL (see our bug #1596328)
|
||||
//'POSTGRESQL',
|
||||
'TRADITIONAL');
|
||||
$cfg_db['Import']['ldi_local_option'] = array('auto', true, false);
|
||||
$cfg_db['Export']['format'] = array('codegen', 'csv', 'excel', 'htmlexcel',
|
||||
'htmlword', 'latex', 'ods', 'odt', 'pdf', 'sql', 'texytext', 'xls', 'xml',
|
||||
'yaml');
|
||||
$cfg_db['Export']['compression'] = array('none', 'zip', 'gzip', 'bzip2');
|
||||
$cfg_db['Export']['charset'] = array_merge(array(''), $GLOBALS['cfg']['AvailableCharsets']);
|
||||
|
||||
/**
|
||||
* Config options which will be placed in config file even if they are set
|
||||
* to their default values (use only full paths)
|
||||
*/
|
||||
$persist_keys = array(
|
||||
'DefaultLang',
|
||||
'ServerDefault',
|
||||
'UploadDir',
|
||||
'SaveDir',
|
||||
'Servers/1/verbose',
|
||||
'Servers/1/host',
|
||||
'Servers/1/port',
|
||||
'Servers/1/socket',
|
||||
'Servers/1/extension',
|
||||
'Servers/1/connect_type',
|
||||
'Servers/1/auth_type',
|
||||
'Servers/1/user',
|
||||
'Servers/1/password');
|
||||
|
||||
/**
|
||||
* Default values overrides
|
||||
* Use only full paths
|
||||
*/
|
||||
$cfg_db['_overrides'] = array();
|
||||
$cfg_db['_overrides']['Servers/1/extension'] = extension_loaded('mysqli')
|
||||
? 'mysqli' : 'mysql';
|
||||
|
||||
/**
|
||||
* Validator assignments (functions from validate.lib.php and 'validators'
|
||||
* object in scripts.js)
|
||||
* Use only full paths and form ids
|
||||
*/
|
||||
$cfg_db['_validators'] = array(
|
||||
'Server' => 'validate_server',
|
||||
'Server_pmadb' => 'validate_pmadb',
|
||||
'Servers/1/port' => 'validate_port_number',
|
||||
'Servers/1/hide_db' => 'validate_regex',
|
||||
'TrustedProxies' => 'validate_trusted_proxies',
|
||||
'LoginCookieValidity' => 'validate_positive_number',
|
||||
'LoginCookieStore' => 'validate_non_negative_number',
|
||||
'QueryHistoryMax' => 'validate_positive_number',
|
||||
'LeftFrameTableLevel' => 'validate_positive_number',
|
||||
'MaxRows' => 'validate_positive_number',
|
||||
'CharTextareaCols' => 'validate_positive_number',
|
||||
'CharTextareaRows' => 'validate_positive_number',
|
||||
'InsertRows' => 'validate_positive_number',
|
||||
'ForeignKeyMaxLimit' => 'validate_positive_number',
|
||||
'Import/skip_queries' => 'validate_non_negative_number');
|
||||
?>
|
@@ -1,61 +1,61 @@
|
||||
<?php
|
||||
/**
|
||||
* Formset processing library
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
/**
|
||||
* Processes forms registered in $form_display, handles error correction
|
||||
*
|
||||
* @param FormDisplay $form_display
|
||||
*/
|
||||
function process_formset(FormDisplay $form_display) {
|
||||
if (filter_input(INPUT_GET, 'mode') == 'revert') {
|
||||
// revert erroneous fields to their default values
|
||||
$form_display->fixErrors();
|
||||
// drop post data
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
}
|
||||
if (!$form_display->process(false)) {
|
||||
// handle form view and failed POST
|
||||
$form_display->display(true, true);
|
||||
} else {
|
||||
// check for form errors
|
||||
if ($form_display->hasErrors()) {
|
||||
// form has errors, show warning
|
||||
$separator = PMA_get_arg_separator('html');
|
||||
$page = filter_input(INPUT_GET, 'page');
|
||||
$formset = filter_input(INPUT_GET, 'formset');
|
||||
$formset = $formset ? "{$separator}formset=$formset" : '';
|
||||
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
|
||||
if ($id === null && $page == 'servers') {
|
||||
// we've just added a new server, get it's id
|
||||
$id = ConfigFile::getInstance()->getServerCount();
|
||||
}
|
||||
$id = $id ? "{$separator}id=$id" : '';
|
||||
?>
|
||||
<div class="warning">
|
||||
<h4><?php echo $GLOBALS['str']['Warning'] ?></h4>
|
||||
<?php echo PMA_lang('error_form') ?><br />
|
||||
<a href="?page=<?php echo $page . $formset . $id . $separator ?>mode=revert"><?php echo PMA_lang('Revert_erroneous_fields') ?></a>
|
||||
</div>
|
||||
<?php $form_display->displayErrors() ?>
|
||||
<a class="btn" href="index.php"><?php echo PMA_lang('Ignore_errors') ?></a>
|
||||
|
||||
<a class="btn" href="?page=<?php echo $page . $formset . $id . $separator ?>mode=edit"><?php echo PMA_lang('Show_form') ?></a>
|
||||
<?php
|
||||
} else {
|
||||
// drop post data
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
<?php
|
||||
/**
|
||||
* Formset processing library
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
/**
|
||||
* Processes forms registered in $form_display, handles error correction
|
||||
*
|
||||
* @param FormDisplay $form_display
|
||||
*/
|
||||
function process_formset(FormDisplay $form_display) {
|
||||
if (filter_input(INPUT_GET, 'mode') == 'revert') {
|
||||
// revert erroneous fields to their default values
|
||||
$form_display->fixErrors();
|
||||
// drop post data
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
}
|
||||
if (!$form_display->process(false)) {
|
||||
// handle form view and failed POST
|
||||
$form_display->display(true, true);
|
||||
} else {
|
||||
// check for form errors
|
||||
if ($form_display->hasErrors()) {
|
||||
// form has errors, show warning
|
||||
$separator = PMA_get_arg_separator('html');
|
||||
$page = filter_input(INPUT_GET, 'page');
|
||||
$formset = filter_input(INPUT_GET, 'formset');
|
||||
$formset = $formset ? "{$separator}formset=$formset" : '';
|
||||
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
|
||||
if ($id === null && $page == 'servers') {
|
||||
// we've just added a new server, get it's id
|
||||
$id = ConfigFile::getInstance()->getServerCount();
|
||||
}
|
||||
$id = $id ? "{$separator}id=$id" : '';
|
||||
?>
|
||||
<div class="warning">
|
||||
<h4><?php echo $GLOBALS['str']['Warning'] ?></h4>
|
||||
<?php echo PMA_lang('error_form') ?><br />
|
||||
<a href="?page=<?php echo $page . $formset . $id . $separator ?>mode=revert"><?php echo PMA_lang('Revert_erroneous_fields') ?></a>
|
||||
</div>
|
||||
<?php $form_display->displayErrors() ?>
|
||||
<a class="btn" href="index.php"><?php echo PMA_lang('Ignore_errors') ?></a>
|
||||
|
||||
<a class="btn" href="?page=<?php echo $page . $formset . $id . $separator ?>mode=edit"><?php echo PMA_lang('Show_form') ?></a>
|
||||
<?php
|
||||
} else {
|
||||
// drop post data
|
||||
header('HTTP/1.1 303 See Other');
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
@@ -1,192 +1,192 @@
|
||||
<?php
|
||||
/**
|
||||
* List of avaible forms, each form is described as an array of fields to display.
|
||||
* Fields MUST have their counterparts in the $cfg array.
|
||||
*
|
||||
* There are two possible notations:
|
||||
* $forms['Form name'] = array('Servers' => array(1 => array('host')));
|
||||
* can be written as
|
||||
* $forms['Form name'] = array('Servers/1/host');
|
||||
*
|
||||
* You can assign default values set by special button ("set value: ..."), eg.:
|
||||
* $forms['Server_pmadb'] = array('Servers' => array(1 => array(
|
||||
* 'pmadb' => 'phpmyadmin')));
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
$forms = array();
|
||||
$forms['_config.php'] = array(
|
||||
'DefaultLang',
|
||||
'ServerDefault');
|
||||
$forms['Server'] = array('Servers' => array(1 => array(
|
||||
'verbose',
|
||||
'host',
|
||||
'port',
|
||||
'socket',
|
||||
'ssl',
|
||||
'connect_type',
|
||||
'extension',
|
||||
'compress',
|
||||
'auth_type',
|
||||
'user',
|
||||
'password',
|
||||
'nopassword')));
|
||||
$forms['Server_login_options'] = array('Servers' => array(1 => array(
|
||||
'SignonSession',
|
||||
'SignonURL',
|
||||
'LogoutURL',
|
||||
'auth_swekey_config' => './swekey.conf')));
|
||||
$forms['Server_config'] = array('Servers' => array(1 => array(
|
||||
'only_db',
|
||||
'hide_db',
|
||||
'AllowRoot',
|
||||
'AllowNoPasswordRoot',
|
||||
'DisableIS',
|
||||
'AllowDeny/order',
|
||||
'AllowDeny/rules',
|
||||
'ShowDatabasesCommand',
|
||||
'CountTables')));
|
||||
$forms['Server_pmadb'] = array('Servers' => array(1 => array(
|
||||
'pmadb' => 'phpmyadmin',
|
||||
'controluser',
|
||||
'controlpass',
|
||||
'verbose_check',
|
||||
'bookmarktable' => 'pma_bookmark',
|
||||
'relation' => 'pma_relation',
|
||||
'table_info' => 'pma_table_info',
|
||||
'table_coords' => 'pma_table_coords',
|
||||
'pdf_pages' => 'pma_pdf_pages',
|
||||
'column_info' => 'pma_column_info',
|
||||
'history' => 'pma_history',
|
||||
'designer_coords' => 'designer_coords')));
|
||||
$forms['Import_export'] = array(
|
||||
'UploadDir',
|
||||
'SaveDir',
|
||||
'AllowAnywhereRecoding',
|
||||
'DefaultCharset',
|
||||
'RecodingEngine',
|
||||
'IconvExtraParams',
|
||||
'ZipDump',
|
||||
'GZipDump',
|
||||
'BZipDump',
|
||||
'CompressOnFly');
|
||||
$forms['Security'] = array(
|
||||
'blowfish_secret',
|
||||
'ForceSSL',
|
||||
'CheckConfigurationPermissions',
|
||||
'TrustedProxies',
|
||||
'AllowUserDropDatabase',
|
||||
'AllowArbitraryServer',
|
||||
'LoginCookieRecall',
|
||||
'LoginCookieValidity',
|
||||
'LoginCookieStore',
|
||||
'LoginCookieDeleteAll');
|
||||
$forms['Sql_queries'] = array(
|
||||
'ShowSQL',
|
||||
'Confirm',
|
||||
'QueryHistoryDB',
|
||||
'QueryHistoryMax',
|
||||
'IgnoreMultiSubmitErrors',
|
||||
'VerboseMultiSubmit');
|
||||
$forms['Other_core_settings'] = array(
|
||||
'MaxDbList',
|
||||
'MaxTableList',
|
||||
'MaxCharactersInDisplayedSQL',
|
||||
'OBGzip',
|
||||
'PersistentConnections',
|
||||
'ExecTimeLimit',
|
||||
'MemoryLimit',
|
||||
'SkipLockedTables',
|
||||
'UseDbSearch');
|
||||
$forms['Left_frame'] = array(
|
||||
'LeftFrameLight',
|
||||
'LeftDisplayLogo',
|
||||
'LeftLogoLink',
|
||||
'LeftLogoLinkWindow',
|
||||
'LeftDefaultTabTable',
|
||||
'LeftPointerEnable');
|
||||
$forms['Left_servers'] = array(
|
||||
'LeftDisplayServers',
|
||||
'DisplayServersList');
|
||||
$forms['Left_databases'] = array(
|
||||
'DisplayDatabasesList',
|
||||
'LeftFrameDBTree',
|
||||
'LeftFrameDBSeparator',
|
||||
'ShowTooltipAliasDB');
|
||||
$forms['Left_tables'] = array(
|
||||
'LeftFrameTableSeparator',
|
||||
'LeftFrameTableLevel',
|
||||
'ShowTooltip',
|
||||
'ShowTooltipAliasTB');
|
||||
$forms['Startup'] = array(
|
||||
'ShowStats',
|
||||
'ShowPhpInfo',
|
||||
'ShowServerInfo',
|
||||
'ShowChgPassword',
|
||||
'ShowCreateDb',
|
||||
'SuggestDBName');
|
||||
$forms['Browse'] = array(
|
||||
'NavigationBarIconic',
|
||||
'ShowAll',
|
||||
'MaxRows',
|
||||
'Order',
|
||||
'BrowsePointerEnable',
|
||||
'BrowseMarkerEnable');
|
||||
$forms['Edit'] = array(
|
||||
'ProtectBinary',
|
||||
'ShowFunctionFields',
|
||||
'CharEditing',
|
||||
'CharTextareaCols',
|
||||
'CharTextareaRows',
|
||||
'InsertRows',
|
||||
'ForeignKeyDropdownOrder',
|
||||
'ForeignKeyMaxLimit');
|
||||
$forms['Tabs'] = array(
|
||||
'LightTabs',
|
||||
'PropertiesIconic',
|
||||
'DefaultTabServer',
|
||||
'DefaultTabDatabase',
|
||||
'DefaultTabTable');
|
||||
$forms['Sql_box'] = array('SQLQuery' => array(
|
||||
'Edit',
|
||||
'Explain',
|
||||
'ShowAsPHP',
|
||||
'Validate',
|
||||
'Refresh'));
|
||||
$forms['Import'] = array('Import' => array(
|
||||
'format',
|
||||
'allow_interrupt',
|
||||
'skip_queries'));
|
||||
$forms['Import_sql'] = array('Import' => array(
|
||||
'sql_compatibility'));
|
||||
$forms['Import_csv'] = array('Import' => array(
|
||||
'csv_replace',
|
||||
'csv_terminated',
|
||||
'csv_enclosed',
|
||||
'csv_escaped',
|
||||
'csv_new_line',
|
||||
'csv_columns'));
|
||||
$forms['Import_ldi'] = array('Import' => array(
|
||||
'ldi_replace',
|
||||
'ldi_terminated',
|
||||
'ldi_enclosed',
|
||||
'ldi_escaped',
|
||||
'ldi_new_line',
|
||||
'ldi_columns',
|
||||
'ldi_local_option'));
|
||||
$forms['Export_defaults'] = array('Export' => array(
|
||||
'format',
|
||||
'compression',
|
||||
'asfile',
|
||||
'charset',
|
||||
'onserver',
|
||||
'onserver_overwrite',
|
||||
'remember_file_template',
|
||||
'file_template_table',
|
||||
'file_template_database',
|
||||
'file_template_server'));
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* List of avaible forms, each form is described as an array of fields to display.
|
||||
* Fields MUST have their counterparts in the $cfg array.
|
||||
*
|
||||
* There are two possible notations:
|
||||
* $forms['Form name'] = array('Servers' => array(1 => array('host')));
|
||||
* can be written as
|
||||
* $forms['Form name'] = array('Servers/1/host');
|
||||
*
|
||||
* You can assign default values set by special button ("set value: ..."), eg.:
|
||||
* $forms['Server_pmadb'] = array('Servers' => array(1 => array(
|
||||
* 'pmadb' => 'phpmyadmin')));
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
$forms = array();
|
||||
$forms['_config.php'] = array(
|
||||
'DefaultLang',
|
||||
'ServerDefault');
|
||||
$forms['Server'] = array('Servers' => array(1 => array(
|
||||
'verbose',
|
||||
'host',
|
||||
'port',
|
||||
'socket',
|
||||
'ssl',
|
||||
'connect_type',
|
||||
'extension',
|
||||
'compress',
|
||||
'auth_type',
|
||||
'user',
|
||||
'password',
|
||||
'nopassword')));
|
||||
$forms['Server_login_options'] = array('Servers' => array(1 => array(
|
||||
'SignonSession',
|
||||
'SignonURL',
|
||||
'LogoutURL',
|
||||
'auth_swekey_config' => './swekey.conf')));
|
||||
$forms['Server_config'] = array('Servers' => array(1 => array(
|
||||
'only_db',
|
||||
'hide_db',
|
||||
'AllowRoot',
|
||||
'AllowNoPasswordRoot',
|
||||
'DisableIS',
|
||||
'AllowDeny/order',
|
||||
'AllowDeny/rules',
|
||||
'ShowDatabasesCommand',
|
||||
'CountTables')));
|
||||
$forms['Server_pmadb'] = array('Servers' => array(1 => array(
|
||||
'pmadb' => 'phpmyadmin',
|
||||
'controluser',
|
||||
'controlpass',
|
||||
'verbose_check',
|
||||
'bookmarktable' => 'pma_bookmark',
|
||||
'relation' => 'pma_relation',
|
||||
'table_info' => 'pma_table_info',
|
||||
'table_coords' => 'pma_table_coords',
|
||||
'pdf_pages' => 'pma_pdf_pages',
|
||||
'column_info' => 'pma_column_info',
|
||||
'history' => 'pma_history',
|
||||
'designer_coords' => 'designer_coords')));
|
||||
$forms['Import_export'] = array(
|
||||
'UploadDir',
|
||||
'SaveDir',
|
||||
'AllowAnywhereRecoding',
|
||||
'DefaultCharset',
|
||||
'RecodingEngine',
|
||||
'IconvExtraParams',
|
||||
'ZipDump',
|
||||
'GZipDump',
|
||||
'BZipDump',
|
||||
'CompressOnFly');
|
||||
$forms['Security'] = array(
|
||||
'blowfish_secret',
|
||||
'ForceSSL',
|
||||
'CheckConfigurationPermissions',
|
||||
'TrustedProxies',
|
||||
'AllowUserDropDatabase',
|
||||
'AllowArbitraryServer',
|
||||
'LoginCookieRecall',
|
||||
'LoginCookieValidity',
|
||||
'LoginCookieStore',
|
||||
'LoginCookieDeleteAll');
|
||||
$forms['Sql_queries'] = array(
|
||||
'ShowSQL',
|
||||
'Confirm',
|
||||
'QueryHistoryDB',
|
||||
'QueryHistoryMax',
|
||||
'IgnoreMultiSubmitErrors',
|
||||
'VerboseMultiSubmit');
|
||||
$forms['Other_core_settings'] = array(
|
||||
'MaxDbList',
|
||||
'MaxTableList',
|
||||
'MaxCharactersInDisplayedSQL',
|
||||
'OBGzip',
|
||||
'PersistentConnections',
|
||||
'ExecTimeLimit',
|
||||
'MemoryLimit',
|
||||
'SkipLockedTables',
|
||||
'UseDbSearch');
|
||||
$forms['Left_frame'] = array(
|
||||
'LeftFrameLight',
|
||||
'LeftDisplayLogo',
|
||||
'LeftLogoLink',
|
||||
'LeftLogoLinkWindow',
|
||||
'LeftDefaultTabTable',
|
||||
'LeftPointerEnable');
|
||||
$forms['Left_servers'] = array(
|
||||
'LeftDisplayServers',
|
||||
'DisplayServersList');
|
||||
$forms['Left_databases'] = array(
|
||||
'DisplayDatabasesList',
|
||||
'LeftFrameDBTree',
|
||||
'LeftFrameDBSeparator',
|
||||
'ShowTooltipAliasDB');
|
||||
$forms['Left_tables'] = array(
|
||||
'LeftFrameTableSeparator',
|
||||
'LeftFrameTableLevel',
|
||||
'ShowTooltip',
|
||||
'ShowTooltipAliasTB');
|
||||
$forms['Startup'] = array(
|
||||
'ShowStats',
|
||||
'ShowPhpInfo',
|
||||
'ShowServerInfo',
|
||||
'ShowChgPassword',
|
||||
'ShowCreateDb',
|
||||
'SuggestDBName');
|
||||
$forms['Browse'] = array(
|
||||
'NavigationBarIconic',
|
||||
'ShowAll',
|
||||
'MaxRows',
|
||||
'Order',
|
||||
'BrowsePointerEnable',
|
||||
'BrowseMarkerEnable');
|
||||
$forms['Edit'] = array(
|
||||
'ProtectBinary',
|
||||
'ShowFunctionFields',
|
||||
'CharEditing',
|
||||
'CharTextareaCols',
|
||||
'CharTextareaRows',
|
||||
'InsertRows',
|
||||
'ForeignKeyDropdownOrder',
|
||||
'ForeignKeyMaxLimit');
|
||||
$forms['Tabs'] = array(
|
||||
'LightTabs',
|
||||
'PropertiesIconic',
|
||||
'DefaultTabServer',
|
||||
'DefaultTabDatabase',
|
||||
'DefaultTabTable');
|
||||
$forms['Sql_box'] = array('SQLQuery' => array(
|
||||
'Edit',
|
||||
'Explain',
|
||||
'ShowAsPHP',
|
||||
'Validate',
|
||||
'Refresh'));
|
||||
$forms['Import'] = array('Import' => array(
|
||||
'format',
|
||||
'allow_interrupt',
|
||||
'skip_queries'));
|
||||
$forms['Import_sql'] = array('Import' => array(
|
||||
'sql_compatibility'));
|
||||
$forms['Import_csv'] = array('Import' => array(
|
||||
'csv_replace',
|
||||
'csv_terminated',
|
||||
'csv_enclosed',
|
||||
'csv_escaped',
|
||||
'csv_new_line',
|
||||
'csv_columns'));
|
||||
$forms['Import_ldi'] = array('Import' => array(
|
||||
'ldi_replace',
|
||||
'ldi_terminated',
|
||||
'ldi_enclosed',
|
||||
'ldi_escaped',
|
||||
'ldi_new_line',
|
||||
'ldi_columns',
|
||||
'ldi_local_option'));
|
||||
$forms['Export_defaults'] = array('Export' => array(
|
||||
'format',
|
||||
'compression',
|
||||
'asfile',
|
||||
'charset',
|
||||
'onserver',
|
||||
'onserver_overwrite',
|
||||
'remember_file_template',
|
||||
'file_template_table',
|
||||
'file_template_database',
|
||||
'file_template_server'));
|
||||
?>
|
||||
|
@@ -1,394 +1,394 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Various checks and message functions used on index page.
|
||||
*
|
||||
* Security checks are the idea of Aung Khant <aungkhant[at]yehg.net>, http://yehg.net/lab
|
||||
* Version check taken from the old setup script by Michal Čihař <michal@cihar.com>
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
/**
|
||||
* Initializes message list
|
||||
*/
|
||||
function messages_begin()
|
||||
{
|
||||
if (!isset($_SESSION['messages']) || !is_array($_SESSION['messages'])) {
|
||||
$_SESSION['messages'] = array('error' => array(), 'warning' => array(), 'notice' => array());
|
||||
} else {
|
||||
// reset message states
|
||||
foreach ($_SESSION['messages'] as &$messages) {
|
||||
foreach ($messages as &$msg) {
|
||||
$msg['fresh'] = false;
|
||||
$msg['active'] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new message to message list
|
||||
*
|
||||
* @param string $id unique message identifier
|
||||
* @param string $type one of: notice, warning, error
|
||||
* @param string $title language string id (in $str array)
|
||||
* @param string $message message text
|
||||
*/
|
||||
function messages_set($type, $id, $title, $message)
|
||||
{
|
||||
$fresh = !isset($_SESSION['messages'][$type][$id]);
|
||||
$title = PMA_lang($title);
|
||||
$_SESSION['messages'][$type][$id] = array('fresh' => $fresh, 'active' => true, 'title' => $title, 'message' => $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans up message list
|
||||
*/
|
||||
function messages_end()
|
||||
{
|
||||
foreach ($_SESSION['messages'] as &$messages) {
|
||||
$remove_ids = array();
|
||||
foreach ($messages as $id => &$msg) {
|
||||
if ($msg['active'] == false) {
|
||||
$remove_ids[] = $id;
|
||||
}
|
||||
}
|
||||
foreach ($remove_ids as $id) {
|
||||
unset($messages[$id]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints message list, must be called after messages_end()
|
||||
*/
|
||||
function messages_show_html()
|
||||
{
|
||||
$old_ids = array();
|
||||
foreach ($_SESSION['messages'] as $type => $messages) {
|
||||
foreach ($messages as $id => $msg) {
|
||||
echo '<div class="' . $type . '" id="' . $id . '">' . '<h4>' . $msg['title'] . '</h4>' . $msg['message'] . '</div>';
|
||||
if (!$msg['fresh']) {
|
||||
$old_ids[] = $id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo "\n" . '<script type="text/javascript">';
|
||||
foreach ($old_ids as $id) {
|
||||
echo "\nhiddenMessages.push('$id');";
|
||||
}
|
||||
echo "\n</script>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks for newest phpMyAdmin version and sets result as a new notice
|
||||
*/
|
||||
function PMA_version_check()
|
||||
{
|
||||
// version check messages should always be visible so let's make
|
||||
// a unique message id each time we run it
|
||||
$message_id = uniqid('version_check');
|
||||
// wait 3s at most for server response, it's enough to get information
|
||||
// from a working server
|
||||
$connection_timeout = 3;
|
||||
|
||||
$url = 'http://phpmyadmin.net/home_page/version.php';
|
||||
$context = stream_context_create(array(
|
||||
'http' => array(
|
||||
'timeout' => $connection_timeout)));
|
||||
$data = @file_get_contents($url, null, $context);
|
||||
if ($data === false) {
|
||||
if (function_exists('curl_init')) {
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_HEADER, false);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, $connection_timeout);
|
||||
$data = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
} else {
|
||||
messages_set('error', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_wrapper_error'));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($data)) {
|
||||
messages_set('error', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_data_error'));
|
||||
return;
|
||||
}
|
||||
|
||||
/* Format: version\ndate\n(download\n)* */
|
||||
$data_list = explode("\n", $data);
|
||||
|
||||
if (count($data_list) > 1) {
|
||||
$version = $data_list[0];
|
||||
$date = $data_list[1];
|
||||
} else {
|
||||
$version = $date = '';
|
||||
}
|
||||
|
||||
$version_upstream = version_to_int($version);
|
||||
if ($version_upstream === false) {
|
||||
messages_set('error', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_invalid'));
|
||||
return;
|
||||
}
|
||||
|
||||
$version_local = version_to_int($_SESSION['PMA_Config']->get('PMA_VERSION'));
|
||||
if ($version_local === false) {
|
||||
messages_set('error', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_unparsable'));
|
||||
return;
|
||||
}
|
||||
|
||||
if ($version_upstream > $version_local) {
|
||||
$version = htmlspecialchars($version);
|
||||
$date = htmlspecialchars($date);
|
||||
messages_set('notice', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_new_available', $version, $date));
|
||||
} else {
|
||||
if ($version_local % 100 == 0) {
|
||||
messages_set('notice', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_new_available_svn', $version, $date));
|
||||
} else {
|
||||
messages_set('notice', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_none'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates numerical equivalent of phpMyAdmin version string
|
||||
*
|
||||
* @param string version
|
||||
* @return mixed false on failure, integer on success
|
||||
*/
|
||||
function version_to_int($version)
|
||||
{
|
||||
$matches = array();
|
||||
if (!preg_match('/^(\d+)\.(\d+)\.(\d+)((\.|-(pl|rc|dev|beta|alpha))(\d+)?)?$/', $version, $matches)) {
|
||||
return false;
|
||||
}
|
||||
if (!empty($matches[6])) {
|
||||
switch ($matches[6]) {
|
||||
case 'pl':
|
||||
$added = 60;
|
||||
break;
|
||||
case 'rc':
|
||||
$added = 30;
|
||||
break;
|
||||
case 'beta':
|
||||
$added = 20;
|
||||
break;
|
||||
case 'alpha':
|
||||
$added = 10;
|
||||
break;
|
||||
case 'dev':
|
||||
$added = 0;
|
||||
break;
|
||||
default:
|
||||
messages_set('notice', 'version_match', 'Version_check', 'Unknown version part: ' . htmlspecialchars($matches[6]));
|
||||
$added = 0;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$added = 50; // for final
|
||||
}
|
||||
if (!empty($matches[7])) {
|
||||
$added = $added + $matches[7];
|
||||
}
|
||||
return $matches[1] * 1000000 + $matches[2] * 10000 + $matches[3] * 100 + $added;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether config file is readable/writable
|
||||
*
|
||||
* @param bool &$is_readable
|
||||
* @param bool &$is_writable
|
||||
* @param bool &$file_exists
|
||||
*/
|
||||
function check_config_rw(&$is_readable, &$is_writable, &$file_exists)
|
||||
{
|
||||
$file_path = ConfigFile::getInstance()->getFilePath();
|
||||
$file_dir = dirname($file_path);
|
||||
$is_readable = true;
|
||||
$is_writable = is_dir($file_dir) && is_writable($file_dir);
|
||||
$file_exists = file_exists($file_path);
|
||||
if ($file_exists) {
|
||||
$is_readable = is_readable($file_path);
|
||||
$is_writable = $is_writable && is_writable($file_path);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs various compatibility, security and consistency checks on current config
|
||||
*
|
||||
* Outputs results to message list, must be called between messages_begin()
|
||||
* and messages_end()
|
||||
*/
|
||||
function perform_config_checks()
|
||||
{
|
||||
$cf = ConfigFile::getInstance();
|
||||
$blowfish_secret = $cf->get('blowfish_secret');
|
||||
$blowfish_secret_set = false;
|
||||
$cookie_auth_used = false;
|
||||
for ($i = 1; $i <= $cf->getServerCount(); $i++) {
|
||||
$cookie_auth_server = ($cf->getValue("Servers/$i/auth_type") == 'cookie');
|
||||
$cookie_auth_used |= $cookie_auth_server;
|
||||
$server_name = $cf->getServerName($i);
|
||||
if ($server_name == 'localhost') {
|
||||
$server_name .= " [$i]";
|
||||
}
|
||||
|
||||
if ($cookie_auth_server && $blowfish_secret === null) {
|
||||
$blowfish_secret = uniqid('', true);
|
||||
$blowfish_secret_set = true;
|
||||
$cf->set('blowfish_secret', $blowfish_secret);
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['Servers'][$i]['ssl']
|
||||
// should be enabled if possible
|
||||
//
|
||||
if (!$cf->getValue("Servers/$i/ssl")) {
|
||||
$title = PMA_lang_name('Servers/1/ssl') . " ($server_name)";
|
||||
messages_set('notice', "Servers/$i/ssl", $title, PMA_lang('Server_ssl_msg'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['Servers'][$i]['extension']
|
||||
// warn about using 'mysql'
|
||||
//
|
||||
if ($cf->getValue("Servers/$i/extension") == 'mysql') {
|
||||
$title = PMA_lang_name('Servers/1/extension') . " ($server_name)";
|
||||
messages_set('notice', "Servers/$i/extension", $title, PMA_lang('Server_extension_msg'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['Servers'][$i]['auth_type']
|
||||
// warn about full user credentials if 'auth_type' is 'config'
|
||||
//
|
||||
if ($cf->getValue("Servers/$i/auth_type") == 'config'
|
||||
&& $cf->getValue("Servers/$i/user") != ''
|
||||
&& $cf->getValue("Servers/$i/password") != '') {
|
||||
$title = PMA_lang_name('Servers/1/auth_type') . " ($server_name)";
|
||||
messages_set('warning', "Servers/$i/auth_type", $title,
|
||||
PMA_lang('Server_auth_config_msg', $i) . ' ' .
|
||||
PMA_lang('Server_security_info_msg', $i));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['Servers'][$i]['AllowRoot']
|
||||
// $cfg['Servers'][$i]['AllowNoPasswordRoot']
|
||||
// serious security flaw
|
||||
//
|
||||
if ($cf->getValue("Servers/$i/AllowRoot")
|
||||
&& $cf->getValue("Servers/$i/AllowNoPasswordRoot")) {
|
||||
$title = PMA_lang_name('Servers/1/AllowNoPasswordRoot') . " ($server_name)";
|
||||
messages_set('warning', "Servers/$i/AllowNoPasswordRoot", $title,
|
||||
PMA_lang('Server_no_password_root_msg') . ' ' .
|
||||
PMA_lang('Server_security_info_msg', $i));
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['blowfish_secret']
|
||||
// it's required for 'cookie' authentication
|
||||
//
|
||||
if ($cookie_auth_used) {
|
||||
if ($blowfish_secret_set) {
|
||||
// 'cookie' auth used, blowfish_secret was generated
|
||||
messages_set('notice', 'blowfish_secret_created', 'blowfish_secret_name',
|
||||
PMA_lang('blowfish_secret_msg'));
|
||||
} else {
|
||||
$blowfish_warnings = array();
|
||||
// check length
|
||||
if (strlen($blowfish_secret) < 8) {
|
||||
// too short key
|
||||
$blowfish_warnings[] = PMA_lang('blowfish_secret_length_msg');
|
||||
}
|
||||
// check used characters
|
||||
$has_digits = (bool) preg_match('/\d/', $blowfish_secret);
|
||||
$has_chars = (bool) preg_match('/\S/', $blowfish_secret);
|
||||
$has_nonword = (bool) preg_match('/\W/', $blowfish_secret);
|
||||
if (!$has_digits || !$has_chars || !$has_nonword) {
|
||||
$blowfish_warnings[] = PMA_lang('blowfish_secret_chars_msg');
|
||||
}
|
||||
if (!empty($blowfish_warnings)) {
|
||||
messages_set('warning', 'blowfish_warnings' . count($blowfish_warnings),
|
||||
'blowfish_secret_name', implode("<br />", $blowfish_warnings));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['ForceSSL']
|
||||
// should be enabled if possible
|
||||
//
|
||||
if (!$cf->getValue('ForceSSL')) {
|
||||
messages_set('notice', 'ForceSSL', 'ForceSSL_name', PMA_lang('ForceSSL_msg'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['AllowArbitraryServer']
|
||||
// should be disabled
|
||||
//
|
||||
if ($cf->getValue('AllowArbitraryServer')) {
|
||||
messages_set('warning', 'AllowArbitraryServer', 'AllowArbitraryServer_name',
|
||||
PMA_lang('AllowArbitraryServer_msg'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['LoginCookieValidity']
|
||||
// should be at most 1800 (30 min)
|
||||
//
|
||||
if ($cf->getValue('LoginCookieValidity') > 1800) {
|
||||
messages_set('warning', 'LoginCookieValidity', 'LoginCookieValidity_name',
|
||||
PMA_lang('LoginCookieValidity_msg'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['SaveDir']
|
||||
// should not be world-accessible
|
||||
//
|
||||
if ($cf->getValue('SaveDir') != '') {
|
||||
messages_set('notice', 'SaveDir', 'SaveDir_name',
|
||||
PMA_lang('Directory_notice'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['TempDir']
|
||||
// should not be world-accessible
|
||||
//
|
||||
if ($cf->getValue('TempDir') != '') {
|
||||
messages_set('notice', 'TempDir', 'TempDir_name',
|
||||
PMA_lang('Directory_notice'));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* add checks for compression options:
|
||||
*
|
||||
* import:
|
||||
if ($cfg['GZipDump'] && @function_exists('gzopen')) {
|
||||
$compressions .= ', gzip';
|
||||
}
|
||||
if ($cfg['BZipDump'] && @function_exists('bzopen')) {
|
||||
$compressions .= ', bzip2';
|
||||
}
|
||||
if ($cfg['ZipDump'] && @function_exists('zip_open')) {
|
||||
$compressions .= ', zip';
|
||||
}
|
||||
|
||||
export:
|
||||
$is_zip = ($cfg['ZipDump'] && @function_exists('gzcompress'));
|
||||
$is_gzip = ($cfg['GZipDump'] && @function_exists('gzencode'));
|
||||
$is_bzip = ($cfg['BZipDump'] && @function_exists('bzcompress'));
|
||||
*/
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Various checks and message functions used on index page.
|
||||
*
|
||||
* Security checks are the idea of Aung Khant <aungkhant[at]yehg.net>, http://yehg.net/lab
|
||||
* Version check taken from the old setup script by Michal Čihař <michal@cihar.com>
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
/**
|
||||
* Initializes message list
|
||||
*/
|
||||
function messages_begin()
|
||||
{
|
||||
if (!isset($_SESSION['messages']) || !is_array($_SESSION['messages'])) {
|
||||
$_SESSION['messages'] = array('error' => array(), 'warning' => array(), 'notice' => array());
|
||||
} else {
|
||||
// reset message states
|
||||
foreach ($_SESSION['messages'] as &$messages) {
|
||||
foreach ($messages as &$msg) {
|
||||
$msg['fresh'] = false;
|
||||
$msg['active'] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new message to message list
|
||||
*
|
||||
* @param string $id unique message identifier
|
||||
* @param string $type one of: notice, warning, error
|
||||
* @param string $title language string id (in $str array)
|
||||
* @param string $message message text
|
||||
*/
|
||||
function messages_set($type, $id, $title, $message)
|
||||
{
|
||||
$fresh = !isset($_SESSION['messages'][$type][$id]);
|
||||
$title = PMA_lang($title);
|
||||
$_SESSION['messages'][$type][$id] = array('fresh' => $fresh, 'active' => true, 'title' => $title, 'message' => $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans up message list
|
||||
*/
|
||||
function messages_end()
|
||||
{
|
||||
foreach ($_SESSION['messages'] as &$messages) {
|
||||
$remove_ids = array();
|
||||
foreach ($messages as $id => &$msg) {
|
||||
if ($msg['active'] == false) {
|
||||
$remove_ids[] = $id;
|
||||
}
|
||||
}
|
||||
foreach ($remove_ids as $id) {
|
||||
unset($messages[$id]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints message list, must be called after messages_end()
|
||||
*/
|
||||
function messages_show_html()
|
||||
{
|
||||
$old_ids = array();
|
||||
foreach ($_SESSION['messages'] as $type => $messages) {
|
||||
foreach ($messages as $id => $msg) {
|
||||
echo '<div class="' . $type . '" id="' . $id . '">' . '<h4>' . $msg['title'] . '</h4>' . $msg['message'] . '</div>';
|
||||
if (!$msg['fresh']) {
|
||||
$old_ids[] = $id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo "\n" . '<script type="text/javascript">';
|
||||
foreach ($old_ids as $id) {
|
||||
echo "\nhiddenMessages.push('$id');";
|
||||
}
|
||||
echo "\n</script>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks for newest phpMyAdmin version and sets result as a new notice
|
||||
*/
|
||||
function PMA_version_check()
|
||||
{
|
||||
// version check messages should always be visible so let's make
|
||||
// a unique message id each time we run it
|
||||
$message_id = uniqid('version_check');
|
||||
// wait 3s at most for server response, it's enough to get information
|
||||
// from a working server
|
||||
$connection_timeout = 3;
|
||||
|
||||
$url = 'http://phpmyadmin.net/home_page/version.php';
|
||||
$context = stream_context_create(array(
|
||||
'http' => array(
|
||||
'timeout' => $connection_timeout)));
|
||||
$data = @file_get_contents($url, null, $context);
|
||||
if ($data === false) {
|
||||
if (function_exists('curl_init')) {
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_HEADER, false);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, $connection_timeout);
|
||||
$data = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
} else {
|
||||
messages_set('error', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_wrapper_error'));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($data)) {
|
||||
messages_set('error', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_data_error'));
|
||||
return;
|
||||
}
|
||||
|
||||
/* Format: version\ndate\n(download\n)* */
|
||||
$data_list = explode("\n", $data);
|
||||
|
||||
if (count($data_list) > 1) {
|
||||
$version = $data_list[0];
|
||||
$date = $data_list[1];
|
||||
} else {
|
||||
$version = $date = '';
|
||||
}
|
||||
|
||||
$version_upstream = version_to_int($version);
|
||||
if ($version_upstream === false) {
|
||||
messages_set('error', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_invalid'));
|
||||
return;
|
||||
}
|
||||
|
||||
$version_local = version_to_int($_SESSION['PMA_Config']->get('PMA_VERSION'));
|
||||
if ($version_local === false) {
|
||||
messages_set('error', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_unparsable'));
|
||||
return;
|
||||
}
|
||||
|
||||
if ($version_upstream > $version_local) {
|
||||
$version = htmlspecialchars($version);
|
||||
$date = htmlspecialchars($date);
|
||||
messages_set('notice', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_new_available', $version, $date));
|
||||
} else {
|
||||
if ($version_local % 100 == 0) {
|
||||
messages_set('notice', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_new_available_svn', $version, $date));
|
||||
} else {
|
||||
messages_set('notice', $message_id, 'Version_check',
|
||||
PMA_lang('Version_check_none'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates numerical equivalent of phpMyAdmin version string
|
||||
*
|
||||
* @param string version
|
||||
* @return mixed false on failure, integer on success
|
||||
*/
|
||||
function version_to_int($version)
|
||||
{
|
||||
$matches = array();
|
||||
if (!preg_match('/^(\d+)\.(\d+)\.(\d+)((\.|-(pl|rc|dev|beta|alpha))(\d+)?)?$/', $version, $matches)) {
|
||||
return false;
|
||||
}
|
||||
if (!empty($matches[6])) {
|
||||
switch ($matches[6]) {
|
||||
case 'pl':
|
||||
$added = 60;
|
||||
break;
|
||||
case 'rc':
|
||||
$added = 30;
|
||||
break;
|
||||
case 'beta':
|
||||
$added = 20;
|
||||
break;
|
||||
case 'alpha':
|
||||
$added = 10;
|
||||
break;
|
||||
case 'dev':
|
||||
$added = 0;
|
||||
break;
|
||||
default:
|
||||
messages_set('notice', 'version_match', 'Version_check', 'Unknown version part: ' . htmlspecialchars($matches[6]));
|
||||
$added = 0;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$added = 50; // for final
|
||||
}
|
||||
if (!empty($matches[7])) {
|
||||
$added = $added + $matches[7];
|
||||
}
|
||||
return $matches[1] * 1000000 + $matches[2] * 10000 + $matches[3] * 100 + $added;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether config file is readable/writable
|
||||
*
|
||||
* @param bool &$is_readable
|
||||
* @param bool &$is_writable
|
||||
* @param bool &$file_exists
|
||||
*/
|
||||
function check_config_rw(&$is_readable, &$is_writable, &$file_exists)
|
||||
{
|
||||
$file_path = ConfigFile::getInstance()->getFilePath();
|
||||
$file_dir = dirname($file_path);
|
||||
$is_readable = true;
|
||||
$is_writable = is_dir($file_dir) && is_writable($file_dir);
|
||||
$file_exists = file_exists($file_path);
|
||||
if ($file_exists) {
|
||||
$is_readable = is_readable($file_path);
|
||||
$is_writable = $is_writable && is_writable($file_path);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs various compatibility, security and consistency checks on current config
|
||||
*
|
||||
* Outputs results to message list, must be called between messages_begin()
|
||||
* and messages_end()
|
||||
*/
|
||||
function perform_config_checks()
|
||||
{
|
||||
$cf = ConfigFile::getInstance();
|
||||
$blowfish_secret = $cf->get('blowfish_secret');
|
||||
$blowfish_secret_set = false;
|
||||
$cookie_auth_used = false;
|
||||
for ($i = 1; $i <= $cf->getServerCount(); $i++) {
|
||||
$cookie_auth_server = ($cf->getValue("Servers/$i/auth_type") == 'cookie');
|
||||
$cookie_auth_used |= $cookie_auth_server;
|
||||
$server_name = $cf->getServerName($i);
|
||||
if ($server_name == 'localhost') {
|
||||
$server_name .= " [$i]";
|
||||
}
|
||||
|
||||
if ($cookie_auth_server && $blowfish_secret === null) {
|
||||
$blowfish_secret = uniqid('', true);
|
||||
$blowfish_secret_set = true;
|
||||
$cf->set('blowfish_secret', $blowfish_secret);
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['Servers'][$i]['ssl']
|
||||
// should be enabled if possible
|
||||
//
|
||||
if (!$cf->getValue("Servers/$i/ssl")) {
|
||||
$title = PMA_lang_name('Servers/1/ssl') . " ($server_name)";
|
||||
messages_set('notice', "Servers/$i/ssl", $title, PMA_lang('Server_ssl_msg'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['Servers'][$i]['extension']
|
||||
// warn about using 'mysql'
|
||||
//
|
||||
if ($cf->getValue("Servers/$i/extension") == 'mysql') {
|
||||
$title = PMA_lang_name('Servers/1/extension') . " ($server_name)";
|
||||
messages_set('notice', "Servers/$i/extension", $title, PMA_lang('Server_extension_msg'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['Servers'][$i]['auth_type']
|
||||
// warn about full user credentials if 'auth_type' is 'config'
|
||||
//
|
||||
if ($cf->getValue("Servers/$i/auth_type") == 'config'
|
||||
&& $cf->getValue("Servers/$i/user") != ''
|
||||
&& $cf->getValue("Servers/$i/password") != '') {
|
||||
$title = PMA_lang_name('Servers/1/auth_type') . " ($server_name)";
|
||||
messages_set('warning', "Servers/$i/auth_type", $title,
|
||||
PMA_lang('Server_auth_config_msg', $i) . ' ' .
|
||||
PMA_lang('Server_security_info_msg', $i));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['Servers'][$i]['AllowRoot']
|
||||
// $cfg['Servers'][$i]['AllowNoPasswordRoot']
|
||||
// serious security flaw
|
||||
//
|
||||
if ($cf->getValue("Servers/$i/AllowRoot")
|
||||
&& $cf->getValue("Servers/$i/AllowNoPasswordRoot")) {
|
||||
$title = PMA_lang_name('Servers/1/AllowNoPasswordRoot') . " ($server_name)";
|
||||
messages_set('warning', "Servers/$i/AllowNoPasswordRoot", $title,
|
||||
PMA_lang('Server_no_password_root_msg') . ' ' .
|
||||
PMA_lang('Server_security_info_msg', $i));
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['blowfish_secret']
|
||||
// it's required for 'cookie' authentication
|
||||
//
|
||||
if ($cookie_auth_used) {
|
||||
if ($blowfish_secret_set) {
|
||||
// 'cookie' auth used, blowfish_secret was generated
|
||||
messages_set('notice', 'blowfish_secret_created', 'blowfish_secret_name',
|
||||
PMA_lang('blowfish_secret_msg'));
|
||||
} else {
|
||||
$blowfish_warnings = array();
|
||||
// check length
|
||||
if (strlen($blowfish_secret) < 8) {
|
||||
// too short key
|
||||
$blowfish_warnings[] = PMA_lang('blowfish_secret_length_msg');
|
||||
}
|
||||
// check used characters
|
||||
$has_digits = (bool) preg_match('/\d/', $blowfish_secret);
|
||||
$has_chars = (bool) preg_match('/\S/', $blowfish_secret);
|
||||
$has_nonword = (bool) preg_match('/\W/', $blowfish_secret);
|
||||
if (!$has_digits || !$has_chars || !$has_nonword) {
|
||||
$blowfish_warnings[] = PMA_lang('blowfish_secret_chars_msg');
|
||||
}
|
||||
if (!empty($blowfish_warnings)) {
|
||||
messages_set('warning', 'blowfish_warnings' . count($blowfish_warnings),
|
||||
'blowfish_secret_name', implode("<br />", $blowfish_warnings));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['ForceSSL']
|
||||
// should be enabled if possible
|
||||
//
|
||||
if (!$cf->getValue('ForceSSL')) {
|
||||
messages_set('notice', 'ForceSSL', 'ForceSSL_name', PMA_lang('ForceSSL_msg'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['AllowArbitraryServer']
|
||||
// should be disabled
|
||||
//
|
||||
if ($cf->getValue('AllowArbitraryServer')) {
|
||||
messages_set('warning', 'AllowArbitraryServer', 'AllowArbitraryServer_name',
|
||||
PMA_lang('AllowArbitraryServer_msg'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['LoginCookieValidity']
|
||||
// should be at most 1800 (30 min)
|
||||
//
|
||||
if ($cf->getValue('LoginCookieValidity') > 1800) {
|
||||
messages_set('warning', 'LoginCookieValidity', 'LoginCookieValidity_name',
|
||||
PMA_lang('LoginCookieValidity_msg'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['SaveDir']
|
||||
// should not be world-accessible
|
||||
//
|
||||
if ($cf->getValue('SaveDir') != '') {
|
||||
messages_set('notice', 'SaveDir', 'SaveDir_name',
|
||||
PMA_lang('Directory_notice'));
|
||||
}
|
||||
|
||||
//
|
||||
// $cfg['TempDir']
|
||||
// should not be world-accessible
|
||||
//
|
||||
if ($cf->getValue('TempDir') != '') {
|
||||
messages_set('notice', 'TempDir', 'TempDir_name',
|
||||
PMA_lang('Directory_notice'));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* add checks for compression options:
|
||||
*
|
||||
* import:
|
||||
if ($cfg['GZipDump'] && @function_exists('gzopen')) {
|
||||
$compressions .= ', gzip';
|
||||
}
|
||||
if ($cfg['BZipDump'] && @function_exists('bzopen')) {
|
||||
$compressions .= ', bzip2';
|
||||
}
|
||||
if ($cfg['ZipDump'] && @function_exists('zip_open')) {
|
||||
$compressions .= ', zip';
|
||||
}
|
||||
|
||||
export:
|
||||
$is_zip = ($cfg['ZipDump'] && @function_exists('gzcompress'));
|
||||
$is_gzip = ($cfg['GZipDump'] && @function_exists('gzencode'));
|
||||
$is_bzip = ($cfg['BZipDump'] && @function_exists('bzcompress'));
|
||||
*/
|
||||
?>
|
@@ -1,362 +1,362 @@
|
||||
<?php
|
||||
/**
|
||||
* Various validation functions
|
||||
*
|
||||
* Validation function takes two argument: id for which it is called
|
||||
* and array of fields' values (usually values for entire formset, as defined
|
||||
* in forms.inc.php).
|
||||
* The function must always return an array with an error (or error array)
|
||||
* assigned to a form element (formset name or field path). Even if there are
|
||||
* no errors, key must be set with an empty value.
|
||||
*
|
||||
* Valdiation functions are assigned in $cfg_db['_validators'] (config_info.inc.php).
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
/**
|
||||
* Runs validation $validator_id on values $values and returns error list.
|
||||
*
|
||||
* Return values:
|
||||
* o array, keys - field path or formset id, values - array of errors
|
||||
* when $isPostSource is true values is an empty array to allow for error list
|
||||
* cleanup in HTML documen
|
||||
* o false - when no validators match name(s) given by $validator_id
|
||||
*
|
||||
* @param string|array $validator_id
|
||||
* @param array $values
|
||||
* @param bool $isPostSource tells whether $values are directly from POST request
|
||||
* @return bool|array
|
||||
*/
|
||||
function validate($validator_id, &$values, $isPostSource)
|
||||
{
|
||||
// find validators
|
||||
$cf = ConfigFile::getInstance();
|
||||
$validator_id = (array) $validator_id;
|
||||
$validators = $cf->getDbEntry('_validators');
|
||||
$vids = array();
|
||||
foreach ($validator_id as &$vid) {
|
||||
$vid = $cf->getCanonicalPath($vid);
|
||||
if (isset($validators[$vid])) {
|
||||
$vids[] = $vid;
|
||||
}
|
||||
}
|
||||
if (empty($vids)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// create argument list with canonical paths and remember path mapping
|
||||
$arguments = array();
|
||||
$key_map = array();
|
||||
foreach ($values as $k => $v) {
|
||||
$k2 = $isPostSource ? str_replace('-', '/', $k) : $k;
|
||||
$k2 = strpos($k2, '/') ? $cf->getCanonicalPath($k2) : $k2;
|
||||
$key_map[$k2] = $k;
|
||||
$arguments[$k2] = $v;
|
||||
}
|
||||
|
||||
// validate
|
||||
$result = array();
|
||||
foreach ($vids as $vid) {
|
||||
$r = call_user_func($validators[$vid], $vid, $arguments);
|
||||
// merge results
|
||||
if (is_array($r)) {
|
||||
foreach ($r as $key => $error_list) {
|
||||
// skip empty values if $isPostSource is false
|
||||
if (!$isPostSource && empty($error_list)) {
|
||||
continue;
|
||||
}
|
||||
if (!isset($result[$key])) {
|
||||
$result[$key] = array();
|
||||
}
|
||||
$result[$key] = array_merge($result[$key], (array)$error_list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// restore original paths
|
||||
$new_result = array();
|
||||
foreach ($result as $k => $v) {
|
||||
$k2 = isset($key_map[$k]) ? $key_map[$k] : $k;
|
||||
$new_result[$k2] = $v;
|
||||
}
|
||||
return empty($new_result) ? true : $new_result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that $php_errormsg variable will be registered in case of an error
|
||||
* and enables output buffering (when $start = true).
|
||||
* Called with $start = false disables output buffering end restores
|
||||
* html_errors and track_errors.
|
||||
*
|
||||
* @param boolean $start
|
||||
*/
|
||||
function test_php_errormsg($start = true)
|
||||
{
|
||||
static $old_html_errors, $old_track_errors;
|
||||
if ($start) {
|
||||
$old_html_errors = ini_get('html_errors');
|
||||
$old_track_errors = ini_get('track_errors');
|
||||
ini_set('html_errors', false);
|
||||
ini_set('track_errors', true);
|
||||
ob_start();
|
||||
} else {
|
||||
ob_end_clean();
|
||||
ini_set('html_errors', $old_html_errors);
|
||||
ini_set('track_errors', $old_track_errors);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test database connection
|
||||
*
|
||||
* @param string $extension 'mysql' or 'mysqli'
|
||||
* @param string $connect_type 'tcp' or 'socket'
|
||||
* @param string $host
|
||||
* @param string $port
|
||||
* @param string $socket
|
||||
* @param string $user
|
||||
* @param string $pass
|
||||
* @param string $error_key
|
||||
* @return bool|array
|
||||
*/
|
||||
function test_db_connection($extension, $connect_type, $host, $port, $socket, $user, $pass = null, $error_key = 'Server')
|
||||
{
|
||||
// test_php_errormsg();
|
||||
$socket = empty($socket) || $connect_type == 'tcp' ? null : ':' . $socket;
|
||||
$port = empty($port) || $connect_type == 'socket' ? null : ':' . $port;
|
||||
$error = null;
|
||||
if ($extension == 'mysql') {
|
||||
$conn = @mysql_connect($host . $socket . $port, $user, $pass);
|
||||
if (!$conn) {
|
||||
$error = PMA_lang('error_connection');
|
||||
} else {
|
||||
mysql_close($conn);
|
||||
}
|
||||
} else {
|
||||
$conn = @mysqli_connect($host, $user, $pass, null, $port, $socket);
|
||||
if (!$conn) {
|
||||
$error = PMA_lang('error_connection');
|
||||
} else {
|
||||
mysqli_close($conn);
|
||||
}
|
||||
}
|
||||
// test_php_errormsg(false);
|
||||
if (isset($php_errormsg)) {
|
||||
$error .= " - $php_errormsg";
|
||||
}
|
||||
return is_null($error) ? true : array($error_key => $error);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate server config
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_server($path, $values)
|
||||
{
|
||||
$result = array('Server' => '', 'Servers/1/user' => '', 'Servers/1/SignonSession' => '', 'Servers/1/SignonURL' => '');
|
||||
$error = false;
|
||||
if ($values['Servers/1/auth_type'] == 'config' && empty($values['Servers/1/user'])) {
|
||||
$result['Servers/1/user'] = PMA_lang('error_empty_user_for_config_auth');
|
||||
$error = true;
|
||||
}
|
||||
if ($values['Servers/1/auth_type'] == 'signon' && empty($values['Servers/1/SignonSession'])) {
|
||||
$result['Servers/1/SignonSession'] = PMA_lang('error_empty_signon_session');
|
||||
$error = true;
|
||||
}
|
||||
if ($values['Servers/1/auth_type'] == 'signon' && empty($values['Servers/1/SignonURL'])) {
|
||||
$result['Servers/1/SignonURL'] = PMA_lang('error_empty_signon_url');
|
||||
$error = true;
|
||||
}
|
||||
|
||||
if (!$error && $values['Servers/1/auth_type'] == 'config') {
|
||||
$password = $values['Servers/1/nopassword'] ? null : $values['Servers/1/password'];
|
||||
$test = test_db_connection($values['Servers/1/extension'], $values['Servers/1/connect_type'], $values['Servers/1/host'], $values['Servers/1/port'], $values['Servers/1/socket'], $values['Servers/1/user'], $password, 'Server');
|
||||
if ($test !== true) {
|
||||
$result = array_merge($result, $test);
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate pmadb config
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_pmadb($path, $values)
|
||||
{
|
||||
$tables = array('Servers/1/bookmarktable', 'Servers/1/relation', 'Servers/1/table_info', 'Servers/1/table_coords', 'Servers/1/pdf_pages', 'Servers/1/column_info', 'Servers/1/history', 'Servers/1/designer_coords');
|
||||
$result = array('Server_pmadb' => '', 'Servers/1/controluser' => '', 'Servers/1/controlpass' => '');
|
||||
$error = false;
|
||||
|
||||
if ($values['Servers/1/pmadb'] == '') {
|
||||
return $result;
|
||||
}
|
||||
|
||||
$result = array();
|
||||
if ($values['Servers/1/controluser'] == '') {
|
||||
$result['Servers/1/controluser'] = PMA_lang('error_empty_pmadb_user');
|
||||
$error = true;
|
||||
}
|
||||
if ($values['Servers/1/controlpass'] == '') {
|
||||
$result['Servers/1/controlpass'] = PMA_lang('error_empty_pmadb_password');
|
||||
$error = true;
|
||||
}
|
||||
if (!$error) {
|
||||
$test = test_db_connection($values['Servers/1/extension'], $values['Servers/1/connect_type'], $values['Servers/1/host'], $values['Servers/1/port'], $values['Servers/1/socket'], $values['Servers/1/controluser'], $values['Servers/1/controlpass'], 'Server_pmadb');
|
||||
if ($test !== true) {
|
||||
$result = array_merge($result, $test);
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validates regular expression
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_regex($path, $values)
|
||||
{
|
||||
$result = array($path => '');
|
||||
|
||||
if ($values[$path] == '') {
|
||||
return $result;
|
||||
}
|
||||
|
||||
test_php_errormsg();
|
||||
|
||||
$matches = array();
|
||||
preg_match($values[$path], '', $matches);
|
||||
ob_end_clean();
|
||||
|
||||
test_php_errormsg(false);
|
||||
|
||||
if (isset($php_errormsg)) {
|
||||
$error = preg_replace('/^preg_match\(\): /', '', $php_errormsg);
|
||||
return array($path => $error);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates TrustedProxies field
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_trusted_proxies($path, $values)
|
||||
{
|
||||
$result = array($path => array());
|
||||
|
||||
if (empty($values[$path])) {
|
||||
return $result;
|
||||
}
|
||||
|
||||
if (is_array($values[$path])) {
|
||||
// value already processed by FormDisplay::save
|
||||
$lines = array();
|
||||
foreach ($values[$path] as $ip => $v) {
|
||||
$lines[] = preg_match('/^-\d+$/', $ip)
|
||||
? $v
|
||||
: $ip . ': ' . $v;
|
||||
}
|
||||
} else {
|
||||
// AJAX validation
|
||||
$lines = explode("\n", $values[$path]);
|
||||
}
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
$matches = array();
|
||||
// we catch anything that may (or may not) be an IP
|
||||
if (!preg_match("/^(.+):(?:[ ]?)\\w+$/", $line, $matches)) {
|
||||
$result[$path][] = PMA_lang('error_incorrect_value') . ': ' . $line;
|
||||
continue;
|
||||
}
|
||||
// now let's check whether we really have an IP address
|
||||
if (filter_var($matches[1], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) === false
|
||||
&& filter_var($matches[1], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) {
|
||||
$ip = htmlspecialchars(trim($matches[1]));
|
||||
$result[$path][] = PMA_lang('error_incorrect_ip_address', $ip);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests integer value
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @param bool $allow_neg allow negative values
|
||||
* @param bool $allow_zero allow zero
|
||||
* @param int $max_value max allowed value
|
||||
* @param string $error_lang_key error message key in $str
|
||||
* @return string empty string if test is successful
|
||||
*/
|
||||
function test_number($path, $values, $allow_neg, $allow_zero, $max_value, $error_lang_key)
|
||||
{
|
||||
if ($values[$path] === '') {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (intval($values[$path]) != $values[$path] || (!$allow_neg && $values[$path] < 0) || (!$allow_zero && $values[$path] == 0) || $values[$path] > $max_value) {
|
||||
return PMA_lang($error_lang_key);
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates port number
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_port_number($path, $values)
|
||||
{
|
||||
return array($path => test_number($path, $values, false, false, 65536, 'error_incorrect_port'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates positive number
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_positive_number($path, $values)
|
||||
{
|
||||
return array($path => test_number($path, $values, false, false, PHP_INT_MAX, 'error_nan_p'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates non-negative number
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_non_negative_number($path, $values)
|
||||
{
|
||||
return array($path => test_number($path, $values, false, true, PHP_INT_MAX, 'error_nan_nneg'));
|
||||
}
|
||||
<?php
|
||||
/**
|
||||
* Various validation functions
|
||||
*
|
||||
* Validation function takes two argument: id for which it is called
|
||||
* and array of fields' values (usually values for entire formset, as defined
|
||||
* in forms.inc.php).
|
||||
* The function must always return an array with an error (or error array)
|
||||
* assigned to a form element (formset name or field path). Even if there are
|
||||
* no errors, key must be set with an empty value.
|
||||
*
|
||||
* Valdiation functions are assigned in $cfg_db['_validators'] (config_info.inc.php).
|
||||
*
|
||||
* @package phpMyAdmin-setup
|
||||
* @author Piotr Przybylski <piotrprz@gmail.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
/**
|
||||
* Runs validation $validator_id on values $values and returns error list.
|
||||
*
|
||||
* Return values:
|
||||
* o array, keys - field path or formset id, values - array of errors
|
||||
* when $isPostSource is true values is an empty array to allow for error list
|
||||
* cleanup in HTML documen
|
||||
* o false - when no validators match name(s) given by $validator_id
|
||||
*
|
||||
* @param string|array $validator_id
|
||||
* @param array $values
|
||||
* @param bool $isPostSource tells whether $values are directly from POST request
|
||||
* @return bool|array
|
||||
*/
|
||||
function validate($validator_id, &$values, $isPostSource)
|
||||
{
|
||||
// find validators
|
||||
$cf = ConfigFile::getInstance();
|
||||
$validator_id = (array) $validator_id;
|
||||
$validators = $cf->getDbEntry('_validators');
|
||||
$vids = array();
|
||||
foreach ($validator_id as &$vid) {
|
||||
$vid = $cf->getCanonicalPath($vid);
|
||||
if (isset($validators[$vid])) {
|
||||
$vids[] = $vid;
|
||||
}
|
||||
}
|
||||
if (empty($vids)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// create argument list with canonical paths and remember path mapping
|
||||
$arguments = array();
|
||||
$key_map = array();
|
||||
foreach ($values as $k => $v) {
|
||||
$k2 = $isPostSource ? str_replace('-', '/', $k) : $k;
|
||||
$k2 = strpos($k2, '/') ? $cf->getCanonicalPath($k2) : $k2;
|
||||
$key_map[$k2] = $k;
|
||||
$arguments[$k2] = $v;
|
||||
}
|
||||
|
||||
// validate
|
||||
$result = array();
|
||||
foreach ($vids as $vid) {
|
||||
$r = call_user_func($validators[$vid], $vid, $arguments);
|
||||
// merge results
|
||||
if (is_array($r)) {
|
||||
foreach ($r as $key => $error_list) {
|
||||
// skip empty values if $isPostSource is false
|
||||
if (!$isPostSource && empty($error_list)) {
|
||||
continue;
|
||||
}
|
||||
if (!isset($result[$key])) {
|
||||
$result[$key] = array();
|
||||
}
|
||||
$result[$key] = array_merge($result[$key], (array)$error_list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// restore original paths
|
||||
$new_result = array();
|
||||
foreach ($result as $k => $v) {
|
||||
$k2 = isset($key_map[$k]) ? $key_map[$k] : $k;
|
||||
$new_result[$k2] = $v;
|
||||
}
|
||||
return empty($new_result) ? true : $new_result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that $php_errormsg variable will be registered in case of an error
|
||||
* and enables output buffering (when $start = true).
|
||||
* Called with $start = false disables output buffering end restores
|
||||
* html_errors and track_errors.
|
||||
*
|
||||
* @param boolean $start
|
||||
*/
|
||||
function test_php_errormsg($start = true)
|
||||
{
|
||||
static $old_html_errors, $old_track_errors;
|
||||
if ($start) {
|
||||
$old_html_errors = ini_get('html_errors');
|
||||
$old_track_errors = ini_get('track_errors');
|
||||
ini_set('html_errors', false);
|
||||
ini_set('track_errors', true);
|
||||
ob_start();
|
||||
} else {
|
||||
ob_end_clean();
|
||||
ini_set('html_errors', $old_html_errors);
|
||||
ini_set('track_errors', $old_track_errors);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test database connection
|
||||
*
|
||||
* @param string $extension 'mysql' or 'mysqli'
|
||||
* @param string $connect_type 'tcp' or 'socket'
|
||||
* @param string $host
|
||||
* @param string $port
|
||||
* @param string $socket
|
||||
* @param string $user
|
||||
* @param string $pass
|
||||
* @param string $error_key
|
||||
* @return bool|array
|
||||
*/
|
||||
function test_db_connection($extension, $connect_type, $host, $port, $socket, $user, $pass = null, $error_key = 'Server')
|
||||
{
|
||||
// test_php_errormsg();
|
||||
$socket = empty($socket) || $connect_type == 'tcp' ? null : ':' . $socket;
|
||||
$port = empty($port) || $connect_type == 'socket' ? null : ':' . $port;
|
||||
$error = null;
|
||||
if ($extension == 'mysql') {
|
||||
$conn = @mysql_connect($host . $socket . $port, $user, $pass);
|
||||
if (!$conn) {
|
||||
$error = PMA_lang('error_connection');
|
||||
} else {
|
||||
mysql_close($conn);
|
||||
}
|
||||
} else {
|
||||
$conn = @mysqli_connect($host, $user, $pass, null, $port, $socket);
|
||||
if (!$conn) {
|
||||
$error = PMA_lang('error_connection');
|
||||
} else {
|
||||
mysqli_close($conn);
|
||||
}
|
||||
}
|
||||
// test_php_errormsg(false);
|
||||
if (isset($php_errormsg)) {
|
||||
$error .= " - $php_errormsg";
|
||||
}
|
||||
return is_null($error) ? true : array($error_key => $error);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate server config
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_server($path, $values)
|
||||
{
|
||||
$result = array('Server' => '', 'Servers/1/user' => '', 'Servers/1/SignonSession' => '', 'Servers/1/SignonURL' => '');
|
||||
$error = false;
|
||||
if ($values['Servers/1/auth_type'] == 'config' && empty($values['Servers/1/user'])) {
|
||||
$result['Servers/1/user'] = PMA_lang('error_empty_user_for_config_auth');
|
||||
$error = true;
|
||||
}
|
||||
if ($values['Servers/1/auth_type'] == 'signon' && empty($values['Servers/1/SignonSession'])) {
|
||||
$result['Servers/1/SignonSession'] = PMA_lang('error_empty_signon_session');
|
||||
$error = true;
|
||||
}
|
||||
if ($values['Servers/1/auth_type'] == 'signon' && empty($values['Servers/1/SignonURL'])) {
|
||||
$result['Servers/1/SignonURL'] = PMA_lang('error_empty_signon_url');
|
||||
$error = true;
|
||||
}
|
||||
|
||||
if (!$error && $values['Servers/1/auth_type'] == 'config') {
|
||||
$password = $values['Servers/1/nopassword'] ? null : $values['Servers/1/password'];
|
||||
$test = test_db_connection($values['Servers/1/extension'], $values['Servers/1/connect_type'], $values['Servers/1/host'], $values['Servers/1/port'], $values['Servers/1/socket'], $values['Servers/1/user'], $password, 'Server');
|
||||
if ($test !== true) {
|
||||
$result = array_merge($result, $test);
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate pmadb config
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_pmadb($path, $values)
|
||||
{
|
||||
$tables = array('Servers/1/bookmarktable', 'Servers/1/relation', 'Servers/1/table_info', 'Servers/1/table_coords', 'Servers/1/pdf_pages', 'Servers/1/column_info', 'Servers/1/history', 'Servers/1/designer_coords');
|
||||
$result = array('Server_pmadb' => '', 'Servers/1/controluser' => '', 'Servers/1/controlpass' => '');
|
||||
$error = false;
|
||||
|
||||
if ($values['Servers/1/pmadb'] == '') {
|
||||
return $result;
|
||||
}
|
||||
|
||||
$result = array();
|
||||
if ($values['Servers/1/controluser'] == '') {
|
||||
$result['Servers/1/controluser'] = PMA_lang('error_empty_pmadb_user');
|
||||
$error = true;
|
||||
}
|
||||
if ($values['Servers/1/controlpass'] == '') {
|
||||
$result['Servers/1/controlpass'] = PMA_lang('error_empty_pmadb_password');
|
||||
$error = true;
|
||||
}
|
||||
if (!$error) {
|
||||
$test = test_db_connection($values['Servers/1/extension'], $values['Servers/1/connect_type'], $values['Servers/1/host'], $values['Servers/1/port'], $values['Servers/1/socket'], $values['Servers/1/controluser'], $values['Servers/1/controlpass'], 'Server_pmadb');
|
||||
if ($test !== true) {
|
||||
$result = array_merge($result, $test);
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validates regular expression
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_regex($path, $values)
|
||||
{
|
||||
$result = array($path => '');
|
||||
|
||||
if ($values[$path] == '') {
|
||||
return $result;
|
||||
}
|
||||
|
||||
test_php_errormsg();
|
||||
|
||||
$matches = array();
|
||||
preg_match($values[$path], '', $matches);
|
||||
ob_end_clean();
|
||||
|
||||
test_php_errormsg(false);
|
||||
|
||||
if (isset($php_errormsg)) {
|
||||
$error = preg_replace('/^preg_match\(\): /', '', $php_errormsg);
|
||||
return array($path => $error);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates TrustedProxies field
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_trusted_proxies($path, $values)
|
||||
{
|
||||
$result = array($path => array());
|
||||
|
||||
if (empty($values[$path])) {
|
||||
return $result;
|
||||
}
|
||||
|
||||
if (is_array($values[$path])) {
|
||||
// value already processed by FormDisplay::save
|
||||
$lines = array();
|
||||
foreach ($values[$path] as $ip => $v) {
|
||||
$lines[] = preg_match('/^-\d+$/', $ip)
|
||||
? $v
|
||||
: $ip . ': ' . $v;
|
||||
}
|
||||
} else {
|
||||
// AJAX validation
|
||||
$lines = explode("\n", $values[$path]);
|
||||
}
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
$matches = array();
|
||||
// we catch anything that may (or may not) be an IP
|
||||
if (!preg_match("/^(.+):(?:[ ]?)\\w+$/", $line, $matches)) {
|
||||
$result[$path][] = PMA_lang('error_incorrect_value') . ': ' . $line;
|
||||
continue;
|
||||
}
|
||||
// now let's check whether we really have an IP address
|
||||
if (filter_var($matches[1], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) === false
|
||||
&& filter_var($matches[1], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) {
|
||||
$ip = htmlspecialchars(trim($matches[1]));
|
||||
$result[$path][] = PMA_lang('error_incorrect_ip_address', $ip);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests integer value
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @param bool $allow_neg allow negative values
|
||||
* @param bool $allow_zero allow zero
|
||||
* @param int $max_value max allowed value
|
||||
* @param string $error_lang_key error message key in $str
|
||||
* @return string empty string if test is successful
|
||||
*/
|
||||
function test_number($path, $values, $allow_neg, $allow_zero, $max_value, $error_lang_key)
|
||||
{
|
||||
if ($values[$path] === '') {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (intval($values[$path]) != $values[$path] || (!$allow_neg && $values[$path] < 0) || (!$allow_zero && $values[$path] == 0) || $values[$path] > $max_value) {
|
||||
return PMA_lang($error_lang_key);
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates port number
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_port_number($path, $values)
|
||||
{
|
||||
return array($path => test_number($path, $values, false, false, 65536, 'error_incorrect_port'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates positive number
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_positive_number($path, $values)
|
||||
{
|
||||
return array($path => test_number($path, $values, false, false, PHP_INT_MAX, 'error_nan_p'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates non-negative number
|
||||
*
|
||||
* @param string $path
|
||||
* @param array $values
|
||||
* @return array
|
||||
*/
|
||||
function validate_non_negative_number($path, $values)
|
||||
{
|
||||
return array($path => test_number($path, $values, false, true, PHP_INT_MAX, 'error_nan_nneg'));
|
||||
}
|
||||
?>
|
@@ -1,20 +1,20 @@
|
||||
<?php
|
||||
require './lib/common.inc.php';
|
||||
|
||||
$validators = array();
|
||||
require './setup/lib/validate.lib.php';
|
||||
|
||||
header('Content-type: application/json');
|
||||
|
||||
$vids = explode(',', filter_input(INPUT_POST, 'id'));
|
||||
$values = json_decode(filter_input(INPUT_POST, 'values'));
|
||||
if (!($values instanceof stdClass)) {
|
||||
die('Wrong data');
|
||||
}
|
||||
$values = (array)$values;
|
||||
$result = validate($vids, $values, true);
|
||||
if ($result === false) {
|
||||
$result = 'Wrong data or no validation for ' . $vids;
|
||||
}
|
||||
echo $result !== true ? json_encode($result) : '';
|
||||
<?php
|
||||
require './lib/common.inc.php';
|
||||
|
||||
$validators = array();
|
||||
require './setup/lib/validate.lib.php';
|
||||
|
||||
header('Content-type: application/json');
|
||||
|
||||
$vids = explode(',', filter_input(INPUT_POST, 'id'));
|
||||
$values = json_decode(filter_input(INPUT_POST, 'values'));
|
||||
if (!($values instanceof stdClass)) {
|
||||
die('Wrong data');
|
||||
}
|
||||
$values = (array)$values;
|
||||
$result = validate($vids, $values, true);
|
||||
if ($result === false) {
|
||||
$result = 'Wrong data or no validation for ' . $vids;
|
||||
}
|
||||
echo $result !== true ? json_encode($result) : '';
|
||||
?>
|
@@ -1,43 +1,43 @@
|
||||
<?php
|
||||
/* vim: expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for PMA_pow()
|
||||
*
|
||||
* @version $Id: PMA_pow_test.php 10140 2007-03-20 08:32:55Z cybot_tm $
|
||||
* @package phpMyAdmin-test
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'PHPUnit/Framework.php';
|
||||
|
||||
$match = array();
|
||||
preg_match('@^([0-9]{1,2})(?:.([0-9]{1,2})(?:.([0-9]{1,2}))?)?@',
|
||||
phpversion(), $match);
|
||||
if (isset($match) && ! empty($match[1])) {
|
||||
if (! isset($match[2])) {
|
||||
$match[2] = 0;
|
||||
}
|
||||
if (! isset($match[3])) {
|
||||
$match[3] = 0;
|
||||
}
|
||||
define('PMA_PHP_INT_VERSION',
|
||||
(int) sprintf('%d%02d%02d', $match[1], $match[2], $match[3]));
|
||||
} else {
|
||||
define('PMA_PHP_INT_VERSION', 0);
|
||||
}
|
||||
|
||||
$GLOBALS['charset'] = 'UTF-8';
|
||||
|
||||
require_once './libraries/string.lib.php';
|
||||
|
||||
class PMA_STR_sub_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testMultiByte()
|
||||
{
|
||||
$this->assertEquals('čšě',
|
||||
PMA_substr('čšěčščěš', 0, 3));
|
||||
}
|
||||
}
|
||||
<?php
|
||||
/* vim: expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for PMA_pow()
|
||||
*
|
||||
* @version $Id: PMA_pow_test.php 10140 2007-03-20 08:32:55Z cybot_tm $
|
||||
* @package phpMyAdmin-test
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'PHPUnit/Framework.php';
|
||||
|
||||
$match = array();
|
||||
preg_match('@^([0-9]{1,2})(?:.([0-9]{1,2})(?:.([0-9]{1,2}))?)?@',
|
||||
phpversion(), $match);
|
||||
if (isset($match) && ! empty($match[1])) {
|
||||
if (! isset($match[2])) {
|
||||
$match[2] = 0;
|
||||
}
|
||||
if (! isset($match[3])) {
|
||||
$match[3] = 0;
|
||||
}
|
||||
define('PMA_PHP_INT_VERSION',
|
||||
(int) sprintf('%d%02d%02d', $match[1], $match[2], $match[3]));
|
||||
} else {
|
||||
define('PMA_PHP_INT_VERSION', 0);
|
||||
}
|
||||
|
||||
$GLOBALS['charset'] = 'UTF-8';
|
||||
|
||||
require_once './libraries/string.lib.php';
|
||||
|
||||
class PMA_STR_sub_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testMultiByte()
|
||||
{
|
||||
$this->assertEquals('čšě',
|
||||
PMA_substr('čšěčščěš', 0, 3));
|
||||
}
|
||||
}
|
||||
?>
|
@@ -1,59 +1,59 @@
|
||||
<?php
|
||||
/* vim: expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Test for blowfish encryption.
|
||||
*
|
||||
* @package phpMyAdmin-test
|
||||
* @version $Id: PMA_escapeJsString_test.php 10237 2007-04-01 08:23:23Z cybot_tm $
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests core.
|
||||
*/
|
||||
require_once 'PHPUnit/Framework.php';
|
||||
|
||||
/**
|
||||
* Include to test.
|
||||
*/
|
||||
require_once './libraries/blowfish.php';
|
||||
|
||||
/**
|
||||
* Test java script escaping.
|
||||
*
|
||||
*/
|
||||
class PMA_blowfish_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testEncryptDecryptNumbers()
|
||||
{
|
||||
$secret = '$%ÄüfuDFRR';
|
||||
$string = '12345678';
|
||||
$this->assertEquals($string,
|
||||
PMA_blowfish_decrypt(PMA_blowfish_encrypt($string, $secret), $secret));
|
||||
}
|
||||
|
||||
public function testEncryptDecryptChars()
|
||||
{
|
||||
$secret = '$%ÄüfuDFRR';
|
||||
$string = 'abcDEF012!"§$%&/()=?`´"\',.;:-_#+*~öäüÖÄÜ^°²³';
|
||||
$this->assertEquals($string,
|
||||
PMA_blowfish_decrypt(PMA_blowfish_encrypt($string, $secret), $secret));
|
||||
}
|
||||
|
||||
public function testEncrypt()
|
||||
{
|
||||
$secret = '$%ÄüfuDFRR';
|
||||
$decrypted = '12345678';
|
||||
$encrypted = 'p0nz15awFT4=';
|
||||
$this->assertEquals($encrypted, PMA_blowfish_encrypt($decrypted, $secret));
|
||||
}
|
||||
|
||||
public function testDecrypt()
|
||||
{
|
||||
$secret = '$%ÄüfuDFRR';
|
||||
$encrypted = 'p0nz15awFT4=';
|
||||
$decrypted = '12345678';
|
||||
$this->assertEquals($decrypted, PMA_blowfish_decrypt($encrypted, $secret));
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/* vim: expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Test for blowfish encryption.
|
||||
*
|
||||
* @package phpMyAdmin-test
|
||||
* @version $Id: PMA_escapeJsString_test.php 10237 2007-04-01 08:23:23Z cybot_tm $
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests core.
|
||||
*/
|
||||
require_once 'PHPUnit/Framework.php';
|
||||
|
||||
/**
|
||||
* Include to test.
|
||||
*/
|
||||
require_once './libraries/blowfish.php';
|
||||
|
||||
/**
|
||||
* Test java script escaping.
|
||||
*
|
||||
*/
|
||||
class PMA_blowfish_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testEncryptDecryptNumbers()
|
||||
{
|
||||
$secret = '$%ÄüfuDFRR';
|
||||
$string = '12345678';
|
||||
$this->assertEquals($string,
|
||||
PMA_blowfish_decrypt(PMA_blowfish_encrypt($string, $secret), $secret));
|
||||
}
|
||||
|
||||
public function testEncryptDecryptChars()
|
||||
{
|
||||
$secret = '$%ÄüfuDFRR';
|
||||
$string = 'abcDEF012!"§$%&/()=?`´"\',.;:-_#+*~öäüÖÄÜ^°²³';
|
||||
$this->assertEquals($string,
|
||||
PMA_blowfish_decrypt(PMA_blowfish_encrypt($string, $secret), $secret));
|
||||
}
|
||||
|
||||
public function testEncrypt()
|
||||
{
|
||||
$secret = '$%ÄüfuDFRR';
|
||||
$decrypted = '12345678';
|
||||
$encrypted = 'p0nz15awFT4=';
|
||||
$this->assertEquals($encrypted, PMA_blowfish_encrypt($decrypted, $secret));
|
||||
}
|
||||
|
||||
public function testDecrypt()
|
||||
{
|
||||
$secret = '$%ÄüfuDFRR';
|
||||
$encrypted = 'p0nz15awFT4=';
|
||||
$decrypted = '12345678';
|
||||
$this->assertEquals($decrypted, PMA_blowfish_decrypt($encrypted, $secret));
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
@@ -1,158 +1,158 @@
|
||||
<?php
|
||||
/* vim: expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for PMA_generate_common_url()
|
||||
*
|
||||
* @version $Id: PMA_get_real_size_test.php 10146 2007-03-20 14:16:18Z cybot_tm $
|
||||
* @package phpMyAdmin-test
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'PHPUnit/Framework.php';
|
||||
require_once './libraries/url_generating.lib.php';
|
||||
|
||||
class PMA_generate_common_url_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
unset($_COOKIE['pma_lang'], $_COOKIE['pma_charset'], $_COOKIE['pma_collation_connection']);
|
||||
}
|
||||
|
||||
public function testOldStyle()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
|
||||
$expected = 'db=db'
|
||||
. htmlentities($separator) . 'table=table'
|
||||
. htmlentities($separator) . $expected;
|
||||
|
||||
$this->assertEquals($expected, PMA_generate_common_url('db', 'table'));
|
||||
}
|
||||
|
||||
public function testOldStyleDbOnly()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
|
||||
$expected = 'db=db'
|
||||
. htmlentities($separator) . $expected;
|
||||
|
||||
$this->assertEquals($expected, PMA_generate_common_url('db'));
|
||||
}
|
||||
|
||||
public function testNewStyle()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
|
||||
$expected = '?db=db'
|
||||
. htmlentities($separator) . 'table=table'
|
||||
. htmlentities($separator) . $expected;
|
||||
$params = array('db' => 'db', 'table' => 'table');
|
||||
$this->assertEquals($expected, PMA_generate_common_url($params));
|
||||
}
|
||||
|
||||
public function testOldStyleWithAlternateSeparator()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
|
||||
$expected = 'db=db'
|
||||
. htmlentities($separator) . 'table=table'
|
||||
. htmlentities($separator) . $expected;
|
||||
$this->assertEquals($expected, PMA_generate_common_url('db', 'table', '&'));
|
||||
}
|
||||
|
||||
public function testOldStyleWithAlternateSeparatorDbOnly()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
|
||||
$expected = 'db=db'
|
||||
. htmlentities($separator) . $expected;
|
||||
$this->assertEquals($expected, PMA_generate_common_url('db', '', '&'));
|
||||
}
|
||||
|
||||
public function testDefault()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
$this->assertEquals($expected, PMA_generate_common_url());
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/* vim: expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for PMA_generate_common_url()
|
||||
*
|
||||
* @version $Id: PMA_get_real_size_test.php 10146 2007-03-20 14:16:18Z cybot_tm $
|
||||
* @package phpMyAdmin-test
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'PHPUnit/Framework.php';
|
||||
require_once './libraries/url_generating.lib.php';
|
||||
|
||||
class PMA_generate_common_url_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
unset($_COOKIE['pma_lang'], $_COOKIE['pma_charset'], $_COOKIE['pma_collation_connection']);
|
||||
}
|
||||
|
||||
public function testOldStyle()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
|
||||
$expected = 'db=db'
|
||||
. htmlentities($separator) . 'table=table'
|
||||
. htmlentities($separator) . $expected;
|
||||
|
||||
$this->assertEquals($expected, PMA_generate_common_url('db', 'table'));
|
||||
}
|
||||
|
||||
public function testOldStyleDbOnly()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
|
||||
$expected = 'db=db'
|
||||
. htmlentities($separator) . $expected;
|
||||
|
||||
$this->assertEquals($expected, PMA_generate_common_url('db'));
|
||||
}
|
||||
|
||||
public function testNewStyle()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
|
||||
$expected = '?db=db'
|
||||
. htmlentities($separator) . 'table=table'
|
||||
. htmlentities($separator) . $expected;
|
||||
$params = array('db' => 'db', 'table' => 'table');
|
||||
$this->assertEquals($expected, PMA_generate_common_url($params));
|
||||
}
|
||||
|
||||
public function testOldStyleWithAlternateSeparator()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
|
||||
$expected = 'db=db'
|
||||
. htmlentities($separator) . 'table=table'
|
||||
. htmlentities($separator) . $expected;
|
||||
$this->assertEquals($expected, PMA_generate_common_url('db', 'table', '&'));
|
||||
}
|
||||
|
||||
public function testOldStyleWithAlternateSeparatorDbOnly()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
|
||||
$expected = 'db=db'
|
||||
. htmlentities($separator) . $expected;
|
||||
$this->assertEquals($expected, PMA_generate_common_url('db', '', '&'));
|
||||
}
|
||||
|
||||
public function testDefault()
|
||||
{
|
||||
$GLOBALS['server'] = 'x';
|
||||
$GLOBALS['lang'] = 'x';
|
||||
$GLOBALS['convcharset'] = 'x';
|
||||
$GLOBALS['collation_connection'] = 'x';
|
||||
$_SESSION[' PMA_token '] = 'x';
|
||||
$GLOBALS['cfg']['ServerDefault'] = 'y';
|
||||
|
||||
$separator = PMA_get_arg_separator();
|
||||
$expected = 'server=x' . htmlentities($separator)
|
||||
. 'lang=x' . htmlentities($separator)
|
||||
. 'convcharset=x' . htmlentities($separator)
|
||||
. 'collation_connection=x' . htmlentities($separator)
|
||||
. 'token=x'
|
||||
;
|
||||
$this->assertEquals($expected, PMA_generate_common_url());
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@@ -1,112 +1,112 @@
|
||||
<?php
|
||||
/* vim: expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for PMA_pow()
|
||||
*
|
||||
* @version $Id: PMA_pow_test.php 10140 2007-03-20 08:32:55Z cybot_tm $
|
||||
* @package phpMyAdmin-test
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'PHPUnit/Framework.php';
|
||||
require_once './libraries/core.lib.php';
|
||||
|
||||
class PMA_isValid_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testVarNotSetAfterTest()
|
||||
{
|
||||
PMA_isValid($var);
|
||||
$this->assertFalse(isset($var));
|
||||
}
|
||||
public function testNotSet()
|
||||
{
|
||||
$this->assertFalse(PMA_isValid($var));
|
||||
}
|
||||
public function testEmptyString()
|
||||
{
|
||||
$var = '';
|
||||
$this->assertFalse(PMA_isValid($var));
|
||||
}
|
||||
public function testNotEmptyString()
|
||||
{
|
||||
$var = '0';
|
||||
$this->assertTrue(PMA_isValid($var));
|
||||
}
|
||||
public function testZero()
|
||||
{
|
||||
$var = 0;
|
||||
$this->assertTrue(PMA_isValid($var));
|
||||
}
|
||||
public function testNullFail()
|
||||
{
|
||||
$var = null;
|
||||
$this->assertFalse(PMA_isValid($var));
|
||||
}
|
||||
public function testNotSetArray()
|
||||
{
|
||||
$this->assertFalse(PMA_isValid($array['x']));
|
||||
}
|
||||
public function testScalarString()
|
||||
{
|
||||
$var = 'string';
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testScalarInt()
|
||||
{
|
||||
$var = 1;
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testScalarFloat()
|
||||
{
|
||||
$var = 1.1;
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testScalarBool()
|
||||
{
|
||||
$var = true;
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testNotScalarArray()
|
||||
{
|
||||
$var = array('test');
|
||||
$this->assertFalse(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testNotScalarNull()
|
||||
{
|
||||
$var = null;
|
||||
$this->assertFalse(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testNumericInt()
|
||||
{
|
||||
$var = 1;
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
public function testNumericFloat()
|
||||
{
|
||||
$var = 1.1;
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
public function testNumericZero()
|
||||
{
|
||||
$var = 0;
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
public function testNumericString()
|
||||
{
|
||||
$var = '+0.1';
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
public function testValueInArray()
|
||||
{
|
||||
$var = 'a';
|
||||
$this->assertTrue(PMA_isValid($var, array('a', 'b', )));
|
||||
}
|
||||
public function testValueNotInArray()
|
||||
{
|
||||
$var = 'c';
|
||||
$this->assertFalse(PMA_isValid($var, array('a', 'b', )));
|
||||
}
|
||||
}
|
||||
<?php
|
||||
/* vim: expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for PMA_pow()
|
||||
*
|
||||
* @version $Id: PMA_pow_test.php 10140 2007-03-20 08:32:55Z cybot_tm $
|
||||
* @package phpMyAdmin-test
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'PHPUnit/Framework.php';
|
||||
require_once './libraries/core.lib.php';
|
||||
|
||||
class PMA_isValid_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testVarNotSetAfterTest()
|
||||
{
|
||||
PMA_isValid($var);
|
||||
$this->assertFalse(isset($var));
|
||||
}
|
||||
public function testNotSet()
|
||||
{
|
||||
$this->assertFalse(PMA_isValid($var));
|
||||
}
|
||||
public function testEmptyString()
|
||||
{
|
||||
$var = '';
|
||||
$this->assertFalse(PMA_isValid($var));
|
||||
}
|
||||
public function testNotEmptyString()
|
||||
{
|
||||
$var = '0';
|
||||
$this->assertTrue(PMA_isValid($var));
|
||||
}
|
||||
public function testZero()
|
||||
{
|
||||
$var = 0;
|
||||
$this->assertTrue(PMA_isValid($var));
|
||||
}
|
||||
public function testNullFail()
|
||||
{
|
||||
$var = null;
|
||||
$this->assertFalse(PMA_isValid($var));
|
||||
}
|
||||
public function testNotSetArray()
|
||||
{
|
||||
$this->assertFalse(PMA_isValid($array['x']));
|
||||
}
|
||||
public function testScalarString()
|
||||
{
|
||||
$var = 'string';
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testScalarInt()
|
||||
{
|
||||
$var = 1;
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testScalarFloat()
|
||||
{
|
||||
$var = 1.1;
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testScalarBool()
|
||||
{
|
||||
$var = true;
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testNotScalarArray()
|
||||
{
|
||||
$var = array('test');
|
||||
$this->assertFalse(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testNotScalarNull()
|
||||
{
|
||||
$var = null;
|
||||
$this->assertFalse(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
public function testNumericInt()
|
||||
{
|
||||
$var = 1;
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
public function testNumericFloat()
|
||||
{
|
||||
$var = 1.1;
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
public function testNumericZero()
|
||||
{
|
||||
$var = 0;
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
public function testNumericString()
|
||||
{
|
||||
$var = '+0.1';
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
public function testValueInArray()
|
||||
{
|
||||
$var = 'a';
|
||||
$this->assertTrue(PMA_isValid($var, array('a', 'b', )));
|
||||
}
|
||||
public function testValueNotInArray()
|
||||
{
|
||||
$var = 'c';
|
||||
$this->assertFalse(PMA_isValid($var, array('a', 'b', )));
|
||||
}
|
||||
}
|
||||
?>
|
@@ -1,48 +1,48 @@
|
||||
<?php
|
||||
/* vim: expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for PMA_sanitize()
|
||||
*
|
||||
* @version $Id: PMA_sanitize_test.php 10140 2007-03-20 08:32:55Z cybot_tm $
|
||||
* @package phpMyAdmin-test
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'PHPUnit/Framework.php';
|
||||
require_once './libraries/transformations.lib.php';
|
||||
|
||||
class PMA_transformation_getOptions_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testDefault()
|
||||
{
|
||||
$this->assertEquals(array('option1 ', ' option2 '),
|
||||
PMA_transformation_getOptions("option1 , option2 "));
|
||||
}
|
||||
|
||||
public function testQuoted()
|
||||
{
|
||||
$this->assertEquals(array('option1', ' option2'),
|
||||
PMA_transformation_getOptions("'option1' ,' option2' "));
|
||||
}
|
||||
|
||||
public function testComma()
|
||||
{
|
||||
$this->assertEquals(array('2,3', ' ,, option ,,'),
|
||||
PMA_transformation_getOptions("'2,3' ,' ,, option ,,' "));
|
||||
}
|
||||
|
||||
public function testEmptyOptions()
|
||||
{
|
||||
$this->assertEquals(array('', '', ''),
|
||||
PMA_transformation_getOptions("'',,"));
|
||||
}
|
||||
|
||||
public function testEmpty()
|
||||
{
|
||||
$this->assertEquals(array(),
|
||||
PMA_transformation_getOptions(''));
|
||||
}
|
||||
}
|
||||
<?php
|
||||
/* vim: expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for PMA_sanitize()
|
||||
*
|
||||
* @version $Id: PMA_sanitize_test.php 10140 2007-03-20 08:32:55Z cybot_tm $
|
||||
* @package phpMyAdmin-test
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'PHPUnit/Framework.php';
|
||||
require_once './libraries/transformations.lib.php';
|
||||
|
||||
class PMA_transformation_getOptions_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testDefault()
|
||||
{
|
||||
$this->assertEquals(array('option1 ', ' option2 '),
|
||||
PMA_transformation_getOptions("option1 , option2 "));
|
||||
}
|
||||
|
||||
public function testQuoted()
|
||||
{
|
||||
$this->assertEquals(array('option1', ' option2'),
|
||||
PMA_transformation_getOptions("'option1' ,' option2' "));
|
||||
}
|
||||
|
||||
public function testComma()
|
||||
{
|
||||
$this->assertEquals(array('2,3', ' ,, option ,,'),
|
||||
PMA_transformation_getOptions("'2,3' ,' ,, option ,,' "));
|
||||
}
|
||||
|
||||
public function testEmptyOptions()
|
||||
{
|
||||
$this->assertEquals(array('', '', ''),
|
||||
PMA_transformation_getOptions("'',,"));
|
||||
}
|
||||
|
||||
public function testEmpty()
|
||||
{
|
||||
$this->assertEquals(array(),
|
||||
PMA_transformation_getOptions(''));
|
||||
}
|
||||
}
|
||||
?>
|
94
webapp.php
94
webapp.php
@@ -1,47 +1,47 @@
|
||||
<?php
|
||||
/**
|
||||
* generate an WebApp file for Prism / WebRunner
|
||||
*
|
||||
* @see http://wiki.mozilla.org/Prism
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
define('PMA_MINIMUM_COMMON', true);
|
||||
require_once './libraries/common.inc.php';
|
||||
require_once './libraries/zip.lib.php';
|
||||
|
||||
// ini file
|
||||
$parameters = array(
|
||||
'id' => 'phpMyAdmin@' . $_SERVER['HTTP_HOST'],
|
||||
'uri' => $_SESSION['PMA_Config']->get('PmaAbsoluteUri'),
|
||||
'status' => 'yes',
|
||||
'location' => 'no',
|
||||
'sidebar' => 'no',
|
||||
'navigation' => 'no',
|
||||
'icon' => 'phpMyAdmin',
|
||||
);
|
||||
|
||||
// dom sript file
|
||||
// none need yet
|
||||
|
||||
// icon
|
||||
$icon = 'favicon.ico';
|
||||
|
||||
// name
|
||||
$name = 'phpMyAdmin.webapp';
|
||||
|
||||
$ini_file = "[Parameters]\n";
|
||||
foreach ($parameters as $key => $value) {
|
||||
$ini_file .= $key . '=' . $value . "\n";
|
||||
}
|
||||
|
||||
$zip = new zipfile;
|
||||
$zip->addFile($ini_file, 'webapp.ini');
|
||||
$zip->addFile(file_get_contents($icon), 'phpMyAdmin.ico');
|
||||
|
||||
header('Content-Type: application/webapp');
|
||||
header('Content-Disposition: attachment; filename="' . $name . '"');
|
||||
echo $zip->file();
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* generate an WebApp file for Prism / WebRunner
|
||||
*
|
||||
* @see http://wiki.mozilla.org/Prism
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
define('PMA_MINIMUM_COMMON', true);
|
||||
require_once './libraries/common.inc.php';
|
||||
require_once './libraries/zip.lib.php';
|
||||
|
||||
// ini file
|
||||
$parameters = array(
|
||||
'id' => 'phpMyAdmin@' . $_SERVER['HTTP_HOST'],
|
||||
'uri' => $_SESSION['PMA_Config']->get('PmaAbsoluteUri'),
|
||||
'status' => 'yes',
|
||||
'location' => 'no',
|
||||
'sidebar' => 'no',
|
||||
'navigation' => 'no',
|
||||
'icon' => 'phpMyAdmin',
|
||||
);
|
||||
|
||||
// dom sript file
|
||||
// none need yet
|
||||
|
||||
// icon
|
||||
$icon = 'favicon.ico';
|
||||
|
||||
// name
|
||||
$name = 'phpMyAdmin.webapp';
|
||||
|
||||
$ini_file = "[Parameters]\n";
|
||||
foreach ($parameters as $key => $value) {
|
||||
$ini_file .= $key . '=' . $value . "\n";
|
||||
}
|
||||
|
||||
$zip = new zipfile;
|
||||
$zip->addFile($ini_file, 'webapp.ini');
|
||||
$zip->addFile(file_get_contents($icon), 'phpMyAdmin.ico');
|
||||
|
||||
header('Content-Type: application/webapp');
|
||||
header('Content-Disposition: attachment; filename="' . $name . '"');
|
||||
echo $zip->file();
|
||||
?>
|
||||
|
Reference in New Issue
Block a user