cropper

SOVEREIGN MOMENTUM DIGITAL ARCHITECTS

cropper
  • 2026 Architects
  • 2026 Declaration
  • 2026 Destiny
  • 2026 Redcarpet
  • 2026 Programs
  • 2026 Honoured
  • 2026 Perspective
  • 2026 Compass
  • 2026 Portfolio
  • 2026 Summons
  • 2026 Authoress
{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gU0VPIE1FVEEgVEFHUyAtLT4KICAgIDx0aXRsZT5MZWdhY3kgQXJjaGl0ZWN0cyB8IFRoZSBTb3ZlcmVpZ24gQXJjaGl0ZWN0cyBDb25zb3J0aXVtPC90aXRsZT4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJFbXBvd2VyaW5nIEFmcmljYW4gYW5kIGRpYXNwb3JhIGxlYWRlcnMgdGhyb3VnaCB0cmFuc2Zvcm1hdGl2ZSBlZHVjYXRpb24uIENob29zZSB5b3VyIHBhdGg6IE5haGxhIE5hbGEgTWV0aG9kIChXb21lbiksIFNpbWJhIE1ldGhvZCAoTWVuKSwgVHdvIEhlYXJ0cyBQcm90b2NvbCAoRGlhc3BvcmEpLCBvciBTb3ZlcmVpZ24gRXhlY3V0aXZlIEJsdWVwcmludCAoQy1TdWl0ZSkuIj4KICAgIDxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJwYW4tYWZyaWNhbiBlbXBvd2VybWVudCwgYWZyaWNhbiBlbnRyZXByZW5ldXJzLCBkaWFzcG9yYSBsZWFkZXJzLCBzZWxmLWVtcG93ZXJtZW50IGVkdWNhdGlvbiwgc292ZXJlaWduIGxlYWRlcnNoaXAsIHdvbWVuIGVudHJlcHJlbmV1cnMgYWZyaWNhLCBleGVjdXRpdmUgY29hY2hpbmciPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJUYXdxYSBOLiBNdWthc2EgfiBTb3ZlcmVpZ24gQXJjaGl0ZWN0cyBNb21lbnR1bSBNZWRpYSI+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9ImluZGV4LCBmb2xsb3ciPgogICAgCiAgICA8IS0tIE9QRU4gR1JBUEggLS0+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0id2Vic2l0ZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL3NvdmVyZWlnbm1vbWVudHVtLmNvbS9sZWdhY3ktYXJjaGl0ZWN0cyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkxlZ2FjeSBBcmNoaXRlY3RzIHwgVGhlIFNvdmVyZWlnbiBBcmNoaXRlY3RzIENvbnNvcnRpdW0iPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJFbXBvd2VyaW5nIEFmcmljYW4gYW5kIGRpYXNwb3JhIGxlYWRlcnMgdGhyb3VnaCB0cmFuc2Zvcm1hdGl2ZSBlZHVjYXRpb24uIENob29zZSB5b3VyIHNvdmVyZWlnbiBwYXRoLiI+CiAgICAKICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Q2luemVsOndnaHRANjAwOzcwMDs4MDA7OTAwJmZhbWlseT1JbnRlcjp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDA7ODAwOzkwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgICAKICAgIDxzdHlsZT4KICAgICAgICA6cm9vdCB7CiAgICAgICAgICAgIC0tbWlkbmlnaHQtYmx1ZTogIzBhMTYyODsKICAgICAgICAgICAgLS1kZWVwLW1pZG5pZ2h0OiAjMDYxMDFmOwogICAgICAgICAgICAtLXNvdmVyZWlnbi1nb2xkOiAjZjNiNzAwOwogICAgICAgICAgICAtLWJyaWdodC1nb2xkOiAjRkZENzAwOwogICAgICAgICAgICAtLWxpZ2h0LWdvbGQ6ICNmNGU0YmM7CiAgICAgICAgICAgIC0td2hpdGU6ICNGRkZGRkY7CiAgICAgICAgICAgIC0tc29mdC1pdm9yeTogI2ZhZjlmNjsKICAgICAgICAgICAgLS1ibGFjazogIzBBMEEwQTsKICAgICAgICB9CgogICAgICAgICogewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW1pZG5pZ2h0LWJsdWUpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC8qIEhFUk8gU0VDVElPTiAqLwogICAgICAgIC5oZXJvIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZGVlcC1taWRuaWdodCkgMCUsIHZhcigtLW1pZG5pZ2h0LWJsdWUpIDEwMCUpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICAgICAgICBwYWRkaW5nOiA2cmVtIDJyZW0gNHJlbTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAuaGVybzo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAtNTAlOwogICAgICAgICAgICBsZWZ0OiAtNTAlOwogICAgICAgICAgICB3aWR0aDogMjAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAyMDAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCkgMCUsIHRyYW5zcGFyZW50IDcwJSk7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuMDg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcm90YXRlIDI1cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHJvdGF0ZSB7CiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5oZXJvOjphZnRlciB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyNDMsMTgzLDAsMC4wOCksIHRyYW5zcGFyZW50KTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBzaGltbWVyIDRzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzaGltbWVyIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfQogICAgICAgIH0KCiAgICAgICAgLmhlcm8tY29udGVudCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMjsKICAgICAgICAgICAgbWF4LXdpZHRoOiAxMTAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmNyb3duLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDZyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICAgICAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMzBweCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCkpOwogICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWdsb3cgMi41cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBwdWxzZS1nbG93IHsKICAgICAgICAgICAgMCUsIDEwMCUgewogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDMwcHggdmFyKC0tc292ZXJlaWduLWdvbGQpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICA1MCUgewogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTsKICAgICAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDYwcHggdmFyKC0tc292ZXJlaWduLWdvbGQpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmhlcm8gaDEgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDIuNXJlbSwgN3Z3LCA1LjVyZW0pOwogICAgICAgICAgICBmb250LXdlaWdodDogOTAwOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtOwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogM3B4IDNweCAxMnB4IHJnYmEoMCwwLDAsMC41KTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5VcCAxcyBlYXNlLW91dDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICB9CgogICAgICAgIC5oZXJvIGgxIC5nb2xkIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgZmFkZUluVXAgewogICAgICAgICAgICBmcm9tIHsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdG8gewogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmhlcm8gLnRhZ2xpbmUgewogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuM3JlbSwgMy41dncsIDJyZW0pOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07CiAgICAgICAgICAgIG9wYWNpdHk6IDAuOTU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZS1vdXQgMC4zcyBiYWNrd2FyZHM7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgfQoKICAgICAgICAuZGl2aWRlciB7CiAgICAgICAgICAgIHdpZHRoOiAxNTBweDsKICAgICAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHZhcigtLXNvdmVyZWlnbi1nb2xkKSwgdHJhbnNwYXJlbnQpOwogICAgICAgICAgICBtYXJnaW46IDIuNXJlbSBhdXRvOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2Utb3V0IDAuNXMgYmFja3dhcmRzOwogICAgICAgIH0KCiAgICAgICAgLmhlcm8gLm1pc3Npb24gewogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuMXJlbSwgMi41dncsIDEuNXJlbSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjk7CiAgICAgICAgICAgIG1heC13aWR0aDogOTUwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICBvcGFjaXR5OiAwLjk1OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2Utb3V0IDAuN3MgYmFja3dhcmRzOwogICAgICAgICAgICBmb250LXdlaWdodDogMzAwOwogICAgICAgIH0KCiAgICAgICAgLyogVklERU8gU0VDVElPTiAqLwogICAgICAgIC52aWRlby1zZWN0aW9uIHsKICAgICAgICAgICAgcGFkZGluZzogNHJlbSAycmVtOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVwLW1pZG5pZ2h0KTsKICAgICAgICB9CgogICAgICAgIC52aWRlby1jb250YWluZXIgewogICAgICAgICAgICBtYXgtd2lkdGg6IDEwMDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLW1pZG5pZ2h0LWJsdWUpLCB2YXIoLS1kZWVwLW1pZG5pZ2h0KSk7CiAgICAgICAgICAgIGJvcmRlcjogNXB4IHNvbGlkIHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgcGFkZGluZzogMnJlbTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzMHB4IDgwcHggcmdiYSgyNDMsIDE4MywgMCwgMC4yKTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmbG9hdCA0cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgZmxvYXQgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpOyB9CiAgICAgICAgfQoKICAgICAgICAudmlkZW8tcGxhY2Vob2xkZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDAsMCwwLDAuNCksIHJnYmEoMCwwLDAsMC42KSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7CiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMTYvOTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAudmlkZW8tcGxhY2Vob2xkZXI6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICfilrYnOwogICAgICAgICAgICBmb250LXNpemU6IDRyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDAuODsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMik7IG9wYWNpdHk6IDE7IH0KICAgICAgICB9CgogICAgICAgIC8qIEZBQ1RPSUQgUE9XRVIgU0VDVElPTiAqLwogICAgICAgIC5mYWN0b2lkLXBvd2VyLXNlY3Rpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1ibGFjaykgMCUsICMwZDFhMmQgMTAwJSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDVyZW0gMnJlbTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgIH0KCiAgICAgICAgLmZhY3RvaWQtcG93ZXItc2VjdGlvbjo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSA1MCUsIHZhcigtLXNvdmVyZWlnbi1nb2xkKSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgICAgICAgICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4MCUgNTAlLCB2YXIoLS1taWRuaWdodC1ibHVlKSAwJSwgdHJhbnNwYXJlbnQgNTAlKTsKICAgICAgICAgICAgb3BhY2l0eTogMC4wNjsKICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1iZyA2cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgcHVsc2UtYmcgewogICAgICAgICAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuMDY7IH0KICAgICAgICAgICAgNTAlIHsgb3BhY2l0eTogMC4xMjsgfQogICAgICAgIH0KCiAgICAgICAgLmZhY3RvaWQtY29udGFpbmVyIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgfQoKICAgICAgICAuZmFjdG9pZC1oZWFkZXIgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07CiAgICAgICAgfQoKICAgICAgICAuZmFjdG9pZC1oZWFkZXIgaDIgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDV2dywgMy41cmVtKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAzMHB4IHJnYmEoMjQzLCAxODMsIDAsIDAuNSk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgfQoKICAgICAgICAuZmFjdG9pZC1oZWFkZXIgcCB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMXJlbSwgMnZ3LCAxLjNyZW0pOwogICAgICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgICAgfQoKICAgICAgICAuZmFjdG9pZC1kaXNwbGF5IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKTsKICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwogICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDRyZW0gM3JlbTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5mYWN0b2lkLWl0ZW0gewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiAwIDNyZW07CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuZmFjdG9pZC1pdGVtLmFjdGl2ZSB7CiAgICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLmZhY3RvaWQtaXRlbSAuaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy41cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLmZhY3RvaWQtaXRlbSAudGV4dCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS40cmVtLCAzdncsIDIuMnJlbSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAycHggMnB4IDhweCByZ2JhKDAsMCwwLDAuNSk7CiAgICAgICAgfQoKICAgICAgICAuZmFjdG9pZC1pdGVtIC5oaWdobGlnaHQgewogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIH0KCiAgICAgICAgLmZhY3RvaWQtZG90cyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDFyZW07CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNyZW07CiAgICAgICAgfQoKICAgICAgICAuZG90IHsKICAgICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0MywgMTgzLCAwLCAwLjMpOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuZG90LmFjdGl2ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMjBweCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgfQoKICAgICAgICAvKiBDT05UQUlORVIgKi8KICAgICAgICAuY29udGFpbmVyIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICBwYWRkaW5nOiAwIDJyZW07CiAgICAgICAgfQoKICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDVyZW0gMDsKICAgICAgICB9CgogICAgICAgIC5zZWN0aW9uLWxpZ2h0IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbWlkbmlnaHQtYmx1ZSkgMCUsICMwZDFhMmQgMTAwJSk7CiAgICAgICAgfQoKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNHZ3LCAzLjVyZW0pOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICAgICAgfQoKICAgICAgICAuc2VjdGlvbi1zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMXJlbSwgMnZ3LCAxLjNyZW0pOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgICAgICAgb3BhY2l0eTogMC45OwogICAgICAgIH0KCiAgICAgICAgLyogUElMTEFSIENBUkRTICovCiAgICAgICAgLnBpbGxhcnMtZ3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDIuNXJlbTsKICAgICAgICAgICAgbWFyZ2luOiAzcmVtIDA7CiAgICAgICAgfQoKICAgICAgICAucGlsbGFyLWNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1kZWVwLW1pZG5pZ2h0KSAwJSwgdmFyKC0tbWlkbmlnaHQtYmx1ZSkgMTAwJSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gMnJlbTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLnBpbGxhci1jYXJkOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IC0xMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI0MywxODMsMCwwLjE1KSwgdHJhbnNwYXJlbnQpOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuNnMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5waWxsYXItY2FyZDpob3Zlcjo6YmVmb3JlIHsKICAgICAgICAgICAgbGVmdDogMTAwJTsKICAgICAgICB9CgogICAgICAgIC5waWxsYXItY2FyZDpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCkgc2NhbGUoMS4wMyk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMjVweCA2MHB4IHJnYmEoMjQzLDE4MywwLDAuMyk7CiAgICAgICAgICAgIGJvcmRlci13aWR0aDogNXB4OwogICAgICAgIH0KCiAgICAgICAgLnBpbGxhci1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnBpbGxhci1jYXJkOmhvdmVyIC5waWxsYXItaWNvbiB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKSByb3RhdGUoNWRlZyk7CiAgICAgICAgfQoKICAgICAgICAucGlsbGFyLWNhcmQgaDMgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgICAgICB9CgogICAgICAgIC5waWxsYXItY2FyZCAuYXVkaWVuY2UgewogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1saWdodC1nb2xkKTsKICAgICAgICB9CgogICAgICAgIC5waWxsYXItY2FyZCBwIHsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgICAgICAgICAgb3BhY2l0eTogMC45NTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogICAgICAgIH0KCiAgICAgICAgLnBpbGxhci1jdGEgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW1pZG5pZ2h0LWJsdWUpOwogICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMnJlbTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnBpbGxhci1jdGE6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMjQzLDE4MywwLDAuNSk7CiAgICAgICAgfQoKICAgICAgICAuY29taW5nLXNvb24tYmFkZ2UgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQzLCAxODMsIDAsIDAuMik7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIHBhZGRpbmc6IDAuNHJlbSAxcmVtOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICB9CgogICAgICAgIC8qIE1FRElBIEVNUElSRSAqLwogICAgICAgIC5tZWRpYS1lbXBpcmUgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1kZWVwLW1pZG5pZ2h0KSAwJSwgdmFyKC0tbWlkbmlnaHQtYmx1ZSkgMTAwJSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDVyZW0gMnJlbTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLm1lZGlhLWVtcGlyZTo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAtNTAlOwogICAgICAgICAgICByaWdodDogLTUwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tc292ZXJlaWduLWdvbGQpIDAlLCB0cmFuc3BhcmVudCA3MCUpOwogICAgICAgICAgICBvcGFjaXR5OiAwLjA0OwogICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLXNsb3cgNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHB1bHNlLXNsb3cgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9CiAgICAgICAgfQoKICAgICAgICAubWVkaWEtZ3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjUwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDJyZW07CiAgICAgICAgICAgIG1hcmdpbjogM3JlbSAwOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgfQoKICAgICAgICAubWVkaWEtY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7CiAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAycmVtOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAubWVkaWEtY2FyZDpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQzLCAxODMsIDAsIDAuMSk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSgyNDMsMTgzLDAsMC4yKTsKICAgICAgICB9CgogICAgICAgIC5tZWRpYS1jYXJkIGg0IHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuOHJlbTsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICB9CgogICAgICAgIC5tZWRpYS1jYXJkIHAgewogICAgICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgICB9CgogICAgICAgIC5tZWRpYS1saW5rIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLm1lZGlhLWxpbms6aG92ZXIgewogICAgICAgICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICB9CgogICAgICAgIC8qIEVNQUlMIENBUFRVUkUgKi8KICAgICAgICAuZW1haWwtc2VjdGlvbiB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNvdmVyZWlnbi1nb2xkKSAwJSwgI2Q0YTAwMCAxMDAlKTsKICAgICAgICAgICAgcGFkZGluZzogNXJlbSAycmVtOwogICAgICAgIH0KCiAgICAgICAgLmVtYWlsLWNhcmQgewogICAgICAgICAgICBtYXgtd2lkdGg6IDcwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmVtYWlsLWNhcmQgaDIgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgM3JlbSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1taWRuaWdodC1ibHVlKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgICAgICB9CgogICAgICAgIC5lbWFpbC1jYXJkIHAgewogICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW1pZG5pZ2h0LWJsdWUpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS44OwogICAgICAgIH0KCiAgICAgICAgLmVtYWlsLWZvcm0gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDFyZW07CiAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQoKICAgICAgICAuZW1haWwtaW5wdXQgewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgICBtaW4td2lkdGg6IDI1MHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxLjJyZW0gMS41cmVtOwogICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1taWRuaWdodC1ibHVlKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmVtYWlsLWJ1dHRvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDEuMnJlbSAzcmVtOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1kZWVwLW1pZG5pZ2h0KSwgdmFyKC0tbWlkbmlnaHQtYmx1ZSkpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuZW1haWwtYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDEwLDIyLDQwLDAuNCk7CiAgICAgICAgfQoKICAgICAgICAvKiBGT1VOREVSIEJBREdFIFNFQ1RJT04gKi8KICAgICAgICAuZm91bmRlci1zZWN0aW9uIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcC1taWRuaWdodCk7CiAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gMnJlbTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgyNDMsIDE4MywgMCwgMC4yKTsKICAgICAgICB9CgogICAgICAgIC5mb3VuZGVyLWJhZGdlLWNvbnRhaW5lciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDNyZW07CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CgogICAgICAgIC5mb3VuZGVyLWJhZGdlIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMC41cmVtOwogICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDJyZW07CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQzLCAxODMsIDAsIDAuMSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuZm91bmRlci1iYWRnZTpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW1pZG5pZ2h0LWJsdWUpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMjQzLCAxODMsIDAsIDAuMyk7CiAgICAgICAgfQoKICAgICAgICAvKiBGT09URVIgKi8KICAgICAgICAuZm9vdGVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZGVlcC1taWRuaWdodCkgMCUsIHZhcigtLW1pZG5pZ2h0LWJsdWUpIDEwMCUpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICAgICAgICBwYWRkaW5nOiAzcmVtIDJyZW07CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkIHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICB9CgogICAgICAgIC5mb290ZXItY29udGVudCB7CiAgICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIC5mb290ZXItYnJhbmQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOwogICAgICAgIH0KCiAgICAgICAgLmZvb3Rlci10YWdsaW5lIHsKICAgICAgICAgICAgb3BhY2l0eTogMC45OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgfQoKICAgICAgICAuZm9vdGVyLWxpbmtzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMnJlbTsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgICBtYXJnaW46IDJyZW0gMDsKICAgICAgICB9CgogICAgICAgIC5mb290ZXItbGlua3MgYSB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5mb290ZXItbGlua3MgYTpob3ZlciB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICAgIH0KCiAgICAgICAgLmZvb3Rlci1jb250YWN0IHsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTsKICAgICAgICAgICAgb3BhY2l0eTogMC45OwogICAgICAgIH0KCiAgICAgICAgLmZvb3Rlci1jb250YWN0IGEgewogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuZm9vdGVyLWNvcHlyaWdodCB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgfQoKICAgICAgICAvKiBTQ1JPTEwgQU5JTUFUSU9OUyAqLwogICAgICAgIC5zY3JvbGwtcmV2ZWFsIHsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC44cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnNjcm9sbC1yZXZlYWwuYWN0aXZlIHsKICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KCiAgICAgICAgLyogTU9CSUxFIFJFU1BPTlNJVkUgKi8KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgICAgLmhlcm8gewogICAgICAgICAgICAgICAgcGFkZGluZzogNHJlbSAxLjVyZW0gM3JlbTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLnZpZGVvLXNlY3Rpb24gewogICAgICAgICAgICAgICAgcGFkZGluZzogM3JlbSAxLjVyZW07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC52aWRlby1jb250YWluZXIgewogICAgICAgICAgICAgICAgcGFkZGluZzogMS41cmVtOwogICAgICAgICAgICB9CgogICAgICAgICAgICAuZmFjdG9pZC1wb3dlci1zZWN0aW9uIHsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gMS41cmVtOwogICAgICAgICAgICB9CgogICAgICAgICAgICAuZmFjdG9pZC1kaXNwbGF5IHsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIuNXJlbSAxLjVyZW07CiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAyNTBweDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLmZhY3RvaWQtaXRlbSB7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDFyZW07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5mYWN0b2lkLWl0ZW0gLnRleHQgewogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5waWxsYXJzLWdyaWQsCiAgICAgICAgICAgIC5tZWRpYS1ncmlkIHsKICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAuZW1haWwtZm9ybSB7CiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAuZW1haWwtaW5wdXQsCiAgICAgICAgICAgIC5lbWFpbC1idXR0b24gewogICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5mb3VuZGVyLWJhZGdlLWNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBnYXA6IDEuNXJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgICA8IS0tIEhFUk8gU0VDVElPTiAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJoZXJvIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZXJvLWNvbnRlbnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcm93bi1pY29uIj7wn5GRPC9kaXY+CiAgICAgICAgICAgIDxoMT5XRUxDT01FIFRPIFRIRTxicj48c3BhbiBjbGFzcz0iZ29sZCI+QVJDSElURUNUUyBDT05TT1JUSVVNPC9zcGFuPjwvaDE+CiAgICAgICAgICAgIDxwIGNsYXNzPSJ0YWdsaW5lIj5MaWZldGltZSBTZWxmLUVtcG93ZXJtZW50IEVkdWNhdGlvbiBmb3IgQWZyaWNhbiAmIERpYXNwb3JhIEV4Y2VsbGVuY2U8L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpdmlkZXIiPjwvZGl2PgogICAgICAgICAgICA8cCBjbGFzcz0ibWlzc2lvbiI+CiAgICAgICAgICAgICAgICBXZSBhcmNoaXRlY3QgdHJhbnNmb3JtYXRpb24sIG5vdCB0cmFuc2FjdGlvbnMuIFdoZXRoZXIgeW91IGFyZSBhIHdvbWFuIGVudHJlcHJlbmV1ciBjbGFpbWluZyB5b3VyIHNvdmVyZWlnbnR5LCBhIG1hbiBidWlsZGluZyBsZWdhY3ksIGEgZGlhc3BvcmEgbGVhZGVyIGJyaWRnaW5nIHR3byB3b3JsZHMsIG9yIGFuIGV4ZWN1dGl2ZSBjb21tYW5kaW5nIHRoZSBib2FyZHJvb20gfiB5b3VyIHBhdGggdG8gbWFzdGVyeSBiZWdpbnMgaGVyZS4KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgIDwhLS0gVklERU8gU0VDVElPTiAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJ2aWRlby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ2aWRlby1jb250YWluZXIiPgogICAgICAgICAgICA8IS0tIElOU0VSVCBZT1VSIENVU1RPTSBWSURFTyBQTEFZRVIgQ09ERSBIRVJFIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWRlby1wbGFjZWhvbGRlciI+CiAgICAgICAgICAgICAgICBZb3VyIFdlbGNvbWUgVmlkZW8gV2lsbCBBcHBlYXIgSGVyZQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPCEtLSBFTkQgVklERU8gUExBWUVSIENPREUgLS0+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPCEtLSBGQUNUT0lEIFBPV0VSIFRJTEUgLS0+CiAgICA8c2VjdGlvbiBjbGFzcz0iZmFjdG9pZC1wb3dlci1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmYWN0b2lkLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3RvaWQtaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5EaWQgWW91IEtub3c/PC9oMj4KICAgICAgICAgICAgICAgIDxwPkVzc2VudGlhbCBpbnNpZ2h0cyBmb3IgQWZyaWNhbiAmIGRpYXNwb3JhIFZpc2lvbmFyeSBBcmNoaXRlY3RzPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3RvaWQtZGlzcGxheSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYWN0b2lkLWl0ZW0gYWN0aXZlIiBkYXRhLWluZGV4PSIwIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiI+8J+Tijwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dCI+PHNwYW4gY2xhc3M9ImhpZ2hsaWdodCI+NzMlPC9zcGFuPiBvZiBkaWFzcG9yYSBlbnRyZXByZW5ldXJzIGZlZWwgbGlrZSBvdXRzaWRlcnMgaW4gYm90aCB0aGVpciBhZG9wdGVkIGNvdW50cnkgYW5kIHRoZWlyIG1vdGhlcmxhbmQ8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYWN0b2lkLWl0ZW0iIGRhdGEtaW5kZXg9IjEiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7wn5qAPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0Ij5BZnJpY2FuIGJ1c2luZXNzZXMgd2l0aCA8c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij5zdHJvbmcgcmVsYXRpb25hbCBuZXR3b3Jrczwvc3Bhbj4gZ3JvdyA8c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij4zeCBmYXN0ZXI8L3NwYW4+IHRoYW4gdHJhbnNhY3Rpb24tZm9jdXNlZCBjb21wZXRpdG9yczwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3RvaWQtaXRlbSIgZGF0YS1pbmRleD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24iPvCfko48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQiPjxzcGFuIGNsYXNzPSJoaWdobGlnaHQiPkN1bHR1cmFsIEN1cnJlbmN54oSiPC9zcGFuPiBpcyB0aGUgbnVtYmVyIG9uZSB1bi1jb3B5YWJsZSBjb21wZXRpdGl2ZSBhZHZhbnRhZ2UgaW4gcGFuLUFmcmljYW4gbWFya2V0czwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3RvaWQtaXRlbSIgZGF0YS1pbmRleD0iMyI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24iPvCfkZE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQiPldvbWVuIGVudHJlcHJlbmV1cnMgaW4gQWZyaWNhIHJlaW52ZXN0IDxzcGFuIGNsYXNzPSJoaWdobGlnaHQiPjkwJTwvc3Bhbj4gb2YgZWFybmluZ3MgaW50byB0aGVpciBjb21tdW5pdGllcyB2cy4gPHNwYW4gY2xhc3M9ImhpZ2hsaWdodCI+MzUlPC9zcGFuPiBmb3IgbWVuPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmFjdG9pZC1pdGVtIiBkYXRhLWluZGV4PSI0Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiI+8J+knTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dCI+VGhlIDxzcGFuIGNsYXNzPSJoaWdobGlnaHQiPk1WUjwvc3Bhbj4gKE1pbmltdW0gVmlhYmxlIFJlbGF0aW9uc2hpcCkgbXVzdCBiZSBidWlsdCBiZWZvcmUgdGhlIE1WUCAoTWluaW11bSBWaWFibGUgUHJvZHVjdCk8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYWN0b2lkLWl0ZW0iIGRhdGEtaW5kZXg9IjUiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7wn4yNPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0Ij48c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij5Qcm94aW1pdHkgYmVhdHMgY2FwaXRhbDo8L3NwYW4+IE9uLXRoZS1ncm91bmQgZm91bmRlcnMgc2VjdXJlIHBhcnRuZXJzaGlwcyA8c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij42NSUgZmFzdGVyPC9zcGFuPiB0aGFuIHJlbW90ZSBpbnZlc3RvcnM8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYWN0b2lkLWl0ZW0iIGRhdGEtaW5kZXg9IjYiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7wn4+b77iPPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0Ij48c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij5SZWxhdGlvbmFsIG1vYXRzPC9zcGFuPiBjYW5ub3QgYmUgY29waWVkLCBjbG9uZWQsIG9yIGRpc3J1cHRlZCB+IG1ha2luZyB0aGVtIHRoZSB1bHRpbWF0ZSBjb21wZXRpdGl2ZSBhZHZhbnRhZ2U8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYWN0b2lkLWl0ZW0iIGRhdGEtaW5kZXg9IjciPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7wn5KrPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0Ij5UaGUgPHNwYW4gY2xhc3M9ImhpZ2hsaWdodCI+VHdvLUhlYXJ0ZWQgYWR2YW50YWdlOjwvc3Bhbj4gTmF0aXZlIHRyYW5zbGF0b3JzIGJldHdlZW4gd29ybGRzIGNyZWF0ZSBicmlkZ2VzIGNvbXBldGl0b3JzIGNhbm5vdCBjcm9zczwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3RvaWQtaXRlbSIgZGF0YS1pbmRleD0iOCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24iPuKcqDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dCI+PHNwYW4gY2xhc3M9ImhpZ2hsaWdodCI+RGlnaXRhbCBzb3ZlcmVpZ250eTwvc3Bhbj4gbWVhbnMgb3duaW5nIHlvdXIgcGxhdGZvcm0sIG5vdCByZW50aW5nIHNvbWVvbmUgZWxzZSdzIGRpc3RyaWJ1dGlvbjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhY3RvaWQtaXRlbSIgZGF0YS1pbmRleD0iOSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24iPvCfjq88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQiPkxlZ2FjeSBpcyBub3QgYnVpbHQgaW4gdHJhbnNhY3Rpb25zLiBJdCBpcyA8c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij5hcmNoaXRlY3RlZCB0aHJvdWdoIHJlbGF0aW9uc2hpcHMsPC9zcGFuPiBvbmUgY29ubmVjdGlvbiBhdCBhIHRpbWU8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYWN0b2lkLWRvdHMiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvdCBhY3RpdmUiIGRhdGEtaW5kZXg9IjAiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb3QiIGRhdGEtaW5kZXg9IjEiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb3QiIGRhdGEtaW5kZXg9IjIiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb3QiIGRhdGEtaW5kZXg9IjMiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb3QiIGRhdGEtaW5kZXg9IjQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb3QiIGRhdGEtaW5kZXg9IjUiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb3QiIGRhdGEtaW5kZXg9IjYiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb3QiIGRhdGEtaW5kZXg9IjciPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb3QiIGRhdGEtaW5kZXg9IjgiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb3QiIGRhdGEtaW5kZXg9IjkiPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPCEtLSBDSE9PU0UgWU9VUiBNRVRIT0QgLS0+CiAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBzZWN0aW9uLWxpZ2h0IGNvbnRhaW5lciI+CiAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIHNjcm9sbC1yZXZlYWwiPkNob29zZSBZb3VyIFNvdmVyZWlnbiBQYXRoPC9oMj4KICAgICAgICA8cCBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSBzY3JvbGwtcmV2ZWFsIj5TaXggdHJhbnNmb3JtYXRpdmUgbWV0aG9kcyBkZXNpZ25lZCBmb3IgeW91ciB1bmlxdWUgam91cm5leS4gU2VsZWN0IHRoZSBwYXRoIHRoYXQgaG9ub3VycyB3aG8geW91IGFyZSBhbmQgd2hlcmUgeW91IGFyZSBnb2luZy48L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0icGlsbGFycy1ncmlkIj4KICAgICAgICAgICAgPCEtLSBOQUhMQSBOQUxBIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItY2FyZCBzY3JvbGwtcmV2ZWFsIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWxsYXItaWNvbiI+8J+RkTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxoMz5OYWhsYSBOYWxhIE1ldGhvZOKEojwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iYXVkaWVuY2UiPkZvciBXb21lbiBFbnRyZXByZW5ldXJzICYgTGVhZGVyczwvcD4KICAgICAgICAgICAgICAgIDxwPkNsYWltIHlvdXIgZmVtaW5pbmUgc292ZXJlaWdudHkuIE1hc3RlciB0aGUgYXJ0IG9mIG51cnR1cmluZyBwb3dlciwgYnVpbGRpbmcgc2lzdGVyaG9vZCBlY29ub21pZXMsIGFuZCBsZWFkaW5nIHdpdGggZ3JhY2UgYW5kIGdyaXQuPC9wPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3dhaXRsaXN0IiBjbGFzcz0icGlsbGFyLWN0YSIgZGF0YS1wcm9ncmFtPSJuYWhsYS1uYWxhIj5MZWFybiBNb3JlIOKGkjwvYT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIFNJTUJBIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItY2FyZCBzY3JvbGwtcmV2ZWFsIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWxsYXItaWNvbiI+8J+mgTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxoMz5TaW1iYSBNZXRob2TihKI8L2gzPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImF1ZGllbmNlIj5Gb3IgTWVuIEVudHJlcHJlbmV1cnMgJiBMZWFkZXJzPC9wPgogICAgICAgICAgICAgICAgPHA+QnVpbGQgeW91ciB3YXJyaW9yIGxlZ2FjeS4gTWFzdGVyIG1hc2N1bGluZSBsZWFkZXJzaGlwLCBicm90aGVyaG9vZCBuZXR3b3JrcywgYW5kIHRoZSBjb3VyYWdlIHRvIGFyY2hpdGVjdCBnZW5lcmF0aW9uYWwgd2VhbHRoLjwvcD4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiN3YWl0bGlzdCIgY2xhc3M9InBpbGxhci1jdGEiIGRhdGEtcHJvZ3JhbT0ic2ltYmEiPkxlYXJuIE1vcmUg4oaSPC9hPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gVFdPIEhFQVJUUyAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlsbGFyLWNhcmQgc2Nyb2xsLXJldmVhbCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlsbGFyLWljb24iPvCfko48L3NwYW4+CiAgICAgICAgICAgICAgICA8aDM+VHdvIEhlYXJ0cyBQcm90b2NvbOKEojwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iYXVkaWVuY2UiPkZvciBEaWFzcG9yYSAmIEJyaWRnZS1CdWlsZGVyczwvcD4KICAgICAgICAgICAgICAgIDxwPlRyYW5zZm9ybSB5b3VyIGR1YWwgaWRlbnRpdHkgaW50byBkb21pbmFuY2UuIE1hc3RlciBjdWx0dXJhbCBmbHVlbmN5LCBidWlsZCB5b3VyIHJlbGF0aW9uYWwgbW9hdCwgYW5kIGJyaWRnZSB0d28gd29ybGRzIHdpdGggc292ZXJlaWdudHkuPC9wPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3dhaXRsaXN0IiBjbGFzcz0icGlsbGFyLWN0YSIgZGF0YS1wcm9ncmFtPSJ0d28taGVhcnRzIj5MZWFybiBNb3JlIOKGkjwvYT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIFNPVkVSRUlHTiBFWEVDVVRJVkUgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxhci1jYXJkIHNjcm9sbC1yZXZlYWwiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpbGxhci1pY29uIj7wn4+b77iPPC9zcGFuPgogICAgICAgICAgICAgICAgPGgzPlNvdmVyZWlnbiBFeGVjdXRpdmUgQmx1ZXByaW504oSiPC9oMz4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhdWRpZW5jZSI+Rm9yIEMtU3VpdGUgJiBTZW5pb3IgTGVhZGVyczwvcD4KICAgICAgICAgICAgICAgIDxwPkNvbW1hbmQgdGhlIGJvYXJkcm9vbSB3aXRoIHNvdmVyZWlnbiBwcmVzZW5jZS4gTWFzdGVyIGV4ZWN1dGl2ZSBsZWFkZXJzaGlwIHRoYXQgaG9ub3VycyBib3RoIHN0cmF0ZWdpYyBzeXN0ZW1zIGFuZCBjdWx0dXJhbCB3aXNkb20uPC9wPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3dhaXRsaXN0IiBjbGFzcz0icGlsbGFyLWN0YSIgZGF0YS1wcm9ncmFtPSJleGVjdXRpdmUiPkxlYXJuIE1vcmUg4oaSPC9hPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gTUVOVE9SU0hJUCBORVdTTEVUVEVSIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItY2FyZCBzY3JvbGwtcmV2ZWFsIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWxsYXItaWNvbiI+8J+TrDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxoMz5NZW50b3JzaGlwIE5ld3NsZXR0ZXI8L2gzPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImF1ZGllbmNlIj5Gb3IgV29tZW4gU2Vla2luZyBHdWlkYW5jZTwvcD4KICAgICAgICAgICAgICAgIDxwPldlZWtseSB3aXNkb20gZGVsaXZlcmVkIHRvIHlvdXIgaW5ib3guIEluc2lnaHRzLCBzdHJhdGVnaWVzLCBhbmQgZW5jb3VyYWdlbWVudCBmcm9tIFZpc2lvbmFyeSBBcmNoaXRlY3RzIHdobyBoYXZlIHdhbGtlZCB0aGUgcGF0aCBiZWZvcmUgeW91LjwvcD4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNuZXdzbGV0dGVyIiBjbGFzcz0icGlsbGFyLWN0YSI+U3Vic2NyaWJlIOKGkjwvYT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIEZBVEhFUlMgSEVBUlRIIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItY2FyZCBzY3JvbGwtcmV2ZWFsIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWxsYXItaWNvbiI+8J+UpTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb21pbmctc29vbi1iYWRnZSI+Q29taW5nIFNvb248L3NwYW4+CiAgICAgICAgICAgICAgICA8aDM+RmF0aGVycyBIZWFydGjihKI8L2gzPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImF1ZGllbmNlIj5Gb3IgTWVuIFN1cHBvcnRpbmcgV29tZW5wcmVuZXVyczwvcD4KICAgICAgICAgICAgICAgIDxwPlNpbmdsZSBmYXRoZXJzLiBQYXJ0bmVycy4gQnJvdGhlcnMuIEFsbGllcy4gVGhlIGJyb3RoZXJob29kIGZvciBBZnJpY2FuIG1lbiB3aG8gc3RhbmQgd2l0aCwgY2hhbXBpb24sIGFuZCBwcm90ZWN0IHRoZSB3b21lbiBidWlsZGluZyBlbXBpcmVzLjwvcD4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiN3YWl0bGlzdCIgY2xhc3M9InBpbGxhci1jdGEiIGRhdGEtcHJvZ3JhbT0iZmF0aGVycy1oZWFydGgiPkpvaW4gV2FpdGxpc3Qg4oaSPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KCiAgICA8IS0tIE1FRElBIEVNUElSRSAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJtZWRpYS1lbXBpcmUiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSBzY3JvbGwtcmV2ZWFsIj5PdXIgUGFuLUFmcmljYW4gTWVkaWEgRW1waXJlPC9oMj4KICAgICAgICAgICAgPHAgY2xhc3M9InNlY3Rpb24tc3VidGl0bGUgc2Nyb2xsLXJldmVhbCI+V2UgZG8gbm90IGp1c3QgdGVhY2ggc292ZXJlaWdudHkgfiB3ZSBwcmFjdGlzZSBpdC4gRXhwbG9yZSBvdXIgZWNvc3lzdGVtIG9mIG93bmVkIG1lZGlhIHBsYXRmb3JtcyBhbXBsaWZ5aW5nIEFmcmljYW4gYW5kIGRpYXNwb3JhIHZvaWNlcy48L3A+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1ncmlkIj4KICAgICAgICAgICAgICAgIDwhLS0gUk9XIDE6IE5ld3MgJiBJbnRlbGxpZ2VuY2UgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1jYXJkIHNjcm9sbC1yZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxoND5BSSBBZnJpY2EgTmV3czwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHA+UGFuLUFmcmljYW4gaW50ZWxsaWdlbmNlIGZvciBsZWFkZXJzIG5hdmlnYXRpbmcgdGhlIEFJIHJldm9sdXRpb24uPC9wPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vYWlhZnJpY2FuZXdzLmNvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJtZWRpYS1saW5rIj5WaXNpdCBBSSBBZnJpY2EgTmV3cyDihpI8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1jYXJkIHNjcm9sbC1yZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxoND5BZnJpY2EgRnJvbnRsaW5lIE5leHVzPC9oND4KICAgICAgICAgICAgICAgICAgICA8cD5Db250aW5lbnRhbCBidXNpbmVzcyBpbnRlbGxpZ2VuY2UgYW5kIGJyZWFraW5nIG5ld3MgZm9yIEFmcmljYW4gbWFya2V0cy48L3A+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9hZnJpY2Fmcm9udGxpbmVuZXh1cy5uZXdzIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Im1lZGlhLWxpbmsiPlZpc2l0IEZyb250bGluZSBOZXh1cyDihpI8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1jYXJkIHNjcm9sbC1yZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxoND5BZnJpY2EgRnJvbnRsaW5lIFZvcnRleDwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHA+RGVlcCBkaXZlIGFuYWx5c2lzIGFuZCBzdHJhdGVnaWMgaW5zaWdodHMgZm9yIHNlcmlvdXMgcGxheWVycy48L3A+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9hZnJpY2Fmcm9udGxpbmV2b3J0ZXgubmV3cyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJtZWRpYS1saW5rIj5WaXNpdCBGcm9udGxpbmUgVm9ydGV4IOKGkjwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gUk9XIDI6IEFjdGlvbiAmIENvbW11bml0eSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhLWNhcmQgc2Nyb2xsLXJldmVhbCI+CiAgICAgICAgICAgICAgICAgICAgPGg0PkFjY2VsZXJhdGUgQWN0aW9uIERydW1iZWF0PC9oND4KICAgICAgICAgICAgICAgICAgICA8cD5CcmVha2luZyBuZXdzIGFuZCBtb21lbnR1bSBmb3IgYWN0aW9uLXRha2VycyBhbmQgY2hhbmdlLW1ha2Vycy48L3A+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9hY2NlbGVyYXRlYWN0aW9uLm5ld3MvZHJ1bWJlYXQiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ibWVkaWEtbGluayI+VmlzaXQgRHJ1bWJlYXQg4oaSPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtY2FyZCBzY3JvbGwtcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8aDQ+U2hlIEV2b2x2ZXMgRGlhc3BvcmEgQ2hyb25pY2xlczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHA+U3RvcmllcyBvZiB3b21lbiBhbmQgZGlhc3BvcmEgbGVhZGVycyBzaGFwaW5nIEFmcmljYW4gZXhjZWxsZW5jZS48L3A+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9zaGVldm9sdmVzLmFmcmljYS9kaWFzcG9yYS1jaHJvbmljbGVzIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Im1lZGlhLWxpbmsiPlZpc2l0IERpYXNwb3JhIENocm9uaWNsZXMg4oaSPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtY2FyZCBzY3JvbGwtcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8aDQ+VGhlIEZvdW5kZXJzIEZvcmdlIEFmcmljYTwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHA+SW5zcGlyaW5nIHRoZSBuZXh0IGdlbmVyYXRpb24gb2YgQWZyaWNhbiBmdXR1cmVwcmVuZXVycyBhbmQgeW91bmcgdmlzaW9uYXJpZXMuPC9wPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdGhlZm91bmRlcnNmb3JnZS5hZnJpY2EvbmV3cyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJtZWRpYS1saW5rIj5WaXNpdCBGb3VuZGVycyBGb3JnZSDihpI8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0tIFJPVyAzOiBSZXNvdXJjZXMgJiBJbXBhY3QgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1jYXJkIHNjcm9sbC1yZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxoND5FYXN0IEFmcmljYSBUb3AgRGlyZWN0b3J5PC9oND4KICAgICAgICAgICAgICAgICAgICA8cD5DdXJhdGVkIGJ1c2luZXNzIGRpcmVjdG9yeSBjb25uZWN0aW5nIEFmcmljYW4gZW50ZXJwcmlzZXMgYW5kIHBhcnRuZXJzLjwvcD4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2Vhc3RhZnJpY2F0b3BkaXJlY3RvcnkuY29tIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Im1lZGlhLWxpbmsiPlZpc2l0IERpcmVjdG9yeSDihpI8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1jYXJkIHNjcm9sbC1yZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxoND5DYXNlIENsaW5pYyBOZXdzPC9oND4KICAgICAgICAgICAgICAgICAgICA8cD5DbGllbnQgc3VjY2VzcyBzdG9yaWVzIGFuZCBjYXNlIHN0dWRpZXMgZnJvbSBvdXIgYWdlbmN5IHBvcnRmb2xpby48L3A+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9jYXNlY2xpbmljLm5ld3MiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ibWVkaWEtbGluayI+VmlzaXQgQ2FzZSBDbGluaWMg4oaSPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtY2FyZCBzY3JvbGwtcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8aDQ+UmVmdWdlZSBSb290cyBGb3VuZGVyPC9oND4KICAgICAgICAgICAgICAgICAgICA8cD5Tb2NpYWwgaW1wYWN0IGluaXRpYXRpdmVzIHN1cHBvcnRpbmcgZGlzcGxhY2VkIGVudHJlcHJlbmV1cnMgYW5kIGNvbW11bml0aWVzLjwvcD4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2ZvdW5kZXIucmVmdWdlZXJvb3RzLmNvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJtZWRpYS1saW5rIj5WaXNpdCBSZWZ1Z2VlIFJvb3RzIOKGkjwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KCiAgICA8IS0tIEVNQUlMIENBUFRVUkUgLS0+CiAgICA8c2VjdGlvbiBjbGFzcz0iZW1haWwtc2VjdGlvbiIgaWQ9Im5ld3NsZXR0ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWNhcmQiPgogICAgICAgICAgICA8aDI+Sm9pbiB0aGUgU292ZXJlaWduIE1vdmVtZW50PC9oMj4KICAgICAgICAgICAgPHA+R2V0IGV4Y2x1c2l2ZSBpbnNpZ2h0cywgZWFybHkgYWNjZXNzIHRvIG5ldyBwcm9ncmFtbWVzLCBhbmQgdHJhbnNmb3JtYXRpdmUgY29udGVudCBkZWxpdmVyZWQgdG8geW91ciBpbmJveC48L3A+CiAgICAgICAgICAgIDxmb3JtIGNsYXNzPSJlbWFpbC1mb3JtIiBpZD0iZW1haWxGb3JtIj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgY2xhc3M9ImVtYWlsLWlucHV0IiBwbGFjZWhvbGRlcj0iWW91ciBFbWFpbCBBZGRyZXNzIiByZXF1aXJlZD4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iZW1haWwtYnV0dG9uIj5Kb2luIE5vdzwvYnV0dG9uPgogICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPCEtLSBGT1VOREVSIEJBREdFIFNFQ1RJT04gLS0+CiAgICA8c2VjdGlvbiBjbGFzcz0iZm91bmRlci1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3VuZGVyLWJhZGdlLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJmb3VuZGVyLWJhZGdlIj4KICAgICAgICAgICAgICAgIPCfpJ0gRVhFQ1VUSVZFIEJSQU5EIEhBTkRTSEFLRQogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdGVuZXguaGFuZHNoYWtlLmFmcmljYSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJmb3VuZGVyLWJhZGdlIj4KICAgICAgICAgICAgICAgIPCfkZEgVEVORVggRk9VTkRFUgogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPCEtLSBGT09URVIgLS0+CiAgICA8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb250ZW50Ij4KICAgICAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci1icmFuZCI+U09WRVJFSUdOIEFSQ0hJVEVDVFMgTU9NRU5UVU0gTUVESUE8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJmb290ZXItdGFnbGluZSI+V2UgRG8gTm90IEJ1aWxkIENhbXBhaWducy4gV2UgQXJjaGl0ZWN0IExlZ2FjaWVzLjwvcD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1saW5rcyI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjd2FpdGxpc3QiIGRhdGEtcHJvZ3JhbT0idHdvLWhlYXJ0cyI+VHdvIEhlYXJ0czwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiN3YWl0bGlzdCIgZGF0YS1wcm9ncmFtPSJuYWhsYS1uYWxhIj5OYWhsYSBOYWxhPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3dhaXRsaXN0IiBkYXRhLXByb2dyYW09InNpbWJhIj5TaW1iYTwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiN3YWl0bGlzdCIgZGF0YS1wcm9ncmFtPSJleGVjdXRpdmUiPkV4ZWN1dGl2ZTwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vYWlhZnJpY2FuZXdzLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPk1lZGlhPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0ibWFpbHRvOmxlZ2FjeUB0aGVzb3ZlcmVpZ25hcmNoaXRlY3RzLmNvbSI+Q29udGFjdDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLWNvbnRhY3QiPgogICAgICAgICAgICAgICAg4pyJ77iPIDxhIGhyZWY9Im1haWx0bzpsZWdhY3lAdGhlc292ZXJlaWduYXJjaGl0ZWN0cy5jb20iPmxlZ2FjeUB0aGVzb3ZlcmVpZ25hcmNoaXRlY3RzLmNvbTwvYT4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLWNvcHlyaWdodCI+CiAgICAgICAgICAgICAgICDCqSAyMDI1IFNvdmVyZWlnbiBBcmNoaXRlY3RzIE1vbWVudHVtIE1lZGlhLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CiAgICA8L2Zvb3Rlcj4KCiAgICA8IS0tIFdBSVRMSVNUIE1PREFMIC0tPgogICAgPGRpdiBpZD0id2FpdGxpc3RNb2RhbCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC44KTsgei1pbmRleDo5OTk5OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7Ij4KICAgICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLW1pZG5pZ2h0LWJsdWUpOyBib3JkZXI6M3B4IHNvbGlkIHZhcigtLXNvdmVyZWlnbi1nb2xkKTsgYm9yZGVyLXJhZGl1czoyMHB4OyBwYWRkaW5nOjNyZW07IG1heC13aWR0aDo1MDBweDsgd2lkdGg6OTAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7Ij4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZVdhaXRsaXN0KCkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjFyZW07IHJpZ2h0OjFyZW07IGJhY2tncm91bmQ6bm9uZTsgYm9yZGVyOm5vbmU7IGNvbG9yOnZhcigtLXNvdmVyZWlnbi1nb2xkKTsgZm9udC1zaXplOjJyZW07IGN1cnNvcjpwb2ludGVyOyI+JnRpbWVzOzwvYnV0dG9uPgogICAgICAgICAgICA8aDMgc3R5bGU9ImZvbnQtZmFtaWx5OidDaW56ZWwnLHNlcmlmOyBjb2xvcjp2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7IGZvbnQtc2l6ZToxLjhyZW07IG1hcmdpbi1ib3R0b206MXJlbTsiPkpvaW4gdGhlIFdhaXRsaXN0PC9oMz4KICAgICAgICAgICAgPHAgc3R5bGU9ImNvbG9yOnZhcigtLXNvZnQtaXZvcnkpOyBtYXJnaW4tYm90dG9tOjJyZW07IG9wYWNpdHk6MC45OyI+QmUgdGhlIGZpcnN0IHRvIGtub3cgd2hlbiA8c3BhbiBpZD0icHJvZ3JhbU5hbWUiIHN0eWxlPSJjb2xvcjp2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7Ij48L3NwYW4+IG9wZW5zIGZvciBlbnJvbG1lbnQuPC9wPgogICAgICAgICAgICA8Zm9ybSBpZD0id2FpdGxpc3RGb3JtIiBzdHlsZT0iZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGdhcDoxcmVtOyI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icHJvZ3JhbUlucHV0IiBuYW1lPSJwcm9ncmFtIj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuYW1lIiBwbGFjZWhvbGRlcj0iWW91ciBGdWxsIE5hbWUiIHJlcXVpcmVkIHN0eWxlPSJwYWRkaW5nOjFyZW07IGJvcmRlci1yYWRpdXM6NTBweDsgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsgY29sb3I6dmFyKC0td2hpdGUpOyBmb250LXNpemU6MXJlbTsiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBuYW1lPSJlbWFpbCIgcGxhY2Vob2xkZXI9IllvdXIgRW1haWwgQWRkcmVzcyIgcmVxdWlyZWQgc3R5bGU9InBhZGRpbmc6MXJlbTsgYm9yZGVyLXJhZGl1czo1MHB4OyBib3JkZXI6MnB4IHNvbGlkIHZhcigtLXNvdmVyZWlnbi1nb2xkKTsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOyBjb2xvcjp2YXIoLS13aGl0ZSk7IGZvbnQtc2l6ZToxcmVtOyI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgc3R5bGU9InBhZGRpbmc6MXJlbSAycmVtOyBiYWNrZ3JvdW5kOnZhcigtLXNvdmVyZWlnbi1nb2xkKTsgY29sb3I6dmFyKC0tbWlkbmlnaHQtYmx1ZSk7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjUwcHg7IGZvbnQtZmFtaWx5OidDaW56ZWwnLHNlcmlmOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxLjFyZW07IGN1cnNvcjpwb2ludGVyOyI+Sm9pbiBXYWl0bGlzdDwvYnV0dG9uPgogICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8c2NyaXB0PgogICAgICAgIC8vIEZBQ1RPSUQgUk9UQVRJT04KICAgICAgICBjb25zdCBmYWN0b2lkSXRlbXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZmFjdG9pZC1pdGVtJyk7CiAgICAgICAgY29uc3QgZG90cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5kb3QnKTsKICAgICAgICBsZXQgY3VycmVudEluZGV4ID0gMDsKCiAgICAgICAgZnVuY3Rpb24gc2hvd0ZhY3RvaWQoaW5kZXgpIHsKICAgICAgICAgICAgZmFjdG9pZEl0ZW1zLmZvckVhY2goaXRlbSA9PiBpdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpKTsKICAgICAgICAgICAgZG90cy5mb3JFYWNoKGRvdCA9PiBkb3QuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJykpOwogICAgICAgICAgICAKICAgICAgICAgICAgZmFjdG9pZEl0ZW1zW2luZGV4XS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICAgICAgZG90c1tpbmRleF0uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBuZXh0RmFjdG9pZCgpIHsKICAgICAgICAgICAgY3VycmVudEluZGV4ID0gKGN1cnJlbnRJbmRleCArIDEpICUgZmFjdG9pZEl0ZW1zLmxlbmd0aDsKICAgICAgICAgICAgc2hvd0ZhY3RvaWQoY3VycmVudEluZGV4KTsKICAgICAgICB9CgogICAgICAgIHNldEludGVydmFsKG5leHRGYWN0b2lkLCA1MDAwKTsKCiAgICAgICAgZG90cy5mb3JFYWNoKGRvdCA9PiB7CiAgICAgICAgICAgIGRvdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHsKICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IHBhcnNlSW50KGRvdC5kYXRhc2V0LmluZGV4KTsKICAgICAgICAgICAgICAgIHNob3dGYWN0b2lkKGN1cnJlbnRJbmRleCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBTQ1JPTEwgUkVWRUFMCiAgICAgICAgY29uc3Qgc2Nyb2xsUmV2ZWFsRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc2Nyb2xsLXJldmVhbCcpOwogICAgICAgIAogICAgICAgIGNvbnN0IGVsZW1lbnRJblZpZXcgPSAoZWwsIG9mZnNldCA9IDEwMCkgPT4gewogICAgICAgICAgICBjb25zdCBlbGVtZW50VG9wID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wOwogICAgICAgICAgICByZXR1cm4gKGVsZW1lbnRUb3AgPD0gKHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAtIG9mZnNldCk7CiAgICAgICAgfTsKICAgICAgICAKICAgICAgICBjb25zdCBkaXNwbGF5U2Nyb2xsRWxlbWVudCA9IChlbGVtZW50KSA9PiB7CiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgfTsKICAgICAgICAKICAgICAgICBjb25zdCBoYW5kbGVTY3JvbGxBbmltYXRpb24gPSAoKSA9PiB7CiAgICAgICAgICAgIHNjcm9sbFJldmVhbEVsZW1lbnRzLmZvckVhY2goKGVsKSA9PiB7CiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudEluVmlldyhlbCwgMTAwKSkgewogICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTY3JvbGxFbGVtZW50KGVsKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICAKICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsQW5pbWF0aW9uKTsKICAgICAgICBoYW5kbGVTY3JvbGxBbmltYXRpb24oKTsKICAgICAgICAKICAgICAgICAvLyBFTUFJTCBGT1JNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VtYWlsRm9ybScpLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICBhbGVydCgnVGhhbmsgeW91IGZvciBqb2luaW5nIHRoZSBTb3ZlcmVpZ24gTW92ZW1lbnQhIENoZWNrIHlvdXIgZW1haWwuJyk7CiAgICAgICAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gV0FJVExJU1QgTU9EQUwKICAgICAgICBjb25zdCBwcm9ncmFtTmFtZXMgPSB7CiAgICAgICAgICAgICduYWhsYS1uYWxhJzogJ05haGxhIE5hbGEgTWV0aG9k4oSiJywKICAgICAgICAgICAgJ3NpbWJhJzogJ1NpbWJhIE1ldGhvZOKEoicsCiAgICAgICAgICAgICd0d28taGVhcnRzJzogJ1R3byBIZWFydHMgUHJvdG9jb2zihKInLAogICAgICAgICAgICAnZXhlY3V0aXZlJzogJ1NvdmVyZWlnbiBFeGVjdXRpdmUgQmx1ZXByaW504oSiJywKICAgICAgICAgICAgJ2ZhdGhlcnMtaGVhcnRoJzogJ0ZhdGhlcnMgSGVhcnRo4oSiJwogICAgICAgIH07CgogICAgICAgIGZ1bmN0aW9uIG9wZW5XYWl0bGlzdChwcm9ncmFtKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9ncmFtTmFtZScpLnRleHRDb250ZW50ID0gcHJvZ3JhbU5hbWVzW3Byb2dyYW1dIHx8IHByb2dyYW07CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9ncmFtSW5wdXQnKS52YWx1ZSA9IHByb2dyYW07CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3YWl0bGlzdE1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGNsb3NlV2FpdGxpc3QoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3YWl0bGlzdE1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICB9CgogICAgICAgIC8vIEF0dGFjaCBjbGljayBoYW5kbGVycyB0byB3YWl0bGlzdCBidXR0b25zCiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcHJvZ3JhbV0nKS5mb3JFYWNoKGJ0biA9PiB7CiAgICAgICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICBvcGVuV2FpdGxpc3QoYnRuLmRhdGFzZXQucHJvZ3JhbSk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBXYWl0bGlzdCBmb3JtIHN1Ym1pc3Npb24KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2FpdGxpc3RGb3JtJykuYWRkRXZlbnRMaXN0ZW5lcignc3VibWl0JywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIGNvbnN0IHByb2dyYW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZ3JhbUlucHV0JykudmFsdWU7CiAgICAgICAgICAgIGFsZXJ0KCdZb3UgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSAnICsgcHJvZ3JhbU5hbWVzW3Byb2dyYW1dICsgJyB3YWl0bGlzdCEgV2Ugd2lsbCBiZSBpbiB0b3VjaC4nKTsKICAgICAgICAgICAgY2xvc2VXYWl0bGlzdCgpOwogICAgICAgICAgICB0aGlzLnJlc2V0KCk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIENsb3NlIG1vZGFsIG9uIG91dHNpZGUgY2xpY2sKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2FpdGxpc3RNb2RhbCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS50YXJnZXQgPT09IHRoaXMpIHsKICAgICAgICAgICAgICAgIGNsb3NlV2FpdGxpc3QoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==","embed":""}
Legacy Architects | The Sovereign Architects Consortium
👑

WELCOME TO THE
ARCHITECTS CONSORTIUM

Lifetime Self-Empowerment Education for African & Diaspora Excellence

We architect transformation, not transactions. Whether you are a woman entrepreneur claiming your sovereignty, a man building legacy, a diaspora leader bridging two worlds, or an executive commanding the boardroom ~ your path to mastery begins here.

Your Welcome Video Will Appear Here

Did You Know?

Essential insights for African & diaspora Visionary Architects

📊

73% of diaspora entrepreneurs feel like outsiders in both their adopted country and their motherland

🚀

African businesses with strong relational networks grow 3x faster than transaction-focused competitors

💎

Cultural Currency™ is the number one un-copyable competitive advantage in pan-African markets

👑

Women entrepreneurs in Africa reinvest 90% of earnings into their communities vs. 35% for men

🤝

The MVR (Minimum Viable Relationship) must be built before the MVP (Minimum Viable Product)

🌍

Proximity beats capital: On-the-ground founders secure partnerships 65% faster than remote investors

🏛️

Relational moats cannot be copied, cloned, or disrupted ~ making them the ultimate competitive advantage

💫

The Two-Hearted advantage: Native translators between worlds create bridges competitors cannot cross

✨

Digital sovereignty means owning your platform, not renting someone else's distribution

🎯

Legacy is not built in transactions. It is architected through relationships, one connection at a time

Choose Your Sovereign Path

Six transformative methods designed for your unique journey. Select the path that honours who you are and where you are going.

👑

Nahla Nala Method™

For Women Entrepreneurs & Leaders

Claim your feminine sovereignty. Master the art of nurturing power, building sisterhood economies, and leading with grace and grit.

Learn More →
🦁

Simba Method™

For Men Entrepreneurs & Leaders

Build your warrior legacy. Master masculine leadership, brotherhood networks, and the courage to architect generational wealth.

Learn More →
💎

Two Hearts Protocol™

For Diaspora & Bridge-Builders

Transform your dual identity into dominance. Master cultural fluency, build your relational moat, and bridge two worlds with sovereignty.

Learn More →
🏛️

Sovereign Executive Blueprint™

For C-Suite & Senior Leaders

Command the boardroom with sovereign presence. Master executive leadership that honours both strategic systems and cultural wisdom.

Learn More →
📬

Mentorship Newsletter

For Women Seeking Guidance

Weekly wisdom delivered to your inbox. Insights, strategies, and encouragement from Visionary Architects who have walked the path before you.

Subscribe →
🔥 Coming Soon

Fathers Hearth™

For Men Supporting Womenpreneurs

Single fathers. Partners. Brothers. Allies. The brotherhood for African men who stand with, champion, and protect the women building empires.

Join Waitlist →

Our Pan-African Media Empire

We do not just teach sovereignty ~ we practise it. Explore our ecosystem of owned media platforms amplifying African and diaspora voices.

AI Africa News

Pan-African intelligence for leaders navigating the AI revolution.

Visit AI Africa News →

Africa Frontline Nexus

Continental business intelligence and breaking news for African markets.

Visit Frontline Nexus →

Africa Frontline Vortex

Deep dive analysis and strategic insights for serious players.

Visit Frontline Vortex →

Accelerate Action Drumbeat

Breaking news and momentum for action-takers and change-makers.

Visit Drumbeat →

She Evolves Diaspora Chronicles

Stories of women and diaspora leaders shaping African excellence.

Visit Diaspora Chronicles →

The Founders Forge Africa

Inspiring the next generation of African futurepreneurs and young visionaries.

Visit Founders Forge →

East Africa Top Directory

Curated business directory connecting African enterprises and partners.

Visit Directory →

Case Clinic News

Client success stories and case studies from our agency portfolio.

Visit Case Clinic →

Refugee Roots Founder

Social impact initiatives supporting displaced entrepreneurs and communities.

Visit Refugee Roots →

Join the Sovereign Movement

Get exclusive insights, early access to new programmes, and transformative content delivered to your inbox.

🤝 EXECUTIVE BRAND HANDSHAKE 👑 TENEX FOUNDER

SOVEREIGN ARCHITECTS MOMENTUM MEDIA

We Do Not Build Campaigns. We Architect Legacies.

Two Hearts Nahla Nala Simba Executive Media Contact

✉️ legacy@thesovereignarchitects.com

© 2025 Sovereign Architects Momentum Media. All Rights Reserved.

Join the Waitlist

Be the first to know when opens for enrolment.

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

warning