LyogCiAqIG5ldC1zbm1wIGNvbmZpZ3VyYXRpb24gaGVhZGVyIGZpbGUKICovCi8qIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodChzKS4gIFNlZQogKiB0aGUgTmV0LVNOTVAncyBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cwogKiB0aGF0IG1heSBhcHBseToKICovCi8qCiAqIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgY29weXJpZ2h0ZWQgYnk6CiAqIENvcHlyaWdodCCpIDIwMDMgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiBVc2UgaXMgc3ViamVjdCB0byBsaWNlbnNlIHRlcm1zIHNwZWNpZmllZCBpbiB0aGUgQ09QWUlORyBmaWxlCiAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAqLwoKI2lmbmRlZiBORVRfU05NUF9DT05GSUdfSAojZGVmaW5lIE5FVF9TTk1QX0NPTkZJR19ICgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9BVVRPQ09ORl9ERUZJTklUSU9OUyAqKioqKioqKiogKi8KLyoKICogcHV0IGFsbCBhdXRvY29uZi1zcGVjaWZpYyBkZWZpbml0aW9ucyBiZWxvdyBoZXJlCiAqCiAqLwojaWZuZGVmIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMKCgojaWYgZGVmaW5lZCAoV0lOMzIpIHx8IGRlZmluZWQgKG1pbmd3MzIpIHx8IGRlZmluZWQgKGN5Z3dpbikKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI7IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOycKI2Vsc2UKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI6IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOicKI2VuZGlmCgovKiBkZWZpbml0aW9ucyBhZGRlZCBieSBjb25maWd1cmUgb24tdGhlLWZseSAqLwpAVE9QQApAQk9UVE9NQAoKLyogZW5kIG9mIGRlZmluaXRpb25zIGFkZGVkIGJ5IGNvbmZpZ3VyZSBvbi10aGUtZmx5ICovCgovKiBJZiB5b3UgaGF2ZSBvcGVuc3NsIDAuOS43IG9yIGFib3ZlLCB5b3UgbGlrZWx5IGhhdmUgQUVTIHN1cHBvcnQuICovCiN1bmRlZiBORVRTTk1QX1VTRV9PUEVOU1NMCiNpZiBkZWZpbmVkKE5FVFNOTVBfVVNFX09QRU5TU0wpICYmIGRlZmluZWQoSEFWRV9PUEVOU1NMX0FFU19IKSAmJiBkZWZpbmVkKEhBVkVfQUVTX0NGQjEyOF9FTkNSWVBUKQojZGVmaW5lIEhBVkVfQUVTIDEKI2VuZGlmCgovKiBkZWZpbmUgcmFuZG9tIGZ1bmN0aW9ucyAqLwoKI2lmbmRlZiBIQVZFX1JBTkRPTQojaWZkZWYgSEFWRV9MUkFORDQ4CiNkZWZpbmUgcmFuZG9tIGxyYW5kNDgKI2RlZmluZSBzcmFuZG9tKHMpIHNyYW5kNDgocykKI2Vsc2UKI2lmZGVmIEhBVkVfUkFORAojZGVmaW5lIHJhbmRvbSByYW5kCiNkZWZpbmUgc3JhbmRvbShzKSBzcmFuZChzKQojZW5kaWYKI2VuZGlmCiNlbmRpZgoKLyogZGVmaW5lIHNpZ25hbCBpZiBETkUgKi8KCiNpZm5kZWYgSEFWRV9TSUdOQUwKI2lmZGVmIEhBVkVfU0lHU0VUCiNkZWZpbmUgc2lnbmFsKGEsYikgc2lnc2V0KGEsYikKI2VuZGlmCiNlbmRpZgoKI2lmZGVmIEhBVkVfRE1BTExPQ19ICiNkZWZpbmUgRE1BTExPQ19GVU5DX0NIRUNLCiNlbmRpZgoKI2VuZGlmIC8qIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMgKi8KCgoKCi8qICoqKioqKioqKiBORVRTTk1QX01BUktfQkVHSU5fQ0xFQU5fTkFNRVNQQUNFICoqKioqKioqKiAqLwovKiAKICogcHV0IGFsbCBuZXcgbmV0LXNubXAtc3BlY2lmaWMgZGVmaW5pdGlvbnMgaGVyZQogKgogKiBhbGwgZGVmaW5pdGlvbnMgTVVTVCBoYXZlIGEgTkVUU05NUF8gcHJlZml4CiAqCiAqLwoKLyogRGVmYXVsdCAoU05NUCkgdmVyc2lvbiBudW1iZXIgZm9yIHRoZSB0b29scyB0byB1c2UgKi8KI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfU05NUF9WRVJTSU9OIDMKCi8qIGRvbid0IGNoYW5nZSB0aGVzZSB2YWx1ZXMhICovCiNkZWZpbmUgTkVUU05NUF9TTk1QVjEgICAgICAweEFBQUEgICAgICAgLyogcmVhZGFibGUgYnkgYW55b25lICovCiNkZWZpbmUgTkVUU05NUF9TTk1QVjJBTlkgICAweEEwMDAgICAgICAgLyogVjIgQW55IHR5cGUgKGluY2x1ZGVzIE5vQXV0aCkgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBWMkFVVEggIDB4ODAwMCAgICAgICAvKiBWMiBBdXRoZW50aWNhdGVkIHJlcXVlc3RzIG9ubHkgKi8KCi8qIGRlZmF1bHQgbGlzdCBvZiBtaWJzIHRvIGxvYWQgKi8KI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfTUlCUyAiSVAtTUlCOklGLU1JQjpUQ1AtTUlCOlVEUC1NSUI6U05NUHYyLU1JQjpSRkMxMjEzLU1JQiIKCi8qIGRlYnVnZ2luZyBzdHVmZiAqLwovKiBpZiBkZWZpbmVkLCB3ZSBvcHRpbWl6ZSB0aGUgY29kZSB0byBleGNsdWRlIGFsbCBkZWJ1Z2dpbmcgY2FsbHMuICovCiN1bmRlZiBORVRTTk1QX05PX0RFQlVHR0lORwovKiBpZ25vcmUgdGhlIC1EIGZsYWcgYW5kIGFsd2F5cyBwcmludCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gKi8KI2RlZmluZSBORVRTTk1QX0FMV0FZU19ERUJVRyAwCgovKiByZXZlcnNlIGVuY29kaW5nIEJFUiBwYWNrZXRzIGlzIGJvdGggZmFzdGVyIGFuZCBtb3JlIGVmZmljaWVudCBpbiBzcGFjZS4gKi8KI2RlZmluZSBORVRTTk1QX1VTRV9SRVZFUlNFX0FTTkVOQ09ESU5HICAgICAgIDEKI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OIDEgLyogMSA9IHJldmVyc2UsIDAgPSBmb3J3YXJkcyAqLwoKLyogUEVSU0lTVEVOVF9ESVJFQ1RPUlk6IElmIGRlZmluZWQsIHRoZSBsaWJyYXJ5IGlzIGNhcGFiaWxlIG9mIHNhdmluZwogICBwZXJzaXNhbnQgaW5mb3JtYXRpb24gdG8gdGhpcyBkaXJlY3RvcnkgaW4gdGhlIGZvcm0gb2YgY29uZmlndXJhdGlvbgogICBsaW5lczogUEVSU0lTVEVOVF9ESVJFQ1RPUlkvTkFNRS5wZXJzaXN0ZW50LmNvbmYgKi8KI2RlZmluZSBORVRTTk1QX1BFUlNJU1RFTlRfRElSRUNUT1JZICIvdmFyL3NubXAiCgovKiBBR0VOVF9ESVJFQ1RPUllfTU9ERTogdGhlIG1vZGUgdGhlIGFnZW50cyBzaG91bGQgdXNlIHRvIGNyZWF0ZQogICBkaXJlY3RvcmllcyB3aXRoLiBTaW5jZSB0aGUgZGF0YSBzdG9yZWQgaGVyZSBpcyBwcm9iYWJseSBzZW5zaXRpdmUsIGl0CiAgIHByb2JhYmx5IHNob3VsZCBiZSByZWFkLW9ubHkgYnkgcm9vdC9hZG1pbmlzdHJhdG9yLiAqLwojZGVmaW5lIE5FVFNOTVBfQUdFTlRfRElSRUNUT1JZX01PREUgMDcwMAoKLyogTUFYX1BFUlNJU1RFTlRfQkFDS1VQUzoKICogICBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGVyc2lzdGVudCBiYWNrdXBzIHRoZSBsaWJyYXJ5IHdpbGwgdHJ5IHRvCiAqICAgcmVhZCBmcm9tIHRoZSBwZXJzaXN0ZW50IGNhY2hlIGRpcmVjdG9yeS4gIElmIGFuIGFwcGxpY2F0aW9uIGZhaWxzIHRvCiAqICAgY2xvc2UgZG93biBzdWNjZXNzZnVsbHkgbW9yZSB0aGFuIHRoaXMgbnVtYmVyIG9mIHRpbWVzLCBkYXRhIHdpbGwgYmUgbG9zdC4KICovCiNkZWZpbmUgTkVUU05NUF9NQVhfUEVSU0lTVEVOVF9CQUNLVVBTIDEwCgovKiBkZWZpbmUgdGhlIHN5c3RlbSB0eXBlIGluY2x1ZGUgZmlsZSBoZXJlICovCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFIDxuZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oPgoKLyogZGVmaW5lIHRoZSBtYWNoaW5lIChjcHUpIHR5cGUgaW5jbHVkZSBmaWxlIGhlcmUgKi8KI2RlZmluZSBORVRTTk1QX01BQ0hJTkVfSU5DTFVERV9GSUxFIDxuZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaD4KCi8qIGRlZmluZSB0aGUgVURQIGJ1ZmZlciBkZWZhdWx0cyB1bmRlZmluZWQgbWVhbnMgdXNlIHRoZSBPUyBidWZmZXJzCiAqIGJ5IGRlZmF1bHQgKi8KI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKCi8qIG5ldC1zbm1wJ3MgbWFqb3IgcGF0aCBuYW1lcyAqLwojdW5kZWYgU05NUExJQlBBVEgKI3VuZGVmIFNOTVBTSEFSRVBBVEgKI3VuZGVmIFNOTVBDT05GUEFUSAojdW5kZWYgU05NUERMTU9EUEFUSAoKLyogTkVUU05NUF9MT0dGSUxFOiAgSWYgZGVmaW5lZCBpdCBjbG9zZXMgc3Rkb3V0L2Vyci9pbiBhbmQgb3BlbnMgdGhpcyBpbiAKICAgb3V0L2VycidzIHBsYWNlLiAgKHN0ZGluIGlzIGNsb3NlZCBzbyB0aGF0IHNoIHNjcmlwdHMgd29uJ3Qgd2FpdCBmb3IgaXQpICovCiN1bmRlZiBORVRTTk1QX0xPR0ZJTEUKCi8qIGRlZmF1bHQgc3lzdGVtIGNvbnRhY3QgKi8KI3VuZGVmIE5FVFNOTVBfU1lTX0NPTlRBQ1QKCi8qIHN5c3RlbSBsb2NhdGlvbiAqLwojdW5kZWYgTkVUU05NUF9TWVNfTE9DCgovKiBVc2UgbGlid3JhcCB0byBoYW5kbGUgYWxsb3cvZGVueSBob3N0cz8gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX0xJQldSQVAKCi8qIE1pYi0yIHRyZWUgSW5mbyAqLwovKiBUaGVzZSBhcmUgdGhlIHN5c3RlbSBpbmZvcm1hdGlvbiB2YXJpYWJsZXMuICovCgojZGVmaW5lIE5FVFNOTVBfVkVSU19ERVNDICAgInVua25vd24iICAgICAgICAgICAgIC8qIG92ZXJyaWRkZW4gYXQgcnVuIHRpbWUgKi8KI2RlZmluZSBORVRTTk1QX1NZU19OQU1FICAgICJ1bmtub3duIiAgICAgICAgICAgICAvKiBvdmVycmlkZGVuIGF0IHJ1biB0aW1lICovCgovKiBjb21tZW50IG91dCB0aGUgc2Vjb25kIGRlZmluZSB0byB0dXJuIG9mZiBmdW5jdGlvbmFsaXR5IGZvciBhbnkgb2YKICAgdGhlc2U6IChTZWUgUkVBRE1FIGZvciBkZXRhaWxzKSAqLwoKLyogICBwcm9jIFBST0NFU1NOQU1FIFtNQVhdIFtNSU5dICovCiNkZWZpbmUgTkVUU05NUF9QUk9DTUlCTlVNIDIKCi8qICAgZXhlYy9zaGVsbCBOQU1FIENPTU1BTkQgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfU0hFTExNSUJOVU0gOAoKLyogICBzd2FwIE1JTiAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9NRU1NSUJOVU0gNAoKLyogICBkaXNrIERJU0sgTUlOU0laRSAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9ESVNLTUlCTlVNIDkKCi8qICAgbG9hZCAxIDUgMTUgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfTE9BREFWRU1JQk5VTSAxMAoKLyogd2hpY2ggdmVyc2lvbiBhcmUgeW91IHVzaW5nPyBUaGlzIG1pYmxvYyB3aWxsIHRlbGwgeW91ICovCiNkZWZpbmUgTkVUU05NUF9WRVJTSU9OTUlCTlVNIDEwMAoKLyogUmVwb3J0cyBlcnJvcnMgdGhlIGFnZW50IHJ1bnMgaW50byAqLwovKiAodHlwaWNhbGx5IGl0cyAiY2FuJ3QgZm9yaywgbm8gbWVtIiBwcm9ibGVtcykgKi8KI2RlZmluZSBORVRTTk1QX0VSUk9STUlCTlVNIDEwMQoKLyogVGhlIHN1YiBpZCBvZiBFWFRFTlNJQkxFTUlCIHJldHVybmVkIHRvIHF1ZXJpZXMgb2YKICAgLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliLTIuc3lzdGVtLnN5c09iamVjdElELjAgKi8KI2RlZmluZSBORVRTTk1QX0FHRU5USUQgMjUwCgovKiBUaGlzIElEIGlzIHJldHVybmVkIGFmdGVyIHRoZSBBR0VOVElEIGFib3ZlLiAgSUUsIHRoZSByZXN1bHRpbmcKICAgdmFsdWUgcmV0dXJuZWQgYnkgYSBxdWVyeSB0byBzeXNPYmplY3RJRCBpcwogICBFWFRFTlNJQkxFTUlCLkFHRU5USUQuPz8/LCB3aGVyZSA/Pz8gaXMgZGVmaW5lZCBiZWxvdyBieSBPU1RZUEUgKi8KCiNkZWZpbmUgTkVUU05NUF9IUFVYOUlEIDEKI2RlZmluZSBORVRTTk1QX1NVTk9TNElEIDIgCiNkZWZpbmUgTkVUU05NUF9TT0xBUklTSUQgMwojZGVmaW5lIE5FVFNOTVBfT1NGSUQgNAojZGVmaW5lIE5FVFNOTVBfVUxUUklYSUQgNQojZGVmaW5lIE5FVFNOTVBfSFBVWDEwSUQgNgojZGVmaW5lIE5FVFNOTVBfTkVUQlNEMUlEIDcKI2RlZmluZSBORVRTTk1QX0ZSRUVCU0RJRCA4CiNkZWZpbmUgTkVUU05NUF9JUklYSUQgOQojZGVmaW5lIE5FVFNOTVBfTElOVVhJRCAxMAojZGVmaW5lIE5FVFNOTVBfQlNESUlEIDExCiNkZWZpbmUgTkVUU05NUF9PUEVOQlNESUQgMTIKI2RlZmluZSBORVRTTk1QX1dJTjMySUQgMTMKI2RlZmluZSBORVRTTk1QX0hQVVgxMUlEIDE0CiNkZWZpbmUgTkVUU05NUF9BSVhJRCAxNQojZGVmaW5lIE5FVFNOTVBfTUFDT1NYSUQgMTYKI2RlZmluZSBORVRTTk1QX0RSQUdPTkZMWUlEIDE3CiNkZWZpbmUgTkVUU05NUF9VTktOT1dOSUQgMjU1CgojaWZkZWYgaHB1eDkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVg5SUQKI2VuZGlmCiNpZmRlZiBocHV4MTAKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVgxMElECiNlbmRpZgojaWZkZWYgaHB1eDExCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9IUFVYMTFJRAojZW5kaWYKI2lmZGVmIHN1bm9zNAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfU1VOT1M0SUQKI2VuZGlmCiNpZmRlZiBzb2xhcmlzMgojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfU09MQVJJU0lECiNlbmRpZgojaWYgZGVmaW5lZChvc2YzKSB8fCBkZWZpbmVkKG9zZjQpIHx8IGRlZmluZWQob3NmNSkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX09TRklECiNlbmRpZgojaWZkZWYgdWx0cml4NAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfVUxUUklYSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG5ldGJzZDEpIHx8IGRlZmluZWQobmV0YnNkMikKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX05FVEJTRDFJRAojZW5kaWYKI2lmIGRlZmluZWQoX19GcmVlQlNEX18pCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9GUkVFQlNESUQKI2VuZGlmCiNpZiBkZWZpbmVkKF9fRHJhZ29uRmx5X18pCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9EUkFHT05GTFlJRAojZW5kaWYKI2lmIGRlZmluZWQoaXJpeDYpIHx8IGRlZmluZWQoaXJpeDUpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9JUklYSUQKI2VuZGlmCiNpZmRlZiBsaW51eAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTElOVVhJRAojZW5kaWYKI2lmIGRlZmluZWQoYnNkaTIpIHx8IGRlZmluZWQoYnNkaTMpIHx8IGRlZmluZWQoYnNkaTQpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9CU0RJSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG9wZW5ic2QpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9PUEVOQlNESUQKI2VuZGlmCiNpZmRlZiBXSU4zMgojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfV0lOMzJJRAojZW5kaWYKI2lmIGRlZmluZWQoYWl4MykgfHwgZGVmaW5lZChhaXg0KSB8fCBkZWZpbmVkKGFpeDUpIHx8IGRlZmluZWQoYWl4NikKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0FJWElECiNlbmRpZgojaWYgZGVmaW5lZChkYXJ3aW4pICYmIChkYXJ3aW4gPj0gOCkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX01BQ09TWElECiNlbmRpZgovKiB1bmtub3duICovCiNpZm5kZWYgTkVUU05NUF9PU1RZUEUKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX1VOS05PV05JRAojZW5kaWYKCi8qIFRoZSBlbnRlcnByaXNlIG51bWJlciBoYXMgYmVlbiBhc3NpZ25lZCBieSB0aGUgSUFOQSBncm91cC4gICAqLwovKiBPcHRpb25hbGx5LCB0aGlzIG1heSBwb2ludCB0byB0aGUgbG9jYXRpb24gaW4gdGhlIHRyZWUgeW91ciAgKi8KLyogY29tcGFueS9vcmdhbml6YXRpb24gaGFzIGJlZW4gYWxsb2NhdGVkLiAgICAgICAgICAgICAgICAgICAgICovCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3IgdGhlIE5FVF9TTk1QIE1JQiBtb2R1bGVzLiAqLwojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9PSUQJCQk4MDcyCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX01JQgkJCTEsMyw2LDEsNCwxLDgwNzIKI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQgkJMS4zLjYuMS40LjEuODA3MgojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCX0xFTkdUSAk3CgovKiBUaGUgYXNzaWduZWQgZW50ZXJwcmlzZSBudW1iZXIgZm9yIHN5c09iamVjdElELiAqLwojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX01JQgkJMSwzLDYsMSw0LDEsODA3MiwzLDIsTkVUU05NUF9PU1RZUEUKI2RlZmluZSBORVRTTk1QX1NZU1RFTV9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyLjMuMi5ORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUJfTEVOR1RICTEwCgovKiBUaGUgYXNzaWduZWQgZW50ZXJwcmlzZSBudW1iZXIgZm9yIG5vdGlmaWNhdGlvbnMuICovCiNkZWZpbmUgTkVUU05NUF9OT1RJRklDQVRJT05fTUlCCQkxLDMsNiwxLDQsMSw4MDcyLDQKI2RlZmluZSBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyLjQKI2RlZmluZSBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSAk4CgovKiB0aGlzIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgdWNkYXZpcyBtaWIgdHJlZS4gIEl0IHNob3VsZG4ndCBiZQogICBjaGFuZ2VkLCBhcyB0aGUgcGxhY2VzIGl0IGlzIHVzZWQgYXJlIGV4cGVjdGVkIHRvIGJlIGNvbnN0YW50CiAgIHZhbHVlcyBvciBhcmUgZGlyZWN0bHkgdGllZCB0byB0aGUgVUNELVNOTVAtTUlCLiAqLwojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19PSUQJCTIwMjEKI2RlZmluZSBORVRTTk1QX1VDREFWSVNfTUlCCQkxLDMsNiwxLDQsMSwyMDIxCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX0RPVF9NSUIJCTEuMy42LjEuNC4xLjIwMjEKI2RlZmluZSBORVRTTk1QX1VDREFWSVNfRE9UX01JQl9MRU5HVEgJNwoKLyogaG93IGxvbmcgdG8gd2FpdCAoc2Vjb25kcykgZm9yIGVycm9yIHF1ZXJ5cyBiZWZvcmUgcmVzZXRpbmcgdGhlIGVycm9yIHRyYXAuKi8KI2RlZmluZSBORVRTTk1QX0VSUk9SVElNRUxFTkdUSCA2MDAgCgovKiBFeGVjIGNvbW1hbmQgdG8gZml4IFBST0MgcHJvYmxlbXMgKi8KLyogJXMgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgcHJvY2VzcyBuYW1lIGluIGVycm9yICovCgovKiAjZGVmaW5lIE5FVFNOTVBfUFJPQ0ZJWENNRCAiL3Vzci9iaW4vcGVybCAvbG9jYWwvc2NyaXB0cy9maXhwcm9jICVzIiAqLwoKLyogRXhlYyBjb21tYW5kIHRvIGZpeCBFWEVDIHByb2JsZW1zICovCi8qICVzIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGV4ZWMvc2NyaXB0IG5hbWUgaW4gZXJyb3IgKi8KCi8qICNkZWZpbmUgTkVUU05NUF9FWEVDRklYQ01EICIvdXNyL2Jpbi9wZXJsIC9sb2NhbC9zY3JpcHRzL2ZpeHByb2MgJXMiICovCgovKiBTaG91bGQgZXhlYyBvdXRwdXQgQ2FzaGluZyBiZSB1c2VkIChzcGVlZHMgdXAgdGhpbmdzIGdyZWF0bHkpLCBhbmQKICAgaWYgc28sIEFmdGVyIGhvdyBtYW55IHNlY29uZHMgc2hvdWxkIHRoZSBjYWNoZSByZS1uZXdlZD8gIE5vdGU6CiAgIERvbid0IGRlZmluZSBDQVNIRVRJTUUgdG8gZGlzYWJsZSBjYXNoaW5nIGNvbXBsZXRlbHkgKi8KCiNkZWZpbmUgTkVUU05NUF9FWENBQ0hFVElNRSAzMAojZGVmaW5lIE5FVFNOTVBfQ0FDSEVGSUxFICIuc25tcC1leGVjLWNhY2hlIgojZGVmaW5lIE5FVFNOTVBfTUFYQ0FDSEVTSVpFICgxNTAwKjgwKSAgIC8qIHJvdWdobHkgMTUwMCBsaW5lcyBtYXggKi8KCi8qIG1pc2MgZGVmYXVsdHMgKi8KCi8qIGRlZmF1bHQgb2YgMTAwIG1lZyBtaW5pbXVtIGlmIHRoZSBtaW5pbXVtIHNpemUgaXMgbm90IHNwZWNpZmllZCBpbgogICB0aGUgY29uZmlnIGZpbGUgKi8KI2RlZmluZSBORVRTTk1QX0RFRkRJU0tNSU5JTVVNU1BBQ0UgMTAwMDAwCgovKiBkZWZhdWx0IG1heGltdW0gbG9hZCBhdmVyYWdlIGJlZm9yZSBlcnJvciAqLwojZGVmaW5lIE5FVFNOTVBfREVGTUFYTE9BREFWRSAxMi4wCgovKiBtYXggdGltZXMgdG8gbG9vcCByZWFkaW5nIG91dHB1dCBmcm9tIGV4ZWNzLiAqLwovKiBCZWNhdXNlIG9mIHNsZWVwKDEpcywgdGhpcyB3aWxsIGFsc28gYmUgdGltZSB0byB3YWl0IChpbiBzZWNvbmRzKSBmb3IgZXhlYwogICB0byBmaW5pc2ggKi8KI2RlZmluZSBORVRTTk1QX01BWFJFQURDT1VOVCAxMDAKCi8qIFNldCBpZiBzbm1wZ2V0cyBzaG91bGQgYmxvY2sgYW5kIG5ldmVyIHRpbWVvdXQgKi8KLyogVGhlIG9yaWdpbmFsIENNVSBjb2RlIGhhZCB0aGlzIGhhcmRjb2RlZCBhcyA9IDEgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBCTE9DSyAxCgovKiBIb3cgbG9uZyB0byB3YWl0IGJlZm9yZSByZXN0YXJ0aW5nIHRoZSBhZ2VudCBhZnRlciBhIHNubXBzZXQgdG8KICAgRVhURU5TSUJMRU1JQi5WRVJTSU9OTUlCTlVNLlZFUlJFU1RBUlRBR0VOVC4gIFRoaXMgaXMKICAgbmVjZXNzYXJ5IHRvIGZpbmlzaCB0aGUgc25tcHNldCByZXBseSBiZWZvcmUgcmVzdGFydGluZy4gKi8KI2RlZmluZSBORVRTTk1QX1JFU1RBUlRTTEVFUCA1CgovKiBVTmRlZmluZSB0byBhbGxvdyBzcGVjaWZ5aW5nIHplcm8tbGVuZ3RoIGNvbW11bml0eSBzdHJpbmcgKi8KLyogI2RlZmluZSBORVRTTk1QX05PX1pFUk9MRU5HVEhfQ09NTVVOSVRZIDEgKi8KCi8qIE51bWJlciBvZiBjb21tdW5pdHkgc3RyaW5ncyB0byBzdG9yZSAqLwojZGVmaW5lIE5FVFNOTVBfTlVNX0NPTU1VTklUSUVTCTUKCi8qIGludGVybmFsIGRlZmluZSAqLwojZGVmaW5lIE5FVFNOTVBfTEFTVEZJRUxEIC0xCgovKiAgUGx1Z2dhYmxlIHRyYW5zcG9ydHMuICAqLwoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVURQL0lQIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgImNhbGxiYWNrIiB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVENQL0lQIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBVbml4IHRyYW5zcG9ydCBkb21haW4KICAgIChhLmsuYS4gImxvY2FsIElQQyIpIGlzIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgQUFMNSBQVkMgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBJUFggdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFVEUC9JUHY2IHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVENQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUTFMgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UTFNfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBBbGlhcyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FMSUFTX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgU1NIIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfU1NIX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgRFRMUy9VRFAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9EVExTVURQX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciBzdGRpbi9vdXQgdHJhbnNwb3J0IGRvbWFpbiBpcyBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4KCi8qIGRlZmluZSB0aGlzIGlmIHRoZSBVU00gc2VjdXJpdHkgbW9kdWxlIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgTkVUU05NUF9TRUNNT0RfVVNNCgovKiBkZWZpbmUgdGhpcyBpZiB0aGUgS1NNIChrZXJiZXJvcyBiYXNlZCBzbm1wKSBzZWN1cml0eSBtb2R1bGUgaXMgYXZhaWxhYmxlICovCiN1bmRlZiBORVRTTk1QX1NFQ01PRF9LU00KCi8qIGRlZmluZSB0aGlzIGlmIHRoZSBsb2NhbCBzZWN1cml0eSBtb2R1bGUgaXMgYXZhaWxhYmxlICovCiN1bmRlZiBORVRTTk1QX1NFQ01PRF9MT0NBTFNNCgovKiBkZWZpbmUgaWYgY29uZmlndXJlZCBhcyBhICJtaW5pLWFnZW50IiAqLwojdW5kZWYgTkVUU05NUF9NSU5JX0FHRU5UCgovKiB0aGlzIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgbmV0LXNubXAgbWliIHRyZWUuICBJdCBzaG91bGRuJ3QgYmUKICAgY2hhbmdlZCwgYXMgdGhlIHBsYWNlcyBpdCBpcyB1c2VkIGFyZSBleHBlY3RlZCB0byBiZSBjb25zdGFudAogICB2YWx1ZXMgb3IgYXJlIGRpcmVjdGx5IHRpZWQgdG8gdGhlIFVDRC1TTk1QLU1JQi4gKi8KI2RlZmluZSBORVRTTk1QX09JRAkJODA3MgojZGVmaW5lIE5FVFNOTVBfTUlCCQkxLDMsNiwxLDQsMSw4MDcyCiNkZWZpbmUgTkVUU05NUF9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyCiNkZWZpbmUgTkVUU05NUF9ET1RfTUlCX0xFTkdUSAk3CgovKiBwYXR0ZXJuIGZvciB0ZW1wb3JhcnkgZmlsZSBuYW1lcyAqLwojZGVmaW5lIE5FVFNOTVBfVEVNUF9GSUxFX1BBVFRFUk4gIi90bXAvc25tcGRYWFhYWFgiCgovKgogKiB0aGlzIG11c3QgYmUgYmVmb3JlIHRoZSBzeXN0ZW0vbWFjaGluZSBpbmNsdWRlcywgdG8gYWxsb3cgdGhlbSB0bwogKiBvdmVycmlkZSBhbmQgdHVybiBvZmYgaW5saW5pbmcuIFRvIGRvIHNvLCB0aGV5IHNob3VsZCBkbyB0aGUKICogZm9sbG93aW5nOgogKgogKiAgICAjdW5kZWYgTkVUU05NUF9FTkFCTEVfSU5MSU5FCiAqICAgICNkZWZpbmUgTkVUU05NUF9FTkFCTEVfSU5MSU5FIDAKICoKICogQSB1c2VyIGhhdmluZyBwcm9ibGVtcyB3aXRoIHRoZWlyIGNvbXBpbGVyIGNhbiBhbHNvIHR1cm4gb2ZmCiAqIHRoZSB1c2Ugb2YgaW5saW5lIGJ5IGRlZmluaW5nIE5FVFNOTVBfTk9fSU5MSU5FIHZpYSB0aGVpciBjZmxhZ3M6CiAqCiAqICAgIC1ETkVUU05NUF9OT19JTkxJTkUKICoKICogSGVhZGVyIGFuZCBzb3VyY2UgZmlsZXMgc2hvdWxkIG9ubHkgdGVzdCBhZ2FpbnN0IE5FVFNOTVBfVVNFX0lOTElORToKICoKICogICAjaWZkZWYgTkVUU05NUF9VU0VfSU5MSU5FCiAqICAgTkVUU05NUF9JTkxJTkUgZnVuY3Rpb24oaW50IHBhcm0pIHsgcmV0dXJuIHBhcm0gLTE7IH0KICogICAjZW5kaWYKICoKICogRnVuY3Rpb25zIHdoaWNoIHNob3VsZCBiZSBzdGF0aWMsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgaW5saW5lCiAqIGlzIGF2YWlsYWJsZSBvciBlbmFibGVkIHNob3VsZCB1c2UgdGhlIE5FVFNOTVBfU1RBVElDX0lOTElORSBtYWNybywKICogbGlrZSBzbzoKICoKICogICAgTkVUU05NUF9TVEFUSUNfSU5MSU5FIGZ1bmN0aW9uKGludCBwYXJtKSB7IHJldHVybiBwYXJtIC0xOyB9CiAqCiAqIE5PVCBsaWtlIHRoaXM6CiAqCiAqICAgIHN0YXRpYyBORVRTTk1QX0lOTElORSBmdW5jdGlvbihpbnQgcGFybSkgeyByZXR1cm4gcGFybSAtMTsgfQogKgogKi8KI2lmZGVmIE5FVFNOTVBfQlJPS0VOX0lOTElORQojICAgZGVmaW5lIE5FVFNOTVBfRU5BQkxFX0lOTElORSAwCiNlbHNlCiMgICBkZWZpbmUgTkVUU05NUF9FTkFCTEVfSU5MSU5FIDEKI2VuZGlmCgojaW5jbHVkZSBORVRTTk1QX1NZU1RFTV9JTkNMVURFX0ZJTEUKI2luY2x1ZGUgTkVUU05NUF9NQUNISU5FX0lOQ0xVREVfRklMRQoKI2lmIE5FVFNOTVBfRU5BQkxFX0lOTElORSAmJiAhZGVmaW5lZChORVRTTk1QX05PX0lOTElORSkKIyAgIGRlZmluZSBORVRTTk1QX1VTRV9JTkxJTkUgMQojICAgaWZuZGVmIE5FVFNOTVBfSU5MSU5FCiMgICAgICBkZWZpbmUgTkVUU05NUF9JTkxJTkUgaW5saW5lCiMgICBlbmRpZgojICAgaWZuZGVmIE5FVFNOTVBfU1RBVElDX0lOTElORQojICAgICAgZGVmaW5lIE5FVFNOTVBfU1RBVElDX0lOTElORSBzdGF0aWMgaW5saW5lCiMgICBlbmRpZgojZWxzZQojICAgZGVmaW5lIE5FVFNOTVBfSU5MSU5FIAojICAgZGVmaW5lIE5FVFNOTVBfU1RBVElDX0lOTElORSBzdGF0aWMKI2VuZGlmCgojaWZuZGVmIE5FVFNOTVBfSU1QT1JUCiMgIGRlZmluZSBORVRTTk1QX0lNUE9SVCBleHRlcm4KI2VuZGlmCgovKiBjb21tZW50IHRoZSBuZXh0IGxpbmUgaWYgeW91IGFyZSBjb21waWxpbmcgd2l0aCBsaWJzbm1wLmggCiAgIGFuZCBhcmUgbm90IHVzaW5nIHRoZSBVQy1EYXZpcyBTTk1QIGxpYnJhcnkuICovCiNkZWZpbmUgVUNEX1NOTVBfTElCUkFSWSAxCgovKiBhZGQgaW4gcmVjZW50IENNVSBsaWJyYXJ5IGV4dGVuc2lvbnMgKG5vdCBjb21wbGV0ZSkgKi8KI3VuZGVmIENNVV9DT01QQVRJQkxFCgovKiBmaW5hbCBjb25jbHVzaW9uIG9uIG5saXN0IHVzYWdlICovCiNpZiBkZWZpbmVkKEhBVkVfTkxJU1QpICYmIGRlZmluZWQoSEFWRV9TVFJVQ1RfTkxJU1RfTl9WQUxVRSkgJiYgIWRlZmluZWQoTkVUU05NUF9ET05UX1VTRV9OTElTVCkgJiYgIWRlZmluZWQoTkVUU05NUF9OT19LTUVNX1VTQUdFKQojZGVmaW5lIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojZW5kaWYKCgovKiAqKioqKioqKiogTkVUU05NUF9NQVJLX0JFR0lOX0xFR0FDWV9ERUZJTklUSU9OUyAqKioqKioqKiovCi8qIAogKiBleGlzdGluZyBkZWZpbml0aW9ucyBwcmlvciB0byBOZXQtU05NUCA1LjQKICoKICogZG8gbm90IGFkZCBhbnl0aGluZyBuZXcgaGVyZQogKgogKi8KCiNpZm5kZWYgTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfU05NUF9WRVJTSU9OCiMgZGVmaW5lIERFRkFVTFRfU05NUF9WRVJTSU9OIE5FVFNOTVBfREVGQVVMVF9TTk1QX1ZFUlNJT04KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVjEKIyBkZWZpbmUgU05NUFYxIE5FVFNOTVBfU05NUFYxCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFYyQU5ZCiMgZGVmaW5lIFNOTVBWMkFOWSBORVRTTk1QX1NOTVBWMkFOWQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBWMkFVVEgKIyBkZWZpbmUgU05NUFYyQVVUSCBORVRTTk1QX1NOTVBWMkFVVEgKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX01JQlMKIyBkZWZpbmUgREVGQVVMVF9NSUJTIE5FVFNOTVBfREVGQVVMVF9NSUJTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJESVJTCiMgZGVmaW5lIERFRkFVTFRfTUlCRElSUyBORVRTTk1QX0RFRkFVTFRfTUlCRElSUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRklMRVMKIyBkZWZpbmUgREVGQVVMVF9NSUJGSUxFUyBORVRTTk1QX0RFRkFVTFRfTUlCRklMRVMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9XSVRIX09QQVFVRV9TUEVDSUFMX1RZUEVTCiMgZGVmaW5lIE9QQVFVRV9TUEVDSUFMX1RZUEVTIE5FVFNOTVBfV0lUSF9PUEFRVUVfU1BFQ0lBTF9UWVBFUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VOQUJMRV9TQ0FQSV9BVVRIUFJJVgojIGRlZmluZSBTQ0FQSV9BVVRIUFJJViBORVRTTk1QX0VOQUJMRV9TQ0FQSV9BVVRIUFJJVgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9JTlRFUk5BTF9NRDUKIyBkZWZpbmUgVVNFX0lOVEVSTkFMX01ENSBORVRTTk1QX1VTRV9JTlRFUk5BTF9NRDUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfUEtDUzExCiMgZGVmaW5lIFVTRV9QS0NTIE5FVFNOTVBfVVNFX1BLQ1MxMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9PUEVOU1NMCiMgZGVmaW5lIFVTRV9PUEVOU1NMIE5FVFNOTVBfVVNFX09QRU5TU0wKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19ERUJVR0dJTkcKIyBkZWZpbmUgU05NUF9OT19ERUJVR0dJTkcgTkVUU05NUF9OT19ERUJVR0dJTkcKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9BTFdBWVNfREVCVUcKIyBkZWZpbmUgU05NUF9BTFdBWVNfREVCVUcgTkVUU05NUF9BTFdBWVNfREVCVUcKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfUkVWRVJTRV9BU05FTkNPRElORwojIGRlZmluZSBVU0VfUkVWRVJTRV9BU05FTkNPRElORyBORVRTTk1QX1VTRV9SRVZFUlNFX0FTTkVOQ09ESU5HCiNlbmRpZgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX0FTTkVOQ09ESU5HX0RJUkVDVElPTgojIGRlZmluZSBERUZBVUxUX0FTTkVOQ09ESU5HX0RJUkVDVElPTiBORVRTTk1QX0RFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OCiNlbmRpZgoKI2RlZmluZSBQRVJTSVNURU5UX0RJUkVDVE9SWSBORVRTTk1QX1BFUlNJU1RFTlRfRElSRUNUT1JZCiNkZWZpbmUgUEVSU0lTVEVOVF9NQVNLIE5FVFNOTVBfUEVSU0lTVEVOVF9NQVNLCiNkZWZpbmUgQUdFTlRfRElSRUNUT1JZX01PREUgTkVUU05NUF9BR0VOVF9ESVJFQ1RPUllfTU9ERQojZGVmaW5lIE1BWF9QRVJTSVNURU5UX0JBQ0tVUFMgTkVUU05NUF9NQVhfUEVSU0lTVEVOVF9CQUNLVVBTCiNkZWZpbmUgU1lTVEVNX0lOQ0xVREVfRklMRSBORVRTTk1QX1NZU1RFTV9JTkNMVURFX0ZJTEUKI2RlZmluZSBNQUNISU5FX0lOQ0xVREVfRklMRSBORVRTTk1QX01BQ0hJTkVfSU5DTFVERV9GSUxFCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9TRU5EX0JVRgojIGRlZmluZSBERUZBVUxUX1NFUlZFUl9TRU5EX0JVRiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1NFTkRfQlVGCiNlbmRpZgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9SRUNWX0JVRgojIGRlZmluZSBERUZBVUxUX1NFUlZFUl9SRUNWX0JVRiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1JFQ1ZfQlVGCiNlbmRpZgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9TRU5EX0JVRgojIGRlZmluZSBERUZBVUxUX0NMSUVOVF9TRU5EX0JVRiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1NFTkRfQlVGCiNlbmRpZgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9SRUNWX0JVRgojIGRlZmluZSBERUZBVUxUX0NMSUVOVF9SRUNWX0JVRiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1JFQ1ZfQlVGCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTE9HRklMRQojIGRlZmluZSBMT0dGSUxFIE5FVFNOTVBfTE9HRklMRQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NZU19DT05UQUNUCiMgZGVmaW5lIFNZU19DT05UQUNUIE5FVFNOTVBfU1lTX0NPTlRBQ1QKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TWVNfTE9DCiMgZGVmaW5lIFNZU19MT0MgTkVUU05NUF9TWVNfTE9DCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX0xJQldSQVAKIyBkZWZpbmUgVVNFX0xJQldSQVAgTkVUU05NUF9VU0VfTElCV1JBUAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUgCiMgZGVmaW5lIFNOTVBfVEVTVElOR19DT0RFIE5FVFNOTVBfRU5BQkxFX1RFU1RJTkdfQ09ERQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX1JPT1RfQUNDRVNTCiMgZGVmaW5lIE5PX1JPT1RfQUNDRVNTIE5FVFNOTVBfTk9fUk9PVF9BQ0NFU1MKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19LTUVNX1VTQUdFCiMgZGVmaW5lIE5PX0tNRU1fVVNBR0UgTkVUU05NUF9OT19LTUVNX1VTQUdFCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fRFVNTVlfVkFMVUVTCiMgZGVmaW5lIE5PX0RVTU1ZX1ZBTFVFUyBORVRTTk1QX05PX0RVTU1ZX1ZBTFVFUwojZW5kaWYKCiNkZWZpbmUgVkVSU19ERVNDICAgICBORVRTTk1QX1ZFUlNfREVTQwojZGVmaW5lIFNZU19OQU1FICAgICAgTkVUU05NUF9TWVNfTkFNRQoKI2RlZmluZSBQUk9DTUlCTlVNICAgIE5FVFNOTVBfUFJPQ01JQk5VTQojZGVmaW5lIFNIRUxMTUlCTlVNICAgTkVUU05NUF9TSEVMTE1JQk5VTQojZGVmaW5lIE1FTU1JQk5VTSAgICAgTkVUU05NUF9NRU1NSUJOVU0KI2RlZmluZSBESVNLTUlCTlVNICAgIE5FVFNOTVBfRElTS01JQk5VTQoKI2RlZmluZSBMT0FEQVZFTUlCTlVNIE5FVFNOTVBfTE9BREFWRU1JQk5VTQojZGVmaW5lIFZFUlNJT05NSUJOVU0gTkVUU05NUF9WRVJTSU9OTUlCTlVNCiNkZWZpbmUgRVJST1JNSUJOVU0gICBORVRTTk1QX0VSUk9STUlCTlVNCiNkZWZpbmUgQUdFTlRJRCAgICAgICBORVRTTk1QX0FHRU5USUQKCiNkZWZpbmUgSFBVWDlJRCAgICAgICBORVRTTk1QX0hQVVg5SUQKI2RlZmluZSBTVU5PUzRJRCAgICAgIE5FVFNOTVBfU1VOT1M0SUQKI2RlZmluZSBTT0xBUklTSUQgICAgIE5FVFNOTVBfU09MQVJJU0lECiNkZWZpbmUgT1NGSUQgICAgICAgICBORVRTTk1QX09TRklECiNkZWZpbmUgVUxUUklYSUQgICAgICBORVRTTk1QX1VMVFJJWElECiNkZWZpbmUgSFBVWDEwSUQgICAgICBORVRTTk1QX0hQVVgxMElECiNkZWZpbmUgTkVUQlNEMUlEICAgICBORVRTTk1QX05FVEJTRDFJRAojZGVmaW5lIEZSRUVCU0RJRCAgICAgTkVUU05NUF9GUkVFQlNESUQKI2RlZmluZSBJUklYSUQgICAgICAgIE5FVFNOTVBfSVJJWElECiNkZWZpbmUgTElOVVhJRCAgICAgICBORVRTTk1QX0xJTlVYSUQKI2RlZmluZSBCU0RJSUQgICAgICAgIE5FVFNOTVBfQlNESUlECiNkZWZpbmUgT1BFTkJTRElEICAgICBORVRTTk1QX09QRU5CU0RJRAojZGVmaW5lIFdJTjMySUQgICAgICAgTkVUU05NUF9XSU4zMklECiNkZWZpbmUgSFBVWDExSUQgICAgICBORVRTTk1QX0hQVVgxMUlECiNkZWZpbmUgQUlYSUQgICAgICAgICBORVRTTk1QX0FJWElECiNkZWZpbmUgTUFDT1NYSUQgICAgICBORVRTTk1QX01BQ09TWElECiNkZWZpbmUgVU5LTk9XTklEICAgICBORVRTTk1QX1VOS05PV05JRAoKI2RlZmluZSBFTlRFUlBSSVNFX09JRCAgICAgICAgICAgIE5FVFNOTVBfRU5URVJQUklTRV9PSUQKI2RlZmluZSBFTlRFUlBSSVNFX01JQiAgICAgICAgICAgIE5FVFNOTVBfRU5URVJQUklTRV9NSUIKI2RlZmluZSBFTlRFUlBSSVNFX0RPVF9NSUIgICAgICAgIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCCiNkZWZpbmUgRU5URVJQUklTRV9ET1RfTUlCX0xFTkdUSCBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgU1lTVEVNX01JQgkJICBORVRTTk1QX1NZU1RFTV9NSUIKI2RlZmluZSBTWVNURU1fRE9UX01JQgkJICBORVRTTk1QX1NZU1RFTV9ET1RfTUlCCiNkZWZpbmUgU1lTVEVNX0RPVF9NSUJfTEVOR1RICSAgTkVUU05NUF9TWVNURU1fRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgTk9USUZJQ0FUSU9OX01JQgkgICAgTkVUU05NUF9OT1RJRklDQVRJT05fTUlCCQojZGVmaW5lIE5PVElGSUNBVElPTl9ET1RfTUlCCSAgICBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCCiNkZWZpbmUgTk9USUZJQ0FUSU9OX0RPVF9NSUJfTEVOR1RIIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIFVDREFWSVNfT0lECQkgIE5FVFNOTVBfVUNEQVZJU19PSUQKI2RlZmluZSBVQ0RBVklTX01JQgkJICBORVRTTk1QX1VDREFWSVNfTUlCCiNkZWZpbmUgVUNEQVZJU19ET1RfTUlCCQkgIE5FVFNOTVBfVUNEQVZJU19ET1RfTUlCCiNkZWZpbmUgVUNEQVZJU19ET1RfTUlCX0xFTkdUSAkgIE5FVFNOTVBfVUNEQVZJU19ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBFUlJPUlRJTUVMRU5HVEggTkVUU05NUF9FUlJPUlRJTUVMRU5HVEgKCiNpZmRlZiBORVRTTk1QX1BST0NGSVhDTUQKIyBkZWZpbmUgUFJPQ0ZJWENNRCBORVRTTk1QX1BST0NGSVhDTUQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FWEVDRklYQ01ECiMgZGVmaW5lIEVYRUNGSVhDTUQgTkVUU05NUF9FWEVDRklYQ01ECiNlbmRpZgoKI2RlZmluZSBFWENBQ0hFVElNRSAgTkVUU05NUF9FWENBQ0hFVElNRQojZGVmaW5lIENBQ0hFRklMRSAgICBORVRTTk1QX0NBQ0hFRklMRQojZGVmaW5lIE1BWENBQ0hFU0laRSBORVRTTk1QX01BWENBQ0hFU0laRQoKI2RlZmluZSBERUZESVNLTUlOSU1VTVNQQUNFIE5FVFNOTVBfREVGRElTS01JTklNVU1TUEFDRQojZGVmaW5lIERFRk1BWExPQURBVkUgTkVUU05NUF9ERUZNQVhMT0FEQVZFCiNkZWZpbmUgTUFYUkVBRENPVU5UIE5FVFNOTVBfTUFYUkVBRENPVU5UCgojZGVmaW5lIFNOTVBCTE9DSyBORVRTTk1QX1NOTVBCTE9DSwojZGVmaW5lIFJFU1RBUlRTTEVFUCBORVRTTk1QX1JFU1RBUlRTTEVFUAoKI2RlZmluZSBOVU1fQ09NTVVOSVRJRVMJTkVUU05NUF9OVU1fQ09NTVVOSVRJRVMKCiNpZmRlZiBORVRTTk1QX05PX1pFUk9MRU5HVEhfQ09NTVVOSVRZCiMgZGVmaW5lIE5PX1pFUk9MRU5HVEhfQ09NTVVOSVRZIE5FVFNOTVBfTk9fWkVST0xFTkdUSF9DT01NVU5JVFkKI2VuZGlmCgojZGVmaW5lIExBU1RGSUVMRCBORVRTTk1QX0xBU1RGSUVMRAoKI2RlZmluZSBDT05GSUdVUkVfT1BUSU9OUyBORVRTTk1QX0NPTkZJR1VSRV9PUFRJT05TCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVU5JWF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVU5JWF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVU5JWF9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfQUFMNVBWQ19ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfQUFMNVBWQ19ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfQUFMNVBWQ19ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVENQSVBWNl9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVENQSVBWNl9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVENQSVBWNl9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVExTX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9UTFNfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TRUNNT0RfVVNNCiMgZGVmaW5lIFNOTVBfU0VDTU9EX1VTTSBORVRTTk1QX1NFQ01PRF9VU00KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TRUNNT0RfS1NNCiMgZGVmaW5lIFNOTVBfU0VDTU9EX0tTTSBORVRTTk1QX1NFQ01PRF9LU00KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TRUNNT0RfTE9DQUxTTSAKIyBkZWZpbmUgU05NUF9TRUNNT0RfTE9DQUxTTSBORVRTTk1QX1NFQ01PRF9MT0NBTFNNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfUkVFTlRSQU5UCiMgZGVmaW5lIE5TX1JFRU5UUkFOVCBORVRTTk1QX1JFRU5UUkFOVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CiMgZGVmaW5lIElORVQ2IE5FVFNOTVBfRU5BQkxFX0lQVjYKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfTE9DQUxfU01VWAojIGRlZmluZSBMT0NBTF9TTVVYIE5FVFNOTVBfRU5BQkxFX0xPQ0FMX1NNVVgKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9BR0VOVFhfRE9NX1NPQ0tfT05MWQojIGRlZmluZSBBR0VOVFhfRE9NX1NPQ0tfT05MWSBORVRTTk1QX0FHRU5UWF9ET01fU09DS19PTkxZCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYCiMgZGVmaW5lIFNOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19NSVQKIyBkZWZpbmUgTUlUX05FV19DUllQVE8gTkVUU05NUF9VU0VfS0VSQkVST1NfTUlUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX0tFUkJFUk9TX0hFSU1EQUwKIyBkZWZpbmUgSEVJTURBTCBORVRTTk1QX1VTRV9LRVJCRVJPU19IRUlNREFMCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUdFTlRYX1NPQ0tFVAojIGRlZmluZSBBR0VOVFhfU09DS0VUIE5FVFNOTVBfQUdFTlRYX1NPQ0tFVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcKIyBkZWZpbmUgRElTQUJMRV9NSUJfTE9BRElORyBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMQojIGRlZmluZSBESVNBQkxFX1NOTVBWMSBORVRTTk1QX0RJU0FCTEVfU05NUFYxCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCiMgZGVmaW5lIERJU0FCTEVfU05NUFYyQyBORVRTTk1QX0RJU0FCTEVfU05NUFYyQwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKIyBkZWZpbmUgRElTQUJMRV9TRVRfU1VQUE9SVCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX0RFUwojIGRlZmluZSBESVNBQkxFX0RFUyBORVRTTk1QX0RJU0FCTEVfREVTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9NRDUKIyBkZWZpbmUgRElTQUJMRV9NRDUgTkVUU05NUF9ESVNBQkxFX01ENQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RPTlRfVVNFX05MSVNUCiMgZGVmaW5lIERPTlRfVVNFX05MSVNUIE5FVFNOTVBfRE9OVF9VU0VfTkxJU1QKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9DQU5fVVNFX05MSVNUCiMgZGVmaW5lIENBTl9VU0VfTkxJU1QgTkVUU05NUF9DQU5fVVNFX05MSVNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKIyBkZWZpbmUgQ0FOX1VTRV9TWVNDVEwgTkVUU05NUF9DQU5fVVNFX1NZU0NUTAojZW5kaWYKCiNlbmRpZiAvKiBORVRTTk1QX05PX0xFR0FDWV9ERUZJTklUSU9OUyAqLwoKCiNlbmRpZiAvKiBORVRfU05NUF9DT05GSUdfSCAqLwo=