cropper

SOVEREIGN ARCHITECTS MOMENTUM MEDIA

cropper
  • 2026 Initiative
  • 2026 Exemplar
  • 2026 Introspect
  • 2026 Priorities
  • 2026 Rewards
  • 2026 Thanks
  • 2026 Voice
{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gUFJJTUFSWSBNRVRBIC0tPgogICAgPHRpdGxlPkFuIEludml0YXRpb24gfCBUaGUgU292ZXJlaWduIEFyY2hpdGVjdHMgSW5pdGlhdGl2ZTwvdGl0bGU+CiAgICA8bWV0YSBuYW1lPSJ0aXRsZSIgY29udGVudD0iQW4gSW52aXRhdGlvbiB0byBBZnJpY2EncyBJbnRlbnRpb25hbCBCdWlsZGVycyB8IFNvdmVyZWlnbiBBcmNoaXRlY3RzIj4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJZb3UndmUgYmVlbiBzZWxlY3RlZC4gWW91ciBjb250cmlidXRpb24gdG8gQWZyaWNhbiBleGNlbGxlbmNlIGhhcyBiZWVuIG9uIG91ciByYWRhci4gVGhpcyBpbnZpdGF0aW9uIGlzIGludGVudGlvbmFsLiI+CiAgICA8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iQWZyaWNhbiBidXNpbmVzcyBsZWFkZXJzLCBlbnRyZXByZW5ldXJzLCBleGVjdXRpdmUgcHJvZ3JhbSwgZm91bmRlcnMiPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJTb3ZlcmVpZ24gQXJjaGl0ZWN0cyBNZWRpYSI+CiAgICAKICAgIDwhLS0gSElERSBGUk9NIFNFQVJDSCAmIE5BVklHQVRJT04gLS0+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93Ij4KICAgIDxtZXRhIG5hbWU9Imdvb2dsZWJvdCIgY29udGVudD0ibm9pbmRleCwgbm9mb2xsb3ciPgogICAgPG1ldGEgbmFtZT0ibmF2aWdhdGlvbiIgY29udGVudD0iaGlkZGVuIj4KICAgIDxtZXRhIG5hbWU9Im1lbnUtZXhjbHVkZSIgY29udGVudD0idHJ1ZSI+CiAgICA8bWV0YSBuYW1lPSJmcC1uYXZpZ2F0aW9uIiBjb250ZW50PSJleGNsdWRlIj4KICAgIDxtZXRhIG5hbWU9ImZwLW1lbnUiIGNvbnRlbnQ9ImhpZGRlbiI+CiAgICAKICAgIDwhLS0gTk8gQ0FDSEUgLS0+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDYWNoZS1Db250cm9sIiBjb250ZW50PSJuby1jYWNoZSwgbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZSI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJQcmFnbWEiIGNvbnRlbnQ9Im5vLWNhY2hlIj4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkV4cGlyZXMiIGNvbnRlbnQ9IjAiPgogICAgCiAgICA8IS0tIFJFRkVSUkVSIFBST1RFQ1RJT04gLS0+CiAgICA8bWV0YSBuYW1lPSJyZWZlcnJlciIgY29udGVudD0ibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiPgogICAgCiAgICA8IS0tIE9QRU4gR1JBUEggLyBTT0NJQUwgU0hBUklORyAtLT4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ3ZWJzaXRlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vc292ZXJlaWdubW9tZW50dW0uY29tLzIwMjZleGVtcGxhciI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkFuIEludml0YXRpb24gdG8gQWZyaWNhJ3MgSW50ZW50aW9uYWwgQnVpbGRlcnMiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJZb3VyIHZvaWNlIG1hdHRlcnMuIFlvdXIgZXhwZXJ0aXNlIGRlc2VydmVzIGRvY3VtZW50YXRpb24uIFRoaXMgaXMgbm90IG1hc3Mgb3V0cmVhY2guIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iaHR0cHM6Ly9zb3ZlcmVpZ25tb21lbnR1bS5jb20vaW1hZ2VzL3NvdmVyZWlnbi1hcmNoaXRlY3RzLW9nLnBuZyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6c2l0ZV9uYW1lIiBjb250ZW50PSJTb3ZlcmVpZ24gQXJjaGl0ZWN0cyI+CiAgICAKICAgIDwhLS0gVFdJVFRFUiBDQVJEIC0tPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpjYXJkIiBjb250ZW50PSJzdW1tYXJ5X2xhcmdlX2ltYWdlIj4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IkFuIEludml0YXRpb24gdG8gQWZyaWNhJ3MgSW50ZW50aW9uYWwgQnVpbGRlcnMiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpkZXNjcmlwdGlvbiIgY29udGVudD0iWW91ciB2b2ljZSBtYXR0ZXJzLiBZb3VyIGV4cGVydGlzZSBkZXNlcnZlcyBkb2N1bWVudGF0aW9uLiBUaGlzIGlzIG5vdCBtYXNzIG91dHJlYWNoLiI+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmltYWdlIiBjb250ZW50PSJodHRwczovL3NvdmVyZWlnbm1vbWVudHVtLmNvbS9pbWFnZXMvc292ZXJlaWduLWFyY2hpdGVjdHMtb2cucG5nIj4KICAgIAogICAgPCEtLSBGQVZJQ09OIC0tPgogICAgPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Ii9mYXZpY29uLmljbyI+CiAgICAKICAgIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20iIGNyb3Nzb3JpZ2luPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Db3Jtb3JhbnQrR2FyYW1vbmQ6aXRhbCx3Z2h0QDAsNDAwOzAsNTAwOzAsNjAwOzAsNzAwOzEsNDAwOzEsNTAwJmZhbWlseT1SYWxld2F5OndnaHRAMzAwOzQwMDs1MDA7NjAwJmZhbWlseT1DaW56ZWw6d2dodEA0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgogICAgCiAgICA8c3R5bGU+CiAgICAgICAgOnJvb3QgewogICAgICAgICAgICAvKiBUaGUgRXhlY3V0aXZlIFBhbGV0dGUgKi8KICAgICAgICAgICAgLS1zb3ZlcmVpZ24tZ29sZDogI2YzYjcwMDsgICAgICAvKiBQcmltYXJ5IEJyYW5kIEdvbGQgKi8KICAgICAgICAgICAgLS1hcmNoaXRlY3QtZ29sZDogI2Q0YWYzNzsgICAgICAvKiBEZWVwL0J1cm5pc2hlZCBHb2xkICovCiAgICAgICAgICAgIC0tc292ZXJlaWduLWNoYXJjb2FsOiAjMmQzNDM2OwogICAgICAgICAgICAtLWRlZXAtc2xhdGU6ICMxZTI3MmU7CiAgICAgICAgICAgIC0td2FybS1ncmF5OiAjNjM2ZTcyOwogICAgICAgICAgICAtLXNvZnQtZ3JheTogI2IyYmVjMzsKICAgICAgICAgICAgLS1wYWxlLWdvbGQ6ICNmNGU0YmM7CiAgICAgICAgICAgIC0tc29mdC1pdm9yeTogI2ZhZjlmNjsKICAgICAgICAgICAgLS13YXJtLWNyZWFtOiAjZjVmM2VmOwogICAgICAgICAgICAtLXBhcmNobWVudDogI2VmZTllMTsKICAgICAgICAgICAgLS1kZWVwLW5hdnk6ICMxZTNhNWY7CiAgICAgICAgICAgIC0tYWNjZW50LWJ1cmd1bmR5OiAjNmIyNzM3OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAqIHsKICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PSBTQ1JFRU5TSE9UIFBSRVZFTlRJT04gPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICBib2R5IHsKICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaW1nIHsKICAgICAgICAgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgICAgIC1raHRtbC11c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgICAgIC1tb3otdXNlci1kcmFnOiBub25lOwogICAgICAgICAgICAtby11c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgICAgIHVzZXItZHJhZzogbm9uZTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSBwcmludCB7CiAgICAgICAgICAgIGJvZHkgewogICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGh0bWwgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwMCAhaW1wb3J0YW50OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IEVORCBTQ1JFRU5TSE9UIFBSRVZFTlRJT04gPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAKICAgICAgICBodG1sIHsKICAgICAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zb2Z0LWl2b3J5KTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IFNVQlRMRSBCQUNLR1JPVU5EIFRFWFRVUkUgPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAuYmFja2dyb3VuZC10ZXh0dXJlIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICB6LWluZGV4OiAwOwogICAgICAgICAgICBvcGFjaXR5OiAwLjAzOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzYwJyBoZWlnaHQ9JzYwJyB2aWV3Qm94PScwIDAgNjAgNjAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NnIGZpbGw9J25vbmUnIGZpbGwtcnVsZT0nZXZlbm9kZCclM0UlM0NnIGZpbGw9JyUyM2Q0YWYzNycgZmlsbC1vcGFjaXR5PScxJyUzRSUzQ3BhdGggZD0nTTM2IDM0di00aC0ydjRoLTR2Mmg0djRoMnYtNGg0di0yaC00em0wLTMwVjBoLTJ2NGgtNHYyaDR2NGgyVjZoNFY0aC00ek02IDM0di00SDR2NEgwdjJoNHY0aDJ2LTRoNHYtMkg2ek02IDRWMEg0djRIMHYyaDR2NGgyVjZoNFY0SDZ6Jy8lM0UlM0MvZyUzRSUzQy9nJTNFJTNDL3N2ZyUzRSIpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBTdWJ0bGUgZ29sZCBhY2NlbnQgbGluZSBhdCB0b3AgKi8KICAgICAgICAudG9wLWFjY2VudCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHZhcigtLWFyY2hpdGVjdC1nb2xkKSwgdHJhbnNwYXJlbnQpOwogICAgICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IE1BSU4gQ09OVEFJTkVSID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmludml0YXRpb24tY29udGFpbmVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgICAgIHBhZGRpbmc6IDYwcHggNDBweCA4MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmludml0YXRpb24tY29udGFpbmVyIHsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMjVweCA2MHB4OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IFRIRSBTRUFMID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmFyY2hpdGVjdC1zZWFsIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAxLjVzIGVhc2Utb3V0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOyB9CiAgICAgICAgICAgIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWFsLWVtYmxlbSB7CiAgICAgICAgICAgIHdpZHRoOiA4MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDgwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDIwcHg7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWFyY2hpdGVjdC1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc29mdC1pdm9yeSksIHZhcigtLXdhcm0tY3JlYW0pKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMjBweCByZ2JhKDI0MywgMTgzLCAwLCAwLjE1KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlYWwtZW1ibGVtIHNwYW4gewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1hcmNoaXRlY3QtZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWFsLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogNHB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1ncmF5KTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gVEhFIExFVFRFUiA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5sZXR0ZXItY29udGFpbmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZmZmZiAwJSwgdmFyKC0td2FybS1jcmVhbSkgMTAwJSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjQzLCAxODMsIDAsIDAuMik7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgICAgcGFkZGluZzogNjBweCA1MHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4OwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAxLjVzIGVhc2Utb3V0IDAuM3MgYm90aDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5sZXR0ZXItY29udGFpbmVyIHsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMzBweDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAubGV0dGVyLW9wZW5pbmcgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDIuOHJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmxldHRlci1vcGVuaW5nIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAubGV0dGVyLXN1Ym9wZW5pbmcgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tYXJjaGl0ZWN0LWdvbGQpOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sZXR0ZXItZGl2aWRlciB7CiAgICAgICAgICAgIHdpZHRoOiA2MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgdmFyKC0tYXJjaGl0ZWN0LWdvbGQpLCB0cmFuc3BhcmVudCk7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDUwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sZXR0ZXItYm9keSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubGV0dGVyLWJvZHkgcCB7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sZXR0ZXItYm9keSBwOmxhc3QtY2hpbGQgewogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubGV0dGVyLWVtcGhhc2lzIHsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWRlZXAtbmF2eSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sZXR0ZXItaGlnaGxpZ2h0IHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmxldHRlci1pdGFsaWMgewogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFRoZSBUaHJlZSBJbnRlbnRpb25zICovCiAgICAgICAgLmludGVudGlvbnMtYmxvY2sgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0MywgMTgzLCAwLCAwLjA1KTsKICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1hcmNoaXRlY3QtZ29sZCk7CiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMzVweDsKICAgICAgICAgICAgbWFyZ2luOiA0MHB4IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnRlbnRpb24taW50cm8gewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmludGVudGlvbi1pdGVtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnRlbnRpb24taXRlbTpsYXN0LWNoaWxkIHsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmludGVudGlvbi1udW1iZXIgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1hcmNoaXRlY3QtZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDsKICAgICAgICAgICAgbWluLXdpZHRoOiAyNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW50ZW50aW9uLXRleHQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMTVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW50ZW50aW9uLXRleHQgc3Ryb25nIHsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWRlZXAtbmF2eSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIExldHRlciBDbG9zaW5nICovCiAgICAgICAgLmxldHRlci1jbG9zaW5nIHsKICAgICAgICAgICAgbWFyZ2luLXRvcDogNTBweDsKICAgICAgICAgICAgcGFkZGluZy10b3A6IDQwcHg7CiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI0MywgMTgzLCAwLCAwLjIpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2xvc2luZy10ZXh0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjE1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1ncmF5KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2lnbmF0dXJlLWJsb2NrIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNpZ25hdHVyZS1yZXNwZWN0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0tZ3JheSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zaWduYXR1cmUtbmFtZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2lnbmF0dXJlLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdSYWxld2F5Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1ncmF5KTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNpZ25hdHVyZS10YWdsaW5lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IENPTlRJTlVFIFNFQ1RJT04gPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAuY29udGludWUtc2VjdGlvbiB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMS41cyBlYXNlLW91dCAwLjZzIGJvdGg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250aW51ZS10ZXh0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0tZ3JheSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250aW51ZS1idG4gewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBwYWRkaW5nOiAxOHB4IDQ1cHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtaXZvcnkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpLCB2YXIoLS1kZWVwLXNsYXRlKSk7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRpbnVlLWJ0bjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWFyY2hpdGVjdC1nb2xkKSwgdmFyKC0tYXJjaGl0ZWN0LWdvbGQpKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMjVweCByZ2JhKDI0MywgMTgzLCAwLCAwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udGludWUtYnRuIHN2ZyB7CiAgICAgICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250aW51ZS1idG46aG92ZXIgc3ZnIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IFBPU1RVUkUgU0VMRUNUSU9OID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLnBvc3R1cmUtc2VjdGlvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuOHMgZWFzZS1vdXQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wb3N0dXJlLXNlY3Rpb24uYWN0aXZlIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wb3N0dXJlLWhlYWRlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBvc3R1cmUtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wb3N0dXJlLXN1YnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjE1cmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdyYXkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucG9zdHVyZS1ncmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICAgICAgZ2FwOiAyNXB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzAwcHgpIHsKICAgICAgICAgICAgLnBvc3R1cmUtZ3JpZCB7CiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAucG9zdHVyZS1jYXJkIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI0MywgMTgzLCAwLCAwLjE1KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBwYWRkaW5nOiAzNXB4IDMwcHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBvc3R1cmUtY2FyZDo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogNHB4OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFyY2hpdGVjdC1nb2xkKTsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wb3N0dXJlLWNhcmQ6aG92ZXIgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWFyY2hpdGVjdC1nb2xkKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDM1cHggcmdiYSgwLCAwLCAwLCAwLjA4KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucG9zdHVyZS1jYXJkOmhvdmVyOjpiZWZvcmUgewogICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucG9zdHVyZS1jYXJkLnNlbGVjdGVkIHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hcmNoaXRlY3QtZ29sZCk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmZmZmYsIHJnYmEoMjQzLCAxODMsIDAsIDAuMDUpKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBvc3R1cmUtY2FyZC5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBvc3R1cmUtaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wb3N0dXJlLW5hbWUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucG9zdHVyZS1kZXNjcmlwdGlvbiB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4wNXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0tZ3JheSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBvc3R1cmUtcmVzcG9uc2UgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFByb2NlZWQgQnV0dG9uICovCiAgICAgICAgLnByb2NlZWQtc2VjdGlvbiB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogNDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByb2NlZWQtYnRuIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgcGFkZGluZzogMThweCA1MHB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb2Z0LWl2b3J5KTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYXJjaGl0ZWN0LWdvbGQpLCB2YXIoLS1hcmNoaXRlY3QtZ29sZCkpOwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlOwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCAyMHB4IHJnYmEoMjQzLCAxODMsIDAsIDAuMyk7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9jZWVkLWJ0bi5hY3RpdmUgewogICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByb2NlZWQtYnRuLmFjdGl2ZTpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWFyY2hpdGVjdC1nb2xkKSwgdmFyKC0tc292ZXJlaWduLWdvbGQpKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCAzMHB4IHJnYmEoMjQzLCAxODMsIDAsIDAuNCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IExPVFRFUlkgU0VDVElPTiAoRGlnbmlmaWVkKSA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5sb3R0ZXJ5LXNlY3Rpb24gewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjhzIGVhc2Utb3V0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubG90dGVyeS1zZWN0aW9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubG90dGVyeS1oZWFkZXIgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sb3R0ZXJ5LXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubG90dGVyeS1zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xNXJlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1ncmF5KTsKICAgICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIENob2ljZSBDYXJkcyAqLwogICAgICAgIC5jaG9pY2UtZ3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgICAgIGdhcDogMzBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5jaG9pY2UtZ3JpZCB7CiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hvaWNlLWNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmZmZmZmLCB2YXIoLS13YXJtLWNyZWFtKSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjQzLCAxODMsIDAsIDAuMik7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgICAgcGFkZGluZzogNDBweCAzMHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNob2ljZS1jYXJkOmhvdmVyIHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hcmNoaXRlY3QtZ29sZCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hvaWNlLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDUwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hvaWNlLW5hbWUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jaG9pY2UtZGVzYyB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0tZ3JheSk7CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gV0hFRUwgU0VDVElPTiA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC53aGVlbC1zZWN0aW9uIHsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjhzIGVhc2Utb3V0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAud2hlZWwtc2VjdGlvbi5hY3RpdmUgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLndoZWVsLWNvbnRhaW5lciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDMyMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDMyMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byA0MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAud2hlZWwtcG9pbnRlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAtMTVweDsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAycHggNHB4IHJnYmEoMCwwLDAsMC4yKSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoCiAgICAgICAgICAgICAgICBmcm9tIDBkZWcsCiAgICAgICAgICAgICAgICB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpIDBkZWcgOTBkZWcsCiAgICAgICAgICAgICAgICB2YXIoLS1zb3ZlcmVpZ24tZ29sZCkgOTBkZWcgMTgwZGVnLAogICAgICAgICAgICAgICAgdmFyKC0tZGVlcC1uYXZ5KSAxODBkZWcgMjcwZGVnLAogICAgICAgICAgICAgICAgdmFyKC0tYXJjaGl0ZWN0LWdvbGQpIDI3MGRlZyAzNjBkZWcKICAgICAgICAgICAgKTsKICAgICAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMTUpLCBpbnNldCAwIDAgMzBweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1cyBjdWJpYy1iZXppZXIoMC4xNywgMC42NywgMC4xMiwgMC45OSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbC1jZW50ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgICB3aWR0aDogNzBweDsKICAgICAgICAgICAgaGVpZ2h0OiA3MHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNvZnQtaXZvcnkpLCB2YXIoLS13YXJtLWNyZWFtKSk7CiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLWFyY2hpdGVjdC1nb2xkKTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAud2hlZWwtY2VudGVyLWljb24gewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1hcmNoaXRlY3QtZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFdoZWVsIExhYmVscyAqLwogICAgICAgIC53aGVlbC1sYWJlbHMgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbC1sYWJlbCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdSYWxld2F5Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjY1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7CiAgICAgICAgICAgIHdpZHRoOiA4MHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbC1sYWJlbDpudGgtY2hpbGQoMSkgewogICAgICAgICAgICB0b3A6IDI1JTsKICAgICAgICAgICAgcmlnaHQ6IDEwJTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtaXZvcnkpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbC1sYWJlbDpudGgtY2hpbGQoMikgewogICAgICAgICAgICBib3R0b206IDI1JTsKICAgICAgICAgICAgcmlnaHQ6IDEwJTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbC1sYWJlbDpudGgtY2hpbGQoMykgewogICAgICAgICAgICBib3R0b206IDI1JTsKICAgICAgICAgICAgbGVmdDogMTAlOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAud2hlZWwtbGFiZWw6bnRoLWNoaWxkKDQpIHsKICAgICAgICAgICAgdG9wOiAyNSU7CiAgICAgICAgICAgIGxlZnQ6IDEwJTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zcGluLWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE4cHggNTBweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCksIHZhcigtLWRlZXAtc2xhdGUpKTsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3Bpbi1idG46aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1hcmNoaXRlY3QtZ29sZCksIHZhcigtLWFyY2hpdGVjdC1nb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI1cHggcmdiYSgyNDMsIDE4MywgMCwgMC4zKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNwaW4tYnRuOmRpc2FibGVkIHsKICAgICAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBCYWNrIEJ1dHRvbiAqLwogICAgICAgIC5iYWNrLWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdyYXkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc29mdC1ncmF5KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5iYWNrLWJ0bjpob3ZlciB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IEdBTExFUlkgU0VDVElPTiA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5nYWxsZXJ5LXNlY3Rpb24gewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjhzIGVhc2Utb3V0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ2FsbGVyeS1zZWN0aW9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ2FsbGVyeS1oZWFkZXIgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5nYWxsZXJ5LXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ2FsbGVyeS1zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdyYXkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZG9vci1ncmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzAwcHgpIHsKICAgICAgICAgICAgLmRvb3ItZ3JpZCB7CiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5kb29yLWNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpLCB2YXIoLS1kZWVwLXNsYXRlKSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMTVweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5kb29yLWNhcmQ6aG92ZXIgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWFyY2hpdGVjdC1nb2xkKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMik7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5kb29yLW51bWJlciB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWFyY2hpdGVjdC1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRvb3ItbGFiZWwgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtZ3JheSk7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IFJFU1VMVCBNT0RBTCA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5tb2RhbC1vdmVybGF5IHsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDUsIDUyLCA1NCwgMC45NSk7CiAgICAgICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubW9kYWwtb3ZlcmxheS5hY3RpdmUgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubW9kYWwtY29udGVudCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNvZnQtaXZvcnkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggNDBweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYW5pbWF0aW9uOiBtb2RhbEluIDAuNXMgZWFzZS1vdXQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgbW9kYWxJbiB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogNjBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1sYWJlbCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1ncmF5KTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1kZXNjcmlwdGlvbiB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1ncmF5KTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS43OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2xhaW0tYnRuIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICAgICAgcGFkZGluZzogMTZweCA0MHB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtaXZvcnkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1hcmNoaXRlY3QtZ29sZCksIHZhcigtLWFyY2hpdGVjdC1nb2xkKSk7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jbGFpbS1idG46aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI1cHggcmdiYSgyNDMsIDE4MywgMCwgMC40KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gQ0FQVFVSRSBNT0RBTCA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5jYXB0dXJlLW1vZGFsIHsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDUsIDUyLCA1NCwgMC45NSk7CiAgICAgICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2FwdHVyZS1tb2RhbC5hY3RpdmUgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2FwdHVyZS1jb250ZW50IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgICAgcGFkZGluZzogNTBweCA0MHB4OwogICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBtb2RhbEluIDAuNXMgZWFzZS1vdXQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jYXB0dXJlLWhlYWRlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNhcHR1cmUtaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogNTBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNhcHR1cmUtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jYXB0dXJlLXN1YnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1ncmF5KTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ncm91cCB7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLWdyb3VwIGxhYmVsIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ncm91cCBpbnB1dCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNvZnQtZ3JheSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgewogICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWFyY2hpdGVjdC1nb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvcm0tZ3JvdXAgaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtZ3JheSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFBob25lIElucHV0IEdyb3VwICovCiAgICAgICAgLnBob25lLWlucHV0LWdyb3VwIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGhvbmUtaW5wdXQtZ3JvdXAgc2VsZWN0IHsKICAgICAgICAgICAgd2lkdGg6IDEwMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxNHB4IDEwcHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc29mdC1ncmF5KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5waG9uZS1pbnB1dC1ncm91cCBzZWxlY3Q6Zm9jdXMgewogICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWFyY2hpdGVjdC1nb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBob25lLWlucHV0LWdyb3VwIGlucHV0IHsKICAgICAgICAgICAgZmxleDogMTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN1Ym1pdC1idG4gewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCksIHZhcigtLWRlZXAtc2xhdGUpKTsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN1Ym1pdC1idG46aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1hcmNoaXRlY3QtZ29sZCksIHZhcigtLWFyY2hpdGVjdC1nb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBMb2FkaW5nIE92ZXJsYXkgKi8KICAgICAgICAubG9hZGluZy1vdmVybGF5IHsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDUsIDUyLCA1NCwgMC45OCk7CiAgICAgICAgICAgIHotaW5kZXg6IDIwMDA7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubG9hZGluZy1vdmVybGF5LmFjdGl2ZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgICAgICB3aWR0aDogNTBweDsKICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OwogICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDI0MywgMTgzLCAwLCAwLjIpOwogICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1hcmNoaXRlY3QtZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sb2FkaW5nLXRleHQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtaXZvcnkpOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IENPTkZFVFRJID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmNvbmZldHRpIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IC0yMHB4OwogICAgICAgICAgICB6LWluZGV4OiAzMDAwOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBjb25mZXR0aS1mYWxsIDRzIGVhc2Utb3V0IGZvcndhcmRzOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGNvbmZldHRpLWZhbGwgewogICAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IG9wYWNpdHk6IDE7IH0KICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDB2aCkgcm90YXRlKDcyMGRlZyk7IG9wYWNpdHk6IDA7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gTkFWSUdBVElPTiBBUlJPV1MgPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAubmF2LWFycm93cyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogNDBweDsKICAgICAgICAgICAgcGFkZGluZy10b3A6IDMwcHg7CiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI0MywgMTgzLCAwLCAwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2LWFycm93IHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAyNHB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdyYXkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc29mdC1ncmF5KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5hdi1hcnJvdzpob3ZlciB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWFyY2hpdGVjdC1nb2xkKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDMsIDE4MywgMCwgMC4wNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5uYXYtYXJyb3cuZm9yd2FyZCB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb2Z0LWl2b3J5KTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKSwgdmFyKC0tZGVlcC1zbGF0ZSkpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5uYXYtYXJyb3cuZm9yd2FyZDpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWFyY2hpdGVjdC1nb2xkKSwgdmFyKC0tYXJjaGl0ZWN0LWdvbGQpKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYXJjaGl0ZWN0LWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2LWFycm93IHN2ZyB7CiAgICAgICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5uYXYtYXJyb3cuZGlzYWJsZWQgewogICAgICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2LXNwYWNlciB7CiAgICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IEZPT1RFUiA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5wYWdlLWZvb3RlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogNDBweCAyMHB4OwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNDMsIDE4MywgMCwgMC4xKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvb3Rlci10ZXh0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1ncmF5KTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9vdGVyLWJyYW5kIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGRpdiBjbGFzcz0iYmFja2dyb3VuZC10ZXh0dXJlIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InRvcC1hY2NlbnQiPjwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJpbnZpdGF0aW9uLWNvbnRhaW5lciI+CiAgICAgICAgPCEtLSBUaGUgU2VhbCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJhcmNoaXRlY3Qtc2VhbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYWwtZW1ibGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPlNBPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhbC10aXRsZSI+VGhlIFNvdmVyZWlnbiBBcmNoaXRlY3RzIEluaXRpYXRpdmU8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIFRoZSBMZXR0ZXIgU2VjdGlvbiAtLT4KICAgICAgICA8c2VjdGlvbiBpZD0ibGV0dGVyU2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxldHRlci1jb250YWluZXIiPgogICAgICAgICAgICAgICAgPGgxIGNsYXNzPSJsZXR0ZXItb3BlbmluZyI+IkkgQW0gQSBRdWlldCBCdWlsZGVyLjxicj5Zb3UgQXJlIFRoZSBWb2ljZSBBZnJpY2EgTmVlZHMuIjwvaDE+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibGV0dGVyLXN1Ym9wZW5pbmciPllvdXIgY29udHJpYnV0aW9uIGhhcyBiZWVuIG9uIG15IHJhZGFyIGZvciBvdmVyIGEgeWVhci48L3A+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZXR0ZXItZGl2aWRlciI+PC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxldHRlci1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICA8cD5EZWFyIEVzdGVlbWVkIENvbGxlYWd1ZSw8L3A+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImxldHRlci1lbXBoYXNpcyI+SSBhbSBhIHF1aWV0IGJ1aWxkZXIuPC9zcGFuPjwvcD4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8cD5XaGlsZSB5b3UndmUgYmVlbiBjb21tYW5kaW5nIHN0YWdlcywgZ3Jvd2luZyBjb21tdW5pdGllcywgYW5kIHNoYXBpbmcgbmFycmF0aXZlcywgSSd2ZSBiZWVuIGluIHRoZSBiYWNrZ3JvdW5k4oCUd2F0Y2hpbmcsIGRvY3VtZW50aW5nLCBhbmQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgZm9yIG1vbWVudHMgZXhhY3RseSBsaWtlIHRoaXMuPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxwPllvdXIgY29udHJpYnV0aW9uIHRvIHRoZSBBZnJpY2FuIHZvaWNl4oCUdGhlIDxzcGFuIGNsYXNzPSJsZXR0ZXItaGlnaGxpZ2h0Ij5hdXRob3JpdHkgYW5kIHJlc3BlY3Q8L3NwYW4+IHlvdSd2ZSBjdWx0aXZhdGVkIG9uIGFuZCBiZXlvbmQgTGlua2VkSW7igJRoYXMgYmVlbiBvbiBteSByYWRhciBmb3Igb3ZlciBhIHllYXIuIFllcywgPHNwYW4gY2xhc3M9ImxldHRlci1pdGFsaWMiPmEgeWVhcjwvc3Bhbj4uIEJlY2F1c2UgSSBhbSBleHRyYW9yZGluYXJpbHkgaW50ZW50aW9uYWwgYWJvdXQgd2hvIEkgcmVhY2ggb3V0IHRvLjwvcD4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8cD5Zb3Ugc2VlLCBJJ20gbm90IGludGVyZXN0ZWQgaW4gbWVyZSBpbmZsdWVuY2VycyB3aG8gcmlzZSBhbmQgZmFkZSB3aXRoIGFsZ29yaXRobXMuIEknbSBpbnRlcmVzdGVkIGluIDxzcGFuIGNsYXNzPSJsZXR0ZXItZW1waGFzaXMiPkFyY2hpdGVjdHM8L3NwYW4+4oCUdGhvc2Ugd2hvIGFyZSBidWlsZGluZyBzb21ldGhpbmcgdGhhdCB3aWxsIG91dGxhc3QgdHJlbmRpbmcgaGFzaHRhZ3MuPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxwPldoYXQgeW91IGhhdmUgYnVpbHQgaXMgd29ydGggbW9yZSB0aGFuIGZvbGxvd2Vycy4gSXQgZGVzZXJ2ZXMgYSA8c3BhbiBjbGFzcz0ibGV0dGVyLWhpZ2hsaWdodCI+cGVybWFuZW50IHZvaWNlPC9zcGFuPiBpbiB0aGUgZGlnaXRhbCBsYW5kc2NhcGXigJRub3QganVzdCB3aXRoaW4geW91ciBjb21tdW5pdHksIGJ1dCBhY3Jvc3MgRWFzdCBBZnJpY2EgYW5kIGJleW9uZC4gWW91ciBleHBlcnRpc2UgYW5kIHdpc2RvbSBuZWVkIHRvIGJlIHNoYXJlZCB3aXRoIHRvZGF5J3MgZm91bmRlcnMgYW5kIGVtZXJnaW5nIGxlYWRlcnMgd2hvIGFyZSBodW5ncnkgZm9yIDxzcGFuIGNsYXNzPSJsZXR0ZXItZW1waGFzaXMiPkFmcmljYW4gZXhlbXBsYXJzPC9zcGFuPuKAlG5vdCBXZXN0ZXJuIHRlbXBsYXRlcy48L3A+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW50ZW50aW9ucy1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJpbnRlbnRpb24taW50cm8iPkkgd2FudCB0byBkbyB0aHJlZSB0aGluZ3M6PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlbnRpb24taXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW50ZW50aW9uLW51bWJlciI+MS48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW50ZW50aW9uLXRleHQiPjxzdHJvbmc+UkVDT0dOSVpFPC9zdHJvbmc+IHdoYXQgSSBzZWUgYW5kIGRlZXBseSB2YWx1ZSBpbiB5b3VyIHdvcms8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlbnRpb24taXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW50ZW50aW9uLW51bWJlciI+Mi48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW50ZW50aW9uLXRleHQiPjxzdHJvbmc+RE9DVU1FTlQ8L3N0cm9uZz4geW91ciBleHBlcnRpc2UgaW4gb3VyIGFudGhvbG9neSBmb3IgZnV0dXJlIGdlbmVyYXRpb25zPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW50ZW50aW9uLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImludGVudGlvbi1udW1iZXIiPjMuPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImludGVudGlvbi10ZXh0Ij48c3Ryb25nPkFNUExJRlk8L3N0cm9uZz4geW91ciB2b2ljZSwgd2lzZG9tLCBhbmQgY29udHJpYnV0aW9uIHRvIHRoZSBBZnJpY2EgbmFycmF0aXZlIHRoYXQgdGhlIHdvcmxkIG5lZWRzIHRvIHJlc3BlY3QgYW5kIHNob3djYXNlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8cD5UaGlzIGlzIG5vdCBhIHNhbGVzIHBpdGNoLiBUaGlzIGlzIG5vdCBtYXNzIG91dHJlYWNoLiBUaGlzIGlzIGFuIDxzcGFuIGNsYXNzPSJsZXR0ZXItaGlnaGxpZ2h0Ij5pbnZpdGF0aW9uPC9zcGFuPiB0byBiZSBwYXJ0IG9mIHNvbWV0aGluZyBiZWluZyBidWlsdCB3aXRoIGludGVudGlvbiwgcHJlY2lzaW9uLCBhbmQgYSBsb25nLXRlcm0gdmlzaW9uIGZvciBBZnJpY2FuIGV4Y2VsbGVuY2UuPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxwPklmIHRoaXMgcmVzb25hdGVzLCBJIGludml0ZSB5b3UgdG8gY29udGludWUgYmVsb3cuPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxldHRlci1jbG9zaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImNsb3NpbmctdGV4dCI+VGhpcyBpbnZpdGF0aW9uIHdhcyBjcmFmdGVkIHNwZWNpZmljYWxseSBmb3IgeW91LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lnbmF0dXJlLWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzaWduYXR1cmUtcmVzcGVjdCI+V2l0aCBkZWVwIHJlc3BlY3QsPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InNpZ25hdHVyZS1uYW1lIj5UaGUgU292ZXJlaWduIEFyY2hpdGVjdHM8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2lnbmF0dXJlLXRpdGxlIj5Tb3ZlcmVpZ24gQXJjaGl0ZWN0cyBNZWRpYTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzaWduYXR1cmUtdGFnbGluZSI+IkJ1aWxkaW5nIHF1aWV0bHkuIEFtcGxpZnlpbmcgaW50ZW50aW9uYWxseS4iPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRpbnVlLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImNvbnRpbnVlLXRleHQiPklmIHRoaXMgcmVzb25hdGVzIHdpdGggeW91ciB2aXNpb24uLi48L3A+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtYXJyb3dzIiBzdHlsZT0iYm9yZGVyLXRvcDogbm9uZTsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtYXJyb3cgZm9yd2FyZCIgb25jbGljaz0ic2hvd1Bvc3R1cmVTZWN0aW9uKCkiPgogICAgICAgICAgICAgICAgICAgICAgICBDb250aW51ZSB0byBOZXh0IFN0ZXAKICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik0xNyA4bDQgNG0wIDBsLTQgNG00LTRIMyIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIAogICAgICAgIDwhLS0gUG9zdHVyZSBTZWxlY3Rpb24gU2VjdGlvbiAtLT4KICAgICAgICA8c2VjdGlvbiBpZD0icG9zdHVyZVNlY3Rpb24iIGNsYXNzPSJwb3N0dXJlLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwb3N0dXJlLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InBvc3R1cmUtdGl0bGUiPllvdXIgQ3VycmVudCBQb3N0dXJlPC9oMj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwb3N0dXJlLXN1YnRpdGxlIj5TZWxlY3QgdGhlIHN0YXRlbWVudCB0aGF0IGJlc3QgcmVmbGVjdHMgd2hlcmUgeW91IGFyZSBpbiB5b3VyIGpvdXJuZXk8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0icG9zdHVyZS1ncmlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBvc3R1cmUtY2FyZCIgb25jbGljaz0ic2VsZWN0UG9zdHVyZSh0aGlzLCAnZXZhbHVhdGluZycpIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icG9zdHVyZS1pY29uIj7wn5SNPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icG9zdHVyZS1uYW1lIj5FdmFsdWF0aW5nPC9oMz4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icG9zdHVyZS1kZXNjcmlwdGlvbiI+IkknbSBhc3Nlc3Npbmcgd2hldGhlciB0aGlzIGFsaWducyB3aXRoIG15IGN1cnJlbnQgcHJpb3JpdGllcyBhbmQgc3RyYXRlZ2ljIGRpcmVjdGlvbi4iPC9wPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwb3N0dXJlLXJlc3BvbnNlIj7ihpIgWW91IHZhbHVlIGR1ZSBkaWxpZ2VuY2UuIFdlIHJlc3BlY3QgdGhhdC48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icG9zdHVyZS1jYXJkIiBvbmNsaWNrPSJzZWxlY3RQb3N0dXJlKHRoaXMsICdlbmdhZ2VkJykiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwb3N0dXJlLWljb24iPvCfjq88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwb3N0dXJlLW5hbWUiPkVuZ2FnZWQ8L2gzPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwb3N0dXJlLWRlc2NyaXB0aW9uIj4iSSdtIGFjdGl2ZWx5IGNvbnNpZGVyaW5nIGhvdyBzdHJhdGVnaWMgYW1wbGlmaWNhdGlvbiBjb3VsZCBzZXJ2ZSBteSBicm9hZGVyIG1pc3Npb24uIjwvcD4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icG9zdHVyZS1yZXNwb25zZSI+4oaSIFlvdSBzZWUgdGhlIHBvdGVudGlhbC4gTGV0J3MgZXhwbG9yZSBpdC48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icG9zdHVyZS1jYXJkIiBvbmNsaWNrPSJzZWxlY3RQb3N0dXJlKHRoaXMsICdkZWNpc2l2ZScpIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icG9zdHVyZS1pY29uIj7imqE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwb3N0dXJlLW5hbWUiPkRlY2lzaXZlPC9oMz4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icG9zdHVyZS1kZXNjcmlwdGlvbiI+IkknbSByZWFkeSB0byBwcm9jZWVkIHdpdGggaW50ZW50aW9uYWwgYWN0aW9uIHRvd2FyZCBncmVhdGVyIHZpc2liaWxpdHkgYW5kIGltcGFjdC4iPC9wPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwb3N0dXJlLXJlc3BvbnNlIj7ihpIgWW91J3JlIHJlYWR5IHRvIG1vdmUuIFdlJ3JlIHJlYWR5IHRvIGJ1aWxkLjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwb3N0dXJlLWNhcmQiIG9uY2xpY2s9InNlbGVjdFBvc3R1cmUodGhpcywgJ3Zpc2lvbmFyeScpIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icG9zdHVyZS1pY29uIj7wn5GRPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icG9zdHVyZS1uYW1lIj5WaXNpb25hcnk8L2gzPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwb3N0dXJlLWRlc2NyaXB0aW9uIj4iSSdtIGJ1aWxkaW5nIGxlZ2FjeS4gSSB3YW50IG15IGV4cGVydGlzZSBkb2N1bWVudGVkIGFuZCBhbXBsaWZpZWQgZm9yIGdlbmVyYXRpb25zLiI8L3A+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBvc3R1cmUtcmVzcG9uc2UiPuKGkiBZb3UgdW5kZXJzdGFuZCB0aGUgbG9uZyBnYW1lLiBXZWxjb21lLCBBcmNoaXRlY3QuPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWFycm93cyI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtYXJyb3ciIG9uY2xpY2s9ImdvQmFja1RvTGV0dGVyKCkiPgogICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik03IDE2bC00LTRtMCAwbDQtNG0tNCA0aDE4IiAvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgIEJhY2sgdG8gTGV0dGVyCiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9InByb2NlZWRCdG4iIGNsYXNzPSJuYXYtYXJyb3cgZm9yd2FyZCIgb25jbGljaz0ic2hvd0xvdHRlcnlTZWN0aW9uKCkiIHN0eWxlPSJvcGFjaXR5OiAwLjU7IHBvaW50ZXItZXZlbnRzOiBub25lOyI+CiAgICAgICAgICAgICAgICAgICAgUHJvY2VlZCB0byBQYXRoIFNlbGVjdGlvbgogICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik0xNyA4bDQgNG0wIDBsLTQgNG00LTRIMyIgLz4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBMb3R0ZXJ5IFNlY3Rpb24gLS0+CiAgICAgICAgPHNlY3Rpb24gaWQ9ImxvdHRlcnlTZWN0aW9uIiBjbGFzcz0ibG90dGVyeS1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG90dGVyeS1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJsb3R0ZXJ5LXRpdGxlIj5TZWxlY3QgWW91ciBQYXRoPC9oMj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJsb3R0ZXJ5LXN1YnRpdGxlIj5DaG9vc2UgaG93IHlvdSdkIGxpa2UgdG8gZGlzY292ZXIgd2hpY2ggc3RyYXRlZ2ljIHByb2dyYW0gYWxpZ25zIHdpdGggeW91ciBqb3VybmV5PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNob2ljZS1ncmlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNob2ljZS1jYXJkIiBvbmNsaWNrPSJzaG93V2hlZWxTZWN0aW9uKCkiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaG9pY2UtaWNvbiI+8J+Orzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImNob2ljZS1uYW1lIj5MZXQgRGVzdGlueSBEZWNpZGU8L2gzPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjaG9pY2UtZGVzYyI+U3BpbiB0aGUgd2hlZWwgYW5kIGFsbG93IGZhdGUgdG8gcmV2ZWFsIHlvdXIgcGF0aDwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaG9pY2UtY2FyZCIgb25jbGljaz0ic2hvd0dhbGxlcnlTZWN0aW9uKCkiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaG9pY2UtaWNvbiI+8J+aqjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImNob2ljZS1uYW1lIj5DaG9vc2UgWW91ciBEb29yPC9oMz4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iY2hvaWNlLWRlc2MiPlNlbGVjdCBkZWxpYmVyYXRlbHkgZnJvbSBmb3VyIHN0cmF0ZWdpYyBwcm9ncmFtczwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1hcnJvd3MiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWFycm93IiBvbmNsaWNrPSJnb0JhY2tUb1Bvc3R1cmUoKSI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTcgMTZsLTQtNG0wIDBsNC00bS00IDRoMTgiIC8+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgQmFjayB0byBQb3N0dXJlCiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1zcGFjZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBXaGVlbCBTZWN0aW9uIC0tPgogICAgICAgIDxzZWN0aW9uIGlkPSJ3aGVlbFNlY3Rpb24iIGNsYXNzPSJ3aGVlbC1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsLXBvaW50ZXIiPuKWvDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwiIGlkPSJ3aGVlbCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aGVlbC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3aGVlbC1jZW50ZXItaWNvbiI+MjAyNjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtbGFiZWxzIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2hlZWwtbGFiZWwiPkVtcGlyZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2hlZWwtbGFiZWwiPkhlYXJ0czwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2hlZWwtbGFiZWwiPkFJIEVyYTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2hlZWwtbGFiZWwiPlNvdmVyZWlnbjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxidXR0b24gaWQ9InNwaW5CdG4iIGNsYXNzPSJzcGluLWJ0biIgb25jbGljaz0ic3BpbldoZWVsKCkiPgogICAgICAgICAgICAgICAgUmV2ZWFsIFlvdXIgUGF0aAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1hcnJvd3MiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWFycm93IiBvbmNsaWNrPSJnb0JhY2tUb0xvdHRlcnkoKSI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTcgMTZsLTQtNG0wIDBsNC00bS00IDRoMTgiIC8+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgQmFjayB0byBTZWxlY3Rpb24KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LXNwYWNlciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAKICAgICAgICA8IS0tIEdhbGxlcnkgU2VjdGlvbiAtLT4KICAgICAgICA8c2VjdGlvbiBpZD0iZ2FsbGVyeVNlY3Rpb24iIGNsYXNzPSJnYWxsZXJ5LXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImdhbGxlcnktdGl0bGUiPkZvdXIgRG9vcnMsIEZvdXIgRGVzdGluaWVzPC9oMj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJnYWxsZXJ5LXN1YnRpdGxlIj5TZWxlY3QgdGhlIHByb2dyYW0gdGhhdCBjYWxscyB0byB5b3U8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9vci1ncmlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvb3ItY2FyZCIgb25jbGljaz0ic2VsZWN0RG9vcigwKSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9vci1udW1iZXIiPkk8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb29yLWxhYmVsIj5FbXBpcmUgQXJjaGl0ZWN0czwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb29yLWNhcmQiIG9uY2xpY2s9InNlbGVjdERvb3IoMSkiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvb3ItbnVtYmVyIj5JSTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvb3ItbGFiZWwiPlR3byBIZWFydHM8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9vci1jYXJkIiBvbmNsaWNrPSJzZWxlY3REb29yKDIpIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb29yLW51bWJlciI+SUlJPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9vci1sYWJlbCI+QUkgaW4gMjAyNjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb29yLWNhcmQiIG9uY2xpY2s9InNlbGVjdERvb3IoMykiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvb3ItbnVtYmVyIj5JVjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvb3ItbGFiZWwiPkRpZ2l0YWwgU292ZXJlaWdudHk8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1hcnJvd3MiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWFycm93IiBvbmNsaWNrPSJnb0JhY2tUb0xvdHRlcnkoKSI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTcgMTZsLTQtNG0wIDBsNC00bS00IDRoMTgiIC8+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgQmFjayB0byBTZWxlY3Rpb24KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LXNwYWNlciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KICAgIDwvZGl2PgogICAgCiAgICA8IS0tIFJlc3VsdCBNb2RhbCAtLT4KICAgIDxkaXYgaWQ9InJlc3VsdE1vZGFsIiBjbGFzcz0ibW9kYWwtb3ZlcmxheSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+CiAgICAgICAgICAgIDxkaXYgaWQ9InJlc3VsdEljb24iIGNsYXNzPSJyZXN1bHQtaWNvbiI+PC9kaXY+CiAgICAgICAgICAgIDxwIGlkPSJyZXN1bHRMYWJlbCIgY2xhc3M9InJlc3VsdC1sYWJlbCI+WW91ciBQYXRoIEhhcyBCZWVuIFJldmVhbGVkPC9wPgogICAgICAgICAgICA8aDMgaWQ9InJlc3VsdFRpdGxlIiBjbGFzcz0icmVzdWx0LXRpdGxlIj48L2gzPgogICAgICAgICAgICA8cCBpZD0icmVzdWx0RGVzY3JpcHRpb24iIGNsYXNzPSJyZXN1bHQtZGVzY3JpcHRpb24iPjwvcD4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY2xhaW0tYnRuIiBvbmNsaWNrPSJvcGVuQ2FwdHVyZUZvcm0oKSI+CiAgICAgICAgICAgICAgICBDbGFpbSBZb3VyIFBsYWNlCiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE3IDhsNCA0bTAgMGwtNCA0bTQtNEgzIiAvPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDwhLS0gQ2FwdHVyZSBNb2RhbCAtLT4KICAgIDxkaXYgaWQ9ImNhcHR1cmVNb2RhbCIgY2xhc3M9ImNhcHR1cmUtbW9kYWwiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcHR1cmUtY29udGVudCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcHR1cmUtaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcHR1cmUtaWNvbiI+8J+Pm++4jzwvZGl2PgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJjYXB0dXJlLXRpdGxlIj5XZWxjb21lLCBBcmNoaXRlY3Q8L2gzPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImNhcHR1cmUtc3VidGl0bGUiPkNvbXBsZXRlIHlvdXIgcmVnaXN0cmF0aW9uIHRvIHNlY3VyZSB5b3VyIGZvdW5kaW5nIHBpb25lZXIgc3RhdHVzPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxmb3JtIGlkPSJjYXB0dXJlRm9ybSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJmdWxsTmFtZSI+RnVsbCBOYW1lPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZ1bGxOYW1lIiBuYW1lPSJmdWxsTmFtZSIgcGxhY2Vob2xkZXI9IllvdXIgZnVsbCBuYW1lIiByZXF1aXJlZD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJlbWFpbEFkZHJlc3MiPkVtYWlsIEFkZHJlc3M8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgaWQ9ImVtYWlsQWRkcmVzcyIgbmFtZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJ5b3VyQGVtYWlsLmNvbSIgcmVxdWlyZWQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0icGhvbmVOdW1iZXIiPldoYXRzQXBwIE51bWJlciAoT3B0aW9uYWwpPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaG9uZS1pbnB1dC1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9ImNvdW50cnlDb2RlIiBuYW1lPSJjb3VudHJ5Q29kZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjU0Ij7wn4ew8J+HqiArMjU0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjU2Ij7wn4e68J+HrCArMjU2PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjU1Ij7wn4e58J+HvyArMjU1PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjUwIj7wn4e38J+HvCArMjUwPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjUxIj7wn4eq8J+HuSArMjUxPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjciPvCfh7/wn4emICsyNzwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iKzIzNCI+8J+Hs/Cfh6wgKzIzNDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iKzIzMyI+8J+HrPCfh60gKzIzMzwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iKzEiPvCfh7rwn4e4ICsxPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrNDQiPvCfh6zwn4enICs0NDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRlbCIgaWQ9InBob25lTnVtYmVyIiBuYW1lPSJwaG9uZSIgcGxhY2Vob2xkZXI9IlBob25lIG51bWJlciI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibGlua2VkaW4iPkxpbmtlZEluIFByb2ZpbGUgKE9wdGlvbmFsKTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InVybCIgaWQ9ImxpbmtlZGluIiBuYW1lPSJsaW5rZWRpbiIgcGxhY2Vob2xkZXI9Imh0dHBzOi8vbGlua2VkaW4uY29tL2luL3lvdXJwcm9maWxlIj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgaWQ9InN1Ym1pdEJ0biIgY2xhc3M9InN1Ym1pdC1idG4iPgogICAgICAgICAgICAgICAgICAgIFNlY3VyZSBNeSBGb3VuZGluZyBQaW9uZWVyIFN0YXR1cwogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8IS0tIExvYWRpbmcgT3ZlcmxheSAtLT4KICAgIDxkaXYgaWQ9ImxvYWRpbmdPdmVybGF5IiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgIDxwIGNsYXNzPSJsb2FkaW5nLXRleHQiPlByZXBhcmluZyB5b3VyIHdlbGNvbWUuLi48L3A+CiAgICA8L2Rpdj4KICAgIAogICAgPCEtLSBGb290ZXIgLS0+CiAgICA8Zm9vdGVyIGNsYXNzPSJwYWdlLWZvb3RlciI+CiAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci10ZXh0Ij4iQnVpbGRpbmcgcXVpZXRseS4gQW1wbGlmeWluZyBpbnRlbnRpb25hbGx5LiI8L3A+CiAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci1icmFuZCI+U09WRVJFSUdOIEFSQ0hJVEVDVFMgTUVESUE8L3A+CiAgICA8L2Zvb3Rlcj4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBTQ1JFRU5TSE9UICYgQ09QWSBQUkVWRU5USU9OID09PT09PT09PT09PT09PT09PT09CiAgICAgICAgLy8gRGlzYWJsZSByaWdodC1jbGljayBjb250ZXh0IG1lbnUKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgLy8gRGlzYWJsZSBrZXlib2FyZCBzaG9ydGN1dHMKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAvLyBEaXNhYmxlIFByaW50U2NyZWVuCiAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJ1ByaW50U2NyZWVuJykgewogICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIERpc2FibGUgQ3RybCtQIChQcmludCkKICAgICAgICAgICAgaWYgKGUuY3RybEtleSAmJiBlLmtleSA9PT0gJ3AnKSB7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gRGlzYWJsZSBDdHJsK1MgKFNhdmUpCiAgICAgICAgICAgIGlmIChlLmN0cmxLZXkgJiYgZS5rZXkgPT09ICdzJykgewogICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIERpc2FibGUgQ3RybCtTaGlmdCtJIChEZXYgVG9vbHMpCiAgICAgICAgICAgIGlmIChlLmN0cmxLZXkgJiYgZS5zaGlmdEtleSAmJiBlLmtleSA9PT0gJ0knKSB7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gRGlzYWJsZSBGMTIgKERldiBUb29scykKICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnRjEyJykgewogICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIERpc2FibGUgQ3RybCtVIChWaWV3IFNvdXJjZSkKICAgICAgICAgICAgaWYgKGUuY3RybEtleSAmJiBlLmtleSA9PT0gJ3UnKSB7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICAKICAgICAgICAvLyBEaXNhYmxlIGRyYWcgYW5kIGRyb3AKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnc3RhcnQnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0pOwogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IEVORCBTQ1JFRU5TSE9UIFBSRVZFTlRJT04gPT09PT09PT09PT09PT09PT09PT0KICAgICAgICAKICAgICAgICAvLyBQcml6ZSBEYXRhCiAgICAgICAgY29uc3QgcHJpemVzID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuYW1lOiAiRW1waXJlIEFyY2hpdGVjdHMiLAogICAgICAgICAgICAgICAgaWNvbjogIvCfj5vvuI8iLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJNYXN0ZXIgdGhlIGFydCBvZiBidWlsZGluZyBvcmdhbml6YXRpb25hbCBlbXBpcmVzIHRoYXQgb3V0bGFzdCB5b3UuIFN0cmF0ZWdpYyBsZWFkZXJzaGlwIGZvciBsYXN0aW5nIGxlZ2FjeS4iLAogICAgICAgICAgICAgICAgdXJsOiAiaHR0cHM6Ly9zb3ZlcmVpZ25tb21lbnR1bS5jb20vZW1waXJlLWFyY2hpdGVjdHMiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5hbWU6ICJUd28gSGVhcnRzIiwKICAgICAgICAgICAgICAgIGljb246ICLwn5KcIiwKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQWxpZ24geW91ciBoZWFydCB3aXRoIHlvdXIgYnVzaW5lc3MuIERpc2NvdmVyIHRoZSBiYWxhbmNlIGJldHdlZW4gcGFzc2lvbiBhbmQgcHJvZml0LiIsCiAgICAgICAgICAgICAgICB1cmw6ICJodHRwczovL3NvdmVyZWlnbm1vbWVudHVtLmNvbS90d28taGVhcnRzIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuYW1lOiAiQUkgaW4gMjAyNiIsCiAgICAgICAgICAgICAgICBpY29uOiAi8J+kliIsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIk5hdmlnYXRlIHRoZSBBSSByZXZvbHV0aW9uIHdpdGggaW50ZW50aW9uLiBMZXZlcmFnZSB0ZWNobm9sb2d5IHdpdGhvdXQgbG9zaW5nIHlvdXIgaHVtYW5pdHkuIiwKICAgICAgICAgICAgICAgIHVybDogImh0dHBzOi8vc292ZXJlaWdubW9tZW50dW0uY29tLzIwMjYiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5hbWU6ICJEaWdpdGFsIFNvdmVyZWlnbnR5IiwKICAgICAgICAgICAgICAgIGljb246ICLwn5GRIiwKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiT3duIHlvdXIgZGlnaXRhbCBwcmVzZW5jZS4gQnVpbGQgbWVkaWEgY2hhbm5lbHMgdGhhdCBhbXBsaWZ5IHlvdXIgdm9pY2UgYW5kIHNlY3VyZSB5b3VyIGxlZ2FjeS4iLAogICAgICAgICAgICAgICAgdXJsOiAiaHR0cHM6Ly9zb3ZlcmVpZ25tb21lbnR1bS5jb20vc292ZXJlaWdudHkiCiAgICAgICAgICAgIH0KICAgICAgICBdOwogICAgICAgIAogICAgICAgIGxldCBjdXJyZW50UHJpemUgPSBudWxsOwogICAgICAgIGxldCBzZWxlY3RlZFBvc3R1cmUgPSBudWxsOwogICAgICAgIAogICAgICAgIC8vIFNob3cgUG9zdHVyZSBTZWN0aW9uCiAgICAgICAgZnVuY3Rpb24gc2hvd1Bvc3R1cmVTZWN0aW9uKCkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGV0dGVyU2VjdGlvbicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3N0dXJlU2VjdGlvbicpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gR28gQmFjayB0byBMZXR0ZXIKICAgICAgICBmdW5jdGlvbiBnb0JhY2tUb0xldHRlcigpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bvc3R1cmVTZWN0aW9uJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsZXR0ZXJTZWN0aW9uJykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBTZWxlY3QgUG9zdHVyZQogICAgICAgIGZ1bmN0aW9uIHNlbGVjdFBvc3R1cmUoY2FyZCwgcG9zdHVyZSkgewogICAgICAgICAgICAvLyBSZW1vdmUgc2VsZWN0ZWQgZnJvbSBhbGwgY2FyZHMKICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnBvc3R1cmUtY2FyZCcpLmZvckVhY2goYyA9PiBjLmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJykpOwogICAgICAgICAgICAvLyBBZGQgc2VsZWN0ZWQgdG8gY2xpY2tlZCBjYXJkCiAgICAgICAgICAgIGNhcmQuY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTsKICAgICAgICAgICAgc2VsZWN0ZWRQb3N0dXJlID0gcG9zdHVyZTsKICAgICAgICAgICAgLy8gRW5hYmxlIHByb2NlZWQgYnV0dG9uCiAgICAgICAgICAgIGNvbnN0IHByb2NlZWRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvY2VlZEJ0bicpOwogICAgICAgICAgICBwcm9jZWVkQnRuLnN0eWxlLm9wYWNpdHkgPSAnMSc7CiAgICAgICAgICAgIHByb2NlZWRCdG4uc3R5bGUucG9pbnRlckV2ZW50cyA9ICdhdXRvJzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gU2hvdyBMb3R0ZXJ5IFNlY3Rpb24KICAgICAgICBmdW5jdGlvbiBzaG93TG90dGVyeVNlY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRQb3N0dXJlKSB7CiAgICAgICAgICAgICAgICBhbGVydCgnUGxlYXNlIHNlbGVjdCB5b3VyIGN1cnJlbnQgcG9zdHVyZSBiZWZvcmUgcHJvY2VlZGluZy4nKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9zdHVyZVNlY3Rpb24nKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvdHRlcnlTZWN0aW9uJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBHbyBCYWNrIHRvIFBvc3R1cmUKICAgICAgICBmdW5jdGlvbiBnb0JhY2tUb1Bvc3R1cmUoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb3R0ZXJ5U2VjdGlvbicpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9zdHVyZVNlY3Rpb24nKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIFNob3cgV2hlZWwgU2VjdGlvbgogICAgICAgIGZ1bmN0aW9uIHNob3dXaGVlbFNlY3Rpb24oKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb3R0ZXJ5U2VjdGlvbicpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2hlZWxTZWN0aW9uJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBTaG93IEdhbGxlcnkgU2VjdGlvbgogICAgICAgIGZ1bmN0aW9uIHNob3dHYWxsZXJ5U2VjdGlvbigpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvdHRlcnlTZWN0aW9uJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnYWxsZXJ5U2VjdGlvbicpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gR28gQmFjayB0byBMb3R0ZXJ5CiAgICAgICAgZnVuY3Rpb24gZ29CYWNrVG9Mb3R0ZXJ5KCkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2hlZWxTZWN0aW9uJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnYWxsZXJ5U2VjdGlvbicpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG90dGVyeVNlY3Rpb24nKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIFNwaW4gV2hlZWwKICAgICAgICBsZXQgaXNTcGlubmluZyA9IGZhbHNlOwogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIHNwaW5XaGVlbCgpIHsKICAgICAgICAgICAgaWYgKGlzU3Bpbm5pbmcpIHJldHVybjsKICAgICAgICAgICAgaXNTcGlubmluZyA9IHRydWU7CiAgICAgICAgICAgIAogICAgICAgICAgICBjb25zdCB3aGVlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aGVlbCcpOwogICAgICAgICAgICBjb25zdCBzcGluQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwaW5CdG4nKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIHNwaW5CdG4uZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICBzcGluQnRuLnRleHRDb250ZW50ID0gJ1JldmVhbGluZy4uLic7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBSYW5kb20gcmVzdWx0ICgwLCAxLCAyLCBvciAzKQogICAgICAgICAgICBjb25zdCByZXN1bHQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA0KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSByb3RhdGlvbgogICAgICAgICAgICBjb25zdCBiYXNlUm90YXRpb24gPSAyMTYwOyAvLyA2IGZ1bGwgc3BpbnMKICAgICAgICAgICAgY29uc3Qgc2VnbWVudEFuZ2xlID0gOTA7CiAgICAgICAgICAgIGNvbnN0IHJlc3VsdEFuZ2xlID0gcmVzdWx0ICogc2VnbWVudEFuZ2xlICsgc2VnbWVudEFuZ2xlIC8gMjsKICAgICAgICAgICAgY29uc3QgdG90YWxSb3RhdGlvbiA9IGJhc2VSb3RhdGlvbiArICgzNjAgLSByZXN1bHRBbmdsZSk7CiAgICAgICAgICAgIAogICAgICAgICAgICB3aGVlbC5zdHlsZS50cmFuc2Zvcm0gPSBgcm90YXRlKCR7dG90YWxSb3RhdGlvbn1kZWcpYDsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFNob3cgcmVzdWx0IGFmdGVyIHNwaW4KICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICBzaG93UmVzdWx0KHJlc3VsdCk7CiAgICAgICAgICAgICAgICBpc1NwaW5uaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICBzcGluQnRuLmRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICBzcGluQnRuLnRleHRDb250ZW50ID0gJ1JldmVhbCBZb3VyIFBhdGgnOwogICAgICAgICAgICB9LCA1NTAwKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gU2VsZWN0IERvb3IKICAgICAgICBmdW5jdGlvbiBzZWxlY3REb29yKGluZGV4KSB7CiAgICAgICAgICAgIHNob3dSZXN1bHQoaW5kZXgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBTaG93IFJlc3VsdAogICAgICAgIGZ1bmN0aW9uIHNob3dSZXN1bHQoaW5kZXgpIHsKICAgICAgICAgICAgY3VycmVudFByaXplID0gcHJpemVzW2luZGV4XTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRJY29uJykudGV4dENvbnRlbnQgPSBjdXJyZW50UHJpemUuaWNvbjsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdFRpdGxlJykudGV4dENvbnRlbnQgPSBjdXJyZW50UHJpemUubmFtZTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdERlc2NyaXB0aW9uJykudGV4dENvbnRlbnQgPSBjdXJyZW50UHJpemUuZGVzY3JpcHRpb247CiAgICAgICAgICAgIAogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0TW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEVsZWdhbnQgY29uZmV0dGkKICAgICAgICAgICAgY3JlYXRlQ29uZmV0dGkoKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gT3BlbiBDYXB0dXJlIEZvcm0KICAgICAgICBmdW5jdGlvbiBvcGVuQ2FwdHVyZUZvcm0oKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRNb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FwdHVyZU1vZGFsJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIEZvcm0gU3VibWlzc2lvbgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXB0dXJlRm9ybScpLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIGFzeW5jIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAKICAgICAgICAgICAgY29uc3Qgc3VibWl0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1Ym1pdEJ0bicpOwogICAgICAgICAgICBjb25zdCBmdWxsTmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmdWxsTmFtZScpLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgY29uc3QgZW1haWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW1haWxBZGRyZXNzJykudmFsdWUudHJpbSgpOwogICAgICAgICAgICBjb25zdCBjb3VudHJ5Q29kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb3VudHJ5Q29kZScpLnZhbHVlOwogICAgICAgICAgICBjb25zdCBwaG9uZU51bWJlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwaG9uZU51bWJlcicpLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgY29uc3QgbGlua2VkaW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGlua2VkaW4nKS52YWx1ZS50cmltKCk7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoIWZ1bGxOYW1lIHx8ICFlbWFpbCkgewogICAgICAgICAgICAgICAgYWxlcnQoJ1BsZWFzZSBwcm92aWRlIHlvdXIgbmFtZSBhbmQgZW1haWwgYWRkcmVzcy4nKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgY29uc3QgZnVsbFBob25lID0gcGhvbmVOdW1iZXIgPyBgJHtjb3VudHJ5Q29kZX0gJHtwaG9uZU51bWJlcn1gIDogJ05vdCBwcm92aWRlZCc7CiAgICAgICAgICAgIAogICAgICAgICAgICBzdWJtaXRCdG4uZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICBzdWJtaXRCdG4udGV4dENvbnRlbnQgPSAnUHJvY2Vzc2luZy4uLic7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2FkaW5nT3ZlcmxheScpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gUHJlcGFyZSBmb3JtIGRhdGEKICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdGdWxsX05hbWUnLCBmdWxsTmFtZSk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnRW1haWwnLCBlbWFpbCk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnUGhvbmUnLCBmdWxsUGhvbmUpOwogICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ0xpbmtlZEluJywgbGlua2VkaW4gfHwgJ05vdCBwcm92aWRlZCcpOwogICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1NlbGVjdGVkX1Bvc3R1cmUnLCBzZWxlY3RlZFBvc3R1cmUpOwogICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1Byb2dyYW1fU2VsZWN0ZWQnLCBjdXJyZW50UHJpemUubmFtZSk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnUHJvZ3JhbV9VUkwnLCBjdXJyZW50UHJpemUudXJsKTsKICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdFbnRyeV9UeXBlJywgJ0VsaXRlX0ludml0YXRpb25fUGlvbmVlcicpOwogICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1N1Ym1pc3Npb25fRGF0ZScsIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnX3N1YmplY3QnLCAn8J+Pm++4jyBORVcgRk9VTkRJTkcgUElPTkVFUiAtIEVsaXRlIEludml0YXRpb246ICcgKyBjdXJyZW50UHJpemUubmFtZSk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnX2NhcHRjaGEnLCAnZmFsc2UnKTsKICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdfdGVtcGxhdGUnLCAndGFibGUnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCdodHRwczovL2Zvcm1zdWJtaXQuY28vYWpheC9tdWthc2F2ZW50dXJlcGFydG5lcnNAZ21haWwuY29tJywgewogICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLAogICAgICAgICAgICAgICAgICAgIGJvZHk6IGZvcm1EYXRhCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxvYWRpbmctdGV4dCcpLnRleHRDb250ZW50ID0gJ1dlbGNvbWUsIEFyY2hpdGVjdC4gUmVkaXJlY3RpbmcuLi4nOwogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGN1cnJlbnRQcml6ZS51cmw7CiAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU3VibWlzc2lvbiBmYWlsZWQnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Zvcm0gc3VibWlzc2lvbiBlcnJvcjonLCBlcnJvcik7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubG9hZGluZy10ZXh0JykudGV4dENvbnRlbnQgPSAnUmVkaXJlY3RpbmcgdG8geW91ciBwcm9ncmFtLi4uJzsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gY3VycmVudFByaXplLnVybDsKICAgICAgICAgICAgICAgIH0sIDIwMDApOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgLy8gQ3JlYXRlIENvbmZldHRpIChlbGVnYW50IHZlcnNpb24pCiAgICAgICAgZnVuY3Rpb24gY3JlYXRlQ29uZmV0dGkoKSB7CiAgICAgICAgICAgIGNvbnN0IGNvbG9ycyA9IFsnI2YzYjcwMCcsICcjZDRhZjM3JywgJyMyZDM0MzYnLCAnIzFlM2E1ZiddOwogICAgICAgICAgICBjb25zdCBzaGFwZXMgPSBbJ+KcpicsICfil4YnLCAn4piFJywgJ+KXjyddOwogICAgICAgICAgICAKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0MDsgaSsrKSB7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25mZXR0aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgICAgIGNvbmZldHRpLmNsYXNzTmFtZSA9ICdjb25mZXR0aSc7CiAgICAgICAgICAgICAgICAgICAgY29uZmV0dGkuc3R5bGUubGVmdCA9IE1hdGgucmFuZG9tKCkgKiAxMDAgKyAndncnOwogICAgICAgICAgICAgICAgICAgIGNvbmZldHRpLnN0eWxlLmZvbnRTaXplID0gTWF0aC5yYW5kb20oKSAqIDE1ICsgMTAgKyAncHgnOwogICAgICAgICAgICAgICAgICAgIGNvbmZldHRpLnN0eWxlLmNvbG9yID0gY29sb3JzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNvbG9ycy5sZW5ndGgpXTsKICAgICAgICAgICAgICAgICAgICBjb25mZXR0aS50ZXh0Q29udGVudCA9IHNoYXBlc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBzaGFwZXMubGVuZ3RoKV07CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb25mZXR0aSk7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBjb25mZXR0aS5yZW1vdmUoKSwgNDAwMCk7CiAgICAgICAgICAgICAgICB9LCBpICogNTApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==","embed":""}
An Invitation | The Sovereign Architects Initiative
SA
The Sovereign Architects Initiative

"I Am A Quiet Builder.
You Are The Voice Africa Needs."

Your contribution has been on my radar for over a year.

Dear Esteemed Colleague,

I am a quiet builder.

While you've been commanding stages, growing communities, and shaping narratives, I've been in the background—watching, documenting, and building infrastructure for moments exactly like this.

Your contribution to the African voice—the authority and respect you've cultivated on and beyond LinkedIn—has been on my radar for over a year. Yes, a year. Because I am extraordinarily intentional about who I reach out to.

You see, I'm not interested in mere influencers who rise and fade with algorithms. I'm interested in Architects—those who are building something that will outlast trending hashtags.

What you have built is worth more than followers. It deserves a permanent voice in the digital landscape—not just within your community, but across East Africa and beyond. Your expertise and wisdom need to be shared with today's founders and emerging leaders who are hungry for African exemplars—not Western templates.

I want to do three things:

1. RECOGNIZE what I see and deeply value in your work
2. DOCUMENT your expertise in our anthology for future generations
3. AMPLIFY your voice, wisdom, and contribution to the Africa narrative that the world needs to respect and showcase

This is not a sales pitch. This is not mass outreach. This is an invitation to be part of something being built with intention, precision, and a long-term vision for African excellence.

If this resonates, I invite you to continue below.

This invitation was crafted specifically for you.

With deep respect,

The Sovereign Architects

Sovereign Architects Media

"Building quietly. Amplifying intentionally."

If this resonates with your vision...

Your Current Posture

Select the statement that best reflects where you are in your journey

🔍

Evaluating

"I'm assessing whether this aligns with my current priorities and strategic direction."

→ You value due diligence. We respect that.

🎯

Engaged

"I'm actively considering how strategic amplification could serve my broader mission."

→ You see the potential. Let's explore it.

⚡

Decisive

"I'm ready to proceed with intentional action toward greater visibility and impact."

→ You're ready to move. We're ready to build.

👑

Visionary

"I'm building legacy. I want my expertise documented and amplified for generations."

→ You understand the long game. Welcome, Architect.

Select Your Path

Choose how you'd like to discover which strategic program aligns with your journey

🎯

Let Destiny Decide

Spin the wheel and allow fate to reveal your path

🚪

Choose Your Door

Select deliberately from four strategic programs

▼
2026
Empire Hearts AI Era Sovereign

Four Doors, Four Destinies

Select the program that calls to you

I
Empire Architects
II
Two Hearts
III
AI in 2026
IV
Digital Sovereignty

Your Path Has Been Revealed

🏛️

Welcome, Architect

Complete your registration to secure your founding pioneer status

Preparing your welcome...

"Building quietly. Amplifying intentionally."

SOVEREIGN ARCHITECTS MEDIA

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

warning