IwojICRSQ1NJZDogeGMvbGliL2ZvbnRjb25maWcvZmMtbGFuZy9jeS5vcnRoLHYgMS4xIDIwMDIvMDcvMTIgMTk6MTk6MTUga2VpdGhwIEV4cCAkCiMKIyBDb3B5cmlnaHQgqSAyMDAyIEtlaXRoIFBhY2thcmQKIwojIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBzZWxsIHRoaXMgc29mdHdhcmUgYW5kIGl0cwojIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLCBwcm92aWRlZCB0aGF0CiMgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQgYm90aCB0aGF0CiMgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZwojIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIEtlaXRoIFBhY2thcmQgbm90IGJlIHVzZWQgaW4KIyBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlIHdpdGhvdXQKIyBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgS2VpdGggUGFja2FyZCBtYWtlcyBubwojIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UuICBJdAojIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCiMKIyBLRUlUSCBQQUNLQVJEIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLAojIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUywgSU4gTk8KIyBFVkVOVCBTSEFMTCBLRUlUSCBQQUNLQVJEIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIElORElSRUNUIE9SCiMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsCiMgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUgojIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IKIyBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgojCiMgV2Vsc2ggKENZKQojCiMgQ292ZXJhZ2UgZ2l2ZW4gYnkgTWFya3VzIEt1aG4gPE1hcmt1cy5LdWhuQGNsLmNhbS5hYy51az4KIyBhbmQgc2VwYXJhdGVseSBieSBKZXNzaWNhIFBlcnJ5IEhla21hbiA8anBoZWttYW5AYXJib3JpdXMubmV0PgojIHdpdGggaGVscCBmcm9tIE1hcmsgS2lsbGUgYW5kIEplcnJ5IEh1bnRlci4KIwowMDQxLTAwNWEKMDA2MS0wMDdhCjAwQzIgIwlMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWAowMEM5ICMJTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEFDVVRFCjAwQ0EgIwlMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAowMENFICMJTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIENJUkNVTUZMRVgKMDBDRiAjCUxBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMKMDBENCAjCUxBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYCjAwRTIgIwlMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVgKMDBFOSAjCUxBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQUNVVEUKMDBFQSAjCUxBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAowMEVFICMJTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYCjAwRUYgIwlMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUwowMEY0ICMJTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYCjAwRkYgIwlMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUwojCiMgTm9uLUxhdGluLTEgY2hhcmFjdGVycyBuZWVkZWQgZm9yIFdlbHNoOgojCjAxNzQgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggQ0lSQ1VNRkxFWAowMTc1ICMgTEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBDSVJDVU1GTEVYCjAxNzYgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggQ0lSQ1VNRkxFWAowMTc3ICMgTEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBDSVJDVU1GTEVYCjAxNzggIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTCiMKIyBBbmQgc3RyaWNrdGx5IHNwZWFraW5nIGZvciBkaWN0aW9uYXJ5IGF1dGhvcnMgYWxzbzoKIwoxRTgwICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIEdSQVZFCjFFODEgIyBMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIEdSQVZFCjFFODIgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggQUNVVEUKMUU4MyAjIExBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggQUNVVEUKMUU4NCAjIExBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBESUFFUkVTSVMKMUU4NSAjIExBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggRElBRVJFU0lTCjFFRjIgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggR1JBVkUKMUVGMyAjIExBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggR1JBVkUK