Sealyon 37 – perfect island-hopping finesse

Photography by Ben Whitehead

This month, our Yacht Spotlight segment spans out to another region of the Caribbean, perusing the luxurious amenities of an attractive vessel that spends her time cruising the Bahamas; a yacht renowned for her ability to island-hop, making her ideal for the wishful-thinking BVI residents and visitors among us, who desire to see and experience her circumnavigating our Territory’s 60 islands and cays.

Introducing Sealyon 37; the stunning yacht that allows a fuller vacation experience.

Boasting a shallow draft of five foot 11 inches and an optimum high speed at 33 knots, Sealyon’s architectural and manufacturing proficiency of yacht builder ISA exhibits the perfect features for travelling island to island.

DCIM100MEDIADJI_0122.JPG

With this idyllic combination of speed and style, easy accessibility to the range of shores is afforded, pleasing guests who wish to absorb as much island variation as is feasibly possible in a single vacation.

Her sophisticated, contemporary interior design vaunts ‘chic retreat’ aesthetics against the backdrop of the tropical Caribbean’s turquoise waters, white sand beaches, clear blue skies, and golden sun. The extravagant modern Italian interiors—courtesy of Cristiano Gatto—combine ultra-soft furnishings with polished walls, mirrors, bevelled glass, and Lalique inlays, presenting a smooth atmosphere that inspires serenity.

Accommodating a maximum of nine guests, four immaculately maintained cabins including a full-beam VIP suite and a full-beam Master suite bestow the ultimate comforts. Spacious and airy with a mood of calm, the cabin configuration is set out with two double beds, two twin beds, and one Pullman.

The insightful use of interior and exterior spaces encompasses a huge sun deck with the enticing convenience of a Jacuzzi plunge pool; seamless tranquillity on board this fine vessel is a certainty.

While at shore, zero speed stabilisers contribute for total calm anchoring; the sun beating down on the deck with cocktails in hand and the bliss of the still air.

An optional 39′ Midnight Express tender is perfect for deep sea fishing and exploring the islands in their entirety.

Sealyon also offers an upgraded water toy inventory since winter 2017, completing the aqua excursion of a lifetime with a variety of activities at guests’ pleasure.

SEALYON 37 is available to charter in the Bahamas from 110,000 USD per week with Y.CO

Stephen Leslie France, Editor-in-Chief - aLookingGlass
Hailing from London, UK, Stephen graduated with a BA English Literature degree at the University of Southampton in 2007. Whilst employed, he completed the second draft of his 93,000 word novel ‘Fall from Grace’ among other writing projects and a variety of occupations - stephenlesliefrance.com/
Stephen Leslie France, Editor-in-Chief - aLookingGlass
Stephen Leslie France, Editor-in-Chief - aLookingGlass

Latest posts by Stephen Leslie France, Editor-in-Chief - aLookingGlass (see all)

Like this article? Sign up to our newsletter!

Share This
BVI Property and Yacht
Like this article
Like FB Page
PGlmcmFtZSBzcmM9Ii8vd3d3LmZhY2Vib29rLmNvbS9wbHVnaW5zL2xpa2Vib3gucGhwP2hyZWY9aHR0cHMlM0ElMkYlMkZ3d3cuZmFjZWJvb2suY29tJTJGVmlyZ2luSXNsYW5kc1Byb3BlcnR5WWFjaHQmd2lkdGg9MTYwcHgmaGVpZ2h0PTYyJmNvbG9yc2NoZW1lPWxpZ2h0JnNob3dfZmFjZXM9ZmFsc2UmaGVhZGVyPWZhbHNlJnN0cmVhbT1mYWxzZSZzaG93X2JvcmRlcj1mYWxzZSZhcHBJZD01MDYyNzM5MjYxMTUyNzEiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOm5vbmU7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6MTYwcHhweDsgaGVpZ2h0OjEwMHB4OyIgYWxsb3dUcmFuc3BhcmVuY3k9InRydWUiPjwvaWZyYW1lPg==
Like this article
Subscribe to Newsletter
ARE YOU READY? GET IT NOW!
Increase more than 500% of Email Subscribers!
Your Information will never be shared with any third party.
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzEnID48YSBpZD0nZ2ZfNzEnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzEnIGlkPSdnZm9ybV83MScgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy95YWNodGluZy9zZWFseW9uLTM3LXBlcmZlY3QtaXNsYW5kLWhvcHBpbmctZmluZXNzZS8jZ2ZfNzEnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183MScgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83MV8yJyAgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IFdoYXQgZmllbGQgZG8geW91IHdvcmsgaW4/PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfcmFkaW8nPjx1bCBjbGFzcz0nZ2ZpZWxkX3JhZGlvJyBpZD0naW5wdXRfNzFfMic+PGxpIGNsYXNzPSdnY2hvaWNlXzcxXzJfMCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI4YTI2ZmU5NycgIGlkPSdjaG9pY2VfNzFfMl8wJyAgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzFfMl8wJyBpZD0nbGFiZWxfNzFfMl8wJz5BZG1pbmlzdHJhdGlvbjwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzFfMl8xJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmI1ZTEwNTlmJyAgaWQ9J2Nob2ljZV83MV8yXzEnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83MV8yXzEnIGlkPSdsYWJlbF83MV8yXzEnPkJ1c2luZXNzIG93bmVyPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83MV8yXzInPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyMDNiNjNkZTgnICBpZD0nY2hvaWNlXzcxXzJfMicgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcxXzJfMicgaWQ9J2xhYmVsXzcxXzJfMic+RXhlY3V0aXZlLyBHZW5lcmFsIE1hbmFnZW1lbnQvIERpcmVjdG9yPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83MV8yXzMnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyYWRiYjJmMWYnICBpZD0nY2hvaWNlXzcxXzJfMycgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcxXzJfMycgaWQ9J2xhYmVsXzcxXzJfMyc+R292ZXJubWVudDwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzFfMl80Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmZlYmJjMmNjJyAgaWQ9J2Nob2ljZV83MV8yXzQnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83MV8yXzQnIGlkPSdsYWJlbF83MV8yXzQnPkhlYWx0aGNhcmU8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcxXzJfNSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIyZWVjYTgxZScgIGlkPSdjaG9pY2VfNzFfMl81JyAgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzFfMl81JyBpZD0nbGFiZWxfNzFfMl81Jz5Ib21lbWFrZXI8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcxXzJfNic+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI1OGQ2YjgxOScgIGlkPSdjaG9pY2VfNzFfMl82JyAgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzFfMl82JyBpZD0nbGFiZWxfNzFfMl82Jz5Ib3NwaXRhbGl0eTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzFfMl83Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjkzYWQzYWY5JyAgaWQ9J2Nob2ljZV83MV8yXzcnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83MV8yXzcnIGlkPSdsYWJlbF83MV8yXzcnPk1pZC1MZXZlbCBNYW5hZ2VtZW50PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83MV8yXzgnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyMmEwMzJjODAnICBpZD0nY2hvaWNlXzcxXzJfOCcgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcxXzJfOCcgaWQ9J2xhYmVsXzcxXzJfOCc+VHJhZGVzcGVyc29uPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83MV8yXzknPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyM2VmMThjZDknICBpZD0nY2hvaWNlXzcxXzJfOScgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcxXzJfOScgaWQ9J2xhYmVsXzcxXzJfOSc+b3RoZXI8L2xhYmVsPjwvbGk+PC91bD48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfNzFfMycgIGNsYXNzPSdnZmllbGQgZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZScgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzcxXzMnID5OYW1lPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0XzcxXzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzcxJyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MSJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzcxIl09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzcxIl0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MSJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83MSIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzEmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0wJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzEnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3MScgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzEnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzcxJyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzcxJyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzcxJyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzcxJyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzEnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzcxJz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFqYXggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzEsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzcxJykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzEnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzcxJykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MScpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzEnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MScpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzEnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzcxJykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzEsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzcxLCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzEnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MScpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83MScpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzcxXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzcxJ10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzEnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3MSwgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzEpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzEsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzInID48YSBpZD0nZ2ZfNzInIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzInIGlkPSdnZm9ybV83MicgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy95YWNodGluZy9zZWFseW9uLTM3LXBlcmZlY3QtaXNsYW5kLWhvcHBpbmctZmluZXNzZS8jZ2ZfNzInPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183MicgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83Ml8yJyAgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IFdoYXQgd2FzIHlvdXIgVE9UQUwgQ09NQklORUQgaG91c2Vob2xkIGluY29tZSBsYXN0IHllYXI/PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfcmFkaW8nPjx1bCBjbGFzcz0nZ2ZpZWxkX3JhZGlvJyBpZD0naW5wdXRfNzJfMic+PGxpIGNsYXNzPSdnY2hvaWNlXzcyXzJfMCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIzZWYxOGNkOScgIGlkPSdjaG9pY2VfNzJfMl8wJyAgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzJfMl8wJyBpZD0nbGFiZWxfNzJfMl8wJz4kMjAwLDAwMCBhbmQgdXA8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcyXzJfMSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIyYTAzMmM4MCcgIGlkPSdjaG9pY2VfNzJfMl8xJyAgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzJfMl8xJyBpZD0nbGFiZWxfNzJfMl8xJz4kMTc1LDAwMCB0byAkMTk5LDk5OTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzJfMl8yJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjkzYWQzYWY5JyAgaWQ9J2Nob2ljZV83Ml8yXzInICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzInIGlkPSdsYWJlbF83Ml8yXzInPiQxNTAsMDAwIHRvICQxNzQsOTk5PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83Ml8yXzMnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNThkNmI4MTknICBpZD0nY2hvaWNlXzcyXzJfMycgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcyXzJfMycgaWQ9J2xhYmVsXzcyXzJfMyc+JDEyNSwwMDAgdG8gJDE0OSw5OTk8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcyXzJfNCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIyZWVjYTgxZScgIGlkPSdjaG9pY2VfNzJfMl80JyAgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzJfMl80JyBpZD0nbGFiZWxfNzJfMl80Jz4kMTAwLDAwMCB0byAkMTI0LDk5OTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzJfMl81Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmZlYmJjMmNjJyAgaWQ9J2Nob2ljZV83Ml8yXzUnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzUnIGlkPSdsYWJlbF83Ml8yXzUnPiQ3NSwwMDAgdG8gJDk5LDk5OTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzJfMl82Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmFkYmIyZjFmJyAgaWQ9J2Nob2ljZV83Ml8yXzYnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzYnIGlkPSdsYWJlbF83Ml8yXzYnPiQ1MCwwMDAgdG8gJDc0LDk5OTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzJfMl83Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjAzYjYzZGU4JyAgaWQ9J2Nob2ljZV83Ml8yXzcnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzcnIGlkPSdsYWJlbF83Ml8yXzcnPiQyNSwwMDAgdG8gNDksOTk5PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83Ml8yXzgnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyYjVlMTA1OWYnICBpZD0nY2hvaWNlXzcyXzJfOCcgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcyXzJfOCcgaWQ9J2xhYmVsXzcyXzJfOCc+JDEwLDAwMCB0byAkMjQsOTk5PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83Ml8yXzknPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyOGEyNmZlOTcnICBpZD0nY2hvaWNlXzcyXzJfOScgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcyXzJfOScgaWQ9J2xhYmVsXzcyXzJfOSc+JDAgdG8gJDksOTk5PC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzcyXzMnICBjbGFzcz0nZ2ZpZWxkIGdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF83Ml8zJyA+Q29tbWVudHM8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF8zJyBpZD0naW5wdXRfNzJfMycgdHlwZT0ndGV4dCcgdmFsdWU9JycgLz48L2Rpdj48ZGl2IGNsYXNzPSdnZmllbGRfZGVzY3JpcHRpb24nPlRoaXMgZmllbGQgaXMgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMgYW5kIHNob3VsZCBiZSBsZWZ0IHVuY2hhbmdlZC48L2Rpdj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fNzInIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyB2YWx1ZT0nU3VibWl0JyAgb25jbGljaz0naWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzcyIl0pe3JldHVybiBmYWxzZTt9ICB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzIiXT10cnVlOyAgJyBvbmtleXByZXNzPSdpZiggZXZlbnQua2V5Q29kZSA9PSAxMyApeyBpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzIiXSl7cmV0dXJuIGZhbHNlO30gd2luZG93WyJnZl9zdWJtaXR0aW5nXzcyIl09dHJ1ZTsgIGpRdWVyeSgiI2dmb3JtXzcyIikudHJpZ2dlcigic3VibWl0IixbdHJ1ZV0pOyB9JyAvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9hamF4JyB2YWx1ZT0nZm9ybV9pZD03MiZhbXA7dGl0bGU9JmFtcDtkZXNjcmlwdGlvbj0mYW1wO3RhYmluZGV4PTAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2lzX3N1Ym1pdF83MicgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3N1Ym1pdCcgdmFsdWU9JzcyJyAvPgogICAgICAgICAgICAKICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdW5pcXVlX2lkJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdzdGF0ZV83MicgdmFsdWU9J1d5SmJYU0lzSWpOaU5UQXpOell3WXpsaE1UQTJZalEwT1dJNFkyVTNObUU1TkRoa05EbGpJbDA9JyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzInIGlkPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzInIHZhbHVlPScwJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzInIGlkPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzInIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9maWVsZF92YWx1ZXMnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlmcmFtZSBzdHlsZT0nZGlzcGxheTpub25lO3dpZHRoOjBweDtoZWlnaHQ6MHB4Oycgc3JjPSdhYm91dDpibGFuaycgbmFtZT0nZ2Zvcm1fYWpheF9mcmFtZV83MicgaWQ9J2dmb3JtX2FqYXhfZnJhbWVfNzInPlRoaXMgaWZyYW1lIGNvbnRhaW5zIHRoZSBsb2dpYyByZXF1aXJlZCB0byBoYW5kbGUgQWpheCBwb3dlcmVkIEdyYXZpdHkgRm9ybXMuPC9pZnJhbWU+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtnZm9ybUluaXRTcGlubmVyKCA3MiwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeSgnI2dmb3JtX2FqYXhfZnJhbWVfNzInKS5sb2FkKCBmdW5jdGlvbigpe3ZhciBjb250ZW50cyA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyonKS5odG1sKCk7dmFyIGlzX3Bvc3RiYWNrID0gY29udGVudHMuaW5kZXhPZignR0ZfQUpBWF9QT1NUQkFDSycpID49IDA7aWYoIWlzX3Bvc3RiYWNrKXtyZXR1cm47fXZhciBmb3JtX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fd3JhcHBlcl83MicpO3ZhciBpc19jb25maXJtYXRpb24gPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXJfNzInKS5sZW5ndGggPiAwO3ZhciBpc19yZWRpcmVjdCA9IGNvbnRlbnRzLmluZGV4T2YoJ2dmb3JtUmVkaXJlY3QoKXsnKSA+PSAwO3ZhciBpc19mb3JtID0gZm9ybV9jb250ZW50Lmxlbmd0aCA+IDAgJiYgISBpc19yZWRpcmVjdCAmJiAhIGlzX2NvbmZpcm1hdGlvbjtpZihpc19mb3JtKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzcyJykuaHRtbChmb3JtX2NvbnRlbnQuaHRtbCgpKTtpZihmb3JtX2NvbnRlbnQuaGFzQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MicpLmFkZENsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fSBlbHNlIHtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzcyJykucmVtb3ZlQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MicpLm9mZnNldCgpLnRvcCk7IH0sIDUwICk7aWYod2luZG93WydnZm9ybUluaXREYXRlcGlja2VyJ10pIHtnZm9ybUluaXREYXRlcGlja2VyKCk7fWlmKHdpbmRvd1snZ2Zvcm1Jbml0UHJpY2VGaWVsZHMnXSkge2dmb3JtSW5pdFByaWNlRmllbGRzKCk7fXZhciBjdXJyZW50X3BhZ2UgPSBqUXVlcnkoJyNnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzInKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCA3MiwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbNzIsIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183MiddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcuR0ZfQUpBWF9QT1NUQkFDSycpLmh0bWwoKTtpZighY29uZmlybWF0aW9uX2NvbnRlbnQpe2NvbmZpcm1hdGlvbl9jb250ZW50ID0gY29udGVudHM7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzcyJykucmVwbGFjZVdpdGgoY29uZmlybWF0aW9uX2NvbnRlbnQpO2pRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmXzcyJykub2Zmc2V0KCkudG9wKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbNzJdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzInXSA9IGZhbHNlO30sIDUwKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV83MicpLmFwcGVuZChjb250ZW50cyk7aWYod2luZG93WydnZm9ybVJlZGlyZWN0J10pIHtnZm9ybVJlZGlyZWN0KCk7fX1qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzcyLCBjdXJyZW50X3BhZ2VdKTt9ICk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4gaWYodHlwZW9mIGdmX2dsb2JhbCA9PSAndW5kZWZpbmVkJykgdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyfSwiYmFzZV91cmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXMiLCJudW1iZXJfZm9ybWF0cyI6W10sInNwaW5uZXJVcmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2ltYWdlc1wvc3Bpbm5lci5naWYifTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSA3Mikge30gfSApO2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGZpZWxkcywgaXNJbml0KXt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3MiwgMV0pIH0gKTsgPC9zY3JpcHQ+
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzMnID48YSBpZD0nZ2ZfNzMnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzMnIGlkPSdnZm9ybV83MycgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy95YWNodGluZy9zZWFseW9uLTM3LXBlcmZlY3QtaXNsYW5kLWhvcHBpbmctZmluZXNzZS8jZ2ZfNzMnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183MycgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83M18yJyAgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IEhvdyBtYW55IGZhbWlseSBtZW1iZXJzIGFyZSBsaXZpbmcgaW4geW91ciBob3VzZWhvbGQgKGluY2x1ZGluZyB5b3U/KTwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3JhZGlvJz48dWwgY2xhc3M9J2dmaWVsZF9yYWRpbycgaWQ9J2lucHV0XzczXzInPjxsaSBjbGFzcz0nZ2Nob2ljZV83M18yXzAnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyM2VmMThjZDknICBpZD0nY2hvaWNlXzczXzJfMCcgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzczXzJfMCcgaWQ9J2xhYmVsXzczXzJfMCc+MTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzNfMl8xJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjJhMDMyYzgwJyAgaWQ9J2Nob2ljZV83M18yXzEnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83M18yXzEnIGlkPSdsYWJlbF83M18yXzEnPjI8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzczXzJfMic+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI5M2FkM2FmOScgIGlkPSdjaG9pY2VfNzNfMl8yJyAgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzNfMl8yJyBpZD0nbGFiZWxfNzNfMl8yJz4zPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83M18yXzMnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNThkNmI4MTknICBpZD0nY2hvaWNlXzczXzJfMycgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzczXzJfMycgaWQ9J2xhYmVsXzczXzJfMyc+NCBvciBtb3JlPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzczXzMnICBjbGFzcz0nZ2ZpZWxkIGdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF83M18zJyA+RW1haWw8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF8zJyBpZD0naW5wdXRfNzNfMycgdHlwZT0ndGV4dCcgdmFsdWU9JycgLz48L2Rpdj48ZGl2IGNsYXNzPSdnZmllbGRfZGVzY3JpcHRpb24nPlRoaXMgZmllbGQgaXMgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMgYW5kIHNob3VsZCBiZSBsZWZ0IHVuY2hhbmdlZC48L2Rpdj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fNzMnIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyB2YWx1ZT0nU3VibWl0JyAgb25jbGljaz0naWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzczIl0pe3JldHVybiBmYWxzZTt9ICB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzMiXT10cnVlOyAgJyBvbmtleXByZXNzPSdpZiggZXZlbnQua2V5Q29kZSA9PSAxMyApeyBpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzMiXSl7cmV0dXJuIGZhbHNlO30gd2luZG93WyJnZl9zdWJtaXR0aW5nXzczIl09dHJ1ZTsgIGpRdWVyeSgiI2dmb3JtXzczIikudHJpZ2dlcigic3VibWl0IixbdHJ1ZV0pOyB9JyAvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9hamF4JyB2YWx1ZT0nZm9ybV9pZD03MyZhbXA7dGl0bGU9JmFtcDtkZXNjcmlwdGlvbj0mYW1wO3RhYmluZGV4PTAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2lzX3N1Ym1pdF83MycgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3N1Ym1pdCcgdmFsdWU9JzczJyAvPgogICAgICAgICAgICAKICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdW5pcXVlX2lkJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdzdGF0ZV83MycgdmFsdWU9J1d5SmJYU0lzSWpOaU5UQXpOell3WXpsaE1UQTJZalEwT1dJNFkyVTNObUU1TkRoa05EbGpJbDA9JyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzMnIGlkPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzMnIHZhbHVlPScwJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzMnIGlkPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzMnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9maWVsZF92YWx1ZXMnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlmcmFtZSBzdHlsZT0nZGlzcGxheTpub25lO3dpZHRoOjBweDtoZWlnaHQ6MHB4Oycgc3JjPSdhYm91dDpibGFuaycgbmFtZT0nZ2Zvcm1fYWpheF9mcmFtZV83MycgaWQ9J2dmb3JtX2FqYXhfZnJhbWVfNzMnPlRoaXMgaWZyYW1lIGNvbnRhaW5zIHRoZSBsb2dpYyByZXF1aXJlZCB0byBoYW5kbGUgQWpheCBwb3dlcmVkIEdyYXZpdHkgRm9ybXMuPC9pZnJhbWU+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtnZm9ybUluaXRTcGlubmVyKCA3MywgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeSgnI2dmb3JtX2FqYXhfZnJhbWVfNzMnKS5sb2FkKCBmdW5jdGlvbigpe3ZhciBjb250ZW50cyA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyonKS5odG1sKCk7dmFyIGlzX3Bvc3RiYWNrID0gY29udGVudHMuaW5kZXhPZignR0ZfQUpBWF9QT1NUQkFDSycpID49IDA7aWYoIWlzX3Bvc3RiYWNrKXtyZXR1cm47fXZhciBmb3JtX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fd3JhcHBlcl83MycpO3ZhciBpc19jb25maXJtYXRpb24gPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXJfNzMnKS5sZW5ndGggPiAwO3ZhciBpc19yZWRpcmVjdCA9IGNvbnRlbnRzLmluZGV4T2YoJ2dmb3JtUmVkaXJlY3QoKXsnKSA+PSAwO3ZhciBpc19mb3JtID0gZm9ybV9jb250ZW50Lmxlbmd0aCA+IDAgJiYgISBpc19yZWRpcmVjdCAmJiAhIGlzX2NvbmZpcm1hdGlvbjtpZihpc19mb3JtKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzczJykuaHRtbChmb3JtX2NvbnRlbnQuaHRtbCgpKTtpZihmb3JtX2NvbnRlbnQuaGFzQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MycpLmFkZENsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fSBlbHNlIHtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzczJykucmVtb3ZlQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MycpLm9mZnNldCgpLnRvcCk7IH0sIDUwICk7aWYod2luZG93WydnZm9ybUluaXREYXRlcGlja2VyJ10pIHtnZm9ybUluaXREYXRlcGlja2VyKCk7fWlmKHdpbmRvd1snZ2Zvcm1Jbml0UHJpY2VGaWVsZHMnXSkge2dmb3JtSW5pdFByaWNlRmllbGRzKCk7fXZhciBjdXJyZW50X3BhZ2UgPSBqUXVlcnkoJyNnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzMnKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCA3MywgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbNzMsIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183MyddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcuR0ZfQUpBWF9QT1NUQkFDSycpLmh0bWwoKTtpZighY29uZmlybWF0aW9uX2NvbnRlbnQpe2NvbmZpcm1hdGlvbl9jb250ZW50ID0gY29udGVudHM7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzczJykucmVwbGFjZVdpdGgoY29uZmlybWF0aW9uX2NvbnRlbnQpO2pRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmXzczJykub2Zmc2V0KCkudG9wKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbNzNdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzMnXSA9IGZhbHNlO30sIDUwKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV83MycpLmFwcGVuZChjb250ZW50cyk7aWYod2luZG93WydnZm9ybVJlZGlyZWN0J10pIHtnZm9ybVJlZGlyZWN0KCk7fX1qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzczLCBjdXJyZW50X3BhZ2VdKTt9ICk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4gaWYodHlwZW9mIGdmX2dsb2JhbCA9PSAndW5kZWZpbmVkJykgdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyfSwiYmFzZV91cmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXMiLCJudW1iZXJfZm9ybWF0cyI6W10sInNwaW5uZXJVcmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2ltYWdlc1wvc3Bpbm5lci5naWYifTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSA3Mykge30gfSApO2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGZpZWxkcywgaXNJbml0KXt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3MywgMV0pIH0gKTsgPC9zY3JpcHQ+
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzQnID48YSBpZD0nZ2ZfNzQnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzQnIGlkPSdnZm9ybV83NCcgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy95YWNodGluZy9zZWFseW9uLTM3LXBlcmZlY3QtaXNsYW5kLWhvcHBpbmctZmluZXNzZS8jZ2ZfNzQnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183NCcgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83NF8yJyAgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IEFyZSB5b3UgdGhlIGhvdXNlaG9sZCBzaG9wcGVyIChwZXJzb24gcmVzcG9uc2libGUgZm9yIHB1cmNoYXNlcyBpbiB5b3VyIGhvdXNlaG9sZCk/PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfcmFkaW8nPjx1bCBjbGFzcz0nZ2ZpZWxkX3JhZGlvJyBpZD0naW5wdXRfNzRfMic+PGxpIGNsYXNzPSdnY2hvaWNlXzc0XzJfMCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIzZWYxOGNkOScgIGlkPSdjaG9pY2VfNzRfMl8wJyAgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzRfMl8wJyBpZD0nbGFiZWxfNzRfMl8wJz5ZZXM8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc0XzJfMSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTJjOWIzYzM2ZScgIGlkPSdjaG9pY2VfNzRfMl8xJyAgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzRfMl8xJyBpZD0nbGFiZWxfNzRfMl8xJz5ObzwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF83NF8zJyAgY2xhc3M9J2dmaWVsZCBnZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lciBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzRfMycgPkNvbW1lbnRzPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0Xzc0XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzc0JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NCJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzc0Il09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc0Il0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NCJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83NCIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzQmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0wJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzQnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3NCcgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzQnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc0JyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc0JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc0JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc0JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzQnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzc0Jz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFqYXggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzQsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzc0JykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzQnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzc0JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NCcpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzQnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NCcpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzQnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc0JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzQsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzc0LCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzQnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NCcpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83NCcpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzc0XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc0J10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzQnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3NCwgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzQpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzQsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzUnID48YSBpZD0nZ2ZfNzUnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzUnIGlkPSdnZm9ybV83NScgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy95YWNodGluZy9zZWFseW9uLTM3LXBlcmZlY3QtaXNsYW5kLWhvcHBpbmctZmluZXNzZS8jZ2ZfNzUnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183NScgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83NV8yJyAgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IEluIHRoZSBsYXN0IDEyIG1vbnRocywgaG93IG1hbnkgdGltZXMgaGF2ZSB5b3UgdHJhdmVsbGVkIG92ZXJzZWFzPzwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3JhZGlvJz48dWwgY2xhc3M9J2dmaWVsZF9yYWRpbycgaWQ9J2lucHV0Xzc1XzInPjxsaSBjbGFzcz0nZ2Nob2ljZV83NV8yXzAnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyYzliM2MzNmUnICBpZD0nY2hvaWNlXzc1XzJfMCcgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc1XzJfMCcgaWQ9J2xhYmVsXzc1XzJfMCc+bm9uZTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzVfMl8xJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjgwNmQ3MGE5JyAgaWQ9J2Nob2ljZV83NV8yXzEnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83NV8yXzEnIGlkPSdsYWJlbF83NV8yXzEnPjEtMzwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzVfMl8yJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmNjNWNmMmZkJyAgaWQ9J2Nob2ljZV83NV8yXzInICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83NV8yXzInIGlkPSdsYWJlbF83NV8yXzInPjQtNjwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzVfMl8zJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjI3NzcwNjIzJyAgaWQ9J2Nob2ljZV83NV8yXzMnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83NV8yXzMnIGlkPSdsYWJlbF83NV8yXzMnPjctOTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzVfMl80Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmU2MTc0ODRlJyAgaWQ9J2Nob2ljZV83NV8yXzQnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83NV8yXzQnIGlkPSdsYWJlbF83NV8yXzQnPjEwIGFuZCBtb3JlIHRpbWVzPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzc1XzMnICBjbGFzcz0nZ2ZpZWxkIGdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF83NV8zJyA+Q29tbWVudHM8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF8zJyBpZD0naW5wdXRfNzVfMycgdHlwZT0ndGV4dCcgdmFsdWU9JycgLz48L2Rpdj48ZGl2IGNsYXNzPSdnZmllbGRfZGVzY3JpcHRpb24nPlRoaXMgZmllbGQgaXMgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMgYW5kIHNob3VsZCBiZSBsZWZ0IHVuY2hhbmdlZC48L2Rpdj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fNzUnIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyB2YWx1ZT0nU3VibWl0JyAgb25jbGljaz0naWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc1Il0pe3JldHVybiBmYWxzZTt9ICB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzUiXT10cnVlOyAgJyBvbmtleXByZXNzPSdpZiggZXZlbnQua2V5Q29kZSA9PSAxMyApeyBpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzUiXSl7cmV0dXJuIGZhbHNlO30gd2luZG93WyJnZl9zdWJtaXR0aW5nXzc1Il09dHJ1ZTsgIGpRdWVyeSgiI2dmb3JtXzc1IikudHJpZ2dlcigic3VibWl0IixbdHJ1ZV0pOyB9JyAvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9hamF4JyB2YWx1ZT0nZm9ybV9pZD03NSZhbXA7dGl0bGU9JmFtcDtkZXNjcmlwdGlvbj0mYW1wO3RhYmluZGV4PTAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2lzX3N1Ym1pdF83NScgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3N1Ym1pdCcgdmFsdWU9Jzc1JyAvPgogICAgICAgICAgICAKICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdW5pcXVlX2lkJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdzdGF0ZV83NScgdmFsdWU9J1d5SmJYU0lzSWpOaU5UQXpOell3WXpsaE1UQTJZalEwT1dJNFkyVTNObUU1TkRoa05EbGpJbDA9JyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzUnIGlkPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzUnIHZhbHVlPScwJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzUnIGlkPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzUnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9maWVsZF92YWx1ZXMnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlmcmFtZSBzdHlsZT0nZGlzcGxheTpub25lO3dpZHRoOjBweDtoZWlnaHQ6MHB4Oycgc3JjPSdhYm91dDpibGFuaycgbmFtZT0nZ2Zvcm1fYWpheF9mcmFtZV83NScgaWQ9J2dmb3JtX2FqYXhfZnJhbWVfNzUnPlRoaXMgaWZyYW1lIGNvbnRhaW5zIHRoZSBsb2dpYyByZXF1aXJlZCB0byBoYW5kbGUgQWpheCBwb3dlcmVkIEdyYXZpdHkgRm9ybXMuPC9pZnJhbWU+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtnZm9ybUluaXRTcGlubmVyKCA3NSwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeSgnI2dmb3JtX2FqYXhfZnJhbWVfNzUnKS5sb2FkKCBmdW5jdGlvbigpe3ZhciBjb250ZW50cyA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyonKS5odG1sKCk7dmFyIGlzX3Bvc3RiYWNrID0gY29udGVudHMuaW5kZXhPZignR0ZfQUpBWF9QT1NUQkFDSycpID49IDA7aWYoIWlzX3Bvc3RiYWNrKXtyZXR1cm47fXZhciBmb3JtX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fd3JhcHBlcl83NScpO3ZhciBpc19jb25maXJtYXRpb24gPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXJfNzUnKS5sZW5ndGggPiAwO3ZhciBpc19yZWRpcmVjdCA9IGNvbnRlbnRzLmluZGV4T2YoJ2dmb3JtUmVkaXJlY3QoKXsnKSA+PSAwO3ZhciBpc19mb3JtID0gZm9ybV9jb250ZW50Lmxlbmd0aCA+IDAgJiYgISBpc19yZWRpcmVjdCAmJiAhIGlzX2NvbmZpcm1hdGlvbjtpZihpc19mb3JtKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc1JykuaHRtbChmb3JtX2NvbnRlbnQuaHRtbCgpKTtpZihmb3JtX2NvbnRlbnQuaGFzQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NScpLmFkZENsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fSBlbHNlIHtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc1JykucmVtb3ZlQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NScpLm9mZnNldCgpLnRvcCk7IH0sIDUwICk7aWYod2luZG93WydnZm9ybUluaXREYXRlcGlja2VyJ10pIHtnZm9ybUluaXREYXRlcGlja2VyKCk7fWlmKHdpbmRvd1snZ2Zvcm1Jbml0UHJpY2VGaWVsZHMnXSkge2dmb3JtSW5pdFByaWNlRmllbGRzKCk7fXZhciBjdXJyZW50X3BhZ2UgPSBqUXVlcnkoJyNnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzUnKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCA3NSwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbNzUsIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183NSddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcuR0ZfQUpBWF9QT1NUQkFDSycpLmh0bWwoKTtpZighY29uZmlybWF0aW9uX2NvbnRlbnQpe2NvbmZpcm1hdGlvbl9jb250ZW50ID0gY29udGVudHM7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc1JykucmVwbGFjZVdpdGgoY29uZmlybWF0aW9uX2NvbnRlbnQpO2pRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmXzc1Jykub2Zmc2V0KCkudG9wKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbNzVdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzUnXSA9IGZhbHNlO30sIDUwKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV83NScpLmFwcGVuZChjb250ZW50cyk7aWYod2luZG93WydnZm9ybVJlZGlyZWN0J10pIHtnZm9ybVJlZGlyZWN0KCk7fX1qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzc1LCBjdXJyZW50X3BhZ2VdKTt9ICk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4gaWYodHlwZW9mIGdmX2dsb2JhbCA9PSAndW5kZWZpbmVkJykgdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyfSwiYmFzZV91cmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXMiLCJudW1iZXJfZm9ybWF0cyI6W10sInNwaW5uZXJVcmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2ltYWdlc1wvc3Bpbm5lci5naWYifTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSA3NSkge30gfSApO2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGZpZWxkcywgaXNJbml0KXt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3NSwgMV0pIH0gKTsgPC9zY3JpcHQ+
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzYnID48YSBpZD0nZ2ZfNzYnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzYnIGlkPSdnZm9ybV83NicgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy95YWNodGluZy9zZWFseW9uLTM3LXBlcmZlY3QtaXNsYW5kLWhvcHBpbmctZmluZXNzZS8jZ2ZfNzYnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183NicgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83Nl8yJyAgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IERvIHlvdSBvd24gb25lIG9yIG1vcmUgcHJvcGVydGllcz88L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyc+PHVsIGNsYXNzPSdnZmllbGRfcmFkaW8nIGlkPSdpbnB1dF83Nl8yJz48bGkgY2xhc3M9J2djaG9pY2VfNzZfMl8wJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmM5YjNjMzZlJyAgaWQ9J2Nob2ljZV83Nl8yXzAnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Nl8yXzAnIGlkPSdsYWJlbF83Nl8yXzAnPlllczwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzZfMl8xJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjgwNmQ3MGE5JyAgaWQ9J2Nob2ljZV83Nl8yXzEnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Nl8yXzEnIGlkPSdsYWJlbF83Nl8yXzEnPk5vPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzc2XzMnICBjbGFzcz0nZ2ZpZWxkIGdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF83Nl8zJyA+UGhvbmU8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF8zJyBpZD0naW5wdXRfNzZfMycgdHlwZT0ndGV4dCcgdmFsdWU9JycgLz48L2Rpdj48ZGl2IGNsYXNzPSdnZmllbGRfZGVzY3JpcHRpb24nPlRoaXMgZmllbGQgaXMgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMgYW5kIHNob3VsZCBiZSBsZWZ0IHVuY2hhbmdlZC48L2Rpdj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fNzYnIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyB2YWx1ZT0nU3VibWl0JyAgb25jbGljaz0naWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc2Il0pe3JldHVybiBmYWxzZTt9ICB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzYiXT10cnVlOyAgJyBvbmtleXByZXNzPSdpZiggZXZlbnQua2V5Q29kZSA9PSAxMyApeyBpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzYiXSl7cmV0dXJuIGZhbHNlO30gd2luZG93WyJnZl9zdWJtaXR0aW5nXzc2Il09dHJ1ZTsgIGpRdWVyeSgiI2dmb3JtXzc2IikudHJpZ2dlcigic3VibWl0IixbdHJ1ZV0pOyB9JyAvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9hamF4JyB2YWx1ZT0nZm9ybV9pZD03NiZhbXA7dGl0bGU9JmFtcDtkZXNjcmlwdGlvbj0mYW1wO3RhYmluZGV4PTAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2lzX3N1Ym1pdF83NicgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3N1Ym1pdCcgdmFsdWU9Jzc2JyAvPgogICAgICAgICAgICAKICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdW5pcXVlX2lkJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdzdGF0ZV83NicgdmFsdWU9J1d5SmJYU0lzSWpOaU5UQXpOell3WXpsaE1UQTJZalEwT1dJNFkyVTNObUU1TkRoa05EbGpJbDA9JyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzYnIGlkPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzYnIHZhbHVlPScwJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzYnIGlkPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzYnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9maWVsZF92YWx1ZXMnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlmcmFtZSBzdHlsZT0nZGlzcGxheTpub25lO3dpZHRoOjBweDtoZWlnaHQ6MHB4Oycgc3JjPSdhYm91dDpibGFuaycgbmFtZT0nZ2Zvcm1fYWpheF9mcmFtZV83NicgaWQ9J2dmb3JtX2FqYXhfZnJhbWVfNzYnPlRoaXMgaWZyYW1lIGNvbnRhaW5zIHRoZSBsb2dpYyByZXF1aXJlZCB0byBoYW5kbGUgQWpheCBwb3dlcmVkIEdyYXZpdHkgRm9ybXMuPC9pZnJhbWU+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtnZm9ybUluaXRTcGlubmVyKCA3NiwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeSgnI2dmb3JtX2FqYXhfZnJhbWVfNzYnKS5sb2FkKCBmdW5jdGlvbigpe3ZhciBjb250ZW50cyA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyonKS5odG1sKCk7dmFyIGlzX3Bvc3RiYWNrID0gY29udGVudHMuaW5kZXhPZignR0ZfQUpBWF9QT1NUQkFDSycpID49IDA7aWYoIWlzX3Bvc3RiYWNrKXtyZXR1cm47fXZhciBmb3JtX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fd3JhcHBlcl83NicpO3ZhciBpc19jb25maXJtYXRpb24gPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXJfNzYnKS5sZW5ndGggPiAwO3ZhciBpc19yZWRpcmVjdCA9IGNvbnRlbnRzLmluZGV4T2YoJ2dmb3JtUmVkaXJlY3QoKXsnKSA+PSAwO3ZhciBpc19mb3JtID0gZm9ybV9jb250ZW50Lmxlbmd0aCA+IDAgJiYgISBpc19yZWRpcmVjdCAmJiAhIGlzX2NvbmZpcm1hdGlvbjtpZihpc19mb3JtKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc2JykuaHRtbChmb3JtX2NvbnRlbnQuaHRtbCgpKTtpZihmb3JtX2NvbnRlbnQuaGFzQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NicpLmFkZENsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fSBlbHNlIHtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc2JykucmVtb3ZlQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NicpLm9mZnNldCgpLnRvcCk7IH0sIDUwICk7aWYod2luZG93WydnZm9ybUluaXREYXRlcGlja2VyJ10pIHtnZm9ybUluaXREYXRlcGlja2VyKCk7fWlmKHdpbmRvd1snZ2Zvcm1Jbml0UHJpY2VGaWVsZHMnXSkge2dmb3JtSW5pdFByaWNlRmllbGRzKCk7fXZhciBjdXJyZW50X3BhZ2UgPSBqUXVlcnkoJyNnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzYnKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCA3NiwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbNzYsIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183NiddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcuR0ZfQUpBWF9QT1NUQkFDSycpLmh0bWwoKTtpZighY29uZmlybWF0aW9uX2NvbnRlbnQpe2NvbmZpcm1hdGlvbl9jb250ZW50ID0gY29udGVudHM7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc2JykucmVwbGFjZVdpdGgoY29uZmlybWF0aW9uX2NvbnRlbnQpO2pRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmXzc2Jykub2Zmc2V0KCkudG9wKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbNzZdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzYnXSA9IGZhbHNlO30sIDUwKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV83NicpLmFwcGVuZChjb250ZW50cyk7aWYod2luZG93WydnZm9ybVJlZGlyZWN0J10pIHtnZm9ybVJlZGlyZWN0KCk7fX1qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzc2LCBjdXJyZW50X3BhZ2VdKTt9ICk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4gaWYodHlwZW9mIGdmX2dsb2JhbCA9PSAndW5kZWZpbmVkJykgdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyfSwiYmFzZV91cmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXMiLCJudW1iZXJfZm9ybWF0cyI6W10sInNwaW5uZXJVcmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2ltYWdlc1wvc3Bpbm5lci5naWYifTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSA3Nikge30gfSApO2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGZpZWxkcywgaXNJbml0KXt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3NiwgMV0pIH0gKTsgPC9zY3JpcHQ+
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzcnID48YSBpZD0nZ2ZfNzcnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzcnIGlkPSdnZm9ybV83NycgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy95YWNodGluZy9zZWFseW9uLTM3LXBlcmZlY3QtaXNsYW5kLWhvcHBpbmctZmluZXNzZS8jZ2ZfNzcnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183NycgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83N18yJyAgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IERvIHlvdSBvd24gb25lIG9yIG1vcmUgYm9hdHM/PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfcmFkaW8nPjx1bCBjbGFzcz0nZ2ZpZWxkX3JhZGlvJyBpZD0naW5wdXRfNzdfMic+PGxpIGNsYXNzPSdnY2hvaWNlXzc3XzJfMCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTJjOWIzYzM2ZScgIGlkPSdjaG9pY2VfNzdfMl8wJyAgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzdfMl8wJyBpZD0nbGFiZWxfNzdfMl8wJz5ZZXM8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc3XzJfMSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI4MDZkNzBhOScgIGlkPSdjaG9pY2VfNzdfMl8xJyAgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzdfMl8xJyBpZD0nbGFiZWxfNzdfMl8xJz5ObzwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF83N18zJyAgY2xhc3M9J2dmaWVsZCBnZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lciBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzdfMycgPkVtYWlsPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0Xzc3XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzc3JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NyJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzc3Il09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc3Il0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NyJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83NyIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzcmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0wJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzcnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3NycgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzcnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc3JyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc3JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc3JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc3JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzcnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzc3Jz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFqYXggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzcsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzc3JykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzcnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzc3JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NycpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzcnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NycpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzcnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc3JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzcsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzc3LCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzcnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NycpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83NycpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzc3XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc3J10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzcnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3NywgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzcpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzcsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzgnID48YSBpZD0nZ2ZfNzgnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzgnIGlkPSdnZm9ybV83OCcgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy95YWNodGluZy9zZWFseW9uLTM3LXBlcmZlY3QtaXNsYW5kLWhvcHBpbmctZmluZXNzZS8jZ2ZfNzgnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183OCcgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83OF8yJyAgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IEluIHRoZSBwYXN0IDMwIGRheXMsIGhvdyBvZnRlbiBkaWQgeW91IGRpbmUgb3V0IGF0IGEgcmVzdGF1cmFudD88L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyc+PHVsIGNsYXNzPSdnZmllbGRfcmFkaW8nIGlkPSdpbnB1dF83OF8yJz48bGkgY2xhc3M9J2djaG9pY2VfNzhfMl8wJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmM5YjNjMzZlJyAgaWQ9J2Nob2ljZV83OF8yXzAnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83OF8yXzAnIGlkPSdsYWJlbF83OF8yXzAnPk5ldmVyPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OF8yXzEnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyODA2ZDcwYTknICBpZD0nY2hvaWNlXzc4XzJfMScgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc4XzJfMScgaWQ9J2xhYmVsXzc4XzJfMSc+MS0zIHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OF8yXzInPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNDNhMTcyNmEnICBpZD0nY2hvaWNlXzc4XzJfMicgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc4XzJfMicgaWQ9J2xhYmVsXzc4XzJfMic+NC02IHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OF8yXzMnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNGZkMjU0MjEnICBpZD0nY2hvaWNlXzc4XzJfMycgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc4XzJfMycgaWQ9J2xhYmVsXzc4XzJfMyc+Ny05IHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OF8yXzQnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyMzJjMWQ1YmUnICBpZD0nY2hvaWNlXzc4XzJfNCcgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc4XzJfNCcgaWQ9J2xhYmVsXzc4XzJfNCc+MTAgb3IgbW9yZSB0aW1lczwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF83OF8zJyAgY2xhc3M9J2dmaWVsZCBnZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lciBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzhfMycgPlBob25lPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0Xzc4XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzc4JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183OCJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzc4Il09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc4Il0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183OCJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83OCIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzgmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0wJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzgnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3OCcgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzgnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc4JyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc4JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc4JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc4JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzgnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzc4Jz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFqYXggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzgsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzc4JykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzgnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzc4JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OCcpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzgnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OCcpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzgnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc4JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzgsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzc4LCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzgnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OCcpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83OCcpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzc4XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc4J10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzgnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3OCwgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzgpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzgsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzknID48YSBpZD0nZ2ZfNzknIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzknIGlkPSdnZm9ybV83OScgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy95YWNodGluZy9zZWFseW9uLTM3LXBlcmZlY3QtaXNsYW5kLWhvcHBpbmctZmluZXNzZS8jZ2ZfNzknPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183OScgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83OV8yJyAgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIGdzdXJ2ZXktc3VydmV5LWZpZWxkICcgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPlJlYWRlciBTdXJ2ZXk6IEluIHRoZSBwYXN0IDMwIGRheXMsIGhvdyBvZnRlbiBkaWQgeW91IGVudGVydGFpbiBndWVzdHMgYXQgaG9tZT88L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyc+PHVsIGNsYXNzPSdnZmllbGRfcmFkaW8nIGlkPSdpbnB1dF83OV8yJz48bGkgY2xhc3M9J2djaG9pY2VfNzlfMl8wJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmM5YjNjMzZlJyAgaWQ9J2Nob2ljZV83OV8yXzAnICAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83OV8yXzAnIGlkPSdsYWJlbF83OV8yXzAnPk5ldmVyPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OV8yXzEnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyODA2ZDcwYTknICBpZD0nY2hvaWNlXzc5XzJfMScgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc5XzJfMScgaWQ9J2xhYmVsXzc5XzJfMSc+MS0zIHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OV8yXzInPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNDNhMTcyNmEnICBpZD0nY2hvaWNlXzc5XzJfMicgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc5XzJfMicgaWQ9J2xhYmVsXzc5XzJfMic+NC02IHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OV8yXzMnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyNGZkMjU0MjEnICBpZD0nY2hvaWNlXzc5XzJfMycgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc5XzJfMycgaWQ9J2xhYmVsXzc5XzJfMyc+Ny05IHRpbWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83OV8yXzQnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyMzJjMWQ1YmUnICBpZD0nY2hvaWNlXzc5XzJfNCcgICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc5XzJfNCcgaWQ9J2xhYmVsXzc5XzJfNCc+MTAgb3IgbW9yZSB0aW1lczwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF83OV8zJyAgY2xhc3M9J2dmaWVsZCBnZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lciBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzlfMycgPk5hbWU8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF8zJyBpZD0naW5wdXRfNzlfMycgdHlwZT0ndGV4dCcgdmFsdWU9JycgLz48L2Rpdj48ZGl2IGNsYXNzPSdnZmllbGRfZGVzY3JpcHRpb24nPlRoaXMgZmllbGQgaXMgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMgYW5kIHNob3VsZCBiZSBsZWZ0IHVuY2hhbmdlZC48L2Rpdj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fNzknIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyB2YWx1ZT0nU3VibWl0JyAgb25jbGljaz0naWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc5Il0pe3JldHVybiBmYWxzZTt9ICB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzkiXT10cnVlOyAgJyBvbmtleXByZXNzPSdpZiggZXZlbnQua2V5Q29kZSA9PSAxMyApeyBpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzkiXSl7cmV0dXJuIGZhbHNlO30gd2luZG93WyJnZl9zdWJtaXR0aW5nXzc5Il09dHJ1ZTsgIGpRdWVyeSgiI2dmb3JtXzc5IikudHJpZ2dlcigic3VibWl0IixbdHJ1ZV0pOyB9JyAvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9hamF4JyB2YWx1ZT0nZm9ybV9pZD03OSZhbXA7dGl0bGU9JmFtcDtkZXNjcmlwdGlvbj0mYW1wO3RhYmluZGV4PTAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2lzX3N1Ym1pdF83OScgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3N1Ym1pdCcgdmFsdWU9Jzc5JyAvPgogICAgICAgICAgICAKICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdW5pcXVlX2lkJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdzdGF0ZV83OScgdmFsdWU9J1d5SmJYU0lzSWpOaU5UQXpOell3WXpsaE1UQTJZalEwT1dJNFkyVTNObUU1TkRoa05EbGpJbDA9JyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzknIGlkPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzknIHZhbHVlPScwJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzknIGlkPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzknIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9maWVsZF92YWx1ZXMnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlmcmFtZSBzdHlsZT0nZGlzcGxheTpub25lO3dpZHRoOjBweDtoZWlnaHQ6MHB4Oycgc3JjPSdhYm91dDpibGFuaycgbmFtZT0nZ2Zvcm1fYWpheF9mcmFtZV83OScgaWQ9J2dmb3JtX2FqYXhfZnJhbWVfNzknPlRoaXMgaWZyYW1lIGNvbnRhaW5zIHRoZSBsb2dpYyByZXF1aXJlZCB0byBoYW5kbGUgQWpheCBwb3dlcmVkIEdyYXZpdHkgRm9ybXMuPC9pZnJhbWU+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtnZm9ybUluaXRTcGlubmVyKCA3OSwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeSgnI2dmb3JtX2FqYXhfZnJhbWVfNzknKS5sb2FkKCBmdW5jdGlvbigpe3ZhciBjb250ZW50cyA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyonKS5odG1sKCk7dmFyIGlzX3Bvc3RiYWNrID0gY29udGVudHMuaW5kZXhPZignR0ZfQUpBWF9QT1NUQkFDSycpID49IDA7aWYoIWlzX3Bvc3RiYWNrKXtyZXR1cm47fXZhciBmb3JtX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fd3JhcHBlcl83OScpO3ZhciBpc19jb25maXJtYXRpb24gPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXJfNzknKS5sZW5ndGggPiAwO3ZhciBpc19yZWRpcmVjdCA9IGNvbnRlbnRzLmluZGV4T2YoJ2dmb3JtUmVkaXJlY3QoKXsnKSA+PSAwO3ZhciBpc19mb3JtID0gZm9ybV9jb250ZW50Lmxlbmd0aCA+IDAgJiYgISBpc19yZWRpcmVjdCAmJiAhIGlzX2NvbmZpcm1hdGlvbjtpZihpc19mb3JtKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc5JykuaHRtbChmb3JtX2NvbnRlbnQuaHRtbCgpKTtpZihmb3JtX2NvbnRlbnQuaGFzQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OScpLmFkZENsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fSBlbHNlIHtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc5JykucmVtb3ZlQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OScpLm9mZnNldCgpLnRvcCk7IH0sIDUwICk7aWYod2luZG93WydnZm9ybUluaXREYXRlcGlja2VyJ10pIHtnZm9ybUluaXREYXRlcGlja2VyKCk7fWlmKHdpbmRvd1snZ2Zvcm1Jbml0UHJpY2VGaWVsZHMnXSkge2dmb3JtSW5pdFByaWNlRmllbGRzKCk7fXZhciBjdXJyZW50X3BhZ2UgPSBqUXVlcnkoJyNnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzknKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCA3OSwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbNzksIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183OSddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcuR0ZfQUpBWF9QT1NUQkFDSycpLmh0bWwoKTtpZighY29uZmlybWF0aW9uX2NvbnRlbnQpe2NvbmZpcm1hdGlvbl9jb250ZW50ID0gY29udGVudHM7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc5JykucmVwbGFjZVdpdGgoY29uZmlybWF0aW9uX2NvbnRlbnQpO2pRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmXzc5Jykub2Zmc2V0KCkudG9wKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbNzldKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzknXSA9IGZhbHNlO30sIDUwKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV83OScpLmFwcGVuZChjb250ZW50cyk7aWYod2luZG93WydnZm9ybVJlZGlyZWN0J10pIHtnZm9ybVJlZGlyZWN0KCk7fX1qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzc5LCBjdXJyZW50X3BhZ2VdKTt9ICk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4gaWYodHlwZW9mIGdmX2dsb2JhbCA9PSAndW5kZWZpbmVkJykgdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyfSwiYmFzZV91cmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXMiLCJudW1iZXJfZm9ybWF0cyI6W10sInNwaW5uZXJVcmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2ltYWdlc1wvc3Bpbm5lci5naWYifTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSA3OSkge30gfSApO2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGZpZWxkcywgaXNJbml0KXt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3OSwgMV0pIH0gKTsgPC9zY3JpcHQ+