TWFpbGd1biBmb3IgV29yZFByZXNzCj09PT09PT09PT09PT09PT09PT09PQoKQ29udHJpYnV0b3JzOiBtYWlsZ3VuLCBzaXZlbCwgbG9va2FoZWFkLmlvLCBtMzVkZXYsIGFsYW5mdWxsZXIKVGFnczogbWFpbGd1biwgc210cCwgaHR0cCwgYXBpLCBtYWlsLCBlbWFpbApUZXN0ZWQgdXAgdG86IDYuOC4xClN0YWJsZSB0YWc6IDIuMS4xMApSZXF1aXJlcyBQSFA6IDcuNApMaWNlbnNlOiBHUEx2MiBvciBsYXRlcgoKRWFzaWx5IHNlbmQgZW1haWwgZnJvbSB5b3VyIFdvcmRQcmVzcyBzaXRlIHRocm91Z2ggTWFpbGd1biB1c2luZyB0aGUgSFRUUCBBUEkgb3IgU01UUC4KCiMjIERlc2NyaXB0aW9uCgpbTWFpbGd1bl0oaHR0cDovL3d3dy5tYWlsZ3VuLmNvbS8pIGlzIHRoZSBlbWFpbCBhdXRvbWF0aW9uIGVuZ2luZSB0cnVzdGVkIGJ5IG92ZXIgMTAsMDAwIHdlYnNpdGUgYW5kIGFwcGxpY2F0aW9uIGRldmVsb3BlcnMgZm9yIHNlbmRpbmcsIHJlY2VpdmluZyBhbmQgdHJhY2tpbmcgZW1haWxzLiBCeSB0YWtpbmcgYWR2YW50YWdlIG9mIE1haWxndW4ncyBwb3dlcmZ1bCBlbWFpbCBBUElzLCBkZXZlbG9wZXJzIGNhbiBzcGVuZCBtb3JlIHRpbWUgYnVpbGRpbmcgYXdlc29tZSB3ZWJzaXRlcyBhbmQgbGVzcyB0aW1lIGZpZ2h0aW5nIHdpdGggZW1haWwgc2VydmVycy4gTWFpbGd1biBzdXBwb3J0cyBhbGwgb2YgdGhlIG1vc3QgcG9wdWxhciBsYW5ndWFnZXMgaW5jbHVkaW5nIFBIUCwgUnVieSwgUHl0aG9uLCBDIyBhbmQgSmF2YS4KCk9uZSBwYXJ0aWN1bGFybHkgdXNlZnVsIGZlYXR1cmUgb2YgdGhpcyBwbHVnaW4gaXMgdGhhdCBpdCBwcm92aWRlcyB5b3Ugd2l0aCBhIHdheSB0byBzZW5kIGVtYWlsIHdoZW4gdGhlIHNlcnZlciB5b3UgYXJlIG9uIGRvZXMgbm90IHN1cHBvcnQgU01UUCBvciB3aGVyZSBvdXRib3VuZCBTTVRQIGlzIHJlc3RyaWN0ZWQgc2luY2UgdGhlIHBsdWctaW4gdXNlcyB0aGUgTWFpbGd1biBIVFRQIEFQSSBmb3Igc2VuZGluZyBlbWFpbCBieSBkZWZhdWx0LiBBbGwgeW91IG5lZWQgdG8gdXNlIHRoZSBwbHVnaW4gaXMgYSBbTWFpbGd1biBhY2NvdW50XShodHRwOi8vd3d3Lm1haWxndW4uY29tLykuIE1haWxndW4gaGFzIGEgZnJlZSBhY2NvdW50IHRoYXQgbGV0cyB5b3Ugc2VuZCB1cCB0byAyMDAgZW1haWxzIHBlciBkYXksIHdoaWNoIGlzIGdyZWF0IGZvciB0ZXN0aW5nLiBQYWlkIHN1YnNjcmlwdGlvbnMgYXJlIGF2YWlsYWJsZSBmb3IgaW5jcmVhc2VkIGxpbWl0cy4KClRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHBsdWdpbiBub3cgc3VwcG9ydHMgcmVnaW9ucy4gU2VsZWN0IGVpdGhlciBVLlMuL05vcnRoIEFtZXJpY2Egb3IgRXVyb3BlIHRvIGNob29zZSB0aGUgQVBJIGVuZHBvaW50IGZyb20gd2hpY2ggeW91IHdpbGwgc2VuZCBlbWFpbC4KClRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhpcyBwbHVnaW4gb25seSBoYW5kbGVzIHNlbmRpbmcgZW1haWxzLCB0cmFja2luZyBhbmQgdGFnZ2luZyBhbmQgbGlzdCBzdWJzY3JpcHRpb24uIAoKCiMjIEluc3RhbGxhdGlvbgoKMS4gVXBsb2FkIHRoZSBgbWFpbGd1bmAgZm9sZGVyIHRvIHRoZSBgL3dwLWNvbnRlbnQvcGx1Z2lucy9gIGRpcmVjdG9yeSBvciBpbnN0YWxsIGRpcmVjdGx5IHRocm91Z2ggdGhlIHBsdWdpbiBpbnN0YWxsZXIKMi4gQWN0aXZhdGUgdGhlIHBsdWdpbiB0aHJvdWdoIHRoZSAnUGx1Z2lucycgbWVudSBpbiBXb3JkUHJlc3Mgb3IgYnkgdXNpbmcgdGhlIGxpbmsgcHJvdmlkZWQgYnkgdGhlIHBsdWdpbiBpbnN0YWxsZXIKMy4gVmlzaXQgdGhlIHNldHRpbmdzIHBhZ2UgaW4gdGhlIEFkbWluIGF0IGBTZXR0aW5ncyAtPiBNYWlsZ3VuYCBhbmQgY29uZmlndXJlIHRoZSBwbHVnaW4gd2l0aCB5b3VyIGFjY291bnQgZGV0YWlscwo0LiBDbGljayB0aGUgVGVzdCBDb25maWd1cmF0aW9uIGJ1dHRvbiB0byB2ZXJpZnkgdGhhdCB5b3VyIHNldHRpbmdzIGFyZSBjb3JyZWN0Lgo1LiBDbGljayBWaWV3IEF2YWlsYWJsZSBMaXN0cyB0byByZXZpZXcgc2hvcnRjb2RlIHNldHRpbmdzIGZvciBsaXN0cyBpbiB5b3VyIE1haWxndW4gYWNjb3VudCB0aGF0IHlvdSBtYXkgd2lzaCB0byBoZWxwIHVzZXJzIHN1YnNjcmliZSB0bwoKCj09IEZyZXF1ZW50bHkgQXNrZWQgUXVlc3Rpb25zID09CgotIFRlc3RpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmFpbHMgd2hlbiB1c2luZyB0aGUgSFRUUCBBUEkKCllvdXIgd2ViIHNlcnZlciBtYXkgbm90IGFsbG93IG91dGJvdW5kIEhUVFAgY29ubmVjdGlvbnMuIFNldCBgVXNlIEhUVFAgQVBJYCB0byAiTm8iLCBhbmQgZmlsbCBvdXQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBTTVRQIGFuZCB0ZXN0IGFnYWluLgoKLSBUZXN0aW5nIHRoZSBjb25maWd1cmF0aW9uIGZhaWxzIHdoZW4gdXNpbmcgU01UUAoKWW91ciB3ZWIgc2VydmVyIG1heSBub3QgYWxsb3cgb3V0Ym91bmQgU01UUCBjb25uZWN0aW9ucyBvbiBwb3J0IDQ2NSBmb3Igc2VjdXJlIGNvbm5lY3Rpb25zIG9yIDU4NyBmb3IgdW5zZWN1cmVkIGNvbm5lY3Rpb25zLiBUcnkgY2hhbmdpbmcgYFVzZSBTZWN1cmUgU01UUGAgdG8gIk5vIiBvciAiWWVzIiBkZXBlbmRpbmcgb24geW91ciBjdXJyZW50IGNvbmZpZ3VyYXRpb24gYW5kIHRlc3RpbmcgYWdhaW4uIElmIGJvdGggZmFpbCwgdHJ5IHNldHRpbmcgYFVzZSBIVFRQIEFQSWAgdG8gIlllcyIgYW5kIHRlc3RpbmcgYWdhaW4uCgpJZiB5b3UgKmhhdmUqIHRvIHVzZSBTTVRQIGFuZCBzb21ldGhpbmcgaXMgc3RpbGwgZ29pbmcgaG9ycmlibHkgd3JvbmcsIGVuYWJsZSBkZWJ1ZyBtb2RlIGluIFdvcmRQcmVzcyBhbmQgYWxzbyBhZGQgdGhlIGBNR19ERUJVR19TTVRQYCBjb25zdGFudCB0byB5b3VyIGB3cC1jb25maWcucGhwYCwgbGlrZSBzbzoKCmAKZGVmaW5lKCAnTUdfREVCVUdfU01UUCcsIHRydWUgKTsKYAoKLSBDYW4gdGhpcyBiZSBjb25maWd1cmVkIGdsb2JhbGx5IGZvciBXb3JkUHJlc3MgTXVsdGlzaXRlPwoKWWVzLCB1c2luZyB0aGUgZm9sbG93aW5nIGNvbnN0YW50cyB0aGF0IGNhbiBiZSBwbGFjZWQgaW4gd3AtY29uZmlnLnBocDoKCiMjIyBJbXBvcnRhbnQgbm90ZQpDb25zdGFudCBgTUFJTEdVTl9VU0VBUElgIElTIFJFUVVJUkVECgpgYGAKTUFJTEdVTl9SRUdJT04gICAgICAgVHlwZTogc3RyaW5nICAgQ2hvaWNlczogJ3VzJyBvciAnZXUnCiAgICAgZXguIGRlZmluZSgnTUFJTEdVTl9SRUdJT04nLCAndXMnKTsKTUFJTEdVTl9VU0VBUEkgICAgICAgVHlwZTogYm9vbGVhbiAgQ2hvaWNlczogJzAnIG9yICcxJyAoMCA9IGZhbHNlL25vKQpNQUlMR1VOX0FQSUtFWSAgICAgICBUeXBlOiBzdHJpbmcKTUFJTEdVTl9ET01BSU4gICAgICAgVHlwZTogc3RyaW5nCk1BSUxHVU5fVVNFUk5BTUUgICAgIFR5cGU6IHN0cmluZwpNQUlMR1VOX1BBU1NXT1JEICAgICBUeXBlOiBzdHJpbmcKTUFJTEdVTl9TRUNVUkUgICAgICAgVHlwZTogYm9vbGVhbiAgQ2hvaWNlczogJzAnIG9yICcxJyAoMCA9IGZhbHNlL25vKQpNQUlMR1VOX1NFQ1RZUEUgICAgICBUeXBlOiBzdHJpbmcgICBDaG9pY2VzOiAnc3NsJyBvciAndGxzJwpNQUlMR1VOX0ZST01fTkFNRSAgICBUeXBlOiBzdHJpbmcKTUFJTEdVTl9GUk9NX0FERFJFU1MgVHlwZTogc3RyaW5nCk1BSUxHVU5fVFJBQ0tfQ0xJQ0tTIFR5cGU6IHN0cmluZyBDaG9pY2VzOiAneWVzJyBvciAnbm8nCk1BSUxHVU5fVFJBQ0tfT1BFTlMgIFR5cGU6IHN0cmluZyBDaG9pY2VzOiAneWVzJyBvciAnbm8nCk1BSUxHVU5fUkVQTFlfVE9fQUREUkVTUyBUeXBlOiBzdHJpbmcKYGBgCgotIFdoYXQgaG9va3MgYXJlIGF2YWlsYWJsZSBmb3IgdXNlIHdpdGggb3RoZXIgcGx1Z2lucz8KCmBtZ191c2VfcmVjaXBpZW50X3ZhcnNfc3ludGF4YAogIE11dGF0ZXMgbWVzc2FnZXMgdG8gdXNlIHJlY2lwaWVudCB2YXJpYWJsZXMgc3ludGF4IC0gc2VlCiAgaHR0cHM6Ly9kb2N1bWVudGF0aW9uLm1haWxndW4uY29tL3VzZXJfbWFudWFsLmh0bWwjYmF0Y2gtc2VuZGluZyBmb3IgbW9yZSBpbmZvLgoKICBTaG91bGQgYWNjZXB0IGEgbGlzdCBvZiBgVG9gIGFkZHJlc3Nlcy4KCiAgU2hvdWxkICpvbmx5KiByZXR1cm4gYHRydWVgIG9yIGBmYWxzZWAuCgpgbWdfbXV0YXRlX21lc3NhZ2VfYm9keWAKICBBbGxvd3MgYW4gZXh0ZXJuYWwgcGx1Z2luIHRvIG11dGF0ZSB0aGUgbWVzc2FnZSBib2R5IGJlZm9yZSBzZW5kaW5nLgoKICBTaG91bGQgYWNjZXB0IGFuIGFycmF5LCBgJGJvZHlgLgoKICBTaG91bGQgcmV0dXJuIGEgbmV3IGFycmF5IHRvIHJlcGxhY2UgYCRib2R5YC4KCmBtZ19tdXRhdGVfYXR0YWNobWVudHNgCiAgQWxsb3dzIGFuIGV4dGVybmFsIHBsdWdpbiB0byBtdXRhdGUgdGhlIGF0dGFjaG1lbnRzIG9uIHRoZSBtZXNzYWdlIGJlZm9yZQogIHNlbmRpbmcuCgogIFNob3VsZCBhY2NlcHQgYW4gYXJyYXksIGAkYXR0YWNobWVudHNgLgoKICBTaG91bGQgcmV0dXJuIGEgbmV3IGFycmF5IHRvIHJlcGxhY2UgYCRhdHRhY2htZW50c2AuCgotIFdoYXQgaG9va3MgYXJlIGF2YWlsYWJsZSBmb3IgdXNlIHdpdGggb3RoZXIgcGx1Z2lucz8KCmBtZ191c2VfcmVjaXBpZW50X3ZhcnNfc3ludGF4YAogIE11dGF0ZXMgbWVzc2FnZXMgdG8gdXNlIHJlY2lwaWVudCB2YXJpYWJsZXMgc3ludGF4IC0gc2VlCiAgaHR0cHM6Ly9kb2N1bWVudGF0aW9uLm1haWxndW4uY29tL2VuL2xhdGVzdC91c2VyX21hbnVhbC5odG1sI2JhdGNoLXNlbmRpbmcgZm9yIG1vcmUgaW5mby4KCiAgU2hvdWxkIGFjY2VwdCBhIGxpc3Qgb2YgYFRvYCBhZGRyZXNzZXMuCgogIFNob3VsZCAqb25seSogcmV0dXJuIGB0cnVlYCBvciBgZmFsc2VgLgoKYG1nX211dGF0ZV9tZXNzYWdlX2JvZHlgCiAgQWxsb3dzIGFuIGV4dGVybmFsIHBsdWdpbiB0byBtdXRhdGUgdGhlIG1lc3NhZ2UgYm9keSBiZWZvcmUgc2VuZGluZy4KCiAgU2hvdWxkIGFjY2VwdCBhbiBhcnJheSwgYCRib2R5YC4KCiAgU2hvdWxkIHJldHVybiBhIG5ldyBhcnJheSB0byByZXBsYWNlIGAkYm9keWAuCgpgbWdfbXV0YXRlX2F0dGFjaG1lbnRzYAogIEFsbG93cyBhbiBleHRlcm5hbCBwbHVnaW4gdG8gbXV0YXRlIHRoZSBhdHRhY2htZW50cyBvbiB0aGUgbWVzc2FnZSBiZWZvcmUKICBzZW5kaW5nLgoKICBTaG91bGQgYWNjZXB0IGFuIGFycmF5LCBgJGF0dGFjaG1lbnRzYC4KCiAgU2hvdWxkIHJldHVybiBhIG5ldyBhcnJheSB0byByZXBsYWNlIGAkYXR0YWNobWVudHNgLgoKCj09IFNjcmVlbnNob3RzID09CgoxLiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHVzaW5nIHRoZSBNYWlsZ3VuIEhUVFAgQVBJCjIuIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdXNpbmcgdGhlIE1haWxndW4gU01UUCBzZXJ2ZXJzCjMuIEFkbWluaXN0cmF0aW9uIG9wdGlvbiB0byBWaWV3IEF2YWlsYWJsZSBMaXN0cyBmb3Igc3Vic2NyaXB0aW9uCjQuIFNldHRpbmcgdXAgYSBTdWJzY3JpcHRpb24gV2lkZ2V0CjUuIFVzaW5nIGEgU3Vic2NyaXB0aW9uIENvZGUKNi4gU3Vic2NyaXB0aW9uIEZvcm0gU2VlbiBCeSBTaXRlIFZpc2l0b3JzCgoKPT0gQ2hhbmdlbG9nID09Cgo9IDIuMS44ICgyMDI1LTA1LTExKTogPQotIEp1c3Qga2VlcCB1cGRhdGUgV1AgdmVyc2lvbi4gQW5kIHRlc3RlZCBjb21wYXRpYmlsaXR5IHdpdGggaXQKCj0gMi4xLjYgKDIwMjUtMDMtMDcpOiA9Ci0gRml4ZWQgYnVnIHdpdGggc2VuZGluZyB0ZXN0IGVtYWlscyAoSlMgZXJyb3IpLiBCYXNpY2FsbHkgaXQncyAyLjEuNS4gSnVzdCB2ZXJzaW9uIHVwZGF0ZXMKCj0gMi4xLjUgKDIwMjUtMDMtMDYpOiA9Ci0gRml4ZWQgYnVnIHdpdGggc2VuZGluZyB0ZXN0IGVtYWlscyAoSlMgZXJyb3IpCgo9IDIuMS40ICgyMDI1LTAyLTIzKTogPQotIEltcGxlbWVudGVkIGNvZGluZyBzdGFuZGFyZCBpbnRvIHBsdWdpbgotIEZpeGVkIGEgZmV3IHBvdGVudGlhbCB3YXJuaW5nIHJlbGF0ZWQgdG8gdGhlIHBsdWdpbgoKPSAyLjEuMyAoMjAyNC0xMS0yNyk6ID0KLSAgVXNlIHBhc3N3b3JkIHR5cGUgZm9yIEFQSSBLZXkgZmllbGQgZm9yIGhpZGUgaXQuIEZpeCB3YXJuaW5nIHJlbGF0ZWQgY28gY29tcGFjdCgpIG1ldGhvZAoKPSAyLjEuMiAoMjAyNC0xMS0xNyk6ID0KLSBGaXhlZCBjb2RlLiBSZW1vdmVkIGxpbmUgdGhhdCB0cnkgdG8gY29ubmVjdCBub3QgZXhpc3RpbmcgZmlsZS4gRml4ZWQgdmVyc2lvbnMgaW4gdGhlIHBsdWdpbgoKPSAyLjEuMSAoMjAyNC0wOC0xNyk6ID0KLSBBZGRlZCBmYWxsYmFjayB0byByZWd1bGFyIG1haWwgaW4gY2FzZSBvciBlcnJvciBkdXJpbmcgc2VuZGluZyBlbWFpbCB2dWEgQVBJCgo9IDIuMS4wICgyMDI0LTA3LTI3KTogPQotIEFkZGVkIGFiaWxpdHkgdG8gc3VwcHJlc3MgVHJhY2sgQ2xpY2tzIHdoZW4gd2Ugc2VuZCBSZXNldCBQYXNzd29yZCBlbWFpbCAoaXQgd2FzIGFuIGlzc3VlIHdpdGggZG9tYWluIHVybCBpbiB0aGUgZW1haWwpCi0gQWRkZWQgZmllbGQgdG8gc2V0dXAgUmVwbHktdG8oaGVhZGVyKSBlbWFpbCBmb3IgdGhlIGVtYWlscy4KLSBXaGVuIGNvbnN0YW50cyBNQUlMR1VOX1RSQUNLX0NMSUNLUywgTUFJTEdVTl9UUkFDS19PUEVOUyBhcmUgdXNlZCwgd2UgZGlzYWJsZSBmaWVsZCBvbiB0aGUgVUkgYXMgd2UgZG8gZm9yIG90aGVyIGZpZWxkcwoKPSAyLjAuMSAoMjAyNC0wNy0xNyk6ID0KLSBVcGRhdGVkIGNoYW5nZWxvZwoKPSAyLjAuMCAoMjAyNC0wNy0xNyk6ID0KLSBVcGRhdGVkIHBsdWdpbiB2ZXJzaW9uIGFuZCB2ZXJzaW9uIGNvbXBhdGliaWxpdHkKLSBVcGRhdGVkIHRhZ3MsIGxvY2F0ZWQgaW4gdGhlIHN2bi4gS2VlcCBvbmx5IDUgbGFzdCB0YWdzIGFjY29yZGluZyB0byBXb3JkcHJlc3Mub3JnIHJ1bGVzCgo9IDEuOS45ICgyMDI0LTAzLTEzKTogPQotIEltcHJvdmUgYWRtaW4gbm90aWNlcyBhYm91dCBub3QgZnVsbHkgY29uZmlndXJlZCBwbHVnaW4KLSBTbWFsbCBjb2RlIGNsZWFuaW5nCiAgCj0gMS45LjggKDIwMjQtMDItMjUpOiA9Ci0gSW1wcm92ZSBhZG1pbiBub3RpY2VzIGFib3V0IG5vdCBmdWxseSBjb25maWd1cmVkIHBsdWdpbgotIFNtYWxsIGNvZGUgY2xlYW5pbmcKCj0gMS45LjcgKDIwMjQtMDEtMDMpOiA9Ci0gRW5zdXJlIGRlZmF1bHRzIGFyZSBhbHdheXMgc2V0IHRvIHJlbW92ZSB3YXJuaW5ncyBpbiBQSFAgOC4xKwoKPSAxLjkuNiAoMjAyMy0wOS0xMCk6ID0KLSBBZGRlZCB0eXBlaGludHMgdG8gbWV0aG9kcwotIEFkZGVkIGNvZGUgZm9yIG1ha2luZyBwbHVnaW4gV1AgVklQIEdPIGNvbXBhdGlibGUgZm9yIHRoZSBgRnJvbSBtYWlsYAotIEFkZGVkIFRvYXN0ciBmb3Igc2VuZGluZyBuaWNlIG1lc3NhZ2UgaW5zdGVhZCBvZiB1c2luZyBhbGVydHMKCj0gMS45LjUgKDIwMjMtMDYtMjApOiA9Ci0gRml4IGJ1ZyB3aXRoIHNlbmRpbmcgZW1haWxzCgo9IDEuOS40ICgyMDIzLTA2LTEwKTogPQotIEZpeGVkIGJ1ZyBgRmF0YWwgZXJyb3Igb24gbGlzdHMgcGFnZSB3aGVuIGFub3RoZXIgcGx1Z2luIHJlZGVjbGFyZSB3cF9tYWlsKClgCgo9IDEuOS4zICgyMDIzLTA0LTA4KTogPQotIEZpeGVkIGBSZXBseS10b2AgaGVhZGVyLiBJdCdzIG5vdCBvdmVycmlkZGVuIGFueW1vcmUKCj0gMS45LjIgKDIwMjMtMDMtMjgpOiA9Ci0gQWRkZWQgYWN0aW9uIGZvciBiZXR0ZXIgZGV2IGV4cGVyaWVuY2UgaW4gdHJhY2tpbmcgZXJyb3IgYG1haWxndW5fZXJyb3JfdHJhY2tgCi0gQWRkZWQgaGVhZGVyIGBoOlNlbmRlcmAKCj0gMS45LjEgKDIwMjMtMDMtMjYpOiA9Ci0gUmVtb3ZlIG5vdCBuZWVkZWQgZXJyb3IgbG9nZ2luZy4KLSBGaXhlZCBidWcgd2l0aCBPdmVycmlkZSBwYXJhbSBmb3IgV29vY29tbWVyY2UKCi0gPSAxLjkgKDIwMjMtMDEtMTgpOiA9Ci0gU2FuaXRpemluZyBhbmQgZXNjYXBpbmcgdmFycy4gUG9zc2libGUgc2VjdXJpdHkgaXNzdWVzCgo9IDEuOC4xMCAoMjAyMi0xMi0yNik6ID0KLSBGaXhlZCBidWcgd2l0aCBub3Qgb3ZlcnJpZGluZyBgZnJvbSBuYW1lYCBmb3IgV29vY29tbWVyY2UKCj0gMS44LjkgKDIwMjItMTItMTQpOiA9Ci0gRml4ZWQgYnVnIHdpdGggcmVtb3ZlZCB3cF9tYWlsIGZpbHRlcgoKPSAxLjguOCAoMjAyMi0xMi0xMSk6ID0KLSBGaXhlZCBidWcgd2hlbiBgJHRvYCBvdmVycmlkZSBpbiB0aGUgYHdwX21haWxgIGZ1bmN0aW9uCgo9IDEuOC43ICgyMDIyLTExLTEyKTogPQotIEZpeGVkIGJ1ZyB3aGVuIGZpZWxkIGBPdmVycmlkZSAiRnJvbSIgRGV0YWlsc2Agd2FzIG5vdCB1cGRhdGVkCgo9IDEuOC4zICgyMDIyLTA4LTMwKTogPQotIFBsdWdpbiByZWZhY3RvcmluZy4gV2lkZ2V0IGZpeGVzIGZvciB3b3JraW5nIHdpdGggTGVnYWN5IFdpZGdldCBCbG9jay4gUEhQOC4wIHN1cHBvcnQgY2hlY2sKCj0gMS44LjIgKDIwMjItMDgtMjQpOiA9Ci0gUGx1Z2luIHJlZmFjdG9yaW5nLiBTbWFsbCBmaXhlcwoKPSAxLjguMSAoMjAyMi0wOC0xOSk6ID0KLSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggcGhwNy4wCgo9IDEuOC4wICgyMDIyLTA4LTE4KTogPQotIFBsdWdpbiByZWZhY3RvcmluZy4gVXNpbmcgbmV3IGxhbmd1YWdlcyBjb25zdHJ1Y3Rpb25zLiBFeHRlbmRlZCByZWFkbWUuIFVwZGF0ZSB2ZXJzaW9uCgo9IDEuNy45ICgyMDIxLTA1LTI0KTogPQotIEFQSSBLZXkgZGVzY3JpcHRpb24KCj0gMS43LjggKDIwMjEtMDUtMTMpOiA9Ci0gVGVzdGVkIFdQIDUuNy4xCgo9IDEuNy43ICgyMDIxLTAzLTE2KTogPQotIFVwZGF0ZWQgYXNzZXRzLCB0ZXN0ZWQgV1AgNS43Cgo9IDEuNy42ICgyMDIxLTAyLTE5KTogPQotIFN5bmMgdmVyc2lvbnMgYWNyb3NzIHBsdWdpbiBmaWxlcwoKPSAxLjcuMyAoMjAyMS0wMi0xOSk6ID0KLSBVcGRhdGUgcGx1Z2luIHZlcnNpb24KCj0gMS43LjIgKDIwMjAtMTAtMDcpOiA9Ci0gVGVzdCBwbHVnaW4gd2l0aCBQSFAgNy40LgotIFRlc3QgcGx1Z2luIHVwIHRvIFdvcmRQcmVzcyA1LjUuMS4KCj0gMS43LjEgKDIwMTktMDItMDcpOiA9Ci0gUmVpbnN0YWxsIHNldHRpbmdzIHBhZ2UgZm9yIG11bHRpc2l0ZXMuCgo9IDEuNyAoMjAxOS0wMS0yMSk6ID0KLSBSZW1vdmUgc2V0dGluZ3MgcGFnZSBmb3IgbXVsdGlzaXRlcy4KLSBTaW1wbGlmeSBhZG1pbiBub3RpZmljYXRpb25zLgotIFRlc3QgcGx1Z2luIHdpdGggUEhQIDcuMi4KLSBUZXN0IHBsdWdpbiB1cCB0byBXb3JkUHJlc3MgNS4wLjMuCgo9IDEuNi4xICgyMDE4LTEwLTA4KTogPQotIFJlc3RvcmUgU2V0dGluZ3MgcGFnZSBmb3JtIGZvciBhbGwgaW5zdGFsbCB0eXBlcy4KCj0gMS42ICgyMDE4LTktMjEpOiA9Ci0gUmVmYWN0b3IgYWRtaW4gbm90aWZpY2F0aW9ucwotIEVuYWJsZSBTZXR0aW5ncyBwYWdlIGZvciBhbGwgV29yZFByZXNzIGluc3RhbGwgdHlwZXMKLSBFbmFibGUgVGVzdCBDb25maWd1cmF0aW9uIGZvciBhbGwgV29yZFByZXNzIGluc3RhbGwgdHlwZXMKLSBUZXN0IHBsdWdpbiB1cCB0byBXb3JkUHJlc3MgNC45LjguCgo9IDEuNS4xNCAoMjAxOC0wOS0xMSk6ID0KLSBGb3JjZSBTU0wtc2VjdXJlZCBTTVRQIGNvbm5lY3Rpb25zIHRvIHVzZSBwb3J0IDQ2NSAoU01UUFMpIHRvIGNvbm5lY3QsIDU4NyBmb3IgcGxhaW4gYW5kIFRMUwotIFN1cHBvcnQgcmVnaW9uIGVuZHBvaW50IHN3aXRjaGluZyBmb3IgU01UUAoKPSAxLjUuMTMuMSAoMjAxOC0wOC0xNSk6ID0KLSBGaXggbGluZSBicmVha3MgaW4gVGVzdCBDb25maWd1cmF0aW9uIGVtYWlsCgo9IDEuNS4xMyAoMjAxOC0wOC0xNCk6ID0KLSBEZWZhdWx0IHRvIFVTIHJlZ2lvbiBpZiBubyByZWdpb24gaXMgY29uZmlndXJlZCBpbiBzZXR0aW5ncwotIEFkZCBhZG1pbiBub3RpZmljYXRpb24gYWJvdXQgcmVnaW9uIGNvbmZpZ3VyYXRpb24KLSBMb2cgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIGFuIGVtYWlsIGlzIHNlbnQgd2l0aCBubyBleHBsaWNpdCByZWdpb24gY29uZmlndXJlZAoKPSAxLjUuMTIuMyAoMjAxOC0wOC0wOSk6ID0KLSBGaXggUmVnaW9uIHNlbGVjdCBtZW51IGRlZmF1bHQgd2hlbiB3cC1jb25maWcucGhwIHZhcmlhYmxlIGlzIHNldAotIEZpeCBmcm9udCBlbmQgZW1haWwgaW5wdXQgdmFsaWRhdGlvbgoKPSAxLjUuMTIuMiAoMjAxOC0wOC0wOSk6ID0KLSBGaXggcGx1Z2luIG5vdCBzYXZpbmcgYWZ0ZXIgdXBkYXRlCgo9IDEuNS4xMi4xICgyMDE4LTA4LTA2KTogPQotIEZpeCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKCj0gMS41LjEyICgyMDE4LTA4LTAyKTogPQotIEFkZCBFVSBlbmRwb2ludCBmb3IgTWFpbGd1biBIVFRQIEFQSQotIEZpeCBicm9rZW4gbG9nbyBpbWFnZSBvbiBMaXN0cyBwYWdlCi0gVGVzdCBwbHVnaW4gdXAgdG8gV29yZHByZXNzIDQuOS43Cgo9IDEuNS4xMSAoMjAxOC0wNS0zMCk6ID0KLSBGaXggYW4gaXNzdWUgd2l0aCBhdXRoZW50aWNhdGlvbiBmYWlsaW5nIGZvciBuZXdlciBBUEkga2V5cwotIFRlc3QgcGx1Z2luIHVwIHRvIFdvcmRwcmVzcyA0LjkuNgoKPSAxLjUuMTAgKDIwMTctMTEtMjIpOiA9Ci0gRml4IGJhY2sgdG8gc2V0dGluZ3MgbGluayBvbiBsaXN0cyBwYWdlIChodHRwczovL2dpdGh1Yi5jb20vbWFpbGd1bi93b3JkcHJlc3MtcGx1Z2luL3B1bGwvNjUpCi0gRml4IGEgYnVnIGNhdXNpbmcgYHRleHQvaHRtbGAgZW1haWxzIHRvIHNlbmQgYXMgYm90aCBgdGV4dC9wbGFpbmAgKmFuZCogYHRleHQvaHRtbGAgcGFydHMKCj0gMS41LjkgKDIwMTctMDktMTMpOiA9Ci0gQWRkIGEgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gYWxsb3cgc2V0dGluZyBzZWN1cml0eSB0eXBlIGZvciBTTVRQIGNvbm5lY3Rpb24gKFNTTCAvIFRMUykKCj0gMS41LjguNSAoMjAxNy0wOS0wNSk6ID0KLSBDaGFuZ2UgZGVmYXVsdCBjbGljayB0cmFja2luZyBzZXR0aW5nIHRvIGBodG1sb25seWAgKGh0dHBzOi8vZ2l0aHViLmNvbS9tYWlsZ3VuL3dvcmRwcmVzcy1wbHVnaW4vcHVsbC81OCkKLSBDaGFuZ2UgUEhQTWFpbGVyIHNldC11cCBzdGFuemEgdG8gdXNlIFRMUwoKPSAxLjUuOC40ICgyMDE3LTA2LTI4KTogPQotIFBhY2thZ2luZyBmaXggd2hpY2ggdGFrZXMgY2FyZSBvZiBhbiBvZGQgZmlsdGVyaW5nIGlzc3VlIChodHRwczovL3dvcmRwcmVzcy5vcmcvc3VwcG9ydC90b3BpYy8xLTUtOC0zLWJyb2tlLXRoZS1tZ19tdXRhdGVfbWVzc2FnZV9ib2R5LWZpbHRlcikKCj0gMS41LjguMyAoMjAxNy0wNi0xMyk6ID0KLSBGaXggYSBidWcgY2F1c2luZyBvbmx5IHRoZSBsYXN0IGhlYWRlciB2YWx1ZSB0byBiZSB1c2VkIHdoZW4gbXVsdGlwbGUgaGVhZGVycyBvZiB0aGUgc2FtZSB0eXBlIGFyZSBzcGVjaWZpZWQgKGh0dHBzOi8vd29yZHByZXNzLm9yZy9zdXBwb3J0L3RvcGljL2J1Zy13aXRoLW1nX3BhcnNlX2hlYWRlcnMvKQotIEFkZGVkIGBwdF9CUmAgdHJhbnNsYXRpb25zICh0aGFua3MgQGVtZXJzb25icm9nYSkKCj0gMS41LjguMiAoMjAxNy0wMi0yNyk6ID0KLSBGaXggYSBidWcgY2F1c2luZyBlbXB0eSB0YWdzIHRvIGJlIHNlbnQgd2l0aCBtZXNzYWdlcyAoIzUxKQotIEFkZCBgbWdfbXV0YXRlX21lc3NhZ2VfYm9keWAgaG9vayB0byBhbGxvdyBvdGhlciBwbHVnaW5zIHRvIG1vZGlmeSB0aGUgbWVzc2FnZSBib2R5IGJlZm9yZSBzZW5kCi0gQWRkIGBtZ19tdXRhdGVfYXR0YWNobWVudHNgIGhvb2sgdG8gYWxsb3cgb3RoZXIgcGx1Z2lucyB0byBtb2RpZnkgdGhlIG1lc3NhZ2UgYXR0YWNobWVudHMgYmVmb3JlIHNlbmQKLSBGaXggYSBidWcgY2F1c2luZyB0aGUgQUpBWCB0ZXN0IHRvIGZhaWwgaW5jb3JyZWN0bHkuCgo9IDEuNS44LjIgKDIwMTctMDItMjcpOiA9Ci0gRml4IGEgYnVnIGNhdXNpbmcgZW1wdHkgdGFncyB0byBiZSBzZW50IHdpdGggbWVzc2FnZXMgKCM1MSkKLSBBZGQgYG1nX211dGF0ZV9tZXNzYWdlX2JvZHlgIGhvb2sgdG8gYWxsb3cgb3RoZXIgcGx1Z2lucyB0byBtb2RpZnkgdGhlIG1lc3NhZ2UgYm9keSBiZWZvcmUgc2VuZAotIEFkZCBgbWdfbXV0YXRlX2F0dGFjaG1lbnRzYCBob29rIHRvIGFsbG93IG90aGVyIHBsdWdpbnMgdG8gbW9kaWZ5IHRoZSBtZXNzYWdlIGF0dGFjaG1lbnRzIGJlZm9yZSBzZW5kCi0gRml4IGEgYnVnIGNhdXNpbmcgdGhlIEFKQVggdGVzdCB0byBmYWlsIGluY29ycmVjdGx5LgoKPSAxLjUuOC4xICgyMDE3LTAyLTA2KTogPQotIEZpeCAiVW5kZWZpbmVkIHByb3BlcnR5OiBNYWlsZ3VuQWRtaW46OiRob29rX3N1ZmZpeCIgKCM0OCkKLSBGaXggIlVuZGVmaW5lZCB2YXJpYWJsZTogZnJvbV9uYW1lIG9uIGV2ZXJ5IGVtYWlsIHByb2Nlc3MiIChBUEkgYW5kIFNNVFApICgjNDkpCi0gQWRtaW4gY29kZSBub3cgbG9hZHMgb25seSBvbiBhZG1pbiB1c2VyIGFjY2VzcwoKPSAxLjUuOCAoMjAxNy0wMS0yMyk6ID0KKiBSZXdyaXRlIGEgbGFyZ2UgY2h1bmsgb2Ygb2xkIFNNVFAgY29kZQoqIEZpeCBhIGJ1ZyB3aXRoIFNNVFAgKyAib3ZlcnJpZGUgZnJvbSIgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiAxLjUuNwoqIFNNVFAgZGVidWcgbG9nZ2luZyBpcyBub3cgY29udHJvbGxlZCBieSBgTUdfREVCVUdfU01UUGAgY29uc3RhbnQKCj0gMS41LjcuMSAoMjAxNy0wMS0xOCk6ID0KKiBGaXggYW4gb2RkIGBVbmRlZmluZWQgcHJvcGVydHk6IE1haWxndW5BZG1pbjo6JGRlZmF1bHRzYCB3aGVuIHNhdmluZyBjb25maWcKKiBGaXggc3RyaWN0IG1vZGUgbm90aWNlIGZvciB1c2luZyBgJG1haWxndW5bJ292ZXJyaWRlLWZyb20nXWAgd2l0aG91dCBjaGVja2luZyBgaXNzZXRgCgo9IDEuNS43ICgyMDE3LTAxLTA0KTogPQoqIEFkZCBiZXR0ZXIgc3VwcG9ydCBmb3IgdXNpbmcgcmVjaXBpZW50IHZhcmlhYmxlcyBmb3IgYmF0Y2ggbWFpbGluZy4KKiBDbGFyaWZ5IHdvcmRpbmcgb24gYEZyb20gQWRkcmVzc2Agbm90ZQoqIERldGVjdCBmcm9tIG5hbWUgYW5kIGFkZHJlc3MgZm9yIGBwaHBtYWlsZXJfaW5pdGAgLyBTTVRQIG5vdyB3aWxsIGhvbm91ciBNYWlsZ3VuICJGcm9tIE5hbWUgLyBGcm9tIEFkZHIiIHNldHRpbmdzCiogU01UUCBjb25maWd1cmF0aW9uIHRlc3Qgd2lsbCBub3cgcHJvdmlkZSB0aGUgZXJyb3IgbWVzc2FnZSwgaWYgdGhlIHNlbmQgZmFpbHMKKiBGaXggYHVuZGVmaW5lZCB2YXJpYWJsZTogY29udGVudF90eXBlYCBlcnJvciBpbiBgd3AtbWFpbC5waHBgIChodHRwczovL3dvcmRwcmVzcy5vcmcvc3VwcG9ydC90b3BpYy9taW5vci1idWctb24tdmVyc2lvbi12ZXJzaW9uLTEtNS02LyNwb3N0LTg2MzQ3NjIpCiogRml4IGB1bmRlZmluZWQgaW5kZXg6IG92ZXJyaWRlLWZyb21gIGVycm9yIGluIGB3cC1tYWlsLnBocGAgKGh0dHBzOi8vd29yZHByZXNzLm9yZy9zdXBwb3J0L3RvcGljL3BocC1ub3RpY2UtdW5kZWZpbmVkLWluZGV4LW92ZXJyaWRlLWZyb20vKQoKPSAxLjUuNiAoMjAxNi0xMi0zMCk6ID0KKiBGaXggYSB2ZXJ5IHN1YnRsZSBidWcgY2F1c2luZyBmYXRhbCBlcnJvcnMgd2l0aCBvbGRlciBQSFAgdmVyc2lvbnMgPCA1LjUKKiBSZXNwZWN0IGB3cF9tYWlsX2NvbnRlbnRfdHlwZWAgKCMzNyAtIEBGUENTSmFtZXMpCgo9IDEuNS41ICgyMDE2LTEyLTI3KTogPQoqIFJlc3RydWN0dXJlIHRoZSBgYWRtaW5fbm90aWNlc2AgY29kZQoqIFJlc3RydWN0dXJlIHRoZSAiRnJvbSBOYW1lIiAvICJGcm9tIEFkZHJlc3MiIGNvZGUKKiBBZGQgb3B0aW9uIHRvIG92ZXJyaWRlICJGcm9tIE5hbWUiIC8gIkZyb20gQWRkcmVzcyIgc2V0dGluZyBzZXQgYnkgb3RoZXIgcGx1Z2lucwoqIEZpeCBhIGJ1ZyBjYXVzaW5nIGRlZmF1bHQgIkZyb20gTmFtZSIgLyAiRnJvbSBBZGRyZXNzIiB0byBiZSBhbHdheXMgYXBwbGllZCBpbiBzb21lIGNhc2VzCiogTW92ZWQgcGx1Z2luIGhlYWRlciB1cCBpbiBlbnRyeXBvaW50IGZpbGUgKGh0dHBzOi8vd29yZHByZXNzLm9yZy9zdXBwb3J0L3RvcGljL3BsdWdpbi1hY3RpdmF0aW9uLWR1ZS10by1oZWFkZXIvI3Bvc3QtODU5ODA2MikKKiBGaXhlZCBhIGJ1ZyBjYXVzaW5nICJPdmVycmlkZSBGcm9tIiB0byBiZSBzZXQgdG8gInllcyIgYWZ0ZXIgdXBncmFkZXMKCj0gMS41LjQgKDIwMTYtMTItMjMpOiA9CiogQ2hhbmdlZCBzb21lIG1pc3NlZCBicmFja2V0ZWQgYXJyYXkgdXNhZ2VzIHRvIGBhcnJheSgpYCBzeW50YXgKKiBGaXggYHdwX21haWxfZnJvbWAgLyBgd3BfbWFpbF9mcm9tX25hbWVgIG5vdCB3b3JraW5nIG9uIG9sZCBQSFAgLyBXUCB2ZXJzaW9ucwoqIEFkZCBhIHdyYXBwZXIgZm9yIHVzaW5nIGBtaW1lX2NvbnRlbnRfdHlwZWAgLyBgZmluZm9fZmlsZWAKCj0gMS41LjMgKDIwMTYtMTItMjIpOiA9CiogQ2hhbmdlZCBhbGwgYnJhY2tldGVkIGFycmF5IHVzYWdlcyB0byBgYXJyYXkoKWAgc3ludGF4IGZvciBvbGRlciBQSFAgc3VwcG9ydAoqIFJlZGVzaWduZWQgYENvbnRlbnQtVHlwZWAgcHJvY2Vzc2luZyBjb2RlIHRvIG5vdCBtYWtlIHN1Y2ggbGFyZ2UgYXNzdW1wdGlvbnMKKiBNYWlsZ3VuIGxvZ28gaXMgbm93IGxvYWRlZCBvdmVyIEhUVFBTCiogRml4ZWQgdW5kZWZpbmVkIHZhcmlhYmxlIGlzc3VlIHdpdGggZnJvbSBlbWFpbCAvIGZyb20gbmFtZSBjb2RlCgo9IDEuNS4yICgyMDE2LTEyLTIyKTogPQoqIEFkZGVkIG9wdGlvbiBmaWVsZHMgZm9yIHNldHRpbmcgYSBGcm9tIG5hbWUgYW5kIGFkZHJlc3MKCj0gMS41LjEgKDIwMTYtMTItMjEpOiA9CiogRml4ZWQgYW4gaXNzdWUgY2F1c2luZyBwbHVnaW4gdXBncmFkZXMgZnJvbSA8MS41IC0+ID49MS41IHRvIGRlYWN0aXZhdGUKCj0gMS41ICgyMDE2LTEyLTE5KTogPQoqIEFkZGVkIENhdGFsYW4gbGFuZ3VhZ2Ugc3VwcG9ydCAoQERhdmlkR2FyY2lhQ2F0KQoqIEFkZGVkIFNwYW5pc2ggbGFuZ3VhZ2Ugc3VwcG9ydCAoQERhdmlkR2FyY2lhQ2F0KQoqIEFkZGVkIEdlcm1hbiBsYW5ndWFnZSBzdXBwb3J0IChAbHNpbmdlcikKKiBGaXhlZCBpbmNvcnJlY3QgU01UUCBob3N0bmFtZQoqIEFwcGxpZWQgUFNSIHN0YW5kYXJkcyBhY3Jvc3MgY29kZWJhc2UKKiBBcHBsaWVkIG9wZW4gdHJhY2tpbmcgYnVnZml4CiogQXBwbGllZCB0YWdzIGJ1Z2ZpeAoqIEFwcGxpZWQgYE1haWxndW4gTGlzdHNgIGFkbWluIHBhbmVsIGJ1Z2ZpeAoqIEZpeGVkIGNsaWNrIHRyYWNraW5nIGRyb3Bkb3duCiogRml4ZWQgY2xpY2sgdHJhY2tpbmcgYW5kIG9wZW4gdHJhY2tpbmcKKiBOb3cgdHJ5IHRvIHByb2Nlc3MgKmFsbCogc2VudCBtYWlscyBhcyBIVE1MLCBzZWUgTDIwMSB3cC1tYWlsLnBocCBmb3IgZGV0YWlscwoqIE1haWxndW4gbG9nbyBub3cgbG9hZHMgb24gYm90aCBhZG1pbiBwYWdlcyA7KQoqIE5vdyB1c2luZyB0aGUgTWFpbGd1biBBUEkgdjMgZW5kcG9pbnQhCiogQ29uZmlndXJhdGlvbiB0ZXN0IHdpbGwgbm93IHByZXNlbnQgZWl0aGVyIGFuIGVycm9yIGZyb20gdGhlIEFQSSBvciB0aGUgSFRUUCByZXNwb25zZSBjb2RlICsgbWVzc2FnZQoKPSAxLjQuMSAoMjAxNS0xMi0wMSk6ID0KKiBDbGFyaWZ5IGNvbXBhdGliaWxpdHkgd2l0aCBXb3JkUHJlc3MgNC4zCgo9IDEuNCAoMjAxNS0xMS0xNSk6ID0KKiBBZGRlZCBzaG9ydGNvZGUgYW5kIHdpZGdldCBzdXBwb3J0IGZvciBsaXN0IHN1YnNjcmlwdGlvbgoKPSAxLjMuMSAoMjAxNC0xMS0xOSk6ID0KKiBTd2l0Y2hlZCB0byBTZW1hbnRpYyBWZXJzaW9uaW5nCiogRml4ZWQgaXNzdWUgd2l0aCBjYW1wYWlnbnMgYW5kIHRhZ3MKCj0gMS4zICgyMDE0LTA4LTI1KTogPQoqIEFkZGVkIGNoZWNrIHRvIGlnbm9yZSBlbXB0eSBhdHRhY2htZW50cwoKPSAxLjIgKDIwMTQtMDgtMTkpOiA9CiogRml4ZWQgZXJyb3JzIHJlbGF0ZWQgdG8gdW5kZWZpbmVkIHZhcmlhYmxlLiBodHRwczovL2dpdGh1Yi5jb20vbWFpbGd1bi93b3JkcHJlc3MtcGx1Z2luL3B1bGwvMwoKPSAxLjEgKDIwMTMtMTItMDkpOiA9CiogQXR0YWNobWVudHMgYXJlIG5vdyBoYW5kbGVkIHByb3Blcmx5LgoqIEFkZGVkIGFiaWxpdHkgdG8gY3VzdG9taXplIHRhZ3MgYW5kIGNhbXBhaWducy4KKiBBZGRlZCBhYmlsaXR5IHRvIHRvZ2dsZSBVUkwgYW5kIG9wZW4gdHJhY2tpbmcuCgo9IDEuMCAoMjAxMi0xMS0yNyk6ID0KKiBSZS1yZWxlYXNlIHRvIHVwZGF0ZSB2ZXJzaW9uaW5nIHRvIHN0YXJ0IGF0IDEuMCBpbnN0ZWFkIG9mIDAuMQoKPSAwLjEgKDIwMTItMTEtMjEpOiA9CiogSW5pdGlhbCBSZWxlYXNlCgo
mailgun
plugin2.1.10 • public • Published last month
Mailgun for WordPress