Image Image Image Image Image Image Image Image Image Image
Scroll to top

Top

2 Comments

Designing the Next Generation vSphere Storage Systems

Designing the Next Generation vSphere Storage Systems
David Davis, vExpert, VCP/VCAP, CCIE
  • On March 6, 2014

Today, most enterprises are using traditional storage arrays (NAS or SAN) with spinning disk from a big name storage company like EMC or NetApp. In fact, I would bet that the vast majority of those companies have even bought new storage arrays, of the same type, from the same big name storage companies in the past year.

Unfortunately, too many of those enterprises (and even too many of the VARs) have never taken the time to learn about the next generation storage solutions that are now available. These storage solutions all have one thing in common – they use flash to offer impressive performance. However, not all of them are completely redesigned.

Today, I visited Coho Data and listened to Founder and Chief Architect, Andy Warfield speak (video is below). Andy was one of the authors of the Xen Server hypervisor, specifically related to storage virtualization. He’s brought that knowledge of virtualization and storage to Coho Data where they have scratched all past storage array designs and started fresh.

(the complete list of Coho Data videos from Virtualization Field Day 3 are located here)

What Does Coho Data Offer?

Coho Data started off looking to fill the storage need for many web companies who started off using public clouds, like Amazon Web Services (AWS), and where their usage and bills started to skyrocket. Those companies then looked to create their own hosted datacenter but designing, planing, and managing enterprise storage was foreign to them. They especially weren’t used to estimating and planning their storage on a 3-5 year cycle, as most enterprises do. They had consumed storage “in the cloud” as an infinite and fast resource where you pay for consumption. Coho wanted to build an on-demand scaleable storage system for the enterprise that like you would consume in a cloud environments.

Here are some quotes from Andy when asked what Coho Data is:

“we sell performance-dense, cost-effective and completely scalable storage”

“we build software and package it on commodity hardware”

“you grow the storage as you need it”

Coming from the virtualization side of things, their innovative and completely re-designed storage solution, which GA’ed today, has become a fantastic solution for vSphere storage.

How Does Coho Data Work?

Coho Data is both a storage and network virtualization solution and, thus, is a “converged” offering – but not a convergence of compute and storage. Coho says that the convergence of storage and networking make much more sense because of the raw performance and dynamic flexibility it can provide.

Today, Coho serves up NFS to vSphere hosts off of the Supermicro 2u Twin and Arista SDN switch that they use as their hardware platform. The hosts see the array as a single NFS datastore. The NFS requests are intelligently routed by the software in the switch to the right disk array to serve them. Each array has 4 x 10GB ports and, because coho designed their solution for performance, they can achieve with 2 x 2U units plus a 1U switch (giving you 20TB usable and 3.2 TB PCIe flash over 40 GBbit/s of access bandwidth) = 180K IOPS.

With 4U of storage and a 1U switch, (giving you 80TB of usable storage, 12.8TB PCIe flash, and 160Gbit/s of bandwidth) up to 720K IOPS.

Why Hybrid and Not All-Flash?

As Andy said, any solution that uses flash has a great struggle in trying to find a way to use ALL of the performance of that flash and ensure that you get the most out of your investment. Too many solutions allow you to put SSD into a traditional drive slot but then cannot take advantage of that performance.

Coho has run extensive tests. What they found is that an Intel PCIe flash costs $5/GB which provides $.08/IOP (given an 800GB flash, providing 50K IOPS, at 0.1 latency, and costing $4K). On the other side, a standard 3TB drive costs $.08/GB which provides $1.67/IOP (given 150 IOPS, 10ms latency, at a $250 price). Thus, using all-flash for every application is tough to justify.

coho-flash-vs-disk

Then their question was, should the flash be in the server or be connected across the network? Also, what should the queue depth be? What they found was that with the network only adding 40 microseconds of RTT latency, unless you are running high frequency trading (HFT), they having flash across the network is not a problem.

coho-data-predictable-performnace

As for the queue depth, if you go direct to PCIe flash with a queue depth of 1, you’ll have 133 microseconds of latency and be able to push 6,708 IOPS. If you push the queue depth up to 32, you’ll increase latency to 235 microseconds but be able to push 134,538 IOPS to the disk – WOW!

They did all of this testing to try to provide the most value and performance possible over a traditional array-

coho-data-value

What Cohodata does it to combine that high performance flash with poor performance spinning disk and serve it up through a network layer using NFS. It’s connected via an Arista SDN switch that supports open flow so that the NFS requests can be programmatically sent to the right storage.

For more information checkout the following-

And, of course, the Coho Data homepage

Comments

Submit a Comment

Do you want massive traffic?
Dignissim enim porta aliquam nisi pellentesque. Pulvinar rhoncus magnis turpis sit odio pid pulvinar mattis integer aliquam!
  • Goblinus globalus fantumo tubus dia montes
  • Scelerisque cursus dignissim lopatico vutario
  • Montes vutario lacus quis preambul den lacus
  • Leftomato denitro oculus softam lorum quis
  • Spiratio dodenus christmas gulleria tix digit
  • Dualo fitemus lacus quis preambul pat turtulis
* we never share your e-mail with third parties.
COMPANY NAME
221, Mount Olimpus, Rheasilvia, Mars,
Solar System, Milky Way Galaxy
+1 (999) 123-45-67
Thank You. We will contact you as soon as possible.
Do you want more traffic?
Dignissim enim porta aliquam nisi pellentesque. Pulvinar rhoncus magnis turpis sit odio pid pulvinar mattis integer aliquam!
  • Goblinus globalus fantumo tubus dia montes
  • Scelerisque cursus dignissim lopatico vutario
  • Montes vutario lacus quis preambul den lacus
  • Leftomato denitro oculus softam lorum quis
  • Spiratio dodenus christmas gulleria tix digit
  • Dualo fitemus lacus quis preambul pat turtulis
  • Scelerisque cursus dignissim lopatico vutario
  • Montes vutario lacus quis preambul den lacus
SUBSCRIBE TO OUR NEWSLETTER AND START INCREASING YOUR PROFITS NOW!
* we never share your e-mail with third parties.
SUBSCRIBE TO NEWSLETTER
Turpis dis amet adipiscing hac montes odio ac velit? Porta, non rhoncus vut, vel, et adipiscing magna pulvinar adipiscing est adipiscing urna. Dignissim rhoncus scelerisque pulvinar?
SUBSCRIBE TO OUR NEWSLETTER
PGlmcmFtZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzcmM9Imh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvajhsU2NITzJtTTAiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+
All rights reserved © Company Name, 2014
CONTACT US
COMPANY NAME
221, Mount Olimpus, Rheasilvia, Mars
Solar System, Milky Way Galaxy
+1 (999) 999-99-99
Thank You. We will contact you as soon as possible.
Macbook Pro
* Intel Core i7 (3.8GHz, 6MB cache)
* Retina Display (2880 x 1880 px)
* NVIDIA GeForce GT 750M (Iris)
* 802.11ac Wi-Fi and Bluetooth 4.0
* Thunderbolt 2 (up to 20Gb/s)
* Faster All-Flash Storage (X1)
* Long Lasting Battery (9 hours)
Ivan Churakov, developer
Tel.:
Fax:
E-mail:
Website:
+1 (800) 800-1234, +1 (800) 123-4567
+1 (800) 800-1234 (ext. 1234)
ivan.churakov@domain.tld
http://halfdata.com/
My CodeCanyon Portfolio
Banner Manager Pro - CodeCanyon Item for Sale
Coming Soon and Maintenance Mode - CodeCanyon Item for Sale
Code Shop - CodeCanyon Item for Sale
Keyword Tooltips - CodeCanyon Item for Sale
Subscribe & Download - CodeCanyon Item for Sale
"A placerat mauris placerat et penatibus porta aliquet sed dapibus, pulvinar urna cum aliquet arcu lectus sed tortor aliquet sed dapibus."
John Doe, Astronomer
Bubble Company Inc. © 2011-2014
SUBSCRIBE TO NEWSLETTER
PGlmcmFtZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzcmM9Ii8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL3NCV1BDdmR2OEJrP2F1dG9wbGF5PTEiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+
ENJOY AURORA BOREALIS
SUBSCRIBE TO NEWSLETTER
INTERGALACTIC COMPANY
"Ridiculus enim cras placerat facilisis amet lorem ipsum scelerisque sagittis lorem tis!"
Jojn Doe, CEO
Tel.: +1 (800) 123-45-67, +1 (800) 123-45-68
Fax: +1 (800) 123-45-69 (any time, 24/7/365)
E-mail: info@intergalactic.company
Website: http://www.intergalactic.company
Address:
221, Mount Olimpus,
Rheasilvia region, Mars,
Solar System, Milky Way Galaxy
Do you want more traffic?
Dignissim enim porta aliquam nisi pellentesque. Pulvinar rhoncus magnis turpis sit odio pid pulvinar mattis integer aliquam!
  • Goblinus globalus fantumo tubus dia
  • Scelerisque cursus dignissim lopatico
  • Montes vutario lacus quis preambul
  • Leftomato denitro oculus softam lorum
  • Spiratio dodenus christmas gulleria tix
  • Dualo fitemus lacus quis preambul bela
PGlmcmFtZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzcmM9Imh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvajhsU2NITzJtTTAiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+
* we never share your details with third parties.
Do you want massive traffic?
Scelerisque augue ac hac, aliquet, nascetur turpis. Augue diam phasellus odio lorem integer, aliquam aliquam sociis nisi adipiscing hacac.
  • Goblinus globalus fantumo tubus dia
  • Scelerisque cursus dignissim lopatico
  • Montes vutario lacus quis preambul
  • Leftomato denitro oculus softam lorum
  • Spiratio dodenus christmas gulleria tix
  • Dualo fitemus lacus quis preambul bela
PGlmcmFtZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzcmM9Imh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvajhsU2NITzJtTTAiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+
* we never share your details with third parties.
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfMjMnIHN0eWxlPSdkaXNwbGF5Om5vbmUnPjxhIGlkPSdnZl8yMycgbmFtZT0nZ2ZfMjMnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfMjMnIGlkPSdnZm9ybV8yMycgIGFjdGlvbj0nL2Rlc2lnbmluZy1uZXh0LWdlbmVyYXRpb24tdnNwaGVyZS1zdG9yYWdlLXN5c3RlbXMvI2dmXzIzJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfMjMnIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0nZmllbGRfMjNfMScgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM18xJyA+Rmlyc3QgTmFtZTxzcGFuIGNsYXNzPSdnZmllbGRfcmVxdWlyZWQnPio8L3NwYW4+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMScgaWQ9J2lucHV0XzIzXzEnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nICB0YWJpbmRleD0nMScgICAvPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yM18yJyBjbGFzcz0nZ2ZpZWxkIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzIzXzInID5MYXN0IE5hbWU8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PGlucHV0IG5hbWU9J2lucHV0XzInIGlkPSdpbnB1dF8yM18yJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgdGFiaW5kZXg9JzInICAgLz48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfMycgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM18zJyA+RW1haWw8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0XzIzXzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nIHRhYmluZGV4PSczJyAgIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yM181JyBjbGFzcz0nZ2ZpZWxkIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzIzXzUnID5Db3VudHJ5PHNwYW4gY2xhc3M9J2dmaWVsZF9yZXF1aXJlZCc+Kjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxzZWxlY3QgbmFtZT0naW5wdXRfNScgaWQ9J2lucHV0XzIzXzUnIG9uY2hhbmdlPSdnZl9hcHBseV9ydWxlcygyMyxbNF0pOycgY2xhc3M9J21lZGl1bSBnZmllbGRfc2VsZWN0JyB0YWJpbmRleD0nNCcgPjxvcHRpb24gdmFsdWU9J1VuaXRlZCBTdGF0ZXMnIHNlbGVjdGVkPSdzZWxlY3RlZCc+VW5pdGVkIFN0YXRlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NhbmFkYScgPkNhbmFkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1VuaXRlZCBLaW5nZG9tJyA+VW5pdGVkIEtpbmdkb208L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBdXN0cmFsaWEnID5BdXN0cmFsaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBZmdoYW5pc3RhbicgPkFmZ2hhbmlzdGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQWxiYW5pYScgPkFsYmFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBbGdlcmlhJyA+QWxnZXJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FtZXJpY2FuIFNhbW9hJyA+QW1lcmljYW4gU2Ftb2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBbmRvcnJhJyA+QW5kb3JyYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FuZ29sYScgPkFuZ29sYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FudGlndWEgYW5kIEJhcmJ1ZGEnID5BbnRpZ3VhIGFuZCBCYXJidWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJnZW50aW5hJyA+QXJnZW50aW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJtZW5pYScgPkFybWVuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBdXN0cmlhJyA+QXVzdHJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0F6ZXJiYWlqYW4nID5BemVyYmFpamFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmFoYW1hcycgPkJhaGFtYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCYWhyYWluJyA+QmFocmFpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JhbmdsYWRlc2gnID5CYW5nbGFkZXNoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmFyYmFkb3MnID5CYXJiYWRvczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JlbGFydXMnID5CZWxhcnVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmVsZ2l1bScgPkJlbGdpdW08L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCZWxpemUnID5CZWxpemU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCZW5pbicgPkJlbmluPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmVybXVkYScgPkJlcm11ZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCaHV0YW4nID5CaHV0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCb2xpdmlhJyA+Qm9saXZpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnID5Cb3NuaWEgYW5kIEhlcnplZ292aW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQm90c3dhbmEnID5Cb3Rzd2FuYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JyYXppbCcgPkJyYXppbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JydW5laScgPkJydW5laTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0J1bGdhcmlhJyA+QnVsZ2FyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCdXJraW5hIEZhc28nID5CdXJraW5hIEZhc288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCdXJ1bmRpJyA+QnVydW5kaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NhbWJvZGlhJyA+Q2FtYm9kaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDYW1lcm9vbicgPkNhbWVyb29uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2FwZSBWZXJkZScgPkNhcGUgVmVyZGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDYXltYW4gSXNsYW5kcycgPkNheW1hbiBJc2xhbmRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJyA+Q2VudHJhbCBBZnJpY2FuIFJlcHVibGljPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2hhZCcgPkNoYWQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDaGlsZScgPkNoaWxlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2hpbmEnID5DaGluYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NvbG9tYmlhJyA+Q29sb21iaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDb21vcm9zJyA+Q29tb3Jvczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZScgPkNvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NvbmdvLCBSZXB1YmxpYyBvZiB0aGUnID5Db25nbywgUmVwdWJsaWMgb2YgdGhlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ29zdGEgUmljYScgPkNvc3RhIFJpY2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDJm9jaXJjO3RlIGQmIzAzOTtJdm9pcmUnID5DJm9jaXJjO3RlIGQmIzAzOTtJdm9pcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDcm9hdGlhJyA+Q3JvYXRpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0N1YmEnID5DdWJhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ3lwcnVzJyA+Q3lwcnVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ3plY2ggUmVwdWJsaWMnID5DemVjaCBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Rlbm1hcmsnID5EZW5tYXJrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRGppYm91dGknID5Eamlib3V0aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0RvbWluaWNhJyA+RG9taW5pY2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdEb21pbmljYW4gUmVwdWJsaWMnID5Eb21pbmljYW4gUmVwdWJsaWM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFYXN0IFRpbW9yJyA+RWFzdCBUaW1vcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0VjdWFkb3InID5FY3VhZG9yPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRWd5cHQnID5FZ3lwdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0VsIFNhbHZhZG9yJyA+RWwgU2FsdmFkb3I8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFcXVhdG9yaWFsIEd1aW5lYScgPkVxdWF0b3JpYWwgR3VpbmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRXJpdHJlYScgPkVyaXRyZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFc3RvbmlhJyA+RXN0b25pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0V0aGlvcGlhJyA+RXRoaW9waWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdGaWppJyA+RmlqaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0ZpbmxhbmQnID5GaW5sYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRnJhbmNlJyA+RnJhbmNlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR2Fib24nID5HYWJvbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dhbWJpYScgPkdhbWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dlb3JnaWEnID5HZW9yZ2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR2VybWFueScgPkdlcm1hbnk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHaGFuYScgPkdoYW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR3JlZWNlJyA+R3JlZWNlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR3JlZW5sYW5kJyA+R3JlZW5sYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR3JlbmFkYScgPkdyZW5hZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHdWFtJyA+R3VhbTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0d1YXRlbWFsYScgPkd1YXRlbWFsYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0d1aW5lYScgPkd1aW5lYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0d1aW5lYS1CaXNzYXUnID5HdWluZWEtQmlzc2F1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR3V5YW5hJyA+R3V5YW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSGFpdGknID5IYWl0aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0hvbmR1cmFzJyA+SG9uZHVyYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdIb25nIEtvbmcnID5Ib25nIEtvbmc8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdIdW5nYXJ5JyA+SHVuZ2FyeTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0ljZWxhbmQnID5JY2VsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSW5kaWEnID5JbmRpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0luZG9uZXNpYScgPkluZG9uZXNpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0lyYW4nID5JcmFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSXJhcScgPklyYXE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJcmVsYW5kJyA+SXJlbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0lzcmFlbCcgPklzcmFlbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0l0YWx5JyA+SXRhbHk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdKYW1haWNhJyA+SmFtYWljYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0phcGFuJyA+SmFwYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdKb3JkYW4nID5Kb3JkYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLYXpha2hzdGFuJyA+S2F6YWtoc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0tlbnlhJyA+S2VueWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLaXJpYmF0aScgPktpcmliYXRpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTm9ydGggS29yZWEnID5Ob3J0aCBLb3JlYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NvdXRoIEtvcmVhJyA+U291dGggS29yZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLdXdhaXQnID5LdXdhaXQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLeXJneXpzdGFuJyA+S3lyZ3l6c3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xhb3MnID5MYW9zPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTGF0dmlhJyA+TGF0dmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTGViYW5vbicgPkxlYmFub248L29wdGlvbj48b3B0aW9uIHZhbHVlPSdMZXNvdGhvJyA+TGVzb3Robzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xpYmVyaWEnID5MaWJlcmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTGlieWEnID5MaWJ5YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xpZWNodGVuc3RlaW4nID5MaWVjaHRlbnN0ZWluPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTGl0aHVhbmlhJyA+TGl0aHVhbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTHV4ZW1ib3VyZycgPkx1eGVtYm91cmc8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWNlZG9uaWEnID5NYWNlZG9uaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWRhZ2FzY2FyJyA+TWFkYWdhc2Nhcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hbGF3aScgPk1hbGF3aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hbGF5c2lhJyA+TWFsYXlzaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWxkaXZlcycgPk1hbGRpdmVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFsaScgPk1hbGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWx0YScgPk1hbHRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFyc2hhbGwgSXNsYW5kcycgPk1hcnNoYWxsIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYXVyaXRhbmlhJyA+TWF1cml0YW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hdXJpdGl1cycgPk1hdXJpdGl1czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01leGljbycgPk1leGljbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01pY3JvbmVzaWEnID5NaWNyb25lc2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9sZG92YScgPk1vbGRvdmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNb25hY28nID5Nb25hY288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNb25nb2xpYScgPk1vbmdvbGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9udGVuZWdybycgPk1vbnRlbmVncm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNb3JvY2NvJyA+TW9yb2Njbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01vemFtYmlxdWUnID5Nb3phbWJpcXVlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTXlhbm1hcicgPk15YW5tYXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOYW1pYmlhJyA+TmFtaWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05hdXJ1JyA+TmF1cnU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOZXBhbCcgPk5lcGFsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmV0aGVybGFuZHMnID5OZXRoZXJsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldyBaZWFsYW5kJyA+TmV3IFplYWxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOaWNhcmFndWEnID5OaWNhcmFndWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOaWdlcicgPk5pZ2VyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmlnZXJpYScgPk5pZ2VyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOb3J3YXknID5Ob3J3YXk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMnID5Ob3J0aGVybiBNYXJpYW5hIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdPbWFuJyA+T21hbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1Bha2lzdGFuJyA+UGFraXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQYWxhdScgPlBhbGF1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGFsZXN0aW5lJyA+UGFsZXN0aW5lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGFuYW1hJyA+UGFuYW1hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGFwdWEgTmV3IEd1aW5lYScgPlBhcHVhIE5ldyBHdWluZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQYXJhZ3VheScgPlBhcmFndWF5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGVydScgPlBlcnU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQaGlsaXBwaW5lcycgPlBoaWxpcHBpbmVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUG9sYW5kJyA+UG9sYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUG9ydHVnYWwnID5Qb3J0dWdhbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1B1ZXJ0byBSaWNvJyA+UHVlcnRvIFJpY288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdRYXRhcicgPlFhdGFyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUm9tYW5pYScgPlJvbWFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdSdXNzaWEnID5SdXNzaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdSd2FuZGEnID5Sd2FuZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYWludCBLaXR0cyBhbmQgTmV2aXMnID5TYWludCBLaXR0cyBhbmQgTmV2aXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYWludCBMdWNpYScgPlNhaW50IEx1Y2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXMnID5TYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NhbW9hJyA+U2Ftb2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYW4gTWFyaW5vJyA+U2FuIE1hcmlubzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NhbyBUb21lIGFuZCBQcmluY2lwZScgPlNhbyBUb21lIGFuZCBQcmluY2lwZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NhdWRpIEFyYWJpYScgPlNhdWRpIEFyYWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NlbmVnYWwnID5TZW5lZ2FsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2VyYmlhIGFuZCBNb250ZW5lZ3JvJyA+U2VyYmlhIGFuZCBNb250ZW5lZ3JvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2V5Y2hlbGxlcycgPlNleWNoZWxsZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTaWVycmEgTGVvbmUnID5TaWVycmEgTGVvbmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTaW5nYXBvcmUnID5TaW5nYXBvcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTbG92YWtpYScgPlNsb3Zha2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2xvdmVuaWEnID5TbG92ZW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NvbG9tb24gSXNsYW5kcycgPlNvbG9tb24gSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NvbWFsaWEnID5Tb21hbGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU291dGggQWZyaWNhJyA+U291dGggQWZyaWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3BhaW4nID5TcGFpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NyaSBMYW5rYScgPlNyaSBMYW5rYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1N1ZGFuJyA+U3VkYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTdWRhbiwgU291dGgnID5TdWRhbiwgU291dGg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTdXJpbmFtZScgPlN1cmluYW1lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3dhemlsYW5kJyA+U3dhemlsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3dlZGVuJyA+U3dlZGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3dpdHplcmxhbmQnID5Td2l0emVybGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1N5cmlhJyA+U3lyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUYWl3YW4nID5UYWl3YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUYWppa2lzdGFuJyA+VGFqaWtpc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1RhbnphbmlhJyA+VGFuemFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUaGFpbGFuZCcgPlRoYWlsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVG9nbycgPlRvZ288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUb25nYScgPlRvbmdhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVHJpbmlkYWQgYW5kIFRvYmFnbycgPlRyaW5pZGFkIGFuZCBUb2JhZ288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUdW5pc2lhJyA+VHVuaXNpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1R1cmtleScgPlR1cmtleTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1R1cmttZW5pc3RhbicgPlR1cmttZW5pc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1R1dmFsdScgPlR1dmFsdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1VnYW5kYScgPlVnYW5kYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1VrcmFpbmUnID5Va3JhaW5lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVW5pdGVkIEFyYWIgRW1pcmF0ZXMnID5Vbml0ZWQgQXJhYiBFbWlyYXRlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1VydWd1YXknID5VcnVndWF5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVXpiZWtpc3RhbicgPlV6YmVraXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWYW51YXR1JyA+VmFudWF0dTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ZhdGljYW4gQ2l0eScgPlZhdGljYW4gQ2l0eTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ZlbmV6dWVsYScgPlZlbmV6dWVsYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ZpZXRuYW0nID5WaWV0bmFtPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVmlyZ2luIElzbGFuZHMsIEJyaXRpc2gnID5WaXJnaW4gSXNsYW5kcywgQnJpdGlzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ZpcmdpbiBJc2xhbmRzLCBVLlMuJyA+VmlyZ2luIElzbGFuZHMsIFUuUy48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdZZW1lbicgPlllbWVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nWmFtYmlhJyA+WmFtYmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nWmltYmFid2UnID5aaW1iYWJ3ZTwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yM180JyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfNCcgPlN0YXRlPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48c2VsZWN0IG5hbWU9J2lucHV0XzQnIGlkPSdpbnB1dF8yM180JyAgY2xhc3M9J21lZGl1bSBnZmllbGRfc2VsZWN0JyB0YWJpbmRleD0nNScgPjxvcHRpb24gdmFsdWU9J0FsYWJhbWEnID5BbGFiYW1hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQWxhc2thJyA+QWxhc2thPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJpem9uYScgPkFyaXpvbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBcmthbnNhcycgPkFya2Fuc2FzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2FsaWZvcm5pYScgPkNhbGlmb3JuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDb2xvcmFkbycgPkNvbG9yYWRvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ29ubmVjdGljdXQnID5Db25uZWN0aWN1dDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0RlbGF3YXJlJyA+RGVsYXdhcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdEaXN0cmljdCBvZiBDb2x1bWJpYScgPkRpc3RyaWN0IG9mIENvbHVtYmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRmxvcmlkYScgPkZsb3JpZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHZW9yZ2lhJyA+R2VvcmdpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0hhd2FpaScgPkhhd2FpaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0lkYWhvJyA+SWRhaG88L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJbGxpbm9pcycgPklsbGlub2lzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSW5kaWFuYScgPkluZGlhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJb3dhJyA+SW93YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0thbnNhcycgPkthbnNhczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0tlbnR1Y2t5JyA+S2VudHVja3k8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdMb3Vpc2lhbmEnID5Mb3Vpc2lhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWluZScgPk1haW5lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFyeWxhbmQnID5NYXJ5bGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hc3NhY2h1c2V0dHMnID5NYXNzYWNodXNldHRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWljaGlnYW4nID5NaWNoaWdhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01pbm5lc290YScgPk1pbm5lc290YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01pc3Npc3NpcHBpJyA+TWlzc2lzc2lwcGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNaXNzb3VyaScgPk1pc3NvdXJpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9udGFuYScgPk1vbnRhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOZWJyYXNrYScgPk5lYnJhc2thPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmV2YWRhJyA+TmV2YWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmV3IEhhbXBzaGlyZScgPk5ldyBIYW1wc2hpcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOZXcgSmVyc2V5JyA+TmV3IEplcnNleTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldyBNZXhpY28nID5OZXcgTWV4aWNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmV3IFlvcmsnID5OZXcgWW9yazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05vcnRoIENhcm9saW5hJyA+Tm9ydGggQ2Fyb2xpbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOb3J0aCBEYWtvdGEnID5Ob3J0aCBEYWtvdGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdPaGlvJyA+T2hpbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J09rbGFob21hJyA+T2tsYWhvbWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdPcmVnb24nID5PcmVnb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQZW5uc3lsdmFuaWEnID5QZW5uc3lsdmFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdSaG9kZSBJc2xhbmQnID5SaG9kZSBJc2xhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTb3V0aCBDYXJvbGluYScgPlNvdXRoIENhcm9saW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU291dGggRGFrb3RhJyA+U291dGggRGFrb3RhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVGVubmVzc2VlJyA+VGVubmVzc2VlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVGV4YXMnID5UZXhhczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1V0YWgnID5VdGFoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVmVybW9udCcgPlZlcm1vbnQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWaXJnaW5pYScgPlZpcmdpbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nV2FzaGluZ3RvbicgPldhc2hpbmd0b248L29wdGlvbj48b3B0aW9uIHZhbHVlPSdXZXN0IFZpcmdpbmlhJyA+V2VzdCBWaXJnaW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1dpc2NvbnNpbicgPldpc2NvbnNpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1d5b21pbmcnID5XeW9taW5nPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJtZWQgRm9yY2VzIEFtZXJpY2FzJyA+QXJtZWQgRm9yY2VzIEFtZXJpY2FzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJtZWQgRm9yY2VzIEV1cm9wZScgPkFybWVkIEZvcmNlcyBFdXJvcGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBcm1lZCBGb3JjZXMgUGFjaWZpYycgPkFybWVkIEZvcmNlcyBQYWNpZmljPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzIzXzYnIGNsYXNzPSdnZmllbGQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM182JyA+UGhvbmU8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF82JyBpZD0naW5wdXRfMjNfNicgdHlwZT0ndGV4dCcgdmFsdWU9JycgY2xhc3M9J21lZGl1bScgdGFiaW5kZXg9JzYnICAgLz48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfNycgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM183JyA+Q29tcGFueTxzcGFuIGNsYXNzPSdnZmllbGRfcmVxdWlyZWQnPio8L3NwYW4+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfNycgaWQ9J2lucHV0XzIzXzcnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nICB0YWJpbmRleD0nNycgICAvPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yM184JyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfOCcgPkpvYiBUaXRsZTwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PGlucHV0IG5hbWU9J2lucHV0XzgnIGlkPSdpbnB1dF8yM184JyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgdGFiaW5kZXg9JzgnICAgLz48L2Rpdj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fMjMnIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyB2YWx1ZT0nUmVnaXN0ZXIgTm93IScgdGFiaW5kZXg9JzknIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ18yMyJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzIzIl09dHJ1ZTsgICcgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9MjMmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0xJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfMjMnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPScyMycgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfMjMnIHZhbHVlPSdXeUpiWFNJc0ltTmhPRFUzWW1Zd01EWXdORGN3TVRsak1tRXlNakEyTkdaaFpEQXdOekExSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzIzJyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzIzJyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzIzJyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzIzJyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfMjMnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzIzJz48L2lmcmFtZT4KICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe2dmb3JtSW5pdFNwaW5uZXIoIDIzLCAnaHR0cDovL3d3dy52aXJ0dWFsaXphdGlvbnNvZnR3YXJlLmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzIzJykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfMjMnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzIzJykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yMycpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yMycpLm9mZnNldCgpLnRvcCk7IH0sIDUwICk7aWYod2luZG93WydnZm9ybUluaXREYXRlcGlja2VyJ10pIHtnZm9ybUluaXREYXRlcGlja2VyKCk7fWlmKHdpbmRvd1snZ2Zvcm1Jbml0UHJpY2VGaWVsZHMnXSkge2dmb3JtSW5pdFByaWNlRmllbGRzKCk7fXZhciBjdXJyZW50X3BhZ2UgPSBqUXVlcnkoJyNnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfMjMnKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCAyMywgJ2h0dHA6Ly93d3cudmlydHVhbGl6YXRpb25zb2Z0d2FyZS5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wYWdlX2xvYWRlZCcsIFsyMywgY3VycmVudF9wYWdlXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzIzJ10gPSBmYWxzZTt9ZWxzZSBpZighaXNfcmVkaXJlY3Qpe3ZhciBjb25maXJtYXRpb25fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybXNfY29uZmlybWF0aW9uX21lc3NhZ2VfMjMnKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yMycpLnJlcGxhY2VXaXRoKCc8JyArICdkaXYgaWQ9XCdnZm9ybXNfY29uZmlybWF0aW9uX21lc3NhZ2VfMjNcJyBjbGFzcz1cJ2dmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzIzIGdmb3Jtc19jb25maXJtYXRpb25fbWVzc2FnZVwnJyArICc+JyArIGNvbmZpcm1hdGlvbl9jb250ZW50ICsgJzwnICsgJy9kaXYnICsgJz4nKTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybXNfY29uZmlybWF0aW9uX21lc3NhZ2VfMjMnKS5vZmZzZXQoKS50b3ApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fY29uZmlybWF0aW9uX2xvYWRlZCcsIFsyM10pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ18yMyddID0gZmFsc2U7fSwgNTApO31lbHNle2pRdWVyeSgnI2dmb3JtXzIzJykuYXBwZW5kKGNvbnRlbnRzKTtpZih3aW5kb3dbJ2dmb3JtUmVkaXJlY3QnXSkge2dmb3JtUmVkaXJlY3QoKTt9fWpRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbMjMsIGN1cnJlbnRfcGFnZV0pO30gKTt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBpZih0eXBlb2YgZ2ZfZ2xvYmFsID09ICd1bmRlZmluZWQnKSB2YXIgZ2ZfZ2xvYmFsID0geyJnZl9jdXJyZW5jeV9jb25maWciOnsibmFtZSI6IlUuUy4gRG9sbGFyIiwic3ltYm9sX2xlZnQiOiIkIiwic3ltYm9sX3JpZ2h0IjoiIiwic3ltYm9sX3BhZGRpbmciOiIiLCJ0aG91c2FuZF9zZXBhcmF0b3IiOiIsIiwiZGVjaW1hbF9zZXBhcmF0b3IiOiIuIiwiZGVjaW1hbHMiOjJ9LCJiYXNlX3VybCI6Imh0dHA6XC9cL3d3dy52aXJ0dWFsaXphdGlvbnNvZnR3YXJlLmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cDpcL1wvd3d3LnZpcnR1YWxpemF0aW9uc29mdHdhcmUuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2ltYWdlc1wvc3Bpbm5lci5naWYifTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSAyMykge2lmKHdpbmRvd1snalF1ZXJ5J10pe2lmKCF3aW5kb3dbJ2dmX2Zvcm1fY29uZGl0aW9uYWxfbG9naWMnXSl3aW5kb3dbJ2dmX2Zvcm1fY29uZGl0aW9uYWxfbG9naWMnXSA9IG5ldyBBcnJheSgpO3dpbmRvd1snZ2ZfZm9ybV9jb25kaXRpb25hbF9sb2dpYyddWzIzXSA9IHsnbG9naWMnIDogezQ6IHsiZmllbGQiOnsiYWN0aW9uVHlwZSI6ImhpZGUiLCJsb2dpY1R5cGUiOiJhbGwiLCJydWxlcyI6W3siZmllbGRJZCI6IjUiLCJvcGVyYXRvciI6Imlzbm90IiwidmFsdWUiOiJVbml0ZWQgU3RhdGVzIn1dfSwibmV4dEJ1dHRvbiI6bnVsbCwic2VjdGlvbiI6bnVsbH0gfSwgJ2RlcGVuZGVudHMnIDogezQ6IFs0XSB9LCAnYW5pbWF0aW9uJyA6IDAgLCAnZGVmYXVsdHMnIDogeyI1IjoiVW5pdGVkIFN0YXRlcyJ9IH07IGlmKCF3aW5kb3dbJ2dmX251bWJlcl9mb3JtYXQnXSl3aW5kb3dbJ2dmX251bWJlcl9mb3JtYXQnXSA9ICdkZWNpbWFsX2RvdCc7alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2dmX2FwcGx5X3J1bGVzKDIzLCBbNF0sIHRydWUpO2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjMnKS5zaG93KCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljJywgWzIzLCBudWxsLCB0cnVlXSk7fSApO30gZ2Zvcm1Jbml0Q2hvc2VuRmllbGRzKCcjaW5wdXRfMjNfNSwjaW5wdXRfMjNfNCcsJ05vIHJlc3VsdHMgbWF0Y2hlZCcpO30gfSApO2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGZpZWxkcywgaXNJbml0KXtnZm9ybUluaXRDaG9zZW5GaWVsZHMoJyNpbnB1dF8yM181LCNpbnB1dF8yM180JywnTm8gcmVzdWx0cyBtYXRjaGVkJyk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbMjMsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
Can't Make the time?
Can't Make the Webinar Time?

