12 sec in total
325 ms
11.3 sec
407 ms
Visit robsnow.eu now to see the best up-to-date Rob Snow content and also check out these interesting facts you probably never knew about robsnow.eu
Welcome to the homepage of illustrator Rob Snow; aka Rob Art | Illustration. Review projects, buy art and commission Rob as well!
Visit robsnow.euWe analyzed Robsnow.eu page load time and found that the first response time was 325 ms and then it took 11.7 sec to load all DOM resources and completely render a web page. This is a poor result, as 90% of websites can load faster.
robsnow.eu performance score
name
value
score
weighting
Value9.8 s
0/100
10%
Value11.5 s
0/100
25%
Value18.9 s
0/100
10%
Value4,790 ms
0/100
30%
Value0.905
3/100
15%
Value34.7 s
0/100
10%
325 ms
3311 ms
20 ms
19 ms
188 ms
Our browser made a total of 263 requests to load all elements on the main page. We found that 75% of them (196 requests) were addressed to the original Robsnow.eu, 12% (31 requests) were made to and 5% (12 requests) were made to Fonts.gstatic.com. The less responsive or slowest element that took the longest time to load (4.6 sec) relates to the external source Stats1.wpmudev.com.
Page size can be reduced by 438.1 kB (8%)
5.4 MB
5.0 MB
In fact, the total size of Robsnow.eu main page is 5.4 MB. This result falls beyond the top 1M of websites and identifies a large and not optimized web page that may take ages to load. 85% of websites need less resources to load and that’s why Accessify’s recommendations for optimization and resource minification can be helpful for this project. Images take 4.1 MB which makes up the majority of the site volume.
Potential reduce by 385.1 kB
HTML content can be minified and compressed by a website’s server. The most efficient way is to compress content using GZIP which reduces data amount travelling through the network between server and browser. HTML code on this page is well minified. It is highly recommended that content of this web page should be compressed using GZIP, as it can save up to 385.1 kB or 87% of the original size.
Potential reduce by 1.3 kB
Image size optimization can help to speed up a website loading time. The chart above shows the difference between the size before and after optimization. Rob Snow images are well optimized though.
Potential reduce by 17.6 kB
It’s better to minify JavaScript in order to improve website performance. The diagram shows the current total size of all JavaScript files against the prospective JavaScript size after its minification and compression. This website has mostly compressed JavaScripts.
Potential reduce by 34.0 kB
CSS files minification is very important to reduce a web page rendering time. The faster CSS files can load, the earlier a page can be rendered. Robsnow.eu needs all CSS files to be minified and compressed as it can save up to 34.0 kB or 12% of the original size.
Number of requests can be reduced by 126 (59%)
212
86
The browser has sent 212 CSS, Javascripts, AJAX and image requests in order to completely render the main page of Rob Snow. We recommend that multiple CSS and JavaScript files should be merged into one by each type, as it can help reduce assets requests from 75 to 1 for JavaScripts and from 53 to 1 for CSS and as a result speed up the page load time.
robsnow.eu
325 ms
robsnow.eu
3311 ms
javascript;base64,d2luZG93Ll93Y2EgPSB3aW5kb3cuX3djYSB8fCBbXTs=
20 ms
dmVyPTYuNC4zIn19OwovKiEgVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkICovCiFmdW5jdGlvbihpLG4pe3ZhciBvLHMsZTtmdW5jdGlvbiBjKGUpe3RyeXt2YXIgdD17c3VwcG9ydFRlc3RzOmUsdGltZXN0YW1wOihuZXcgRGF0ZSkudmFsdWVPZigpfTtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKG8sSlNPTi5zdHJpbmdpZnkodCkpfWNhdGNoKGUpe319ZnVuY3Rpb24gcChlLHQsbil7ZS5jbGVhclJlY3QoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCksZS5maWxsVGV4dCh0LDAsMCk7dmFyIHQ9bmV3IFVpbnQzMkFycmF5KGUuZ2V0SW1hZ2VEYXRhKDAsMCxlLmNhbnZhcy53aWR0aCxlLmNhbnZhcy5oZWlnaHQpLmRhdGEpLHI9KGUuY2xlYXJSZWN0KDAsMCxlLmNhbnZhcy53aWR0aCxlLmNhbnZhcy5oZWlnaHQpLGUuZmlsbFRleHQobiwwLDApLG5ldyBVaW50MzJBcnJheShlLmdldEltYWdlRGF0YSgwLDAsZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0KS5kYXRhKSk7cmV0dXJuIHQuZXZlcnkoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXJbdF19KX1mdW5jdGlvbiB1KGUsdCxuKXtzd2l0Y2godCl7Y2FzZSJmbGFnIjpyZXR1cm4gbihlLCJcdWQ4M2NcdWRmZjNcdWZlMGZcdTIwMGRcdTI2YTdcdWZlMGYiLCJcdWQ4M2NcdWRmZjNcdWZlMGZcdTIwMGJcdTI2YTdcdWZlMGYiKT8hMTohbihlLCJcdWQ4M2NcdWRkZmFcdWQ4M2NcdWRkZjMiLCJcdWQ4M2NcdWRkZmFcdTIwMGJcdWQ4M2NcdWRkZjMiKSYmIW4oZSwiXHVkODNjXHVkZmY0XHVkYjQwXHVkYzY3XHVkYjQwXHVkYzYyXHVkYjQwXHVkYzY1XHVkYjQwXHVkYzZlXHVkYjQwXHVkYzY3XHVkYjQwXHVkYzdmIiwiXHVkODNjXHVkZmY0XHUyMDBiXHVkYjQwXHVkYzY3XHUyMDBiXHVkYjQwXHVkYzYyXHUyMDBiXHVkYjQwXHVkYzY1XHUyMDBiXHVkYjQwXHVkYzZlXHUyMDBiXHVkYjQwXHVkYzY3XHUyMDBiXHVkYjQwXHVkYzdmIik7Y2FzZSJlbW9qaSI6cmV0dXJuIW4oZSwiXHVkODNlXHVkZWYxXHVkODNjXHVkZmZiXHUyMDBkXHVkODNlXHVkZWYyXHVkODNjXHVkZmZmIiwiXHVkODNlXHVkZWYxXHVkODNjXHVkZmZiXHUyMDBiXHVkODNlXHVkZWYyXHVkODNjXHVkZmZmIil9cmV0dXJuITF9ZnVuY3Rpb24gZihlLHQsbil7dmFyIHI9InVuZGVmaW5lZCIhPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlP25ldyBPZmZzY3JlZW5DYW52YXMoMzAwLDE1MCk6aS5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxhPXIuZ2V0Q29udGV4dCgiMmQiLHt3aWxsUmVhZEZyZXF1ZW50bHk6ITB9KSxvPShhLnRleHRCYXNlbGluZT0idG9wIixhLmZvbnQ9IjYwMCAzMnB4IEFyaWFsIix7fSk7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXQoYSxlLG4pfSksb31mdW5jdGlvbiB0KGUpe3ZhciB0PWkuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7dC5zcmM9ZSx0LmRlZmVyPSEwLGkuaGVhZC5hcHBlbmRDaGlsZCh0KX0idW5kZWZpbmVkIiE9dHlwZW9mIFByb21pc2UmJihvPSJ3cEVtb2ppU2V0dGluZ3NTdXBwb3J0cyIscz1bImZsYWciLCJlbW9qaSJdLG4uc3VwcG9ydHM9e2V2ZXJ5dGhpbmc6ITAsZXZlcnl0aGluZ0V4Y2VwdEZsYWc6ITB9LGU9bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7aS5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixlLHtvbmNlOiEwfSl9KSxuZXcgUHJvbWlzZShmdW5jdGlvbih0KXt2YXIgbj1mdW5jdGlvbigpe3RyeXt2YXIgZT1KU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0obykpO2lmKCJvYmplY3QiPT10eXBlb2YgZSYmIm51bWJlciI9PXR5cGVvZiBlLnRpbWVzdGFtcCYmKG5ldyBEYXRlKS52YWx1ZU9mKCk8ZS50aW1lc3RhbXArNjA0ODAwJiYib2JqZWN0Ij09dHlwZW9mIGUuc3VwcG9ydFRlc3RzKXJldHVybiBlLnN1cHBvcnRUZXN0c31jYXRjaChlKXt9cmV0dXJuIG51bGx9KCk7aWYoIW4pe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyJiYidW5kZWZpbmVkIiE9dHlwZW9mIE9mZnNjcmVlbkNhbnZhcyYmInVuZGVmaW5lZCIhPXR5cGVvZiBVUkwmJlVSTC5jcmVhdGVPYmplY3RVUkwmJiJ1bmRlZmluZWQiIT10eXBlb2YgQmxvYil0cnl7dmFyIGU9InBvc3RNZXNzYWdlKCIrZi50b1N0cmluZygpKyIoIitbSlNPTi5zdHJpbmdpZnkocyksdS50b1N0cmluZygpLHAudG9TdHJpbmcoKV0uam9pbigiLCIpKyIpKTsiLHI9bmV3IEJsb2IoW2VdLHt0eXBlOiJ0ZXh0L2phdmFzY3JpcHQifSksYT1uZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwocikse25hbWU6IndwVGVzdEVtb2ppU3VwcG9ydHMifSk7cmV0dXJuIHZvaWQoYS5vbm1lc3NhZ2U9ZnVuY3Rpb24oZSl7YyhuPWUuZGF0YSksYS50ZXJtaW5hdGUoKSx0KG4pfSl9Y2F0Y2goZSl7fWMobj1mKHMsdSxwKSl9dChuKX0pLnRoZW4oZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGUpbi5zdXBwb3J0c1t0XT1lW3RdLG4uc3VwcG9ydHMuZXZlcnl0aGluZz1uLnN1cHBvcnRzLmV2ZXJ5dGhpbmcmJm4uc3VwcG9ydHNbdF0sImZsYWciIT09dCYmKG4uc3VwcG9ydHMuZXZlcnl0aGluZ0V4Y2VwdEZsYWc9bi5zdXBwb3J0cy5ldmVyeXRoaW5nRXhjZXB0RmxhZyYmbi5zdXBwb3J0c1t0XSk7bi5zdXBwb3J0cy5ldmVyeXRoaW5nRXhjZXB0RmxhZz1uLnN1cHBvcnRzLmV2ZXJ5dGhpbmdFeGNlcHRGbGFnJiYhbi5zdXBwb3J0cy5mbGFnLG4uRE9NUmVhZHk9ITEsbi5yZWFkeUNhbGxiYWNrPWZ1bmN0aW9uKCl7bi5ET01SZWFkeT0hMH19KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGV9KS50aGVuKGZ1bmN0aW9uKCl7dmFyIGU7bi5zdXBwb3J0cy5ldmVyeXRoaW5nfHwobi5yZWFkeUNhbGxiYWNrKCksKGU9bi5zb3VyY2V8fHt9KS5jb25jYXRlbW9qaT90KGUuY29uY2F0ZW1vamkpOmUud3BlbW9qaSYmZS50d2Vtb2ppJiYodChlLnR3ZW1vamkpLHQoZS53cGVtb2ppKSkpfSkpfSgod2luZG93LGRvY3VtZW50KSx3aW5kb3cuX3dwZW1vamlTZXR0aW5ncyk7Ci8qIF1dPiAqLwo=
19 ms
autoptimize_single_184bf2028a3fb4b2525cfeccf14628f3.css
188 ms
sweetalert2.min.css
284 ms
autoptimize_single_721fa6a1bd1c28e4b171c88f7a42e409.css
290 ms
autoptimize_single_7956576df3f99b38700a81e57775c255.css
293 ms
dashicons.min.css
390 ms
mediaelementplayer-legacy.min.css
288 ms
wp-mediaelement.min.css
287 ms
autoptimize_single_20e8490fab0dcf7557a5c8b54494db6f.css
379 ms
autoptimize_single_359aca8a88b2331aa34ac505acad9911.css
384 ms
autoptimize_single_15a5edb399271f812847871978ee6cf5.css
382 ms
autoptimize_single_1c86eae769594960ac0ca2c97f1e0fd8.css
386 ms
autoptimize_single_2ae89dcab13d1d471fd1cdc7dab28f3b.css
388 ms
autoptimize_single_55a54f958c00ab3123d151720e46c3d8.css
477 ms
autoptimize_single_54d4eedc552c499c4a8d6b89c23d3df1.css
489 ms
autoptimize_single_48c9592b222fcdcf4b21e2cd908257a1.css
486 ms
autoptimize_single_3b2fa04d51b51aedbe93955996b9e44d.css
487 ms
autoptimize_single_bb4dfbdde8f2a8d4018c1f0293a03483.css
490 ms
autoptimize_single_95de96259dc444872a5bb3cf1052a81c.css
489 ms
simple-restrict-public.css
572 ms
autoptimize_single_279a41fe094a1c0ff59f6d84dc6ec0d2.css
573 ms
autoptimize_single_b9fc5b4f72501ef8bbdeb442018c81f7.css
577 ms
autoptimize_single_1f8e5e6800d697588f284315c2503385.css
584 ms
autoptimize_single_00f423c66805b4bbef8814e38eed36bd.css
671 ms
autoptimize_single_fa10e481239e720ff6a5ca15e398fb21.css
583 ms
owl.carousel.min.css
665 ms
autoptimize_single_ba2946f0b4c1bbf95ffae81797b70138.css
667 ms
css
56 ms
elementor-icons.min.css
690 ms
frontend-lite.min.css
769 ms
swiper.min.css
692 ms
autoptimize_single_c2942105f67d886eb9e6671406617e8f.css
760 ms
frontend-lite.min.css
760 ms
autoptimize_single_9873b397dfb2706a3bf0bfedc4e772d8.css
765 ms
autoptimize_single_0bbb115bdf1574968f347256c40eeabb.css
767 ms
autoptimize_single_c9815b8bef0b9d74fc41c8842da689b5.css
772 ms
autoptimize_single_082c8cbb6a699f0c6ac2d12ddc1c38c0.css
855 ms
css
57 ms
css
58 ms
w.js
43 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgQ2xpX0RhdGEgPSB7Im5uX2Nvb2tpZV9pZHMiOltdLCJjb29raWVsaXN0IjpbXSwibm9uX25lY2Vzc2FyeV9jb29raWVzIjpbXSwiY2NwYUVuYWJsZWQiOiIiLCJjY3BhUmVnaW9uQmFzZWQiOiIiLCJjY3BhQmFyRW5hYmxlZCI6IiIsInN0cmljdGx5RW5hYmxlZCI6WyJuZWNlc3NhcnkiLCJvYmxpZ2F0b2lyZSJdLCJjY3BhVHlwZSI6ImdkcHIiLCJqc19ibG9ja2luZyI6IjEiLCJjdXN0b21faW50ZWdyYXRpb24iOiIiLCJ0cmlnZ2VyRG9tUmVmcmVzaCI6IiIsInNlY3VyZV9jb29raWVzIjoiIn07CnZhciBjbGlfY29va2llYmFyX3NldHRpbmdzID0geyJhbmltYXRlX3NwZWVkX2hpZGUiOiI1MDAiLCJhbmltYXRlX3NwZWVkX3Nob3ciOiI1MDAiLCJiYWNrZ3JvdW5kIjoiIzUxODRiMyIsImJvcmRlciI6IiNiMWE2YTZjMiIsImJvcmRlcl9vbiI6IiIsImJ1dHRvbl8xX2J1dHRvbl9jb2xvdXIiOiIjMjA2YmIyIiwiYnV0dG9uXzFfYnV0dG9uX2hvdmVyIjoiIzFhNTY4ZSIsImJ1dHRvbl8xX2xpbmtfY29sb3VyIjoiI2ZmZiIsImJ1dHRvbl8xX2FzX2J1dHRvbiI6IjEiLCJidXR0b25fMV9uZXdfd2luIjoiIiwiYnV0dG9uXzJfYnV0dG9uX2NvbG91ciI6IiMzMzMiLCJidXR0b25fMl9idXR0b25faG92ZXIiOiIjMjkyOTI5IiwiYnV0dG9uXzJfbGlua19jb2xvdXIiOiIjNDQ0IiwiYnV0dG9uXzJfYXNfYnV0dG9uIjoiIiwiYnV0dG9uXzJfaGlkZWJhciI6IiIsImJ1dHRvbl8zX2J1dHRvbl9jb2xvdXIiOiIjZGVkZmUwIiwiYnV0dG9uXzNfYnV0dG9uX2hvdmVyIjoiI2IyYjJiMyIsImJ1dHRvbl8zX2xpbmtfY29sb3VyIjoiIzMzMzMzMyIsImJ1dHRvbl8zX2FzX2J1dHRvbiI6IjEiLCJidXR0b25fM19uZXdfd2luIjoiIiwiYnV0dG9uXzRfYnV0dG9uX2NvbG91ciI6IiNkZWRmZTAiLCJidXR0b25fNF9idXR0b25faG92ZXIiOiIjYjJiMmIzIiwiYnV0dG9uXzRfbGlua19jb2xvdXIiOiIjMzMzMzMzIiwiYnV0dG9uXzRfYXNfYnV0dG9uIjoiMSIsImJ1dHRvbl83X2J1dHRvbl9jb2xvdXIiOiIjMjA2YmIyIiwiYnV0dG9uXzdfYnV0dG9uX2hvdmVyIjoiIzFhNTY4ZSIsImJ1dHRvbl83X2xpbmtfY29sb3VyIjoiI2ZmZiIsImJ1dHRvbl83X2FzX2J1dHRvbiI6IjEiLCJidXR0b25fN19uZXdfd2luIjoiIiwiZm9udF9mYW1pbHkiOiJIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiLCJoZWFkZXJfZml4IjoiIiwibm90aWZ5X2FuaW1hdGVfaGlkZSI6IjEiLCJub3RpZnlfYW5pbWF0ZV9zaG93IjoiIiwibm90aWZ5X2Rpdl9pZCI6IiNjb29raWUtbGF3LWluZm8tYmFyIiwibm90aWZ5X3Bvc2l0aW9uX2hvcml6b250YWwiOiJyaWdodCIsIm5vdGlmeV9wb3NpdGlvbl92ZXJ0aWNhbCI6ImJvdHRvbSIsInNjcm9sbF9jbG9zZSI6IiIsInNjcm9sbF9jbG9zZV9yZWxvYWQiOiIiLCJhY2NlcHRfY2xvc2VfcmVsb2FkIjoiIiwicmVqZWN0X2Nsb3NlX3JlbG9hZCI6IiIsInNob3dhZ2Fpbl90YWIiOiIiLCJzaG93YWdhaW5fYmFja2dyb3VuZCI6IiNmZmYiLCJzaG93YWdhaW5fYm9yZGVyIjoiIzAwMCIsInNob3dhZ2Fpbl9kaXZfaWQiOiIjY29va2llLWxhdy1pbmZvLWFnYWluIiwic2hvd2FnYWluX3hfcG9zaXRpb24iOiIxMDBweCIsInRleHQiOiIjZmZmZmZmIiwic2hvd19vbmNlX3luIjoiIiwic2hvd19vbmNlIjoiMTAwMDAiLCJsb2dnaW5nX29uIjoiIiwiYXNfcG9wdXAiOiIiLCJwb3B1cF9vdmVybGF5IjoiMSIsImJhcl9oZWFkaW5nX3RleHQiOiJDb29raWUgTm90aWNlIiwiY29va2llX2Jhcl9hcyI6InBvcHVwIiwicG9wdXBfc2hvd2FnYWluX3Bvc2l0aW9uIjoiYm90dG9tLXJpZ2h0Iiwid2lkZ2V0X3Bvc2l0aW9uIjoibGVmdCJ9Owp2YXIgbG9nX29iamVjdCA9IHsiYWpheF91cmwiOiJodHRwczpcL1wvcm9ic25vdy5ldVwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIn07Ci8qIF1dPiAqLwo=
10 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd2NfYWRkX3RvX2NhcnRfcGFyYW1zID0geyJhamF4X3VybCI6Ilwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIiwid2NfYWpheF91cmwiOiJcLz93Yy1hamF4PSUlZW5kcG9pbnQlJSIsImkxOG5fdmlld19jYXJ0IjoiVmlldyBiYXNrZXQiLCJjYXJ0X3VybCI6Imh0dHBzOlwvXC9yb2Jzbm93LmV1XC9zaG9wXC9jYXJ0XC8iLCJpc19jYXJ0IjoiIiwiY2FydF9yZWRpcmVjdF9hZnRlcl9hZGQiOiJubyJ9OwovKiBdXT4gKi8K
9 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd29vY29tbWVyY2VfcGFyYW1zID0geyJhamF4X3VybCI6Ilwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIiwid2NfYWpheF91cmwiOiJcLz93Yy1hamF4PSUlZW5kcG9pbnQlJSJ9OwovKiBdXT4gKi8K
10 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgV1BfU3RhdGlzdGljc19UcmFja2VyX09iamVjdCA9IHsiaGl0UmVxdWVzdFVybCI6Imh0dHBzOlwvXC9yb2Jzbm93LmV1XC93cC1qc29uXC93cC1zdGF0aXN0aWNzXC92MlwvaGl0P3dwX3N0YXRpc3RpY3NfaGl0X3Jlc3Q9eWVzJnRyYWNrX2FsbD0xJmN1cnJlbnRfcGFnZV90eXBlPWhvbWUmY3VycmVudF9wYWdlX2lkPTEzMTA4MyZzZWFyY2hfcXVlcnkmcGFnZV91cmk9THc9Iiwia2VlcE9ubGluZVJlcXVlc3RVcmwiOiJodHRwczpcL1wvcm9ic25vdy5ldVwvd3AtanNvblwvd3Atc3RhdGlzdGljc1wvdjJcL29ubGluZT93cF9zdGF0aXN0aWNzX2hpdF9yZXN0PXllcyZ0cmFja19hbGw9MSZjdXJyZW50X3BhZ2VfdHlwZT1ob21lJmN1cnJlbnRfcGFnZV9pZD0xMzEwODMmc2VhcmNoX3F1ZXJ5JnBhZ2VfdXJpPUx3PSIsIm9wdGlvbiI6eyJkbnRFbmFibGVkIjpmYWxzZSwiY2FjaGVDb21wYXRpYmlsaXR5IjoiMSJ9fTsKLyogXV0+ICovCg==
10 ms
s-202408.js
43 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe30pOwovKiBdXT4gKi8K
9 ms
js
93 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9Cmd0YWcoJ3NldCcsICdsaW5rZXInLCB7ImRvbWFpbnMiOlsicm9ic25vdy5ldSJdfSApOwpndGFnKCJqcyIsIG5ldyBEYXRlKCkpOwpndGFnKCJzZXQiLCAiZGV2ZWxvcGVyX2lkLmRaVE5pTVQiLCB0cnVlKTsKZ3RhZygiY29uZmlnIiwgIkctS1k2UTZKNVdIMyIpOwovKiBdXT4gKi8K
8 ms
javascript;base64,DQohZnVuY3Rpb24oZSl7aWYoIXdpbmRvdy5waW50cmspe3dpbmRvdy5waW50cmsgPSBmdW5jdGlvbiAoKSB7DQp3aW5kb3cucGludHJrLnF1ZXVlLnB1c2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSl9O3Zhcg0KICBuPXdpbmRvdy5waW50cms7bi5xdWV1ZT1bXSxuLnZlcnNpb249IjMuMCI7dmFyDQogIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7dC5hc3luYz0hMCx0LnNyYz1lO3Zhcg0KICByPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTsNCiAgci5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHIpfX0oImh0dHBzOi8vcy5waW5pbWcuY29tL2N0L2NvcmUuanMiKTsNCnBpbnRyaygnbG9hZCcsICcyNjE0MzM3NjE1OTU2Jywge2VtOiAnPHVzZXJfZW1haWxfYWRkcmVzcz4nfSk7DQpwaW50cmsoJ3BhZ2UnKTsNCg==
8 ms
javascript;base64,DQpwaW50cmsoJ3RyYWNrJywgJ3BhZ2V2aXNpdCcpOw0K
9 ms
js
129 ms
javascript;base64,DQogIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOw0KICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9DQogIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7DQoNCiAgZ3RhZygnY29uZmlnJywgJ1VBLTE4OTM5OTUtMicpOw0K
9 ms
javascript;base64,CgkJCQl2YXIgX2hzcSA9IF9oc3EgfHwgW107CgkJCQlfaHNxLnB1c2goWyJzZXRDb250ZW50VHlwZSIsICJzdGFuZGFyZC1wYWdlIl0pOwoJCQk=
8 ms
javascript;base64,CiAgICAgICAgdmFyIGFqYXh1cmwgPSAnaHR0cHM6Ly9yb2Jzbm93LmV1L3dwLWFkbWluL2FkbWluLWFqYXgucGhwJzsKICAgIA==
8 ms
CgkJCQkJbi5jYWxsTWV0aG9kLmFwcGx5KG4sYXJndW1lbnRzKTpuLnF1ZXVlLnB1c2goYXJndW1lbnRzKX07aWYoIWYuX2ZicSlmLl9mYnE9bjsKCQkJCQluLnB1c2g9bjtuLmxvYWRlZD0hMDtuLnZlcnNpb249JzIuMCc7bi5xdWV1ZT1bXTt0PWIuY3JlYXRlRWxlbWVudChlKTt0LmFzeW5jPSEwOwoJCQkJCXQuc3JjPXY7cz1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpWzBdO3MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCxzKX0od2luZG93LAoJCQkJCWRvY3VtZW50LCdzY3JpcHQnLCdodHRwczovL2Nvbm5lY3QuZmFjZWJvb2submV0L2VuX1VTL2ZiZXZlbnRzLmpzJyk7CgkJCQ==
8 ms
javascript;base64,CgoJCQkJZmJxKCdpbml0JywgJzEyODkwMzc5OTExNzUxMjQnLCB7fSwgewogICAgImFnZW50IjogIndvb2NvbW1lcmNlLTguNi4xLTMuMS4xMCIKfSk7CgoJCQkJZmJxKCAndHJhY2snLCAnUGFnZVZpZXcnLCB7CiAgICAic291cmNlIjogIndvb2NvbW1lcmNlIiwKICAgICJ2ZXJzaW9uIjogIjguNi4xIiwKICAgICJwbHVnaW5WZXJzaW9uIjogIjMuMS4xMCIKfSApOwoKCQkJCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CgkJCQkJalF1ZXJ5ICYmIGpRdWVyeSggZnVuY3Rpb24oICQgKSB7CgkJCQkJCS8vIEluc2VydCBwbGFjZWhvbGRlciBmb3IgZXZlbnRzIGluamVjdGVkIHdoZW4gYSBwcm9kdWN0IGlzIGFkZGVkIHRvIHRoZSBjYXJ0IHRocm91Z2ggQUpBWC4KCQkJCQkJJCggZG9jdW1lbnQuYm9keSApLmFwcGVuZCggJzxkaXYgY2xhc3M9XCJ3Yy1mYWNlYm9vay1waXhlbC1ldmVudC1wbGFjZWhvbGRlclwiPjwvZGl2PicgKTsKCQkJCQl9ICk7CgkJCQl9LCBmYWxzZSApOwoKCQkJ
8 ms
javascript;base64,CgkJCWpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7CgkJCQluZXcgVHlwZWQoIiN0eXBlZC1zdHJpbmdzLTJhZDNkNDIiLCB7CgkJCQkJJ2N1cnNvckNoYXInOiAnfCcsIAoJCQkJCSdiYWNrU3BlZWQnOiA3MCwgIAoJCQkJCSdiYWNrRGVsYXknOiA1MTAsIAoJCQkJCSdzdGFydERlbGF5JzogMzEwLCAKCQkJCQkndHlwZVNwZWVkJzogNzAsICAKCQkJCQknbG9vcCc6IHRydWUsCgkJCQkJJ3N0cmluZ3MnOiBbImdvaW5nIHRvIGxvb2sgZ3JlYXQiLCJpbiBnb29kIGhhbmRzIiwib25lIHN0ZXAgYXdheSIsInJlYWR5IGZvciB0aGUgcm9iIGFydCB0b3VjaCIsXQoJCQkJfSk7CgkJCX0pOwoJCQ==
7 ms
javascript;base64,DQogICAgICAgICAgICB3aW5kb3cuX19icF9zZXNzaW9uX3RpbWVvdXQgPSAnOTAwJzsNCiAgICAgICAgICAgIHdpbmRvdy5fX2JwX3Nlc3Npb25fZnJlZXppbmcgPSAwOw0KICAgICAgICAgICAgd2luZG93LmJpenBhbmRhfHwod2luZG93LmJpenBhbmRhPXt9KSx3aW5kb3cuYml6cGFuZGEuYnBfY2FuX3N0b3JlX2xvY2FseT1mdW5jdGlvbigpe3JldHVybiExfSx3aW5kb3cuYml6cGFuZGEuYnBfdXRfZ2V0X2Nvb2tpZT1mdW5jdGlvbihlKXtmb3IodmFyIG49ZSsiPSIsaT1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKSxvPTA7bzxpLmxlbmd0aDtvKyspe2Zvcih2YXIgdD1pW29dOyIgIj09dC5jaGFyQXQoMCk7KXQ9dC5zdWJzdHJpbmcoMSk7aWYoMD09dC5pbmRleE9mKG4pKXJldHVybiBkZWNvZGVVUklDb21wb25lbnQodC5zdWJzdHJpbmcobi5sZW5ndGgsdC5sZW5ndGgpKX1yZXR1cm4hMX0sd2luZG93LmJpenBhbmRhLmJwX3V0X3NldF9jb29raWU9ZnVuY3Rpb24oZSxuLGkpe3ZhciBvPW5ldyBEYXRlO28uc2V0VGltZShvLmdldFRpbWUoKSsyNCppKjYwKjYwKjFlMyk7dmFyIHQ9ImV4cGlyZXM9IitvLnRvVVRDU3RyaW5nKCk7ZG9jdW1lbnQuY29va2llPWUrIj0iK2VuY29kZVVSSUNvbXBvbmVudChuKSsiOyAiK3QrIjsgcGF0aD0vIn0sd2luZG93LmJpenBhbmRhLmJwX3V0X2dldF9vYmo9ZnVuY3Rpb24oZSl7dmFyIG49bnVsbDtpZighKG49d2luZG93LmJpenBhbmRhLmJwX2Nhbl9zdG9yZV9sb2NhbHkoKT93aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oImJwX3V0X3Nlc3Npb24iKTp3aW5kb3cuYml6cGFuZGEuYnBfdXRfZ2V0X2Nvb2tpZSgiYnBfdXRfc2Vzc2lvbiIpKSlyZXR1cm4hMTtuPShuPW4ucmVwbGFjZSgvXC1jXC0vZywiLCIpKS5yZXBsYWNlKC9cLXFcLS9nLCciJyk7dHJ5e249SlNPTi5wYXJzZShuKX1jYXRjaChlKXtyZXR1cm4hMX1yZXR1cm4gbi5zdGFydGVkKzFlMyplPChuZXcgRGF0ZSkuZ2V0VGltZSgpJiYobj1udWxsKSxufSx3aW5kb3cuYml6cGFuZGEuYnBfdXRfc2V0X29iaj1mdW5jdGlvbihlLG4pe2Uuc3RhcnRlZCYmd2luZG93Ll9fYnBfc2Vzc2lvbl9mcmVlemluZ3x8KGUuc3RhcnRlZD0obmV3IERhdGUpLmdldFRpbWUoKSksKGU9SlNPTi5zdHJpbmdpZnkoZSkpJiYoZT0oZT1lLnJlcGxhY2UoL1wiL2csIi1xLSIpKS5yZXBsYWNlKC9cLC9nLCItYy0iKSksd2luZG93LmJpenBhbmRhLmJwX2Nhbl9zdG9yZV9sb2NhbHkoKT93aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oImJwX3V0X3Nlc3Npb24iLGUpOndpbmRvdy5iaXpwYW5kYS5icF91dF9zZXRfY29va2llKCJicF91dF9zZXNzaW9uIixlLDVlMyl9LHdpbmRvdy5iaXpwYW5kYS5icF91dF9jb3VudF9wYWdldmlldz1mdW5jdGlvbigpe3ZhciBlPXdpbmRvdy5iaXpwYW5kYS5icF91dF9nZXRfb2JqKHdpbmRvdy5fX2JwX3Nlc3Npb25fdGltZW91dCk7ZXx8KGU9e30pLGUucGFnZXZpZXdzfHwoZS5wYWdldmlld3M9MCksMD09PWUucGFnZXZpZXdzJiYoZS5yZWZlcnJlcj1kb2N1bWVudC5yZWZlcnJlcixlLmxhbmRpbmdQYWdlPXdpbmRvdy5sb2NhdGlvbi5ocmVmLGUucGFnZXZpZXdzPTApLGUucGFnZXZpZXdzKyssd2luZG93LmJpenBhbmRhLmJwX3V0X3NldF9vYmooZSl9LHdpbmRvdy5iaXpwYW5kYS5icF91dF9jb3VudF9sb2NrZXJfcGFnZXZpZXc9ZnVuY3Rpb24oKXt2YXIgZT13aW5kb3cuYml6cGFuZGEuYnBfdXRfZ2V0X29iaih3aW5kb3cuX19icF90aW1lb3V0KTtlfHwoZT17fSksZS5sb2NrZXJQYWdldmlld3N8fChlLmxvY2tlclBhZ2V2aWV3cz0wKSxlLmxvY2tlclBhZ2V2aWV3cysrLHdpbmRvdy5iaXpwYW5kYS5icF91dF9zZXRfb2JqKGUpfSx3aW5kb3cuYml6cGFuZGEuYnBfdXRfY291bnRfcGFnZXZpZXcoKTsNCiAgICAgICAg
7 ms
javascript;base64,DQoJCS8qPCFbQ0RBVEFbKi8NCgkJdmFyIGdtYXBzdHlsZXMgPSAnZGVmYXVsdCc7DQoJCS8qIF1dPiAqLw0KCQk=
7 ms
javascript;base64,CiAgICAgICAgICAgIGZ1bmN0aW9uIHN0b3BQcm50U2NyKCkgewogICAgICAgICAgICAgICAgdmFyIGlucEZsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiAgICAgICAgICAgICAgICBpbnBGbGQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsICJBY2Nlc3MgRGVuaWVkIik7CiAgICAgICAgICAgICAgICBpbnBGbGQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIwIik7CiAgICAgICAgICAgICAgICBpbnBGbGQuc3R5bGUuaGVpZ2h0ID0gIjBweCI7CiAgICAgICAgICAgICAgICBpbnBGbGQuc3R5bGUud2lkdGggPSAiMHB4IjsKICAgICAgICAgICAgICAgIGlucEZsZC5zdHlsZS5ib3JkZXIgPSAiMHB4IjsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5wRmxkKTsKICAgICAgICAgICAgICAgIGlucEZsZC5zZWxlY3QoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iik7CiAgICAgICAgICAgICAgICBpbnBGbGQucmVtb3ZlKGlucEZsZCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIChmdW5jdGlvbiAoJCkgewogICAgICAgICAgICAgICAgJ3VzZSBzdHJpY3QnOwogICAgICAgICAgICAgICAgJChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgbGV0IGFsbCA9ICQoJyonKS5ub3QoJ3NjcmlwdCwgbWV0YSwgbGluaywgc3R5bGUsIG5vc2NyaXB0LCB0aXRsZScpLAogICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwID0gJCgnI2F5c190b29sdGlwJyksCiAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcyA9ICJtb3VzZSI7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRvb2x0aXBDbGFzcyA9PSAibW91c2UiIHx8IHRvb2x0aXBDbGFzcyA9PSAibW91c2VfZmlyc3RfcG9zIikgewogICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbignbW91c2Vtb3ZlJywgZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb3JkaW5hdGVfeCA9IGUucGFnZVg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29yZGluYXRlX3kgPSBlLnBhZ2VZOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHdpbmRvd1dpZHRoID0gJCh3aW5kb3cpLndpZHRoKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29yZGluYXRlX3kgPCB0b29sdGlwLm91dGVySGVpZ2h0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwLmNzcyh7J3RvcCc6IChjb3JkaW5hdGVfeSArIDEwKSArICdweCd9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcC5jc3Moeyd0b3AnOiAoY29yZGluYXRlX3kgLSB0b29sdGlwLm91dGVySGVpZ2h0KCkpICsgJ3B4J30pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvcmRpbmF0ZV94ID4gKHdpbmRvd1dpZHRoIC0gdG9vbHRpcC5vdXRlcldpZHRoKCkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcC5jc3MoeydsZWZ0JzogKGNvcmRpbmF0ZV94IC0gdG9vbHRpcC5vdXRlcldpZHRoKCkpICsgJ3B4J30pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwLmNzcyh7J2xlZnQnOiAoY29yZGluYXRlX3ggKyA1KSArICdweCd9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXAuYWRkQ2xhc3ModG9vbHRpcENsYXNzKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAJCQkJICAgICAgICAgICAgICAgICAgICAkKHdpbmRvdykub24oJ2tleXVwJywgZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGtleUNvZGUgPSBlLmtleUNvZGUgPyBlLmtleUNvZGUgOiBlLndoaWNoOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5Q29kZSA9PSA0NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcFBybnRTY3IoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgIAkJCQkKCiAgICAJCQkJICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbignY29udGV4dG1lbnUnLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gJChldmVudC50YXJnZXQpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRhcmdldC5pcygiIikgJiYgKCF0YXJnZXQuaXMoIjEiKSAmJiAhdGFyZ2V0LmlzKCJpbWciKSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9IGUgfHwgd2luZG93LmV2ZW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG4gPSB0LnRhcmdldCB8fCB0LnNyY0VsZW1lbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobi5ub2RlTmFtZSAhPT0gIkEiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgIAkgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbignY29udGV4dG1lbnUnLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gJChldmVudC50YXJnZXQpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmlzKCJpbWciKSB8fCB0YXJnZXQuaXMoImRpdi5heXNfdG9vbHRpcF9jbGFzcyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9IGUgfHwgd2luZG93LmV2ZW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG4gPSB0LnRhcmdldCB8fCB0LnNyY0VsZW1lbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobi5ub2RlTmFtZSAhPT0gIkEiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAKICAgIAkgICAgICAgICAgICAKICAgIAkJCQkgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKCdkcmFnc3RhcnQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSAkKGV2ZW50LnRhcmdldCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0LmlzKCIiKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgCQkJCQogICAgCQkJCQogICAgICAgICAgICAgICAgICAgICQod2luZG93KS5vbigna2V5ZG93bicsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2NjcF9zZWxPYmogPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjaGVja19zZWxlY3RvcnMgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNjY3Bfc2VsT2JqLnJhbmdlQ291bnQgPCAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2NjcF9zZWxSYW5nZSA9IHNjY3Bfc2VsT2JqLmdldFJhbmdlQXQoMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2NjcF9zZWxlY3Rpb25fc2VsZWN0b3IgPSBzY2NwX3NlbFJhbmdlLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja19zZWxlY3RvcnMgPSAhJChzY2NwX3NlbGVjdGlvbl9zZWxlY3RvcikuaXMoIiIpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hlY2tfc2VsZWN0b3JzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXNPcGVyYSA9IChCcm93c2VyRGV0ZWN0LmJyb3dzZXIgPT09ICJPcGVyYSIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc0ZpcmVmb3ggPSAoQnJvd3NlckRldGVjdC5icm93c2VyID09PSAnRmlyZWZveCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc1NhZmFyaSA9IChCcm93c2VyRGV0ZWN0LmJyb3dzZXIgPT09ICdTYWZhcmknKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXNJRSA9IChCcm93c2VyRGV0ZWN0LmJyb3dzZXIgPT09ICdFeHBsb3JlcicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlzQ2hyb21lID0gKEJyb3dzZXJEZXRlY3QuYnJvd3NlciA9PT0gJ0Nocm9tZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlzTW96aWxsYSA9IChCcm93c2VyRGV0ZWN0LmJyb3dzZXIgPT09ICdNb3ppbGxhJyk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEJyb3dzZXJEZXRlY3QuT1MgPT09ICdXaW5kb3dzJykgewogICAgICAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ2hyb21lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQuc2hpZnRLZXkpICYmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDczIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSA3NCB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQua2V5Q29kZSA9PT0gNjggfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDY3KSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNGaXJlZm94KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQuc2hpZnRLZXkpICYmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDczIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSA3NCB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQua2V5Q29kZSA9PT0gNjcgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDc1IHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSA2OSkpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSAxMTggfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVudC5rZXlDb2RlID09PSAxMTIgJiYgZXZlbnQuc2hpZnRLZXkpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXZlbnQua2V5Q29kZSA9PT0gMTE1ICYmIGV2ZW50LnNoaWZ0S2V5KSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV2ZW50LmtleUNvZGUgPT09IDExOCAmJiBldmVudC5zaGlmdEtleSkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVudC5rZXlDb2RlID09PSAxMjAgJiYgZXZlbnQuc2hpZnRLZXkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzT3BlcmEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgoZXZlbnQuY3RybEtleSAmJiBldmVudC5zaGlmdEtleSkgJiYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQua2V5Q29kZSA9PT0gNzMgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDc0IHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSA2NyB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQua2V5Q29kZSA9PT0gODggfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDY5KSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJRSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGV2ZW50LmtleUNvZGUgPT09IDEyMyAmJiBldmVudC5zaGlmdEtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTW96aWxsYSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gNzMpIHx8IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV2ZW50LmFsdEtleSAmJiBldmVudC5rZXlDb2RlID09PSA2OCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAJCQkJCQkKICAgICAgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZXZlbnQua2V5Q29kZSA9PT0gODMgJiYgZXZlbnQuY3RybEtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgCQkJCQkJCiAgICAgICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGV2ZW50LmtleUNvZGUgPT09IDY1ICYmIGV2ZW50LmN0cmxLZXkpKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoZXZlbnQudGFyZ2V0Lm5vZGVOYW1lID09ICdJTlBVVCcgfHwgZXZlbnQudGFyZ2V0Lm5vZGVOYW1lID09ICdURVhUQVJFQScpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgIAkJCQkJCQogICAgICAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDY3ICYmIGV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50LnNoaWZ0S2V5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShldmVudC50YXJnZXQubm9kZU5hbWUgPT0gJ0lOUFVUJyB8fCBldmVudC50YXJnZXQubm9kZU5hbWUgPT0gJ1RFWFRBUkVBJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgCQkJCQkJCiAgICAgICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGV2ZW50LmtleUNvZGUgPT09IDg2ICYmIGV2ZW50LmN0cmxLZXkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShldmVudC50YXJnZXQubm9kZU5hbWUgPT0gJ0lOUFVUJyB8fCBldmVudC50YXJnZXQubm9kZU5hbWUgPT0gJ1RFWFRBUkVBJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgIAkJCQkJCQogICAgICAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChldmVudC5rZXlDb2RlID09PSA4OCAmJiBldmVudC5jdHJsS2V5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoZXZlbnQudGFyZ2V0Lm5vZGVOYW1lID09ICdJTlBVVCcgfHwgZXZlbnQudGFyZ2V0Lm5vZGVOYW1lID09ICdURVhUQVJFQScpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAJCQkJCQkKICAgICAgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZXZlbnQua2V5Q29kZSA9PT0gODUgJiYgZXZlbnQuY3RybEtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgIAkJCQkJCQogICAgICAgIAkJCQkJCQogICAgICAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChldmVudC5rZXlDb2RlID09PSA4MCAmJiBldmVudC5jdHJsS2V5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoMSApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgCQkJCQkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTIzIHx8IChldmVudC5rZXlDb2RlID09PSAxMjMgJiYgZXZlbnQuc2hpZnRLZXkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKEJyb3dzZXJEZXRlY3QuT1MgPT09ICdMaW51eCcpIHsKICAgICAgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0Nocm9tZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQuc2hpZnRLZXkpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV2ZW50LmtleUNvZGUgPT09IDczIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDc0IHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDY3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gODUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0ZpcmVmb3gpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgoZXZlbnQuY3RybEtleSAmJiBldmVudC5zaGlmdEtleSkgJiYgKGV2ZW50LmtleUNvZGUgPT09IDczIHx8IGV2ZW50LmtleUNvZGUgPT09IDc0IHx8IGV2ZW50LmtleUNvZGUgPT09IDY3IHx8IGV2ZW50LmtleUNvZGUgPT09IDc1IHx8IGV2ZW50LmtleUNvZGUgPT09IDY5KSkgfHwgZXZlbnQua2V5Q29kZSA9PT0gMTE4IHx8IGV2ZW50LmtleUNvZGUgPT09IDExNiB8fCAoZXZlbnQua2V5Q29kZSA9PT0gMTEyICYmIGV2ZW50LnNoaWZ0S2V5KSB8fCAoZXZlbnQua2V5Q29kZSA9PT0gMTE1ICYmIGV2ZW50LnNoaWZ0S2V5KSB8fCAoZXZlbnQua2V5Q29kZSA9PT0gMTE4ICYmIGV2ZW50LnNoaWZ0S2V5KSB8fCAoZXZlbnQua2V5Q29kZSA9PT0gMTIwICYmIGV2ZW50LnNoaWZ0S2V5KSB8fCAoZXZlbnQua2V5Q29kZSA9PT0gODUgJiYgZXZlbnQuY3RybEtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcGVyYSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKChldmVudC5jdHJsS2V5ICYmIGV2ZW50LnNoaWZ0S2V5KSAmJiAoZXZlbnQua2V5Q29kZSA9PT0gNzMgfHwgZXZlbnQua2V5Q29kZSA9PT0gNzQgfHwgZXZlbnQua2V5Q29kZSA9PT0gNjcgfHwgZXZlbnQua2V5Q29kZSA9PT0gODggfHwgZXZlbnQua2V5Q29kZSA9PT0gNjkpKSB8fCAoZXZlbnQuY3RybEtleSAmJiBldmVudC5rZXlDb2RlID09PSA4NSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAJCQkJCQkKICAgICAgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZXZlbnQua2V5Q29kZSA9PT0gODMgJiYgZXZlbnQuY3RybEtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgCQkJCQkJCiAgICAgICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gNjUgJiYgZXZlbnQuY3RybEtleSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoZXZlbnQudGFyZ2V0Lm5vZGVOYW1lID09ICdJTlBVVCcgfHwgZXZlbnQudGFyZ2V0Lm5vZGVOYW1lID09ICdURVhUQVJFQScpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgIAkJCQkJCQogICAgICAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDY3ICYmIGV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50LnNoaWZ0S2V5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShldmVudC50YXJnZXQubm9kZU5hbWUgPT0gJ0lOUFVUJyB8fCBldmVudC50YXJnZXQubm9kZU5hbWUgPT0gJ1RFWFRBUkVBJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgCQkJCQkJCiAgICAgICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGV2ZW50LmtleUNvZGUgPT09IDg2ICYmIGV2ZW50LmN0cmxLZXkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShldmVudC50YXJnZXQubm9kZU5hbWUgPT0gJ0lOUFVUJyB8fCBldmVudC50YXJnZXQubm9kZU5hbWUgPT0gJ1RFWFRBUkVBJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgCQkJCQkJCiAgICAgICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGV2ZW50LmtleUNvZGUgPT09IDg4ICYmIGV2ZW50LmN0cmxLZXkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShldmVudC50YXJnZXQubm9kZU5hbWUgPT0gJ0lOUFVUJyB8fCBldmVudC50YXJnZXQubm9kZU5hbWUgPT0gJ1RFWFRBUkVBJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgCQkJCQkJCiAgICAgICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGV2ZW50LmtleUNvZGUgPT09IDg1ICYmIGV2ZW50LmN0cmxLZXkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAJCQkJCQkKICAgICAgICAJCQkJCQkKICAgICAgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZXZlbnQua2V5Q29kZSA9PT0gODAgJiYgZXZlbnQuY3RybEtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgIAkJCQkJCQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEyMyB8fCAoZXZlbnQua2V5Q29kZSA9PT0gMTIzICYmIGV2ZW50LnNoaWZ0S2V5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChCcm93c2VyRGV0ZWN0Lk9TID09PSAnTWFjJykgewogICAgICAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ2hyb21lIHx8IGlzU2FmYXJpIHx8IGlzT3BlcmEgfHwgaXNGaXJlZm94KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5tZXRhS2V5ICYmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDczIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSA3NCB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQua2V5Q29kZSA9PT0gNjkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDc1KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgIAkJCQkJCQogICAgICAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChldmVudC5rZXlDb2RlID09PSA4MyAmJiBldmVudC5tZXRhS2V5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3BsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAJCQkJCQkKICAgICAgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZXZlbnQua2V5Q29kZSA9PT0gNjUgJiYgZXZlbnQubWV0YUtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9PSAnSU5QVVQnIHx8IGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9PSAnVEVYVEFSRUEnKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAJCQkJCQkKICAgICAgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZXZlbnQua2V5Q29kZSA9PT0gNjcgJiYgZXZlbnQubWV0YUtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9PSAnSU5QVVQnIHx8IGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9PSAnVEVYVEFSRUEnKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAJCQkJCQkKICAgICAgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZXZlbnQua2V5Q29kZSA9PT0gODYgJiYgZXZlbnQubWV0YUtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9PSAnSU5QVVQnIHx8IGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9PSAnVEVYVEFSRUEnKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAJCQkJCQkKICAgICAgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZXZlbnQua2V5Q29kZSA9PT0gODggJiYgZXZlbnQubWV0YUtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9PSAnSU5QVVQnIHx8IGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9PSAnVEVYVEFSRUEnKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAJCQkJCQkKICAgICAgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZXZlbnQua2V5Q29kZSA9PT0gODUgJiYgZXZlbnQubWV0YUtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190b29sdGlwKDEgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgIAkJCQkJCQogICAgICAgIAkJCQkJCQogICAgICAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChldmVudC5rZXlDb2RlID09PSA4MCAmJiBldmVudC5tZXRhS2V5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoMSApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgCQkJCQkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTIzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfdG9vbHRpcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZGlzYWJsZVNlbGVjdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZS5vbnNlbGVjdHN0YXJ0ICE9PSAidW5kZWZpbmVkIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUub25zZWxlY3RzdGFydCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fcGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGUuc3R5bGUuTW96VXNlclNlbGVjdCAhPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0eWxlLk1velVzZXJTZWxlY3QgPSAibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZS5vbm1vdXNlZG93biA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Rvb2x0aXAoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICBlLnN0eWxlLmN1cnNvciA9ICJkZWZhdWx0IgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgdmFyIG1zZ19jb3VudCA9IDE7IAogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNob3dfdG9vbHRpcChtZXNzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZXNzICYmIG1zZ19jb3VudCA9PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG9vbHRpcENsYXNzID09ICdtb3VzZV9maXJzdF9wb3MnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoJyNheXNfdG9vbHRpcDInKS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNheXNfdG9vbHRpcDInKS5yZW1vdmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRvb2x0aXAyID0gdG9vbHRpcC5jbG9uZSgpLnByb3AoJ2lkJywnYXlzX3Rvb2x0aXAyJykuaW5zZXJ0QmVmb3JlKHRvb2x0aXApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNheXNfdG9vbHRpcDInKS5hZGRDbGFzcygnYXlzX3Rvb2x0aXBfY2xhc3MnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwMi5jc3MoeydkaXNwbGF5JzogJ3RhYmxlJ30pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNheXNfdG9vbHRpcCcpLmZhZGVPdXQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcDIucmVtb3ZlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwLmNzcyh7J2Rpc3BsYXknOiAndGFibGUnfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNheXNfdG9vbHRpcCcpLmZhZGVPdXQoMTAwMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBhdWRpb19wbGF5KGF1ZGlvKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdWRpbykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF1ZGlvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjY3BfcHVibGljX2F1ZGlvIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXVkaW8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5jdXJyZW50VGltZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGxheSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pKGpRdWVyeSk7CiAgICAgICAgICAgIHZhciBjb3B5cmlnaHRUZXh0ID0gJyc7CiAgICAgICAgICAgIHZhciBjb3B5cmlnaHRJbmNsdWRlVXJsID0gJyc7CiAgICAgICAgICAgIHZhciBjb3B5cmlnaHRXb3JkID0gJyc7CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICBmdW5jdGlvbiBjb3B5VG9DbGlwYm9hcmQodGV4dCkgewogICAgICAgICAgICAgICAgdmFyIHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKICAgICAgICAgICAgICAgIHRleHRhcmVhLnRleHRDb250ZW50ID0gdGV4dDsKICAgICAgICAgICAgICAgIHRleHRhcmVhLnN0eWxlLnBvc2l0aW9uID0gImZpeGVkIjsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dGFyZWEpOwogICAgICAgICAgICAgICAgdGV4dGFyZWEuc2VsZWN0KCk7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5leGVjQ29tbWFuZCgiY3V0Iik7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChleCkgewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybigiQ29weSB0byBjbGlwYm9hcmQgZmFpbGVkLiIsIGV4KTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dGFyZWEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBodG1sRGVjb2RlKGlucHV0KSB7CiAgICAgICAgICAgICAgdmFyIGRvYyA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoaW5wdXQsICJ0ZXh0L2h0bWwiKTsKICAgICAgICAgICAgICByZXR1cm4gZG9jLmRvY3VtZW50RWxlbWVudC50ZXh0Q29udGVudDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIEJyb3dzZXJEZXRlY3QgPSB7CiAgICAgICAgICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5icm93c2VyID0gdGhpcy5zZWFyY2hTdHJpbmcodGhpcy5kYXRhQnJvd3NlcikgfHwgIkFuIHVua25vd24gYnJvd3NlciI7CiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJzaW9uID0gdGhpcy5zZWFyY2hWZXJzaW9uKG5hdmlnYXRvci51c2VyQWdlbnQpIHx8IHRoaXMuc2VhcmNoVmVyc2lvbihuYXZpZ2F0b3IuYXBwVmVyc2lvbikgfHwgImFuIHVua25vd24gdmVyc2lvbiI7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5PUyA9IHRoaXMuc2VhcmNoU3RyaW5nKHRoaXMuZGF0YU9TKSB8fCAiYW4gdW5rbm93biBPUyI7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgc2VhcmNoU3RyaW5nOiBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YVN0cmluZyA9IGRhdGFbaV0uc3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YVByb3AgPSBkYXRhW2ldLnByb3A7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmVyc2lvblNlYXJjaFN0cmluZyA9IGRhdGFbaV0udmVyc2lvblNlYXJjaCB8fCBkYXRhW2ldLmlkZW50aXR5OwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVN0cmluZykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFTdHJpbmcuaW5kZXhPZihkYXRhW2ldLnN1YlN0cmluZykgIT09IC0xKSByZXR1cm4gZGF0YVtpXS5pZGVudGl0eTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhUHJvcCkgcmV0dXJuIGRhdGFbaV0uaWRlbnRpdHk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHNlYXJjaFZlcnNpb246IGZ1bmN0aW9uIChkYXRhU3RyaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gZGF0YVN0cmluZy5pbmRleE9mKHRoaXMudmVyc2lvblNlYXJjaFN0cmluZyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KGRhdGFTdHJpbmcuc3Vic3RyaW5nKGluZGV4ICsgdGhpcy52ZXJzaW9uU2VhcmNoU3RyaW5nLmxlbmd0aCArIDEpKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBkYXRhQnJvd3NlcjogW3sKICAgICAgICAgICAgICAgICAgICBzdHJpbmc6IG5hdmlnYXRvci51c2VyQWdlbnQsCiAgICAgICAgICAgICAgICAgICAgc3ViU3RyaW5nOiAiQ2hyb21lIiwKICAgICAgICAgICAgICAgICAgICBpZGVudGl0eTogIkNocm9tZSIKICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICBzdHJpbmc6IG5hdmlnYXRvci51c2VyQWdlbnQsCiAgICAgICAgICAgICAgICAgICAgc3ViU3RyaW5nOiAiT21uaVdlYiIsCiAgICAgICAgICAgICAgICAgICAgdmVyc2lvblNlYXJjaDogIk9tbmlXZWIvIiwKICAgICAgICAgICAgICAgICAgICBpZGVudGl0eTogIk9tbmlXZWIiCiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nOiBuYXZpZ2F0b3IudmVuZG9yLAogICAgICAgICAgICAgICAgICAgIHN1YlN0cmluZzogIkFwcGxlIiwKICAgICAgICAgICAgICAgICAgICBpZGVudGl0eTogIlNhZmFyaSIsCiAgICAgICAgICAgICAgICAgICAgdmVyc2lvblNlYXJjaDogIlZlcnNpb24iCiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgcHJvcDogd2luZG93Lm9wZXJhLAogICAgICAgICAgICAgICAgICAgIGlkZW50aXR5OiAiT3BlcmEiLAogICAgICAgICAgICAgICAgICAgIHZlcnNpb25TZWFyY2g6ICJWZXJzaW9uIgogICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgIHN0cmluZzogbmF2aWdhdG9yLnZlbmRvciwKICAgICAgICAgICAgICAgICAgICBzdWJTdHJpbmc6ICJpQ2FiIiwKICAgICAgICAgICAgICAgICAgICBpZGVudGl0eTogImlDYWIiCiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nOiBuYXZpZ2F0b3IudmVuZG9yLAogICAgICAgICAgICAgICAgICAgIHN1YlN0cmluZzogIktERSIsCiAgICAgICAgICAgICAgICAgICAgaWRlbnRpdHk6ICJLb25xdWVyb3IiCiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nOiBuYXZpZ2F0b3IudXNlckFnZW50LAogICAgICAgICAgICAgICAgICAgIHN1YlN0cmluZzogIkZpcmVmb3giLAogICAgICAgICAgICAgICAgICAgIGlkZW50aXR5OiAiRmlyZWZveCIKICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICBzdHJpbmc6IG5hdmlnYXRvci52ZW5kb3IsCiAgICAgICAgICAgICAgICAgICAgc3ViU3RyaW5nOiAiQ2FtaW5vIiwKICAgICAgICAgICAgICAgICAgICBpZGVudGl0eTogIkNhbWlubyIKICAgICAgICAgICAgICAgIH0sIHsgLy8gZm9yIG5ld2VyIE5ldHNjYXBlcyAoNispCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nOiBuYXZpZ2F0b3IudXNlckFnZW50LAogICAgICAgICAgICAgICAgICAgIHN1YlN0cmluZzogIk5ldHNjYXBlIiwKICAgICAgICAgICAgICAgICAgICBpZGVudGl0eTogIk5ldHNjYXBlIgogICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgIHN0cmluZzogbmF2aWdhdG9yLnVzZXJBZ2VudCwKICAgICAgICAgICAgICAgICAgICBzdWJTdHJpbmc6ICJNU0lFIiwKICAgICAgICAgICAgICAgICAgICBpZGVudGl0eTogIkV4cGxvcmVyIiwKICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uU2VhcmNoOiAiTVNJRSIKICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICBzdHJpbmc6IG5hdmlnYXRvci51c2VyQWdlbnQsCiAgICAgICAgICAgICAgICAgICAgc3ViU3RyaW5nOiAiR2Vja28iLAogICAgICAgICAgICAgICAgICAgIGlkZW50aXR5OiAiTW96aWxsYSIsCiAgICAgICAgICAgICAgICAgICAgdmVyc2lvblNlYXJjaDogInJ2IgogICAgICAgICAgICAgICAgfSwgeyAvLyBmb3Igb2xkZXIgTmV0c2NhcGVzICg0LSkKICAgICAgICAgICAgICAgICAgICBzdHJpbmc6IG5hdmlnYXRvci51c2VyQWdlbnQsCiAgICAgICAgICAgICAgICAgICAgc3ViU3RyaW5nOiAiTW96aWxsYSIsCiAgICAgICAgICAgICAgICAgICAgaWRlbnRpdHk6ICJOZXRzY2FwZSIsCiAgICAgICAgICAgICAgICAgICAgdmVyc2lvblNlYXJjaDogIk1vemlsbGEiCiAgICAgICAgICAgICAgICB9XSwKICAgICAgICAgICAgICAgIGRhdGFPUzogW3sKICAgICAgICAgICAgICAgICAgICBzdHJpbmc6IG5hdmlnYXRvci5wbGF0Zm9ybSwKICAgICAgICAgICAgICAgICAgICBzdWJTdHJpbmc6ICJXaW4iLAogICAgICAgICAgICAgICAgICAgIGlkZW50aXR5OiAiV2luZG93cyIKICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICBzdHJpbmc6IG5hdmlnYXRvci5wbGF0Zm9ybSwKICAgICAgICAgICAgICAgICAgICBzdWJTdHJpbmc6ICJNYWMiLAogICAgICAgICAgICAgICAgICAgIGlkZW50aXR5OiAiTWFjIgogICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgIHN0cmluZzogbmF2aWdhdG9yLnVzZXJBZ2VudCwKICAgICAgICAgICAgICAgICAgICBzdWJTdHJpbmc6ICJpUGhvbmUiLAogICAgICAgICAgICAgICAgICAgIGlkZW50aXR5OiAiaVBob25lL2lQb2QiCiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nOiBuYXZpZ2F0b3IucGxhdGZvcm0sCiAgICAgICAgICAgICAgICAgICAgc3ViU3RyaW5nOiAiTGludXgiLAogICAgICAgICAgICAgICAgICAgIGlkZW50aXR5OiAiTGludXgiCiAgICAgICAgICAgICAgICB9XQogICAgICAgICAgICB9OwogICAgICAgICAgICBCcm93c2VyRGV0ZWN0LmluaXQoKTsKICAgICAgICAvLyB9LCBmYWxzZSk7CiAgICA=
6 ms
javascript;base64,DQoJCQkJdmFyIF9wYXEgPSBfcGFxIHx8IFtdOw0KCQkJCQkJCQlfcGFxLnB1c2goWyd0cmFja1BhZ2VWaWV3J10pOw0KCQkJCQkJCQkoZnVuY3Rpb24gKCkgew0KCQkJCQl2YXIgdSA9ICJodHRwczovL3N0YXRzMS53cG11ZGV2LmNvbS8iOw0KCQkJCQlfcGFxLnB1c2goWydzZXRUcmFja2VyVXJsJywgdSArICd0cmFjay8nXSk7DQoJCQkJCV9wYXEucHVzaChbJ3NldFNpdGVJZCcsICcxNDI3NzknXSk7DQoJCQkJCXZhciBkICAgPSBkb2N1bWVudCwgZyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JyksIHMgPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsNCgkJCQkJZy50eXBlICA9ICd0ZXh0L2phdmFzY3JpcHQnOw0KCQkJCQlnLmFzeW5jID0gdHJ1ZTsNCgkJCQkJZy5kZWZlciA9IHRydWU7DQoJCQkJCWcuc3JjICAgPSAnaHR0cHM6Ly9zdGF0cy53cG11Y2RuLmNvbS9hbmFseXRpY3MuanMnOw0KCQkJCQlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGcsIHMpOw0KCQkJCX0pKCk7DQoJCQk=
5 ms
javascript;base64,CgkJCQkJICB3aW5kb3cuZmJBc3luY0luaXQgPSBmdW5jdGlvbigpIHsKCQkJCQkgICAgRkIuaW5pdCh7CgkJCQkJICAgICAgYXBwSWQgICAgICAgICAgICA6ICcnLAoJCQkJCSAgICAgIGF1dG9Mb2dBcHBFdmVudHMgOiB0cnVlLAoJCQkJCSAgICAgIHhmYm1sICAgICAgICAgICAgOiB0cnVlLAoJCQkJCSAgICAgIHZlcnNpb24gICAgICAgICAgOiAndjYuMCcKCQkJCQkgICAgfSk7CgkJCQkJICB9OwoKCQkJCQkgIChmdW5jdGlvbihkLCBzLCBpZCl7CgkJCQkJICAgICAgdmFyIGpzLCBmanMgPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKHMpWzBdOwoJCQkJCSAgICAgIGlmIChkLmdldEVsZW1lbnRCeUlkKGlkKSkge3JldHVybjt9CgkJCQkJICAgICAganMgPSBkLmNyZWF0ZUVsZW1lbnQocyk7IGpzLmlkID0gaWQ7CgkJCQkJICAgICAganMuc3JjID0gJ2h0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fR0Ivc2RrL3hmYm1sLmN1c3RvbWVyY2hhdC5qcyc7CgkJCQkJICAgICAgZmpzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpzLCBmanMpOwoJCQkJCSAgICB9KGRvY3VtZW50LCAnc2NyaXB0JywgJ2ZhY2Vib29rLWpzc2RrJykpOwoJCQkJCQ==
5 ms
javascript;base64,CgkJKGZ1bmN0aW9uICgpIHsKCQkJdmFyIGMgPSBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZTsKCQkJYyA9IGMucmVwbGFjZSgvd29vY29tbWVyY2Utbm8tanMvLCAnd29vY29tbWVyY2UtanMnKTsKCQkJZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgPSBjOwoJCX0pKCk7Cgk=
5 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgbXRwaHJfZG50X3ZhcnMgPSB7ImlzX3J0bCI6IiJ9OwovKiBdXT4gKi8K
5 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgbGVhZGluX3dvcmRwcmVzcyA9IHsidXNlclJvbGUiOiJ2aXNpdG9yIiwicGFnZVR5cGUiOiJob21lIiwibGVhZGluUGx1Z2luVmVyc2lvbiI6IjEwLjIuMjMifTsKLyogXV0+ICovCg==
5 ms
5442830.js
146 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd2Nfb3JkZXJfYXR0cmlidXRpb24gPSB7InBhcmFtcyI6eyJsaWZldGltZSI6MS4wMDAwMDAwMDAwMDAwMDAxZS01LCJzZXNzaW9uIjozMCwiYWpheHVybCI6Imh0dHBzOlwvXC9yb2Jzbm93LmV1XC93cC1hZG1pblwvYWRtaW4tYWpheC5waHAiLCJwcmVmaXgiOiJ3Y19vcmRlcl9hdHRyaWJ1dGlvbl8iLCJhbGxvd1RyYWNraW5nIjp0cnVlfSwiZmllbGRzIjp7InNvdXJjZV90eXBlIjoiY3VycmVudC50eXAiLCJyZWZlcnJlciI6ImN1cnJlbnRfYWRkLnJmIiwidXRtX2NhbXBhaWduIjoiY3VycmVudC5jbXAiLCJ1dG1fc291cmNlIjoiY3VycmVudC5zcmMiLCJ1dG1fbWVkaXVtIjoiY3VycmVudC5tZG0iLCJ1dG1fY29udGVudCI6ImN1cnJlbnQuY250IiwidXRtX2lkIjoiY3VycmVudC5pZCIsInV0bV90ZXJtIjoiY3VycmVudC50cm0iLCJzZXNzaW9uX2VudHJ5IjoiY3VycmVudF9hZGQuZXAiLCJzZXNzaW9uX3N0YXJ0X3RpbWUiOiJjdXJyZW50X2FkZC5mZCIsInNlc3Npb25fcGFnZXMiOiJzZXNzaW9uLnBncyIsInNlc3Npb25fY291bnQiOiJ1ZGF0YS52c3QiLCJ1c2VyX2FnZW50IjoidWRhdGEudWFnIn19OwovKiBdXT4gKi8K
5 ms
js
73 ms
external_api.js
49 ms
ZXZvLWFqYXg9JSVlbmRwb2ludCUlIiwibiI6ImIxZDMzZWZjZTAiLCJldm9fdiI6IjQuNS45IiwidGV4dCI6W119OwovKiBdXT4gKi8K
4 ms
e-202408.js
5 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgamV0cGFja1N3aXBlckxpYnJhcnlQYXRoID0geyJ1cmwiOiJodHRwczpcL1wvcm9ic25vdy5ldVwvd3AtY29udGVudFwvcGx1Z2luc1wvamV0cGFja1wvX2luY1wvYnVpbGRcL2Nhcm91c2VsXC9zd2lwZXItYnVuZGxlLm1pbi5qcyJ9Owp2YXIgamV0cGFja0Nhcm91c2VsU3RyaW5ncyA9IHsid2lkdGhzIjpbMzcwLDcwMCwxMDAwLDEyMDAsMTQwMCwyMDAwXSwiaXNfbG9nZ2VkX2luIjoiIiwibGFuZyI6ImVuIiwiYWpheHVybCI6Imh0dHBzOlwvXC9yb2Jzbm93LmV1XC93cC1hZG1pblwvYWRtaW4tYWpheC5waHAiLCJub25jZSI6IjM3N2RlYjM5NmQiLCJkaXNwbGF5X2V4aWYiOiIxIiwiZGlzcGxheV9jb21tZW50cyI6IjEiLCJzaW5nbGVfaW1hZ2VfZ2FsbGVyeSI6IjEiLCJzaW5nbGVfaW1hZ2VfZ2FsbGVyeV9tZWRpYV9maWxlIjoiIiwiYmFja2dyb3VuZF9jb2xvciI6ImJsYWNrIiwiY29tbWVudCI6IkNvbW1lbnQiLCJwb3N0X2NvbW1lbnQiOiJQb3N0IENvbW1lbnQiLCJ3cml0ZV9jb21tZW50IjoiV3JpdGUgYSBDb21tZW50Li4uIiwibG9hZGluZ19jb21tZW50cyI6IkxvYWRpbmcgQ29tbWVudHMuLi4iLCJkb3dubG9hZF9vcmlnaW5hbCI6IlZpZXcgZnVsbCBzaXplIDxzcGFuIGNsYXNzPVwicGhvdG8tc2l6ZVwiPnswfTxzcGFuIGNsYXNzPVwicGhvdG8tc2l6ZS10aW1lc1wiPlx1MDBkNzxcL3NwYW4+ezF9PFwvc3Bhbj4iLCJub19jb21tZW50X3RleHQiOiJQbGVhc2UgYmUgc3VyZSB0byBzdWJtaXQgc29tZSB0ZXh0IHdpdGggeW91ciBjb21tZW50LiIsIm5vX2NvbW1lbnRfZW1haWwiOiJQbGVhc2UgcHJvdmlkZSBhbiBlbWFpbCBhZGRyZXNzIHRvIGNvbW1lbnQuIiwibm9fY29tbWVudF9hdXRob3IiOiJQbGVhc2UgcHJvdmlkZSB5b3VyIG5hbWUgdG8gY29tbWVudC4iLCJjb21tZW50X3Bvc3RfZXJyb3IiOiJTb3JyeSwgYnV0IHRoZXJlIHdhcyBhbiBlcnJvciBwb3N0aW5nIHlvdXIgY29tbWVudC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4iLCJjb21tZW50X2FwcHJvdmVkIjoiWW91ciBjb21tZW50IHdhcyBhcHByb3ZlZC4iLCJjb21tZW50X3VuYXBwcm92ZWQiOiJZb3VyIGNvbW1lbnQgaXMgaW4gbW9kZXJhdGlvbi4iLCJjYW1lcmEiOiJDYW1lcmEiLCJhcGVydHVyZSI6IkFwZXJ0dXJlIiwic2h1dHRlcl9zcGVlZCI6IlNodXR0ZXIgU3BlZWQiLCJmb2NhbF9sZW5ndGgiOiJGb2NhbCBMZW5ndGgiLCJjb3B5cmlnaHQiOiJDb3B5cmlnaHQiLCJjb21tZW50X3JlZ2lzdHJhdGlvbiI6IjEiLCJyZXF1aXJlX25hbWVfZW1haWwiOiIxIiwibG9naW5fdXJsIjoiaHR0cHM6XC9cL3JvYnNub3cuZXVcL3dwLWxvZ2luLnBocD9yZWRpcmVjdF90bz1odHRwcyUzQSUyRiUyRnJvYnNub3cuZXUlMkYiLCJibG9nX2lkIjoiMSIsIm1ldGFfZGF0YSI6WyJjYW1lcmEiLCJhcGVydHVyZSIsInNodXR0ZXJfc3BlZWQiLCJmb2NhbF9sZW5ndGgiLCJjb3B5cmlnaHQiXX07Ci8qIF1dPiAqLwo=
3 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp3cC5pMThuLnNldExvY2FsZURhdGEoIHsgJ3RleHQgZGlyZWN0aW9uXHUwMDA0bHRyJzogWyAnbHRyJyBdIH0gKTsKLyogXV0+ICovCg==
3 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgRWxlbWVudG9yUHJvRnJvbnRlbmRDb25maWcgPSB7ImFqYXh1cmwiOiJodHRwczpcL1wvcm9ic25vdy5ldVwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIiwibm9uY2UiOiIwNGJmYTViYTQ2IiwidXJscyI6eyJhc3NldHMiOiJodHRwczpcL1wvcm9ic25vdy5ldVwvd3AtY29udGVudFwvcGx1Z2luc1wvZWxlbWVudG9yLXByb1wvYXNzZXRzXC8iLCJyZXN0IjoiaHR0cHM6XC9cL3JvYnNub3cuZXVcL3dwLWpzb25cLyJ9LCJzaGFyZUJ1dHRvbnNOZXR3b3JrcyI6eyJmYWNlYm9vayI6eyJ0aXRsZSI6IkZhY2Vib29rIiwiaGFzX2NvdW50ZXIiOnRydWV9LCJ0d2l0dGVyIjp7InRpdGxlIjoiVHdpdHRlciJ9LCJsaW5rZWRpbiI6eyJ0aXRsZSI6IkxpbmtlZEluIiwiaGFzX2NvdW50ZXIiOnRydWV9LCJwaW50ZXJlc3QiOnsidGl0bGUiOiJQaW50ZXJlc3QiLCJoYXNfY291bnRlciI6dHJ1ZX0sInJlZGRpdCI6eyJ0aXRsZSI6IlJlZGRpdCIsImhhc19jb3VudGVyIjp0cnVlfSwidmsiOnsidGl0bGUiOiJWSyIsImhhc19jb3VudGVyIjp0cnVlfSwib2Rub2tsYXNzbmlraSI6eyJ0aXRsZSI6Ik9LIiwiaGFzX2NvdW50ZXIiOnRydWV9LCJ0dW1ibHIiOnsidGl0bGUiOiJUdW1ibHIifSwiZGlnZyI6eyJ0aXRsZSI6IkRpZ2cifSwic2t5cGUiOnsidGl0bGUiOiJTa3lwZSJ9LCJzdHVtYmxldXBvbiI6eyJ0aXRsZSI6IlN0dW1ibGVVcG9uIiwiaGFzX2NvdW50ZXIiOnRydWV9LCJtaXgiOnsidGl0bGUiOiJNaXgifSwidGVsZWdyYW0iOnsidGl0bGUiOiJUZWxlZ3JhbSJ9LCJwb2NrZXQiOnsidGl0bGUiOiJQb2NrZXQiLCJoYXNfY291bnRlciI6dHJ1ZX0sInhpbmciOnsidGl0bGUiOiJYSU5HIiwiaGFzX2NvdW50ZXIiOnRydWV9LCJ3aGF0c2FwcCI6eyJ0aXRsZSI6IldoYXRzQXBwIn0sImVtYWlsIjp7InRpdGxlIjoiRW1haWwifSwicHJpbnQiOnsidGl0bGUiOiJQcmludCJ9fSwKIndvb2NvbW1lcmNlIjp7Im1lbnVfY2FydCI6eyJjYXJ0X3BhZ2VfdXJsIjoiaHR0cHM6XC9cL3JvYnNub3cuZXVcL3Nob3BcL2NhcnRcLyIsImNoZWNrb3V0X3BhZ2VfdXJsIjoiaHR0cHM6XC9cL3JvYnNub3cuZXVcL3Nob3BcL2NoZWNrb3V0XC8iLCJmcmFnbWVudHNfbm9uY2UiOiI0NjRkOTZjZTBiIn19LAoiZmFjZWJvb2tfc2RrIjp7ImxhbmciOiJlbl9HQiIsImFwcF9pZCI6Ijk3MTcwNTczNDM5In0sImxvdHRpZSI6eyJkZWZhdWx0QW5pbWF0aW9uVXJsIjoiaHR0cHM6XC9cL3JvYnNub3cuZXVcL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2VsZW1lbnRvci1wcm9cL21vZHVsZXNcL2xvdHRpZVwvYXNzZXRzXC9hbmltYXRpb25zXC9kZWZhdWx0Lmpzb24ifX07Ci8qIF1dPiAqLwo=
4 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgZWxlbWVudG9yRnJvbnRlbmRDb25maWcgPSB7ImVudmlyb25tZW50TW9kZSI6eyJlZGl0IjpmYWxzZSwid3BQcmV2aWV3IjpmYWxzZSwiaXNTY3JpcHREZWJ1ZyI6ZmFsc2V9LCJpMThuIjp7InNoYXJlT25GYWNlYm9vayI6IlNoYXJlIG9uIEZhY2Vib29rIiwic2hhcmVPblR3aXR0ZXIiOiJTaGFyZSBvbiBUd2l0dGVyIiwicGluSXQiOiJQaW4gaXQiLCJkb3dubG9hZCI6IkRvd25sb2FkIiwiZG93bmxvYWRJbWFnZSI6IkRvd25sb2FkIGltYWdlIiwiZnVsbHNjcmVlbiI6IkZ1bGxzY3JlZW4iLCJ6b29tIjoiWm9vbSIsInNoYXJlIjoiU2hhcmUiLCJwbGF5VmlkZW8iOiJQbGF5IFZpZGVvIiwicHJldmlvdXMiOiJQcmV2aW91cyIsIm5leHQiOiJOZXh0IiwiY2xvc2UiOiJDbG9zZSIsImExMXlDYXJvdXNlbFdyYXBwZXJBcmlhTGFiZWwiOiJDYXJvdXNlbCB8IEhvcml6b250YWwgc2Nyb2xsaW5nOiBBcnJvdyBMZWZ0ICYgUmlnaHQiLCJhMTF5Q2Fyb3VzZWxQcmV2U2xpZGVNZXNzYWdlIjoiUHJldmlvdXMgc2xpZGUiLCJhMTF5Q2Fyb3VzZWxOZXh0U2xpZGVNZXNzYWdlIjoiTmV4dCBzbGlkZSIsImExMXlDYXJvdXNlbEZpcnN0U2xpZGVNZXNzYWdlIjoiVGhpcyBpcyB0aGUgZmlyc3Qgc2xpZGUiLCJhMTF5Q2Fyb3VzZWxMYXN0U2xpZGVNZXNzYWdlIjoiVGhpcyBpcyB0aGUgbGFzdCBzbGlkZSIsImExMXlDYXJvdXNlbFBhZ2luYXRpb25CdWxsZXRNZXNzYWdlIjoiR28gdG8gc2xpZGUifSwiaXNfcnRsIjpmYWxzZSwiYnJlYWtwb2ludHMiOnsieHMiOjAsInNtIjo0ODAsIm1kIjo3NjgsImxnIjoxMDI1LCJ4bCI6MTQ0MCwieHhsIjoxNjAwfSwicmVzcG9uc2l2ZSI6eyJicmVha3BvaW50cyI6eyJtb2JpbGUiOnsibGFiZWwiOiJNb2JpbGUgUG9ydHJhaXQiLCJ2YWx1ZSI6NzY3LCJkZWZhdWx0X3ZhbHVlIjo3NjcsImRpcmVjdGlvbiI6Im1heCIsImlzX2VuYWJsZWQiOnRydWV9LCJtb2JpbGVfZXh0cmEiOnsibGFiZWwiOiJNb2JpbGUgTGFuZHNjYXBlIiwidmFsdWUiOjg4MCwiZGVmYXVsdF92YWx1ZSI6ODgwLCJkaXJlY3Rpb24iOiJtYXgiLCJpc19lbmFibGVkIjpmYWxzZX0sInRhYmxldCI6eyJsYWJlbCI6IlRhYmxldCBQb3J0cmFpdCIsInZhbHVlIjoxMDI0LCJkZWZhdWx0X3ZhbHVlIjoxMDI0LCJkaXJlY3Rpb24iOiJtYXgiLCJpc19lbmFibGVkIjp0cnVlfSwidGFibGV0X2V4dHJhIjp7ImxhYmVsIjoiVGFibGV0IExhbmRzY2FwZSIsInZhbHVlIjoxMjAwLCJkZWZhdWx0X3ZhbHVlIjoxMjAwLCJkaXJlY3Rpb24iOiJtYXgiLCJpc19lbmFibGVkIjpmYWxzZX0sImxhcHRvcCI6eyJsYWJlbCI6IkxhcHRvcCIsInZhbHVlIjoxMzY2LCJkZWZhdWx0X3ZhbHVlIjoxMzY2LCJkaXJlY3Rpb24iOiJtYXgiLCJpc19lbmFibGVkIjpmYWxzZX0sIndpZGVzY3JlZW4iOnsibGFiZWwiOiJXaWRlc2NyZWVuIiwidmFsdWUiOjI0MDAsImRlZmF1bHRfdmFsdWUiOjI0MDAsImRpcmVjdGlvbiI6Im1pbiIsImlzX2VuYWJsZWQiOmZhbHNlfX19LAoidmVyc2lvbiI6IjMuMTkuMiIsImlzX3N0YXRpYyI6ZmFsc2UsImV4cGVyaW1lbnRhbEZlYXR1cmVzIjp7ImVfb3B0aW1pemVkX2Fzc2V0c19sb2FkaW5nIjp0cnVlLCJlX29wdGltaXplZF9jc3NfbG9hZGluZyI6dHJ1ZSwiYWRkaXRpb25hbF9jdXN0b21fYnJlYWtwb2ludHMiOnRydWUsInRoZW1lX2J1aWxkZXJfdjIiOnRydWUsImJsb2NrX2VkaXRvcl9hc3NldHNfb3B0aW1pemUiOnRydWUsImFpLWxheW91dCI6dHJ1ZSwibGFuZGluZy1wYWdlcyI6dHJ1ZSwiZV9pbWFnZV9sb2FkaW5nX29wdGltaXphdGlvbiI6dHJ1ZSwiZV9nbG9iYWxfc3R5bGVndWlkZSI6dHJ1ZSwicGFnZS10cmFuc2l0aW9ucyI6dHJ1ZSwibm90ZXMiOnRydWUsImZvcm0tc3VibWlzc2lvbnMiOnRydWUsImVfc2Nyb2xsX3NuYXAiOnRydWV9LCJ1cmxzIjp7ImFzc2V0cyI6Imh0dHBzOlwvXC9yb2Jzbm93LmV1XC93cC1jb250ZW50XC9wbHVnaW5zXC9lbGVtZW50b3JcL2Fzc2V0c1wvIn0sInN3aXBlckNsYXNzIjoic3dpcGVyLWNvbnRhaW5lciIsInNldHRpbmdzIjp7InBhZ2UiOltdLCJlZGl0b3JQcmVmZXJlbmNlcyI6W119LCJraXQiOnsiYWN0aXZlX2JyZWFrcG9pbnRzIjpbInZpZXdwb3J0X21vYmlsZSIsInZpZXdwb3J0X3RhYmxldCJdLCJnbG9iYWxfaW1hZ2VfbGlnaHRib3giOiJ5ZXMiLCJsaWdodGJveF9lbmFibGVfY291bnRlciI6InllcyIsImxpZ2h0Ym94X2VuYWJsZV9mdWxsc2NyZWVuIjoieWVzIiwibGlnaHRib3hfZW5hYmxlX3pvb20iOiJ5ZXMiLCJsaWdodGJveF9lbmFibGVfc2hhcmUiOiJ5ZXMiLCJsaWdodGJveF90aXRsZV9zcmMiOiJ0aXRsZSIsImxpZ2h0Ym94X2Rlc2NyaXB0aW9uX3NyYyI6ImRlc2NyaXB0aW9uIiwid29vY29tbWVyY2Vfbm90aWNlc19lbGVtZW50cyI6W119LCJwb3N0Ijp7ImlkIjoxMzEwODMsInRpdGxlIjoiUm9iJTIwQXJ0JTIwJTdDJTIwSWxsdXN0cmF0aW9uJTIwSG9tZXBhZ2UlMjAtJTIwSXQlMjdzJTIwaW4lMjB0aGUlMjBkZXRhaWwlMjElMjBXaGVyZSUyMGFydCUyMG1hdHRlcnMlMjEiLCJleGNlcnB0IjoiIiwiZmVhdHVyZWRJbWFnZSI6ZmFsc2V9fTsKLyogXV0+ICovCg==
4 ms
javascript;base64,CgkJCWpRdWVyeSggZnVuY3Rpb24oICQgKSB7CgkJCQkJCQkkKCAnI210cGhyLWRudC03ODg1NycgKS5kaXR0eV9uZXdzX3RpY2tlcih7CgkJCQkJaWQgOiAnNzg4NTcnLAoJCQkJCXR5cGUgOiAnc2Nyb2xsJywKCQkJCQlzY3JvbGxfZGlyZWN0aW9uIDogJ2xlZnQnLAoJCQkJCXNjcm9sbF9zcGVlZCA6IDUsCgkJCQkJc2Nyb2xsX3BhdXNlIDogMSwKCQkJCQlzY3JvbGxfc3BhY2luZyA6IDQwLAoJCQkJCXNjcm9sbF9pbml0IDogMCwKCQkJCQlzY3JvbGxfaW5pdF9kZWxheSA6IDIsCgkJCQkJcm90YXRlX3R5cGUgOiAnZmFkZScsCgkJCQkJYXV0b19yb3RhdGUgOiAxLAoJCQkJCXJvdGF0ZV9kZWxheSA6IDcsCgkJCQkJcm90YXRlX3BhdXNlIDogMCwKCQkJCQlyb3RhdGVfc3BlZWQgOiAxMCwKCQkJCQlyb3RhdGVfZWFzZSA6ICdlYXNlSW5PdXRRdWludCcsCgkJCQkJbmF2X3JldmVyc2UgOiAwLAoJCQkJCWRpc2FibGVfdG91Y2hzd2lwZSA6IDAsCgkJCQkJb2Zmc2V0IDogMTAsCgkJCQkJYWZ0ZXJfbG9hZCA6IGZ1bmN0aW9uKCAkdGlja2VyICkgewoJCQkJCQkJCQkJCX0sCgkJCQkJYmVmb3JlX2NoYW5nZSA6IGZ1bmN0aW9uKCAkdGlja2VyICkgewoJCQkJCQkJCQkJCX0sCgkJCQkJYWZ0ZXJfY2hhbmdlIDogZnVuY3Rpb24oICR0aWNrZXIgKSB7CgkJCQkJCQkJCQkJfQoJCQkJfSk7CgkJCSAJCQl9KTsKCQk=
3 ms
autoptimize_single_b7d070932e8bcaa6d1292d9418b37db8.css
763 ms
eventon_styles.css
682 ms
autoptimize_single_c8bbeafd67230546641fe68062bf133d.css
681 ms
autoptimize_single_7c9bb13319ef3ff07be7b79b11a33c6a.css
592 ms
fontawesome.min.css
593 ms
regular.min.css
663 ms
autoptimize_single_11620f93d587d3d94135551f0cbccbef.css
666 ms
robsnow.eu
1745 ms
autoptimize_single_4c952f636e24101c756fa2d63290683b.css
597 ms
brands.min.css
596 ms
autoptimize_single_26b4f0c3c1bcf76291fa4952fb7f04fb.css
663 ms
animations.min.css
665 ms
autoptimize_single_08f3fa5cd7040c88c7ddf43deadde2a9.css
671 ms
wp-polyfill-inert.min.js
577 ms
regenerator-runtime.min.js
578 ms
wp-polyfill.min.js
755 ms
hooks.min.js
660 ms
jquery.min.js
670 ms
jquery-migrate.min.js
670 ms
autoptimize_single_dffa195b546cf1dfd52f2206955eb892.js
589 ms
autoptimize_single_2c542c9989f589cd5318f5cef6a9ecd7.js
730 ms
autoptimize_single_49cea0a781874a962879c2caca9bc322.js
721 ms
jquery.blockUI.min.js
717 ms
add-to-cart.min.js
717 ms
js.cookie.min.js
671 ms
woocommerce.min.js
679 ms
autoptimize_single_e4cac0b30e299c7df9d250590bb92fcc.js
661 ms
swiped-events.min.js
658 ms
imagesloaded.min.js
658 ms
effect.min.js
672 ms
autoptimize_single_0482a9a2940050bbb6583a688f26b07d.js
680 ms
autoptimize_single_dab5daed93fee83a84ffa4750c4a5dca.js
679 ms
autoptimize_single_c853a457abf2b8d989e287fd96dda084.js
678 ms
autoptimize_single_f2a90ad20728cf71b6815ae1e44ddf4f.js
675 ms
sourcebuster.min.js
755 ms
order-attribution.min.js
680 ms
jquery.countdown.min.js
697 ms
jquery.justifiedGallery.min.js
681 ms
perfect-scrollbar.min.js
676 ms
isotope.pkgd.min.js
745 ms
packery-mode.pkgd.min.js
681 ms
jquery.magnific-popup.min.js
691 ms
owl.carousel.min.js
675 ms
typed.min.js
673 ms
wow.min.js
741 ms
autoptimize_single_9ec8a70a45200a234a972fdb58a3188e.js
682 ms
autoptimize_single_b209fae9d3edbe9e433fa54616526171.js
696 ms
autoptimize_single_3155bc32a3498d48bcd35151dccacfe2.js
690 ms
autoptimize_single_51af8768b434c2f3cafebe3d21d67f2b.js
687 ms
comment-reply.min.js
753 ms
autoptimize_single_1ad77210b149693b40320d30a3bd0e0a.js
678 ms
autoptimize_single_edd8628ed1c660cf2bfe60da3a6fcaf3.js
685 ms
autoptimize_single_6516449ed5089677ed3d7e2f11fc8942.js
686 ms
autoptimize_single_c4d39d28c89d97c1c510b03067015f84.js
689 ms
jquery.mobile.min.js
612 ms
moment.min.js
621 ms
autoptimize_single_3d5f23458132990bf0544a307959d4de.js
636 ms
jquery.mousewheel.min.js
637 ms
autoptimize_single_fc74cd7e98d1518c914e9c104ff5ab8f.js
641 ms
jetpack-carousel.min.js
673 ms
webpack-pro.runtime.min.js
673 ms
webpack.runtime.min.js
685 ms
frontend-modules.min.js
688 ms
i18n.min.js
690 ms
frontend.min.js
673 ms
waypoints.min.js
673 ms
core.min.js
958 ms
frontend.min.js
960 ms
elements-handlers.min.js
959 ms
wow.min.js
878 ms
autoptimize_single_60a119a13d68ea6a89f53379c0cf4438.js
872 ms
Banner.png
896 ms
27912711_10155457704743379_860445109378175135_o-1024x1024.jpg
897 ms
iMac-1024x1024.jpg
1016 ms
Kitchen_Site_Portfolio_2.jpg
948 ms
cover.jpg
1163 ms
cover-1.jpg
1145 ms
cover-1.jpg
921 ms
cover.jpg
1172 ms
cover_1.jpg
1514 ms
cover_2.jpg
1341 ms
cover-2.jpg
1325 ms
cover.jpg
1487 ms
cover.jpg
1320 ms
Cover-1.jpg
1253 ms
cover.jpg
1413 ms
cover.jpg
1396 ms
cover.jpg
1394 ms
cover.jpg
1414 ms
project_cover.jpg
1344 ms
cover.jpg
1336 ms
cover-9.jpg
1325 ms
cover.jpg
1326 ms
yves_cover.jpg
1323 ms
yves_cover-1.jpg
1344 ms
cover.jpg
1337 ms
cover.jpg
1325 ms
cover.jpg
1324 ms
portfolio_cover.jpg
1322 ms
cover.jpg
1258 ms
project_cover.jpg
1335 ms
g.gif
349 ms
core.js
503 ms
analytics.js
559 ms
fbevents.js
475 ms
analytics.js
474 ms
xfbml.customerchat.js
649 ms
collectedforms.js
701 ms
fb.js
701 ms
5442830.js
702 ms
5442830.js
708 ms
trump_cover.jpg
1048 ms
g.gif
170 ms
Dentist_Cover.jpg
1049 ms
cover.jpg
1051 ms
portfolio.jpg
1190 ms
front.jpg
1011 ms
site.jpg
1097 ms
cover-11.jpg
1146 ms
KFOkCnqEu92Fr1Mu51xIIzc.ttf
378 ms
KFOjCnqEu92Fr1Mu51S7ACc6CsE.ttf
461 ms
KFOjCnqEu92Fr1Mu51TjASc6CsE.ttf
616 ms
KFOiCnqEu92Fr1Mu51QrEzAdKg.ttf
618 ms
KFOjCnqEu92Fr1Mu51TzBic6CsE.ttf
697 ms
KFOjCnqEu92Fr1Mu51TLBCc6CsE.ttf
698 ms
KFOmCnqEu92Fr1Mu4mxP.ttf
695 ms
KFOlCnqEu92Fr1MmEU9fBBc9.ttf
694 ms
KFOlCnqEu92Fr1MmSU5fBBc9.ttf
695 ms
KFOkCnqEu92Fr1MmgVxIIzc.ttf
694 ms
KFOlCnqEu92Fr1MmWUlfBBc9.ttf
696 ms
KFOlCnqEu92Fr1MmYUtfBBc9.ttf
697 ms
fa-regular-400.woff
1098 ms
fa-regular-400.ttf
1077 ms
fa-solid-900.ttf
1209 ms
cover-4.jpg
1071 ms
front-1.jpg
854 ms
fa-brands-400.woff
898 ms
fa-brands-400.woff
957 ms
4570 ms
collect
148 ms
fa-brands-400.ttf
780 ms
porfolio_cover.jpg
712 ms
front.jpg
711 ms
cover-12.jpg
712 ms
Front.jpg
615 ms
webicon_2.jpg
615 ms
webicon.jpg
612 ms
swing_site_portfolio.jpg
613 ms
Preview.jpg
687 ms
manny_front.jpg
676 ms
nicosia_front.jpg
687 ms
minotaur_front.jpg
683 ms
cover-5.jpg
679 ms
amy_winehouse_front.jpg
676 ms
costis_front.jpg
679 ms
stavros_front.jpg
679 ms
family_front.jpg
684 ms
group_front.jpg
684 ms
card_front.jpg
682 ms
cover-3.jpg
682 ms
christmas_2017_front.jpg
683 ms
christmas_2016_front.jpg
679 ms
michael_jackson_front.jpg
684 ms
gym_front.jpg
684 ms
seven_front.jpg
684 ms
cover-2.jpg
678 ms
portfolio.jpg
594 ms
hero_front.jpg
629 ms
cover_final.jpg
636 ms
cover_3_final.jpg
613 ms
alex_front.jpg
591 ms
cover_2_final.jpg
590 ms
box_front.jpg
526 ms
elke_front.jpg
543 ms
cover-6.jpg
548 ms
cover-7.jpg
550 ms
cover-8.jpg
552 ms
cover-10.jpg
554 ms
cover.jpg
491 ms
cover-1.jpg
570 ms
cover-2.jpg
576 ms
Fiverr-Pro@2x-q0gn7zf1s1oou8vkvj8ypb5ug7ea6zix2vocv6vfzw.png
577 ms
autoptimize_single_d65b32427bcab78e5d892cce7dc90906.css
96 ms
autoptimize_single_29ed0396622780590223cd919f310dd7.css
97 ms
robsnow.eu accessibility score
Contrast
These are opportunities to improve the legibility of your content.
Impact
Issue
Background and foreground colors do not have a sufficient contrast ratio.
Names and labels
These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.
Impact
Issue
<frame> or <iframe> elements do not have a title
Links do not have a discernible name
Navigation
These are opportunities to improve keyboard navigation in your application.
Impact
Issue
Heading elements are not in a sequentially-descending order
robsnow.eu best practices score
Trust and Safety
Impact
Issue
Does not use HTTPS
Ensure CSP is effective against XSS attacks
General
Impact
Issue
Detected JavaScript libraries
Browser errors were logged to the console
Page has valid source maps
robsnow.eu SEO score
Mobile Friendly
Make sure your pages are mobile friendly so users don’t have to pinch or zoom in order to read the content pages. [Learn more](https://developers.google.com/search/mobile-sites/).
Impact
Issue
Document uses legible font sizes
EN
EN
UTF-8
Language claimed in HTML meta tag should match the language actually used on the web page. Otherwise Robsnow.eu can be misinterpreted by Google and other search engines. Our service has detected that English is used on the page, and it matches the claimed language. Our system also found out that Robsnow.eu main page’s claimed encoding is utf-8. Use of this encoding format is the best practice as the main page visitors from all over the world won’t have any issues with symbol transcription.
robsnow.eu
Open Graph data is detected on the main page of Rob Snow. This is the best way to make the web page social media friendly. Here is how it looks like on Facebook: