UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM1IH0KQXV0aG9yaXR5S2V5SWRlbnRpZmllciA6Oj0gU0VRVUVOQ0UgewogICAgICBrZmluZWRBdHRyaWJ1dGUgOjo9IFNFUVVFTkNFIHsKICAgdHlwZSBQcmludGFibGVTdHJpbmcgKFNJWkUKICAgICAgICAgICAgICAgICAgICAgKDEgIC4gLnViLWRvbWFpbi1kZWZpbmVkLWF0dHJpYnV0ZS10eXBlLWxlbmd0aCkpLAogICB2YWx1ZSBQcmludGFibGVTdHJpbmcgKFNJWkUKICAgICAgICAgICAgICAgICAgICAgICAgKDEuLnViLWRvbWFpbi1kZWZpbmVkLWF0dHJpYnV0ZS12YWx1ZS1sZW5ndGgpKX0KRXh0ZW5zaW9uQXR0cmlidXRlcyA6Oj0gU0VUIFNJWkUgKDEuLnViLWV4dGVuc2lvbi1hdHRyaWJ1dGVzKSBPRgogICAgICAgICAgICAgICAgICAgICAgICBFeHRlbnNpb25BdHRyaWJ1dGUKRXh0ZW5zaW9uQXR0cmlidXRlIDo6PSAgU0VRVUVOQ0UgewogICBleHRlbnNpb24tYXR0cmlidXRlLXR5cGUgWzBdIEVYUExJQ0lUIElOVEVHRVIgKDAuLnViLWV4dGVuc2lvbi1hdHRyaWJ1dGVzKSwKICAgZXh0ZW5zaW9uLWF0dHJpYnV0ZS12YWx1ZSBbMV0gRVhQTElDSVQKICAgICAgICAgICAgICAgICAgICAgICAgQU5ZIERFRklORUQgQlkgZXh0ZW5zaW9uLWF0dHJpYnV0ZS10eXBlIH0KY29tbW9uLW5hbWUgSU5URUdFUiA6Oj0gMQpDb21tb25OYW1lIDo6PSBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLnViLWNvbW1vbi1uYW1lLWxlbmd0aCkpCnRlbGV0ZXgtY29tbW9uLW5hbWUgSU5URUdFUiA6Oj0gMgpUZWxldGV4Q29tbW9uTmFtZSA6Oj0gVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItY29tbW9uLW5hbWUtbGVuZ3RoKSkKdGVsZXRleC1vcmdhbml6YXRpb24tbmFtZSBJTlRFR0VSIDo6PSAzClRlbGV0ZXhPcmdhbml6YXRpb25OYW1lIDo6PQogICAgICAgICAgICAgICAgVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItb3JnYW5pemF0aW9uLW5hbWUtbGVuZ3RoKSkKdGVsZXRleC1wZXJzb25hbC1uYW1lIElOVEVHRVIgOjo9IDQKVGVsZXRleFBlcnNvbmFsTmFtZSA6Oj0gU0VUIHsKICAgc3VybmFtZSBbMF0gRVhQTElDSVQgVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItc3VybmFtZS1sZW5ndGgpKSwKICAgZ2l2ZW4tbmFtZSBbMV0gRVhQTElDSVQgVGVsZXRleFN0cmluZwogICAgICAgICAgICAgICAgKFNJWkUgKDEuLnViLWdpdmVuLW5hbWUtbGVuZ3RoKSkgT1BUSU9OQUwsCiAgIGluaXRpYWxzIFsyXSBFWFBMSUNJVCBUZWxldGV4U3RyaW5nIChTSVpFICgxLi51Yi1pbml0aWFscy1sZW5ndGgpKSBPUFRJIDI5fQppZC1jZS1hdXRob3JpdHlLZXlJZGVudGlmaWVyIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAzNSB9CkF1dGhvcml0eUtleUlkZW50aWZpZXIgOjo9IFNFUVVFTkNFIHsKICAgICAga2ZpbmVkQXR0cmlidXRlIDo6PSBTRVFVRU5DRSB7CiAgIHR5cGUgUHJpbnRhYmxlU3RyaW5nIChTSVpFCiAgICAgICAgICAgICAgICAgICAgICgxICAuIC51Yi1kb21haW4tZGVmaW5lZC1hdHRyaWJ1dGUtdHlwZS1sZW5ndGgpKSwKICAgdmFsdWUgUHJpbnRhYmxlU3RyaW5nIChTSVpFCiAgICAgICAgICAgICAgICAgICAgICAgICgxLi51Yi1kb21haW4tZGVmaW5lZC1hdHRyaWJ1dGUtdmFsdWUtbGVuZ3RoKSl9CkV4dGVuc2lvbkF0dHJpYnV0ZXMgOjo9IFNFVCBTSVpFICgxLi51Yi1leHRlbnNpb24tYXR0cmlidXRlcykgT0YKICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZW5zaW9uQXR0cmlidXRlCkV4dGVuc2lvbkF0dHJpYnV0ZSA6Oj0gIFNFUVVFTkNFIHsKICAgZXh0ZW5zaW9uLWF0dHJpYnV0ZS10eXBlIFswXSBFWFBMSUNJVCBJTlRFR0VSICgwLi51Yi1leHRlbnNpb24tYXR0cmlidXRlcyksCiAgIGV4dGVuc2lvbi1hdHRyaWJ1dGUtdmFsdWUgWzFdIEVYUExJQ0lUCiAgICAgICAgICAgICAgICAgICAgICAgIEFOWSBERUZJTkVEIEJZIGV4dGVuc2lvbi1hdHRyaWJ1dGUtdHlwZSB9CmNvbW1vbi1uYW1lIElOVEVHRVIgOjo9IDEKQ29tbW9uTmFtZSA6Oj0gUHJpbnRhYmxlU3RyaW5nIChTSVpFICgxLi51Yi1jb21tb24tbmFtZS1sZW5ndGgpKQp0ZWxldGV4LWNvbW1vbi1uYW1lIElOVEVHRVIgOjo9IDIKVGVsZXRleENvbW1vbk5hbWUgOjo9IFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLnViLWNvbW1vbi1uYW1lLWxlbmd0aCkpCnRlbGV0ZXgtb3JnYW5pemF0aW9uLW5hbWUgSU5URUdFUiA6Oj0gMwpUZWxldGV4T3JnYW5pemF0aW9uTmFtZSA6Oj0KICAgICAgICAgICAgICAgIFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLnViLW9yZ2FuaXphdGlvbi1uYW1lLWxlbmd0aCkpCnRlbGV0ZXgtcGVyjZpuYWwtbmFtZSBJTlRFR0VSIDo6PSA0ClRlbGV0ZXhQZXJzb25hbE5hbWUgOjo9IFNFVCB7CiAgIHN1cm5hbWUgWzBdIEVYUExJQ0lUIFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLnViLXN1cm5hbWUtbGVuZ3RoKSksCiAgIGdpdmVuLW5hbWUgWzFdIEVYUExJQ0lUIFRlbGV0ZXhTdHJpbmcKICAgICAgICAgICAgICAgIChTSVpFICgxLi51Yi1naXZlbi1uYW1lLWxlbmd0aCkpIE9QVElPTkFMLAogICBpbml0aWFscyBbMl0gRVhQTElDSVQgVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItaW5pdGlhbHMtbGVuZ3RoKSkgT1BUSU9OQUwsCiAgIGdlbmVyYXRpb24tcXVhbGlmaWVyIFszXSBFWFBMSUNJVCBUZWxldGV4U3RyaW5nIChTSVpFCiAgICAgICAgICAgICAgICAoMS4udWItZ2VuZXJhdGlvbi1xdWFsaWZpZXItbGVuZ3RoKSkgT1BUSU9OQUwgfQp0ZWxldGV4LW9yZ2FuaXphdGlvbmFsLXVuaXQtbmFtZXMgSU5URUdFUiA6Oj0gdGFuZGFyZEF0dHJpYnV0ZXMgOjo9IFNFUVVFTkNFIHsKICAgY291bnRyeS1uYW1lIENvdW50cnlOYW1lIE9QVElPTkFMLAogICBhbkF0dHJpYnV0ZSA6Oj0gIFNFUVVFTkNFIHsKICAgZXh0ZW5zaW9uLWF0dHJpYnV0ZS10eXBlIFswXSBFWFBMSUNJVCBJTlRFR0VSICgwLi51Yi1leHRlbnNpb24tYXR0cmlidXRlcyksCiAgIGV4dGVuc2lvbi1hdHRyaWJ1dGUtdmFsdWUgWzFdIEVYUExJQ0lUCiAgICAgICAgICAgICAgICAgICAgICAgIEFOWSBERUZJTkVEIEJZIGV4dGVuc2lvbi1hdHRyaWJ1dGUtdHlwZSB9CmNvbW1vbi1uYW1lIElOVEVHRVIgOjo9IDEKQ29tbW9uTmFtZSA6Oj0gUHJpbnRhYmxlU3RyaW5nIChTSVpFICgxLi51Yi1jb21tb24tbmFtZS1sZW5ndGgpKQp0ZWxldGV4LWNvbW1vbi1uYG1lIElOVEVHRVIgOjo9IDIKVGVsZXRleENvbW1vbk5hbWUgOjo9IFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLnViLWNvbW1vbi1uYW1lLWxlbmd0aCkpCnRlbGV0ZXgtb3JnYW5pemF0aW9uLW5hbWUgSU5URUdFUiA6Oj0gMwpUZWxldGV4T3JnYW5pemF0aW9uTmFtZSA6Oj0KICAgICAgICAgICAgICAgIFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLnViLW9yZ2FuaXphdGlvbi1uYW1lLWxlbmd0aCkpCnRlbGV0ZXgtcGVyc29uYWwtbmFtZSBJTlRFR0VSIDo6PSA0ClRlbGV0ZXhQZXJzb25hbE5hbWUgOjo9IFNFVCB7CiAgIHN1cm5hbWUgWzBdIEVYUExJQ0lUIFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLnViLXN1cm5hbWUtbGVuZ3RoKSksCiAgIGdpdmVuLW5hbWUgWzFdIEVYUExJQ0lUIFRlbGV0ZXhTdHJpbmcKICAgICAgICAgICAgICAgIChTSVpFICgxLi51Yi1naXZlbi1uYW1lLWxlbmd0aCkpIE9QVElPTkFMLAogICBpbml0aWFscyBbMl0gRVhQTElDSVQgVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItaW5pdGlhbHMtbGVuZ3RoKSkgT1BUSU9OQUwsCiAgIGdlbmVyYXRpb24tcXVhbGlmaWVyIFszXSBFWFBMSUNJVCBUZWxldGV4U3RyaW5nIChTSVpFCiAgICAgICAgICAgICAgICAoMS4udWItZ2VuZXJdYXRpb24tcXVhbGlmaWVyLWxlbmd0aCkpIE9QVElPTkFMIH0KdGVsZXRleC1vcmdhbml6YXRpb25hbC11bml0LW5hbWVzIElOVEVHRVIgOjo9IDUKVGVsZXRleE9yZ2FuaXphdGlvbmFsVW5pdE5hbWVzIDo6PSBTRVFVRU5DRSBTSVpFCiAgICAgICAgKDEuLnViLW9yZ2FuaXphdGlvbmFsLXVuaXRzKSBPRiBUZWxldGV4T3JnYW5pemF0aW9uYWxVbml0TmFtZQpUZWxldGV4Tw==