@ 2013-06-30T19:37:54Z <?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);
}
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);
}
// 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.016 0.006 18.43 8.3.5 0.015 0.008 22.00 8.3.4 0.013 0.003 19.04 8.3.3 0.011 0.007 19.45 8.3.2 0.004 0.004 20.41 8.3.1 0.008 0.000 23.63 8.3.0 0.005 0.005 17.88 8.2.18 0.007 0.013 18.16 8.2.17 0.000 0.015 19.16 8.2.16 0.006 0.009 22.96 8.2.15 0.009 0.000 24.18 8.2.14 0.008 0.000 24.66 8.2.13 0.000 0.009 26.16 8.2.12 0.008 0.000 22.31 8.2.11 0.007 0.004 22.08 8.2.10 0.003 0.009 18.09 8.2.9 0.006 0.003 19.64 8.2.8 0.006 0.003 18.30 8.2.7 0.003 0.006 17.88 8.2.6 0.003 0.006 18.18 8.2.5 0.003 0.006 19.23 8.2.4 0.006 0.003 18.28 8.2.3 0.006 0.003 18.27 8.2.2 0.003 0.006 17.91 8.2.1 0.003 0.006 18.27 8.2.0 0.003 0.006 17.96 8.1.28 0.006 0.012 25.92 8.1.27 0.006 0.003 22.43 8.1.26 0.006 0.003 26.35 8.1.25 0.006 0.009 28.09 8.1.24 0.003 0.007 23.67 8.1.23 0.012 0.000 19.29 8.1.22 0.006 0.003 17.91 8.1.21 0.000 0.009 18.77 8.1.20 0.003 0.009 17.60 8.1.19 0.003 0.006 17.78 8.1.18 0.000 0.009 18.10 8.1.17 0.006 0.003 18.91 8.1.16 0.003 0.005 22.13 8.1.15 0.004 0.004 18.86 8.1.14 0.003 0.006 17.78 8.1.13 0.004 0.004 18.08 8.1.12 0.000 0.009 17.76 8.1.11 0.004 0.004 17.77 8.1.10 0.005 0.003 17.72 8.1.9 0.000 0.009 17.71 8.1.8 0.004 0.007 17.75 8.1.7 0.000 0.008 17.66 8.1.6 0.003 0.006 17.82 8.1.5 0.006 0.003 17.66 8.1.4 0.003 0.006 17.68 8.1.3 0.004 0.004 17.88 8.1.2 0.006 0.003 17.89 8.1.1 0.000 0.008 17.73 8.1.0 0.003 0.006 17.77 8.0.30 0.004 0.004 19.09 8.0.29 0.005 0.003 17.43 8.0.28 0.000 0.008 18.64 8.0.27 0.000 0.008 17.38 8.0.26 0.004 0.004 17.42 8.0.25 0.005 0.003 17.21 8.0.24 0.000 0.008 17.13 8.0.23 0.004 0.004 17.20 8.0.22 0.005 0.003 17.05 8.0.21 0.000 0.008 17.20 8.0.20 0.007 0.003 17.21 8.0.19 0.009 0.000 17.15 8.0.18 0.000 0.009 17.15 8.0.17 0.003 0.006 17.07 8.0.16 0.003 0.006 17.16 8.0.15 0.004 0.004 17.18 8.0.14 0.006 0.003 17.13 8.0.13 0.000 0.006 13.61 8.0.12 0.000 0.009 17.13 8.0.11 0.000 0.008 17.16 8.0.10 0.003 0.006 17.19 8.0.9 0.000 0.008 17.05 8.0.8 0.010 0.007 17.20 8.0.7 0.003 0.006 17.15 8.0.6 0.004 0.004 17.18 8.0.5 0.004 0.004 17.19 8.0.3 0.005 0.017 17.33 8.0.2 0.008 0.017 17.48 8.0.1 0.006 0.003 17.34 8.0.0 0.009 0.009 17.03 7.4.33 0.000 0.006 15.00 7.4.32 0.005 0.002 16.89 7.4.30 0.000 0.007 16.88 7.4.29 0.004 0.004 16.93 7.4.28 0.004 0.007 16.84 7.4.27 0.003 0.005 16.93 7.4.26 0.004 0.004 16.77 7.4.25 0.005 0.003 16.82 7.4.24 0.002 0.006 16.82 7.4.23 0.000 0.008 16.85 7.4.22 0.014 0.009 16.96 7.4.21 0.011 0.009 16.82 7.4.20 0.000 0.008 16.89 7.4.19 0.003 0.005 16.95 7.4.16 0.009 0.009 16.81 7.4.15 0.009 0.009 17.40 7.4.14 0.005 0.014 17.86 7.4.13 0.007 0.010 16.75 7.4.12 0.010 0.008 16.78 7.4.11 0.006 0.012 16.84 7.4.10 0.014 0.006 16.73 7.4.9 0.010 0.017 16.75 7.4.8 0.017 0.013 19.39 7.4.7 0.009 0.009 17.01 7.4.6 0.015 0.012 16.63 7.4.5 0.006 0.003 16.68 7.4.4 0.008 0.007 22.77 7.4.3 0.009 0.012 16.74 7.4.0 0.007 0.011 15.15 7.3.33 0.003 0.003 13.48 7.3.32 0.000 0.007 13.41 7.3.31 0.008 0.003 16.66 7.3.30 0.008 0.000 16.53 7.3.29 0.013 0.010 16.63 7.3.28 0.005 0.011 16.62 7.3.27 0.009 0.012 17.40 7.3.26 0.015 0.004 16.81 7.3.25 0.011 0.008 16.72 7.3.24 0.014 0.003 16.67 7.3.23 0.016 0.010 16.57 7.3.21 0.007 0.013 16.64 7.3.20 0.004 0.016 19.39 7.3.19 0.007 0.018 16.58 7.3.18 0.003 0.015 16.73 7.3.17 0.008 0.015 16.95 7.3.16 0.003 0.014 16.75 7.3.12 0.005 0.010 14.83 7.3.11 0.005 0.012 15.14 7.3.10 0.003 0.013 15.28 7.3.9 0.008 0.008 15.25 7.3.8 0.006 0.010 14.95 7.3.7 0.006 0.010 15.11 7.3.6 0.008 0.010 14.82 7.3.5 0.006 0.009 15.06 7.3.4 0.005 0.007 15.00 7.3.3 0.006 0.007 14.93 7.3.2 0.010 0.003 16.73 7.3.1 0.010 0.006 16.62 7.3.0 0.005 0.008 16.55 7.2.33 0.012 0.013 16.98 7.2.32 0.000 0.019 16.77 7.2.31 0.006 0.012 16.86 7.2.30 0.003 0.016 16.81 7.2.29 0.009 0.016 16.80 7.2.25 0.016 0.003 15.35 7.2.24 0.008 0.010 14.99 7.2.23 0.007 0.011 15.08 7.2.22 0.009 0.005 15.31 7.2.21 0.005 0.013 15.26 7.2.20 0.010 0.004 15.18 7.2.19 0.007 0.011 15.27 7.2.18 0.006 0.010 15.22 7.2.17 0.003 0.012 15.32 7.2.16 0.012 0.003 15.38 7.2.15 0.010 0.006 17.10 7.2.14 0.000 0.010 16.77 7.2.13 0.006 0.009 16.90 7.2.12 0.004 0.011 17.18 7.2.11 0.000 0.012 16.83 7.2.10 0.003 0.014 16.98 7.2.9 0.009 0.006 17.02 7.2.8 0.003 0.010 17.16 7.2.7 0.009 0.009 16.60 7.2.6 0.009 0.006 16.91 7.2.5 0.011 0.004 16.93 7.2.4 0.004 0.012 16.91 7.2.3 0.006 0.010 16.83 7.2.2 0.003 0.009 16.89 7.2.1 0.011 0.003 16.74 7.2.0 0.007 0.007 17.08 7.1.33 0.004 0.009 15.81 7.1.32 0.004 0.010 15.72 7.1.31 0.003 0.011 15.71 7.1.30 0.000 0.014 15.74 7.1.29 0.003 0.013 15.75 7.1.28 0.009 0.006 15.72 7.1.27 0.007 0.007 15.73 7.1.26 0.007 0.007 15.61 7.1.25 0.006 0.010 15.84 7.1.20 0.006 0.006 15.61 7.1.7 0.000 0.009 17.30 7.1.6 0.009 0.015 19.33 7.1.5 0.010 0.013 16.63 7.1.0 0.000 0.083 22.44 7.0.20 0.007 0.010 16.82 7.0.14 0.003 0.077 22.22 7.0.10 0.023 0.077 20.14 7.0.9 0.020 0.080 20.15 7.0.8 0.020 0.080 20.13 7.0.7 0.010 0.083 20.13 7.0.6 0.013 0.073 20.20 7.0.5 0.013 0.083 20.37 7.0.4 0.003 0.083 20.08 7.0.3 0.000 0.090 20.03 7.0.2 0.003 0.090 19.98 7.0.1 0.010 0.077 19.94 7.0.0 0.007 0.087 19.95 5.6.28 0.000 0.100 21.07 5.6.25 0.007 0.050 20.77 5.6.24 0.000 0.090 20.69 5.6.23 0.013 0.073 20.66 5.6.22 0.013 0.070 20.73 5.6.21 0.003 0.080 20.86 5.6.20 0.000 0.093 21.20 5.6.19 0.010 0.087 21.00 5.6.18 0.013 0.073 21.16 5.6.17 0.010 0.080 21.26 5.6.16 0.010 0.083 21.23 5.6.15 0.010 0.080 21.16 5.6.14 0.003 0.090 21.16 5.6.13 0.013 0.077 21.21 5.6.12 0.003 0.083 21.02 5.6.11 0.007 0.090 21.25 5.6.10 0.007 0.053 21.09 5.6.9 0.010 0.080 21.04 5.6.8 0.013 0.080 20.50 5.6.7 0.013 0.053 20.59 5.6.6 0.003 0.080 20.48 5.6.5 0.003 0.043 20.54 5.6.4 0.003 0.050 20.53 5.6.3 0.013 0.033 20.46 5.6.2 0.007 0.037 20.48 5.6.1 0.003 0.040 20.54 5.6.0 0.003 0.040 20.54 5.5.38 0.000 0.063 20.59 5.5.37 0.010 0.077 20.50 5.5.36 0.013 0.083 20.54 5.5.35 0.003 0.083 20.48 5.5.34 0.017 0.077 20.98 5.5.33 0.010 0.083 20.95 5.5.32 0.000 0.093 20.73 5.5.31 0.007 0.087 20.91 5.5.30 0.013 0.080 21.01 5.5.29 0.003 0.087 20.96 5.5.28 0.010 0.080 20.86 5.5.27 0.010 0.080 20.88 5.5.26 0.007 0.083 20.81 5.5.25 0.013 0.077 20.82 5.5.24 0.007 0.053 20.37 5.5.23 0.010 0.043 20.37 5.5.22 0.003 0.043 20.23 5.5.21 0.000 0.043 20.40 5.5.20 0.007 0.047 20.28 5.5.19 0.000 0.043 20.30 5.5.18 0.000 0.043 20.37 5.5.16 0.010 0.080 20.28 5.5.15 0.000 0.043 20.27 5.5.14 0.003 0.050 20.32 5.5.13 0.007 0.037 20.18 5.5.12 0.000 0.043 20.23 5.5.11 0.007 0.077 20.32 5.5.10 0.010 0.073 20.26 5.5.9 0.003 0.083 20.13 5.5.8 0.010 0.073 20.19 5.5.7 0.007 0.057 20.15 5.5.6 0.003 0.040 20.05 5.5.5 0.000 0.050 20.14 5.5.4 0.003 0.047 20.17 5.5.3 0.010 0.037 20.23 5.5.2 0.003 0.037 20.15 5.5.1 0.003 0.040 20.20 5.5.0 0.003 0.047 20.22 5.4.45 0.013 0.080 19.58 5.4.44 0.013 0.077 19.58 5.4.43 0.007 0.090 19.61 5.4.42 0.003 0.083 19.52 5.4.41 0.000 0.090 19.29 5.4.40 0.007 0.043 19.11 5.4.39 0.000 0.050 19.19 5.4.38 0.003 0.063 19.25 5.4.37 0.010 0.033 18.97 5.4.36 0.003 0.047 19.14 5.4.35 0.007 0.033 18.96 5.4.34 0.010 0.033 19.04 5.4.32 0.007 0.040 19.10 5.4.31 0.007 0.037 19.14 5.4.30 0.013 0.050 19.18 5.4.29 0.013 0.033 18.96 5.4.28 0.017 0.047 19.18 5.4.27 0.007 0.067 19.12 5.4.26 0.000 0.070 18.96 5.4.25 0.007 0.070 18.95 5.4.24 0.007 0.083 19.10 5.4.23 0.007 0.050 19.17 5.4.22 0.003 0.070 18.95 5.4.21 0.010 0.073 19.06 5.4.20 0.003 0.037 19.17 5.4.19 0.003 0.047 19.10 5.4.18 0.013 0.040 19.11 5.4.17 0.013 0.030 19.13 5.4.16 0.003 0.043 19.13 5.4.15 0.003 0.053 19.16 5.4.14 0.003 0.043 16.45 5.4.13 0.010 0.030 16.33 5.4.12 0.003 0.067 16.47 5.4.11 0.003 0.040 16.55 5.4.10 0.010 0.067 16.45 5.4.9 0.020 0.017 16.50 5.4.8 0.003 0.037 16.49 5.4.7 0.007 0.033 16.55 5.4.6 0.003 0.033 16.39 5.4.5 0.010 0.047 16.46 5.4.4 0.000 0.037 16.52 5.4.3 0.007 0.063 16.45 5.4.2 0.007 0.060 16.55 5.4.1 0.010 0.067 16.51 5.4.0 0.007 0.080 15.97 5.3.29 0.000 0.043 15.01 5.3.28 0.010 0.070 14.77 5.3.27 0.000 0.043 14.96 5.3.26 0.000 0.043 14.91 5.3.25 0.003 0.050 14.77 5.3.24 0.007 0.077 14.83 5.3.23 0.007 0.037 14.82 5.3.22 0.000 0.057 14.81 5.3.21 0.007 0.033 14.79 5.3.20 0.010 0.057 14.94 5.3.19 0.003 0.040 14.78 5.3.18 0.003 0.037 14.86 5.3.17 0.007 0.037 14.86 5.3.16 0.007 0.043 14.92 5.3.15 0.000 0.040 14.94 5.3.14 0.003 0.073 14.82 5.3.13 0.003 0.070 14.71 5.3.12 0.010 0.043 14.76 5.3.11 0.000 0.053 14.76 5.3.10 0.007 0.077 14.21 5.3.9 0.007 0.077 14.24 5.3.8 0.013 0.073 14.28 5.3.7 0.010 0.070 14.14 5.3.6 0.003 0.073 14.27 5.3.5 0.010 0.077 14.25 5.3.4 0.003 0.077 14.32 5.3.3 0.007 0.077 14.20 5.3.2 0.003 0.073 13.99 5.3.1 0.000 0.080 13.78 5.3.0 0.003 0.053 13.98
preferences:dark mode live preview
36.67 ms | 401 KiB | 5 Q