LyoKICAqIEEgY29sbGVjdGlvbiBvZiBzdHJ1Y3R1cmVzLCBhZGRyZXNzZXMsIGFuZCB2YWx1ZXMgYXNzb2NpYXRlZCB3aXRoCiAgKiB0aGUgTW90b3JvbGEgODYwIEFEUyBib2FyZC4JIENvcGllZCBmcm9tIHRoZSBNQlggc3R1ZmYuCiAgKiBNYWdudXMgRGFtbSBhZGRlZCBkZWZpbmVzIGZvciA4eHhyb20gYW5kIGV4dGVuZGVkIGJkX2luZm8uCiAgKiBIZWxtdXQgQnVjaHNiYXVtIGFkZGVkIGJpdHZhbHVlcyBmb3IgQkNTUngKICAqCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTggRGFuIE1hbGVrIChkbWFsZWtAamxjLm5ldCkKICAqLwoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKI2lmbmRlZiBfQ09ORklHX0FEUzg2MF9ICiNkZWZpbmUgX0NPTkZJR19BRFM4NjBfSAoKLyoKICogSGlnaCBMZXZlbCBDb25maWd1cmF0aW9uIE9wdGlvbnMKICogKGVhc3kgdG8gY2hhbmdlKQogKi8KI2luY2x1ZGUgPG1wYzh4eF9pcnEuaD4KCiNkZWZpbmUgQ09ORklHX01QQzg2MAkJMQojZGVmaW5lIENPTkZJR19BRFMJCTEKCiNkZWZpbmUgQ09ORklHXzh4eF9DT05TX1NNQzEJMQkvKiBDb25zb2xlIGlzIG9uIFNNQzEJICAgICovCiN1bmRlZglDT05GSUdfOHh4X0NPTlNfU01DMgojdW5kZWYJQ09ORklHXzh4eF9DT05TX05PTkUKI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTE5MjAwCS8qIGNvbnNvbGUgYmF1ZHJhdGUgKi8KI2RlZmluZSBDT05GSUdfUENNQ0lBCQkxCS8qIFRvIGVuYWJsZSBQQ01DSUEgc3VwcG9ydCAqLwoKI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwojZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgZGVmYXVsdHMgKi8KI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCgojZGVmaW5lIE1QQzhYWF9YSU4JCTMyNzY4CS8qIDMyLjc2OCBrSHogaW5wdXQgZnJlcXVlbmN5CSovCiNkZWZpbmUgTVBDOFhYX0ZBQ1QJCTB4NUY2CS8qIE11bHRpcGx5IGJ5IDE1MjYgKi8KCQkJCQkvKiBNUEM4WFhfRkFDVCAqIE1QQzhYWF9YSU4gPSA1MCBNSHogKi8KCiNkZWZpbmUJQ09ORklHX0NMT0NLU19JTl9NSFoJMQkvKiBjbG9ja3MgcGFzc3NlZCB0byBMaW51eCBpbiBNSHogKi8KCiNpZiAwCiNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQktMQkvKiBhdXRvYm9vdCBkaXNhYmxlZAkgICAgKi8KI2Vsc2UKI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUJLyogYXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzICovCiNlbmRpZgoKI3VuZGVmCUNPTkZJR19CT09UQVJHUwojZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkJCSAgICBcCiAgICAiYm9vdHA7ICIJCQkJICAgIFwKICAgICJzZXRlbnYgYm9vdGFyZ3Mgcm9vdD0vZGV2L25mcyBydyBuZnNyb290PSQoc2VydmVyaXApOiQocm9vdHBhdGgpICIJICAgIFwKICAgICJpcD0kKGlwYWRkcik6JChzZXJ2ZXJpcCk6JChnYXRld2F5aXApOiQobmV0bWFzayk6JChob3N0bmFtZSk6Om9mZjsgIiAgIFwKICAgICJib290bSIKCiNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMSAgIC8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAgKi8KI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkgICAgLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICAqLwoKI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJICAgIC8qIHdhdGNoZG9nIGRpc2FibGVkCSovCgojZGVmaW5lIENPTkZJR19CT09UUF9NQVNLICAgKENPTkZJR19CT09UUF9ERUZBVUxUIHwgQ09ORklHX0JPT1RQX0JPT1RGSUxFU0laRSkKCgojaWYgMAkJCQkJLyogcHJpdmF0ZSBjb21tYW5kIGRlZnMgKi8KI2RlZmluZSBDT05GSUdfQ09NTUFORFMJICAgIChDT05GSUdfQ01EX0RGTCB8IENGR19DTURfSTJDIHwgXAoJCQkgICAgIENGR19DTURfSURFIHwgQ0ZHX0NNRF9QQ01DSUEpCiNlbmRpZgoJCQkJCS8qIGRlZmF1bHQgY29tbWFuZCBkZWZzICovCiNkZWZpbmUgQ09ORklHX0NPTU1BTkRTIChDT05GSUdfQ01EX0RGTCAmIH5DRkdfQ01EX0NBQ0hFKQoKLyogdGhpcyBtdXN0IGJlIGluY2x1ZGVkIEFGVEVSIHRoZSBkZWZpbml0aW9uIG9mIENPTkZJR19DT01NQU5EUyAoaWYgYW55KSAqLwojaW5jbHVkZSA8Y21kX2NvbmZkZWZzLmg+CgoKLyoKICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogKi8KI3VuZGVmCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwojZGVmaW5lIENGR19QUk9NUFQJICAgICI9PiIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9LR0RCKQojZGVmaW5lIENGR19DQlNJWkUJICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiNlbHNlCiNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KI2VuZGlmCiNkZWZpbmUgQ0ZHX1BCU0laRQkgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwojZGVmaW5lIENGR19NQVhBUkdTCSAgICAxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KI2RlZmluZSBDRkdfQkFSR1NJWkUJICAgIENGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwoKI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgIDB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwojZGVmaW5lIENGR19NRU1URVNUX0VORAkgICAgMHgwMEYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCgojZGVmaW5lIENGR19MT0FEX0FERFIJICAgIDB4MDAxMDAwMDAKCiNkZWZpbmUgQ0ZHX0haCQkgICAgMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCgojZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQoKLyoKICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKICogKGFkZHJlc3MgbWFwcGluZ3MsIHJlZ2lzdGVyIGluaXRpYWwgdmFsdWVzLCBldGMuKQogKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogKi8KI2RlZmluZSBDRkdfSU1NUgkJMHhmZmYwMDAwMAojZGVmaW5lIENGR19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICovCiNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCiNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwojZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCiAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICovCiNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAKI2RlZmluZSBDRkdfU1JBTV9CQVNFCSAgICAweDAwMDAwMDAwCiNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJICAgIDB4ZmUwMDAwMDAKI2RlZmluZSBDRkdfRkxBU0hfU0laRQkgICAgKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlICovCgojZGVmaW5lIENGR19NT05JVE9SX0xFTgkgICAgKDM4NCA8PCAxMCkgLyogUmVzZXJ2ZSAzODQga0IgZm9yIE1vbml0b3IJKi8KI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIENGR19GTEFTSF9CQVNFCiNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgICgzODQgPDwgMTApIC8qIFJlc2VydmUgMzg0IGtCIGZvciBtYWxsb2MoKQkqLwoKLyoKICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAqLwojZGVmaW5lIENGR19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogRkxBU0ggb3JnYW5pemF0aW9uCiAqLwojZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkgICAgKi8KI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KCiNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICovCiNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICovCgojdW5kZWYJQ0ZHX0VOVl9JU19JTl9OVlJBTQojdW5kZWYJQ0ZHX0VOVl9JU19JTl9FRVBST00KI2RlZmluZSBDRkdfRU5WX0lTX0lOX0ZMQVNICTEKCiNkZWZpbmUgQ0ZHX0VOVl9PRkZTRVQJCTB4MDAwNDAwMDAKI2RlZmluZSBDRkdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwojZGVmaW5lIENGR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAgLyogc2VlIFJFQURNRSAtIGVudiBzZWN0b3IgdG90YWwgc2l6ZQkqLwoKLyogdGhlIG90aGVyIENTOnMgYXJlIGRldGVybWluZWQgYnkgbG9va2luZyBhdCBwYXJhbWV0ZXJzIGluIEJDU1J4ICovCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIENhY2hlIENvbmZpZ3VyYXRpb24KICovCiNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFICAxNgkJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJKi8KI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0tHREIpCiNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVCA0CQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAgICAqLwojZW5kaWYKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogU1lQQ1IgLSBTeXN0ZW0gUHJvdGVjdGlvbiBDb250cm9sCQkJMTEtOQogKiBTWVBDUiBjYW4gb25seSBiZSB3cml0dGVuIG9uY2UgYWZ0ZXIgcmVzZXQhCiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAqLwojaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCiNkZWZpbmUgQ0ZHX1NZUENSICAgKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCgkgICAgIFNZUENSX1NXRSB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCiNlbHNlCiNkZWZpbmUgQ0ZHX1NZUENSICAgKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBTVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbgkJICAgIDExLTYKICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogKi8KI2RlZmluZSBDRkdfU0lVTUNSICAoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkxMS0yNgogKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAqLwojZGVmaW5lIENGR19UQlNDUiAgIChUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCTExLTMxCiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICovCiNkZWZpbmUgQ0ZHX1BJU0NSICAgKFBJU0NSX1BTIHwgUElTQ1JfUElURikKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCTE1LTMwCiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogc2V0IHRoZSBQTEwsIHRoZSBsb3ctcG93ZXIgbW9kZXMgYW5kIHRoZSByZXNldCBjb250cm9sICgxNS0yOSkKICovCiNkZWZpbmUgQ0ZHX1BMUFJDUiAgKCgoTVBDOFhYX0ZBQ1QtMSkgPDwgMjApIHwJXAoJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkxNS0yNwogKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFNldCBjbG9jayBvdXRwdXQsIHRpbWViYXNlIGFuZCBSVEMgc291cmNlIGFuZCBkaXZpZGVyLAogKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogKi8KI2RlZmluZSBTQ0NSX01BU0sgICBTQ0NSX0VCREYxMQojZGVmaW5lIENGR19TQ0NSICAgIChTQ0NSX1RCUyB8IFNDQ1JfQ09NMDAgfCBTQ0NSX0RGU1lOQzAwIHwgXAoJCSAgIFNDQ1JfREZCUkcwMCB8IFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCB8IFwKCQkgICBTQ0NSX0RGTENEMDAwIHwgU0NDUl9ERkFMQ0QwMCkKCgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKgogKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqCiAqLwojZGVmaW5lIENGR19ERVIJICAgIDAKCi8qIEJlY2F1c2Ugb2YgdGhlIHdheSB0aGUgODYwIHN0YXJ0cyB1cCBhbmQgYXNzaWducyBDUzAgdGhlCiogZW50aXJlIGFkZHJlc3Mgc3BhY2UsIHdlIGhhdmUgdG8gc2V0IHRoZSBtZW1vcnkgY29udHJvbGxlcgoqIGRpZmZlcmVudGx5LglOb3JtYWxseSwgeW91IHdyaXRlIHRoZSBvcHRpb24gcmVnaXN0ZXIKKiBmaXJzdCwgYW5kIHRoZW4gZW5hYmxlIHRoZSBjaGlwIHNlbGVjdCBieSB3cml0aW5nIHRoZQoqIGJhc2UgcmVnaXN0ZXIuICBGb3IgQ1MwLCB5b3UgbXVzdCB3cml0ZSB0aGUgYmFzZSByZWdpc3RlcgoqIGZpcnN0LCBmb2xsb3dlZCBieSB0aGUgb3B0aW9uIHJlZ2lzdGVyLgoqLwoKLyoKICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKICoKICogQlIwLzEgYW5kIE9SMC8xIChGTEFTSCkKICovCi8qIHRoZSBvdGhlciBDUzpzIGFyZSBkZXRlcm1pbmVkIGJ5IGxvb2tpbmcgYXQgcGFyYW1ldGVycyBpbiBCQ1NSeCAqLwoKI2RlZmluZSBCQ1NSX0FERFIJICAgKCh1aW50KSAweGZmMDEwMDAwKQojZGVmaW5lIEJDU1JfU0laRQkgICAoKHVpbnQpKDY0ICogMTAyNCkpCgojZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTSAgMHhmZTAwMDAwMAkvKiBGTEFTSCBiYW5rICMwICAgICovCiNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNICAweDAwMDAwMDAwCS8qIEZMQVNIIGJhbmsgIzEgICAgKi8KCiNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCSAgICAweGZmMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwojZGVmaW5lIENGR19QUkVMSU1fT1JfQU0gICAgMHhmZmUwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KCi8qIEZMQVNIIHRpbWluZzogQUNTID0gMTAsIFRSTFggPSAxLCBDU05UID0gMSwgU0NZID0gMywgRUhUUiA9IDAgICAgKi8KI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNIIChPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLIHwgT1JfVFJMWCkKCiNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCgojaWZkZWYgVVNFX1JFQUxfRkxBU0hfVkFMVUVTCi8qCiAqIFRoZXNlIHZhbHVlcyBmaXQgb3VyIEZBRFM4NjBUIC4uLgogKiBUaGUgImRlZmF1bHQiIGJlaGF2aW91ciB3aXRoIDFNYnl0ZSBpbml0aWFsIGRvZXNuJ3Qgd29yayBmb3IgdXMhCiAqLwojZGVmaW5lIENGR19CUjBfUFJFTElNCTB4MGZlMDAwMDAxCS8qIFJlYWwgdmFsdWVzIGZvciB0aGUgYm9hcmQgKi8KI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkweDBmZmUwMGQzNAojZGVmaW5lIENGR19CUjJfUFJFTElNCTB4MDAwMDAwMDgxCiNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JMHgwZmYwMDA4MDAKI2Vsc2UKI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpICAgLyogMSBNYnl0ZSB1bnRpbCBkZXRlY3RlZCBhbmQgb25seSAxIE1ieXRlIGlzIG5lZWRlZCovCiNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiNlbmRpZgoKLyogQkNTUnggLSBCb2FyZCBDb250cm9sIGFuZCBTdGF0dXMgUmVnaXN0ZXJzICovCi8qICNkZWZpbmUgQ0ZHX09SMV9SRU1BUCAgICBDRkdfT1IwX1JFTUFQICovCiNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JMHhmZmZmODExMAkvKiA2NEtieXRlIGFkZHJlc3Mgc3BhY2UgKi8KI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEJDU1JfQUREUikgfCBCUl9WICkKCi8qCiAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICovCgovKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwojZGVmaW5lIENGR19NQU1SX1BUQQkgICAgOTcJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6ICAgKi8KCi8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdCAqLwojZGVmaW5lIENGR19NUFRQUl8yQktfNEsgICAgTVBUUFJfUFRQX0RJVjE2CS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLICAgIE1QVFBSX1BUUF9ESVYzMgkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KCi8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CSAgICAqLwojZGVmaW5lIENGR19NUFRQUl8yQktfOEsgICAgTVBUUFJfUFRQX0RJVjgJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwojZGVmaW5lIENGR19NUFRQUl8xQktfOEsgICAgTVBUUFJfUFRQX0RJVjE2CS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwoKLyoKICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICovCgovKiA4IGNvbHVtbiBTRFJBTSAqLwojZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCgkgICAgIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwgICBcCgkgICAgIE1BTVJfUkxGQV8xWCAgICB8IE1BTVJfV0xGQV8xWCAgICB8IE1BTVJfVExGQV80WCkKLyogOSBjb2x1bW4gU0RSQU0gKi8KI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAoJICAgICBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8ICAgXAoJICAgICBNQU1SX1JMRkFfMVggICAgfCBNQU1SX1dMRkFfMVggICAgfCBNQU1SX1RMRkFfNFgpCgojZGVmaW5lIENGR19NQU1SCTB4MTNhMDExMTQKLyoKICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKICoKICogQm9vdCBGbGFncwogKi8KI2RlZmluZSBCT09URkxBR19DT0xECTB4MDEJICAgIC8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiNkZWZpbmUgQk9PVEZMQUdfV0FSTQkweDAyCSAgICAvKiBTb2Z0d2FyZSByZWJvb3QJCSovCgoKLyogdmFsdWVzIGFjY29yZGluZyB0byB0aGUgbWFudWFsICovCiNkZWZpbmUgQkNTUjAJKCh1aW50KSAoQkNTUl9BRERSICsgMDApKQojZGVmaW5lIEJDU1IxCSgodWludCkgKEJDU1JfQUREUiArIDB4MDQpKQojZGVmaW5lIEJDU1IyCSgodWludCkgKEJDU1JfQUREUiArIDB4MDgpKQojZGVmaW5lIEJDU1IzCSgodWludCkgKEJDU1JfQUREUiArIDB4MGMpKQojZGVmaW5lIEJDU1I0CSgodWludCkgKEJDU1JfQUREUiArIDB4MTApKQoKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogUENNQ0lBIHN0dWZmCiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICoKICovCiNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQojZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCiNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCiNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQojZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBJREUvQVRBIHN0dWZmCiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCiNkZWZpbmUgQ09ORklHX0lERV84eHhfRElSRUNUCTEgICAvKiBQQ01DSUEgaW50ZXJmYWNlIHJlcXVpcmVkICAgICovCiN1bmRlZglDT05GSUdfSURFX0xFRAkJICAgIC8qIExFRCAgIGZvciBpZGUgc3VwcG9ydGVkCSovCiNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkxICAgLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KCiNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEgICAvKiBtYXguIDIgSURFIGJ1c3NlcwkqLwojZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCgojZGVmaW5lIENGR19QSU9fTU9ERQkJMCAgIC8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMCAgKi8KI2RlZmluZSBDRkdfUENfSURFX1JFU0VUCSgodXNob3J0KTB4MDAwOCkgICAgLyogUEMgMTIJKi8KCi8qICNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGRTEwMDAwMCAqLwojZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAoKI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkqLwojZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDAwODAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAgICovCgoKLyogKEYpQURTIGJpdHZhbHVlcyBieSBIZWxtdXQgQnVjaHNiYXVtCiAqIHNlZSBNUEM4eHhBRFMgVXNlcidzIE1hbnVhbCBmb3IgYSBwcm9wZXIgZGVzY3JpcHRpb24KICogb2YgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmVzCiAqLwoKI2RlZmluZSBCQ1NSMF9FUkIJKCh1aW50KTB4ODAwMDAwMDApCiNkZWZpbmUgQkNTUjBfSVAJKCh1aW50KTB4NDAwMDAwMDApCiNkZWZpbmUgQkNTUjBfQkRJUwkoKHVpbnQpMHgxMDAwMDAwMCkKI2RlZmluZSBCQ1NSMF9CUFNfTUFTSwkoKHVpbnQpMHgwQzAwMDAwMCkKI2RlZmluZSBCQ1NSMF9JU0JfTUFTSwkoKHVpbnQpMHgwMTgwMDAwMCkKI2RlZmluZSBCQ1NSMF9EQkdDX01BU0sgKCh1aW50KTB4MDA2MDAwMDApCiNkZWZpbmUgQkNTUjBfREJQQ19NQVNLICgodWludCkweDAwMTgwMDAwKQojZGVmaW5lIEJDU1IwX0VCREZfTUFTSyAoKHVpbnQpMHgwMDA2MDAwMCkKCiNkZWZpbmUgQkNTUjFfRkxBU0hfRU4JCSAoKHVpbnQpMHg4MDAwMDAwMCkKI2RlZmluZSBCQ1NSMV9EUkFNX0VOCQkgKCh1aW50KTB4NDAwMDAwMDApCiNkZWZpbmUgQkNTUjFfRVRIRU4JCSAoKHVpbnQpMHgyMDAwMDAwMCkKI2RlZmluZSBCQ1NSMV9JUkRFTgkJICgodWludCkweDEwMDAwMDAwKQojZGVmaW5lIEJDU1IxX0ZMQVNIX0NGR19FTgkgKCh1aW50KTB4MDgwMDAwMDApCiNkZWZpbmUgQkNTUjFfQ05UX1JFR19FTl9QUk9URUNUICgodWludCkweDA0MDAwMDAwKQojZGVmaW5lIEJDU1IxX0JDU1JfRU4JCSAoKHVpbnQpMHgwMjAwMDAwMCkKI2RlZmluZSBCQ1NSMV9SUzIzMkVOXzEJCSAoKHVpbnQpMHgwMTAwMDAwMCkKI2RlZmluZSBCQ1NSMV9QQ0NFTgkJICgodWludCkweDAwODAwMDAwKQojZGVmaW5lIEJDU1IxX1BDQ1ZDQzAJCSAoKHVpbnQpMHgwMDQwMDAwMCkKI2RlZmluZSBCQ1NSMV9QQ0NWQ0NPTgkJICAgIEJDU1IxX1BDQ1ZDQzAKI2RlZmluZSBCQ1NSMV9QQ0NWUFBfTUFTSwkgKCh1aW50KTB4MDAzMDAwMDApCiNkZWZpbmUgQkNTUjFfRFJBTV9IQUxGX1dPUkQJICgodWludCkweDAwMDgwMDAwKQojZGVmaW5lIEJDU1IxX1JTMjMyRU5fMgkJICgodWludCkweDAwMDQwMDAwKQojZGVmaW5lIEJDU1IxX1NEUkFNX0VOCQkgKCh1aW50KTB4MDAwMjAwMDApCiNkZWZpbmUgQkNTUjFfUENDVkNDMQkJICgodWludCkweDAwMDEwMDAwKQoKI2RlZmluZSBCQ1NSMl9GTEFTSF9QRF9NQVNLCSAoKHVpbnQpMHhGMDAwMDAwMCkKI2RlZmluZSBCQ1NSMl9EUkFNX1BEX01BU0sJICgodWludCkweDA3ODAwMDAwKQojZGVmaW5lIEJDU1IyX0RSQU1fUERfU0hJRlQJICgyMykKI2RlZmluZSBCQ1NSMl9FWFRUT0xJX01BU0sJICgodWludCkweDAwNzgwMDAwKQojZGVmaW5lIEJDU1IyX0RCUkVWTlJfTUFTSwkgKCh1aW50KTB4MDAwMzAwMDApCgojZGVmaW5lIEJDU1IzX0RCSURfTUFTSwkJICgodXNob3J0KTB4MzgwMCkKI2RlZmluZSBCQ1NSM19DTlRfUkVHX0VOX1BST1RFQ1QgKCh1c2hvcnQpMHgwNDAwKQojZGVmaW5lIEJDU1IzX0JSRVZOUjAJCSAoKHVzaG9ydCkweDAwODApCiNkZWZpbmUgQkNTUjNfRkxBU0hfUERfTUFTSwkgKCh1c2hvcnQpMHgwMDcwKQojZGVmaW5lIEJDU1IzX0JSRVZOMQkJICgodXNob3J0KTB4MDAwOCkKI2RlZmluZSBCQ1NSM19CUkVWTjJfTUFTSwkgKCh1c2hvcnQpMHgwMDAzKQoKI2RlZmluZSBCQ1NSNF9FVEhMT09QCQkgKCh1aW50KTB4ODAwMDAwMDApCiNkZWZpbmUgQkNTUjRfVEZQTERMCQkgKCh1aW50KTB4NDAwMDAwMDApCiNkZWZpbmUgQkNTUjRfVFBTUUVMCQkgKCh1aW50KTB4MjAwMDAwMDApCiNkZWZpbmUgQkNTUjRfU0lHTkFMX0xBTVAJICgodWludCkweDEwMDAwMDAwKQojaWZkZWYgQ09ORklHX01QQzgyMwojZGVmaW5lIEJDU1I0X1VTQl9FTgkJICgodWludCkweDA4MDAwMDAwKQojZW5kaWYgLyogQ09ORklHX01QQzgyMyAqLwojaWZkZWYgQ09ORklHX01QQzg2MFNBUgojZGVmaW5lIEJDU1I0X1VUT1BJQV9FTgkJICgodWludCkweDA4MDAwMDAwKQojZW5kaWYgLyogQ09ORklHX01QQzg2MFNBUiAqLwojaWZkZWYgQ09ORklHX01QQzg2MFQKI2RlZmluZSBCQ1NSNF9GRVRIX0VOCQkgKCh1aW50KTB4MDgwMDAwMDApCiNlbmRpZiAvKiBDT05GSUdfTVBDODYwVCAqLwojaWZkZWYgQ09ORklHX01QQzgyMwojZGVmaW5lIEJDU1I0X1VTQl9TUEVFRAkJICgodWludCkweDA0MDAwMDAwKQojZW5kaWYgLyogQ09ORklHX01QQzgyMyAqLwojaWZkZWYgQ09ORklHX01QQzg2MFQKI2RlZmluZSBCQ1NSNF9GRVRIQ0ZHMAkJICgodWludCkweDA0MDAwMDAwKQojZW5kaWYgLyogQ09ORklHX01QQzg2MFQgKi8KI2lmZGVmIENPTkZJR19NUEM4MjMKI2RlZmluZSBCQ1NSNF9WQ0NPCQkgKCh1aW50KTB4MDIwMDAwMDApCiNlbmRpZiAvKiBDT05GSUdfTVBDODIzICovCiNpZmRlZiBDT05GSUdfTVBDODYwVAojZGVmaW5lIEJDU1I0X0ZFVEhGREUJCSAoKHVpbnQpMHgwMjAwMDAwMCkKI2VuZGlmIC8qIENPTkZJR19NUEM4NjBUICovCiNpZmRlZiBDT05GSUdfTVBDODIzCiNkZWZpbmUgQkNTUjRfVklERU9fT04JCSAoKHVpbnQpMHgwMDgwMDAwMCkKI2VuZGlmIC8qIENPTkZJR19NUEM4MjMgKi8KI2lmZGVmIENPTkZJR19NUEM4MjMKI2RlZmluZSBCQ1NSNF9WRE9fRUtUX0NMS19FTgkgKCh1aW50KTB4MDA0MDAwMDApCiNlbmRpZiAvKiBDT05GSUdfTVBDODIzICovCiNpZmRlZiBDT05GSUdfTVBDODYwVAojZGVmaW5lIEJDU1I0X0ZFVEhDRkcxCQkgKCh1aW50KTB4MDA0MDAwMDApCiNlbmRpZiAvKiBDT05GSUdfTVBDODYwVCAqLwojaWZkZWYgQ09ORklHX01QQzgyMwojZGVmaW5lIEJDU1I0X1ZJREVPX1JTVAkJICgodWludCkweDAwMjAwMDAwKQojZW5kaWYgLyogQ09ORklHX01QQzgyMyAqLwojaWZkZWYgQ09ORklHX01QQzg2MFQKI2RlZmluZSBCQ1NSNF9GRVRIUlNUCQkgKCh1aW50KTB4MDAyMDAwMDApCiNlbmRpZiAvKiBDT05GSUdfTVBDODYwVCAqLwojaWZkZWYgQ09ORklHX01QQzgyMwojZGVmaW5lIEJDU1I0X01PREVNX0VOCQkgKCh1aW50KTB4MDAxMDAwMDApCiNlbmRpZiAvKiBDT05GSUdfTVBDODIzICovCiNpZmRlZiBDT05GSUdfTVBDODIzCiNkZWZpbmUgQkNTUjRfREFUQV9WT0lDRQkgKCh1aW50KTB4MDAwODAwMDApCiNlbmRpZiAvKiBDT05GSUdfTVBDODIzICovCiNpZmRlZiBDT05GSUdfTVBDODUwCiNkZWZpbmUgQkNTUjRfREFUQV9WT0lDRQkgKCh1aW50KTB4MDAwODAwMDApCiNlbmRpZiAvKiBDT05GSUdfTVBDODUwICovCgojZGVmaW5lIENPTkZJR19EUkFNXzUwTUhaCTEKI2RlZmluZSBDT05GSUdfU0RSQU1fNTBNSFoKCiNpZmRlZiBDT05GSUdfTVBDODYwVAovKiBJbnRlcnJ1cHQgbGV2ZWwgYXNzaWdubWVudHMuCiAqLwojZGVmaW5lIEZFQ19JTlRFUlJVUFQJU0lVX0xFVkVMMSAgLyogRkVDIGludGVycnVwdCAqLwojZW5kaWYgLyogQ09ORklHX01QQzg2MFQgKi8KCi8qIFdlIGRvbid0IHVzZSB0aGUgODI1OS4KICovCiNkZWZpbmUgTlJfODI1OV9JTlRTCTAKCi8qIE1hY2hpbmUgdHlwZQogKi8KI2RlZmluZSBfTUFDSF84eHggKF9NQUNIX2FkcykKCiNpZiAwCiNkZWZpbmUgQ09ORklHX0RJU0tfU1BJTlVQX1RJTUUgMTAwMDAwMAojZW5kaWYKI3VuZGVmIENPTkZJR19ESVNLX1NQSU5VUF9USU1FCS8qIHVzaW60IENvbXBhY3QgRmxhc2ggKi8KCgovKiBQQ01DSUEgY29uZmlndXJhdGlvbgogKi8KI2RlZmluZSBQQ01DSUFfTUFYX1NMT1RTICAgIDIKI2lmZGVmIENPTkZJR19NUEM4NjAKI2RlZmluZSBQQ01DSUFfU0xPVF9BIDEKI2VuZGlmCgojZW5kaWYJLyogX0NPTkZJR19BRFM4NjBfSCAqLwo=