cropper

MUKASA VENTURE PARTNERS LLC

  • Discover
  • About Us
  • Our Services
  • Our Products
  • Contact Us
  • Thank You
  • Message Sent
  • Guide Sent
  • About Me
  • Birthday Club Casino
  • Casino Entered
  • Cohort Ubuntu
  • Cohort CEO Life
  • Cohort Mentrx
{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+V2VsY29tZSB0byBUaGUgU292ZXJlaWduIEVtcGlyZSB8IE11a2FzYSBWZW50dXJlIFBhcnRuZXJzPC90aXRsZT4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJFbnRlciBUaGUgU292ZXJlaWduIEVtcGlyZS4gQSBnZW5lcmF0aW9uYWwgbGVnYWN5IHNwYW5uaW5nIE1lZGlhLCBMZWFybmluZywgYW5kIERpZ2l0YWwgU292ZXJlaWdudHkgYWNyb3NzIEFmcmljYSBhbmQgdGhlIGRpYXNwb3JhLiBFc3QuIDIwMTcuIj4KICAgIDxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0iaW5kZXgsIGZvbGxvdywgbm9hcmNoaXZlLCBub2ltYWdlaW5kZXgiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJXZWxjb21lIHRvIFRoZSBTb3ZlcmVpZ24gRW1waXJlIHwgTXVrYXNhIFZlbnR1cmUgUGFydG5lcnMiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJXaGVuIEFmcmljYW4gc3RvcmllcyBhcmUgdG9sZCBieSBBZnJpY2FucywgZGV2ZWxvcG1lbnQgc3RvcHMgYmVpbmcgYSBwcm9taXNlIGFuZCBiZWNvbWVzIGEgbGl2ZWQgcmVhbGl0eS4iPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cHM6Ly9tdWthc2F2ZW50dXJlcGFydG5lcnMuY29tLyI+CiAgICA8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly9tdWthc2F2ZW50dXJlcGFydG5lcnMuY29tLyI+CiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6d2dodEA0MDA7NTAwOzYwMDs3MDAmZmFtaWx5PUNvcm1vcmFudCtHYXJhbW9uZDppdGFsLHdnaHRAMCw0MDA7MCw1MDA7MCw2MDA7MSw0MDAmZmFtaWx5PUNpbnplbDp3Z2h0QDQwMDs1MDA7NjAwOzcwMCZmYW1pbHk9TnVuaXRvOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8c3R5bGU+CiAgICAgICAgOnJvb3QgewogICAgICAgICAgICAtLW5hdnk6ICMwRDFCMkE7CiAgICAgICAgICAgIC0taW5kaWdvOiAjMUMxRjRBOwogICAgICAgICAgICAtLWdvbGQ6ICNENEFGMzc7CiAgICAgICAgICAgIC0tcm9zZWdvbGQ6ICNDMjlBOEI7CiAgICAgICAgICAgIC0taXZvcnk6ICNGOEY0RUM7CiAgICAgICAgICAgIC0tZGVlcGdvbGQ6ICNCODk3MkU7CiAgICAgICAgICAgIC0tbGlnaHRnb2xkOiAjRThENUEzOwogICAgICAgICAgICAtLWJyaWdodGdvbGQ6ICNGRkQ3MDA7CiAgICAgICAgICAgIC0tdGVhbDogIzAwODk3YjsKICAgICAgICAgICAgLS1jaGFyY29hbDogIzBhMGExMjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICAgICAgIGh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfQogICAgICAgIAogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ051bml0bycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXJjb2FsKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4OwogICAgICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBXYXRlcm1hcmsgKi8KICAgICAgICAud2F0ZXJtYXJrIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB6LWluZGV4OiA5OTk5OyBvcGFjaXR5OiAwLjAxOwogICAgICAgIH0KICAgICAgICAud2F0ZXJtYXJrOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnwqkgTXVrYXNhIFZlbnR1cmUgUGFydG5lcnMgTExDIOKAoiBUaGUgU292ZXJlaWduIEVtcGlyZSDigKIgR2VuZXJhdGlvbmFsIExlZ2FjeSc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7IGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC0yNWRlZyk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOyBjb2xvcjogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDMpOwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgcHJpbnQgeyBib2R5ICogeyB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfSB9CiAgICAgICAgCiAgICAgICAgLyogTHV4dXJpb3VzIEJhY2tncm91bmQgKi8KICAgICAgICAuYmctbHV4dXJ5IHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB6LWluZGV4OiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDUwJSAwJSwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMTUpIDAlLCB0cmFuc3BhcmVudCA1MCUpLAogICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgMCUgMTAwJSwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDgpIDAlLCB0cmFuc3BhcmVudCA0MCUpLAogICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgMTAwJSAxMDAlLCByZ2JhKDE5NCwgMTU0LCAxMzksIDAuMDgpIDAlLCB0cmFuc3BhcmVudCA0MCUpLAogICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tY2hhcmNvYWwpIDAlLCB2YXIoLS1uYXZ5KSA1MCUsIHZhcigtLWNoYXJjb2FsKSAxMDAlKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogR29sZCBQYXJ0aWNsZSBFZmZlY3QgKi8KICAgICAgICAuZ29sZC1wYXJ0aWNsZXMgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IDE7IG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5wYXJ0aWNsZSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgd2lkdGg6IDRweDsgaGVpZ2h0OiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXRQYXJ0aWNsZSA4cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBmbG9hdFBhcnRpY2xlIHsKICAgICAgICAgICAgMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwdmgpIHNjYWxlKDApOyB9CiAgICAgICAgICAgIDEwJSB7IG9wYWNpdHk6IDE7IH0KICAgICAgICAgICAgOTAlIHsgb3BhY2l0eTogMTsgfQogICAgICAgICAgICAxMDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDBweCkgc2NhbGUoMSk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogR29sZCBSYXlzICovCiAgICAgICAgLmdvbGQtcmF5cyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAtNTAlOyBsZWZ0OiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICAgICAgd2lkdGg6IDIwMHZ3OyBoZWlnaHQ6IDIwMHZoOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgei1pbmRleDogMDsKICAgICAgICAgICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoZnJvbSAwZGVnIGF0IDUwJSAxMDAlLCAKICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDBkZWcsIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjAzKSAxMGRlZywgdHJhbnNwYXJlbnQgMjBkZWcsCiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAzMGRlZywgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDIpIDQwZGVnLCB0cmFuc3BhcmVudCA1MGRlZywKICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDYwZGVnLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4wMykgNzBkZWcsIHRyYW5zcGFyZW50IDgwZGVnLAogICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgOTBkZWcsIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjAyKSAxMDBkZWcsIHRyYW5zcGFyZW50IDExMGRlZywKICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDEyMGRlZywgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDMpIDEzMGRlZywgdHJhbnNwYXJlbnQgMTQwZGVnLAogICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgMTUwZGVnLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4wMikgMTYwZGVnLCB0cmFuc3BhcmVudCAxNzBkZWcsCiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAxODBkZWcKICAgICAgICAgICAgKTsKICAgICAgICAgICAgYW5pbWF0aW9uOiByb3RhdGVSYXlzIDYwcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgcm90YXRlUmF5cyB7CiAgICAgICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDBkZWcpOyB9CiAgICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgICAgTUFJTiBXRUxDT01FIFNFQ1RJT04KICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC53ZWxjb21lLXNlY3Rpb24gewogICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogNjBweCA0MHB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBUaGUgR3JhbmQgQnVpbGRpbmcgSWNvbiAqLwogICAgICAgIC5ncmFuZC1pY29uIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbkRvd24gMS4ycyBlYXNlIGZvcndhcmRzOwogICAgICAgIH0KICAgICAgICAuYnVpbGRpbmctY29udGFpbmVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBmb250LXNpemU6IDdyZW07CiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAyMHB4IDYwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuNCkpOwogICAgICAgIH0KICAgICAgICAuZG9sbGFyLW92ZXJsYXkgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC00NSUpOwogICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWJyaWdodGdvbGQpOwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDIwcHggcmdiYSgyNTUsIDIxNSwgMCwgMC44KSwgMCAwIDQwcHggcmdiYSgyNTUsIDIxNSwgMCwgMC40KTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZURvbGxhciAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBwdWxzZURvbGxhciB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTQ1JSkgc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTQ1JSkgc2NhbGUoMS4xKTsgb3BhY2l0eTogMC45OyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEdvbGQgZGVjb3JhdGl2ZSBlbGVtZW50cyAqLwogICAgICAgIC5nb2xkLW9ybmFtZW50IHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgfQogICAgICAgIC5vcm5hbWVudC1sZWZ0IHsgbGVmdDogLTYwcHg7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH0KICAgICAgICAub3JuYW1lbnQtcmlnaHQgeyByaWdodDogLTYwcHg7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH0KICAgICAgICAub3JuYW1lbnQtdG9wIHsgdG9wOiAtNDBweDsgbGVmdDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH0KICAgICAgICAKICAgICAgICAud2VsY29tZS1sYWJlbCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogOHB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDFzIGVhc2UgZm9yd2FyZHMgMC4zczsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLndlbGNvbWUtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgyLjVyZW0sIDh2dywgNXJlbSk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZSBmb3J3YXJkcyAwLjVzOwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgICAud2VsY29tZS10aXRsZSAuZ29sZC10ZXh0IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYnJpZ2h0Z29sZCksIHZhcigtLWdvbGQpLCB2YXIoLS1saWdodGdvbGQpLCB2YXIoLS1nb2xkKSwgdmFyKC0tYnJpZ2h0Z29sZCkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQwMCUgNDAwJTsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBzaGltbWVyR29sZCA0cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBzaGltbWVyR29sZCB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlOyB9CiAgICAgICAgICAgIDUwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53ZWxjb21lLXN1YnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjJyZW0sIDN2dywgMS44cmVtKTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgZm9yd2FyZHMgMC43czsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogVmlkZW8gQ29udGFpbmVyICovCiAgICAgICAgLnZpZGVvLWNvbnRhaW5lciB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byA0MHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgZm9yd2FyZHMgMC45czsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgLnZpZGVvLXdyYXBwZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IC8qIDE2OjkgKi8KICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgxMywgMjcsIDQyLCAwLjkpLCByZ2JhKDI4LCAzMSwgNzQsIDAuNikpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzMHB4IDgwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMik7CiAgICAgICAgfQogICAgICAgIC52aWRlby13cmFwcGVyIGlmcmFtZSwKICAgICAgICAudmlkZW8td3JhcHBlciB2aWRlbyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgfQogICAgICAgIC52aWRlby1wbGFjZWhvbGRlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgxMywgMjcsIDQyLCAwLjk1KSwgcmdiYSgyOCwgMzEsIDc0LCAwLjgpKTsKICAgICAgICB9CiAgICAgICAgLnZpZGVvLXBsYWNlaG9sZGVyLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDRyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBwdWxzZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IG9wYWNpdHk6IDAuODsgfQogICAgICAgIH0KICAgICAgICAudmlkZW8tcGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFRoZSBRdW90ZSAqLwogICAgICAgIC53ZWxjb21lLXF1b3RlIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiA3MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gNDBweDsKICAgICAgICAgICAgcGFkZGluZzogMjVweCA0MHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4wOCksIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjAyKSk7CiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMTVweCAxNXB4IDA7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZSBmb3J3YXJkcyAxLjFzOwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgICAud2VsY29tZS1xdW90ZSBibG9ja3F1b3RlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgfQogICAgICAgIC53ZWxjb21lLXF1b3RlIGNpdGUgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQ1RBIEJ1dHRvbnMgKi8KICAgICAgICAud2VsY29tZS1jdGFzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgZm9yd2FyZHMgMS4zczsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgLmN0YS1idG4gewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDUwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBmb250LWZhbWlseTogJ051bml0bycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIC5jdGEtYnRuLnByaW1hcnkgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1icmlnaHRnb2xkKSwgdmFyKC0tZ29sZCksIHZhcigtLWRlZXBnb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jaGFyY29hbCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgMCAxNXB4IDQwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuNCksCiAgICAgICAgICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsKICAgICAgICB9CiAgICAgICAgLmN0YS1idG4ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KSBzY2FsZSgxLjAyKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogCiAgICAgICAgICAgICAgICAwIDI1cHggNjBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC41KSwKICAgICAgICAgICAgICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpOwogICAgICAgIH0KICAgICAgICAuY3RhLWJ0bi5zZWNvbmRhcnkgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICB9CiAgICAgICAgLmN0YS1idG4uc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICB9CiAgICAgICAgLmN0YS1idG4gLmljb24gewogICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgLmN0YS1idG46aG92ZXIgLmljb24gewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW4gewogICAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMDsgfQogICAgICAgICAgICB0byB7IG9wYWNpdHk6IDE7IH0KICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5Eb3duIHsKICAgICAgICAgICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5VcCB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAgICBJTlRBS0UgUVVFU1RJT05OQUlSRSBNT0RBTAogICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLm1vZGFsLW92ZXJsYXkgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMCwgMTAsIDE4LCAwLjk1KTsKICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwogICAgICAgICAgICB6LWluZGV4OiAxMDAwMDsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIC5tb2RhbC1vdmVybGF5LmFjdGl2ZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tb2RhbC1jb250ZW50IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgdmFyKC0tbmF2eSksIHZhcigtLWluZGlnbykpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDsKICAgICAgICAgICAgcGFkZGluZzogNTBweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA2NTBweDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7CiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzMHB4IDEwMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubW9kYWwtY2xvc2UgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMjBweDsgcmlnaHQ6IDI1cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2Vnb2xkKTsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAubW9kYWwtY2xvc2U6aG92ZXIgeyBjb2xvcjogdmFyKC0tZ29sZCk7IH0KICAgICAgICAKICAgICAgICAubW9kYWwtaGVhZGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzNXB4OwogICAgICAgIH0KICAgICAgICAubW9kYWwtaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgLm1vZGFsLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQogICAgICAgIC5tb2RhbC1zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEZvcm0gU3R5bGVzICovCiAgICAgICAgLmludGFrZS1mb3JtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ncm91cCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuZm9ybS1sYWJlbCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC43KTsKICAgICAgICB9CiAgICAgICAgLmZvcm0tbGFiZWwgLnJlcXVpcmVkIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1pbnB1dCwKICAgICAgICAuZm9ybS1zZWxlY3QsCiAgICAgICAgLmZvcm0tdGV4dGFyZWEgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEzLCAyNywgNDIsIDAuOCk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDIwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdOdW5pdG8nLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAuZm9ybS1pbnB1dDpmb2N1cywKICAgICAgICAuZm9ybS1zZWxlY3Q6Zm9jdXMsCiAgICAgICAgLmZvcm0tdGV4dGFyZWE6Zm9jdXMgewogICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKTsKICAgICAgICB9CiAgICAgICAgLmZvcm0taW5wdXQ6OnBsYWNlaG9sZGVyLAogICAgICAgIC5mb3JtLXRleHRhcmVhOjpwbGFjZWhvbGRlciB7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNCk7CiAgICAgICAgfQogICAgICAgIC5mb3JtLXNlbGVjdCB7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJyB2aWV3Qm94PScwIDAgMTIgMTInJTNFJTNDcGF0aCBmaWxsPSclMjNENEFGMzcnIGQ9J002IDhMMSAzaDEweicvJTNFJTNDL3N2ZyUzRSIpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxNXB4IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLmZvcm0tc2VsZWN0IG9wdGlvbiB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdnkpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgIH0KICAgICAgICAuZm9ybS10ZXh0YXJlYSB7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHB4OwogICAgICAgICAgICByZXNpemU6IHZlcnRpY2FsOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1yb3cgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogUmFkaW8vQ2hlY2tib3ggR3JvdXAgKi8KICAgICAgICAub3B0aW9ucy1ncm91cCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICB9CiAgICAgICAgLm9wdGlvbi1pdGVtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTMsIDI3LCA0MiwgMC42KTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMik7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgLm9wdGlvbi1pdGVtOmhvdmVyIHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC40KTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDUpOwogICAgICAgIH0KICAgICAgICAub3B0aW9uLWl0ZW0uc2VsZWN0ZWQgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsKICAgICAgICB9CiAgICAgICAgLm9wdGlvbi1pdGVtIGlucHV0IHsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CiAgICAgICAgLm9wdGlvbi1yYWRpbyB7CiAgICAgICAgICAgIHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjUpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CiAgICAgICAgLm9wdGlvbi1pdGVtLnNlbGVjdGVkIC5vcHRpb24tcmFkaW8gewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgIH0KICAgICAgICAub3B0aW9uLWl0ZW0uc2VsZWN0ZWQgLm9wdGlvbi1yYWRpbzo6YWZ0ZXIgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICB9CiAgICAgICAgLm9wdGlvbi10ZXh0IHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBQcm9ncmVzcyBTdGVwcyAqLwogICAgICAgIC5mb3JtLXByb2dyZXNzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICB9CiAgICAgICAgLnByb2dyZXNzLWRvdCB7CiAgICAgICAgICAgIHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDEycHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMik7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5wcm9ncmVzcy1kb3QuYWN0aXZlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjUpOwogICAgICAgIH0KICAgICAgICAucHJvZ3Jlc3MtZG90LmNvbXBsZXRlZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRlYWwpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBGb3JtIFN0ZXBzICovCiAgICAgICAgLmZvcm0tc3RlcCB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICAgIC5mb3JtLXN0ZXAuYWN0aXZlIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMC41cyBlYXNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1uYXYgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICAgIGdhcDogMTVweDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDsKICAgICAgICB9CiAgICAgICAgLmZvcm0tYnRuIHsKICAgICAgICAgICAgcGFkZGluZzogMTVweCAzMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdOdW5pdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICAuZm9ybS1idG4uYmFjayB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2Vnb2xkKTsKICAgICAgICB9CiAgICAgICAgLmZvcm0tYnRuLmJhY2s6aG92ZXIgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIC5mb3JtLWJ0bi5uZXh0LAogICAgICAgIC5mb3JtLWJ0bi5zdWJtaXQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tZGVlcGdvbGQpKTsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQogICAgICAgIC5mb3JtLWJ0bi5uZXh0OmhvdmVyLAogICAgICAgIC5mb3JtLWJ0bi5zdWJtaXQ6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBTdWNjZXNzIFN0YXRlICovCiAgICAgICAgLmZvcm0tc3VjY2VzcyB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogNDBweCAyMHB4OwogICAgICAgIH0KICAgICAgICAuc3VjY2Vzcy1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA1cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBhbmltYXRpb246IGJvdW5jZUluIDAuOHMgZWFzZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBib3VuY2VJbiB7CiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMik7IH0KICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0KICAgICAgICB9CiAgICAgICAgLnN1Y2Nlc3MtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgLnN1Y2Nlc3MtbWVzc2FnZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC44KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgICAgICB9CiAgICAgICAgLnN1Y2Nlc3MtY3RhIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWRlZXBnb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgcGFkZGluZzogMTVweCAzNXB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgLnN1Y2Nlc3MtY3RhOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC40KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRm9vdGVyICovCiAgICAgICAgLndlbGNvbWUtZm9vdGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBib3R0b206IDMwcHg7CiAgICAgICAgICAgIGxlZnQ6IDA7IHJpZ2h0OiAwOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDFzIGVhc2UgZm9yd2FyZHMgMS41czsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgLmZvb3Rlci10ZXh0IHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNCk7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItdGV4dCBzdHJvbmcgewogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFJlc3BvbnNpdmUgKi8KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgICAgLndlbGNvbWUtc2VjdGlvbiB7IHBhZGRpbmc6IDQwcHggMjBweCA4MHB4OyB9CiAgICAgICAgICAgIC5idWlsZGluZy1jb250YWluZXIgeyBmb250LXNpemU6IDVyZW07IH0KICAgICAgICAgICAgLmRvbGxhci1vdmVybGF5IHsgZm9udC1zaXplOiAxLjhyZW07IH0KICAgICAgICAgICAgLmdvbGQtb3JuYW1lbnQgeyBkaXNwbGF5OiBub25lOyB9CiAgICAgICAgICAgIC53ZWxjb21lLWN0YXMgeyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyB9CiAgICAgICAgICAgIC5jdGEtYnRuIHsgd2lkdGg6IDEwMCU7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9CiAgICAgICAgICAgIC5tb2RhbC1jb250ZW50IHsgcGFkZGluZzogMzVweCAyNXB4OyB9CiAgICAgICAgICAgIC5mb3JtLXJvdyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDxkaXYgY2xhc3M9IndhdGVybWFyayI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJiZy1sdXh1cnkiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ29sZC1yYXlzIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImdvbGQtcGFydGljbGVzIiBpZD0icGFydGljbGVzIj48L2Rpdj4KICAgIAogICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICAgICBNQUlOIFdFTENPTUUgU0VDVElPTgogICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJ3ZWxjb21lLXNlY3Rpb24iPgogICAgICAgIDwhLS0gR3JhbmQgQnVpbGRpbmcgSWNvbiB3aXRoIEdvbGQgRG9sbGFyIC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImdyYW5kLWljb24iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ29sZC1vcm5hbWVudCBvcm5hbWVudC1sZWZ0Ij7inKY8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnb2xkLW9ybmFtZW50IG9ybmFtZW50LXJpZ2h0Ij7inKY8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnb2xkLW9ybmFtZW50IG9ybmFtZW50LXRvcCI+8J+RkTwvc3Bhbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnVpbGRpbmctY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxzcGFuPvCfj5vvuI88L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9sbGFyLW92ZXJsYXkiPiQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxwIGNsYXNzPSJ3ZWxjb21lLWxhYmVsIj5Fc3QuIDIwMTcg4oCiIEthbGFtYXpvbywgTWljaGlnYW48L3A+CiAgICAgICAgCiAgICAgICAgPGgxIGNsYXNzPSJ3ZWxjb21lLXRpdGxlIj4KICAgICAgICAgICAgV2VsY29tZSB0bzxicj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdvbGQtdGV4dCI+VGhlIFNvdmVyZWlnbiBFbXBpcmU8L3NwYW4+CiAgICAgICAgPC9oMT4KICAgICAgICAKICAgICAgICA8cCBjbGFzcz0id2VsY29tZS1zdWJ0aXRsZSI+TXVrYXNhIFZlbnR1cmUgUGFydG5lcnMgTExDIOKAoiBBIEdlbmVyYXRpb25hbCBMZWdhY3k8L3A+CiAgICAgICAgCiAgICAgICAgPCEtLSBWaWRlbyBDb250YWluZXIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8td3JhcHBlciI+CiAgICAgICAgICAgICAgICA8IS0tIFJlcGxhY2Ugd2l0aCB5b3VyIHZpZGVvIGVtYmVkIGNvZGUgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWRlby1wbGFjZWhvbGRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tcGxhY2Vob2xkZXItaWNvbiI+4pa277iPPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InZpZGVvLXBsYWNlaG9sZGVyLXRleHQiPlZpZGVvIGxvYWRpbmcuLi4gb3IgY2xpY2sgdG8gcGxheTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPCEtLSAKICAgICAgICAgICAgICAgIEVNQkVEIFlPVVIgVklERU8gSEVSRToKICAgICAgICAgICAgICAgIDxpZnJhbWUgc3JjPSJZT1VSX1ZJREVPX1VSTCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPgogICAgICAgICAgICAgICAgT1IKICAgICAgICAgICAgICAgIDx2aWRlbyBjb250cm9scyBwb3N0ZXI9InRodW1ibmFpbC5qcGciPgogICAgICAgICAgICAgICAgICAgIDxzb3VyY2Ugc3JjPSJ5b3VyLXZpZGVvLm1wNCIgdHlwZT0idmlkZW8vbXA0Ij4KICAgICAgICAgICAgICAgIDwvdmlkZW8+CiAgICAgICAgICAgICAgICAtLT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPCEtLSBUaGUgUXVvdGUgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0id2VsY29tZS1xdW90ZSI+CiAgICAgICAgICAgIDxibG9ja3F1b3RlPgogICAgICAgICAgICAgICAgIldoZW4gQWZyaWNhbiBzdG9yaWVzIGFyZSB0b2xkIGJ5IEFmcmljYW5zLCBkZXZlbG9wbWVudCBzdG9wcyBiZWluZyBhIHByb21pc2UgYW5kIGJlY29tZXMgYSBsaXZlZCByZWFsaXR5LiIKICAgICAgICAgICAgPC9ibG9ja3F1b3RlPgogICAgICAgICAgICA8Y2l0ZT7igJQgVEhFIFNPVkVSRUlHTiBFTVBJUkUgTUFOSUZFU1RPPC9jaXRlPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDwhLS0gQ1RBIEJ1dHRvbnMgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0id2VsY29tZS1jdGFzIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RhLWJ0biBwcmltYXJ5IiBvbmNsaWNrPSJvcGVuTW9kYWwoKSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5SZXF1ZXN0IEFjY2Vzczwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7ihpI8L3NwYW4+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YSBocmVmPSJET01BSU5HT0VTSEVSRS5jb20vYWJvdXQiIGNsYXNzPSJjdGEtYnRuIHNlY29uZGFyeSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5MZWFybiBNb3JlIEZpcnN0PC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPCEtLSBGb290ZXIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0id2VsY29tZS1mb290ZXIiPgogICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLXRleHQiPsKpIDIwMTctMjAyNiA8c3Ryb25nPk11a2FzYSBWZW50dXJlIFBhcnRuZXJzIExMQzwvc3Ryb25nPiDigKIgVGhlIFNvdmVyZWlnbiBFbXBpcmU8L3A+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICAKICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAgSU5UQUtFIFFVRVNUSU9OTkFJUkUgTU9EQUwKICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1vdmVybGF5IiBpZD0iaW50YWtlTW9kYWwiPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJtb2RhbC1jbG9zZSIgb25jbGljaz0iY2xvc2VNb2RhbCgpIj7inJU8L2J1dHRvbj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1pY29uIj7wn4+b77iPPC9kaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9Im1vZGFsLXRpdGxlIj5SZXF1ZXN0IEVtcGlyZSBBY2Nlc3M8L2gyPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIj5UZWxsIHVzIGFib3V0IHlvdXJzZWxmIGFuZCB5b3VyIHZpc2lvbjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8IS0tIFByb2dyZXNzIERvdHMgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcHJvZ3Jlc3MiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtZG90IGFjdGl2ZSIgZGF0YS1zdGVwPSIxIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWRvdCIgZGF0YS1zdGVwPSIyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWRvdCIgZGF0YS1zdGVwPSIzIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8Zm9ybSBjbGFzcz0iaW50YWtlLWZvcm0iIGlkPSJpbnRha2VGb3JtIiBhY3Rpb249Imh0dHBzOi8vZm9ybXN1Ym1pdC5jby9tdWthc2F2ZW50dXJlcGFydG5lcnNAZ21haWwuY29tIiBtZXRob2Q9IlBPU1QiPgogICAgICAgICAgICAgICAgPCEtLSBIaWRkZW4gRmllbGRzIC0tPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX3N1YmplY3QiIHZhbHVlPSLwn4+b77iPIE5ldyBFbXBpcmUgQWNjZXNzIFJlcXVlc3QiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX2NhcHRjaGEiIHZhbHVlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfdGVtcGxhdGUiIHZhbHVlPSJ0YWJsZSI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfbmV4dCIgdmFsdWU9Imh0dHBzOi8vbXVrYXNhdmVudHVyZXBhcnRuZXJzLmNvbS93ZWxjb21lLXN1Y2Nlc3MiPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8IS0tIFNURVAgMTogQmFzaWMgSW5mb3JtYXRpb24gLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXN0ZXAgYWN0aXZlIiBkYXRhLXN0ZXA9IjEiPgogICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT0iZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7IGZvbnQtc2l6ZTogMS4ycmVtOyBjb2xvcjogdmFyKC0tZ29sZCk7IG1hcmdpbi1ib3R0b206IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPlN0ZXAgMTogWW91ciBJbmZvcm1hdGlvbjwvaDM+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+Rmlyc3QgTmFtZSA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmaXJzdF9uYW1lIiBjbGFzcz0iZm9ybS1pbnB1dCIgcGxhY2Vob2xkZXI9IllvdXIgZmlyc3QgbmFtZSIgcmVxdWlyZWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+TGFzdCBOYW1lIDxzcGFuIGNsYXNzPSJyZXF1aXJlZCI+Kjwvc3Bhbj48L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imxhc3RfbmFtZSIgY2xhc3M9ImZvcm0taW5wdXQiIHBsYWNlaG9sZGVyPSJZb3VyIGxhc3QgbmFtZSIgcmVxdWlyZWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkVtYWlsIEFkZHJlc3MgPHNwYW4gY2xhc3M9InJlcXVpcmVkIj4qPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgbmFtZT0iZW1haWwiIGNsYXNzPSJmb3JtLWlucHV0IiBwbGFjZWhvbGRlcj0ieW91ckBlbWFpbC5jb20iIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPlBob25lIC8gV2hhdHNBcHA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGVsIiBuYW1lPSJwaG9uZSIgY2xhc3M9ImZvcm0taW5wdXQiIHBsYWNlaG9sZGVyPSIrMSAyMzQgNTY3IDg5MDAiPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkNvdW50cnkgPHNwYW4gY2xhc3M9InJlcXVpcmVkIj4qPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9ImNvdW50cnkiIGNsYXNzPSJmb3JtLXNlbGVjdCIgcmVxdWlyZWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5TZWxlY3QgY291bnRyeS4uLjwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktlbnlhIj5LZW55YTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVnYW5kYSI+VWdhbmRhPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGFuemFuaWEiPlRhbnphbmlhPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUndhbmRhIj5Sd2FuZGE8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOaWdlcmlhIj5OaWdlcmlhPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2hhbmEiPkdoYW5hPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU291dGggQWZyaWNhIj5Tb3V0aCBBZnJpY2E8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFdGhpb3BpYSI+RXRoaW9waWE8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVU0EiPlVTQSAoRGlhc3BvcmEpPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVUsiPlVLIChEaWFzcG9yYSk8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYW5hZGEiPkNhbmFkYSAoRGlhc3BvcmEpPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iT3RoZXIgQWZyaWNhIj5PdGhlciBBZnJpY2FuIENvdW50cnk8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJPdGhlciBEaWFzcG9yYSI+T3RoZXIgRGlhc3BvcmE8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkNpdHkgPHNwYW4gY2xhc3M9InJlcXVpcmVkIj4qPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY2l0eSIgY2xhc3M9ImZvcm0taW5wdXQiIHBsYWNlaG9sZGVyPSJZb3VyIGNpdHkiIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLW5hdiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZm9ybS1idG4gbmV4dCIgb25jbGljaz0ibmV4dFN0ZXAoMSkiPkNvbnRpbnVlIOKGkjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwhLS0gU1RFUCAyOiBCdXNpbmVzcyBJbmZvcm1hdGlvbiAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tc3RlcCIgZGF0YS1zdGVwPSIyIj4KICAgICAgICAgICAgICAgICAgICA8aDMgc3R5bGU9ImZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOyBmb250LXNpemU6IDEuMnJlbTsgY29sb3I6IHZhcigtLWdvbGQpOyBtYXJnaW4tYm90dG9tOiAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij5TdGVwIDI6IFlvdXIgQnVzaW5lc3M8L2gzPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPldoYXQgYmVzdCBkZXNjcmliZXMgeW91PyA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9ucy1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Im9wdGlvbi1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InZpc2l0b3JfdHlwZSIgdmFsdWU9IkVzdGFibGlzaGVkIEJ1c2luZXNzIE93bmVyIiByZXF1aXJlZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib3B0aW9uLXJhZGlvIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im9wdGlvbi10ZXh0Ij5Fc3RhYmxpc2hlZCBCdXNpbmVzcyBPd25lciAoMysgeWVhcnMpPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ib3B0aW9uLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0idmlzaXRvcl90eXBlIiB2YWx1ZT0iR3Jvd2luZyBFbnRyZXByZW5ldXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvcHRpb24tcmFkaW8iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib3B0aW9uLXRleHQiPkdyb3dpbmcgRW50cmVwcmVuZXVyICgxLTMgeWVhcnMpPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ib3B0aW9uLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0idmlzaXRvcl90eXBlIiB2YWx1ZT0iTmV3IEZvdW5kZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvcHRpb24tcmFkaW8iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib3B0aW9uLXRleHQiPk5ldyBGb3VuZGVyIChMZXNzIHRoYW4gMSB5ZWFyKTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Im9wdGlvbi1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InZpc2l0b3JfdHlwZSIgdmFsdWU9IkFzcGlyaW5nIEVudHJlcHJlbmV1ciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im9wdGlvbi1yYWRpbyI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvcHRpb24tdGV4dCI+QXNwaXJpbmcgRW50cmVwcmVuZXVyIChQbGFubmluZyBzdGFnZSk8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJvcHRpb24taXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ2aXNpdG9yX3R5cGUiIHZhbHVlPSJDb3Jwb3JhdGUgRXhlY3V0aXZlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib3B0aW9uLXJhZGlvIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im9wdGlvbi10ZXh0Ij5Db3Jwb3JhdGUgRXhlY3V0aXZlIC8gUHJvZmVzc2lvbmFsPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ib3B0aW9uLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0idmlzaXRvcl90eXBlIiB2YWx1ZT0iSW52ZXN0b3Igb3IgUGFydG5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im9wdGlvbi1yYWRpbyI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvcHRpb24tdGV4dCI+UG90ZW50aWFsIEludmVzdG9yIC8gUGFydG5lciAvIEZ1bmRlcjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkluZHVzdHJ5IC8gTmljaGU8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iaW5kdXN0cnkiIGNsYXNzPSJmb3JtLWlucHV0IiBwbGFjZWhvbGRlcj0iZS5nLiwgTWFya2V0aW5nLCBUZWNoLCBGYXNoaW9uLCBBZ3JpY3VsdHVyZS4uLiI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+QnVzaW5lc3MvQnJhbmQgTmFtZSAoaWYgYXBwbGljYWJsZSk8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYnVzaW5lc3NfbmFtZSIgY2xhc3M9ImZvcm0taW5wdXQiIHBsYWNlaG9sZGVyPSJZb3VyIGJ1c2luZXNzIG9yIGJyYW5kIG5hbWUiPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tbmF2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJmb3JtLWJ0biBiYWNrIiBvbmNsaWNrPSJwcmV2U3RlcCgyKSI+4oaQIEJhY2s8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJmb3JtLWJ0biBuZXh0IiBvbmNsaWNrPSJuZXh0U3RlcCgyKSI+Q29udGludWUg4oaSPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPCEtLSBTVEVQIDM6IEludGVudCAmIEludGVyZXN0IC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1zdGVwIiBkYXRhLXN0ZXA9IjMiPgogICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT0iZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7IGZvbnQtc2l6ZTogMS4ycmVtOyBjb2xvcjogdmFyKC0tZ29sZCk7IG1hcmdpbi1ib3R0b206IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPlN0ZXAgMzogWW91ciBJbnRlcmVzdDwvaDM+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+V2h5IGFyZSB5b3UgaGVyZSB0b2RheT8gPHNwYW4gY2xhc3M9InJlcXVpcmVkIj4qPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbnMtZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJvcHRpb24taXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJpbnRlbnQiIHZhbHVlPSJSZWFkeSB0byBFbmdhZ2UgLSBDTU8gU2VydmljZXMiIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvcHRpb24tcmFkaW8iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib3B0aW9uLXRleHQiPvCflKUgUmVhZHkgdG8gZW5nYWdlIOKAlCBJIG5lZWQgQ01PL0JyYW5kIHNlcnZpY2VzPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ib3B0aW9uLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaW50ZW50IiB2YWx1ZT0iUmVhZHkgdG8gRW5nYWdlIC0gQWNhZGVteSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im9wdGlvbi1yYWRpbyI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvcHRpb24tdGV4dCI+8J+UpSBSZWFkeSB0byBlbmdhZ2Ug4oCUIEkgd2FudCBhY2FkZW15L3RyYWluaW5nIGFjY2Vzczwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Im9wdGlvbi1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImludGVudCIgdmFsdWU9IkV4cGxvcmluZyBQYXJ0bmVyc2hpcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im9wdGlvbi1yYWRpbyI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvcHRpb24tdGV4dCI+8J+knSBFeHBsb3JpbmcgcGFydG5lcnNoaXAgb3IgY29sbGFib3JhdGlvbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Im9wdGlvbi1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImludGVudCIgdmFsdWU9Ik1lZGlhIEZlYXR1cmUgSW50ZXJlc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvcHRpb24tcmFkaW8iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib3B0aW9uLXRleHQiPvCfk7ogSW50ZXJlc3RlZCBpbiBiZWluZyBmZWF0dXJlZCBvbiBtZWRpYSBjaGFubmVsczwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Im9wdGlvbi1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImludGVudCIgdmFsdWU9IkxlYXJuaW5nIGFuZCBSZXNlYXJjaGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im9wdGlvbi1yYWRpbyI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvcHRpb24tdGV4dCI+8J+TmiBMZWFybmluZyBhbmQgcmVzZWFyY2hpbmcgZm9yIG5vdzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Im9wdGlvbi1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImludGVudCIgdmFsdWU9Ikp1c3QgQ3VyaW91cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im9wdGlvbi1yYWRpbyI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvcHRpb24tdGV4dCI+8J+RgCBKdXN0IGN1cmlvdXMg4oCUIGV4cGxvcmluZzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkFueXRoaW5nIGVsc2UgeW91J2QgbGlrZSB1cyB0byBrbm93PzwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBuYW1lPSJhZGRpdGlvbmFsX2luZm8iIGNsYXNzPSJmb3JtLXRleHRhcmVhIiBwbGFjZWhvbGRlcj0iVGVsbCB1cyBhYm91dCB5b3VyIHZpc2lvbiwgZ29hbHMsIG9yIHF1ZXN0aW9ucy4uLiI+PC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJvcHRpb24taXRlbSIgc3R5bGU9ImJhY2tncm91bmQ6IHJnYmEoMCwgMTM3LCAxMjMsIDAuMSk7IGJvcmRlci1jb2xvcjogcmdiYSgwLCAxMzcsIDEyMywgMC4zKTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJuZXdzbGV0dGVyIiB2YWx1ZT0iWWVzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvcHRpb24tcmFkaW8iIHN0eWxlPSJib3JkZXItcmFkaXVzOiA0cHg7Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib3B0aW9uLXRleHQiPlllcywgc2VuZCBtZSB0aGUgU292ZXJlaWduIEVtcGlyZSBuZXdzbGV0dGVyICYgdXBkYXRlczwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLW5hdiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZm9ybS1idG4gYmFjayIgb25jbGljaz0icHJldlN0ZXAoMykiPuKGkCBCYWNrPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iZm9ybS1idG4gc3VibWl0Ij5TdWJtaXQgJiBFbnRlciBFbXBpcmUg4oaSPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPCEtLSBTVUNDRVNTIFNUQVRFIChzaG93biBhZnRlciBzdWJtaXNzaW9uIHZpYSBKUyByZWRpcmVjdCkgLS0+CiAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8c2NyaXB0PgogICAgICAgIC8vIElQIFByb3RlY3Rpb24KICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGUgPT4gZS5wcmV2ZW50RGVmYXVsdCgpKTsKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZSA9PiB7CiAgICAgICAgICAgIGlmICgoZS5jdHJsS2V5ICYmIFsnYycsJ3YnLCdzJywncCcsJ3UnXS5pbmNsdWRlcyhlLmtleS50b0xvd2VyQ2FzZSgpKSkgfHwgZS5rZXkgPT09ICdGMTInKSBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgLy8gR29sZCBQYXJ0aWNsZXMKICAgICAgICBmdW5jdGlvbiBjcmVhdGVQYXJ0aWNsZXMoKSB7CiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJ0aWNsZXMnKTsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0MDsgaSsrKSB7CiAgICAgICAgICAgICAgICBjb25zdCBwYXJ0aWNsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgcGFydGljbGUuY2xhc3NOYW1lID0gJ3BhcnRpY2xlJzsKICAgICAgICAgICAgICAgIHBhcnRpY2xlLnN0eWxlLmxlZnQgPSBNYXRoLnJhbmRvbSgpICogMTAwICsgJyUnOwogICAgICAgICAgICAgICAgcGFydGljbGUuc3R5bGUuYW5pbWF0aW9uRGVsYXkgPSBNYXRoLnJhbmRvbSgpICogOCArICdzJzsKICAgICAgICAgICAgICAgIHBhcnRpY2xlLnN0eWxlLmFuaW1hdGlvbkR1cmF0aW9uID0gKDYgKyBNYXRoLnJhbmRvbSgpICogNCkgKyAncyc7CiAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQocGFydGljbGUpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNyZWF0ZVBhcnRpY2xlcygpOwogICAgICAgIAogICAgICAgIC8vIE1vZGFsIEZ1bmN0aW9ucwogICAgICAgIGZ1bmN0aW9uIG9wZW5Nb2RhbCgpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludGFrZU1vZGFsJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gY2xvc2VNb2RhbCgpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludGFrZU1vZGFsJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnJzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gQ2xvc2UgbW9kYWwgb24gb3ZlcmxheSBjbGljawogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnRha2VNb2RhbCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS50YXJnZXQgPT09IHRoaXMpIGNsb3NlTW9kYWwoKTsKICAgICAgICB9KTsKICAgICAgICAKICAgICAgICAvLyBGb3JtIFN0ZXAgTmF2aWdhdGlvbgogICAgICAgIGxldCBjdXJyZW50U3RlcCA9IDE7CiAgICAgICAgY29uc3QgdG90YWxTdGVwcyA9IDM7CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlUHJvZ3Jlc3MoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wcm9ncmVzcy1kb3QnKS5mb3JFYWNoKChkb3QsIGluZGV4KSA9PiB7CiAgICAgICAgICAgICAgICBkb3QuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJywgJ2NvbXBsZXRlZCcpOwogICAgICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA8IGN1cnJlbnRTdGVwKSBkb3QuY2xhc3NMaXN0LmFkZCgnY29tcGxldGVkJyk7CiAgICAgICAgICAgICAgICBpZiAoaW5kZXggKyAxID09PSBjdXJyZW50U3RlcCkgZG90LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gc2hvd1N0ZXAoc3RlcCkgewogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZm9ybS1zdGVwJykuZm9yRWFjaChzID0+IHMuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJykpOwogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuZm9ybS1zdGVwW2RhdGEtc3RlcD0iJHtzdGVwfSJdYCkuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgIHVwZGF0ZVByb2dyZXNzKCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIG5leHRTdGVwKGZyb20pIHsKICAgICAgICAgICAgLy8gQmFzaWMgdmFsaWRhdGlvbgogICAgICAgICAgICBjb25zdCBjdXJyZW50U3RlcEVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLmZvcm0tc3RlcFtkYXRhLXN0ZXA9IiR7ZnJvbX0iXWApOwogICAgICAgICAgICBjb25zdCByZXF1aXJlZEZpZWxkcyA9IGN1cnJlbnRTdGVwRWwucXVlcnlTZWxlY3RvckFsbCgnW3JlcXVpcmVkXScpOwogICAgICAgICAgICBsZXQgdmFsaWQgPSB0cnVlOwogICAgICAgICAgICAKICAgICAgICAgICAgcmVxdWlyZWRGaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7CiAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3JhZGlvJykgewogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhZGlvR3JvdXAgPSBjdXJyZW50U3RlcEVsLnF1ZXJ5U2VsZWN0b3JBbGwoYGlucHV0W25hbWU9IiR7ZmllbGQubmFtZX0iXWApOwogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrZWQgPSBBcnJheS5mcm9tKHJhZGlvR3JvdXApLnNvbWUociA9PiByLmNoZWNrZWQpOwogICAgICAgICAgICAgICAgICAgIGlmICghY2hlY2tlZCkgdmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWZpZWxkLnZhbHVlLnRyaW0oKSkgewogICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgZmllbGQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnI0RDMTQzQyc7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGZpZWxkLnN0eWxlLmJvcmRlckNvbG9yID0gJyc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKCF2YWxpZCkgewogICAgICAgICAgICAgICAgYWxlcnQoJ1BsZWFzZSBjb21wbGV0ZSBhbGwgcmVxdWlyZWQgZmllbGRzLicpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoZnJvbSA8IHRvdGFsU3RlcHMpIHsKICAgICAgICAgICAgICAgIGN1cnJlbnRTdGVwID0gZnJvbSArIDE7CiAgICAgICAgICAgICAgICBzaG93U3RlcChjdXJyZW50U3RlcCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gcHJldlN0ZXAoZnJvbSkgewogICAgICAgICAgICBpZiAoZnJvbSA+IDEpIHsKICAgICAgICAgICAgICAgIGN1cnJlbnRTdGVwID0gZnJvbSAtIDE7CiAgICAgICAgICAgICAgICBzaG93U3RlcChjdXJyZW50U3RlcCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gT3B0aW9uIHNlbGVjdGlvbiB2aXN1YWwgZmVlZGJhY2sKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcub3B0aW9uLWl0ZW0nKS5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgICAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMucXVlcnlTZWxlY3RvcignaW5wdXQnKTsKICAgICAgICAgICAgICAgIGlmIChpbnB1dC50eXBlID09PSAncmFkaW8nKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBpbnB1dFtuYW1lPSIke2lucHV0Lm5hbWV9Il1gKTsKICAgICAgICAgICAgICAgICAgICBncm91cC5mb3JFYWNoKHIgPT4gci5jbG9zZXN0KCcub3B0aW9uLWl0ZW0nKS5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSAhaW5wdXQuY2hlY2tlZCB8fCBpbnB1dC50eXBlID09PSAncmFkaW8nOwogICAgICAgICAgICAgICAgdGhpcy5jbGFzc0xpc3QudG9nZ2xlKCdzZWxlY3RlZCcsIGlucHV0LmNoZWNrZWQpOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
Welcome to The Sovereign Empire | Mukasa Venture Partners
✦ ✦ 👑
🏛️ $

Est. 2017 • Kalamazoo, Michigan

Welcome to
The Sovereign Empire

Mukasa Venture Partners LLC • A Generational Legacy

▶️

Video loading... or click to play

OR -->
"When African stories are told by Africans, development stops being a promise and becomes a lived reality."
— THE SOVEREIGN EMPIRE MANIFESTO
Learn More First

© 2017-2026 Mukasa Venture Partners LLC • The Sovereign Empire

🏛️

Request Empire Access

Tell us about yourself and your vision

Step 1: Your Information

Step 2: Your Business

Step 3: Your Interest

|||-->
Image Gallery Grid
T
Please Check Your Email
We Will Be Following Up Shortly
*
*
*

warning