LyogCiAqIG5ldC1zbm1wIGNvbmZpZ3VyYXRpb24gaGVhZGVyIGZpbGUKICoKICogTk9URTogRE8gTk9UIEVESVQgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiBhcyB5b3VyIGNoYW5nZXMKICogICAgICAgd2lsbCBiZSBvdmVyd3JpdHRlbi4gVGhpcyBjb250ZW50IGlzIGluIGFjY29uZmlnLmggYW5kIG1lcmdlZAogKiAgICAgICBpbnRvIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gYnkgYXV0b2hlYWRlci4KICovCi8qIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodChzKS4gIFNlZQogKiB0aGUgTmV0LVNOTVAncyBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cwogKiB0aGF0IG1heSBhcHBseToKICovCi8qCiAqIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgY29weXJpZ2h0ZWQgYnk6CiAqIENvcHlyaWdodCCpIDIwMDMgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiBVc2UgaXMgc3ViamVjdCB0byBsaWNlbnNlIHRlcm1zIHNwZWNpZmllZCBpbiB0aGUgQ09QWUlORyBmaWxlCiAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAqLwoKI2lmbmRlZiBORVRfU05NUF9DT05GSUdfSAojZGVmaW5lIE5FVF9TTk1QX0NPTkZJR19ICgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9BVVRPQ09ORl9ERUZJTklUSU9OUyAqKioqKioqKiogKi8KLyoKICogcHV0IGFsbCBhdXRvY29uZi1zcGVjaWZpYyBkZWZpbml0aW9ucyBiZWxvdyBoZXJlCiAqCiAqLwojaWZuZGVmIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMKCi8qIGRlZmluaXRpb25zIGFkZGVkIGJ5IGNvbmZpZ3VyZSBvbi10aGUtZmx5ICovCkBUT1BACkBCT1RUT01ACgovKiBlbmQgb2YgZGVmaW5pdGlvbnMgYWRkZWQgYnkgY29uZmlndXJlIG9uLXRoZS1mbHkgKi8KCi8qIElmIHlvdSBoYXZlIG9wZW5zc2wgMC45Ljcgb3IgYWJvdmUsIHlvdSBsaWtlbHkgaGF2ZSBBRVMgc3VwcG9ydC4gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX09QRU5TU0wKI2lmIChkZWZpbmVkKE5FVFNOTVBfVVNFX09QRU5TU0wpICYmIGRlZmluZWQoSEFWRV9PUEVOU1NMX0FFU19IKSAmJiBkZWZpbmVkKEhBVkVfQUVTX0NGQjEyOF9FTkNSWVBUKSkgfHwgZGVmaW5lZChORVRTTk1QX1VTRV9JTlRFUk5BTF9DUllQVE8pCiNkZWZpbmUgSEFWRV9BRVMgMQojZW5kaWYKCi8qIGRlZmluZSByYW5kb20gZnVuY3Rpb25zICovCgojaWZuZGVmIEhBVkVfUkFORE9NCiNpZmRlZiBIQVZFX0xSQU5ENDgKI2RlZmluZSByYW5kb20gbHJhbmQ0OAojZGVmaW5lIHNyYW5kb20ocykgc3JhbmQ0OChzKQojZWxzZQojaWZkZWYgSEFWRV9SQU5ECiNkZWZpbmUgcmFuZG9tIHJhbmQKI2RlZmluZSBzcmFuZG9tKHMpIHNyYW5kKHMpCiNlbmRpZgojZW5kaWYKI2VuZGlmCgovKiBkZWZpbmUgc2lnbmFsIGlmIERORSAqLwoKI2lmbmRlZiBIQVZFX1NJR05BTAojaWZkZWYgSEFWRV9TSUdTRVQKI2RlZmluZSBzaWduYWwoYSxiKSBzaWdzZXQoYSxiKQojZW5kaWYKI2VuZGlmCgojaWZkZWYgSEFWRV9ETUFMTE9DX0gKI2RlZmluZSBETUFMTE9DX0ZVTkNfQ0hFQ0sKI2VuZGlmCgojZW5kaWYgLyogTkVUU05NUF9OT19BVVRPQ09ORl9ERUZJTklUSU9OUyAqLwoKCgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9DTEVBTl9OQU1FU1BBQ0UgKioqKioqKioqICovCi8qIAogKiBwdXQgYWxsIG5ldyBuZXQtc25tcC1zcGVjaWZpYyBkZWZpbml0aW9ucyBoZXJlCiAqCiAqIGFsbCBkZWZpbml0aW9ucyBNVVNUIGhhdmUgYSBORVRTTk1QXyBwcmVmaXgKICoKICovCgovKiBEZWZhdWx0IChTTk1QKSB2ZXJzaW9uIG51bWJlciBmb3IgdGhlIHRvb2xzIHRvIHVzZSAqLwojZGVmaW5lIE5FVFNOTVBfREVGQVVMVF9TTk1QX1ZFUlNJT04gMwoKLyogZG9uJ3QgY2hhbmdlIHRoZXNlIHZhbHVlcyEgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBWMSAgICAgIDB4QUFBQSAgICAgICAvKiByZWFkYWJsZSBieSBhbnlvbmUgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBWMkFOWSAgIDB4QTAwMCAgICAgICAvKiBWMiBBbnkgdHlwZSAoaW5jbHVkZXMgTm9BdXRoKSAqLwojZGVmaW5lIE5FVFNOTVBfU05NUFYyQVVUSCAgMHg4MDAwICAgICAgIC8qIFYyIEF1dGhlbnRpY2F0ZWQgcmVxdWVzdHMgb25seSAqLwoKLyogZGVmYXVsdCBsaXN0IG9mIG1pYnMgdG8gbG9hZCAqLwojZGVmaW5lIE5FVFNOTVBfREVGQVVMVF9NSUJTICJJUC1NSUI6SUYtTUlCOlRDUC1NSUI6VURQLU1JQjpTTk1QdjItTUlCOlJGQzEyMTMtTUlCIgoKLyogZGVidWdnaW5nIHN0dWZmICovCi8qIGlmIGRlZmluZWQsIHdlIG9wdGltaXplIHRoZSBjb2RlIHRvIGV4Y2x1ZGUgYWxsIGRlYnVnZ2luZyBjYWxscy4gKi8KI3VuZGVmIE5FVFNOTVBfTk9fREVCVUdHSU5HCi8qIGlnbm9yZSB0aGUgLUQgZmxhZyBhbmQgYWx3YXlzIHByaW50IGRlYnVnZ2luZyBpbmZvcm1hdGlvbiAqLwojZGVmaW5lIE5FVFNOTVBfQUxXQVlTX0RFQlVHIDAKCi8qIHJldmVyc2UgZW5jb2RpbmcgQkVSIHBhY2tldHMgaXMgYm90aCBmYXN0ZXIgYW5kIG1vcmUgZWZmaWNpZW50IGluIHNwYWNlLiAqLwojZGVmaW5lIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcgICAgICAgMQojZGVmaW5lIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04gMSAvKiAxID0gcmV2ZXJzZSwgMCA9IGZvcndhcmRzICovCgovKiBQRVJTSVNURU5UX0RJUkVDVE9SWTogSWYgZGVmaW5lZCwgdGhlIGxpYnJhcnkgaXMgY2FwYWJpbGUgb2Ygc2F2aW5nCiAgIHBlcnNpc2FudCBpbmZvcm1hdGlvbiB0byB0aGlzIGRpcmVjdG9yeSBpbiB0aGUgZm9ybSBvZiBjb25maWd1cmF0aW9uCiAgIGxpbmVzOiBQRVJTSVNURU5UX0RJUkVDVE9SWS9OQU1FLnBlcnNpc3RlbnQuY29uZiAqLwojZGVmaW5lIE5FVFNOTVBfUEVSU0lTVEVOVF9ESVJFQ1RPUlkgIi92YXIvc25tcCIKCi8qIEFHRU5UX0RJUkVDVE9SWV9NT0RFOiB0aGUgbW9kZSB0aGUgYWdlbnRzIHNob3VsZCB1c2UgdG8gY3JlYXRlCiAgIGRpcmVjdG9yaWVzIHdpdGguIFNpbmNlIHRoZSBkYXRhIHN0b3JlZCBoZXJlIGlzIHByb2JhYmx5IHNlbnNpdGl2ZSwgaXQKICAgcHJvYmFibHkgc2hvdWxkIGJlIHJlYWQtb25seSBieSByb290L2FkbWluaXN0cmF0b3IuICovCiNkZWZpbmUgTkVUU05NUF9BR0VOVF9ESVJFQ1RPUllfTU9ERSAwNzAwCgovKiBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTOgogKiAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwZXJzaXN0ZW50IGJhY2t1cHMgdGhlIGxpYnJhcnkgd2lsbCB0cnkgdG8KICogICByZWFkIGZyb20gdGhlIHBlcnNpc3RlbnQgY2FjaGUgZGlyZWN0b3J5LiAgSWYgYW4gYXBwbGljYXRpb24gZmFpbHMgdG8KICogICBjbG9zZSBkb3duIHN1Y2Nlc3NmdWxseSBtb3JlIHRoYW4gdGhpcyBudW1iZXIgb2YgdGltZXMsIGRhdGEgd2lsbCBiZSBsb3N0LgogKi8KI2RlZmluZSBORVRTTk1QX01BWF9QRVJTSVNURU5UX0JBQ0tVUFMgMTAKCi8qIGRlZmluZSB0aGUgc3lzdGVtIHR5cGUgaW5jbHVkZSBmaWxlIGhlcmUgKi8KI2RlZmluZSBORVRTTk1QX1NZU1RFTV9JTkNMVURFX0ZJTEUgPG5ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmg+CgovKiBkZWZpbmUgdGhlIG1hY2hpbmUgKGNwdSkgdHlwZSBpbmNsdWRlIGZpbGUgaGVyZSAqLwojZGVmaW5lIE5FVFNOTVBfTUFDSElORV9JTkNMVURFX0ZJTEUgPG5ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oPgoKLyogZGVmaW5lIHRoZSBVRFAgYnVmZmVyIGRlZmF1bHRzIHVuZGVmaW5lZCBtZWFucyB1c2UgdGhlIE9TIGJ1ZmZlcnMKICogYnkgZGVmYXVsdCAqLwojdW5kZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9TRU5EX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9SRUNWX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9TRU5EX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9SRUNWX0JVRgoKLyogbmV0LXNubXAncyBtYWpvciBwYXRoIG5hbWVzICovCiN1bmRlZiBTTk1QTElCUEFUSAojdW5kZWYgU05NUFNIQVJFUEFUSAojdW5kZWYgU05NUENPTkZQQVRICiN1bmRlZiBTTk1QRExNT0RQQVRICgovKiBORVRTTk1QX0xPR0ZJTEU6ICBJZiBkZWZpbmVkIGl0IGNsb3NlcyBzdGRvdXQvZXJyL2luIGFuZCBvcGVucyB0aGlzIGluIAogICBvdXQvZXJyJ3MgcGxhY2UuICAoc3RkaW4gaXMgY2xvc2VkIHNvIHRoYXQgc2ggc2NyaXB0cyB3b24ndCB3YWl0IGZvciBpdCkgKi8KI3VuZGVmIE5FVFNOTVBfTE9HRklMRQoKLyogZGVmYXVsdCBzeXN0ZW0gY29udGFjdCAqLwojdW5kZWYgTkVUU05NUF9TWVNfQ09OVEFDVAoKLyogc3lzdGVtIGxvY2F0aW9uICovCiN1bmRlZiBORVRTTk1QX1NZU19MT0MKCi8qIFVzZSBsaWJ3cmFwIHRvIGhhbmRsZSBhbGxvdy9kZW55IGhvc3RzPyAqLwojdW5kZWYgTkVUU05NUF9VU0VfTElCV1JBUAoKLyogTWliLTIgdHJlZSBJbmZvICovCi8qIFRoZXNlIGFyZSB0aGUgc3lzdGVtIGluZm9ybWF0aW9uIHZhcmlhYmxlcy4gKi8KCiNkZWZpbmUgTkVUU05NUF9WRVJTX0RFU0MgICAidW5rbm93biIgICAgICAgICAgICAgLyogb3ZlcnJpZGRlbiBhdCBydW4gdGltZSAqLwojZGVmaW5lIE5FVFNOTVBfU1lTX05BTUUgICAgInVua25vd24iICAgICAgICAgICAgIC8qIG92ZXJyaWRkZW4gYXQgcnVuIHRpbWUgKi8KCi8qIGNvbW1lbnQgb3V0IHRoZSBzZWNvbmQgZGVmaW5lIHRvIHR1cm4gb2ZmIGZ1bmN0aW9uYWxpdHkgZm9yIGFueSBvZgogICB0aGVzZTogKFNlZSBSRUFETUUgZm9yIGRldGFpbHMpICovCgovKiAgIHByb2MgUFJPQ0VTU05BTUUgW01BWF0gW01JTl0gKi8KI2RlZmluZSBORVRTTk1QX1BST0NNSUJOVU0gMgoKLyogICBleGVjL3NoZWxsIE5BTUUgQ09NTUFORCAgICAgICovCiNkZWZpbmUgTkVUU05NUF9TSEVMTE1JQk5VTSA4CgovKiAgIHN3YXAgTUlOICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBORVRTTk1QX01FTU1JQk5VTSA0CgovKiAgIGRpc2sgRElTSyBNSU5TSVpFICAgICAgICAgICAgKi8KI2RlZmluZSBORVRTTk1QX0RJU0tNSUJOVU0gOQoKLyogICBsb2FkIDEgNSAxNSAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9MT0FEQVZFTUlCTlVNIDEwCgovKiB3aGljaCB2ZXJzaW9uIGFyZSB5b3UgdXNpbmc/IFRoaXMgbWlibG9jIHdpbGwgdGVsbCB5b3UgKi8KI2RlZmluZSBORVRTTk1QX1ZFUlNJT05NSUJOVU0gMTAwCgovKiBSZXBvcnRzIGVycm9ycyB0aGUgYWdlbnQgcnVucyBpbnRvICovCi8qICh0eXBpY2FsbHkgaXRzICJjYW4ndCBmb3JrLCBubyBtZW0iIHByb2JsZW1zKSAqLwojZGVmaW5lIE5FVFNOTVBfRVJST1JNSUJOVU0gMTAxCgovKiBUaGUgc3ViIGlkIG9mIEVYVEVOU0lCTEVNSUIgcmV0dXJuZWQgdG8gcXVlcmllcyBvZgogICAuaXNvLm9yZy5kb2QuaW50ZXJuZXQubWdtdC5taWItMi5zeXN0ZW0uc3lzT2JqZWN0SUQuMCAqLwojZGVmaW5lIE5FVFNOTVBfQUdFTlRJRCAyNTAKCi8qIFRoaXMgSUQgaXMgcmV0dXJuZWQgYWZ0ZXIgdGhlIEFHRU5USUQgYWJvdmUuICBJRSwgdGhlIHJlc3VsdGluZwogICB2YWx1ZSByZXR1cm5lZCBieSBhIHF1ZXJ5IHRvIHN5c09iamVjdElEIGlzCiAgIEVYVEVOU0lCTEVNSUIuQUdFTlRJRC4/Pz8sIHdoZXJlID8/PyBpcyBkZWZpbmVkIGJlbG93IGJ5IE9TVFlQRSAqLwoKI2RlZmluZSBORVRTTk1QX0hQVVg5SUQgMQojZGVmaW5lIE5FVFNOTVBfU1VOT1M0SUQgMiAKI2RlZmluZSBORVRTTk1QX1NPTEFSSVNJRCAzCiNkZWZpbmUgTkVUU05NUF9PU0ZJRCA0CiNkZWZpbmUgTkVUU05NUF9VTFRSSVhJRCA1CiNkZWZpbmUgTkVUU05NUF9IUFVYMTBJRCA2CiNkZWZpbmUgTkVUU05NUF9ORVRCU0QxSUQgNwojZGVmaW5lIE5FVFNOTVBfRlJFRUJTRElEIDgKI2RlZmluZSBORVRTTk1QX0lSSVhJRCA5CiNkZWZpbmUgTkVUU05NUF9MSU5VWElEIDEwCiNkZWZpbmUgTkVUU05NUF9CU0RJSUQgMTEKI2RlZmluZSBORVRTTk1QX09QRU5CU0RJRCAxMgojZGVmaW5lIE5FVFNOTVBfV0lOMzJJRCAxMwojZGVmaW5lIE5FVFNOTVBfSFBVWDExSUQgMTQKI2RlZmluZSBORVRTTk1QX0FJWElEIDE1CiNkZWZpbmUgTkVUU05NUF9NQUNPU1hJRCAxNgojZGVmaW5lIE5FVFNOTVBfRFJBR09ORkxZSUQgMTcKI2RlZmluZSBORVRTTk1QX1VOS05PV05JRCAyNTUKCiNpZmRlZiBocHV4OQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSFBVWDlJRAojZW5kaWYKI2lmZGVmIGhwdXgxMAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSFBVWDEwSUQKI2VuZGlmCiNpZmRlZiBocHV4MTEKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVgxMUlECiNlbmRpZgojaWZkZWYgc3Vub3M0CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9TVU5PUzRJRAojZW5kaWYKI2lmZGVmIHNvbGFyaXMyCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9TT0xBUklTSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG9zZjMpIHx8IGRlZmluZWQob3NmNCkgfHwgZGVmaW5lZChvc2Y1KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfT1NGSUQKI2VuZGlmCiNpZmRlZiB1bHRyaXg0CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9VTFRSSVhJRAojZW5kaWYKI2lmIGRlZmluZWQobmV0YnNkMSkgfHwgZGVmaW5lZChuZXRic2QyKQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTkVUQlNEMUlECiNlbmRpZgojaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0ZSRUVCU0RJRAojZW5kaWYKI2lmIGRlZmluZWQoX19EcmFnb25GbHlfXykKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0RSQUdPTkZMWUlECiNlbmRpZgojaWYgZGVmaW5lZChpcml4NikgfHwgZGVmaW5lZChpcml4NSkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0lSSVhJRAojZW5kaWYKI2lmZGVmIGxpbnV4CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9MSU5VWElECiNlbmRpZgojaWYgZGVmaW5lZChic2RpMikgfHwgZGVmaW5lZChic2RpMykgfHwgZGVmaW5lZChic2RpNCkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0JTRElJRAojZW5kaWYKI2lmIGRlZmluZWQob3BlbmJzZCkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX09QRU5CU0RJRAojZW5kaWYKI2lmZGVmIFdJTjMyCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9XSU4zMklECiNlbmRpZgojaWYgZGVmaW5lZChhaXgzKSB8fCBkZWZpbmVkKGFpeDQpIHx8IGRlZmluZWQoYWl4NSkgfHwgZGVmaW5lZChhaXg2KSB8fCBkZWZpbmVkKGFpeDcpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9BSVhJRAojZW5kaWYKI2lmIGRlZmluZWQoZGFyd2luKSAmJiAoZGFyd2luID49IDgpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9NQUNPU1hJRAojZW5kaWYKLyogdW5rbm93biAqLwojaWZuZGVmIE5FVFNOTVBfT1NUWVBFCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9VTktOT1dOSUQKI2VuZGlmCgovKiBUaGUgZW50ZXJwcmlzZSBudW1iZXIgaGFzIGJlZW4gYXNzaWduZWQgYnkgdGhlIElBTkEgZ3JvdXAuICAgKi8KLyogT3B0aW9uYWxseSwgdGhpcyBtYXkgcG9pbnQgdG8gdGhlIGxvY2F0aW9uIGluIHRoZSB0cmVlIHlvdXIgICovCi8qIGNvbXBhbnkvb3JnYW5pemF0aW9uIGhhcyBiZWVuIGFsbG9jYXRlZC4gICAgICAgICAgICAgICAgICAgICAqLwovKiBUaGUgYXNzaWduZWQgZW50ZXJwcmlzZSBudW1iZXIgZm9yIHRoZSBORVRfU05NUCBNSUIgbW9kdWxlcy4gKi8KI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfT0lECQkJODA3MgojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9NSUIJCQkxLDMsNiwxLDQsMSw4MDcyCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIKI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQl9MRU5HVEgJNwoKLyogVGhlIGFzc2lnbmVkIGVudGVycHJpc2UgbnVtYmVyIGZvciBzeXNPYmplY3RJRC4gKi8KI2RlZmluZSBORVRTTk1QX1NZU1RFTV9NSUIJCTEsMyw2LDEsNCwxLDgwNzIsMywyLE5FVFNOTVBfT1NUWVBFCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fRE9UX01JQgkJMS4zLjYuMS40LjEuODA3Mi4zLjIuTkVUU05NUF9PU1RZUEUKI2RlZmluZSBORVRTTk1QX1NZU1RFTV9ET1RfTUlCX0xFTkdUSAkxMAoKLyogVGhlIGFzc2lnbmVkIGVudGVycHJpc2UgbnVtYmVyIGZvciBub3RpZmljYXRpb25zLiAqLwojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX01JQgkJMSwzLDYsMSw0LDEsODA3Miw0CiNkZWZpbmUgTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQgkJMS4zLjYuMS40LjEuODA3Mi40CiNkZWZpbmUgTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQl9MRU5HVEgJOAoKLyogdGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIHVjZGF2aXMgbWliIHRyZWUuICBJdCBzaG91bGRuJ3QgYmUKICAgY2hhbmdlZCwgYXMgdGhlIHBsYWNlcyBpdCBpcyB1c2VkIGFyZSBleHBlY3RlZCB0byBiZSBjb25zdGFudAogICB2YWx1ZXMgb3IgYXJlIGRpcmVjdGx5IHRpZWQgdG8gdGhlIFVDRC1TTk1QLU1JQi4gKi8KI2RlZmluZSBORVRTTk1QX1VDREFWSVNfT0lECQkyMDIxCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX01JQgkJMSwzLDYsMSw0LDEsMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19ET1RfTUlCCQkxLjMuNi4xLjQuMS4yMDIxCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX0RPVF9NSUJfTEVOR1RICTcKCi8qIGhvdyBsb25nIHRvIHdhaXQgKHNlY29uZHMpIGZvciBlcnJvciBxdWVyeXMgYmVmb3JlIHJlc2V0aW5nIHRoZSBlcnJvciB0cmFwLiovCiNkZWZpbmUgTkVUU05NUF9FUlJPUlRJTUVMRU5HVEggNjAwIAoKLyogRXhlYyBjb21tYW5kIHRvIGZpeCBQUk9DIHByb2JsZW1zICovCi8qICVzIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIHByb2Nlc3MgbmFtZSBpbiBlcnJvciAqLwoKLyogI2RlZmluZSBORVRTTk1QX1BST0NGSVhDTUQgIi91c3IvYmluL3BlcmwgL2xvY2FsL3NjcmlwdHMvZml4cHJvYyAlcyIgKi8KCi8qIEV4ZWMgY29tbWFuZCB0byBmaXggRVhFQyBwcm9ibGVtcyAqLwovKiAlcyB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBleGVjL3NjcmlwdCBuYW1lIGluIGVycm9yICovCgovKiAjZGVmaW5lIE5FVFNOTVBfRVhFQ0ZJWENNRCAiL3Vzci9iaW4vcGVybCAvbG9jYWwvc2NyaXB0cy9maXhwcm9jICVzIiAqLwoKLyogU2hvdWxkIGV4ZWMgb3V0cHV0IENhc2hpbmcgYmUgdXNlZCAoc3BlZWRzIHVwIHRoaW5ncyBncmVhdGx5KSwgYW5kCiAgIGlmIHNvLCBBZnRlciBob3cgbWFueSBzZWNvbmRzIHNob3VsZCB0aGUgY2FjaGUgcmUtbmV3ZWQ/ICBOb3RlOgogICBEb24ndCBkZWZpbmUgQ0FTSEVUSU1FIHRvIGRpc2FibGUgY2FzaGluZyBjb21wbGV0ZWx5ICovCgojZGVmaW5lIE5FVFNOTVBfRVhDQUNIRVRJTUUgMzAKI2RlZmluZSBORVRTTk1QX0NBQ0hFRklMRSAiLnNubXAtZXhlYy1jYWNoZSIKI2RlZmluZSBORVRTTk1QX01BWENBQ0hFU0laRSAoMTUwMCo4MCkgICAvKiByb3VnaGx5IDE1MDAgbGluZXMgbWF4ICovCgovKiBtaXNjIGRlZmF1bHRzICovCgovKiBkZWZhdWx0IG9mIDEwMCBtZWcgbWluaW11bSBpZiB0aGUgbWluaW11bSBzaXplIGlzIG5vdCBzcGVjaWZpZWQgaW4KICAgdGhlIGNvbmZpZyBmaWxlICovCiNkZWZpbmUgTkVUU05NUF9ERUZESVNLTUlOSU1VTVNQQUNFIDEwMDAwMAoKLyogZGVmYXVsdCBtYXhpbXVtIGxvYWQgYXZlcmFnZSBiZWZvcmUgZXJyb3IgKi8KI2RlZmluZSBORVRTTk1QX0RFRk1BWExPQURBVkUgMTIuMAoKLyogbWF4IHRpbWVzIHRvIGxvb3AgcmVhZGluZyBvdXRwdXQgZnJvbSBleGVjcy4gKi8KLyogQmVjYXVzZSBvZiBzbGVlcCgxKXMsIHRoaXMgd2lsbCBhbHNvIGJlIHRpbWUgdG8gd2FpdCAoaW4gc2Vjb25kcykgZm9yIGV4ZWMKICAgdG8gZmluaXNoICovCiNkZWZpbmUgTkVUU05NUF9NQVhSRUFEQ09VTlQgMTAwCgovKiBTZXQgaWYgc25tcGdldHMgc2hvdWxkIGJsb2NrIGFuZCBuZXZlciB0aW1lb3V0ICovCi8qIFRoZSBvcmlnaW5hbCBDTVUgY29kZSBoYWQgdGhpcyBoYXJkY29kZWQgYXMgPSAxICovCiNkZWZpbmUgTkVUU05NUF9TTk1QQkxPQ0sgMQoKLyogSG93IGxvbmcgdG8gd2FpdCBiZWZvcmUgcmVzdGFydGluZyB0aGUgYWdlbnQgYWZ0ZXIgYSBzbm1wc2V0IHRvCiAgIEVYVEVOU0lCTEVNSUIuVkVSU0lPTk1JQk5VTS5WRVJSRVNUQVJUQUdFTlQuICBUaGlzIGlzCiAgIG5lY2Vzc2FyeSB0byBmaW5pc2ggdGhlIHNubXBzZXQgcmVwbHkgYmVmb3JlIHJlc3RhcnRpbmcuICovCiNkZWZpbmUgTkVUU05NUF9SRVNUQVJUU0xFRVAgNQoKLyogVU5kZWZpbmUgdG8gYWxsb3cgc3BlY2lmeWluZyB6ZXJvLWxlbmd0aCBjb21tdW5pdHkgc3RyaW5nICovCi8qICNkZWZpbmUgTkVUU05NUF9OT19aRVJPTEVOR1RIX0NPTU1VTklUWSAxICovCgovKiBOdW1iZXIgb2YgY29tbXVuaXR5IHN0cmluZ3MgdG8gc3RvcmUgKi8KI2RlZmluZSBORVRTTk1QX05VTV9DT01NVU5JVElFUwk1CgovKiBpbnRlcm5hbCBkZWZpbmUgKi8KI2RlZmluZSBORVRTTk1QX0xBU1RGSUVMRCAtMQoKLyogIFBsdWdnYWJsZSB0cmFuc3BvcnRzLiAgKi8KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFVEUC9JUCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlICJjYWxsYmFjayIgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFRDUC9JUCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVW5peCB0cmFuc3BvcnQgZG9tYWluCiAgICAoYS5rLmEuICJsb2NhbCBJUEMiKSBpcyBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVU5JWF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIEFBTDUgUFZDIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9BQUw1UFZDX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgSVBYIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBVRFAvSVB2NiB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFRDUC9JUHY2IHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BJUFY2X0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVExTIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVExTQkFTRV9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIEFsaWFzIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQUxJQVNfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBTU0ggdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9TU0hfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBEVExTL1VEUCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0RUTFNVRFBfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUTFMvVENQIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVExTVENQX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciBzdGRpbi9vdXQgdHJhbnNwb3J0IGRvbWFpbiBpcyBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIElQdjRCYXNlIHRyYW5zcG9ydCBkb21haW4gaXMgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9JUFY0QkFTRV9ET01BSU4KCi8qIGRlZmluZSB0aGlzIGlmIHRoZSBVU00gc2VjdXJpdHkgbW9kdWxlIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgTkVUU05NUF9TRUNNT0RfVVNNCgovKiBkZWZpbmUgdGhpcyBpZiB0aGUgS1NNIChrZXJiZXJvcyBiYXNlZCBzbm1wKSBzZWN1cml0eSBtb2R1bGUgaXMgYXZhaWxhYmxlICovCiN1bmRlZiBORVRTTk1QX1NFQ01PRF9LU00KCi8qIGRlZmluZSB0aGlzIGlmIHRoZSBsb2NhbCBzZWN1cml0eSBtb2R1bGUgaXMgYXZhaWxhYmxlICovCiN1bmRlZiBORVRTTk1QX1NFQ01PRF9MT0NBTFNNCgovKiBkZWZpbmUgaWYgY29uZmlndXJlZCBhcyBhICJtaW5pLWFnZW50IiAqLwojdW5kZWYgTkVUU05NUF9NSU5JX0FHRU5UCgovKiB0aGlzIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgbmV0LXNubXAgbWliIHRyZWUuICBJdCBzaG91bGRuJ3QgYmUKICAgY2hhbmdlZCwgYXMgdGhlIHBsYWNlcyBpdCBpcyB1c2VkIGFyZSBleHBlY3RlZCB0byBiZSBjb25zdGFudAogICB2YWx1ZXMgb3IgYXJlIGRpcmVjdGx5IHRpZWQgdG8gdGhlIFVDRC1TTk1QLU1JQi4gKi8KI2RlZmluZSBORVRTTk1QX09JRAkJODA3MgojZGVmaW5lIE5FVFNOTVBfTUlCCQkxLDMsNiwxLDQsMSw4MDcyCiNkZWZpbmUgTkVUU05NUF9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyCiNkZWZpbmUgTkVUU05NUF9ET1RfTUlCX0xFTkdUSAk3CgovKiBwYXR0ZXJuIGZvciB0ZW1wb3JhcnkgZmlsZSBuYW1lcyAqLwojZGVmaW5lIE5FVFNOTVBfVEVNUF9GSUxFX1BBVFRFUk4gIi90bXAvc25tcGRYWFhYWFgiCgovKgogKiB0aGlzIG11c3QgYmUgYmVmb3JlIHRoZSBzeXN0ZW0vbWFjaGluZSBpbmNsdWRlcywgdG8gYWxsb3cgdGhlbSB0bwogKiBvdmVycmlkZSBhbmQgdHVybiBvZmYgaW5saW5pbmcuIFRvIGRvIHNvLCB0aGV5IHNob3VsZCBkbyB0aGUKICogZm9sbG93aW5nOgogKgogKiAgICAjdW5kZWYgTkVUU05NUF9FTkFCTEVfSU5MSU5FCiAqICAgICNkZWZpbmUgTkVUU05NUF9FTkFCTEVfSU5MSU5FIDAKICoKICogQSB1c2VyIGhhdmluZyBwcm9ibGVtcyB3aXRoIHRoZWlyIGNvbXBpbGVyIGNhbiBhbHNvIHR1cm4gb2ZmCiAqIHRoZSB1c2Ugb2YgaW5saW5lIGJ5IGRlZmluaW5nIE5FVFNOTVBfTk9fSU5MSU5FIHZpYSB0aGVpciBjZmxhZ3M6CiAqCiAqICAgIC1ETkVUU05NUF9OT19JTkxJTkUKICoKICogSGVhZGVyIGFuZCBzb3VyY2UgZmlsZXMgc2hvdWxkIG9ubHkgdGVzdCBhZ2FpbnN0IE5FVFNOTVBfVVNFX0lOTElORToKICoKICogICAjaWZkZWYgTkVUU05NUF9VU0VfSU5MSU5FCiAqICAgTkVUU05NUF9JTkxJTkUgZnVuY3Rpb24oaW50IHBhcm0pIHsgcmV0dXJuIHBhcm0gLTE7IH0KICogICAjZW5kaWYKICoKICogRnVuY3Rpb25zIHdoaWNoIHNob3VsZCBiZSBzdGF0aWMsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgaW5saW5lCiAqIGlzIGF2YWlsYWJsZSBvciBlbmFibGVkIHNob3VsZCB1c2UgdGhlIE5FVFNOTVBfU1RBVElDX0lOTElORSBtYWNybywKICogbGlrZSBzbzoKICoKICogICAgTkVUU05NUF9TVEFUSUNfSU5MSU5FIGZ1bmN0aW9uKGludCBwYXJtKSB7IHJldHVybiBwYXJtIC0xOyB9CiAqCiAqIE5PVCBsaWtlIHRoaXM6CiAqCiAqICAgIHN0YXRpYyBORVRTTk1QX0lOTElORSBmdW5jdGlvbihpbnQgcGFybSkgeyByZXR1cm4gcGFybSAtMTsgfQogKgogKi8KI2lmZGVmIE5FVFNOTVBfQlJPS0VOX0lOTElORQojICAgZGVmaW5lIE5FVFNOTVBfRU5BQkxFX0lOTElORSAwCiNlbHNlCiMgICBkZWZpbmUgTkVUU05NUF9FTkFCTEVfSU5MSU5FIDEKI2VuZGlmCgojaW5jbHVkZSBORVRTTk1QX1NZU1RFTV9JTkNMVURFX0ZJTEUKI2luY2x1ZGUgTkVUU05NUF9NQUNISU5FX0lOQ0xVREVfRklMRQoKI2lmIE5FVFNOTVBfRU5BQkxFX0lOTElORSAmJiAhZGVmaW5lZChORVRTTk1QX05PX0lOTElORSkKIyAgIGRlZmluZSBORVRTTk1QX1VTRV9JTkxJTkUgMQojICAgaWZuZGVmIE5FVFNOTVBfSU5MSU5FCiMgICAgICBkZWZpbmUgTkVUU05NUF9JTkxJTkUgaW5saW5lCiMgICBlbmRpZgojICAgaWZuZGVmIE5FVFNOTVBfU1RBVElDX0lOTElORQojICAgICAgZGVmaW5lIE5FVFNOTVBfU1RBVElDX0lOTElORSBzdGF0aWMgaW5saW5lCiMgICBlbmRpZgojZWxzZQojICAgZGVmaW5lIE5FVFNOTVBfSU5MSU5FIAojICAgZGVmaW5lIE5FVFNOTVBfU1RBVElDX0lOTElORSBzdGF0aWMKI2VuZGlmCgojaWZuZGVmIE5FVFNOTVBfSU1QT1JUCiMgIGRlZmluZSBORVRTTk1QX0lNUE9SVCBleHRlcm4KI2VuZGlmCgovKiBjb21tZW50IHRoZSBuZXh0IGxpbmUgaWYgeW91IGFyZSBjb21waWxpbmcgd2l0aCBsaWJzbm1wLmggCiAgIGFuZCBhcmUgbm90IHVzaW5nIHRoZSBVQy1EYXZpcyBTTk1QIGxpYnJhcnkuICovCiNkZWZpbmUgVUNEX1NOTVBfTElCUkFSWSAxCgovKiBmaW5hbCBjb25jbHVzaW9uIG9uIG5saXN0IHVzYWdlICovCiNpZiBkZWZpbmVkKEhBVkVfTkxJU1QpICYmIGRlZmluZWQoSEFWRV9TVFJVQ1RfTkxJU1RfTl9WQUxVRSkgJiYgIWRlZmluZWQoTkVUU05NUF9ET05UX1VTRV9OTElTVCkgJiYgZGVmaW5lZChIQVZFX0tNRU0pICYmICFkZWZpbmVkKE5FVFNOTVBfTk9fS01FTV9VU0FHRSkKI2RlZmluZSBORVRTTk1QX0NBTl9VU0VfTkxJU1QKI2VuZGlmCgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9MRUdBQ1lfREVGSU5JVElPTlMgKioqKioqKioqLwovKiAKICogZXhpc3RpbmcgZGVmaW5pdGlvbnMgcHJpb3IgdG8gTmV0LVNOTVAgNS40CiAqCiAqIGRvIG5vdCBhZGQgYW55dGhpbmcgbmV3IGhlcmUKICoKICovCgojaWZuZGVmIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX1NOTVBfVkVSU0lPTgojIGRlZmluZSBERUZBVUxUX1NOTVBfVkVSU0lPTiBORVRTTk1QX0RFRkFVTFRfU05NUF9WRVJTSU9OCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFYxCiMgZGVmaW5lIFNOTVBWMSBORVRTTk1QX1NOTVBWMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBWMkFOWQojIGRlZmluZSBTTk1QVjJBTlkgTkVUU05NUF9TTk1QVjJBTlkKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVjJBVVRICiMgZGVmaW5lIFNOTVBWMkFVVEggTkVUU05NUF9TTk1QVjJBVVRICiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJTCiMgZGVmaW5lIERFRkFVTFRfTUlCUyBORVRTTk1QX0RFRkFVTFRfTUlCUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRElSUwojIGRlZmluZSBERUZBVUxUX01JQkRJUlMgTkVUU05NUF9ERUZBVUxUX01JQkRJUlMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCiMgZGVmaW5lIERFRkFVTFRfTUlCRklMRVMgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfV0lUSF9PUEFRVUVfU1BFQ0lBTF9UWVBFUwojIGRlZmluZSBPUEFRVUVfU1BFQ0lBTF9UWVBFUyBORVRTTk1QX1dJVEhfT1BBUVVFX1NQRUNJQUxfVFlQRVMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKIyBkZWZpbmUgU0NBUElfQVVUSFBSSVYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CiMgZGVmaW5lIFVTRV9JTlRFUk5BTF9NRDUgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX1BLQ1MxMQojIGRlZmluZSBVU0VfUEtDUyBORVRTTk1QX1VTRV9QS0NTMTEKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfT1BFTlNTTAojIGRlZmluZSBVU0VfT1BFTlNTTCBORVRTTk1QX1VTRV9PUEVOU1NMCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fREVCVUdHSU5HCiMgZGVmaW5lIFNOTVBfTk9fREVCVUdHSU5HIE5FVFNOTVBfTk9fREVCVUdHSU5HCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUxXQVlTX0RFQlVHCiMgZGVmaW5lIFNOTVBfQUxXQVlTX0RFQlVHIE5FVFNOTVBfQUxXQVlTX0RFQlVHCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcKIyBkZWZpbmUgVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcgTkVUU05NUF9VU0VfUkVWRVJTRV9BU05FTkNPRElORwojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04KIyBkZWZpbmUgREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04gTkVUU05NUF9ERUZBVUxUX0FTTkVOQ09ESU5HX0RJUkVDVElPTgojZW5kaWYKCiNkZWZpbmUgUEVSU0lTVEVOVF9ESVJFQ1RPUlkgTkVUU05NUF9QRVJTSVNURU5UX0RJUkVDVE9SWQojZGVmaW5lIFBFUlNJU1RFTlRfTUFTSyBORVRTTk1QX1BFUlNJU1RFTlRfTUFTSwojZGVmaW5lIEFHRU5UX0RJUkVDVE9SWV9NT0RFIE5FVFNOTVBfQUdFTlRfRElSRUNUT1JZX01PREUKI2RlZmluZSBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTIE5FVFNOTVBfTUFYX1BFUlNJU1RFTlRfQkFDS1VQUwojZGVmaW5lIFNZU1RFTV9JTkNMVURFX0ZJTEUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFCiNkZWZpbmUgTUFDSElORV9JTkNMVURFX0ZJTEUgTkVUU05NUF9NQUNISU5FX0lOQ0xVREVfRklMRQoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKIyBkZWZpbmUgREVGQVVMVF9TRVJWRVJfU0VORF9CVUYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9TRU5EX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKIyBkZWZpbmUgREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9SRUNWX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKIyBkZWZpbmUgREVGQVVMVF9DTElFTlRfU0VORF9CVUYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9TRU5EX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKIyBkZWZpbmUgREVGQVVMVF9DTElFTlRfUkVDVl9CVUYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9SRUNWX0JVRgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0xPR0ZJTEUKIyBkZWZpbmUgTE9HRklMRSBORVRTTk1QX0xPR0ZJTEUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TWVNfQ09OVEFDVAojIGRlZmluZSBTWVNfQ09OVEFDVCBORVRTTk1QX1NZU19DT05UQUNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU1lTX0xPQwojIGRlZmluZSBTWVNfTE9DIE5FVFNOTVBfU1lTX0xPQwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9MSUJXUkFQCiMgZGVmaW5lIFVTRV9MSUJXUkFQIE5FVFNOTVBfVVNFX0xJQldSQVAKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFIAojIGRlZmluZSBTTk1QX1RFU1RJTkdfQ09ERSBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19ST09UX0FDQ0VTUwojIGRlZmluZSBOT19ST09UX0FDQ0VTUyBORVRTTk1QX05PX1JPT1RfQUNDRVNTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fS01FTV9VU0FHRQojIGRlZmluZSBOT19LTUVNX1VTQUdFIE5FVFNOTVBfTk9fS01FTV9VU0FHRQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX0RVTU1ZX1ZBTFVFUwojIGRlZmluZSBOT19EVU1NWV9WQUxVRVMgTkVUU05NUF9OT19EVU1NWV9WQUxVRVMKI2VuZGlmCgojZGVmaW5lIFZFUlNfREVTQyAgICAgTkVUU05NUF9WRVJTX0RFU0MKI2RlZmluZSBTWVNfTkFNRSAgICAgIE5FVFNOTVBfU1lTX05BTUUKCiNkZWZpbmUgUFJPQ01JQk5VTSAgICBORVRTTk1QX1BST0NNSUJOVU0KI2RlZmluZSBTSEVMTE1JQk5VTSAgIE5FVFNOTVBfU0hFTExNSUJOVU0KI2RlZmluZSBNRU1NSUJOVU0gICAgIE5FVFNOTVBfTUVNTUlCTlVNCiNkZWZpbmUgRElTS01JQk5VTSAgICBORVRTTk1QX0RJU0tNSUJOVU0KCiNkZWZpbmUgTE9BREFWRU1JQk5VTSBORVRTTk1QX0xPQURBVkVNSUJOVU0KI2RlZmluZSBWRVJTSU9OTUlCTlVNIE5FVFNOTVBfVkVSU0lPTk1JQk5VTQojZGVmaW5lIEVSUk9STUlCTlVNICAgTkVUU05NUF9FUlJPUk1JQk5VTQojZGVmaW5lIEFHRU5USUQgICAgICAgTkVUU05NUF9BR0VOVElECgojZGVmaW5lIEhQVVg5SUQgICAgICAgTkVUU05NUF9IUFVYOUlECiNkZWZpbmUgU1VOT1M0SUQgICAgICBORVRTTk1QX1NVTk9TNElECiNkZWZpbmUgU09MQVJJU0lEICAgICBORVRTTk1QX1NPTEFSSVNJRAojZGVmaW5lIE9TRklEICAgICAgICAgTkVUU05NUF9PU0ZJRAojZGVmaW5lIFVMVFJJWElEICAgICAgTkVUU05NUF9VTFRSSVhJRAojZGVmaW5lIEhQVVgxMElEICAgICAgTkVUU05NUF9IUFVYMTBJRAojZGVmaW5lIE5FVEJTRDFJRCAgICAgTkVUU05NUF9ORVRCU0QxSUQKI2RlZmluZSBGUkVFQlNESUQgICAgIE5FVFNOTVBfRlJFRUJTRElECiNkZWZpbmUgSVJJWElEICAgICAgICBORVRTTk1QX0lSSVhJRAojZGVmaW5lIExJTlVYSUQgICAgICAgTkVUU05NUF9MSU5VWElECiNkZWZpbmUgQlNESUlEICAgICAgICBORVRTTk1QX0JTRElJRAojZGVmaW5lIE9QRU5CU0RJRCAgICAgTkVUU05NUF9PUEVOQlNESUQKI2RlZmluZSBXSU4zMklEICAgICAgIE5FVFNOTVBfV0lOMzJJRAojZGVmaW5lIEhQVVgxMUlEICAgICAgTkVUU05NUF9IUFVYMTFJRAojZGVmaW5lIEFJWElEICAgICAgICAgTkVUU05NUF9BSVhJRAojZGVmaW5lIE1BQ09TWElEICAgICAgTkVUU05NUF9NQUNPU1hJRAojZGVmaW5lIFVOS05PV05JRCAgICAgTkVUU05NUF9VTktOT1dOSUQKCiNkZWZpbmUgRU5URVJQUklTRV9PSUQgICAgICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfT0lECiNkZWZpbmUgRU5URVJQUklTRV9NSUIgICAgICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfTUlCCiNkZWZpbmUgRU5URVJQUklTRV9ET1RfTUlCICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQgojZGVmaW5lIEVOVEVSUFJJU0VfRE9UX01JQl9MRU5HVEggTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIFNZU1RFTV9NSUIJCSAgTkVUU05NUF9TWVNURU1fTUlCCiNkZWZpbmUgU1lTVEVNX0RPVF9NSUIJCSAgTkVUU05NUF9TWVNURU1fRE9UX01JQgojZGVmaW5lIFNZU1RFTV9ET1RfTUlCX0xFTkdUSAkgIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIE5PVElGSUNBVElPTl9NSUIJICAgIE5FVFNOTVBfTk9USUZJQ0FUSU9OX01JQgkKI2RlZmluZSBOT1RJRklDQVRJT05fRE9UX01JQgkgICAgTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQgojZGVmaW5lIE5PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSCBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBVQ0RBVklTX09JRAkJICBORVRTTk1QX1VDREFWSVNfT0lECiNkZWZpbmUgVUNEQVZJU19NSUIJCSAgTkVUU05NUF9VQ0RBVklTX01JQgojZGVmaW5lIFVDREFWSVNfRE9UX01JQgkJICBORVRTTk1QX1VDREFWSVNfRE9UX01JQgojZGVmaW5lIFVDREFWSVNfRE9UX01JQl9MRU5HVEgJICBORVRTTk1QX1VDREFWSVNfRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgRVJST1JUSU1FTEVOR1RIIE5FVFNOTVBfRVJST1JUSU1FTEVOR1RICgojaWZkZWYgTkVUU05NUF9QUk9DRklYQ01ECiMgZGVmaW5lIFBST0NGSVhDTUQgTkVUU05NUF9QUk9DRklYQ01ECiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRVhFQ0ZJWENNRAojIGRlZmluZSBFWEVDRklYQ01EIE5FVFNOTVBfRVhFQ0ZJWENNRAojZW5kaWYKCiNkZWZpbmUgRVhDQUNIRVRJTUUgIE5FVFNOTVBfRVhDQUNIRVRJTUUKI2RlZmluZSBDQUNIRUZJTEUgICAgTkVUU05NUF9DQUNIRUZJTEUKI2RlZmluZSBNQVhDQUNIRVNJWkUgTkVUU05NUF9NQVhDQUNIRVNJWkUKCiNkZWZpbmUgREVGRElTS01JTklNVU1TUEFDRSBORVRTTk1QX0RFRkRJU0tNSU5JTVVNU1BBQ0UKI2RlZmluZSBERUZNQVhMT0FEQVZFIE5FVFNOTVBfREVGTUFYTE9BREFWRQojZGVmaW5lIE1BWFJFQURDT1VOVCBORVRTTk1QX01BWFJFQURDT1VOVAoKI2RlZmluZSBTTk1QQkxPQ0sgTkVUU05NUF9TTk1QQkxPQ0sKI2RlZmluZSBSRVNUQVJUU0xFRVAgTkVUU05NUF9SRVNUQVJUU0xFRVAKCiNkZWZpbmUgTlVNX0NPTU1VTklUSUVTCU5FVFNOTVBfTlVNX0NPTU1VTklUSUVTCgojaWZkZWYgTkVUU05NUF9OT19aRVJPTEVOR1RIX0NPTU1VTklUWQojIGRlZmluZSBOT19aRVJPTEVOR1RIX0NPTU1VTklUWSBORVRTTk1QX05PX1pFUk9MRU5HVEhfQ09NTVVOSVRZCiNlbmRpZgoKI2RlZmluZSBMQVNURklFTEQgTkVUU05NUF9MQVNURklFTEQKCiNkZWZpbmUgQ09ORklHVVJFX09QVElPTlMgTkVUU05NUF9DT05GSUdVUkVfT1BUSU9OUwoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVExTX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UTFNfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQojIGRlZmluZSBTTk1QX1NFQ01PRF9VU00gTkVUU05NUF9TRUNNT0RfVVNNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX0tTTQojIGRlZmluZSBTTk1QX1NFQ01PRF9LU00gTkVUU05NUF9TRUNNT0RfS1NNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX0xPQ0FMU00gCiMgZGVmaW5lIFNOTVBfU0VDTU9EX0xPQ0FMU00gTkVUU05NUF9TRUNNT0RfTE9DQUxTTQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1JFRU5UUkFOVAojIGRlZmluZSBOU19SRUVOVFJBTlQgTkVUU05NUF9SRUVOVFJBTlQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgojIGRlZmluZSBJTkVUNiBORVRTTk1QX0VOQUJMRV9JUFY2CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0xPQ0FMX1NNVVgKIyBkZWZpbmUgTE9DQUxfU01VWCBORVRTTk1QX0VOQUJMRV9MT0NBTF9TTVVYCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUdFTlRYX0RPTV9TT0NLX09OTFkKIyBkZWZpbmUgQUdFTlRYX0RPTV9TT0NLX09OTFkgTkVUU05NUF9BR0VOVFhfRE9NX1NPQ0tfT05MWQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWAojIGRlZmluZSBTTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfTUlUCiMgZGVmaW5lIE1JVF9ORVdfQ1JZUFRPIE5FVFNOTVBfVVNFX0tFUkJFUk9TX01JVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19IRUlNREFMCiMgZGVmaW5lIEhFSU1EQUwgTkVUU05NUF9VU0VfS0VSQkVST1NfSEVJTURBTAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0FHRU5UWF9TT0NLRVQKIyBkZWZpbmUgQUdFTlRYX1NPQ0tFVCBORVRTTk1QX0FHRU5UWF9TT0NLRVQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiMgZGVmaW5lIERJU0FCTEVfTUlCX0xPQURJTkcgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TTk1QVjEKIyBkZWZpbmUgRElTQUJMRV9TTk1QVjEgTkVUU05NUF9ESVNBQkxFX1NOTVBWMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYyQwojIGRlZmluZSBESVNBQkxFX1NOTVBWMkMgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCiMgZGVmaW5lIERJU0FCTEVfU0VUX1NVUFBPUlQgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9ERVMKIyBkZWZpbmUgRElTQUJMRV9ERVMgTkVUU05NUF9ESVNBQkxFX0RFUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfTUQ1CiMgZGVmaW5lIERJU0FCTEVfTUQ1IE5FVFNOTVBfRElTQUJMRV9NRDUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ET05UX1VTRV9OTElTVAojIGRlZmluZSBET05UX1VTRV9OTElTVCBORVRTTk1QX0RPTlRfVVNFX05MSVNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojIGRlZmluZSBDQU5fVVNFX05MSVNUIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMCiMgZGVmaW5lIENBTl9VU0VfU1lTQ1RMIE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKI2VuZGlmCgojZW5kaWYgLyogTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMgKi8KCgojZW5kaWYgLyogTkVUX1NOTVBfQ09ORklHX0ggKi8K