LyogRHJpdmVyIGZvciBVU0IgTWFzcyBTdG9yYWdlIGNvbXBsaWFudCBkZXZpY2VzCiAqIFVudXN1YWwgRGV2aWNlcyBGaWxlCiAqCiAqICRJZDogdW51c3VhbF9kZXZzLmgsdiAxLjMyIDIwMDIvMDIvMjUgMDI6NDE6MjQgbWRoYXJtIEV4cCAkCiAqCiAqIEN1cnJlbnQgZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIGJ5OgogKiAgIChjKSAyMDAwLTIwMDIgTWF0dGhldyBEaGFybSAobWRoYXJtLXVzYkBvbmUtZXllZC1hbGllbi5uZXQpCiAqCiAqIEluaXRpYWwgd29yayBieToKICogICAoYykgMjAwMCBBZGFtIEouIFJpY2h0ZXIgKGFkYW1AeWdnZHJhc2lsLmNvbSksIFlnZ2RyYXNpbCBDb21wdXRpbmcsIEluYy4KICoKICogUGxlYXNlIHNlZSBodHRwOi8vd3d3Lm9uZS1leWVkLWFsaWVuLm5ldC9+bWRoYXJtL2xpbnV4LXVzYiBmb3IgbW9yZQogKiBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGRyaXZlci4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKICogbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKICogd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICogNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiAqLwoKLyogSU1QT1JUQU5UIE5PVEU6IFRoaXMgZmlsZSBtdXN0IGJlIGluY2x1ZGVkIGluIGFub3RoZXIgZmlsZSB3aGljaCBkb2VzCiAqIHRoZSBmb2xsb3dpbmcgdGhpbmcgZm9yIGl0IHRvIHdvcms6CiAqIFRoZSBtYWNybyBVTlVTVUFMX0RFVigpIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgdGhpcyBmaWxlIGlzIGluY2x1ZGVkCiAqLwoKLyogSWYgeW91IGVkaXQgdGhpcyBmaWxlLCBwbGVhc2UgdHJ5IHRvIGtlZXAgaXQgc29ydGVkIGZpcnN0IGJ5IFZlbmRvcklELAogKiB0aGVuIGJ5IFByb2R1Y3RJRC4KICoKICogSWYgeW91IHdhbnQgdG8gYWRkIGFuIGVudHJ5IGZvciB0aGlzIGZpbGUsIGJlIHN1cmUgdG8gaW5jbHVkZSB0aGUKICogZm9sbG93aW5nIGluZm9ybWF0aW9uOgogKgktIGEgcGF0Y2ggdGhhdCBhZGRzIHRoZSBlbnRyeSBmb3IgeW91ciBkZXZpY2UsIGluY2x1ZGluZyB5b3VyCiAqCSAgZW1haWwgYWRkcmVzcyByaWdodCBhYm92ZSB0aGUgZW50cnkgKHBsdXMgbWF5YmUgYSBicmllZgogKgkgIGV4cGxhbmF0aW9uIG9mIHRoZSByZWFzb24gZm9yIHRoZSBlbnRyeSksCiAqCS0gYSBjb3B5IG9mIC9wcm9jL2J1cy91c2IvZGV2aWNlcyB3aXRoIHlvdXIgZGV2aWNlIHBsdWdnZWQgaW4KICoJICBydW5uaW5nIHdpdGggdGhpcyBwYXRjaC4KICogU2VuZCB5b3VyIHN1Ym1pc3Npb24gdG8gZWl0aGVyIFBoaWwgRGlib3dpdHogPHBoaWxAaXBvbS5jb20+IG9yCiAqIEFsYW4gU3Rlcm4gPHN0ZXJuQHJvd2xhbmQuaGFydmFyZC5lZHU+LCBhbmQgZG9uJ3QgZm9yZ2V0IHRvIENDOiB0aGUKICogVVNCIGRldmVsb3BtZW50IGxpc3QgPGxpbnV4LXVzYi1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+LgogKi8KCi8qIHBhdGNoIHN1Ym1pdHRlZCBieSBWaXZpYW4gQnJlZ2llciA8Vml2aWFuLkJyZWdpZXJAaW1hZy5mcj4KICovClVOVVNVQUxfREVWKCAgMHgwM2ViLCAweDIwMDIsIDB4MDEwMCwgMHgwMTAwLAogICAgICAgICAgICAgICAgIkFUTUVMIiwKICAgICAgICAgICAgICAgICJTTkQxIFN0b3JhZ2UiLAogICAgICAgICAgICAgICAgVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCiAgICAgICAgICAgICAgICBVU19GTF9JR05PUkVfUkVTSURVRSksCgovKiBtb2RpZmllZCBieSBUb2JpYXMgTG9yZW56IDx0b2JpYXMubG9yZW56QGdteC5uZXQ+ICovClVOVVNVQUxfREVWKCAgMHgwM2VlLCAweDY5MDEsIDB4MDAwMCwgMHgwMjAwLAoJCSJNaXRzdW1pIiwKCQkiVVNCIEZERCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogUmVwb3J0ZWQgYnkgUm9kb2xmbyBRdWVzYWRhIDxycXVlc2FkYUByb3F6Lm5ldD4gKi8KVU5VU1VBTF9ERVYoICAweDAzZWUsIDB4NjkwNiwgMHgwMDAzLCAweDAwMDMsCgkJIlZJQSBUZWNobm9sb2dpZXMgSW5jLiIsCgkJIk1pdHN1bWkgbXVsdGkgY2FyZHJlYWRlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKClVOVVNVQUxfREVWKCAgMHgwM2YwLCAweDAxMDcsIDB4MDIwMCwgMHgwMjAwLCAKCQkiSFAiLAoJCSJDRC1Xcml0ZXIrIiwKCQlVU19TQ184MDcwLCBVU19QUl9DQiwgTlVMTCwgMCksIAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVApVTlVTVUFMX0RFViggIDB4MDNmMCwgMHgwMjA3LCAweDAwMDEsIDB4MDAwMSwgCgkJIkhQIiwKCQkiQ0QtV3JpdGVyKyA4MjAwZSIsCgkJVVNfU0NfODA3MCwgVVNfUFJfVVNCQVQsIGluaXRfdXNiYXRfY2QsIDApLAoKVU5VU1VBTF9ERVYoICAweDAzZjAsIDB4MDMwNywgMHgwMDAxLCAweDAwMDEsIAoJCSJIUCIsCgkJIkNELVdyaXRlcisgQ0QtNGUiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX1VTQkFULCBpbml0X3VzYmF0X2NkLCAwKSwKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBTZWJhc3RpYW4gS2FwZmVyIDxzZWJhc3RpYW5fa2FwZmVyQGdteC5uZXQ+CiAqIGFuZCBPbGFmIEhlcmluZyA8b2xoQHN1c2UuZGU+IChkaWZmZXJlbnQgYmNkJ3MsIHNhbWUgdmVuZG9yL3Byb2R1Y3QpCiAqIGZvciBVU0IgZmxvcHBpZXMgdGhhdCBuZWVkIHRoZSBTSU5HTEVfTFVOIGVuZm9yY2VtZW50LgogKi8KVU5VU1VBTF9ERVYoICAweDA0MDksIDB4MDA0MCwgMHgwMDAwLCAweDk5OTksCgkJIk5FQyIsCgkJIk5FQyBVU0IgVUYwMDB4IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgovKiBQYXRjaCBzdWJtaXR0ZWQgYnkgTWlobmVhLUNvc3RpbiBHcmlnb3JlIDxtaWhuZWFAenVsdS5ybz4gKi8KVU5VU1VBTF9ERVYoICAweDA0MGQsIDB4NjIwNSwgMHgwMDAzLCAweDAwMDMsCgkJIlZJQSBUZWNobm9sb2dpZXMgSW5jLiIsCgkJIlVTQiAyLjAgQ2FyZCBSZWFkZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBEZWR1Y2VkIGJ5IEpvbmF0aGFuIFdvaXRoZSA8andvaXRoZUBwaHlzaWNzLmFkZWxhaWRlLmVkdS5hdT4KICogRW50cnkgbmVlZGVkIGZvciBmbGFnczogVVNfRkxfRklYX0lOUVVJUlkgYmVjYXVzZSBpbml0aWFsIGlucXVpcnkgbWVzc2FnZQogKiBhbHdheXMgZmFpbHMgYW5kIGNvbmZ1c2VzIGRyaXZlLgogKi8KVU5VU1VBTF9ERVYoICAweDA0MTEsIDB4MDAxYywgMHgwMTEzLCAweDAxMTMsCgkJIkJ1ZmZhbG8iLAoJCSJEVUItUDQwRyBIREQiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBTdWJtaXR0ZWQgYnkgRXJuZXN0YXMgVmFpY2l1a2V2aWNpdXMgPGVybmlzdkBnbWFpbC5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNDE5LCAweDAxMDAsIDB4MDEwMCwgMHgwMTAwLAogICAgICAgICAgICAgICAgIlNhbXN1bmcgSW5mby4gU3lzdGVtcyBBbWVyaWNhLCBJbmMuIiwKICAgICAgICAgICAgICAgICJNUDMgUGxheWVyIiwKICAgICAgICAgICAgICAgIFVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAogICAgICAgICAgICAgICAgVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IE9yZ2FkIFNoYW5laCA8b3JnYWRzQGdtYWlsLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDA0MTksIDB4YWFjZSwgMHgwMTAwLCAweDAxMDAsCgkJIlNhbXN1bmciLCAiTVAzIFBsYXllciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IENocmlzdGlhbiBMZWJlciA8Y2hyaXN0aWFuQGxlYmVyLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDQxOSwgMHhhYWY1LCAweDAxMDAsIDB4MDEwMCwKCQkiVHJla1N0b3IiLAoJCSJpLkJlYXQgMTE1IDIuMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgfCBVU19GTF9OT1RfTE9DS0FCTEUgKSwKCi8qIFJlcG9ydGVkIGJ5IFN0ZWZhbiBXZXJuZXIgPGR1c3RibG5AZ214LmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDQxOSwgMHhhYWY2LCAweDAxMDAsIDB4MDEwMCwKCQkiVHJla1N0b3IiLAoJCSJpLkJlYXQgSm95IDIuMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFBldGUgWmFpdGNldiA8emFpdGNldkByZWRoYXQuY29tPiwgYnojMTc2NTg0ICovClVOVVNVQUxfREVWKCAgMHgwNDIwLCAweDAwMDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJHRU5FUklDIiwgIk1QMyBQTEFZRVIiLCAvKiBNeU11c2l4IFBELTIwNSBvbiB0aGUgb3V0c2lkZS4gKi8KCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgTWFyaW8gUmV0dGlnIDxtYXJpb3JldHRpZ0B3ZWIuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNDIxLCAweDA0MmUsIDB4MDEwMCwgMHgwMTAwLAoJCSJOb2tpYSIsCgkJIk5va2lhIDMyNTAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFIHwgVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBSZXBvcnRlZCBieSBKb24gSGFydCA8Sm9uLkhhcnRAd2ViLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDQyMSwgMHgwNDM0LCAweDAxMDAsIDB4MDEwMCwKCQkiTm9raWEiLAoJCSJFNjAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSB8IFVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBTdW1lZGhhIFN3YW15IDxzdW1lZGhhc3dhbXlAZ21haWwuY29tPiBhbmQKICogRWluYXIgVGguIEVpbmFyc3NvbiA8ZWluYXJ0aGVyZWRAZ21haWwuY29tPiAqLwpVTlVTVUFMX0RFViggIDB4MDQyMSwgMHgwNDQ0LCAweDAxMDAsIDB4MDEwMCwKCQkiTm9raWEiLAoJCSJOOTEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFIHwgVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBSZXBvcnRlZCBieSBKaXJpIFNsYWJ5IDxqaXJpc2xhYnlAZ21haWwuY29tPiBhbmQKICogUmVuZSBDLiBDYXN0YmVyZyA8UmVuZUBDYXN0YmVyZy5vcmc+ICovClVOVVNVQUxfREVWKCAgMHgwNDIxLCAweDA0NDYsIDB4MDEwMCwgMHgwMTAwLAoJCSJOb2tpYSIsCgkJIk44MCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgfCBVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qIFJlcG9ydGVkIGJ5IE1hdHRoZXcgQmxvY2ggPG1hdHRoZXdAYnl0ZW1hcmsuY28udWs+ICovClVOVVNVQUxfREVWKCAgMHgwNDIxLCAweDA0NGUsIDB4MDEwMCwgMHgwMTAwLAoJCSJOb2tpYSIsCgkJIkU2MSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgfCBVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qIFJlcG9ydGVkIGJ5IEJhcmR1ciBBcmFudHNzb24gPGJhcmR1ckBzY2llbnRpY2lhbi5uZXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNDIxLCAweDA0N2MsIDB4MDM3MCwgMHgwMzcwLAoJCSJOb2tpYSIsCgkJIjYxMzEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX01BWF9TRUNUT1JTXzY0ICksCgovKiBSZXBvcnRlZCBieSBBbGV4IENvcmNvbGVzIDxhbGV4QGNvcmNvbGVzLm5ldD4gKi8KVU5VU1VBTF9ERVYoICAweDA0MjEsIDB4MDQ5NSwgMHgwMzcwLCAweDAzNzAsCgkJIk5va2lhIiwKCQkiNjIzNCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfTUFYX1NFQ1RPUlNfNjQgKSwKCi8qIFJlcG9ydGVkIGJ5IE9sYWYgSGVyaW5nIDxvbGhAc3VzZS5kZT4gZnJvbSBub3ZlbGwgYnVnICMxMDU4NzggKi8KVU5VU1VBTF9ERVYoICAweDA0MjQsIDB4MGZkYywgMHgwMjEwLCAweDAyMTAsCgkJIlNNU0MiLAoJCSJGREMgR09MRC0yLjMwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00KVU5VU1VBTF9ERVYoICAweDA0MzYsIDB4MDAwNSwgMHgwMTAwLCAweDAxMDAsCgkJIk1pY3JvdGVjaCIsCgkJIkNhbWVyYU1hdGUgKERQQ01fVVNCKSIsCiAJCVVTX1NDX1NDU0ksIFVTX1BSX0RQQ01fVVNCLCBOVUxMLCAwICksCiNlbmRpZgoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IERhbmllbCBEcmFrZSA8ZHNkQGdlbnRvby5vcmc+CiAqIERldmljZSByZXBvcnRzIG5vbnNlbnNlIGJJbnRlcmZhY2VQcm90b2NvbCA2IHdoZW4gY29ubmVjdGVkIG92ZXIgVVNCMiAqLwpVTlVTVUFMX0RFViggIDB4MDQ1MSwgMHg1NDE2LCAweDAxMDAsIDB4MDEwMCwKCQkiTmV1cm9zIEF1ZGlvIiwKCQkiVVNCIDIuMCBIRCAyLjUiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfQlVMSywgTlVMTCwKCQlVU19GTF9ORUVEX09WRVJSSURFICksCgovKgogKiBQZXRlIFphaXRjZXYgPHphaXRjZXZAeWFob28uY29tPiwgZnJvbSBQYXRyaWNrIEMuIEYuIEVybnplciwgYnojMTYyNTU5LgogKiBUaGUga2V5IGRvZXMgbm90IGFjdHVhbGx5IGJyZWFrLCBidXQgaXQgcmV0dXJucyB6ZXJvIHNlbnNlIHdoaWNoCiAqIG1ha2VzIG91ciBTQ1NJIHN0YWNrIHRvIHByaW50IGNvbmZ1c2luZyBtZXNzYWdlcy4KICovClVOVVNVQUxfREVWKCAgMHgwNDU3LCAweDAxNTAsIDB4MDEwMCwgMHgwMTAwLAoJCSJVU0Jlc3QgVGVjaG5vbG9neSIsCS8qIHNvbGQgYnkgVHJhbnNjZW5kICovCgkJIlVTQiBNYXNzIFN0b3JhZ2UgRGV2aWNlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwgVVNfRkxfTk9UX0xPQ0tBQkxFICksCgovKgoqIEJvaGRhbiBMaW5kYSA8Ym9oZGFuLmxpbmRhQGdtYWlsLmNvbT4KKiAxR0IgVVNCIHN0aWNrcyBNeUZsYXNoIEhpZ2ggU3BlZWQuIEkgaGF2ZSByZXN0cmljdGVkCiogdGhlIHJldmlzaW9uIHRvIG15IG1vZGVsIG9ubHkKKi8KVU5VU1VBTF9ERVYoICAweDA0NTcsIDB4MDE1MSwgMHgwMTAwLCAweDAxMDAsCiAgICAgICAgICAgICAgICAiVVNCIDIuMCIsCiAgICAgICAgICAgICAgICAiRmxhc2ggRGlzayIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQQpVTlVTVUFMX0RFViggIDB4MDQ1YSwgMHg1MjEwLCAweDAxMDEsIDB4MDEwMSwKCQkiUmlvIiwKCQkiUmlvIEthcm1hIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9LQVJNQSwgcmlvX2thcm1hX2luaXQsIDApLAojZW5kaWYKCi8qIFBhdGNoIHN1Ym1pdHRlZCBieSBQaGlsaXBwIEZyaWVkcmljaCA8cGhpbGlwcEB2b2lkLmF0PiAqLwpVTlVTVUFMX0RFViggIDB4MDQ4MiwgMHgwMTAwLCAweDAxMDAsIDB4MDEwMCwKCQkiS3lvY2VyYSIsCgkJIkZpbmVjYW0gUzN4IiwKCQlVU19TQ184MDcwLCBVU19QUl9DQiwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IFBoaWxpcHAgRnJpZWRyaWNoIDxwaGlsaXBwQHZvaWQuYXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNDgyLCAweDAxMDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJLeW9jZXJhIiwKCQkiRmluZWNhbSBTNCIsCgkJVVNfU0NfODA3MCwgVVNfUFJfQ0IsIE5VTEwsIFVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFBhdGNoIHN1Ym1pdHRlZCBieSBTdGVwaGFuZSBHYWxsZXMgPHN0ZXBoYW5lLmdhbGxlc0BmcmVlLmZyPiAqLwpVTlVTVUFMX0RFViggIDB4MDQ4MiwgMHgwMTAzLCAweDAxMDAsIDB4MDEwMCwKCQkiS3lvY2VyYSIsCgkJIkZpbmVjYW0gUzUiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSksCgovKiBSZXBvcnRlZCBieSBQYXVsIFN0ZXdhcnQgPHN0ZXdhcnRAd2V0bG9naWMubmV0PgogKiBUaGlzIGVudHJ5IGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBkZXZpY2UgcmVwb3J0cyBTdWI9ZmYgKi8KVU5VU1VBTF9ERVYoICAweDA0YTQsIDB4MDAwNCwgMHgwMDAxLCAweDAwMDEsCgkJIkhpdGFjaGkiLAoJCSJEVkQtQ0FNIERaLU1WMTAwQSBDYW1jb3JkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLCBVU19GTF9TSU5HTEVfTFVOKSwKCi8qIFBhdGNoIGZvciBOaWtvbiBjb29scGl4IDIwMDAKICogU3VibWl0dGVkIGJ5IEZhYmllbiBDb3NzZSA8ZmFiaWVuLmNvc3NlQHdhbmFkb28uZnI+Ki8KVU5VU1VBTF9ERVYoICAweDA0YjAsIDB4MDMwMSwgMHgwMDEwLCAweDAwMTAsCgkJIk5JS09OIiwKCQkiTklLT04gRFNDIEUyMDAwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSxOVUxMLAoJCVVTX0ZMX05PVF9MT0NLQUJMRSApLAoKLyogUmVwb3J0ZWQgYnkgQW5kcmVhcyBCb2NraG9sZCA8YW5kcmVhc0Bib2NraW9ubGluZS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0YjAsIDB4MDQwNSwgMHgwMTAwLCAweDAxMDAsCgkJIk5JS09OIiwKCQkiTklLT04gRFNDIEQ3MCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZKSwKCi8qIFJlcG9ydGVkIGJ5IEphbWllIEtpdHNvbiA8amFtaWVAc3RhYmVyaW5kZS5mc25ldC5jby51az4gKi8KVU5VU1VBTF9ERVYoICAweDA0YjAsIDB4MDQwZCwgMHgwMTAwLCAweDAxMDAsCgkJIk5JS09OIiwKCQkiTklLT04gRFNDIEQ3MHMiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSksCgovKiBCRU5RIERDNTMzMAogKiBSZXBvcnRlZCBieSBNYW51ZWwgRm9tYnVlbmEgPG1mb21idWVuYUB5YS5jb20+IGFuZAogKiBGcmFuayBDb3BlbGFuZCA8ZmpjQHRoaW5neS5hcGFuYS5vcmcuYXU+ICovClVOVVNVQUxfREVWKCAgMHgwNGE1LCAweDMwMTAsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjMwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBTaW1vbiBMZXZpdHQgPHNpbW9uQHdoYXR0Zi5jb20+CiAqIFRoaXMgZW50cnkgbmVlZHMgU3ViIGFuZCBQcm90byBmaWVsZHMgKi8KVU5VU1VBTF9ERVYoICAweDA0YjgsIDB4MDYwMSwgMHgwMTAwLCAweDAxMDAsCgkJIkVwc29uIiwKCQkiODc1REMgU3RvcmFnZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsIFVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFJlcG9ydGVkIGJ5IEtoYWxpZCBBeml6IDxraGFsaWRAZ29uZWhpa2luZy5vcmc+CiAqIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAqLwpVTlVTVUFMX0RFViggIDB4MDRiOCwgMHgwNjAyLCAweDAxMTAsIDB4MDExMCwKCQkiRXBzb24iLAoJCSI3ODVFUFggU3RvcmFnZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgTlVMTCwgVVNfRkxfU0lOR0xFX0xVTiksCgovKiBOb3Qgc3VyZSB3aG8gcmVwb3J0ZWQgdGhpcyBvcmlnaW5hbGx5IGJ1dAogKiBQYXZlbCBNYWNoZWsgPHBhdmVsQHVjdy5jej4gcmVwb3J0ZWQgdGhhdCB0aGUgZXh0cmEgVVNfRkxfU0lOR0xFX0xVTgogKiBmbGFnIGJlIGFkZGVkICovClVOVVNVQUxfREVWKCAgMHgwNGNiLCAweDAxMDAsIDB4MDAwMCwgMHgyMjEwLAoJCSJGdWppZmlsbSIsCgkJIkZpbmVQaXggMTQwMFpvb20iLAoJCVVTX1NDX1VGSSwgVVNfUFJfREVWSUNFLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSB8IFVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogUmVwb3J0ZWQgYnkgUGV0ZXIgV+RjaHRsZXIgPHB3YWVjaHRsZXJAbG9ld2Uta29tcC5kZT4KICogVGhlIGRldmljZSBuZWVkcyB0aGUgZmxhZ3Mgb25seS4KICovClVOVVNVQUxfREVWKCAgMHgwNGNlLCAweDAwMDIsIDB4MDA3NCwgMHgwMDc0LAoJCSJTY2FuTG9naWMiLAoJCSJTTDExUi1JREUiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFJlcG9ydGVkIGJ5IEtyaXN0b24gRmluY2hlciA8a3Jpc3RvbkBhaXJtYWlsLm5ldD4KICogUGF0Y2ggc3VibWl0dGVkIGJ5IFNlYW4gTWlsbGljaGFtcCA8c2VhbkBicnVlbm9yLm9yZz4KICogVGhpcyBpcyB0byBzdXBwb3J0IHRoZSBQYW5hc29uaWMgUGFsbUNhbSBQVi1TRDQwOTAKICogVGhpcyBlbnRyeSBpcyBuZWVkZWQgYmVjYXVzZSB0aGUgZGV2aWNlIHJlcG9ydHMgU3ViPWZmIAogKi8KVU5VU1VBTF9ERVYoICAweDA0ZGEsIDB4MDkwMSwgMHgwMTAwLCAweDAyMDAsCgkJIlBhbmFzb25pYyIsCgkJIkxTLTEyMCBDYW1lcmEiLAoJCVVTX1NDX1VGSSwgVVNfUFJfREVWSUNFLCBOVUxMLCAwKSwKCi8qIEZyb20gWXVraWhpcm8gTmFrYWksIHZpYSB6YWl0Y2V2QHlhaG9vLmNvbS4KICogVGhpcyBpcyBuZWVkZWQgZm9yIENCIGluc3RlYWQgb2YgQ0JJICovClVOVVNVQUxfREVWKCAgMHgwNGRhLCAweDBkMDUsIDB4MDAwMCwgMHgwMDAwLAoJCSJTaGFycCBDRS1DVzA1IiwKCQkiQ0QtUi9SVyBEcml2ZSIsCgkJVVNfU0NfODA3MCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKLyogUmVwb3J0ZWQgYnkgQWRyaWFhbiBQZW5uaW5nIDxhLnBlbm5pbmdAbHVvbi5uZXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNGRhLCAweDIzNzIsIDB4MDAwMCwgMHg5OTk5LAoJCSJQYW5hc29uaWMiLAoJCSJETUMtTEN4IENhbWVyYSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZIHwgVVNfRkxfTk9UX0xPQ0tBQkxFICksCgovKiBSZXBvcnRlZCBieSBTaW1lb24gU2ltZW9ub3YgPHNpbWVvbm92XzIwMDBAeWFob28uY29tPiAqLwpVTlVTVUFMX0RFViggIDB4MDRkYSwgMHgyMzczLCAweDAwMDAsIDB4OTk5OSwKCQkiTEVJQ0EiLAoJCSJELUxVWCBDYW1lcmEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSB8IFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIGVudHJpZXMgd2VyZSBkZXZlbG9wZWQgd2l0aCB0aGUgaGVscCBvZgogKiBTaHV0dGxlL1NDTSBkaXJlY3RseS4KICovClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDEsIDB4MDIwMCwgMHgwMjAwLCAKCQkiTWF0c2hpdGEiLAoJCSJMUy0xMjAiLAoJCVVTX1NDXzgwMjAsIFVTX1BSX0NCLCBOVUxMLCAwKSwKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDIsIDB4MDEwMCwgMHgwMTAwLCAKCQkiU2h1dHRsZSIsCgkJImVVU0NTSSBCcmlkZ2UiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdCwgCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5ClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDMsIDB4MDAwMCwgMHg5OTk5LCAKCQkiU2FuZGlzayIsCgkJIkltYWdlTWF0ZSBTRERSMDkiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0VVU0JfU0REUjA5LCB1c2Jfc3Rvcl9zZGRyMDlfaW5pdCwKCQkwKSwKCi8qIFRoaXMgZW50cnkgaXMgZnJvbSBBbmRyaWVzLkJyb3V3ZXJAY3dpLm5sICovClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDUsIDB4MDEwMCwgMHgwMjA4LAoJCSJTQ00gTWljcm9zeXN0ZW1zIiwKCQkiZVVTQiBTbWFydE1lZGlhIC8gQ29tcGFjdEZsYXNoIEFkYXB0ZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RQQ01fVVNCLCB1c2Jfc3Rvcl9zZGRyMDlfZHBjbV9pbml0LAoJCTApLCAKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBNYXJrdXMgRGVtbGVpdG5lciA8bXNkZW1sZWlAY2wudW5pLWhlaWRlbGJlcmcuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDYsIDB4MDEwMCwgMHgwMTAwLCAKCQkiU0NNIE1pY3Jvc3lzdGVtcyBJbmMuIiwKCQkiZVVTQiBNTUMgQWRhcHRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsIAoJCVVTX0ZMX1NJTkdMRV9MVU4pLCAKCi8qIFJlcG9ydGVkIGJ5IERhbmllbCBOb3VyaSA8ZHB1bmt0bnB1bmt0QHdlYi5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwNiwgMHgwMjA1LCAweDAyMDUsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBNTUMgQWRhcHRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREVWSUNFLCBOVUxMLCAKCQlVU19GTF9TSU5HTEVfTFVOKSwgCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDA3LCAweDAxMDAsIDB4MDIwMCwgCgkJIlNvbnkiLAoJCSJIaWZkIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9DQiwgTlVMTCwgCgkJVVNfRkxfU0lOR0xFX0xVTiksIAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwOSwgMHgwMjAwLCAweDAyMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBBVEEvQVRBUEkgQWRhcHRlciIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwYSwgMHgwMjAwLCAweDAyMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBDb21wYWN0Rmxhc2ggQWRhcHRlciIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwQiwgMHgwMTAwLCAweDAxMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQ1NJIEJyaWRnZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgdXNiX3N0b3JfZXVzY3NpX2luaXQsIAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDBDLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNodXR0bGUiLAoJCSJlVVNDU0kgQnJpZGdlIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdCwgCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAxMDEsIDB4MDIwMCwgMHgwMjAwLCAKCQkiU2h1dHRsZSIsCgkJIkNELVJXIERldmljZSIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKLyogRW50cnkgYW5kIHN1cHBvcnRpbmcgcGF0Y2ggYnkgVGhlb2RvcmUgS2lsZ29yZSA8a2lsZ290YUBhdWJ1cm4uZWR1Pi4KICogRGV2aWNlIHVzZXMgc3RhbmRhcmRzLXZpb2xhdGluZyAzMi1ieXRlIEJ1bGsgQ29tbWFuZCBCbG9jayBXcmFwcGVycyBhbmQKICogcmVwb3J0cyBpdHNlbGYgYXMgIlByb3ByaWV0YXJ5IFNDU0kgQnVsay4iIENmLiBkZXZpY2UgZW50cnkgMHgwODRkOjB4MDAxMS4KICovCgpVTlVTVUFMX0RFViggIDB4MDRmYywgMHg4MGMyLCAweDAxMDAsIDB4MDEwMCwKCQkiS29iaWFuIE1lcmN1cnkiLAoJCSJCaW5vY2FtIERDQi0xMzIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0JVTEszMiksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDEwMTAsIDB4MDAwMCwgMHg5OTk5LAoJCSJTaHV0dGxlL1NDTSIsCgkJIlVTQkFULTAyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9VU0JBVCwgaW5pdF91c2JhdF9mbGFzaCwKCQlVU19GTF9TSU5HTEVfTFVOKSwKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBCb2IgU2FzcyA8cmxzQHZlY3RvcmRiLmNvbT4gLS0gb25seSByZXYgMS4zMyB0ZXN0ZWQgKi8KVU5VU1VBTF9ERVYoICAweDA1MGQsIDB4MDExNSwgMHgwMTMzLCAweDAxMzMsCgkJIkJlbGtpbiIsCgkJIlVTQiBTQ1NJIEFkYXB0b3IiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIHVzYl9zdG9yX2V1c2NzaV9pbml0LAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwKCi8qIElvbWVnYSBDbGlrISBEcml2ZSAKICogUmVwb3J0ZWQgYnkgRGF2aWQgQ2hhdGVuYXkgPGRjaGF0ZW5heUBob3RtYWlsLmNvbT4KICogVGhlIHJlYXNvbiB0aGlzIGlzIG5lZWRlZCBpcyBub3QgZnVsbHkga25vd24uCiAqLwpVTlVTVUFMX0RFViggIDB4MDUyNSwgMHhhMTQwLCAweDAxMDAsIDB4MDEwMCwKCQkiSW9tZWdhIiwKCQkiVVNCIENsaWshIDQwIiwKCQlVU19TQ184MDcwLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFlha3VtbyBNZWdhIEltYWdlIDM3CiAqIFN1Ym1pdHRlZCBieSBTdGVwaGFuIEZ1aHJtYW5uIDxhdG9tZW5lcmdpZUB0LW9ubGluZS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA1MmIsIDB4MTgwMSwgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiMzAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIEFub3RoZXIgWWFrdW1vIGNhbWVyYS4KICogUmVwb3J0ZWQgYnkgTWljaGVsZSBBbHpldHRhIDxtaWNoZWxlLmFsemV0dGFAYWxpY2Vwb3N0YS5pdD4gKi8KVU5VU1VBTF9ERVYoICAweDA1MmIsIDB4MTgwNCwgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiMzAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IElhY29wbyBTcGFsbGV0dGkgPGF2dmlzaUBzcGFsbGV0dGkuaXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNTJiLCAweDE4MDcsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjMwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBZYWt1bW8gTWVnYSBJbWFnZSA0NwogKiBSZXBvcnRlZCBieSBCam9lcm4gUGFldHplbCA8a29scmFiaUBrb2xyYWJpLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDUyYiwgMHgxOTA1LCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSI0MDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgUGF1bCBPcnR5bCA8b3J0eWxwQDNtaWFzdG8ubmV0PgogKiBOb3RlIHRoYXQgaXQncyBzaW1pbGFyIHRvIHRoZSBkZXZpY2UgYWJvdmUsIG9ubHkgZGlmZmVyZW50IHByb2RJRCAqLwpVTlVTVUFMX0RFViggIDB4MDUyYiwgMHgxOTExLCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSI0MDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAxMCwgMHgwMTA2LCAweDA0NTAsIAoJCSJTb255IiwKCQkiRFNDLVMzMC9TNzAvUzc1LzUwNVYvRjUwNS9GNzA3L0Y3MTcvUDgiLCAKCQlVU19TQ19TQ1NJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiB8IFVTX0ZMX05PVF9MT0NLQUJMRSB8IFVTX0ZMX05PX1dQX0RFVEVDVCApLAoKLyogU3VibWl0dGVkIGJ5IExhcnMgSmFjb2IgPGphY29iLmxhcnNAZ29vZ2xlbWFpbC5jb20+CiAqIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDEwLCAweDA1MDAsIDB4MDYxMCwKCQkiU29ueSIsCgkJIkRTQy1UMS9UNS9INSIsCgkJVVNfU0NfODA3MCwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCgovKiBSZXBvcnRlZCBieSB3aW1AZ2Vla3MubmwgKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyNSwgMHgwMTAwLCAweDAxMDAsIAoJCSJTb255IiwKCQkiTWVtb3J5c3RpY2sgTlctTVM3IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMApVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJiLCAweDAxMDAsIDB4MDExMCwKCQkiU29ueSIsCgkJIlBvcnRhYmxlIFVTQiBIYXJkZHJpdmUgVjIiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKI2VuZGlmCgovKiBTdWJtaXR0ZWQgYnkgT2xhZiBIZXJpbmcsIDxvbGhAc3VzZS5kZT4gU3VTRSBCdWd6aWxsYSAjNDkwNDkgKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyYywgMHgwNTAxLCAweDA1MDEsCgkJIlNvbnkiLAoJCSJVU0IgRmxvcHB5IERyaXZlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJkLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNvbnkiLAoJCSJNZW1vcnlzdGljayBNU0FDLVVTMSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IEtsYXVzIE11ZWxsZXIgPGsubXVlbGxlckBpbnRlcnNob3AuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwMmUsIDB4MDEwNiwgMHgwMzEwLCAKCQkiU29ueSIsCgkJIkhhbmR5Y2FtIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IFJhamVzaCBLdW1ibGUgTmF5YWsgPG5heWFrQG9icy1uaWNlLmZyPiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJlLCAweDA1MDAsIDB4MDUwMCwgCgkJIlNvbnkiLAoJCSJIYW5keWNhbSBIQy04NSIsCgkJVVNfU0NfVUZJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAzMiwgMHgwMDAwLCAweDk5OTksCgkJIlNvbnkiLAoJCSJNZW1vcnlzdGljayBNU0MtVTAxTiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IE1pY2hhbCBNbG90ZWsgPG1sb3Rla0Bmb29iYXIucGw+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwNTgsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE43NjBjIE1lbW9yeXN0aWNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoJCQpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDY5LCAweDAwMDAsIDB4OTk5OSwKCQkiU29ueSIsCgkJIk1lbW9yeXN0aWNrIE1TQy1VMDMiLAoJCVVTX1NDX1VGSSwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IE5hdGhhbiBCYWJiIDxuYXRoYW5AbGV4aS5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwNmQsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE1hc3MgU3RvcmFnZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFN1Ym1pdHRlZCBieSBNaWtlIEFsYm9ybiA8bWFsYm9ybkBkZWFuZHJhLmhvbWVpcC5uZXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAxNmEsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE1hc3MgU3RvcmFnZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCQkKLyogU3VibWl0dGVkIGJ5IEZyYW5rIEVuZ2VsIDxmcmFua2llQGNzZS51bnN3LmVkdS5hdT4gKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDA5OSwgMHgwMDAwLCAweDk5OTksCiAgICAgICAgICAgICAgICAiU29ueSIsCiAgICAgICAgICAgICAgICAiUEVHIE1hc3MgU3RvcmFnZSIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBmbG9wcHkgcmVwb3J0cyBtdWx0aXBsZSBsdW5zICovClVOVVNVQUxfREVWKCAgMHgwNTVkLCAweDIwMjAsIDB4MDAwMCwgMHgwMjEwLAogICAgICAgICAgICAgICAiU0FNU1VORyIsCiAgICAgICAgICAgICAgICJTRkQtMzIxVSBbRlcgMENdIiwKICAgICAgICAgICAgICAgVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCiAgICAgICAgICAgICAgIFVTX0ZMX1NJTkdMRV9MVU4gKSwKCgkJClVOVVNVQUxfREVWKCAgMHgwNTdiLCAweDAwMDAsIDB4MDAwMCwgMHgwMjk5LCAKCQkiWS1FIERhdGEiLAoJCSJGbGFzaGJ1c3Rlci1VIiwKCQlVU19TQ19ERVZJQ0UsICBVU19QUl9DQiwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOKSwKClVOVVNVQUxfREVWKCAgMHgwNTdiLCAweDAwMDAsIDB4MDMwMCwgMHg5OTk5LCAKCQkiWS1FIERhdGEiLAoJCSJGbGFzaGJ1c3Rlci1VIiwKCQlVU19TQ19ERVZJQ0UsICBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiksCgovKiBSZXBvcnRlZCBieSBKb2hhbm4gQ2FyZG9uIDxqb2hhbm4uY2FyZG9uQGZyZWUuZnI+CiAqIFRoaXMgZW50cnkgaXMgbmVlZGVkIG9ubHkgYmVjYXVzZSB0aGUgZGV2aWNlIHJlcG9ydHMKICogYkludGVyZmFjZUNsYXNzID0gMHhmZiAodmVuZG9yLXNwZWNpZmljKQogKi8KVU5VU1VBTF9ERVYoICAweDA1N2IsIDB4MDAyMiwgMHgwMDAwLCAweDk5OTksIAoJCSJZLUUgRGF0YSIsCgkJIlNpbGljb24gTWVkaWEgUi9XIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwgMCksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQQpVTlVTVUFMX0RFViggIDB4MDU4NCwgMHgwMDA4LCAweDAxMDIsIDB4MDEwMiwKCQkiRnVqaWZpbG0iLAoJCSJEUEMtUjEgKEFsYXVkYSkiLAogCQlVU19TQ19TQ1NJLCBVU19QUl9BTEFVREEsIGluaXRfYWxhdWRhLCAwICksCiNlbmRpZgoKLyogRmFicml6aW8gRmVsbGluaSA8ZmVsbG9AbGliZXJvLml0PiAqLwpVTlVTVUFMX0RFViggIDB4MDU5NSwgMHg0MzQzLCAweDAwMDAsIDB4MjIxMCwKCQkiRnVqaWZpbG0iLAoJCSJEaWdpdGFsIENhbWVyYSBFWC0yMCBEU0MiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0RFVklDRSwgTlVMTCwgMCApLAoKLyogUmVwb3J0ZWQgYnkgPEhlbmRyeWsuUGZlaWZmZXJAZ214LmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDU5ZiwgMHgwNjQzLCAweDAwMDAsIDB4MDAwMCwKCQkiTGFDaWUiLAoJCSJEVkQrLVJXIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9HT19TTE9XICksCgovKiBTdWJtaXR0ZWQgYnkgSm9lbCBCb3VycXVhcmQgPG51bWxvY2tAZnJlZXN1cmYuY2g+CiAqIFNvbWUgdmVyc2lvbnMgb2YgdGhpcyBkZXZpY2UgbmVlZCB0aGUgU3ViQ2xhc3MgYW5kIFByb3RvY29sIG92ZXJyaWRlcwogKiB3aGlsZSBvdGhlcnMgZG9uJ3QuCiAqLwpVTlVTVUFMX0RFViggIDB4MDVhYiwgMHgwMDYwLCAweDExMDQsIDB4MTExMCwKCQkiSW4tU3lzdGVtIiwKCQkiUHlyb0dhdGUgRXh0ZXJuYWwgQ0QtUk9NIEVuY2xvc3VyZSAoRkNELTUyMykiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsCgkJVVNfRkxfTkVFRF9PVkVSUklERSApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAKVU5VU1VBTF9ERVYoICAweDA1YWIsIDB4MDAzMSwgMHgwMTAwLCAweDAxMTAsCgkJIkluLVN5c3RlbSIsCgkJIlVTQi9JREUgQnJpZGdlIChBVEEvQVRBUEkpIiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCgpVTlVTVUFMX0RFViggIDB4MDVhYiwgMHgwMzAxLCAweDAxMDAsIDB4MDExMCwKCQkiSW4tU3lzdGVtIiwKCQkiUG9ydGFibGUgVVNCIEhhcmRkcml2ZSBWMiIsCgkJVVNfU0NfSVNEMjAwLCBVU19QUl9CVUxLLCBpc2QyMDBfSW5pdGlhbGl6YXRpb24sCgkJMCApLAoKVU5VU1VBTF9ERVYoICAweDA1YWIsIDB4MDM1MSwgMHgwMTAwLCAweDAxMTAsCgkJIkluLVN5c3RlbSIsCgkJIlBvcnRhYmxlIFVTQiBIYXJkZHJpdmUgVjIiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKClVOVVNVQUxfREVWKCAgMHgwNWFiLCAweDU3MDEsIDB4MDEwMCwgMHgwMTEwLAoJCSJJbi1TeXN0ZW0iLAoJCSJVU0IgU3RvcmFnZSBBZGFwdGVyIFYyIiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCiNlbmRpZgoKLyogU3VibWl0dGVkIGJ5IFN2ZW4gQW5kZXJzb24gPHN2ZW4tbGludXhAYW5kZXJzb24uZGU+CiAqIFRoZXJlIGFyZSBhdCBsZWFzdCBmb3VyIFByb2R1Y3RJRHMgdXNlZCBmb3IgaVBvZHMsIHNvIEkgYWRkZWQgMHgxMjAyIGFuZAogKiAweDEyMDQuIFRoZXkganVzdCBuZWVkIHRoZSBVU19GTF9GSVhfQ0FQQUNJVFkuIEFzIHRoZSBiY2REZXZpY2UgYXBwZWFycwogKiB0byBjaGFuZ2Ugd2l0aCBmaXJtd2FyZSB1cGRhdGVzLCBJIGNoYW5nZWQgdGhlIHJhbmdlIHRvIG1heGltdW0gZm9yIGFsbAogKiBpUG9kIGVudHJpZXMuCiAqLwpVTlVTVUFMX0RFViggMHgwNWFjLCAweDEyMDIsIDB4MDAwMCwgMHg5OTk5LAoJCSJBcHBsZSIsCgkJImlQb2QiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKLyogUmVwb3J0ZWQgYnkgQXZpIEtpdml0eSA8YXZpQGFyZ28uY28uaWw+ICovClVOVVNVQUxfREVWKCAweDA1YWMsIDB4MTIwMywgMHgwMDAwLCAweDk5OTksCgkJIkFwcGxlIiwKCQkiaVBvZCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgpVTlVTVUFMX0RFViggMHgwNWFjLCAweDEyMDQsIDB4MDAwMCwgMHg5OTk5LAoJCSJBcHBsZSIsCgkJImlQb2QiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKVU5VU1VBTF9ERVYoIDB4MDVhYywgMHgxMjA1LCAweDAwMDAsIDB4OTk5OSwKCQkiQXBwbGUiLAoJCSJpUG9kIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qCiAqIFJlcG9ydGVkIGJ5IFR5c29uIFZpbnNvbiA8bG9ybm9zc0BnbWFpbC5jb20+CiAqIFRoaXMgcGFydGljdWxhciBwcm9kdWN0SWQgaXMgdGhlIGlQb2QgTmFubwogKi8KVU5VU1VBTF9ERVYoIDB4MDVhYywgMHgxMjBhLCAweDAwMDAsIDB4OTk5OSwKCQkiQXBwbGUiLAoJCSJpUG9kIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QKVU5VU1VBTF9ERVYoICAweDA1ZGMsIDB4MDAwMSwgMHgwMDAwLCAweDAwMDEsCgkJIkxleGFyIiwKCQkiSnVtcHNob3QgVVNCIENGIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfSlVNUFNIT1QsIE5VTEwsCgkJVVNfRkxfTkVFRF9PVkVSUklERSApLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IEJsYWtlIE1hdGhlbnkgPGJtYXRoZW55QHB1cmR1ZS5lZHU+ICovClVOVVNVQUxfREVWKCAgMHgwNWRjLCAweGIwMDIsIDB4MDAwMCwgMHgwMTEzLAoJCSJMZXhhciIsCgkJIlVTQiBDRiBSZWFkZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBUaGUgZm9sbG93aW5nIHR3byBlbnRyaWVzIGFyZSBmb3IgYSBHZW5lc3lzIFVTQiB0byBJREUKICogY29udmVydGVyIGNoaXAsIGJ1dCBpdCBjaGFuZ2VzIGl0cyBQcm9kdWN0SWQgZGVwZW5kaW5nCiAqIG9uIHdoZXRoZXIgb3Igbm90IGEgZGlzayBvciBhbiBvcHRpY2FsIGRldmljZSBpcyBlbmNsb3NlZAogKiBUaGV5IHdlcmUgb3JpZ2luYWxseSByZXBvcnRlZCBieSBBbGV4YW5kZXIgT2x0dQogKiA8YWxleGFuZGVyQGFsbC0yLmNvbT4gYW5kIFBldGVyIE1hcmtzIDxwZXRlci5tYXJrc0B0dXJuZXIuY29tPgogKiByZXNwZWN0aXZlbHkuCiAqCiAqIFVTX0ZMX0dPX1NMT1cgYW5kIFVTX0ZMX01BWF9TRUNUT1JTXzY0IGFkZGVkIGJ5IFBoaWwgRGlib3dpdHoKICogPHBoaWxAaXBvbS5jb20+IGFzIHRoZXNlIGZsYWdzIHdlcmUgbWFkZSBhbmQgaGFyZC1jb2RlZAogKiBzcGVjaWFsLWNhc2VzIHdlcmUgcHVsbGVkIGZyb20gc2NzaWdsdWUuYy4KICovClVOVVNVQUxfREVWKCAgMHgwNWUzLCAweDA3MDEsIDB4MDAwMCwgMHhmZmZmLAoJCSJHZW5lc3lzIExvZ2ljIiwKCQkiVVNCIHRvIElERSBPcHRpY2FsIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9HT19TTE9XIHwgVVNfRkxfTUFYX1NFQ1RPUlNfNjQgKSwKClVOVVNVQUxfREVWKCAgMHgwNWUzLCAweDA3MDIsIDB4MDAwMCwgMHhmZmZmLAoJCSJHZW5lc3lzIExvZ2ljIiwKCQkiVVNCIHRvIElERSBEaXNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9HT19TTE9XIHwgVVNfRkxfTUFYX1NFQ1RPUlNfNjQgKSwKCi8qIFJlcG9ydGVkIGJ5IEhhbm5vIEJvZWNrIDxoYW5ub0BnbXguZGU+CiAqIFRha2VuIGZyb20gdGhlIEx5Y29yaXMgS2VybmVsICovClVOVVNVQUxfREVWKCAgMHgwNjM2LCAweDAwMDMsIDB4MDAwMCwgMHg5OTk5LAoJCSJWaXZpdGFyIiwKCQkiVml2aWNhbSAzNVh4IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgpVTlVTVUFMX0RFViggIDB4MDY0NCwgMHgwMDAwLCAweDAxMDAsIDB4MDEwMCwgCgkJIlRFQUMiLAoJCSJGbG9wcHkgRHJpdmUiLAoJCVVTX1NDX1VGSSwgVVNfUFJfQ0IsIE5VTEwsIDAgKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOQpVTlVTVUFMX0RFViggIDB4MDY2YiwgMHgwMTA1LCAweDAxMDAsIDB4MDEwMCwgCgkJIk9seW1wdXMiLAoJCSJDYW1lZGlhIE1BVVNCLTIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0VVU0JfU0REUjA5LCB1c2Jfc3Rvcl9zZGRyMDlfaW5pdCwKCQkwKSwKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBEYXJzZW4gTHUgPGRhcnNlbkBtaWNyby5lZS5udGh1LmVkdS50dz4gKi8KVU5VU1VBTF9ERVYoIDB4MDY2ZiwgMHg4MDAwLCAweDAwMDEsIDB4MDAwMSwKCQkiU2lnbWFUZWwiLAoJCSJVU0JNU0MgQXVkaW8gUGxheWVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qIFJlcG9ydGVkIGJ5IFJpY2hhcmQgLT1bXT0tIDxtaWNyb19mbHllckBob3RtYWlsLmNvbT4gKi8KVU5VU1VBTF9ERVYoIDB4MDY3YiwgMHgyNTA3LCAweDAxMDAsIDB4MDEwMCwKCQkiUHJvbGlmaWMgVGVjaG5vbG9neSBJbmMuIiwKCQkiTWFzcyBTdG9yYWdlIERldmljZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZIHwgVVNfRkxfR09fU0xPVyApLAoKLyogUmVwb3J0ZWQgYnkgQWxleCBCdXRjaGVyIDxhbGV4LmJ1dGNoZXJAYXNzdXJzeXMuY28udWs+ICovClVOVVNVQUxfREVWKCAweDA2N2IsIDB4MzUwNywgMHgwMDAxLCAweDAwMDEsCgkJIlByb2xpZmljIFRlY2hub2xvZ3kgSW5jLiIsCgkJIkFUQVBJLTYgQnJpZGdlIENvbnRyb2xsZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSB8IFVTX0ZMX0dPX1NMT1cgKSwKCi8qIFN1Ym1pdHRlZCBieSBCZW5ueSBTam9zdHJhbmQgPGJlbm55QGhvc3Rtb2JpbGl0eS5jb20+ICovClVOVVNVQUxfREVWKCAweDA2ODYsIDB4NDAxMSwgMHgwMDAxLCAweDAwMDEsCgkJIk1pbm9sdGEiLAoJCSJEaW1hZ2UgRjMwMCIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgTlVMTCwgMCApLAoKLyogUmVwb3J0ZWQgYnkgTWlndWVsIEEuIEZvc2FzIDxhbW4zczFhQG9uby5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNjg2LCAweDQwMTcsIDB4MDAwMSwgMHgwMDAxLAogICAgICAgICAgICAgICAgIk1pbm9sdGEiLAogICAgICAgICAgICAgICAgIkRJTUFHRSBFMjIzIiwKICAgICAgICAgICAgICAgIFVTX1NDX1NDU0ksIFVTX1BSX0RFVklDRSwgTlVMTCwgMCApLAoKVU5VU1VBTF9ERVYoICAweDA2OTMsIDB4MDAwNSwgMHgwMTAwLCAweDAxMDAsCgkJIkhhZ2l3YXJhIiwKCQkiRmxhc2hnYXRlIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLCAwICksIAoKLyogUmVwb3J0ZWQgYnkgRGF2aWQgSGFtaWx0b24gPG5pZnRpbXVzbWF4aW11c0BseWNvcy5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNjliLCAweDMwMDQsIDB4MDAwMSwgMHgwMDAxLAoJCSJUaG9tc29uIE11bHRpbWVkaWEgSW5jLiIsCgkJIlJDQSBSRDEwODAgTVAzIFBsYXllciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBSZXBvcnRlZCBieSBPbGl2aWVyIEJsb25kZWF1IDx6ZWl0b3VuQGdtYWlsLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDA3MjcsIDB4MDMwNiwgMHgwMTAwLCAweDAxMDAsCgkJIkFUTUVMIiwKCQkiU05EMSBTdG9yYWdlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSksCgovKiBTdWJtaXR0ZWQgYnkgUm9tYW4gSG9kZWsgPHJvbWFuQGhvZGVrLm5ldD4gKi8KVU5VU1VBTF9ERVYoICAweDA3ODEsIDB4MDAwMSwgMHgwMjAwLCAweDAyMDAsCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUi0wNWEiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKClVOVVNVQUxfREVWKCAgMHgwNzgxLCAweDAwMDIsIDB4MDAwOSwgMHgwMDA5LAoJCSJTYW5EaXNrIENvcnBvcmF0aW9uIiwKCQkiSW1hZ2VNYXRlIENvbXBhY3RGbGFzaCBVU0IiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVApVTlVTVUFMX0RFViggIDB4MDc4MSwgMHgwMDA1LCAweDAwMDUsIDB4MDAwNSwKCQkiU2FuZGlzayIsCgkJIkltYWdlTWF0ZSBTRERSLTA1YiIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfVVNCQVQsIGluaXRfdXNiYXRfZmxhc2gsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAojZW5kaWYKClVOVVNVQUxfREVWKCAgMHgwNzgxLCAweDAxMDAsIDB4MDEwMCwgMHgwMTAwLAoJCSJTYW5kaXNrIiwKCQkiSW1hZ2VNYXRlIFNERFItMTIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5ClVOVVNVQUxfREVWKCAgMHgwNzgxLCAweDAyMDAsIDB4MDAwMCwgMHg5OTk5LCAKCQkiU2FuZGlzayIsCgkJIkltYWdlTWF0ZSBTRERSLTA5IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9FVVNCX1NERFIwOSwgdXNiX3N0b3Jfc2RkcjA5X2luaXQsCgkJMCksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NClVOVVNVQUxfREVWKCAgMHgwN2FiLCAweGZjMDEsIDB4MDAwMCwgMHg5OTk5LAoJCSJGcmVlY29tIiwKCQkiVVNCLUlERSIsCgkJVVNfU0NfUUlDLCBVU19QUl9GUkVFQ09NLCBmcmVlY29tX2luaXQsIDApLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IEVlcm8gVm9sb3RpbmVuIDxlZXJvQHBpbmctdmlpbmkub3JnPiAqLwpVTlVTVUFMX0RFViggIDB4MDdhYiwgMHhmY2NkLCAweDAwMDAsIDB4OTk5OSwKCQkiRnJlZWNvbSBUZWNobm9sb2dpZXMiLAoJCSJGSEQtQ2xhc3NpYyIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZKSwKClVOVVNVQUxfREVWKCAgMHgwN2FmLCAweDAwMDQsIDB4MDEwMCwgMHgwMTMzLCAKCQkiTWljcm90ZWNoIiwKCQkiVVNCLVNDU0ktREIyNSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgdXNiX3N0b3JfZXVzY3NpX2luaXQsCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKClVOVVNVQUxfREVWKCAgMHgwN2FmLCAweDAwMDUsIDB4MDEwMCwgMHgwMTAwLCAKCQkiTWljcm90ZWNoIiwKCQkiVVNCLVNDU0ktSEQ1MCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIHVzYl9zdG9yX2V1c2NzaV9pbml0LAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00KVU5VU1VBTF9ERVYoICAweDA3YWYsIDB4MDAwNiwgMHgwMTAwLCAweDAxMDAsCgkJIk1pY3JvdGVjaCIsCgkJIkNhbWVyYU1hdGUgKERQQ01fVVNCKSIsCiAJCVVTX1NDX1NDU0ksIFVTX1BSX0RQQ01fVVNCLCBOVUxMLCAwICksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEKVU5VU1VBTF9ERVYoICAweDA3YjQsIDB4MDEwYSwgMHgwMTAyLCAweDAxMDIsCgkJIk9seW1wdXMiLAoJCSJNQVVTQi0xMCAoQWxhdWRhKSIsCiAJCVVTX1NDX1NDU0ksIFVTX1BSX0FMQVVEQSwgaW5pdF9hbGF1ZGEsIDAgKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIKVU5VU1VBTF9ERVYoICAweDA3YzQsIDB4YTAwMCwgMHgwMDAwLCAweDAwMTUsCgkJIkRhdGFmYWIiLAoJCSJNRENGRS1CIFVTQiBDRiBSZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAoKLyoKICogVGhlIGZvbGxvd2luZyBEYXRhZmFiLWJhc2VkIGRldmljZXMgbWF5IG9yIG1heSBub3Qgd29yawogKiB1c2luZyB0aGUgY3VycmVudCBkcml2ZXIuLi50aGUgMHhmZmZmIGlzIGFyYml0cmFyeSBzaW5jZSBJCiAqIGRvbid0IGtub3cgd2hhdCBkZXZpY2UgdmVyc2lvbnMgZXhpc3QgZm9yIHRoZXNlIGd1eXMuCiAqCiAqIFRoZSAweGEwMDMgYW5kIDB4YTAwNCBkZXZpY2VzIGluIHBhcnRpY3VsYXIgSSdtIGN1cmlvdXMgYWJvdXQuCiAqIEknbSB0b2xkIHRoZXkgZXhpc3QgYnV0IHNvIGZhciBub2JvZHkgaGFzIGNvbWUgZm9yd2FyZCB0byBzYXkgdGhhdAogKiB0aGV5IHdvcmsgd2l0aCB0aGlzIGRyaXZlci4gIEdpdmVuIHRoZSBzdWNjZXNzIHdlJ3ZlIGhhZCBnZXR0aW5nCiAqIG90aGVyIERhdGFmYWItYmFzZWQgY2FyZHMgb3BlcmF0aW9uYWwgd2l0aCB0aGlzIGRyaXZlciwgSSd2ZSBkZWNpZGVkCiAqIHRvIGxlYXZlIHRoZXNlIHR3byBkZXZpY2VzIGluIHRoZSBsaXN0LgogKi8KVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDAxLCAweDAwMDAsIDB4ZmZmZiwKCQkiU0lJRy9EYXRhZmFiIiwKCQkiU0lJRy9EYXRhZmFiIE1lbW9yeSBTdGljaytDRiBSZWFkZXIvV3JpdGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKCi8qIFJlcG9ydGVkIGJ5IEpvc2VmIFJlaXNpbmdlciA8am9zZWYucmVpc2luZ2VyQG5ldGNvbG9nbmUuZGU+ICovClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwMiwgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIvVW5rbm93biIsCgkJIk1EMi9NRDMgRGlzayBlbmNsb3N1cmUiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDAzLCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYi9Vbmtub3duIiwKCQkiRGF0YWZhYi1iYXNlZCBSZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAoKVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDA0LCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYi9Vbmtub3duIiwKCQkiRGF0YWZhYi1iYXNlZCBSZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAoKVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDA1LCAweDAwMDAsIDB4ZmZmZiwKCQkiUE5ZL0RhdGFmYWIiLAoJCSJQTlkvRGF0YWZhYiBDRitTTSBSZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAoKVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDA2LCAweDAwMDAsIDB4ZmZmZiwKCQkiU2ltcGxlIFRlY2gvRGF0YWZhYiIsCgkJIlNpbXBsZSBUZWNoL0RhdGFmYWIgQ0YrU00gUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKI2VuZGlmCgkJCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1Ci8qIENvbnRyaWJ1dGVkIGJ5IFBldGVyIFdhZWNodGxlciAqLwpVTlVTVUFMX0RFViggMHgwN2M0LCAweGExMDMsIDB4MDAwMCwgMHg5OTk5LAoJCSJEYXRhZmFiIiwKCQkiTURTTS1CIHJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfU0REUjU1LCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCCi8qIFN1Ym1pdHRlZCBieSBPbGFmIEhlcmluZyA8b2xoQHN1c2UuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwN2M0LCAweGExMDksIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiIFN5c3RlbXMsIEluYy4iLAoJCSJVU0IgdG8gQ0YgKyBTTSBDb21ibyAoTEMxKSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCiNlbmRpZgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NQovKiBTTSBwYXJ0IC0gYWViIDxBbmRyaWVzLkJyb3V3ZXJAY3dpLm5sPiAqLwpVTlVTVUFMX0RFViggIDB4MDdjNCwgMHhhMTA5LCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYiBTeXN0ZW1zLCBJbmMuIiwKCQkiVVNCIHRvIENGICsgU00gQ29tYm8gKExDMSkiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX1NERFI1NSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCCi8qIFJlcG9ydGVkIGJ5IEZlbGl4IE1vZWxsZXIgPGZlbGl4QGRlcmtsZWNrcy5kZT4KICogaW4gR2VybWFueSB0aGlzIGlzIHNvbGQgYnkgSGFtYSB3aXRoIHRoZSBwcm9kdWN0bnVtYmVyIDQ2OTUyCiAqIGFzICJEdWFsU2xvdCBDb21wYWN0Rmxhc2goVE0pICYgTVN0aWNrIERyaXZlIFVTQiIKICovClVOVVNVQUxfREVWKCAgMHgwN2M0LCAweGExMGIsIDB4MDAwMCwgMHhmZmZmLAogICAgICAgICAgICAgICAgIkRhdGFGYWIgU3lzdGVtcyBJbmMuIiwKICAgICAgICAgICAgICAgICJVU0IgQ0YrTVMiLAogICAgICAgICAgICAgICAgVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKICAgICAgICAgICAgICAgIDAgKSwKCiNlbmRpZgoKLyogRGF0YWZhYiBLRUNGLVVTQiAvIFNhZ2F0ZWsgRENTLUNGIC8gU2ltcGxldGVjaCBGbGFzaGxpbmsgVUNGLTEwMAogKiBPbmx5IHJldmlzaW9uIDEuMTMgdGVzdGVkIChzYW1lIGZvciBhbGwgb2YgdGhlIGFib3ZlIGRldmljZXMsCiAqIGJhc2VkIG9uIHRoZSBEYXRhZmFiIERGLVVHLTA3IGNoaXApLiAgTmVlZGVkIGZvciBVU19GTF9GSVhfSU5RVUlSWS4KICogU3VibWl0dGVkIGJ5IE1hcmVrIE1pY2hhbGtpZXdpY3ogPG1hcmVrbUBhbWVsZWsuZ2RhLnBsPi4KICogU2VlIGFsc28gaHR0cDovL21hcnRpbi53aWxjay5iZWkudC1vbmxpbmUuZGUvI2tlY2YgLgogKi8KVU5VU1VBTF9ERVYoICAweDA3YzQsIDB4YTQwMCwgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIiLAoJCSJLRUNGLVVTQiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIENhc2lvIFFWIDJ4MDAvM3gwMC80MDAwLzgwMDAgZGlnaXRhbCBzdGlsbCBjYW1lcmFzIGFyZSBub3QgY29uZm9ybWFudAogKiB0byB0aGUgVVNCIHN0b3JhZ2Ugc3BlY2lmaWNhdGlvbiBpbiB0d28gd2F5czoKICogLSBUaGV5IHRlbGwgdXMgdGhleSBhcmUgdXNpbmcgdHJhbnNwb3J0IHByb3RvY29sIENCSS4gSW4gcmVhbGl0eSB0aGV5CiAqICAgYXJlIHVzaW5nIHRyYW5zcG9ydCBwcm90b2NvbCBDQi4KICogLSBUaGV5IGRvbid0IGxpa2UgdGhlIElOUVVJUlkgY29tbWFuZC4gU28gd2UgbXVzdCBoYW5kbGUgdGhpcyBjb21tYW5kCiAqICAgb2YgdGhlIFNDU0kgbGF5ZXIgb3Vyc2VsdmVzLgogKiAtIFNvbWUgY2FtZXJhcyB3aXRoIGlkUHJvZHVjdD0weDEwMDEgYW5kIGJjZERldmljZT0weDEwMDAgaGF2ZQogKiAgIGJJbnRlcmZhY2VQcm90b2NvbD0weDAwIChVU19QUl9DQkkpIHdoaWxlIG90aGVycyBoYXZlIDB4MDEgKFVTX1BSX0NCKS4KICogICBTbyBkb24ndCByZW1vdmUgdGhlIFVTX1BSX0NCIG92ZXJyaWRlIQogKiAtIENhbWVyYXMgd2l0aCBiY2REZXZpY2U9MHg5MDA5IHJlcXVpcmUgdGhlIFVTX1NDXzgwNzAgb3ZlcnJpZGUuCiAqLwpVTlVTVUFMX0RFViggMHgwN2NmLCAweDEwMDEsIDB4MTAwMCwgMHg5OTk5LAoJCSJDYXNpbyIsCgkJIlFWIERpZ2l0YWxDYW1lcmEiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLAoJCVVTX0ZMX05FRURfT1ZFUlJJREUgfCBVU19GTF9GSVhfSU5RVUlSWSApLAoKLyogU3VibWl0dGVkIGJ5IEhhcnRtdXQgV2FobCA8aHdhaGxAaHdhaGwuZGU+Ki8KVU5VU1VBTF9ERVYoIDB4MDgzOSwgMHgwMDBhLCAweDAwMDEsIDB4MDAwMSwKCQkiU2Ftc3VuZyIsCgkJIkRpZ2ltYXggNDEwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSksCgovKiBFbnRyeSBhbmQgc3VwcG9ydGluZyBwYXRjaCBieSBUaGVvZG9yZSBLaWxnb3JlIDxraWxnb3RhQGF1YnVybi5lZHU+LgogKiBGbGFnIHdpbGwgc3VwcG9ydCBCdWxrIGRldmljZXMgd2hpY2ggdXNlIGEgc3RhbmRhcmRzLXZpb2xhdGluZyAzMi1ieXRlCiAqIENvbW1hbmQgQmxvY2sgV3JhcHBlci4gSGVyZSwgdGhlICJEQzJNRUdBIiBjYW1lcmFzIChzZXZlcmFsIGJyYW5kcykgd2l0aAogKiBHcmFuZHRlY2ggR1Q4OTJ4IGNoaXAsIHdoaWNoIHJlcXVlc3QgIlByb3ByaWV0YXJ5IFNDU0kgQnVsayIgc3VwcG9ydC4KICovCgpVTlVTVUFMX0RFViggIDB4MDg0ZCwgMHgwMDExLCAweDAxMTAsIDB4MDExMCwKCQkiR3JhbmR0ZWNoIiwKCQkiREMyTUVHQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfQlVMSzMyKSwKCi8qIFN1Ym1pdHRlZCBieSBKYW4gRGUgTHV5Y2sgPGxrbWxAa2NvcmUub3JnPiAqLwpVTlVTVUFMX0RFViggIDB4MDhiZCwgMHgxMTAwLCAweDAwMDAsIDB4MDAwMCwKCQkiQ0lUSVpFTiIsCgkJIlgxREUtVVNCIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOKSwKCi8qIEVudHJ5IG5lZWRlZCBmb3IgZmxhZ3MuIE1vcmVvdmVyLCBhbGwgZGV2aWNlcyB3aXRoIHRoaXMgSUQgdXNlCiAqIGJ1bGstb25seSB0cmFuc3BvcnQsIGJ1dCBfc29tZV8gZmFsc2VseSByZXBvcnQgQ29udHJvbC9CdWxrIGluc3RlYWQuCiAqIE9uZSBleGFtcGxlIGlzICJUcnVtcGlvbiBEaWdpdGFsIFJlc2VhcmNoIE1ZTVAzIi4KICogU3VibWl0dGVkIGJ5IEJqb2VybiBCcmlsbCA8YnJpbGwoYXQpZnMubWF0aC51bmktZnJhbmtmdXJ0LmRlPgogKi8KVU5VU1VBTF9ERVYoICAweDA5MGEsIDB4MTAwMSwgMHgwMTAwLCAweDAxMDAsCgkJIlRydW1waW9uIiwKCQkidDMzNTIwIFVTQiBGbGFzaCBDYXJkIENvbnRyb2xsZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfQlVMSywgTlVMTCwKCQlVU19GTF9ORUVEX09WRVJSSURFICksCgovKiBSZXBvcnRlZCBieSBGaWxpcHBvIEJhcmRlbGxpIDxmaWxpYmFyZEBsaWJlcm8uaXQ+CiAqIFRoZSBkZXZpY2UgcmVwb3J0cyBhIHN1YmNsYXNzIG9mIFJCQywgd2hpY2ggaXMgd3JvbmcuCiAqLwpVTlVTVUFMX0RFViggIDB4MDkwYSwgMHgxMDUwLCAweDAxMDAsIDB4MDEwMCwKCQkiVHJ1bXBpb24gTWljcm9lbGVjdHJvbmljcywgSW5jLiIsCgkJIjMzNTIwIFVTQiBEaWdpdGFsIFZvaWNlIFJlY29yZGVyIiwKCQlVU19TQ19VRkksIFVTX1BSX0RFVklDRSwgTlVMTCwKCQkwKSwKCi8qIFRydW1waW9uIE1pY3JvZWxlY3Ryb25pY3MgTVAzIHBsYXllciAoZmVsaXBlX2FsZmFyb0BsaW51eG1haWwub3JnKSAqLwpVTlVTVUFMX0RFViggMHgwOTBhLCAweDEyMDAsIDB4MDAwMCwgMHg5OTk5LAoJCSJUcnVtcGlvbiIsCgkJIk1QMyBwbGF5ZXIiLAoJCVVTX1NDX1JCQywgVVNfUFJfQlVMSywgTlVMTCwKCQkwICksCgovKiBhZWIgKi8KVU5VU1VBTF9ERVYoIDB4MDkwYywgMHgxMTMyLCAweDAwMDAsIDB4ZmZmZiwKCQkiRmVpeWEiLAoJCSI1LWluLTEgQ2FyZCBSZWFkZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKLyogVGhpcyBQZW50YXggc3RpbGwgY2FtZXJhIGlzIG5vdCBjb25mb3JtYW50CiAqIHRvIHRoZSBVU0Igc3RvcmFnZSBzcGVjaWZpY2F0aW9uOiAtCiAqIC0gSXQgZG9lcyBub3QgbGlrZSB0aGUgSU5RVUlSWSBjb21tYW5kLiBTbyB3ZSBtdXN0IGhhbmRsZSB0aGlzIGNvbW1hbmQKICogICBvZiB0aGUgU0NTSSBsYXllciBvdXJzZWx2ZXMuCiAqIFRlc3RlZCBvbiBSZXYuIDEwLjAwICgweDEwMDApCiAqIFN1Ym1pdHRlZCBieSBKYW1lcyBDb3VydGllci1EdXR0b24gPEphbWVzQHN1cGVyYnVnLmRlbW9uLmNvLnVrPgogKi8KVU5VU1VBTF9ERVYoIDB4MGExNywgMHgwMDA0LCAweDEwMDAsIDB4MTAwMCwKICAgICAgICAgICAgICAgICJQZW50YXgiLAogICAgICAgICAgICAgICAgIk9wdGlvIDIvMy80MDAiLAogICAgICAgICAgICAgICAgVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCiAgICAgICAgICAgICAgICBVU19GTF9GSVhfSU5RVUlSWSApLAoKCi8qIFN1Ym1pdHRlZCBieSBQZXIgV2lua3Zpc3QgPHBlci53aW5rdmlzdEB1ay5jb20+ICovClVOVVNVQUxfREVWKCAweDBhMTcsIDB4MDA2LCAweDAwMDAsIDB4ZmZmZiwKICAgICAgICAgICAgICAgICJQZW50YXgiLAogICAgICAgICAgICAgICAgIk9wdGlvIFMvUzQiLAogICAgICAgICAgICAgICAgVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCiAgICAgICAgICAgICAgICBVU19GTF9GSVhfSU5RVUlSWSApLAoKLyogVGhpcyBpcyBhIHZpcnR1YWwgd2luZG93cyBkcml2ZXIgQ0QsIHdoaWNoIHRoZSB6ZDEyMTFydyBkcml2ZXIgYXV0b21hdGljYWxseQogKiBjb252ZXJ0cyBpbnRvIGEgV0xBTiBkZXZpY2UuICovClVOVVNVQUxfREVWKCAweDBhY2UsIDB4MjAxMSwgMHgwMTAxLCAweDAxMDEsCiAgICAgICAgICAgICAgICAiWnlYRUwiLAogICAgICAgICAgICAgICAgIkctMjIwRiBVU0ItV0xBTiBJbnN0YWxsIiwKICAgICAgICAgICAgICAgIFVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAogICAgICAgICAgICAgICAgVVNfRkxfSUdOT1JFX0RFVklDRSApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAKVU5VU1VBTF9ERVYoICAweDBiZjYsIDB4YTAwMSwgMHgwMTAwLCAweDAxMTAsCgkJIkFUSSIsCgkJIlVTQiBDYWJsZSAyMDUiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIKVU5VU1VBTF9ERVYoIDB4MGMwYiwgMHhhMTA5LCAweDAwMDAsIDB4ZmZmZiwKCSAgICAgICAiQWNvbWRhdGEiLAoJICAgICAgICJDRiIsCgkgICAgICAgVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCSAgICAgICBVU19GTF9TSU5HTEVfTFVOICksCiNlbmRpZgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NQpVTlVTVUFMX0RFViggMHgwYzBiLCAweGExMDksIDB4MDAwMCwgMHhmZmZmLAoJICAgICAgICJBY29tZGF0YSIsCgkgICAgICAgIlNNIiwKCSAgICAgICBVU19TQ19TQ1NJLCBVU19QUl9TRERSNTUsIE5VTEwsCgkgICAgICAgVVNfRkxfU0lOR0xFX0xVTiApLAojZW5kaWYKCi8qIFN1Ym1pdHRlZCBieTogTmljayBTaWxsaWsgPG4uc2lsbGlrQHRlbXBsZS5lZHU+CiAqIE5lZWRlZCBmb3IgT25lVG91Y2ggZXh0ZW5zaW9uIHRvIHVzYi1zdG9yYWdlCiAqCiAqLwojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNICglVTlVTVUFMX0RFViggIDB4MGQ0OSwgMHg3MDAwLCAweDAwMDAsIDB4OTk5OSwKCQkJIk1heHRvciIsCgkJCSJPbmVUb3VjaCBFeHRlcm5hbCBIYXJkZHJpdmUiLAoJCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgb25ldG91Y2hfY29ubmVjdF9pbnB1dCwKCQkJMCksCglVTlVTVUFMX0RFViggIDB4MGQ0OSwgMHg3MDEwLCAweDAwMDAsIDB4OTk5OSwKCQkJIk1heHRvciIsCgkJCSJPbmVUb3VjaCBFeHRlcm5hbCBIYXJkZHJpdmUiLAoJCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgb25ldG91Y2hfY29ubmVjdF9pbnB1dCwKCQkJMCksCiNlbmRpZgoKLyoKICogUGV0ZSBaYWl0Y2V2IDx6YWl0Y2V2QHlhaG9vLmNvbT4sIGJ6IzE2NDY4OC4KICogVGhlIGRldmljZSBibGF0YW50bHkgaWdub3JlcyBMVU4gYW5kIHJldHVybnMgMSBpbiBHZXRNYXhMVU4uCiAqLwpVTlVTVUFMX0RFViggMHgwYzQ1LCAweDEwNjAsIDB4MDEwMCwgMHgwMTAwLAoJCSJVbmtub3duIiwKCQkiVW5rbm93biIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IEpvcmlzIFN0cnV5dmUgPGpvcmlzQHN0cnV5dmUuYmU+ICovClVOVVNVQUxfREVWKCAweDBkOTYsIDB4NDEwYSwgMHgwMDAxLCAweGZmZmYsCgkJIk1lZGlvbiIsCgkJIk1EIDc0MjUiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qCiAqIEVudHJ5IGZvciBKZW5vcHRpayBKRCA1MjAwejMKICoKICogZW1haWw6IGNhci5idXNzZUBnbXguZGUKICovClVOVVNVQUxfREVWKCAgMHgwZDk2LCAweDUyMDAsIDB4MDAwMSwgMHgwMjAwLAoJCSJKZW5vcHRpayIsCgkJIkpEIDUyMDAgejMiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSksCgovKiBSZXBvcnRlZCBieSBMdWJvbWlyIEJsYWhhIDx0cml0b2xAdHJpbG9naWMuY3o+CiAqIEkgX1JFQUxMWV8gZG9uJ3Qga25vdyB3aGF0IDNyZCwgNHRoIG51bWJlciBhbmQgYWxsIGRlZmluZXMgbWVhbiwgYnV0IHRoaXMKICogd29ya3MgZm9yIG1lLiBDYW4gYW55Ym9keSBjb3JyZWN0IHRoZXNlIHZhbHVlcz8gKEkgYWJsZSB0byB0ZXN0IGNvcnJlY3RlZAogKiB2ZXJzaW9uLikKICovClVOVVNVQUxfREVWKCAweDBkZDgsIDB4MTA2MCwgMHgwMDAwLCAweGZmZmYsCgkJIk5ldGFjIiwKCQkiVVNCLUNGLUNhcmQiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBQYXRjaCBieSBTdGVwaGFuIFdhbHRlciA8c3RlcGhhbi53YWx0ZXJAZXBmbC5jaD4KICogSSBkb24ndCBrbm93IHdoeSwgYnV0IGl0IHdvcmtzLi4uICovClVOVVNVQUxfREVWKCAweDBkZGEsIDB4MDAwMSwgMHgwMDEyLCAweDAwMTIsCgkJIldJTldBUkQiLAoJCSJNdXNpYyBEaXNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgSWFuIE1jQ29ubmVsbCA8aWFuIGF0IGVtaXQuZGVtb24uY28udWs+ICovClVOVVNVQUxfREVWKCAgMHgwZGRhLCAweDAzMDEsIDB4MDAxMiwgMHgwMDEyLAoJCSJQTlBfTVAzIiwKCQkiUE5QX01QMyBQTEFZRVIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBKaW0gTWNDbG9za2V5IDxtY2Nsb3NrQHVjc2MuZWR1PiAqLwpVTlVTVUFMX0RFViggMHgwZTIxLCAweDA1MjAsIDB4MDEwMCwgMHgwMTAwLAoJCSJDb3dvbiBTeXN0ZW1zIiwKCQkiaUFVRElPIE01IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0JVTEssIE5VTEwsCgkJMCApLAoKLyogU3VibWl0dGVkIGJ5IEFudG9pbmUgTWFpcmVzc2UgPGFudG9pbmUubWFpcmVzc2VAZnJlZS5mcj4gKi8KVU5VU1VBTF9ERVYoIDB4MGVkMSwgMHg2NjYwLCAweDAxMDAsIDB4MDMwMCwKCQkiVVNCIiwKCQkiU29saWQgc3RhdGUgZGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFN1Ym1pdHRlZCBieSBEYW5pZWwgRHJha2UgPGRzZEBnZW50b28ub3JnPgogKiBSZXBvcnRlZCBieSBkYXl1bCBvbiB0aGUgR2VudG9vIEZvcnVtcyAqLwpVTlVTVUFMX0RFViggIDB4MGVhMCwgMHgyMTY4LCAweDAxMTAsIDB4MDExMCwKCQkiT3VycyBUZWNobm9sb2d5IiwKCQkiRmxhc2ggRGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFJhc3Rpc2xhdiBTdGFuaWsgPHJzX2tlcm5lbEB5YWhvby5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwZWEwLCAweDY4MjgsIDB4MDExMCwgMHgwMTEwLAoJCSJVU0IiLAoJCSJGbGFzaCBEaXNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgQmVuamFtaW4gU2NoaWxsZXIgPHNiZW5uaUBnbXguZGU+CiAqIEl0IGlzIGFsc28gc29sZCBieSBFYXN5bGl0ZSBhcyBESiAyMCAqLwpVTlVTVUFMX0RFViggIDB4MGVkMSwgMHg3NjM2LCAweDAxMDMsIDB4MDEwMywKCQkiVHlwaG9vbiIsCgkJIk15IERKIDE4MjAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFIHwgVVNfRkxfR09fU0xPVyB8IFVTX0ZMX01BWF9TRUNUT1JTXzY0KSwKCi8qIERhdmlkIEt1ZWhsaW5nIDxkdmRraGxuZ0BnbXguZGU+OgogKiBmb3IgTVAzLVBsYXllciBBVk9YIFdTWC0zMDBFUiAoYm91Z2h0IGluIEphcGFuKS4gIFJlcG9ydHMgbG90cyBvZiBTQ1NJCiAqIGVycm9ycyB3aGVuIHRyeWluZyB0byB3cml0ZS4KICovClVOVVNVQUxfREVWKCAgMHgwZjE5LCAweDAxMDUsIDB4MDEwMCwgMHgwMTAwLAoJCSJDLU1FWCIsCgkJIkEtVk9YIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgTWljaGFlbCBTdGF0dG1hbm4gPG1pY2hhZWxAc3RhdHRtYW5uLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDBmY2UsIDB4ZDAwOCwgMHgwMDAwLCAweDAwMDAsCgkJIlNvbnkgRXJpY3Nzb24iLAoJCSJWODAwLVZvZGFmb25lIDgwMiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfTk9fV1BfREVURUNUICksCgovKiBSZXBvcnRlZCBieSBKYW4gTWF0ZSA8bWF0ZUBmaWl0LnN0dWJhLnNrPiAqLwpVTlVTVUFMX0RFViggIDB4MGZjZSwgMHhlMDMwLCAweDAwMDAsIDB4MDAwMCwKCQkiU29ueSBFcmljc3NvbiIsCgkJIlA5OTBpIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qIFJlcG9ydGVkIGJ5IEVtbWFudWVsIFZhc2lsYWtpcyA8ZXZhc0Bmb3J0aG5ldC5ncj4gKi8KVU5VU1VBTF9ERVYoICAweDBmY2UsIDB4ZTAzMSwgMHgwMDAwLCAweDAwMDAsCgkJIlNvbnkgRXJpY3Nzb24iLAoJCSJNNjAwaSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBSZXBvcnRlZCBieSBKYW4gTWF0ZSA8bWF0ZUBmaWl0LnN0dWJhLnNrPiAqLwpVTlVTVUFMX0RFViggIDB4MGZjZSwgMHhlMDMwLCAweDAwMDAsIDB4MDAwMCwKCQkiU29ueSBFcmljc3NvbiIsCgkJIlA5OTBpIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qIFJlcG9ydGVkIGJ5IEtldmluIENlcm5la2VlIDxrcGMtdXNiZGV2QGdlbGF0by51aXVjLmVkdT4KICogVGVzdGVkIG9uIGhhcmR3YXJlIHZlcnNpb24gMS4xMC4KICogRW50cnkgaXMgbmVlZGVkIG9ubHkgZm9yIHRoZSBpbml0aWFsaXplciBmdW5jdGlvbiBvdmVycmlkZS4KICovClVOVVNVQUxfREVWKCAgMHgxMDE5LCAweDBjNTUsIDB4MDExMCwgMHgwMTEwLAoJCSJEZXNrbm90ZSIsCgkJIlVDUi02MVMyQiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIHVzYl9zdG9yX3VjcjYxczJiX2luaXQsCgkJMCApLAoKLyogUmVwb3J0ZWQgYnkgVmlsaXVzIEJpbGlua2V2aWNpdXMgPHZpbGlzYXMgQVQgeHh4IERPVCBsdCkgKi8KVU5VU1VBTF9ERVYoICAweDEzMmIsIDB4MDAwYiwgMHgwMDAxLCAweDAwMDEsCgkJIk1pbm9sdGEiLAoJCSJEaW1hZ2UgWjEwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQkwICksCgovKiBSZXBvcnRlZCBieSBLb3RybGEgVml0ZXpzbGF2IDxrb3RybGFAY2ViLmN6PiAqLwpVTlVTVUFMX0RFViggIDB4MTM3MCwgMHg2ODI4LCAweDAxMTAsIDB4MDExMCwKCQkiU1dJU1NCSVQiLAoJCSJCbGFjayBTaWx2ZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBwYXRjaCBzdWJtaXR0ZWQgYnkgRGF2aWRlIFBlcmluaSA8cGVyaW5pLmRhdmlkZUBkcHNvZnR3YXJlLm9yZz4KICogYW5kIFJlbmF0byBQZXJpbmkgPHJwZXJpbmlAZW1haWwuaXQ+CiAqLwpVTlVTVUFMX0RFViggIDB4MjJiOCwgMHgzMDEwLCAweDAwMDEsIDB4MDAwMSwKCQkiTW90b3JvbGEiLAoJCSJSQVpSIFYzeCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZIHwgVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFJhZG92YW4gR2FyYWJpayA8Z2FyYWJpa0BrYXNzaW9wZWlhLmp1bHMuc2F2YmEuc2s+ICovClVOVVNVQUxfREVWKCAgMHgyNzM1LCAweDEwMGIsIDB4MDAwMCwgMHg5OTk5LAoJCSJNUElPIiwKCQkiSFMyMDAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0dPX1NMT1cgKSwKCi8qCiAqIERhdmlkIEjkcmRlbWFuIDxkYXZpZEAyZ2VuLmNvbT4KICogVGhlIGtleSBtYWtlcyB0aGUgU0NTSSBzdGFjayBwcmludCBjb25mdXNpbmcgKGJ1dCBoYXJtbGVzcykgbWVzc2FnZXMKICovClVOVVNVQUxfREVWKCAgMHg0MTQ2LCAweGJhMDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJJb21lZ2EiLAoJCSJNaWNybyBNaW5pIDFHQiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUKVU5VU1VBTF9ERVYoICAweDU1YWEsIDB4YTEwMywgMHgwMDAwLCAweDk5OTksIAoJCSJTYW5kaXNrIiwKCQkiSW1hZ2VNYXRlIFNERFI1NSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfU0REUjU1LCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4pLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IEFuZHJldyBTaW1tb25zIDxhbmRyZXcuc2ltbW9uc0BnbWFpbC5jb20+ICovClVOVVNVQUxfREVWKCAgMHhlZDA2LCAweDQ1MDAsIDB4MDAwMSwgMHgwMDAxLAoJCSJEYXRhU3RvciIsCgkJIlVTQjQ1MDAgRlcxLjA0IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkpLAoKLyogQ29udHJvbC9CdWxrIHRyYW5zcG9ydCBmb3IgYWxsIFN1YkNsYXNzIHZhbHVlcyAqLwpVU1VBTF9ERVYoVVNfU0NfUkJDLCBVU19QUl9DQiwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ184MDIwLCBVU19QUl9DQiwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19RSUMsIFVTX1BSX0NCLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDX1VGSSwgVVNfUFJfQ0IsIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfODA3MCwgVVNfUFJfQ0IsIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIFVTQl9VU19UWVBFX1NUT1IpLAoKLyogQ29udHJvbC9CdWxrL0ludGVycnVwdCB0cmFuc3BvcnQgZm9yIGFsbCBTdWJDbGFzcyB2YWx1ZXMgKi8KVVNVQUxfREVWKFVTX1NDX1JCQywgVVNfUFJfQ0JJLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDXzgwMjAsIFVTX1BSX0NCSSwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19RSUMsIFVTX1BSX0NCSSwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19VRkksIFVTX1BSX0NCSSwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ184MDcwLCBVU19QUl9DQkksIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfU0NTSSwgVVNfUFJfQ0JJLCBVU0JfVVNfVFlQRV9TVE9SKSwKCi8qIEJ1bGstb25seSB0cmFuc3BvcnQgZm9yIGFsbCBTdWJDbGFzcyB2YWx1ZXMgKi8KVVNVQUxfREVWKFVTX1NDX1JCQywgVVNfUFJfQlVMSywgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ184MDIwLCBVU19QUl9CVUxLLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDX1FJQywgVVNfUFJfQlVMSywgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19VRkksIFVTX1BSX0JVTEssIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfODA3MCwgVVNfUFJfQlVMSywgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCAwKSwK