LyogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8KLyogCiAqIG5ldC1zbm1wIGNvbmZpZ3VyYXRpb24gaGVhZGVyIGZpbGUKICoKICogTk9URTogRE8gTk9UIEVESVQgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiBhcyB5b3VyIGNoYW5nZXMKICogICAgICAgd2lsbCBiZSBvdmVyd3JpdHRlbi4gVGhpcyBjb250ZW50IGlzIGluIGFjY29uZmlnLmggYW5kIG1lcmdlZAogKiAgICAgICBpbnRvIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gYnkgYXV0b2hlYWRlci4KICovCi8qIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodChzKS4gIFNlZQogKiB0aGUgTmV0LVNOTVAncyBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cwogKiB0aGF0IG1heSBhcHBseToKICovCi8qCiAqIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgY29weXJpZ2h0ZWQgYnk6CiAqIENvcHlyaWdodCCpIDIwMDMgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiBVc2UgaXMgc3ViamVjdCB0byBsaWNlbnNlIHRlcm1zIHNwZWNpZmllZCBpbiB0aGUgQ09QWUlORyBmaWxlCiAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAqLwoKI2lmbmRlZiBORVRfU05NUF9DT05GSUdfSAojZGVmaW5lIE5FVF9TTk1QX0NPTkZJR19ICgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9BVVRPQ09ORl9ERUZJTklUSU9OUyAqKioqKioqKiogKi8KLyoKICogcHV0IGFsbCBhdXRvY29uZi1zcGVjaWZpYyBkZWZpbml0aW9ucyBiZWxvdyBoZXJlCiAqCiAqLwojaWZuZGVmIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMKCi8qIGRlZmluaXRpb25zIGFkZGVkIGJ5IGNvbmZpZ3VyZSBvbi10aGUtZmx5ICovCgojZGVmaW5lIGNvbmZpZ19iZWxvbmdzX2luKHgpCgojZGVmaW5lIGNvbmZpZ19leGNsdWRlKHgpCgojZGVmaW5lIGNvbmZpZ19hcmNoX3JlcXVpcmUoeCx5KQoKI2RlZmluZSBjb25maWdfdmVyc2lvbl9yZXF1aXJlKHgpCgojZGVmaW5lIGNvbmZpZ19yZXF1aXJlKHgpCgojZGVmaW5lIGNvbmZpZ19hZGRfbWliKHgpCgojZGVmaW5lIGNvbmZpZ19wYXJzZV9kb3RfY29uZih3LHgseSx6KQoKI2RlZmluZSBjb25maWdfZXJyb3IoeCkKCiNkZWZpbmUgY29uZmlnX3dhcm5pbmcoeCkKCi8qIERlZmluZSBpZiBidWlsZGluZyB1bml2ZXJzYWwgKGludGVybmFsIGhlbHBlciBtYWNybykgKi8KI3VuZGVmIEFDX0FQUExFX1VOSVZFUlNBTF9CVUlMRAoKLyogRGVmaW5lIHRvIG9uZSBvZiBgX2dldGI2NycsIGBHRVRCNjcnLCBgZ2V0YjY3JyBmb3IgQ3JheS0yIGFuZCBDcmF5LVlNUAogICBzeXN0ZW1zLiBUaGlzIGZ1bmN0aW9uIGlzIHJlcXVpcmVkIGZvciBgYWxsb2NhLmMnIHN1cHBvcnQgb24gdGhvc2Ugc3lzdGVtcy4KICAgKi8KI3VuZGVmIENSQVlfU1RBQ0tTRUdfRU5ECgovKiBEZWZpbmUgdG8gMSBpZiB1c2luZyBgYWxsb2NhLmMnLiAqLwojdW5kZWYgQ19BTExPQ0EKCi8qIGxvY2F0aW9uIG9mIHN3YXAgZGV2aWNlICovCiN1bmRlZiBETUVNX0xPQwoKLyogRGVmaW5lIGlmIHlvdSB3YW50IGxvY2FsIEROU1NFQyB2YWxpZGF0aW9uIHN1cHBvcnQgKi8KI3VuZGVmIEROU1NFQ19MT0NBTF9WQUxJREFUSU9OCgovKiBFbnZpcm9ubWVudCBzZXBhcmF0b3IgY2hhcmFjdGVyIHN1cnJvdW5kZWQgYnkgZG91YmxlIHF1b3Rlcy4gKi8KI3VuZGVmIEVOVl9TRVBBUkFUT1IKCi8qIEVudmlyb25tZW50IHNlcGFyYXRvciBjaGFyYWN0ZXIgc3Vycm91bmRlZCBieSBzaW5nbGUgcXVvdGVzLiAqLwojdW5kZWYgRU5WX1NFUEFSQVRPUl9DSEFSCgovKiBsb2NhdGlvbiBvZiBtb3VudCB0YWJsZSBsaXN0ICovCiN1bmRlZiBFVENfTU5UVEFCCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYEFFU19jZmIxMjhfZW5jcnlwdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0FFU19DRkIxMjhfRU5DUllQVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgYGFsbG9jYScsIGFzIGEgZnVuY3Rpb24gb3IgbWFjcm8uICovCiN1bmRlZiBIQVZFX0FMTE9DQQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgPGFsbG9jYS5oPiBhbmQgaXQgc2hvdWxkIGJlIHVzZWQgKG5vdCBvbiBVbHRyaXgpLgogICAqLwojdW5kZWYgSEFWRV9BTExPQ0FfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhcnBhL2luZXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0FSUEFfSU5FVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9wYWdlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9BU01fUEFHRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfQVNNX1RZUEVTX0gKCi8qIERlZmluZSBpZiB1c2luZyBNWV9JTklUKCkgY2F1c2VzIGEgbGlua2VyIGVycm9yICovCiN1bmRlZiBIQVZFX0JST0tFTl9MSUJNWVNRTENMSUVOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBjZ2V0bmV4dCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0NHRVRORVhUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNob3duJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQ0hPV04KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2xvY2tfZ2V0dGltZScgbGlicmFyeSAqLwojdW5kZWYgSEFWRV9DTE9DS19HRVRUSU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNsb3NlZGlyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQ0xPU0VESVIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Y29tX2Vyci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfQ09NX0VSUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgQ291bnRlcjY0Jy4gKi8KI3VuZGVmIEhBVkVfQ09VTlRFUjY0CgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYHNlbnNvcnNfZ2V0X2FsbF9zdWJmZWF0dXJlcycsCiAgIGFuZCB0byAwIGlmIHlvdSBkb24ndC4gKi8KI3VuZGVmIEhBVkVfREVDTF9TRU5TT1JTX0dFVF9BTExfU1VCRkVBVFVSRVMKCi8qIGRlZmluZSB0byAxIGlmIHlvdSBoYXZlIElSRV9DQUNIRSBkZWZpbmVkIGluIDxpbmV0L2lwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ERUZJTkVEX0lSRV9DQUNIRQoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIGRldnN0YXRfZ2V0ZGV2cygpICovCiN1bmRlZiBIQVZFX0RFVlNUQVRfR0VUREVWUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgogICAqLwojdW5kZWYgSEFWRV9ESVJFTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkbGZjbi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfRExGQ05fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBkbG9wZW4nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9ETE9QRU4KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfRE1BTExPQ19ICgovKiBTZXQgaWYgdGhlIGRwa2ctcXVlcnkgY29tbWFuZCBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIEhBVkVfRFBLR19RVUVSWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxlcnIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0VSUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGV0L2NvbV9lcnIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0VUX0NPTV9FUlJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBldmFsX3B2JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRVZBTF9QVgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBFVlBfTURfQ1RYX2NyZWF0ZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VWUF9NRF9DVFhfQ1JFQVRFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYEVWUF9NRF9DVFhfZGVzdHJveScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VWUF9NRF9DVFhfREVTVFJPWQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIEVWUF9zaGEyMjQvMjU2IGluIG9wZW5zc2wgKi8KI3VuZGVmIEhBVkVfRVZQX1NIQTIyNAoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIEVWUF9zaGEzODQvMjU2IGluIG9wZW5zc2wgKi8KI3VuZGVmIEhBVkVfRVZQX1NIQTM4NAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBleGVjdicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VYRUNWCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZjbnRsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9GQ05UTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZnZXRjX3VubG9ja2VkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRkdFVENfVU5MT0NLRUQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZmxvY2tmaWxlJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRkxPQ0tGSUxFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZvcmsnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9GT1JLCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZzdGFiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9GU1RBQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZ1bmxvY2tmaWxlJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRlVOTE9DS0ZJTEUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2FpX3N0cmVycm9yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0FJX1NUUkVSUk9SCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGFkZHJpbmZvJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUQUREUklORk8KCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSBnZXRkZXZzKCkgKi8KI3VuZGVmIEhBVkVfR0VUREVWUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRkdGFibGVzaXplJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VURFRBQkxFU0laRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRmc3N0YXQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRGU1NUQVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0Z3JuYW0nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRHUk5BTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnlhZGRyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSE9TVEJZQUREUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnluYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSE9TVEJZTkFNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnluYW1lMicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVEhPU1RCWU5BTUUyCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGhvc3RuYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSE9TVE5BTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0aXBub2RlYnluYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSVBOT0RFQllOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGxvYWRhdmcnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRMT0FEQVZHCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldG1udGVudCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVE1OVEVOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRvcHQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRPUFQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Z2V0b3B0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9HRVRPUFRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRwYWdlc2l6ZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBBR0VTSVpFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHBpZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBJRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRwd25hbScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBXTkFNCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHRpbWVvZmRheScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFRJTUVPRkRBWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXR2ZnNzdGF0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUVkZTU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxncnAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0dSUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGhhc21udG9wdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0hBU01OVE9QVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9mcmVlbmFtZWluZGV4JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfSUZfRlJFRU5BTUVJTkRFWAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9pbmRleHRvbmFtZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX0lOREVYVE9OQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX25hbWVpbmRleCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX05BTUVJTkRFWAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9uYW1ldG9pbmRleCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX05BTUVUT0lOREVYCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGluZXQvY29tbW9uLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JTkVUX0NPTU1PTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGluZXQvaXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lORVRfSVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbmV0L21pYjIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lORVRfTUlCMl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGluZXRfbnRvcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lORVRfTlRPUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpbmV0X3B0b24nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9JTkVUX1BUT04KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaW5pdGdyb3VwcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lOSVRHUk9VUFMKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBpbnRtYXhfdCcuICovCiN1bmRlZiBIQVZFX0lOVE1BWF9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgaW50cHRyX3QnLiAqLwojdW5kZWYgSEFWRV9JTlRQVFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfSU5UVFlQRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGluX2FkZHJfdCcuICovCiN1bmRlZiBIQVZFX0lOX0FERFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb2N0bHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lPQ1RMU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlwaGxwYXBpLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JUEhMUEFQSV9ICgovKiBTZXQgaWYgSVBfUEtUSU5GTyBpcyB1c2FibGUgKi8KI3VuZGVmIEhBVkVfSVBfUEtUSU5GTwoKLyogU2V0IGlmIElQX1JFQ1ZEU1RBRERSIGlzIHVzYWJsZSAqLwojdW5kZWYgSEFWRV9JUF9SRUNWRFNUQUREUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBraW5mb19nZXRfY3B1cycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tJTkZPX0dFVF9DUFVTCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgL2Rldi9rbWVtICovCiN1bmRlZiBIQVZFX0tNRU0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga25saXN0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS05MSVNUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGtyYjVfYXV0aF9jb25fZ2V0c2VuZHN1YmtleScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tSQjVfQVVUSF9DT05fR0VUU0VORFNVQktFWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxrc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfS1NUQVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrdm1fZ2V0cHJvYzInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LVk1fR0VUUFJPQzIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3ZtX2dldHByb2NzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS1ZNX0dFVFBST0NTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGt2bV9nZXRzd2FwaW5mbycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tWTV9HRVRTV0FQSU5GTwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxrdm0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0tWTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGt2bV9vcGVuZmlsZXMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LVk1fT1BFTkZJTEVTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgT3BlblNTTCBsaWJyYXJ5ICgtbGNyeXB0byBvciAtbGVheTMyKS4gKi8KI3VuZGVmIEhBVkVfTElCQ1JZUFRPCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGVsZicgbGlicmFyeSAoLWxlbGYpLiAqLwojdW5kZWYgSEFWRV9MSUJFTEYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3N0YXQnIGxpYnJhcnkgKC1sa3N0YXQpLiAqLwojdW5kZWYgSEFWRV9MSUJLU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtbGQnIGxpYnJhcnkgKC1sbWxkKS4gKi8KI3VuZGVmIEhBVkVfTElCTUxECgovKiBEZWZpbmUgdG8gMSBpZiA8bmV0bGluay9uZXRsaW5rLmg+IHByb3ZpZGVzIHRoZSBsaWJubDMgQVBJICovCiN1bmRlZiBIQVZFX0xJQk5MMwoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIGxpYm5tICovCiN1bmRlZiBIQVZFX0xJQk5NCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG5zbCcgbGlicmFyeSAoLWxuc2wpLiAqLwojdW5kZWYgSEFWRV9MSUJOU0wKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGlicGVyZnN0YXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJQlBFUkZTVEFUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcGtjczExJyBsaWJyYXJ5ICgtbHBrY3MxMSkuICovCiN1bmRlZiBIQVZFX0xJQlBLQ1MxMQoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIEJTRCBwa2ctbmcgKi8KI3VuZGVmIEhBVkVfTElCUEtHCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHB0aHJlYWQnIGxpYnJhcnkgKC1scHRocmVhZCkuICovCiN1bmRlZiBIQVZFX0xJQlBUSFJFQUQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcnBtJyBsaWJyYXJ5ICgtbHJwbSkuICovCiN1bmRlZiBIQVZFX0xJQlJQTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBSU0FnbHVlJyBsaWJyYXJ5ICgtbFJTQWdsdWUpLiAqLwojdW5kZWYgSEFWRV9MSUJSU0FHTFVFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJzYXJlZicgbGlicmFyeSAoLWxyc2FyZWYpLiAqLwojdW5kZWYgSEFWRV9MSUJSU0FSRUYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3JlcycgbGlicmFyeSAoLWxzcmVzKS4gKi8KI3VuZGVmIEhBVkVfTElCU1JFUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzc2gyJyBsaWJyYXJ5ICgtbHNzaDIpLiAqLwojdW5kZWYgSEFWRV9MSUJTU0gyCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNzbCcgbGlicmFyeSAoLWxzc2wpLiAqLwojdW5kZWYgSEFWRV9MSUJTU0wKCi8qIERlZmluZSB0byAxIGlmIHlvdXIgYHNzbCcgbGlicmFyeSBzdXBwb3J0cyBEVExTICgtbHNzbCkuICovCiN1bmRlZiBIQVZFX0xJQlNTTF9EVExTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbWl0cy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElNSVRTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvZXRodG9vbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElOVVhfRVRIVE9PTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2hkcmVnLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU5VWF9IRFJFR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L25ldGxpbmsuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJTlVYX05FVExJTktfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9ydG5ldGxpbmsuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJTlVYX1JUTkVUTElOS19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3Rhc2tzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU5VWF9UQVNLU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxvY2FsZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTE9DQUxFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbG9jYWx0aW1lX3InIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9MT0NBTFRJTUVfUgoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGxvbmcgbG9uZyBpbnQnLiAqLwojdW5kZWYgSEFWRV9MT05HX0xPTkdfSU5UCgovKiBTZXQgaWYgdGhlIGxwc3RhdCBjb21tYW5kIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgSEFWRV9MUFNUQVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbHJhbmQ0OCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0xSQU5ENDgKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbHNlZWs2NCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0xTRUVLNjQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFjaGluZS9wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTUFDSElORV9QQVJBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hY2hpbmUvcHRlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NQUNISU5FX1BURV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hY2hpbmUvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01BQ0hJTkVfVFlQRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYWxsb2MuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01BTExPQ19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTUVNT1JZX0gKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBtaWIyX2lwSWZTdGF0c0VudHJ5X3QnLiAqLwojdW5kZWYgSEFWRV9NSUIyX0lQSUZTVEFUU0VOVFJZX1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWtzdGVtcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX01LU1RFTVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWt0aW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTUtUSU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1udGVudC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTU5URU5UX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bXRhYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTVRBQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5idXRpbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkJVVElMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmRpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuICovCiN1bmRlZiBIQVZFX05ESVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRkYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUREJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni9pbjZfcGNiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9JTjZfUENCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvaW42X3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfSU42X1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L2lwNl92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X0lQNl9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni9uZDYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X05ENl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L3RjcDZfZnNtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9UQ1A2X0ZTTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L3RjcDYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X1RDUDZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni90Y3A2X3RpbWVyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9UQ1A2X1RJTUVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvdGNwNl92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X1RDUDZfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pY21wNi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JQ01QNl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaWNtcF92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSUNNUF9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lmX2V0aGVyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lGX0VUSEVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pbi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaW5fcGNiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lOX1BDQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaW5fc3lzdG0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSU5fU1lTVE1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2luX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JTl9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lwNi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JUDZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pcF9pY21wLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lQX0lDTVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lwX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JUF9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcGlwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1RDUElQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3BfZnNtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1RDUF9GU01fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcF90aW1lci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BfVElNRVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcF92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVENQX1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdWRwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1VEUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdWRwX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9VRFBfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aXB4L2lweC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSVBYX0lQWF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGxpbmsvbmV0bGluay5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUTElOS19ORVRMSU5LX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX2FycC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX0FSUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZl9kbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX0RMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfSUZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvaWZfbWliLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfSUZfTUlCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfSUZfVFlQRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvaWZfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfSUZfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L3JvdXRlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfUk9VVEVfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYG5mZHNfdCcuICovCiN1bmRlZiBIQVZFX05GRFNfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBubGlzdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX05MSVNUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG5saXN0NjQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9OTElTVDY0CgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5saXN0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9OTElTVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgb2ZmNjRfdCcuICovCiN1bmRlZiBIQVZFX09GRjY0X1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgb3BlbmRpcicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX09QRU5ESVIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8b3BlbnNzbC9hZXMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09QRU5TU0xfQUVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8b3BlbnNzbC9kZXMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09QRU5TU0xfREVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8b3BlbnNzbC9kaC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1BFTlNTTF9ESF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvZXZwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PUEVOU1NMX0VWUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvaG1hYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1BFTlNTTF9ITUFDX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8b3NyZWxkYXRlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PU1JFTERBVEVfSAoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIHBjaV9sb29rdXBfbmFtZSgpICovCiN1bmRlZiBIQVZFX1BDSV9MT09LVVBfTkFNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwY2kvcGNpLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QQ0lfUENJX0gKCi8qIG9uIGFpeCwgaWYgeW91IGhhdmUgcGVyZnN0YXQgKi8KI3VuZGVmIEhBVkVfUEVSRlNUQVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIGB0aGUgcGVybF9ldmFsX3B2JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUEVSTF9FVkFMX1BWX0xDCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYFBlcmxfZXZhbF9wdicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1BFUkxfRVZBTF9QVl9VQwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwaWNsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QSUNMX0gKCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSBwa2dpbmZvICovCiN1bmRlZiBIQVZFX1BLR0lORk8KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cGtnaW5mby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUEtHSU5GT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBrZ2xvY3MuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BLR0xPQ1NfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwa2cuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BLR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHBvbGwnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9QT0xMCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHByZWFkNjQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9QUkVBRDY0CgovKiBTZXQgaWYgL2V0Yy9wcmludGNhcCBleGlzdHMgKi8KI3VuZGVmIEhBVkVfUFJJTlRDQVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cHRocmVhZC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUFRIUkVBRF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHB3ZC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUFdEX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmFuZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1JBTkQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmFuZG9tJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUkFORE9NCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJlYWRkaXInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9SRUFERElSCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJlZ2NvbXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9SRUdDT01QCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJlZ2V4Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9SRUdFWF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJwbUdldFBhdGgnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9SUE1HRVRQQVRICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJwbS9oZWFkZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1JQTV9IRUFERVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxycG0vcnBtZmlsZXV0aWwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1JQTV9SUE1GSUxFVVRJTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJwbS9ycG1saWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1JQTV9SUE1MSUJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxycG0vcnBtdHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1JQTV9SUE1UU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNlYXJjaC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU0VBUkNIX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2VjdXJpdHkvY3J5cHRva2kuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NFQ1VSSVRZX0NSWVBUT0tJX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2VsZWN0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VMRUNUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNlbnNvcnMvc2Vuc29ycy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU0VOU09SU19TRU5TT1JTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0ZW52JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VURU5WCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGdpZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVEdJRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRncm91cHMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRHUk9VUFMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0aXRpbWVyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUSVRJTUVSCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGxvY2FsZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVExPQ0FMRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRtbnRlbnQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRNTlRFTlQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0c2lkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUU0lECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldHVpZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVFVJRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZ3R0eS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU0dUVFlfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdhY3Rpb24nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdBQ1RJT04KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnYWxybScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR0FMUk0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnYmxvY2snIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdCTE9DSwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdob2xkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0lHSE9MRAoKLyogRGVmaW5lIGlmIFNJR0hVUCBpcyBkZWZpbmVkIGluIDxzaWduYWwuaD4uICovCiN1bmRlZiBIQVZFX1NJR0hVUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWduYWwnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdOQUwKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lncHJvY21hc2snIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdQUk9DTUFTSwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdzZXQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdTRVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc25wcmludGYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TTlBSSU5URgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzb2NrZXQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TT0NLRVQKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzb2NrbGVuX3QnLiAqLwojdW5kZWYgSEFWRV9TT0NLTEVOX1QKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzc2l6ZV90Jy4gKi8KI3VuZGVmIEhBVkVfU1NJWkVfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdGF0ZnMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVEFURlMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RhdHZmcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUQVRWRlMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkaW50Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVERJTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRsaWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NURExJQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0aW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RJTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RyY2FzZXN0cicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUkNBU0VTVFIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RyZHVwJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSRFVQCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmVycm9yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSRVJST1IKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1RSSU5HU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1RSSU5HX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RybGNhdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUkxDQVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RybGNweScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUkxDUFkKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RybmNhc2VjbXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJOQ0FTRUNNUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJ0b2tfcicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUlRPS19SCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvbCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUlRPTAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJ0b3VsJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9VTAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJ0b3VsbCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUlRPVUxMCgovKiBEZWZpbmUgdG8gMSBpZiBgYXRfbmV4dCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBhcnBoZCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9BUlBIRF9BVF9ORVhUCgovKiBEZWZpbmUgdG8gMSBpZiBgd2Vha19rZXknIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgZGVzX2tzX3N0cnVjdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9ERVNfS1NfU1RSVUNUX1dFQUtfS0VZCgovKiBEZWZpbmUgdG8gMSBpZiBgZF90eXBlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGRpcmVudCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9ESVJFTlRfRF9UWVBFCgovKiBEZWZpbmUgdG8gMSBpZiBgc3BlZWRfaGknIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgZXRodG9vbF9jbWQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfRVRIVE9PTF9DTURfU1BFRURfSEkKCi8qIERlZmluZSB0byAxIGlmIGBpZmFfbmV4dCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZmFkZHInLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZBRERSX0lGQV9ORVhUCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfYWRkcmhlYWQudHFoX2ZpcnN0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0FERFJIRUFEX1RRSF9GSVJTVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2FkZHJsaXN0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0FERFJMSVNUCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfYmF1ZHJhdGUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfQkFVRFJBVEUKCi8qIERlZmluZSB0byAxIGlmIGBpZl9iYXVkcmF0ZS5pZnNfdmFsdWUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfQkFVRFJBVEVfSUZTX1ZBTFVFCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfaWJ5dGVzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0lCWVRFUwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2ltY2FzdHMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfSU1DQVNUUwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2lxZHJvcHMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfSVFEUk9QUwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2xhc3RjaGFuZ2UudHZfbnNlYycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9MQVNUQ0hBTkdFX1RWX05TRUMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9sYXN0Y2hhbmdlLnR2X3NlYycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9MQVNUQ0hBTkdFX1RWX1NFQwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX210dScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9NVFUKCi8qIERlZmluZSB0byAxIGlmIGBpZl9ub3Byb3RvJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX05PUFJPVE8KCi8qIERlZmluZSB0byAxIGlmIGBpZl9vYnl0ZXMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfT0JZVEVTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfb21jYXN0cycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9PTUNBU1RTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfc3BlZWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfU1BFRUQKCi8qIERlZmluZSB0byAxIGlmIGBpZl90eXBlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX1RZUEUKCi8qIERlZmluZSB0byAxIGlmIGBpZl94bmFtZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9YTkFNRQoKLyogRGVmaW5lIHRvIDEgaWYgYGlwNnNfZXh0aGRydG9vbG9uZyAnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXA2c3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUDZTVEFUX0lQNlNfRVhUSERSVE9PTE9OR18KCi8qIERlZmluZSB0byAxIGlmIGBpcHNfY2FudGZvcndhcmQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfQ0FOVEZPUldBUkQKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfY2FudGZyYWcnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfQ0FOVEZSQUcKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfZGVsaXZlcmVkJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0RFTElWRVJFRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19mcmFnZHJvcHBlZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19GUkFHRFJPUFBFRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19mcmFnbWVudGVkJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0ZSQUdNRU5URUQKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfZnJhZ3RpbWVvdXQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfRlJBR1RJTUVPVVQKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfbG9jYWxvdXQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfTE9DQUxPVVQKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfbm9wcm90bycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19OT1BST1RPCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX25vcm91dGUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfTk9ST1VURQoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19vZHJvcHBlZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19PRFJPUFBFRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19vZnJhZ21lbnRzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX09GUkFHTUVOVFMKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfcmVhc3NlbWJsZWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfUkVBU1NFTUJMRUQKCi8qIERlZmluZSB0byAxIGlmIGBtX2NsZnJlZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBtYnN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfTUJTVEFUX01fQ0xGUkVFCgovKiBEZWZpbmUgdG8gMSBpZiBgbV9jbHVzdGVycycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBtYnN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfTUJTVEFUX01fQ0xVU1RFUlMKCi8qIERlZmluZSB0byAxIGlmIGBtX21idWZzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IG1ic3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9NQlNUQVRfTV9NQlVGUwoKLyogRGVmaW5lIHRvIDEgaWYgYG5fdmFsdWUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgbmxpc3Q2NCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9OTElTVDY0X05fVkFMVUUKCi8qIERlZmluZSB0byAxIGlmIGBuX3ZhbHVlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IG5saXN0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX05MSVNUX05fVkFMVUUKCi8qIERlZmluZSB0byAxIGlmIGBydF9kc3QnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX0RTVAoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X2hhc2gnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX0hBU0gKCi8qIERlZmluZSB0byAxIGlmIGBydF9uZXh0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9ORVhUCgovKiBEZWZpbmUgdG8gMSBpZiBgcnRfcmVmY250JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9SRUZDTlQKCi8qIERlZmluZSB0byAxIGlmIGBydF91bml0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9VTklUCgovKiBEZWZpbmUgdG8gMSBpZiBgcnRfdXNlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9VU0UKCi8qIERlZmluZSB0byAxIGlmIGBzYV9zaWdhY3Rpb24nIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc2lnYWN0aW9uJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NJR0FDVElPTl9TQV9TSUdBQ1RJT04KCi8qIERlZmluZSB0byAxIGlmIGBzaW42X3Njb3BlX2lkJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyX2luNicuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRAoKLyogRGVmaW5lIHRvIDEgaWYgYHNhX2xlbicgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcicuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TQV9MRU4KCi8qIERlZmluZSB0byAxIGlmIGBzYV91bmlvbi5zYV9nZW5lcmljLnNhX2ZhbWlseTInIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QKICAgc29ja2FkZHInLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU0FfVU5JT05fU0FfR0VORVJJQ19TQV9GQU1JTFkyCgovKiBEZWZpbmUgdG8gMSBpZiBgc3NfZmFtaWx5JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9TU19GQU1JTFkKCi8qIERlZmluZSB0byAxIGlmIGBfX3NzX2ZhbWlseScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX1NUT1JBR0VfX19TU19GQU1JTFkKCi8qIERlZmluZSB0byAxIGlmIGBmX2ZhdmFpbCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRkFWQUlMCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9mZnJlZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRkZSRUUKCi8qIERlZmluZSB0byAxIGlmIGBmX2ZpbGVzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GSUxFUwoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZmxhZ3MnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRGU19GX0ZMQUdTCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9mcnNpemUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRGU19GX0ZSU0laRQoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZmlsZXMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdHZmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUVkZTX0ZfRklMRVMKCi8qIERlZmluZSB0byAxIGlmIGBmX2Zyc2l6ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0dmZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRWRlNfRl9GUlNJWkUKCi8qIERlZmluZSB0byAxIGlmIGBtbnRfZGlyJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHN0YXR2ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVFZGU19NTlRfRElSCgovKiBEZWZpbmUgdG8gMSBpZiBgc3dfbmJsa3NlbmFibGVkJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHN3ZGV2dCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TV0RFVlRfU1dfTkJMS1NFTkFCTEVECgovKiBEZWZpbmUgdG8gMSBpZiBgdGNwX3Jjdm1lbWRyb3AnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdGNwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9UQ1BTVEFUX1RDUF9SQ1ZNRU1EUk9QCgovKiBEZWZpbmUgdG8gMSBpZiBgdHpfZHN0dGltZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB0aW1lem9uZScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9USU1FWk9ORV9UWl9EU1RUSU1FCgovKiBEZWZpbmUgdG8gMSBpZiBgdG1fZ210b2ZmJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHRtJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1RNX1RNX0dNVE9GRgoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfZGlzY2FyZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19ESVNDQVJECgovKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19mdWxsc29jaycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19GVUxMU09DSwoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfaXBhY2tldHMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdWRwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9VRFBTVEFUX1VEUFNfSVBBQ0tFVFMKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX25vcG9ydCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19OT1BPUlQKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX25vcG9ydGJjYXN0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX05PUE9SVEJDQVNUCgovKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19vcGFja2V0cycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19PUEFDS0VUUwoKLyogRGVmaW5lIHRvIDEgaWYgYHBnc3dhcGluJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHV2bWV4cCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9VVk1FWFBfUEdTV0FQSU4KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3lzY29uZicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NZU0NPTkYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzbG9nLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNMT0dfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzeXN0ZW0nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TWVNURU0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2NkZWZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfQ0RFRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvY29uZi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0NPTkZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KICAgKi8KI3VuZGVmIEhBVkVfU1lTX0RJUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kaXNraW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19ESVNLSU9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlza2xhYmVsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRElTS0xBQkVMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2RraW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19ES0lPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rrc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0RLU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kbWFwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRE1BUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maWxlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRklMRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maWxpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0ZJTElPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpeHBvaW50Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRklYUE9JTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19GU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9oYXNoaW5nLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfSEFTSElOR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9pb2N0bC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0lPQ1RMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2xvYWRhdmcuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19MT0FEQVZHX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL21idWYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19NQlVGX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL21udGVudC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX01OVEVOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9tbnR0YWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19NTlRUQUJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbW91bnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19NT1VOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9uZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KICAgKi8KI3VuZGVmIEhBVkVfU1lTX05ESVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QQVJBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wb2xsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUE9MTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wb29sLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUE9PTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wcm9jLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUFJPQ19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wcm90b3N3Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUFJPVE9TV19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BTVEFUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3F1ZXVlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUVVFVUVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc2VsZWN0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU0VMRUNUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NlbWEuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TRU1BX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NvY2tldHZhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NPQ0tFVFZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zb2NrZXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TT0NLRVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc29ja2lvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU09DS0lPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXRmcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NUQVRGU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0dmZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1RBVFZGU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdHJlYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TVFJFQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3dhcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NXQVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzY3RsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTQ1RMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c2dldC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU0dFVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXNtcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU01QX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c3RlbWNmZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU1RFTUNGR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXN0ZW1pbmZvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTVEVNSU5GT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90Y3BpcHN0YXRzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVENQSVBTVEFUU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RJTUVCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpbWVvdXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19USU1FT1VUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpbWVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVElNRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RJTUVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19UWVBFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91aW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19VSU9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdW4uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19VTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91c2VyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVVNFUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91dHNuYW1lLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVVRTTkFNRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92ZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm1tYWMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTU1BQ19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bW1ldGVyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk1NRVRFUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bXBhcmFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk1QQVJBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bXN5c3RtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk1TWVNUTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Zub2RlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk5PREVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgPHN5cy93YWl0Lmg+IHRoYXQgaXMgUE9TSVguMSBjb21wYXRpYmxlLiAqLwojdW5kZWYgSEFWRV9TWVNfV0FJVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHRjZ2V0YXR0cicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1RDR0VUQVRUUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB0aW1lcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1RJTUVTCgovKiBEZWZpbmUgaWYgYSB0aW1lem9uZSB2YXJpYWJsZSBpcyBkZWNsYXJlZCBpbiA8c3lzL3RpbWUuaD4gKi8KI3VuZGVmIEhBVkVfVElNRVpPTkVfVkFSSUFCTEUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL2Zmcy9mcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX0ZGU19GU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVmcy9mcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX0ZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL3Vmcy9kaW5vZGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VGU19VRlNfRElOT0RFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL3Vmcy9pbm9kZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX1VGU19JTk9ERV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVmcy91ZnMvcXVvdGEuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VGU19VRlNfUVVPVEFfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHVpbnRtYXhfdCcuICovCiN1bmRlZiBIQVZFX1VJTlRNQVhfVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHVpbnRwdHJfdCcuICovCiN1bmRlZiBIQVZFX1VJTlRQVFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB1bmFtZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1VOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVU5JU1REX0gKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGB1bnNpZ25lZCBsb25nIGxvbmcgaW50Jy4gKi8KI3VuZGVmIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB1c2xlZXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9VU0xFRVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXRtcHguaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VUTVBYX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXRzbmFtZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVVRTTkFNRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHV2bS91dm1fZXh0ZXJuLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VVk1fVVZNX0VYVEVSTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHV2bS91dm1fcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VWTV9VVk1fUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2YWxncmluZC9tZW1jaGVjay5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVkFMR1JJTkRfTUVNQ0hFQ0tfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2YWxncmluZC92YWxncmluZC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVkFMR1JJTkRfVkFMR1JJTkRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2YWxpZGF0b3IvdmFsaWRhdG9yLWNvbmZpZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVkFMSURBVE9SX1ZBTElEQVRPUl9DT05GSUdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS9zd2FwX3BhZ2VyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9TV0FQX1BBR0VSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dm0vdm1fZXh0ZXJuLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9WTV9FWFRFUk5fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS92bS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVk1fVk1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS92bV9wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVk1fVk1fUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB2c25wcmludGYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9WU05QUklOVEYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8d2luZG93cy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfV0lORE9XU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHdpbnNvY2syLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9XSU5TT0NLMl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHdpbnNvY2suaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1dJTlNPQ0tfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx3czJ0Y3BpcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfV1MyVENQSVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx4dGkuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1hUSV9ICgovKiBsb2NhdGlvbiBvZiBVTklYIGtlcm5lbCAqLwojdW5kZWYgS0VSTkVMX0xPQwoKLyogUGF0aCB0byB0aGUgbHBzdGF0IGNvbW1hbmQgKi8KI3VuZGVmIExQU1RBVF9QQVRICgovKiBEZWZpbmUgdG8gdGhlIHN1Yi1kaXJlY3RvcnkgaW4gd2hpY2ggbGlidG9vbCBzdG9yZXMgdW5pbnN0YWxsZWQgbGlicmFyaWVzLgogICAqLwojdW5kZWYgTFRfT0JKRElSCgovKiBkZWZpbmUgaWYgYWdlbnR4IHRyYW5zcG9ydCBpcyB0byB1c2UgZG9tYWluIHNvY2tldHMgb25seSAqLwojdW5kZWYgTkVUU05NUF9BR0VOVFhfRE9NX1NPQ0tfT05MWQoKLyogVW5peCBkb21haW4gc29ja2V0IGZvciBBZ2VudFggbWFzdGVyLXN1YmFnZW50IGNvbW11bmljYXRpb24gKi8KI3VuZGVmIE5FVFNOTVBfQUdFTlRYX1NPQ0tFVAoKLyogRGVmaW5lIGlmIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIGFyZSB1bnN1cHBvcnRlZCAqLwojdW5kZWYgTkVUU05NUF9CUk9LRU5fSU5MSU5FCgovKiAiRGVmaW5lIGlmIGNyeXRvZ3JhcGh5IHN1cHBvcnQgaXMgcG9zc2libGUiICovCiN1bmRlZiBORVRTTk1QX0NBTl9ET19DUllQVE8KCi8qIHN5c2N0bCB3b3JrcyB0byBnZXQgYm9vdHRpbWUsIGV0Yy4uLiAqLwojdW5kZWYgTkVUU05NUF9DQU5fVVNFX1NZU0NUTAoKLyogY29uZmlndXJlIG9wdGlvbnMgc3BlY2lmaWVkICovCiN1bmRlZiBORVRTTk1QX0NPTkZJR1VSRV9PUFRJT05TCgovKiBkZWZhdWx0IGxvY2F0aW9uIHRvIGxvb2sgZm9yIG1pYnMgdG8gbG9hZCB1c2luZyB0aGUgYWJvdmUgdG9rZW5zIGFuZC9vcgogICB0aG9zZSBpbiB0aGUgTUlCUyBlbnZyaW9ubWVudCB2YXJpYWJsZSAqLwojdW5kZWYgTkVUU05NUF9ERUZBVUxUX01JQkRJUlMKCi8qIGRlZmF1bHQgbWliIGZpbGVzIHRvIGxvYWQsIHNwZWNpZmllZCBieSBwYXRoLiAqLwojdW5kZWYgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCgovKiBEZWZpbmUgaWYgbm8gYWdlbnQgaXMgYnVpbHQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9BR0VOVAoKLyogRGVmaW5lIGlmIG5vIGFwcHMgYXJlIGJ1aWx0ICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfQVBQUwoKLyogRGVmaW5lIGlmIERFUyBlbmNyeXB0aW9uIHNob3VsZCBub3QgYmUgc3VwcG9ydGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfREVTCgovKiBEZWZpbmUgaWYgTUQ1IGF1dGhlbnRpY2F0aW9uIHNob3VsZCBub3QgYmUgc3VwcG9ydGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfTUQ1CgovKiBEZWZpbmUgaWYgbWliIGxvYWRpbmcgYW5kIHBhcnNpbmcgY29kZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcKCi8qIERlZmluZSBpZiBTTk1QIFNFVCBzdXBwb3J0IHNob3VsZCBiZSBkaXNhYmxlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCgovKiBEZWZpbmUgaWYgU05NUHYxIGNvZGUgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMQoKLyogRGVmaW5lIGlmIFNOTVB2MmMgY29kZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYyQwoKLyogRGVmaW5lIGlmIHlvdSBhcmUgZW1iZWRkaW5nIHBlcmwgaW4gdGhlIG1haW4gYWdlbnQuICovCiN1bmRlZiBORVRTTk1QX0VNQkVEREVEX1BFUkwKCi8qIGRlZmluZSBpZiB5b3Ugd2FudCB0byBlbmFibGUgSVB2NiBzdXBwb3J0ICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CgovKiBkZWZpbmUgaWYgeW91IHdhbnQgdG8gcmVzdHJpY3QgU01VWCBjb25uZWN0aW9ucyB0byBsb2NhbGhvc3QgYnkgZGVmYXVsdCAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfTE9DQUxfU01VWAoKLyogRGVmaW5lIGlmIHlvdSB3YW50IHRvIGJ1aWxkIE1GRCBtb2R1bGUgcmV3cml0ZXMgKi8KI3VuZGVmIE5FVFNOTVBfRU5BQkxFX01GRF9SRVdSSVRFUwoKLyogZGVmaW5lIGlmIHlvdSB3YW50IHRvIGNvbXBpbGUgc3VwcG9ydCBmb3IgYm90aCBhdXRoZW50aWNhdGlvbiBhbmQgcHJpdmFjeQogICBzdXBwb3J0LiAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKCi8qIHRlc3RpbmcgY29kZSBzZWN0aW9ucy4gKi8KI3VuZGVmIE5FVFNOTVBfRU5BQkxFX1RFU1RJTkdfQ09ERQoKLyogU2hvdWxkIGV2YWx1YXRlIHRvIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGlmIGRlZmluZWQgKi8KI3VuZGVmIE5FVFNOTVBfRlVOQ1RJT04KCi8qIGlmbmV0IG5lZWRzIHRvIGhhdmUgX0tFUk5FTCBkZWZpbmVkICovCiN1bmRlZiBORVRTTk1QX0lGTkVUX05FRURTX0tFUk5FTAoKLyogaWZuZXQgbmVlZHMgdG8gaGF2ZSBfS0VSTkVMX1NUUlVDVFVSRVMgZGVmaW5lZCAqLwojdW5kZWYgTkVUU05NUF9JRk5FVF9ORUVEU19LRVJORUxfU1RSVUNUVVJFUwoKLyogRGVmaW5lIGlmIHlvdSB3YW50IHRvIHJlbW92ZSBhbGwgbm9uLWVzc2VudGlhbCBjb2RlIGZlYXR1cmVzLiAqLwojdW5kZWYgTkVUU05NUF9NSU5JTUFMX0NPREUKCi8qIERlZmluZSBpZiB5b3Ugd2FudCB0byBvbmx5IHN1cHBvcnQgc2VuZGluZyBub3RpZmljYXRpb25zICovCiN1bmRlZiBORVRTTk1QX05PVElGWV9PTkxZCgovKiBEZWZpbmUgdG8gc3VwcHJlc3MgaW5jbHVzaW9uIG9mIGRlcHJlY2F0ZWQgZnVuY3Rpb25zICovCiN1bmRlZiBORVRTTk1QX05PX0RFUFJFQ0FURURfRlVOQ1RJT05TCgovKiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGUgYWdlbnQgdG8gcmVwb3J0IG9uIHZhcmlhYmxlcyBpdCBkb2Vzbid0IGhhdmUgZGF0YSBmb3IKICAgKi8KI3VuZGVmIE5FVFNOTVBfTk9fRFVNTVlfVkFMVUVTCgovKiBJZiB3ZSBkb24ndCB3YW50IHRvIHVzZSBrbWVtLiAqLwojdW5kZWYgTkVUU05NUF9OT19LTUVNX1VTQUdFCgovKiBEZWZpbmUgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIGFsbCBsaXN0ZW5pbmcgc3VwcG9ydCBmcm9tIHRoZSBjb2RlICovCiN1bmRlZiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUCgovKiBJZiB5b3UgZG9uJ3QgaGF2ZSByb290IGFjY2VzcyBkb24ndCBleGl0IHVwb24ga21lbSBlcnJvcnMgKi8KI3VuZGVmIE5FVFNOTVBfTk9fUk9PVF9BQ0NFU1MKCi8qIERlZmluZSBpZiB5b3Ugd2FudCB0byByZW1vdmUgYWxsIFNFVC93cml0ZSBhY2Nlc3MgZnJvbSB0aGUgY29kZSAqLwojdW5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCgovKiB1bWFzayBwZXJtaXNzaW9ucyB0byBzZXQgdXAgcGVyc2lzdGVudCBmaWxlcyB3aXRoICovCiN1bmRlZiBORVRTTk1QX1BFUlNJU1RFTlRfTUFTSwoKLyogU2l6ZSBwcmVmaXggdG8gdXNlIHRvIHByaW50ZiBhIHVpbnQzMl90ICovCiN1bmRlZiBORVRTTk1QX1BSSTMyCgovKiBTaXplIHByZWZpeCB0byB1c2UgdG8gcHJpbnRmIGEgc2l6ZV90IG9yIHNzaXplX3QgKi8KI3VuZGVmIE5FVFNOTVBfUFJJegoKLyogRGVmaW5lIHRvIDEgaWYgeW91IHdhbnQgdG8gYnVpbGQgd2l0aCByZWVudHJhbnQvdGhyZWFkZWQgY29kZSAoaW5jb21wbGV0ZSkuCiAgICovCiN1bmRlZiBORVRTTk1QX1JFRU5UUkFOVAoKLyogZGVmaW5lIGlmIHlvdSBkbyBub3Qgd2FudCBzbm1wdHJhcGQgdG8gcmVnaXN0ZXIgYXMgYW4gQWdlbnRYIHN1YmFnZW50ICovCiN1bmRlZiBORVRTTk1QX1NOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWAoKLyogUGF0dGVybiBvZiB0ZW1wb3JhcnkgZmlsZXMgKi8KI3VuZGVmIE5FVFNOTVBfVEVNUF9GSUxFX1BBVFRFUk4KCi8qICJEZWZpbmUgaWYgaW50ZXJuYWwgY3J5cHRvZ3JhcGh5IGNvZGUgc2hvdWxkIGJlIHVzZWQiICovCiN1bmRlZiBORVRTTk1QX1VTRV9JTlRFUk5BTF9DUllQVE8KCi8qIGRlZmluZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBNRDUgY29kZSAuLi4gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX0lOVEVSTkFMX01ENQoKLyogRGVmaW5lIHRoaXMgaWYgeW91J3JlIHVzaW5nIEhlaW1kYWwgS2VyYmVyb3MgKi8KI3VuZGVmIE5FVFNOTVBfVVNFX0tFUkJFUk9TX0hFSU1EQUwKCi8qIERlZmluZSB0aGlzIGlmIHdlJ3JlIHVzaW5nIHRoZSBuZXcgTUlUIGNyeXB0byBBUEkgKi8KI3VuZGVmIE5FVFNOTVBfVVNFX0tFUkJFUk9TX01JVAoKLyogZGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgdGhlIG15c3FsIGNvZGUgZm9yIHNubXB0cmFwZCAuLi4gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX01ZU1FMCgovKiBEZWZpbmUgaWYgeW91IGFyZSB1c2luZyB0aGUgY29kZVMxMSBsaWJyYXJ5IC4uLiAqLwojdW5kZWYgTkVUU05NUF9VU0VfUEtDUzExCgovKiBEZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSBsbV9zZW5zb3JzIHYzIG9yIGxhdGVyICovCiN1bmRlZiBORVRTTk1QX1VTRV9TRU5TT1JTX1YzCgovKiBTaG91bGQgd2UgY29tcGlsZSB0byB1c2Ugc3BlY2lhbCBvcGFxdWUgdHlwZXM6IGZsb2F0LCBkb3VibGUsIGNvdW50ZXI2NCwKICAgaTY0LCB1aTY0LCB1bmlvbj8gKi8KI3VuZGVmIE5FVFNOTVBfV0lUSF9PUEFRVUVfU1BFQ0lBTF9UWVBFUwoKLyogRGVmaW5lIHRvIHRoZSBhZGRyZXNzIHdoZXJlIGJ1ZyByZXBvcnRzIGZvciB0aGlzIHBhY2thZ2Ugc2hvdWxkIGJlIHNlbnQuICovCiNpZm5kZWYgUEFDS0FHRV9CVUdSRVBPUlQKI3VuZGVmIFBBQ0tBR0VfQlVHUkVQT1JUCiNlbmRpZgoKLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLwojaWZuZGVmIFBBQ0tBR0VfTkFNRQojdW5kZWYgUEFDS0FHRV9OQU1FCiNlbmRpZgoKLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgYW5kIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLwojaWZuZGVmIFBBQ0tBR0VfU1RSSU5HCiN1bmRlZiBQQUNLQUdFX1NUUklORwojZW5kaWYKCi8qIERlZmluZSB0byB0aGUgb25lIHN5bWJvbCBzaG9ydCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KI2lmbmRlZiBQQUNLQUdFX1RBUk5BTUUKI3VuZGVmIFBBQ0tBR0VfVEFSTkFNRQojZW5kaWYKCi8qIERlZmluZSB0byB0aGUgaG9tZSBwYWdlIGZvciB0aGlzIHBhY2thZ2UuICovCiN1bmRlZiBQQUNLQUdFX1VSTAoKLyogRGVmaW5lIHRvIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KI2lmbmRlZiBQQUNLQUdFX1ZFUlNJT04KI3VuZGVmIFBBQ0tBR0VfVkVSU0lPTgojZW5kaWYKCi8qIENvbW1hbmQgdG8gZ2VuZXJhdGUgcHMgb3V0cHV0LCB0aGUgZmluYWwgY29sdW1uIG11c3QgYmUgdGhlIHByb2Nlc3MgbmFtZQogICB3aXRoT1VUIGFyZ3VtZW50cyAqLwojdW5kZWYgUFNDTUQKCi8qIERlZmluZSBhcyB0aGUgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzIChgaW50JyBvciBgdm9pZCcpLiAqLwojdW5kZWYgUkVUU0lHVFlQRQoKLyogZGVmaW5lIHJ0ZW50cnkgdG8gb3J0ZW50cnkgb24gU1lTViBtYWNoaW5lcyAoYWxwaGFzKSAqLwojdW5kZWYgUlRFTlRSWQoKLyogVXNlIEJTRCA0LjQgcm91dGluZyB0YWJsZSBlbnRyaWVzPyAqLwojdW5kZWYgUlRFTlRSWV80XzQKCi8qIFRoZSBzaXplIG9mIGBpbnQnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfSU5UCgovKiBUaGUgc2l6ZSBvZiBgaW50bWF4X3QnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfSU5UTUFYX1QKCi8qIFRoZSBzaXplIG9mIGBsb25nJywgYXMgY29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwojdW5kZWYgU0laRU9GX0xPTkcKCi8qIFRoZSBzaXplIG9mIGBsb25nIGxvbmcnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfTE9OR19MT05HCgovKiBUaGUgc2l6ZSBvZiBgc2hvcnQnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfU0hPUlQKCi8qIFRoZSBzaXplIG9mIGBzb2NrYWRkcl91bi5zdW5fcGF0aCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9TT0NLQUREUl9VTl9TVU5fUEFUSAoKLyogSWYgdXNpbmcgdGhlIEMgaW1wbGVtZW50YXRpb24gb2YgYWxsb2NhLCBkZWZpbmUgaWYgeW91IGtub3cgdGhlCiAgIGRpcmVjdGlvbiBvZiBzdGFjayBncm93dGggZm9yIHlvdXIgc3lzdGVtOyBvdGhlcndpc2UgaXQgd2lsbCBiZQogICBhdXRvbWF0aWNhbGx5IGRlZHVjZWQgYXQgcnVudGltZS4KCVNUQUNLX0RJUkVDVElPTiA+IDAgPT4gZ3Jvd3MgdG93YXJkIGhpZ2hlciBhZGRyZXNzZXMKCVNUQUNLX0RJUkVDVElPTiA8IDAgPT4gZ3Jvd3MgdG93YXJkIGxvd2VyIGFkZHJlc3NlcwoJU1RBQ0tfRElSRUNUSU9OID0gMCA9PiBkaXJlY3Rpb24gb2YgZ3Jvd3RoIHVua25vd24gKi8KI3VuZGVmIFNUQUNLX0RJUkVDVElPTgoKLyogRGVmaW5lIGlmIHN0YXRmcyB0YWtlcyAyIGFyZ3MgYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgaGFzIHR5cGUgc3RydWN0CiAgIGZzX2RhdGEuIFtVbHRyaXhdICovCiN1bmRlZiBTVEFUX1NUQVRGU19GU19EQVRBCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gKi8KI3VuZGVmIFNURENfSEVBREVSUwoKLyogZGVmaW5lIGlmIFNJT0NHSUZBRERSIGV4aXN0cyBpbiBzeXMvaW9jdGwuaCAqLwojdW5kZWYgU1lTX0lPQ1RMX0hfSEFTX1NJT0NHSUZBRERSCgovKiBEZWZpbmUgaWYgdGhlIFRDUCB0aW1lciBjb25zdGFudHMgaW4gPG5ldGluZXQvdGNwX3RpbWVyLmg+IGRlcGVuZCBvbiB0aGUKICAgaW50ZWdlciB2YXJpYWJsZSAnaHonLiBbRnJlZUJTRCA0LnhdICovCiN1bmRlZiBUQ1BUVl9ORUVEU19IWgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGNhbiBzYWZlbHkgaW5jbHVkZSBib3RoIDxzeXMvdGltZS5oPiBhbmQgPHRpbWUuaD4uICovCiN1bmRlZiBUSU1FX1dJVEhfU1lTX1RJTUUKCi8qIFdoZXJlIGlzIHRoZSB1bmFtZSBjb21tYW5kICovCiN1bmRlZiBVTkFNRVBST0cKCi8qIEVuYWJsZSBleHRlbnNpb25zIG9uIEFJWCAzLCBJbnRlcml4LiAgKi8KI2lmbmRlZiBfQUxMX1NPVVJDRQojIHVuZGVmIF9BTExfU09VUkNFCiNlbmRpZgovKiBFbmFibGUgR05VIGV4dGVuc2lvbnMgb24gc3lzdGVtcyB0aGF0IGhhdmUgdGhlbS4gICovCiNpZm5kZWYgX0dOVV9TT1VSQ0UKIyB1bmRlZiBfR05VX1NPVVJDRQojZW5kaWYKLyogRW5hYmxlIHRocmVhZGluZyBleHRlbnNpb25zIG9uIFNvbGFyaXMuICAqLwojaWZuZGVmIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUwojIHVuZGVmIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUwojZW5kaWYKLyogRW5hYmxlIGV4dGVuc2lvbnMgb24gSFAgTm9uU3RvcC4gICovCiNpZm5kZWYgX1RBTkRFTV9TT1VSQ0UKIyB1bmRlZiBfVEFOREVNX1NPVVJDRQojZW5kaWYKLyogRW5hYmxlIGdlbmVyYWwgZXh0ZW5zaW9ucyBvbiBTb2xhcmlzLiAgKi8KI2lmbmRlZiBfX0VYVEVOU0lPTlNfXwojIHVuZGVmIF9fRVhURU5TSU9OU19fCiNlbmRpZgoKCi8qIERlZmluZSBXT1JEU19CSUdFTkRJQU4gdG8gMSBpZiB5b3VyIHByb2Nlc3NvciBzdG9yZXMgd29yZHMgd2l0aCB0aGUgbW9zdAogICBzaWduaWZpY2FudCBieXRlIGZpcnN0IChsaWtlIE1vdG9yb2xhIGFuZCBTUEFSQywgdW5saWtlIEludGVsKS4gKi8KI2lmIGRlZmluZWQgQUNfQVBQTEVfVU5JVkVSU0FMX0JVSUxECiMgaWYgZGVmaW5lZCBfX0JJR19FTkRJQU5fXwojICBkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKIyBlbmRpZgojZWxzZQojIGlmbmRlZiBXT1JEU19CSUdFTkRJQU4KIyAgdW5kZWYgV09SRFNfQklHRU5ESUFOCiMgZW5kaWYKI2VuZGlmCgovKiBEZWZpbmUgdG8gMSBpZiBvbiBNSU5JWC4gKi8KI3VuZGVmIF9NSU5JWAoKLyogRGVmaW5lIHRvIDIgaWYgdGhlIHN5c3RlbSBkb2VzIG5vdCBwcm92aWRlIFBPU0lYLjEgZmVhdHVyZXMgZXhjZXB0IHdpdGgKICAgdGhpcyBkZWZpbmVkLiAqLwojdW5kZWYgX1BPU0lYXzFfU09VUkNFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgbmVlZCB0byBpbiBvcmRlciBmb3IgYHN0YXQnIGFuZCBvdGhlciB0aGluZ3MgdG8gd29yay4gKi8KI3VuZGVmIF9QT1NJWF9TT1VSQ0UKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSBSUE0gNC42IG9yIG5ld2VyIHRvIHR1cm4gb24gbGVnYWN5IEFQSSAqLwojdW5kZWYgX1JQTV80XzRfQ09NUEFUCgovKiBEZWZpbmUgZm9yIFNvbGFyaXMgMi41LjEgc28gdGhlIHVpbnQzMl90IHR5cGVkZWYgZnJvbSA8c3lzL3N5bmNoLmg+LAogICA8cHRocmVhZC5oPiwgb3IgPHNlbWFwaG9yZS5oPiBpcyBub3QgdXNlZC4gSWYgdGhlIHR5cGVkZWYgd2VyZSBhbGxvd2VkLCB0aGUKICAgI2RlZmluZSBiZWxvdyB3b3VsZCBjYXVzZSBhIHN5bnRheCBlcnJvci4gKi8KI3VuZGVmIF9VSU5UMzJfVAoKLyogRGVmaW5lIGZvciBTb2xhcmlzIDIuNS4xIHNvIHRoZSB1aW50NjRfdCB0eXBlZGVmIGZyb20gPHN5cy9zeW5jaC5oPiwKICAgPHB0aHJlYWQuaD4sIG9yIDxzZW1hcGhvcmUuaD4gaXMgbm90IHVzZWQuIElmIHRoZSB0eXBlZGVmIHdlcmUgYWxsb3dlZCwgdGhlCiAgICNkZWZpbmUgYmVsb3cgd291bGQgY2F1c2UgYSBzeW50YXggZXJyb3IuICovCiN1bmRlZiBfVUlOVDY0X1QKCi8qIERlZmluZSBmb3IgU29sYXJpcyAyLjUuMSBzbyB0aGUgdWludDhfdCB0eXBlZGVmIGZyb20gPHN5cy9zeW5jaC5oPiwKICAgPHB0aHJlYWQuaD4sIG9yIDxzZW1hcGhvcmUuaD4gaXMgbm90IHVzZWQuIElmIHRoZSB0eXBlZGVmIHdlcmUgYWxsb3dlZCwgdGhlCiAgICNkZWZpbmUgYmVsb3cgd291bGQgY2F1c2UgYSBzeW50YXggZXJyb3IuICovCiN1bmRlZiBfVUlOVDhfVAoKLyogRGVmaW5lIHRvIGVtcHR5IGlmIGBjb25zdCcgZG9lcyBub3QgY29uZm9ybSB0byBBTlNJIEMuICovCiN1bmRlZiBjb25zdAoKLyogRGVmaW5lIHRvIGBfX2lubGluZV9fJyBvciBgX19pbmxpbmUnIGlmIHRoYXQncyB3aGF0IHRoZSBDIGNvbXBpbGVyCiAgIGNhbGxzIGl0LCBvciB0byBub3RoaW5nIGlmICdpbmxpbmUnIGlzIG5vdCBzdXBwb3J0ZWQgdW5kZXIgYW55IG5hbWUuICAqLwojaWZuZGVmIF9fY3BsdXNwbHVzCiN1bmRlZiBpbmxpbmUKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYSBzaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgMTYgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgaW50MTZfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGEgc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDMyIGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIGludDMyX3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhIHNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSA2NCBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiBpbnQ2NF90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYSBzaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgOCBiaXRzIGlmIHN1Y2gKICAgYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiBpbnQ4X3QKCi8qIERlZmluZSB0byB0aGUgd2lkZXN0IHNpZ25lZCBpbnRlZ2VyIHR5cGUgaWYgPHN0ZGludC5oPiBhbmQgPGludHR5cGVzLmg+IGRvCiAgIG5vdCBkZWZpbmUuICovCiN1bmRlZiBpbnRtYXhfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGEgc2lnbmVkIGludGVnZXIgdHlwZSB3aWRlIGVub3VnaCB0byBob2xkIGEgcG9pbnRlciwKICAgaWYgc3VjaCBhIHR5cGUgZXhpc3RzLCBhbmQgaWYgdGhlIHN5c3RlbSBkb2VzIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiBpbnRwdHJfdAoKLyogRGVmaW5lIHRvIGBsb25nIGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2VzIG5vdCBkZWZpbmUuICovCiN1bmRlZiBvZmZfdAoKLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLwojdW5kZWYgcGlkX3QKCi8qIERlZmluZSB0byBgdW5zaWduZWQgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KI3VuZGVmIHNpemVfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDE2IGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIHVpbnQxNl90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgMzIgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgdWludDMyX3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSA2NCBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiB1aW50NjRfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDggYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgdWludDhfdAoKLyogRGVmaW5lIHRvIHRoZSB3aWRlc3QgdW5zaWduZWQgaW50ZWdlciB0eXBlIGlmIDxzdGRpbnQuaD4gYW5kIDxpbnR0eXBlcy5oPgogICBkbyBub3QgZGVmaW5lLiAqLwojdW5kZWYgdWludG1heF90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIHdpZGUgZW5vdWdoIHRvIGhvbGQgYQogICBwb2ludGVyLCBpZiBzdWNoIGEgdHlwZSBleGlzdHMsIGFuZCBpZiB0aGUgc3lzdGVtIGRvZXMgbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIHVpbnRwdHJfdAoKLyogZW5kIG9mIGRlZmluaXRpb25zIGFkZGVkIGJ5IGNvbmZpZ3VyZSBvbi10aGUtZmx5ICovCgovKiBJZiB5b3UgaGF2ZSBvcGVuc3NsIDAuOS43IG9yIGFib3ZlLCB5b3UgbGlrZWx5IGhhdmUgQUVTIHN1cHBvcnQuICovCiN1bmRlZiBORVRTTk1QX1VTRV9PUEVOU1NMCiNpZiAoZGVmaW5lZChORVRTTk1QX1VTRV9PUEVOU1NMKSAmJiBkZWZpbmVkKEhBVkVfT1BFTlNTTF9BRVNfSCkgJiYgZGVmaW5lZChIQVZFX0FFU19DRkIxMjhfRU5DUllQVCkpIHx8IGRlZmluZWQoTkVUU05NUF9VU0VfSU5URVJOQUxfQ1JZUFRPKQojZGVmaW5lIEhBVkVfQUVTIDEKI2VuZGlmCgovKiBkZWZpbmUgcmFuZG9tIGZ1bmN0aW9ucyAqLwoKI2lmbmRlZiBIQVZFX1JBTkRPTQojaWZkZWYgSEFWRV9MUkFORDQ4CiNkZWZpbmUgcmFuZG9tIGxyYW5kNDgKI2RlZmluZSBzcmFuZG9tKHMpIHNyYW5kNDgocykKI2Vsc2UKI2lmZGVmIEhBVkVfUkFORAojZGVmaW5lIHJhbmRvbSByYW5kCiNkZWZpbmUgc3JhbmRvbShzKSBzcmFuZChzKQojZW5kaWYKI2VuZGlmCiNlbmRpZgoKLyogZGVmaW5lIHNpZ25hbCBpZiBETkUgKi8KCiNpZm5kZWYgSEFWRV9TSUdOQUwKI2lmZGVmIEhBVkVfU0lHU0VUCiNkZWZpbmUgc2lnbmFsKGEsYikgc2lnc2V0KGEsYikKI2VuZGlmCiNlbmRpZgoKI2lmZGVmIEhBVkVfRE1BTExPQ19ICiNkZWZpbmUgRE1BTExPQ19GVU5DX0NIRUNLCiNlbmRpZgoKI2VuZGlmIC8qIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMgKi8KCgoKCi8qICoqKioqKioqKiBORVRTTk1QX01BUktfQkVHSU5fQ0xFQU5fTkFNRVNQQUNFICoqKioqKioqKiAqLwovKiAKICogcHV0IGFsbCBuZXcgbmV0LXNubXAtc3BlY2lmaWMgZGVmaW5pdGlvbnMgaGVyZQogKgogKiBhbGwgZGVmaW5pdGlvbnMgTVVTVCBoYXZlIGEgTkVUU05NUF8gcHJlZml4CiAqCiAqLwoKLyogRGVmYXVsdCAoU05NUCkgdmVyc2lvbiBudW1iZXIgZm9yIHRoZSB0b29scyB0byB1c2UgKi8KI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfU05NUF9WRVJTSU9OIDMKCi8qIGRvbid0IGNoYW5nZSB0aGVzZSB2YWx1ZXMhICovCiNkZWZpbmUgTkVUU05NUF9TTk1QVjEgICAgICAweEFBQUEgICAgICAgLyogcmVhZGFibGUgYnkgYW55b25lICovCiNkZWZpbmUgTkVUU05NUF9TTk1QVjJBTlkgICAweEEwMDAgICAgICAgLyogVjIgQW55IHR5cGUgKGluY2x1ZGVzIE5vQXV0aCkgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBWMkFVVEggIDB4ODAwMCAgICAgICAvKiBWMiBBdXRoZW50aWNhdGVkIHJlcXVlc3RzIG9ubHkgKi8KCi8qIGRlZmF1bHQgbGlzdCBvZiBtaWJzIHRvIGxvYWQgKi8KI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfTUlCUyAiSVAtTUlCOklGLU1JQjpUQ1AtTUlCOlVEUC1NSUI6U05NUHYyLU1JQjpSRkMxMjEzLU1JQiIKCi8qIGRlYnVnZ2luZyBzdHVmZiAqLwovKiBpZiBkZWZpbmVkLCB3ZSBvcHRpbWl6ZSB0aGUgY29kZSB0byBleGNsdWRlIGFsbCBkZWJ1Z2dpbmcgY2FsbHMuICovCiN1bmRlZiBORVRTTk1QX05PX0RFQlVHR0lORwovKiBpZ25vcmUgdGhlIC1EIGZsYWcgYW5kIGFsd2F5cyBwcmludCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gKi8KI2RlZmluZSBORVRTTk1QX0FMV0FZU19ERUJVRyAwCgovKiByZXZlcnNlIGVuY29kaW5nIEJFUiBwYWNrZXRzIGlzIGJvdGggZmFzdGVyIGFuZCBtb3JlIGVmZmljaWVudCBpbiBzcGFjZS4gKi8KI2RlZmluZSBORVRTTk1QX1VTRV9SRVZFUlNFX0FTTkVOQ09ESU5HICAgICAgIDEKI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OIDEgLyogMSA9IHJldmVyc2UsIDAgPSBmb3J3YXJkcyAqLwoKLyogUEVSU0lTVEVOVF9ESVJFQ1RPUlk6IElmIGRlZmluZWQsIHRoZSBsaWJyYXJ5IGlzIGNhcGFiaWxlIG9mIHNhdmluZwogICBwZXJzaXNhbnQgaW5mb3JtYXRpb24gdG8gdGhpcyBkaXJlY3RvcnkgaW4gdGhlIGZvcm0gb2YgY29uZmlndXJhdGlvbgogICBsaW5lczogUEVSU0lTVEVOVF9ESVJFQ1RPUlkvTkFNRS5wZXJzaXN0ZW50LmNvbmYgKi8KI2RlZmluZSBORVRTTk1QX1BFUlNJU1RFTlRfRElSRUNUT1JZICIvdmFyL3NubXAiCgovKiBBR0VOVF9ESVJFQ1RPUllfTU9ERTogdGhlIG1vZGUgdGhlIGFnZW50cyBzaG91bGQgdXNlIHRvIGNyZWF0ZQogICBkaXJlY3RvcmllcyB3aXRoLiBTaW5jZSB0aGUgZGF0YSBzdG9yZWQgaGVyZSBpcyBwcm9iYWJseSBzZW5zaXRpdmUsIGl0CiAgIHByb2JhYmx5IHNob3VsZCBiZSByZWFkLW9ubHkgYnkgcm9vdC9hZG1pbmlzdHJhdG9yLiAqLwojZGVmaW5lIE5FVFNOTVBfQUdFTlRfRElSRUNUT1JZX01PREUgMDcwMAoKLyogTUFYX1BFUlNJU1RFTlRfQkFDS1VQUzoKICogICBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGVyc2lzdGVudCBiYWNrdXBzIHRoZSBsaWJyYXJ5IHdpbGwgdHJ5IHRvCiAqICAgcmVhZCBmcm9tIHRoZSBwZXJzaXN0ZW50IGNhY2hlIGRpcmVjdG9yeS4gIElmIGFuIGFwcGxpY2F0aW9uIGZhaWxzIHRvCiAqICAgY2xvc2UgZG93biBzdWNjZXNzZnVsbHkgbW9yZSB0aGFuIHRoaXMgbnVtYmVyIG9mIHRpbWVzLCBkYXRhIHdpbGwgYmUgbG9zdC4KICovCiNkZWZpbmUgTkVUU05NUF9NQVhfUEVSU0lTVEVOVF9CQUNLVVBTIDEwCgovKiBkZWZpbmUgdGhlIHN5c3RlbSB0eXBlIGluY2x1ZGUgZmlsZSBoZXJlICovCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFIDxuZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oPgoKLyogZGVmaW5lIHRoZSBtYWNoaW5lIChjcHUpIHR5cGUgaW5jbHVkZSBmaWxlIGhlcmUgKi8KI2RlZmluZSBORVRTTk1QX01BQ0hJTkVfSU5DTFVERV9GSUxFIDxuZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaD4KCi8qIGRlZmluZSB0aGUgVURQIGJ1ZmZlciBkZWZhdWx0cyB1bmRlZmluZWQgbWVhbnMgdXNlIHRoZSBPUyBidWZmZXJzCiAqIGJ5IGRlZmF1bHQgKi8KI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKCi8qIG5ldC1zbm1wJ3MgbWFqb3IgcGF0aCBuYW1lcyAqLwojdW5kZWYgU05NUExJQlBBVEgKI3VuZGVmIFNOTVBTSEFSRVBBVEgKI3VuZGVmIFNOTVBDT05GUEFUSAojdW5kZWYgU05NUERMTU9EUEFUSAoKLyogTkVUU05NUF9MT0dGSUxFOiAgSWYgZGVmaW5lZCBpdCBjbG9zZXMgc3Rkb3V0L2Vyci9pbiBhbmQgb3BlbnMgdGhpcyBpbiAKICAgb3V0L2VycidzIHBsYWNlLiAgKHN0ZGluIGlzIGNsb3NlZCBzbyB0aGF0IHNoIHNjcmlwdHMgd29uJ3Qgd2FpdCBmb3IgaXQpICovCiN1bmRlZiBORVRTTk1QX0xPR0ZJTEUKCi8qIGRlZmF1bHQgc3lzdGVtIGNvbnRhY3QgKi8KI3VuZGVmIE5FVFNOTVBfU1lTX0NPTlRBQ1QKCi8qIHN5c3RlbSBsb2NhdGlvbiAqLwojdW5kZWYgTkVUU05NUF9TWVNfTE9DCgovKiBVc2UgbGlid3JhcCB0byBoYW5kbGUgYWxsb3cvZGVueSBob3N0cz8gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX0xJQldSQVAKCi8qIE1pYi0yIHRyZWUgSW5mbyAqLwovKiBUaGVzZSBhcmUgdGhlIHN5c3RlbSBpbmZvcm1hdGlvbiB2YXJpYWJsZXMuICovCgojZGVmaW5lIE5FVFNOTVBfVkVSU19ERVNDICAgInVua25vd24iICAgICAgICAgICAgIC8qIG92ZXJyaWRkZW4gYXQgcnVuIHRpbWUgKi8KI2RlZmluZSBORVRTTk1QX1NZU19OQU1FICAgICJ1bmtub3duIiAgICAgICAgICAgICAvKiBvdmVycmlkZGVuIGF0IHJ1biB0aW1lICovCgovKiBjb21tZW50IG91dCB0aGUgc2Vjb25kIGRlZmluZSB0byB0dXJuIG9mZiBmdW5jdGlvbmFsaXR5IGZvciBhbnkgb2YKICAgdGhlc2U6IChTZWUgUkVBRE1FIGZvciBkZXRhaWxzKSAqLwoKLyogICBwcm9jIFBST0NFU1NOQU1FIFtNQVhdIFtNSU5dICovCiNkZWZpbmUgTkVUU05NUF9QUk9DTUlCTlVNIDIKCi8qICAgZXhlYy9zaGVsbCBOQU1FIENPTU1BTkQgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfU0hFTExNSUJOVU0gOAoKLyogICBzd2FwIE1JTiAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9NRU1NSUJOVU0gNAoKLyogICBkaXNrIERJU0sgTUlOU0laRSAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9ESVNLTUlCTlVNIDkKCi8qICAgbG9hZCAxIDUgMTUgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfTE9BREFWRU1JQk5VTSAxMAoKLyogd2hpY2ggdmVyc2lvbiBhcmUgeW91IHVzaW5nPyBUaGlzIG1pYmxvYyB3aWxsIHRlbGwgeW91ICovCiNkZWZpbmUgTkVUU05NUF9WRVJTSU9OTUlCTlVNIDEwMAoKLyogUmVwb3J0cyBlcnJvcnMgdGhlIGFnZW50IHJ1bnMgaW50byAqLwovKiAodHlwaWNhbGx5IGl0cyAiY2FuJ3QgZm9yaywgbm8gbWVtIiBwcm9ibGVtcykgKi8KI2RlZmluZSBORVRTTk1QX0VSUk9STUlCTlVNIDEwMQoKLyogVGhlIHN1YiBpZCBvZiBFWFRFTlNJQkxFTUlCIHJldHVybmVkIHRvIHF1ZXJpZXMgb2YKICAgLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliLTIuc3lzdGVtLnN5c09iamVjdElELjAgKi8KI2RlZmluZSBORVRTTk1QX0FHRU5USUQgMjUwCgovKiBUaGlzIElEIGlzIHJldHVybmVkIGFmdGVyIHRoZSBBR0VOVElEIGFib3ZlLiAgSUUsIHRoZSByZXN1bHRpbmcKICAgdmFsdWUgcmV0dXJuZWQgYnkgYSBxdWVyeSB0byBzeXNPYmplY3RJRCBpcwogICBFWFRFTlNJQkxFTUlCLkFHRU5USUQuPz8/LCB3aGVyZSA/Pz8gaXMgZGVmaW5lZCBiZWxvdyBieSBPU1RZUEUgKi8KCiNkZWZpbmUgTkVUU05NUF9IUFVYOUlEIDEKI2RlZmluZSBORVRTTk1QX1NVTk9TNElEIDIgCiNkZWZpbmUgTkVUU05NUF9TT0xBUklTSUQgMwojZGVmaW5lIE5FVFNOTVBfT1NGSUQgNAojZGVmaW5lIE5FVFNOTVBfVUxUUklYSUQgNQojZGVmaW5lIE5FVFNOTVBfSFBVWDEwSUQgNgojZGVmaW5lIE5FVFNOTVBfTkVUQlNEMUlEIDcKI2RlZmluZSBORVRTTk1QX0ZSRUVCU0RJRCA4CiNkZWZpbmUgTkVUU05NUF9JUklYSUQgOQojZGVmaW5lIE5FVFNOTVBfTElOVVhJRCAxMAojZGVmaW5lIE5FVFNOTVBfQlNESUlEIDExCiNkZWZpbmUgTkVUU05NUF9PUEVOQlNESUQgMTIKI2RlZmluZSBORVRTTk1QX1dJTjMySUQgMTMKI2RlZmluZSBORVRTTk1QX0hQVVgxMUlEIDE0CiNkZWZpbmUgTkVUU05NUF9BSVhJRCAxNQojZGVmaW5lIE5FVFNOTVBfTUFDT1NYSUQgMTYKI2RlZmluZSBORVRTTk1QX0RSQUdPTkZMWUlEIDE3CiNkZWZpbmUgTkVUU05NUF9VTktOT1dOSUQgMjU1CgojaWZkZWYgaHB1eDkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVg5SUQKI2VuZGlmCiNpZmRlZiBocHV4MTAKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVgxMElECiNlbmRpZgojaWZkZWYgaHB1eDExCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9IUFVYMTFJRAojZW5kaWYKI2lmZGVmIHN1bm9zNAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfU1VOT1M0SUQKI2VuZGlmCiNpZmRlZiBzb2xhcmlzMgojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfU09MQVJJU0lECiNlbmRpZgojaWYgZGVmaW5lZChvc2YzKSB8fCBkZWZpbmVkKG9zZjQpIHx8IGRlZmluZWQob3NmNSkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX09TRklECiNlbmRpZgojaWZkZWYgdWx0cml4NAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfVUxUUklYSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG5ldGJzZDEpIHx8IGRlZmluZWQobmV0YnNkMikKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX05FVEJTRDFJRAojZW5kaWYKI2lmIGRlZmluZWQoX19GcmVlQlNEX18pCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9GUkVFQlNESUQKI2VuZGlmCiNpZiBkZWZpbmVkKF9fRHJhZ29uRmx5X18pCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9EUkFHT05GTFlJRAojZW5kaWYKI2lmIGRlZmluZWQoaXJpeDYpIHx8IGRlZmluZWQoaXJpeDUpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9JUklYSUQKI2VuZGlmCiNpZmRlZiBsaW51eAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTElOVVhJRAojZW5kaWYKI2lmIGRlZmluZWQoYnNkaTIpIHx8IGRlZmluZWQoYnNkaTMpIHx8IGRlZmluZWQoYnNkaTQpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9CU0RJSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG9wZW5ic2QpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9PUEVOQlNESUQKI2VuZGlmCiNpZmRlZiBXSU4zMgojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfV0lOMzJJRAojZW5kaWYKI2lmIGRlZmluZWQoYWl4MykgfHwgZGVmaW5lZChhaXg0KSB8fCBkZWZpbmVkKGFpeDUpIHx8IGRlZmluZWQoYWl4NikgfHwgZGVmaW5lZChhaXg3KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfQUlYSUQKI2VuZGlmCiNpZiBkZWZpbmVkKGRhcndpbikgJiYgKGRhcndpbiA+PSA4KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTUFDT1NYSUQKI2VuZGlmCi8qIHVua25vd24gKi8KI2lmbmRlZiBORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfVU5LTk9XTklECiNlbmRpZgoKLyogVGhlIGVudGVycHJpc2UgbnVtYmVyIGhhcyBiZWVuIGFzc2lnbmVkIGJ5IHRoZSBJQU5BIGdyb3VwLiAgICovCi8qIE9wdGlvbmFsbHksIHRoaXMgbWF5IHBvaW50IHRvIHRoZSBsb2NhdGlvbiBpbiB0aGUgdHJlZSB5b3VyICAqLwovKiBjb21wYW55L29yZ2FuaXphdGlvbiBoYXMgYmVlbiBhbGxvY2F0ZWQuICAgICAgICAgICAgICAgICAgICAgKi8KLyogVGhlIGFzc2lnbmVkIGVudGVycHJpc2UgbnVtYmVyIGZvciB0aGUgTkVUX1NOTVAgTUlCIG1vZHVsZXMuICovCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX09JRAkJCTgwNzIKI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfTUlCCQkJMSwzLDYsMSw0LDEsODA3MgojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RICTcKCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3Igc3lzT2JqZWN0SUQuICovCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fTUlCCQkxLDMsNiwxLDQsMSw4MDcyLDMsMixORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIuMy4yLk5FVFNOTVBfT1NUWVBFCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fRE9UX01JQl9MRU5HVEgJMTAKCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3Igbm90aWZpY2F0aW9ucy4gKi8KI2RlZmluZSBORVRTTk1QX05PVElGSUNBVElPTl9NSUIJCTEsMyw2LDEsNCwxLDgwNzIsNAojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIuNAojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUJfTEVOR1RICTgKCi8qIHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSB1Y2RhdmlzIG1pYiB0cmVlLiAgSXQgc2hvdWxkbid0IGJlCiAgIGNoYW5nZWQsIGFzIHRoZSBwbGFjZXMgaXQgaXMgdXNlZCBhcmUgZXhwZWN0ZWQgdG8gYmUgY29uc3RhbnQKICAgdmFsdWVzIG9yIGFyZSBkaXJlY3RseSB0aWVkIHRvIHRoZSBVQ0QtU05NUC1NSUIuICovCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX09JRAkJMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19NSUIJCTEsMyw2LDEsNCwxLDIwMjEKI2RlZmluZSBORVRTTk1QX1VDREFWSVNfRE9UX01JQgkJMS4zLjYuMS40LjEuMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19ET1RfTUlCX0xFTkdUSAk3CgovKiBob3cgbG9uZyB0byB3YWl0IChzZWNvbmRzKSBmb3IgZXJyb3IgcXVlcnlzIGJlZm9yZSByZXNldGluZyB0aGUgZXJyb3IgdHJhcC4qLwojZGVmaW5lIE5FVFNOTVBfRVJST1JUSU1FTEVOR1RIIDYwMCAKCi8qIEV4ZWMgY29tbWFuZCB0byBmaXggUFJPQyBwcm9ibGVtcyAqLwovKiAlcyB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBwcm9jZXNzIG5hbWUgaW4gZXJyb3IgKi8KCi8qICNkZWZpbmUgTkVUU05NUF9QUk9DRklYQ01EICIvdXNyL2Jpbi9wZXJsIC9sb2NhbC9zY3JpcHRzL2ZpeHByb2MgJXMiICovCgovKiBFeGVjIGNvbW1hbmQgdG8gZml4IEVYRUMgcHJvYmxlbXMgKi8KLyogJXMgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgZXhlYy9zY3JpcHQgbmFtZSBpbiBlcnJvciAqLwoKLyogI2RlZmluZSBORVRTTk1QX0VYRUNGSVhDTUQgIi91c3IvYmluL3BlcmwgL2xvY2FsL3NjcmlwdHMvZml4cHJvYyAlcyIgKi8KCi8qIFNob3VsZCBleGVjIG91dHB1dCBDYXNoaW5nIGJlIHVzZWQgKHNwZWVkcyB1cCB0aGluZ3MgZ3JlYXRseSksIGFuZAogICBpZiBzbywgQWZ0ZXIgaG93IG1hbnkgc2Vjb25kcyBzaG91bGQgdGhlIGNhY2hlIHJlLW5ld2VkPyAgTm90ZToKICAgRG9uJ3QgZGVmaW5lIENBU0hFVElNRSB0byBkaXNhYmxlIGNhc2hpbmcgY29tcGxldGVseSAqLwoKI2RlZmluZSBORVRTTk1QX0VYQ0FDSEVUSU1FIDMwCiNkZWZpbmUgTkVUU05NUF9DQUNIRUZJTEUgIi5zbm1wLWV4ZWMtY2FjaGUiCiNkZWZpbmUgTkVUU05NUF9NQVhDQUNIRVNJWkUgKDE1MDAqODApICAgLyogcm91Z2hseSAxNTAwIGxpbmVzIG1heCAqLwoKLyogbWlzYyBkZWZhdWx0cyAqLwoKLyogZGVmYXVsdCBvZiAxMDAgbWVnIG1pbmltdW0gaWYgdGhlIG1pbmltdW0gc2l6ZSBpcyBub3Qgc3BlY2lmaWVkIGluCiAgIHRoZSBjb25maWcgZmlsZSAqLwojZGVmaW5lIE5FVFNOTVBfREVGRElTS01JTklNVU1TUEFDRSAxMDAwMDAKCi8qIGRlZmF1bHQgbWF4aW11bSBsb2FkIGF2ZXJhZ2UgYmVmb3JlIGVycm9yICovCiNkZWZpbmUgTkVUU05NUF9ERUZNQVhMT0FEQVZFIDEyLjAKCi8qIG1heCB0aW1lcyB0byBsb29wIHJlYWRpbmcgb3V0cHV0IGZyb20gZXhlY3MuICovCi8qIEJlY2F1c2Ugb2Ygc2xlZXAoMSlzLCB0aGlzIHdpbGwgYWxzbyBiZSB0aW1lIHRvIHdhaXQgKGluIHNlY29uZHMpIGZvciBleGVjCiAgIHRvIGZpbmlzaCAqLwojZGVmaW5lIE5FVFNOTVBfTUFYUkVBRENPVU5UIDEwMAoKLyogU2V0IGlmIHNubXBnZXRzIHNob3VsZCBibG9jayBhbmQgbmV2ZXIgdGltZW91dCAqLwovKiBUaGUgb3JpZ2luYWwgQ01VIGNvZGUgaGFkIHRoaXMgaGFyZGNvZGVkIGFzID0gMSAqLwojZGVmaW5lIE5FVFNOTVBfU05NUEJMT0NLIDEKCi8qIEhvdyBsb25nIHRvIHdhaXQgYmVmb3JlIHJlc3RhcnRpbmcgdGhlIGFnZW50IGFmdGVyIGEgc25tcHNldCB0bwogICBFWFRFTlNJQkxFTUlCLlZFUlNJT05NSUJOVU0uVkVSUkVTVEFSVEFHRU5ULiAgVGhpcyBpcwogICBuZWNlc3NhcnkgdG8gZmluaXNoIHRoZSBzbm1wc2V0IHJlcGx5IGJlZm9yZSByZXN0YXJ0aW5nLiAqLwojZGVmaW5lIE5FVFNOTVBfUkVTVEFSVFNMRUVQIDUKCi8qIFVOZGVmaW5lIHRvIGFsbG93IHNwZWNpZnlpbmcgemVyby1sZW5ndGggY29tbXVuaXR5IHN0cmluZyAqLwovKiAjZGVmaW5lIE5FVFNOTVBfTk9fWkVST0xFTkdUSF9DT01NVU5JVFkgMSAqLwoKLyogTnVtYmVyIG9mIGNvbW11bml0eSBzdHJpbmdzIHRvIHN0b3JlICovCiNkZWZpbmUgTkVUU05NUF9OVU1fQ09NTVVOSVRJRVMJNQoKLyogaW50ZXJuYWwgZGVmaW5lICovCiNkZWZpbmUgTkVUU05NUF9MQVNURklFTEQgLTEKCi8qICBQbHVnZ2FibGUgdHJhbnNwb3J0cy4gICovCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBVRFAvSVAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSAiY2FsbGJhY2siIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUQ1AvSVAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFVuaXggdHJhbnNwb3J0IGRvbWFpbgogICAgKGEuay5hLiAibG9jYWwgSVBDIikgaXMgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBBQUw1IFBWQyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQUFMNVBWQ19ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIElQWCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVURQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUQ1AvSVB2NiB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVENQSVBWNl9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFRMUyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU0JBU0VfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBBbGlhcyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FMSUFTX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgU1NIIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfU1NIX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgRFRMUy9VRFAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9EVExTVURQX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVExTL1RDUCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU1RDUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3Igc3RkaW4vb3V0IHRyYW5zcG9ydCBkb21haW4gaXMgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBJUHY0QmFzZSB0cmFuc3BvcnQgZG9tYWluIGlzIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfSVBWNEJBU0VfRE9NQUlOCgovKiBkZWZpbmUgdGhpcyBpZiB0aGUgVVNNIHNlY3VyaXR5IG1vZHVsZSBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQoKLyogZGVmaW5lIHRoaXMgaWYgdGhlIEtTTSAoa2VyYmVyb3MgYmFzZWQgc25tcCkgc2VjdXJpdHkgbW9kdWxlIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgTkVUU05NUF9TRUNNT0RfS1NNCgovKiBkZWZpbmUgdGhpcyBpZiB0aGUgbG9jYWwgc2VjdXJpdHkgbW9kdWxlIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgTkVUU05NUF9TRUNNT0RfTE9DQUxTTQoKLyogZGVmaW5lIGlmIGNvbmZpZ3VyZWQgYXMgYSAibWluaS1hZ2VudCIgKi8KI3VuZGVmIE5FVFNOTVBfTUlOSV9BR0VOVAoKLyogdGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIG5ldC1zbm1wIG1pYiB0cmVlLiAgSXQgc2hvdWxkbid0IGJlCiAgIGNoYW5nZWQsIGFzIHRoZSBwbGFjZXMgaXQgaXMgdXNlZCBhcmUgZXhwZWN0ZWQgdG8gYmUgY29uc3RhbnQKICAgdmFsdWVzIG9yIGFyZSBkaXJlY3RseSB0aWVkIHRvIHRoZSBVQ0QtU05NUC1NSUIuICovCiNkZWZpbmUgTkVUU05NUF9PSUQJCTgwNzIKI2RlZmluZSBORVRTTk1QX01JQgkJMSwzLDYsMSw0LDEsODA3MgojZGVmaW5lIE5FVFNOTVBfRE9UX01JQgkJMS4zLjYuMS40LjEuODA3MgojZGVmaW5lIE5FVFNOTVBfRE9UX01JQl9MRU5HVEgJNwoKLyogcGF0dGVybiBmb3IgdGVtcG9yYXJ5IGZpbGUgbmFtZXMgKi8KI2RlZmluZSBORVRTTk1QX1RFTVBfRklMRV9QQVRURVJOICIvdG1wL3NubXBkWFhYWFhYIgoKLyoKICogdGhpcyBtdXN0IGJlIGJlZm9yZSB0aGUgc3lzdGVtL21hY2hpbmUgaW5jbHVkZXMsIHRvIGFsbG93IHRoZW0gdG8KICogb3ZlcnJpZGUgYW5kIHR1cm4gb2ZmIGlubGluaW5nLiBUbyBkbyBzbywgdGhleSBzaG91bGQgZG8gdGhlCiAqIGZvbGxvd2luZzoKICoKICogICAgI3VuZGVmIE5FVFNOTVBfRU5BQkxFX0lOTElORQogKiAgICAjZGVmaW5lIE5FVFNOTVBfRU5BQkxFX0lOTElORSAwCiAqCiAqIEEgdXNlciBoYXZpbmcgcHJvYmxlbXMgd2l0aCB0aGVpciBjb21waWxlciBjYW4gYWxzbyB0dXJuIG9mZgogKiB0aGUgdXNlIG9mIGlubGluZSBieSBkZWZpbmluZyBORVRTTk1QX05PX0lOTElORSB2aWEgdGhlaXIgY2ZsYWdzOgogKgogKiAgICAtRE5FVFNOTVBfTk9fSU5MSU5FCiAqCiAqIEhlYWRlciBhbmQgc291cmNlIGZpbGVzIHNob3VsZCBvbmx5IHRlc3QgYWdhaW5zdCBORVRTTk1QX1VTRV9JTkxJTkU6CiAqCiAqICAgI2lmZGVmIE5FVFNOTVBfVVNFX0lOTElORQogKiAgIE5FVFNOTVBfSU5MSU5FIGZ1bmN0aW9uKGludCBwYXJtKSB7IHJldHVybiBwYXJtIC0xOyB9CiAqICAgI2VuZGlmCiAqCiAqIEZ1bmN0aW9ucyB3aGljaCBzaG91bGQgYmUgc3RhdGljLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IGlubGluZQogKiBpcyBhdmFpbGFibGUgb3IgZW5hYmxlZCBzaG91bGQgdXNlIHRoZSBORVRTTk1QX1NUQVRJQ19JTkxJTkUgbWFjcm8sCiAqIGxpa2Ugc286CiAqCiAqICAgIE5FVFNOTVBfU1RBVElDX0lOTElORSBmdW5jdGlvbihpbnQgcGFybSkgeyByZXR1cm4gcGFybSAtMTsgfQogKgogKiBOT1QgbGlrZSB0aGlzOgogKgogKiAgICBzdGF0aWMgTkVUU05NUF9JTkxJTkUgZnVuY3Rpb24oaW50IHBhcm0pIHsgcmV0dXJuIHBhcm0gLTE7IH0KICoKICovCiNpZmRlZiBORVRTTk1QX0JST0tFTl9JTkxJTkUKIyAgIGRlZmluZSBORVRTTk1QX0VOQUJMRV9JTkxJTkUgMAojZWxzZQojICAgZGVmaW5lIE5FVFNOTVBfRU5BQkxFX0lOTElORSAxCiNlbmRpZgoKI2luY2x1ZGUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFCiNpbmNsdWRlIE5FVFNOTVBfTUFDSElORV9JTkNMVURFX0ZJTEUKCiNpZiBORVRTTk1QX0VOQUJMRV9JTkxJTkUgJiYgIWRlZmluZWQoTkVUU05NUF9OT19JTkxJTkUpCiMgICBkZWZpbmUgTkVUU05NUF9VU0VfSU5MSU5FIDEKIyAgIGlmbmRlZiBORVRTTk1QX0lOTElORQojICAgICAgZGVmaW5lIE5FVFNOTVBfSU5MSU5FIGlubGluZQojICAgZW5kaWYKIyAgIGlmbmRlZiBORVRTTk1QX1NUQVRJQ19JTkxJTkUKIyAgICAgIGRlZmluZSBORVRTTk1QX1NUQVRJQ19JTkxJTkUgc3RhdGljIGlubGluZQojICAgZW5kaWYKI2Vsc2UKIyAgIGRlZmluZSBORVRTTk1QX0lOTElORSAKIyAgIGRlZmluZSBORVRTTk1QX1NUQVRJQ19JTkxJTkUgc3RhdGljCiNlbmRpZgoKI2lmbmRlZiBORVRTTk1QX0lNUE9SVAojICBkZWZpbmUgTkVUU05NUF9JTVBPUlQgZXh0ZXJuCiNlbmRpZgoKLyogY29tbWVudCB0aGUgbmV4dCBsaW5lIGlmIHlvdSBhcmUgY29tcGlsaW5nIHdpdGggbGlic25tcC5oIAogICBhbmQgYXJlIG5vdCB1c2luZyB0aGUgVUMtRGF2aXMgU05NUCBsaWJyYXJ5LiAqLwojZGVmaW5lIFVDRF9TTk1QX0xJQlJBUlkgMQoKLyogZmluYWwgY29uY2x1c2lvbiBvbiBubGlzdCB1c2FnZSAqLwojaWYgZGVmaW5lZChIQVZFX05MSVNUKSAmJiBkZWZpbmVkKEhBVkVfU1RSVUNUX05MSVNUX05fVkFMVUUpICYmICFkZWZpbmVkKE5FVFNOTVBfRE9OVF9VU0VfTkxJU1QpICYmIGRlZmluZWQoSEFWRV9LTUVNKSAmJiAhZGVmaW5lZChORVRTTk1QX05PX0tNRU1fVVNBR0UpCiNkZWZpbmUgTkVUU05NUF9DQU5fVVNFX05MSVNUCiNlbmRpZgoKCi8qICoqKioqKioqKiBORVRTTk1QX01BUktfQkVHSU5fTEVHQUNZX0RFRklOSVRJT05TICoqKioqKioqKi8KLyogCiAqIGV4aXN0aW5nIGRlZmluaXRpb25zIHByaW9yIHRvIE5ldC1TTk1QIDUuNAogKgogKiBkbyBub3QgYWRkIGFueXRoaW5nIG5ldyBoZXJlCiAqCiAqLwoKI2lmbmRlZiBORVRTTk1QX05PX0xFR0FDWV9ERUZJTklUSU9OUwoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TTk1QX1ZFUlNJT04KIyBkZWZpbmUgREVGQVVMVF9TTk1QX1ZFUlNJT04gTkVUU05NUF9ERUZBVUxUX1NOTVBfVkVSU0lPTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBWMQojIGRlZmluZSBTTk1QVjEgTkVUU05NUF9TTk1QVjEKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVjJBTlkKIyBkZWZpbmUgU05NUFYyQU5ZIE5FVFNOTVBfU05NUFYyQU5ZCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFYyQVVUSAojIGRlZmluZSBTTk1QVjJBVVRIIE5FVFNOTVBfU05NUFYyQVVUSAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCUwojIGRlZmluZSBERUZBVUxUX01JQlMgTkVUU05NUF9ERUZBVUxUX01JQlMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX01JQkRJUlMKIyBkZWZpbmUgREVGQVVMVF9NSUJESVJTIE5FVFNOTVBfREVGQVVMVF9NSUJESVJTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJGSUxFUwojIGRlZmluZSBERUZBVUxUX01JQkZJTEVTIE5FVFNOTVBfREVGQVVMVF9NSUJGSUxFUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1dJVEhfT1BBUVVFX1NQRUNJQUxfVFlQRVMKIyBkZWZpbmUgT1BBUVVFX1NQRUNJQUxfVFlQRVMgTkVUU05NUF9XSVRIX09QQVFVRV9TUEVDSUFMX1RZUEVTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX1NDQVBJX0FVVEhQUklWCiMgZGVmaW5lIFNDQVBJX0FVVEhQUklWIE5FVFNOTVBfRU5BQkxFX1NDQVBJX0FVVEhQUklWCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX0lOVEVSTkFMX01ENQojIGRlZmluZSBVU0VfSU5URVJOQUxfTUQ1IE5FVFNOTVBfVVNFX0lOVEVSTkFMX01ENQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9QS0NTMTEKIyBkZWZpbmUgVVNFX1BLQ1MgTkVUU05NUF9VU0VfUEtDUzExCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX09QRU5TU0wKIyBkZWZpbmUgVVNFX09QRU5TU0wgTkVUU05NUF9VU0VfT1BFTlNTTAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX0RFQlVHR0lORwojIGRlZmluZSBTTk1QX05PX0RFQlVHR0lORyBORVRTTk1QX05PX0RFQlVHR0lORwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0FMV0FZU19ERUJVRwojIGRlZmluZSBTTk1QX0FMV0FZU19ERUJVRyBORVRTTk1QX0FMV0FZU19ERUJVRwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9SRVZFUlNFX0FTTkVOQ09ESU5HCiMgZGVmaW5lIFVTRV9SRVZFUlNFX0FTTkVOQ09ESU5HIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OCiMgZGVmaW5lIERFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04KI2VuZGlmCgojZGVmaW5lIFBFUlNJU1RFTlRfRElSRUNUT1JZIE5FVFNOTVBfUEVSU0lTVEVOVF9ESVJFQ1RPUlkKI2RlZmluZSBQRVJTSVNURU5UX01BU0sgTkVUU05NUF9QRVJTSVNURU5UX01BU0sKI2RlZmluZSBBR0VOVF9ESVJFQ1RPUllfTU9ERSBORVRTTk1QX0FHRU5UX0RJUkVDVE9SWV9NT0RFCiNkZWZpbmUgTUFYX1BFUlNJU1RFTlRfQkFDS1VQUyBORVRTTk1QX01BWF9QRVJTSVNURU5UX0JBQ0tVUFMKI2RlZmluZSBTWVNURU1fSU5DTFVERV9GSUxFIE5FVFNOTVBfU1lTVEVNX0lOQ0xVREVfRklMRQojZGVmaW5lIE1BQ0hJTkVfSU5DTFVERV9GSUxFIE5FVFNOTVBfTUFDSElORV9JTkNMVURFX0ZJTEUKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1NFTkRfQlVGCiMgZGVmaW5lIERFRkFVTFRfU0VSVkVSX1NFTkRfQlVGIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1JFQ1ZfQlVGCiMgZGVmaW5lIERFRkFVTFRfU0VSVkVSX1JFQ1ZfQlVGIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1NFTkRfQlVGCiMgZGVmaW5lIERFRkFVTFRfQ0xJRU5UX1NFTkRfQlVGIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1JFQ1ZfQlVGCiMgZGVmaW5lIERFRkFVTFRfQ0xJRU5UX1JFQ1ZfQlVGIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9MT0dGSUxFCiMgZGVmaW5lIExPR0ZJTEUgTkVUU05NUF9MT0dGSUxFCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU1lTX0NPTlRBQ1QKIyBkZWZpbmUgU1lTX0NPTlRBQ1QgTkVUU05NUF9TWVNfQ09OVEFDVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NZU19MT0MKIyBkZWZpbmUgU1lTX0xPQyBORVRTTk1QX1NZU19MT0MKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfTElCV1JBUAojIGRlZmluZSBVU0VfTElCV1JBUCBORVRTTk1QX1VTRV9MSUJXUkFQCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX1RFU1RJTkdfQ09ERSAKIyBkZWZpbmUgU05NUF9URVNUSU5HX0NPREUgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fUk9PVF9BQ0NFU1MKIyBkZWZpbmUgTk9fUk9PVF9BQ0NFU1MgTkVUU05NUF9OT19ST09UX0FDQ0VTUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX0tNRU1fVVNBR0UKIyBkZWZpbmUgTk9fS01FTV9VU0FHRSBORVRTTk1QX05PX0tNRU1fVVNBR0UKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19EVU1NWV9WQUxVRVMKIyBkZWZpbmUgTk9fRFVNTVlfVkFMVUVTIE5FVFNOTVBfTk9fRFVNTVlfVkFMVUVTCiNlbmRpZgoKI2RlZmluZSBWRVJTX0RFU0MgICAgIE5FVFNOTVBfVkVSU19ERVNDCiNkZWZpbmUgU1lTX05BTUUgICAgICBORVRTTk1QX1NZU19OQU1FCgojZGVmaW5lIFBST0NNSUJOVU0gICAgTkVUU05NUF9QUk9DTUlCTlVNCiNkZWZpbmUgU0hFTExNSUJOVU0gICBORVRTTk1QX1NIRUxMTUlCTlVNCiNkZWZpbmUgTUVNTUlCTlVNICAgICBORVRTTk1QX01FTU1JQk5VTQojZGVmaW5lIERJU0tNSUJOVU0gICAgTkVUU05NUF9ESVNLTUlCTlVNCgojZGVmaW5lIExPQURBVkVNSUJOVU0gTkVUU05NUF9MT0FEQVZFTUlCTlVNCiNkZWZpbmUgVkVSU0lPTk1JQk5VTSBORVRTTk1QX1ZFUlNJT05NSUJOVU0KI2RlZmluZSBFUlJPUk1JQk5VTSAgIE5FVFNOTVBfRVJST1JNSUJOVU0KI2RlZmluZSBBR0VOVElEICAgICAgIE5FVFNOTVBfQUdFTlRJRAoKI2RlZmluZSBIUFVYOUlEICAgICAgIE5FVFNOTVBfSFBVWDlJRAojZGVmaW5lIFNVTk9TNElEICAgICAgTkVUU05NUF9TVU5PUzRJRAojZGVmaW5lIFNPTEFSSVNJRCAgICAgTkVUU05NUF9TT0xBUklTSUQKI2RlZmluZSBPU0ZJRCAgICAgICAgIE5FVFNOTVBfT1NGSUQKI2RlZmluZSBVTFRSSVhJRCAgICAgIE5FVFNOTVBfVUxUUklYSUQKI2RlZmluZSBIUFVYMTBJRCAgICAgIE5FVFNOTVBfSFBVWDEwSUQKI2RlZmluZSBORVRCU0QxSUQgICAgIE5FVFNOTVBfTkVUQlNEMUlECiNkZWZpbmUgRlJFRUJTRElEICAgICBORVRTTk1QX0ZSRUVCU0RJRAojZGVmaW5lIElSSVhJRCAgICAgICAgTkVUU05NUF9JUklYSUQKI2RlZmluZSBMSU5VWElEICAgICAgIE5FVFNOTVBfTElOVVhJRAojZGVmaW5lIEJTRElJRCAgICAgICAgTkVUU05NUF9CU0RJSUQKI2RlZmluZSBPUEVOQlNESUQgICAgIE5FVFNOTVBfT1BFTkJTRElECiNkZWZpbmUgV0lOMzJJRCAgICAgICBORVRTTk1QX1dJTjMySUQKI2RlZmluZSBIUFVYMTFJRCAgICAgIE5FVFNOTVBfSFBVWDExSUQKI2RlZmluZSBBSVhJRCAgICAgICAgIE5FVFNOTVBfQUlYSUQKI2RlZmluZSBNQUNPU1hJRCAgICAgIE5FVFNOTVBfTUFDT1NYSUQKI2RlZmluZSBVTktOT1dOSUQgICAgIE5FVFNOTVBfVU5LTk9XTklECgojZGVmaW5lIEVOVEVSUFJJU0VfT0lEICAgICAgICAgICAgTkVUU05NUF9FTlRFUlBSSVNFX09JRAojZGVmaW5lIEVOVEVSUFJJU0VfTUlCICAgICAgICAgICAgTkVUU05NUF9FTlRFUlBSSVNFX01JQgojZGVmaW5lIEVOVEVSUFJJU0VfRE9UX01JQiAgICAgICAgTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUIKI2RlZmluZSBFTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RIIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBTWVNURU1fTUlCCQkgIE5FVFNOTVBfU1lTVEVNX01JQgojZGVmaW5lIFNZU1RFTV9ET1RfTUlCCQkgIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUIKI2RlZmluZSBTWVNURU1fRE9UX01JQl9MRU5HVEgJICBORVRTTk1QX1NZU1RFTV9ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBOT1RJRklDQVRJT05fTUlCCSAgICBORVRTTk1QX05PVElGSUNBVElPTl9NSUIJCiNkZWZpbmUgTk9USUZJQ0FUSU9OX0RPVF9NSUIJICAgIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUIKI2RlZmluZSBOT1RJRklDQVRJT05fRE9UX01JQl9MRU5HVEggTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgVUNEQVZJU19PSUQJCSAgTkVUU05NUF9VQ0RBVklTX09JRAojZGVmaW5lIFVDREFWSVNfTUlCCQkgIE5FVFNOTVBfVUNEQVZJU19NSUIKI2RlZmluZSBVQ0RBVklTX0RPVF9NSUIJCSAgTkVUU05NUF9VQ0RBVklTX0RPVF9NSUIKI2RlZmluZSBVQ0RBVklTX0RPVF9NSUJfTEVOR1RICSAgTkVUU05NUF9VQ0RBVklTX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIEVSUk9SVElNRUxFTkdUSCBORVRTTk1QX0VSUk9SVElNRUxFTkdUSAoKI2lmZGVmIE5FVFNOTVBfUFJPQ0ZJWENNRAojIGRlZmluZSBQUk9DRklYQ01EIE5FVFNOTVBfUFJPQ0ZJWENNRAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VYRUNGSVhDTUQKIyBkZWZpbmUgRVhFQ0ZJWENNRCBORVRTTk1QX0VYRUNGSVhDTUQKI2VuZGlmCgojZGVmaW5lIEVYQ0FDSEVUSU1FICBORVRTTk1QX0VYQ0FDSEVUSU1FCiNkZWZpbmUgQ0FDSEVGSUxFICAgIE5FVFNOTVBfQ0FDSEVGSUxFCiNkZWZpbmUgTUFYQ0FDSEVTSVpFIE5FVFNOTVBfTUFYQ0FDSEVTSVpFCgojZGVmaW5lIERFRkRJU0tNSU5JTVVNU1BBQ0UgTkVUU05NUF9ERUZESVNLTUlOSU1VTVNQQUNFCiNkZWZpbmUgREVGTUFYTE9BREFWRSBORVRTTk1QX0RFRk1BWExPQURBVkUKI2RlZmluZSBNQVhSRUFEQ09VTlQgTkVUU05NUF9NQVhSRUFEQ09VTlQKCiNkZWZpbmUgU05NUEJMT0NLIE5FVFNOTVBfU05NUEJMT0NLCiNkZWZpbmUgUkVTVEFSVFNMRUVQIE5FVFNOTVBfUkVTVEFSVFNMRUVQCgojZGVmaW5lIE5VTV9DT01NVU5JVElFUwlORVRTTk1QX05VTV9DT01NVU5JVElFUwoKI2lmZGVmIE5FVFNOTVBfTk9fWkVST0xFTkdUSF9DT01NVU5JVFkKIyBkZWZpbmUgTk9fWkVST0xFTkdUSF9DT01NVU5JVFkgTkVUU05NUF9OT19aRVJPTEVOR1RIX0NPTU1VTklUWQojZW5kaWYKCiNkZWZpbmUgTEFTVEZJRUxEIE5FVFNOTVBfTEFTVEZJRUxECgojZGVmaW5lIENPTkZJR1VSRV9PUFRJT05TIE5FVFNOTVBfQ09ORklHVVJFX09QVElPTlMKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9BQUw1UFZDX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9BQUw1UFZDX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9BQUw1UFZDX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BJUFY2X0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9UQ1BJUFY2X0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BJUFY2X0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UTFNfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVExTX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NFQ01PRF9VU00KIyBkZWZpbmUgU05NUF9TRUNNT0RfVVNNIE5FVFNOTVBfU0VDTU9EX1VTTQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NFQ01PRF9LU00KIyBkZWZpbmUgU05NUF9TRUNNT0RfS1NNIE5FVFNOTVBfU0VDTU9EX0tTTQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NFQ01PRF9MT0NBTFNNIAojIGRlZmluZSBTTk1QX1NFQ01PRF9MT0NBTFNNIE5FVFNOTVBfU0VDTU9EX0xPQ0FMU00KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9SRUVOVFJBTlQKIyBkZWZpbmUgTlNfUkVFTlRSQU5UIE5FVFNOTVBfUkVFTlRSQU5UCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKIyBkZWZpbmUgSU5FVDYgTkVUU05NUF9FTkFCTEVfSVBWNgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VOQUJMRV9MT0NBTF9TTVVYCiMgZGVmaW5lIExPQ0FMX1NNVVggTkVUU05NUF9FTkFCTEVfTE9DQUxfU01VWAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0FHRU5UWF9ET01fU09DS19PTkxZCiMgZGVmaW5lIEFHRU5UWF9ET01fU09DS19PTkxZIE5FVFNOTVBfQUdFTlRYX0RPTV9TT0NLX09OTFkKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKIyBkZWZpbmUgU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX0tFUkJFUk9TX01JVAojIGRlZmluZSBNSVRfTkVXX0NSWVBUTyBORVRTTk1QX1VTRV9LRVJCRVJPU19NSVQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfSEVJTURBTAojIGRlZmluZSBIRUlNREFMIE5FVFNOTVBfVVNFX0tFUkJFUk9TX0hFSU1EQUwKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9BR0VOVFhfU09DS0VUCiMgZGVmaW5lIEFHRU5UWF9TT0NLRVQgTkVUU05NUF9BR0VOVFhfU09DS0VUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORwojIGRlZmluZSBESVNBQkxFX01JQl9MT0FESU5HIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYxCiMgZGVmaW5lIERJU0FCTEVfU05NUFYxIE5FVFNOTVBfRElTQUJMRV9TTk1QVjEKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKIyBkZWZpbmUgRElTQUJMRV9TTk1QVjJDIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAojIGRlZmluZSBESVNBQkxFX1NFVF9TVVBQT1JUIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfREVTCiMgZGVmaW5lIERJU0FCTEVfREVTIE5FVFNOTVBfRElTQUJMRV9ERVMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX01ENQojIGRlZmluZSBESVNBQkxFX01ENSBORVRTTk1QX0RJU0FCTEVfTUQ1CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRE9OVF9VU0VfTkxJU1QKIyBkZWZpbmUgRE9OVF9VU0VfTkxJU1QgTkVUU05NUF9ET05UX1VTRV9OTElTVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0NBTl9VU0VfTkxJU1QKIyBkZWZpbmUgQ0FOX1VTRV9OTElTVCBORVRTTk1QX0NBTl9VU0VfTkxJU1QKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9DQU5fVVNFX1NZU0NUTAojIGRlZmluZSBDQU5fVVNFX1NZU0NUTCBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMCiNlbmRpZgoKI2VuZGlmIC8qIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TICovCgoKI2VuZGlmIC8qIE5FVF9TTk1QX0NPTkZJR19IICovCg==