LyoKICogTVBDODM0OSBJbnRlcm5hbCBNZW1vcnkgTWFwCiAqIENvcHlyaWdodCAoYykgMjAwNCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3Rvci4KICogRXJhbiBMaWJlcnR5IChsaWJlcnR5QGZyZWVzY2FsZS5jb20pCiAqCiAqIGJhc2VkIG9uOgogKiAtIE1QQzgyNjAgSW50ZXJuYWwgTWVtb3J5IE1hcAogKiAgIENvcHlyaWdodCAoYykgMTk5OSBEYW4gTWFsZWsgKGRtYWxla0BqbGMubmV0KQogKiAtIE1QQzg1eHggSW50ZXJuYWwgTWVtb3J5IE1hcAogKiAgIENvcHlyaWdodChjKSAyMDAyLDIwMDMgTW90b3JvbGEgSW5jLgogKiAgIFhpYW5naHVhIFhpYW8gKHgueGlhb0Btb3Rvcm9sYS5jb20pCiAqLwojaWZuZGVmIF9fSU1NQVBfODM0OV9fCiNkZWZpbmUgX19JTU1BUF84MzQ5X18KCiNpbmNsdWRlIDxhc20vdHlwZXMuaD4KI2luY2x1ZGUgPGFzbS9pMmMuaD4KCi8qCiAqIExvY2FsIEFjY2VzcyBXaW5kb3cuCiAqLwp0eXBlZGVmIHN0cnVjdCBsYXc4MzQ5IHsKCXUzMiBiYXI7IC8qIExCSVUgbG9jYWwgYWNjZXNzIHdpbmRvdyBiYXNlIGFkZHJlc3MgcmVnaXN0ZXIgKi8KLyogSWRlbnRpZmllcyB0aGUgMjAgbW9zdC1zaWduaWZpY2FudCBhZGRyZXNzIGJpdHMgb2YgdGhlIGJhc2Ugb2YgbG9jYWwKICogYWNjZXNzIHdpbmRvdyBuLiBUaGUgc3BlY2lmaWVkIGJhc2UgYWRkcmVzcyBzaG91bGQgYmUgYWxpZ25lZCB0byB0aGUKICogd2luZG93IHNpemUsIGFzIGRlZmluZWQgYnkgTEJMQVdBUm5bU0laRV0uCiAqLwojZGVmaW5lIExBV0JBUl9CQVIgICAgICAgICAweEZGRkZGMDAwCiNkZWZpbmUgTEFXQkFSX1JFUwkgICAgIH4oTEFXQkFSX0JBUikKCXUzMiBhcjsgLyogTEJJVSBsb2NhbCBhY2Nlc3Mgd2luZG93IGF0dHJpYnV0ZSByZWdpc3RlciAqLwovKgogKiBUaGlzIE1hY3JvIHdlcmUgbW92ZWQgaW50byBtbXUuaAogKi8KI2lmIDAKLyogMCBUaGUgbG9jYWwgYnVzIGxvY2FsIGFjY2VzcyB3aW5kb3cgbiBpcyBkaXNhYmxlZC4gMSBUaGUgbG9jYWwgYnVzCiAqIGxvY2FsIGFjY2VzcyB3aW5kb3cgbiBpcyBlbmFibGVkIGFuZCBvdGhlciBMQkxBV0FSMCBhbmQgTEJMQVdCQVIwIGZpZWxkcwogKiBjb21iaW5lIHRvIGlkZW50aWZ5IGFuIGFkZHJlc3MgcmFuZ2UgZm9yIHRoaXMgd2luZG93LgogKi8KI2RlZmluZSBMQVdBUl9FTiAgICAgICAgICAgMHg4MDAwMDAwMAovKiBJZGVudGlmaWVzIHRoZSBzaXplIG9mIHRoZSB3aW5kb3cgZnJvbSB0aGUgc3RhcnRpbmcgYWRkcmVzcy4gV2luZG93CiAqIHNpemUgaXMgMl4oU0laRSsxKSBieXRlcy4gMDAwMDAwljAwMTAxMFJlc2VydmVkLiBXaW5kb3cgaXMKICogdW5kZWZpbmVkLgogKi8KI2RlZmluZSBMQVdBUl9TSVpFICAgICAgICAgMHgwMDAwMDAzRgojZGVmaW5lCUxBV0FSX1NJWkVfNEsJMHgwMDAwMDAwQgojZGVmaW5lCUxBV0FSX1NJWkVfOEsJMHgwMDAwMDAwQwojZGVmaW5lCUxBV0FSX1NJWkVfMTZLCTB4MDAwMDAwMEQKI2RlZmluZQlMQVdBUl9TSVpFXzMySwkweDAwMDAwMDBFCiNkZWZpbmUJTEFXQVJfU0laRV82NEsJMHgwMDAwMDAwRgojZGVmaW5lCUxBV0FSX1NJWkVfMTI4SwkweDAwMDAwMDEwCiNkZWZpbmUJTEFXQVJfU0laRV8yNTZLCTB4MDAwMDAwMTEKI2RlZmluZQlMQVdBUl9TSVpFXzUxMksJMHgwMDAwMDAxMgojZGVmaW5lCUxBV0FSX1NJWkVfMU0JMHgwMDAwMDAxMwojZGVmaW5lCUxBV0FSX1NJWkVfMk0JMHgwMDAwMDAxNAojZGVmaW5lCUxBV0FSX1NJWkVfNE0JMHgwMDAwMDAxNQojZGVmaW5lCUxBV0FSX1NJWkVfOE0JMHgwMDAwMDAxNgojZGVmaW5lCUxBV0FSX1NJWkVfMTZNCTB4MDAwMDAwMTcKI2RlZmluZQlMQVdBUl9TSVpFXzMyTQkweDAwMDAwMDE4CiNkZWZpbmUJTEFXQVJfU0laRV82NE0JMHgwMDAwMDAxOQojZGVmaW5lCUxBV0FSX1NJWkVfMTI4TQkweDAwMDAwMDFBCiNkZWZpbmUJTEFXQVJfU0laRV8yNTZNCTB4MDAwMDAwMUIKI2RlZmluZQlMQVdBUl9TSVpFXzUxMk0JMHgwMDAwMDAxQwojZGVmaW5lCUxBV0FSX1NJWkVfMUcJMHgwMDAwMDAxRAojZGVmaW5lCUxBV0FSX1NJWkVfMkcJMHgwMDAwMDAxRQojZGVmaW5lIExBV0FSX1JFUyAgICAgICAgICB+KExBV0FSX0VOfExBV0FSX1NJWkUpCiNlbmRpZgoKfSBsYXc4MzQ5X3Q7CgovKgogKiBTeXN0ZW0gY29uZmlndXJhdGlvbiByZWdpc3RlcnMuCiAqLwp0eXBlZGVmIHN0cnVjdCBzeXNjb25mODM0OSB7Cgl1MzIgaW1tcmJhcjsgLyogSW50ZXJuYWwgbWVtb3J5IG1hcCBiYXNlIGFkZHJlc3MgcmVnaXN0ZXIgKi8KCXU4IHJlczBbMHgwNF07Cgl1MzIgYWx0Y2JhcjsgLyogQWx0ZXJuYXRlIGNvbmZpZ3VyYXRpb24gYmFzZSBhZGRyZXNzIHJlZ2lzdGVyICovCi8qIElkZW50aWZpZXMgdGhlMTIgbW9zdCBzaWduaWZpY2FudCBhZGRyZXNzIGJpdHMgb2YgYW4gYWx0ZXJuYXRlIGJhc2UKICogYWRkcmVzcyB1c2VkIGZvciBib290IHNlcXVlbmNlciBjb25maWd1cmF0aW9uIGFjY2Vzc2VzLgogKi8KI2RlZmluZSBBTFRDQkFSX0JBU0VfQUREUiAgICAgMHhGRkYwMDAwMAojZGVmaW5lIEFMVENCQVJfUkVTICAgICAgICAgICB+KEFMVENCQVJfQkFTRV9BRERSKSAvKiBSZXNlcnZlZC4gV3JpdGUgaGFzIG5vIGVmZmVjdCwgcmVhZCByZXR1cm5zIDAuICovCgl1OCByZXMxWzB4MTRdOwoJbGF3ODM0OV90IGxibGF3WzRdOyAvKiBMQklVIGxvY2FsIGFjY2VzcyB3aW5kb3cgKi8KCXU4IHJlczJbMHgyMF07CglsYXc4MzQ5X3QgcGNpbGF3WzJdOyAvKiBQQ0kgbG9jYWwgYWNjZXNzIHdpbmRvdyAqLwoJdTggcmVzM1sweDMwXTsKCWxhdzgzNDlfdCBkZHJsYXdbMl07IC8qIEREUiBsb2NhbCBhY2Nlc3Mgd2luZG93ICovCgl1OCByZXM0WzB4NTBdOwoJdTMyIHNncHJsOyAvKiBTeXN0ZW0gR2VuZXJhbCBQdXJwb3NlIFJlZ2lzdGVyIExvdyAqLwoJdTMyIHNncHJoOyAvKiBTeXN0ZW0gR2VuZXJhbCBQdXJwb3NlIFJlZ2lzdGVyIEhpZ2ggKi8KCXUzMiBzcHJpZHI7IC8qIFN5c3RlbSBQYXJ0IGFuZCBSZXZpc2lvbiBJRCBSZWdpc3RlciAqLwojZGVmaW5lIFNQUklEUl9QQVJUSUQgICAgICAgICAweEZGRkYwMDAwIC8qIFBhcnQgSWRlbnRpZmljYXRpb24uICovCiNkZWZpbmUgU1BSSURSX1JFVklEICAgICAgICAgIDB4MDAwMEZGRkYgLyogUmV2aXNpb24gSWRlbnRpZmljYXRpb24uICovCgl1OCByZXM1WzB4MDRdOwoJdTMyIHNwY3I7IC8qIFN5c3RlbSBQcmlvcml0eSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCiNkZWZpbmUgU1BDUl9QQ0lIUEUgICAweDEwMDAwMDAwIC8qIFBDSSBIaWdoZXN0IFByaW9yaXR5IEVuYWJsZS4gKi8KI2RlZmluZSBTUENSX1BDSVBSICAgIDB4MDMwMDAwMDAgLyogUENJIGJyaWRnZSBzeXN0ZW0gYnVzIHJlcXVlc3QgcHJpb3JpdHkuICovCiNkZWZpbmUgU1BDUl9UQkVOICAgICAweDAwNDAwMDAwIC8qIEUzMDAgUG93ZXJQQyBjb3JlIHRpbWUgYmFzZSB1bml0IGVuYWJsZS4gKi8KI2RlZmluZSBTUENSX0NPUkVQUiAgIDB4MDAzMDAwMDAgLyogRTMwMCBQb3dlclBDIENvcmUgc3lzdGVtIGJ1cyByZXF1ZXN0IHByaW9yaXR5LiAqLwojZGVmaW5lIFNQQ1JfVFNFQzFEUCAgMHgwMDAwMzAwMCAvKiBUU0VDMSBkYXRhIHByaW9yaXR5LiAqLwojZGVmaW5lIFNQQ1JfVFNFQzFCRFAgMHgwMDAwMEMwMCAvKiBUU0VDMSBidWZmZXIgZGVzY3JpcHRvciBwcmlvcml0eS4gKi8KI2RlZmluZSBTUENSX1RTRUMxRVAgIDB4MDAwMDAzMDAgLyogVFNFQzEgZW1lcmdlbmN5IHByaW9yaXR5LiAqLwojZGVmaW5lIFNQQ1JfVFNFQzJEUCAgMHgwMDAwMDAzMCAvKiBUU0VDMiBkYXRhIHByaW9yaXR5LiAqLwojZGVmaW5lIFNQQ1JfVFNFQzJCRFAgMHgwMDAwMDAwQyAvKiBUU0VDMiBidWZmZXIgZGVzY3JpcHRvciBwcmlvcml0eS4gKi8KI2RlZmluZSBTUENSX1RTRUMyRVAgIDB4MDAwMDAwMDMgLyogVFNFQzIgZW1lcmdlbmN5IHByaW9yaXR5LiAqLwojZGVmaW5lIFNQQ1JfUkVTICAgICAgfihTUENSX1BDSUhQRSB8IFNQQ1JfUENJUFIgfCBTUENSX1RCRU4gfCBTUENSX0NPUkVQUiBcCgkJCXwgU1BDUl9UU0VDMURQIHwgU1BDUl9UU0VDMUJEUCB8IFNQQ1JfVFNFQzFFUCBcCgkJCXwgU1BDUl9UU0VDMkRQIHwgU1BDUl9UU0VDMkJEUCB8IFNQQ1JfVFNFQzJFUCkKCXUzMiBzaWNybDsgLyogU3lzdGVtIEdlbmVyYWwgUHVycG9zZSBSZWdpc3RlciBMb3cgKi8KI2RlZmluZSBTSUNSTF9MRFBfQSAgIDB4ODAwMDAwMDAKI2RlZmluZSBTSUNSTF9VU0IwICAgIDB4NDAwMDAwMDAKI2RlZmluZSBTSUNSTF9VU0IxICAgIDB4MjAwMDAwMDAKI2RlZmluZSBTSUNSTF9VQVJUICAgIDB4MEMwMDAwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9BIDB4MDIwMDAwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9CIDB4MDEwMDAwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9DIDB4MDA4MDAwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9EIDB4MDA0MDAwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9FIDB4MDAyMDAwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9GIDB4MDAxODAwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9HIDB4MDAwNDAwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9IIDB4MDAwMjAwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9JIDB4MDAwMTAwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9KIDB4MDAwMDgwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9LIDB4MDAwMDQwMDAKI2RlZmluZSBTSUNSTF9HUElPMV9MIDB4MDAwMDMwMDAKI2RlZmluZSBTSUNSTF9SRVMgfihTSUNSTF9MRFBfQSB8IFNJQ1JMX1VTQjAgfCBTSUNSTF9VU0IxIHwgU0lDUkxfVUFSVCBcCgkJCXwgU0lDUkxfR1BJTzFfQSB8IFNJQ1JMX0dQSU8xX0IgfCBTSUNSTF9HUElPMV9DIFwKCQkJfCBTSUNSTF9HUElPMV9EIHwgU0lDUkxfR1BJTzFfRSB8IFNJQ1JMX0dQSU8xX0YgXAoJCQl8IFNJQ1JMX0dQSU8xX0cgfCBTSUNSTF9HUElPMV9IIHwgU0lDUkxfR1BJTzFfSSBcCgkJCXwgU0lDUkxfR1BJTzFfSiB8IFNJQ1JMX0dQSU8xX0sgfCBTSUNSTF9HUElPMV9MICkKCXUzMiBzaWNyaDsgLyogU3lzdGVtIEdlbmVyYWwgUHVycG9zZSBSZWdpc3RlciBIaWdoICovCiNkZWZpbmUgU0lDUkhfRERSICAgICAweDgwMDAwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzFfQSAweDEwMDAwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzFfQiAweDA4MDAwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzFfQyAweDA0MDAwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzFfRCAweDAyMDAwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzFfRSAweDAxMDAwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzFfRiAweDAwODAwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzJfQSAweDAwNDAwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzJfQiAweDAwMjAwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzJfQyAweDAwMTAwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzJfRCAweDAwMDgwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzJfRSAweDAwMDQwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzJfRiAweDAwMDIwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzJfRyAweDAwMDEwMDAwCiNkZWZpbmUgU0lDUkhfVFNFQzJfSCAweDAwMDA4MDAwCiNkZWZpbmUgU0lDUkhfR1BJTzJfQSAweDAwMDA0MDAwCiNkZWZpbmUgU0lDUkhfR1BJTzJfQiAweDAwMDAyMDAwCiNkZWZpbmUgU0lDUkhfR1BJTzJfQyAweDAwMDAxMDAwCiNkZWZpbmUgU0lDUkhfR1BJTzJfRCAweDAwMDAwODAwCiNkZWZpbmUgU0lDUkhfR1BJTzJfRSAweDAwMDAwNDAwCiNkZWZpbmUgU0lDUkhfR1BJTzJfRiAweDAwMDAwMjAwCiNkZWZpbmUgU0lDUkhfR1BJTzJfRyAweDAwMDAwMTgwCiNkZWZpbmUgU0lDUkhfR1BJTzJfSCAweDAwMDAwMDYwCiNkZWZpbmUgU0lDUkhfVFNPQkkxICAweDAwMDAwMDAyCiNkZWZpbmUgU0lDUkhfVFNPQkkyICAweDAwMDAwMDAxCiNkZWZpbmUgU0lDUmhfUkVTICAgICB+KCAgU0lDUkhfRERSIHwgU0lDUkhfVFNFQzFfQSB8IFNJQ1JIX1RTRUMxX0IgXAoJCQl8IFNJQ1JIX1RTRUMxX0MgfCBTSUNSSF9UU0VDMV9EIHwgU0lDUkhfVFNFQzFfRSBcCgkJCXwgU0lDUkhfVFNFQzFfRiB8IFNJQ1JIX1RTRUMyX0EgfCBTSUNSSF9UU0VDMl9CIFwKCQkJfCBTSUNSSF9UU0VDMl9DIHwgU0lDUkhfVFNFQzJfRCB8IFNJQ1JIX1RTRUMyX0UgXAoJCQl8IFNJQ1JIX1RTRUMyX0YgfCBTSUNSSF9UU0VDMl9HIHwgU0lDUkhfVFNFQzJfSCBcCgkJCXwgU0lDUkhfR1BJTzJfQSB8IFNJQ1JIX0dQSU8yX0IgfCBTSUNSSF9HUElPMl9DIFwKCQkJfCBTSUNSSF9HUElPMl9EIHwgU0lDUkhfR1BJTzJfRSB8IFNJQ1JIX0dQSU8yX0YgXAoJCQl8IFNJQ1JIX0dQSU8yX0cgfCBTSUNSSF9HUElPMl9IIHwgU0lDUkhfVFNPQkkxIFwKCQkJfCBTSUNSSF9UU09CSTIpCgl1OCByZXM2WzB4RTRdOwp9IHN5c2NvbmY4MzQ5X3Q7CgovKgogKiBXYXRjaCBEb2cgVGltZXIgKFdEVCkgUmVnaXN0ZXJzCiAqLwp0eXBlZGVmIHN0cnVjdCB3ZHQ4MzQ5IHsKCXU4IHJlczBbNF07Cgl1MzIgc3djcnI7IC8qIFN5c3RlbSB3YXRjaGRvZyBjb250cm9sIHJlZ2lzdGVyICovCgl1MzIgc3djbnI7IC8qIFN5c3RlbSB3YXRjaGRvZyBjb3VudCByZWdpc3RlciAqLwojZGVmaW5lIFNXQ05SX1NXQ04gMHgwMDAwRkZGRiBTb2Z0d2FyZSBXYXRjaGRvZyBDb3VudCBGaWVsZC4KI2RlZmluZSBTV0NOUl9SRVMgIH4oU1dDTlJfU1dDTikKCXU4IHJlczFbMl07Cgl1MTYgc3dzcnI7IC8qIFN5c3RlbSB3YXRjaGRvZyBzZXJ2aWNlIHJlZ2lzdGVyICovCgl1OCByZXMyWzB4RjBdOwp9IHdkdDgzNDlfdDsKCi8qCiAqIFJUQy9QSVQgTW9kdWxlIFJlZ2lzdGVycwogKi8KdHlwZWRlZiBzdHJ1Y3QgcnRjbGs4MzQ5IHsKCXUzMiBjbnI7IC8qIGNvbnRyb2wgcmVnaXN0ZXIgKi8KI2RlZmluZSBDTlJfQ0xFTiAweDAwMDAwMDgwIC8qIENsb2NrIEVuYWJsZSBDb250cm9sIEJpdCAgKi8KI2RlZmluZSBDTlJfQ0xJTiAweDAwMDAwMDQwIC8qIElucHV0IENsb2NrIENvbnRyb2wgQml0ICAqLwojZGVmaW5lIENOUl9BSU0gIDB4MDAwMDAwMDIgLyogQWxhcm0gSW50ZXJydXB0IE1hc2sgQml0ICAqLwojZGVmaW5lIENOUl9TSU0gIDB4MDAwMDAwMDEgLyogU2Vjb25kIEludGVycnVwdCBNYXNrIEJpdCAgKi8KI2RlZmluZSBDTlJfUkVTICB+KENOUl9DTEVOIHwgQ05SX0NMSU4gfCBDTlJfQUlNIHwgQ05SX1NJTSkKCXUzMiBsZHI7IC8qIGxvYWQgcmVnaXN0ZXIgKi8KCXUzMiBwc3I7IC8qIHByZXNjYWxlIHJlZ2lzdGVyICovCgl1MzIgY3RyOyAvKiByZWdpc3RlciAqLwoJdTMyIGV2cjsgLyogZXZlbnQgcmVnaXN0ZXIgKi8KI2RlZmluZSBSVEVWUl9TSUYgIDB4MDAwMDAwMDEgLyogU2Vjb25kIEludGVycnVwdCBGbGFnIEJpdCAgKi8KI2RlZmluZSBSVEVWUl9BSUYgIDB4MDAwMDAwMDIgLyogQWxhcm0gSW50ZXJydXB0IEZsYWcgQml0ICAqLwojZGVmaW5lIFJURVZSX1JFUyAgfihFVlJfU0lGIHwgRVZSX0FJRikKCXUzMiBhbHI7IC8qIGFsYXJtIHJlZ2lzdGVyICovCgl1OCByZXMwWzB4RThdOwp9IHJ0Y2xrODM0OV90OwoKLyoKICogR2xvYmFsIHRpbXBlciBtb2R1bGUKICovCgp0eXBlZGVmIHN0cnVjdCBndG04MzQ5IHsKCXU4ICAgIGNmcjE7IC8qIFRpbWVyMS8yIENvbmZpZ3VyYXRpb24gICovCiNkZWZpbmUgQ0ZSMV9QQ0FTIDB4ODAgLyogUGFpciBDYXNjYWRlIG1vZGUgICovCiNkZWZpbmUgQ0ZSMV9CQ00gIDB4NDAgIC8qIEJhY2t3YXJkIGNvbXBhdGlibGUgbW9kZSAgKi8KI2RlZmluZSBDRlIxX1NUUDIgMHgyMCAvKiBTdG9wIHRpbWVyICAqLwojZGVmaW5lIENGUjFfUlNUMiAweDEwIC8qIFJlc2V0IHRpbWVyICAqLwojZGVmaW5lIENGUjFfR00yICAweDA4IC8qIEdhdGUgbW9kZSBmb3IgcGluIDIgICovCiNkZWZpbmUgQ0ZSMV9HTTEgIDB4MDQgLyogR2F0ZSBtb2RlIGZvciBwaW4gMSAgKi8KI2RlZmluZSBDRlIxX1NUUDEgMHgwMiAvKiBTdG9wIHRpbWVyICAqLwojZGVmaW5lIENGUjFfUlNUMSAweDAxIC8qIFJlc2V0IHRpbWVyICAqLwoJdTggICAgcmVzMFszXTsKCXU4ICAgIGNmcjI7IC8qIFRpbWVyMy80IENvbmZpZ3VyYXRpb24gICovCiNkZWZpbmUgQ0ZSMl9QQ0FTIDB4ODAgLyogUGFpciBDYXNjYWRlIG1vZGUgICovCiNkZWZpbmUgQ0ZSMl9TQ0FTIDB4NDAgLyogU3VwZXIgQ2FzY2FkZSBtb2RlICAqLwojZGVmaW5lIENGUjJfU1RQNCAweDIwIC8qIFN0b3AgdGltZXIgICovCiNkZWZpbmUgQ0ZSMl9SU1Q0IDB4MTAgLyogUmVzZXQgdGltZXIgICovCiNkZWZpbmUgQ0ZSMl9HTTQgIDB4MDggLyogR2F0ZSBtb2RlIGZvciBwaW4gNCAgKi8KI2RlZmluZSBDRlIyX0dNMyAgMHgwNCAvKiBHYXRlIG1vZGUgZm9yIHBpbiAzICAqLwojZGVmaW5lIENGUjJfU1RQMyAweDAyIC8qIFN0b3AgdGltZXIgICovCiNkZWZpbmUgQ0ZSMl9SU1QzIDB4MDEgLyogUmVzZXQgdGltZXIgICovCgl1OCAgICByZXMxWzEwXTsKCXUxNiAgIG1kcjE7IC8qIFRpbWVyMSBNb2RlIFJlZ2lzdGVyICAqLwojZGVmaW5lIE1EUl9TUFMgIDB4ZmYwMCAvKiBTZWNvbmRhcnkgUHJlc2NhbGVyIHZhbHVlICAqLwojZGVmaW5lIE1EUl9DRSAgIDB4MDBjMCAvKiBDYXB0dXJlIGVkZ2UgYW5kIGVuYWJsZSBpbnRlcnJ1cHQgICovCiNkZWZpbmUgTURSX09NICAgMHgwMDIwIC8qIE91dHB1dCBtb2RlICAqLwojZGVmaW5lIE1EUl9PUkkgIDB4MDAxMCAvKiBPdXRwdXQgcmVmZXJlbmNlIGludGVycnVwdCBlbmFibGUgICovCiNkZWZpbmUgTURSX0ZSUiAgMHgwMDA4IC8qIEZyZWUgcnVuL3Jlc3RhcnQgICovCiNkZWZpbmUgTURSX0lDTEsgMHgwMDA2IC8qIElucHV0IGNsb2NrIHNvdXJjZSBmb3IgdGhlIHRpbWVyICAqLwojZGVmaW5lIE1EUl9HRSAgIDB4MDAwMSAvKiBHYXRlIGVuYWJsZSAgKi8KCXUxNiAgIG1kcjI7IC8qIFRpbWVyMiBNb2RlIFJlZ2lzdGVyICAqLwoJdTE2ICAgcmZyMTsgLyogVGltZXIxIFJlZmVyZW5jZSBSZWdpc3RlciAgKi8KCXUxNiAgIHJmcjI7IC8qIFRpbWVyMiBSZWZlcmVuY2UgUmVnaXN0ZXIgICovCgl1MTYgICBjcHIxOyAvKiBUaW1lcjEgQ2FwdHVyZSBSZWdpc3RlciAgKi8KCXUxNiAgIGNwcjI7IC8qIFRpbWVyMiBDYXB0dXJlIFJlZ2lzdGVyICAqLwoJdTE2ICAgY25yMTsgLyogVGltZXIxIENvdW50ZXIgUmVnaXN0ZXIgICovCgl1MTYgICBjbnIyOyAvKiBUaW1lcjIgQ291bnRlciBSZWdpc3RlciAgKi8KCXUxNiAgIG1kcjM7IC8qIFRpbWVyMyBNb2RlIFJlZ2lzdGVyICAqLwoJdTE2ICAgbWRyNDsgLyogVGltZXI0IE1vZGUgUmVnaXN0ZXIgICovCgl1MTYgICByZnIzOyAvKiBUaW1lcjMgUmVmZXJlbmNlIFJlZ2lzdGVyICAqLwoJdTE2ICAgcmZyNDsgLyogVGltZXI0IFJlZmVyZW5jZSBSZWdpc3RlciAgKi8KCXUxNiAgIGNwcjM7IC8qIFRpbWVyMyBDYXB0dXJlIFJlZ2lzdGVyICAqLwoJdTE2ICAgY3ByNDsgLyogVGltZXI0IENhcHR1cmUgUmVnaXN0ZXIgICovCgl1MTYgICBjbnIzOyAvKiBUaW1lcjMgQ291bnRlciBSZWdpc3RlciAgKi8KCXUxNiAgIGNucjQ7IC8qIFRpbWVyNCBDb3VudGVyIFJlZ2lzdGVyICAqLwoJdTE2ICAgZXZyMTsgLyogVGltZXIxIEV2ZW50IFJlZ2lzdGVyICAqLwoJdTE2ICAgZXZyMjsgLyogVGltZXIyIEV2ZW50IFJlZ2lzdGVyICAqLwoJdTE2ICAgZXZyMzsgLyogVGltZXIzIEV2ZW50IFJlZ2lzdGVyICAqLwoJdTE2ICAgZXZyNDsgLyogVGltZXI0IEV2ZW50IFJlZ2lzdGVyICAqLwojZGVmaW5lIEdURVZSX1JFRiAweDAwMDIgLyogT3V0cHV0IHJlZmVyZW5jZSBldmVudCAgKi8KI2RlZmluZSBHVEVWUl9DQVAgMHgwMDAxIC8qIENvdW50ZXIgQ2FwdHVyZSBldmVudCAgICovCiNkZWZpbmUgR1RFVlJfUkVTIH4oRVZSX0NBUHxFVlJfUkVGKQoJdTE2ICAgcHNyMTsgLyogVGltZXIxIFByZXNjYWxlciBSZWdpc3RlciAgKi8KCXUxNiAgIHBzcjI7IC8qIFRpbWVyMiBQcmVzY2FsZXIgUmVnaXN0ZXIgICovCgl1MTYgICBwc3IzOyAvKiBUaW1lcjMgUHJlc2NhbGVyIFJlZ2lzdGVyICAqLwoJdTE2ICAgcHNyNDsgLyogVGltZXI0IFByZXNjYWxlciBSZWdpc3RlciAgKi8KCXU4ICAgIHJlc1sweEMwXTsKfSBndG04MzQ5X3Q7CgovKgogKiBJbnRlZ3JhdGVkIFByb2dyYW1tYWJsZSBJbnRlcnJ1cHQgQ29udHJvbGxlcgogKi8KdHlwZWRlZiBzdHJ1Y3QgaXBpYzgzNDkgewoJdTMyICAgIHNpY2ZyOyAvKiAgU3lzdGVtIEdsb2JhbCBJbnRlcnJ1cHQgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAoU0lDRlIpICAqLwojZGVmaW5lIFNJQ0ZSX0hQSSAgMHg3ZjAwMDAwMCAvKiAgSGlnaGVzdCBQcmlvcml0eSBJbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lDRlJfTVBTQiAweDAwNDAwMDAwIC8qICBNaXhlZCBpbnRlcnJ1cHRzIFByaW9yaXR5IFNjaGVtZSBmb3IgZ3JvdXAgQiAgKi8KI2RlZmluZSBTSUNGUl9NUFNBIDB4MDAyMDAwMDAgLyogIE1peGVkIGludGVycnVwdHMgUHJpb3JpdHkgU2NoZW1lIGZvciBncm91cCBBICAqLwojZGVmaW5lIFNJQ0ZSX0lQU0QgMHgwMDA4MDAwMCAvKiAgSW50ZXJuYWwgaW50ZXJydXB0cyBQcmlvcml0eSBTY2hlbWUgZm9yIGdyb3VwIEQgICovCiNkZWZpbmUgU0lDRlJfSVBTQSAweDAwMDEwMDAwIC8qICBJbnRlcm5hbCBpbnRlcnJ1cHRzIFByaW9yaXR5IFNjaGVtZSBmb3IgZ3JvdXAgQSAgKi8KI2RlZmluZSBTSUNGUl9IUElUIDB4MDAwMDAzMDAgLyogIEhQSSBwcmlvcml0eSBwb3NpdGlvbiBJUElDIG91dHB1dCBpbnRlcnJ1cHQgVHlwZSAgKi8KI2RlZmluZSBTSUNGUl9SRVMgfihTSUNGUl9IUEl8U0lDRlJfTVBTQnxTSUNGUl9NUFNBfFNJQ0ZSX0lQU0R8U0lDRlJfSVBTQXxTSUNGUl9IUElUKQoJdTMyICAgIHNpdmNyOyAvKiAgU3lzdGVtIEdsb2JhbCBJbnRlcnJ1cHQgVmVjdG9yIFJlZ2lzdGVyIChTSVZDUikgICovCiNkZWZpbmUgU0lDVlJfSVZFQ1ggMHhmYzAwMDAwMCAvKiAgSW50ZXJydXB0IHZlY3RvciAoZm9yIENFIGNvbXBhdGliaWxpdHkgcHVycG9zZSBvbmx5IG5vdCB1c2VkIGluIDgzNDkgSVBJQyBpbXBsZW1lbnRhdGlvbikgICovCiNkZWZpbmUgU0lDVlJfSVZFQyAgMHgwMDAwMDA3ZiAvKiAgSW50ZXJydXB0IHZlY3RvciAgKi8KI2RlZmluZSBTSUNWUl9SRVMgfihTSUNWUl9JVkVDWHxTSUNWUl9JVkVDKQoJdTMyICAgIHNpcG5yX2g7IC8qICBTeXN0ZW0gSW50ZXJuYWwgSW50ZXJydXB0IFBlbmRpbmcgUmVnaXN0ZXIgLSBIaWdoIChTSVBOUl9IKSAgKi8KI2RlZmluZSBTSUlIX1RTRUMxVFggMHg4MDAwMDAwMCAvKiAgVFNFQzEgVHggaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUhfVFNFQzFSWCAweDQwMDAwMDAwIC8qICBUU0VDMSBSeCBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJSF9UU0VDMUVSIDB4MjAwMDAwMDAgLyogIFRTRUMxIEVyb3IgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUhfVFNFQzJUWCAweDEwMDAwMDAwIC8qICBUU0VDMiBUeCBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJSF9UU0VDMlJYIDB4MDgwMDAwMDAgLyogIFRTRUMyIFJ4IGludGVycnVwdCAgKi8KI2RlZmluZSBTSUlIX1RTRUMyRVIgMHgwNDAwMDAwMCAvKiAgVFNFQzIgRXJvciBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJSF9VU0IyRFIgIDB4MDIwMDAwMDAgLyogIFVTQjIgRFIgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUhfVVNCMk1QSCAweDAxMDAwMDAwIC8qICBVU0IyIE1QSCBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJSF9VQVJUMSAgIDB4MDAwMDAwODAgLyogIFVBUlQxIGludGVycnVwdCAgKi8KI2RlZmluZSBTSUlIX1VBUlQyICAgMHgwMDAwMDA0MCAvKiAgVUFSVDIgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUhfU0VDICAgICAweDAwMDAwMDIwIC8qICBTRUMgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUhfSTJDMSAgICAweDAwMDAwMDA0IC8qICBJMkMxIGludGVycnVwdCAgKi8KI2RlZmluZSBTSUlIX0kyQzIgICAgMHgwMDAwMDAwMiAvKiAgSTJDMSBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJSF9TUEkgICAgIDB4MDAwMDAwMDEgLyogIFNQSSBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJSF9SRVMJfihTSUlIX1RTRUMxVFggfCBTSUlIX1RTRUMxUlggfCBTSUlIX1RTRUMxRVIgXAoJCQl8IFNJSUhfVFNFQzJUWCB8IFNJSUhfVFNFQzJSWCB8IFNJSUhfVFNFQzJFUiBcCgkJCXwgU0lJSF9VU0IyRFIgfCBTSUlIX1VTQjJNUEggfCBTSUlIX1VBUlQxIFwKCQkJfCBTSUlIX1VBUlQyIHwgU0lJSF9TRUMgfCBTSUlIX0kyQzEgXAoJCQl8IFNJSUhfSTJDMiB8IFNJSUhfU1BJKQoJdTMyICAgIHNpcG5yX2w7IC8qICBTeXN0ZW0gSW50ZXJuYWwgSW50ZXJydXB0IFBlbmRpbmcgUmVnaXN0ZXIgLSBMb3cgKFNJUE5SX0wpICAqLwojZGVmaW5lIFNJSUxfUlRDUyAgMHg4MDAwMDAwMCAvKiAgUlRDIFNFQ09ORCBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJTF9QSVQgICAweDQwMDAwMDAwIC8qICBQSVQgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUxfUENJMSAgMHgyMDAwMDAwMCAvKiAgUENJMSBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJTF9QQ0kyICAweDEwMDAwMDAwIC8qICBQQ0kyIGludGVycnVwdCAgKi8KI2RlZmluZSBTSUlMX1JUQ0EgIDB4MDgwMDAwMDAgLyogIFJUQyBBTEFSTSBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJTF9NVSAgICAweDA0MDAwMDAwIC8qICBNZXNzYWdlIFVuaXQgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUxfU0JBICAgMHgwMjAwMDAwMCAvKiAgU3lzdGVtIEJ1cyBBcmJpdGVyIGludGVycnVwdCAgKi8KI2RlZmluZSBTSUlMX0RNQSAgIDB4MDEwMDAwMDAgLyogIERNQSBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJTF9HVE00ICAweDAwODAwMDAwIC8qICBHVE00IGludGVycnVwdCAgKi8KI2RlZmluZSBTSUlMX0dUTTggIDB4MDA0MDAwMDAgLyogIEdUTTggaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUxfR1BJTzEgMHgwMDIwMDAwMCAvKiAgR1BJTzEgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUxfR1BJTzIgMHgwMDEwMDAwMCAvKiAgR1BJTzIgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUxfRERSICAgMHgwMDA4MDAwMCAvKiAgRERSIGludGVycnVwdCAgKi8KI2RlZmluZSBTSUlMX0xCQyAgIDB4MDAwNDAwMDAgLyogIExCQyBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJTF9HVE0yICAweDAwMDIwMDAwIC8qICBHVE0yIGludGVycnVwdCAgKi8KI2RlZmluZSBTSUlMX0dUTTYgIDB4MDAwMTAwMDAgLyogIEdUTTYgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUxfUE1DICAgMHgwMDAwODAwMCAvKiAgUE1DIGludGVycnVwdCAgKi8KI2RlZmluZSBTSUlMX0dUTTMgIDB4MDAwMDA4MDAgLyogIEdUTTMgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUxfR1RNNyAgMHgwMDAwMDQwMCAvKiAgR1RNNyBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0lJTF9HVE0xICAweDAwMDAwMDIwIC8qICBHVE0xIGludGVycnVwdCAgKi8KI2RlZmluZSBTSUlMX0dUTTUgIDB4MDAwMDAwMTAgLyogIEdUTTUgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNJSUxfRFBUQyAgMHgwMDAwMDAwMSAvKiAgRFBUQyBpbnRlcnJ1cHQgKCEhISBJbnZpc2libGUgZm9yIHVzZXIgISEhKSAgKi8KI2RlZmluZSBTSUlMX1JFUwl+KFNJSUxfUlRDUyB8IFNJSUxfUElUIHwgU0lJTF9QQ0kxIHwgU0lJTF9QQ0kyIFwKCQkJfCBTSUlMX1JUQ0EgfCBTSUlMX01VIHwgU0lJTF9TQkEgfCBTSUlMX0RNQSBcCgkJCXwgU0lJTF9HVE00IHwgU0lJTF9HVE04IHwgU0lJTF9HUElPMSB8IFNJSUxfR1BJTzIgXAoJCQl8IFNJSUxfRERSIHwgU0lJTF9MQkMgfCBTSUlMX0dUTTIgfCBTSUlMX0dUTTYgXAoJCQl8IFNJSUxfUE1DIHxTSUlMX0dUTTMgfCBTSUlMX0dUTTcgfCBTSUlMX0dUTTEgXAoJCQl8IFNJSUxfR1RNNSB8U0lJTF9EUFRDICkKCXUzMiAgICBzaXBycl9hOyAvKiAgU3lzdGVtIEludGVybmFsIEludGVycnVwdCBHcm91cCBBIFByaW9yaXR5IFJlZ2lzdGVyIChQUlIpICAqLwoJdTggICAgIHJlczBbOF07Cgl1MzIgICAgc2lwcnJfZDsgLyogIFN5c3RlbSBJbnRlcm5hbCBJbnRlcnJ1cHQgR3JvdXAgRCBQcmlvcml0eSBSZWdpc3RlciAoUFJSKSAgKi8KCXUzMiAgICBzaW1zcl9oOyAvKiAgU3lzdGVtIEludGVybmFsIEludGVycnVwdCBNYXNrIFJlZ2lzdGVyIC0gSGlnaCAoU0lJSCkgICovCgl1MzIgICAgc2ltc3JfbDsgLyogIFN5c3RlbSBJbnRlcm5hbCBJbnRlcnJ1cHQgTWFzayBSZWdpc3RlciAtIExvdyAoU0lJTCkgICovCgl1OCAgICAgcmVzMVs0XTsKCXUzMiAgICBzZXBucjsgICAvKiAgU3lzdGVtIEV4dGVybmFsIEludGVycnVwdCBQZW5kaW5nIFJlZ2lzdGVyIChTRUkpICAqLwoJdTMyICAgIHNtcHJyX2E7IC8qICBTeXN0ZW0gTWl4ZWQgSW50ZXJydXB0IEdyb3VwIEEgUHJpb3JpdHkgUmVnaXN0ZXIgKFBSUikgICovCgl1MzIgICAgc21wcnJfYjsgLyogIFN5c3RlbSBNaXhlZCBJbnRlcnJ1cHQgR3JvdXAgQiBQcmlvcml0eSBSZWdpc3RlciAoUFJSKSAgKi8KI2RlZmluZSBQUlJfMCAweGUwMDAwMDAwIC8qIFByaW9yaXR5IFJlZ2lzdGVyLCBQb3NpdGlvbiAwIHByb2dyYW1taW5nICovCiNkZWZpbmUgUFJSXzEgMHgxYzAwMDAwMCAvKiBQcmlvcml0eSBSZWdpc3RlciwgUG9zaXRpb24gMSBwcm9ncmFtbWluZyAqLwojZGVmaW5lIFBSUl8yIDB4MDM4MDAwMDAgLyogUHJpb3JpdHkgUmVnaXN0ZXIsIFBvc2l0aW9uIDIgcHJvZ3JhbW1pbmcgKi8KI2RlZmluZSBQUlJfMyAweDAwNzAwMDAwIC8qIFByaW9yaXR5IFJlZ2lzdGVyLCBQb3NpdGlvbiAzIHByb2dyYW1taW5nICovCiNkZWZpbmUgUFJSXzQgMHgwMDAwZTAwMCAvKiBQcmlvcml0eSBSZWdpc3RlciwgUG9zaXRpb24gNCBwcm9ncmFtbWluZyAqLwojZGVmaW5lIFBSUl81IDB4MDAwMDFjMDAgLyogUHJpb3JpdHkgUmVnaXN0ZXIsIFBvc2l0aW9uIDUgcHJvZ3JhbW1pbmcgKi8KI2RlZmluZSBQUlJfNiAweDAwMDAwMzgwIC8qIFByaW9yaXR5IFJlZ2lzdGVyLCBQb3NpdGlvbiA2IHByb2dyYW1taW5nICovCiNkZWZpbmUgUFJSXzcgMHgwMDAwMDA3MCAvKiBQcmlvcml0eSBSZWdpc3RlciwgUG9zaXRpb24gNyBwcm9ncmFtbWluZyAqLwojZGVmaW5lIFBSUl9SRVMgfihQUlJfMHxQUlJfMXxQUlJfMnxQUlJfM3xQUlJfNHxQUlJfNXxQUlJfNnxQUlJfNykKCXUzMiAgICBzZW1zcjsgLyogIFN5c3RlbSBFeHRlcm5hbCBJbnRlcnJ1cHQgTWFzayBSZWdpc3RlciAoU0VJKSAgKi8KI2RlZmluZSBTRUlfSVJRMCAgMHg4MDAwMDAwMCAvKiAgSVJRMCBleHRlcm5hbCBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0VJX0lSUTEgIDB4NDAwMDAwMDAgLyogIElSUTEgZXh0ZXJuYWwgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNFSV9JUlEyICAweDIwMDAwMDAwIC8qICBJUlEyIGV4dGVybmFsIGludGVycnVwdCAgKi8KI2RlZmluZSBTRUlfSVJRMyAgMHgxMDAwMDAwMCAvKiAgSVJRMyBleHRlcm5hbCBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0VJX0lSUTQgIDB4MDgwMDAwMDAgLyogIElSUTQgZXh0ZXJuYWwgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNFSV9JUlE1ICAweDA0MDAwMDAwIC8qICBJUlE1IGV4dGVybmFsIGludGVycnVwdCAgKi8KI2RlZmluZSBTRUlfSVJRNiAgMHgwMjAwMDAwMCAvKiAgSVJRNiBleHRlcm5hbCBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0VJX0lSUTcgIDB4MDEwMDAwMDAgLyogIElSUTcgZXh0ZXJuYWwgaW50ZXJydXB0ICAqLwojZGVmaW5lIFNFSV9TSVJRMCAweDAwMDA4MDAwIC8qICBTSVJRMCBleHRlcm5hbCBpbnRlcnJ1cHQgICovCiNkZWZpbmUgU0VJX1JFUwkJfiggU0VJX0lSUTAgfCBTRUlfSVJRMSB8IFNFSV9JUlEyIHwgU0VJX0lSUTMgXAoJCQl8IFNFSV9JUlE0IHwgU0VJX0lSUTUgfCBTRUlfSVJRNiB8IFNFSV9JUlE3IFwKCQkJfCBTRUlfU0lSUTApCgl1MzIgICAgc2VjbnI7IC8qICBTeXN0ZW0gRXh0ZXJuYWwgSW50ZXJydXB0IENvbnRyb2wgUmVnaXN0ZXIgKFNFQ05SKSAqLwojZGVmaW5lIFNFQ05SX01JWEIwVCAweGMwMDAwMDAwIC8qICBNSVhCMCBwcmlvcml0eSBwb3NpdGlvbiBJUElDIG91dHB1dCBpbnRlcnJ1cHQgdHlwZSAgKi8KI2RlZmluZSBTRUNOUl9NSVhCMVQgMHgzMDAwMDAwMCAvKiAgTUlYQjEgcHJpb3JpdHkgcG9zaXRpb24gSVBJQyBvdXRwdXQgaW50ZXJydXB0IHR5cGUgICovCiNkZWZpbmUgU0VDTlJfTUlYQTBUIDB4MDBjMDAwMDAgLyogIE1JWEEwIHByaW9yaXR5IHBvc2l0aW9uIElQSUMgb3V0cHV0IGludGVycnVwdCB0eXBlICAqLwojZGVmaW5lIFNFQ05SX1NZU0ExVCAweDAwMzAwMDAwIC8qICBNSVhBMSBwcmlvcml0eSBwb3NpdGlvbiBJUElDIG91dHB1dCBpbnRlcnJ1cHQgdHlwZSAgKi8KI2RlZmluZSBTRUNOUl9FREkwICAgMHgwMDAwODAwMCAvKiAgSVJRMCBleHRlcm5hbCBpbnRlcnJ1cHQgZWRnZS9sZXZlbCBkZXRlY3QgICovCiNkZWZpbmUgU0VDTlJfRURJMSAgIDB4MDAwMDQwMDAgLyogIElSUTEgZXh0ZXJuYWwgaW50ZXJydXB0IGVkZ2UvbGV2ZWwgZGV0ZWN0ICAqLwojZGVmaW5lIFNFQ05SX0VESTIgICAweDAwMDAyMDAwIC8qICBJUlEyIGV4dGVybmFsIGludGVycnVwdCBlZGdlL2xldmVsIGRldGVjdCAgKi8KI2RlZmluZSBTRUNOUl9FREkzICAgMHgwMDAwMTAwMCAvKiAgSVJRMyBleHRlcm5hbCBpbnRlcnJ1cHQgZWRnZS9sZXZlbCBkZXRlY3QgICovCiNkZWZpbmUgU0VDTlJfRURJNCAgIDB4MDAwMDA4MDAgLyogIElSUTQgZXh0ZXJuYWwgaW50ZXJydXB0IGVkZ2UvbGV2ZWwgZGV0ZWN0ICAqLwojZGVmaW5lIFNFQ05SX0VESTUgICAweDAwMDAwNDAwIC8qICBJUlE1IGV4dGVybmFsIGludGVycnVwdCBlZGdlL2xldmVsIGRldGVjdCAgKi8KI2RlZmluZSBTRUNOUl9FREk2ICAgMHgwMDAwMDIwMCAvKiAgSVJRNiBleHRlcm5hbCBpbnRlcnJ1cHQgZWRnZS9sZXZlbCBkZXRlY3QgICovCiNkZWZpbmUgU0VDTlJfRURJNyAgIDB4MDAwMDAxMDAgLyogIElSUTcgZXh0ZXJuYWwgaW50ZXJydXB0IGVkZ2UvbGV2ZWwgZGV0ZWN0ICAqLwojZGVmaW5lIFNFQ05SX1JFUwl+KCBTRUNOUl9NSVhCMFQgfCBTRUNOUl9NSVhCMVQgfCBTRUNOUl9NSVhBMFQgXAoJCQl8IFNFQ05SX1NZU0ExVCB8IFNFQ05SX0VESTAgfCBTRUNOUl9FREkxIFwKCQkJfCBTRUNOUl9FREkyIHwgU0VDTlJfRURJMyB8IFNFQ05SX0VESTQgXAoJCQl8IFNFQ05SX0VESTUgfCBTRUNOUl9FREk2IHwgU0VDTlJfRURJNykKCXUzMiAgIHNlcnNyOyAvKiAgU3lzdGVtIEVycm9yIFN0YXR1cyBSZWdpc3RlciAoU0VSUikgICovCgl1MzIgICBzZXJtcjsgLyogIFN5c3RlbSBFcnJvciBNYXNrIFJlZ2lzdGVyIChTRVJSKSAgKi8KI2RlZmluZSBTRVJSX0lSUTAgMHg4MDAwMDAwMCAvKiAgSVJRMCBNQ1AgcmVxdWVzdCAgKi8KI2RlZmluZSBTRVJSX1dEVCAgMHg0MDAwMDAwMCAvKiAgV0RUIE1DUCByZXF1ZXN0ICAqLwojZGVmaW5lIFNFUlJfU0JBICAweDIwMDAwMDAwIC8qICBTQkEgTUNQIHJlcXVlc3QgICovCiNkZWZpbmUgU0VSUl9ERFIgIDB4MTAwMDAwMDAgLyogIEREUiBNQ1AgcmVxdWVzdCAgKi8KI2RlZmluZSBTRVJSX0xCQyAgMHgwODAwMDAwMCAvKiAgTEJDIE1DUCByZXF1ZXN0ICAqLwojZGVmaW5lIFNFUlJfUENJMSAweDA0MDAwMDAwIC8qICBQQ0kxIE1DUCByZXF1ZXN0ICAqLwojZGVmaW5lIFNFUlJfUENJMiAweDAyMDAwMDAwIC8qICBQQ0kyIE1DUCByZXF1ZXN0ICAqLwojZGVmaW5lIFNFUlJfTVUgICAweDAxMDAwMDAwIC8qICBNVSBNQ1AgcmVxdWVzdCAgKi8KI2RlZmluZSBTRVJSX1JOQyAgMHgwMDAxMDAwMCAvKiAgTVUgTUNQIHJlcXVlc3QgKCEhISBOb24tdmlzaWJsZSBmb3IgdXNlcnMgISEhKSAgKi8KI2RlZmluZSBTRVJSX1JFUwl+KCBTRVJSX0lSUTAgfCBTRVJSX1dEVCB8IFNFUlJfU0JBIHwgU0VSUl9ERFIgXAoJCQl8U0VSUl9MQkMgfCBTRVJSX1BDSTEgfCBTRVJSX1BDSTIgfCBTRVJSX01VIFwKCQkJfFNFUlJfUk5DICkKCXUzMiAgICBzZXJjcjsgLyogIFN5c3RlbSBFcnJvciBDb250cm9sIFJlZ2lzdGVyICAoU0VSQ1IpICAqLwojZGVmaW5lIFNFUkNSX01DUFIgMHgwMDAwMDAwMSAvKiAgTUNQIFJvdXRlICAqLwojZGVmaW5lIFNFUkNSX1JFUyB+KFNFUkNSX01DUFIpCgl1OCAgICByZXMyWzRdOwoJdTMyICAgc2lmY3JfaDsgLyogIFN5c3RlbSBJbnRlcm5hbCBJbnRlcnJ1cHQgRm9yY2UgUmVnaXN0ZXIgLSBIaWdoIChTSUlIKSAgKi8KCXUzMiAgIHNpZmNyX2w7IC8qICBTeXN0ZW0gSW50ZXJuYWwgSW50ZXJydXB0IEZvcmNlIFJlZ2lzdGVyIC0gTG93IChTSUlMKSAgKi8KCXUzMiAgIHNlZmNyOyAgIC8qICBTeXN0ZW0gRXh0ZXJuYWwgSW50ZXJydXB0IEZvcmNlIFJlZ2lzdGVyIChTRUkpICAqLwoJdTMyICAgc2VyZnI7ICAgLyogIFN5c3RlbSBFcnJvciBGb3JjZSBSZWdpc3RlciAoU0VSUikgICovCgl1OCAgICByZXMzWzB4QTBdOwp9IGlwaWM4MzQ5X3Q7CgovKgogKiBTeXN0ZW0gQXJiaXRlciBSZWdpc3RlcnMKICovCnR5cGVkZWYgc3RydWN0IGFyYml0ZXI4MzQ5IHsKCXUzMiBhY3I7IC8qIEFyYml0ZXIgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwojZGVmaW5lIEFDUl9DT1JFRElTICAgIDB4MTAwMDAwMDAgLyogQ29yZSBkaXNhYmxlLiAqLwojZGVmaW5lIEFDUl9QSVBFX0RFUCAgIDB4MDAwNzAwMDAgLyogUGlwZWxpbmUgZGVwdGggKG51bWJlciBvZiBvdXRzdGFuZGluZyB0cmFuc2FjdGlvbnMpLiAqLwojZGVmaW5lIEFDUl9QQ0lfUlBUQ05UIDB4MDAwMDcwMDAgLyogUENJIHJlcGVhdCBjb3VudC4gKi8KI2RlZmluZSBBQ1JfUlBUQ05UICAgICAweDAwMDAwNzAwIC8qIFJlcGVhdCBjb3VudC4gKi8KI2RlZmluZSBBQ1JfQVBBUksgICAgICAweDAwMDAwMDMwIC8qIEFkZHJlc3MgcGFya2luZy4gKi8KI2RlZmluZSBBQ1JfUEFSS00JICAgMHgwMDAwMDAwRiAvKiBQYXJraW5nIG1hc3Rlci4gKi8KI2RlZmluZSBBQ1JfUkVTIH4oQUNSX0NPUkVESVN8QUNSX1BJUEVfREVQfEFDUl9QQ0lfUlBUQ05UfEFDUl9SUFRDTlR8QUNSX0FQQVJLfEFDUl9QQVJLTSkKCXUzMiBhdHI7IC8qIEFyYml0ZXIgVGltZXJzIFJlZ2lzdGVyICovCiNkZWZpbmUgQVRSX0RUTyAweDAwRkYwMDAwIC8qIERhdGEgdGltZSBvdXQuICovCiNkZWZpbmUgQVRSX0FUTwkweDAwMDAwMEZGIC8qIEFkZHJlc3MgdGltZSBvdXQuICovCiNkZWZpbmUgQVRSX1JFUyB+KEFUUl9EVE98QVRSX0FUTykKCXU4IHJlc1s0XTsKCXUzMiBhZXI7IC8qIEFyYml0ZXIgRXZlbnQgUmVnaXN0ZXIgKEFFKSovCgl1MzIgYWlkcjsgLyogQXJiaXRlciBJbnRlcnJ1cHQgRGVmaW5pdGlvbiBSZWdpc3RlciAoQUUpICovCgl1MzIgYW1yOyAvKiBBcmJpdGVyIE1hc2sgUmVnaXN0ZXIgKEFFKSAqLwoJdTMyIGFlYXRyOyAvKiBBcmJpdGVyIEV2ZW50IEF0dHJpYnV0ZXMgUmVnaXN0ZXIgKi8KI2RlZmluZSBBRUFUUl9FVkVOVCAgIDB4MDcwMDAwMDAgLyogRXZlbnQgdHlwZS4gKi8KI2RlZmluZSBBRUFUUl9NU1RSX0lEIDB4MDAxRjAwMDAgLyogTWFzdGVyIElkLiAqLwojZGVmaW5lIEFFQVRSX1RCU1QgICAgMHgwMDAwMDgwMCAvKiBUcmFuc2ZlciBidXJzdC4gKi8KI2RlZmluZSBBRUFUUl9UU0laRSAgIDB4MDAwMDA3MDAgLyogVHJhbnNmZXIgU2l6ZS4gKi8KI2RlZmluZSBBRUFUUl9UVFlQRQkgIDB4MDAwMDAwMUYgLyogVHJhbnNmZXIgVHlwZS4gKi8KI2RlZmluZSBBRUFUUl9SRVMgfihBRUFUUl9FVkVOVHxBRUFUUl9NU1RSX0lEfEFFQVRSX1RCU1R8QUVBVFJfVFNJWkV8QUVBVFJfVFRZUEUpCgl1MzIgYWVhZHI7IC8qIEFyYml0ZXIgRXZlbnQgQWRkcmVzcyBSZWdpc3RlciAqLwoJdTMyIGFlcnI7IC8qIEFyYml0ZXIgRXZlbnQgUmVzcG9uc2UgUmVnaXN0ZXIgKEFFKSovCiNkZWZpbmUgQUVfRVRFQSAweDAwMDAwMDIwIC8qIFRyYW5zZmVyIGVycm9yLiAqLwojZGVmaW5lIEFFX1JFU18gMHgwMDAwMDAxMCAvKiBSZXNlcnZlZCB0cmFuc2ZlciB0eXBlLiAqLwojZGVmaW5lIEFFX0VDVyAgMHgwMDAwMDAwOCAvKiBFeHRlcm5hbCBjb250cm9sIHdvcmQgdHJhbnNmZXIgdHlwZS4gKi8KI2RlZmluZSBBRV9BTyAgIDB4MDAwMDAwMDQgLyogQWRkcmVzcyBPbmx5IHRyYW5zZmVyIHR5cGUuICovCiNkZWZpbmUgQUVfRFRPICAweDAwMDAwMDAyIC8qIERhdGEgdGltZSBvdXQuICovCiNkZWZpbmUgQUVfQVRPCTB4MDAwMDAwMDEgLyogQWRkcmVzcyB0aW1lIG91dC4gKi8KI2RlZmluZSBBRV9SU1JWIH4oQUVfRVRFQXxBRV9SRVNffEFFX0VDV3xBRV9BT3xBRV9EVE98QUVfQVRPKQoJdTggcmVzMVsweERDXTsKfSBhcmJpdGVyODM0OV90OwoKLyoKICogUmVzZXQgTW9kdWxlCiAqLwp0eXBlZGVmIHN0cnVjdCByZXNldDgzNDkgewoJdTMyICAgIHJjd2w7IC8qIFJDV0wgUmVnaXN0ZXIgICovCiNkZWZpbmUgUkNXTF9MQklVQ00gIDB4ODAwMDAwMDAgLyogTEJJVUNNICAqLwojZGVmaW5lIFJDV0xfTEJJVUNNX1NISUZUICAgIDMxCiNkZWZpbmUgUkNXTF9ERFJDTSAgIDB4NDAwMDAwMDAgLyogRERSQ00gICovCiNkZWZpbmUgUkNXTF9ERFJDTV9TSElGVCAgICAgMzAKI2RlZmluZSBSQ1dMX1NWQ09EICAgMHgzMDAwMDAwMCAvKiBTVkNPRCAgKi8KI2RlZmluZSBSQ1dMX1NQTUYgICAgMHgwZjAwMDAwMCAvKiBTUE1GICAqLwojZGVmaW5lIFJDV0xfU1BNRl9TSElGVCAgICAgIDI0CiNkZWZpbmUgUkNXTF9DT1JFUExMIDB4MDA3RjAwMDAgLyogQ09SRVBMTCAgKi8KI2RlZmluZSBSQ1dMX0NPUkVQTExfU0hJRlQgICAxNgojZGVmaW5lIFJDV0xfQ0VWQ09EICAweDAwMDAwMEMwIC8qIENFVkNPRCAgKi8KI2RlZmluZSBSQ1dMX0NFUERGICAgMHgwMDAwMDAyMCAvKiBDRVBERiAgKi8KI2RlZmluZSBSQ1dMX0NFUE1GICAgMHgwMDAwMDAxRiAvKiBDRVBNRiAgKi8KI2RlZmluZSBSQ1dMX1JFUyB+KFJDV0xfQklVQ018UkNXTF9ERFJDTXxSQ1dMX1NWQ09EfFJDV0xfU1BNRnxSQ1dMX0NPUkVQTEx8UkNXTF9DRVZDT0R8UkNXTF9DRVBERnxSQ1dMX0NFUE1GKQoJdTMyICAgIHJjd2g7IC8qIFJDSEwgUmVnaXN0ZXIgICovCiNkZWZpbmUgUkNXSF9QQ0lIT1NUIDB4ODAwMDAwMDAgLyogUENJSE9TVCAgKi8KI2RlZmluZSBSQ1dIX1BDSUhPU1RfU0hJRlQgICAzMQojZGVmaW5lIFJDV0hfUENJNjQgICAweDQwMDAwMDAwIC8qIFBDSTY0ICAqLwojZGVmaW5lIFJDV0hfUENJMUFSQiAweDIwMDAwMDAwIC8qIFBDSTFBUkIgICovCiNkZWZpbmUgUkNXSF9QQ0kyQVJCIDB4MTAwMDAwMDAgLyogUENJMkFSQiAgKi8KI2RlZmluZSBSQ1dIX0NPUkVESVMgMHgwODAwMDAwMCAvKiBDT1JFRElTICAqLwojZGVmaW5lIFJDV0hfQk1TICAgICAweDA0MDAwMDAwIC8qIEJNUyAgKi8KI2RlZmluZSBSQ1dIX0JPT1RTRVEgMHgwMzAwMDAwMCAvKiBCT09UU0VRICAqLwojZGVmaW5lIFJDV0hfU1dFTiAgICAweDAwODAwMDAwIC8qIFNXRU4gICovCiNkZWZpbmUgUkNXSF9ST01MT0MgIDB4MDA3MDAwMDAgLyogUk9NTE9DICAqLwojZGVmaW5lIFJDV0hfVFNFQzFNICAweDAwMDBjMDAwIC8qIFRTRUMxTSAgKi8KI2RlZmluZSBSQ1dIX1RTRUMyTSAgMHgwMDAwMzAwMCAvKiBUU0VDMk0gICovCiNkZWZpbmUgUkNXSF9UUFIgICAgIDB4MDAwMDAxMDAgLyogVFBSICAqLwojZGVmaW5lIFJDV0hfVExFICAgICAweDAwMDAwMDA4IC8qIFRMRSAgKi8KI2RlZmluZSBSQ1dIX0xBTEUgICAgMHgwMDAwMDAwNCAvKiBMQUxFICAqLwojZGVmaW5lIFJDV0hfUkVTCX4oUkNXSF9QQ0lIT1NUIHwgUkNXSF9QQ0k2NCB8IFJDV0hfUENJMUFSQiBcCgkJCXwgUkNXSF9QQ0kyQVJCIHwgUkNXSF9DT1JFRElTIHwgUkNXSF9CTVMgXAoJCQl8IFJDV0hfQk9PVFNFUSB8IFJDV0hfU1dFTiB8IFJDV0hfUk9NTE9DIFwKCQkJfCBSQ1dIX1RTRUMxTSB8IFJDV0hfVFNFQzJNIHwgUkNXSF9UUFIgXAoJCQl8IFJDV0hfVExFIHwgUkNXSF9MQUxFKQoJdTggICAgIHJlczBbOF07Cgl1MzIgICAgcnNyOyAvKiBSZXNldCBzdGF0dXMgUmVnaXN0ZXIgICovCiNkZWZpbmUgUlNSX1JTVFNSQyAweEUwMDAwMDAwIC8qIFJlc2V0IHNvdXJjZSAgKi8KI2RlZmluZSBSU1JfUlNUU1JDX1NISUZUICAgMjkKI2RlZmluZSBSU1JfQlNGICAgIDB4MDAwMTAwMDAgLyogQm9vdCBzZXEuIGZhaWwgICovCiNkZWZpbmUgUlNSX0JTRl9TSElGVCAgICAgIDE2CiNkZWZpbmUgUlNSX1NXU1IgICAweDAwMDAyMDAwIC8qIHNvZnR3YXJlIHNvZnQgcmVzZXQgICovCiNkZWZpbmUgUlNSX1NXU1JfU0hJRlQgICAgIDEzCiNkZWZpbmUgUlNSX1NXSFIgICAweDAwMDAxMDAwIC8qIHNvZnR3YXJlIGhhcmQgcmVzZXQgICovCiNkZWZpbmUgUlNSX1NXSFJfU0hJRlQgICAgIDEyCiNkZWZpbmUgUlNSX0pIUlMgICAweDAwMDAwMjAwIC8qIGp0YWcgaHJlc2V0ICAqLwojZGVmaW5lIFJTUl9KSFJTX1NISUZUICAgICAgOQojZGVmaW5lIFJTUl9KU1JTICAgMHgwMDAwMDEwMCAvKiBqdGFnIHNyZXNldCBzdGF0dXMgICovCiNkZWZpbmUgUlNSX0pTUlNfU0hJRlQgICAgICA4CiNkZWZpbmUgUlNSX0NTSFIgICAweDAwMDAwMDEwIC8qIGNoZWNrc3RvcCByZXNldCBzdGF0dXMgICovCiNkZWZpbmUgUlNSX0NTSFJfU0hJRlQgICAgICA0CiNkZWZpbmUgUlNSX1NXUlMgICAweDAwMDAwMDA4IC8qIHNvZnR3YXJlIHdhdGNoZG9nIHJlc2V0IHN0YXR1cyAgKi8KI2RlZmluZSBSU1JfU1dSU19TSElGVCAgICAgIDMKI2RlZmluZSBSU1JfQk1SUyAgIDB4MDAwMDAwMDQgLyogYnVzIG1vbml0b3AgcmVzZXQgc3RhdHVzICAqLwojZGVmaW5lIFJTUl9CTVJTX1NISUZUICAgICAgMgojZGVmaW5lIFJTUl9TUlMgICAgMHgwMDAwMDAwMiAvKiBzb2Z0IHJlc2V0IHN0YXR1cyAgKi8KI2RlZmluZSBSU1JfU1JTX1NISUZUICAgICAgIDEKI2RlZmluZSBSU1JfSFJTICAgIDB4MDAwMDAwMDEgLyogaGFyZCByZXNldCBzdGF0dXMgICovCiNkZWZpbmUgUlNSX0hSU19TSElGVCAgICAgICAwCiNkZWZpbmUgUlNSX1JFUyB+KFJTUl9SU1RTUkMgfCBSU1JfQlNGIHwgUlNSX1NXU1IgfCBSU1JfU1dIUiB8IFJTUl9KSFJTIHwgUlNSX0pTUlMgfCBSU1JfQ1NIUiB8IFJTUl9TV1JTIHwgUlNSX0JNUlMgfCBSU1JfU1JTIHwgUlNSX0hSUykKCXUzMiAgICBybXI7IC8qIFJlc2V0IG1vZGUgUmVnaXN0ZXIgICovCiNkZWZpbmUgUk1SX0NTUkUgICAweDAwMDAwMDAxIC8qIGNoZWNrc3RvcCByZXNldCBlbmFibGUgICovCiNkZWZpbmUgUk1SX0NTUkVfU0hJRlQgICAgICAwCiNkZWZpbmUgUk1SX1JFUyB+KFJNUl9DU1JFKQoJdTMyICAgIHJwcjsgLyogUmVzZXQgcHJvdGVjdGlvbiBSZWdpc3RlciAgKi8KCXUzMiAgICByY3I7IC8qIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIgICovCiNkZWZpbmUgUkNSX1NXSFIgMHgwMDAwMDAwMiAvKiBzb2Z0d2FyZSBoYXJkIHJlc2V0ICAqLwojZGVmaW5lIFJDUl9TV1NSIDB4MDAwMDAwMDEgLyogc29mdHdhcmUgc29mdCByZXNldCAgKi8KI2RlZmluZSBSQ1JfUkVTIH4oUkNSX1NXSFIgfCBSQ1JfU1dTUikKCXUzMiAgICByY2VyOyAvKiBSZXNldCBDb250cm9sIEVuYWJsZSBSZWdpc3RlciAgKi8KI2RlZmluZSBSQ0VSX0NSRSAweDAwMDAwMDAxIC8qIHNvZnR3YXJlIGhhcmQgcmVzZXQgICovCiNkZWZpbmUgUkNFUl9SRVMgfihSQ0VSX0NSRSkKCXU4ICAgICByZXMxWzB4RENdOwp9IHJlc2V0ODM0OV90OwoKdHlwZWRlZiBzdHJ1Y3QgY2xrODM0OSB7Cgl1MzIgICAgc3BtcjsgLyogc3lzdGVtIFBMTCBtb2RlIFJlZ2lzdGVyICAqLwojZGVmaW5lIFNQTVJfTEJJVUNNICAweDgwMDAwMDAwIC8qIExCSVVDTSAgKi8KI2RlZmluZSBTUE1SX0REUkNNICAgMHg0MDAwMDAwMCAvKiBERFJDTSAgKi8KI2RlZmluZSBTUE1SX1NWQ09EICAgMHgzMDAwMDAwMCAvKiBTVkNPRCAgKi8KI2RlZmluZSBTUE1SX1NQTUYgICAgMHgwRjAwMDAwMCAvKiBTUE1GICAqLwojZGVmaW5lIFNQTVJfQ0tJRCAgICAweDAwODAwMDAwIC8qIENLSUQgICovCiNkZWZpbmUgU1BNUl9DS0lEX1NISUZUIDIzCiNkZWZpbmUgU1BNUl9DT1JFUExMIDB4MDA3RjAwMDAgLyogQ09SRVBMTCAgKi8KI2RlZmluZSBTUE1SX0NFVkNPRCAgMHgwMDAwMDBDMCAvKiBDRVZDT0QgICovCiNkZWZpbmUgU1BNUl9DRVBERiAgIDB4MDAwMDAwMjAgLyogQ0VQREYgICovCiNkZWZpbmUgU1BNUl9DRVBNRiAgIDB4MDAwMDAwMUYgLyogQ0VQTUYgICovCiNkZWZpbmUgU1BNUl9SRVMJfihTUE1SX0xCSVVDTSB8IFNQTVJfRERSQ00gfCBTUE1SX1NWQ09EIFwKCQkJfCBTUE1SX1NQTUYgfCBTUE1SX0NLSUQgfCBTUE1SX0NPUkVQTEwgXAoJCQl8IFNQTVJfQ0VWQ09EIHwgU1BNUl9DRVBERiB8IFNQTVJfQ0VQTUYpCgl1MzIgICAgb2NjcjsgLyogb3V0cHV0IGNsb2NrIGNvbnRyb2wgUmVnaXN0ZXIgICovCiNkZWZpbmUgT0NDUl9QQ0lDT0UwIDB4ODAwMDAwMDAgLyogUENJQ09FMCAgKi8KI2RlZmluZSBPQ0NSX1BDSUNPRTEgMHg0MDAwMDAwMCAvKiBQQ0lDT0UxICAqLwojZGVmaW5lIE9DQ1JfUENJQ09FMiAweDIwMDAwMDAwIC8qIFBDSUNPRTIgICovCiNkZWZpbmUgT0NDUl9QQ0lDT0UzIDB4MTAwMDAwMDAgLyogUENJQ09FMyAgKi8KI2RlZmluZSBPQ0NSX1BDSUNPRTQgMHgwODAwMDAwMCAvKiBQQ0lDT0U0ICAqLwojZGVmaW5lIE9DQ1JfUENJQ09FNSAweDA0MDAwMDAwIC8qIFBDSUNPRTUgICovCiNkZWZpbmUgT0NDUl9QQ0lDT0U2IDB4MDIwMDAwMDAgLyogUENJQ09FNiAgKi8KI2RlZmluZSBPQ0NSX1BDSUNPRTcgMHgwMTAwMDAwMCAvKiBQQ0lDT0U3ICAqLwojZGVmaW5lIE9DQ1JfUENJQ0QwICAweDAwODAwMDAwIC8qIFBDSUNEMCAgKi8KI2RlZmluZSBPQ0NSX1BDSUNEMSAgMHgwMDQwMDAwMCAvKiBQQ0lDRDEgICovCiNkZWZpbmUgT0NDUl9QQ0lDRDIgIDB4MDAyMDAwMDAgLyogUENJQ0QyICAqLwojZGVmaW5lIE9DQ1JfUENJQ0QzICAweDAwMTAwMDAwIC8qIFBDSUNEMyAgKi8KI2RlZmluZSBPQ0NSX1BDSUNENCAgMHgwMDA4MDAwMCAvKiBQQ0lDRDQgICovCiNkZWZpbmUgT0NDUl9QQ0lDRDUgIDB4MDAwNDAwMDAgLyogUENJQ0Q1ICAqLwojZGVmaW5lIE9DQ1JfUENJQ0Q2ICAweDAwMDIwMDAwIC8qIFBDSUNENiAgKi8KI2RlZmluZSBPQ0NSX1BDSUNENyAgMHgwMDAxMDAwMCAvKiBQQ0lDRDcgICovCiNkZWZpbmUgT0NDUl9QQ0kxQ1IgIDB4MDAwMDAwMDIgLyogUENJMUNSICAqLwojZGVmaW5lIE9DQ1JfUENJMkNSICAweDAwMDAwMDAxIC8qIFBDSTJDUiAgKi8KI2RlZmluZSBPQ0NSX1JFUwl+KE9DQ1JfUENJQ09FMCB8IE9DQ1JfUENJQ09FMSB8IE9DQ1JfUENJQ09FMiBcCgkJCXwgT0NDUl9QQ0lDT0UzIHwgT0NDUl9QQ0lDT0U0IHwgT0NDUl9QQ0lDT0U1IFwKCQkJfCBPQ0NSX1BDSUNPRTYgfCBPQ0NSX1BDSUNPRTcgfCBPQ0NSX1BDSUNEMCBcCgkJCXwgT0NDUl9QQ0lDRDEgfCBPQ0NSX1BDSUNEMiAgfCBPQ0NSX1BDSUNEMyBcCgkJCXwgT0NDUl9QQ0lDRDQgIHwgT0NDUl9QQ0lDRDUgfCBPQ0NSX1BDSUNENiAgXAoJCQl8IE9DQ1JfUENJQ0Q3ICB8IE9DQ1JfUENJMUNSICB8IE9DQ1JfUENJMkNSICkKCXUzMiAgICBzY2NyOyAvKiBzeXN0ZW0gY2xvY2sgY29udHJvbCBSZWdpc3RlciAgKi8KI2RlZmluZSBTQ0NSX1RTRUMxQ00gIDB4YzAwMDAwMDAgLyogVFNFQzFDTSAgKi8KI2RlZmluZSBTQ0NSX1RTRUMxQ01fU0hJRlQgMzAKI2RlZmluZSBTQ0NSX1RTRUMyQ00gIDB4MzAwMDAwMDAgLyogVFNFQzJDTSAgKi8KI2RlZmluZSBTQ0NSX1RTRUMyQ01fU0hJRlQgMjgKI2RlZmluZSBTQ0NSX0VOQ0NNICAgIDB4MDMwMDAwMDAgLyogRU5DQ00gICovCiNkZWZpbmUgU0NDUl9FTkNDTV9TSElGVCAyNAojZGVmaW5lIFNDQ1JfVVNCTVBIQ00gMHgwMGMwMDAwMCAvKiBVU0JNUEhDTSAgKi8KI2RlZmluZSBTQ0NSX1VTQk1QSENNX1NISUZUIDIyCiNkZWZpbmUgU0NDUl9VU0JEUkNNICAweDAwMzAwMDAwIC8qIFVTQkRSQ00gICovCiNkZWZpbmUgU0NDUl9VU0JEUkNNX1NISUZUIDIwCiNkZWZpbmUgU0NDUl9QQ0lDTSAgICAweDAwMDEwMDAwIC8qIFBDSUNNICAqLwojZGVmaW5lIFNDQ1JfUkVTCX4oIFNDQ1JfVFNFQzFDTSB8IFNDQ1JfVFNFQzJDTSB8IFNDQ1JfRU5DQ00gXAoJCQl8IFNDQ1JfVVNCTVBIQ00gfCBTQ0NSX1VTQkRSQ00gfCBTQ0NSX1BDSUNNKQoJdTggICAgIHJlczBbMHhGNF07Cn0gY2xrODM0OV90OwoKLyoKICogUG93ZXIgTWFuYWdlbWVudCBDb250cm9sIE1vZHVsZQogKi8KdHlwZWRlZiBzdHJ1Y3QgcG1jODM0OSB7Cgl1MzIgICAgcG1jY3I7IC8qIFBNQyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICAqLwojZGVmaW5lIFBNQ0NSX1NMUEVOIDB4MDAwMDAwMDEgLyogU3lzdGVtIExvdyBQb3dlciBFbmFibGUgICovCiNkZWZpbmUgUE1DQ1JfRExQRU4gMHgwMDAwMDAwMiAvKiBERFIgU0RSQU0gTG93IFBvd2VyIEVuYWJsZSAgKi8KI2RlZmluZSBQTUNDUl9SRVMgfihQTUNDUl9TTFBFTiB8IFBNQ0NSX0RMUEVOKQoJdTMyICAgIHBtY2VyOyAvKiBQTUMgRXZlbnQgUmVnaXN0ZXIgICovCiNkZWZpbmUgUE1DRVJfUE1DSSAgMHgwMDAwMDAwMSAvKiBQTUMgSW50ZXJydXB0ICAqLwojZGVmaW5lIFBNQ0VSX1JFUyB+KFBNQ0VSX1BNQ0kpCgl1MzIgICAgcG1jbXI7IC8qIFBNQyBNYXNrIFJlZ2lzdGVyICAqLwojZGVmaW5lIFBNQ01SX1BNQ0lFIDB4MDAwMSAvKiBQTUMgSW50ZXJydXB0IEVuYWJsZSAgKi8KI2RlZmluZSBQTUNNUl9SRVMgfihQTUNNUl9QTUNJRSkKCXU4IHJlczBbMHhGNF07Cn0gcG1jODM0OV90OwoKCi8qCiAqIGdlbmVyYWwgcHVycG9zZSBJL08gbW9kdWxlCiAqLwp0eXBlZGVmIHN0cnVjdCBncGlvODM0OSB7Cgl1MzIgZGlyOyAvKiBkaXJlY3Rpb24gcmVnaXN0ZXIgKi8KCXUzMiBvZHI7IC8qIG9wZW4gZHJhaW4gcmVnaXN0ZXIgKi8KCXUzMiBkYXQ7IC8qIGRhdGEgcmVnaXN0ZXIgKi8KCXUzMiBpZXI7IC8qIGludGVycnVwdCBldmVudCByZWdpc3RlciAqLwoJdTMyIGltcjsgLyogaW50ZXJydXB0IG1hc2sgcmVnaXN0ZXIgKi8KCXUzMiBpY3I7IC8qIGV4dGVybmFsIGludGVycnVwdCBjb250cm9sIHJlZ2lzdGVyICovCgl1OCByZXMwWzB4RThdOwp9IGdwaW84MzQ5X3Q7CgovKgogKiBERFIgTWVtb3J5IENvbnRyb2xsZXIgTWVtb3J5IE1hcAogKi8KdHlwZWRlZiBzdHJ1Y3QgZGRyX2NzX2JuZHN7Cgl1MzIgY3NibmRzOwojZGVmaW5lIENTQk5EU19TQSAweDAwRkYwMDAwCiNkZWZpbmUgQ1NCTkRTX1NBX1NISUZUICAgMTYKI2RlZmluZSBDU0JORFNfRUEgMHgwMDAwMDBGRgojZGVmaW5lIENTQk5EU19FQV9TSElGVCAgICAwCgl1OCAgcmVzMFs0XTsKfSBkZHJfY3NfYm5kc190OwoKdHlwZWRlZiBzdHJ1Y3QgZGRyODM0OXsKCWRkcl9jc19ibmRzX3QgY3NibmRzWzRdOyAgICAgICAgICAgIC8qKjwgQ2hpcCBTZWxlY3QgeCBNZW1vcnkgQm91bmRzICovCgl1OCByZXMwWzB4NjBdOwoJdTMyIGNzX2NvbmZpZ1s0XTsgICAgICAgLyoqPCBDaGlwIFNlbGVjdCB4IENvbmZpZ3VyYXRpb24gKi8KI2RlZmluZSBDU0NPTkZJR19FTiAgICAgICAgIDB4ODAwMDAwMDAKI2RlZmluZSBDU0NPTkZJR19BUCAgICAgICAgIDB4MDA4MDAwMDAKI2RlZmluZSBDU0NPTkZJR19ST1dfQklUICAgIDB4MDAwMDA3MDAKI2RlZmluZSBDU0NPTkZJR19ST1dfQklUXzEyIDB4MDAwMDAwMDAKI2RlZmluZSBDU0NPTkZJR19ST1dfQklUXzEzIDB4MDAwMDAxMDAKI2RlZmluZSBDU0NPTkZJR19ST1dfQklUXzE0IDB4MDAwMDAyMDAKI2RlZmluZSBDU0NPTkZJR19DT0xfQklUICAgIDB4MDAwMDAwMDcKI2RlZmluZSBDU0NPTkZJR19DT0xfQklUXzggIDB4MDAwMDAwMDAKI2RlZmluZSBDU0NPTkZJR19DT0xfQklUXzkgIDB4MDAwMDAwMDEKI2RlZmluZSBDU0NPTkZJR19DT0xfQklUXzEwIDB4MDAwMDAwMDIKI2RlZmluZSBDU0NPTkZJR19DT0xfQklUXzExIDB4MDAwMDAwMDMKCXU4IHJlczFbMHg3OF07Cgl1MzIgdGltaW5nX2NmZ18xOyAgICAgICAvKio8IFNEUkFNIFRpbWluZyBDb25maWd1cmF0aW9uIDEgKi8KI2RlZmluZSBUSU1JTkdfQ0ZHMV9QUkVUT0FDVCAweDcwMDAwMDAwCiNkZWZpbmUgVElNSU5HX0NGRzFfUFJFVE9BQ1RfU0hJRlQgICAyOAojZGVmaW5lIFRJTUlOR19DRkcxX0FDVFRPUFJFIDB4MEYwMDAwMDAKI2RlZmluZSBUSU1JTkdfQ0ZHMV9BQ1RUT1BSRV9TSElGVCAgIDI0CiNkZWZpbmUgVElNSU5HX0NGRzFfQUNUVE9SVyAgMHgwMDcwMDAwMAojZGVmaW5lIFRJTUlOR19DRkcxX0FDVFRPUldfU0hJRlQgICAgMjAKI2RlZmluZSBUSU1JTkdfQ0ZHMV9DQVNMQVQgICAweDAwMDcwMDAwCiNkZWZpbmUgVElNSU5HX0NGRzFfQ0FTTEFUX1NISUZUICAgICAxNgojZGVmaW5lIFRJTUlOR19DRkcxX1JFRlJFQyAgIDB4MDAwMEYwMDAKI2RlZmluZSBUSU1JTkdfQ0ZHMV9SRUZSRUNfU0hJRlQgICAgIDEyCiNkZWZpbmUgVElNSU5HX0NGRzFfV1JSRUMgICAgMHgwMDAwMDcwMAojZGVmaW5lIFRJTUlOR19DRkcxX1dSUkVDX1NISUZUICAgICAgIDgKI2RlZmluZSBUSU1JTkdfQ0ZHMV9BQ1RUT0FDVCAweDAwMDAwMDcwCiNkZWZpbmUgVElNSU5HX0NGRzFfQUNUVE9BQ1RfU0hJRlQgICAgNAojZGVmaW5lIFRJTUlOR19DRkcxX1dSVE9SRCAgIDB4MDAwMDAwMDcKI2RlZmluZSBUSU1JTkdfQ0ZHMV9XUlRPUkRfU0hJRlQgICAgICAwCgoJdTMyIHRpbWluZ19jZmdfMjsgICAgICAgLyoqPCBTRFJBTSBUaW1pbmcgQ29uZmlndXJhdGlvbiAyICovCiNkZWZpbmUgVElNSU5HX0NGRzJfQ1BPICAgICAgICAgICAweDBGMDAwMDAwCiNkZWZpbmUgVElNSU5HX0NGRzJfQ1BPX1NISUZUICAgICAgICAgICAgIDI0CiNkZWZpbmUgVElNSU5HX0NGRzJfQUNTTSAgICAgICAgICAweDAwMDgwMDAwCiNkZWZpbmUgVElNSU5HX0NGRzJfV1JfREFUQV9ERUxBWSAweDAwMDAxQzAwCiNkZWZpbmUgVElNSU5HX0NGRzJfV1JfREFUQV9ERUxBWV9TSElGVCAgIDEwCgoJdTMyIHNkcmFtX2NmZzsgICAgICAgICAgLyoqPCBTRFJBTSBDb250cm9sIENvbmZpZ3VyYXRpb24gKi8KI2RlZmluZSBTRFJBTV9DRkdfTUVNX0VOICAgICAweDgwMDAwMDAwCiNkZWZpbmUgU0RSQU1fQ0ZHX1NSRU4gICAgICAgMHg0MDAwMDAwMAojZGVmaW5lIFNEUkFNX0NGR19FQ0NfRU4gICAgIDB4MjAwMDAwMDAKI2RlZmluZSBTRFJBTV9DRkdfUkRfRU4gICAgICAweDEwMDAwMDAwCiNkZWZpbmUgU0RSQU1fQ0ZHX1NEUkFNX1RZUEUgMHgwMzAwMDAwMAojZGVmaW5lIFNEUkFNX0NGR19TRFJBTV9UWVBFX1NISUZUICAgMjQKI2RlZmluZSBTRFJBTV9DRkdfRFlOX1BXUiAgICAweDAwMjAwMDAwCiNkZWZpbmUgU0RSQU1fQ0ZHXzMyX0JFICAgICAgMHgwMDA4MDAwMAojZGVmaW5lIFNEUkFNX0NGR184X0JFICAgICAgIDB4MDAwNDAwMDAKI2RlZmluZSBTRFJBTV9DRkdfTkNBUCAgICAgICAweDAwMDIwMDAwCiNkZWZpbmUgU0RSQU1fQ0ZHXzJUX0VOICAgICAgMHgwMDAwODAwMAoKCXU4IHJlczJbNF07Cgl1MzIgc2RyYW1fbW9kZTsgICAgICAgICAvKio8IFNEUkFNIE1vZGUgQ29uZmlndXJhdGlvbiAqLwojZGVmaW5lIFNEUkFNX01PREVfRVNEIDB4RkZGRjAwMDAKI2RlZmluZSBTRFJBTV9NT0RFX0VTRF9TSElGVCAgIDE2CiNkZWZpbmUgU0RSQU1fTU9ERV9TRCAgMHgwMDAwRkZGRgojZGVmaW5lIFNEUkFNX01PREVfU0RfU0hJRlQgICAgIDAKCgl1OCByZXMzWzhdOwoJdTMyIHNkcmFtX2ludGVydmFsOyAgICAgLyoqPCBTRFJBTSBJbnRlcnZhbCBDb25maWd1cmF0aW9uICovCiNkZWZpbmUgU0RSQU1fSU5URVJWQUxfUkVGSU5UICAweDNGRkYwMDAwCiNkZWZpbmUgU0RSQU1fSU5URVJWQUxfUkVGSU5UX1NISUZUICAgIDE2CiNkZWZpbmUgU0RSQU1fSU5URVJWQUxfQlNUT1BSRSAweDAwMDAzRkZGCiNkZWZpbmUgU0RSQU1fSU5URVJWQUxfQlNUT1BSRV9TSElGVCAgICAwCgl1OCAgIHJlczlbOF07Cgl1MzIgIHNkcmFtX2Nsa19jbnRsOwoJdTggcmVzNFsweENDQ107Cgl1MzIgZGF0YV9lcnJfaW5qZWN0X2hpOyAvKio8IE1lbW9yeSBEYXRhIFBhdGggRXJyb3IgSW5qZWN0aW9uIE1hc2sgSGlnaCAqLwoJdTMyIGRhdGFfZXJyX2luamVjdF9sbzsgLyoqPCBNZW1vcnkgRGF0YSBQYXRoIEVycm9yIEluamVjdGlvbiBNYXNrIExvdyAqLwoJdTMyIGVjY19lcnJfaW5qZWN0OyAgICAgLyoqPCBNZW1vcnkgRGF0YSBQYXRoIEVycm9yIEluamVjdGlvbiBNYXNrIEVDQyAqLwoJdTggcmVzNVsweDE0XTsKCXUzMiBjYXB0dXJlX2RhdGFfaGk7ICAgIC8qKjwgTWVtb3J5IERhdGEgUGF0aCBSZWFkIENhcHR1cmUgSGlnaCAqLwoJdTMyIGNhcHR1cmVfZGF0YV9sbzsgICAgLyoqPCBNZW1vcnkgRGF0YSBQYXRoIFJlYWQgQ2FwdHVyZSBMb3cgKi8KCXUzMiBjYXB0dXJlX2VjYzsgICAgICAgIC8qKjwgTWVtb3J5IERhdGEgUGF0aCBSZWFkIENhcHR1cmUgRUNDICovCgl1OCByZXM2WzB4MTRdOwoJdTMyIGVycl9kZXRlY3Q7ICAgICAgICAgLyoqPCBNZW1vcnkgRXJyb3IgRGV0ZWN0ICovCgl1MzIgZXJyX2Rpc2FibGU7ICAgICAgICAvKio8IE1lbW9yeSBFcnJvciBEaXNhYmxlICovCgl1MzIgZXJyX2ludF9lbjsgICAgICAgICAvKio8IE1lbW9yeSBFcnJvciBJbnRlcnJ1cHQgRW5hYmxlICovCgl1MzIgY2FwdHVyZV9hdHRyaWJ1dGVzOyAvKio8IE1lbW9yeSBFcnJvciBBdHRyaWJ1dGVzIENhcHR1cmUgKi8KCXUzMiBjYXB0dXJlX2FkZHJlc3M7ICAgIC8qKjwgTWVtb3J5IEVycm9yIEFkZHJlc3MgQ2FwdHVyZSAqLwoJdTMyIGNhcHR1cmVfZXh0X2FkZHJlc3M7LyoqPCBNZW1vcnkgRXJyb3IgRXh0ZW5kZWQgQWRkcmVzcyBDYXB0dXJlICovCgl1MzIgZXJyX3NiZTsgICAgICAgICAgICAvKio8IE1lbW9yeSBTaW5nbGUtQml0IEVDQyBFcnJvciBNYW5hZ2VtZW50ICovCgl1OCByZXM3WzB4QTRdOwoJdTMyIGRlYnVnX3JlZzsKCXU4IHJlczhbMHhGQ107Cn0gZGRyODM0OV90OwoKLyoKICogSTJDMSBDb250cm9sbGVyCiAqLwoKCi8qCiAqIERVQVJUCiAqLwp0eXBlZGVmIHN0cnVjdCBkdWFydDgzNDl7Cgl1OCB1cmJyX3VsY3JfdWRsYjsgLyoqPCBjb21iaW5lZCByZWdpc3RlciBmb3IgVVJCUiwgVVRIUiBhbmQgVURMQiAqLwoJdTggdWllcl91ZG1iOyAgICAgIC8qKjwgY29tYmluZWQgcmVnaXN0ZXIgZm9yIFVJRVIgYW5kIFVETUIgKi8KCXU4IHVpaXJfdWZjcl91YWZyOyAvKio8IGNvbWJpbmVkIHJlZ2lzdGVyIGZvciBVSUlSLCBVRkNSIGFuZCBVQUZSICovCgl1OCB1bGNyOyAgICAgICAgLyoqPCBsaW5lIGNvbnRyb2wgcmVnaXN0ZXIgKi8KCXU4IHVtY3I7ICAgICAgICAvKio8IE1PREVNIGNvbnRyb2wgcmVnaXN0ZXIgKi8KCXU4IHVsc3I7ICAgICAgICAvKio8IGxpbmUgc3RhdHVzIHJlZ2lzdGVyICovCgl1OCB1bXNyOyAgICAgICAgLyoqPCBNT0RFTSBzdGF0dXMgcmVnaXN0ZXIgKi8KCXU4IHVzY3I7ICAgICAgICAvKio8IHNjcmF0Y2ggcmVnaXN0ZXIgKi8KCXU4IHJlczBbOF07Cgl1OCB1ZHNyOyAgICAgICAgLyoqPCBETUEgc3RhdHVzIHJlZ2lzdGVyICovCgl1OCByZXMxWzNdOwoJdTggcmVzMlsweEVDXTsKfSBkdWFydDgzNDlfdDsKCi8qCiAqIExvY2FsIEJ1cyBDb250cm9sbGVyIFJlZ2lzdGVycwogKi8KdHlwZWRlZiBzdHJ1Y3QgbGJ1c19iYW5rewoJdTMyIGJyOyAgICAgICAgICAgICAvKio8IEJhc2UgUmVnaXN0ZXIgICovCgl1MzIgb3I7ICAgICAgICAgICAgIC8qKjwgQmFzZSBSZWdpc3RlciAgKi8KfSBsYnVzX2JhbmtfdDsKCnR5cGVkZWYgc3RydWN0IGxidXM4MzQ5IHsKCWxidXNfYmFua190IGJhbmtbOF07Cgl1OCByZXMwWzB4MjhdOwoJdTMyIG1hcjsgICAgICAgICAgICAgICAgLyoqPCBVUE0gQWRkcmVzcyBSZWdpc3RlciAqLwoJdTggcmVzMVsweDRdOwoJdTMyIG1hbXI7ICAgICAgICAgICAgICAgLyoqPCBVUE1BIE1vZGUgUmVnaXN0ZXIgKi8KCXUzMiBtYm1yOyAgICAgICAgICAgICAgIC8qKjwgVVBNQiBNb2RlIFJlZ2lzdGVyICovCgl1MzIgbWNtcjsgICAgICAgICAgICAgICAvKio8IFVQTUMgTW9kZSBSZWdpc3RlciAqLwoJdTggcmVzMlsweDhdOwoJdTMyIG1ydHByOyAgICAgICAgICAgICAgLyoqPCBNZW1vcnkgUmVmcmVzaCBUaW1lciBQcmVzY2FsZXIgUmVnaXN0ZXIgKi8KCXUzMiBtZHI7ICAgICAgICAgICAgICAgIC8qKjwgVVBNIERhdGEgUmVnaXN0ZXIgKi8KCXU4IHJlczNbMHg4XTsKCXUzMiBsc2RtcjsgICAgICAgICAgICAgIC8qKjwgU0RSQU0gTW9kZSBSZWdpc3RlciAqLwoJdTggcmVzNFsweDhdOwoJdTMyIGx1cnQ7ICAgICAgICAgICAgICAgLyoqPCBVUE0gUmVmcmVzaCBUaW1lciAqLwoJdTMyIGxzcnQ7ICAgICAgICAgICAgICAgLyoqPCBTRFJBTSBSZWZyZXNoIFRpbWVyICovCgl1OCByZXM1WzB4OF07Cgl1MzIgbHRlc3I7ICAgICAgICAgICAgICAvKio8IFRyYW5zZmVyIEVycm9yIFN0YXR1cyBSZWdpc3RlciAqLwoJdTMyIGx0ZWRyOyAgICAgICAgICAgICAgLyoqPCBUcmFuc2ZlciBFcnJvciBEaXNhYmxlIFJlZ2lzdGVyICovCgl1MzIgbHRlaXI7ICAgICAgICAgICAgICAvKio8IFRyYW5zZmVyIEVycm9yIEludGVycnVwdCBSZWdpc3RlciAqLwoJdTMyIGx0ZWF0cjsgICAgICAgICAgICAgLyoqPCBUcmFuc2ZlciBFcnJvciBBdHRyaWJ1dGVzIFJlZ2lzdGVyICovCgl1MzIgbHRlYXI7ICAgICAgICAgICAgICAvKio8IFRyYW5zZmVyIEVycm9yIEFkZHJlc3MgUmVnaXN0ZXIgKi8KCXU4IHJlczZbMHhDXTsKCXUzMiBsYmNyOyAgICAgICAgICAgICAgIC8qKjwgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwojZGVmaW5lIExCQ1JfTERJUyAgMHg4MDAwMDAwMAojZGVmaW5lIExCQ1JfTERJU19TSElGVCAgICAzMQojZGVmaW5lIExCQ1JfQkNUTEMgMHgwMEMwMDAwMAojZGVmaW5lIExCQ1JfQkNUTENfU0hJRlQgICAyMgojZGVmaW5lIExCQ1JfTFBCU0UgMHgwMDAyMDAwMAojZGVmaW5lIExCQ1JfTFBCU0VfU0hJRlQgICAxNwojZGVmaW5lIExCQ1JfRVBBUiAgMHgwMDAxMDAwMAojZGVmaW5lIExCQ1JfRVBBUl9TSElGVCAgICAxNgojZGVmaW5lIExCQ1JfQk1UICAgMHgwMDAwRkYwMAojZGVmaW5lIExCQ1JfQk1UX1NISUZUICAgICAgOAoJdTMyIGxjcnI7ICAgICAgICAgICAgICAgLyoqPCBDbG9jayBSYXRpbyBSZWdpc3RlciAqLwojZGVmaW5lIExDUlJfREJZUCAgICAweDgwMDAwMDAwCiNkZWZpbmUgTENSUl9EQllQX1NISUZUICAgICAgMzEKI2RlZmluZSBMQ1JSX0JVRkNNREMgMHgzMDAwMDAwMAojZGVmaW5lIExDUlJfQlVGQ01EQ19TSElGVCAgIDI4CiNkZWZpbmUgTENSUl9FQ0wgICAgIDB4MDMwMDAwMDAKI2RlZmluZSBMQ1JSX0VDTF9TSElGVCAgICAgICAyNAojZGVmaW5lIExDUlJfRUFEQyAgICAweDAwMDMwMDAwCiNkZWZpbmUgTENSUl9FQURDX1NISUZUICAgICAgMTYKI2RlZmluZSBMQ1JSX0NMS0RJViAgMHgwMDAwMDAwRgojZGVmaW5lIExDUlJfQ0xLRElWX1NISUZUICAgICAwCgoKCXU4IHJlczdbMHgyOF07Cgl1OCByZXM4WzB4RjAwXTsKfSBsYnVzODM0OV90OwoKLyoKICogU2VyaWFsIFBlcmlwaGVyYWwgSW50ZXJmYWNlCiAqLwp0eXBlZGVmIHN0cnVjdCBzcGk4MzQ5CnsKCXUzMiBtb2RlOyAgICAgLyoqPCBtb2RlIHJlZ2lzdGVyICAqLwoJdTMyIGV2ZW50OyAgICAvKio8IGV2ZW50IHJlZ2lzdGVyICovCgl1MzIgbWFzazsgICAgIC8qKjwgbWFzayByZWdpc3RlciAgKi8KCXUzMiBjb207ICAgICAgLyoqPCBjb21tYW5kIHJlZ2lzdGVyICovCgl1OCByZXMwWzB4MTBdOwoJdTMyIHR4OyAgICAgICAvKio8IHRyYW5zbWl0IHJlZ2lzdGVyICovCgl1MzIgcng7ICAgICAgIC8qKjwgcmVjZWl2ZSByZWdpc3RlciAqLwoJdTggcmVzMVsweEQ4XTsKfSBzcGk4MzQ5X3Q7Cgp0eXBlZGVmIHN0cnVjdCBkbWE4MzQ5IHsKCXU4IGZpeG1lWzB4MzAwXTsKfSBkbWE4MzQ5X3Q7CgovKgogKiBQQ0kgU29mdHdhcmUgQ29uZmlndXJhdGlvbiBSZWdpc3RlcnMKICovCnR5cGVkZWYgc3RydWN0IHBjaWNvbmY4MzQ5IHsKCXUzMgljb25maWdfYWRkcmVzczsKI2RlZmluZSBQQ0lfQ09ORklHX0FERFJFU1NfRU4JMHg4MDAwMDAwMAojZGVmaW5lIFBDSV9DT05GSUdfQUREUkVTU19CTl9TSElGVAkxNgojZGVmaW5lIFBDSV9DT05GSUdfQUREUkVTU19CTl9NQVNLCTB4MDBmZjAwMDAKI2RlZmluZSBQQ0lfQ09ORklHX0FERFJFU1NfRE5fU0hJRlQJMTEKI2RlZmluZSBQQ0lfQ09ORklHX0FERFJFU1NfRE5fTUFTSwkweDAwMDBmODAwCiNkZWZpbmUgUENJX0NPTkZJR19BRERSRVNTX0ZOX1NISUZUCTgKI2RlZmluZSBQQ0lfQ09ORklHX0FERFJFU1NfRk5fTUFTSwkweDAwMDAwNzAwCiNkZWZpbmUgUENJX0NPTkZJR19BRERSRVNTX1JOX1NISUZUCTAKI2RlZmluZSBQQ0lfQ09ORklHX0FERFJFU1NfUk5fTUFTSwkweDAwMDAwMGZjCgl1MzIgY29uZmlnX2RhdGE7Cgl1MzIgaW50X2FjazsKCXU4CXJlc1sxMTZdOwp9IHBjaWNvbmY4MzQ5X3Q7CgovKgogKiBQQ0kgT3V0Ym91bmQgVHJhbnNsYXRpb24gUmVnaXN0ZXIKICovCnR5cGVkZWYgc3RydWN0IHBjaV9vdXRib3VuZF93aW5kb3cgewoJdTMyCXBvdGFyOwoJdTgJcmVzMFs0XTsKCXUzMglwb2JhcjsKCXU4CXJlczFbNF07Cgl1MzIJcG9jbXI7Cgl1OAlyZXMyWzRdOwp9IHBvdDgzNDlfdDsKLyoKICogU2VxdWVuY2VyCiAqLwp0eXBlZGVmIHN0cnVjdCBpb3M4MzQ5IHsKCXBvdDgzNDlfdAlwb3RbNl07CiNkZWZpbmUgUE9UQVJfVEFfTUFTSwkweDAwMGZmZmZmCiNkZWZpbmUJUE9CQVJfQkFfTUFTSwkweDAwMGZmZmZmCiNkZWZpbmUJUE9DTVJfRU4JMHg4MDAwMDAwMAojZGVmaW5lCVBPQ01SX0lPCTB4NDAwMDAwMDAJLyogMC0tbWVtb3J5IHNwYWNlIDEtLUkvTyBzcGFjZSAqLwojZGVmaW5lCVBPQ01SX1NFCTB4MjAwMDAwMDAJLyogc3RyZWFtaW5nIGVuYWJsZSAqLwojZGVmaW5lCVBPQ01SX0RTVAkweDEwMDAwMDAwCS8qIDAtLVBDSTEgMS0tUENJMiovCiNkZWZpbmUJUE9DTVJfQ01fTUFTSwkweDAwMGZmZmZmCiNkZWZpbmUJUE9DTVJfQ01fNEcJMHgwMDAwMDAwMAojZGVmaW5lCVBPQ01SX0NNXzJHCTB4MDAwODAwMDAKI2RlZmluZQlQT0NNUl9DTV8xRwkweDAwMEMwMDAwCiNkZWZpbmUJUE9DTVJfQ01fNTEyTQkweDAwMEUwMDAwCiNkZWZpbmUJUE9DTVJfQ01fMjU2TQkweDAwMEYwMDAwCiNkZWZpbmUJUE9DTVJfQ01fMTI4TQkweDAwMEY4MDAwCiNkZWZpbmUJUE9DTVJfQ01fNjRNCTB4MDAwRkMwMDAKI2RlZmluZQlQT0NNUl9DTV8zMk0JMHgwMDBGRTAwMAojZGVmaW5lCVBPQ01SX0NNXzE2TQkweDAwMEZGMDAwCiNkZWZpbmUJUE9DTVJfQ01fOE0JMHgwMDBGRjgwMAojZGVmaW5lCVBPQ01SX0NNXzRNCTB4MDAwRkZDMDAKI2RlZmluZQlQT0NNUl9DTV8yTQkweDAwMEZGRTAwCiNkZWZpbmUJUE9DTVJfQ01fMU0JMHgwMDBGRkYwMAojZGVmaW5lCVBPQ01SX0NNXzUxMksJMHgwMDBGRkY4MAojZGVmaW5lCVBPQ01SX0NNXzI1NksJMHgwMDBGRkZDMAojZGVmaW5lCVBPQ01SX0NNXzEyOEsJMHgwMDBGRkZFMAojZGVmaW5lCVBPQ01SX0NNXzY0SwkweDAwMEZGRkYwCiNkZWZpbmUJUE9DTVJfQ01fMzJLCTB4MDAwRkZGRjgKI2RlZmluZQlQT0NNUl9DTV8xNksJMHgwMDBGRkZGQwojZGVmaW5lCVBPQ01SX0NNXzhLCTB4MDAwRkZGRkUKI2RlZmluZQlQT0NNUl9DTV80SwkweDAwMEZGRkZGCgl1OAlyZXMwWzB4NjBdOwoJdTMyCXBtY3I7Cgl1OAlyZXMxWzRdOwoJdTMyCWR0Y3I7Cgl1OAlyZXMyWzRdOwp9IGlvczgzNDlfdDsKCi8qCiAqIFBDSSBDb250cm9sbGVyIENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3RlcnMKICovCnR5cGVkZWYgc3RydWN0IHBjaWN0cmw4MzQ5IHsKCXUzMgllc3I7CiNkZWZpbmUgRVNSX01FUlIJMHg4MDAwMDAwMAojZGVmaW5lIEVTUl9BUEFSCTB4MDAwMDA0MDAKI2RlZmluZQlFU1JfUENJU0VSUgkweDAwMDAwMjAwCiNkZWZpbmUJRVNSX01QRVJSCTB4MDAwMDAxMDAKI2RlZmluZQlFU1JfVFBFUlIJMHgwMDAwMDA4MAojZGVmaW5lCUVTUl9OT1JTUAkweDAwMDAwMDQwCiNkZWZpbmUJRVNSX1RBQlQJMHgwMDAwMDAyMAoJdTMyCWVjZHI7CiNkZWZpbmUgRUNEUl9BUEFSCTB4MDAwMDA0MDAKI2RlZmluZQlFQ0RSX1BDSVNFUlIJMHgwMDAwMDIwMAojZGVmaW5lCUVDRFJfTVBFUlIJMHgwMDAwMDEwMAojZGVmaW5lCUVDRFJfVFBFUlIJMHgwMDAwMDA4MAojZGVmaW5lCUVDRFJfTk9SU1AJMHgwMDAwMDA0MAojZGVmaW5lCUVDRFJfVEFCVAkweDAwMDAwMDIwCgl1MzIgZWVyOwojZGVmaW5lIEVFUl9BUEFSCTB4MDAwMDA0MDAKI2RlZmluZQlFRVJfUENJU0VSUgkweDAwMDAwMjAwCiNkZWZpbmUJRUVSX01QRVJSCTB4MDAwMDAxMDAKI2RlZmluZQlFRVJfVFBFUlIJMHgwMDAwMDA4MAojZGVmaW5lCUVFUl9OT1JTUAkweDAwMDAwMDQwCiNkZWZpbmUJRUVSX1RBQlQJMHgwMDAwMDAyMAoJdTMyCWVhdGNyOwojZGVmaW5lCUVBVENSX0VSUlRZUFJfTUFTSwkweDcwMDAwMDAwCiNkZWZpbmUJRUFUQ1JfRVJSVFlQUl9BUFIJMHgwMDAwMDAwMAkvKiBhZGRyZXNzIHBhcml0eSBlcnJvciAqLwojZGVmaW5lCUVBVENSX0VSUlRZUFJfV0RQUgkweDEwMDAwMDAwCS8qIHdyaXRlIGRhdGEgcGFyaXR5IGVycm9yICovCiNkZWZpbmUJRUFUQ1JfRVJSVFlQUl9SRFBSCTB4MjAwMDAwMDAJLyogcmVhZCBkYXRhIHBhcml0eSBlcnJvciAqLwojZGVmaW5lCUVBVENSX0VSUlRZUFJfTUEJMHgzMDAwMDAwMAkvKiBtYXN0ZXIgYWJvcnQgKi8KI2RlZmluZQlFQVRDUl9FUlJUWVBSX1RBCTB4NDAwMDAwMDAJLyogdGFyZ2V0IGFib3J0ICovCiNkZWZpbmUJRUFUQ1JfRVJSVFlQUl9TRQkweDUwMDAwMDAwCS8qIHN5c3RlbSBlcnJvciBpbmRpY2F0aW9uIHJlY2VpdmVkICovCiNkZWZpbmUJRUFUQ1JfRVJSVFlQUl9QRUEJMHg2MDAwMDAwMAkvKiBwYXJpdHkgZXJyb3IgaW5kaWNhdGlvbiByZWNlaXZlZCBvbiBhIHJlYWQgKi8KI2RlZmluZQlFQVRDUl9FUlJUWVBSX1BFVwkweDcwMDAwMDAwCS8qIHBhcml0eSBlcnJvciBpbmRpY2F0aW9uIHJlY2VpdmVkIG9uIGEgd3JpdGUgKi8KI2RlZmluZSBFQVRDUl9CTl9NQVNLCQkweDBmMDAwMDAwCS8qIGJlYXQgbnVtYmVyICovCiNkZWZpbmUJRUFUQ1JfQk5fMXN0CQkweDAwMDAwMDAwCiNkZWZpbmUJRUFUQ1JfQk5fMmVkCQkweDAxMDAwMDAwCiNkZWZpbmUJRUFUQ1JfQk5fM3JkCQkweDAyMDAwMDAwCiNkZWZpbmUJRUFUQ1JfQk5fNHRoCQkweDAzMDAwMDAwCiNkZWZpbmUJRUFUQ1JfQk5fNXRoCQkweDA0MDAwMDAKI2RlZmluZQlFQVRDUl9CTl82dGgJCTB4MDUwMDAwMDAKI2RlZmluZQlFQVRDUl9CTl83dGgJCTB4MDYwMDAwMDAKI2RlZmluZQlFQVRDUl9CTl84dGgJCTB4MDcwMDAwMDAKI2RlZmluZQlFQVRDUl9CTl85dGgJCTB4MDgwMDAwMDAKI2RlZmluZSBFQVRDUl9UU19NQVNLCQkweDAwMzAwMDAwCS8qIHRyYW5zYWN0aW9uIHNpemUgKi8KI2RlZmluZQlFQVRDUl9UU180CQkweDAwMDAwMDAwCiNkZWZpbmUJRUFUQ1JfVFNfMQkJMHgwMDEwMDAwMAojZGVmaW5lCUVBVENSX1RTXzIJCTB4MDAyMDAwMDAKI2RlZmluZQlFQVRDUl9UU18zCQkweDAwMzAwMDAwCiNkZWZpbmUJRUFUQ1JfRVNfTUFTSwkJMHgwMDBmMDAwMAkvKiBlcnJvciBzb3VyY2UgKi8KI2RlZmluZQlFQVRDUl9FU19FTQkJMHgwMDAwMDAwMAkvKiBleHRlcm5hbCBtYXN0ZXIgKi8KI2RlZmluZQlFQVRDUl9FU19ETUEJCTB4MDAwNTAwMDAKI2RlZmluZQlFQVRDUl9DTURfTUFTSwkJMHgwMDAwZjAwMAojZGVmaW5lCUVBVENSX0hCRV9NQVNLCQkweDAwMDAwZjAwCS8qIFBDSSBoaWdoIGJ5dGUgZW5hYmxlKi8KI2RlZmluZQlFQVRDUl9CRV9NQVNLCQkweDAwMDAwMGYwCS8qIFBDSSBieXRlIGVuYWJsZSAqLwojZGVmaW5lCUVBVENSX0hQQgkJMHgwMDAwMDAwNAkvKiBoaWdoIHBhcml0eSBiaXQgKi8KI2RlZmluZQlFQVRDUl9QQgkJMHgwMDAwMDAwMgkvKiBwYXJpdHkgYml0Ki8KI2RlZmluZQlFQVRDUl9WSQkJMHgwMDAwMDAwMQkvKiBlcnJvciBpbmZvcm1hdGlvbiB2YWxpZCAqLwoJdTMyCWVhY3I7Cgl1MzIJZWVhY3I7Cgl1MzIJZWRsY3I7Cgl1MzIJZWRoY3I7Cgl1MzIJZ2NyOwoJdTMyCWVjcjsKCXUzMglnc3I7Cgl1OAlyZXMwWzEyXTsKCXUzMglwaXRhcjI7Cgl1OAlyZXMxWzRdOwoJdTMyCXBpYmFyMjsKCXUzMglwaWViYXIyOwoJdTMyCXBpd2FyMjsKCXU4CXJlczJbNF07Cgl1MzIJcGl0YXIxOwoJdTgJcmVzM1s0XTsKCXUzMglwaWJhcjE7Cgl1MzIJcGllYmFyMTsKCXUzMglwaXdhcjE7Cgl1OAlyZXM0WzRdOwoJdTMyCXBpdGFyMDsKCXU4CXJlczVbNF07Cgl1MzIJcGliYXIwOwoJdTgJcmVzNls0XTsKCXUzMglwaXdhcjA7Cgl1OAlyZXM3WzEzMl07CiNkZWZpbmUgUElUQVJfVEFfTUFTSwkJMHgwMDBmZmZmZgojZGVmaW5lIFBJQkFSX01BU0sJCTB4ZmZmZmZmZmYKI2RlZmluZSBQSUVCQVJfRUJBX01BU0sJCTB4MDAwZmZmZmYKI2RlZmluZSBQSVdBUl9FTgkJMHg4MDAwMDAwMAojZGVmaW5lIFBJV0FSX1BGCQkweDIwMDAwMDAwCiNkZWZpbmUJUElXQVJfUlRUX01BU0sJCTB4MDAwZjAwMDAKI2RlZmluZQlQSVdBUl9SVFRfTk9fU05PT1AJMHgwMDA0MDAwMAojZGVmaW5lIFBJV0FSX1JUVF9TTk9PUAkJMHgwMDA1MDAwMAojZGVmaW5lCVBJV0FSX1dUVF9NQVNLCQkweDAwMDBmMDAwCiNkZWZpbmUJUElXQVJfV1RUX05PX1NOT09QCTB4MDAwMDQwMDAKI2RlZmluZSBQSVdBUl9XVFRfU05PT1AJCTB4MDAwMDUwMDAKI2RlZmluZQlQSVdBUl9JV1NfTUFTSwkweDAwMDAwMDNGCiNkZWZpbmUJUElXQVJfSVdTXzRLCTB4MDAwMDAwMEIKI2RlZmluZQlQSVdBUl9JV1NfOEsJMHgwMDAwMDAwQwojZGVmaW5lCVBJV0FSX0lXU18xNksJMHgwMDAwMDAwRAojZGVmaW5lCVBJV0FSX0lXU18zMksJMHgwMDAwMDAwRQojZGVmaW5lCVBJV0FSX0lXU182NEsJMHgwMDAwMDAwRgojZGVmaW5lCVBJV0FSX0lXU18xMjhLCTB4MDAwMDAwMTAKI2RlZmluZQlQSVdBUl9JV1NfMjU2SwkweDAwMDAwMDExCiNkZWZpbmUJUElXQVJfSVdTXzUxMksJMHgwMDAwMDAxMgojZGVmaW5lCVBJV0FSX0lXU18xTQkweDAwMDAwMDEzCiNkZWZpbmUJUElXQVJfSVdTXzJNCTB4MDAwMDAwMTQKI2RlZmluZQlQSVdBUl9JV1NfNE0JMHgwMDAwMDAxNQojZGVmaW5lCVBJV0FSX0lXU184TQkweDAwMDAwMDE2CiNkZWZpbmUJUElXQVJfSVdTXzE2TQkweDAwMDAwMDE3CiNkZWZpbmUJUElXQVJfSVdTXzMyTQkweDAwMDAwMDE4CiNkZWZpbmUJUElXQVJfSVdTXzY0TQkweDAwMDAwMDE5CiNkZWZpbmUJUElXQVJfSVdTXzEyOE0JMHgwMDAwMDAxQQojZGVmaW5lCVBJV0FSX0lXU18yNTZNCTB4MDAwMDAwMUIKI2RlZmluZQlQSVdBUl9JV1NfNTEyTQkweDAwMDAwMDFDCiNkZWZpbmUJUElXQVJfSVdTXzFHCTB4MDAwMDAwMUQKI2RlZmluZQlQSVdBUl9JV1NfMkcJMHgwMDAwMDAxRQp9IHBjaWN0cmw4MzQ5X3Q7CgovKgogKiBVU0IKICovCnR5cGVkZWYgc3RydWN0IHVzYjgzNDkgewoJdTggZml4bWVbMHgyMDAwXTsKfSB1c2I4MzQ5X3Q7CgovKgogKiBUU0VDCiAqLwp0eXBlZGVmIHN0cnVjdCB0c2VjODM0OSB7Cgl1OCBmaXhtZVsweDEwMDBdOwp9IHRzZWM4MzQ5X3Q7CgovKgogKiBTZWN1cml0eQogKi8KdHlwZWRlZiBzdHJ1Y3Qgc2VjdXJpdHk4MzQ5IHsKCXU4IGZpeG1lWzB4MTAwMDBdOwp9IHNlY3VyaXR5ODM0OV90OwoKdHlwZWRlZiBzdHJ1Y3QgaW1tYXAgewoJc3lzY29uZjgzNDlfdCBzeXNjb25mOyAvKiBTeXN0ZW0gY29uZmlndXJhdGlvbiAqLwoJd2R0ODM0OV90ICAgICB3ZHQ7ICAgICAvKiBXYXRjaCBEb2cgVGltZXIgKFdEVCkgUmVnaXN0ZXJzICovCglydGNsazgzNDlfdCAgIHJ0YzsgICAgIC8qIFJlYWwgVGltZSBDbG9jayBNb2R1bGUgUmVnaXN0ZXJzICovCglydGNsazgzNDlfdCAgIHBpdDsgICAgIC8qIFBlcmlvZGljIEludGVydmFsIFRpbWVyICovCglndG04MzQ5X3QgICAgIGd0bVsyXTsgIC8qIEdsb2JhbCBUaW1lcnMgTW9kdWxlICovCglpcGljODM0OV90ICAgIGlwaWM7ICAgIC8qIEludGVncmF0ZWQgUHJvZ3JhbW1hYmxlIEludGVycnVwdCBDb250cm9sbGVyICovCglhcmJpdGVyODM0OV90IGFyYml0ZXI7IC8qIFN5c3RlbSBBcmJpdGVyIFJlZ2lzdGVycyAqLwoJcmVzZXQ4MzQ5X3QgICByZXNldDsgICAvKiBSZXNldCBNb2R1bGUgKi8KCWNsazgzNDlfdCAgICAgY2xrOyAgICAgLyogU3lzdGVtIENsb2NrIE1vZHVsZSAqLwoJcG1jODM0OV90ICAgICBwbWM7ICAgICAvKiBQb3dlciBNYW5hZ2VtZW50IENvbnRyb2wgTW9kdWxlICovCglncGlvODM0OV90ICAgIHBnaW9bMl07IC8qIGdlbmVyYWwgcHVycG9zZSBJL08gbW9kdWxlICovCgl1OCByZXMwWzB4MjAwXTsKCXU4IERETF9ERFJbMHgxMDBdOwoJdTggRERMX0xCSVVbMHgxMDBdOwoJdTggcmVzMVsweEUwMF07CglkZHI4MzQ5X3QgICAgIGRkcjsgICAgIC8qIEREUiBNZW1vcnkgQ29udHJvbGxlciBNZW1vcnkgKi8KCWkyY190ICAgICBpMmNbMl07ICAgICAgLyogSTJDMSBDb250cm9sbGVyICovCgl1OCByZXMyWzB4MTMwMF07CglkdWFydDgzNDlfdCAgIGR1YXJ0WzJdOy8qIERVQVJUICovCgl1OCByZXMzWzB4OTAwXTsKCWxidXM4MzQ5X3QgICAgbGJ1czsgICAgLyogTG9jYWwgQnVzIENvbnRyb2xsZXIgUmVnaXN0ZXJzICovCgl1OCByZXM0WzB4MTAwMF07CglzcGk4MzQ5X3QgICAgIHNwaTsgICAgIC8qIFNlcmlhbCBQZXJpcGhlcmFsIEludGVyZmFjZSAqLwoJdTggcmVzNVsweEYwMF07CglkbWE4MzQ5X3QgICAgIGRtYTsgICAgIC8qIERNQSAqLwoJcGNpY29uZjgzNDlfdCBwY2lfY29uZlsyXTsgIC8qIFBDSSBTb2Z0d2FyZSBDb25maWd1cmF0aW9uIFJlZ2lzdGVycyAqLwoJaW9zODM0OV90ICAgICBpb3M7ICAgICAvKiBTZXF1ZW5jZXIgKi8KCXBjaWN0cmw4MzQ5X3QgcGNpX2N0cmxbMl07ICAvKiBQQ0kgQ29udHJvbGxlciBDb250cm9sIGFuZCBTdGF0dXMgUmVnaXN0ZXJzICovCgl1OCByZXM2WzB4MTk5MDBdOwoJdXNiODM0OV90ICAgICB1c2I7Cgl0c2VjODM0OV90ICAgIHRzZWNbMl07Cgl1OCByZXM3WzB4QTAwMF07CglzZWN1cml0eTgzNDlfdCBzZWN1cml0eTsKfSBpbW1hcF90OwoKI2VuZGlmIC8qIF9fSU1NQVBfODM0OV9fICovCg==