UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgewogICAgICBrZmluZWRBdHRyaWJ1dGUgOjo9IFNFUVVFTkNFIHsKICAgdHlwZSBQcmludGFibGVTdHJpbmcgKFNJWkUKICAgICAgICAgICAgICAgICAgICAgKDEgIC4gLnViLWRvbWFpbi1kZWZpbmVkLWF0dHJpYnV0ZS10eXBlLWxlbmd0aCkpLAogICB2YWx1ZSBQcmludGFibGVTdHJpbmcgKFNJWkUKICAgICAgICAgICAgICAgICAgICAgICAgKDEuLnViLWRvbWFpbi1kZWZpbmVkLWF0dHJpYnV0ZS12YWx1ZS1sZW5ndGgpKX0KRXh0ZW5zaW9uQXR0cmlidXRlcyA6Oj0gU0VUIFNJWkUgKDEuLnViLWV4dGVuc2lvbi1hdHRyaWJ1dGVzKSBPRgogICAgICAgICAgICAgICAgICAgICAgICBFeHRlbnNpb25BdHRyaWJ1dGUKRXh0ZW5zaW9uQXR0cmlidXRlIDo6PSAgU0VRVUVOQ0UgewogICBleHRlbnNpb24tYXR0cmlidXRlLXR5cGUgWzBdIEVYUExJQ0lUIElOVEVHRVIgKDAuLnViLWV4dGVuc2lvbi1hdHRyaWJ1dGVzKSwKICAgZXh0ZW5zaW9uLWF0dHJpYnV0ZS12YWx1ZSBbMV0gRVhQTElDSVQKICAgICAgICAgICAgICAgICAgICAgICAgQU5ZIERFRklORUQgQlkgZXh0ZW5zaW9uLWF0dHJpYnV0ZS10eXBlIH0KY29tbW9uLW5hbWUgSU5URUdFUiA6Oj0gMQpDb21tb25OYW1lIDo6PSBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLnViLWNvbW1vbi1uYW1lLWxlbmd0aCkpCnRlbGV0ZXgtY29tbW9uLW5hbWUgSU5URUdFUiA6Oj0gMgpUZWxldGV4Q29tbW9uTmFtZSA6Oj0gVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItb21jbW9uLW5hbWUtbGVuZ3RoKSkKdGVsZXRleC1vcmdhbml6YXRpb24tbmFtZSBJTlRFR0VSIDo6PSAzClRlbGV0ZXhPcmdhbml6YXRpb25OYW1lIDo6PQogICAgICAgICAgICAgICAgVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItb3JnYW5pemF0aW9uLW5hbWUtbGVuZ3RoKSkKdGVsZXRleC1wZXJzb25hbC1uYW1lIElOVEVHRVIgOjo9IDQKVGVsZXRleFBlcnNvbmFsTmFtZSA6Oj0gU0VUIHsKICAgc3VybmFtZSBbMF0gRVhQTElDSVQgVGVsZXRleFN0cmluZyAoU0laRSAgICAgSU5URUdFUiwKICAgICBnICAgICAgICAgICAgIElOVEVHRVIgIH0KT1JBZGRyZXNzIDo6PSBTRVFVRU5DRSB7CiAgIGJ1aWx0LWluLXN0YW5kYXJkLWF0dHJpYnV0ZXMgQnVpbHRJblN0YW5kYXJkQXR0cmlidXRlcywKICAgYnVpbHQtaW4tZG9tYWluLWRlZmluZWQtYXR0cmlidXRlcwogICAgICAgICAgICAgICAgICAgICAgICBCdWlsdEluRG9tYWluRGVmaW5lZEF0dHJpYnV0ZXMgT1BUSU9OQUwsCiAgIC0tIHNlZSBhbHNvIHRlbGV0ZXgtZG9tYWluLWRlZmluZWQtYXR0cmlidXRlcwogICBleHRlbnNpb24tYXR0cmlidXRlcyBFeHRlbnNpb25BdHRyaWJ1dGVzIE9QVElPTkFMIH0KQnVpbHRJblN0YW5kYXJkQXR0cmlidXRlcyA6Oj0gU0VRVUVOQ0UgewogICBjb3VudHJ5LW5hbWUgQ291bnRyeU5hbWUgT1BUSU9OQUwsCiAgIGFkbWluaXN0cmF0aW9uLWRvbWFpbi1uYW1lIEFkbWluaXN0cmF0aW9uRG9tYWluTmFtZSBPUFRJT05BTCwKICAgbmV0d29yay1hZGRyZXNzICAgICAgWzBdIEVYUExJQ0lUIE5ldHdvcmtBZGRyZXNzIE9QVElPTkFMLAogICAtLSBzZWUgYWxzbyBleHRlbmRlZC1uZXR3b3JrLWFkZHJlc3MKICAgdGVybWluYWwtaWRlbnRpZmllciAgWzFdIEVYUExJQ0lUIFRlcm1pbmFsSWRlbnRpZmllciBPUFRJT05BTCwKICAgcHJpdmF0ZS1kb21haW4tbmFtZSAgWzJdIEVYUExJQ0lUIFByaXZhdGVEb21haW5OYW1lIE9QVElPTkFMLAogICBvcmdhbml6YXRpb24tbmFtZSAgICBbM10gRVhQTElDSVQgT3JnYW5pemF0aW9uTmFtZSBPUFRJT05BTCwKICAgLS0gc2VlIGFsc28gdGVsZXRleC1vcmdhbml6YXRpb24tbmFtZQogICBudW1lcmljLXVzZXItaWRlbnRpZmllciAgICAgIFs0XSBFWFBMSUNJVCBOdW1lcmljVXNlcklkZW50aWZpZXIgT1BUSU9OQUwsCiAgIHBlcnNvbmFsLW5hbWUgICAgICAgIFs1XSBFWFBMSUNJVCBQZXJzb25hbE5hbWUgT1BUSU9OQUwsCiAgIC0tIHNlZSBhbHNvIHRlbGV0ZXgtcGVyc29uYWwtbmFtZQogICBvcmdhbml6YXRpb25hbC11bml0LW5hbWVzICAgIFs2XSBFWFBMSUNJVCBPcmdhbml6YXRpb25hbFVuaXROYW1lcyBPUFRJT05BTAogICAtLSBzZWUgYWxzbyB0ZWxldGV4LXJpbnRhYmxlU3RyaW5nIChTSVpFICgxLi51Yi1jb21tb24tbmFtZS1sZW5ndGgpKQp0ZWxldGV4LWNvbW1vbi1uYW1lIElOVEVHRVIgOjo9IDIKVGVsZXRleENvbW1vbk5hbWUgOjo9IFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLnViLWNvbW1vbi1uYW1lLWxlbmd0aCkpCnRlbGV0ZXgtb3JnYW5pemF0aW9uLW5hbWUgSU5URUdFUiA6Oj0gMwpUZWxldGV4T3JnYW5pemF0aW9uTmFtZSA6Oj0KICAgICAgICAgICAgICAgIFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLnViLW9yZ2FuaXphdGlvbi1uYW1lLWxlbmd0aCkpCnRlbGV0ZXgtcGVyc29uYWwtbmFtZSBJTlRFR0VSIDo6PSA0ClRlbGV0ZXhQZXJzb25hbE5hbWUgOjo9IFNFVCB7CiAgIHN1cm5hbWUgWzBdIEVYUExJQ0lUIFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLnViLXN1cm5hbWUtbGVuZ3RoKSksCiAgIGdpdmVuLW5hbWUgWzFdIEVYUExJQ0lUIFRlbGV0ZXhTdHJpbmcKICAgICAgICAgICAgICAgIChTSVpFICgxLi51Yi1naXZlbi1uYW1lLWxlbmd0aCkpIE9QVElPTkFMLAogICBpbml0aWFscyBbMl0gRVhQTElDSVQgVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItaW5pdGlhbHMtbGVuZ3RoKSkgT1BUSU9OQUwsCiAgIGdlbmVyYXRpb24tcXVhbGlmaWVyIFszXSBFWFBMSUNJVCBUZWxldGV4U3RyaW5nIChTSVpFCyAgICAgICAgICAgICAgUVVFTkNFIHsKICAgYnVpbHQtaW4tc3RhbmRhcmQtYXR0cmlidXRlcyBCdWlsdEluU3RhbmRhcmRBdHRyaWJ1dGVzLAogICBidWlsdC1pbi1kb21haW4tZGVmaW5lZC1hdHRyaWJ1dGVzCiAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWx0SW5Eb21haW5EZWZpbmVkQXR0cmlidXRlcyBPUFRJT05BTCwKICAgLS0gc2VlIGFsc28gdGVsZXRleC1kb21haW4tZGVmaW5lZC1hdHRyaWJ1dGVzCiAgIGV4dGVuc2lvbi1hdHRyaWJ1dGVzIEV4dGVuc2lvbkF0dHJpYnV0ZXMgT1BUSU9OQUwgfQpCdWlsdAEAAAAAAAAAcmRBdHRyaWJ1dGVzIDo6PSBTRVFVRU5DRSB7CiAgIGNvdW50cnktbmFtZSBDb3VudHJ5TmFtZSBPUFRJT05BTCwKICAgYWRtaW5pc3RyYXRpb24tZG9tYWluLW5hbWUgQWRtaW5pc3RyYXRpb25Eb21haW5OYW1lIE9QVElPTkFMLAogICBuZXR3b3JrLWFkZHJlc3MgICAgICBbMF0gRVhQTElDSVQgTmV0d29ya0FkZHJlc3MgT1BUSU9OQUwsCiAgIC0tIHNlZSBhbHNvIGV4dGVuZGVkLW5ldHdvcmstYWRkcmVzcwogICB0ZXJtaW5hbC1pZGVudGlmaWVyICBbMV0gRVhQTElDSVQgVGVybWluYWxJZGVudGlmaWVyIE9QVElPTkFMLAogICBwcml2YXRlLWRvbWFpbi1uYW1lICBbMl0gRVhQTElDSVQgUHJpdmF0ZURvbWFpbk5hbWUgT1BUSU9OQUwsCiAgIG9yZ2FuaXphdGlvbi1uYW1lICAgIFszXSBFWFBMSUNJVCBPcmdhbml6YXRpb25OYW1lIE9QVElPTkFMLAogICAtLSBzZWUgYWxzbyB0ZWxldGV4LW9yZ2FuaXphdGlvbi1uYW1lCiAgIG51bWVyaWMtdXNlci1pZGVudGlmaWVyICAgICAgWzRdIEVYUExJQ0lUIE51bWVyaWNVc2VySWRlbnRpZmllciBPUFRJT05BTCwKICAgcGVyc29uYWwtbmFtZSAgICAgICAgWzVdIEVYUExJQ0lUIFBlcnNvbmFsTmFtZSBPUFRJT05BTCwKICAgLS0gc2VlIGFsc28gdGVsZXRleC1wZXJzb25hbC1uYW1lCiAgIG9yZ2FuaXphdGlvbmFsLXVuaXQtbmFtZXMgICAgWzZdIEVYUExJQ0lUIE9yZ2FuaXphdGlvbmFsVW5pdE5hbWVzIE9QVElPTkFMCiAgIC0tIHNlZSBhbHNvIHRlbGV0ZXgtb3JnYW5pemF0aW9uYWwtdW5pdC1uYW1lcyAtLQp9CkNvdW50cnlOYW1lIDo6PSBbQVBQTElDQVRJT04gMV0gQ0hPSUNFIHsKICAgeDEyMS1kY2MtY29kZSBOdW1lQXR0cmlidXRlcyBPUFRJT05BTCwKICAgLS0gc2VlIGFsc28gdGVsZXRleC1kb21haW4tZGVmaW5lZC1hdHRyaWJ1dGVzCiAgIGV4dGVuc2lvbi1hdHRyaWJ1dGVzIEV4dGVuc2lvbkF0dHJpYnV0ZXMgT1BUSU9OQUwgfQpCdWlsdEluU3RhbmRhcmRBdHRyaWJ1dGVzIDo6PSBTRVFVRU5DRSB7CiAgIGNvdW50cnktbmFtZSBDb3VudHJ5TmFtZSBPUFRJT05BTCwKICAgYWRtaW5pc3RyYXRpb24tZG9tYWluLW5hbWUgQWRtaW5pc3RyYXRpb25Eb21haW5OYW1lIE9QVElPTkFMLAogICBuZXR3b3JrLWFkZHJlc3MgICAgICBbMF0gRVhQTElDSVQgTmV0d29ya0FkZHJlc3MgT1BUSU9OQUwsCiAgIC0tIHNlZSBhbHNvIGV4dGVuZGVkLW5ldHdvcmstYWRkcmVzcwogICB0ZXJtaW5hbC1pZGVudGlmaWVyICBbMV0gRVhQTElDSVQgVGVybWluYWxJZGVudGlmaWVyIE9QVElPTkFMLAogICBwcml2YXRlLWRvbWFpbi1uYW1lICBbMl0gRVhQTElDSVQgUHJpdmF0ZURvbWFpbk5hbWUgT1BUSU9OQUwsCiAgIG9yZ2FuaXphdGlvbi1uYW1lICAgIFszXSBFWFBMSUNJVCBPcmdhbml6YXRpb25OYW1lIE9QVElPTkFMLAogICAtLSBzZWUgYWxzbyB0ZWxldGV4LW9yZ2FuaXphdGlvbi1uYW1lCiAgIG51bWVyaWMtdXNlci1pZGVudGlmaWVyICAgICAgWzRdIEVYUExJQ0lUIE51bWVyaWNVc2VySWRlbnRpZmllciBPUFRJT05BTCwKICAgcGVyc29uYWwtbmFtZSAgICAgICAgWzVdIEVYUExJQ0lUIFBlcnNvbmFsTmFtZSBPUFRJT05BTCwKICAgLS0gc2VlIGFsc28gdGVsZXRleC1wZXJzb25hbC1uYW1lCiAgIG9yZ2FuaXphdGlvbmFsLXVuaXQtbmFtZXMgICAgWzZdIEVYUExJQ0lUIE9yZ2FuaXphdGlvbmFsVW5pdE5hbWVzIE9QVElPTkFMCiAgIC0tIHNlZSBhbHNvIHRlbGV0ZXgtb3JnYW5pemF0aW9uYWwtdW5pdC1uYW1lcyAtLQp9CkNvdW50cnlOYW1lIDo6PSBbQVBQTElDQVRJT04gMV0gQ0hPSUNFIHsKICAgeDEyMS1kY2MtY29kZSBOdW1lcmljU3RyaW5nCiAgICAgICAgICAgICAgICAoU0laRSAodWItY291bnRyeS1uYW1lLW51bWVyaWMtbGVuZ3RoKSksCiAgIGlzby0zMTY2LWFscGhhMi1jb2RlIFByaW50YWJsZVN0cmluZwogICAgICAgICAgICAgICAgKFNJWkUgKHViLWNvdW50cnktbmFtZS1hbDQwKSB4OWFsZ29yaXRobSg0KSAxIH0KRHNzLVBhcm1zICA6Oj0gIFNFUVVFTkNFICB7CiAgICAgcCAgICAgICAgICAgICBJTlRFR0VSLAogICAgIHEgICAgICAgICAgICAgSU5URUdFUiwKICAgICBnICAgICAgICAgICAgIElOVEVHRVIgIH0KT1JBZGRyZXNzIDo6PSBTRVFVRU5DRSB7CiAgIGJ1aWx0LWluLXN0YW5kYXJkLWF0dHJpYnV0ZXMgQnVpbHRJblN0YW5kYXJkQXR0cmlidXRlcywKICAgYnVpbHQtaW4tZG9tYWluLWRlZmluZWQtYXR0cmlidXRlcwogICAgICAgICAgICAgICAgICAgICAgICBCdWlsdEluRG9tYWluRGVmaW5lZEF0dHJpYnV0ZXMgT1BUSU9OQUwsCiAgIC0tIHNlZSBhbHNvIHRlbGV0ZXgtZG9tYWluLWRlZmluZWQtYXR0cmlidXRlcwogICBleHRlbnNpb24tYXR0cmlidXRlcyBFeHRlbnNpb25BdHRyaWJ1dGVzIE9QVElPTkFMIH0KQnVpbHRJblN0YW5kYXJkQXR0cmlidXRlcyA6Oj0gU0VRVUVOQ0UgewogICBjb3VudHJ5LW5hbWUgQ291bnRyeU5hbWUgT1BUSU9OQUwsCiAgIGFkbWluaXN0cmF0aW9uLWRvbWFpbi1uYW1lIEFkbWluaXN0cmF0aW9uRG9tYWluTmFtZSBPUFRJT05BTCwKICAgbmV0d29yay1hZGRyZXNzICAgICAgWzBdIEVYUExJQ0lUIE5ldHdvcmtBZGRyZXNzIE9QVElPTkFMLAogICAtLSBzZWUgYWxzbyBleHRlbmRlZC1uZXR3b3JrLWFkZHJlc3MKICAgdGVybWluYWwtaWRlbnRpZmllciAgWzFdIEVYUExJQ0lUIFRlcm1pbmFsSWRlbnRpZmllciBPUFRJT05BTCwKICAgcHJpdmF0ZS1kb21haW4tbmFtZSAgWzJdIEVYUExJQ0lUIFByaXZhdGVEb21haW5OYW1lIE9QVElPTkFMLAogICBvcmdhbml6YXRpb24tbmFtZSAgICBbM10gRVhQTElDSVQgT3JnYW5pemF0aW9uTmFtZSBPUFRJT05BTCwKICAgLS0gc2VlIGFsc28gdGVsZXRleC1vcmdhbml6YXRpb24tbmFtZQogICBudW1lcmljLXVzZXItaWRlbnRpZmllciAgICAgIFs0XSBFWFBMSUNJVCBOdW1lcmljVXNlcklkZW50aWZpZXIgT1BUSU9OQUwsCiAgIHBlcnNvbmFsLW5hbWUg5iAgICAgIFs1XSBFWFBMSUNJVCBQZXJzb25hbE5hbWUgT1BUSU9OQUwsCiAgIC0tIHNlZSBhbHNvIHRlbGV0ZXgtcGVyc29uYWwtbmFtZQogICBvcmdhbml6YXRpb25hbC11bml0LW5hbWVzICAgIFs2XSBFWFBMSUNJVCBPcmdhbml6YXRpb25hbFVuaXROYW1lcyBPUFRJT05BTAogICAtLSBzZWUgYWxzbyB0ZWxldGV4LW9yZ2FuaXphdGlvbmFsLXVuaXQtbmFtZXMgLS0KfQpDb3VudHJ5TmFtZSA6Oj0gW0FQUExJQ0FUSU9OIDFdIENIT0lDRSB7CiAgIHgxMjEtZGNjLWNvZGUgTnVtZXJpY1N0cmluZwogICAgICAgICAgICAgICAgKFNJWkUgKHViLWNvdW50cnktbmFtZS1udW1lcmljLWxlbmd0aCkpLAogICBpc28tMzE2Ni1hbHBoYTItY29kZSBQcmludGFibGVTdHJpbmcKICAgICAgICAgICAgICAgIChTSVpFICh1Yi1jb3VudHJ5LW5hbWUtYWxwaGEtbGVuZ3RoKSkgfQpBZFBUSU9OQUwsCiAgIGdlbmVyYXRpb24tcXVhbGlmaWVyIFszXSBFWFBMSUNJVCBUZWxldGV4U3RyaW5nIChTSVpFCiAgICAgICAgICAgICAgICAoMS4udWItZ2VuZXJdYXRpb24tcXVhbGlmaWVyLWxlbmd0aCkpIE9QVElPTkFMIH0KdGVsZXRleC1vcmdhbml6YXRpb25hbC11bml0LW5hbWVzIElOVEVHRVIgOjo9IDUKVGVsZXRleE9yZ2FuaXphdGlvbmFsVW5pdE5hbWVzIDo6PSBTRVFVRU5DRSBTSVpFCiAgICAgICAgKDEuLnViLW9yZ2FuaXphdGlvbmFsLXVuaXRzKSBPRiBUZWxldGV4T3JnYW5pemF0aW9uYWxVbml0TmFtZQpUZWxldGV4Tw==