{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8IS0tCiAgICDilZTilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZcKICAgIOKVkSAgQlJBTkRIQU5EU0hBS0UgT0ZGSUNJQUwgQ09ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWjCiAgICDilZEgIEZJTEU6IHRlbmRvLWFpZ2VuaXVzLXByaWNpbmctU0xVRy1haWdlbml1cy1WMS5odG1sICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWRICBTTFVHOiBhaWdlbml1cy5icmFuZGhhbmRzaGFrZS5jb20vYWlnZW5pdXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVkSAgVkVSU0lPTjogVi0xIE9GRklDSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWRICBMQVNUIFVQREFURUQ6IEphbnVhcnkgMjAyNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilZEgIFNUQVRVUzog4pyFIExJVkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilaDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilaMKICAgIOKVkSAgUElPTkVFUjogVGVuZG8gVGFsaXEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVkSAgQlJBTkQ6IEFJIEdlbml1cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVkSAgRElWSVNJT046IER5bmFtaWMgUGFyYWRpZ21zIElPICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVkSAgUEhPTkU6ICsyNTYgNzY5IDYyMyA3MTUgKE1vYmlsZSBNb25leSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWRICBXSEFUU0FQUDogKzI1NiA3MDggODc1IDczOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWRICBFTUFJTCBBTEVSVFM6IHRlbmRvdGFsaXE1NUBnbWFpbC5jb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWRICBCQURHRTog8J+HuvCfh6wgVGVjaCBJbm5vdmF0aW9uIFBpb25lZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilaDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilaMKICAgIOKVkSAgUkVESVJFQ1RTIFRPOiAvZGVzaWduLW5leHRzdGVwcz9yZWY9YWlnZW5pdXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVoOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVowogICAg4pWRICDCqSAyMDI2IE11a2FzYSBWZW50dXJlIFBhcnRuZXJzIExMQy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWRICDwn5SQIFBST1RFQ1RFRCBDT0RFIC0gVW5hdXRob3JpemVkIGNvcHlpbmcgcHJvaGliaXRlZC4gICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVnQogICAgLS0+CiAgICAKICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICAgIAogICAgPCEtLSA9PT09PT09PT09IFNFQ1VSSVRZIEhFQURFUlMgPT09PT09PT09PSAtLT4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtRnJhbWUtT3B0aW9ucyIgY29udGVudD0iU0FNRU9SSUdJTiI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0iZnJhbWUtYW5jZXN0b3JzICdzZWxmJyBodHRwczovLyouYnJhbmRoYW5kc2hha2UuY29tIGh0dHBzOi8vKi5oYW5kc2hha2UuYWZyaWNhIj4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtQ29udGVudC1UeXBlLU9wdGlvbnMiIGNvbnRlbnQ9Im5vc25pZmYiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1YU1MtUHJvdGVjdGlvbiIgY29udGVudD0iMTsgbW9kZT1ibG9jayI+CiAgICA8bWV0YSBuYW1lPSJyZWZlcnJlciIgY29udGVudD0ic3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiI+CiAgICA8IS0tID09PT09PT09PT0gRU5EIFNFQ1VSSVRZID09PT09PT09PT0gLS0+CiAgICAKICAgIDx0aXRsZT5BSSBHZW5pdXMgfCBUZW5kbyBUYWxpcSB8IFZpcnR1YWwgQnVzaW5lc3MgQ2FyZHMgVWdhbmRhIHwgQnJhbmRIYW5kc2hha2U8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkdldCB5b3VyIHByZW1pdW0gdmlydHVhbCBidXNpbmVzcyBjYXJkIGZyb20gVGVuZG8gVGFsaXEgLSBUZWNoIElubm92YXRpb24gUGlvbmVlciBhdCBBSSBHZW5pdXMuIFByb2Zlc3Npb25hbCBkaWdpdGFsIGNhcmRzIHN0YXJ0aW5nIGZyb20gJDEwLiBNb2JpbGUgTW9uZXkgYWNjZXB0ZWQuIj4KICAgIDxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0iaW5kZXgsIGZvbGxvdyI+CiAgICA8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly9haWdlbml1cy5icmFuZGhhbmRzaGFrZS5jb20vYWlob3Jpem9ucyI+CiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6d2dodEA0MDA7NTAwOzYwMDs3MDA7ODAwJmZhbWlseT1OdW5pdG86d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIAogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLS1uYXZ5OiAjMEQxQjJBOwogICAgICAgICAgICAtLWluZGlnbzogIzFDMUY0QTsKICAgICAgICAgICAgLS1nb2xkOiAjRDRBRjM3OwogICAgICAgICAgICAtLWl2b3J5OiAjRjhGNEVDOwogICAgICAgICAgICAtLWRlZXBnb2xkOiAjQjg5NzJFOwogICAgICAgICAgICAtLWNoYXJjb2FsOiAjMGEwYTEyOwogICAgICAgICAgICAtLWtlbnlhLWdyZWVuOiAjMTZhMzRhOwogICAgICAgICAgICAtLWtlbnlhLWdyZWVuLWRhcms6ICMxNTgwM2Q7CiAgICAgICAgICAgIC0tY3lhbjogIzA2YjZkNDsKICAgICAgICAgICAgLS10ZWFsOiAjMTRiOGE2OwogICAgICAgICAgICAtLXB1cnBsZTogIzhiNWNmNjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICAgICAgIGh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfQogICAgICAgIAogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ051bml0bycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXJjb2FsKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNzsKICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQU5JTUFURUQgQkFDS0dST1VORCAqLwogICAgICAgIC5iZy1tYXN0ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IAogICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgMjAlIDIwJSwgcmdiYSgyMiwgMTYzLCA3NCwgMC4yNSkgMCUsIHRyYW5zcGFyZW50IDUwJSksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA4MCUgODAlLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKSAwJSwgdHJhbnNwYXJlbnQgNDAlKSwKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDUwJSA1MCUsIHJnYmEoNiwgMTgyLCAyMTIsIDAuMTUpIDAlLCB0cmFuc3BhcmVudCA2MCUpLAogICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tY2hhcmNvYWwpIDAlLCB2YXIoLS1uYXZ5KSA1MCUsIHZhcigtLWluZGlnbykgMTAwJSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mbG9hdGluZy1vcmJzIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB6LWluZGV4OiAxOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAub3JiIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGZpbHRlcjogYmx1cig0MHB4KTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmbG9hdE9yYiAyMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIC5vcmItMSB7IHdpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBweDsgYmFja2dyb3VuZDogcmdiYSgyMiwgMTYzLCA3NCwgMC4xNSk7IHRvcDogMTAlOyBsZWZ0OiAxMCU7IGFuaW1hdGlvbi1kZWxheTogMHM7IH0KICAgICAgICAub3JiLTIgeyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEyKTsgdG9wOiA2MCU7IHJpZ2h0OiAxMCU7IGFuaW1hdGlvbi1kZWxheTogLTVzOyB9CiAgICAgICAgLm9yYi0zIHsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDI1MHB4OyBiYWNrZ3JvdW5kOiByZ2JhKDYsIDE4MiwgMjEyLCAwLjEpOyBib3R0b206IDIwJTsgbGVmdDogMzAlOyBhbmltYXRpb24tZGVsYXk6IC0xMHM7IH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0T3JiIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgxKTsgfQogICAgICAgICAgICAyNSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzMHB4LCAtMzBweCkgc2NhbGUoMS4xKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgMjBweCkgc2NhbGUoMC45KTsgfQogICAgICAgICAgICA3NSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAxMHB4KSBzY2FsZSgxLjA1KTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGFnZS1jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBUT1AgTkFWICovCiAgICAgICAgLnRvcG5hdiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMTVweCAyMHB4OwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMiwgMTYzLCA3NCwgMC4zKTsKICAgICAgICB9CiAgICAgICAgLm5hdi1icmFuZCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAubmF2LWxpbmtzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KICAgICAgICAubmF2LWxpbmtzIGEgewogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjcpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zczsKICAgICAgICB9CiAgICAgICAgLm5hdi1saW5rcyBhOmhvdmVyIHsgY29sb3I6IHZhcigtLWtlbnlhLWdyZWVuKTsgfQogICAgICAgIAogICAgICAgIC8qIFNDUk9MTElORyBCQU5ORVIgKi8KICAgICAgICAuY29sb3Itc2Nyb2xsLWNvbnRhaW5lciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0ta2VueWEtZ3JlZW4pLCB2YXIoLS1nb2xkKSwgdmFyKC0tY3lhbiksIHZhcigtLWtlbnlhLWdyZWVuKSk7CiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzAwJSAxMDAlOwogICAgICAgICAgICBhbmltYXRpb246IGdyYWRpZW50U2Nyb2xsIDhzIGVhc2UgaW5maW5pdGU7CiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMDsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBncmFkaWVudFNjcm9sbCB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlOyB9CiAgICAgICAgICAgIDUwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlOyB9CiAgICAgICAgfQogICAgICAgIC5jb2xvci1zY3JvbGwgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbmltYXRpb246IHNjcm9sbFRleHQgMjVzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBzY3JvbGxUZXh0IHsKICAgICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0KICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfQogICAgICAgIH0KICAgICAgICAuc2Nyb2xsLWl0ZW0gewogICAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgICAgcGFkZGluZzogMCAzMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICB9CiAgICAgICAgLnNjcm9sbC1pdGVtIC5zdGFyIHsgY29sb3I6IHZhcigtLW5hdnkpOyBtYXJnaW46IDAgMTVweDsgfQogICAgICAgIAogICAgICAgIC8qIEFNQkFTU0FET1IgSEVSTyAqLwogICAgICAgIC5hbWJhc3NhZG9yLWhlcm8gewogICAgICAgICAgICBwYWRkaW5nOiA1MHB4IDIwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLmFtYmFzc2Fkb3ItY2FyZCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIC5hbWJhc3NhZG9yLWNhcmQtaW5uZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIyLCAxNjMsIDc0LCAwLjE1KSwgcmdiYSg2LCAxODIsIDIxMiwgMC4xKSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjIsIDE2MywgNzQsIDAuNCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMzBweDsKICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5hbWJhc3NhZG9yLWNhcmQtaW5uZXI6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogLTUwJTsgbGVmdDogLTUwJTsKICAgICAgICAgICAgd2lkdGg6IDIwMCU7IGhlaWdodDogMjAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoZnJvbSAwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyMiwgMTYzLCA3NCwgMC4xKSwgdHJhbnNwYXJlbnQsIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpLCB0cmFuc3BhcmVudCk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcm90YXRlQm9yZGVyIDEwcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgcm90YXRlQm9yZGVyIHsKICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CiAgICAgICAgLmFtYmFzc2Fkb3ItY2FyZC1jb250ZW50IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAua2VueWEtYmFkZ2UgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMCwwLDAsMC42KSwgcmdiYSgyMiwgMTAxLCA1MiwgMC42KSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWtlbnlhLWdyZWVuKTsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5rZW55YS1iYWRnZSAuZmxhZyB7IGZvbnQtc2l6ZTogMS4ycmVtOyB9CiAgICAgICAgCiAgICAgICAgLmFtYmFzc2Fkb3ItYXZhdGFyIHsKICAgICAgICAgICAgd2lkdGg6IDEyMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDEyMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byAyMHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWtlbnlhLWdyZWVuKSwgdmFyKC0tY3lhbikpOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBhbmltYXRpb246IGF2YXRhclB1bHNlIDNzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIGF2YXRhclB1bHNlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjIsIDE2MywgNzQsIDAuNCk7IH0KICAgICAgICAgICAgNTAlIHsgYm94LXNoYWRvdzogMCAwIDAgMTVweCByZ2JhKDIyLCAxNjMsIDc0LCAwKTsgfQogICAgICAgIH0KICAgICAgICAuYW1iYXNzYWRvci1hdmF0YXIgLmljb24gewogICAgICAgICAgICBmb250LXNpemU6IDMuNXJlbTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbG9yLWNvZGUtYmFkZ2UgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjIsIDE2MywgNzQsIDAuMik7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWtlbnlhLWdyZWVuKTsKICAgICAgICAgICAgcGFkZGluZzogNnB4IDE2cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0ta2VueWEtZ3JlZW4pOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAuY29sb3ItY29kZS1iYWRnZSAuZG90IHsKICAgICAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0ta2VueWEtZ3JlZW4pOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogYmxpbmsgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBibGluayB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMTsgfQogICAgICAgICAgICA1MCUgeyBvcGFjaXR5OiAwLjM7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmFtYmFzc2Fkb3ItbmFtZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDJyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0taXZvcnkpLCB2YXIoLS1nb2xkKSk7CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgfQogICAgICAgIC5hbWJhc3NhZG9yLWNyZWRlbnRpYWxzIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgfQogICAgICAgIC5hbWJhc3NhZG9yLWNvbXBhbnkgewogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jeWFuKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICAgIH0KICAgICAgICAuYW1iYXNzYWRvci10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjcpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc29jaWFsLWljb25zIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTVweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgLnNvY2lhbC1pY29uIHsKICAgICAgICAgICAgd2lkdGg6IDQ1cHg7CiAgICAgICAgICAgIGhlaWdodDogNDVweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyLCAxNjMsIDc0LCAwLjIpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDIyLCAxNjMsIDc0LCAwLjQpOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgLnNvY2lhbC1pY29uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMiwgMTYzLCA3NCwgMC40KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWtlbnlhLWdyZWVuKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmFtYmFzc2Fkb3ItY29udGFjdCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgICAgLmNvbnRhY3QtYnRuIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDI0cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LWJ0bi53aGF0c2FwcCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyNUQzNjYsICMxMjhDN0UpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LWJ0bi5jYWxsIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWRlZXBnb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICB9CiAgICAgICAgLmNvbnRhY3QtYnRuOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsMCwwLDAuMyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFZBTFVFIFNFQ1RJT04gKi8KICAgICAgICAudmFsdWUtc2VjdGlvbiB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogNDBweCAyMHB4OwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyMiwgMTYzLCA3NCwgMC4yKTsKICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjIsIDE2MywgNzQsIDAuMik7CiAgICAgICAgfQogICAgICAgIC52YWx1ZS1zZWN0aW9uIGgyIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAudmFsdWUtc2VjdGlvbiAuaGlnaGxpZ2h0IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0ta2VueWEtZ3JlZW4pLCB2YXIoLS1jeWFuKSk7CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgfQogICAgICAgIC52YWx1ZS1zZWN0aW9uIHAgewogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjcpOwogICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byAyMHB4OwogICAgICAgIH0KICAgICAgICAucHJpY2UtaGlnaGxpZ2h0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWN5YW4pKTsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogUFJJQ0lORyBTRUNUSU9OICovCiAgICAgICAgLnByaWNpbmctc2VjdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggMjBweDsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctaGVhZGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgIH0KICAgICAgICAucHJpY2luZy1oZWFkZXIgaDMgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jdXJyZW5jeS10b2dnbGUgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyMiwgMTYzLCA3NCwgMC40KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNyk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgbWFyZ2luOiAwIDVweDsKICAgICAgICB9CiAgICAgICAgLmN1cnJlbmN5LXRvZ2dsZTpob3ZlciB7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0ta2VueWEtZ3JlZW4pOwogICAgICAgIH0KICAgICAgICAuY3VycmVuY3ktdG9nZ2xlLmFjdGl2ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWtlbnlhLWdyZWVuKTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1rZW55YS1ncmVlbik7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB9CiAgICAgICAgLmN1cnJlbmN5LWljb24geyBmb250LXNpemU6IDEuMnJlbTsgfQogICAgICAgIAogICAgICAgIC5wcmljaW5nLWdyaWQgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgICAgICBtYXJnaW4tdG9wOiAzMHB4OwogICAgICAgIH0KICAgICAgICAucHJpY2luZy1ncmlkLm5pbmUtdGllciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7CiAgICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDsKICAgICAgICB9CiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7CiAgICAgICAgICAgIC5wcmljaW5nLWdyaWQubmluZS10aWVyIHsKICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5wcmljaW5nLWdyaWQubmluZS10aWVyIHsKICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEludGVybiAzLXRpZXIgZ3JpZCAqLwogICAgICAgIC5wcmljaW5nLWdyaWQuaW50ZXJuLXRpZXIgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpOwogICAgICAgICAgICBnYXA6IDI1cHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHg7CiAgICAgICAgfQogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkgewogICAgICAgICAgICAucHJpY2luZy1ncmlkLmludGVybi10aWVyIHsKICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sb2NhbC1wcmljZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNik7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaWNpbmctY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjIsIDE2MywgNzQsIDAuMSksIHJnYmEoNiwgMTgyLCAyMTIsIDAuMDUpKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyMiwgMTYzLCA3NCwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgcGFkZGluZzogMjVweCAyMHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctY2FyZDpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1rZW55YS1ncmVlbik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoMjIsIDE2MywgNzQsIDAuMik7CiAgICAgICAgfQogICAgICAgIC5wcmljaW5nLWNhcmQuZmVhdHVyZWQgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xNSksIHJnYmEoMjIsIDE2MywgNzQsIDAuMSkpOwogICAgICAgIH0KICAgICAgICAucHJpY2luZy1jYXJkLmZlYXR1cmVkOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAn4q2QIFBPUFVMQVInOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogLTEycHg7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgICAgICBwYWRkaW5nOiA1cHggMTVweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgfQogICAgICAgIC5wcmljaW5nLWNhcmQuc292ZXJlaWduIHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMiksIHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjE1KSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAzMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpOwogICAgICAgIH0KICAgICAgICAucHJpY2luZy1iYWRnZSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAtMTJweDsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxNXB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctY2FyZC5zb3ZlcmVpZ24gLnByaWNpbmctYmFkZ2UgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgI2Y1OWUwYik7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcmljaW5nLWljb24geyBmb250LXNpemU6IDJyZW07IG1hcmdpbi1ib3R0b206IDEwcHg7IH0KICAgICAgICAucHJpY2luZy1uYW1lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgfQogICAgICAgIC5wcmljaW5nLWZvciB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC41KTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctcHJpY2UgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAycmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogODAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIC5wcmljaW5nLXByaWNlIC5jdXJyZW5jeS1zeW1ib2wgewogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICAgICAgfQogICAgICAgIC5wcmljaW5nLXByaWNlLmtlcyB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpY2luZy1mZWF0dXJlcyB7CiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5wcmljaW5nLWZlYXR1cmVzIGxpIHsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC44KTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIH0KICAgICAgICAucHJpY2luZy1mZWF0dXJlcyAuY2hlY2sgewogICAgICAgICAgICBjb2xvcjogdmFyKC0ta2VueWEtZ3JlZW4pOwogICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaWNpbmctYnRuIHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHg7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0ta2VueWEtZ3JlZW4pLCB2YXIoLS1rZW55YS1ncmVlbi1kYXJrKSk7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctYnRuOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDIyLCAxNjMsIDc0LCAwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBQQVlNRU5UIFNFQ1RJT04gKi8KICAgICAgICAucGF5bWVudC1zZWN0aW9uIHsKICAgICAgICAgICAgcGFkZGluZzogNDBweCAyMHB4OwogICAgICAgIH0KICAgICAgICAucGF5bWVudC1ib3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIyLCAxNjMsIDc0LCAwLjE1KSwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSkpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1rZW55YS1ncmVlbik7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5wYXltZW50LWJveC1pbm5lciB7CiAgICAgICAgICAgIHBhZGRpbmc6IDM1cHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtYm94IGgzIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIC5tcGVzYS1iYWRnZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM0Q0FGNTAsICMyRTdEMzIpOwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDI1cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5tcGVzYS1iYWRnZSBzcGFuIHsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtbnVtYmVyIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogODAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgIH0KICAgICAgICAucGF5bWVudC1uYW1lIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBheW1lbnQtc3RlcHMgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDI1cHg7CiAgICAgICAgfQogICAgICAgIC5wYXltZW50LXN0ZXBzIGg0IHsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWN5YW4pOwogICAgICAgIH0KICAgICAgICAucGF5bWVudC1zdGVwcyBvbCB7CiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtc3RlcHMgbGkgewogICAgICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC44KTsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtc3RlcHMgc3Ryb25nIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBPUkRFUiBGT1JNICovCiAgICAgICAgLm9yZGVyLXNlY3Rpb24gewogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5vcmRlci1ib3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIyLCAxNjMsIDc0LCAwLjEpLCByZ2JhKDYsIDE4MiwgMjEyLCAwLjA1KSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjIsIDE2MywgNzQsIDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5vcmRlci1ib3gtaW5uZXIgewogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDMwcHg7CiAgICAgICAgfQogICAgICAgIC5vcmRlci1ib3ggaDMgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWN5YW4pKTsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvcm0tZ3JvdXAgeyBtYXJnaW4tYm90dG9tOiAxOHB4OyB9CiAgICAgICAgLmZvcm0tZ3JvdXAgbGFiZWwgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMS41cHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNik7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICB9CiAgICAgICAgLmZvcm0tZ3JvdXAgaW5wdXQsIC5mb3JtLWdyb3VwIHNlbGVjdCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiAxNHB4IDE4cHg7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjIsIDE2MywgNzQsIDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAuZm9ybS1ncm91cCBpbnB1dDpmb2N1cywgLmZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIHsKICAgICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1rZW55YS1ncmVlbik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMjIsIDE2MywgNzQsIDAuMik7CiAgICAgICAgfQogICAgICAgIC5mb3JtLWdyb3VwIHNlbGVjdCB7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJyB2aWV3Qm94PScwIDAgMTIgMTInJTNFJTNDcGF0aCBmaWxsPSclMjMxNmEzNGEnIGQ9J002IDhMMSAzaDEweicvJTNFJTNDL3N2ZyUzRSIpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxNXB4IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLmZvcm0tcm93IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDE1cHg7IH0KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHsgLmZvcm0tcm93IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0gfQogICAgICAgIAogICAgICAgIC5zdWJtaXQtYnRuIHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDE4cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogODAwOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzNXB4OwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWRlZXBnb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgfQogICAgICAgIC5zdWJtaXQtYnRuOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpIHNjYWxlKDEuMDIpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDIwcHggNTBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC41KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRk9PVEVSICovCiAgICAgICAgLmZvb3RlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogNDBweCAyMHB4OwogICAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgyMiwgMTYzLCA3NCwgMC4yKTsKICAgICAgICB9CiAgICAgICAgLmZvb3Rlci1icmFuZCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWN5YW4pKTsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgLmZvb3RlciBwIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNSk7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItbGlua3MgewogICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KICAgICAgICAuZm9vdGVyLWxpbmtzIGEgewogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjYpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzOwogICAgICAgIH0KICAgICAgICAuZm9vdGVyLWxpbmtzIGE6aG92ZXIgeyBjb2xvcjogdmFyKC0tZ29sZCk7IH0KICAgICAgICAKICAgICAgICAvKiBSRVNQT05TSVZFICovCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC50b3BuYXYgeyBwYWRkaW5nOiAxMHB4IDE1cHg7IH0KICAgICAgICAgICAgLmFtYmFzc2Fkb3ItbmFtZSB7IGZvbnQtc2l6ZTogMS42cmVtOyB9CiAgICAgICAgICAgIC5wcmljaW5nLWdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfQogICAgICAgICAgICAucGF5bWVudC1udW1iZXIgeyBmb250LXNpemU6IDEuOHJlbTsgfQogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgICA8ZGl2IGNsYXNzPSJiZy1tYXN0ZXIiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZmxvYXRpbmctb3JicyI+CiAgICAgICAgPGRpdiBjbGFzcz0ib3JiIG9yYi0xIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJvcmIgb3JiLTIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im9yYiBvcmItMyI+PC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0icGFnZS1jb250YWluZXIiPgogICAgICAgIDwhLS0gVE9QIE5BViAtLT4KICAgICAgICA8bmF2IGNsYXNzPSJ0b3BuYXYiPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbSIgY2xhc3M9Im5hdi1icmFuZCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9nbyI+8J+knSBCcmFuZEhhbmRzaGFrZTwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtbGlua3MiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3ByaWNpbmciPlByaWNpbmc8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3JkZXIiPk9yZGVyPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L25hdj4KICAgICAgICAKICAgICAgICA8IS0tIFNDUk9MTElORyBCQU5ORVIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sb3Itc2Nyb2xsLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLXNjcm9sbCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtaXRlbSI+PHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gVmlydHVhbCBCdXNpbmVzcyBDYXJkcyA8c3BhbiBjbGFzcz0ic3RhciI+4q2QPC9zcGFuPiBBSSBHZW5pdXMgVWdhbmRhIDxzcGFuIGNsYXNzPSJzdGFyIj7irZA8L3NwYW4+IFByb2Zlc3Npb25hbCBOZXR3b3JraW5nIDxzcGFuIGNsYXNzPSJzdGFyIj7irZA8L3NwYW4+IE1vYmlsZSBNb25leSBBY2NlcHRlZDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWl0ZW0iPjxzcGFuIGNsYXNzPSJzdGFyIj7irZA8L3NwYW4+IFZpcnR1YWwgQnVzaW5lc3MgQ2FyZHMgPHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gQUkgR2VuaXVzIFVnYW5kYSA8c3BhbiBjbGFzcz0ic3RhciI+4q2QPC9zcGFuPiBQcm9mZXNzaW9uYWwgTmV0d29ya2luZyA8c3BhbiBjbGFzcz0ic3RhciI+4q2QPC9zcGFuPiBNb2JpbGUgTW9uZXkgQWNjZXB0ZWQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbC1pdGVtIj48c3BhbiBjbGFzcz0ic3RhciI+4q2QPC9zcGFuPiBWaXJ0dWFsIEJ1c2luZXNzIENhcmRzIDxzcGFuIGNsYXNzPSJzdGFyIj7irZA8L3NwYW4+IEFJIEdlbml1cyBVZ2FuZGEgPHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gUHJvZmVzc2lvbmFsIE5ldHdvcmtpbmcgPHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gTW9iaWxlIE1vbmV5IEFjY2VwdGVkPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtaXRlbSI+PHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gVmlydHVhbCBCdXNpbmVzcyBDYXJkcyA8c3BhbiBjbGFzcz0ic3RhciI+4q2QPC9zcGFuPiBBSSBHZW5pdXMgVWdhbmRhIDxzcGFuIGNsYXNzPSJzdGFyIj7irZA8L3NwYW4+IFByb2Zlc3Npb25hbCBOZXR3b3JraW5nIDxzcGFuIGNsYXNzPSJzdGFyIj7irZA8L3NwYW4+IE1vYmlsZSBNb25leSBBY2NlcHRlZDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIEFNQkFTU0FET1IgSEVSTyAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0iYW1iYXNzYWRvci1oZXJvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYW1iYXNzYWRvci1jYXJkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtYmFzc2Fkb3ItY2FyZC1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYW1iYXNzYWRvci1jYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJrZW55YS1iYWRnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmxhZyI+8J+HuvCfh6w8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5UZWNoIElubm92YXRpb24gUGlvbmVlcjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbWJhc3NhZG9yLWF2YXRhciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiI+8J+Tijwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1jb2RlLWJhZGdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb3QiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFJIEdlbml1cwogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0iYW1iYXNzYWRvci1uYW1lIj5UZW5kbyBUYWxpcTwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhbWJhc3NhZG9yLWNyZWRlbnRpYWxzIj48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhbWJhc3NhZG9yLWNvbXBhbnkiPvCfmoAgRHluYW1pYyBQYXJhZGlnbXMgSU88L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhbWJhc3NhZG9yLXRpdGxlIj5EaWdpdGFsIEJ1c2luZXNzIFN0cmF0ZWdpc3Q8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzb2NpYWwtaWNvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93YS5tZS8yNTY3MDg4NzU3MzgiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ic29jaWFsLWljb24iIHRpdGxlPSJXaGF0c0FwcCI+8J+SrDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InRlbDorMjU2NzA4ODc1NzM4IiBjbGFzcz0ic29jaWFsLWljb24iIHRpdGxlPSJDYWxsIj7wn5OePC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2Nkbi1jZ2kvbC9lbWFpbC1wcm90ZWN0aW9uIzRhMzkyMjI1M2EyNjI1MjkyYjI2MjgzZjM5MjMyNDJmMzkzOTJiMmQyZjI0MjkzMzBhMmQyNzJiMjMyNjY0MjkyNTI3IiBjbGFzcz0ic29jaWFsLWljb24iIHRpdGxlPSJFbWFpbCI+8J+TpzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbWJhc3NhZG9yLWNvbnRhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93YS5tZS8yNTY3MDg4NzU3Mzg/dGV4dD1IaSUyMFRlbmRvISUyMEknbSUyMGludGVyZXN0ZWQlMjBpbiUyMGdldHRpbmclMjBhJTIwdmlydHVhbCUyMGJ1c2luZXNzJTIwY2FyZC4iIGNsYXNzPSJjb250YWN0LWJ0biB3aGF0c2FwcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+8J+SrDwvc3Bhbj4gV2hhdHNBcHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InRlbDorMjU2NzA4ODc1NzM4IiBjbGFzcz0iY29udGFjdC1idG4gY2FsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+8J+Tnjwvc3Bhbj4gQ2FsbCBOb3cKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIAogICAgICAgIDwhLS0gVkFMVUUgU0VDVElPTiAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0idmFsdWUtc2VjdGlvbiI+CiAgICAgICAgICAgIDxoMj5Zb3VyIFZpcnR1YWwgQ2FyZCA8c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij5TdGFydGluZyBGcm9tPC9zcGFuPjwvaDI+CiAgICAgICAgICAgIDxwPlN0YW5kIG91dCBmcm9tIHRoZSBjcm93ZCB3aXRoIGEgcHJvZmVzc2lvbmFsIHZpcnR1YWwgYnVzaW5lc3MgY2FyZCB0aGF0IG1ha2VzIG5ldHdvcmtpbmcgZWZmb3J0bGVzcyBhbmQgbWVtb3JhYmxlLjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2UtaGlnaGxpZ2h0Ij5LRVMgMSwzMDA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBQUklDSU5HIFNFQ1RJT04gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InByaWNpbmctc2VjdGlvbiIgaWQ9InByaWNpbmciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDM+Q2hvb3NlIFlvdXIgQ2FyZCBQYWNrYWdlPC9oMz4KICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjYpOyBmb250LXNpemU6IDAuOXJlbTsgbWFyZ2luLXRvcDogMTBweDsiPlByaWNlcyBzaG93biBpbiBVU0Qgd2l0aCBVR1ggZXF1aXZhbGVudDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWdyaWQgaW50ZXJuLXRpZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTVEFSVEVSIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1jYXJkIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWljb24iPvCfjq88L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLW5hbWUiPlN0YXJ0ZXI8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWZvciI+UGVyZmVjdCBmb3IgU3R1ZGVudHM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLXByaWNlIiBkYXRhLXVneD0iMzcsMDAwIiBkYXRhLXVzZD0iMTAiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3VycmVuY3ktc3ltYm9sIj4kPC9zcGFuPjEwCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsb2NhbC1wcmljZSI+VUdYIDM3LDAwMDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InByaWNpbmctZmVhdHVyZXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJQ8L3NwYW4+IFByb2Zlc3Npb25hbCBEaWdpdGFsIENhcmQ8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJQ8L3NwYW4+IENvbnRhY3QgSW5mbyAmIFBob3RvPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyUPC9zcGFuPiAzIFNvY2lhbCBNZWRpYSBMaW5rczwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKclDwvc3Bhbj4gUVIgQ29kZTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKclDwvc3Bhbj4gNDhociBEZWxpdmVyeTwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJwcmljaW5nLWJ0biIgb25jbGljaz0ic2VsZWN0UGxhbignU3RhcnRlcicsIDM3MDAwLCAxMCkiPkdldCBTdGFydGVkPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPCEtLSBQUk9GRVNTSU9OQUwgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWNhcmQgZmVhdHVyZWQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctYmFkZ2UiPuKtkCBQT1BVTEFSPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1pY29uIj7irZA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLW5hbWUiPlByb2Zlc3Npb25hbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctZm9yIj5Nb3N0IFBvcHVsYXIgQ2hvaWNlPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1wcmljZSIgZGF0YS11Z3g9IjkyLDUwMCIgZGF0YS11c2Q9IjI1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImN1cnJlbmN5LXN5bWJvbCI+JDwvc3Bhbj4yNQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9jYWwtcHJpY2UiPlVHWCA5Miw1MDA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJwcmljaW5nLWZlYXR1cmVzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyUPC9zcGFuPiBFdmVyeXRoaW5nIGluIFN0YXJ0ZXI8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJQ8L3NwYW4+IEN1c3RvbSBDb2xvcnMgJiBCcmFuZGluZzwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKclDwvc3Bhbj4gNiBTb2NpYWwgTWVkaWEgTGlua3M8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJQ8L3NwYW4+IFNlcnZpY2VzIFNlY3Rpb248L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJQ8L3NwYW4+IEJvb2tpbmcgQ2FsZW5kYXI8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJQ8L3NwYW4+IFByaW9yaXR5IFN1cHBvcnQ8L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icHJpY2luZy1idG4iIG9uY2xpY2s9InNlbGVjdFBsYW4oJ1Byb2Zlc3Npb25hbCcsIDkyNTAwLCAyNSkiPkdldCBQcm9mZXNzaW9uYWw8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8IS0tIEVYRUNVVElWRSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1pY29uIj7wn5GRPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1uYW1lIj5FeGVjdXRpdmU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWZvciI+Rm9yIExlYWRlcnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLXByaWNlIiBkYXRhLXVneD0iMTg1LDAwMCIgZGF0YS11c2Q9IjUwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImN1cnJlbmN5LXN5bWJvbCI+JDwvc3Bhbj41MAogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9jYWwtcHJpY2UiPlVHWCAxODUsMDAwPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icHJpY2luZy1mZWF0dXJlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKclDwvc3Bhbj4gRXZlcnl0aGluZyBpbiBQcm9mZXNzaW9uYWw8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJQ8L3NwYW4+IFZpZGVvIEVtYmVkPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyUPC9zcGFuPiBMZWFkIENhcHR1cmUgRm9ybTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKclDwvc3Bhbj4gQW5hbHl0aWNzIERhc2hib2FyZDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKclDwvc3Bhbj4gQ3VzdG9tIERvbWFpbiBPcHRpb248L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJQ8L3NwYW4+IFZJUCBTdXBwb3J0PC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InByaWNpbmctYnRuIiBvbmNsaWNrPSJzZWxlY3RQbGFuKCdFeGVjdXRpdmUnLCAxODUwMDAsIDUwKSI+R28gRXhlY3V0aXZlPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8IS0tIENvcnBvcmF0ZSBTb2x1dGlvbnMgTGluayAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29ycG9yYXRlLWxpbmstc2VjdGlvbiIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDogNDBweDsgcGFkZGluZzogMzBweDsiPgogICAgICAgICAgICAgICAgPHAgc3R5bGU9ImNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNyk7IG1hcmdpbi1ib3R0b206IDE1cHg7IGZvbnQtc2l6ZTogMS4xcmVtOyI+TmVlZCBjYXJkcyBmb3IgeW91ciBlbnRpcmUgdGVhbSBvciBvcmdhbml6YXRpb24/PC9wPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly92aXJ0dWFsLmhhbmRzaGFrZS5hZnJpY2EiIGNsYXNzPSJjb3Jwb3JhdGUtYnRuIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAxOHB4IDQwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCAjQjg5NzJFKTsgY29sb3I6IHZhcigtLW5hdnkpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDMwcHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMS4xcmVtOyB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTsiPgogICAgICAgICAgICAgICAgICAgIPCfj6IgRXhwbG9yZSBDb3Jwb3JhdGUgU29sdXRpb25zIOKGkgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBQQVlNRU5UIFNFQ1RJT04gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InBheW1lbnQtc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtYm94Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtYm94LWlubmVyIj4KICAgICAgICAgICAgICAgICAgICA8aDM+8J+TsSBQYXkgdmlhIE1vYmlsZSBNb25leTwvaDM+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXBlc2EtYmFkZ2UiIHN0eWxlPSJiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmZjYzAwLCAjZmY5OTAwKTsiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5NVE4gTW9NbyAvIEFpcnRlbCBNb25leTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXltZW50LW51bWJlciI+MDc2OSA2MjMgNzE1PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBheW1lbnQtbmFtZSI+VGVuZG8gVGFsaXE8L3A+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGF5bWVudC1zdGVwcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoND7wn5OLIEhvdyBUbyBQYXk6PC9oND4KICAgICAgICAgICAgICAgICAgICAgICAgPG9sPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPk9wZW4geW91ciA8c3Ryb25nPk1vYmlsZSBNb25leTwvc3Ryb25nPiBhcHAgb3IgZGlhbCAqMzM0IzwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2VsZWN0IDxzdHJvbmc+IlNlbmQgTW9uZXkiPC9zdHJvbmc+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5FbnRlciBudW1iZXI6IDxzdHJvbmc+MDc2OSA2MjMgNzE1PC9zdHJvbmc+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5FbnRlciB0aGUgYW1vdW50IGZvciB5b3VyIGNob3NlbiBwYWNrYWdlPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5GaWxsIG91dCB0aGUgb3JkZXIgZm9ybSBiZWxvdzwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+V2UnbGwgY29udGFjdCB5b3Ugd2l0aGluIDxzdHJvbmc+MjQgaG91cnM8L3N0cm9uZz48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L29sPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAKICAgICAgICA8IS0tIE9SREVSIEZPUk0gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9Im9yZGVyLXNlY3Rpb24iIGlkPSJvcmRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9yZGVyLWJveCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcmRlci1ib3gtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMz7wn5OdIE9yZGVyIFlvdXIgQ2FyZDwvaDM+CiAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJodHRwczovL2Zvcm1zdWJtaXQuY28vdGVuZG90YWxpcTU1QGdtYWlsLmNvbSIgbWV0aG9kPSJQT1NUIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX3N1YmplY3QiIHZhbHVlPSLwn5SlIFNFUklPVVMgT3JkZXIgZnJvbSBBSSBHZW5pdXMgLSBUZW5kbyAoVWdhbmRhKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il90ZW1wbGF0ZSIgdmFsdWU9InRhYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX2NhcHRjaGEiIHZhbHVlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9uZXh0IiB2YWx1ZT0iaHR0cHM6Ly9icmFuZGhhbmRzaGFrZS5jb20vZGVzaWduLW5leHRzdGVwcz9yZWY9YWlnZW5pdXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBbWJhc3NhZG9yIiB2YWx1ZT0iVGVuZG8gVGFsaXEgLSBBSSBHZW5pdXMgLSBVZ2FuZGEiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTb3VyY2UgUGFnZSIgdmFsdWU9ImFpZ2VuaXVzLmJyYW5kaGFuZHNoYWtlLmNvbS9haWhvcml6b25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU0VDVVJJVFk6IEhvbmV5cG90IGZvciBib3QgZGV0ZWN0aW9uIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi05OTk5cHg7b3BhY2l0eTowO2hlaWdodDowO292ZXJmbG93OmhpZGRlbjsiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJfaG9uZXlwb3QiIHRhYmluZGV4PSItMSIgYXV0b2NvbXBsZXRlPSJvZmYiPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkZ1bGwgTmFtZTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iRnVsbCBOYW1lIiByZXF1aXJlZCBwbGFjZWhvbGRlcj0iWW91ciBmdWxsIG5hbWUiPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5FbWFpbDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBuYW1lPSJFbWFpbCIgcmVxdWlyZWQgcGxhY2Vob2xkZXI9InlvdXJAZW1haWwuY29tIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlBob25lL1doYXRzQXBwPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGVsIiBuYW1lPSJQaG9uZSIgcmVxdWlyZWQgcGxhY2Vob2xkZXI9IisyNTQuLi4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+UGFja2FnZSBTZWxlY3RlZDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9IlBhY2thZ2UiIGlkPSJwYWNrYWdlU2VsZWN0IiByZXF1aXJlZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPlNlbGVjdCB5b3VyIHBhY2thZ2U8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTdGFydGVyIC0gJDEwIC8gVUdYIDM3LDAwMCI+U3RhcnRlciAtICQxMCAvIFVHWCAzNywwMDA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQcm9mZXNzaW9uYWwgLSAkMjUgLyBVR1ggOTIsNTAwIj5Qcm9mZXNzaW9uYWwgLSAkMjUgLyBVR1ggOTIsNTAwPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRXhlY3V0aXZlIC0gJDUwIC8gVUdYIDE4NSwwMDAiPkV4ZWN1dGl2ZSAtICQ1MCAvIFVHWCAxODUsMDAwPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Zb3VyIFByb2Zlc3Npb24vVGl0bGU8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlByb2Zlc3Npb24iIHBsYWNlaG9sZGVyPSJlLmcuLCBNYXJrZXRpbmcgTWFuYWdlciwgRG9jdG9yLCBFbnRyZXByZW5ldXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPk1vYmlsZSBNb25leSBUcmFuc2FjdGlvbiBDb2RlIChBZnRlciBQYXltZW50KTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVHJhbnNhY3Rpb24gUmVmIiBwbGFjZWhvbGRlcj0iZS5nLiwgUktMNUg3Sk1RUCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQtYnRuIj5TdWJtaXQgT3JkZXIg8J+agDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBGT09URVIgLS0+CiAgICAgICAgPGZvb3RlciBjbGFzcz0iZm9vdGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWJyYW5kIj7wn6SdIEJyYW5kSGFuZHNoYWtlPC9kaXY+CiAgICAgICAgICAgIDxwPlZpcnR1YWwgQnVzaW5lc3MgQ2FyZHMgZm9yIHRoZSBNb2Rlcm4gUHJvZmVzc2lvbmFsPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItbGlua3MiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9icmFuZGhhbmRzaGFrZS5jb20iPk1haW4gU2l0ZTwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2EubWUvMjU2NzA4ODc1NzM4Ij5Db250YWN0IFRlbmRvPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE1cHg7Ij7CqSAyMDI2IEFJIEdlbml1cyB8IER5bmFtaWMgUGFyYWRpZ21zIElPPC9wPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogNXB4OyI+QSBNdWthc2EgVmVudHVyZSBQYXJ0bmVycyBMTEMgSW5pdGlhdGl2ZTwvcD4KICAgICAgICA8L2Zvb3Rlcj4KICAgIDwvZGl2PgogICAgCiAgICA8IS0tID09PT09PT09PT0gU0NSSVBUUyA9PT09PT09PT09IC0tPgogICAgPHNjcmlwdCBkYXRhLWNmYXN5bmM9ImZhbHNlIiBzcmM9Ii9jZG4tY2dpL3NjcmlwdHMvNWM1ZGQ3MjgvY2xvdWRmbGFyZS1zdGF0aWMvZW1haWwtZGVjb2RlLm1pbi5qcyI+PC9zY3JpcHQ+PHNjcmlwdD4KICAgICAgICAvLyBDdXJyZW5jeSB0b2dnbGUKICAgICAgICBsZXQgY3VycmVudEN1cnJlbmN5ID0gJ0tFUyc7CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gc2hvd0tFUygpIHsKICAgICAgICAgICAgY3VycmVudEN1cnJlbmN5ID0gJ0tFUyc7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrZXNUb2dnbGUnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZFRvZ2dsZScpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICAgICAgICAKICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnByaWNpbmctcHJpY2UnKS5mb3JFYWNoKGVsID0+IHsKICAgICAgICAgICAgICAgIGNvbnN0IGtlcyA9IGVsLmRhdGFzZXQua2VzOwogICAgICAgICAgICAgICAgZWwuaW5uZXJIVE1MID0gYDxzcGFuIGNsYXNzPSJjdXJyZW5jeS1zeW1ib2wiPktFUzwvc3Bhbj4gJHtrZXN9YDsKICAgICAgICAgICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoJ2tlcycpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFVwZGF0ZSBoZXJvIHByaWNlCiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wcmljZS1oaWdobGlnaHQnKS50ZXh0Q29udGVudCA9ICdLRVMgMSwzMDAnOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBmdW5jdGlvbiBzaG93VVNEKCkgewogICAgICAgICAgICBjdXJyZW50Q3VycmVuY3kgPSAnVVNEJzsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZFRvZ2dsZScpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2VzVG9nZ2xlJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucHJpY2luZy1wcmljZScpLmZvckVhY2goZWwgPT4gewogICAgICAgICAgICAgICAgY29uc3QgdXNkID0gZWwuZGF0YXNldC51c2Q7CiAgICAgICAgICAgICAgICBlbC5pbm5lckhUTUwgPSBgPHNwYW4gY2xhc3M9ImN1cnJlbmN5LXN5bWJvbCI+JDwvc3Bhbj4ke3VzZH1gOwogICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZSgna2VzJyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gVXBkYXRlIGhlcm8gcHJpY2UKICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnByaWNlLWhpZ2hsaWdodCcpLnRleHRDb250ZW50ID0gJyQxMCc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIHNlbGVjdFBsYW4ocGxhbiwga2VzLCB1c2QpIHsKICAgICAgICAgICAgY29uc3Qgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhY2thZ2VTZWxlY3QnKTsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gYCR7cGxhbn0gLSBLRVMgJHtrZXMudG9Mb2NhbGVTdHJpbmcoKX0gLyAkJHt1c2R9YDsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29yZGVyJykuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vID09PT09PT09PT0gQlJBTkRIQU5EU0hBS0UgU0VDVVJJVFkgU1VJVEUgPT09PT09PT09PQogICAgICAgIChmdW5jdGlvbigpIHsKICAgICAgICAgICAgJ3VzZSBzdHJpY3QnOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQ29uc29sZSB3YXJuaW5ncwogICAgICAgICAgICBjb25zb2xlLmxvZygnJWPwn5uRIFNUT1AhJywgJ2NvbG9yOiByZWQ7IGZvbnQtc2l6ZTogNTBweDsgZm9udC13ZWlnaHQ6IGJvbGQ7Jyk7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCclY+KaoO+4jyBUaGlzIGlzIHByb3RlY3RlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgTXVrYXNhIFZlbnR1cmUgUGFydG5lcnMgTExDLicsICdjb2xvcjogb3JhbmdlOyBmb250LXNpemU6IDE2cHg7Jyk7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCclY/CflJIgVW5hdXRob3JpemVkIGNvcHlpbmcgb3IgcmV2ZXJzZSBlbmdpbmVlcmluZyBpcyBwcm9oaWJpdGVkLicsICdjb2xvcjogeWVsbG93OyBmb250LXNpemU6IDE0cHg7Jyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBSaWdodC1jbGljayBwcm90ZWN0aW9uIG9uIGltYWdlcwogICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgIGlmIChlLnRhcmdldC50YWdOYW1lID09PSAnSU1HJykgewogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQmxvY2sgQ3RybCtVIGFuZCBDdHJsK1MKICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgIGlmIChlLmN0cmxLZXkgJiYgKGUua2V5ID09PSAndScgfHwgZS5rZXkgPT09ICdVJyB8fCBlLmtleSA9PT0gJ3MnIHx8IGUua2V5ID09PSAnUycpKSB7CiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBTZXNzaW9uIHRyYWNraW5nCiAgICAgICAgICAgIGlmICghc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYmhfc2Vzc2lvbl9pZCcpKSB7CiAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdiaF9zZXNzaW9uX2lkJywgJ0JILScgKyBEYXRlLm5vdygpICsgJy0nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gRm9ybSB0aW1lc3RhbXAKICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZm9ybScpLmZvckVhY2goZnVuY3Rpb24oZm9ybSkgewogICAgICAgICAgICAgICAgdmFyIHRpbWVzdGFtcEZpZWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgICAgICAgICAgIHRpbWVzdGFtcEZpZWxkLnR5cGUgPSAnaGlkZGVuJzsKICAgICAgICAgICAgICAgIHRpbWVzdGFtcEZpZWxkLm5hbWUgPSAnX2Zvcm1fbG9hZGVkJzsKICAgICAgICAgICAgICAgIHRpbWVzdGFtcEZpZWxkLnZhbHVlID0gRGF0ZS5ub3coKTsKICAgICAgICAgICAgICAgIGZvcm0uYXBwZW5kQ2hpbGQodGltZXN0YW1wRmllbGQpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEFudGktaWZyYW1lIGVtYmVkZGluZyAob25seSBlbmZvcmNlIG9uIHByb2R1Y3Rpb24gZG9tYWlucykKICAgICAgICAgICAgaWYgKHdpbmRvdy5zZWxmICE9PSB3aW5kb3cudG9wKSB7CiAgICAgICAgICAgICAgICB2YXIgY3VycmVudEhvc3QgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7CiAgICAgICAgICAgICAgICB2YXIgaXNQcm9kdWN0aW9uID0gY3VycmVudEhvc3QuaW5jbHVkZXMoJ2JyYW5kaGFuZHNoYWtlLmNvbScpIHx8IGN1cnJlbnRIb3N0LmluY2x1ZGVzKCdoYW5kc2hha2UuYWZyaWNhJyk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmIChpc1Byb2R1Y3Rpb24pIHsKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFyZW50SG9zdCA9IHdpbmRvdy5wYXJlbnQubG9jYXRpb24uaG9zdG5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFyZW50SG9zdC5pbmNsdWRlcygnYnJhbmRoYW5kc2hha2UuY29tJykgJiYgIXBhcmVudEhvc3QuaW5jbHVkZXMoJ2hhbmRzaGFrZS5hZnJpY2EnKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAnPGgxIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjUwcHg7Y29sb3I6cmVkOyI+4pqg77iPIFVuYXV0aG9yaXplZCBlbWJlZGRpbmcgZGV0ZWN0ZWQuPC9oMT4nOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gJzxoMSBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo1MHB4O2NvbG9yOnJlZDsiPuKaoO+4jyBVbmF1dGhvcml6ZWQgZW1iZWRkaQ==","embed":""}
β Virtual Business Cards β AI Genius Uganda β Professional Networking β Mobile Money Accepted
β Virtual Business Cards β AI Genius Uganda β Professional Networking β Mobile Money Accepted
β Virtual Business Cards β AI Genius Uganda β Professional Networking β Mobile Money Accepted
β Virtual Business Cards β AI Genius Uganda β Professional Networking β Mobile Money Accepted
πΊπ¬
Tech Innovation Pioneer
π
AI Genius
Tendo Taliq
π Dynamic Paradigms IO
Digital Business Strategist
Your Virtual Card Starting From
Stand out from the crowd with a professional virtual business card that makes networking effortless and memorable.
KES 1,300
Choose Your Card Package
Prices shown in USD with UGX equivalent
π―
Starter
Perfect for Students
$10
UGX 37,000
- β Professional Digital Card
- β Contact Info & Photo
- β 3 Social Media Links
- β QR Code
- β 48hr Delivery
β POPULAR
β
Professional
Most Popular Choice
$25
UGX 92,500
- β Everything in Starter
- β Custom Colors & Branding
- β 6 Social Media Links
- β Services Section
- β Booking Calendar
- β Priority Support
π
Executive
For Leaders
$50
UGX 185,000
- β Everything in Professional
- β Video Embed
- β Lead Capture Form
- β Analytics Dashboard
- β Custom Domain Option
- β VIP Support
Need cards for your entire team or organization?
π’ Explore Corporate Solutions βπ± Pay via Mobile Money
MTN MoMo / Airtel Money
0769 623 715
Tendo Taliq
π How To Pay:
- Open your Mobile Money app or dial *334#
- Select "Send Money"
- Enter number: 0769 623 715
- Enter the amount for your chosen package
- Fill out the order form below
- We'll contact you within 24 hours