IyBDaGFuZ2VMb2cgZm9yIHN5cy1hdXRoL2NvbnNvbGVraXQKIyBDb3B5cmlnaHQgMTk5OS0yMDExIEdlbnRvbyBGb3VuZGF0aW9uOyBEaXN0cmlidXRlZCB1bmRlciB0aGUgR1BMIHYyCiMgJEhlYWRlcjogL3Zhci9jdnNyb290L2dlbnRvby14ODYvc3lzLWF1dGgvY29uc29sZWtpdC9DaGFuZ2VMb2csdiAxLjEwNCAyMDExLzA1LzE1IDA3OjE0OjIwIHNzdW9taW5lbiBFeHAgJAoKKmNvbnNvbGVraXQtMC40LjUgKDE1IE1heSAyMDExKQoKICAxNSBNYXkgMjAxMTsgU2FtdWxpIFN1b21pbmVuIDxzc3VvbWluZW5AZ2VudG9vLm9yZz4gK2NvbnNvbGVraXQtMC40LjUuZWJ1aWxkOgogIFZlcnNpb24gYnVtcC4KCipjb25zb2xla2l0LTAuNC40LXIxICgwNSBNYXkgMjAxMSkKCiAgMDUgTWF5IDIwMTE7IFNhbXVsaSBTdW9taW5lbiA8c3N1b21pbmVuQGdlbnRvby5vcmc+CiAgK2NvbnNvbGVraXQtMC40LjQtcjEuZWJ1aWxkOgogIFVzZSBzeXN0ZW1kLmVjbGFzcyB0byBnZXQgcGF0aCBmb3IgdW5pdCBmaWxlcyB3cnQgIzM2NjExMSBieSBNaWNoYWwgR/NybnkuCgogIDIzIEFwciAyMDExOyBTYW11bGkgU3VvbWluZW4gPHNzdW9taW5lbkBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuNC40LmVidWlsZDoKICBwcGM2NCBzdGFibGUgd3J0ICMzNjA3NjkKCiAgMjMgQXByIDIwMTE7IFJh+mwgUG9yY2VsIDxhcm1pbjc2QGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC40LjQuZWJ1aWxkOgogIGFscGhhL2lhNjQvc2gvc3BhcmMgc3RhYmxlIHdydCAjMzYwNzY5CgogIDE1IEFwciAyMDExOyBDaHJpc3RpYW4gRmF1bGhhbW1lciA8ZmF1bGlAZ2VudG9vLm9yZz4KICBjb25zb2xla2l0LTAuNC40LmVidWlsZDoKICBzdGFibGUgeDg2LCBidWcgMzYwNzY5CgogIDEyIEFwciAyMDExOyBKZXJvZW4gUm9vdmVycyA8amVyQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC40LjQuZWJ1aWxkOgogIFN0YWJsZSBmb3IgSFBQQSAoYnVnICMzNjA3NjkpLgoKICAxMCBBcHIgMjAxMTsgTWFya3VzIE1laWVyIDxtYWVra2VAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjQuNC5lYnVpbGQ6CiAgYXJtIHN0YWJsZSwgYnVnICMzNjA3NjkKCiAgMjcgTWFyIDIwMTE7IENocmlzdG9waCBNZW5kZSA8YW5nZWxvc0BnZW50b28ub3JnPiBjb25zb2xla2l0LTAuNC40LmVidWlsZDoKICBTdGFibGUgb24gYW1kNjQgd3J0IGJ1ZyAjMzYwNzY5CgogIDI3IE1hciAyMDExOyBCcmVudCBCYXVkZSA8cmFuZ2VyQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC40LjQuZWJ1aWxkOgogIE1hcmtpbmcgY29uc29sZWtpdC0wLjQuNCBwcGMgZm9yIGJ1ZyAzNjA3NjkKCipjb25zb2xla2l0LTAuNC40ICgyNiBGZWIgMjAxMSkKCiAgMjYgRmViIDIwMTE7IFNhbXVsaSBTdW9taW5lbiA8c3N1b21pbmVuQGdlbnRvby5vcmc+ICtjb25zb2xla2l0LTAuNC40LmVidWlsZDoKICBWZXJzaW9uIGJ1bXAuCgogIDEzIEphbiAyMDExOyBKZXJvZW4gUm9vdmVycyA8amVyQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC40LjMuZWJ1aWxkOgogIFN0YWJsZSBmb3IgSFBQQSAoYnVnICMzNDkwNTIpLgoKICAxMSBKYW4gMjAxMTsgS2FjcGVyIEtvd2FsaWsgPHhhcnRoaXNpdXNAZ2VudG9vLm9yZz4KICBjb25zb2xla2l0LTAuNC4zLmVidWlsZDoKICBwcGMgc3RhYmxlIHdydCAjMzQ5MDUyCgogIDA4IEphbiAyMDExOyBSYfpsIFBvcmNlbCA8YXJtaW43NkBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuNC4zLmVidWlsZDoKICBhbHBoYS9pYTY0L3NoL3NwYXJjIHN0YWJsZSB3cnQgIzM0OTA1MgoKICAyNyBEZWMgMjAxMDsgTWFya3VzIE1laWVyIDxtYWVra2VAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjQuMy5lYnVpbGQ6CiAgYXJtIHN0YWJsZSwgYnVnICMzNDkwNTIKCiAgMjIgRGVjIDIwMTA7IFNhbXVsaSBTdW9taW5lbiA8c3N1b21pbmVuQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC40LjMuZWJ1aWxkOgogIGFtZDY0L3g4NiBzdGFibGUgd3J0ICMzNDkwNTIKCiAgMTkgRGVjIDIwMTA7IFNhbXVsaSBTdW9taW5lbiA8c3N1b21pbmVuQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC40LjMuZWJ1aWxkOgogIHBwYzY0IHN0YWJsZSB3cnQgIzM0OTA1MgoKICAyNyBOb3YgMjAxMDsgUmH6bCBQb3JjZWwgPGFybWluNzZAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjQuMi1yNC5lYnVpbGQ6CiAgYWxwaGEvaWE2NC9zaC9zcGFyYyBzdGFibGUgd3J0ICMzNDMwOTcKCipjb25zb2xla2l0LTAuNC4zICgyNSBOb3YgMjAxMCkKCiAgMjUgTm92IDIwMTA7IFNhbXVsaSBTdW9taW5lbiA8c3N1b21pbmVuQGdlbnRvby5vcmc+ICtjb25zb2xla2l0LTAuNC4zLmVidWlsZDoKICBWZXJzaW9uIGJ1bXAuCgogIDA0IE5vdiAyMDEwOyBNYXJrdXMgTWVpZXIgPG1hZWtrZUBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuNC4yLXI0LmVidWlsZDoKICBhcm0gc3RhYmxlLCBidWcgIzM0MzA5NwoKICAwMSBOb3YgMjAxMDsgSmVyb2VuIFJvb3ZlcnMgPGplckBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuNC4yLXI0LmVidWlsZDoKICBTdGFibGUgZm9yIEhQUEEgUFBDIChidWcgIzM0MzA5NykuCgogIDAxIE5vdiAyMDEwOyBDaHJpc3RpYW4gRmF1bGhhbW1lciA8ZmF1bGlAZ2VudG9vLm9yZz4KICBjb25zb2xla2l0LTAuNC4yLXI0LmVidWlsZDoKICBzdGFibGUgeDg2LCBidWcgMzQzMDk3CgogIDMwIE9jdCAyMDEwOyBTYW11bGkgU3VvbWluZW4gPHNzdW9taW5lbkBnZW50b28ub3JnPgogIGNvbnNvbGVraXQtMC40LjItcjQuZWJ1aWxkOgogIHBwYzY0IHN0YWJsZSB3cnQgIzM0MzA5NwoKICAyOSBPY3QgMjAxMDsgTWFya29zIENoYW5kcmFzIDxod29hcmFuZ0BnZW50b28ub3JnPgogIGNvbnNvbGVraXQtMC40LjItcjQuZWJ1aWxkOgogIFN0YWJsZSBvbiBhbWQ2NCB3cnQgYnVnICMzNDMwOTcKCiAgMjggT2N0IDIwMTA7IFNhbXVsaSBTdW9taW5lbiA8c3N1b21pbmVuQGdlbnRvby5vcmc+CiAgY29uc29sZWtpdC0wLjQuMi1yNC5lYnVpbGQ6CiAgQmxvY2sgPHBhbWJhc2UtMjAxMDEwMjQgYmVjYXVzZSBvZiBtaXNzaW5nIHBhbV9sb2dpbnVpZC5zby4KCipjb25zb2xla2l0LTAuNC4yLXI0ICgyOCBPY3QgMjAxMCkKCiAgMjggT2N0IDIwMTA7IFNhbXVsaSBTdW9taW5lbiA8c3N1b21pbmVuQGdlbnRvby5vcmc+CiAgK2NvbnNvbGVraXQtMC40LjItcjQuZWJ1aWxkLCArZmlsZXMvOTAtY29uc29sZWtpdC0zOgogIENoYW5nZSB2YXJpYWJsZSAiU1RBUlRVUCIgdG8gImNvbW1hbmQiIHdydCAjMzQzMDMzIGJ5IE1hdHRoZXcgVHVybmJ1bGwuCgogIDI3IE9jdCAyMDEwOyBTYW11bGkgU3VvbWluZW4gPHNzdW9taW5lbkBnZW50b28ub3JnPgogIGNvbnNvbGVraXQtMC40LjItcjMuZWJ1aWxkOgogIENoZWNrIENPTkZJR19BVURJVFNZU0NBTEwgZm9yIC9wcm9jLzxwaWQ+L3Nlc3Npb25pZCB3cnQgIzM0MjI5MS4KCipjb25zb2xla2l0LTAuNC4yLXIzICgyMSBPY3QgMjAxMCkKCiAgMjEgT2N0IDIwMTA7IFNhbXVsaSBTdW9taW5lbiA8c3N1b21pbmVuQGdlbnRvby5vcmc+CiAgK2NvbnNvbGVraXQtMC40LjItcjMuZWJ1aWxkLCArZmlsZXMvOTAtY29uc29sZWtpdC0yOgogIFVwZGF0ZSAvZXRjL1gxMS94aW5pdC94aW5pdHJjLmQvOTAtY29uc29sZWtpdCBmcm9tIERlYmlhbi4gUmVtb3ZlCiAgLXJldmVydC5wYXRjaCBhbmQgYmxvY2sgYnJva2VuIHN5cy1hcHBzL3NoYWRvdyBpbnN0ZWFkIHdydCAjMzM2NjM0LgoKKmNvbnNvbGVraXQtMC40LjItcjIgKDIxIE9jdCAyMDEwKQoKICAyMSBPY3QgMjAxMDsgU2FtdWxpIFN1b21pbmVuIDxzc3VvbWluZW5AZ2VudG9vLm9yZz4KICArY29uc29sZWtpdC0wLjQuMi1yMi5lYnVpbGQsCiAgK2ZpbGVzL2NvbnNvbGVraXQtMC40LjItY2hlY2stZm9yLVZUX1dBSVRFVkVOVC1pb2N0bC1kdXJpbmctcnVudGltZS5wYXRjaDoKICBDaGVjayBmb3IgVlRfV0FJVEVWRU5UIGlvY3RsIGR1cmluZyBydW50aW1lLgoKKmNvbnNvbGVraXQtMC40LjItcjEgKDA5IFNlcCAyMDEwKQoKICAwOSBTZXAgMjAxMDsgU2FtdWxpIFN1b21pbmVuIDxzc3VvbWluZW5AZ2VudG9vLm9yZz4KICArY29uc29sZWtpdC0wLjQuMi1yMS5lYnVpbGQsICtmaWxlcy9jb25zb2xla2l0LTAuNC4yLXJldmVydC5wYXRjaDoKICBSZXZlcnQgdXBzdHJlYW0gIk9ubHkgc2V0IHNlc3Npb25zIHRvIGJlIGlzLWxvY2FsPXRydWUgaWYgc2V0IGJ5IGEgdHJ1c3RlZAogIHBhcnR5IiB3cnQgIzMzNjYzNC4KCipjb25zb2xla2l0LTAuNC4yICgwNyBTZXAgMjAxMCkKCiAgMDcgU2VwIDIwMTA7IFNhbXVsaSBTdW9taW5lbiA8c3N1b21pbmVuQGdlbnRvby5vcmc+CiAgK2NvbnNvbGVraXQtMC40LjIuZWJ1aWxkOgogIFZlcnNpb24gYnVtcC4KCipjb25zb2xla2l0LTAuNC4xLXIxICgyMSBBdWcgMjAxMCkKCiAgMjEgQXVnIDIwMTA7IFNhbXVsaSBTdW9taW5lbiA8c3N1b21pbmVuQGdlbnRvby5vcmc+CiAgK2NvbnNvbGVraXQtMC40LjEtcjEuZWJ1aWxkLCArZmlsZXMvY29uc29sZWtpdC0wLjQuMS1ub2RhZW1vbi5wYXRjaCwKICArZmlsZXMvY29uc29sZWtpdC0wLjQuMS1yZW9yZGVyLWluaXRpYWxpemF0aW9uLnBhdGNoOgogIERvbid0IHRha2UgYnVzIG5hbWUgdW50aWwgcmVhZHkgd3J0ICMzMzMzNDkuIERvbid0IGRhZW1vbml6ZSB3aGVuCiAgYWN0aXZhdGVkLgoKICAxOCBBdWcgMjAxMDsgTWFya3VzIE1laWVyIDxtYWVra2VAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjQuMS5lYnVpbGQ6CiAgYXJtIHN0YWJsZSwgYnVnICMzMTQ4OTkKCiAgMTQgQXVnIDIwMTA7IFJh+mwgUG9yY2VsIDxhcm1pbjc2QGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC40LjEuZWJ1aWxkOgogIGlhNjQvc2gvc3BhcmMgc3RhYmxlCgogIDA5IEF1ZyAyMDEwOyBKb3NlcGggSmV6YWsgPGpvc2VqeEBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuNC4xLmVidWlsZDoKICBNYXJrZWQgcHBjL3BwYzY0IHN0YWJsZS4KCiAgMjUgSnVsIDIwMTA7IFRvYmlhcyBLbGF1c21hbm4gPGtsYXVzbWFuQGdlbnRvby5vcmc+CiAgY29uc29sZWtpdC0wLjQuMS5lYnVpbGQ6CiAgU3RhYmxlIG9uIGFscGhhLCBidWcgIzMyOTYyMQoKICAyMCBKdWwgMjAxMDsgSmVyb2VuIFJvb3ZlcnMgPGplckBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuNC4xLmVidWlsZDoKICBTdGFibGUgZm9yIEhQUEEgKGJ1ZyAjMzE0ODk5KS4KCiAgMDQgSnVuIDIwMTA7IE1hcmt1cyBNZWllciA8bWFla2tlQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC40LjEuZWJ1aWxkOgogIHg4NiBzdGFibGUsIGJ1ZyAjMzE0ODk5CgogIDA5IE1heSAyMDEwOyBSYfpsIFBvcmNlbCA8YXJtaW43NkBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuMy4wLXIyLmVidWlsZDoKICBzaCBzdGFibGUKCiAgMDMgTWF5IDIwMTA7IE9saXZpZXIgQ3LqdGUgPHRlc3RlckBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuNC4xLmVidWlsZDoKICBhbWQ2NCBzdGFibGUsIGJ1ZyAjMzE0ODk5CgogIDI1IEFwciAyMDEwOyBSYfpsIFBvcmNlbCA8YXJtaW43NkBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuMy4wLXIyLmVidWlsZCwKICBjb25zb2xla2l0LTAuNC4xLmVidWlsZDoKICBBZGQgfnNoCgogIDEzIEFwciAyMDEwOyBBbGV4aXMgQmFsbGllciA8YWJhbGxpZXJAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjQuMS5lYnVpbGQ6CiAga2V5d29yZCB+eDg2LWZic2QKCiAgMzAgTWFyIDIwMTA7IEpvbmF0aGFuIENhbGxlbiA8YWJjZEBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuMy4wLXIyLmVidWlsZCwKICBjb25zb2xla2l0LTAuNC4xLmVidWlsZDoKICBCdW1wIHRvIEVBUEk9MywgYWRkIHByZWZpeCBrZXl3b3JkcwoKICAyOCBGZWIgMjAxMDsgUmH6bCBQb3JjZWwgPGFybWluNzZAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjQuMS5lYnVpbGQ6CiAgQWRkIH5hbHBoYS9+YXJtL35pYTY0L35zcGFyYwoKICAxNyBGZWIgMjAxMDsgR2lsbGVzIERhcnRpZ3VlbG9uZ3VlIDxldmFAZ2VudG9vLm9yZz4KICBjb25zb2xla2l0LTAuNC4xLmVidWlsZDoKICBSYWlzZSBkYnVzLWdsaWIgZGVwZW5kZW5jeSwgYnVnICMyOTg5MjQuCgogIDE2IEZlYiAyMDEwOyBKb3NlcGggSmV6YWsgPGpvc2VqeEBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuNC4xLmVidWlsZDoKICBNYXJrZWQgfnBwYy9+cHBjNjQgZm9yIGJ1ZyAjMjk2NTQ4LgoKICAwNiBKYW4gMjAxMDsgSmVyb2VuIFJvb3ZlcnMgPGplckBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuNC4xLmVidWlsZDoKICBNYXJrZWQgfmhwcGEgKGJ1ZyAjMjk2NTQ4KS4KCipjb25zb2xla2l0LTAuNC4xICgyOSBPY3QgMjAwOSkKCiAgMjkgT2N0IDIwMDk7IEdpbGxlcyBEYXJ0aWd1ZWxvbmd1ZSA8ZXZhQGdlbnRvby5vcmc+IGZpbGVzLzkwLWNvbnNvbGVraXQsCiAgLWNvbnNvbGVraXQtMC4yLjMuZWJ1aWxkLCAtZmlsZXMvY29uc29sZWtpdC0wLjIuMy1mcmVlYnNkLnBhdGNoLAogIC1jb25zb2xla2l0LTAuMi4xMC5lYnVpbGQsIC1jb25zb2xla2l0LTAuMi4xMC1yMS5lYnVpbGQsCiAgLWNvbnNvbGVraXQtMC4zLjAuZWJ1aWxkLCArZmlsZXMvY29uc29sZWtpdC0wLjQuMC1tdWx0aWxpYi5wYXRjaCwKICArZmlsZXMvY29uc29sZWtpdC0wLjQuMC1wb2xraXQtYXV0b21hZ2ljLnBhdGNoLCArY29uc29sZWtpdC0wLjQuMS5lYnVpbGQsCiAgK2ZpbGVzL2NvbnNvbGVraXQtMC40LjEtc2h1dGRvd24tcmVib290LXdpdGhvdXQtcG9saWNpZXMucGF0Y2g6CiAgTmV3IHZlcnNpb24gZm9yIEdOT01FIDIuMjguIENsZWFuIHVwIG9sZCByZXZpc2lvbi4gRml4IHhpbml0cmMgc2NyaXB0LgoKICAyOCBPY3QgMjAwOTsgUmH6bCBQb3JjZWwgPGFybWluNzZAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjMuMC1yMi5lYnVpbGQ6CiAgaWE2NC9tNjhrL3MzOTAvc2gvc3BhcmMgc3RhYmxlIHdydCAjMjc4MTgxCgogIDAzIE9jdCAyMDA5OyBNYXJrdXMgTWVpZXIgPG1hZWtrZUBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuMy4wLXIyLmVidWlsZDoKICBhcm0gc3RhYmxlLCBidWcgIzI3ODE4MQoKICAyOSBTZXAgMjAwOTsgVG9iaWFzIEtsYXVzbWFubiA8a2xhdXNtYW5AZ2VudG9vLm9yZz4KICBjb25zb2xla2l0LTAuMy4wLXIyLmVidWlsZDoKICBTdGFibGUgb24gYWxwaGEsIGJ1ZyAjMjc4MTgxCgogIDI3IFNlcCAyMDA5OyBuaXhudXQgPG5peG51dEBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuMy4wLXIyLmVidWlsZDoKICBwcGMgc3RhYmxlICMyNzgxODEKCiAgMjIgU2VwIDIwMDk7IEplcm9lbiBSb292ZXJzIDxqZXJAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjMuMC1yMi5lYnVpbGQ6CiAgU3RhYmxlIGZvciBIUFBBIChidWcgIzI3ODE4MSkuCgogIDE5IFNlcCAyMDA5OyBSb21haW4gUGVyaWVyIDxtcnBvdWV0QGdlbnRvby5vcmc+CiAgY29uc29sZWtpdC0wLjMuMC1yMi5lYnVpbGQ6CiAgU3RhYmxlIGZvciBhbWQ2NCBwZXIgYnVnICMyNzgxODEuCgogIDE2IFNlcCAyMDA5OyBDaHJpc3RpYW4gRmF1bGhhbW1lciA8ZmF1bGlAZ2VudG9vLm9yZz4KICBjb25zb2xla2l0LTAuMy4wLXIyLmVidWlsZDoKICBzdGFibGUgeDg2LCBidWcgMjc4MTgxCgogIDE0IFNlcCAyMDA5OyBUb20gR2FsbCA8dGdhbGxAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjMuMC1yMjoKICBzdGFibGUgb24gcHBjNjQsIGJ1ZyAjMjc4MTgxCgoqY29uc29sZWtpdC0wLjMuMC1yMiAoMTIgU2VwIDIwMDkpCgogIDEyIFNlcCAyMDA5OyBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BnZW50b28ub3JnPgogIGZpbGVzL2NvbnNvbGVraXQtMC4xLnJjLCAtY29uc29sZWtpdC0wLjMuMC1yMS5lYnVpbGQsCiAgK2NvbnNvbGVraXQtMC4zLjAtcjIuZWJ1aWxkOgogIFVzZSB0aGUgKGNvcnJlY3QpIHBpZCBmaWxlIHRvIGNvbnRyb2wgQ29uc29sZUtpdCBzdGFydC9zdG9wLiBBbHNvLCBkbyBhCiAgYmxhbmsgLXIyIGJ1bXAgc28gdXNlcnMgZ2V0IHRoZSBuZXcgaW5pdCBzY3JpcHQuCgogIDEyIEp1biAyMDA5OyBHaWxsZXMgRGFydGlndWVsb25ndWUgPGV2YUBnZW50b28ub3JnPgogIGNvbnNvbGVraXQtMC4zLjAtcjEuZWJ1aWxkOgogIE1ha2UgY29uc29sZWtpdCBpbml0IHNjcmlwdCBleGVjdXRhYmxlIGJ5IGRlZmF1bHQsIGNsb3NlczogIzI2MDg0Mi4KCiAgMDkgSnVuIDIwMDk7IFNhbXVsaSBTdW9taW5lbiA8c3N1b21pbmVuQGdlbnRvby5vcmc+CiAgY29uc29sZWtpdC0wLjMuMC1yMS5lYnVpbGQsCiAgK2ZpbGVzL2NvbnNvbGVraXQtMC4zLjAtc2tpcF94bWx0b192YWxpZGF0aW9uLnBhdGNoOgogIFNraXAgeG1sdG8gdmFsaWRhdGlvbiBiZWNhdXNlIDAuMC4yMiBhZGRzIC0tbm9lbnQgdG8geG1sbGludCBvcHRpb25zIGFuZAogIGRvY3VtZW50YXRpb24gZG9lc24ndCB2YWxpZGF0ZSBhbnltb3JlIHdydCAjMjcxNjc4LCB0aGFua3MgdG8gRGFycmVuIERhbGUKICBmb3IgcmVwb3J0aW5nLgoKKmNvbnNvbGVraXQtMC4zLjAtcjEgKDI3IEFwciAyMDA5KQoKICAyNyBBcHIgMjAwOTsgRGFuaWVsIEdyeW5pZXdpY3ogPGRhbmdAZ2VudG9vLm9yZz4KICArZmlsZXMvY29uc29sZWtpdC0wLjMuMC1hbGxvdy1zZXRpZGxlLnBhdGNoLCArY29uc29sZWtpdC0wLjMuMC1yMS5lYnVpbGQ6CiAgQnVtcCB0byBjb25zb2xla2l0LTAuMy4wLXIxCgogIC0gQWRkIFNldElkbGVIaW50IHRvIHRoZSBkYnVzIHBvbGljeSB0byBoYW5kbGUgdGhlIG5ldyBkZWZhdWx0LWRlbnkgb24KICBkYnVzCgogIDE3IE1hciAyMDA5OyBQZXRlciBBbGZyZWRzZW4gPGxva2lfdmFsQGdlbnRvby5vcmc+CiAgY29uc29sZWtpdC0wLjIuMTAuZWJ1aWxkLCBjb25zb2xla2l0LTAuMi4xMC1yMS5lYnVpbGQsCiAgY29uc29sZWtpdC0wLjMuMC5lYnVpbGQ6CiAgQnVtcCBkZXYtbGlicy9nbGliIGRlcGVuZGVuY3ksIHNpbmNlIEdSZWdleCAoYWRkZWQgaW4gZ2xpYi0yLjE0KSBpcyB1c2VkCiAgYnkgY29uc29sZWtpdC4gQ2hvb3NlIDIuMTYgc28gd2UgZG9uJ3QgaGF2ZSB0byBidW1wIGl0IGZvciBhIHdoaWxlLiBCdWcKICAyNjI4NTMuCgogIDA2IE1hciAyMDA5OyBKZXJvZW4gUm9vdmVycyA8amVyQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjEwLmVidWlsZDoKICBTdGFibGUgZm9yIEhQUEEgKGJ1ZyAjMjQyMjcwKS4KCiAgMjUgRmViIDIwMDk7IEpvc2VwaCBKZXphayA8am9zZWp4QGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjEwLmVidWlsZDoKICBNYXJrZWQgcHBjIHN0YWJsZSBmb3IgYnVnICMyNDIyNzAuCgoqY29uc29sZWtpdC0wLjMuMCAoMTggRmViIDIwMDkpCgogIDE4IEZlYiAyMDA5OyBHaWxsZXMgRGFydGlndWVsb25ndWUgPGV2YUBnZW50b28ub3JnPgogICtmaWxlcy9jb25zb2xla2l0LTAuMy4wLXNodXRkb3duLnBhdGNoLCBtZXRhZGF0YS54bWwsCiAgK2NvbnNvbGVraXQtMC4zLjAuZWJ1aWxkOgogIEJ1bXAgdG8gMC4zLgoKICAxNyBGZWIgMjAwOTsgUmH6bCBQb3JjZWwgPGFybWluNzZAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjIuMTAuZWJ1aWxkOgogIGFybS9pYTY0L3MzOTAvc2gvc3BhcmMgc3RhYmxlIHdydCAjMjQyMjcwCgoqY29uc29sZWtpdC0wLjIuMTAtcjEgKDE1IEZlYiAyMDA5KQoKICAxNSBGZWIgMjAwOTsgR2lsbGVzIERhcnRpZ3VlbG9uZ3VlIDxldmFAZ2VudG9vLm9yZz4KICArZmlsZXMvY29uc29sZWtpdC0wLjIuMTAtZGlyZWN0b3J5LWxlYWsucGF0Y2gsICtmaWxlcy85MC1jb25zb2xla2l0LAogICtmaWxlcy9jb25zb2xla2l0LTAuMi4xMC1jbGVhbnVwX2NvbnNvbGVfdGFncy5wYXRjaCwKICArZmlsZXMvY29uc29sZWtpdC0wLjIuMTAtcGFtLWFkZC1ub3gxMS5wYXRjaCwKICArZmlsZXMvY29uc29sZWtpdC0wLjIuMTAtcG9sa2l0LWF1dG9tYWdpYy5wYXRjaCwKICArZmlsZXMvcGFtLWZvcmVncm91bmQtY29tcGF0LmNrLCAtY29uc29sZWtpdC0wLjIuMS5lYnVpbGQsCiAgK2NvbnNvbGVraXQtMC4yLjEwLXIxLmVidWlsZDoKICBCdW1wIHRvIDAuMi4xMC1yMS4KICAgKiBBZGQgY29tcGF0aWJpbGl0eSBzY3JpcHQgZm9yIGF0X2NvbnNvbGUgZGVwZW5kYW50IHByb2dyYW1zLCBidWcgIzI1Nzc2MS4KICAgKiBSZW1vdmUgdW5uZWVkZWQgcm0sIGJ1ZyAjMjU5MDk2LgogICAqIEFkZCBhIFhzZXNzaW9uIHNjcmlwdCBmb3IgcGVvcGxlIG5vdCB1c2luZyBnZG0sIGJ1ZyAjMjU3NzYzLgogICAqIFBsdWcgYSBsZWFrLCBidWcgIzI1ODY4NS4KICAgKiBBZGQga2VlcGRpcnMgYW5kIGZpeCBsb2NhbHN0YXRlZGlyLCBidWcgIzI1NzE2NC4KCiAgMTUgRmViIDIwMDk7IE1hcmt1cyBNZWllciA8bWFla2tlQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjEwLmVidWlsZDoKICB4ODYgc3RhYmxlLCBidWcgIzI0MjI3MAoKICAxMiBGZWIgMjAwOTsgQnJlbnQgQmF1ZGUgPHJhbmdlckBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuMi4xMC5lYnVpbGQ6CiAgc3RhYmxlIHBwYzY0LCBidWcgMjQyMjcwCgogIDEyIEZlYiAyMDA5OyBKZXJlbXkgT2xleGEgPGRhcmtzaWRlQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjEwLmVidWlsZDoKICBhbWQ2NCBzdGFibGUsIGJ1ZyAyNDIyNzAKCiAgMDkgRmViIDIwMDk7IFRvYmlhcyBLbGF1c21hbm4gPGtsYXVzbWFuQGdlbnRvby5vcmc+CiAgY29uc29sZWtpdC0wLjIuMTAuZWJ1aWxkOgogIFN0YWJsZSBvbiBhbHBoYSwgYnVnICMyNDIyNzAKCiAgMTMgSmFuIDIwMDk7IERvdWcgR29sZHN0ZWluIDxjYXJkb2VAZ2VudG9vLm9yZz4gbWV0YWRhdGEueG1sOgogIGdlbnRvcGlhIGlzIGJlY29taW5nIGZyZWVkZXNrdG9wCgogIDA5IERlYyAyMDA4OyBBbGV4aXMgQmFsbGllciA8YWJhbGxpZXJAZ2VudG9vLm9yZz4KICBjb25zb2xla2l0LTAuMi4xMC5lYnVpbGQ6CiAgZHJvcCBic2QgcGF0Y2ggdGhhdCBkb2VzbnQgYXBwbHkgYW55bW9yZSwgYnVnICMyMzE5MTAKCipjb25zb2xla2l0LTAuMi4xMCAoMjEgSnVuIDIwMDgpCgogIDIxIEp1biAyMDA4OyBCZW4gZGUgR3Jvb3QgPHluZ3dpbkBnZW50b28ub3JnPiArY29uc29sZWtpdC0wLjIuMTAuZWJ1aWxkOgogIFZlcnNpb24gYnVtcC4gRml4ZXMgY29tcGlsYXRpb24gd2l0aCBnbGliYy0yLjgsIGJ1ZyAyMjU0MDUuCgogIDA2IERlYyAyMDA3OyBTdGV2ZSBEaWJiIDxiZWFuZG9nQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjMuZWJ1aWxkOgogIGFtZDY0IHN0YWJsZSwgYnVnIDIwMTEwMwoKICAwNiBEZWMgMjAwNzsgUmH6bCBQb3JjZWwgPGFybWluNzZAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjIuMy5lYnVpbGQ6CiAgYWxwaGEvaWE2NC9zcGFyYyBzdGFibGUgd3J0ICMyMDExMDMKCiAgMDUgRGVjIDIwMDc7IEplcm9lbiBSb292ZXJzIDxqZXJAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjIuMy5lYnVpbGQ6CiAgU3RhYmxlIGZvciBIUFBBIChidWcgIzIwMTEwMykuCgogIDA0IERlYyAyMDA3OyBNYXJrdXMgUm90aGUgPGNvcnNhaXJAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjIuMy5lYnVpbGQ6CiAgU3RhYmxlIG9uIHBwYzY0OyBidWcgIzIwMTEwMwoKICAwNCBEZWMgMjAwNzsgbml4bnV0IDxuaXhudXRAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjIuMy5lYnVpbGQ6CiAgU3RhYmxlIG9uIHBwYyB3cnQgYnVnIDIwMTEwMwoKICAwNCBEZWMgMjAwNzsgQ2hyaXN0aWFuIEZhdWxoYW1tZXIgPG9wZmVyQGdlbnRvby5vcmc+CiAgY29uc29sZWtpdC0wLjIuMy5lYnVpbGQ6CiAgc3RhYmxlIHg4NiwgYnVnIDIwMTEwMwoKICAxOSBOb3YgMjAwNzsgSm9zaHVhIEtpbmFyZCA8a3VtYmFAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjIuMS5lYnVpbGQ6CiAgU3RhYmxlIG9uIG1pcHMuCgogIDMxIE9jdCAyMDA3OyBSb3kgTWFycGxlcyA8dWJlcmxvcmRAZ2VudG9vLm9yZz4KICArZmlsZXMvY29uc29sZWtpdC0wLjIuMy1mcmVlYnNkLnBhdGNoLCBjb25zb2xla2l0LTAuMi4zLmVidWlsZDoKICBBZGQgYSB3b3JrYXJvdW5kIGZvciBhIEZyZWVCU0Qga2VybmVsIGJ1ZyBzbyBjb25zb2xla2l0IHN0b3BzIHdoZW4gaW4gdXNlLgoKICAxOCBPY3QgMjAwNzsgUm95IE1hcnBsZXMgPHViZXJsb3JkQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjMuZWJ1aWxkOgogIEtleXdvcmRlZCB+eDg2LWZic2QKCiAgMTUgT2N0IDIwMDc7IERvdWcgR29sZHN0ZWluIDxjYXJkb2VAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjIuMS5lYnVpbGQsCiAgY29uc29sZWtpdC0wLjIuMy5lYnVpbGQ6CiAgaWYgd2UncmUgdXNpbmcgZ2xpYmMsIHdlIGNhbid0IHVzZSB2ZXJzaW9uIDIuNCBiZWNhdXNlIG9mIG1pc3NpbmcgZGVmaW5lcwogIGJ1ZyAjMTk1NTM3CgogIDIyIFNlcCAyMDA3OyBUb20gR2FsbCA8dGdhbGxAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjIuMS5lYnVpbGQ6CiAgc3RhYmxlIG9uIHBwYzY0CgoqY29uc29sZWtpdC0wLjIuMyAoMTkgU2VwIDIwMDcpCgogIDE5IFNlcCAyMDA3OyBEb3VnIEdvbGRzdGVpbiA8Y2FyZG9lQGdlbnRvby5vcmc+ICtjb25zb2xla2l0LTAuMi4zLmVidWlsZDoKICBhZGQgbGF0ZXN0IENvbnNvbGVLaXQgZnJvbSBHZW50b3BpYQoKICAwNiBTZXAgMjAwNzsgRG91ZyBHb2xkc3RlaW4gPGNhcmRvZUBnZW50b28ub3JnPgogIC1maWxlcy9jb25zb2xla2l0LTAuMi4wLWdkay10by14MTEucGF0Y2gsCiAgLWZpbGVzL2NvbnNvbGVraXQtMC4yLjAtcGFtLWxpYi1maXgucGF0Y2gsIC1jb25zb2xla2l0LTAuMi4wLXIxLmVidWlsZCwKICBjb25zb2xla2l0LTAuMi4xLmVidWlsZDoKICByZW1vdmUgb2xkIHZlcnNpb24uIGdvdCBKb24gdG8gbWFrZSBhIHdlYnNpdGUgZm9yIGl0LgoKICAyOCBBdWcgMjAwNzsgSmVyb2VuIFJvb3ZlcnMgPGplckBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuMi4xLmVidWlsZDoKICBTdGFibGUgZm9yIEhQUEEgKGJ1ZyAjMTg1ODIzKS4KCiAgMTEgQXVnIDIwMDc7IEFuZHJlaiBLYWNpYW4gPHRpY2hvQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjEuZWJ1aWxkOgogIFN0YWJsZSBvbiB4ODYsIGJ1ZyAjMTg1ODIzLgoKICAxMCBBdWcgMjAwNzsgQ2hyaXN0b3BoIE1lbmRlIDxhbmdlbG9zQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjEuZWJ1aWxkOgogIFN0YWJsZSBvbiBhbWQ2NCB3cnQgYnVnICMxODU4MjMKCiAgMDggQXVnIDIwMDc7IFJh+mwgUG9yY2VsIDxhcm1pbjc2QGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjEuZWJ1aWxkOgogIGFscGhhL2lhNjQgc3RhYmxlIHdydCAjMTg1ODIzCgogIDA3IEF1ZyAyMDA3OyBUb2JpYXMgU2NoZXJiYXVtIDxkZXJ0b2JpMTIzQGdlbnRvby5vcmc+CiAgY29uc29sZWtpdC0wLjIuMS5lYnVpbGQ6CiAgU3RhYmxlIG9uIHBwYyB3cnQgYnVnICMxODU4MjMuCgogIDA3IEF1ZyAyMDA3OyBHdXN0YXZvIFphY2FyaWFzIDxndXN0YXZvekBnZW50b28ub3JnPgogIGNvbnNvbGVraXQtMC4yLjEuZWJ1aWxkOgogIFN0YWJsZSBvbiBzcGFyYyB3cnQgIzE4NTgyMwoKICAwNiBBdWcgMjAwNzsgSm9zaHVhIEtpbmFyZCA8a3VtYmFAZ2VudG9vLm9yZz4gY29uc29sZWtpdC0wLjIuMS5lYnVpbGQ6CiAgTWFya2VkIHVuc3RhYmxlIG9uIG1pcHMuCgogIDE5IE1heSAyMDA3OyBSYfpsIFBvcmNlbCA8YXJtaW43NkBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuMi4xLmVidWlsZDoKICBBZGQgfmFscGhhIHdydCAjMTc2NTE3CgogIDExIEFwciAyMDA3OyBEb3VnIEdvbGRzdGVpbiA8Y2FyZG9lQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjEuZWJ1aWxkOgogIG9vcHMuIGxlZnQgaW4gc29tZSBwYXRjaGVzCgogIDExIEFwciAyMDA3OyBEb3VnIEdvbGRzdGVpbiA8Y2FyZG9lQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjEuZWJ1aWxkOgogIG11bHRpbGliIGZpeCBmb3IgcGFtIG1vZHVsZQoKKmNvbnNvbGVraXQtMC4yLjEgKDExIEFwciAyMDA3KQoKICAxMSBBcHIgMjAwNzsgRG91ZyBHb2xkc3RlaW4gPGNhcmRvZUBnZW50b28ub3JnPiArY29uc29sZWtpdC0wLjIuMS5lYnVpbGQ6CiAgcmV2IGJ1bXAKCiAgMTAgQXByIDIwMDc7IERvdWcgR29sZHN0ZWluIDxjYXJkb2VAZ2VudG9vLm9yZz4gLWNvbnNvbGVraXQtMC4yLjAuZWJ1aWxkLAogIGNvbnNvbGVraXQtMC4yLjAtcjEuZWJ1aWxkOgogIHN5cy1saWJzL3BhbSAtPiB2aXJ0dWFsL3BhbSBmb3IgRnJlZUJTRC4KCiAgMDIgQXByIDIwMDc7IFJh+mwgUG9yY2VsIDxhcm1pbjc2QGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjAtcjEuZWJ1aWxkOgogIEFkZCB+aWE2NCB3cnQgYnVnIDE3MjA5NwoKICAwMiBBcHIgMjAwNzsgSmVyb2VuIFJvb3ZlcnMgPGplckBnZW50b28ub3JnPiBjb25zb2xla2l0LTAuMi4wLXIxLmVidWlsZDoKICBNYXJrZWQgfmhwcGEgKGJ1ZyAjMTcyMDk3KS4KCipjb25zb2xla2l0LTAuMi4wLXIxICgyOSBNYXIgMjAwNykKCiAgMjkgTWFyIDIwMDc7IERvdWcgR29sZHN0ZWluIDxjYXJkb2VAZ2VudG9vLm9yZz4KICArZmlsZXMvY29uc29sZWtpdC0wLjIuMC1nZGstdG8teDExLnBhdGNoLAogICtmaWxlcy9jb25zb2xla2l0LTAuMi4wLXBhbS1saWItZml4LnBhdGNoLCArY29uc29sZWtpdC0wLjIuMC1yMS5lYnVpbGQ6CiAgQ2hhbmdlIEdUSysgZGVwZW5kIHRvIFgxMS4gRml4IC9saWIvIGlzc3Vlcy4KCiAgMjYgTWFyIDIwMDc7IEd1c3Rhdm8gWmFjYXJpYXMgPGd1c3Rhdm96QGdlbnRvby5vcmc+CiAgY29uc29sZWtpdC0wLjIuMC5lYnVpbGQ6CiAgS2V5d29yZGVkIH5zcGFyYyB3cnQgIzE3MjA5NwoKICAyNSBNYXIgMjAwNzsgTWFya3VzIFJvdGhlIDxjb3JzYWlyQGdlbnRvby5vcmc+IGNvbnNvbGVraXQtMC4yLjAuZWJ1aWxkOgogIEFkZGVkIH5wcGM2NDsgYnVnICMxNzIwOTcKCiAgMjQgTWFyIDIwMDc7IFN0ZWV2IEtsaW1hc3pld3NraSA8c3RlZXZAZ2VudG9vLm9yZz4KICBjb25zb2xla2l0LTAuMi4wLmVidWlsZDoKICBBZGQgfnBwYyAoYnVpbGRzIGFuZCB3b3JrcyBvbiBteSBFZmlrYSkgYW5kIGFkZCBNQUtFT1BUUz0iJE1BS0VPUFRTIC1qMSIgYXMgaXQKICBkb2Vzbid0IGFwcGVhciB0byBiZSBwYXJhbGxlbCBtYWtlIHNhZmUuCgoqY29uc29sZWtpdC0wLjIuMCAoMjQgTWFyIDIwMDcpCgogIDI0IE1hciAyMDA3OyBTdGVldiBLbGltYXN6ZXdza2kgPHN0ZWV2QGdlbnRvby5vcmc+CiAgK2ZpbGVzL2NvbnNvbGVraXQtMC4xLnJjLCArbWV0YWRhdGEueG1sLCArY29uc29sZWtpdC0wLjIuMC5lYnVpbGQ6CiAgTmV3IHBhY2thZ2UsIG5lZWRlZCBmb3IgR0RNLCBidXQgd2lsbCBob3BlZnVsbHkgc29vbiByZXBsYWNlIHBhbV9jb25zb2xlCgo=