IwojICRSQ1NJZDogeGMvbGliL2ZvbnRjb25maWcvZmMtbGFuZy9jcy5vcnRoLHYgMS4yIDIwMDIvMDcvMDYgMjM6NTk6MTUga2VpdGhwIEV4cCAkCiMKIyBDb3B5cmlnaHQgqSAyMDAyIEtlaXRoIFBhY2thcmQKIwojIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBzZWxsIHRoaXMgc29mdHdhcmUgYW5kIGl0cwojIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLCBwcm92aWRlZCB0aGF0CiMgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQgYm90aCB0aGF0CiMgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZwojIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIEtlaXRoIFBhY2thcmQgbm90IGJlIHVzZWQgaW4KIyBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlIHdpdGhvdXQKIyBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgS2VpdGggUGFja2FyZCBtYWtlcyBubwojIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UuICBJdAojIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCiMKIyBLRUlUSCBQQUNLQVJEIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLAojIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUywgSU4gTk8KIyBFVkVOVCBTSEFMTCBLRUlUSCBQQUNLQVJEIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIElORElSRUNUIE9SCiMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsCiMgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUgojIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IKIyBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgojCiMgQ3plY2ggKENTKQojCiMgU291cmNlczoKIwl3d3cuZXZlcnR5cGUuY29tCiMJd3d3LmVraS5lZS9sZXR0ZXIKIwowMDQxLTAwNWEKMDA2MS0wMDdhCjAwQzEJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFCiMwMEM0CQkjIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMJCWV2ZXJ0eXBlLmNvbQowMEM5CQkjIExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBBQ1VURQowMENECQkjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBBQ1VURQowMEQzCQkjIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBBQ1VURQojMDBENgkJIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTCQlldmVydHlwZS5jb20KMDBEQQkJIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQUNVVEUKIzAwREMJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUwkJZXZlcnR5cGUuY29tCjAwREQJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEFDVVRFCjAwRTEJCSMgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBBQ1VURQojMDBFNAkJIyBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUwkJZXZlcnR5cGUuY29tCjAwRTkJCSMgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBBQ1VURQowMEVECQkjIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQUNVVEUKMDBGMwkJIyBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEFDVVRFCiMwMEY2CQkjIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTCQlldmVydHlwZS5jb20KMDBGQQkJIyBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEFDVVRFCiMwMEZDCQkjIExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTCQlldmVydHlwZS5jb20KMDBGRAkJIyBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEFDVVRFCjAxMEMJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENBUk9OCjAxMEQJCSMgTEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDQVJPTgowMTBFCQkjIExBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBDQVJPTgowMTBGCQkjIExBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0FST04KMDExQQkJIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0FST04KMDExQgkJIyBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENBUk9OCjAxNDcJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENBUk9OCjAxNDgJCSMgTEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDQVJPTgowMTU4CQkjIExBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBDQVJPTgowMTU5CQkjIExBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQ0FST04KMDE2MAkJIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST04KMDE2MQkJIyBMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENBUk9OCjAxNjQJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENBUk9OCjAxNjUJCSMgTEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDQVJPTgowMTZFCQkjIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBSSU5HIEFCT1ZFCjAxNkYJCSMgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBSSU5HIEFCT1ZFCjAxN0QJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIENBUk9OCjAxN0UJCSMgTEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTgo=