13.7 sec in total
229 ms
12.2 sec
1.2 sec
Click here to check amazing Concept Cubicle Systems content. Otherwise, check out these important facts you probably never knew about conceptcubiclesystems.co.uk
We provide toilet cubicle and washroom solutions that exceed expectations in every aspect of functionality, performance and aesthetics.
Visit conceptcubiclesystems.co.ukWe analyzed Conceptcubiclesystems.co.uk page load time and found that the first response time was 229 ms and then it took 13.5 sec to load all DOM resources and completely render a web page. This is a poor result, as 90% of websites can load faster.
conceptcubiclesystems.co.uk performance score
name
value
score
weighting
Value5.0 s
10/100
10%
Value39.8 s
0/100
25%
Value14.9 s
1/100
10%
Value3,200 ms
2/100
30%
Value0.063
97/100
15%
Value20.0 s
2/100
10%
229 ms
3755 ms
61 ms
52 ms
46 ms
Our browser made a total of 329 requests to load all elements on the main page. We found that 92% of them (302 requests) were addressed to the original Conceptcubiclesystems.co.uk, 5% (15 requests) were made to and 1% (2 requests) were made to Fonts.cdnfonts.com. The less responsive or slowest element that took the longest time to load (3.8 sec) belongs to the original domain Conceptcubiclesystems.co.uk.
Page size can be reduced by 1.0 MB (16%)
6.1 MB
5.1 MB
In fact, the total size of Conceptcubiclesystems.co.uk main page is 6.1 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. 75% 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 5.4 MB which makes up the majority of the site volume.
Potential reduce by 309.0 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 309.0 kB or 90% of the original size.
Potential reduce by 413.4 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. Concept Cubicle Systems images are well optimized though.
Potential reduce by 279.9 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. It is highly recommended that all JavaScript files should be compressed and minified as it can save up to 279.9 kB or 65% of the original size.
Number of requests can be reduced by 38 (12%)
307
269
The browser has sent 307 CSS, Javascripts, AJAX and image requests in order to completely render the main page of Concept Cubicle Systems. We recommend that multiple CSS and JavaScript files should be merged into one by each type, as it can help reduce assets requests from 23 to 1 for JavaScripts and from 10 to 1 for CSS and as a result speed up the page load time.
conceptcubiclesystems.co.uk
229 ms
www.conceptcubiclesystems.co.uk
3755 ms
avenir
61 ms
css2
52 ms
bootstrap.min.css
46 ms
CfkJwgY29uc2VudCBhbHJlYWR5IGdyYW50ZWQgZm9yOiAnICsgZnVuYy50b1N0cmluZygpKQoJCQkJCWZ1bmMoKQoJCQkJfSBlbHNlIHsgCgkJCQkJd2FpdENvbnNlbnQoZnVuYywgcnVsZSkKCQkJCX0KICAgICAgfQogICAgICA=
6 ms
javascript;base64,CgkJCXdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOwoJCQlmdW5jdGlvbiBndGFnKCkgeyBkYXRhTGF5ZXIucHVzaChhcmd1bWVudHMpOyB9CgkJCWd0YWcoJ2NvbnNlbnQnLCAnZGVmYXVsdCcsIHsKCQkJCSdhZF9zdG9yYWdlJzogJ2RlbmllZCcsCgkJCQknYWRfdXNlcl9kYXRhJzogJ2RlbmllZCcsCgkJCQknYWRfcGVyc29uYWxpemF0aW9uJzogJ2RlbmllZCcsCgkJCQknYW5hbHl0aWNzX3N0b3JhZ2UnOiAnZGVuaWVkJwoJCQl9KTsKCQkgIA==
6 ms
script.js
41 ms
autoptimize_single_10f4faa70c87eb34f27789ed0a79058e.php
264 ms
autoptimize_single_a8d4b353ef9b737106c3f2261ea874c1.php
385 ms
autoptimize_single_443a0083792b1ca61e8116184cb5901e.php
389 ms
autoptimize_single_30d03f51ac52d830161be90759ddbd6e.php
355 ms
autoptimize_single_631fc62bc1595156657f3c01831b16db.php
363 ms
autoptimize_single_4dbb0a5d9a309bef87fd85f50394d74b.php
395 ms
autoptimize_single_c3a994041107a1aa3aaea22676eb4faa.php
399 ms
jquery.js
968 ms
autoptimize_single_c91800f536bebf3fd9b3f710b174d10d.php
505 ms
script.min.js
502 ms
js
84 ms
javascript;base64,CndpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOwpmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9Cmd0YWcoJ2pzJywgbmV3IERhdGUoKSk7Cmd0YWcoJ3NldCcsICd1cmxfcGFzc3Rocm91Z2gnLCB0cnVlKTsKZ3RhZygnY29uZmlnJywgJ0ctM1BMRlBRQ1ZRNCcsIHsiY29va2llX2ZsYWdzIjoiU2FtZVNpdGU9Tm9uZTsgU2VjdXJlIiwibGlua2VyIjp7ImFsbG93X2luY29taW5nIjp0cnVlfSwiY29udGVudGdyb3VwMSI6ImZyb250LXBhZ2UifSk7CndpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOwpmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9Cmd0YWcoJ2pzJywgbmV3IERhdGUoKSk7Cmd0YWcoJ3NldCcsICd1cmxfcGFzc3Rocm91Z2gnLCB0cnVlKTsKZ3RhZygnY29uZmlnJywgJ0FXLTkyMzU4ODY2NScsIHsiY29va2llX2ZsYWdzIjoiU2FtZVNpdGU9Tm9uZTsgU2VjdXJlIiwiYWxsb3dfZW5oYW5jZWRfY29udmVyc2lvbnMiOnRydWV9KTsK
2 ms
javascript;base64,DQoJCQkJKGZ1bmN0aW9uKGMsbCxhLHIsaSx0LHkpew0KCQkJCQljW2FdPWNbYV18fGZ1bmN0aW9uKCl7KGNbYV0ucT1jW2FdLnF8fFtdKS5wdXNoKGFyZ3VtZW50cyl9O3Q9bC5jcmVhdGVFbGVtZW50KHIpO3QuYXN5bmM9MTsNCgkJCQkJdC5zcmM9Imh0dHBzOi8vd3d3LmNsYXJpdHkubXMvdGFnLyIraSsiP3JlZj13b3JkcHJlc3MiO3k9bC5nZXRFbGVtZW50c0J5VGFnTmFtZShyKVswXTt5LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQseSk7DQoJCQkJfSkod2luZG93LCBkb2N1bWVudCwgImNsYXJpdHkiLCAic2NyaXB0IiwgImx0d2J0YmR4ankiKTsNCgkJ
2 ms
javascript;base64,CgkJCQl3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIChldmVudCkgPT4gewoJCQkJCXdpbmRvdy5lbmhhbmNlZF9jb252ZXJzaW9uX2RhdGEgPSBbXQoJCQkJCWlmICh3aW5kb3cuZ3RhZykgZ3RhZygic2V0IiwgInVzZXJfZGF0YSIsIHdpbmRvdy5lbmhhbmNlZF9jb252ZXJzaW9uX2RhdGEpCgkJCQl9KQoJCQk=
2 ms
javascript;base64,CgkJCQl3aW5kb3cuYmFtYm9vbmluZSA9IHdpbmRvdy5iYW1ib29uaW5lIHx8IFtdOwoJCQkJYmFtYm9vbmluZVsiX2wiXSA9IHsiZXZlbnRzIjogew0KCSJibl9fb3JkZXJfc2FtcGxlIjogImR1bmVDUG1ZdlpNWUVMbXdzN2dEIiwNCgkiYm5fX2NsaWNrX2VtYWlsIjogInloNGlDUHlZdlpNWUVMbXdzN2dEIiwNCgkiYm5fX2Zvcm1fX2NmN19fNjU5MyI6ICI5S29kQ1AtWXZaTVlFTG13czdnRCIsDQoJImJuX19mb3JtX19jZjdfXzE3NDciOiAiS3FlT0NLQ1p2Wk1ZRUxtd3M3Z0QiDQp9fQoJCQk=
2 ms
javascript;base64,DQoNCndpbmRvdy5fX2xvX3NpdGVfaWQgPSAxOTM3MzM7DQoNCihmdW5jdGlvbigpIHsNCg0KICAgIHZhciB3YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOyB3YS50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7IHdhLmFzeW5jID0gdHJ1ZTsNCg0KICAgIHdhLnNyYyA9ICdodHRwczovL2QxMGxwc2lrMWk4YzY5LmNsb3VkZnJvbnQubmV0L3cuanMnOw0KDQogICAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07IHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUod2EsIHMpOw0KDQp9KSgpOw0KDQo=
3 ms
javascript;base64,CgkJCWlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoJ21oX2tleXdvcmQnKSA+IDApIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ21lZGlhaGF3a19jcGMnLCAndHJ1ZScpCgkJCWlmICh0cnVlIHx8IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ21lZGlhaGF3a19jcGMnKSkgewoKCQkJCXZhciBfbWhjdCA9IF9taGN0IHx8IFtdOwoJCQkJX21oY3QucHVzaChbJ21oQ2FtcGFpZ25JRCcsICdWQS0xMjczMCddKTsKCgkJCQljb25zdCBhcHBseU1lZGlhaGF3ayA9ICgpID0+IHsKCQkJCQkhZnVuY3Rpb24gKCkgeyB2YXIgYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOyBjLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JywgYy5hc3luYyA9ICEwLCBjLnNyYyA9ICcvL3d3dy5keW5hbWljbnVtYmVycy5tZWRpYWhhd2suY28udWsvbWhjdC5taW4uanMnOyB2YXIgaSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsgaS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLCBpKSB9KCk7CgkJCQl9CgoJCQkJaWYgKGZhbHNlKSB7CgkJCQkJcmVxdWlyZUNvbnNlbnQoYXBwbHlNZWRpYWhhd2ssICdhbmFseXRpY3Nfc3RvcmFnZScpCgkJCQl9IGVsc2UgewoJCQkJCWFwcGx5TWVkaWFoYXdrKCkKCQkJCX0KCQkJfQoJCQ==
4 ms
autoptimize_single_7f0734e228d3f1a255a8b817a5005b8e.php
440 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd3BjZjcgPSB7ImFwaSI6eyJyb290IjoiaHR0cHM6XC9cL3d3dy5jb25jZXB0Y3ViaWNsZXN5c3RlbXMuY28udWtcL3dwLWpzb25cLyIsIm5hbWVzcGFjZSI6ImNvbnRhY3QtZm9ybS03XC92MSJ9fTsKLyogXV0+ICovCg==
3 ms
autoptimize_single_f57435a927d422043befe66bd74f4d68.php
445 ms
api.js
46 ms
autoptimize_single_61d4e435f5b81f2e452f58d03b45a67e.php
442 ms
autoptimize_single_509ca68a788cddecd956ee26cc5ddb30.php
556 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd3BjZjdfcmVjYXB0Y2hhID0geyJzaXRla2V5IjoiNkxlSmJGa2NBQUFBQUNYd2JLdWxNbUw3LUZTanJUVFZvVWV3cC1SViIsImFjdGlvbnMiOnsiaG9tZXBhZ2UiOiJob21lcGFnZSIsImNvbnRhY3Rmb3JtIjoiY29udGFjdGZvcm0ifX07Ci8qIF1dPiAqLwo=
3 ms
autoptimize_single_6a0e8318d42803736d2fafcc12238026.php
541 ms
218263.js
59 ms
jquery-2.2.4.js
26 ms
jquery-ui.min.js
29 ms
bootstrap.min.js
20 ms
jquery.daisynav2.min.js
554 ms
autoptimize_single_5298f9ea54fea72f0ba0fb61cc3a9912.php
579 ms
autoptimize_single_607f4de06bf5042b60ffecf38054a4e2.php
582 ms
slick.min.js
784 ms
textyle.min.js
663 ms
autoptimize_single_c6a40a8798f96d100e4cc555a9d5aea8.php
690 ms
jquery.mCustomScrollbar.concat.min.js
760 ms
autoptimize_single_a78038df5a420bd740ac1f14b95ddb93.php
757 ms
javascript;base64,DQoNCi8qICQod2luZG93KS5vbignYmVmb3JldW5sb2FkJywgZnVuY3Rpb24oKXsNCiAgICAkKHdpbmRvdykuc2Nyb2xsVG9wKDApOw0KfSk7ICovDQoJCQ0KDQpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpew0KCQ0KCSQuZGFpc3lOYXYoKTsNCgkNCgl2YXIgcGx1c3RpY2sgPSBmYWxzZTsNCgkNCglmdW5jdGlvbiBwbHVzVGltZU91dEZ1bmN0aW9uKCB1cmwgKSB7DQoJCQ0KCQlpZiggKCBwbHVzdGljayA9PSBmYWxzZSApICYmIHVybCApDQoJCXsNCgkJCXdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsOw0KCQkJcGx1c3RpY2sgPSBmYWxzZTsNCgkJfQ0KCQllbHNlDQoJCQlwbHVzdGljayA9IGZhbHNlOw0KCX0NCgkNCgkNCgkkKCcuc2FtcGxlQm94SW1nSG9tZXBhZ2UgYS5wbHVzLCAuc2FtcGxlYm94aW1nMiBhLnBsdXMsIC5zYW1wbGVCb3hJbWdOZXcyIGEucGx1cycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KCQkNCgkgCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCXBsdXN0aWNrID0gdHJ1ZTsNCgkJdmFyIGhyZWYgPSAkKHRoaXMpLmF0dHIoImhyZWYiKTsNCgkJdmFyIHRhcmdldCA9ICQodGhpcykuYXR0cigidGFyZ2V0Iik7DQoJCQ0KCQl3aW5kb3cub3BlbihocmVmLCB0YXJnZXQpOw0KCQkNCgkJcmV0dXJuIGZhbHNlOw0KCQ0KCX0pOw0KCQ0KCSQoJy5zYW1wbGVCb3hXcmFwcGVySG9tZXBhZ2VbZGF0YS11cmxdLCAuc2FtcGxlQm94V3JhcHBlcltkYXRhLXVybF0sIC5zYW1wbGVib3gzW2RhdGEtdXJsXScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KCQ0KCSAJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJdmFyIGRhdGF1cmwgPSAkKHRoaXMpLmF0dHIoImRhdGEtdXJsIik7DQoJCWlmKCBkYXRhdXJsICkNCgkJCXNldFRpbWVvdXQocGx1c1RpbWVPdXRGdW5jdGlvbiwgMTAwMCwgZGF0YXVybCk7DQoJCXJldHVybiBmYWxzZTsNCgkNCgl9KTsNCg0KDQoJCQ0KCXZhciBvcHRpb25zID0ge3Jlc2l6ZTp0cnVlfTsNCgkkKCd2aWRlby5yZXNwb25zaXZlLXZpZGVvJykudmlkZW9TcmNzZXQob3B0aW9ucyk7DQoJDQoJaWYoICQoJyNnYWxsZXJ5JykubGVuZ3RoICkNCgl7DQoJDQoJCSQoJyNnYWxsZXJ5JykuY2Fyb3VGcmVkU2VsKHsNCgkJCXdpZHRoOiAnMTAwJScsDQoJCQlpdGVtczogew0KCQkJCXZpc2libGU6IDEsDQoJCQkJc3RhcnQ6IC0xDQoJCQl9LA0KCQkJc2Nyb2xsOiB7DQoJCQkJaXRlbXM6IDEsDQoJCQkJZHVyYXRpb246IDEwMDAsDQoJCQkJdGltZW91dER1cmF0aW9uOiAxMDAwMA0KCQkJfSwNCgkJCXByZXY6ICcjcHJldjAnLA0KCQkJbmV4dDogJyNuZXh0MCcNCgkJfSk7DQoJDQoJfQ0KCQ0KCQ0KCQkNCg0KCQkNCg0KCXNldE1lbnUoKTsNCgkNCgkJLy9zZXRJbnRybygpOw0KCXZhciB3aW5kb3dUb3AgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCk7IA0KCXZhciB2aWV3cG9ydEhlaWdodCA9ICQod2luZG93KS5pbm5lckhlaWdodCgpOw0KCWlmKCAkKCcjZm9yZXN0d3JhcHBlcicpLmxlbmd0aCA+IDAgKQ0KCQlzZXRWaWRlb1BsYXlQYXVzZSh3aW5kb3dUb3AsJyNmb3Jlc3R3cmFwcGVyJyw0NTAsJyNmb3Jlc3RmaWx0ZXInLCcjYmd2aWQyJyx2aWV3cG9ydEhlaWdodCk7DQoJaWYoICQoJyNoeWJyaXF3cmFwcGVyJykubGVuZ3RoID4gMCApDQoJCXNldFZpZGVvUGxheVBhdXNlKHdpbmRvd1RvcCwnI2h5YnJpcXdyYXBwZXInLDAsJyNoeWJyaXFmaWx0ZXInLCcjYmd2aWQzJyx2aWV3cG9ydEhlaWdodCk7DQoJaWYoICQoJyNiYW5uZXJ3cmFwcGVyNHZpZGVvJykubGVuZ3RoID4gMCApDQoJCXNldFZpZGVvUGxheVBhdXNlKHdpbmRvd1RvcCwnI2Jhbm5lcndyYXBwZXI0dmlkZW8nLDEwMCwnI21pcnJvcmJveGZpbHRlcicsJyNiZ3ZpZDQnLHZpZXdwb3J0SGVpZ2h0KTsJDQoJaWYoICQoJyNjb3NlbnRpbm9WaWRlb1dyYXBwZXInKS5sZW5ndGggPiAwICkNCgkJc2V0VmlkZW9QbGF5UGF1c2Uod2luZG93VG9wLCcjY29zZW50aW5vVmlkZW9XcmFwcGVyJyw1MCwnI2Nvc2VudGlub2ZpbHRlcicsJyNiZ3ZpZDUnLHZpZXdwb3J0SGVpZ2h0KTsNCgkJDQoJZmFkZUluKCd2ZmFkZScsJ3ZmYWRlSW4nLHdpbmRvd1RvcCx2aWV3cG9ydEhlaWdodCk7DQoJZmFkZUluKCd2ZmFkZTInLCd2ZmFkZTJJbicsd2luZG93VG9wLHZpZXdwb3J0SGVpZ2h0KTsNCglmYWRlSW4oJ2hmYWRlJywnaGZhZGVJbicsd2luZG93VG9wLHZpZXdwb3J0SGVpZ2h0KTsNCgkNCgkkKGZ1bmN0aW9uICgpIHsNCgkJDQoJCQ0KCQl2YXIgd2luZG93VG9wID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpOw0KCQkvKiB2YXIgdmlld3BvcnRIZWlnaHQgPSAkKHdpbmRvdykuaW5uZXJIZWlnaHQoKTsNCg0KCQlpZiggKCB3aW5kb3dUb3AgKyAxMjAgKSA+IHZpZXdwb3J0SGVpZ2h0ICkNCgkJew0KCQkJJCgiI2Jhbm5lclF1aWNrbGlua3NXcmFwcGVyIikuYWRkQ2xhc3MoInN0aWNreW1lbnUiKTsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSQoIiNiYW5uZXJRdWlja2xpbmtzV3JhcHBlciIpLnJlbW92ZUNsYXNzKCJzdGlja3ltZW51Iik7DQoJCX0gKi8NCgkJDQoJCSQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24gKCkgewkNCgkJDQoNCgkJCQkNCgkJCQ0KCQkJc2V0TWVudSgpOw0KCQkJDQoJCQkJCQkvL3NldEludHJvKCk7DQoJCQl2YXIgd2luZG93VG9wID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpOw0KCQkJLyogdmFyIHZpZXdwb3J0SGVpZ2h0ID0gJCh3aW5kb3cpLmlubmVySGVpZ2h0KCk7DQoJCQkNCgkJCWlmKCAoIHdpbmRvd1RvcCArIDEyMCApID4gdmlld3BvcnRIZWlnaHQgKQ0KCQkJew0KCQkJCSQoIiNiYW5uZXJRdWlja2xpbmtzV3JhcHBlciIpLmFkZENsYXNzKCJzdGlja3ltZW51Iik7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJCgiI2Jhbm5lclF1aWNrbGlua3NXcmFwcGVyIikucmVtb3ZlQ2xhc3MoInN0aWNreW1lbnUiKTsNCgkJCX0gKi8NCgkJCSAgIA0KCQkJaWYoICQoJyNmb3Jlc3R3cmFwcGVyJykubGVuZ3RoID4gMCApDQoJCQkJc2V0VmlkZW9QbGF5UGF1c2Uod2luZG93VG9wLCcjZm9yZXN0d3JhcHBlcicsNDUwLCcjZm9yZXN0ZmlsdGVyJywnI2JndmlkMicsdmlld3BvcnRIZWlnaHQpOw0KCQkJaWYoICQoJyNoeWJyaXF3cmFwcGVyJykubGVuZ3RoID4gMCApDQoJCQkJc2V0VmlkZW9QbGF5UGF1c2Uod2luZG93VG9wLCcjaHlicmlxd3JhcHBlcicsMCwnI2h5YnJpcWZpbHRlcicsJyNiZ3ZpZDMnLHZpZXdwb3J0SGVpZ2h0KTsNCgkJCWlmKCAkKCcjYmFubmVyd3JhcHBlcjR2aWRlbycpLmxlbmd0aCA+IDAgKQ0KCQkJCXNldFZpZGVvUGxheVBhdXNlKHdpbmRvd1RvcCwnI2Jhbm5lcndyYXBwZXI0dmlkZW8nLDEwMCwnI21pcnJvcmJveGZpbHRlcicsJyNiZ3ZpZDQnLHZpZXdwb3J0SGVpZ2h0KTsNCgkJCWlmKCAkKCcjY29zZW50aW5vVmlkZW9XcmFwcGVyJykubGVuZ3RoID4gMCApDQoJCQkJc2V0VmlkZW9QbGF5UGF1c2Uod2luZG93VG9wLCcjY29zZW50aW5vVmlkZW9XcmFwcGVyJyw1MCwnI2Nvc2VudGlub2ZpbHRlcicsJyNiZ3ZpZDUnLHZpZXdwb3J0SGVpZ2h0KTsNCgkJCQkJCQkNCgkJCQ0KCQkJZmFkZUluKCd2ZmFkZScsJ3ZmYWRlSW4nLHdpbmRvd1RvcCx2aWV3cG9ydEhlaWdodCk7DQoJCQlmYWRlSW4oJ3ZmYWRlMicsJ3ZmYWRlMkluJyx3aW5kb3dUb3Asdmlld3BvcnRIZWlnaHQpOw0KCQkJZmFkZUluKCdoZmFkZScsJ2hmYWRlSW4nLHdpbmRvd1RvcCx2aWV3cG9ydEhlaWdodCk7DQoJCQkJDQoJCX0pOw0KCQkNCgl9KTsNCgkNCgkJDQoJJCgiLnRhYkJ1dHRvbiIpLmNsaWNrKGZ1bmN0aW9uICgpIHsNCgkJLyogdmFyIHRhYnMgPSAkKHRoaXMpLmF0dHIoJ2RhdGEtdGFicycpOyAqLw0KCQl2YXIgcmVsID0gJCh0aGlzKS5hdHRyKCdyZWwnKTsNCgkJJCgiI3RhYkJ0MSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKTsNCgkJJCgiI3RhYkJ0MiIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKTsNCgkJJCgiI3RhYkJ0IityZWwpLmFkZENsYXNzKCJhY3RpdmUiKQ0KCQkkKCIjdGFiZm9sZGVyMSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKTsNCgkJJCgiI3RhYmZvbGRlcjIiKS5yZW1vdmVDbGFzcygiYWN0aXZlIik7DQoJCSQoIiN0YWJmb2xkZXIiK3JlbCkuYWRkQ2xhc3MoImFjdGl2ZSIpOw0KCQlyZXR1cm4gZmFsc2U7DQoJfSk7DQoJDQoJDQoJDQoJdmFyIHNhbXBsZWNvbHVtbnMgPSA2Ow0KCXZhciB2aWV3cG9ydHdpZHRoID0gJCh3aW5kb3cpLmlubmVyV2lkdGgoKTsNCgkNCglpZiggdmlld3BvcnR3aWR0aCA8PSA5OTIgKQ0KCQlzYW1wbGVjb2x1bW5zID0gNDsNCglpZiggdmlld3BvcnR3aWR0aCA8PSA3NjggKQ0KCQlzYW1wbGVjb2x1bW5zID0gMzsNCglpZiggdmlld3BvcnR3aWR0aCA8PSA1NzYgKQ0KCQlzYW1wbGVjb2x1bW5zID0gMjsNCgkNCgkkKCIjc2FtcGxlYm94d3JhcHBlcjAiKS5maW5kKCdkaXYuc2IwJykuZWFjaChmdW5jdGlvbihpbmRleCwgZGl2KSB7CQ0KICAgICAgICBpZiggaW5kZXggPiBzYW1wbGVjb2x1bW5zICkgew0KICAgICAgICAgICAgJChkaXYpLmFkZENsYXNzKCdub3NhbXBsZWJveCcpOw0KICAgICAgICB9DQogICAgfSk7DQoJDQoJJCgiI3NhbXBsZWJveHdyYXBwZXIxIikuZmluZCgnZGl2LnNiMScpLmVhY2goZnVuY3Rpb24oaW5kZXgsIGRpdikgew0KICAgICAgICBpZiggaW5kZXggPiBzYW1wbGVjb2x1bW5zICkgew0KICAgICAgICAgICAgJChkaXYpLmFkZENsYXNzKCdub3NhbXBsZWJveCcpOw0KICAgICAgICB9DQogICAgfSk7DQoJDQoJJCgiI3ZpZXdtb3Jlc2FtcGxlcyBhIikuY2xpY2soZnVuY3Rpb24gKCkgew0KCQkNCgkJJCgiI3NhbXBsZWJveHdyYXBwZXIwIGRpdi5zYjAiKS5yZW1vdmVDbGFzcygnbm9zYW1wbGVib3gnKTsNCgkJJCgiI3NhbXBsZWJveHdyYXBwZXIxIGRpdi5zYjEiKS5yZW1vdmVDbGFzcygnbm9zYW1wbGVib3gnKTsNCgkJDQoJCSQoIiN2aWV3bW9yZXNhbXBsZXMiKS5hZGRDbGFzcygnYWxsc2FtcGxlcycpOw0KCQkNCgl9KTsNCgkNCg0KCQ0KfSk7DQoNCiQod2luZG93KS5sb2FkKGZ1bmN0aW9uKCkgew0KCQ0KCSQoJ2h0bWwnKS5yZW1vdmVDbGFzcygicGFnZWxvYWRpbmciKTsNCgkkKCdib2R5JykucmVtb3ZlQ2xhc3MoInBhZ2Vsb2FkaW5nIik7DQoNCn0pOw0KDQoNCmZ1bmN0aW9uIHNldFZpZGVvUGxheVBhdXNlKHdpbmRvd1RvcCx3cmFwcGVySWQsb2Zmc2V0LGZpbHRlcklkLHZpZGVvSWQsdmlld3BvcnRIZWlnaHQpDQp7DQoJDQoJDQoJaWYoICQod3JhcHBlcklkKS5sZW5ndGggPiAwICkNCgl7DQoJCQ0KCQl2YXIgZGlzcGxheWRhdGEgPSAiIjsNCgkJdmFyIHZvZmZzZXQgPSAwOw0KCQl2YXIgdm9mZnNldDIgPSAxOw0KCQl2YXIgdm9mZnNldDMgPSAxOw0KCQkvKiB2YXIgd2luZG93VG9wID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpOyAqLw0KCQl2YXIgYmFubmVyd3JhcHBlciA9IHZpZXdwb3J0SGVpZ2h0IC8gMS43NTsNCgkJdmFyIHdyYXBwZXJUb3AgPSAkKHdyYXBwZXJJZCkub2Zmc2V0KCkudG9wIC0gd2luZG93VG9wIC0gYmFubmVyd3JhcHBlciArIG9mZnNldDsNCgkJdmFyIHdyYXBwZXJUb3AyID0gTWF0aC5hYnMod3JhcHBlclRvcCk7DQoJCQ0KCQlpZiggZmlsdGVySWQgPT0gIiNtaXJyb3Jib3hmaWx0ZXIiICkNCgkJew0KCQkJJCgnI2Rpc3BsYXlkYXRhJykuaHRtbCggd3JhcHBlclRvcDIgKTsNCgkJfQ0KCQ0KCQlpZiggd3JhcHBlclRvcCA+IDAgKQ0KCQl7DQoJCQl2b2Zmc2V0MiA9IDE7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkNCgkJCXZvZmZzZXQgPSB3cmFwcGVyVG9wMjsNCgkJCWlmKCB2b2Zmc2V0ID4gMCApDQoJCQl7DQoJDQoJCQkJdm9mZnNldDIgPSBwYXJzZUludCggMTAwICogKCB2b2Zmc2V0IC8gIGJhbm5lcndyYXBwZXIgKSApOw0KCQkJCXZvZmZzZXQyID0gMSAtICggdm9mZnNldDIgKiAxLjIgLyAxMDAgKTsNCgkJCQlpZiggdm9mZnNldDIgPCAwICkNCgkJCQkJdm9mZnNldDIgPSAwOw0KCQkJCWlmKCB2b2Zmc2V0MiA+IDEgKQ0KCQkJCQl2b2Zmc2V0MiA9IDE7DQoJCQl9DQoJCQllbHNlDQoJCQkJdm9mZnNldDIgPSAwOw0KCQkJDQoJCX0NCgkJaWYoICQoZmlsdGVySWQpLmxlbmd0aCA+IDAgKQ0KCQkJJChmaWx0ZXJJZCkuY3NzKHtvcGFjaXR5OiB2b2Zmc2V0Mi50b0ZpeGVkKDIpfSk7DQoJDQoJCWlmKCB2b2Zmc2V0MiA8IDAuNSApDQoJCXsNCgkJDQoJCQl2YXIgdG9wX29mX2VsZW1lbnQgPSAkKHdyYXBwZXJJZCkub2Zmc2V0KCkudG9wOw0KCQkJdmFyIGJvdHRvbV9vZl9lbGVtZW50ID0gJCh3cmFwcGVySWQpLm9mZnNldCgpLnRvcCArICQod3JhcHBlcklkKS5vdXRlckhlaWdodCgpOw0KCQkJdmFyIGJvdHRvbV9vZl9zY3JlZW4gPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCkgKyAkKHdpbmRvdykuaW5uZXJIZWlnaHQoKTsNCgkJCXZhciB0b3Bfb2Zfc2NyZWVuID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpOw0KCQkJDQoJCQlpZiAoICggYm90dG9tX29mX3NjcmVlbiA+IHRvcF9vZl9lbGVtZW50ICkgJiYgKCB0b3Bfb2Zfc2NyZWVuIDwgYm90dG9tX29mX2VsZW1lbnQgKSApDQoJCQkJJCh2aWRlb0lkKS50cmlnZ2VyKCdwbGF5Jyk7DQoJCQllbHNlDQoJCQkJJCh2aWRlb0lkKS50cmlnZ2VyKCdwYXVzZScpOw0KCQl9DQoJCWVsc2UNCgkJCSQodmlkZW9JZCkudHJpZ2dlcigncGF1c2UnKTsNCgkNCgl9DQoJCQkJDQp9DQoNCg0KDQpmdW5jdGlvbiBmYWRlSW4oZmFkZSxmYWRlSW4sd2luZG93VG9wLHZpZXdwb3J0SGVpZ2h0KQ0Kew0KCQ0KCQ0KCXZhciBtYXRjaGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShmYWRlKTsNCgkNCglmb3IgKHZhciBpID0gMDsgaSA8IG1hdGNoZXMubGVuZ3RoOyBpKyspIHsNCgkJDQoJCXZhciB3cmFwcGVyT2Zmc2V0ID0gMDsNCgkJdmFyIHdyYXBwZXJUb3AgPSAwOw0KCQlpZiggbWF0Y2hlc1tpXS5nZXRBdHRyaWJ1dGUoImRhdGEtdmZhZGVpZCIpICkNCgkJew0KCQkJdmFyIGNoaWxkSWQgPSAnIycgKyBtYXRjaGVzW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS12ZmFkZWlkIik7DQoJCX0NCgkJZWxzZQ0KCQkJdmFyIGNoaWxkSWQgPSAnIycgKyBtYXRjaGVzW2ldLmlkOw0KCQkNCgkJaWYoICEkKGNoaWxkSWQpLmhhc0NsYXNzKCd2ZmFkZUluJykgKQ0KCQl7DQoJCQl2YXIgb2Zmc2V0ID0gMDsNCgkJCXZhciBvZmZzZXQyID0gcGFyc2VJbnQoICQoY2hpbGRJZCkuZGF0YSgib2Zmc2V0IikgKTsNCgkJCWlmKCAhaXNOYU4ob2Zmc2V0MikgKQ0KCQkJCW9mZnNldCA9IG9mZnNldDI7DQoJCQl2YXIgcGFyZW50T2JqZWN0ID0gJChjaGlsZElkKS5wYXJlbnQoKTsNCgkJCWlmKCBwYXJlbnRPYmplY3QgJiYgKCBwYXJlbnRPYmplY3QubGVuZ3RoID4gMCApICkNCgkJCXsNCgkJCQl3cmFwcGVyT2Zmc2V0ID0gcGFyZW50T2JqZWN0Lm9mZnNldCgpLnRvcCAtICggdmlld3BvcnRIZWlnaHQgLyAxLjI1ICkgLSBvZmZzZXQ7DQoJCQkJd3JhcHBlclRvcCA9IHdyYXBwZXJPZmZzZXQgLSB3aW5kb3dUb3A7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJaWYoIGNoaWxkSWQgJiYgKCAkKGNoaWxkSWQpLmxlbmd0aCA+IDAgKSkNCgkJCQkJd3JhcHBlck9mZnNldCA9ICQoY2hpbGRJZCkub2Zmc2V0KCkudG9wIC0gKCB2aWV3cG9ydEhlaWdodCAvIDEuNSApIC0gb2Zmc2V0Ow0KCQkJCQl3cmFwcGVyVG9wID0gd3JhcHBlck9mZnNldCAtIHdpbmRvd1RvcDsNCgkJCX0NCgkJDQoJCQlpZiggd3JhcHBlclRvcCA8IDAgKQ0KCQkJew0KCQkJCSQoY2hpbGRJZCkuYWRkQ2xhc3MoZmFkZUluKTsNCgkJCQkvKiBpZiggbWF0Y2hlc1tpXS5nZXRBdHRyaWJ1dGUoImRhdGEtdmZhZGVpZCIpICkNCgkJCQkJY29uc29sZS5sb2coImRhdGEtdmZhZGVpZCA9ICIgKyBjaGlsZElkKTsgKi8NCgkJCQkvL21hdGNoZXNbaV0uYWRkQ2xhc3MoZmFkZUluKTsNCgkJCX0NCgkJfQ0KCSAgIA0KCX0NCgkJCQkNCn0NCg0KZnVuY3Rpb24gc2V0TWVudSgpDQp7CQ0KDQoJDQoJdmFyIGRpc3BsYXlkYXRhID0gIiI7DQoJdmFyIHdpbmRvd1RvcCA9ICQod2luZG93KS5zY3JvbGxUb3AoKTsNCgkNCgl2YXIgd2luZG93VG9wID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpOw0KCXZhciBiYW5uZXJIZWlnaHQgPSAkKCIjYmFubmVySW50cm8iKS5pbm5lckhlaWdodCgpOw0KDQoJLy9pZiggKCB3aW5kb3dUb3AgKyAxMjUgKSA+IGJhbm5lckhlaWdodCApDQoJaWYoIHdpbmRvd1RvcCA+IDUwICkNCgl7DQoJCSQoIiNiYW5uZXJRdWlja2xpbmtzV3JhcHBlciIpLmFkZENsYXNzKCJzdGlja3ltZW51Iik7DQoJfQ0KCWVsc2UNCgl7DQoJCSQoIiNiYW5uZXJRdWlja2xpbmtzV3JhcHBlciIpLnJlbW92ZUNsYXNzKCJzdGlja3ltZW51Iik7DQoJfQ0KCQ0KCQkNCgkJDQoJDQoJCQkJDQoJCQ0KCWlmKCB3aW5kb3dUb3AgPiAwICkNCgkJJCgiYm9keSIpLmFkZENsYXNzKCdub3R0b3AnKTsNCgllbHNlDQoJCSQoImJvZHkiKS5yZW1vdmVDbGFzcygnbm90dG9wJyk7DQoJDQoJaWYoIHdpbmRvd1RvcCA+IDM1MCApDQoJCSQoImJvZHkiKS5hZGRDbGFzcygnbm90dGhldG9wJyk7DQoJZWxzZQ0KCQkkKCJib2R5IikucmVtb3ZlQ2xhc3MoJ25vdHRoZXRvcCcpOw0KCQkNCgkvLyQoJyNkaXNwbGF5ZGF0YScpLmh0bWwoIGRpc3BsYXlkYXRhICk7DQoJDQp9DQoNCg0KJChmdW5jdGlvbigpIHsNCg0KCQ0KDQoJJCgnLnNtb290aHNjcm9sbCcpLmNsaWNrKGZ1bmN0aW9uKCkNCgl7DQoJCQ0KCQl2YXIgYm9keSA9IGRvY3VtZW50LmJvZHk7DQoJCWJvZHkuY2xhc3NMaXN0LmFkZCgibm90dG9wIik7DQoJCXZhciB0YXJnZXQgPSAkKHRoaXMpLmF0dHIoJ3JlbCcpOw0KCQkNCgkJc2V0VGltZW91dChmdW5jdGlvbigpew0KCQkJLy8kKCdodG1sLGJvZHknKS5hbmltYXRlKHsNCgkJCSAvLyBzY3JvbGxUb3A6ICQodGFyZ2V0KS5vZmZzZXQoKS50b3AgLSA4Mg0KCQkJLy99LCAxMDAwLCAnZWFzZUluT3V0RXhwbycpOw0KCQkJaWYoIHRhcmdldCA9PSAiI2ZhcXNXcmFwcGVyIiApIA0KCQkJCSQoJ2h0bWwsYm9keScpLmFuaW1hdGUoeyBzY3JvbGxUb3A6ICQodGFyZ2V0KS5vZmZzZXQoKS50b3AgLSA4MiB9LDUwMCk7DQoJCQlpZiggdGFyZ2V0ID09ICIjY2FkYmxvY2tzYW5kcmV2aXRtb2RlbHNpbmZvV3JhcHBlciIgKSANCgkJCQkkKCdodG1sLGJvZHknKS5hbmltYXRlKHsgc2Nyb2xsVG9wOiAkKHRhcmdldCkub2Zmc2V0KCkudG9wIC0gODIgfSw1MDApOw0KCQkJaWYoIHRhcmdldCA9PSAiI3NhbXBsZXNIb21lcGFnZVdyYXBwZXIiICkgDQoJCQkJJCgnaHRtbCxib2R5JykuYW5pbWF0ZSh7IHNjcm9sbFRvcDogJCh0YXJnZXQpLm9mZnNldCgpLnRvcCAtIDgyIH0sNTAwKTsNCgkJCWlmKCB0YXJnZXQgPT0gIiNuZXdzSG9tZXBhZ2VXcmFwcGVyIiApIA0KCQkJCSQoJ2h0bWwsYm9keScpLmFuaW1hdGUoeyBzY3JvbGxUb3A6ICQodGFyZ2V0KS5vZmZzZXQoKS50b3AgLSA4MiB9LDUwMCk7DQoJCQ0KCQkJLy9zY3JvbGxUb1RvcCggMTAwLCB3aW5kb3cucGFnZVlPZmZzZXQsICQodGFyZ2V0KS5vZmZzZXQoKS50b3AgKTsNCgkJDQoJCQkvL3dpbmRvdy5zY3JvbGxCeSgxMDAsIDEwMCk7DQoJCQkvL3dpbmRvdy5zY3JvbGxUbygwLCAkKHRhcmdldCkub2Zmc2V0KCkudG9wKTsNCgkJIH0sMjAwKTsNCgkJDQoJfSk7DQoNCgkkKCdzZWxlY3Quc21vb3Roc2Nyb2xsc2VsZWN0JykuY2xpY2soZnVuY3Rpb24oKQ0KCXsNCgkJDQoJCXZhciBib2R5ID0gZG9jdW1lbnQuYm9keTsNCgkJYm9keS5jbGFzc0xpc3QuYWRkKCJub3R0b3AiKTsNCgkJdmFyIHRhcmdldCA9IHRoaXMudmFsdWU7DQoJCQ0KCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQoJCQkvLyQoJ2h0bWwsYm9keScpLmFuaW1hdGUoew0KCQkJIC8vIHNjcm9sbFRvcDogJCh0YXJnZXQpLm9mZnNldCgpLnRvcCAtIDgyDQoJCQkvL30sIDEwMDAsICdlYXNlSW5PdXRFeHBvJyk7DQoJCQlpZiggdGFyZ2V0ID09ICIjZmFxc1dyYXBwZXIiICkgDQoJCQkJJCgnaHRtbCxib2R5JykuYW5pbWF0ZSh7IHNjcm9sbFRvcDogJCh0YXJnZXQpLm9mZnNldCgpLnRvcCAtIDgyIH0sIDIwMDAsICdlYXNlT3V0U2luZScpOw0KCQkJaWYoIHRhcmdldCA9PSAiI2NhZGJsb2Nrc2FuZHJldml0bW9kZWxzaW5mb1dyYXBwZXIiICkgDQoJCQkJJCgnaHRtbCxib2R5JykuYW5pbWF0ZSh7IHNjcm9sbFRvcDogJCh0YXJnZXQpLm9mZnNldCgpLnRvcCAtIDgyIH0sIDI1MDAsICdlYXNlT3V0U2luZScpOw0KCQkJaWYoIHRhcmdldCA9PSAiI3NhbXBsZXNIb21lcGFnZVdyYXBwZXIiICkgDQoJCQkJJCgnaHRtbCxib2R5JykuYW5pbWF0ZSh7IHNjcm9sbFRvcDogJCh0YXJnZXQpLm9mZnNldCgpLnRvcCAtIDgyIH0sIDMwMDAsICdlYXNlT3V0U2luZScpOw0KCQkJaWYoIHRhcmdldCA9PSAiI25ld3NIb21lcGFnZVdyYXBwZXIiICkgDQoJCQkJJCgnaHRtbCxib2R5JykuYW5pbWF0ZSh7IHNjcm9sbFRvcDogJCh0YXJnZXQpLm9mZnNldCgpLnRvcCAtIDgyIH0sIDM1MDAsICdlYXNlT3V0U2luZScpOw0KCQkNCgkJCS8vc2Nyb2xsVG9Ub3AoIDEwMCwgd2luZG93LnBhZ2VZT2Zmc2V0LCAkKHRhcmdldCkub2Zmc2V0KCkudG9wICk7DQoJCQ0KCQkJLy93aW5kb3cuc2Nyb2xsQnkoMTAwLCAxMDApOw0KCQkJLy93aW5kb3cuc2Nyb2xsVG8oMCwgJCh0YXJnZXQpLm9mZnNldCgpLnRvcCk7DQoJCSB9LDIwMCk7DQoJCQ0KCX0pOw0KCQkJCQkJCSANCgkkKCdhW2hyZWYqPVxcI106bm90KFtocmVmPVxcI10pJykuY2xpY2soZnVuY3Rpb24oKQ0KCXsNCgkJLyogMiAqLw0KCQlpZiAobG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXlwvLywnJykgPT0gdGhpcy5wYXRobmFtZS5yZXBsYWNlKC9eXC8vLCcnKSAmJiBsb2NhdGlvbi5ob3N0bmFtZSA9PSB0aGlzLmhvc3RuYW1lKQ0KCQl7DQoJCWNvbnNvbGUubG9nKCJsaW5rY2xpY2siKTsNCgkJCXZhciB0YXJnZXQgPSAkKHRoaXMuaGFzaCk7DQoJCQl0YXJnZXQgPSB0YXJnZXQubGVuZ3RoID8gdGFyZ2V0IDogJCgnW25hbWU9JyArIHRoaXMuaGFzaC5zbGljZSgxKSArJ10nKTsNCgkJCS8vY29uc29sZS5sb2codGFyZ2V0KTsNCgkJCWlmICgiVGFyZ2V0ID0+ICIgKyB0YXJnZXQubGVuZ3RoKQ0KCQkJew0KCQkJCWlmKCAhJCgnYm9keScpLmhhc0NsYXNzKCdwYWdlbG9hZGluZycpIHx8ICQoJyNiYW5uZXJ3cmFwcGVyMicpLmhhc0NsYXNzKCdub3Njcm9sbGJhbm5lcicpICkNCgkJCQl7DQoJCQkJCS8vY29uc29sZS5sb2coImhhc2xpbmsiKTsNCgkJCQkJCQkJCQkvL3ZhciB0b3B2YXIgPSB0YXJnZXQub2Zmc2V0KCkudG9wOw0KCQkJCQkJdmFyIG5vb2Zmc2V0ID0gJCh0aGlzKS5kYXRhKCJub29mZnNldCIpOw0KCQkJCQkJdmFyIHRhcmdldDIgPSAkKHRoaXMuaGFzaCk7DQoJCQkJCQl2YXIgcG9zaXRpb24gPSB0YXJnZXQyLm9mZnNldCgpLnRvcDsNCgkJCQkJDQoJCQkJCQlpZiggbm9vZmZzZXQgPSAiMSIgKQ0KCQkJCQkJew0KCQkJCQkJCS8qIHZhciBvZmZzZXQgPSB0YXJnZXQyLm9mZnNldCgpLnRvcDsNCgkJCQkJCQkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7DQoJCQkJCQkJc2Nyb2xsVG9wOiBvZmZzZXQNCgkJCQkJCQl9LCAyMDAwLCAnZWFzZUluT3V0RXhwbycpOyAqLw0KCQkJCQkJCS8vJCgnaHRtbCwgYm9keScpLnNjcm9sbFRvcChwb3NpdGlvbik7DQoJCQkJCQkJIC8vJCh0aGlzKS5zY3JvbGxUb3AoIDIwMCApOw0KCQkJCQkJCSAkKCJib2R5IikuYW5pbWF0ZSh7IHNjcm9sbFRvcDogcG9zaXRpb24gLSA4MiB9LCAic2xvdyIpDQoJCQkJCQkJY29uc29sZS5sb2coIm5vaGFzaDBhIC0gIiArIHBvc2l0aW9uKTsNCgkJCQkJCX0NCgkJCQkJCWVsc2UNCgkJCQkJCXsNCgkJCQkJCQkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7DQoJCQkJCQkJc2Nyb2xsVG9wOiB0YXJnZXQyLm9mZnNldCgpLnRvcCAtIDgyDQoJCQkJCQkJfSwgMjAwMCwgJ2Vhc2VJbk91dEV4cG8nKTsNCgkJCQkJCQljb25zb2xlLmxvZygibm9oYXNoMGIgLSAiICsgdGFyZ2V0Mi5vZmZzZXQoKS50b3AgKTsNCgkJCQkJCX0NCgkJCQkJCS8vY29uc29sZS5sb2coImhhc2xpbms1IC0gIiArIHRvcHZhcik7DQoJCQkJCQkvKiAkKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7IHNjcm9sbFRvcDogdG9wdmFyIC0gODIgfSwgMjAwMCk7ICovDQoJCQkJCQkJCQ0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQl2YXIgbm9vZmZzZXQgPSAkKHRoaXMpLmRhdGEoIm5vb2Zmc2V0Iik7DQoJCQkJCXZhciB0YXJnZXQyID0gJCh0aGlzLmhhc2gpOw0KCQkJCQl2YXIgcG9zaXRpb24gPSB0YXJnZXQyLm9mZnNldCgpLnRvcDsNCgkJCQkJaWYoIG5vb2Zmc2V0ID0gIjEiICkNCgkJCQkJew0KCQkJCQkJLyogJCgnYm9keScpLmFuaW1hdGUoew0KCQkJCQkJc2Nyb2xsVG9wOiB0YXJnZXQub2Zmc2V0KCkudG9wDQoJCQkJCQl9LCAyMDAwLCAnZWFzZUluT3V0RXhwbycpOyAqLw0KCQkJCQkJJCgnYm9keScpLnNjcm9sbFRvcChwb3NpdGlvbik7DQoJCQkJCQljb25zb2xlLmxvZygibm9oYXNoMSAtICIgKyBwb3NpdGlvbik7DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQkkKCdib2R5JykuYW5pbWF0ZSh7DQoJCQkJCQlzY3JvbGxUb3A6IHRhcmdldC5vZmZzZXQoKS50b3AgLSA4Mg0KCQkJCQkJfSwgMjAwMCwgJ2Vhc2VJbk91dEV4cG8nKTsNCgkJCQkJCWNvbnNvbGUubG9nKCJub2hhc2gyIC0gIiArIHRhcmdldDIpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWNvbnNvbGUubG9nKCJub2hhc2gzIik7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQl9DQoJCQkJDQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgl9KTsNCgkNCgkgIA0KfSk7DQoNCg0KLyogRm9ybSA3IHN1Ym1pdCBmb3JtIGhhbmRsZXIgKi8NCmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICd3cGNmN3N1Ym1pdCcsIGZ1bmN0aW9uKCBldmVudCApIHsNCg0KICBpZiAoIGV2ZW50LmRldGFpbC5jb250YWN0Rm9ybUlkID09ICcxMTU1MycgKSB7DQoJICANCgkgIGlmICh3aW5kb3cuZ3RhZykNCgkJICBndGFnKCdldmVudCcsIGV2ZW50QWN0aW9uLCB7IGV2ZW50X2xhYmVsOiBldmVudExhYmVsLCBldmVudF9jYXRlZ29yeTogJ2xpbmtfY2xpY2snIH0pDQoJICANCiAgfQ0KDQp9LCBmYWxzZSApOw0KDQoNCgkNCglpZiggJCgnI2Nhc2VzdHVkaWVzbGlzdCcpLmxlbmd0aCApDQoJew0KCQkNCgkJJCgnI2Nhc2VzdHVkaWVzbGlzdCcpLmNhcm91RnJlZFNlbCh7DQoJCQl3aWR0aDogIjEwMCUiLA0KCQkJYWxpZ246ICdjZW50ZXInLA0KCQkJcmVzcG9uc2l2ZTp0cnVlLA0KCQkJc2Nyb2xsOiB7DQoJCQkJaXRlbXM6IDENCgkJCX0sDQoJCQlpdGVtczogew0KCQkJCWhlaWdodDogMzAwLA0KCQkJCWFsaWduOiAnY2VudGVyJywNCgkJCQl2aXNpYmxlOg0KCQkJCXsNCgkJCQkJbWluOiAxLA0KCQkJCQltYXg6IDMNCgkJCQl9LA0KCQkJCXN0YXJ0OiAiLmFjdGl2ZSINCgkJCX0sDQoJCQlhdXRvOiBmYWxzZSwNCgkJCXByZXY6ICIjcHJldjMiLA0KCQkJbmV4dDogIiNuZXh0MyIsDQoJCQljaXJjdWxhcjogdHJ1ZSwNCgkJCWluZmluaXRlOiBmYWxzZQ0KCQl9KTsNCgkJJCgiI2Nhc2VzdHVkaWVzbGlzdCIpLnN3aXBlKCB7DQoJCQlzd2lwZTpmdW5jdGlvbihldmVudCwgZGlyZWN0aW9uLCBkaXN0YW5jZSwgZHVyYXRpb24sIGZpbmdlckNvdW50LCBmaW5nZXJEYXRhKSB7DQoJCQkgaWYoIGRpcmVjdGlvbiA9PSAibGVmdCIgKSANCgkJCQkkKCcjY2FzZXN0dWRpZXNsaXN0JykudHJpZ2dlcignbmV4dCcsIDEpOw0KCQkJIGlmKCBkaXJlY3Rpb24gPT0gInJpZ2h0IiApDQoJCQkJJCgnI2Nhc2VzdHVkaWVzbGlzdCcpLnRyaWdnZXIoJ3ByZXYnLCAxKTsNCgkJCX0NCgkJfSk7DQoJCQ0KCX0NCgkNCgkJCQkNCgkJaWYoICQoJyNwYWduYXRpb25jYXJvdXNlbHMnKS5sZW5ndGggKQ0KCQl7DQoJCQkNCgkJCSQoJyNhc3NvY2lhdGVkcHJvZHVjdHMnKS5jYXJvdUZyZWRTZWwoew0KCQkJCXdpZHRoOiAiMTAwJSIsDQoJCQkJc2Nyb2xsOiB7DQoJCQkJCWl0ZW1zOiAxDQoJCQkJfSwNCgkJCQlpdGVtczogew0KCQkJCQl3aWR0aDogMjk3LA0KCQkJCQloZWlnaHQ6IDM3MCwNCgkJCQkJc3RhcnQ6ICIuYWN0aXZlIg0KCQkJCX0sDQoJCQkJYXV0bzogZmFsc2UsDQoJCQkJcHJldjogIiNwcmV2NCIsDQoJCQkJbmV4dDogIiNuZXh0NCIsDQoJCQkJY2lyY3VsYXI6IHRydWUsDQoJCQkJaW5maW5pdGU6IGZhbHNlDQoJCQl9KTsNCgkJCSQoIiNhc3NvY2lhdGVkcHJvZHVjdHMiKS5zd2lwZSggew0KCQkJCXN3aXBlOmZ1bmN0aW9uKGV2ZW50LCBkaXJlY3Rpb24sIGRpc3RhbmNlLCBkdXJhdGlvbiwgZmluZ2VyQ291bnQsIGZpbmdlckRhdGEpIHsNCgkJCQkgaWYoIGRpcmVjdGlvbiA9PSAibGVmdCIgKSANCgkJCQkJJCgnI2Fzc29jaWF0ZWRwcm9kdWN0cycpLnRyaWdnZXIoJ25leHQnLCAxKTsNCgkJCQkgaWYoIGRpcmVjdGlvbiA9PSAicmlnaHQiICkNCgkJCQkJJCgnI2Fzc29jaWF0ZWRwcm9kdWN0cycpLnRyaWdnZXIoJ3ByZXYnLCAxKTsNCgkJCQl9DQoJCQl9KTsNCgkJDQoJCX0NCgkJDQoJCQkNCg==
2 ms
javascript;base64,DQoNCglfbGlua2VkaW5fcGFydG5lcl9pZCA9ICIzMDA3ODQxIjsNCgkNCgl3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMgPSB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMgfHwgW107DQoJDQoJd2luZG93Ll9saW5rZWRpbl9kYXRhX3BhcnRuZXJfaWRzLnB1c2goX2xpbmtlZGluX3BhcnRuZXJfaWQpOw0KDQo=
2 ms
javascript;base64,DQoNCihmdW5jdGlvbigpe3ZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdOw0KDQp2YXIgYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOw0KDQpiLnR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjtiLmFzeW5jID0gdHJ1ZTsNCg0KYi5zcmMgPSAiaHR0cHM6Ly9zbmFwLmxpY2RuLmNvbS9saS5sbXMtYW5hbHl0aWNzL2luc2lnaHQubWluLmpzIjsNCg0Kcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShiLCBzKTt9KSgpOw0KDQo=
2 ms
javascript;base64,DQoNCndpbmRvdy5fX2xvX3NpdGVfaWQgPSAzMDY0NTE7DQoNCihmdW5jdGlvbigpIHsNCg0KCXZhciB3YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOyB3YS50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7IHdhLmFzeW5jID0gdHJ1ZTsNCgl3YS5zcmMgPSAnaHR0cHM6Ly9kMTBscHNpazFpOGM2OS5jbG91ZGZyb250Lm5ldC93LmpzJzsJDQoJdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07IHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUod2EsIHMpOw0KDQp9KSgpOw0KDQp3aW5kb3cudXBkYXRlQ291bnRlciA9IGZ1bmN0aW9uIChjb3VudGVyKQ0Kew0KCWlmKCQoJyNnb3RvY2FydCcpLmxlbmd0aCkNCgl7DQoJCWlmKCBjb3VudGVyID09IDAgKQ0KCQkJJCggIiNnb3RvY2FydCIgKS50ZXh0KCAiTXkgU2FtcGxlcyAoMCkiKTsNCgkJZWxzZQ0KCQkJJCggIiNnb3RvY2FydCIgKS50ZXh0KCAiTXkgU2FtcGxlcyAoIiArIGNvdW50ZXIgKyAiKSIpOw0KCX0NCglpZigkKCcjZ290b2NhcnQyJykubGVuZ3RoKQ0KCXsNCgkJaWYoIGNvdW50ZXIgPT0gMCApDQoJCQkkKCAiI2dvdG9jYXJ0MiIgKS50ZXh0KCAiSXRlbXMgKDApIik7DQoJCWVsc2UNCgkJCSQoICIjZ290b2NhcnQyIiApLnRleHQoICJJdGVtcyAoIiArIGNvdW50ZXIgKyAiKSIpOw0KCX0NCglpZigkKCcuZ290b2NhcnQzJykubGVuZ3RoKQ0KCXsNCgkJaWYoIGNvdW50ZXIgPT0gMCApDQoJCQkkKCAiLmdvdG9jYXJ0MyIgKS50ZXh0KCAiSXRlbXMgKDApIik7DQoJCWVsc2UNCgkJCSQoICIuZ290b2NhcnQzIiApLnRleHQoICJJdGVtcyAoIiArIGNvdW50ZXIgKyAiKSIpOw0KCX0NCglpZigkKCcjc3RpY2t5Q2FydCcpLmxlbmd0aCkNCgl7DQoJCWlmKCBjb3VudGVyID09IDAgKQ0KCQkJJCggIiNzdGlja3lDYXJ0IiApLnRleHQoICJTYW1wbGVzIGluIHlvdXIgY2FydCAoMCkiKTsNCgkJZWxzZQ0KCQkJJCggIiNzdGlja3lDYXJ0IiApLnRleHQoICJTYW1wbGVzIGluIHlvdXIgY2FydCAoIiArIGNvdW50ZXIgKyAiKSIpOw0KCX0NCgl9DQoNCg0KCS8qIChmdW5jdGlvbiAoJCkgeyANCgkJJChmdW5jdGlvbiAoKSB7IA0KCQkJJCgnLnBhbmVsLWNvbGxhcHNlJykub24oJ3Nob3cuYnMuY29sbGFwc2UnLCBmdW5jdGlvbiAoKSB7DQoJCQkJY29uc29sZS5sb2coJyNzb21lQnV0dG9uIHdhcyBjbGlja2VkJyk7DQoJCQkJJCh0aGlzKS5wYXJlbnQoKS5hZGRDbGFzcygnZ3JlZW5ib3gnKTsgDQoJCQl9KTsgDQoJCQkkKCcucGFuZWwtY29sbGFwc2UnKS5vbignaGlkZS5icy5jb2xsYXBzZScsIGZ1bmN0aW9uICgpIHsgDQoJCQkJY29uc29sZS5sb2coJyNzb21lQnV0dG9uIHdhcyBjbGlja2VkMicpDQoJCQkJJCh0aGlzKS5wYXJlbnQoKS5yZW1vdmVDbGFzcygnZ3JlZW5ib3gnKTsgDQoJCQl9KTsgDQoJCX0pOyANCgl9KShqUXVlcnkpOyAqLw0KDQpmdW5jdGlvbiBzY3JvbGxUb1RvcChzdGVwLHN0YXJ0cG9zLHRhcmdldHBvcykgew0KCQ0KICAgIHZhciBzdGFydCA9IHdpbmRvdy5wYWdlWU9mZnNldDsNCgl2YXIgdGFyZ2V0WSA9IHN0YXJ0cG9zOw0KCXZhciB0YXJnZXRoZWlnaHQgPSB0YXJnZXRwb3MgLSBzdGFydHBvczsNCiAgICB2YXIgY291bnQgPSAwOw0KCQ0KICAgIHZhciBpbnRlcnZhbFJlZiA9IHNldEludGVydmFsKCAoZnVuY3Rpb24oaW50ZXJ2YWwsIGN1ck9mZnNldCkNCgl7DQoJCQ0KICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7DQoJCQkNCgkJCWNvdW50Kys7DQoJCQl0YXJnZXRZID0gc3RhcnRwb3MgKyAoIGNvdW50ICogc3RlcCApOw0KCQkJaWYoIHRhcmdldFkgPiB0YXJnZXRwb3MgKQ0KCQkJCXRhcmdldFkgPSB0YXJnZXRwb3M7DQoJCQkNCiAgICAgICAgICAgIC8vY3VyT2Zmc2V0ICs9IChpbnRlcnZhbCAqIHN0ZXApOw0KICAgICAgICAgICB2YXIgY3VyT2Zmc2V0ID0gdGFyZ2V0WTsNCgkJCQ0KICAgICAgICAgICAgLy9jb25zb2xlLmluZm8oIm9mZnNldCA9ICIgKyBjdXJPZmZzZXQpOw0KICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIGN1ck9mZnNldCk7DQoJCQkNCiAgICAgICAgICAgIC8vY29uc29sZS5pbmZvKCIoICIgKyBjb3VudCArICIgPiAxNTAgKSB8fCAoICIgKyBjdXJPZmZzZXQrICIgPiAgIiArIHRhcmdldHBvcyArICIgKSAgLyBwYWdlWW9mZnNldCA9ICIgKyB3aW5kb3cucGFnZVlPZmZzZXQpOw0KCQkJDQogICAgICAgICAgICBpZiggKCBjb3VudCA+IDE1MCApIHx8ICggY3VyT2Zmc2V0ID49IHRhcmdldHBvcyApICkNCgkJCQljbGVhckludGVydmFsKGludGVydmFsUmVmKTsNCiAgICAgICAgfQ0KCQkNCiAgICB9KShzdGVwLCBzdGFydCsrKSwgNTApOw0KfQ0KDQo=
1 ms
javascript;base64,DQoNCmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7DQoNCgkJLyogJCgnLnNhbXBsZUJveFdyYXBwZXJIb21lcGFnZVtkYXRhLXVybF0nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsNCgkJCQ0KCQkJdmFyIGRhdGF1cmwgPSAkKHRoaXMpLmF0dHIoImRhdGEtdXJsIik7DQoJCQlpZiggZGF0YXVybCApDQoJCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSBkYXRhdXJsOw0KDQoJCX0pOyAqLw0KCQ0KCS8qIGpRdWVyeS5mbi5jYXJvdXNlbC5Db25zdHJ1Y3Rvci5UUkFOU0lUSU9OX0RVUkFUSU9OID0gMTUwMDsgKi8NCgkNCgkvKiBpZiggc2NyZWVuLndpZHRoID4gOTk2ICkNCgkJalF1ZXJ5LmZuLmNhcm91c2VsLkNvbnN0cnVjdG9yLlRSQU5TSVRJT05fRFVSQVRJT04gPSAyMDAwOw0KCWVsc2UNCgkJalF1ZXJ5LmZuLmNhcm91c2VsLkNvbnN0cnVjdG9yLlRSQU5TSVRJT05fRFVSQVRJT04gPSAyMDAwOw0KCSovDQoJaWYoICQoJyNwcm9kdWN0QnlTZWN0b3JIb21lcGFnZVdyYXBwZXInKS5sZW5ndGggPiAwICkNCgl7DQoJCQkJCQ0KCQkkKCcjcHJvZHVjdEJ5U2VjdG9ySG9tZXBhZ2VXcmFwcGVyJykuc2xpY2soew0KCQkJZG90czogZmFsc2UsDQoJCQlpbmZpbml0ZTogdHJ1ZSwNCgkJCXRvdWNoVGhyZXNob2xkOiAyLA0KCQkJc3dpcGVUb1NsaWRlOiB0cnVlLA0KCQkJc3BlZWQ6IDEwMDAsDQoJCQljZW50ZXJNb2RlOiBmYWxzZSwNCgkJCXNsaWRlc1RvU2hvdzogMywNCgkJCXZhcmlhYmxlV2lkdGg6IHRydWUsDQoJCQlhdXRvcGxheTogdHJ1ZSwNCgkJCWF1dG9wbGF5U3BlZWQ6IDUwMDAsDQoJCQlzd2lwZTogdHJ1ZSwNCgkJCXByZXZBcnJvdzogJCgnLnByb2R1Y3RCeVNlY3RvckhvbWVwYWdlU2xpZGVyUHJldicpLA0KCQkJbmV4dEFycm93OiAkKCcucHJvZHVjdEJ5U2VjdG9ySG9tZXBhZ2VTbGlkZXJOZXh0JyksDQoJCQlyZXNwb25zaXZlOiBbDQoJCQl7DQoJCQkgIGJyZWFrcG9pbnQ6IDEyMDAsDQoJCQkgIHNldHRpbmdzOiB7DQoJCQkJc2xpZGVzVG9TaG93OiAzLA0KCQkJCXNsaWRlc1RvU2Nyb2xsOiAzLA0KCQkJCW1vYmlsZUZpcnN0OiBmYWxzZSwNCgkJCQlzd2lwZVRvU2xpZGU6IHRydWUsDQoJCQkgIH0NCgkJCX0sDQoJCQl7DQoJCQkgIGJyZWFrcG9pbnQ6IDk5NiwNCgkJCSAgc2V0dGluZ3M6IHsNCgkJCQlzbGlkZXNUb1Nob3c6IDIsDQoJCQkJc2xpZGVzVG9TY3JvbGw6IDIsDQoJCQkJbW9iaWxlRmlyc3Q6IGZhbHNlLA0KCQkJCXN3aXBlVG9TbGlkZTogdHJ1ZSwNCgkJCSAgfQ0KCQkJfSwNCgkJCXsNCgkJCSAgYnJlYWtwb2ludDogNTc2LA0KCQkJICBzZXR0aW5nczogew0KCQkJCXNsaWRlc1RvU2hvdzogMSwNCgkJCQlzbGlkZXNUb1Njcm9sbDogMSwNCgkJCQltb2JpbGVGaXJzdDogdHJ1ZSwNCgkJCQlzd2lwZVRvU2xpZGU6IHRydWUsDQoJCQkJc3dpcGVUb1NsaWRlOiB0cnVlLA0KCQkJICB9DQoJCQl9LA0KCQkJew0KCQkJICBicmVha3BvaW50OiAxMDAsDQoJCQkgIHNldHRpbmdzOiB7DQoJCQkJc2xpZGVzVG9TaG93OiAxLA0KCQkJCXNsaWRlc1RvU2Nyb2xsOiAxLA0KCQkJCW1vYmlsZUZpcnN0OiB0cnVlLA0KCQkJCXN3aXBlVG9TbGlkZTogdHJ1ZSwNCgkJCSAgfQ0KCQkJfQ0KCQkgIF0NCgkJfSk7DQoJCQ0KCX0NCgkNCgkJDQoJaWYoICQoJyNjYXNlc3R1ZGllc0hvbWVwYWdlU2xpZGVyJykubGVuZ3RoID4gMCApCQ0KCXsNCgkJDQoJCSQoJyNjYXNlc3R1ZGllc0hvbWVwYWdlU2xpZGVyJykuc2xpY2soew0KCQkJZG90czogZmFsc2UsDQoJCQlpbmZpbml0ZTogdHJ1ZSwNCgkJCW1vYmlsZUZpcnN0OiBmYWxzZSwNCgkJCXRvdWNoVGhyZXNob2xkOiAyLA0KCQkJc3dpcGVUb1NsaWRlOiB0cnVlLA0KCQkJc2xpZGVzVG9TaG93OiAzLA0KCQkJc2xpZGVzVG9TY3JvbGw6IDEsDQoJCQlzd2lwZTogdHJ1ZSwNCgkJCXByZXZBcnJvdzogJCgnLmNhc2VzdHVkaWVzSG9tZXBhZ2VTbGlkZXJQcmV2JyksDQoJCQluZXh0QXJyb3c6ICQoJy5jYXNlc3R1ZGllc0hvbWVwYWdlU2xpZGVyTmV4dCcpLA0KCQkJcmVzcG9uc2l2ZTogWw0KCQkJew0KCQkJICBicmVha3BvaW50OiAxMDAwLA0KCQkJICBzZXR0aW5nczogew0KCQkJCXNsaWRlc1RvU2hvdzogMiwNCgkJCQlzbGlkZXNUb1Njcm9sbDogMSwNCgkJCQltb2JpbGVGaXJzdDogZmFsc2UsDQoJCQkJc3dpcGVUb1NsaWRlOiB0cnVlLA0KCQkJICB9DQoJCQl9LA0KCQkJew0KCQkJICBicmVha3BvaW50OiA3NjgsDQoJCQkgIHNldHRpbmdzOiB7DQoJCQkJc2xpZGVzVG9TaG93OiAxLA0KCQkJCXNsaWRlc1RvU2Nyb2xsOiAxLA0KCQkJCW1vYmlsZUZpcnN0OiB0cnVlLA0KCQkJCXN3aXBlVG9TbGlkZTogdHJ1ZSwNCgkJCQlzd2lwZVRvU2xpZGU6IHRydWUsDQoJCQkgIH0NCgkJCX0sDQoJCQl7DQoJCQkgIGJyZWFrcG9pbnQ6IDEwMCwNCgkJCSAgc2V0dGluZ3M6IHsNCgkJCQlzbGlkZXNUb1Nob3c6IDEsDQoJCQkJc2xpZGVzVG9TY3JvbGw6IDEsDQoJCQkJbW9iaWxlRmlyc3Q6IHRydWUsDQoJCQkJc3dpcGVUb1NsaWRlOiB0cnVlLA0KCQkJICB9DQoJCQl9DQoJCSAgXQ0KCQl9KTsNCgkJDQoJCSQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKXsNCgkJICAkKCcjY2FzZXN0dWRpZXNIb21lcGFnZVNsaWRlcicpWzBdLnNsaWNrLnJlZnJlc2goKTsNCgkJfSk7DQoJDQoJfQ0KCQ0KCQkNCglpZiggJCgnI25ld3NIb21lcGFnZVNsaWRlcicpLmxlbmd0aCA+IDAgKQkNCgl7DQoJCQ0KCQkkKCcjbmV3c0hvbWVwYWdlU2xpZGVyJykuc2xpY2soew0KCQkJZG90czogZmFsc2UsDQoJCQlpbmZpbml0ZTogdHJ1ZSwNCgkJCW1vYmlsZUZpcnN0OiBmYWxzZSwNCgkJCXRvdWNoVGhyZXNob2xkOiAyLA0KCQkJc3dpcGVUb1NsaWRlOiB0cnVlLA0KCQkJc2xpZGVzVG9TaG93OiAzLA0KCQkJc2xpZGVzVG9TY3JvbGw6IDEsDQoJCQlzd2lwZTogdHJ1ZSwNCgkJCXByZXZBcnJvdzogJCgnLm5ld3NIb21lcGFnZVNsaWRlclByZXYnKSwNCgkJCW5leHRBcnJvdzogJCgnLm5ld3NIb21lcGFnZVNsaWRlck5leHQnKSwNCgkJCXJlc3BvbnNpdmU6IFsNCgkJCXsNCgkJCSAgYnJlYWtwb2ludDogMTAwMCwNCgkJCSAgc2V0dGluZ3M6IHsNCgkJCQlzbGlkZXNUb1Nob3c6IDIsDQoJCQkJc2xpZGVzVG9TY3JvbGw6IDEsDQoJCQkJbW9iaWxlRmlyc3Q6IGZhbHNlLA0KCQkJCXN3aXBlVG9TbGlkZTogdHJ1ZSwNCgkJCSAgfQ0KCQkJfSwNCgkJCXsNCgkJCSAgYnJlYWtwb2ludDogNzY4LA0KCQkJICBzZXR0aW5nczogew0KCQkJCXNsaWRlc1RvU2hvdzogMSwNCgkJCQlzbGlkZXNUb1Njcm9sbDogMSwNCgkJCQltb2JpbGVGaXJzdDogdHJ1ZSwNCgkJCQlzd2lwZVRvU2xpZGU6IHRydWUsDQoJCQkJc3dpcGVUb1NsaWRlOiB0cnVlLA0KCQkJICB9DQoJCQl9LA0KCQkJew0KCQkJICBicmVha3BvaW50OiAxMDAsDQoJCQkgIHNldHRpbmdzOiB7DQoJCQkJc2xpZGVzVG9TaG93OiAxLA0KCQkJCXNsaWRlc1RvU2Nyb2xsOiAxLA0KCQkJCW1vYmlsZUZpcnN0OiB0cnVlLA0KCQkJCXN3aXBlVG9TbGlkZTogdHJ1ZSwNCgkJCSAgfQ0KCQkJfQ0KCQkgIF0NCgkJfSk7DQoJCQ0KCQkkKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uKCl7DQoJCSAgJCgnI25ld3NIb21lcGFnZVNsaWRlcicpWzBdLnNsaWNrLnJlZnJlc2goKTsNCgkJfSk7DQoJDQoJfQ0KCQ0KCQkNCglpZiggJCgnI3NhbXBsZXNIb21lcGFnZVNsaWRlcicpLmxlbmd0aCA+IDAgKQkNCgl7DQoJCQ0KCQkkKCcjc2FtcGxlc0hvbWVwYWdlU2xpZGVyJykuc2xpY2soew0KCQkJZG90czogZmFsc2UsDQoJCQlpbmZpbml0ZTogZmFsc2UsDQoJCQltb2JpbGVGaXJzdDogZmFsc2UsDQoJCQlhcnJvd3M6IGZhbHNlLA0KCQkJdG91Y2hUaHJlc2hvbGQ6IDIsDQoJCQlzd2lwZVRvU2xpZGU6IHRydWUsDQoJCQlhdXRvcGxheTogdHJ1ZSwNCiAgCQkJYXV0b3BsYXlTcGVlZDogNjAwMCwNCgkJCXNsaWRlc1RvU2hvdzogNSwNCgkJCXNsaWRlc1RvU2Nyb2xsOiA1LA0KCQkJc3dpcGU6IHRydWUsDQoJCQlyZXNwb25zaXZlOiBbDQoJCQl7DQoJCQkgIGJyZWFrcG9pbnQ6IDEyMDAsDQoJCQkgIHNldHRpbmdzOiB7DQoJCQkJc2xpZGVzVG9TaG93OiAzLA0KCQkJCXNsaWRlc1RvU2Nyb2xsOiAzLA0KCQkJCW1vYmlsZUZpcnN0OiBmYWxzZSwNCgkJCQlzd2lwZVRvU2xpZGU6IHRydWUsDQoJCQkgIH0NCgkJCX0sDQoJCQl7DQoJCQkgIGJyZWFrcG9pbnQ6IDk5NiwNCgkJCSAgc2V0dGluZ3M6IHsNCgkJCQlzbGlkZXNUb1Nob3c6IDIsDQoJCQkJc2xpZGVzVG9TY3JvbGw6IDIsDQoJCQkJbW9iaWxlRmlyc3Q6IGZhbHNlLA0KCQkJCXN3aXBlVG9TbGlkZTogdHJ1ZSwNCgkJCSAgfQ0KCQkJfSwNCgkJCXsNCgkJCSAgYnJlYWtwb2ludDogNTc2LA0KCQkJICBzZXR0aW5nczogew0KCQkJCXNsaWRlc1RvU2hvdzogMSwNCgkJCQlzbGlkZXNUb1Njcm9sbDogMSwNCgkJCQltb2JpbGVGaXJzdDogdHJ1ZSwNCgkJCQlzd2lwZVRvU2xpZGU6IHRydWUsDQoJCQkJc3dpcGVUb1NsaWRlOiB0cnVlLA0KCQkJICB9DQoJCQl9LA0KCQkJew0KCQkJICBicmVha3BvaW50OiAxMDAsDQoJCQkgIHNldHRpbmdzOiB7DQoJCQkJc2xpZGVzVG9TaG93OiAxLA0KCQkJCXNsaWRlc1RvU2Nyb2xsOiAxLA0KCQkJCW1vYmlsZUZpcnN0OiB0cnVlLA0KCQkJCXN3aXBlVG9TbGlkZTogdHJ1ZSwNCgkJCSAgfQ0KCQkJfQ0KCQkgIF0NCgkJfSk7DQoJCQ0KCQkkKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uKCl7DQoJCSAgJCgnI3NhbXBsZXNIb21lcGFnZVNsaWRlcicpWzBdLnNsaWNrLnJlZnJlc2goKTsNCgkJfSk7DQoJDQoJfQ0KCSQod2luZG93KS5vbiggJ2xvYWQgcmVzaXplIG9yaWVudGF0aW9uY2hhbmdlJywgbm9ybWFsaXplU2xpZGVIZWlnaHRzKTsNCgkNCgl2YXIgJGNhcm91c2VsID0gJCgnI2Jhbm5lckNhcm91c2VsJyk7DQoJJGNhcm91c2VsLmNhcm91c2VsKHsNCiAgICAgIGludGVydmFsOiA1MDAwLA0KICAgICAgcmlkZTogJ2Nhcm91c2VsJywNCgkgIHBhdXNlOiB0cnVlDQogICAgfSk7DQoJJCgnI2Nhcm91c2VsaXRlbTAnKS5hZGRDbGFzcygnYmdhbmltMicpOw0KDQoJLyokKCIjYmFubmVySW50cm8iKS5zd2lwZSggew0KCQlzd2lwZTpmdW5jdGlvbihldmVudCwgZGlyZWN0aW9uLCBkaXN0YW5jZSwgZHVyYXRpb24sIGZpbmdlckNvdW50LCBmaW5nZXJEYXRhKSB7DQoJCSBpZiggZGlyZWN0aW9uID09ICJsZWZ0IiApIA0KCQkJJCgnI2Jhbm5lckNhcm91c2VsJykuY2Fyb3VzZWwoJ25leHQnKTsNCgkJIGlmKCBkaXJlY3Rpb24gPT0gInJpZ2h0IiApDQoJCQkkKCcjYmFubmVyQ2Fyb3VzZWwnKS5jYXJvdXNlbCgncHJldicpOw0KCQl9DQoJfSk7Ki8NCgkNCg0KCSANCgl2YXIgbGVhcm5tb3JlbGlua0FycmF5ID0gbmV3IEFycmF5KCAiL3Byb2R1Y3QtZ3VpZGUiLCAiL3Byb2R1Y3QtZ3VpZGUvaWRlbnRpdHkiLCAiaHR0cHM6Ly93d3cuY29uY2VwdGN1YmljbGVzeXN0ZW1zLmNvLnVrL3N1cGVybG9vLWtub3dsZWRnZS1odWIiLCAiL2Nhc2Utc3R1ZGllcyIsICJodHRwczovL3d3dy5jb25jZXB0Y3ViaWNsZXN5c3RlbXMuY28udWsvc3BlY2lmaWVyaHViIiApOw0KCQ0KCXZhciBsZWFybm1vcmV0ZXh0QXJyYXkgPSBuZXcgQXJyYXkoICApOw0KCQ0KCSRjYXJvdXNlbC5iaW5kKCdzbGlkZS5icy5jYXJvdXNlbCcsIGZ1bmN0aW9uIChlKSB7DQoJCXZhciBjdXJyZW50PSQoZS50YXJnZXQpLmZpbmQoJy5pdGVtLmFjdGl2ZScpOw0KCQl2YXIgaW5keD0kKGN1cnJlbnQpLmluZGV4KCk7DQoJCS8qIHZhciBpbmR4Mj0kKGN1cnJlbnQpLmluZGV4KCk7DQoJCQ0KCQlpZigoaW5keCsyKT4kKCcuY2Fyb3VzZWwtaW5kaWNhdG9yczIgbGknKS5sZW5ndGgpDQoJCQlpbmR4PS0xICovDQoNCgkJLyogJCgnI2Nhcm91c2VsSW5kaWNhdG9yJytpbmR4MikuYWRkQ2xhc3MoJ2FjdGl2ZScpOyAqLw0KCQkvKiAkKCcjY2Fyb3VzZWxpdGVtJytpbmR4KS5hZGRDbGFzcygnYmdhbmltJyk7ICovDQoJCQ0KCX0pOw0KCQ0KCSRjYXJvdXNlbC5iaW5kKCdzbGlkLmJzLmNhcm91c2VsJywgZnVuY3Rpb24gKGUpIHsNCgkJdmFyIGN1cnJlbnQ9JChlLnRhcmdldCkuZmluZCgnLml0ZW0uYWN0aXZlJyk7DQoJCSQoJy5jYXJvdXNlbC1pbmRpY2F0b3JzMiBsaScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsNCgkJJCgnI2Jhbm5lckNhcm91c2VsIC5jYXJvdXNlbC1pdGVtJykucmVtb3ZlQ2xhc3MoJ2JnYW5pbTInKTsvKiAgKi8NCgkJDQoJCXZhciBpbmR4PSQoY3VycmVudCkuaW5kZXgoKTsNCgkJdmFyIGluZHgyPSQoY3VycmVudCkuaW5kZXgoKTsNCgkJDQoJCWlmKChpbmR4KzIpPiQoJy5jYXJvdXNlbC1pbmRpY2F0b3JzMiBsaScpLmxlbmd0aCkNCgkJCWluZHg9LTENCgkJCS8vYWxlcnQoInFxcSIraW5keCk7DQoJCS8vJCgnLmNhcm91c2VsLWluZGljYXRvcnMyIGxpOm50aC1jaGlsZCgnKyhpbmR4KzIpKycpJykuYWRkQ2xhc3MoJ2FjdGl2ZScpOw0KCQkvL2NvbnNvbGUubG9nKGluZHggKyAiIC0tLSIgKyBpbmR4MikNCgkJJCgnI2Nhcm91c2VsSW5kaWNhdG9yJytpbmR4MikuYWRkQ2xhc3MoJ2FjdGl2ZScpOw0KCQkkKCcjY2Fyb3VzZWxpdGVtJytpbmR4MikuYWRkQ2xhc3MoJ2JnYW5pbTInKTsvKiAgKi8NCgkgIAkkKCcjYmFubmVyQ2Fyb3VzZWxUZXh0JykuY2Fyb3VzZWwoaW5keDIpOw0KCQkkKCcjbGVhcm5tb3JlbGluaycpLnByb3AoImhyZWYiLGxlYXJubW9yZWxpbmtBcnJheVtpbmR4Ml0pOw0KCQkvLyQoJyNoMUJhbm5lcicraW5keCkuaW5uZXJIVE1MID0gIjEyMzQ1Njc4OTAiOw0KCQkvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoMUJhbm5lcicraW5keCkuaW5uZXJIVE1MID0gbGVhcm5tb3JldGV4dEFycmF5W2luZHhdOw0KCQkvKiAkKCcjaDFCYW5uZXInK2luZHgyKS50ZXh0KGxlYXJubW9yZXRleHRBcnJheVtpbmR4Ml0pOw0KCQkkKCcjaDFCYW5uZXInK2luZHgyKS50ZXh0eWxlKHsNCgkJCWR1cmF0aW9uIDogNzAsDQoJCQlkZWxheSA6IDI1LA0KCQkJZWFzaW5nIDogJ3N3aW5nJywNCgkJCWNhbGxiYWNrIDogbnVsbA0KCQl9KTsgKi8NCgkJDQoJfSk7DQoJJCgnLmxlZnQnKS5jbGljayhmdW5jdGlvbigpIHsNCgkgICQoJyNiYW5uZXJDYXJvdXNlbCcpLmNhcm91c2VsKCdwcmV2Jyk7DQoJfSk7DQoJDQoJJCgnLnJpZ2h0JykuY2xpY2soZnVuY3Rpb24oKSB7DQoJICAkKCcjYmFubmVyQ2Fyb3VzZWwnKS5jYXJvdXNlbCgnbmV4dCcpOw0KCX0pOw0KCQkNCgkJDQoJCQ0KfSk7DQoJDQpmdW5jdGlvbiBub3JtYWxpemVTbGlkZUhlaWdodHMoKSB7DQoJDQoJJCgnI2Jhbm5lckNhcm91c2VsVGV4dCcpLmVhY2goZnVuY3Rpb24oKXsNCgkgIHZhciBpdGVtcyA9ICQoJy5jYXJvdXNlbC1pdGVtJywgdGhpcyk7DQoJICAvLyByZXNldCB0aGUgaGVpZ2h0DQoJICBpdGVtcy5jc3MoJ21pbi1oZWlnaHQnLCAwKTsNCgkgIC8vIHNldCB0aGUgaGVpZ2h0DQoJICB2YXIgbWF4SGVpZ2h0ID0gTWF0aC5tYXguYXBwbHkobnVsbCwgDQoJCSAgaXRlbXMubWFwKGZ1bmN0aW9uKCl7DQoJCQkgIHJldHVybiAkKHRoaXMpLm91dGVySGVpZ2h0KCl9KS5nZXQoKSApOw0KCSAgaXRlbXMuY3NzKCdoZWlnaHQnLCBtYXhIZWlnaHQgKyAncHgnKTsNCgl9KQ0KCQ0KfQ0KCQ0K
2 ms
concept-cubicle-systems-logo.svg
317 ms
concept-cubicle-systems-icon.svg
315 ms
togglebutton.png
314 ms
control2left.png
315 ms
control2right.png
313 ms
New-Century-Hall-Gender-Neutral-Washroom-Area-_-Concept-Cubicle-Systems.jpg
1028 ms
slidernav.png
317 ms
Nursery.jpg
318 ms
productsbysector-spacer.png
318 ms
Nursery.jpg
964 ms
Primary.jpg
319 ms
Primary-Education.jpg
966 ms
Secondary.jpg
965 ms
Secondary-Education.jpg
963 ms
Higher.jpg
966 ms
Higher-Education.jpg
1026 ms
Office.jpg
1025 ms
Office.jpg
1026 ms
Industrial.jpg
1025 ms
Industrial.jpg
1026 ms
Healthcare.jpg
1113 ms
Healthcare.jpg
1130 ms
Campsite.jpg
1121 ms
Campsite-and-Caravan-Parks.jpg
1209 ms
Sport.jpg
1153 ms
Sports-and-Leisure.jpg
1113 ms
CCS-Matthew-Moss-1024x683.jpg
1303 ms
CCS-Material-Source-Manchester-1024x683.jpg
1241 ms
7-1024x614.jpg
1253 ms
1-1024x614.jpg
1349 ms
6-1024x614.jpg
1373 ms
CCS-Rudheath-Primary-School-Project-2-1024x614.jpg
1438 ms
202425-Colour-trends-1024x683.jpg
1358 ms
2023-top-commercial-interior-design-trends-_-CCS-washroom-insight-1024x683.jpg
1401 ms
CCS-Wreath-Making-Workshops-at-Material-Source-all-natural-wreaths--1024x634.jpg
1496 ms
log
1036 ms
Comforting-Curves-Banner-1024x377.jpg
1256 ms
CCS-Article-Preview-Images-1024x683.jpg
1177 ms
CCS-Colour-Trends-2022-Preview-image-1024x683.jpg
1205 ms
CCS-SEO-blogs-banners-9.jpg
1259 ms
B116-Thumbnail_210_py.jpg
1234 ms
plus.png
1283 ms
B070-Thumbnail_210_py.jpg
1306 ms
B015-Thumbnail_210_py.jpg
1308 ms
B194_210px_1.jpg
1351 ms
BrownStdLight.woff
1375 ms
avenir_roman_12.woff
637 ms
BrownStdRegular.woff
768 ms
BrownStdBold.woff
766 ms
B086-Thumbnail_210_py.jpg
766 ms
B101-Thumbnail_210_py.jpg
818 ms
B048-Thumbnail_210_py.jpg
761 ms
B100-Thumbnail_210_py.jpg
788 ms
C049-Thumbnail_210_py.jpg
804 ms
C062-Thumbnail_210_py.jpg
809 ms
C102-Thumbnail_210_py.jpg
817 ms
B001-Thumbnail_210_py.jpg
814 ms
b119_bleu_turquoise_cmjn_210x210.jpg
849 ms
C018-Thumbnail_210_py.jpg
818 ms
C017-Thumbnail_210_py.jpg
824 ms
C189_210px.jpg
833 ms
G031-Thumbnail_210_py.jpg
820 ms
G075-Thumbnail_210_py.jpg
802 ms
G059-Thumbnail_210_py.jpg
802 ms
G003-Thumbnail_210_py.jpg
796 ms
G029-Thumbnail_210_py.jpg
793 ms
M047-Thumbnail_210_py.jpg
750 ms
N005-Thumbnail_210_py.jpg
712 ms
O111_210px.jpg
721 ms
P001-Thumbnail_210_py.jpg
750 ms
P092-Thumbnail_210_py.jpg
750 ms
R059_210px.jpg
721 ms
R057_210px.jpg
679 ms
R036-Thumbnail_210_py.jpg
670 ms
v109_210px.jpg
679 ms
V110_210px.jpg
695 ms
V014-Thumbnail_210_py.jpg
697 ms
Z016-Thumbnail_210_py.jpg
698 ms
T105_210px.jpg
704 ms
T108_210px.jpg
689 ms
c101-thumbnail_210_py_1.jpg
687 ms
N026-Thumbnail_210_py.jpg
693 ms
N115_210px.jpg
680 ms
C149-Thumbnail_210_py.jpg
661 ms
CCS-Polyrey-Samples-5-188x300.jpg
683 ms
N056-Thumbnail_210_py.jpg
641 ms
E104_210px.jpg
717 ms
C183_210px.jpg
723 ms
m124-210_1.jpg
729 ms
N028-Thumbnail_210_py.jpg
707 ms
Z022-Thumbnail_210_py.jpg
709 ms
M134_210px.jpg
804 ms
C011-Thumbnail_210_py.jpg
785 ms
Z038_210px.jpg
1023 ms
G076-Thumbnail_210_py.jpg
727 ms
B125-Thumbnail_210_py.jpg
736 ms
C190_210px.jpg
790 ms
K003-Thumbnail_210_py.jpg
828 ms
F006-Thumbnail_210_py.jpg
829 ms
P114-Thumbnail_210_py.jpg
825 ms
Be-Plas-Satin-White-Range-300x300.jpg
907 ms
Be-Plas-Gloss-White-range-300x300.jpg
903 ms
Be-Plas-Cotton-white-range-300x300.jpg
975 ms
Be-Plas-Antimicrobial-Sterling-300x300.jpg
992 ms
Be-Plas-Pastel-Cream-300x300.jpg
977 ms
Be-Plas-Mushroom-300x300.jpg
933 ms
Pastel-Grey-300x300.jpg
941 ms
Be-Plas-Dove-300x300.jpg
934 ms
Be-Plas-Black-300x300.jpg
973 ms
Be-Plas-Mid-Grey-300x300.jpg
999 ms
Be-Plas-Marine-Blue-300x300.jpg
968 ms
Be-Plas-Blue-300x300.jpg
919 ms
Be-Plas-Racing-Green-300x300.jpg
934 ms
Be-Plas-Yellow-300x300.jpg
929 ms
Be-Plas-Orange-300x300.jpg
948 ms
Be-Plas-Green-300x300.jpg
958 ms
Be-Plas-Lime-Green-300x300.jpg
958 ms
Be-Plas-Red-300x300.jpg
913 ms
Be-Plas-Pink-300x300.jpg
914 ms
Be-Plas-Purple-300x300.jpg
896 ms
Be-Plas-Pacific-Blue-300x300.jpg
944 ms
Be-Plas-Teal-300x300.jpg
953 ms
Be-Plas-Turquoise-300x300.jpg
877 ms
Be-Plas-Avocado-300x300.jpg
880 ms
Be-Plas-Duck-Egg-300x300.jpg
873 ms
Be-Plas-Pastel-Green-300x300.jpg
868 ms
Be-Plas-Peppermint-300x300.jpg
923 ms
Be-Plas-Goose-Grey-300x300.jpg
864 ms
Untitled-design-19-300x300.jpg
876 ms
Charcoal-300x300.jpg
867 ms
Graphite-300x300.jpg
873 ms
Honey-300x300.jpg
802 ms
Pewter-300x300.jpg
819 ms
Sand-300x300.jpg
857 ms
Corian-Abalone-1-300x300.jpg
822 ms
Corian-Antartica-1-300x300.jpg
732 ms
Corian-Arctic-Ice-1-300x300.jpg
711 ms
Corian-Arrowroot-1-300x300.jpg
740 ms
Corian-Artista-Beige-1-1-300x300.jpg
688 ms
Corian-Artista-Canvas-1-1-300x300.jpg
718 ms
Corian-Artista-Dust-1-1-300x300.jpg
725 ms
Corian-Artista-Gray-1-1-300x300.jpg
721 ms
Corian-Ash-Aggregate-1-300x300.jpg
708 ms
Corian-Ash-Concrete-1-300x300.jpg
728 ms
Corian-Aspen-1-300x300.jpg
711 ms
Corian-Athena-Grey-1-300x300.jpg
711 ms
Corian-Aurora-1-300x300.jpg
772 ms
Corian-Basalt-Terrazzo-1-300x300.jpg
836 ms
Corian-Beech-Nuwood-1-300x300.jpg
725 ms
Corian-Bisque-1-300x300.jpg
726 ms
Corian-Blooming-Green-1-300x300.jpg
712 ms
Corian-Bone-1-300x300.jpg
713 ms
Corian-Cameo-White-1-300x300.jpg
760 ms
Corian-Carbon-Aggregate-1-300x300.jpg
790 ms
Corian-Carbon-Concrete-1-300x300.jpg
761 ms
Corian-Carrara-Crema-1-1-300x300.jpg
774 ms
Corian-Carrara-Lino-1-1-300x300.jpg
748 ms
Corian-Citrus-Orange-1-300x300.jpg
735 ms
Corian-Clam-Shell-1-300x300.jpg
782 ms
Corian-Cocoa-Brown-1-300x300.jpg
837 ms
Corian-Cocoa-Prima-1-300x300.jpg
804 ms
deep-black-quartz-300x300.jpg
802 ms
Corian-Deep-Caviar-1-300x300.jpg
771 ms
Corian-Deep-Anthracite-1-300x300.jpg
749 ms
Corian-Deep-Black-Quartz-1-300x300.jpg
799 ms
Corian-Deep-Cloud-1-300x300.jpg
799 ms
Corian-Deep-Espresso-1-300x300.jpg
781 ms
Corian-Deep-Mink-1-300x300.jpg
793 ms
Corian-Deep-Night-Sky-1-300x300.jpg
813 ms
Corian-Deep-Nocturne-1-300x300.jpg
710 ms
Corian-Deep-Sable-1-300x300.jpg
784 ms
Corian-Deep-Storm-1-300x300.jpg
810 ms
Corian-Deep-Titanium-1-300x300.jpg
773 ms
Corian-Dove-1-300x300.jpg
783 ms
Corian-Everest-1-300x300.jpg
757 ms
Corian-Hot-1-300x300.jpg
746 ms
Corian-Imperial-Yellow-1-300x300.jpg
763 ms
Corian-Laguna-1-300x300.jpg
765 ms
Corian-Linen-1-300x300.jpg
813 ms
Corian-Matterhorn-1-300x300.jpg
830 ms
Corian-Neutral-Concrete-1-300x300.jpg
740 ms
Corian-Platinum-1-300x300.jpg
822 ms
Corian-Raffia-1-300x300.jpg
739 ms
Corian-Rain-Cloud-1-300x300.jpg
748 ms
Corian-Sahara-1-300x300.jpg
804 ms
Corian-Salt-1-300x300.jpg
759 ms
Corian-Sand_Storm-1-1-300x300.jpg
788 ms
Corian-Sandalwood-1-300x300.jpg
784 ms
Corian-Savannah-1-300x300.jpg
788 ms
Corian-Sienna-Brown-1-300x300.jpg
758 ms
Corian-Silt-1-300x300.jpg
820 ms
Corian-Silver-Birch-1-300x300.jpg
785 ms
Corian-Sparkling-Granita-1-1-300x300.jpg
791 ms
Corian-Sparkling-White-1-300x300.jpg
783 ms
Corian-Venaro-White-1-223x300.jpg
768 ms
Corian-Verdant-1-300x300.jpg
719 ms
Corian-Weathered-Concrete-1-300x300.jpg
796 ms
Corian-White-Jasmine-1-300x300.jpg
771 ms
Corian-Willow-1-300x300.jpg
788 ms
Corian-Cosmos-Prima-1-300x300.jpg
805 ms
Corian-Domino-Terrazzo-1-300x300.jpg
796 ms
Corian-Dune-Prima-1-300x300.jpg
732 ms
Corian-Evening-Prima-1-300x300.jpg
824 ms
Corian-Golden-Onyx-1-300x300.jpg
781 ms
Corian-Grey-Onyx-1-300x300.jpg
788 ms
Corian-Hazelnut-1-300x300.jpg
771 ms
Corian-Jade-Onyx-1-300x300.jpg
740 ms
Corian-Lava-Rock-1-300x300.jpg
825 ms
Corian-Limestone-Prima-1-300x300.jpg
778 ms
Corian-Mahogany-Nuwood-1-300x300.jpg
790 ms
Corian-Neutral-Aggregate-1-300x300.jpg
827 ms
Corian-Nimbus-Prima-1-300x300.jpg
781 ms
Corian-Pebble-Terrazzo-1-300x300.jpg
847 ms
Corian-Rosemary-1-300x300.jpg
861 ms
Corian-Sagebrush-1-300x300.jpg
838 ms
Corian-Sepia-Linear-1-300x300.jpg
830 ms
Corian-Silver-Linear-1-300x300.jpg
861 ms
Corian-Smoke-Drift-Prima-1-300x300.jpg
875 ms
Corian-Weathered-Aggregate-1-300x300.jpg
881 ms
Corian-White-Onyx-1-300x300.jpg
858 ms
Corian-Windswept-Prima-1-300x300.jpg
861 ms
Corian-Witch-Hazel-1-300x300.jpg
862 ms
Corian-Designer-White-1-300x300.jpg
891 ms
Corian-Elegant-Grey-1-300x300.jpg
901 ms
Corian-Glacier-White-1-300x300.jpg
899 ms
Corian-Glacier-Ice-1-300x300.jpg
950 ms
Corian-Light-Ash-1-300x300.jpg
956 ms
Corian-Mint-Ice-1-300x300.jpg
935 ms
Corian-Pearl-Grey-1-300x300.jpg
935 ms
Corian-Seagrass-1-300x300.jpg
949 ms
Corian-Silver-Grey-1-300x300.jpg
947 ms
Corian-Vanilla-1-300x300.jpg
946 ms
Mango_decor_0010_735-212x300.jpg
932 ms
Ballerina_decor_0020_809-139x300.jpg
927 ms
Lamar_decor_0023_879-212x300.jpg
910 ms
Vivo_decor_0024_855-212x300.jpg
911 ms
Tortuga_decor_0041_837-212x300.jpg
931 ms
Black_decor_0080_21-212x300.jpg
878 ms
Charcoal_decor_0077_57-212x300.jpg
917 ms
FH-White_decor_0085_1005-212x300.jpg
903 ms
Intensive-Red_decor_0210_759-212x300.jpg
898 ms
Gentian-Blue_decor_0237_891-212x300.jpg
888 ms
Arctic-White_decor_0606_1029-212x300.jpg
912 ms
Sea-Green_decor_0630_825-212x300.jpg
852 ms
Atlantic_decor_0717_219-212x300.jpg
898 ms
Arctic_decor_0718_873-212x300.jpg
896 ms
Yellowish-Green_decor_0725_897-212x300.jpg
861 ms
Hygienic-White_decor_0733_351-212x300.jpg
867 ms
Warm-Dark-Grey_decor_0755_1103-212x300.jpg
820 ms
decor_0761_1109-212x300.jpg
804 ms
Natural-Medium-Grey_decor_0762_1127-212x300.jpg
845 ms
Winter-White_decor_0851_129-212x300.jpg
826 ms
Madera_decor_0252_1181-212x300.jpg
763 ms
Arezzo_decor_0260_1217-210x300.jpg
750 ms
Serenissima_decor_0361_1307-210x300.jpg
783 ms
Monte_decor_0415_1385-212x300.jpg
796 ms
Pinero_decor_0419_1415-212x300.jpg
835 ms
Charles_decor_0538_1301-212x300.jpg
807 ms
Whitney_decor_0551_1193-142x300.jpg
744 ms
Prado-Alu-Grey_decor_0026_405-212x300.jpg
720 ms
Prado-Agate-Grey_decor_0027_1559-210x300.jpg
743 ms
decor_0328_1511-138x300.jpg
695 ms
Untitled-design-20-300x300.jpg
750 ms
Silestone-Arcilla-Red.png
772 ms
Silestone-Posedonia-Green.png
841 ms
Silestone-Cala-Blue.png
819 ms
Silestone-Faro-White.png
808 ms
Egger_Yellow-300x300.jpg
702 ms
Egger_Blue-300x300.jpg
754 ms
Egger_Grey-300x300.jpg
748 ms
Egger_White-300x300.jpg
767 ms
Egger_Cream-300x300.jpg
817 ms
Egger_Red-300x300.jpg
884 ms
footertel.png
795 ms
footeremail.png
755 ms
twitter.svg
823 ms
linkedin.svg
867 ms
stickycart.png
847 ms
Identity-v2-desktop.jpg
1045 ms
conceptcubiclesystems.co.uk 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
Best practices
These items highlight common accessibility best practices.
Impact
Issue
[user-scalable="no"] is used in the <meta name="viewport"> element or the [maximum-scale] attribute is less than 5.
conceptcubiclesystems.co.uk best practices score
Trust and Safety
Impact
Issue
Does not use HTTPS
Includes front-end JavaScript libraries with known security vulnerabilities
Ensure CSP is effective against XSS attacks
User Experience
Impact
Issue
Displays images with incorrect aspect ratio
General
Impact
Issue
Detected JavaScript libraries
Page has valid source maps
conceptcubiclesystems.co.uk SEO score
Content Best Practices
Format your HTML in a way that enables crawlers to better understand your app’s content.
Impact
Issue
Links do not have descriptive text
Crawling and Indexing
To appear in search results, crawlers need access to your app.
Impact
Issue
Links are not crawlable
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
Tap targets are not sized appropriately
![]()
EN
![]()
EN
UTF-8
Language claimed in HTML meta tag should match the language actually used on the web page. Otherwise Conceptcubiclesystems.co.uk 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 Conceptcubiclesystems.co.uk 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.
conceptcubiclesystems.co.uk
Open Graph data is detected on the main page of Concept Cubicle Systems. This is the best way to make the web page social media friendly. Here is how it looks like on Facebook: