@ 2013-06-30T19:42:02Z <?php
class EAHashor {
private $right32;
//initialise the class
public function __construct() {
// This is a 32- and 64-bit safe way to get an integer with only the
// right-most 32-bits set
$this->right32 = ~((~0 << 16) << 16);
}
public function eaEncode($string){
$a = "67452301";
$b = "EFCDAB89";
$c = "98BADCFE";
$d = "10325476";
$words = $this->init($string);
for($i = 0, $l = count($words) / 16 - 1; $i <= $l; $i++){
$A = $a;
$B = $b;
$C = $c;
$D = $d;
/* ROUND 1 */
$this->FF ($A, $B, $C, $D, $words[0 + ($i * 16)], 7, "d76aa478");
$this->FF ($D, $A, $B, $C, $words[1 + ($i * 16)], 12, "e8c7b756");
$this->FF ($C, $D, $A, $B, $words[2 + ($i * 16)], 17, "242070db");
$this->FF ($B, $C, $D, $A, $words[3 + ($i * 16)], 22, "c1bdceee");
$this->FF ($A, $B, $C, $D, $words[4 + ($i * 16)], 7, "f57c0faf");
$this->FF ($D, $A, $B, $C, $words[5 + ($i * 16)], 12, "4787c62a");
$this->FF ($C, $D, $A, $B, $words[6 + ($i * 16)], 17, "a8304613");
$this->FF ($B, $C, $D, $A, $words[7 + ($i * 16)], 22, "fd469501");
$this->FF ($A, $B, $C, $D, $words[8 + ($i * 16)], 7, "698098d8");
$this->FF ($D, $A, $B, $C, $words[9 + ($i * 16)], 12, "8b44f7af");
$this->FF ($C, $D, $A, $B, $words[10 + ($i * 16)], 17, "ffff5bb1");
$this->FF ($B, $C, $D, $A, $words[11 + ($i * 16)], 22, "895cd7be");
$this->FF ($A, $B, $C, $D, $words[12 + ($i * 16)], 7, "6b901122");
$this->FF ($D, $A, $B, $C, $words[13 + ($i * 16)], 12, "fd987193");
$this->FF ($C, $D, $A, $B, $words[14 + ($i * 16)], 17, "a679438e");
$this->FF ($B, $C, $D, $A, $words[15 + ($i * 16)], 22, "49b40821");
/* ROUND 2 */
$this->GG ($A, $B, $C, $D, $words[1 + ($i * 16)], 5, "f61e2562");
$this->GG ($D, $A, $B, $C, $words[6 + ($i * 16)], 9, "c040b340");
$this->GG ($C, $D, $A, $B, $words[11 + ($i * 16)], 14, "265e5a51");
$this->GG ($B, $C, $D, $A, $words[0 + ($i * 16)], 20, "e9b6c7aa");
$this->GG ($A, $B, $C, $D, $words[5 + ($i * 16)], 5, "d62f105d");
$this->GG ($D, $A, $B, $C, $words[10 + ($i * 16)], 9, "02441453");
$this->GG ($C, $D, $A, $B, $words[15 + ($i * 16)], 14, "d8a1e681");
$this->GG ($B, $C, $D, $A, $words[4 + ($i * 16)], 20, "e7d3fbc8");
$this->GG ($A, $B, $C, $D, $words[9 + ($i * 16)], 5, "21e1cde6");
$this->GG ($D, $A, $B, $C, $words[14 + ($i * 16)], 9, "c33707d6");
$this->GG ($C, $D, $A, $B, $words[3 + ($i * 16)], 14, "f4d50d87");
$this->GG ($B, $C, $D, $A, $words[8 + ($i * 16)], 20, "455a14ed");
$this->GG ($A, $B, $C, $D, $words[13 + ($i * 16)], 5, "a9e3e905");
$this->GG ($D, $A, $B, $C, $words[2 + ($i * 16)], 9, "fcefa3f8");
$this->GG ($C, $D, $A, $B, $words[7 + ($i * 16)], 14, "676f02d9");
$this->GG ($B, $C, $D, $A, $words[12 + ($i * 16)], 20, "8d2a4c8a");
/* ROUND 3 */
$this->HH ($A, $B, $C, $D, $words[5 + ($i * 16)], 4, "fffa3942");
$this->HH ($D, $A, $B, $C, $words[8 + ($i * 16)], 11, "8771f681");
//HH ($C, $D, $A, $B, $words[11 + ($i * 16)], 16, "6d9d6122");
//the line below has been changed to use 14 rather than 16 as seen in the commented line
$this->HH ($C, $D, $A, $B, $words[11 + ($i * 16)], 14, "6d9d6122");
$this->HH ($B, $C, $D, $A, $words[14 + ($i * 16)], 23, "fde5380c");
$this->HH ($A, $B, $C, $D, $words[1 + ($i * 16)], 4, "a4beea44");
$this->HH ($D, $A, $B, $C, $words[4 + ($i * 16)], 11, "4bdecfa9");
$this->HH ($C, $D, $A, $B, $words[7 + ($i * 16)], 16, "f6bb4b60");
$this->HH ($B, $C, $D, $A, $words[10 + ($i * 16)], 23, "bebfbc70");
$this->HH ($A, $B, $C, $D, $words[13 + ($i * 16)], 4, "289b7ec6");
$this->HH ($D, $A, $B, $C, $words[0 + ($i * 16)], 11, "eaa127fa");
$this->HH ($C, $D, $A, $B, $words[3 + ($i * 16)], 16, "d4ef3085");
$this->HH ($B, $C, $D, $A, $words[6 + ($i * 16)], 23, "04881d05");
$this->HH ($A, $B, $C, $D, $words[9 + ($i * 16)], 4, "d9d4d039");
$this->HH ($D, $A, $B, $C, $words[12 + ($i * 16)], 11, "e6db99e5");
$this->HH ($C, $D, $A, $B, $words[15 + ($i * 16)], 16, "1fa27cf8");
$this->HH ($B, $C, $D, $A, $words[2 + ($i * 16)], 23, "c4ac5665");
/* ROUND 4 */
$this->II ($A, $B, $C, $D, $words[0 + ($i * 16)], 6, "f4292244");
$this->II ($D, $A, $B, $C, $words[7 + ($i * 16)], 10, "432aff97");
$this->II ($C, $D, $A, $B, $words[14 + ($i * 16)], 15, "ab9423a7");
$this->II ($B, $C, $D, $A, $words[5 + ($i * 16)], 21, "fc93a039");
$this->II ($A, $B, $C, $D, $words[12 + ($i * 16)], 6, "655b59c3");
$this->II ($D, $A, $B, $C, $words[3 + ($i * 16)], 10, "8f0ccc92");
$this->II ($C, $D, $A, $B, $words[10 + ($i * 16)], 15, "ffeff47d");
$this->II ($B, $C, $D, $A, $words[1 + ($i * 16)], 21, "85845dd1");
$this->II ($A, $B, $C, $D, $words[8 + ($i * 16)], 6, "6fa87e4f");
$this->II ($D, $A, $B, $C, $words[15 + ($i * 16)], 10, "fe2ce6e0");
$this->II ($C, $D, $A, $B, $words[6 + ($i * 16)], 15, "a3014314");
$this->II ($B, $C, $D, $A, $words[13 + ($i * 16)], 21, "4e0811a1");
$this->II ($A, $B, $C, $D, $words[4 + ($i * 16)], 6, "f7537e82");
$this->II ($D, $A, $B, $C, $words[11 + ($i * 16)], 10, "bd3af235");
$this->II ($C, $D, $A, $B, $words[2 + ($i * 16)], 15, "2ad7d2bb");
$this->II ($B, $C, $D, $A, $words[9 + ($i * 16)], 21, "eb86d391");
//this last line is used twice
$this->II ($B, $C, $D, $A, $words[9 + ($i * 16)], 21, "eb86d391");
$this->addVars($a, $b, $c, $d, $A, $B, $C, $D);
}
$MD5 = '';
foreach (array($a, $b, $c, $d) as $x) {
$MD5 .= implode('', array_reverse(str_split($this->leftpad($x, 8), 2)));
}
return $MD5;
}
/* General functions */
private function hexbin($str){
$hexbinmap = array( "0" => "0000",
"1" => "0001",
"2" => "0010",
"3" => "0011"
, "4" => "0100"
, "5" => "0101"
, "6" => "0110"
, "7" => "0111"
, "8" => "1000"
, "9" => "1001"
, "A" => "1010"
, "a" => "1010"
, "B" => "1011"
, "b" => "1011"
, "C" => "1100"
, "c" => "1100"
, "D" => "1101"
, "d" => "1101"
, "E" => "1110"
, "e" => "1110"
, "F" => "1111"
, "f" => "1111");
$bin = "";
for ($i = 0; $i < strlen($str); $i++){
$bin .= $hexbinmap[$str[$i]];
}
$bin = ltrim($bin, '0');
// echo "Original: ".$str." New: ".$bin."<br />";
return $bin;
}
private function strhex($str){
$hex = "";
for ($i = 0; $i < strlen($str); $i++){
$hex = $hex.$this->leftpad(dechex(ord($str[$i])), 2);
}
return $hex;
}
/* MD5-specific functions */
private function init($string){
$len = strlen($string) * 8;
$hex = $this->strhex($string); // convert ascii string to hex
$bin = $this->leftpad($this->hexbin($hex), $len); // convert hex string to bin
$padded = $this->pad($bin);
$padded = $this->pad($padded, 1, $len);
$block = str_split($padded, 32);
foreach ($block as &$b) {
$b = implode('', array_reverse(str_split($b, 8)));
}
return $block;
}
private function pad($bin, $type=0, $len = 0){
if($type == 0){
$bin = $bin."1";
$buff = strlen($bin) % 512;
if($buff != 448){
while(strlen($bin) % 512 != 448){
$bin = $bin."0";
}
}
}
// append length (b) of string to latter 64 bits
elseif($type == 1){
$bLen = $this->leftpad(decbin($len), 64);
$bin .= implode('', array_reverse(str_split($bLen, 8)));
}
return $bin;
}
/* MD5 base functions */
private function F($X, $Y, $Z){
$X = $this->binarySafeHexDec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = (($X & $Y) | ((~ $X) & $Z)); // X AND Y OR NOT X AND Z
return $calc;
}
private function G($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = (($X & $Z) | ($Y & (~ $Z))); // X AND Z OR Y AND NOT Z
return $calc;
}
private function H($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = ($X ^ $Y ^ $Z); // X XOR Y XOR Z
return $calc;
}
private function I($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = ($Y ^ ($X | (~ $Z))) ; // Y XOR (X OR NOT Z)
return $calc;
}
/* MD5 round functions */
/* $A - hex, $B - hex, $C - hex, $D - hex (F - dec)
$M - binary
$s - decimal
$t - hex
*/
private function FF(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->F($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
echo "FF: " . $A . "\n";
}
private function GG(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->G($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
echo "GG: " . $A . "\n";
}
private function HH(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->H($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
echo "HH: " . $A . "\n";
}
private function II(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->I($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
echo "II: " . $A . "\n";
}
// shift
private function rotate ($decimal, $bits) { //returns hex
return dechex((($decimal << $bits) | ($decimal >> (32 - $bits))) & $this->right32);
}
private function addVars(&$a, &$b, &$c, &$d, $A, $B, $C, $D){
$A = $this->binarysafehexdec($A);
$B = $this->binarysafehexdec($B);
$C = $this->binarysafehexdec($C);
$D = $this->binarysafehexdec($D);
$aa = $this->binarysafehexdec($a);
$bb = $this->binarysafehexdec($b);
$cc = $this->binarysafehexdec($c);
$dd = $this->binarysafehexdec($d);
$aa = $this->add($aa, $A) & $this->right32;
$bb = $this->add($bb, $B) & $this->right32;
$cc = $this->add($cc, $C) & $this->right32;
$dd = $this->add($dd, $D) & $this->right32;
$a = dechex($aa);
$b = dechex($bb);
$c = dechex($cc);
$d = dechex($dd);
}
private function leftpad($needs_padding, $alignment) {
if (strlen($needs_padding) % $alignment) {
$pad_amount = $alignment - strlen($needs_padding) % $alignment;
$left_pad = implode('', array_fill(0, $pad_amount, '0'));
$needs_padding = $left_pad . $needs_padding;
}
return $needs_padding;
}
public function binarySafeBinDec($bin)
{
$bits = array_reverse(str_split($bin, 1));
$result = 0;
foreach ($bits as $position => $bit) {
$result |= ((int) $bit) << $position;
}
return $result;
}
private function binarySafeHexDec($hex)
{
$h = str_split(str_pad($hex, 8, '0', STR_PAD_LEFT), 2);
return (hexdec($h[0]) << 24) | (hexdec($h[1]) << 16) | (hexdec($h[2]) << 8) | hexdec($h[3]);
}
// shamelessly stolen from http://stackoverflow.com/a/4068918/889949
private function binarySafeAddition($a, $b) {
$carry = $a & $b;
$result = $a ^ $b;
while($carry != 0) {
$shiftedcarry = $carry << 1;
$carry = $result & $shiftedcarry;
$result ^= $shiftedcarry;
}
return $result;
}
public function add() {
$result = 0;
foreach (func_get_args() as $int) {
$result = $this->binarySafeAddition($result, $int);
}
return $result;
}
}
$eahashor = new EAHashor();
$hash = $eahashor->eaEncode('test');
echo $hash;
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 8.3.6 0.009 0.009 18.05 8.3.5 0.010 0.013 16.84 8.3.4 0.011 0.006 19.27 8.3.3 0.009 0.006 18.95 8.3.2 0.006 0.003 19.02 8.3.1 0.000 0.009 19.15 8.3.0 0.009 0.003 17.63 8.2.18 0.020 0.003 16.88 8.2.17 0.007 0.010 22.96 8.2.16 0.012 0.006 19.02 8.2.15 0.009 0.000 24.18 8.2.14 0.009 0.006 24.66 8.2.13 0.003 0.005 26.16 8.2.12 0.000 0.008 20.94 8.2.11 0.005 0.005 20.76 8.2.10 0.011 0.004 18.09 8.2.9 0.000 0.008 20.79 8.2.8 0.008 0.000 20.61 8.2.7 0.003 0.007 18.18 8.2.6 0.004 0.004 18.59 8.2.5 0.003 0.006 18.10 8.2.4 0.003 0.006 19.64 8.2.3 0.005 0.005 18.06 8.2.2 0.007 0.003 17.98 8.2.1 0.006 0.003 18.00 8.2.0 0.003 0.006 17.94 8.1.28 0.009 0.006 25.92 8.1.27 0.008 0.000 23.99 8.1.26 0.004 0.004 26.35 8.1.25 0.004 0.004 28.09 8.1.24 0.006 0.003 23.76 8.1.23 0.006 0.006 21.20 8.1.22 0.004 0.004 18.03 8.1.21 0.003 0.006 19.36 8.1.20 0.003 0.007 17.75 8.1.19 0.003 0.006 17.48 8.1.18 0.003 0.006 18.10 8.1.17 0.003 0.006 18.75 8.1.16 0.003 0.007 18.91 8.1.15 0.009 0.000 18.96 8.1.14 0.003 0.006 17.63 8.1.13 0.000 0.009 17.59 8.1.12 0.003 0.007 17.63 8.1.11 0.003 0.006 17.75 8.1.10 0.005 0.003 17.73 8.1.9 0.006 0.003 17.73 8.1.8 0.004 0.004 17.78 8.1.7 0.008 0.000 17.60 8.1.6 0.000 0.010 17.73 8.1.5 0.003 0.006 17.63 8.1.4 0.004 0.007 17.83 8.1.3 0.005 0.005 17.91 8.1.2 0.000 0.010 17.78 8.1.1 0.003 0.006 17.72 8.1.0 0.003 0.006 17.68 8.0.30 0.003 0.005 20.23 8.0.29 0.006 0.003 17.00 8.0.28 0.009 0.000 18.70 8.0.27 0.000 0.009 17.43 8.0.26 0.008 0.000 17.09 8.0.25 0.000 0.009 17.18 8.0.24 0.003 0.006 17.21 8.0.23 0.003 0.006 17.11 8.0.22 0.006 0.003 17.14 8.0.21 0.004 0.004 17.15 8.0.20 0.008 0.000 17.12 8.0.19 0.008 0.003 17.10 8.0.18 0.000 0.009 17.23 8.0.17 0.000 0.011 17.21 8.0.16 0.000 0.008 17.14 8.0.15 0.000 0.010 17.11 8.0.14 0.004 0.004 17.07 8.0.13 0.003 0.003 13.56 8.0.12 0.003 0.007 17.15 8.0.11 0.003 0.005 17.13 8.0.10 0.000 0.008 17.04 8.0.9 0.003 0.006 17.12 8.0.8 0.006 0.018 17.04 8.0.7 0.008 0.000 16.99 8.0.6 0.003 0.006 17.02 8.0.5 0.005 0.005 17.27 8.0.3 0.008 0.012 17.52 8.0.2 0.014 0.009 17.38 8.0.1 0.003 0.006 17.16 8.0.0 0.006 0.019 16.88 7.4.33 0.000 0.006 13.27 7.4.32 0.004 0.004 16.78 7.4.30 0.003 0.005 16.86 7.4.29 0.000 0.008 16.86 7.4.28 0.003 0.006 16.66 7.4.27 0.004 0.004 16.82 7.4.26 0.004 0.004 13.49 7.4.25 0.003 0.006 16.78 7.4.24 0.004 0.004 16.79 7.4.23 0.003 0.006 16.75 7.4.22 0.007 0.014 16.66 7.4.21 0.015 0.009 16.87 7.4.20 0.000 0.009 16.89 7.4.19 0.003 0.006 16.58 7.4.16 0.013 0.006 16.86 7.4.15 0.012 0.008 16.86 7.4.14 0.012 0.010 17.86 7.4.13 0.008 0.018 16.72 7.4.12 0.007 0.013 16.69 7.4.11 0.007 0.014 16.84 7.4.10 0.014 0.007 16.89 7.4.9 0.006 0.020 16.70 7.4.8 0.017 0.003 19.39 7.4.7 0.012 0.006 16.69 7.4.6 0.010 0.010 16.88 7.4.5 0.003 0.003 16.90 7.4.4 0.007 0.013 16.71 7.4.3 0.009 0.009 16.82 7.4.0 0.009 0.010 15.16 7.3.33 0.000 0.007 13.57 7.3.32 0.000 0.010 13.53 7.3.31 0.005 0.003 16.51 7.3.30 0.009 0.000 16.56 7.3.29 0.010 0.007 16.62 7.3.28 0.006 0.010 16.63 7.3.27 0.012 0.009 16.82 7.3.26 0.019 0.006 16.86 7.3.24 0.009 0.009 16.54 7.3.23 0.020 0.007 16.62 7.3.21 0.012 0.008 16.60 7.3.20 0.011 0.009 16.89 7.3.19 0.013 0.007 16.77 7.3.18 0.010 0.017 16.55 7.3.17 0.007 0.011 16.93 7.3.16 0.007 0.010 16.61 7.3.12 0.008 0.011 15.06 7.3.11 0.005 0.014 15.05 7.3.10 0.005 0.011 15.16 7.3.9 0.005 0.008 15.15 7.3.8 0.003 0.014 15.14 7.3.7 0.004 0.011 15.06 7.3.6 0.003 0.016 15.13 7.3.5 0.007 0.011 15.19 7.3.4 0.005 0.007 15.05 7.3.3 0.007 0.011 15.01 7.3.2 0.003 0.012 16.66 7.3.1 0.006 0.010 16.56 7.3.0 0.006 0.008 16.45 7.2.33 0.012 0.009 17.13 7.2.32 0.010 0.010 16.99 7.2.31 0.003 0.018 17.12 7.2.30 0.004 0.019 17.02 7.2.29 0.004 0.015 16.84 7.2.25 0.006 0.015 15.42 7.2.24 0.006 0.011 15.35 7.2.23 0.005 0.011 15.25 7.2.22 0.005 0.010 15.14 7.2.21 0.009 0.009 15.47 7.2.20 0.005 0.012 15.36 7.2.19 0.006 0.009 15.31 7.2.18 0.003 0.012 15.28 7.2.17 0.005 0.010 15.36 7.2.0 0.007 0.010 19.53 7.1.33 0.003 0.014 15.88 7.1.32 0.004 0.013 15.80 7.1.31 0.003 0.013 15.81 7.1.30 0.006 0.013 15.59 7.1.29 0.005 0.008 15.64 7.1.28 0.005 0.010 15.86 7.1.27 0.002 0.015 15.88 7.1.26 0.007 0.008 15.94 7.1.10 0.005 0.005 18.19 7.1.7 0.000 0.010 17.02 7.1.6 0.003 0.024 19.25 7.1.5 0.007 0.017 16.98 7.1.0 0.007 0.077 22.58 7.0.20 0.000 0.010 16.91 7.0.14 0.007 0.067 21.98 7.0.12 0.000 0.070 22.09 7.0.10 0.017 0.090 20.13 7.0.9 0.010 0.067 20.06 7.0.8 0.007 0.087 20.05 7.0.7 0.007 0.090 20.17 7.0.6 0.007 0.087 20.16 7.0.5 0.023 0.073 20.61 7.0.4 0.007 0.060 20.13 7.0.3 0.007 0.050 20.05 7.0.2 0.013 0.070 20.05 7.0.1 0.003 0.057 20.09 7.0.0 0.013 0.077 20.14 5.6.28 0.010 0.070 21.24 5.6.25 0.013 0.043 20.57 5.6.24 0.017 0.050 20.69 5.6.23 0.007 0.090 20.79 5.6.22 0.010 0.073 20.69 5.6.21 0.003 0.093 20.53 5.6.20 0.007 0.053 21.22 5.6.19 0.003 0.047 21.22 5.6.18 0.000 0.073 21.11 5.6.17 0.013 0.080 21.24 5.6.16 0.013 0.043 21.18 5.6.15 0.003 0.073 21.05 5.6.14 0.013 0.037 21.17 5.6.13 0.000 0.050 21.19 5.6.12 0.000 0.080 21.24 5.6.11 0.007 0.050 21.23 5.6.10 0.013 0.077 21.17 5.6.9 0.007 0.080 21.16 5.6.8 0.013 0.080 20.56 5.6.7 0.013 0.070 20.60 5.6.6 0.013 0.077 20.46 5.6.5 0.007 0.080 20.61 5.6.4 0.000 0.087 20.66 5.6.3 0.007 0.083 20.55 5.6.2 0.010 0.083 20.54 5.6.1 0.010 0.077 20.49 5.6.0 0.003 0.050 20.42 5.5.38 0.010 0.083 20.65 5.5.37 0.013 0.077 20.54 5.5.36 0.010 0.090 20.64 5.5.35 0.003 0.087 20.52 5.5.34 0.007 0.050 21.02 5.5.33 0.010 0.070 20.89 5.5.32 0.017 0.037 21.05 5.5.31 0.003 0.090 20.93 5.5.30 0.003 0.053 21.04 5.5.29 0.003 0.090 20.94 5.5.28 0.017 0.050 20.91 5.5.27 0.003 0.070 20.90 5.5.26 0.003 0.080 20.95 5.5.25 0.010 0.077 20.82 5.5.24 0.007 0.073 20.31 5.5.23 0.013 0.070 20.30 5.5.22 0.003 0.077 20.14 5.5.21 0.010 0.077 20.44 5.5.20 0.020 0.070 20.40 5.5.19 0.003 0.087 20.41 5.5.18 0.000 0.077 20.38 5.5.16 0.013 0.070 20.40 5.5.15 0.003 0.087 20.33 5.5.14 0.007 0.087 20.24 5.5.13 0.003 0.090 20.31 5.5.12 0.010 0.053 20.40 5.5.11 0.003 0.083 20.24 5.5.10 0.010 0.053 20.24 5.5.9 0.010 0.063 20.20 5.5.8 0.010 0.083 20.20 5.5.7 0.010 0.080 20.23 5.5.6 0.017 0.073 20.23 5.5.5 0.013 0.080 20.29 5.5.4 0.000 0.057 20.22 5.5.3 0.003 0.053 20.21 5.5.2 0.017 0.073 20.28 5.5.1 0.003 0.083 20.21 5.5.0 0.007 0.083 20.14 5.4.45 0.010 0.080 19.41 5.4.44 0.003 0.080 19.50 5.4.43 0.017 0.067 19.31 5.4.42 0.007 0.047 19.55 5.4.41 0.003 0.057 19.33 5.4.40 0.010 0.057 19.18 5.4.39 0.020 0.037 18.93 5.4.38 0.013 0.037 19.02 5.4.37 0.017 0.070 19.25 5.4.36 0.007 0.073 19.18 5.4.35 0.003 0.047 19.14 5.4.34 0.013 0.037 19.13 5.4.32 0.003 0.087 18.96 5.4.31 0.003 0.087 19.10 5.4.30 0.007 0.047 18.99 5.4.29 0.003 0.083 19.18 5.4.28 0.017 0.037 19.12 5.4.27 0.007 0.077 19.09 5.4.26 0.010 0.077 19.11 5.4.25 0.010 0.073 18.92 5.4.24 0.010 0.063 19.17 5.4.23 0.007 0.077 18.96 5.4.22 0.007 0.080 18.98 5.4.21 0.003 0.080 19.25 5.4.20 0.010 0.077 19.11 5.4.19 0.007 0.070 19.24 5.4.18 0.013 0.073 19.08 5.4.17 0.007 0.070 19.13 5.4.16 0.007 0.050 19.16 5.4.15 0.013 0.077 19.28 5.4.14 0.010 0.070 16.53 5.4.13 0.007 0.073 16.46 5.4.12 0.007 0.080 16.52 5.4.11 0.007 0.047 16.34 5.4.10 0.007 0.040 16.55 5.4.9 0.013 0.073 16.44 5.4.8 0.010 0.040 16.55 5.4.7 0.007 0.077 16.63 5.4.6 0.010 0.067 16.52 5.4.5 0.013 0.073 16.45 5.4.4 0.010 0.060 16.56 5.4.3 0.003 0.077 16.41 5.4.2 0.003 0.070 16.47 5.4.1 0.007 0.080 16.38 5.4.0 0.010 0.083 15.93 5.3.29 0.003 0.077 15.00 5.3.28 0.007 0.080 14.89 5.3.27 0.003 0.073 14.86 5.3.26 0.007 0.083 14.96 5.3.25 0.003 0.080 14.77 5.3.24 0.007 0.047 14.78 5.3.23 0.003 0.050 14.94 5.3.22 0.007 0.077 14.74 5.3.21 0.007 0.080 14.90 5.3.20 0.013 0.067 14.89 5.3.19 0.010 0.063 14.81 5.3.18 0.010 0.070 14.81 5.3.17 0.010 0.077 14.77 5.3.16 0.010 0.080 14.91 5.3.15 0.010 0.060 14.94 5.3.14 0.010 0.070 14.72 5.3.13 0.017 0.053 14.88 5.3.12 0.010 0.080 14.74 5.3.11 0.000 0.043 14.84 5.3.10 0.007 0.077 14.38 5.3.9 0.013 0.060 14.30 5.3.8 0.013 0.067 14.15 5.3.7 0.010 0.043 14.13 5.3.6 0.013 0.067 14.38 5.3.5 0.010 0.077 14.29 5.3.4 0.000 0.060 14.27 5.3.3 0.003 0.080 14.13 5.3.2 0.010 0.040 13.96 5.3.1 0.007 0.040 14.00 5.3.0 0.007 0.067 13.89
preferences:dark mode live preview
45.64 ms | 401 KiB | 5 Q