@ 2014-03-25T18:43:05Z <?php
/**
* webconfig Helper
* @author Danny Nunez 300development@gmail.com
*/
class WebConfig
{
/**
* @Description - Provide a multi-demensional array to parse and create a web.config file. The base settings are from the web.config examples at https://github.com/h5bp/server-configs
* @param Array - Mulit-Demensional $paths
* EXAMPLE:
* Old URL New URL
* $redirects array = ('orgUrl' => 'http://example.com/oldurl' , 'redirect' => 'http://example.com/newurl' );
*
*/
public function create($paths)
{
$webConfig = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8" ?><configuration></configuration>');
// add 404 http error block
// start <system.webServer>
$_404 = $webConfig->addChild('system.webServer');
$error_mode = $_404->addChild('httpErrors');
$error_mode->addAttribute('errorMode', 'Custom');
$error_mode->addAttribute('existingResponse', 'Replace');
$remove = $error_mode->addChild('remove');
$remove->addAttribute('statusCode', '404');
$remove->addAttribute('subStatusCode', '-1');
$error = $error_mode->addChild('error');
$error->addAttribute('statusCode', '404');
$error->addAttribute('prefixLanguageFilePath', '');
$error->addAttribute('path', '/404.php');
$error->addAttribute('responseMode', 'ExecuteURL');
// add url rewrite to remove index.php
$rewrite = $_404->addChild('rewrite');
$rules = $rewrite->addChild('rules');
$rule = $rules->addChild('rule');
$rule->addAttribute('name', 'Imported Rule 1');
$rule->addAttribute('stopProcessing', 'true');
$match = $rule->addChild('match');
$match->addAttribute('url', '^(.*)$');
$match->addAttribute('ignoreCase', 'false');
$conditions = $rule->addChild('conditions');
$conditions->addAttribute('logicalGrouping', 'MatchAll');
$add1 = $conditions->addChild('add');
$add1->addAttribute('input', '{REQUEST_FILENAME}');
$add1->addAttribute('matchType', 'IsFile');
$add1->addAttribute('ignoreCase', 'false');
$add1->addAttribute('negate', 'true');
$add2 = $conditions->addChild('add');
$add2->addAttribute('input', '{REQUEST_FILENAME}');
$add2->addAttribute('matchType', 'IsDirectory');
$add2->addAttribute('ignoreCase', 'false');
$add2->addAttribute('negate', 'true');
$action = $rule->addChild('action');
$action->addAttribute('type', 'Rewrite');
$action->addAttribute('url', 'index.php/{R:1}');
// http compression
$httpCompression = $_404->addChild('httpCompression');
$httpCompression->addAttribute('directory', '%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files');
$scheme = $httpCompression->addChild('scheme');
$scheme->addAttribute('name', 'gzip');
$scheme->addAttribute('dll', '%Windir%\system32\inetsrv\gzip.dll');
// DynamicTypes
unset($add1, $add2);
$dynamicTypes = $httpCompression->addChild('dynamicTypes');
$add1 = $dynamicTypes->addChild('add');
$add1->addAttribute('mimeType', 'text/*');
$add1->addAttribute('enabled', 'true');
$add2 = $dynamicTypes->addChild('add');
$add2->addAttribute('mimeType', 'gzip');
$add2->addAttribute('enabled', 'true');
$add3 = $dynamicTypes->addChild('add');
$add3->addAttribute('mimeType', 'application/javascript');
$add3->addAttribute('enabled', 'true');
$add4 = $dynamicTypes->addChild('add');
$add4->addAttribute('mimeType', '*/*');
$add4->addAttribute('enabled', 'true');
// Static Types
unset($add1, $add2, $add3, $add4);
$staticTypes = $httpCompression->addChild('staticTypes');
$add1 = $staticTypes->addChild('add');
$add1->addAttribute('mimeType', 'text/*');
$add1->addAttribute('enabled', 'true');
$add2 = $dynamicTypes->addChild('add');
$add2->addAttribute('mimeType', 'gzip');
$add2->addAttribute('enabled', 'true');
$add3 = $dynamicTypes->addChild('add');
$add3->addAttribute('mimeType', 'application/javascript');
$add3->addAttribute('enabled', 'true');
$add4 = $dynamicTypes->addChild('add');
$add4->addAttribute('mimeType', '*/*');
$add4->addAttribute('enabled', 'true');
// url compression
$urlCompression = $_404->addChild('urlCompression');
$urlCompression->addAttribute('doStaticCompression', 'true');
$urlCompression->addAttribute('doDynamicCompression', 'true');
// Static content
$staticContent = $_404->addChild('staticContent');
$clientCache = $staticContent->addChild('clientCache');
$clientCache->addAttribute('cacheControlMode', 'UseMaxAge');
$clientCache->addAttribute('cacheControlMaxAge', '30.00:00:00');
// css
$RemoveExt_css = $staticContent->addChild('remove');
$RemoveExt_css->addAttribute('fileExtension', '.css');
$mimeMap_css = $staticContent->addChild('mimeMap');
$mimeMap_css->addAttribute('fileExtension', '.css');
$mimeMap_css->addAttribute('mimeType', 'text/css');
// js
$RemoveExt_js = $staticContent->addChild('remove');
$RemoveExt_js->addAttribute('fileExtension', '.js');
$mimeMap_js = $staticContent->addChild('mimeMap');
$mimeMap_js->addAttribute('fileExtension', '.js');
$mimeMap_js->addAttribute('mimeType', 'text/javascript');
// json
$RemoveExt_json = $staticContent->addChild('remove');
$RemoveExt_json->addAttribute('fileExtension', '.json');
$mimeMap_json = $staticContent->addChild('mimeMap');
$mimeMap_json->addAttribute('fileExtension', '.json');
$mimeMap_json->addAttribute('mimeType', 'application/json');
// rss
$RemoveExt_rss = $staticContent->addChild('remove');
$RemoveExt_rss->addAttribute('fileExtension', '.rss');
$mimeMap_rss = $staticContent->addChild('mimeMap');
$mimeMap_rss->addAttribute('fileExtension', '.rss');
$mimeMap_rss->addAttribute('mimeType', 'application/xml; charset=UTF-8');
// HTML5 Audio/Video mime types
// mp3
$RemoveExt_mp3 = $staticContent->addChild('remove');
$RemoveExt_mp3->addAttribute('fileExtension', '.mp3');
$mimeMap_mp3 = $staticContent->addChild('mimeMap');
$mimeMap_mp3->addAttribute('fileExtension', '.mp3');
$mimeMap_mp3->addAttribute('mimeType', 'audio/mpeg');
// mp3
$RemoveExt_mp3 = $staticContent->addChild('remove');
$RemoveExt_mp3->addAttribute('fileExtension', '.mp3');
$mimeMap_mp3 = $staticContent->addChild('mimeMap');
$mimeMap_mp3->addAttribute('fileExtension', '.mp3');
$mimeMap_mp3->addAttribute('mimeType', 'audio/mpeg');
// mp4
$RemoveExt_mp4 = $staticContent->addChild('remove');
$RemoveExt_mp4->addAttribute('fileExtension', '.mp4');
$mimeMap_mp4 = $staticContent->addChild('mimeMap');
$mimeMap_mp4->addAttribute('fileExtension', '.mp4');
$mimeMap_mp4->addAttribute('mimeType', 'video/mp4');
// ogg
$RemoveExt_ogg = $staticContent->addChild('remove');
$RemoveExt_ogg->addAttribute('fileExtension', '.ogg');
$mimeMap_ogg = $staticContent->addChild('mimeMap');
$mimeMap_ogg->addAttribute('fileExtension', '.ogg');
$mimeMap_ogg->addAttribute('mimeType', 'audio/ogg');
// ogv
$RemoveExt_ogv = $staticContent->addChild('remove');
$RemoveExt_ogv->addAttribute('fileExtension', '.ogv');
$mimeMap_ogv = $staticContent->addChild('mimeMap');
$mimeMap_ogv->addAttribute('fileExtension', '.ogv');
$mimeMap_ogv->addAttribute('mimeType', 'video/ogg');
// webm
$RemoveExt_webm = $staticContent->addChild('remove');
$RemoveExt_webm->addAttribute('fileExtension', '.webm');
$mimeMap_webm = $staticContent->addChild('mimeMap');
$mimeMap_webm->addAttribute('fileExtension', '.webm');
$mimeMap_webm->addAttribute('mimeType', 'video/webm');
// Proper svg serving. Required for svg webfonts on iPad
// svg
$RemoveExt_svg = $staticContent->addChild('remove');
$RemoveExt_svg->addAttribute('fileExtension', '.svg');
$mimeMap_svg = $staticContent->addChild('mimeMap');
$mimeMap_svg->addAttribute('fileExtension', '.svg');
$mimeMap_svg->addAttribute('mimeType', 'image/svg+xml');
//svgz
$RemoveExt_svgz = $staticContent->addChild('remove');
$RemoveExt_svgz->addAttribute('fileExtension', '.svgz');
$mimeMap_svgz = $staticContent->addChild('mimeMap');
$mimeMap_svgz->addAttribute('fileExtension', '.svgz');
$mimeMap_svgz->addAttribute('mimeType', 'image/svg+xml');
// HTML4 Web font mime types
// eot
$RemoveExt_eot = $staticContent->addChild('remove');
$RemoveExt_eot->addAttribute('fileExtension', '.eot');
$mimeMap_eot = $staticContent->addChild('mimeMap');
$mimeMap_eot->addAttribute('fileExtension', '.eot');
$mimeMap_eot->addAttribute('mimeType', 'application/vnd.ms-fontobject');
// ttf
$RemoveExt_ttf = $staticContent->addChild('remove');
$RemoveExt_ttf->addAttribute('fileExtension', '.ttf');
$mimeMap_ttf = $staticContent->addChild('mimeMap');
$mimeMap_ttf->addAttribute('fileExtension', '.ttf');
$mimeMap_ttf->addAttribute('mimeType', 'application/x-font-ttf');
// ttc
$RemoveExt_ttc = $staticContent->addChild('remove');
$RemoveExt_ttc->addAttribute('fileExtension', '.ttc');
$mimeMap_ttc = $staticContent->addChild('mimeMap');
$mimeMap_ttc->addAttribute('fileExtension', '.ttc');
$mimeMap_ttc->addAttribute('mimeType', 'application/x-font-ttf');
// otf
$RemoveExt_otf = $staticContent->addChild('remove');
$RemoveExt_otf->addAttribute('fileExtension', '.otf');
$mimeMap_otf = $staticContent->addChild('mimeMap');
$mimeMap_otf->addAttribute('fileExtension', '.otf');
$mimeMap_otf->addAttribute('mimeType', 'font/opentype');
// woff
$RemoveExt_wotf = $staticContent->addChild('remove');
$RemoveExt_wotf->addAttribute('fileExtension', '.woff');
$mimeMap_wotf = $staticContent->addChild('mimeMap');
$mimeMap_wotf->addAttribute('fileExtension', '.woff');
$mimeMap_wotf->addAttribute('mimeType', 'application/font-woff');
// crx
$RemoveExt_crx = $staticContent->addChild('remove');
$RemoveExt_crx->addAttribute('fileExtension', '.crx');
$mimeMap_crx = $staticContent->addChild('mimeMap');
$mimeMap_crx->addAttribute('fileExtension', '.crx');
$mimeMap_crx->addAttribute('mimeType', 'application/x-chrome-extension');
// xpi
$RemoveExt_xpi = $staticContent->addChild('remove');
$RemoveExt_xpi->addAttribute('fileExtension', '.xpi');
$mimeMap_xpi = $staticContent->addChild('mimeMap');
$mimeMap_xpi->addAttribute('fileExtension', '.xpi');
$mimeMap_xpi->addAttribute('mimeType', 'application/x-xpinstall');
// xpi
$RemoveExt_xpi = $staticContent->addChild('remove');
$RemoveExt_xpi->addAttribute('fileExtension', '.xpi');
$mimeMap_xpi = $staticContent->addChild('mimeMap');
$mimeMap_xpi->addAttribute('fileExtension', '.xpi');
$mimeMap_xpi->addAttribute('mimeType', 'application/x-xpinstall');
// safariextz
$RemoveExt_safariextz = $staticContent->addChild('remove');
$RemoveExt_safariextz->addAttribute('fileExtension', '.safariextz');
$mimeMap_safariextz = $staticContent->addChild('mimeMap');
$mimeMap_safariextz->addAttribute('fileExtension', '.safariextz');
$mimeMap_safariextz->addAttribute('mimeType', 'application/octet-stream');
// Flash Video mime types
// flv
$RemoveExt_flv = $staticContent->addChild('remove');
$RemoveExt_flv->addAttribute('fileExtension', '.flv');
$mimeMap_flv = $staticContent->addChild('mimeMap');
$mimeMap_flv->addAttribute('fileExtension', '.flv');
$mimeMap_flv->addAttribute('mimeType', 'video/x-flv');
// fv4
$RemoveExt_f4v = $staticContent->addChild('remove');
$RemoveExt_f4v->addAttribute('fileExtension', '.f4v');
$mimeMap_f4v = $staticContent->addChild('mimeMap');
$mimeMap_f4v->addAttribute('fileExtension', '.f4v');
$mimeMap_f4v->addAttribute('mimeType', 'video/mp4');
// Asorted types
// ico
$RemoveExt_ico = $staticContent->addChild('remove');
$RemoveExt_ico->addAttribute('fileExtension', '.ico');
$mimeMap_ico = $staticContent->addChild('mimeMap');
$mimeMap_ico->addAttribute('fileExtension', '.ico');
$mimeMap_ico->addAttribute('mimeType', 'image/x-icon');
//webp
$RemoveExt_webp = $staticContent->addChild('remove');
$RemoveExt_webp->addAttribute('fileExtension', '.webp');
$mimeMap_webp = $staticContent->addChild('mimeMap');
$mimeMap_webp->addAttribute('fileExtension', '.webp');
$mimeMap_webp->addAttribute('mimeType', 'image/webp');
//appcache
$RemoveExt_appcache = $staticContent->addChild('remove');
$RemoveExt_appcache->addAttribute('fileExtension', '.appcache');
$mimeMap_appcache = $staticContent->addChild('mimeMap');
$mimeMap_appcache->addAttribute('fileExtension', '.appcache');
$mimeMap_appcache->addAttribute('mimeType', 'text/cache-manifest');
//appcache
$RemoveExt_manifest = $staticContent->addChild('remove');
$RemoveExt_manifest->addAttribute('fileExtension', '.manifest');
$mimeMap_manifest = $staticContent->addChild('mimeMap');
$mimeMap_manifest->addAttribute('fileExtension', '.manifest');
$mimeMap_manifest->addAttribute('mimeType', 'text/cache-manifest');
// htc
$RemoveExt_htc = $staticContent->addChild('remove');
$RemoveExt_htc->addAttribute('fileExtension', '.htc');
$mimeMap_htc = $staticContent->addChild('mimeMap');
$mimeMap_htc->addAttribute('fileExtension', '.htc');
$mimeMap_htc->addAttribute('mimeType', 'text/x-component');
// vcf
$RemoveExt_vcf = $staticContent->addChild('remove');
$RemoveExt_vcf->addAttribute('fileExtension', '.vcf');
$mimeMap_vcf = $staticContent->addChild('mimeMap');
$mimeMap_vcf->addAttribute('fileExtension', '.vcf');
$mimeMap_vcf->addAttribute('mimeType', 'text/x-vcard');
// end </system.webServer>
// add 404 custom error block
// start <system.web>
$_404 = $webConfig->addChild('system.web');
$error_mode = $_404->addChild('customErrors');
$error_mode->addAttribute('mode', 'on');
$error_mode->addAttribute('defaultRedirect', '/404.php');
$remove = $error_mode->addChild('error');
$remove->addAttribute('statusCode', '404');
$remove->addAttribute('redirect', '/404.php');
// end <system.web>
// start all redirects
// Old URL New URL
// Example $redirects array = ('orgUrl' => 'http://example.com/oldurl' , 'redirect' => 'http://example.com/newurl' );
foreach ($redirects as $redirect) {
$item = $webConfig->addChild('location');
$item->addAttribute('path', $redirect['orgUrl']);
$webServer = $item->addChild('system.webServer');
$httpRedirect = $webServer->addChild('httpRedirect');
$httpRedirect->addAttribute('enabled', 'true');
$httpRedirect->addAttribute('destination', $redirect['redirect']);
$httpRedirect->addAttribute('httpResponseStatus', 'Permanent');
}
$webConfig->asXML('web.config');
return true;
}
}
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.012 0.003 18.16 8.3.5 0.005 0.012 22.05 8.3.4 0.007 0.011 18.84 8.3.3 0.004 0.012 19.04 8.3.2 0.004 0.004 20.48 8.3.1 0.003 0.005 22.10 8.3.0 0.000 0.008 22.51 8.2.18 0.004 0.011 16.75 8.2.17 0.012 0.009 22.96 8.2.16 0.006 0.009 19.22 8.2.15 0.004 0.004 24.18 8.2.14 0.003 0.005 24.66 8.2.13 0.008 0.000 26.16 8.2.12 0.004 0.004 19.11 8.2.11 0.000 0.010 22.11 8.2.10 0.003 0.010 17.91 8.2.9 0.000 0.008 19.28 8.2.8 0.006 0.003 17.97 8.2.7 0.003 0.006 17.63 8.2.6 0.005 0.005 18.05 8.2.5 0.009 0.000 18.07 8.2.4 0.004 0.004 18.28 8.2.3 0.004 0.004 18.29 8.2.2 0.004 0.004 17.80 8.2.1 0.008 0.000 17.90 8.2.0 0.006 0.003 17.78 8.1.28 0.015 0.003 25.92 8.1.27 0.006 0.003 22.50 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 20.80 8.1.23 0.011 0.000 17.64 8.1.22 0.005 0.003 17.74 8.1.21 0.000 0.008 18.77 8.1.20 0.007 0.003 17.48 8.1.19 0.005 0.003 17.63 8.1.18 0.004 0.004 18.71 8.1.17 0.003 0.005 18.91 8.1.16 0.004 0.004 22.21 8.1.15 0.004 0.004 18.70 8.1.14 0.000 0.009 17.50 8.1.13 0.000 0.007 17.95 8.1.12 0.004 0.004 17.62 8.1.11 0.006 0.003 17.55 8.1.10 0.004 0.004 17.61 8.1.9 0.000 0.008 17.64 8.1.8 0.004 0.004 17.50 8.1.7 0.000 0.008 17.57 8.1.6 0.008 0.000 17.62 8.1.5 0.003 0.006 17.68 8.1.4 0.008 0.000 17.54 8.1.3 0.000 0.009 17.82 8.1.2 0.008 0.000 17.70 8.1.1 0.004 0.004 17.55 8.1.0 0.004 0.004 17.51 8.0.30 0.000 0.009 18.77 8.0.29 0.004 0.004 16.75 8.0.28 0.000 0.007 18.53 8.0.27 0.004 0.004 17.41 8.0.26 0.000 0.007 16.93 8.0.25 0.008 0.000 17.10 8.0.24 0.004 0.004 17.13 8.0.23 0.000 0.007 17.11 8.0.22 0.000 0.007 17.09 8.0.21 0.007 0.000 17.10 8.0.20 0.000 0.006 17.09 8.0.19 0.005 0.002 17.13 8.0.18 0.000 0.007 17.07 8.0.17 0.004 0.004 17.04 8.0.16 0.005 0.003 17.02 8.0.15 0.007 0.000 16.99 8.0.14 0.003 0.006 16.97 8.0.13 0.000 0.006 13.57 8.0.12 0.003 0.006 16.89 8.0.11 0.004 0.004 17.05 8.0.10 0.004 0.004 16.98 8.0.9 0.007 0.000 16.94 8.0.8 0.006 0.009 17.10 8.0.7 0.004 0.004 17.16 8.0.6 0.007 0.000 16.87 8.0.5 0.004 0.004 16.87 8.0.3 0.009 0.010 17.24 8.0.2 0.005 0.015 17.44 8.0.1 0.004 0.004 17.22 8.0.0 0.015 0.007 16.84 7.4.33 0.003 0.003 15.00 7.4.32 0.000 0.006 16.74 7.4.30 0.000 0.008 16.67 7.4.29 0.000 0.008 16.74 7.4.28 0.003 0.005 16.77 7.4.27 0.000 0.007 16.67 7.4.26 0.003 0.007 16.73 7.4.25 0.000 0.008 16.48 7.4.24 0.003 0.004 16.69 7.4.23 0.005 0.002 16.73 7.4.22 0.009 0.009 16.60 7.4.21 0.006 0.009 16.83 7.4.20 0.004 0.004 16.78 7.4.19 0.000 0.009 16.81 7.4.16 0.003 0.013 16.82 7.4.15 0.007 0.010 17.40 7.4.14 0.012 0.008 17.86 7.4.13 0.009 0.015 16.60 7.4.12 0.009 0.010 16.75 7.4.11 0.014 0.003 16.72 7.4.10 0.012 0.012 16.68 7.4.9 0.012 0.006 16.50 7.4.8 0.004 0.015 19.39 7.4.7 0.014 0.009 16.56 7.4.6 0.009 0.015 16.69 7.4.5 0.006 0.000 16.39 7.4.4 0.008 0.004 22.77 7.4.3 0.006 0.013 16.80 7.4.0 0.012 0.003 14.80 7.3.33 0.005 0.000 13.45 7.3.32 0.003 0.003 13.42 7.3.31 0.004 0.004 16.33 7.3.30 0.004 0.004 16.31 7.3.29 0.011 0.006 16.50 7.3.28 0.013 0.003 16.40 7.3.27 0.010 0.013 17.40 7.3.26 0.012 0.012 16.49 7.3.25 0.007 0.011 16.55 7.3.24 0.005 0.013 16.48 7.3.23 0.015 0.003 16.64 7.3.21 0.011 0.007 16.69 7.3.20 0.010 0.007 19.39 7.3.19 0.013 0.010 16.79 7.3.18 0.012 0.004 16.53 7.3.17 0.009 0.009 16.44 7.3.16 0.010 0.006 16.45 7.3.12 0.011 0.004 15.18 7.2.33 0.013 0.007 16.81 7.2.32 0.011 0.011 16.79 7.2.31 0.014 0.006 16.41 7.2.30 0.009 0.009 16.72 7.2.29 0.003 0.013 16.77 7.2.6 0.003 0.012 16.60 7.1.20 0.004 0.008 15.55 7.1.7 0.006 0.006 17.05 7.1.6 0.007 0.007 19.82 7.1.5 0.015 0.004 16.90 7.1.0 0.003 0.090 22.42 7.0.20 0.000 0.007 16.79 7.0.14 0.007 0.073 22.19 7.0.10 0.053 0.077 20.16 7.0.9 0.050 0.087 20.17 7.0.8 0.057 0.067 20.23 7.0.7 0.043 0.047 20.25 7.0.6 0.057 0.073 20.20 7.0.5 0.047 0.083 20.62 7.0.4 0.000 0.090 20.14 7.0.3 0.013 0.080 20.11 7.0.2 0.003 0.087 20.18 7.0.1 0.013 0.073 20.10 7.0.0 0.023 0.067 20.10 5.6.28 0.000 0.077 21.13 5.6.25 0.027 0.033 20.71 5.6.24 0.013 0.037 20.66 5.6.23 0.010 0.077 20.81 5.6.22 0.013 0.077 20.77 5.6.21 0.007 0.083 20.70 5.6.20 0.003 0.083 21.17 5.6.19 0.013 0.080 21.09 5.6.18 0.010 0.080 21.20 5.6.17 0.010 0.073 21.20 5.6.16 0.010 0.083 21.08 5.6.15 0.007 0.080 21.18 5.6.14 0.010 0.083 21.15 5.6.13 0.007 0.083 21.22 5.6.12 0.003 0.087 21.19 5.6.11 0.007 0.083 21.02 5.6.10 0.017 0.057 21.23 5.6.9 0.013 0.060 21.23 5.6.8 0.003 0.070 20.53 5.6.7 0.010 0.033 20.60 5.6.6 0.003 0.040 20.63 5.6.5 0.000 0.050 20.65 5.6.4 0.007 0.040 20.61 5.6.3 0.003 0.077 20.53 5.6.2 0.003 0.043 20.52 5.6.1 0.003 0.040 20.54 5.6.0 0.003 0.040 20.59 5.5.38 0.013 0.077 20.51 5.5.37 0.007 0.080 20.54 5.5.36 0.013 0.077 20.54 5.5.35 0.007 0.083 20.54 5.5.34 0.007 0.053 20.93 5.5.33 0.003 0.057 21.05 5.5.32 0.010 0.080 20.95 5.5.31 0.010 0.080 21.05 5.5.30 0.020 0.073 21.03 5.5.29 0.013 0.077 20.98 5.5.28 0.010 0.083 21.06 5.5.27 0.003 0.057 20.93 5.5.26 0.013 0.080 21.05 5.5.25 0.013 0.073 20.83 5.5.24 0.003 0.047 20.36 5.5.23 0.007 0.047 20.34 5.5.22 0.017 0.033 20.25 5.5.21 0.000 0.057 20.43 5.5.20 0.010 0.040 20.28 5.5.19 0.007 0.047 20.39 5.5.18 0.007 0.037 20.30 5.5.16 0.007 0.047 20.33 5.5.15 0.010 0.060 20.25 5.5.14 0.007 0.043 20.41 5.5.13 0.007 0.037 20.23 5.5.12 0.003 0.040 20.32 5.5.11 0.003 0.037 20.29 5.5.10 0.010 0.053 20.22 5.5.9 0.007 0.040 20.30 5.5.8 0.003 0.063 20.21 5.5.7 0.007 0.037 20.21 5.5.6 0.007 0.040 20.21 5.5.5 0.000 0.043 20.30 5.5.4 0.000 0.063 20.19 5.5.3 0.007 0.047 20.23 5.5.2 0.007 0.037 20.07 5.5.1 0.000 0.043 20.19 5.5.0 0.000 0.070 20.05 5.4.45 0.007 0.077 19.62 5.4.44 0.003 0.083 19.43 5.4.43 0.017 0.070 19.35 5.4.42 0.007 0.090 19.22 5.4.41 0.010 0.063 19.29 5.4.40 0.007 0.037 19.03 5.4.39 0.017 0.053 18.93 5.4.38 0.010 0.033 18.96 5.4.37 0.010 0.033 19.03 5.4.36 0.007 0.037 19.04 5.4.35 0.000 0.043 19.18 5.4.34 0.007 0.040 19.25 5.4.32 0.003 0.040 19.03 5.4.31 0.003 0.050 19.29 5.4.30 0.000 0.040 19.19 5.4.29 0.003 0.040 19.11 5.4.28 0.010 0.073 19.18 5.4.27 0.003 0.053 19.12 5.4.26 0.007 0.043 19.19 5.4.25 0.000 0.037 19.05 5.4.24 0.003 0.073 19.25 5.4.23 0.003 0.040 19.11 5.4.22 0.007 0.033 19.08 5.4.21 0.010 0.073 19.10 5.4.20 0.000 0.037 19.10 5.4.19 0.010 0.053 19.25 5.4.18 0.013 0.033 19.10 5.4.17 0.007 0.033 18.91 5.4.16 0.000 0.057 19.08 5.4.15 0.003 0.040 18.95 5.4.14 0.007 0.033 16.53 5.4.13 0.000 0.037 16.31 5.4.12 0.000 0.037 16.53 5.4.11 0.003 0.033 16.50 5.4.10 0.007 0.033 16.48 5.4.9 0.000 0.040 16.59 5.4.8 0.007 0.057 16.49 5.4.7 0.003 0.060 16.55 5.4.6 0.007 0.037 16.43 5.4.5 0.010 0.070 16.43 5.4.4 0.003 0.047 16.51 5.4.3 0.000 0.080 16.52 5.4.2 0.010 0.070 16.39 5.4.1 0.000 0.053 16.56 5.4.0 0.007 0.070 15.83 5.3.29 0.010 0.037 14.93 5.3.28 0.003 0.037 14.71 5.3.27 0.007 0.033 14.69 5.3.26 0.000 0.037 14.84 5.3.25 0.000 0.037 14.66 5.3.24 0.003 0.057 14.77 5.3.23 0.007 0.043 14.86 5.3.22 0.007 0.037 14.77 5.3.21 0.000 0.040 14.84 5.3.20 0.000 0.043 14.73 5.3.19 0.000 0.037 14.68 5.3.18 0.010 0.060 14.72 5.3.17 0.003 0.037 14.76 5.3.16 0.003 0.040 14.68 5.3.15 0.003 0.033 14.82 5.3.14 0.010 0.073 14.61 5.3.13 0.013 0.070 14.66 5.3.12 0.010 0.047 14.73 5.3.11 0.010 0.073 14.71 5.3.10 0.010 0.073 14.18 5.3.9 0.000 0.077 14.26 5.3.8 0.010 0.073 14.24 5.3.7 0.010 0.060 14.20 5.3.6 0.010 0.070 14.25 5.3.5 0.020 0.067 13.99 5.3.4 0.010 0.063 13.99 5.3.3 0.003 0.070 14.02 5.3.2 0.003 0.067 13.84 5.3.1 0.010 0.060 13.78 5.3.0 0.013 0.063 13.75
preferences:dark mode live preview
41.43 ms | 401 KiB | 5 Q