A blood fortune buried in the caves of France...
A conspiracy of power, greed and darkest evil...
Archaeologist and explorer Annja Creed's fascination with the myths and mysteries of the past leads her to a crypt in the caves of France, where the terrifying legend of the Beast of Gevaudan hints at the unimaginable. What she discovers is shattering: an artifact that will seal her destiny; a brotherhood of monks willing to murder to protect their secret; and a powerful black-market occultist desperate to put his own claim to centuries-old blood money. Annja embarks on a high-tension race across Europe and history itself, intent on linking the unholy treachery of the ages with the staggering revelations of the present. But she must survive the shadow figures determined to silence her threat to their existence.
Includes Rogue Angel 1-62.
Audio Sample Player
Social Media Share Widgets
Purchase Options
Format Information
ALL DOWNLOAD FORMATS INCLUDE LISTENING TO THE TITLE IN GRAPHICAUDIO ACCESS™ APP ON ANDROID AND APPLE IOS DEVICES! LEARN MORE.
GraphicAudio is available in various high quality digital audio formats.
Listen with Access App Only - Download our app for Apple iOS & Android. App Device Compatibility: Android phones with OS 5 or later and iPhone, iPad, and iPod touch with iOS 9.0 or later. The Access App Only option does not include a zip download.
MP3 (256kbps) - Download the zip file and Play with any media player. You also get to Listen with GraphicAudio Access App. This is the most common audio download format that will play on any computer or media player. The average size of this download will be around 600 MB.
M4B (256kbps) - Download the zip file and Play with Apple Music, iPhone, iPod and iPad. You also get to Listen with GraphicAudio Access App. This format will work only in iTunes, Quicktime, on a Mac computer, or on an iOS device such as iPhone or iPad. M4B's have the ability to bookmark in some audio apps. The M4B download is one complete file, so it is not split up into smaller parts. The average size of this download will be around 600 MB.
FLAC (16 bit / 44.1 khz) - Download the zip file and Play with VLC or other high quality audio software. You also get to Listen with GraphicAudio Access App. This a studio-quality lossless digital audio format. This means that it does not lose data like other types of compressed audio files. Lossless compression still retains low-level resolution of a standard CD. The advantage of FLAC is that it takes up less room on your computer than an WAV (CD files). The average size of this download will be around 2,000 MB (2 GB).
FLAC 5.1 SURROUND (16 bit / 44.1 khz) - Download the zip file and Play with 5.1 Surround Sound Home Theater systems or other high quality surround sound audio software. You also get to listen to stereo version with the GraphicAudio Access App. The average size of this download will be around 4,500 MB (4.5 GB).
How do I un-zip my download?
When you download the file, it arrives on your computer in a compressed format called zip. Before you can add the audio files to your library and listen to it, you'll need to decompress, or "unzip" it. Doing so is very easy: If you're on a PC, right-click the file and choose Extract All... You're done. If you're on a Mac, double-click the file and it extracts into a separate folder next to where the other file is located.
My zip download says it's expired. What now?
Click here to send a customer support ticket to us. Please include the order number if you have it.
62 Titles In This Set - See AllSee Fewer
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNjYtMjEzNzY1Njg5Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAwMSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTVRvZ1JHVnpkR2x1ZVE9PSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMDEuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7MSYjeDNBOyYjeDIwO0Rlc3RpbnkiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzY2LTIxMzc2NTY4OSB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNjYtMjEzNzY1Njg5IHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNjYtMjEzNzY1Njg5Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM2Ni0yMTM3NjU2ODkgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjEgOjwvc3Bhbj4gICAgICAgICAgICAgICAgRGVzdGlueSAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBGZWIgMSwgMjAwNyAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA2IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkFuIGFuY2llbnQgb3JkZXIgdGllZCB0byB0aGUgVmF0aWNhbi4uLjxici8+QSBibG9vZCBmb3J0dW5lIGJ1cmllZCBpbiB0aGUgY2F2ZXMgb2YgRnJhbmNlLi4uPGJyLz5BIGNvbnNwaXJhY3kgb2YgcG93ZXIsIGdyZWVkIGFuZCBkYXJrZXN0IGV2aWwuLi48YnIvPiA8YnIvPkFyY2hhZW9sb2dpc3QgYW5kIGV4cGxvcmVyIEFubmphIENyZWVkJ3MgZmFzY2luYXRpb24gd2l0aCB0aGUgbXl0aHMgYW5kIG15c3RlcmllcyBvZiB0aGUgcGFzdCBsZWFkcyBoZXIgdG8gYSBjcnlwdCBpbiB0aGUgY2F2ZXMgb2YgRnJhbmNlLCB3aGVyZSB0aGUgdGVycmlmeWluZyBsZWdlbmQgb2YgdGhlIEJlYXN0IG9mIEdldmF1ZGFuIGhpbnRzIGF0IHRoZSB1bmltYWdpbmFibGUuIFdoYXQgc2hlIGRpc2NvdmVycyBpcyBzaGF0dGVyaW5nOiBhbiBhcnRpZmFjdCB0aGF0IHdpbGwgc2VhbCBoZXIgZGVzdGlueTsgYSBicm90aGVyaG9vZCBvZiBtb25rcyB3aWxsaW5nIHRvIG11cmRlciB0byBwcm90ZWN0IHRoZWlyIHNlY3JldDsgYW5kIGEgcG93ZXJmdWwgYmxhY2stbWFya2V0IG9jY3VsdGlzdCBkZXNwZXJhdGUgdG8gcHV0IGhpcyBvd24gY2xhaW0gdG8gY2VudHVyaWVzLW9sZCBibG9vZCBtb25leS4gQW5uamEgZW1iYXJrcyBvbiBhIGhpZ2gtdGVuc2lvbiByYWNlIGFjcm9zcyBFdXJvcGUgYW5kIGhpc3RvcnkgaXRzZWxmLCBpbnRlbnQgb24gbGlua2luZyB0aGUgdW5ob2x5IHRyZWFjaGVyeSBvZiB0aGUgYWdlcyB3aXRoIHRoZSBzdGFnZ2VyaW5nIHJldmVsYXRpb25zIG9mIHRoZSBwcmVzZW50LiBCdXQgc2hlIG11c3Qgc3Vydml2ZSB0aGUgc2hhZG93IGZpZ3VyZXMgZGV0ZXJtaW5lZCB0byBzaWxlbmNlIGhlciB0aHJlYXQgdG8gdGhlaXIgZXhpc3RlbmNlLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMDYgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDA3IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDAxLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDAxLm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNjctMjI1ODE5Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAwMiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTWpvZ1UyOXNiMjF2YmlkeklFcGhjZz09IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAwMi5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDsyJiN4M0E7JiN4MjA7U29sb21vbiYjeDI3O3MmI3gyMDtKYXIiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzY3LTIyNTgxOSB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNjctMjI1ODE5IHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNjctMjI1ODE5Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM2Ny0yMjU4MTkgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjIgOjwvc3Bhbj4gICAgICAgICAgICAgICAgU29sb21vbidzIEphciAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBNYXIgMSwgMjAwNyAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA2IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPlJ1bW9ycyBvZiB0aGUgZGlzY292ZXJ5IG9mIFNvbG9tb24ncyBKYXItaW4gd2hpY2ggdGhlIGJpYmxpY2FsIEtpbmcgU29sb21vbiBib3VuZCB0aGUgd29ybGQncyBkZW1vbnMgYWZ0ZXIgdXNpbmcgdGhlbSB0byBidWlsZCBoaXMgdGVtcGxlIGluIEplcnVzYWxlbS1hcmUgZm9sbG93ZWQgd2l0aCBpbnRlcmVzdCBieSBBbm5qYSBDcmVlZC4gQW4gYXJjaGFlb2xvZ2lzdCBpbnRyaWd1ZWQgYnkgdGhlIGFyY2FuZSwgQW5uamEgcHVyc3VlcyB0aGUgdHJ1dGggYWJvdXQgdGhlIHZlc3NlbCBhbmQgaXRzIGFuY2llbnQgb3JpZ2lucy48YnIvPiA8YnIvPkhlciBzZWFyY2ggbGVhZHMgaGVyIHRvIGEgY29uZnJvbnRhdGlvbiB3aXRoIGEgTG9uZG9uIGN1bHQgZHJpdmVuIGJ5IHZpc2lvbnMgb2YgYSBuZXcgd29ybGQgb3JkZXI7IGFuZCBhIHJlbGlnaW91cyB6ZWFsb3QgZnVlbGVkIGJ5IHRoZSBpbnNhdGlhYmxlIGRlc2lyZSBmb3IgZ2xvcnkuIEFjcm9zcyB0aGUgc2FuZHMgb2YgdGhlIE1pZGRsZSBFYXN0IHRvIHRoZSBqdW5nbGVzIG9mIEJyYXppbCwgQW5uamEgZW1iYXJrcyBvbiBhIHJlbGVudGxlc3MgY2hhc2UgdG8gc3RvcCBodW1hbml0eSdzIG1vc3QgdW5mYXRob21hYmxlIHNlY3JldHMgZnJvbSByZXNoYXBpbmcgdGhlIG1vZGVybiB3b3JsZC4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDA2IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAwNyBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAwMi5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAwMi5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNjgtOTMzOTA0NzI2Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAwMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTXpvZ1ZHaGxJRk53YVdSbGNpQlRkRzl1WlE9PSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMDMuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7MyYjeDNBOyYjeDIwO1RoZSYjeDIwO1NwaWRlciYjeDIwO1N0b25lIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM2OC05MzM5MDQ3MjYgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzY4LTkzMzkwNDcyNiBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzY4LTkzMzkwNDcyNiIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNjgtOTMzOTA0NzI2ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4zIDo8L3NwYW4+ICAgICAgICAgICAgICAgIFRoZSBTcGlkZXIgU3RvbmUgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gQXByIDEsIDIwMDcgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNiBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5JbiB0aGUgY3J1bWJsaW5nIHJlbWFpbnMgb2YgYSB0dW5uZWwgdGhhdCB3YXMgcGFydCBvZiB0aGUgVW5kZXJncm91bmQgUmFpbHJvYWQsIGEgbXlzdGVyaW91cyBhcnRpZmFjdCByZXZlYWxzIG9uZSBvZiB0aGUgZGFya2VzdCBzZWNyZXRzIG9mIEFmcmljYSdzIGFuY2llbnQgcGFzdC4gSW50cmlndWVkIGJ5IHRoZSBzdHJhbmdlLCBlbmNyeXB0ZWQgc3RvbmUsIGFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQgb3BlbnMgYSBkb29yIHRvIGEgd29ybGQtYW5kIGEgbGVnZW5kLWJvdW5kIGJ5IGEgZmllcmNlIGFuZCB0ZXJyaWJsZSBmb3JjZS4gU2hlIGlzIG5vdCBhbG9uZSBpbiBoZXIgcHVyc3VpdCBvZiB0aGUgaW1wb3NzaWJsZS48YnIvPiA8YnIvPkEgYmxvb2R0aGlyc3R5IEFmcmljYW4gd2FybG9yZCwgYW5kIGFuIGludGVybmF0aW9uYWwgY29ycG9yYXRlIG1hZ25hdGUgZXhwbG9pdGluZyBhIGxhbmQsIGEgY3VsdHVyZSBhbmQgYSBwZW9wbGUsIGFyZSBlcXVhbGx5IGFueGlvdXMgdG8gc3Rha2UgdGhlaXIgY2xhaW0gb24gdGhlIHJlbGljJ3MgdW5rbm93biBwb3dlci4gQW5uamEncyBvZHlzc2V5IGRlZXAgaW50byB0aGUgcHJpbWV2YWwganVuZ2xlcyBvZiBTZW5lZ2FsIGJlY29tZXMgYSBkZXNwZXJhdGUgcmFjZSB0byBzdG9wIHRob3NlIGVhZ2VyIHRvIHVubGVhc2ggdGhlIHZpcnVsZW5jZSBvZiB0aGUgU3BpZGVyIEdvZC4uLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMDYgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDA3IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDAzLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDAzLm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNjktMTk4MzUyMzM1NCI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMDQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05Eb2dWR2hsSUVOb2IzTmxiZz09IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAwNC5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs0JiN4M0E7JiN4MjA7VGhlJiN4MjA7Q2hvc2VuIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM2OS0xOTgzNTIzMzU0IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM2OS0xOTgzNTIzMzU0IHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNjktMTk4MzUyMzM1NCIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNjktMTk4MzUyMzM1NCAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+NCA6PC9zcGFuPiAgICAgICAgICAgICAgICBUaGUgQ2hvc2VuICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEp1biAxLCAyMDA3ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDYgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+QXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCBiZWxpZXZlcyB0aGVyZSdzIG1vcmUgdG8gdGhlIGFwcGFyaXRpb25zIG9mIFNhbnRvIE5pJiMyNDE7by10aGUgSG9seSBDaGlsZC1sdXJpbmcgdGhvdXNhbmRzIG9mIHBpbGdyaW1zIHRvIFNhbnRhIEZlLiBPdGhlciBzaWdodGluZ3Mgb2Ygc3RyYW5nZSBhbmQgYW5vbWFsb3VzIGNyZWF0dXJlcyBpbiB0aGUgYXJlYSBpbmRpY2F0ZSBhIG15c3RlcnkgbW9yZSBwcm9mYW5lIHRoYW4gc2FjcmVkLXdpdGggbGlua3MsIHBlcmhhcHMsIHRvIEFubmphJ3Mgb3duIGZhdGUuIEJ1dCBzaGUgaXMgbm90IGFsb25lIGluIGhlciBxdWVzdCB0byBzZXBhcmF0ZSByZWxpcXVhcmllcyBmcm9tIHVuaG9seSBtaW5kcyB3aG8gZGFyZSB0byBoYXJuZXNzIHNpbmlzdGVyIHBvd2VyLiBBIGRhbmdlcm91cyB5ZXQgZW5pZ21hdGljIEplc3VpdCwgc3dvcm4gdG8gcHJvdGVjdCB0aGUgVmF0aWNhbiBhdCBhbnkgY29zdCwgYSBicmlsbGlhbnQgeW91bmcgYXJ0aXN0IHdob3NlIGdlbml1cyBwb3J0cmF5cyBhIHRydXRoIHRvbyBwb3RlbnQgZm9yIHdvcmRzIGFuZCBhIGZhbWVkIG1vbnN0ZXIgaHVudGVyIHdpdGggYSB0ZXJyaWZ5aW5nIGFnZW5kYSBhcmUgdGhlIGtleXMgdG8gdGhlIHNlY3JldHMgdGhhdCBsaWUgaW4gdGhlIGhlYXJ0IG9mIExvcyBBbGFtb3MtYW5kIHVubG9ja2luZyB0aGUgZG9vciB0byB0aGUgdmVyeSBmYWJyaWMgb2YgdGltZSBpdHNlbGYuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAwNyBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMDcgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMDQubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMDQubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzAtODAyMzIxOTc3Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAwNSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTlRvZ1JtOXlZbWxrWkdWdUlFTnBkSGs9IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAwNS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs1JiN4M0E7JiN4MjA7Rm9yYmlkZGVuJiN4MjA7Q2l0eSIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzAtODAyMzIxOTc3IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3MC04MDIzMjE5Nzcgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3MC04MDIzMjE5NzciKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzcwLTgwMjMyMTk3NyAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+NSA6PC9zcGFuPiAgICAgICAgICAgICAgICBGb3JiaWRkZW4gQ2l0eSAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBKdWwgMSwgMjAwNyAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA2IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkEgc3R1bm5pbmcgYXJ0aWZhY3QgaG9sZHMgdGhlIGtleSB0byBhbiB1bnRhcHBlZCBwb3dlciBvZiBnbG9iYWwgZGVzdHJ1Y3Rpb24uPGJyLz4gPGJyLz5XaGlsZSB3b3JraW5nIG9uIGEgZGlnIGluIHRoZSBDYWxpZm9ybmlhIHdpbGRlcm5lc3MsIGFyY2hhZW9sb2dpc3QtYWR2ZW50dXJlciBBbm5qYSBDcmVlZCB1bmNvdmVycyBldmlkZW5jZSBvZiBhIHRyYWdlZHkgdGhhdCdzIGxpbmtlZCB0byBDaGluZXNlIG1pbmVycyBkdXJpbmcgdGhlIGRheXMgb2YgdGhlIEdvbGQgUnVzaC4gQSBzdWRkZW4gYXR0YWNrIG9uIHRoZSBzaXRlIGJ5IHNoYWRvdyBpZiBndXJlcyBkcml2ZXMgQW5uamEgdG8gZmluZCB0aGUgY29ubmVjdGlvbiB0byBhIG15c3RlcmlvdXMgYnVyaWVkIGNpdHkgaW4gQ2hpbmEuIEx1cmVkIGJ5IGxlZ2VuZHMgb2YgZ29sZCwgYmV0cmF5YWwgYW5kIHRoZSB2ZW5nZWFuY2Ugb2YgYSBIYW4gRHluYXN0eSBvdmVybG9yZCwgQW5uamEgdHJhdmVscyBvbiB0aGUgT3JpZW50IEV4cHJlc3MsIGJhdHRsaW5nIGF2YXJpY2lvdXMgdHJlYXN1cmUgaHVudGVycyBhbmQgYSBtb2Rlcm4tZGF5IGRlc2NlbmRhbnQgb2YgYW4gYW5jaWVudCBsZWFndWUgb2YgYXNzYXNzaW5zLiBIZXIgYWR2ZXJzYXJpZXMgd2lsbCBzdG9wIGF0IG5vdGhpbmcgdG8gc3Rha2UgdGhlaXIgY2xhaW0gb24gdGhlIGZhYmxlZCBsb3N0IGNpdHksIHdoZXJlIGEgSGFuIGxlYWRlcidzIGRhcmsgcGFzdCBwcm9taXNlcyBkb29tIGZvciB0aG9zZSB3aG8gZGFyZSB0byByZXZlYWwgaXRzIGV2aWwgcG93ZXIuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAwNyBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMDcgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMDUubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMDUubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzEtMTQ4MjkzODQ0OSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMDYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05qb2dWR2hsSUV4dmMzUWdVMk55YjJ4c2N3PT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDA2LmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzYmI3gzQTsmI3gyMDtUaGUmI3gyMDtMb3N0JiN4MjA7U2Nyb2xscyIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzEtMTQ4MjkzODQ0OSB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzEtMTQ4MjkzODQ0OSBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzcxLTE0ODI5Mzg0NDkiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzcxLTE0ODI5Mzg0NDkgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjYgOjwvc3Bhbj4gICAgICAgICAgICAgICAgVGhlIExvc3QgU2Nyb2xscyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBTZXAgMSwgMjAwNyAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkFuY2llbnQgcGFweXJ1cyBzY3JvbGxzIHJlY292ZXJlZCBhbW9uZyB0aGUgY2hhcnJlZCBydWlucyBvZiB0aGUgTGlicmFyeSBvZiBBbGV4YW5kcmlhIHJldmVhbCBhc3RvbmlzaGluZyB0ZXh0cyB0aGF0IGRldGFpbCB0aGUgd29uZGVycyBvZiBBdGxhbnRpcy1rbm93bGVkZ2UgdGhhdCBjb3VsZCBzaGF0dGVyIHRoZSBibHVlcHJpbnQgb2Ygd29ybGQgZW5lcmd5LiBBcmNoYWVvbG9naXN0IEFubmphIENyZWVkIGNvbmZyb250cyBzaGFkb3cgZmlndXJlcyBkZXRlcm1pbmVkIHRvIHByZXNlcnZlIGVtcGlyZXMgYnVpbHQgb24gcG93ZXIsIGdyZWVkIGFuZCBnbG9iYWwgbWFuaXB1bGF0aW9uLCBmaW5kaW5nIHVubGlrZWx5IGFsbGllcyBpbiBhIG15c3RlcmlvdXMgQW1lcmljYW4gd2l0aCBjb25uZWN0aW9ucyBpbiBoaWdoIHBsYWNlcywgYW5kIGEgeW91bmcgbGluZ3Vpc3RpY3MgcHJvZGlneSB3aXRoIGF0dGl0dWRlLiBEb2RnaW5nIGEgcGV0cm9sZXVtIGNvbmdsb21lcmF0ZSBhbmQgdGhlaXIgcGV0IGtpbGxlcnMgb24gYSBoaWdoLXNwZWVkIGNoYXNlIHRoYXQgbGVhZHMgZnJvbSBFZ3lwdCB0byB0aGUgTm9ydGggU2VhIG9pbCBmaWVsZHMgdG8gdGhlIHVyYmFuIGJhdHRsZWdyb3VuZHMgb2YgQ2hpbmEsIEFubmphIGJlY29tZXMgYW4gdW53aWxsaW5nIGNvbnNwaXJhdG9yIGluIGEgYmlkIGZvciBwb3dlciB0byBjb250cm9sIHRoZSBiZWF0aW5nIGhlYXJ0IG9mIHRoZSB3b3JsZCdzIGVuZXJneS4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDA3IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAwNyBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAwNi5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAwNi5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzItMTg2NDc4MjAwMSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMDciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z056b2dSMjlrSUc5bUlGUm9kVzVrWlhJPSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMDcuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7NyYjeDNBOyYjeDIwO0dvZCYjeDIwO29mJiN4MjA7VGh1bmRlciIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzItMTg2NDc4MjAwMSB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzItMTg2NDc4MjAwMSBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzcyLTE4NjQ3ODIwMDEiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzcyLTE4NjQ3ODIwMDEgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjcgOjwvc3Bhbj4gICAgICAgICAgICAgICAgR29kIG9mIFRodW5kZXIgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gT2N0IDEsIDIwMDcgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5BcmNoYWVvbG9naXN0IEFubmphIENyZWVkIG5hcnJvd2x5IGVzY2FwZXMgYW4gYXR0YWNrIGJ5IHVua25vd24gZmlndXJlcyB3aGVuIHNoZSB0cmllcyB0byBjb2xsZWN0IGEgcGFja2FnZSBuZWFyIGhlciBsb2Z0LiBTaGUgbGF0ZXIgbGVhcm5zIHRoYXQgdGhlIHNlbmRlci1hbiBvbGQgY29sbGVhZ3VlIG5hbWVkIEZlbGxpbmktaGFzIGJlZW4gYnJ1dGFsbHkgbXVyZGVyZWQuPGJyLz4gPGJyLz5GZWxsaW5pIGhhZCBiZWVuIHJlc2VhcmNoaW5nIHRoZSBIYW1tZXIgb2YgVGhvciwgdGhlIE5vcnNlIGdvZCBvZiB0aHVuZGVyLCBhbmQgaGFkIGxpbmtlZCBpdCB0byBhIFZpa2luZyB3YXJyaW9yIGFuZCBhIHR3ZWxmdGgtY2VudHVyeSBMYXR2aWFuIHZpbGxhZ2UuIEEgY29kZWQgbWVzc2FnZSBpbiBGZWxsaW5pJ3MgcGFja2FnZSBsZWFkcyBBbm5qYSBvbiBhIHdpbGQgY2hhc2UgYWxvbmcgdGhlIGNhbmFscyBvZiBWZW5pY2UgdG8gTGF0dmlhIGZvciBtb3JlIGNsdWVzIHRvIGFuIGFuY2llbnQgdHJlYXN1cmUuIFJ1bW9yZWQgdG8gYmUgaGlkZGVuIGRlZXAgaW4gdGhlIGZvcmVzdHMgb2YgTGF0dmlhIGZvciBuaW5lIGh1bmRyZWQgeWVhcnMsIHRoaXMgZmFibGVkIHByaXplIGlzIGFsc28gc291Z2h0IGJ5IGEgcnV0aGxlc3MgY29ycHMgb2YgbWVyY2VuYXJpZXMuIEFuZCB0aGV5IHdpbGwgZG8gYW55dGhpbmcgdG8gZmluZCBpdC4gSW5jbHVkaW5nIGtpbGxpbmcgQW5uamEgQ3JlZWQuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAwNyBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMDcgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMDcubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMDcubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzMtMTU3OTc1MDI4MyI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMDgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z09Eb2dVMlZqY21WMElHOW1JSFJvWlNCVGJHRjJaWE09IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAwOC5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs4JiN4M0E7JiN4MjA7U2VjcmV0JiN4MjA7b2YmI3gyMDt0aGUmI3gyMDtTbGF2ZXMiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzczLTE1Nzk3NTAyODMgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzczLTE1Nzk3NTAyODMgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3My0xNTc5NzUwMjgzIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3My0xNTc5NzUwMjgzICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj44IDo8L3NwYW4+ICAgICAgICAgICAgICAgIFNlY3JldCBvZiB0aGUgU2xhdmVzICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IERlYyAxLCAyMDA3ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+V2hlbiBhcmNoYWVvbG9naXN0IEFubmphIENyZWVkIGlzIGhpcmVkIHRvIGZpbmQgdGhlIGxvc3QgY2l0eSBvZiBQcm9taXNlIGluIEJyYXppbCwgc2hlIGlzIG1vcmUgdGhhbiBpbnRyaWd1ZWQuIExlZ2VuZHMgYWJvdW5kIG9mIGEgbWFnaWNhbCBwbGFjZSB3aGVyZSBzbGF2ZXMgd2VyZSBydW1vcmVkIHRvIGhhdmUgZGlzY292ZXJlZCB0aGUgc2VjcmV0IHRvIGV0ZXJuYWwgeW91dGggYW5kIGxpZmUuPGJyLz48YnIvPkJ1dCBzdHJhbmdlcnMgYXJlIG5vdCB3ZWxjb21lIGluIFByb21pc2UuPGJyLz48YnIvPkFubmphIHNvb24gbGVhcm5zIHRoYXQgdGhlIHJlc2lkZW50cyBoYXZlIGdvbmUgdG8gZXh0cmVtZSBsZW5ndGhzIHRvIGd1YXJkIHRoZWlyIHByZWNpb3VzIHNlY3JldC4gTWFraW5nIGhlciB3YXkgZnJvbSB0aGUgc3RlYW15IHBvcnQgb2YgQmVsJiMyMzM7bSB0byB0aGUgYnJ1dGFsIHNsdW1zIG9mIE5vcnRoZWFzdCBCcmF6aWwsIEFubmphIGZhY2VzIHVuZXhwZWN0ZWQgcGVyaWwsIGZyb20gcG9pc29uZWQgYXJyb3dzIHRvIEFtYXpvbmlhbiBhbmFjb25kYXMuIEFzIHNoZSBuYXZpZ2F0ZXMgdGhyb3VnaCBhIGxhbmQgd2hlcmUgc3Bpcml0dWFsaXR5IGNvbGxpZGVzIHdpdGggdGhlIG1hdGVyaWFsIHdvcmxkLCBBbm5qYSBtdXN0IGRpc3Rpbmd1aXNoIGJldHdlZW4gd2hhdCBpcyByZWFsIGFuZCB3aGF0IGlzIGltYWdpbmVkIGZvciBmZWFyIG9mIG1ha2luZyBhIHdyb25nIG1vdmUuIEJlY2F1c2UgYW55b25lIG9yIGFueXRoaW5nIGNvdWxkIGJlIGhlciBlbmVteS4gPGJyLz48YnIvPkFuZCBzaGUncyBnZXR0aW5nIHRvbyBjbG9zZS4uLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMDcgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDA3IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDA4Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDA4Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzQtOTExNTU4OTI3Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAwOSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnT1RvZ1YyRnljbWx2Y2lCVGNHbHlhWFE9IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAwOS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs5JiN4M0E7JiN4MjA7V2FycmlvciYjeDIwO1NwaXJpdCIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzQtOTExNTU4OTI3IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3NC05MTE1NTg5Mjcgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3NC05MTE1NTg5MjciKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzc0LTkxMTU1ODkyNyAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+OSA6PC9zcGFuPiAgICAgICAgICAgICAgICBXYXJyaW9yIFNwaXJpdCAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBGZWIgMSwgMjAwOCAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkEgcHJpY2VsZXNzIGFydGlmYWN0IGNvdWxkIHJlc3RvcmUgYSBmYW1pbHkncyBob25vci1vciBkZXN0cm95IGV2ZXJ5dGhpbmcgaW4gaXRzIHdha2UuPGJyLz48YnIvPldoaWxlIHZhY2F0aW9uaW5nIGluIFRva3lvLCBhcmNoYWVvbG9naXN0IEFubmphIENyZWVkIGlzIGFwcHJvYWNoZWQgYnkgYSBtYW4gd2hvIGRlc3BlcmF0ZWx5IG5lZWRzIGhlciBoZWxwLiBLZW5uaWNoaSBPZ2F3YSwgdGhlIGxhc3QgZGVzY2VuZGFudCBvZiBhbiBhbmNpZW50IHdhcnJpb3IgZmFtaWx5LCBpcyB0cnlpbmcgdG8gbG9jYXRlIGEgc3RvbGVuIGFydGlmYWN0LiBMZWdlbmQgaGFzIGl0IHRoYXQgdGhlIHZhanJhIHdhcyBteXN0aWNhbGx5IGVuZG93ZWQgYnkgYSB3YXJyaW9yJ3Mgc3Bpcml0IHRvIGhlbHAgdGhlIFl1bWVnYWt1cmUtcnl1IGZhbWlseSBmb3JldmVyIGJlIGEgc291cmNlIGZvciBnb29kLiBCdXQgdGhlIHZhanJhIGNvdWxkIGhlbHAgdGhlIGZvcmNlcyBvZiBldmlsIGlmIGl0IGdldHMgaW50byB0aGUgd3JvbmcgaGFuZHMuIEFuZCBub3cgdGhlIGJsb29kdGhpcnN0eSBZYWt1emEgYW5kIGEgZ3JvdXAgb2YgaGlyZWQgbmluamEgYXJlIGFmdGVyIGl0LiA8YnIvPjxici8+QXMgQW5uamEgYW5kIEtlbm5pY2hpIHRyZWsgdGhyb3VnaCB0aGUgZm9nLWVuc2hyb3VkZWQgbW91bnRhaW5zIG9mIHRoZSBJZ2EgcHJvdmluY2UgdG8gZmluZCB0aGUgcmVsaWMsIHRoZXkgbXVzdCBhbHNvIG91dHNtYXJ0IHRoZSB2aWNpb3VzIFlha3V6YSBhbmQgbmluamEgd2hvIGFyZSBkYW5nZXJvdXNseSBjbG9zZSB0byB1bmNvdmVyaW5nIHRoZSB2YWpyYSBmaXJzdC4uLiBhbmQgdG8gZGVzdHJveWluZyB0aGVpciBjb21wZXRpdGlvbi4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDA3IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAwOCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAwOS5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAwOS5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzUtNDU4MzQ4MTQ5Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAxMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTVRBNklGTmxjbkJsYm5RbmN5QkxhWE56IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAxMC5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDsxMCYjeDNBOyYjeDIwO1NlcnBlbnQmI3gyNztzJiN4MjA7S2lzcyIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzUtNDU4MzQ4MTQ5IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3NS00NTgzNDgxNDkgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3NS00NTgzNDgxNDkiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzc1LTQ1ODM0ODE0OSAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+MTAgOjwvc3Bhbj4gICAgICAgICAgICAgICAgU2VycGVudCdzIEtpc3MgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gTWF5IDEsIDIwMDggICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5Tb21lIHNheSB0aGV5IGFyZSBhIGN1cnNlZCBwZW9wbGUuIEJ1dCB0aG9zZSB3aG8gdHJ5IHRvIGZpbmQgdGhlbSB3aWxsIGJlIGp1c3QgYXMgdW5sdWNreS4uLiBXb3JraW5nIG9uIGEgZGlnIG9uIHRoZSBzb3V0aGVybiBjb2FzdCBvZiBJbmRpYSwgdGhlIGxhc3QgdGhpbmcgQW5uamEgQ3JlZWQgZXhwZWN0cyBpcyB0byBiZSBoaXQgYnkgYSB0c3VuYW1pLiBPciB0byBzdHJpa2UgYXJjaGFlb2xvZ2ljYWwgZ29sZC4gQnV0IHRoYXQncyBleGFjdGx5IHdoYXQgaGFwcGVucyB3aGVuIHNldmVyYWwgb2JqZWN0cyB3YXNoIGFzaG9yZSBpbiB0aGUgc3Rvcm0uPGJyLz48YnIvPlRoZSByZWxpY3MgY2FycnkgdW5mYW1pbGlhciBtYXJraW5ncyB0aGF0IGhpbnQgYXQgYSBsZWdlbmRhcnkgY2l0eS4gRXhjaXRlZCBieSB0aGUgcHJvc3BlY3Qgb2YgZGlzY292ZXJpbmcgYSBjdWx0dXJlIGJlbGlldmVkIGxvc3QgdG8gY2l2aWxpemF0aW9uLCBBbm5qYSBlbWJhcmtzIG9uIGEgcGVyaWxvdXMgam91cm5leSBkZWVwIGludG8gdGhlIGhlYXJ0IG9mIGRhbmdlci48YnIvPjxici8+U2hlIGxlYXJucyBvZiBhIG15c3RlcmlvdXMgYXJ0aWZhY3QgdGhhdCBjb3VsZCBwcm92aWRlIGNsdWVzIHRvIHRoZSB3aGVyZWFib3V0cyBvZiB0aGUgbG9zdCBjaXR5LCB3aGljaCBtZWFucyB0cmVra2luZyB0aHJvdWdoIGFuIGluaG9zcGl0YWJsZSBqdW5nbGUgYW5kIGZvcmJpZGRpbmcgdGVycmFpbi4gQnV0IG5hdHVyZSdzIGRlbml6ZW5zIGFuZCBkZWF0aCB0cmFwcyBhcmUgbm90IHRoZSBvbmx5IHRocmVhdHM6IHNvbWVvbmUgZWxzZSBpcyBhbHNvIHB1cnN1aW5nIHRoZSBwcml6ZS4gSnVzdCBhcyBBbm5qYSdzIGdyYWlsIGNvbWVzIGludG8gdmlldywgc2hlIG11c3Qgd2FyZCBvZmYgYW4gZXZlbiBncmVhdGVyIGV2aWwuIEJlY2F1c2UgZGVlcCBpbiB0aGUgTmlsZ2lyaXMgbW91bnRhaW5zIGlzIGEgcmFjZSBvZiBwZW9wbGUgdGhhdCB0aGUgd29ybGQgZm9yZ290Ljxici8+PGJyLz5BbmQgdGhleSBkb24ndCBsaWtlIHN0cmFuZ2Vycy4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDA4IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAwOCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAxMC5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAxMC5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzYtMTA1MzA2MjQ1OSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMTEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01URTZJRkJ5YjNabGJtRnVZMlU9IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAxMS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDsxMSYjeDNBOyYjeDIwO1Byb3ZlbmFuY2UiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzc2LTEwNTMwNjI0NTkgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzc2LTEwNTMwNjI0NTkgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3Ni0xMDUzMDYyNDU5Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3Ni0xMDUzMDYyNDU5ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4xMSA6PC9zcGFuPiAgICAgICAgICAgICAgICBQcm92ZW5hbmNlICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEF1ZyAxLCAyMDA4ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDYgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+V2hlbiBhIG15c3RlcmlvdXMgbWFuIG9yY2hlc3RyYXRlcyBhbiBhdHRhY2sgb24gYXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCBhbmQgdGhlbiBvZmZlcnMgaGVyIGFuIGFzc2lnbm1lbnQsIEFubmphIGlzIGJhZmZsZWQuIEJ1dCB0aGUgbWlzc2lvbiBpcyB0b28gaW50cmlndWluZyBmb3IgaGVyIHRvIHJlZnVzZS4gU2hlIG11c3QgZmluZCBhbiBvYmplY3QgdGhhdCBwb3NzZXNzZXMgYSBzYWNyZWQgYW5kIHBvd2VyZnVsIHNlY3JldCBvZmZlcmluZyBhdG9uZW1lbnQgdG8gYW55b25lIHdobyB1bmNvdmVycyBpdC1vciB3cmVha2luZyBoYXZvYyBvbiB0aGUgd29ybGQuPGJyLz48YnIvPlN0b2xlbiBmcm9tIGFuIGFuY2llbnQgb3JkZXIgb2Yga25pZ2h0cywgdGhlIHJlbGljIGlzIG5vdyBpbiB0aGUgY2x1dGNoZXMgb2YgYSBiYW5kIG9mIHBpcmF0ZXMgc2FpbGluZyB0aGUgU291dGggQ2hpbmEgU2VhLiBXaGVuIGEgZ292ZXJubWVudCBsZWFkZXIgdGhyZWF0ZW5zIHRvIGRlc3Ryb3kgdGhlIHBpcmF0ZSBzaGlwLWFsb25nIHdpdGggdGhlIGFydGlmYWN0LXJhdGhlciB0aGFuIGxldCBpdCBnZXQgaW50byB0aGUgd3JvbmcgaGFuZHMsIEFubmphIG11c3QgZGVjaWRlIGF0IHdoYXQgY29zdCB0aGUgc2FjcmVkIHByaXplIHNob3VsZCBiZSBwcm90ZWN0ZWQuIERlc3Ryb3lpbmcgaXQgd291bGQgZGVmaWxlIGhpc3RvcnkuIEJ1dCBzYXZpbmcgaXQgY291bGQgYnJpbmcgYWJvdXQgYXBvY2FseXBzZS4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDA4IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAwOCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAxMS5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAxMS5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzctMTI5Njk0ODgyNiI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMTIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01USTZJRlJvWlNCVGIzVnNJRk4wWldGc1pYST0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDEyLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzEyJiN4M0E7JiN4MjA7VGhlJiN4MjA7U291bCYjeDIwO1N0ZWFsZXIiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzc3LTEyOTY5NDg4MjYgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzc3LTEyOTY5NDg4MjYgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3Ny0xMjk2OTQ4ODI2Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3Ny0xMjk2OTQ4ODI2ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4xMiA6PC9zcGFuPiAgICAgICAgICAgICAgICBUaGUgU291bCBTdGVhbGVyICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IE5vdiAxLCAyMDA4ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+QW5uamEgQ3JlZWQganVtcHMgYXQgdGhlIGNoYW5jZSB0byBqb2luIGEgZmVsbG93IGFyY2hhZW9sb2dpc3Qgb24gYSBxdWVzdCB0byBmaW5kIGEgcmVsaWMuIEJ1dCBzaGUncyBub3Qgc28gdGhyaWxsZWQgYWJvdXQgbm9ydGhlcm4gU2liZXJpYSwgd2hlcmUgdGhleSBhcmUgaG9waW5nIHRvIGRpc2NvdmVyIHNvbWV0aGluZyBidXJpZWQgaW4gdGhlIGxvbmctdW5kaXN0dXJiZWQgc29pbCBvZiBSdXNzaWEncyBmcm96ZW4gdGVycmFpbi4gV2hlbiB0aGV5IHJlYWNoIHRoZSB0b3duIG9mIEpha3V0c2ssIEFubmphIGlzIHB1dCBvZmYgYnkgaXRzIGdyYXkgbGFuZHNjYXBlIGFuZCBoaWdobHkgc3VwZXJzdGl0aW91cyBpbmhhYml0YW50cy4gVGhleSBjbGFpbSB0aGV5IGFyZSBiZWluZyBodW50ZWQuIFRoZW4gb25lIG9mIHRoZSBWaWxsYWdlcnMgZ29lcyBtaXNzaW5nLjxici8+PGJyLz5UaGUgbG9jYWxzIGJsYW1lIHRoZSBLaG9zYWRhbSwgYSBnaG9zdCBvZiBhIGZhbGxlbiBnb2RkZXNzIHNhaWQgdG8gaW5nZXN0IHRoZSBzb3VscyBvZiB0aGUgZGVwYXJ0ZWQuIEJ1dCB0aGVyZSBhcmUgbm8gZnJlc2ggZ3JhdmVzLiBTaGUgaXMgbm93IGh1bnRpbmcgdGhlIGxpdmluZy4gV2hlbiBBbm5qYSBzZWVrcyB0byBkZXN0cm95IHRoZSBhcHBhcml0aW9uLCBzaGUgZGlzY292ZXJzIGFuIGV2ZW4gbW9yZSBob3JyaWZ5aW5nIHRydXRoLWFuZCBtYXkgaGF2ZSBoaXQgYSBkZWFkIGVuZC4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDA4IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAwOCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAxMi5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAxMi5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzgtMTU0ODQzMjQ0OSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMTMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01UTTZJRWRoWW5KcFpXd25jeUJJYjNKdSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMTMuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7MTMmI3gzQTsmI3gyMDtHYWJyaWVsJiN4Mjc7cyYjeDIwO0hvcm4iLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzc4LTE1NDg0MzI0NDkgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzc4LTE1NDg0MzI0NDkgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3OC0xNTQ4NDMyNDQ5Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3OC0xNTQ4NDMyNDQ5ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4xMyA6PC9zcGFuPiAgICAgICAgICAgICAgICBHYWJyaWVsJ3MgSG9ybiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBEZWMgMSwgMjAwOCAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPlRoZSBzdHJhbmdlciBjb3VsZCBiZSBpbnNhbmUuIE9yIGhlIGp1c3QgbWlnaHQgYmUgb3VyIHNhbHZhdGlvbi4gQXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCBpcyBtb3JlIHRoYW4gY3VyaW91cyB3aGVuIGEgZGVjcmVwaXQsIGFuY2llbnQtbG9va2luZyBtYW4gdmlzaXRzIGhlciwgY2xhaW1pbmcgdGhlIGVuZCBvZiB0aGUgd29ybGQgaXMgbmVhci4gVGhlIHN0cmFuZ2VyIHNwaW5zIHdpbGQgdGFsZXMgYW5kIHNwZWFrcyBhcyBpZiBoZSBhY3R1YWxseSBrbmV3IEtpbmcgQXJ0aHVyLiBCdXQsIHN0cmFuZ2VzdCBvZiBhbGwsIGhlIGluc2lzdHMgdGhhdCBBbm5qYSBpcyB0aGUgb25seSBvbmUgd2hvIGNhbiBzdG9wIHRoZSBob3JyaWJsZSBldmVudCB0aGF0IGlzIGFib3V0IHRvIGhhcHBlbi4gV2hlbiBBbm5qYSdzIG1lbnRvciBhbmQgZnJpZW5kIFJvdXggZ29lcyBtaXNzaW5nLCBzaGUgcXVpY2tseSByZWFsaXplcyB0aGVyZSBtYXkgYmUgc29tZXRoaW5nIHRvIHRoZSBzdHJhbmdlcidzIHN0b3JpZXMuIE1ha2luZyBoZXIgd2F5IHRocm91Z2ggdGhlIGRhcmsgYW5kIHZpb2xlbnQgdW5kZXJiZWxseSBvZiBJc3RhbmJ1bCwgQW5uamEgbXVzdCBmaW5kIGhlciBtaXNzaW5nIGZyaWVuZCBhbmQgdGhlIEhvbHkgR3JhaWwgYmVmb3JlIHRoZSByZWxpYyBnZXRzIGludG8gdGhlIHdyb25nIGhhbmRzLiBTaGUgbWF5IG5vdCBmdWxseSBiZWxpZXZlIHRoZSBmYXRlIG9mIHRoZSB3b3JsZCBpcyBvbiB0aGUgbGluZSwgYnV0IHNoZSBkb2Vzbid0IHJlYWxseSB3YW50IHRvIGRpZSBmaW5kaW5nIG91dC4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDA4IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAwOCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAxMy5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAxMy5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzktNzkyMTQyMzY5Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAxNCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTVRRNklGUm9aU0JIYjJ4a1pXNGdSV3hsY0doaGJuUT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDE0LmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzE0JiN4M0E7JiN4MjA7VGhlJiN4MjA7R29sZGVuJiN4MjA7RWxlcGhhbnQiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzc5LTc5MjE0MjM2OSB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzktNzkyMTQyMzY5IHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzNzktNzkyMTQyMzY5Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM3OS03OTIxNDIzNjkgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjE0IDo8L3NwYW4+ICAgICAgICAgICAgICAgIFRoZSBHb2xkZW4gRWxlcGhhbnQgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gRmViIDEsIDIwMDkgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5BZnRlciByaXNraW5nIGhlciBsaWZlIHRvIHVuY292ZXIgYSBDaGluZXNlIGltcGVyaWFsIHNlYWwsIG9ubHkgdG8gaGF2ZSBpdCBzdG9sZW4gYnkgYSB0b21iIHJvYmJlciwgYXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCBmZWVscyBzaGUgaGFzIGVuZHVyZWQgb25lIHRyZWFzdXJlLWh1bnRpbmcgZmlhc2NvIHRvbyBtYW55LiBCdXQgd2hlbiBhIG15c3RlcmlvdXMgY29sbGVjdG9yIG9mZmVycyBhIHJld2FyZCBmb3IgYSBwcmljZWxlc3MgZ29sZGVuIGVsZXBoYW50LCBBbm5qYSBnaXZlcyBpbi4gQWZ0ZXIgYWxsLCB0aGVyZSBhcmUgYmlsbHMgdG8gYmUgcGFpZCwgYWR2ZW50dXJlcyB0byBiZSBoYWQuIDxici8+PGJyLz5UaGUgYXJ0aWZhY3QgaXMgc2FpZCB0byBiZSBoaWRkZW4gaW4gYW4gYW5jaWVudCB0ZW1wbGUgaW4gdGhlIGp1bmdsZXMgb2YgU291dGhlYXN0IEFzaWEsIGFuZCBBbm5qYSBtdXN0IG1lZXQgd2l0aCB2YXJpb3VzIHNjaG9sYXJzIGluIG9yZGVyIHRvIHBpbnBvaW50IHRoZSBhcnRpZmFjdCdzIGxvY2F0aW9uLiBCdXQgd2hlbiBlYWNoIGV4cGVydCBzaGUgdmlzaXRzIGlzIGZvdW5kIGRlYWQsIEFubmphIGZlYXJzIHRoYXQgc29tZW9uZSBlbHNlIGlzIGFmdGVyIHRoZSBhcnRpZmFjdC4gQW5kIHNoZSdzIHByb2JhYmx5IG5leHQgb24gdGhlIGtpbGxlcidzIGxpc3QuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAwOCBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMDkgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMTQubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMTQubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODAtMTUxMDMzMDI5MiI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMTUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01UVTZJRk4zYjNKa2MyMWhiaWR6SUV4bFoyRmplUT09IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAxNS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDsxNSYjeDNBOyYjeDIwO1N3b3Jkc21hbiYjeDI3O3MmI3gyMDtMZWdhY3kiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzgwLTE1MTAzMzAyOTIgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzgwLTE1MTAzMzAyOTIgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4MC0xNTEwMzMwMjkyIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4MC0xNTEwMzMwMjkyICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4xNSA6PC9zcGFuPiAgICAgICAgICAgICAgICBTd29yZHNtYW4ncyBMZWdhY3kgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gTWF5IDEsIDIwMDkgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5JbiBuZWVkIG9mIGEgYnJlYWsgZnJvbSB3b3JrIGFuZCBzb21lIHJlY2VudCBuZWFyLWRlYXRoIGFkdmVudHVyZXMsIGFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQgdmlzaXRzIEZyYW5jZSB0byBpbmR1bGdlIG9uZSBvZiBoZXIgZ3JlYXRlc3QgZmFudGFzaWVzOiBmaW5kaW5nIEQnQXJ0YWduYW4ncyBsb3N0IHN3b3JkLiBUaGUgcmFwaWVyIHdhcyBhIGdpZnQgZnJvbSB0aGUgcmVpZ25pbmcgbW9uYXJjaCBhbmQgaGFzIGJlZW4gbWlzc2luZyBzaW5jZSB0aGUgc2V2ZW50ZWVudGggY2VudHVyeS48YnIvPjxici8+QW5kIEFzY2hlciBWYWxsb2lzLCBvbmUgb2YgQW5uamEncyB0cmVhc3VyZS1odW50aW5nIGZyaWVuZHMsIGJlbGlldmVzIGhlIGhhcyBsb2NhdGVkIHRoZSBzaXRlIG9mIHRoZSByZWxpYy48YnIvPjxici8+QnV0IHdoZW4gQW5uamEgbWVldHMgd2l0aCBWYWxsb2lzLCBzaGUgbGVhcm5zIHRoYXQgaGUncyBtYWRlIGEgaHVnZSBzYWNyaWZpY2UgdG8gcHJvdGVjdCB0aGUgc3dvcmQgYW5kIGl0cyBzZWNyZXQgZnJvbSBhIHJlbGljIGh1bnRlci4gQW5uamEgZGlzY292ZXJzIHRoYXQgdGhlIGFydGlmYWN0IGhvbGRzIHRoZSBrZXkgdG8gYSBmb3J0dW5lLiBBbmQgdGhlIG1hbiB3b24ndCBzdG9wIHVudGlsIGhlIGdldHMgZXZlcnl0aGluZyBoZSB3YW50cyAtIGluY2x1ZGluZyBBbm5qYS4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDA4IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAwOSBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAxNS5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAxNS5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODEtMTY2NTc1Mjk4NCI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMTYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01UWTZJRkJ2YkdGeUlGRjFaWE4wIgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAxNi5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDsxNiYjeDNBOyYjeDIwO1BvbGFyJiN4MjA7UXVlc3QiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzgxLTE2NjU3NTI5ODQgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzgxLTE2NjU3NTI5ODQgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4MS0xNjY1NzUyOTg0Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4MS0xNjY1NzUyOTg0ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4xNiA6PC9zcGFuPiAgICAgICAgICAgICAgICBQb2xhciBRdWVzdCAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBBdWcgMSwgMjAwOSAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPldoZW4gYXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCByZWx1Y3RhbnRseSBhZ3JlZXMgdG8gaGVscCBhbiBvbGQgY29sbGVhZ3VlIG9uIGEgZGlnIGluIEFudGFyY3RpY2EsIHNoZSB3b25kZXJzIHdoYXQgaGUncyBnb3R0ZW4gaGVyIGludG8uIEl0IHR1cm5zIG91dCB0aGF0IGhlciBmb3JtZXIgYXNzb2NpYXRlIGhhcyBmb3VuZCBhIG5lY2tsYWNlIG1hZGUgb2YgYW4gdW5rbm93biBtZXRhbCBkZXBpY3RpbmcgdGhyZWUgc25ha2VzLiBIZSBjbGFpbXMgaXQncyBvdmVyIGZvcnR5IHRob3VzYW5kIHllYXJzIG9sZC1hbmQgdGhhdCBpdCBtYXkgbm90IGhhdmUgZWFydGhseSBvcmlnaW5zLjxici8+PGJyLz5BcyB0aGUgcGFpciBjb25kdWN0IHRoZWlyIHJlc2VhcmNoLCBBbm5qYSBzb29uIHJlYWxpemVzIHNoZSBoYXMgbW9yZSB0byB3b3JyeSBhYm91dCB0aGFuIGJlaW5nIGNhdWdodCBpbiBzbm93IHNsaWRlcy4gQmVjYXVzZSBldmVyeW9uZSBpcyBoaWRpbmcgc29tZXRoaW5nLWZyb20gaGVyIGZyaWVuZCwgdG8gdGhlIFUuUy4gbWlsaXRhcnkgcGVyc29ubmVsIGd1YXJkaW5nIHRoZSBzaXRlLiBXaXRoIG5vIG9uZSB0byB0cnVzdCBhbmQgc29tZW9uZSBvdXQgdG8ga2lsbCBoZXIsIEFubmphIGhhcyBub3doZXJlIHRvIHR1cm4uIEFuZCBldmVyeXRoaW5nIHRvIGxvc2UuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAwOSBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMDkgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMTYubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMTYubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODItMTUxNDQyODgyOSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMTciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01UYzZJRVYwWlhKdVlXd2dTbTkxY201bGVRPT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDE3LmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzE3JiN4M0E7JiN4MjA7RXRlcm5hbCYjeDIwO0pvdXJuZXkiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzgyLTE1MTQ0Mjg4MjkgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzgyLTE1MTQ0Mjg4Mjkgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4Mi0xNTE0NDI4ODI5Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4Mi0xNTE0NDI4ODI5ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4xNyA6PC9zcGFuPiAgICAgICAgICAgICAgICBFdGVybmFsIEpvdXJuZXkgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gTm92IDEsIDIwMDkgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5BZnRlciBzaG9vdGluZyBhbiBlcGlzb2RlIG9mIENoYXNpbmcgSGlzdG9yeSdzIE1vbnN0ZXJzIGF0IGEgZGlnIGluIEF1c3RyYWxpYSwgQW5uamEgQ3JlZWQgaXMgbGVmdCBmZWVsaW5nIG1pbGRseSB1bmltcHJlc3NlZC4gVGhlIGFydGlmYWN0cyBiZWluZyB1bmNvdmVyZWQgYXJlIGNvbnNpZGVyZWQgZnJpbmdlIGJ5IGV4cGVydHMgd2hvIGRvdWJ0IHRoZWlyIGF1dGhlbnRpY2l0eS4gQW5uamEgaXMgZGlzYXBwb2ludGVkIGJ5IHRoZSBnZW5lcmFsIGxhY2sgb2YgbXlzdGVyeSBpbnZvbHZlZC4gQnV0IGhlciBib3JlZG9tIGlzIHF1aWNrbHkgcmVwbGFjZWQgd2l0aCBmZWFyIHdoZW4gYWxsIHRoYXQncyBsZWZ0IG9mIGhlciBjYW1lcmFtYW4gaXMgYSBkcm9wIG9mIGJsb29kIG9uIGhpcyBob3RlbC1yb29tIGNhcnBldC4gPGJyLz48YnIvPkFzIHNoZSBsb29rcyBmb3IgaGVyIGZyaWVuZCwgQW5uamEgbmFycm93bHkgZXNjYXBlcyBhbiBhdHRhY2sgYnkgZ3VubWVuLiBTaGUgcmVhbGl6ZXMgaGVyIGNhbWVyYW1hbiBtdXN0IGhhdmUgY2FwdHVyZWQgdGhlIGltYWdlIG9mIHNvbWV0aGluZyBzbyB2YWx1YWJsZSB0aGF0IHNvbWVvbmUgd291bGQga2lsbCB0aGVtIGZvciBqdXN0IGhhdmluZyBkYXJlZCBsb29rIGF0IGl0LiBXaGVuIGl0IGJlY29tZXMgY2xlYXIgdGhhdCBldmVyeW9uZSBvbiB0aGUgZGlnIGlzIGF0IHJpc2ssIEFubmphIGJlZ2lucyB0byB0aGluayB0aGV5J3JlIGluIGRhbmdlciBub3QgYmVjYXVzZSBvZiB3aGF0IHRoZXkgc2F3LCBidXQgd2hvLi4uICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAwOSBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMDkgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMTcubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMTcubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODMtMTQzNDQwNTgwOSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMTgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01UZzZJRk5oWTNKcFptbGpaUT09IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAxOC5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDsxOCYjeDNBOyYjeDIwO1NhY3JpZmljZSIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODMtMTQzNDQwNTgwOSB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODMtMTQzNDQwNTgwOSBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzgzLTE0MzQ0MDU4MDkiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzgzLTE0MzQ0MDU4MDkgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjE4IDo8L3NwYW4+ICAgICAgICAgICAgICAgIFNhY3JpZmljZSAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBEZWMgMSwgMjAwOSAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPk9uIGFzc2lnbm1lbnQgaW4gdGhlIFBoaWxpcHBpbmVzLCBhcmNoYWVvbG9naXN0IEFubmphIENyZWVkIG1lZXRzIHdpdGggYSBjb250YWN0IHRvIHZlcmlmeSBzb21lIGluZm9ybWF0aW9uLiBFYXN5IGVub3VnaC4gQnV0IHdoZW4gdGhlIG1hbiBkb2Vzbid0IHR1cm4gb3V0IHRvIGJlIHdob20gaGUgc2FpZCBoZSB3YXMsIEFubmphIGZpbmRzIGhlcnNlbGYgaGFuZGN1ZmZlZCwgYmxpbmRmb2xkZWQgYW5kIGtpZG5hcHBlZC4gQW5kIHRvIG1ha2UgbWF0dGVycyB3b3JzZSwgc2hlJ3MgYSBwcmlzb25lciBvZiB0aGUgZHJlYWRlZCBBYnUgU2F5eWFmLCBhIG5vdG9yaW91cyB0ZXJyb3Jpc3QgZ3JvdXAuIDxici8+PGJyLz5EZXNwZXJhdGUgdG8gZXNjYXBlLCBBbm5qYSBpcyBhYmxlIHRvIGZsZWUgYWZ0ZXIgc2xheWluZyBvbmUgb2YgaGVyIGNhcHRvcnMuIEJ1dCBzaGUgc29vbiBnZXRzIGxvc3QgaW4gdGhlIGhvc3RpbGUganVuZ2xlLCB3aGljaCBpcyBydW1vcmVkIHRvIGJlIGhhdW50ZWQgYnkgdGhlIHNwaXJpdHMgb2YgTW9ybyB3YXJyaW9ycyB3aG8gZm91Z2h0IG9mZiBjb25xdWlzdGFkb3JzIHdpdGggdGhlaXIgYmxhZGVzLiBBcyBzaGUgdHJpZXMgdG8gc3RheSBhIHN0ZXAgYWhlYWQgb2YgdGhlIHRlcnJvcmlzdHMgYW5kIG5vdC1zby1kZWFkIHNwaXJpdHMgd2l0aCBhIHRhc3RlIGZvciBodW1hbiBmbGVzaCwgQW5uamEncyBub3Qgc3VyZSBzaGUnbGwgbGVhdmUgdGhlIGp1bmdsZSBhbGl2ZS4uLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMDkgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDA5IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDE4Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDE4Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODQtMjEyNzQxNjU5Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAxOSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTVRrNklGTmxaV3RsY2lkeklFTjFjbk5sIgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAxOS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDsxOSYjeDNBOyYjeDIwO1NlZWtlciYjeDI3O3MmI3gyMDtDdXJzZSIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODQtMjEyNzQxNjU5IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4NC0yMTI3NDE2NTkgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4NC0yMTI3NDE2NTkiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzg0LTIxMjc0MTY1OSAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+MTkgOjwvc3Bhbj4gICAgICAgICAgICAgICAgU2Vla2VyJ3MgQ3Vyc2UgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gSmFuIDEsIDIwMTAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5Fbmxpc3RlZCBieSB0aGUgSmFwYW4gQnVkZGhpc3QgRmVkZXJhdGlvbiB0byBjYXRhbG9nIGEgbnVtYmVyIG9mIGFuY2llbnQgc2hyaW5lcyBkb3R0ZWQgYWNyb3NzIE5lcGFsLCBhcmNoYWVvbG9naXN0IEFubmphIENyZWVkIGlzIGhvbm9yZWQgdG8gaGVscC4gUG9saXRpY2FsIHZpb2xlbmNlIGhhcyBwcm9tcHRlZCB0aGUgRmVkZXJhdGlvbiB0byBwcm90ZWN0IGhvbHkgc2l0ZXMgZnJvbSBkZXNlY3JhdGlvbiBhbmQgdmFuZGFsaXNtLCBhbmQgQW5uamEgaXMgdGhlaXIgbGFzdCBob3BlIHRvIHByb3Blcmx5IGNvbnNlcnZlIHRoZXNlIHNpdGVzLiA8YnIvPjxici8+V2hlcmUgdGhlcmUncyB2YW5kYWxpc20sIHRoZXJlJ3MgcGx1bmRlcmluZywgYW5kIGxvY2FsIHBvbGljZSBzb29uIGJlY29tZSBzdXNwaWNpb3VzIG9mIEFubmphJ3MgcHJlc2VuY2UuIEJ1dCBzaGUgaXMgbW9yZSBjb25jZXJuZWQgYWJvdXQgdGhlIGFudGlxdWVzIHNtdWdnbGVycyBhbmQgTWFvaXN0IGd1ZXJyaWxsYXMgdHJ5aW5nIHRvIGtpbGwgaGVyLiBXaGVuIHNoZSBtdXN0IHRyZWsgaGlnaCB1cCBpbiB0aGUgSGltYWxheWFzIHRvIHByb3RlY3QgYSBzYWNyZWQgZ29sZGVuIEJ1ZGRoYSBzdGF0dWUgZnJvbSBmYWxsaW5nIGludG8gdGhlIGhhbmRzIG9mIGhlciBwdXJzdWVycywgc2hlJ3MgdG9sZCB0aGF0IHRoZSBwbGFjZSBpcyBjdXJzZWQtYW5kIGd1YXJkZWQgYnkgZGVtb25zLiBBbmQgQW5uamEgaGFzIG5vIGNob2ljZSBidXQgdG8gZmFjZSBoZXIgZGVtb25zLi4uICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAwOSBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTAgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMTkubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMTkubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODUtMTUyNjU2NjY2Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAyMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTWpBNklFWnZiM1J3Y21sdWRITT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDIwLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzIwJiN4M0E7JiN4MjA7Rm9vdHByaW50cyIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODUtMTUyNjU2NjY2IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4NS0xNTI2NTY2NjYgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4NS0xNTI2NTY2NjYiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzg1LTE1MjY1NjY2NiAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+MjAgOjwvc3Bhbj4gICAgICAgICAgICAgICAgRm9vdHByaW50cyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBGZWIgMSwgMjAxMCAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPldoZW4gaGVyIGxvbmd0aW1lIGZyaWVuZCBjbGFpbXMgdG8gaGF2ZSBldmlkZW5jZSBvZiBCaWcgRm9vdCdzIGV4aXN0ZW5jZSwgYXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCBjYW4ndCByZXNpc3QgY2hlY2tpbmcgaXQgb3V0IGZvciBoZXJzZWxmLXNoZSdzIGJlZW4gZGViYXRpbmcgdGhlIHN1YmplY3QgZm9yIHllYXJzLiBBbm5qYSdzIGN1cmlvc2l0eSBsZWFkcyBoZXIgZGVlcCBpbnRvIHRoZSB3b29kcyBvZiB0aGUgUGFjaWZpYyBOb3J0aHdlc3QsIHRvIG1lZXQgSmVubnkgd2hlcmUgdGhlIHN1cHBvc2VkIHRyYWlsIGhhcyBiZWVuIGxlZnQgYnkgdGhlIG9uZSBhbmQgb25seSBTYXNxdWF0Y2guIDxici8+PGJyLz5CdXQgd2hlbiBBbm5qYSBhcnJpdmVzIGF0IHRoZSBkZXN0aW5hdGlvbiwgYSBncm91cCBvZiBhcm1lZCB0aHVncyB3YXJuIGhlciB0byBsZWF2ZSB0aGUgYXJlYSwgYW5kIGhlciBmcmllbmQgaXMgbm93aGVyZSB0byBiZSBmb3VuZC4gTm93IHRoZSBzZWFyY2ggZm9yIFNhc3F1YXRjaCB0dXJucyBpbnRvIGEgcmVzY3VlIG1pc3Npb24sIGFuZCBBbm5qYSBoYXMgb25seSBoZXIgaW5zdGluY3RzIHRvIGd1aWRlIGhlciBpbiBhIGZvcmVzdCBmdWxsIG9mIHByZWRhdG9ycywgc2NhdmVuZ2VycyBhbmQgc3Bpcml0cy4gQW5kIHNvbWVvbmUsIG9yIHNvbWV0aGluZywgZG9lcyBub3Qgd2FudCBoZXIgdGhlcmUuLi4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDA5IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxMCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAyMC5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAyMC5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODYtMTU4ODY3OTQ0Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAyMSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTWpFNklGQmhjbUZrYjNnPSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMjEuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7MjEmI3gzQTsmI3gyMDtQYXJhZG94Ii8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4Ni0xNTg4Njc5NDQgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzg2LTE1ODg2Nzk0NCBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzg2LTE1ODg2Nzk0NCIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODYtMTU4ODY3OTQ0ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4yMSA6PC9zcGFuPiAgICAgICAgICAgICAgICBQYXJhZG94ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEFwciAxLCAyMDEwICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDcgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+VGhlIG9mZmVyIHdhcyB0b28gZGFuZ2Vyb3VzLi4uIGFuZCB0b28gdGVtcHRpbmcgdG8gcmVmdXNlPGJyLz48YnIvPkFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQgcmVsdWN0YW50bHkgYWNjZXB0cyBhbiBhc3NpZ25tZW50IG9uIGJlaGFsZiBvZiB0aGUgVS5TLiBHb3Zlcm5tZW50LiBTaGUgaXMgdG8gbGVhZCBhbiBleHBlZGl0aW9uIHRvIHRoZSB0b3Agb2YgTW91bnQgQXJhcmF0IHRvIGZpbmQgdGhlIHRydXRoIGFib3V0IHdoYXQgaXMgdGhvdWdodCB0byBiZSB0aGUgcmVtYWlucyBvZiBOb2FoJ3MgQXJrLiBCdXQgd2hpbGUgc2hlIGRvdWJ0cyB0aGUgbWFzc2l2ZSBhbm9tYWx5IGlzIHJlYWxseSB0aGUgQXJrLCBzaGUgY2FuJ3QgaGVscCBidXQgd29uZGVyIHdoYXQgaXMgdXAgdGhlcmUuIEFubmphIG11c3QgZXNjb3J0IGEgZ3JvdXAgb2YgbWlsaXRhbnQgZnVuZGFtZW50YWxpc3RzIHRocm91Z2ggY2l2aWwgdW5yZXN0IGluIGVhc3Rlcm4gVHVya2V5LCBidXQgdGhlIGltcGVuZGluZyB3YXIgaXMgbm90aGluZyBjb21wYXJlZCB0byB0aGUgZGFuZ2VyIHRoYXQgbGllcyBoaWRkZW4gd2l0aGluIHRoZSB0ZWFtLiBXaXRoIGxpdmVzIGF0IHN0YWtlLCBBbm5qYSBoYXMgbm8gY2hvaWNlIGJ1dCB0byBwcm90ZWN0IHRoZSBpbm5vY2VudC4uLiBhbmQgZ2V0IHRoZW0gb3V0IG9mIHRoZXJlIGFsaXZlLiBMZWdlbmQgc2F5cyB0aGUgQXJrIG9uY2Ugc2F2ZWQgbWFua2luZCwgYnV0IHRoaXMgdGltZSBpdCBjb3VsZCBraWxsIHRoZW0gYWxsLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMDkgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDEwIFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDIxLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDIxLm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODctMTIyMzk2NDYxOSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMjIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01qSTZJRlJvWlNCVGNHbHlhWFFnUW1GdWJtVnkiCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDIyLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzIyJiN4M0E7JiN4MjA7VGhlJiN4MjA7U3Bpcml0JiN4MjA7QmFubmVyIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4Ny0xMjIzOTY0NjE5IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4Ny0xMjIzOTY0NjE5IHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODctMTIyMzk2NDYxOSIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODctMTIyMzk2NDYxOSAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+MjIgOjwvc3Bhbj4gICAgICAgICAgICAgICAgVGhlIFNwaXJpdCBCYW5uZXIgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gTm92IDEsIDIwMTAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5HZW5naGlzIEtoYW4gY2FydmVkIG91dCBhIGxlZ2FjeSBvZiBibG9vZHNoZWQgYW5kIGNvbnF1ZXJlZCBraW5nZG9tcyB0aGF0IGhhcyBsYXN0ZWQgYWxtb3N0IGVpZ2h0IGh1bmRyZWQgeWVhcnMuIEJ1dCB3aGlsZSBoaXMgbmFtZSBhbmQgZGVlZHMgbGl2ZSBvbiBpbiB0aGUgYW5uYWxzIG9mIGhpc3RvcnksIGhpcyB0b21iIGhhcyBuZXZlciBiZWVuIGxvY2F0ZWQuLi4gdW50aWwgbm93Ljxici8+PGJyLz5Ob3QgZXZlcnlvbmUgaXMgY29udmluY2VkIHRoYXQgdGhlIGRpYXJ5IGFuZCB0aGUgbWFwLCBzYWlkIHRvIGxlYWQgdG8gdGhlIGdyZWF0IHdhcnJpb3IncyBmaW5hbCByZXN0aW5nIHBsYWNlLCBhcmUgYXV0aGVudGljLiBBcmNoYWVvbG9naXN0IEFubmphIENyZWVkIGlzIGFtb25nIHRoZXNlIGRvdWJ0ZXJzLiBUaGUgcmVhbGl0eSBpcyB0aGF0IHRoZSBib2R5IHdhcyBsb3N0IHRvIGhpc3RvcnkuIEJ1dCBkZXNwaXRlIGhlciBza2VwdGljaXNtLCBBbm5qYSBzdWRkZW5seSBmaW5kcyBoZXJzZWxmIHB1bGxlZCBhbG9uZyBhbiBpbmNyZWFzaW5nbHkgY29tcGxleCB0cmFpbCBvZiBjbHVlcywgZWFjaCBtb3JlIHJlbW90ZSB0aGFuIHRoZSBsYXN0Ljxici8+PGJyLz5BbmQgYXMgc2hlIGFuZCBoZXIgY29tcGFuaW9ucyByYWNlIHRvIHRoZWlyIGZpbmFsIGRlc3RpbmF0aW9uLCBvbmUgdGhpbmcgaXMgY2xlYXIgLS0gdGhlIG9ubHkgdG9tYiBzaGUgbWF5IGZpbmQgaXMgaGVyIG93bi4uLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTAgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDEwIFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDIyLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDIyLm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODgtMTI1MjIwMDE4MiI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMjMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01qTTZJRk5oWTNKbFpDQkhjbTkxYm1RPSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMjMuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7MjMmI3gzQTsmI3gyMDtTYWNyZWQmI3gyMDtHcm91bmQiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzg4LTEyNTIyMDAxODIgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzg4LTEyNTIyMDAxODIgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4OC0xMjUyMjAwMTgyIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4OC0xMjUyMjAwMTgyICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4yMyA6PC9zcGFuPiAgICAgICAgICAgICAgICBTYWNyZWQgR3JvdW5kICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEZlYiAxLCAyMDExICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+SW4gYSBsYW5kIG9mIHN1Ynplcm8gdGVtcGVyYXR1cmVzIGFuZCBzbm93LWNvdmVyZWQgdmlzdGFzLCBzdXJ2aXZhbCBpcyBhIGNoYWxsZW5nZS4gQnV0IGZvciB0aGUgQXJha3Rhay1hbiBpc29sYXRlZCBhbmQgbXlzdGVyaW91cyBJbnVpdCBwZW9wbGUtdGhpcyBoYXJzaCB0dW5kcmEgaXMgdGhlaXIgaGVyaXRhZ2UuIFVudGlsIG5vdy4gQSBsYXJnZSBtaW5pbmcgY29tcGFueSBoYXMgcHVyY2hhc2VkIHRoZSBsYW5kLCBhbmQgdGhlIHNhY3JlZCBBcmFrdGFrIGJ1cmlhbCBzaXRlIHdpdGggaXQuIEJ1dCBtb3JlIHRoYW4gZGlhbW9uZCBkZXBvc2l0cyBhd2FpdCB0aGVtIHVuZGVyIHRoZSBkYXJrLCBpY3kgZWFydGguLi48YnIvPjxici8+Q29udHJhY3RlZCBieSB0aGUgbWluaW5nIGNvbXBhbnksIGFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQgaXMgdG8gb3ZlcnNlZSB0aGUgcHJvcGVyIHJlbG9jYXRpb24gb2YgdGhlIGJ1cmlhbCBzaXRlLiBIZXIgam9iIGlzIHRvIGVuc3VyZSB0aGF0IGVhY2ggYW5jaWVudCByZWxpYyBhbmQgYWxsIGh1bWFuIHJlbWFpbnMgYXJlIGNhcmVmdWxseSByZW1vdmVkLiBCdXQgdGhlIHNhY3JlZCBncm91bmQgaGFyYm9ycyBhIHRlcnJpYmxlIHNlY3JldC4gT25lIHRoYXQgYSBwb3dlcmZ1bCBncm91cCBvZiBtZW4gaW50ZW5kIHRvIHVubGVhc2ggb24gYW4gdW5zdXNwZWN0aW5nIHdvcmxkLXVubGVzcyBBbm5qYSBjYW4gZmluZCBhIHdheSB0byBzdG9wIHRoZW0uICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAxMCBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTEgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMjMubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMjMubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzODktMTg5ODk3NTY2NyI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMjQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01qUTZJRUp2Ym1VZ1EyOXVhblZ5WlhJPSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMjQuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7MjQmI3gzQTsmI3gyMDtCb25lJiN4MjA7Q29uanVyZXIiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzg5LTE4OTg5NzU2NjcgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzg5LTE4OTg5NzU2Njcgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4OS0xODk4OTc1NjY3Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM4OS0xODk4OTc1NjY3ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4yNCA6PC9zcGFuPiAgICAgICAgICAgICAgICBCb25lIENvbmp1cmVyICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IE1hciAxLCAyMDExICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDYgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+SW4gdGhlIHRpbWUgb2YgdGhlIENydXNhZGVzLCB0aGUgS25pZ2h0cyBUZW1wbGFycyB3ZXJlIGhvbHkgd2FycmlvcnMgd2hvIHNlZW1lZCB0byBiZSBibGVzc2VkIGJ5IEdvZCBoaW1zZWxmLiBCdXQgb3ZlciB0aGUgeWVhcnMsIHRoZSBvcmRlciBkaXNzb2x2ZWQgaW50byBteXN0ZXJpZXMgYm90aCBzYWNyZWQgYW5kIHByb2ZhbmUtY3JlYXRpbmcgYW4gb2JqZWN0IHdob3NlIHBvd2VyIGJlbmRzIHRvIHRoZSB0cnVlIG5hdHVyZSBvZiBpdHMgb3duZXIuLi4uPGJyLz48YnIvPkJ1dCB1bnRpbCBzaGUgaGVsZCBpdCBpbiBoZXIgaGFuZHMsIGFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQgaGFkbid0IGhlYXJkIG9mIHRoZSBTa3VsbCBvZiBTaWRvbiBub3IgdGhlIHR3aXN0ZWQgdGFsZSBvZiBpdHMgb3JpZ2lucy4gRXZlbiBub3csIHNoZSdzIHN0aWxsIG5vdCBjb252aW5jZWQuIFlldCBzb21lb25lIHdhbnRzIGl0IGJhZGx5IGVub3VnaCB0byBoaXJlIGEgbWFuIHdobyB3aWVsZHMgcG93ZXIgYmV5b25kIGhlciBpbWFnaW5pbmcuIFBvd2VyIGVub3VnaCB0byBwcmV2ZW50IEFubmphIGZyb20gcHJvdGVjdGluZyB0aGUgbXlzdGVyaW91cyBza3VsbC4gQW5kIHBvd2VyIGVub3VnaCB0byBraWxsLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTAgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDExIFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDI0Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDI0Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTAtNTAwNTk2OTIxIj4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAyNSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTWpVNklGUnlhV0poYkNCWFlYbHoiCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDI1LmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzI1JiN4M0E7JiN4MjA7VHJpYmFsJiN4MjA7V2F5cyIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTAtNTAwNTk2OTIxIHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5MC01MDA1OTY5MjEgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5MC01MDA1OTY5MjEiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzkwLTUwMDU5NjkyMSAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+MjUgOjwvc3Bhbj4gICAgICAgICAgICAgICAgVHJpYmFsIFdheXMgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gSnVsIDEsIDIwMTEgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNiBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5BIGZyaWdpZCBzcHJpbmcgbW9ybmluZyBhdCBhIE5hdGl2ZSBBbWVyaWNhbiBhcmNoYWVvbG9naWNhbCBkaWcgZXJ1cHRzIGludG8gc3VkZGVuIGFuZCBicnV0YWwgdmlvbGVuY2UsIGxlYXZpbmcgZml2ZSBwZW9wbGUgZGVhZCBhbmQgb25lIG1hbiBncmF2ZWx5IHdvdW5kZWQuIEFuZCBpbiBhIGhvc3BpdGFsLCB3aXRoIGFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQgYXQgaGlzIHNpZGUsIHRoZSBsYXN0IHN1cnZpdm9yIHV0dGVycyBoaXMgZmluYWwgd29yZHMgdG8gbmFtZSBoaXMga2lsbGVyLWEgc2tpbndhbGtlci48YnIvPjxici8+VGhlIHNraW53YWxrZXIgaXMgZmVhcmVkIGFtb25nIHRoZSBOYXZham8gYW5kIEFwYWNoZS4gSXQgaXMgd2l0Y2hjcmFmdCBvZiBhIG1vc3QgdGVycmlibGUgbmF0dXJlIHRoYXQgYWxsb3dzIGEgbWFuIHRvIHRha2UgdGhlIHNoYXBlIG9mIGEgd29sZi1hbmQga2lsbC4gQnV0IGFzIEFubmphIGRlbHZlcyBpbnRvIHRoZSBteXN0ZXJ5IG9mIHRoZSBza2lud2Fsa2VyLCBzaGUgZmluZHMgaGVyc2VsZiBwdWxsZWQgaW50byBhbiB1bmRlcndvcmxkIG9mIHZpb2xlbmNlIGFuZCB2aWNpb3VzIHJhZGljYWxzLCB0aHJlYWRlZCB3aXRoIGxlZ2VuZC4uLmFuZCBzb2Npb3BhdGhpYyBpbnRlbnQuPGJyLz48YnIvPkluIHRoaXMgd29ybGQsIEFubmphIGlzIHVud2VsY29tZS4gQW5kIGluIHRoaXMgd29ybGQsIHNoZSBjb3VsZCBiZSB0aGUgY3JlYXR1cmUncyBuZXh0IHZpY3RpbS4uLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTAgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDExIFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDI1Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDI1Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTEtMTU4Mjg2NzYzNCI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMjYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01qWTZJRlJvWlNCRWNtRm5iMjRuY3lCTllYSnIiCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDI2LmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzI2JiN4M0E7JiN4MjA7VGhlJiN4MjA7RHJhZ29uJiN4Mjc7cyYjeDIwO01hcmsiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzkxLTE1ODI4Njc2MzQgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzkxLTE1ODI4Njc2MzQgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5MS0xNTgyODY3NjM0Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5MS0xNTgyODY3NjM0ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4yNiA6PC9zcGFuPiAgICAgICAgICAgICAgICBUaGUgRHJhZ29uJ3MgTWFyayAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBTZXAgMSwgMjAxMSAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQgYW5kIGhlciBzd29yZCBoYXZlIG5ldmVyIGJlZW4gb3V0bWF0Y2hlZC0gdW50aWwgbm93LiBXaGVuIGEgc3VycHJpc2UgcGFydHkgZm9yIGhlciBtZW50b3IgUm91eCBpbmNsdWRlcyBzb21lIHVuaW52aXRlZCBndWVzdHMsIEFubmphIGZpbmRzIGhlcnNlbGYgZmlnaHRpbmcgZGVzcGVyYXRlbHkgZm9yIGhlciBsaWZlLiBUaGUgaW50cnVkZXJzIGVzY2FwZSBidXQgbGVhdmUgYSBzaW5pc3RlciBtZXNzYWdlIGJlaGluZC4gPGJyLz48YnIvPkEgbGVnZW5kIGhhcyByZXN1cmZhY2VkIGFib3V0IGEgc3dvcmQgdGhhdCBzaG91bGQgYmUgZmVhcmVkLiBBIHN3b3JkIHRoYXQgc2Vla3MgYSBtYXN0ZXIgYXMgYmxvb2R0aGlyc3R5IGFzIGl0c2VsZi4gSXQgaXMgd2llbGRlZCBieSBhbiBhc3Nhc3NpbiBrbm93biBhcyB0aGUgRHJhZ29uIHdobyBpbml0aWF0ZXMgYSB0ZXJyaWJsZSBnYW1lIG9mIGNhdCBhbmQgbW91c2UuIEV2ZW50dWFsbHksIHRoZSB0d28gc3dvcmRzLWxpZ2h0IGFuZCBkYXJrLW11c3QgbWVldC4uLmFuZCBvbmx5IG9uZSBzaGFsbCB0cml1bXBoLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTAgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDExIFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDI2Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDI2Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTItNDc4MDUyNDM5Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAyNyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTWpjNklGQm9ZVzUwYjIwZ1VISnZjM0JsWTNRPSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMjcuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7MjcmI3gzQTsmI3gyMDtQaGFudG9tJiN4MjA7UHJvc3BlY3QiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzkyLTQ3ODA1MjQzOSB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTItNDc4MDUyNDM5IHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTItNDc4MDUyNDM5Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5Mi00NzgwNTI0MzkgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjI3IDo8L3NwYW4+ICAgICAgICAgICAgICAgIFBoYW50b20gUHJvc3BlY3QgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gT2N0IDEsIDIwMTEgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5JbnRyZXBpZCB0cmVhc3VyZSBodW50ZXJzIGJlbGlldmUgdGhleSBoYXZlIGRpc2NvdmVyZWQgdGhlIGZpbmFsIHJlc3RpbmcgcGxhY2Ugb2YgRmFudG9tZSwgYSBsZWdlbmRhcnkgd2Fyc2hpcCB0aGF0IHdyZWNrZWQgb2ZmIE5vdmEgU2NvdGlhIGFsbW9zdCB0d28gaHVuZHJlZCB5ZWFycyBhZ28uIFNoZSB3YXMgcnVtb3JlZCB0byBoYXZlIGdvbmUgZG93biB3aXRoIGFuIGV4dHJhb3JkaW5hcnkgdHJlYXN1cmUuIEJ1dCBjaXJjbGluZyBiZW5lYXRoIHRoZSBvY2VhbidzIHN1cmZhY2Ugd2FpdHMgc29tZXRoaW5nIHVuYmVsaWV2YWJsZS4uLiBhbmQgdGVycmlmeWluZy4gU29tZSB1bmZvcnR1bmF0ZSBkaXZlcnMgaGF2ZSBlbmNvdW50ZXJlZCBhIG1hc3NpdmUsIHRob3VnaHQtdG8tYmUtZXh0aW5jdCBzaGFyayBrbm93biBhcyB0aGUgbWVnYWxvZG9uLiA8YnIvPjxici8+QXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCBoYXMgYWx3YXlzIGhhZCBhIGhlYWx0aHkgcmVzcGVjdCBmb3Igc2hhcmtzLiBCdXQgd2hlbiBhIHJlc2VhcmNoZXIgZnJpZW5kIGFza3MgZm9yIGhlciBoZWxwLCBBbm5qYSBicmF2ZXMgdGhlIGRlZXAsIGNvbGQgd2F0ZXJzIG9mIHRoZSBBdGxhbnRpYywgZGV0ZXJtaW5lZCB0byBkaXNjb3ZlciB0aGUgdHJ1dGguIEluc3RlYWQgc2hlIGZpbmRzIGhlcnNlbGYgaHVudGluZyBhbiB1bmtub3duIHRyYWl0b3Igb24gYSBzYWJvdGFnZWQgc2hpcC4gV2l0aCBkZWF0aCB3YWl0aW5nIGJvdGggYWJvdmUgYW5kIGJlbG93IHRoZSBvY2VhbidzIHN1cmZhY2UsIEFubmphIG11c3QgYmF0dGxlIGhlciBtb3N0IGRhbmdlcm91cyBlbmVteSB5ZXQuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAxMCBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTEgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMjcubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMjcubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTMtODA4NDExODI2Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAyOCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTWpnNklGSmxjM1JzWlhOeklGTnZkV3c9IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAyOC5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDsyOCYjeDNBOyYjeDIwO1Jlc3RsZXNzJiN4MjA7U291bCIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTMtODA4NDExODI2IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5My04MDg0MTE4MjYgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5My04MDg0MTE4MjYiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzkzLTgwODQxMTgyNiAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+MjggOjwvc3Bhbj4gICAgICAgICAgICAgICAgUmVzdGxlc3MgU291bCAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBOb3YgMSwgMjAxMSAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA2IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkluIDE5NjYsIGEgZ3JvdXAgb2YgYmF0dGxlLXdlYXJ5IEFtZXJpY2FuIEdJcyB0cmVra2VkIHRocm91Z2ggdGhlIFZpZXRuYW1lc2UganVuZ2xlIGtub3dpbmcgZWFjaCBzdGVwIGNvdWxkIG1lYW4gZmFjaW5nIHRoZSBlbmVteSdzIGd1bnMuIEJ1dCBpbnN0ZWFkIG9mIGFtYnVzaCwgdGhleSBzdHVtYmxlZCB1cG9uIGEgaGlkZGVuIHRyZWFzdXJlIGJleW9uZCB0aGVpciB3aWxkZXN0IGRyZWFtcy4gSXQgd2FzIGEgZGlzY292ZXJ5IHRoYXQgZXhhY3RlZCBhIHRlcnJpYmxlIGNvc3QuIDxici8+PGJyLz5BIHZhY2F0aW9uIHNwb3QgcGlja2VkIGF0IHJhbmRvbSwgVGhhaWxhbmQgaXMgaW50ZW5kZWQgdG8gcHJvdmlkZSByZWxheGF0aW9uIHRpbWUgZm9yIGdsb2JlLXRyb3R0aW5nIGFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQuIFlldCB0aGUgaXJyZXNpc3RpYmxlIHB1bGwgb2YgdGhlIGNvdW50cnkncyBsZWdlbmRhcnkgU3Bpcml0IENhdmUgbHVyZXMgQW5uamEgYW5kIGhlciBjb21wYW5pb25zIGRlZXAgd2l0aGluIGEgbmV0d29yayBvZiB1bmRlcmdyb3VuZCBjaGFtYmVycy1uZWFybHkgdG8gdGhlaXIgZGVhdGhzLiBUaGUgYW5jaWVudCBidXJpYWwgc2l0ZXMgaGF2ZSBzbHVtYmVyZWQgdGhyb3VnaCB0aGUgYWdlcy4gWWV0IG5vIHJlc3QgaXMgZm91bmQgdGhlcmUtanVzdCB0aGUgdm9pY2VzIG9mIHRoZSBkZWFkLiBXaGVuIHRoZSBkZWFkIHNwZWFrLCB3aWxsIHRoZXkgaGVscCBBbm5qYSB1bmNvdmVyIHRoZSBwZXJwbGV4aW5nIHBhc3Qgb2YgYSByZW1hcmthYmxlIGZpbmQgb3Igd2lsbCB0aGV5IGNhbGwgaGVyIHRvIGpvaW4gdGhlbT8gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDExIFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxMSBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAyOC5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAyOC5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTQtMTA1MDYzMjYwMSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMjkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z01qazZJRVpoYkhObElFaHZjbWw2YjI0PSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMjkuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7MjkmI3gzQTsmI3gyMDtGYWxzZSYjeDIwO0hvcml6b24iLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzk0LTEwNTA2MzI2MDEgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzk0LTEwNTA2MzI2MDEgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5NC0xMDUwNjMyNjAxIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5NC0xMDUwNjMyNjAxICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4yOSA6PC9zcGFuPiAgICAgICAgICAgICAgICBGYWxzZSBIb3Jpem9uICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IERlYyAxLCAyMDExICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDYgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+QSBzbWFsbCBOZXBhbGkgbWFuIG1lbHRzIGludG8gc2hhZG93cy4gQSBjdXR0aHJvYXQgY3JpbWUgbG9yZCBpcyBsb29raW5nIGZvciBhIG1pcmFjdWxvdXMgY3VyZS4gQW5kIGEgbWFwIHRvIGFuIGltcG9zc2libGUgZHJlYW0gYW5kIGEgbXl0aGljIHBhcmFkaXNlIGlzIHBvaW50aW5nIHRoZSB3YXkuIDxici8+PGJyLz5BcmNoYWVvbG9naXN0IEFubmphIENyZWVkIGlzIGluIEthdG1hbmR1LCBhd2FzaCBpbiBpdHMgc2NlbnRzLCBzb3VuZHMgYW5kIGxpdmVsaW5lc3MuIEJ1dCB0aGlzIGlzIG5vIHNpZ2h0c2VlaW5nIHRyaXAuIEFuIG9sZCBmcmllbmQgaXMgaW4gcG9zc2Vzc2lvbiBvZiBhIG1hcCB0aGF0IGxlYWRzIHRvIGEgcGxhY2UgdGhhdCBsaWVzIG91dHNpZGUgb3VyIHdvcmxkLiBCdXQgdGhlIG1hcCBpcyBrbm93biB0byBvbmUgb3RoZXItYSB2aWNpb3VzIG1hbiB3aG8gaGFzIEFubmphIGFuZCBoZXIgY29tcGFuaW9ucyByaWdodCB3aGVyZSBoZSB3YW50cyB0aGVtLiBIZXIgaGFuZCBmb3JjZWQsIEFubmphIHNldHMgb3V0IGluIHNlYXJjaCBvZiB0aGUgZmFibGVkIFNoYW5ncmktTGEtYW4gZXhwZWRpdGlvbiBvZiBkYW5nZXIgYW5kIHN1YnZlcnNpb24uIDxici8+PGJyLz5BbmQgaGVyIGpvdXJuZXkgd2lsbCBlbmQgb25seSB3aXRoIHRyaXVtcGguLi5vciB0cmFnZWR5LiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTEgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDExIFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDI5Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDI5Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTUtNDI4NjI4MTA5Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAzMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTXpBNklGUm9aU0JQZEdobGNpQkRjbTkzWkE9PSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMzAuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7MzAmI3gzQTsmI3gyMDtUaGUmI3gyMDtPdGhlciYjeDIwO0Nyb3dkIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5NS00Mjg2MjgxMDkgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzk1LTQyODYyODEwOSBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzk1LTQyODYyODEwOSIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTUtNDI4NjI4MTA5ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4zMCA6PC9zcGFuPiAgICAgICAgICAgICAgICBUaGUgT3RoZXIgQ3Jvd2QgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gSmFuIDEsIDIwMTIgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5JbiBhIHJlbW90ZSBwYXJ0IG9mIElyZWxhbmQsIHR3byBhcmNoYWVvbG9naWNhbCB0ZWFtcyBkaWcgZm9yIHRoZSBmaW5kIG9mIGEgbGlmZXRpbWUtdGhlIGxlZ2VuZGFyeSBTcGVhciBvZiBMdWdoLiBGb2xrbG9yZSBjbGFpbXMgdGhlIG1hZ2ljYWwgd2VhcG9uIHdhcyBmb3JnZWQgaW4gdGhlIHRpbWUgb2YgdGhlIGFuY2llbnQgVHVhdGhhIGRlIERhbmFhbi4gQnV0IGFzIHRoZSBzZWFyY2ggaW50ZW5zaWZpZXMsIHBlb3BsZSBiZWdpbiBkaXNhcHBlYXJpbmcgZnJvbSB0aGUgZGlnLiAiRmFlcmllcywiIHdoaXNwZXIgdGhlIGxvY2Fscy4gVGhlIE90aGVyIENyb3dkLi4uPGJyLz48YnIvPkluc3RydWN0ZWQgdG8gdHJhdmVsIHRvIElyZWxhbmQgYW5kIHJldHVybiB3aXRoIGZhZXJpZSBmb290YWdlLCBhcmNoYWVvbG9naXN0IEFubmphIENyZWVkIGZpZ3VyZXMgaXQncyBhIGpva2UgYXNzaWdubWVudC4gQnV0IHBlb3BsZSBoYXZlIHZhbmlzaGVkIGFuZCBzaGUgc29vbiByZWFsaXplcyB0aGVyZSdzIG1vcmUgaW4gcGxheSB0aGFuIG15dGhpY2FsIHdlZSBmb2xrLiBXaXRoIHRoZSB1bnNldHRsaW5nIG5vdGlvbiB0aGF0IHNvbWV0aGluZyBvdGhlcndvcmxkbHkgaXMgaW4gdGhlIGFpciwgQW5uamEgaXMgdG9ybiBiZXR3ZWVuIGhlciByb2xlcyBhcyBhbiBhcmNoYWVvbG9naXN0IGFuZCBhIHdhcnJpb3IuIEJ1dCBjYW4gaGVyIHBvd2VyZnVsIHN3b3JkIHByb3RlY3QgaGVyIGZyb20gdGhlIHRocmVhdCBvZiB2aW9sZW5jZS4uLm9yIHRoZSBPdGhlciBDcm93ZD8gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDExIFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxMiBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAzMC5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAzMC5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTYtMTk4NDY4NjUyMyI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMzEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z016RTZJRlJsWVhJZ2IyWWdkR2hsSUVkdlpITT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDMxLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzMxJiN4M0E7JiN4MjA7VGVhciYjeDIwO29mJiN4MjA7dGhlJiN4MjA7R29kcyIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTYtMTk4NDY4NjUyMyB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTYtMTk4NDY4NjUyMyBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzk2LTE5ODQ2ODY1MjMiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzk2LTE5ODQ2ODY1MjMgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjMxIDo8L3NwYW4+ICAgICAgICAgICAgICAgIFRlYXIgb2YgdGhlIEdvZHMgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gRmViIDEsIDIwMTIgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5JdCBzdGFydGVkIGFzIGEgZHJlYW0gLS0gYSByZWRoZWFkZWQgd2FycmlvciBraW5nIGZvdWdodCBhbmQgZGllZCBmb3IgaGlzIG1lbiBjZW50dXJpZXMgYWdvLiBUaGUgZHJlYW0gd291bGQgbGVhZCBhcmNoYWVvbG9naXN0IEFubmphIENyZWVkIHRvIHRoZSBraW5nJ3MgdW5kaXN0dXJiZWQgY29ycHNlLi4uIGFuZCBvbmUgb2YgRW5nbGFuZCdzIGdyZWF0ZXN0IG15dGhpY2FsIGFydGlmYWN0cy48YnIvPjxici8+RGVlcCBpbiBhbiBhcmNoYWVvbG9naWNhbCBkaWcgaW4gRW5nbGFuZCdzIE1pZGxhbmRzLCBBbm5qYSBsb2NhdGVzIGEgYnJhaWRlZCBuZWNrbGFjZSBhcm91bmQgYSBtdW1taWZpZWQga2luZydzIG5lY2suIE1hZGUgb2YgYW4gdW51c3VhbCBtYXRlcmlhbCAtLSBub3QgcXVpdGUgb2JzaWRpYW4sIGJ1dCBnbGVhbWluZyB3aXRoIG11bHRpaHVlZCBjb2xvciAtLSB0aGUgdG9yYyBpcyBhbiBhc3RvbmlzaGluZyBmaW5kLiBCdXQgc29tZW9uZSBrbm93cyBleGFjdGx5IHdoYXQgdGhlIHRvcmMgbWVhbnMuIEFuZCBoZSB3aWxsIGRvIGFueXRoaW5nIHRvIGdldCBoaXMgaGFuZHMgb24gdGhlIFRlYXIgb2YgdGhlIEdvZHMuIFdoZW4gdGhlIGRpZyBpcyBjb21wcm9taXNlZCBhbmQgaW5ub2NlbnQgYXJjaGFlb2xvZ2lzdHMgYXJlIHNsYWluLCBldmVuIEFubmphIGhlcnNlbGYgaXMgbGVmdCBmb3IgZGVhZC4gTm93IHNoZSBpcyBmbGVlaW5nIGZvciBoZXIgbGlmZSwgbm90IGtub3dpbmcgdGhlIHRlcnJpZnlpbmcgdHJ1dGggYWJvdXQgdGhlIHJlbGljIHNoZSByaXNrcyBldmVyeXRoaW5nIHRvIHByb3RlY3QgLS0gb3IgdGhlIGRldmFzdGF0aW5nIGNvbnNlcXVlbmNlcyBzaG91bGQgaXQgZmFsbCBpbnRvIHRoZSB3cm9uZyBoYW5kcy4uLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTEgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDEyIFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDMxLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDMxLm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTctMTA3MDM0Njc0MiI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMzIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z016STZJRlJvWlNCUGNtRmpiR1VuY3lCTlpYTnpZV2RsIgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAzMi5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDszMiYjeDNBOyYjeDIwO1RoZSYjeDIwO09yYWNsZSYjeDI3O3MmI3gyMDtNZXNzYWdlIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5Ny0xMDcwMzQ2NzQyIHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5Ny0xMDcwMzQ2NzQyIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTctMTA3MDM0Njc0MiIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTctMTA3MDM0Njc0MiAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+MzIgOjwvc3Bhbj4gICAgICAgICAgICAgICAgVGhlIE9yYWNsZSdzIE1lc3NhZ2UgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gQXByIDEsIDIwMTIgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5TdGVlcGVkIGluIGxlZ2VuZCwgdGhlIFBlYXJsIG9mIFBhbGF3YW4gaGFzIGEgaGlzdG9yeSBtYXJrZWQgYnkgZGVzdHJ1Y3Rpb24sIHZlbmdlYW5jZSBhbmQgbG92ZS4gQnV0IG1vcmUgaW1wb3J0YW50LCB0aGUgbXl0aGljYWwgYmxhY2sgcGVhcmwgaXMgcnVtb3JlZCB0byBncmFudCBhIHBvd2VyIGxvbmcgY292ZXRlZCBieSBtYW5raW5kIC0tIGltbW9ydGFsaXR5LiBJdCBpcyBhIHBvd2VyIG1lbiB3b3VsZCByaXNrIGR5aW5nIHRvIGFjaGlldmUuPGJyLz48YnIvPlN1biwgc2FuZCBhbmQgc2N1YmEgZGl2aW5nIGluIHRoZSBQaGlsaXBwaW5lcyBjZXJ0YWlubHkgc291bmRlZCBsaWtlIGFuZCBpZGVhbCB2YWNhdGlvbi4gQnV0IGFmdGVyIGEgd2F5LXRvby1jbG9zZS1mb3ItY29tZm9ydCBlbmNvdW50ZXIgd2l0aCBhIHRpZ2VyIHNoYXJrLCBBbm5qYSBDcmVlZCBmaW5kcyBoZXJzZWxmIGRyYXduIGludG8gYSBncm91cCBvZiBHZXJtYW4gZGl2ZXJzLiBUaGV5IGFyZSB0cmVhc3VyZSBodW50ZXJzIHNlYXJjaGluZyBmb3IgdGhlIGZhYmxlZCBwZWFybC4gT3V0IG9mIGN1cmlvc2l0eSwgQW5uamEgYWNjb21wYW5pZXMgdGhlbS4gQnV0IHdoZW4gYW4gb2xkIGZyaWVuZCBvZiBoZXJzIHR1cm5zIHVwIHVuZXhwZWN0ZWRseSwgc2hlIGZpbmRzIGhlcnNlbGYgdG9ybiBiZXR3ZWVuIGhlciBwYXN0IGFuZCBuZXcgYWNxdWFpbnRhbmNlcy48YnIvPjxici8+VGhlIHJhY2UgaXMgb24gdG8gcG9zc2VzcyB0aGUgcGVhcmwuIEJ1dCBubyBvbmUgcmVhbGl6ZXMgdGhlIHRydWUgbmF0dXJlIG9mIHRoZSBhcnRpZmFjdCwgb3IgdGhlIGRhbmdlciBpdCBwb3NlcyB0byB0aGVtIGFsbC4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDExIFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxMiBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAzMi5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAzMi5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTgtODYzNTg2MjM1Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTXpNNklFTnlZV1JzWlNCdlppQlRiMnhwZEhWa1pRPT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDMzLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzMzJiN4M0E7JiN4MjA7Q3JhZGxlJiN4MjA7b2YmI3gyMDtTb2xpdHVkZSIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTgtODYzNTg2MjM1IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5OC04NjM1ODYyMzUgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5OC04NjM1ODYyMzUiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzk4LTg2MzU4NjIzNSAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+MzMgOjwvc3Bhbj4gICAgICAgICAgICAgICAgQ3JhZGxlIG9mIFNvbGl0dWRlICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEp1biAxLCAyMDEyICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+VGhlIHNrZWxldGFsIHJlbWFpbnMgb2YgYSBjb25mZWRlcmF0ZSBzb2xkaWVyLCBoaWRkZW4gZGVlcCB3aXRoaW4gdGhlIFBhcmlzIENhdGFjb21icy4gVGhlIGxlZ2VuZCBvZiBhIGxvbmctbG9zdCBDb25mZWRlcmF0ZSB0cmVhc3VyZS4gQW4gYWdlZCBzY3JhcCBvZiBwYXBlciB0aGF0IHJlYWRzIHNpbXBseSwgQmVyY2VhdSBkZSBzb2x1dHVkZSAtLSBDcmFkbGUgb2YgU29saXR1ZGUuPGJyLz48YnIvPkluIHdhcyBzaGVlciBkdW1iIGx1Y2ssIHJlYWxseS4gQXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCBoYXBwZW5lZCB0byBiZSBpbiBQYXJpcyB3aGVuIHRoZSBib25lcyBvZiB0aGUgc29sZGllciB3ZXJlIGRpc2NvdmVyZWQuIEJ1dCB0aGlzIHdhcyBubyBvcmRpbmFyeSBzb2xkaWVyIC0tIHRoaXMgbWFuIHdhcyB0aGUga2VlcGVyIG9mIGEgdHJlYXN1cmUgdGhhdCBjb3VsZCBoYXZlIGFmZmVjdGVkIHRoZSBvdXRjb21lIG9mIHRoZSBBbWVyaWNhbiBSZXZvbHV0aW9uLiBTb21ld2hlcmUsIHRoZSB0cmVhc3VyZSB3YWl0cyB0byBiZSBjbGFpbWVkLjxici8+PGJyLz5Ob3cgQW5uamEgaXMgdW5yYXZlbGluZyBhIDE1MC15ZWFyLW9sZCBteXN0ZXJ5IGFuZCBhIHRyYWlsIG9mIGNsdWVzIHRoYXQgd2lsbCBsZWFkIGhlciBhY3Jvc3MgdGhlIG9jZWFuIGFuZCBkZWVwIGludG8gdGhlIGhlYXJ0IG9mIHRoZSBPbGQgU291dGguIEJ1dCBzaGUgaXNuJ3QgdGhlIG9ubHkgc2Vla2VyIG9mIHRoaXMgdHJlYXN1cmUuIFNvbWVvbmUgZWxzZSB3YW50cyBpdCAtLSBiYWQgZW5vdWdoIHRvIGtpbGwgYW55b25lIHdobyBzdGFuZHMgaW4gdGhlaXIgd2F5Li4uICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAxMSBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTIgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMzMubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMzMubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTktNzQzMzA0MzA1Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAzNCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTXpRNklFeGhZbmx5YVc1MGFBPT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDM0LmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzM0JiN4M0E7JiN4MjA7TGFieXJpbnRoIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTM5OS03NDMzMDQzMDUgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzk5LTc0MzMwNDMwNSBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xMzk5LTc0MzMwNDMwNSIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTEzOTktNzQzMzA0MzA1ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4zNCA6PC9zcGFuPiAgICAgICAgICAgICAgICBMYWJ5cmludGggICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gSnVsIDEsIDIwMTIgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNCBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5BIGJvb2sgZGVhbGVyIGxpZXMgaW1wcmlzb25lZCBpbiBhIEJvc3RvbiBtYW5zaW9uLCBhbiBJViB0dWJlIGRyaXBwaW5nIGEgbGV0aGFsIG5hcmNvdGljIGNvY2t0YWlsIGludG8gaGlzIHZlaW5zLiBJbiB0aGlydHktc2l4IGhvdXJzLCBoZSdsbCBiZSBkZWFkLiBIaXMgZmluYWwgcmVxdWVzdCBpcyB0byByZWNlaXZlIGEgdmlzaXQgZnJvbSBvbmUgd29tYW4uLi48YnIvPjxici8+SXQgd2Fzbid0IHRoZSBtb3N0IGhvc3BpdGFibGUgaW52aXRhdGlvbiBzaGUnZCBldmVyIHJlY2VpdmVkLiBBcmNoYWVvbG9naXN0IEFubmphIENyZWVkIGlzIGJlaW5nIHJ1c2hlZCB0byBNYXNzYWNodXNldHRzLCBhYmR1Y3RlZCBieSBhIGZhbW91cyBlbnZpcm9ubWVudGFsIHRlcnJvcmlzdCAtLSBhIHplYWxvdCB3aWxsaW5nIHRvIGtpbGwgYW55b25lIHdobyBnZXRzIGluIGhpcyBvciB0aGUgcGxhbmV0J3Mgd2F5LiBIZSBoYXMgdGFrZW4gdGhlIGJvb2sgZGVhbGVyIGhvc3RhZ2UgaW4gb3JkZXIgdG8gc3RlYWwgYSByYXJlIGFuZCB2ZXJ5IHZhbHVhYmxlIHRyZWF0aXNlIGNhbGxlZCB0aGUgVG9tZSBvZiBQcm9zc29zLiBBbm5qYSBpcyB0aGUga2V5IHRvIHJldHJpZXZpbmcgdGhlIGFuY2llbnQgbWFudXNjcmlwdCBoaWRkZW4gc29tZXdoZXJlIGRlZXAgd2l0aGluIHRoZSBtYW5zaW9uLiBCdXQgdGhlIGJvb2sgaXMgd2VsbC1wcm90ZWN0ZWQuIEluIG9yZGVyIHRvIGZpbmQgaXQsIHNoZSBtdXN0IHN1cnZpdmUgdGhlIHJpZ29ycyBvZiBhbiBlbGFib3JhdGUgbWF6ZS4gU2hlIGhhcyBvbmx5IHR3ZWx2ZSBob3VycyB0byBkZWNpcGhlciB0aGUgbGFieXJpbnRoJ3Mgc2luaXN0ZXIgc2VjcmV0Li4uIGEgc2VjcmV0IHRoYXQgY291bGQgZW5zdXJlIHNoZSBuZXZlciBlbWVyZ2VzLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTIgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDEyIFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDM0Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDM0Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE0MDAtMTI0NzgxMDQwMCI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMzUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z016VTZJRVoxY25rbmN5QkhiMlJrWlhOeiIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMzUuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7MzUmI3gzQTsmI3gyMDtGdXJ5JiN4Mjc7cyYjeDIwO0dvZGRlc3MiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNDAwLTEyNDc4MTA0MDAgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNDAwLTEyNDc4MTA0MDAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTQwMC0xMjQ3ODEwNDAwIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTQwMC0xMjQ3ODEwNDAwICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4zNSA6PC9zcGFuPiAgICAgICAgICAgICAgICBGdXJ5J3MgR29kZGVzcyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBBdWcgMSwgMjAxMiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA2IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPk9uIHRoZSBvdXRza2lydHMgb2YgdGhlIHJlY2VudGx5IGRldmVsb3BlZCBhbmQgcHJvc3Blcm91cyBjaXR5IG9mIEh5ZGVyYWJhZCwgSW5kaWEsIGEgbmV3IGFuZCBsdXh1cmlvdXMgaG91c2luZyBjb21wbGV4IGhhcyBhcmlzZW4uIEJ1dCBzZXZlcmFsIHJlc2lkZW50cyBoYXZlIGJlZW4gZm91bmQgYnJ1dGFsbHkgbXVyZGVyZWQuIFNvbWUgYmVsaWV2ZSB0aGUga2lsbGVyIGlzIGEgcm9ndWUgdGlnZXIuIE90aGVycyB3aGlzcGVyIHRoYXQgaXQgaXMgdGhlIHdvcmsgb2YgdGhlIHNlcnZhbnRzIG9mIEthbGksIHRoZSBIaW5kdSBnb2RkZXNzIG9mIGRlYXRoLjxici8+PGJyLz5IZXIgZmVldCBhcmUgYmFyZWx5IG9uIEluZGlhbiBzb2lsIHdoZW4gYXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCBmaW5kcyBoZXJzZWxmIHN3ZXB0IHVwIGluIEh5ZGVyYWJhZCdzIG1vZGVybiBwcm9zcGVyaXR5LiBCdXQgc29tZXRoaW5nIGFib3V0IHRoZSByZWNlbnQgc3BhdGUgb2Yga2lsbGluZ3Mgc2VlbXMgdW51c3VhbCBhbmQgQW5uamEgYmVnaW5zIHRvIGRpZyBkZWVwIGZvciBhbnN3ZXJzLiBJbnN0ZWFkLCBzaGUgZmluZHMgaGVyc2VsZiB0YWtlbiBwcmlzb25lciBhbmQgaGVsZCBpbiBhIG1hemUgb2YgYW5jaWVudCBjYXZlcy4gU2hlJ3MgYmVpbmcgaGVsZCBjYXB0aXZlIGJ5IGEgY3VsdCBvZiB0aGlldmVzIHdobyBhcmUgdW5kZXIgdGhlIHRocmFsbCBvZiBhIGNoYXJpc21hdGljIGxlYWRlci48YnIvPjxici8+SW4gb25seSBhIGZldyBzaG9ydCBob3VycywgQW5uamEgaXMgdG8gYmUgc2FjcmlmaWNlZCAtLSB1bmxlc3Mgc2hlIGNhbiBjaGFubmVsIHRoZSB2ZW5nZWFuY2Ugb2YgdGhlIGdvZGRlc3MgS2FsaSBoZXJzZWxmLi4uICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAxMiBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTIgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMzUubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMzUubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE0MDEtMTkwNjYxOTk5OSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMzYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z016WTZJRTFoWjJsaklFeGhiblJsY200PSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwMzYuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7MzYmI3gzQTsmI3gyMDtNYWdpYyYjeDIwO0xhbnRlcm4iLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNDAxLTE5MDY2MTk5OTkgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNDAxLTE5MDY2MTk5OTkgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTQwMS0xOTA2NjE5OTk5Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTQwMS0xOTA2NjE5OTk5ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4zNiA6PC9zcGFuPiAgICAgICAgICAgICAgICBNYWdpYyBMYW50ZXJuICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IE9jdCAxLCAyMDEyICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+SW4gbGF0ZSAxNzAwcyBQYXJpcywgYSB5b3VuZyBidXQgcHJvbWlzaW5nIGlsbHVzaW9uaXN0IGRhYmJsZXMgaW4gdGhlIGFyY2FuZSBhcnQgb2YgcGhhbnRhc21hZ29yaWEuIEJ1dCBhdCBoaXMgbW9tZW50IG9mIGdyZWF0ZXN0IHRyaXVtcGggLS0gdW52ZWlsaW5nIGEgbWFnaWNhbCBsYW50ZXJuIHNhaWQgdG8gb3BlbiBhIGRvb3IgdG8gdGhlIENoaW5lc2Ugc3Bpcml0IHdvcmxkIC0tIGhlIGlzIHZpb2xlbnRseSBzdHJ1Y2sgZG93biBieSBhIHZlbmdlZnVsIHBoYW50b20uLi4uPGJyLz48YnIvPk9uIGFzc2lnbm1lbnQgaW4gTG9uZG9uLCBhcmNoYWVvbG9naXN0IEFubmphIENyZWVkIGlzIGh1bnRpbmcgZG93biBhIG1hbiB3aG8gY2xhaW1zIHRvIGhhdmUgZGlzY292ZXJlZCB0aGUgSmVreWxsIGFuZCBIeWRlIHBvdGlvbi4gT24gdGhlIHRyYWlsIG9mIG9uZSBjdXJpb3NpdHksIEFubmphIGZpbmRzIGhlcnNlbGYgcHVsbGVkIHRvd2FyZCBhbm90aGVyIG15c3RlcnkuLi50aGUgb3JpZ2luIG9mIGEgc3RyYW5nZSwgb2xkLWZhc2hpb25lZCBwcm9qZWN0b3Igb25jZSB1c2VkIGJ5IGVpZ2h0ZWVudGgtY2VudHVyeSBpbGx1c2lvbmlzdHMuIEFzIEFubmphIGRlbHZlcyBpbnRvIGl0cyByaWNoIGhpc3RvcnksIGEgZGFyayBwYXN0IGJlZ2lucyB0byBlbWVyZ2UuIEFuZCBzb21lb25lIHdhbnRzIHRvIGhhcm5lc3MgdGhlIHBvd2VyIG9mIHRoaXMgY3Vyc2VkIGFydGlmYWN0Li4ucmlza2luZyBldmVyeXRoaW5nIGZvciB0aGUgdHJlYXN1cmVzIGl0IHByb21pc2VzLjxici8+PGJyLz5CdXQgQW5uamEgaGFzIGEgbGl0dGxlIG1hZ2ljIHRyaWNrIG9mIGhlciBvd24uIE9uZSB0aGF0IHNoZSB3aWVsZHMgd2l0aCBkZWFkbHkgYWNjdXJhY3kuLi4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDEyIFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxMiBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAzNi5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAzNi5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE0MDItMTQyNDgwNjYyNSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMzciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z016YzZJRXhwWW5KaGNua2diMllnUjI5c1pBPT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDM3LmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzM3JiN4M0E7JiN4MjA7TGlicmFyeSYjeDIwO29mJiN4MjA7R29sZCIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE0MDItMTQyNDgwNjYyNSB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE0MDItMTQyNDgwNjYyNSBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNDAyLTE0MjQ4MDY2MjUiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNDAyLTE0MjQ4MDY2MjUgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjM3IDo8L3NwYW4+ICAgICAgICAgICAgICAgIExpYnJhcnkgb2YgR29sZCAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBEZWMgMSwgMjAxMiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkhlIHdhcyBvbmUgb2YgUnVzc2lhJ3MgbW9zdCBpbmZhbW91cyBydWxlcnMsIGFuZCBoZSBhbG9uZSBoZWxkIHRoZSBrZXkgdG8gYSBsZWdlbmRhcnkgQnl6YW50aW5lIGNvbGxlY3Rpb24gb2YgIGJvb2tzLCBnaXZlbiB0byBoaW0gaW4gdGhlIGRvd3J5IG9mIFByaW5jZXNzIFNvcGhpYSBvZiBDb25zdGFudGlub3BsZS4gIEl2YW4gVmFzaWx5ZXZpY2gtb3RoZXJ3aXNlIGtub3duIGFzIEl2YW4gdGhlIFRlcnJpYmxlLW93bmVkIGEgbGlicmFyeSBmaWxsZWQgd2l0aCByYXJlIGFuZCBwcmljZWxlc3MgdG9tZXMgdGhhdCBtZW4gd291bGQga2lsbCBmb3IuIFdvdWxkIGRpZSBmb3IuIEJ1dCB0aGUgY3phciBjYXJyaWVkIHRoZSBrbm93bGVkZ2Ugb2YgaXRzIHdoZXJlYWJvdXRzIHRvIGhpcyBncmF2ZS4gQW5kIGl0IGZhbGxzIHRvIGFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQsIGFsbW9zdCBmaXZlIGh1bmRyZWQgeWVhcnMgbGF0ZXIsIHRvIGRpc2NvdmVyIHRoZSBzZWNyZXRzIG9mIHRoZSBMaWJyYXJ5IG9mIEdvbGQuIDxici8+PGJyLz5XaGVuIHRoZSBvcHBvcnR1bml0eSB0byB1bnJhdmVsIHRoZSBteXN0ZXJ5IG9mIHRoaXMgc28tY2FsbGVkIGVpZ2h0aCB3b25kZXIgb2YgdGhlIHdvcmxkIGxhbmRzIGluIEFubmphJ3MgbGFwLCBzaGUgY2FuJ3QgcmVzaXN0LiBBcm1lZCB3aXRoIGEgZGlhcnkgb2YgY3J5cHRpYyAgY2x1ZXMsIHNoZSBlbWJhcmtzIG9uIGEgam91cm5leSB0byBSdXNzaWEsICB3aGVyZSBzaGUgbXVzdCBzb21laG93IGZpbmQgaGVyIHdheSBpbnRvIHRoZSB2ZXJ5IGhlYXJ0IG9mIHRoZSBjb3VudHJ5LCAgYmVuZWF0aCB0aGUgS3JlbWxpbi4gQnV0IEFubmphIHNvb24gZGlzY292ZXJzIHNoZSdzIHJhY2luZyBhIHJ1dGhsZXNzIEtHQiBhZ2VudCBkcml2ZW4gYnkgc2luaXN0ZXIgbW90aXZlcy4gU2hlIGZpbmRzIGhlcnNlbGYgZGVlcCBiZW5lYXRoIHRoZSBSdXNzaWFuIHNvaWwgaW4gYSBkYW5nZXJvdXMgZ2FtZSBvZiBjYXQgYW5kIG1vdXNlLi4uIFdpbGwgc2hlIGJlIHRoZSBuZXh0IHRvIG15c3RlcmlvdXNseSBkaXNhcHBlYXIgZnJvbSBoaXN0b3J5PyAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTIgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDEyIFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDM3Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDM3Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE0MDMtMTM4NTE0NTE3MCI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwMzgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z016ZzZJRlJvWlNCTllYUmhaRzl5SjNNZ1EzSnZkMjQ9IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAzOC5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDszOCYjeDNBOyYjeDIwO1RoZSYjeDIwO01hdGFkb3ImI3gyNztzJiN4MjA7Q3Jvd24iLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNDAzLTEzODUxNDUxNzAgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNDAzLTEzODUxNDUxNzAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTQwMy0xMzg1MTQ1MTcwIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTQwMy0xMzg1MTQ1MTcwICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4zOCA6PC9zcGFuPiAgICAgICAgICAgICAgICBUaGUgTWF0YWRvcidzIENyb3duICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEZlYiAxLCAyMDEzICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+QW4gaW52aXRhdGlvbiB0b28gaXJyZXNpc3RpYmxlIHRvIHJlZnVzZSBmcm9tIHRoZSBNdXNldW0gb2YgQ2FkaXogbGVhZHMgYXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCB0byB0aGUgc3VuLWRyZW5jaGVkIHNvdXRoZXJuIGNvYXN0IG9mIEFuZGFsdWNpYSwgU3BhaW4uIEluIGEgcmVnaW9uIHJpY2ggaW4gTW9vcmlzaCBhbmQgUm9tYW4gcnVpbnMsIHNoZSBsZWFwcyBhdCB0aGUgY2hhbmNlIHRvIGpvaW4gYSBkaWcgYWNyb3NzIHRoZSBCYXkgb2YgQ2FkaXosIHdoZXJlIHNoZSB1bmVhcnRocyBhIGJyb256ZSBidWxsIHN0YXR1ZSB0aGF0IG1ha2VzIHRoZSBlbnRpcmUgdHJpcCB3b3J0aCBldmVyeSBtaW51dGUuIFVudGlsIHRoZSBkYXkgYWZ0ZXIgaGVyIGRpc2NvdmVyeSwgd2hlbiBzaGUgc2VlcyB0aGUgc2FtZSBhcnRpZmFjdCBiZXNpZGUgdGhlIGJvZHkgb2YgYSBkZWFkIFNwYW5pYXJkLCBraWxsZWQgYnkgdGhlIGVzdG9jYWRhLCB0aGUgZmluYWwgc3dvcmQgdGhydXN0IHVzZWQgYnkgYnVsbGZpZ2h0ZXJzIHRvIGJyaW5nIGRvd24gdGhlIGJ1bGwuPGJyLz48YnIvPldob2V2ZXIga2lsbGVkIHRoZSBtYW4gbGVmdCBjbGVhciBzaWducyBvZiBoYXZpbmcgdGFrZW4gc29tZXRoaW5nLiBBbmQgeWV0IHRoZSBicm9uemUgYnVsbCByZW1haW5lZC4gV2hhdCB3YXMgc28gdmFsdWFibGUgdGhlIG11cmRlcmVyIGNob3NlIGl0IG92ZXIgYSBwcmljZWxlc3MgYXJ0aWZhY3Q/IEhvdyBoYWQgaGVyIGZpbmQgY29tZSBpbnRvIHRoaXMgZGVhZCBtYW4ncyBoYW5kcz8gV2l0aCBmZXcgbGVhZHMgYW5kIGEgZ3Jvd2luZyBib2R5IGNvdW50LCBBbm5qYSdzIGludmVzdGlnYXRpb24gdGFrZXMgaGVyIHRocm91Z2ggYSBjb2xvcmZ1bCB3b3JsZCBvZiBmbGFtZW5jbyBhbmQgYnVsbGZpZ2h0aW5nIHRvIGEgcmVub3duZWQgbWF0YWRvciBhbmQgYW4gaWxsZWdhbC1hbmQgZGVhZGx5LWNvbGxlY3Rpb24gb2YgVmlzaWdvdGggdm90aXZlIGNyb3ducy4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDEyIFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxMyBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAzOC5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTAzOC5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE0MDQtODg4MzM1NDEwIj4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTAzOSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTXprNklFTnBkSGtnYjJZZ1UzZHZjbVJ6IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTAzOS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDszOSYjeDNBOyYjeDIwO0NpdHkmI3gyMDtvZiYjeDIwO1N3b3JkcyIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE0MDQtODg4MzM1NDEwIHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTQwNC04ODgzMzU0MTAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTQwNC04ODgzMzU0MTAiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNDA0LTg4ODMzNTQxMCAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+MzkgOjwvc3Bhbj4gICAgICAgICAgICAgICAgQ2l0eSBvZiBTd29yZHMgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gQXByIDEsIDIwMTMgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5JdCB3YXMgdGhlIGtpbmQgb2YgaW50ZXJuZXQgcG9zdGluZyBndWFyYW50ZWVkIHRvIGF0dHJhY3QgdGhlIGF0dGVudGlvbiBvZiB0aGUgQW1lcmljYW4gY2FibGUgVFYgc2hvdyBDaGFzaW5nIEhpc3RvcnkncyBNb25zdGVyczogIkRvZy1oZWFkZWQgbWVuIHNpZ2h0ZWQgYnkgdG91cmlzdHMgaW4gQXZpZ25vbi4iIERyYXduIHRvIEZyYW5jZSB0byBleHBsb3JlIHRoZSBteXRoIG9mIFNhaW50IENocmlzdG9waGVyIGFuZCB0aGUgY3lub2NlcGhhbHVzLCBvciB0aGUgZG9nLWhlYWRlZCwgYXJjaGFlb2xvZ2lzdCBhbmQgdGVsZXZpc2lvbiBob3N0IEFubmphIENyZWVkIGZpbmRzIGhlcnNlbGYgcmVwZWF0ZWRseSBhbmQgaW5leHBsaWNhYmx5IHRhcmdldGVkIGJ5IHZpY2lvdXMgbWVyY2VuYXJpZXMuIEhlciBiZXN0IGRlZmVuc2UgaXMgdG8gdHJhY2UgdGhpcyBicnV0YWwgdmlvbGVuY2UgYmFjayB0byBpdHMgc291cmNlLCB3aGljaCBzaGUgc29vbiBkaXNjb3ZlcnMgdG8gYmUgYSBtaWxsaW9uYWlyZSBhbmQgc2VsZi1wcm9mZXNzZWQgZGVzY2VuZGFudCBvZiBLaW5nIENoYXJsZW1hZ25lLjxici8+PGJyLz5DYXVnaHQgdXAgaW4gYSByb21hbnRpYyBhbmQgcnV0aGxlc3Mgc2l4dGgtY2VudHVyeSB3b3JsZCwgdGhlIG1hbiBpcyBjb252aW5jZWQgdGhhdCBpZiBoZSBjb2xsZWN0cyBtYW5raW5kJ3MgbW9zdCBwcmVjaW91cyBhbmQgaG9seSBzd29yZHMsIGhlIGNhbiBmdWxmaWxsIGhpcyBtZWRpZXZhbCBhbmNlc3RvcidzIGZhaWxlZCBnb2FsIHRvIGJ1aWxkIHRoZSBDaXR5IG9mIEdvZC4gQW5kIGhlJ3Mgc3RlYWxpbmcgdGhlIHByaWNlbGVzcyByZWxpY3Mgb25lIGJ5IG9uZSB0byBhcm0gaGlzIG1vZGVybi1kYXkgcGFsYWRpbnMuIE5vdyBoZSBoYXMgaGlzIGV5ZSBvbiBhIHZlcnkgc3BlY2lhbCBzd29yZC1Bbm5qYSdzLjxici8+PGJyLz5BbmQgaGUnbGwgaGF2ZSB0byBraWxsIGhlciB0byBnZXQgaXQuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAxMiBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTMgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMzkubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwMzkubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE0MDUtMjEwNTYxODAxNiI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05EQTZJRlJvWlNCVWFHbHlaQ0JEWVd4cGNHZz0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDQwLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzQwJiN4M0E7JiN4MjA7VGhlJiN4MjA7VGhpcmQmI3gyMDtDYWxpcGgiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNDA1LTIxMDU2MTgwMTYgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNDA1LTIxMDU2MTgwMTYgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTQwNS0yMTA1NjE4MDE2Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTQwNS0yMTA1NjE4MDE2ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj40MCA6PC9zcGFuPiAgICAgICAgICAgICAgICBUaGUgVGhpcmQgQ2FsaXBoICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEp1biAxLCAyMDEzICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDYgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+QSBob2x5IHdhci4gQW4gYW5jaWVudCBzY3JvbGwgbG9zdCBpbiBoaXN0b3J5Li4uIHVudGlsIG5vdy4gPGJyLz48YnIvPkR1cmluZyBhIGRpZyBpbiBNb3JvY2NvLCBhcmNoYWVvbG9naXN0IEFubmphIENyZWVkIGFuZCBoZXIgY29tcGFuaW9ucyBhcmUgbmVhcmx5IGJ1cmllZCBhbGl2ZSB3aGVuIHRoZSBraGV0dGFyYSBjZWlsaW5nIGNvbGxhcHNlcywgcmV2ZWFsaW5nIGEgMSwzMDAteWVhci1vbGQgY29ycHNlLiBCdXQgd2hlbiBCZWRvdWluIGJhbmRpdHMgcmFpZCB0aGUgY2FtcCwgQW5uamEgYmFyZWx5IGVzY2FwZXMgd2l0aCBoZXIgbGlmZS4uLmFuZCBoYWxmIG9mIGEgc2Nyb2xsIGluIGFuY2llbnQgS3VmaWMgc2NyaXB0LiBIZXIgY29tcGFuaW9ucycgc3Vydml2YWwgbm93IGRlcGVuZHMgb24gaGVyLiA8YnIvPjxici8+VGhlIHNjcm9sbCBkYXRlcyBiYWNrIHRvIDY1NiBBRCwgd2hlbiBNdXNsaW0gcmFpc2VkIHN3b3JkIGFnYWluc3QgTXVzbGltIGFuZCB0aGUgYXNzYXNzaW5hdGlvbiBvZiB0aGUgdGhpcmQgY2FsaXBoIGxlZnQgbm8gY2xlYXIgaGVpciB0byBNdWhhbW1hZCdzIHRlYWNoaW5ncy4gSXQncyBhIGNvdmV0ZWQgZmluZC4gQW5uamEgcXVpY2tseSBmaW5kcyBoZXJzZWxmIGNhdWdodCBiZXR3ZWVuIGEgZGV2aW91cyB0ZXJyb3Jpc3Qgd2hvc2UgZmFtaWx5IGhvbm9yIGRlcGVuZHMgb24gZGVzdHJveWluZyB3aGF0IHNoZSBwb3NzZXNzZXMgYW5kIGEgcnV0aGxlc3MgQ0lBIHRlYW0uIEJvdGggYmVsaWV2ZSB0aGUgZW5kIGp1c3RpZmllcyB0aGUgbWVhbnMuIEFuZCB0aGF0IEFubmphIGNhbm5vdCBhbGxvdy4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDEzIFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxMyBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA0MC5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA0MC5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE2NDktMTI1NjQwMTU0NyI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNDEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05ERTZJRk4wWVdabUlHOW1JRXAxWkdWaCIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwNDFfMS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs0MSYjeDNBOyYjeDIwO1N0YWZmJiN4MjA7b2YmI3gyMDtKdWRlYSIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE2NDktMTI1NjQwMTU0NyB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE2NDktMTI1NjQwMTU0NyBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNjQ5LTEyNTY0MDE1NDciKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNjQ5LTEyNTY0MDE1NDcgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjQxIDo8L3NwYW4+ICAgICAgICAgICAgICAgIFN0YWZmIG9mIEp1ZGVhICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEF1ZyAxLCAyMDEzICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+QWZ0ZXIgZGVjb2RpbmcgYW4gYW5jaWVudCBzY3JvbGzigJRvbmUgdGhhdCBwdXJwb3J0cyB0byBwaW5wb2ludCB0aGUgdHJlYXN1cmUgb2YgdGhlIEpld2lzaCBUZW1wbGUsIGxvc3QgZm9yIHR3byB0aG91c2FuZCB5ZWFyc+KAlGFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQgYWdyZWVzIHRvIGxlYWQgdGhlIHBhcnR5IHRvIHJlY292ZXIgdGhlIGZpbmQgaW4gSnVkZWEuIEl04oCZcyBhIHBlcmlsb3VzIGRlc2VydCBqb3VybmV5IHRocm91Z2ggc2FuZHN0b3JtcyBhbmQgYmFuZGl0cywgYW5kIGNvbXBsaWNhdGVkIGJ5IG15c3RlcmlvdXMgc2Fib3RhZ2Ugd2l0aGluIHRoZSBncm91cCwgdG8gYXJyaXZlIGF0IGEgbG9uZy1mb3Jnb3R0ZW4gZm9ydHJlc3MgZGVlcCBiZW5lYXRoIGEgbW91bnRhaW4uIE9ubHkgdGhlbiBkb2VzIEFubmphIGRpc2NvdmVyIHRoYXQgdGhpcyBhcmNoYWVvbG9naWNhbCBleHBlZGl0aW9uIGlzIHJlYWxseSBvbmUgbWFu4oCZcyBxdWVzdCBmb3IgdGhlIG15c3RpY2FsIFN0YWZmIG9mIEFhcm9uLCBvbmUgb2YgdGhlIEJpYmxl4oCZcyBob2xpZXN0IGFuZCBtb3N0IHBvd2VyZnVsIHJlbGljc+KAlGEgd2VhcG9uIHRoZXkgc2F5IGNhbiBkbyBpbmNhbGN1bGFibGUgaGFybSBpbiB0aGUgaGFuZHMgb2YgdGhlIHdyb25nIGluZGl2aWR1YWwuIFNoZSBtdXN0IHRyeSBldmVyeXRoaW5nIGh1bWFubHkgcG9zc2libGUgdG8gcHJldmVudCB0aGUgc3RhZmYgZnJvbSBiZWluZyB1c2VkIGZvciBzZWxmaXNoIHB1cnBvc2VzLiBFdmVuIGlmIGl0IHB1dHMgaGVyIGluIHRoZSBtaWdodGllc3QgYmF0dGxlIHlldOKAlHN3b3JkIGFnYWluc3Qgc3RhZmYuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAxMyBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTMgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNDEubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNDEubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE2NzMtNjUyMTQxMzAzIj4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTA0MiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTkRJNklGUm9aU0JXWVc1cGMyaHBibWNnVkhKcFltVT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDQyXzEuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7NDImI3gzQTsmI3gyMDtUaGUmI3gyMDtWYW5pc2hpbmcmI3gyMDtUcmliZSIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE2NzMtNjUyMTQxMzAzIHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTY3My02NTIxNDEzMDMgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTY3My02NTIxNDEzMDMiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNjczLTY1MjE0MTMwMyAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+NDIgOjwvc3Bhbj4gICAgICAgICAgICAgICAgVGhlIFZhbmlzaGluZyBUcmliZSAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBPY3QgMSwgMjAxMyAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPldoZW4gYXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCBhdHRlbmRzIGFuIGF1Y3Rpb24gaW4gQm90c3dhbmEgZmVhdHVyaW5nIHBlcnNvbmFsIGVmZmVjdHMgb2YgYW4gaW5mYW1vdXMgZXhwbG9yZXIsIHNoZSBwdXJjaGFzZXMgYSBzbWFsbCBhbmQgc2VlbWluZ2x5IHVucmVtYXJrYWJsZSBwaWVjZSBvZiBhcnQuIEl0J3Mgbm90IHVudGlsIHRoZSBleHBsb3JlcidzIHNvbiBtYWtlcyBhIGRlc3BlcmF0ZSBhdHRlbXB0IHRvIHN0ZWFsIGl0IHRoYXQgQW5uamEgdW5jb3ZlcnMgdGhlIHNlY3JldCBvZiB0aGUgcGFpbnRpbmcuLi5vciByYXRoZXIsIHRoZSBzZWNyZXQgbWFwIGJlaGluZCB0aGUgcGFpbnRpbmcuPGJyIC8+DQo8YnIgLz4NClRoZSBtYXAgcG9pbnRzIHRvIHRoZSBMb3N0IENpdHkgb2YgdGhlIFNhbiB0cmliZSwgYnVzaG1lbiB3aG8gaGFkIGxvbmcgYWdvIGRpc2FwcGVhcmVkIG9mZiB0aGUgZmFjZSBvZiB0aGUgcGxhbmV0IGFuZCB3aG9zZSBjaXR5LXNvIGxlZ2VuZCBoYXMgaXQtd2FzIG9uY2UgbGl0dGVyZWQgd2l0aCBkaWFtb25kcy4gQnV0IGlzIHRoZSBtYXAgYW4gZXBpYyBhcmNoYWVvbG9naWNhbCBkaXNjb3Zlcnkgb3IgYSBmYW50YXN0aWMgd29yayBvZiBmaWN0aW9uPyBDb21wZWxsZWQgdG8gZmluZCBvdXQsIEFubmphIG11c3QgZmFjZSBub3Qgb25seSB0aGUgcGVyaWxzIG9mIHRoZSBBZnJpY2FuIGJ1c2gsIGJ1dCBhIHRyZWFjaGVyb3VzIHNvbiBkZXRlcm1pbmVkIHRvIHRha2UgYmFjayBoaXMgZmF0aGVyJ3MgZ3JlYXRlc3QgbGVnYWN5Li4ubm8gbWF0dGVyIHdoYXQgdGhlIGNvc3QuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAxMiBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTMgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNDIubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNDIubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTE3MTgtMTQ4NjE3NzQzNiI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNDMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05ETTZJRU5zYjJOcmQyOXlheUJFYjI5dGMyUmhlUT09IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTA0M18xLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzQzJiN4M0E7JiN4MjA7Q2xvY2t3b3JrJiN4MjA7RG9vbXNkYXkiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNzE4LTE0ODYxNzc0MzYgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0xNzE4LTE0ODYxNzc0MzYgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTcxOC0xNDg2MTc3NDM2Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMTcxOC0xNDg2MTc3NDM2ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj40MyA6PC9zcGFuPiAgICAgICAgICAgICAgICBDbG9ja3dvcmsgRG9vbXNkYXkgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gRGVjIDEsIDIwMTMgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNiBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5JdCBzdGFydGVkIGluIDQ4IEIuQy4gd2hlbiBhIGNlbnR1cmlvbiBvbiBhIHJlc2N1ZSBtaXNzaW9uIGZvciBKdWxpdXMgQ2Flc2FyIHdlbnQgZG93biB3aXRoIHRoZSBzaGlwIGluIGEgc3Rvcm0uIFdpdGggaGlzIGxhc3QgYnJlYXRoLCBoZSBzYXcgdGhlIG9iamVjdCBvZiBDYWVzYXIncyBzZWFmYXJpbmcgZXhjdXJzaW9uLWFuIGFjY3Vyc2VkLCBtZWNoYW5pY2FsIG1pbm90YXVyLWhpdCBib3R0b20uLi5hbmQgc3RhcnQgdG8gd2FsayBhd2F5LjxiciAvPg0KPGJyIC8+DQpXaGlsZSB0YXBpbmcgYW4gZXBpc29kZSBvZiBDaGFzaW5nIEhpc3RvcnkncyBNb25zdGVycywgVFYgaG9zdCBhbmQgYXJjaGFlb2xvZ2lzdCBBbm5qYSBDcmVlZCBsZWFybnMgdGhhdCBoZXIgc29tZXRpbWUgZnJpZW5kIGFuZCBwcm90ZWN0b3IgR2FyaW4gaGFzIGFjcXVpcmVkIGFuIGFuY2llbnQgYnV0dGVyZmx5IGtleSBhcnRpZmFjdCwgdGhlIGtpbmQgb25jZSB1c2VkIHRvIHdpbmQgYXV0b21hdG9ucywgY2xvY2t3b3JrLXN0eWxlIGRldmljZXMuIEV4Y2VwdCwgdGhpcyBrZXkgY29tZXMgd2l0aCBhIHJ1bW9yIGF0dGFjaGVkLCBhIHN0b3J5IHRoYXQgaXQgb25jZSB3b3JrZWQgYSBnb2QtdG91Y2hlZCBkZXZpY2UgYm90aCByYXJlIGFuZCB1bmJlbGlldmFibHkgcG93ZXJmdWwuPGJyIC8+DQo8YnIgLz4NCk5vIHNvb25lciBkb2VzIEdhcmluIGhvbGQgdGhlIGtleSB0aGFuIGl0J3Mgc25hdGNoZWQgZnJvbSBoaXMgaGFuZHMgYnkgYSBmcmVld2hlZWxpbmcgaGlzdG9yaWFuIHdobyBwbGF5cyBieSBoZXIgb3duIHJ1bGVzLiBBbmQgc2hlIHdhbnRzIHVsdGltYXRlIHBvd2VyLCB3aGljaCBjb3VsZCBoYXBwaWx5IGluY2x1ZGUgdGhlIHN3b3JkIG9mIEpvYW4gb2YgQXJjLiBUaGUgcXVlc3QgZm9yIHRoZSBrZXkgYW5kIHRoZSBteXRob2xvZ2ljYWwgYXV0b21hdG9uIHJldW5pdGVzIEFubmphLCBHYXJpbiBhbmQgaGlzIG9sZCBtZW50b3IgUm91eCBpbiBHZW5vYSwgYW5kIHBpdHMgdGhlbSBpbiBhIHJhY2UgYWNyb3NzIEV1cm9wZSB0byBiZWF0IGEgZm9lIGFzIHJlc291cmNlZnVsIGFuZCBza2lsbGVkIGFzIEFubmphIGhlcnNlbGYuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAxMyBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTMgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNDMubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNDMubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIxMTEtMjA3NDU4MzA2OSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNDQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05EUTZJRUpzYjI5a0lFTjFjbk5sWkE9PSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwNDRfMS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs0NCYjeDNBOyYjeDIwO0Jsb29kJiN4MjA7Q3Vyc2VkIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjExMS0yMDc0NTgzMDY5IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjExMS0yMDc0NTgzMDY5IHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIxMTEtMjA3NDU4MzA2OSIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIxMTEtMjA3NDU4MzA2OSAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+NDQgOjwvc3Bhbj4gICAgICAgICAgICAgICAgQmxvb2QgQ3Vyc2VkICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEZlYiAxLCAyMDE0ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+RGVlcCBpbiB0aGUgQmF2YXJpYW4gZm9yZXN0LCBhcmNoYWVvbG9naXN0cyB1bmVhcnRoIGEgbWVkaWV2YWwgaHVtYW4gc2t1bGwgd2l0aCBhIGJyaWNrIHN0dWZmZWQgaW4gaXRzIG1vdXRoLiBXaGVuIEFubmphIENyZWVkIGNhdGNoZXMgd2luZCBvZiB0aGUgc3RyYW5nZSBkaXNjb3ZlcnksIHRoZSBUViBob3N0IGFuZCBhcmNoYWVvbG9naXN0IHJ1c2hlcyB0byBqb2luIHRoZSBkaWcuIEJ1dCB0aGUgc3VwZXJzdGl0aW91cyBsb2NhbHMgYXJlIGZ1cmlvdXMsIGZlYXJpbmcgdGhlIGV4Y2F2YXRpb24gaGFzIGFuZ2VyZWQgb25lIG9mIHRoZSBjaGV3aW5nIGRlYWTigJR0aG9zZSB3aG8gcmlzZSBmcm9tIHRoZWlyIGdyYXZlcyB0byBmZWFzdCBvbiBodW1hbiBmbGVzaCBhbmQgYmxvb2QuIEFuZCBzb29uIHNoZSBhbmQgaGVyIGNvbGxlYWd1ZXMgYXJlIGZhY2luZyBkb3duIHZpb2xlbnQgbW9icyBhbmQgZGVhdGggdGhyZWF0cy4gQXMgZmFyIGFzIEFubmphIGlzIGNvbmNlcm5lZCwgdGhvdWdoLCB0aGUgdmFtcGlyZSBteXRoIGlzIGEgbG9hZCBvZiBidW5rLiBUaGVuIGEgY2hpbGQgZ29lcyBtaXNzaW5nLiA8YnIgLz4NCjxiciAvPg0KU3VkZGVubHkgZW5zbmFyZWQgaW4gdGhlIEN6ZWNoIFJlcHVibGljJ3MgYmxhY2sgbWFya2V0IHVuZGVyd29ybGQsIEFubmphIGhhcyBubyB0cm91YmxlIGJlbGlldmluZyB0aGF0IHNvbWVvbmUgd2FudHMgYmxvb2QuIEJ1dCBpbiB0aGlzIHdvcmxkLCBldmlsIGNvbWVzIGluIGh1bWFuIGZvcm0sIGFuZCBBbm5qYSBoYXMgbm8gY2hvaWNlOiBzaGUgbXVzdCB3aWVsZCBKb2FuIG9mIEFyYydzIHN3b3JkIHRvIHByb3RlY3QgdGhlIGlubm9jZW504oCmLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTMgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDE0IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDQ0Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDQ0Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIxNjMtMjEzNTQwODc0MCI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNDUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05EVTZJRk4xYm10bGJpQlFlWEpoYldsayIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwNDVfMS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs0NSYjeDNBOyYjeDIwO1N1bmtlbiYjeDIwO1B5cmFtaWQiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yMTYzLTIxMzU0MDg3NDAgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yMTYzLTIxMzU0MDg3NDAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjE2My0yMTM1NDA4NzQwIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjE2My0yMTM1NDA4NzQwICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj40NSA6PC9zcGFuPiAgICAgICAgICAgICAgICBTdW5rZW4gUHlyYW1pZCAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBBcHIgMSwgMjAxNCAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPlRoZSBub3RlIGZyb20gaGVyIGZyaWVuZCBhbmQgY29sbGVhZ3VlIGhhZCByZWFkICJJIGhhdmUgcXVpdGUgdGhlIG1vbnN0ZXIgZm9yIHlvdSB0byBjaGFzZSwgZGVhciBBbm5qYS4iIEFuZCB0aGVuIGJlZm9yZSBzaGUgY291bGQgc3BlYWsgdG8gaGltLCBoZSdkIGJlZW4gZm91bmQgZGVhZCBpbiB0aGUgaG90ZWwncyBzdGFpcndlbGwuIEl0IGRpZG4ndCBzZWVtZWQgcG9zc2libGUuIEFubmphIENyZWVkIGhhZCBiZWVuIGxvb2tpbmcgZm9yd2FyZCB0byB0aHJlZSBkYXlzIG9mIGdlZWtpbmcgb3V0IGF0IHRoZSBhcmNoYWVvbG9neSBjb25mZXJlbmNlIGluIE1hZGlzb24sIFdpc2NvbnNpbiwgYW5kIHRoZW4gdGhpcyB0cmFnZWR5IHN0cmlrZXMuIEFuZCBoaXMgaXMgb25seSB0aGUgZmlyc3QgZGVhdGggb3ZlciB0aGUgbG9uZyB3ZWVrZW5kLjxiciAvPg0KPGJyIC8+DQpEZXRlcm1pbmVkIHRvIGludmVzdGlnYXRlIGhlciBmcmllbmQncyBkZWF0aOKAlGFuZCBmaW5kIG91dCB3aHkgYW5vdGhlciBjb2xsZWFndWUgc2hlIHRydXN0cyBpcyBhcnJlc3RlZCBhcyB0aGUgcHJpbWUgc3VzcGVjdOKAlEFubmphIHN0YXJ0cyBnYXRoZXJpbmcgdGhlIHBpZWNlcyBvZiBhIGNyeXB0aWMgcHV6emxlLiBBIHNtYWxsIGNvbGxlY3Rpb24gb2YgTWF5YW4gZ29sZCBtZWRhbGxpb25zLiBUaGUgZGVhdGggb2YgYSBwb3R0ZXIuIFRoZSB2aW9sZW50IGFwcGVhcmFuY2Ugb2YgYSB0ZWVuYWdlZCBnaXJsIHdpdGggYSBzdHJhbmdlIGdyZWVuIGtuaWZlLiBBbmQgYXQgdGhlIGNlbnRlciBvZiB0aGUgcHV6emxlLCBhbiBhbmNpZW50IG1vdW5kIHB5cmFtaWQgcHVycG9ydGVkbHkgaGlkZGVuIGF0IHRoZSBib3R0b20gb2YgYSBXaXNjb25zaW4gbGFrZS4gVGhhdCdzIGEgZGlzY292ZXJ5IHRoYXQgY291bGQgY29tcGxldGVseSByZXdyaXRlIE1lc29hbWVyaWNhbiBoaXN0b3J5LjxiciAvPg0KPGJyIC8+DQpXaXRoIGVhY2ggcHV6emxlIHBpZWNlIEFubmphIENyZWVkIGRpc2NvdmVycywgdGhlIG15c3RlcnkgZ3Jvd3MgbW9yZSBkYW5nZXJvdXMuIEFuZCB3aGF0IHNoZSBrbm93cyBjYW7igJRhbmQgcHJvYmFibHkgd2lsbOKAlGtpbGwgaGVyLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTMgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDE0IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDQ1Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDQ1Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIyNjAtNTg2OTg5MjgyIj4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTA0NiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTkRZNklGUnlaV0Z6ZFhKbElHOW1JRXhwYldFPSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwNDZfMS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs0NiYjeDNBOyYjeDIwO1RyZWFzdXJlJiN4MjA7b2YmI3gyMDtMaW1hIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjI2MC01ODY5ODkyODIgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yMjYwLTU4Njk4OTI4MiBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yMjYwLTU4Njk4OTI4MiIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIyNjAtNTg2OTg5MjgyICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj40NiA6PC9zcGFuPiAgICAgICAgICAgICAgICBUcmVhc3VyZSBvZiBMaW1hICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEp1biAxLCAyMDE0ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+Rm9yIGFyY2hhZW9sb2dpc3QgYW5kIFRWIHNob3cgaG9zdCBBbm5qYSBDcmVlZCwgYSByZXN0ZnVsIHZhY2F0aW9uIGluIENvc3RhIFJpY2EgaXMgYXMgZWx1c2l2ZSBhcyBhIHJhcmUgYXJ0aWZhY3QuIERheXMgaW50byBoZXIgc29qb3VybiwgQW5uamEncyBwZWFjZSBpcyBpbnRlcnJ1cHRlZCBieSBhIHdvbWFuIHdpdGggYSBteXN0ZXJpb3Vz4oCUYW5kIGVudGljaW5n4oCUdGFsZS4gV2Vla3MgZWFybGllciwgaGVyIGh1c2JhbmQgbGVkIGFuIGV4cGVkaXRpb24gaW50byB0aGUgcmFpbiBmb3Jlc3QsIGluIHNlYXJjaCBvZiB0aGUgbG9zdCB0cmVhc3VyZSBvZiBMaW1hLCBhbmQgaGFkbid0IHJldHVybmVkLiBUaGUgcHJpY2VsZXNzIGhvYXJkIHdhcyBzbXVnZ2xlZCBvdXQgb2YgUGVydSBkdXJpbmcgdGhlIGNvdW50cnkncyBuaW5ldGVlbnRoLWNlbnR1cnkgcmV2b2x0IGFnYWluc3QgU3BhaW4uIEJ1dCBpdCBkaXNhcHBlYXJlZCB3aGVuIGEgc2hpcCBjYXB0YWluIHdlbnQgbWFkIHdpdGggZ3JlZWQuPGJyIC8+DQo8YnIgLz4NClR3ZW50eS1zaXggZXhwZWRpdGlvbnMgaGF2ZSBnb25lIGFmdGVyIHRoZSB0cmVhc3VyZS4gQW5kIHR3ZW50eS1zaXggZXhwZWRpdGlvbnMgaGF2ZSB2YW5pc2hlZC48YnIgLz4NCjxiciAvPg0KU3ltcGF0aGV0aWMgdG8gdGhlIHdvbWFuJ3MgZGlzdHJlc3MsIEFubmphIGFncmVlcyB0byBoZWFkIHVwIGEgcmVzY3VlIHBhcnR5IGZvciBoZXIgbWlzc2luZyBodXNiYW5kLiBBbmQgQW5uamEgY2FuJ3QgZGVueSBoZXIgb3duIGludGVyZXN0IGluIHRoZSBsb3N0IGhvYXJkLiBOb3cgdGhlIGZhdGVzIG9mIHR3byBleHBlZGl0aW9ucyBhcmUgYXQgc3Rha2UsIGFsb25nIHdpdGggYSBmb3J0dW5lIGluIGdvbGQsIHNpbHZlciBhbmQgamV3ZWxzIHJ1bW91cmVkIHRvIGJlIGV4cXVpc2l0ZS4gQnV0IHRoZSBkZW5zZSBqdW5nbGUgb2YgQ29jb3MgSXNsYW5kIGd1YXJkcyBpdHMgcHJpbWl0aXZlIHNlY3JldHMgd2VsbC4gRGFuZ2VyIGx1cmtzIGJlbmVhdGggdGhlIGFuY2llbnQgZ3JlZW4gY2Fub3B5LiBBbmQgdGhpcyB0aW1lLCBBbm5qYSBkb2Vzbid0IHNlZSBpdCBjb21pbmcuLi4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDE0IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxNCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA0Ni5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA0Ni5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIzMDAtMTY4NzE3MDY4MSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNDciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05EYzZJRkpwZG1WeUlHOW1JRTVwWjJoMGJXRnlaWE09IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTA0N18xLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzQ3JiN4M0E7JiN4MjA7Uml2ZXImI3gyMDtvZiYjeDIwO05pZ2h0bWFyZXMiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yMzAwLTE2ODcxNzA2ODEgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yMzAwLTE2ODcxNzA2ODEgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjMwMC0xNjg3MTcwNjgxIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjMwMC0xNjg3MTcwNjgxICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj40NyA6PC9zcGFuPiAgICAgICAgICAgICAgICBSaXZlciBvZiBOaWdodG1hcmVzICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEF1ZyAxLCAyMDE0ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+VGhlIHNlY3JldHMgb2YgdGhlIGRlYWQgaW5zcGlyZSB0aGUgZGVhZGx5IGludGVudCBvZiB0aGUgbGl2aW5nIG9uIHRoZSBiYW5rcyBvZiB0aGUgQW1hem9u4oCmIDxiciAvPg0KPGJyIC8+DQpEZWVwIGluIHRoZSBBbWF6b24ganVuZ2xlLCBhIHRyaWJlIGhvbGRzIHRoZSBrZXkgdG8gdGhlIHRydWVzdCBmb3JtIG9mIGRyZWFtaW5n4oCUd2hlcmUgdGhlIGh1bWFuIHNwaXJpdCB3YWxrcyB0aGUgcGV0YWwtdGhpbiBsaW5lIGJldHdlZW4gbGlmZSBhbmQgZGVhdGguIEluIGFuIGVsYWJvcmF0ZSBjZXJlbW9ueSwgdGhlIGRyZWFtZXIgaW5nZXN0cyBhIHRveGljIGJyZXcsIHRoZW4gc3VibWVyZ2VzIGhlcnNlbGYgaW4gYW4gaGVyYmFsIGJhdGggdGhhdCB0dXJucyBodW1hbiBza2luIGEgdml2aWQgc2hhZGUgb2YgbWlkbmlnaHQtYmx1ZS4gQW5kIHRoZSBleHBlcmllbmNlIGNoYW5nZXMgdGhlIGRyZWFtZXIgZm9yZXZlcuKApi4gPGJyIC8+DQo8YnIgLz4NCkFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQgaGFzIGEgZnVsbCBjcmV3IGluIHRvdyBhcyBoZXIgVFYgc2hvdywgQ2hhc2luZyBIaXN0b3J5J3MgTW9uc3RlcnMsIHByZXBhcmVzIGZvciBhbiBpbi1kZXB0aCBleHBsb3JhdGlvbiBvZiB0aGUgcmFpbiBmb3Jlc3QncyBtb3N0IGd1YXJkZWQgc2VjcmV0c+KAlGluY2x1ZGluZyBhIG1hZ2ljYWwgY2hpbGQgYW5kIGEgc2xvdGhsaWtlIGJlYXN0IHdpdGggdHdvIG1vdXRocyBhbmQgYSBzaW5nbGUgZXllLiBCdXQgYW4gb3Bwb3J0dW5pdHkgdG8gdHJlYWQgb2ZmIHRoZSBiZWF0ZW4gcGF0aCBwcm92ZXMgdG9vIHRlbXB0aW5nIHRvIGlnbm9yZSwgYW5kIEFubmphIGxlYWRzIGhlciBjcmV3IGludG8gYW4gdW5jaGFydGVkIHdvcmxkIHRoYXQncyBib3RoIGFsaWVuIGFuZCBkYW5nZXJvdXPigJRhIHdvcmxkIHRoYXQgYXR0cmFjdHMgdGhlIG1vcmFsbHkgY29ycnVwdCB3aXRoIHByb21pc2VzIG9mIHdlYWx0aCBhbmQgcG93ZXIuIEEgd29ybGQgdGhhdCB3aWxsIHN0ZWFsIHRoZSBvbmUgdGhpbmcgQW5uamEgbmVlZHMgdG8gc3Vydml2ZTogaGVyc2VsZi4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDE0IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxNCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA0Ny5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA0Ny5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIzMzYtMTU1Mjc5NDI4MiI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNDgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05EZzZJRWR5Wlc1a1pXd25jeUJEZFhKelpRPT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDQ4XzEuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7NDgmI3gzQTsmI3gyMDtHcmVuZGVsJiN4Mjc7cyYjeDIwO0N1cnNlIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjMzNi0xNTUyNzk0MjgyIHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjMzNi0xNTUyNzk0MjgyIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIzMzYtMTU1Mjc5NDI4MiIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIzMzYtMTU1Mjc5NDI4MiAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+NDggOjwvc3Bhbj4gICAgICAgICAgICAgICAgR3JlbmRlbCdzIEN1cnNlICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IE9jdCAxLCAyMDE0ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+QSBzd29yZCBvZiBsZWdlbmQgaW4gdGhlIGhhbmRzIG9mIGFuIGV4dHJlbWlzdOKApiA8YnIgLz4NCjxiciAvPg0KU2thbHVuZGEgQmFycm93LCBTd2VkZW4sIGhhcyBsb25nIGJlZW4gcnVtb3JlZCB0byBiZSB0aGUgZmluYWwgcmVzdGluZyBwbGFjZSBvZiB0aGUgbGVnZW5kYXJ5IE5vcmRpYyBoZXJvIEJlb3d1bGYuIEFuZCB0aGVyZSdzIHNvbWV0aGluZyBvZiBCZW93dWxmJ3MgdGhhdCBjaGFyaXNtYXRpYyBhbmQgemVhbG91cyByaWdodC13aW5nIHBvbGl0aWNpYW4gS2FybCBUaG9yc3NlbiB3YW50cyB2ZXJ5IGJhZGx5LiBJbnRlbnQgb24gZ2V0dGluZyBoaXMgaGFuZHMgb24gdGhlIG15dGhpY2FsIHN3b3JkIE7DpmdsaW5nLCBTd2VkZW4ncyBnb2xkZW4tYm95IHBvbGl0aWNvIHB1dHMgdG9nZXRoZXIgYSB0ZWFtIHRvIGV4Y2F2YXRlIHRoZSBiYXJyb3cuIEEgdGVhbSB0aGF0IEFtZXJpY2FuIGFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQgbWFuYWdlcyB0byBmaW5hZ2xlIGhlciB3YXkgb250by4gU2hlIHdvdWxkbid0IG1pc3MgdGhpcyBwb3NzaWJsZSBkaXNjb3ZlcnkgZm9yIGFueXRoaW5nLiA8YnIgLz4NCjxiciAvPg0KV2l0aCBOw6ZnbGluZyBhdCBoaXMgc2lkZSwgVGhvcnNzZW4gY291bGQgYmUgaW52aW5jaWJsZeKApmEgTm9yZGljIEtpbmcgQXJ0aHVyLiBXaGF0IGhpcyBmb2xsb3dlcnMgZG9uJ3Qga25vd+KAlGFuZCBBbm5qYSBpcyBiZWdpbm5pbmcgdG8gc3VzcGVjdOKAlGlzIGp1c3QgaG93IGZhciBUaG9yc3NlbiB3aWxsIGdvIHRvIGFjaGlldmUgaGlzIHJhYmlkIGFtaWJpdGlvbnMuIFdoZW4gVGhvcnNzZW4gbWFya3MgQW5uamEgZm9yIGRlYXRoLCBzaGUgcXVpY2tseSByZWFsaXplcyB0aGF0IHRoaXMgaXMgbXVjaCBtb3JlIHRoYW4gYSBwb2xpdGljYWwgZ2FtZS4gQW5kIHRoZSBvbmx5IHdheSB0byBzdXJ2aXZlIGlzIHRvIG1hdGNoIFRob3Jzc2VuJ3Mgc3dvcmQgd2l0aCBoZXIgb3duLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTQgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDE0IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDQ4Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDQ4Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIzNzItMTY0MTU2NjgwNiI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNDkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05EazZJRlJvWlNCRVpYWnBiQ2R6SUVOb2IzSmsiCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDQ5XzEuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7NDkmI3gzQTsmI3gyMDtUaGUmI3gyMDtEZXZpbCYjeDI3O3MmI3gyMDtDaG9yZCIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIzNzItMTY0MTU2NjgwNiB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIzNzItMTY0MTU2NjgwNiBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yMzcyLTE2NDE1NjY4MDYiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yMzcyLTE2NDE1NjY4MDYgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjQ5IDo8L3NwYW4+ICAgICAgICAgICAgICAgIFRoZSBEZXZpbCdzIENob3JkICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IERlYyAxLCAyMDE0ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+RGEgVmluY2kncyBncmVhdGVzdCBhbmQgbW9zdCBkYW5nZXJvdXMgbGVnYWN54oCmIDxiciAvPg0KPGJyIC8+DQpJbiB0aGUgbWlkc3Qgb2YgYSBsb3ZlcnMnIHF1YXJyZWwgb24gYSBWZW5ldGlhbiBicmlkZ2UsIGEgcGFpciBvZiBhcnQgdGhpZXZlcyBsb3NlcyBhIHByaWNlbGVzcywgc3RvbGVuIExvcnJhaW5lIGNyb3NzIHRvIHRoZSBjYW5hbCdzIG11cmt5IHdhdGVycy4gU3VzcGVjdGluZyBhIGNvbm5lY3Rpb24gYmV0d2VlbiB0aGUgY3Jvc3MsIEpvYW4gb2YgQXJjIGFuZCBkYSBWaW5jaSwgQW5uamEgQ3JlZWQncyBmb3JtZXIgbWVudG9yLCBSb3V4LCBzZW5kcyB0aGUgYXJjaGFlb2xvZ2lzdCB0byBvdmVyc2VlIHRoZSBzZWFyY2ggZm9yIHRoZSBtaXNzaW5nIGFydGlmYWN0LiBCdXQgc29tZW9uZSBlbHNlIGtub3dzIGFib3V0IHRoZSBjcm9zc+KApmtub3dzIGVub3VnaCB0byBraWxsIGZvciBpdC4gPGJyIC8+DQo8YnIgLz4NCkRlc3BpdGUgc2V2ZXJhbCB2aWNpb3VzIGF0dGFja3MgZHVyaW5nIHRoZWlyIHVuZGVyd2F0ZXIgZXhwZWRpdGlvbiwgQW5uamEgYW5kIFJvdXgncyBoaXJlZCBkaXZlciByZWNvdmVycyB0aGUgY3Jvc3MuIEJ1dCB3aGVuIHRoZSBkaXZlcidzIGxveWFsdGllcyBhcmUgY2FsbGVkIGludG8gcXVlc3Rpb24gYW5kIGhlIGRpc2FwcGVhcnPigJRhbG9uZyB3aXRoIHRoZSB0cmVhc3VyZeKAlEFubmphIGlzIGNlcnRhaW4gdGhlcmUncyBtb3JlIHRvIHRoZSBhbmNpZW50IG9iamVjdCB0aGFuIFJvdXggaXMgbGV0dGluZyBvbi4gU2hlIHNvb24gZGlzY292ZXJzIHRoZSBjcm9zcyBpcyBvbmx5IG9uZSBwaWVjZSBpbiBhbiBpbnRyaWNhdGUgZW5pZ21h4oCUYSBrZXkgdGhhdCwgd2hlbiBjb21iaW5lZCB3aXRoIGEgc2VyaWVzIG9mIG11c2ljYWwgbm90ZXMsIG1heSB1bmxvY2sgb25lIG9mIExlb25hcmRvIGRhIFZpbmNpJ3MgbW9zdCBmYW50YXN0aWNhbCBpbnZlbnRpb25zLiBCdXQgdGhlIHByaWNlIEFubmphIG11c3QgcGF5IHRvIHN0b3AgdGhpcyBrZXkgZnJvbSBmYWxsaW5nIGludG8gdGhlIHdyb25nIGhhbmRzIG1heSBiZSBoZXIgbGlmZS4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDE0IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxNCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA0OS5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA0OS5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI0MDYtMTU2MjI5NTY5MSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNTAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05UQTZJRU5sYkhScFl5QkdhWEpsIgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTA1MF8xLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzUwJiN4M0E7JiN4MjA7Q2VsdGljJiN4MjA7RmlyZSIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI0MDYtMTU2MjI5NTY5MSB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI0MDYtMTU2MjI5NTY5MSBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNDA2LTE1NjIyOTU2OTEiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNDA2LTE1NjIyOTU2OTEgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjUwIDo8L3NwYW4+ICAgICAgICAgICAgICAgIENlbHRpYyBGaXJlICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEZlYiAxLCAyMDE1ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+QSBzd29yZCwgYSBzdG9uZSBhbmQgYSBkZWFkbHkgbGVnYWN54oCmIDxiciAvPg0KPGJyIC8+DQpUaGUgdGhlZnQgb2YgYSB3aGV0c3RvbmUgZnJvbSBhIFdlbHNoIG11c2V1bSBhbmQgdGhlIG11cmRlciBvZiBhIGN1cmF0ZSBkdXJpbmcgYSBncmF2ZSByb2JiZXJ5IHNlZW0sIGF0IGZpcnN0LCBsaWtlIHJhbmRvbSBjcmltZXMuIEJ1dCB0aGUgdHJvdWJsaW5nIGRlZWRzIGFyZSBsaW5rZWQgYnkgYSBwcmVjYXJpb3VzIHRocmVhZC4gQW4gdW51c3VhbCBjb2xsZWN0aW9uIG9mIHJhcmUgYW5kIHNjYXR0ZXJlZCBCcml0aXNoIGFudGlxdWl0aWVzIGhhcyBiZWNvbWUgYSB0YXJnZXTigJRhbmQgdGhlIHJlbGljcycgdmFsdWUgbGllcyBpbiBzb21ldGhpbmcgbXVjaCBtb3JlIGRhbmdlcm91cyB0aGFuIG1vbmV54oCmLiA8YnIgLz4NCjxiciAvPg0KQW5uamEgQ3JlZWQsIGFyY2hhZW9sb2dpc3QgYW5kIGhvc3Qgb2YgdGVsZXZpc2lvbidzIENoYXNpbmcgSGlzdG9yeSdzIE1vbnN0ZXJzLCBpcyBpbiB0aGUgVS5LLiB3aGVuIGhlciBtZW50b3IsIFJvdXgsIGludGVycnVwdHMgaGVyIHNvam91cm4gd2l0aCBuZXdzIG9mIHRoZSB0aGVmdHMuIEhlJ3MgY2VydGFpbiB0aGF0IHRoZSB0aGlydGVlbiBUcmVhc3VyZXMgb2YgQnJpdGFpbiBhcmUgd2FudGVkIGZvciB0aGVpciBydW1vcmVkIHBvd2VyLiBSb3V4IHRhc2tzIEFubmphIHdpdGggbG9jYXRpbmcgYW5kIHByb3RlY3RpbmcgdGhlIHRyZWFzdXJlcyBiZWZvcmUgdGhlIHdyb25nIHBlcnNvbiBmaW5kcyB0aGVtLCBtZWFuaW5nIHNoZSBtdXN0IHN0YW5kIGFnYWluc3QgYSB3b21hbiBmdWVsZWQgYnkgbWFkbmVzcyBhbmQgdGhlIGZpcmVzIG9mIGhlciBhbmNpZW50IENlbHQgYmxvb2TigJRhbmQgYSBzd29yZCBhcyBwb3dlcmZ1bCBhbmQgb3RoZXJ3b3JsZGx5IGFzIEFubmphJ3Mgb3duLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTQgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDE1IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDUwLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDUwLm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI0NDEtMTkwNjA5NzAzMCI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNTEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05URTZJRlJvWlNCUWNtVjBaVzVrWlhJbmN5QkhZVzFpYVhRPSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwNTFfMS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs1MSYjeDNBOyYjeDIwO1RoZSYjeDIwO1ByZXRlbmRlciYjeDI3O3MmI3gyMDtHYW1iaXQiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNDQxLTE5MDYwOTcwMzAgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNDQxLTE5MDYwOTcwMzAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjQ0MS0xOTA2MDk3MDMwIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjQ0MS0xOTA2MDk3MDMwICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj41MSA6PC9zcGFuPiAgICAgICAgICAgICAgICBUaGUgUHJldGVuZGVyJ3MgR2FtYml0ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEFwciAxMywgMjAxNSAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPldpdGggb25lIHNtYWxsIGNoZXNzIHBpZWNlLCB0aGUgZ2FtZSBiZWdpbnPigKYgPGJyIC8+DQo8YnIgLz4NCkZvciBhcmNoYWVvbG9naXN0IGFuZCBUViBob3N0IEFubmphIENyZWVkLCBhIGxhdGUtbmlnaHQgcGhvbmUgY2FsbCBmcm9tIHRoZSBOWVBEIG1lYW5zIG9uZSB0aGluZzogdGhlcmUncyBiZWVuIGEgbXVyZGVyIGFuZCB0aGUgcG9saWNlIG5lZWQgaGVyIGV4cGVydGlzZS4gVGhlIG9ubHkgbGluayBiZXR3ZWVuIGEgZGVhZCBib2R5IGFuZCB0aGUga2lsbGVyIGlzIGEgc21hbGwgZWxlcGhhbnQgb2Ygd2hpdGUgamFkZS4gQW4gYXJ0aWZhY3QgdGhhdCdzIGdvbmUgbWlzc2luZy4gIDxiciAvPg0KPGJyIC8+DQpPbmNlIGJlbG9uZ2luZyB0byBDYXRoZXJpbmUgdGhlIEdyZWF0IG9mIFJ1c3NpYSwgdGhlIGVsZXBoYW50IHdhcyBrZXkgaW4gYSByaXNreSBwb2xpdGljYWwgZ2FtYml0IGFsbCB0aG9zZSB5ZWFycyBhZ28uIEJ1dCB0aGVyZSBpcyBhbm90aGVyIHN0b3J5IGF0dGFjaGVkIHRvIHRoZSBhcnRpZmFjdOKAlGEgcnVtb3Igb2YgYW4gYW5jaWVudCBoaWRkZW4gdHJlYXN1cmUuIEFuZCBmb3IgYSBjcnVlbGx5IGFtYml0aW91cyBtZWRpYSBtb2d1bCB3aXRoIGEgcGVuY2hhbnQgZm9yIHRvbWItcmFpZGluZywgdGhlIGVsZXBoYW50IGlzIG5vdGhpbmcgc2hvcnQgb2YgcHJpY2VsZXNzLiA8YnIgLz4NCjxiciAvPg0KQW5uamEgbXVzdCBtYWtlIGhlciBtb3ZlIHF1aWNrbHksIHRyYXZlbGluZyBhY3Jvc3Mgc2V2ZXJhbCBjb250aW5lbnRzIHdpdGggb25seSB0aGUgYXNzaXN0YW5jZSBvZiBoZXIgZXh0cmFvcmRpbmFyeSBzd29yZOKAlHB1cnBvcnRlZGx5IHRoZSBzYW1lIHN3b3JkIHdpZWxkZWQgYnkgSm9hbiBvZiBBcmPigJRhbmQgYSBteXN0ZXJpb3VzIHRlbXBsZSBtb25rLiBJdCdzIGEgZGVhZGx5IGJhdHRsZSBvZiB3aXRzLCBhbmQgb25lIHdyb25nIG1vdmUgY291bGQgbWVhbiBnYW1lIG92ZXIuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAxNCBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTUgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNTEubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNTEubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI0NzYtODA0NDgwNDUiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2Utd3JhcHBlciI+CiAgICAgICAgPGltZyBjbGFzcz0icHJvZHVjdC1pbWFnZS1waG90byIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1za3U9IlJBMDUyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LW5hbWU9IlVtOW5kV1VnUVc1blpXd2dOVEk2SUVSbFlYUm9JRTFoYzJzPSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwNTJfMy5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs1MiYjeDNBOyYjeDIwO0RlYXRoJiN4MjA7TWFzayIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI0NzYtODA0NDgwNDUgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNDc2LTgwNDQ4MDQ1IHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI0NzYtODA0NDgwNDUiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNDc2LTgwNDQ4MDQ1ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj41MiA6PC9zcGFuPiAgICAgICAgICAgICAgICBEZWF0aCBNYXNrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEp1biAyMiwgMjAxNSAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPlRoZSBmYWNlIG9mIGV2aWwuIEFuZCB0aGUgZmFjZSBvZiBncmVlZOKApjxiciAvPg0KPGJyIC8+DQpJbiBqdXN0IDI0IGhvdXJzLCBBbm5qYSBDcmVlZCBtdXN0IGZpbmQgdGhlIERlYXRoIE1hc2sgb2YgVG9ycXVlbWFkYSwgVGhlIEdyYW5kIElucXVpc2l0b3Igb2YgVGhlIElucXVpc2l0aW9uLCBvciBHYXJpbiBCcmFkZW4gd2lsbCBkaWUuIDxiciAvPg0KPGJyIC8+DQpBbm5qYeKAmXMgc2VhcmNoIHRha2VzIGhlciBiZW5lYXRoIG1vZGVybiBkYXkgU3BhaW4gdGhyb3VnaCB0aGUgZGFyayBwYXNzYWdlcyBhbmQgaGlkZGVuIGNoYW1iZXJzIG9mIHRoZSBpbnF1aXNpdGlvbjogcmV2ZWFsaW5nIHRyZWFzdXJlIGhpZGRlbiBmcm9tIHRoZSBDaHVyY2gsIGFuZCBiZXRyYXlhbCBoaWRkZW4gZnJvbSBBbm5qYS48YnIgLz4NCjxiciAvPg0KQW5uamEgQ3JlZWQgaXMgZmFjaW5nIGhlciBncmVhdGVzdCB0cmlhbC4gQW5kIG5vdCBldmVuIHRoZSBob2x5IHN3b3JkIG9mIEpvYW4gb2YgQXJjIGNhbiBzcGFyZSBoZXIgZnJvbSB0aGUgZmluYWwganVkZ21lbnQuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAxNCBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTUgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNTIubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNTIubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1MTMtMTM4MTU3NDQyNSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNTMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05UTTZJRUpoZEdobFpDQnBiaUJDYkc5dlpBPT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDUzXzEuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7NTMmI3gzQTsmI3gyMDtCYXRoZWQmI3gyMDtpbiYjeDIwO0Jsb29kIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjUxMy0xMzgxNTc0NDI1IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjUxMy0xMzgxNTc0NDI1IHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1MTMtMTM4MTU3NDQyNSIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1MTMtMTM4MTU3NDQyNSAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+NTMgOjwvc3Bhbj4gICAgICAgICAgICAgICAgQmF0aGVkIGluIEJsb29kICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEp1bCAyMiwgMjAxNSAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA2IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPlRoZSBxdWVzdCBmb3IgeW91dGggb25seSBsZWFkcyB0byBkZWF0aOKApiA8YnIgLz4NCjxiciAvPg0KVGhlIEJsb29kIENvdW50ZXNz4oCURWxpemFiZXRoIEJhdGhvcnksIGEgdHJ1ZSBtb25zdGVyIG9mIGhpc3RvcnnigJRpcyBvbmUgb2YgdGhlIG1vc3QgaW5mYW1vdXMgc2VyaWFsIGtpbGxlcnMuIFNhaWQgdG8gaGF2ZSBtdXJkZXJlZCA2NTAgeW91bmcgd29tZW4gZm9yIHRoZWlyIGJsb29kLCBzaGUgYmVsaWV2ZWQgYmF0aGluZyBpbiBpdCB3b3VsZCBwcmVzZXJ2ZSBoZXIgdml0YWxpdHkgYW5kIGJlYXV0eS4gSXQncyBhIHN0b3J5IHRoYXQgaGFzIGFsd2F5cyBmYXNjaW5hdGVkIGFyY2hhZW9sb2dpc3QgYW5kIFRWIGhvc3QgQW5uamEgQ3JlZWQuIFNvbWV0aGluZyBzbyBmYW50YXN0aWMgY291bGQgb25seSBiZSBhIHN0b3J5LiBTbyB3aGF0IGlzIEFubmphIHRvIG1ha2Ugb2YgdGhlIGdpcmwgc2hlIGZpbmRzIGR5aW5nIG9uIHRoZSBzaWRlIG9mIHRoZSByb2Fk4oCmZnJvbSBibG9vZCBsb3NzPyA8YnIgLz4NCjxiciAvPg0KVGhlcmUncyBzb21ldGhpbmcgZWVyaWUgaW4gdGhpcyBzbWFsbCBTbG92YWtpYW4gdG93biwgd2hlcmUgcnVtb3JzIG9mIHZhbXBpcmlzbSBoYW5nIHVuc3Bva2VuIGluIHRoZSBhaXIuIFlldCwgb3V0IG9mIGZlYXIsIHRoZSBsb2NhbHMgc2F5IG5vdGhpbmcuIFNodXQgb3V0IGJ5IHRoZSBwb2xpY2UsIEFubmphIG9ubHkgZGlncyBkZWVwZXIgaW50byB0aGUgc3RyYW5nZSBkZWF0aCwgdW5jb3ZlcmluZyB0cm91Ymxpbmcgc2NyYXBzIG9mIGV2aWRlbmNl4oCUYW5kIGNvdmVyLXVwcy4gSGVyIG9uZSBsZWFkIGlzIGFuIGVuaWdtYXRpYyByZXRpcmVkIHBvbGljZSBvZmZpY2VyIHdobyBoYXMgYmVlbiBpbnZlc3RpZ2F0aW5nIHRoZSBkaXNhcHBlYXJhbmNlIG9mIG1vcmUgdGhhbiB0d2VudHkgd29tZW4uIEFsbCBvZiB0aGVtIHlvdW5nLiBBbGwgb2YgdGhlbSBiZWF1dGlmdWwuIDxiciAvPg0KPGJyIC8+DQpUaGUgb25seSB3YXkgQW5uamEgY2FuIHNlZSB0byB1bmNvdmVyIHRoZSB0cnV0aCBpcyBieSBiZWNvbWluZyB0aGUgQmxvb2QgQ291bnRlc3MncyBuZXh0IHZpY3RpbeKApi4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDE1IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxNSBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA1My5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA1My5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1NTMtMTU1OTQ5NTE3Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTA1NCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTlRRNklFUmhlU0J2WmlCQmRHOXVaVzFsYm5RPSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwNTRfMS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs1NCYjeDNBOyYjeDIwO0RheSYjeDIwO29mJiN4MjA7QXRvbmVtZW50Ii8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjU1My0xNTU5NDk1MTcgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNTUzLTE1NTk0OTUxNyBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNTUzLTE1NTk0OTUxNyIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1NTMtMTU1OTQ5NTE3ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj41NCA6PC9zcGFuPiAgICAgICAgICAgICAgICBEYXkgb2YgQXRvbmVtZW50ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IFNlcCAyOCwgMjAxNSAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkEgcmVja29uaW5nIHRoYXQgd2lsbCBkZXN0cm95IHRoZW0gYWxs4oCmIDxiciAvPg0KPGJyIC8+DQpUcmlhbHMsIHBlcnNlY3V0aW9ucywgZmFsc2UgYWNjdXNhdGlvbnMsIHRoZSBJbnF1aXNpdGlvbuKAlGZvciBhcmNoYWVvbG9naXN0IGFuZCBUViBob3N0IEFubmphIENyZWVkLCB0aGUgY3VycmVudCBlcGlzb2RlIHRoZXkncmUgdGFwaW5nIGZvciBoZXIgc2hvdyBpcyBhIGZhc2NpbmF0aW5nIG9uZS4gQnV0IHdoaWxlIEFubmphIGlzIGZpbG1pbmcgdGhlIGxhc3Qgc2VnbWVudCBpbiBGcmFuY2UsIGEgdmljaW91cyAiYWNjaWRlbnQiIG5lYXJseSBraWxscyBoZXIuIEl0IGxvb2tzIHRvIGJlIHVuaW50ZW50aW9uYWzigKZ1bnRpbCBhIG1hbiBjYWxsaW5nIGhpbXNlbGYgQ2F1Y2hvbiBjbGFpbXMgcmVzcG9uc2liaWxpdHkuIDxiciAvPg0KPGJyIC8+DQpUaGUgbmFtZSBDYXVjaG9uIHN0cmlrZXMgYSBjaG9yZCBpbiB0aGUgZXhjZXB0aW9uYWxseeKAlHNvbWUgbWlnaHQgc2F5IHVubmF0dXJhbGx54oCUbG9uZyBtZW1vcnkgb2YgQW5uamEncyBmcmllbmQgYW5kIG1lbnRvciBSb3V4LiBEaXNjb3ZlcmluZyB0aGUgb2xkIG1hbidzIHNlY3JldCB5ZWFycyBhZ28sIENhdWNob24gd2FudGVkIHRvIGJsYWNrbWFpbCBSb3V4IGJlZm9yZSBmYXRlIHB1dCB0aGUgbWF0dGVyIHRvIHJlc3QuIE9yIHNvIFJvdXggdGhvdWdodC4gTm93IHRoaXMgcG93ZXJmdWwgZmFuYXRpYyBoYXMgdHVybmVkIGZyb20gc2Vla2luZyBvdXQgdGhlIGRpdmluZSB0byBtZXRpbmcgb3V0ICJqdXN0aWNlLiIgVmVuZ2VhbmNlLiBBbmQgaGUgd2lsbCBzaW5nbGUtaGFuZGVkbHkgcmVzdXJyZWN0IHRoZSB2aW9sZW5jZSBvZiB0aGUgSW5xdWlzaXRpb24gdG8gZW5zdXJlIHRoYXQgQW5uamEgYW5kIGhlciBmcmllbmQgYXJlIGp1ZGdlZCBhbmQgZm91bmQgZ3VpbHR5LiBXaXRoIHNvIG11Y2ggYXQgc3Rha2UsIEFubmphIG1heSBzb29uIGZpbmQgdGhhdCBmcmllbmRzaGlwIGNhbiBiZSBmYXRhbC4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDE1IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxNSBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA1NC5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA1NC5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1NjgtODYxMDQ1MzQ4Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTA1NSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTlRVNklFSmxibVZoZEdnZ1UzUnBiR3dnVjJGMFpYSnoiCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9hL3JhMDU1XzEuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7NTUmI3gzQTsmI3gyMDtCZW5lYXRoJiN4MjA7U3RpbGwmI3gyMDtXYXRlcnMiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNTY4LTg2MTA0NTM0OCB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1NjgtODYxMDQ1MzQ4IHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1NjgtODYxMDQ1MzQ4Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjU2OC04NjEwNDUzNDggIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjU1IDo8L3NwYW4+ICAgICAgICAgICAgICAgIEJlbmVhdGggU3RpbGwgV2F0ZXJzICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IE5vdiA0LCAyMDE1ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+QSB3cmVja2VkIEdlcm1hbiBib21iZXLigKZrZXkgdG8gdGhlIHNlY3JldHMgb2YgdGhlIFRoaXJkIFJlaWNoPyA8YnIgLz4NCjxiciAvPg0KQWxsIGl0IHRvb2sgd2FzIG9uZSBwaG9uZSBjYWxsIGFuZCBUViBzaG93IGhvc3QgYW5kIGFyY2hhZW9sb2dpc3QgQW5uamEgQ3JlZWQgaXMgaW4gbW9ydGFsIGRhbmdlci4gSGVyIHByb2R1Y2VyIERvdWcgTW9ycmVsbCBoYXMgYmVlbiBhYmR1Y3RlZCBieSBhIGdyZWVkeSB0cmVhc3VyZSBodW50ZXIgd2hvJ3Mgc2Vla2luZyB0aGUgbG9zdCByYXViZ29sZCwgb3IgbG9vdGVkIGdvbGQgb2YgTmF6aSBHZXJtYW55LiBUaGUgdGVybXMgYXJlIHNpbXBsZTogcmV0cmlldmUgdGhlIGJvdW50eSBhbmQgRG91ZyBsaXZlcy4gRmFpbCwgYW5kIGhlIGRpZXPigKYgPGJyIC8+DQo8YnIgLz4NCk5vdyBBbm5qYSBhbmQgaGVyIGZyaWVuZHMgbXVzdCBmaW5kIGEgbWlzc2luZyBHZXJtYW4gZmlnaHRlciBwbGFuZSB0aGF0IHdhcyBzaG90IGRvd24gb3ZlciB0aGUgQWxwcyBpbiAxOTQ1LiBBY2NvcmRpbmcgdG8gbGVnZW5kLCB0aGUgYWlyY3JhZnQgbm90IG9ubHkgaG9sZHMgYSBzaGlwbWVudCBvZiBnb2xkIHRoZSBOYXppcyBoYWQgc3RvbGVuLCBidXQgYWxzbyBjYXJyaWVkIHRoZSBsYXN0IGxldHRlcnMgb2YgdGhlIGbDvGhyZXIgaGltc2VsZi4gTGV0dGVycyB0aGF0IHBvaW50IHRvIGEgbW9yZSBzdGFydGxpbmcgdHJlYXN1cmUgYnVyaWVkIHVuZGVyd2F0ZXIgaGFsZndheSBhcm91bmQgdGhlIHdvcmxkLiBCdXQgQW5uamEgaXNuJ3QgaW50ZXJlc3RlZCBpbiB0cmVhc3VyZSwgb3IgZXZlbiB1bmVhcnRoaW5nIGhpc3RvcmljIHJlbGljcy4gQW5uamEgaGFzIG9uZSBhZ2VuZGE6IGdldCBEb3VnIG91dCBhbGl2ZeKApmV2ZW4gaWYgaXQgbWVhbnMgZHJhd2luZyBoZXIgc3dvcmQgZnJvbSBpdHMgb3RoZXJ3b3JsZGx5IHNoZWF0aC4gRXZlbiBpZiBpdCBtZWFucyBkZWF0aC4gPGJyIC8+DQo8YnIgLz4NCkJlY2F1c2Ugb25jZSBncmVlZCBkcml2ZXMgYSBtYW4gdG8gdmlvbGVuY2UsIG5vdGhpbmcgd2lsbCBzdG9wIGhpbeKApiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTUgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDE1IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDU1Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDU1Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI2MDQtNTM2MDMxNjM1Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTA1NiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTlRZNklGUm9aU0JOYjNKMFlXeHBkSGtnVUhKcGJtTnBjR3hsIgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3IvYS9yYTA1Nl8xLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzU2JiN4M0E7JiN4MjA7VGhlJiN4MjA7TW9ydGFsaXR5JiN4MjA7UHJpbmNpcGxlIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjYwNC01MzYwMzE2MzUgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNjA0LTUzNjAzMTYzNSBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNjA0LTUzNjAzMTYzNSIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI2MDQtNTM2MDMxNjM1ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj41NiA6PC9zcGFuPiAgICAgICAgICAgICAgICBUaGUgTW9ydGFsaXR5IFByaW5jaXBsZSAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgQWxleCBBcmNoZXI8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBEZWMgMjgsIDIwMTUgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5XaGVuIGxlZ2VuZCBiZWNvbWVzIGRlYWRseSByZWFsaXR54oCmIDxiciAvPg0KPGJyIC8+DQpJbiBQcmFndWUgcmVzZWFyY2hpbmcgdGhlIGxlZ2VuZCBvZiB0aGUgR29sZW0sIGEgZmFudGFzdGljYWwgImxpdmluZyIgY3JlYXR1cmUgbWFkZSBvZiBjbGF5LCBhcmNoYWVvbG9naXN0IEFubmphIENyZWVkIGlzIGZhY2VkIHdpdGggYW4gZXZlbiBiaWdnZXIgbXlzdGVyeSBvbiBoZXIgaGFuZHMgd2hlbiBzb21lb25lIGJlZ2lucyBtdXJkZXJpbmcgdGhlIGhvbWVsZXNzLiBBbmQgZXZlcnkgZGF5IHRoZXJlJ3MgYSBmcmVzaCBjb3Jwc2UuIDxiciAvPg0KPGJyIC8+DQpBcyB0aGUgc3VzcGljaW9uIHRoYXQgR29sZW0gaXMgYmVoaW5kIHRoZSBkZWF0aHMgY2lyY3VsYXRlcyBxdWlldGx5IG9uIHRoZSBzdHJlZXRzIG9mIHRoZSBjaXR5LCBBbm5qYSBjYW5ub3QgcmVzaXN0IHVucmF2ZWxpbmcgdGhlIHRocmVhZCB0aGF0IGJpbmRzIHNjaWVuY2UgdG8gc3VwZXJzdGl0aW9uLiBBY2NvcmRpbmcgdG8gQ3plY2ggaGlzdG9yeSwgdGhlc2UgYXJlbid0IG5ldyBhdHRhY2tzLiBUaGV5J3JlIHBhcnQgb2YgYSBncmVhdGVyIHBhdHRlcm4gb2YgbXVyZGVycyB0aGF0IGhhdmUgZ29uZSB1bmFja25vd2xlZGdlZCBvdmVyIGNlbnR1cmllcy4gQW5kIG5vdyBBbm5qYSBpcyB0aGUgbmV4dCB0YXJnZXQuIFVubGVzcyBzaGUgY2FuIGZpbmQgdGhlIHJlYWwgbW9uc3RlciBiZWhpbmQgdGhlIG15dGjigKZiZWZvcmUgaXQgZmluZHMgaGVyLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTUgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDE1IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDU2Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDU2Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI2MjAtMzM0NjU0Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTA1NyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTlRjNklFMTVjM1JwWXlCWFlYSnlhVzl5IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3Ivby9yb2d1ZV9hbmdlbF81N19teXN0aWNfd2Fycmlvcl8yLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzU3JiN4M0E7JiN4MjA7TXlzdGljJiN4MjA7V2FycmlvciIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI2MjAtMzM0NjU0IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjYyMC0zMzQ2NTQgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjYyMC0zMzQ2NTQiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNjIwLTMzNDY1NCAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+NTcgOjwvc3Bhbj4gICAgICAgICAgICAgICAgTXlzdGljIFdhcnJpb3IgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gRmViIDEsIDIwMTYgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5VbmNvdmVyaW5nIGFuIGFuY2llbnQgYXJpc3RvY3JhY3kgYW5kIGl0cyBoaWRkZW4gc2VjcmV0PGJyIC8+DQo8YnIgLz4NCkFyY2hhZW9sb2dpc3QgYW5kIFRWIHNob3cgaG9zdCBBbm5qYSBDcmVlZCB0cmFkZXMgaW4gaGVyIGRpZyB0b29scyBhbmQgZGlydHkgZXhjYXZhdGlvbnMgZm9yIHRoZSBzdW5ueSBjbGltZXMgb2YgSG9sbHl3b29kLiBTZXJ2aW5nIGFzIGEgcHJvcCBjb25zdWx0YW50IGZvciBhIHBvcHVsYXIgVFYgZmFudGFzeSBzZXJpZXMsIEFubmphJ3MgZW5qb3lpbmcgdGhlIGxpZ2h0cywgY2FtZXJhIGFuZCBtdWNoIGxlc3MgYWN0aW9uLiBVbnRpbCBhIHNjcnlpbmcgY3J5c3RhbCBpcyBzdG9sZW4gb2ZmIHRoZSBzZXTigKZhbmQgaXQgdHVybnMgb3V0IHRvIGJlIHNvbWV0aGluZyBtb3JlIHRoYW4gYSBwcm9wLjxiciAvPg0KPGJyIC8+DQpUaGUgY3J5c3RhbCwgaW4gZmFjdCwgaXMgYSBwcmljZWxlc3MgYXJ0aWZhY3QgZnJvbSB0aGUgcGVyaW9kIG9mIHRoZSBDcnVzYWRlcy4gQnV0IGluIHRoZSBwcm9jZXNzIG9mIHJlY292ZXJpbmcgaXQsIEFubmphIGRpc2NvdmVycyBzb21ldGhpbmcgZmFyIG1vcmUgdmFsdWFibGU6IGFuIGFuY2llbnQgZG9jdW1lbnQgdGhhdCBjb3VsZCBsZWFkIHRvIHRoZSBsb3N0IHRyZWFzdXJlIG9mIHRoZSBNZXJvdmluZ2lhbiBraW5ncy4gUnVsZXJzIG9mIEZyYW5jZSdzIG9sZGVzdCBkeW5hc3R5IGR1cmluZyB0aGUgdGhpcmQgY2VudHVyeSBBROKAlHByZWRhdGluZyBldmVuIENoYXJsZW1hZ25l4oCUdGhlIE1lcm92aW5naWFucyB3ZXJlIHNhaWQgdG8gYmUgbXlzdGljIHdhcnJpb3JzLCBhcm1lZCB3aXRoIHRoZSBwb3dlciBvZiBHb2QuPGJyIC8+DQo8YnIgLz4NCkJ1dCBBbm5qYSBpc24ndCB0aGUgb25seSBvbmUgd2hvIGtub3dzIGFib3V0IHRoZSBkb2N1bWVudC4gQW5kIG5vdyBzaGUgbXVzdCBmYWNlIGRvd24gYSBtYWxldm9sZW50IGdyb3VwIHRoYXQncyBmYXIgdG9vIGZhbWlsaWFyIHdpdGggR2FyaW4sIG9uZSBvZiBoZXIgY2xvc2VzdCBhbGxpZXMuIEdvb2QgdGhpbmcgc2hlIHNoYXJlcyBmYXIgbW9yZSB3aXRoIHRoZXNlIG15c3RpYyB3YXJyaW9ycyB0aGFuIGV2ZW4gc2hlIGNvdWxkIHBvc3NpYmx5IGltYWdpbmUuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBHT0xEIEVBR0xFJiMxNzQ7IGFuZCBST0dVRSBBTkdFTCYjMTUzOyBhcmUgdHJhZGVtYXJrcyBvd25lZCBieSBIYXJsZXF1aW4gRW50ZXJwcmlzZXMgTGltaXRlZCB1c2VkIGJ5IG90aGVycyB1bmRlciBsaWNlbnNlLiAmY29weTsgMjAxNSBXb3JsZHdpZGUgTGlicmFyeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gKFApIDIwMTYgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNTcubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvUkEwNTcubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTMyNTYtODgxNTQ5NTgiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2Utd3JhcHBlciI+CiAgICAgICAgPGltZyBjbGFzcz0icHJvZHVjdC1pbWFnZS1waG90byIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1za3U9IlJBMDU4IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LW5hbWU9IlVtOW5kV1VnUVc1blpXd2dOVGc2SUVSbFlYUm9JRXh2YjIxeiIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL28vcm9ndWVfYW5nZWxfNThfZGVhdGhfbG9vbXMuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7NTgmI3gzQTsmI3gyMDtEZWF0aCYjeDIwO0xvb21zIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMzI1Ni04ODE1NDk1OCB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTMyNTYtODgxNTQ5NTggc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMzI1Ni04ODE1NDk1OCIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTMyNTYtODgxNTQ5NTggIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjU4IDo8L3NwYW4+ICAgICAgICAgICAgICAgIERlYXRoIExvb21zICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IERlYyA3LCAyMDE3ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+V2hpbGUgbG9va2luZyBmb3IgZ2hvc3RzIGFtb25nIE1hcmRpIEdyYXMgcmV2ZWxlcnMgaW4gTmV3IE9ybGVhbnMsIEFubmphIENyZWVkIGlzIGFza2VkIHRvIGhlbHAgcmVjb3ZlciBzYWNyZWQgb2JqZWN0cyBzdG9sZW4gZnJvbSBhIGNodXJjaC4gSW5zdGVhZCwgaGVyIGVmZm9ydHMgbGVhZCBoZXIgaW50byBhIHZhc3QgY29uc3BpcmFjeSBhbmQgYmxhY2ttYWlsIHNjaGVtZSB0aGF0IHN0cmV0Y2hlcyB0aG91c2FuZHMgb2YgeWVhcnMgaW50byB0aGUgcGFzdC4gPGJyIC8+DQo8YnIgLz4NCkpvaW5lZCBieSBHYXJpbiBCcmFkZW4sIHdobyBoYXMgaGlzIG93biBzY29yZSB0byBzZXR0bGUsIEFubmphIGZvbGxvd3MgdGhlIHBhdGggb2Ygc2V2ZW4gYW5jaWVudCBjb2lucyBpbnRvIHRoZSBsYWlyIG9mIFNwaWRlciwgb25lIG9mIGhpc3RvcnnigJlzIGRlYWRsaWVzdCBhc3Nhc3NpbnMuICBXaWxsIEFubmphIGFuZCBHYXJpbiBmaW5kIFNwaWRlcuKAmXMgbGVnZW5kYXJ5IHRyZWFzdXJlLCBvciBmYWxsIGludG8gaGVyIHdlYiwgbmV2ZXIgdG8gc2VlIHRoZSBsaWdodCBvZiBkYXkgYWdhaW4/PGJyIC8+DQo8YnIgLz4NCjxlbT5Sb2d1ZSBBbmdlbCA1ODogRGVhdGggTG9vbXM8L2VtPiBpcyBhbiBvcmlnaW5hbCBzdG9yeSB3cml0dGVuIHNwZWNpZmljYWxseSBmb3IgR3JhcGhpY0F1ZGlvIGFuZCBpcyBhdmFpbGFibGUgaW4gbm8gb3RoZXIgZm9ybWF0LiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgR09MRCBFQUdMRSYjMTc0OyBhbmQgUk9HVUUgQU5HRUwmIzE1MzsgYXJlIHRyYWRlbWFya3Mgb3duZWQgYnkgSGFybGVxdWluIEVudGVycHJpc2VzIExpbWl0ZWQgdXNlZCBieSBvdGhlcnMgdW5kZXIgbGljZW5zZS4gJmNvcHk7IDIwMTcgV29ybGR3aWRlIExpYnJhcnkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIChQKSAyMDE3IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDU4Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDU4Lm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTMzOTItODY5MjEwMDIwIj4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTA1OSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTlRrNklFVjVaWE1nYjJZZ2RHaGxJRUpsYUc5c1pHVnkiCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9vL3JvZ3VlX2FuZ2VsXzU5X2V5ZXNfb2ZfdGhlX2JlaG9sZGVyLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iUm9ndWUmI3gyMDtBbmdlbCYjeDIwOzU5JiN4M0E7JiN4MjA7RXllcyYjeDIwO29mJiN4MjA7dGhlJiN4MjA7QmVob2xkZXIiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0zMzkyLTg2OTIxMDAyMCB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTMzOTItODY5MjEwMDIwIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTMzOTItODY5MjEwMDIwIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMzM5Mi04NjkyMTAwMjAgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPlJvZ3VlIEFuZ2VsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjU5IDo8L3NwYW4+ICAgICAgICAgICAgICAgIEV5ZXMgb2YgdGhlIEJlaG9sZGVyICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IE1heSAyMywgMjAxOCAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA0IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkFubmphIGhhcyBiZWVuIHNlbnQgb24gbWFueSBhc3NpZ25tZW50cyBmb3IgaGVyIGNhYmxlIHRlbGV2aXNpb24gc2hvdywgdG8gZXhvdGljIGxvY2F0aW9ucyBhbGwgYXJvdW5kIHRoZSBnbG9iZSwgdGhpcyB0aW1lIHNoZSBpcyBzZW50IHRvIGludmVzdGlnYXRlIGEgbXlzdGVyeSBsZXNzIHRoYW4gYW4gaG91cuKAmXMgZmxpZ2h0IGZyb20gaGVyIGhvbWUgaW4gTmV3IFlvcmsgQ2l0eS48YnIgLz4NCjxiciAvPg0KQnV0IHdoYXQgc3RhcnRzIG91dCBhcyBhIHN0cmFpZ2h0IGZvcndhcmQgYXNzaWdubWVudCB0byBmaW5kIGEgbXlzdGVyaW91cyBGcmVuY2gtQ2FuYWRpYW4gV29sZm1hbiwgcXVpY2tseSB0dXJucyBpbnRvIGEgZGVhZGx5IHRyZWFzdXJlIGh1bnQgZm9yIHRoZSBtaXNzaW5nIENyb3duIEpld2VscyBvZiBNYXJpZSBBbnRvaW5ldHRlIGFuZCBteXRoaWMgR3JlZW4gRGlhbW9uZC48YnIgLz4NCjxiciAvPg0KVGhlIGRpc2NvdmVyeSBvZiBhIG15c3RlcmlvdXMgc2lsdmVyIGJveCBpbiBhbiB1cmJhbiBhcmNoYWVvbG9naWNhbCBkaWcgaW4gZG93bnRvd24gTW9udHJlYWwgaGFzIGRyYXduIEFubmphIGludG8gYSB3ZWIgb2YgY3J5cHRpYyBjbHVlcywgQ2FuYWRpYW4gU3B5IE1hc3RlcnMgYW5kIGEgbXlzdGVyeSB0aGF0IHN0cmV0Y2hlcyBmcm9tIHNldmVudGVlbnRoIGNlbnR1cnkgSW5kaWEgYW5kIFBhcmlzIHRvIGEgc3VubnkgQ2FyaWJiZWFuIHBhcmFkaXNlLjxiciAvPg0KPGJyIC8+DQo8ZW0+Um9ndWUgQW5nZWwgNTk6IEV5ZXMgb2YgdGhlIEJlaG9sZGVyPC9lbT4gaXMgYW4gb3JpZ2luYWwgc3Rvcnkgd3JpdHRlbiBzcGVjaWZpY2FsbHkgZm9yIEdyYXBoaWNBdWRpbyBhbmQgaXMgYXZhaWxhYmxlIGluIG5vIG90aGVyIGZvcm1hdC4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDE4IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxOCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA1OS5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA1OS5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTQxOTItMTU4OTQwMTk0MCI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNjAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05qQTZJRWx1SUhSb1pTQlRaWEp3Wlc1MEozTWdWRzl0WWc9PSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC9yL2EvcmEwNjBfMi5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs2MCYjeDNBOyYjeDIwO0luJiN4MjA7dGhlJiN4MjA7U2VycGVudCYjeDI3O3MmI3gyMDtUb21iIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItNDE5Mi0xNTg5NDAxOTQwIHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItNDE5Mi0xNTg5NDAxOTQwIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTQxOTItMTU4OTQwMTk0MCIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTQxOTItMTU4OTQwMTk0MCAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+Um9ndWUgQW5nZWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+NjAgOjwvc3Bhbj4gICAgICAgICAgICAgICAgSW4gdGhlIFNlcnBlbnQncyBUb21iICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IE1heSAyMSwgMjAxOSAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkluIDE5MDkgdGhlIEFyaXpvbmEgR2F6ZXR0ZSByYW4gYSBzdG9yeSBjbGFpbWluZyB0aGF0IHR3byBTbWl0aHNvbmlhbiBzY2llbnRpc3RzIGhhdmUgZGlzY292ZXJlZCBhIG15c3RlcmlvdXMgbG9zdCBFZ3lwdGlhbiBDaXR5IGluIHRoZSBHcmFuZCBDYW55b24uIFdoYXQgc2hvdWxkIGhhdmUgYmVlbiBhbiBoaXN0b3JpY2FsIG5ld3MgZ29lcyB1bm5vdGljZWQgYW5kIHRoZSB0d28gbWVuLCBsaWtlIHRoZSBjaXR5IHRoZXkgZGlzY292ZXJlZCwgdmFuaXNoIGNvbXBsZXRlbHkuPGJyIC8+DQo8YnIgLz4NCk92ZXIgYSBodW5kcmVkIHllYXJzIGxhdGVyLCB3aGlsZSBhdHRlbmRpbmcgYSBjcnlwdG96b29sb2dpY2FsIGNvbmZlcmVuY2UgaW4gU2Vkb25hLCBhIG1hbiBjb2xsYXBzZXMgZGVhZCBpbiBmcm9udCBvZiBBbm5qYSBDcmVlZCwgc2V0dGluZyBoZXIgb24gdGhlIHJvYWQgdG8gc29sdmluZyBhbiBhcmNoYWVvbG9naWNhbCBteXN0ZXJ5IHRoYXQgc3RyZXRjaGVzIGJhY2sgb3ZlciBhIGNlbnR1cnkgYW5kIHBvc3NpYmx5IHRvIGEgdGltZSBiZWZvcmUgbW9kZXJuIG1hbmtpbmQuIFdpdGggdGhlIGFzc2lzdGFuY2Ugb2YgYSBjb21wZXRpbmcgY2FibGUgcmVhbGl0eSBzdGFyIGFuZCBhIGd1aWx0LXJpZGRlbiBiaWxsaW9uYWlyZSB3aXRoIG1vcmUgbW9uZXkgdGhhbiBzZW5zZSwgQW5uamEgZ29lcyBhZ2FpbnN0IGhlciBiZXR0ZXIganVkZ2VtZW50IGFuZCBiZWdpbnMgdGhlIHNlYXJjaCBmb3IgdGhlIGxvc3QgY2l0eS4gQnV0IHdpbGwgc2hlIGJlIGFibGUgdG8gZmluZCBpdCBiZWZvcmUgYW4gZW5pZ21hdGljIGN1bHQgbGVhZGVyIGFuZCBoaXMgZm9sbG93ZXJzIHVubGVhc2ggYW4gYW5jaWVudCBwb3dlciB0aGF0IHdvdWxkIGhhdmUgYmVlbiBiZXR0ZXIgbGVmdCBidXJpZWQ/PGJyIC8+DQo8YnIgLz4NCjxlbT5Sb2d1ZSBBbmdlbCA2MDogSW4gdGhlIFNlcnBlbnQncyBUb21iPC9lbT4gaXMgYW4gb3JpZ2luYWwgc3Rvcnkgd3JpdHRlbiBzcGVjaWZpY2FsbHkgZm9yIEdyYXBoaWNBdWRpbyBhbmQgaXMgYXZhaWxhYmxlIGluIG5vIG90aGVyIGZvcm1hdC4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIEdPTEQgRUFHTEUmIzE3NDsgYW5kIFJPR1VFIEFOR0VMJiMxNTM7IGFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEhhcmxlcXVpbiBFbnRlcnByaXNlcyBMaW1pdGVkIHVzZWQgYnkgb3RoZXJzIHVuZGVyIGxpY2Vuc2UuICZjb3B5OyAyMDE5IFdvcmxkd2lkZSBMaWJyYXJ5LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAoUCkgMjAxOSBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA2MC5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA2MC5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTY2NDItMTAyOTA0NzA0OCI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iUkEwNjEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVW05bmRXVWdRVzVuWld3Z05qRTZJRk5sWTNKbGRDQnZaaUIwYUdVZ1RXOXVhMlY1SUV0cGJtYz0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9vL3JvZ3VlX2FuZ2VsXzYxX3NlY3JldF9vZl90aGVfbW9ua2V5X2tpbmctYWx0XzEuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJSb2d1ZSYjeDIwO0FuZ2VsJiN4MjA7NjEmI3gzQTsmI3gyMDtTZWNyZXQmI3gyMDtvZiYjeDIwO3RoZSYjeDIwO01vbmtleSYjeDIwO0tpbmciLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci02NjQyLTEwMjkwNDcwNDggewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci02NjQyLTEwMjkwNDcwNDggc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItNjY0Mi0xMDI5MDQ3MDQ4Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItNjY0Mi0xMDI5MDQ3MDQ4ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj42MSA6PC9zcGFuPiAgICAgICAgICAgICAgICBTZWNyZXQgb2YgdGhlIE1vbmtleSBLaW5nICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBBbGV4IEFyY2hlcjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEF1ZyAxOCwgMjAyMiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA2IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkRlc3RpbnkgaGFzIGd1aWRlZCBBbm5qYSBDcmVlZCB0byBhZHZlbnR1cmUgYmVmb3JlLCBidXQgbmV2ZXIgbGlrZSB0aGlzLiBUcmFwcGVkIGluIGEgY2F2ZSBpbiB0aGUgSGluZHUgS3VzaCwgQW5uamEgaGFzIGEgZHJlYW0gdmlzaW9uIG9mIHRoZSBNb25rZXkgS2luZywgdHJpY2tzdGVyIGhlcm8gb2YgdGhlIENoaW5lc2UgY2xhc3NpYyBKb3VybmV5IHRvIHRoZSBXZXN0LCB3aG8gY2hhcmdlcyBoZXIgdG8gcHJvdGVjdCBoZXIgcmVzY3VlciwgYSBoaXN0b3JpYW4gc2Vla2luZyB0aGUgc2NlcHRlciB0aGF0IG1heSBoYXZlIGluc3BpcmVkIHRoZSBNb25rZXkgS2luZ+KAmXMgbWFnaWMgc3RhZmYuPGJyIC8+DQo8YnIgLz4NClRoZSBrZXkgbGllcyBpbiBhIGxvc3Qgam91cm5hbCBmcm9tIHRoZSBEdW5odWFuZyBMaWJyYXJ5LCBhbiBhbmNpZW50IHRyb3ZlIG9mIGtub3dsZWRnZSBkZWVwIGluIHRoZSBHb2JpIERlc2VydC4gQnV0IHVuc2VlbiByaXZhbHMgd2lsbCBraWxsIHRvIHByb3RlY3QgdGhlIHNlY3JldCBvciBjbGFpbSBpdCBmb3IgdGhlbXNlbHZlcy4gQW5uamEgYmVnaW5zIGhlciBvd24gam91cm5leSB0byB0aGUgd2VzdCBvZiBDaGluYSwgcHJvdGVjdGluZyBoZXIgZnJpZW5kIGZyb20gZGFuZ2VyIGFuZCBkZWF0aCBhdCBldmVyeSB0dXJuLCBpbiB0aGUgZm9vdHN0ZXBzIG9mIHRoZSBNb25rZXkgS2luZyBoaW1zZWxmLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgwqkgYW5kIOKElyAyMDIyIEdyYXBoaWMgQXVkaW8sIExMQy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA2MS5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9SQTA2MS5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTc0NTYtMzM5OTkyMTU3Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJSQTA2MiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvZHVjdC1uYW1lPSJVbTluZFdVZ1FXNW5aV3dnTmpJNklGUnlaV0Z6ZFhKbElHOW1JSFJvWlNCTmIyNXJaWGtnUzJsdVp3PT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvci9vL3JvZ3VlX2FuZ2VsXzYyX3RyZWFzdXJlX29mX3RoZV9tb25rZXlfa2luZy5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IlJvZ3VlJiN4MjA7QW5nZWwmI3gyMDs2MiYjeDNBOyYjeDIwO1RyZWFzdXJlJiN4MjA7b2YmI3gyMDt0aGUmI3gyMDtNb25rZXkmI3gyMDtLaW5nIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItNzQ1Ni0zMzk5OTIxNTcgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci03NDU2LTMzOTk5MjE1NyBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci03NDU2LTMzOTk5MjE1NyIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTc0NTYtMzM5OTkyMTU3ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Sb2d1ZSBBbmdlbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj42MiA6PC9zcGFuPiAgICAgICAgICAgICAgICBUcmVhc3VyZSBvZiB0aGUgTW9ua2V5IEtpbmcgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEFsZXggQXJjaGVyPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gQXVnIDI1LCAyMDIzICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDYgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+QW5uamEgQ3JlZWQgaGFzIGZhY2VkIGNvbnN0YW50IGRhbmdlciBpbiBoZXIgcXVlc3QgZm9yIHRoZSBhbmNpZW50IHNjZXB0ZXIgdGhhdCBpbnNwaXJlZCB0aGUgbGVnZW5kIG9mIHRoZSBNb25rZXkgS2luZywgdGhlIGJlbG92ZWQgdHJpY2tzdGVyIGhlcm8gb2YgdGhlIENoaW5lc2UgY2xhc3NpYyBKb3VybmV5IHRvIHRoZSBXZXN0LiBBZnRlciBkZWZlYXRpbmcgdGhlIHByb3RlY3RvciBvZiBpdHMgc2VjcmV0cyBhbmQgd2lubmluZyBoaW0gdG8gaGVyIHNpZGUsIEFubmphIGhhcyBsZWFybmVkIG9mIHRoZSBzY2VwdGVy4oCZcyBjb3ZldGVkIHBvd2Vy4oCmIHdoaWNoIG1heSByaXZhbCB0aGUgcG93ZXIgb2YgaGVyIG93biBteXN0aWNhbCBzd29yZC48YnIgLz4NCjxiciAvPg0KTm93LCBBbm5qYeKAmXMgcGFydHkgb2YgYWR2ZW50dXJlcnMgY29udGludWUgdGhlaXIgam91cm5leSBpbiB0aGUgZm9vdHN0ZXBzIG9mIENoaW5h4oCZcyBtb3N0IGxlZ2VuZGFyeSBleHBsb3JlciwgcmFjaW5nIGFnYWluc3QgZGV2aW91cyBhbmQgcnV0aGxlc3MgZm9lcyBpbiBwdXJzdWl0IG9mIGhpcyBsb3N0IHRyZWFzdXJlLiBXaGVuIHRoZWlyIGVuZW1pZXMgc293IGRpc2NvcmQgdG8gZGl2aWRlIHRoZSBwYXJ0eSwgQW5uamHigJlzIHBhcnRuZXJzIGFyZSB0YWtlbiBjYXB0aXZlLiBBbm5qYSBDcmVlZCBtdXN0IGRyYXcgdXBvbiB0aGUgZ3VpbGUgb2YgdGhlIE1vbmtleSBLaW5nIHRvIG91dHdpdCBoZXIgZm9lcywgcmVzY3VlIGhlciBmcmllbmRzLCBhbmQgc29sdmUgdGhlIGZpbmFsIG15c3Rlcnkgb2YgdGhlIHNjZXB0ZXIuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICDCqSBhbmQg4oSXIDIwMjIgR3JhcGhpYyBBdWRpbywgTExDLiBBbGwgUmlnaHRzIFJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDYyLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1JBMDYyLm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+