@ 2013-06-30T21:45:17Z <?php
class EAHashor {
private $right32;
public function __construct()
{
$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);
echo "A: $A\nt: $t\nM: $M\n";
$A = $this->add($A, $this->F($B, $C, $D), $M, $t) & $this->right32; //decimal
echo "4: $A\n";
$A = $this->rotate($A, $s);
echo "5: $A\n";
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
echo "Result: $A\n\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);
}
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);
}
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);
}
private function rotate ($decimal, $bits)
{
return dechex(($decimal << $bits) | (($decimal >> (32 - $bits)) & (~(~0 << $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;
}
private 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]);
}
private function leftShiftByOne($intAsStr)
{
$p = unpack('N2', $intAsStr);
return pack('N2', ($p[1] << 1) | (($p[2] >> 31) & 0x00000001), $p[2] << 1);
}
private function binarySafeAddition($a, $b)
{
// NB: we don't actually need 64 bits, but 40 bit integers are confusing
$a = "\x00\x00\x00\x00" . pack('N', $a);
$b = "\x00\x00\x00\x00" . pack('N', $b);
$carry = $a & $b;
$result = $a ^ $b;
while ($carry != "\x00\x00\x00\x00\x00\x00\x00\x00") {
$shiftedcarry = $this->leftShiftByOne($carry);
$carry = $result & $shiftedcarry;
$result ^= $shiftedcarry;
}
return current(unpack('N', substr($result, 4)));
}
private 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.010 0.007 17.00 8.3.5 0.013 0.008 17.73 8.3.4 0.013 0.003 18.97 8.3.3 0.013 0.003 18.96 8.3.2 0.000 0.009 19.02 8.3.1 0.005 0.005 20.61 8.3.0 0.004 0.011 17.75 8.2.18 0.017 0.007 17.13 8.2.17 0.009 0.009 22.96 8.2.16 0.017 0.000 20.78 8.2.15 0.010 0.000 24.18 8.2.14 0.005 0.005 24.66 8.2.13 0.003 0.006 26.16 8.2.12 0.010 0.010 19.43 8.2.11 0.007 0.004 21.13 8.2.10 0.010 0.003 18.16 8.2.9 0.006 0.006 20.90 8.2.8 0.000 0.009 18.30 8.2.7 0.000 0.009 17.75 8.2.6 0.003 0.006 18.18 8.2.5 0.003 0.007 18.07 8.2.4 0.003 0.007 18.59 8.2.3 0.003 0.006 18.39 8.2.2 0.006 0.003 18.10 8.2.1 0.000 0.010 17.94 8.2.0 0.008 0.003 18.01 8.1.28 0.013 0.007 25.92 8.1.27 0.012 0.004 24.66 8.1.26 0.000 0.009 26.35 8.1.25 0.003 0.006 28.09 8.1.24 0.010 0.000 22.40 8.1.23 0.010 0.007 21.09 8.1.22 0.003 0.006 17.91 8.1.21 0.003 0.007 19.13 8.1.20 0.009 0.003 17.73 8.1.19 0.005 0.005 17.93 8.1.18 0.005 0.005 18.10 8.1.17 0.000 0.009 19.14 8.1.16 0.003 0.007 19.12 8.1.15 0.000 0.010 18.79 8.1.14 0.000 0.010 17.77 8.1.13 0.000 0.008 18.02 8.1.12 0.005 0.004 17.75 8.1.11 0.006 0.003 17.77 8.1.10 0.000 0.009 17.66 8.1.9 0.006 0.003 17.61 8.1.8 0.004 0.004 17.79 8.1.7 0.000 0.009 17.69 8.1.6 0.003 0.007 17.82 8.1.5 0.000 0.009 17.71 8.1.4 0.008 0.003 17.68 8.1.3 0.005 0.005 17.82 8.1.2 0.003 0.007 17.89 8.1.1 0.003 0.007 17.77 8.1.0 0.000 0.010 17.70 8.0.30 0.000 0.010 20.35 8.0.29 0.000 0.009 17.00 8.0.28 0.005 0.005 18.57 8.0.27 0.004 0.004 17.45 8.0.26 0.004 0.004 17.10 8.0.25 0.007 0.004 17.21 8.0.24 0.006 0.003 17.15 8.0.23 0.005 0.005 17.14 8.0.22 0.006 0.003 17.07 8.0.21 0.004 0.004 17.08 8.0.20 0.003 0.006 17.25 8.0.19 0.009 0.000 17.29 8.0.18 0.009 0.000 17.13 8.0.17 0.007 0.003 17.19 8.0.16 0.000 0.009 17.25 8.0.15 0.000 0.010 17.15 8.0.14 0.009 0.003 17.13 8.0.13 0.003 0.005 13.56 8.0.12 0.003 0.006 17.09 8.0.11 0.009 0.000 17.13 8.0.10 0.000 0.009 17.00 8.0.9 0.009 0.000 17.21 8.0.8 0.009 0.010 17.12 8.0.7 0.009 0.000 17.23 8.0.6 0.000 0.009 17.12 8.0.5 0.003 0.006 17.14 8.0.3 0.015 0.008 17.36 8.0.2 0.010 0.017 17.26 8.0.1 0.009 0.000 17.15 8.0.0 0.016 0.006 17.18 7.4.33 0.000 0.006 13.21 7.4.32 0.003 0.005 16.71 7.4.30 0.005 0.003 16.78 7.4.29 0.000 0.010 16.82 7.4.28 0.000 0.010 16.78 7.4.27 0.003 0.006 16.90 7.4.26 0.000 0.008 13.57 7.4.25 0.005 0.005 16.69 7.4.24 0.003 0.006 16.64 7.4.23 0.006 0.003 16.62 7.4.22 0.021 0.026 16.78 7.4.21 0.007 0.012 16.90 7.4.20 0.008 0.000 16.69 7.4.19 0.003 0.006 16.95 7.4.16 0.010 0.010 16.70 7.4.15 0.014 0.007 16.86 7.4.14 0.008 0.012 16.85 7.4.13 0.011 0.013 16.73 7.4.12 0.015 0.007 16.70 7.4.11 0.007 0.013 16.74 7.4.10 0.004 0.016 16.63 7.4.9 0.009 0.012 16.81 7.4.8 0.014 0.014 19.39 7.4.7 0.018 0.012 16.89 7.4.6 0.006 0.014 16.79 7.4.5 0.006 0.006 16.48 7.4.4 0.003 0.013 16.61 7.4.3 0.013 0.014 16.92 7.4.0 0.009 0.011 15.34 7.3.33 0.000 0.008 13.43 7.3.32 0.004 0.004 13.48 7.3.31 0.006 0.003 16.68 7.3.30 0.000 0.009 16.67 7.3.29 0.009 0.009 16.60 7.3.28 0.009 0.010 16.61 7.3.27 0.010 0.010 16.67 7.3.26 0.012 0.009 16.52 7.3.25 0.016 0.008 16.73 7.3.24 0.014 0.007 16.75 7.3.23 0.012 0.008 16.68 7.3.21 0.004 0.015 16.92 7.3.20 0.006 0.013 16.64 7.3.19 0.013 0.010 16.54 7.3.18 0.010 0.010 16.80 7.3.17 0.008 0.011 16.44 7.3.16 0.005 0.016 16.57 7.3.12 0.009 0.012 15.25 7.3.11 0.002 0.018 14.97 7.3.10 0.007 0.010 15.17 7.3.9 0.004 0.011 15.15 7.3.8 0.010 0.008 15.05 7.3.7 0.007 0.007 15.06 7.3.6 0.001 0.016 15.03 7.3.5 0.004 0.012 15.18 7.3.4 0.006 0.008 15.15 7.3.3 0.005 0.013 15.18 7.3.2 0.005 0.009 16.56 7.3.1 0.008 0.009 16.61 7.3.0 0.003 0.014 16.60 7.2.33 0.011 0.011 17.12 7.2.32 0.006 0.016 16.79 7.2.31 0.013 0.009 16.94 7.2.30 0.009 0.012 17.02 7.2.29 0.008 0.011 16.96 7.2.25 0.002 0.021 15.31 7.2.24 0.008 0.011 15.18 7.2.23 0.009 0.010 15.43 7.2.22 0.004 0.011 15.28 7.2.21 0.007 0.008 15.29 7.2.20 0.004 0.012 15.32 7.2.19 0.009 0.010 15.26 7.2.18 0.005 0.011 15.27 7.2.17 0.007 0.010 15.31 7.2.16 0.004 0.011 15.40 7.2.15 0.000 0.012 17.10 7.2.14 0.006 0.013 17.04 7.2.13 0.006 0.012 17.01 7.2.12 0.013 0.010 16.88 7.2.11 0.011 0.007 16.74 7.2.10 0.011 0.007 17.14 7.2.9 0.003 0.012 16.80 7.2.8 0.000 0.015 16.73 7.2.7 0.007 0.014 16.91 7.2.6 0.012 0.003 16.70 7.2.5 0.004 0.016 17.07 7.2.4 0.007 0.007 16.79 7.2.3 0.007 0.010 16.86 7.2.2 0.011 0.007 17.04 7.2.1 0.006 0.012 16.81 7.2.0 0.007 0.010 18.03 7.1.33 0.003 0.015 15.71 7.1.32 0.006 0.010 15.90 7.1.31 0.009 0.011 15.96 7.1.30 0.005 0.010 15.73 7.1.29 0.009 0.009 15.86 7.1.28 0.004 0.014 15.86 7.1.27 0.005 0.012 15.76 7.1.26 0.003 0.014 15.76 7.1.25 0.000 0.013 15.78 7.1.20 0.000 0.016 15.87 7.1.7 0.000 0.010 17.02 7.1.6 0.013 0.016 19.40 7.1.5 0.014 0.014 16.86 7.1.0 0.003 0.080 22.41 7.0.20 0.000 0.009 16.77 7.0.14 0.007 0.077 22.10 7.0.12 0.000 0.080 22.06 7.0.10 0.003 0.080 20.15 7.0.9 0.020 0.053 20.20 7.0.8 0.010 0.077 20.15 7.0.7 0.027 0.083 20.13 7.0.6 0.010 0.043 20.23 7.0.5 0.030 0.083 20.60 7.0.4 0.013 0.077 20.18 7.0.3 0.013 0.077 20.11 7.0.2 0.003 0.080 20.04 7.0.1 0.010 0.083 20.04 7.0.0 0.017 0.063 20.08 5.6.28 0.000 0.083 20.92 5.6.25 0.007 0.053 20.77 5.6.24 0.013 0.053 20.77 5.6.23 0.007 0.080 20.82 5.6.22 0.010 0.050 20.73 5.6.21 0.000 0.077 20.70 5.6.20 0.013 0.087 21.27 5.6.19 0.010 0.087 21.25 5.6.18 0.003 0.090 21.18 5.6.17 0.013 0.070 21.26 5.6.16 0.010 0.090 21.28 5.6.15 0.017 0.067 21.21 5.6.14 0.003 0.097 21.14 5.6.13 0.003 0.093 21.18 5.6.12 0.010 0.083 21.09 5.6.11 0.010 0.087 21.20 5.6.10 0.003 0.053 21.18 5.6.9 0.010 0.087 21.25 5.6.8 0.010 0.040 20.46 5.6.7 0.017 0.073 20.66 5.6.6 0.007 0.050 20.56 5.6.5 0.003 0.097 20.61 5.6.4 0.010 0.063 20.55 5.6.3 0.003 0.087 20.68 5.6.2 0.010 0.077 20.42 5.6.1 0.007 0.090 20.47 5.6.0 0.010 0.057 20.57 5.5.38 0.013 0.080 20.49 5.5.37 0.003 0.070 20.63 5.5.36 0.007 0.047 20.50 5.5.35 0.000 0.093 20.56 5.5.34 0.007 0.073 20.97 5.5.33 0.013 0.083 20.88 5.5.32 0.010 0.070 20.99 5.5.31 0.007 0.057 21.04 5.5.30 0.013 0.070 21.06 5.5.29 0.000 0.083 21.02 5.5.28 0.007 0.087 20.88 5.5.27 0.013 0.077 21.02 5.5.26 0.010 0.090 21.02 5.5.25 0.003 0.063 20.78 5.5.24 0.003 0.043 20.32 5.5.23 0.010 0.083 20.25 5.5.22 0.003 0.093 20.35 5.5.21 0.010 0.047 20.35 5.5.20 0.013 0.080 20.40 5.5.19 0.010 0.083 20.34 5.5.18 0.020 0.087 20.38 5.5.16 0.007 0.090 20.38 5.5.15 0.013 0.080 20.13 5.5.14 0.020 0.063 20.28 5.5.13 0.007 0.050 20.25 5.5.12 0.010 0.087 20.39 5.5.11 0.013 0.043 20.31 5.5.10 0.003 0.083 20.26 5.5.9 0.010 0.080 20.23 5.5.8 0.013 0.073 20.31 5.5.7 0.013 0.077 20.08 5.5.6 0.007 0.037 20.23 5.5.5 0.007 0.040 20.24 5.5.4 0.003 0.060 20.23 5.5.3 0.003 0.040 20.23 5.5.2 0.007 0.083 20.22 5.5.1 0.010 0.063 20.11 5.5.0 0.007 0.080 20.11 5.4.45 0.010 0.040 19.51 5.4.44 0.017 0.067 19.51 5.4.43 0.013 0.080 19.29 5.4.42 0.010 0.083 19.51 5.4.41 0.007 0.080 19.32 5.4.40 0.000 0.090 19.25 5.4.39 0.007 0.047 19.17 5.4.38 0.007 0.070 19.14 5.4.37 0.007 0.070 19.13 5.4.36 0.017 0.070 19.09 5.4.35 0.010 0.043 19.19 5.4.34 0.003 0.050 19.03 5.4.32 0.007 0.083 19.11 5.4.31 0.007 0.073 19.10 5.4.30 0.010 0.080 19.25 5.4.29 0.020 0.080 19.13 5.4.28 0.003 0.057 19.29 5.4.27 0.003 0.073 19.25 5.4.26 0.003 0.070 19.09 5.4.25 0.007 0.047 19.05 5.4.24 0.017 0.040 19.22 5.4.23 0.000 0.063 18.92 5.4.22 0.003 0.070 18.92 5.4.21 0.007 0.037 19.09 5.4.20 0.010 0.067 19.08 5.4.19 0.007 0.073 18.99 5.4.18 0.000 0.083 19.08 5.4.17 0.010 0.050 19.12 5.4.16 0.013 0.080 19.08 5.4.15 0.003 0.067 19.10 5.4.14 0.007 0.067 16.48 5.4.13 0.013 0.063 16.41 5.4.12 0.003 0.073 16.40 5.4.11 0.007 0.057 16.47 5.4.10 0.007 0.083 16.55 5.4.9 0.013 0.060 16.62 5.4.8 0.010 0.073 16.44 5.4.7 0.013 0.067 16.39 5.4.6 0.003 0.087 16.39 5.4.5 0.010 0.073 16.55 5.4.4 0.010 0.070 16.63 5.4.3 0.000 0.070 16.37 5.4.2 0.017 0.030 16.54 5.4.1 0.007 0.070 16.51 5.4.0 0.010 0.080 15.77 5.3.29 0.003 0.083 14.94 5.3.28 0.007 0.073 14.77 5.3.27 0.003 0.050 14.84 5.3.26 0.010 0.073 14.97 5.3.25 0.003 0.083 14.78 5.3.24 0.017 0.070 14.77 5.3.23 0.010 0.080 14.79 5.3.22 0.010 0.073 14.81 5.3.21 0.003 0.077 14.87 5.3.20 0.003 0.053 14.90 5.3.19 0.000 0.080 14.91 5.3.18 0.007 0.083 14.78 5.3.17 0.007 0.077 14.84 5.3.16 0.010 0.073 14.84 5.3.15 0.013 0.057 14.77 5.3.14 0.007 0.073 14.86 5.3.13 0.007 0.040 14.84 5.3.12 0.010 0.050 14.75 5.3.11 0.007 0.043 14.81 5.3.10 0.003 0.077 14.34 5.3.9 0.007 0.077 14.29 5.3.8 0.013 0.080 14.35 5.3.7 0.007 0.077 14.36 5.3.6 0.007 0.047 14.14 5.3.5 0.010 0.057 14.28 5.3.4 0.000 0.057 14.32 5.3.3 0.010 0.060 14.26 5.3.2 0.007 0.080 14.07 5.3.1 0.017 0.063 13.92 5.3.0 0.013 0.070 13.88
preferences:dark mode live preview
47.26 ms | 401 KiB | 5 Q