Request the Recording!
If you haven’t had these virtual machine problems yet – you will! These VM problems and their solutions have been selected based on the real-world feedback from thousands of VMware Admins and you’ll have two vExperts on the webinar to offer insight and remedies.
arrow-right-green
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfMjMnIHN0eWxlPSdkaXNwbGF5Om5vbmUnPjxhIGlkPSdnZl8yMycgbmFtZT0nZ2ZfMjMnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfMjMnIGlkPSdnZm9ybV8yMycgIGFjdGlvbj0nL2Rlc2lnbmluZy1uZXh0LWdlbmVyYXRpb24tdnNwaGVyZS1zdG9yYWdlLXN5c3RlbXMvI2dmXzIzJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfMjMnIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0nZmllbGRfMjNfMScgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM18xJyA+Rmlyc3QgTmFtZTxzcGFuIGNsYXNzPSdnZmllbGRfcmVxdWlyZWQnPio8L3NwYW4+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMScgaWQ9J2lucHV0XzIzXzEnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nICB0YWJpbmRleD0nMScgICAvPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yM18yJyBjbGFzcz0nZ2ZpZWxkIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzIzXzInID5MYXN0IE5hbWU8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PGlucHV0IG5hbWU9J2lucHV0XzInIGlkPSdpbnB1dF8yM18yJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgdGFiaW5kZXg9JzInICAgLz48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfMycgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM18zJyA+RW1haWw8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0XzIzXzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nIHRhYmluZGV4PSczJyAgIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yM181JyBjbGFzcz0nZ2ZpZWxkIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzIzXzUnID5Db3VudHJ5PHNwYW4gY2xhc3M9J2dmaWVsZF9yZXF1aXJlZCc+Kjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxzZWxlY3QgbmFtZT0naW5wdXRfNScgaWQ9J2lucHV0XzIzXzUnIG9uY2hhbmdlPSdnZl9hcHBseV9ydWxlcygyMyxbNF0pOycgY2xhc3M9J21lZGl1bSBnZmllbGRfc2VsZWN0JyB0YWJpbmRleD0nNCcgPjxvcHRpb24gdmFsdWU9J1VuaXRlZCBTdGF0ZXMnIHNlbGVjdGVkPSdzZWxlY3RlZCc+VW5pdGVkIFN0YXRlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NhbmFkYScgPkNhbmFkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1VuaXRlZCBLaW5nZG9tJyA+VW5pdGVkIEtpbmdkb208L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBdXN0cmFsaWEnID5BdXN0cmFsaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBZmdoYW5pc3RhbicgPkFmZ2hhbmlzdGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQWxiYW5pYScgPkFsYmFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBbGdlcmlhJyA+QWxnZXJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FtZXJpY2FuIFNhbW9hJyA+QW1lcmljYW4gU2Ftb2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBbmRvcnJhJyA+QW5kb3JyYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FuZ29sYScgPkFuZ29sYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FudGlndWEgYW5kIEJhcmJ1ZGEnID5BbnRpZ3VhIGFuZCBCYXJidWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJnZW50aW5hJyA+QXJnZW50aW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJtZW5pYScgPkFybWVuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBdXN0cmlhJyA+QXVzdHJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0F6ZXJiYWlqYW4nID5BemVyYmFpamFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmFoYW1hcycgPkJhaGFtYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCYWhyYWluJyA+QmFocmFpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JhbmdsYWRlc2gnID5CYW5nbGFkZXNoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmFyYmFkb3MnID5CYXJiYWRvczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JlbGFydXMnID5CZWxhcnVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmVsZ2l1bScgPkJlbGdpdW08L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCZWxpemUnID5CZWxpemU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCZW5pbicgPkJlbmluPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmVybXVkYScgPkJlcm11ZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCaHV0YW4nID5CaHV0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCb2xpdmlhJyA+Qm9saXZpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnID5Cb3NuaWEgYW5kIEhlcnplZ292aW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQm90c3dhbmEnID5Cb3Rzd2FuYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JyYXppbCcgPkJyYXppbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JydW5laScgPkJydW5laTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0J1bGdhcmlhJyA+QnVsZ2FyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCdXJraW5hIEZhc28nID5CdXJraW5hIEZhc288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCdXJ1bmRpJyA+QnVydW5kaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NhbWJvZGlhJyA+Q2FtYm9kaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDYW1lcm9vbicgPkNhbWVyb29uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2FwZSBWZXJkZScgPkNhcGUgVmVyZGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDYXltYW4gSXNsYW5kcycgPkNheW1hbiBJc2xhbmRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJyA+Q2VudHJhbCBBZnJpY2FuIFJlcHVibGljPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2hhZCcgPkNoYWQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDaGlsZScgPkNoaWxlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2hpbmEnID5DaGluYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NvbG9tYmlhJyA+Q29sb21iaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDb21vcm9zJyA+Q29tb3Jvczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZScgPkNvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NvbmdvLCBSZXB1YmxpYyBvZiB0aGUnID5Db25nbywgUmVwdWJsaWMgb2YgdGhlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ29zdGEgUmljYScgPkNvc3RhIFJpY2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDJm9jaXJjO3RlIGQmIzAzOTtJdm9pcmUnID5DJm9jaXJjO3RlIGQmIzAzOTtJdm9pcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDcm9hdGlhJyA+Q3JvYXRpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0N1YmEnID5DdWJhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ3lwcnVzJyA+Q3lwcnVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ3plY2ggUmVwdWJsaWMnID5DemVjaCBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Rlbm1hcmsnID5EZW5tYXJrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRGppYm91dGknID5Eamlib3V0aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0RvbWluaWNhJyA+RG9taW5pY2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdEb21pbmljYW4gUmVwdWJsaWMnID5Eb21pbmljYW4gUmVwdWJsaWM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFYXN0IFRpbW9yJyA+RWFzdCBUaW1vcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0VjdWFkb3InID5FY3VhZG9yPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRWd5cHQnID5FZ3lwdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0VsIFNhbHZhZG9yJyA+RWwgU2FsdmFkb3I8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFcXVhdG9yaWFsIEd1aW5lYScgPkVxdWF0b3JpYWwgR3VpbmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRXJpdHJlYScgPkVyaXRyZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFc3RvbmlhJyA+RXN0b25pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0V0aGlvcGlhJyA+RXRoaW9waWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdGaWppJyA+RmlqaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0ZpbmxhbmQnID5GaW5sYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRnJhbmNlJyA+RnJhbmNlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR2Fib24nID5HYWJvbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dhbWJpYScgPkdhbWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dlb3JnaWEnID5HZW9yZ2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR2VybWFueScgPkdlcm1hbnk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHaGFuYScgPkdoYW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR3JlZWNlJyA+R3JlZWNlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR3JlZW5sYW5kJyA+R3JlZW5sYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR3JlbmFkYScgPkdyZW5hZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHdWFtJyA+R3VhbTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0d1YXRlbWFsYScgPkd1YXRlbWFsYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0d1aW5lYScgPkd1aW5lYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0d1aW5lYS1CaXNzYXUnID5HdWluZWEtQmlzc2F1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR3V5YW5hJyA+R3V5YW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSGFpdGknID5IYWl0aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0hvbmR1cmFzJyA+SG9uZHVyYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdIb25nIEtvbmcnID5Ib25nIEtvbmc8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdIdW5nYXJ5JyA+SHVuZ2FyeTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0ljZWxhbmQnID5JY2VsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSW5kaWEnID5JbmRpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0luZG9uZXNpYScgPkluZG9uZXNpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0lyYW4nID5JcmFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSXJhcScgPklyYXE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJcmVsYW5kJyA+SXJlbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0lzcmFlbCcgPklzcmFlbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0l0YWx5JyA+SXRhbHk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdKYW1haWNhJyA+SmFtYWljYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0phcGFuJyA+SmFwYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdKb3JkYW4nID5Kb3JkYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLYXpha2hzdGFuJyA+S2F6YWtoc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0tlbnlhJyA+S2VueWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLaXJpYmF0aScgPktpcmliYXRpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTm9ydGggS29yZWEnID5Ob3J0aCBLb3JlYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NvdXRoIEtvcmVhJyA+U291dGggS29yZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLdXdhaXQnID5LdXdhaXQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLeXJneXpzdGFuJyA+S3lyZ3l6c3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xhb3MnID5MYW9zPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTGF0dmlhJyA+TGF0dmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTGViYW5vbicgPkxlYmFub248L29wdGlvbj48b3B0aW9uIHZhbHVlPSdMZXNvdGhvJyA+TGVzb3Robzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xpYmVyaWEnID5MaWJlcmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTGlieWEnID5MaWJ5YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xpZWNodGVuc3RlaW4nID5MaWVjaHRlbnN0ZWluPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTGl0aHVhbmlhJyA+TGl0aHVhbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTHV4ZW1ib3VyZycgPkx1eGVtYm91cmc8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWNlZG9uaWEnID5NYWNlZG9uaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWRhZ2FzY2FyJyA+TWFkYWdhc2Nhcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hbGF3aScgPk1hbGF3aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hbGF5c2lhJyA+TWFsYXlzaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWxkaXZlcycgPk1hbGRpdmVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFsaScgPk1hbGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWx0YScgPk1hbHRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFyc2hhbGwgSXNsYW5kcycgPk1hcnNoYWxsIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYXVyaXRhbmlhJyA+TWF1cml0YW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hdXJpdGl1cycgPk1hdXJpdGl1czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01leGljbycgPk1leGljbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01pY3JvbmVzaWEnID5NaWNyb25lc2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9sZG92YScgPk1vbGRvdmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNb25hY28nID5Nb25hY288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNb25nb2xpYScgPk1vbmdvbGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9udGVuZWdybycgPk1vbnRlbmVncm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNb3JvY2NvJyA+TW9yb2Njbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01vemFtYmlxdWUnID5Nb3phbWJpcXVlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTXlhbm1hcicgPk15YW5tYXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOYW1pYmlhJyA+TmFtaWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05hdXJ1JyA+TmF1cnU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOZXBhbCcgPk5lcGFsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmV0aGVybGFuZHMnID5OZXRoZXJsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldyBaZWFsYW5kJyA+TmV3IFplYWxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOaWNhcmFndWEnID5OaWNhcmFndWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOaWdlcicgPk5pZ2VyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmlnZXJpYScgPk5pZ2VyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOb3J3YXknID5Ob3J3YXk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMnID5Ob3J0aGVybiBNYXJpYW5hIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdPbWFuJyA+T21hbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1Bha2lzdGFuJyA+UGFraXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQYWxhdScgPlBhbGF1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGFsZXN0aW5lJyA+UGFsZXN0aW5lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGFuYW1hJyA+UGFuYW1hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGFwdWEgTmV3IEd1aW5lYScgPlBhcHVhIE5ldyBHdWluZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQYXJhZ3VheScgPlBhcmFndWF5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGVydScgPlBlcnU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQaGlsaXBwaW5lcycgPlBoaWxpcHBpbmVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUG9sYW5kJyA+UG9sYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUG9ydHVnYWwnID5Qb3J0dWdhbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1B1ZXJ0byBSaWNvJyA+UHVlcnRvIFJpY288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdRYXRhcicgPlFhdGFyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUm9tYW5pYScgPlJvbWFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdSdXNzaWEnID5SdXNzaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdSd2FuZGEnID5Sd2FuZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYWludCBLaXR0cyBhbmQgTmV2aXMnID5TYWludCBLaXR0cyBhbmQgTmV2aXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYWludCBMdWNpYScgPlNhaW50IEx1Y2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXMnID5TYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NhbW9hJyA+U2Ftb2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYW4gTWFyaW5vJyA+U2FuIE1hcmlubzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NhbyBUb21lIGFuZCBQcmluY2lwZScgPlNhbyBUb21lIGFuZCBQcmluY2lwZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NhdWRpIEFyYWJpYScgPlNhdWRpIEFyYWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NlbmVnYWwnID5TZW5lZ2FsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2VyYmlhIGFuZCBNb250ZW5lZ3JvJyA+U2VyYmlhIGFuZCBNb250ZW5lZ3JvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2V5Y2hlbGxlcycgPlNleWNoZWxsZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTaWVycmEgTGVvbmUnID5TaWVycmEgTGVvbmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTaW5nYXBvcmUnID5TaW5nYXBvcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTbG92YWtpYScgPlNsb3Zha2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2xvdmVuaWEnID5TbG92ZW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NvbG9tb24gSXNsYW5kcycgPlNvbG9tb24gSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NvbWFsaWEnID5Tb21hbGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU291dGggQWZyaWNhJyA+U291dGggQWZyaWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3BhaW4nID5TcGFpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NyaSBMYW5rYScgPlNyaSBMYW5rYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1N1ZGFuJyA+U3VkYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTdWRhbiwgU291dGgnID5TdWRhbiwgU291dGg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTdXJpbmFtZScgPlN1cmluYW1lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3dhemlsYW5kJyA+U3dhemlsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3dlZGVuJyA+U3dlZGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3dpdHplcmxhbmQnID5Td2l0emVybGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1N5cmlhJyA+U3lyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUYWl3YW4nID5UYWl3YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUYWppa2lzdGFuJyA+VGFqaWtpc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1RhbnphbmlhJyA+VGFuemFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUaGFpbGFuZCcgPlRoYWlsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVG9nbycgPlRvZ288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUb25nYScgPlRvbmdhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVHJpbmlkYWQgYW5kIFRvYmFnbycgPlRyaW5pZGFkIGFuZCBUb2JhZ288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUdW5pc2lhJyA+VHVuaXNpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1R1cmtleScgPlR1cmtleTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1R1cmttZW5pc3RhbicgPlR1cmttZW5pc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1R1dmFsdScgPlR1dmFsdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1VnYW5kYScgPlVnYW5kYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1VrcmFpbmUnID5Va3JhaW5lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVW5pdGVkIEFyYWIgRW1pcmF0ZXMnID5Vbml0ZWQgQXJhYiBFbWlyYXRlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1VydWd1YXknID5VcnVndWF5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVXpiZWtpc3RhbicgPlV6YmVraXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWYW51YXR1JyA+VmFudWF0dTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ZhdGljYW4gQ2l0eScgPlZhdGljYW4gQ2l0eTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ZlbmV6dWVsYScgPlZlbmV6dWVsYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ZpZXRuYW0nID5WaWV0bmFtPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVmlyZ2luIElzbGFuZHMsIEJyaXRpc2gnID5WaXJnaW4gSXNsYW5kcywgQnJpdGlzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ZpcmdpbiBJc2xhbmRzLCBVLlMuJyA+VmlyZ2luIElzbGFuZHMsIFUuUy48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdZZW1lbicgPlllbWVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nWmFtYmlhJyA+WmFtYmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nWmltYmFid2UnID5aaW1iYWJ3ZTwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yM180JyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfNCcgPlN0YXRlPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48c2VsZWN0IG5hbWU9J2lucHV0XzQnIGlkPSdpbnB1dF8yM180JyAgY2xhc3M9J21lZGl1bSBnZmllbGRfc2VsZWN0JyB0YWJpbmRleD0nNScgPjxvcHRpb24gdmFsdWU9J0FsYWJhbWEnID5BbGFiYW1hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQWxhc2thJyA+QWxhc2thPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJpem9uYScgPkFyaXpvbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBcmthbnNhcycgPkFya2Fuc2FzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2FsaWZvcm5pYScgPkNhbGlmb3JuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDb2xvcmFkbycgPkNvbG9yYWRvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ29ubmVjdGljdXQnID5Db25uZWN0aWN1dDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0RlbGF3YXJlJyA+RGVsYXdhcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdEaXN0cmljdCBvZiBDb2x1bWJpYScgPkRpc3RyaWN0IG9mIENvbHVtYmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRmxvcmlkYScgPkZsb3JpZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHZW9yZ2lhJyA+R2VvcmdpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0hhd2FpaScgPkhhd2FpaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0lkYWhvJyA+SWRhaG88L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJbGxpbm9pcycgPklsbGlub2lzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSW5kaWFuYScgPkluZGlhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJb3dhJyA+SW93YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0thbnNhcycgPkthbnNhczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0tlbnR1Y2t5JyA+S2VudHVja3k8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdMb3Vpc2lhbmEnID5Mb3Vpc2lhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWluZScgPk1haW5lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFyeWxhbmQnID5NYXJ5bGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hc3NhY2h1c2V0dHMnID5NYXNzYWNodXNldHRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWljaGlnYW4nID5NaWNoaWdhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01pbm5lc290YScgPk1pbm5lc290YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01pc3Npc3NpcHBpJyA+TWlzc2lzc2lwcGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNaXNzb3VyaScgPk1pc3NvdXJpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9udGFuYScgPk1vbnRhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOZWJyYXNrYScgPk5lYnJhc2thPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmV2YWRhJyA+TmV2YWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmV3IEhhbXBzaGlyZScgPk5ldyBIYW1wc2hpcmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOZXcgSmVyc2V5JyA+TmV3IEplcnNleTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldyBNZXhpY28nID5OZXcgTWV4aWNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmV3IFlvcmsnID5OZXcgWW9yazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05vcnRoIENhcm9saW5hJyA+Tm9ydGggQ2Fyb2xpbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOb3J0aCBEYWtvdGEnID5Ob3J0aCBEYWtvdGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdPaGlvJyA+T2hpbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J09rbGFob21hJyA+T2tsYWhvbWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdPcmVnb24nID5PcmVnb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQZW5uc3lsdmFuaWEnID5QZW5uc3lsdmFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdSaG9kZSBJc2xhbmQnID5SaG9kZSBJc2xhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTb3V0aCBDYXJvbGluYScgPlNvdXRoIENhcm9saW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU291dGggRGFrb3RhJyA+U291dGggRGFrb3RhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVGVubmVzc2VlJyA+VGVubmVzc2VlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVGV4YXMnID5UZXhhczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1V0YWgnID5VdGFoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVmVybW9udCcgPlZlcm1vbnQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWaXJnaW5pYScgPlZpcmdpbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nV2FzaGluZ3RvbicgPldhc2hpbmd0b248L29wdGlvbj48b3B0aW9uIHZhbHVlPSdXZXN0IFZpcmdpbmlhJyA+V2VzdCBWaXJnaW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1dpc2NvbnNpbicgPldpc2NvbnNpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1d5b21pbmcnID5XeW9taW5nPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJtZWQgRm9yY2VzIEFtZXJpY2FzJyA+QXJtZWQgRm9yY2VzIEFtZXJpY2FzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJtZWQgRm9yY2VzIEV1cm9wZScgPkFybWVkIEZvcmNlcyBFdXJvcGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBcm1lZCBGb3JjZXMgUGFjaWZpYycgPkFybWVkIEZvcmNlcyBQYWNpZmljPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzIzXzYnIGNsYXNzPSdnZmllbGQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM182JyA+UGhvbmU8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF82JyBpZD0naW5wdXRfMjNfNicgdHlwZT0ndGV4dCcgdmFsdWU9JycgY2xhc3M9J21lZGl1bScgdGFiaW5kZXg9JzYnICAgLz48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfNycgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM183JyA+Q29tcGFueTxzcGFuIGNsYXNzPSdnZmllbGRfcmVxdWlyZWQnPio8L3NwYW4+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfNycgaWQ9J2lucHV0XzIzXzcnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nICB0YWJpbmRleD0nNycgICAvPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yM184JyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfOCcgPkpvYiBUaXRsZTwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PGlucHV0IG5hbWU9J2lucHV0XzgnIGlkPSdpbnB1dF8yM184JyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgdGFiaW5kZXg9JzgnICAgLz48L2Rpdj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fMjMnIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyB2YWx1ZT0nUmVnaXN0ZXIgTm93IScgdGFiaW5kZXg9JzknIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ18yMyJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzIzIl09dHJ1ZTsgICcgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9MjMmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0xJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfMjMnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPScyMycgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfMjMnIHZhbHVlPSdXeUpiWFNJc0ltTmhPRFUzWW1Zd01EWXdORGN3TVRsak1tRXlNakEyTkdaaFpEQXdOekExSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzIzJyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzIzJyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzIzJyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzIzJyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfMjMnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzIzJz48L2lmcmFtZT4KICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe2dmb3JtSW5pdFNwaW5uZXIoIDIzLCAnaHR0cDovL3d3dy52aXJ0dWFsaXphdGlvbnNvZnR3YXJlLmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzIzJykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfMjMnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzIzJykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yMycpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yMycpLm9mZnNldCgpLnRvcCk7IH0sIDUwICk7aWYod2luZG93WydnZm9ybUluaXREYXRlcGlja2VyJ10pIHtnZm9ybUluaXREYXRlcGlja2VyKCk7fWlmKHdpbmRvd1snZ2Zvcm1Jbml0UHJpY2VGaWVsZHMnXSkge2dmb3JtSW5pdFByaWNlRmllbGRzKCk7fXZhciBjdXJyZW50X3BhZ2UgPSBqUXVlcnkoJyNnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfMjMnKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCAyMywgJ2h0dHA6Ly93d3cudmlydHVhbGl6YXRpb25zb2Z0d2FyZS5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wYWdlX2xvYWRlZCcsIFsyMywgY3VycmVudF9wYWdlXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzIzJ10gPSBmYWxzZTt9ZWxzZSBpZighaXNfcmVkaXJlY3Qpe3ZhciBjb25maXJtYXRpb25fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybXNfY29uZmlybWF0aW9uX21lc3NhZ2VfMjMnKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yMycpLnJlcGxhY2VXaXRoKCc8JyArICdkaXYgaWQ9XCdnZm9ybXNfY29uZmlybWF0aW9uX21lc3NhZ2VfMjNcJyBjbGFzcz1cJ2dmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzIzIGdmb3Jtc19jb25maXJtYXRpb25fbWVzc2FnZVwnJyArICc+JyArIGNvbmZpcm1hdGlvbl9jb250ZW50ICsgJzwnICsgJy9kaXYnICsgJz4nKTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybXNfY29uZmlybWF0aW9uX21lc3NhZ2VfMjMnKS5vZmZzZXQoKS50b3ApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fY29uZmlybWF0aW9uX2xvYWRlZCcsIFsyM10pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ18yMyddID0gZmFsc2U7fSwgNTApO31lbHNle2pRdWVyeSgnI2dmb3JtXzIzJykuYXBwZW5kKGNvbnRlbnRzKTtpZih3aW5kb3dbJ2dmb3JtUmVkaXJlY3QnXSkge2dmb3JtUmVkaXJlY3QoKTt9fWpRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbMjMsIGN1cnJlbnRfcGFnZV0pO30gKTt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBpZih0eXBlb2YgZ2ZfZ2xvYmFsID09ICd1bmRlZmluZWQnKSB2YXIgZ2ZfZ2xvYmFsID0geyJnZl9jdXJyZW5jeV9jb25maWciOnsibmFtZSI6IlUuUy4gRG9sbGFyIiwic3ltYm9sX2xlZnQiOiIkIiwic3ltYm9sX3JpZ2h0IjoiIiwic3ltYm9sX3BhZGRpbmciOiIiLCJ0aG91c2FuZF9zZXBhcmF0b3IiOiIsIiwiZGVjaW1hbF9zZXBhcmF0b3IiOiIuIiwiZGVjaW1hbHMiOjJ9LCJiYXNlX3VybCI6Imh0dHA6XC9cL3d3dy52aXJ0dWFsaXphdGlvbnNvZnR3YXJlLmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cDpcL1wvd3d3LnZpcnR1YWxpemF0aW9uc29mdHdhcmUuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2ltYWdlc1wvc3Bpbm5lci5naWYifTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSAyMykge2lmKHdpbmRvd1snalF1ZXJ5J10pe2lmKCF3aW5kb3dbJ2dmX2Zvcm1fY29uZGl0aW9uYWxfbG9naWMnXSl3aW5kb3dbJ2dmX2Zvcm1fY29uZGl0aW9uYWxfbG9naWMnXSA9IG5ldyBBcnJheSgpO3dpbmRvd1snZ2ZfZm9ybV9jb25kaXRpb25hbF9sb2dpYyddWzIzXSA9IHsnbG9naWMnIDogezQ6IHsiZmllbGQiOnsiYWN0aW9uVHlwZSI6ImhpZGUiLCJsb2dpY1R5cGUiOiJhbGwiLCJydWxlcyI6W3siZmllbGRJZCI6IjUiLCJvcGVyYXRvciI6Imlzbm90IiwidmFsdWUiOiJVbml0ZWQgU3RhdGVzIn1dfSwibmV4dEJ1dHRvbiI6bnVsbCwic2VjdGlvbiI6bnVsbH0gfSwgJ2RlcGVuZGVudHMnIDogezQ6IFs0XSB9LCAnYW5pbWF0aW9uJyA6IDAgLCAnZGVmYXVsdHMnIDogeyI1IjoiVW5pdGVkIFN0YXRlcyJ9IH07IGlmKCF3aW5kb3dbJ2dmX251bWJlcl9mb3JtYXQnXSl3aW5kb3dbJ2dmX251bWJlcl9mb3JtYXQnXSA9ICdkZWNpbWFsX2RvdCc7alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2dmX2FwcGx5X3J1bGVzKDIzLCBbNF0sIHRydWUpO2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjMnKS5zaG93KCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljJywgWzIzLCBudWxsLCB0cnVlXSk7fSApO30gZ2Zvcm1Jbml0Q2hvc2VuRmllbGRzKCcjaW5wdXRfMjNfNSwjaW5wdXRfMjNfNCcsJ05vIHJlc3VsdHMgbWF0Y2hlZCcpO30gfSApO2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGZpZWxkcywgaXNJbml0KXtnZm9ybUluaXRDaG9zZW5GaWVsZHMoJyNpbnB1dF8yM181LCNpbnB1dF8yM180JywnTm8gcmVzdWx0cyBtYXRjaGVkJyk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbMjMsIDFdKSB9ICk7IDwvc2NyaXB0Pg==