Merge branch 'master' into patch-9

This commit is contained in:
Eric Schultz
2017-03-20 20:39:07 -05:00
committed by GitHub
15 changed files with 233 additions and 21 deletions
+3 -2
View File
@@ -36,7 +36,7 @@ function status_indicator() {
<script>
var ask1 = <?=$confirm['stop'] ? 'true' : 'false'?>;
var ask2 = <?=$confirm['down'] ? 'true' : 'false'?>;
var ctrl = "<span class='status'><a style='cursor:pointer' title='Toggle reads/writes display' onclick='toggle_diskio();return false'><i class='toggle fa'></i></a></span>";
var ctrl = "<span class='status'><a style='cursor:pointer' class='tooltip_diskio' title='Toggle reads/writes display' onclick='toggle_diskio();return false'><i class='toggle fa'></i></a></span>";
var rbtn = "<span class='status vhshift hshift'><input type='button' value='Refresh' onclick='refresh()'></span>";
function tab0() {
@@ -102,7 +102,7 @@ parity_status();
<?if ($tabbed):?>
$('.tabs').append(ctrl);
<?else:?>
$('div[id=title]:not(":last")').each(function(){$(this).append(ctrl);});
$('div[id=title]:not(":last, .disable_diskio")').each(function(){$(this).append(ctrl);});
<?endif;?>
<?if ($update):?>
<?if ($tabbed):?>
@@ -138,6 +138,7 @@ $('.tabs').append(rbtn);
$('div[id=title]:first').append(rbtn);
<?endif;?>
<?endif;?>
$('.tooltip_diskio').tooltipster({delay:100, trigger:'custom', triggerOpen:{mouseenter: true}, triggerClose:{click:false,scroll:true,mouseleave:true}});
toggle_diskio(true);
</script>
<form name="arrayOps" method="POST" action="/update.htm" target="progressFrame">
+1 -1
View File
@@ -53,7 +53,7 @@ and configuration files are collected:
<br>copy the current *syslog* file and any previous existing *syslog* files.
+ *System*
<br>save output of the following commands:
<br>lsscsi, lspci, free, lsof, ps, ethtool & ifconfig.
<br>lsscsi, lspci, lsusb, free, lsof, ps, ethtool & ifconfig.
<br>display of iommu groups.
<br>display of command line parameters (e.g. pcie acs override, pci stubbing, etc).
<br>save system variables.
+15
View File
@@ -59,6 +59,20 @@ Export:
> This setting determines whether the share is visible and/or accessible. The 'Yes (hidden)' setting
> will *hide* the share from *browsing* but is still accessible if you know the share name.
<?if ($name !== 'flash'):?>
Enhanced OS X interoperability:
: <select name="shareFruit" size="1">
<?=mk_option($sec[$name]['fruit'], "no", "No");?>
<?=mk_option($sec[$name]['fruit'], "yes", "Yes");?>
</select>
> When set to 'Yes' provides enhanced compatibility with Apple SMB clients, resulting, for example, in faster
> Finder browsing. This may cause some issues with Windows clients, however. Please also refer to
> the [VFS_FRUIT MAN PAGE](https://www.mankier.com/8/vfs_fruit).
<?endif;?>
Security:
: <select name="shareSecurity" size="1">
<?=mk_option($sec[$name]['security'], "public", "Public");?>
@@ -161,6 +175,7 @@ function initDropdown2(reset) {
function cloneSMB() {
var data = {}, copied = false;
data.shareExport = '<?=addslashes(htmlspecialchars($sec[$name]['export']))?>';
data.shareFruit = '<?=addslashes(htmlspecialchars($sec[$name]['fruit']))?>';
data.shareSecurity = '<?=addslashes(htmlspecialchars($sec[$name]['security']))?>';
data.changeShareSecurity = 'Apply';
$('select#s4 option').map(function() {
+7 -2
View File
@@ -21,9 +21,14 @@ Title="System Devices"
<p class="notice">Warning: Your system has booted with the PCIe ACS Override setting enabled. The below list doesn't not reflect the way IOMMU would naturally group devices. To see natural IOMMU groups for your hardware, go to the <b><a href="/Settings/VMSettings">VM Settings</a></b> page and set the <b>PCIe ACS Override</b> setting to <b>No</b>.</p>
<?endif;?>
<pre><?
$iommu_groups = shell_exec('for iommu_group in $(ls /sys/kernel/iommu_groups/ -1 | sort -n);do echo "IOMMU group $iommu_group"; for device in $(ls -1 "/sys/kernel/iommu_groups/$iommu_group"/devices/); do echo -n $\'\t\';lspci -nns "$device"; done; done');
$iommu_groups = shell_exec('for iommu_group in $(ls /sys/kernel/iommu_groups/ -1 | sort -n);do echo "IOMMU group $iommu_group"; for device in $(ls -1 "/sys/kernel/iommu_groups/$iommu_group"/devices/); do echo -n $\'\t\';lspci -ns "$device" | awk \'BEGIN{ORS=" "}{ print "["$3"]" }\';lspci -s "$device"; done; done');
if (empty($iommu_groups)) {
$iommu_groups = shell_exec("lspci -nn");
$iommu_groups = explode("\n", shell_exec("lspci -n | awk '{ print \"[\"\$3\"]\" }'"));
$i = 0;
foreach (explode("\n", shell_exec("lspci")) as $strDesc) {
$iommu_groups[$i++] .= " $strDesc";
}
$iommu_groups = implode("\n", $iommu_groups);
}
echo $iommu_groups;
?></pre>
+1 -1
View File
@@ -70,7 +70,7 @@ $(function(){
maxfiles:1,
maxfilesize:95, // KB
url:'/webGui/include/FileUpload.php',
data:{path:path},
data:{path:path,"csrf_token":"<?=$var['csrf_token']?>"},
beforeEach:function(file) {
if (!file.type.match(/^image\/png/)) {
swal({title:"Warning",text:"Only PNG images are allowed!",type:"warning"});
+1
View File
@@ -71,6 +71,7 @@ $(function(){
maxfiles:1,
maxfilesize:95, // KB
url:'/webGui/include/FileUpload.php',
data:{"csrf_token":"<?=$var['csrf_token']?>"},
beforeEach:function(file) {
if (!file.type.match(/^image\/png/)) {
swal({title:"Warning",text:"Only PNG images are allowed!",type:"warning"});
+3 -3
View File
@@ -3,9 +3,9 @@
<!DOCTYPE PLUGIN [
<!ENTITY name "dynamix">
<!ENTITY author "Bergware">
<!ENTITY branch "6.3">
<!ENTITY version "2017.01.27"> <!-- Intended new version of Dynamix webGUI -->
<!ENTITY unRAID "6.3.0-rc9"> <!-- Change to new unRAID version when issued together -->
<!ENTITY branch "master">
<!ENTITY version "2017.02.16"> <!-- Intended new version of Dynamix webGUI -->
<!ENTITY unRAID "6.3.2"> <!-- Change to new unRAID version when issued together -->
<!ENTITY pluginURL "https://raw.github.com/limetech/webgui/&branch;/plugins/&name;/&name;.plg">
]>
+1 -1
View File
@@ -86,7 +86,7 @@ case 'disk':
$row5 = array_fill(0,31,'<td></td>'); my_insert($row5[0],'Heat alarm');
$row6 = array_fill(0,31,'<td></td>'); my_insert($row6[0],'SMART status');
$row7 = array_fill(0,31,'<td></td>'); my_insert($row7[0],'Utilization');
$funcRenderRow = function($n,$disk) use (&$row1,&$row2,&$row3,&$row4,&$row5,&$row6,&$row7,$path,$_POST) {
$funcRenderRow = function($n,$disk) use (&$row1,&$row2,&$row3,&$row4,&$row5,&$row6,&$row7,$path) {
if ($n>0) {
$state = $disk['color'];
switch ($state) {
@@ -134,15 +134,21 @@ function openBox(cmd,title,height,width,load) {
var options = load ? {modal:true,onClose:function(){location=location;}} : {modal:true};
Shadowbox.open({content:run, player:'iframe', title:title, height:height, width:width, options:options});
}
function openWindow(cmd,title,height,width) {
// open regular window (run in background)
var window_name = title.replace(/ /g,"_");
var form_html =
'<form action="/logging.htm" method="post" target="' + window_name + '">' +
'<input type="hidden" name="csrf_token" value="<?=$var['csrf_token']?>" />' +
'<input type="hidden" name="title" value="' + title + '" />' +
'<input type="hidden" name="cmd" value="' + cmd + '" />' +
'</form>';
'<input type="hidden" name="title" value="' + title + '" />';
var vars = cmd.split('&');
form_html += '<input type="hidden" name="cmd" value="' + vars[0] + '" />';
for (var i = 1; i < vars.length; i++) {
var pair = vars[i].split('=');
form_html += '<input type="hidden" name="' + pair[0] + '" value="' + pair[1] + '" />';
}
form_html += '</form>';
var form = $(form_html);
$('body').append(form);
var top = (screen.height-height)/2;
+5 -1
View File
@@ -76,7 +76,9 @@ function device_desc(&$disk) {
}
function assignment(&$disk) {
global $var, $devs;
$out = "<form method='POST' name=\"{$disk['name']}Form\" action='/update.htm' target='progressFrame'><input type='hidden' name='changeDevice' value='Apply'>";
$out = "<form method='POST' name=\"{$disk['name']}Form\" action='/update.htm' target='progressFrame'>";
$out .= "<input type='hidden' name='csrf_token' value='{$var['csrf_token']}'>";
$out .= "<input type='hidden' name='changeDevice' value='Apply'>";
$out .= "<select class=\"slot\" name=\"slotId.{$disk['idx']}\" onChange=\"{$disk['name']}Form.submit()\">";
$empty = ($disk['idSb']!='' ? 'no device' : 'unassigned');
if ($disk['id']!='') {
@@ -267,6 +269,7 @@ function array_slots() {
$min = max($var['sbNumDisks'], 3);
$max = $var['MAX_ARRAYSZ'];
$out = "<form method='POST' action='/update.htm' target='progressFrame'>";
$out .= "<input type='hidden' name='csrf_token' value='{$var['csrf_token']}'>";
$out .= "<input type='hidden' name='changeSlots' value='Apply'>";
$out .= "<select class='auto' name='SYS_ARRAY_SLOTS' onChange='this.form.submit()'>";
for ($n=$min; $n<=$max; $n++) {
@@ -281,6 +284,7 @@ function cache_slots() {
$min = $var['cacheSbNumDisks'];
$max = $var['MAX_CACHESZ'];
$out = "<form method='POST' action='/update.htm' target='progressFrame'>";
$out .= "<input type='hidden' name='csrf_token' value='{$var['csrf_token']}'>";
$out .= "<input type='hidden' name='changeSlots' value='Apply'>";
$out .= "<select class='auto' name='SYS_CACHE_SLOTS' onChange='this.form.submit()'>";
for ($n=$min; $n<=$max; $n++) {
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -76,6 +76,7 @@ foreach (glob("$get/*.ini") as $file) {
// individual commands execution (suppress errors)
exec("lsscsi -vgl 2>/dev/null|todos >".escapeshellarg("/$diag/system/lsscsi.txt"));
exec("lspci -knn 2>/dev/null|todos >".escapeshellarg("/$diag/system/lspci.txt"));
exec("lsusb 2>/dev/null|todos >".escapeshellarg("/$diag/system/lsusb.txt"));
exec("free -mt 2>/dev/null|todos >".escapeshellarg("/$diag/system/memory.txt"));
exec("ps -ef 2>/dev/null|todos >".escapeshellarg("/$diag/system/ps.txt"));
exec("lsof -Pni 2>/dev/null|todos >".escapeshellarg("/$diag/system/lsof.txt"));
@@ -194,7 +195,7 @@ foreach ($devices as $device) {
break;
}
}
exec("smartctl -a ".escapeshellarg($type)." ".escapeshellarg("/dev/$dev")." 2>/dev/null|todos >".escapeshellarg("/$diag/smart/$name-$date.txt"));
exec("smartctl -a $type ".escapeshellarg("/dev/$dev")." 2>/dev/null|todos >".escapeshellarg("/$diag/smart/$name-$date.txt"));
}
// create cache pool information
if (is_dir('/mnt/cache') && $disks['cache']['fsType']=='btrfs') {
+57 -1
View File
@@ -171,4 +171,60 @@ div.icon-folder{background:url('../images/file-types.png') -32px -144px;width:16
div.icon-hlp{background:url('../images/file-types.png') -48px -144px;width:16px;height:16px;}
div.icon-tex{background:url('../images/file-types.png') -64px -144px;width:16px;height:16px;}
div.icon-sxi{background:url('../images/file-types.png') -80px -144px;width:16px;height:16px;}
div.icon-eml{background:url('../images/file-types.png') -96px -144px;width:16px;height:16px;}
div.icon-eml{background:url('../images/file-types.png') -96px -144px;width:16px;height:16px;}
.tooltipster-fall,.tooltipster-grow.tooltipster-show{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}
.tooltipster-base{display:flex;pointer-events:none;position:absolute}
.tooltipster-box{flex:1 1 auto}
.tooltipster-content{box-sizing:border-box;max-height:100%;max-width:100%;overflow:auto}
.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}
.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}
.tooltipster-fade.tooltipster-show{opacity:1}
.tooltipster-grow{-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}
.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}
.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}
.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,1);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-moz-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-ms-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-o-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);transition-timing-function:cubic-bezier(.23,.635,.495,2.4)}
.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}
.tooltipster-fall.tooltipster-initial{top:0!important}
.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0!important;opacity:0}
.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}
.tooltipster-slide.tooltipster-initial{left:-40px!important}
.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0!important;opacity:0}
@keyframes tooltipster-fading{0%{opacity:0}100%{opacity:1}}
.tooltipster-update-fade{animation:tooltipster-fading .4s}
@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}100%{transform:rotate(0)}}
.tooltipster-update-rotate{animation:tooltipster-rotating .6s}
@keyframes tooltipster-scaling{50%{transform:scale(1.1)}100%{transform:scale(1)}}
.tooltipster-update-scale{animation:tooltipster-scaling .6s}
/*.tooltipster-sidetip .tooltipster-box{background:#565656;border:2px solid #000;border-radius:4px}*/
.tooltipster-sidetip .tooltipster-box{border-radius:5px;border:none;border-bottom:3px solid #478406;background: -webkit-radial-gradient(#303030,#000000);background: linear-gradient(#303030,#000000)}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}
.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}
.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}
/*.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}*/
.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:7px}
/*.tooltipster-sidetip .tooltipster-content{color:#fff;line-height:18px;padding:6px 14px}*/
.tooltipster-sidetip .tooltipster-content{color:#fff;padding:8px 16px}
.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:20px;margin-top:-10px;left:0;top:0;width:10px}
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:0;height:10px;margin-left:-10px;width:20px}
.tooltipster-sidetip .tooltipster-arrow-background,.tooltipster-sidetip .tooltipster-arrow-border{height:0;position:absolute;width:0}
/*.tooltipster-sidetip .tooltipster-arrow-background{border:10px solid transparent}*/
.tooltipster-sidetip .tooltipster-arrow-background{display:none}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#565656;left:0;top:3px}
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#565656;left:-3px;top:0}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:#565656;left:3px;top:0}
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#565656;left:0;top:-3px}
.tooltipster-sidetip .tooltipster-arrow-border{border:10px solid transparent;left:0;top:0}
/*.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#000}*/
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#2a2a2a}
/*.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#000}*/
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#2a2a2a}
/*.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#000}*/
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#2a2a2a}
/*.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#000}*/
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#478406}
.tooltipster-sidetip .tooltipster-arrow-uncropped{position:relative}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-10px}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-10px}
+57 -1
View File
@@ -171,4 +171,60 @@ div.icon-folder{background:url('../images/file-types.png') -32px -144px;width:16
div.icon-hlp{background:url('../images/file-types.png') -48px -144px;width:16px;height:16px;}
div.icon-tex{background:url('../images/file-types.png') -64px -144px;width:16px;height:16px;}
div.icon-sxi{background:url('../images/file-types.png') -80px -144px;width:16px;height:16px;}
div.icon-eml{background:url('../images/file-types.png') -96px -144px;width:16px;height:16px;}
div.icon-eml{background:url('../images/file-types.png') -96px -144px;width:16px;height:16px;}
.tooltipster-fall,.tooltipster-grow.tooltipster-show{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}
.tooltipster-base{display:flex;pointer-events:none;position:absolute}
.tooltipster-box{flex:1 1 auto}
.tooltipster-content{box-sizing:border-box;max-height:100%;max-width:100%;overflow:auto}
.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}
.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}
.tooltipster-fade.tooltipster-show{opacity:1}
.tooltipster-grow{-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}
.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}
.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}
.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,1);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-moz-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-ms-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-o-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);transition-timing-function:cubic-bezier(.23,.635,.495,2.4)}
.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}
.tooltipster-fall.tooltipster-initial{top:0!important}
.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0!important;opacity:0}
.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}
.tooltipster-slide.tooltipster-initial{left:-40px!important}
.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0!important;opacity:0}
@keyframes tooltipster-fading{0%{opacity:0}100%{opacity:1}}
.tooltipster-update-fade{animation:tooltipster-fading .4s}
@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}100%{transform:rotate(0)}}
.tooltipster-update-rotate{animation:tooltipster-rotating .6s}
@keyframes tooltipster-scaling{50%{transform:scale(1.1)}100%{transform:scale(1)}}
.tooltipster-update-scale{animation:tooltipster-scaling .6s}
/*.tooltipster-sidetip .tooltipster-box{background:#565656;border:2px solid #000;border-radius:4px}*/
.tooltipster-sidetip .tooltipster-box{border-radius:5px;border:none;border-bottom:3px solid #478406;background: -webkit-radial-gradient(#303030,#000000);background: linear-gradient(#303030,#000000)}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}
.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}
.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}
/*.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}*/
.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:7px}
/*.tooltipster-sidetip .tooltipster-content{color:#fff;line-height:18px;padding:6px 14px}*/
.tooltipster-sidetip .tooltipster-content{color:#fff;padding:8px 16px}
.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:20px;margin-top:-10px;left:0;top:0;width:10px}
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:0;height:10px;margin-left:-10px;width:20px}
.tooltipster-sidetip .tooltipster-arrow-background,.tooltipster-sidetip .tooltipster-arrow-border{height:0;position:absolute;width:0}
/*.tooltipster-sidetip .tooltipster-arrow-background{border:10px solid transparent}*/
.tooltipster-sidetip .tooltipster-arrow-background{display:none}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#565656;left:0;top:3px}
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#565656;left:-3px;top:0}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:#565656;left:3px;top:0}
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#565656;left:0;top:-3px}
.tooltipster-sidetip .tooltipster-arrow-border{border:10px solid transparent;left:0;top:0}
/*.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#000}*/
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#2a2a2a}
/*.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#000}*/
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#2a2a2a}
/*.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#000}*/
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#2a2a2a}
/*.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#000}*/
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#478406}
.tooltipster-sidetip .tooltipster-arrow-uncropped{position:relative}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-10px}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-10px}