LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcCgogIENvcHlyaWdodCAoQykgMTk5MSwgMTk5MiBUV0FJTiBXb3JraW5nIEdyb3VwOiBBbGR1cywgQ2FlcmUsIEVhc3RtYW4tS29kYWssCiAgSGV3bGV0dC1QYWNrYXJkIGFuZCBMb2dpdGVjaCBDb3Jwb3JhdGlvbnMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgoKICBDb3B5cmlnaHQgKEMpIDE5OTcgVFdBSU4gV29ya2luZyBHcm91cDogQmVsbCtIb3dlbGwsIENhbm9uLCBEb2N1TWFnaXgsCiAgRnVqaXRzdSwgR2Vub2EgVGVjaG5vbG9neSwgSGV3bGV0dC1QYWNrYXJkLCBLb2ZheCBJbWFnaW5nIFByb2R1Y3RzLCBhbmQKICBSaWNvaCBDb3Jwb3JhdGlvbi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogIENvcHlyaWdodCCpIDE5OTggVFdBSU4gV29ya2luZyBHcm91cDogQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQsCiAgQ2Fub24gSW5mb3JtYXRpb24gU3lzdGVtcywgRWFzdG1hbiBLb2RhayBDb21wYW55LAogIEZ1aml0c3UgQ29tcHV0ZXIgUHJvZHVjdHMgb2YgQW1lcmljYSwgR2Vub2EgVGVjaG5vbG9neSwKICBIZXdsZXR0LVBhY2thcmQgQ29tcGFueSwgSW50ZWwgQ29ycG9yYXRpb24sIEtvZmF4IEltYWdlIFByb2R1Y3RzLAogIEpGTCBQZXJpcGhlcmFsIFNvbHV0aW9ucyBJbmMuLCBSaWNvaCBDb3Jwb3JhdGlvbiwgYW5kIFhlcm94IENvcnBvcmF0aW9uLgogIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogIFRXQUlOLmggLSAgVGhpcyBpcyB0aGUgZGVmaW5pdGl2ZSBpbmNsdWRlIGZpbGUgZm9yIGFwcGxpY2F0aW9ucyBhbmQKICAgICAgICAgIGRhdGEgc291cmNlcyB3cml0dGVuIHRvIHRoZSBUV0FJTiBzcGVjaWZpY2F0aW9uLgogICAgICAgICAgSXQgZGVmaW5lcyBjb25zdGFudHMsIGRhdGEgc3RydWN0dXJlcywgbWVzc2FnZXMgZXRjLgogICAgICAgICAgZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlIHRvIFRXQUlOLgoKICBSZXZpc2lvbiBIaXN0b3J5OgogICAgdmVyc2lvbiAxLjAsIE1hcmNoIDYsIDE5OTIuICBUV0FJTiAxLjAuCiAgICB2ZXJzaW9uIDEuMSwgSmFudWFyeSAxOTkzLiAgIFRlY2ggTm90ZXMgMS4xCiAgICB2ZXJzaW9uIDEuNSwgSnVuZSAxOTkzLiAgICAgIFNwZWNpZmljYXRpb24gVXBkYXRlIDEuNQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2UgREMgdG8gVFcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlIGZpbGVuYW1lIGZyb20gREMuSCB0byBUV0FJTi5ICiAgICB2ZXJzaW9uIDEuNSwgSnVseSAxOTkzLiAgICAgIFJlbW92ZSBzcGFjZXMgZnJvbSBjb3VudHJ5IGlkZW50aWZpZXJzCgogICAgdmVyc2lvbiAxLjcsIEp1bHkgMTk5NyAgICAgICBBZGRlZCBDYXBhYmlsaXRpZXMgYW5kIGRhdGEgc3RydWN0dXJlIGZvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCBpbWFnaW5nIGFuZCBkaWdpdGFsIGNhbWVyYXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtITC4KICAgIHZlcnNpb24gMS43LCBKdWx5IDE5OTcgICAgICAgSW5zZXJ0ZWQgQm9ybGFuZCBjb21wYXRpYmlsZSBzdHJ1Y3R1cmUgcGFja2luZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RpdmVzIHByb3ZpZGVkIGJ5IE1lbnRvci4gIEpNSAogICAgdmVyc2lvbiAxLjcsIEF1ZyAxOTk3ICAgICAgICBFeHBhbmRlZCBmaWxlIHRhYnMgdG8gc3BhY2VzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOT1RFOiBmdXR1cmUgYXV0aG9ycyBzaG91bGQgYmUgc3VyZSB0byBoYXZlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWlyIGVkaXRvcnMgc2V0IHRvIGF1dG9tYXRpY2FsbHkgZXhwYW5kIHRhYnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gc3BhY2VzIChvcmlnaW5hbCB0YWIgc2V0dGluZyB3YXMgNCBzcGFjZXMpLgogICAgdmVyc2lvbiAxLjcsIFNlcHQgMTk5NyAgICAgICBBZGRlZCBqb2IgY29udHJvbCB2YWx1ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgcmV0dXJuIGNvZGVzCiAgICB2ZXJzaW9uIDEuNywgU2VwdCAxOTk3ICAgICAgIGNoYW5nZWQgZGVmaW5pdGlvbiBvZiBwUkdCUkVTUE9OU0UgdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcFRXX1JHQlJFU1BPTlNFCiAgICB2ZXJzaW9uIDEuNyAgQXVnIDE5OTggICAgICAgIEFkZGVkIG1pc3NpbmcgVFdFSV9CQVJDT0RFUk9UQVRJT04gdmFsdWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXQkNPUl8gdHlwZXMgSk1ICiAgICB2ZXJzaW9uIDEuOCAgQXVndXN0IDE5OTggICAgIEFkZGVkIG5ldyB0eXBlcyBhbmQgZGVmaW5pdGlvbnMgcmVxdWlyZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIDEuOCBTcGVjaWZpY2F0aW9uIEpNSAogICAgdmVyc2lvbiAxLjggIEphbnVhcnkgMTk5OSAgICBDaGFuZ2VkIHNlYXJjaCBtb2RlIGZyb20gU1JDSF8gdG8gVFdCRF8gYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gMS44IFNwZWNpZmljYXRpb24sIGFkZGVkIFRXQlRfTUFYSUNPREUJSk1ICiAgICB2ZXJzaW9uIDEuOCAgSmFudWFyeSAxOTk5ICAgIFJlbW92ZWQgdW5kb2N1bWVudGVkIGR1cGxpY2F0ZSBBVVRPPGNhcD4gSk1IClwqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2lmbmRlZiBUV0FJTgojZGVmaW5lIFRXQUlOCgojaW5jbHVkZSA8c3RkYXJnLmg+CgojaW5jbHVkZSAid2luZGVmLmgiCiNpbmNsdWRlICJ3aW5iYXNlLmgiCgojdW5kZWYgRkFSCiNkZWZpbmUgRkFSCiNkZWZpbmUgaHVnZQojZGVmaW5lIFdJTjMyCiNkZWZpbmUgX1dJTjMyCiN1bmRlZiBfX2RlY2xzcGVjCiNkZWZpbmUgX19kZWNsc3BlYyhzcGVjKQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogVFdBSU4gVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiNkZWZpbmUgVFdPTl9QUk9UT0NPTE1JTk9SICAgOCAgICAgICAgLyogQ2hhbmdlZCBmb3IgVmVyc2lvbiAxLjggICAgICAgICAgICAqLwojZGVmaW5lIFRXT05fUFJPVE9DT0xNQUpPUiAgIDEKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIFBsYXRmb3JtIERlcGVuZGVudCBEZWZpbml0aW9ucyBhbmQgVHlwZWRlZnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyogRGVmaW5lIG9uZSBvZiB0aGUgZm9sbG93aW5nLCBkZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtICovCi8qICNkZWZpbmUgX01BQ18gICAqLwovKiAjZGVmaW5lIF9VTklYXyAgKi8KI2RlZmluZSBfTVNXSU5fCgojaWZkZWYgIF9NU1dJTl8KICAgIHR5cGVkZWYgSEFORExFICAgICAgICAgVFdfSEFORExFOwogICAgdHlwZWRlZiBMUFZPSUQgICAgICAgICBUV19NRU1SRUY7CgogICAgLyogIFNESCAtIDA1LzA1Lzk1IC0gVFdVTksgKi8KICAgIC8qICBGb3IgY29tbW9uIGNvZGUgYmV0d2VlbiAxNiBhbmQgMzIgYml0cy4gICovCiAgICAjaWZkZWYgIFdJTjMyCiAgICAgICAgI2RlZmluZSBUV19IVUdFCiAgICAjZWxzZSAgIC8qIFdJTjMyICovCiAgICAgICAgI2RlZmluZSBUV19IVUdFICAgIGh1Z2UKICAgICNlbmRpZiAgLyogV0lOMzIgKi8KICAgIHR5cGVkZWYgQllURSBUV19IVUdFICogSFBCWVRFOwogICAgdHlwZWRlZiB2b2lkIFRXX0hVR0UgKiBIUFZPSUQ7CiNlbmRpZiAgLyogX01TV0lOXyAqLwoKI2lmZGVmICBfTUFDXwogICAgI2RlZmluZSBQQVNDQUwgICAgICAgICBwYXNjYWwKICAgICNkZWZpbmUgRkFSCiAgICB0eXBlZGVmIEhhbmRsZSAgICAgICAgIFRXX0hBTkRMRTsKICAgIHR5cGVkZWYgY2hhciAgICAgICAgICAqVFdfTUVNUkVGOwojZW5kaWYgIC8qIF9NQUNfICovCgojaWZkZWYgIF9VTklYXwovKiAgICAjZGVmaW5lIFBBU0NBTCAgICAgICAgIHBhc2NhbCAqLwogICAgI2RlZmluZSBGQVIKICAgIHR5cGVkZWYgdW5zaWduZWQgY2hhciAqVFdfSEFORExFOwogICAgdHlwZWRlZiB1bnNpZ25lZCBjaGFyICpUV19NRU1SRUY7CiNlbmRpZiAgLyogX1VOSVhfICovCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBUeXBlIERlZmluaXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qIFN0cmluZyB0eXBlcy4gVGhlc2UgaW5jbHVkZSByb29tIGZvciB0aGUgc3RyaW5ncyBhbmQgYSBOVUxMIGNoYXIsICAgICAqCiAqIG9yLCBvbiB0aGUgTWFjLCBhIGxlbmd0aCBieXRlIGZvbGxvd2VkIGJ5IHRoZSBzdHJpbmcuICAgICAgICAgICAgICAgICAqCiAqIFRXX1NUUjI1NSBtdXN0IGhvbGQgbGVzcyB0aGFuIDI1NiBjaGFycyBzbyBsZW5ndGggZml0cyBpbiBmaXJzdCBieXRlLiAqLwp0eXBlZGVmIGNoYXIgICAgVFdfU1RSMzJbMzRdLCAgICAgRkFSICpwVFdfU1RSMzI7CnR5cGVkZWYgY2hhciAgICBUV19TVFI2NFs2Nl0sICAgICBGQVIgKnBUV19TVFI2NDsKdHlwZWRlZiBjaGFyICAgIFRXX1NUUjEyOFsxMzBdLCAgIEZBUiAqcFRXX1NUUjEyODsKdHlwZWRlZiBjaGFyICAgIFRXX1NUUjI1NVsyNTZdLCAgIEZBUiAqcFRXX1NUUjI1NTsKCi8qIE51bWVyaWMgdHlwZXMuICovCnR5cGVkZWYgY2hhciAgICAgICAgICAgVFdfSU5UOCwgICBGQVIgKnBUV19JTlQ4Owp0eXBlZGVmIHNob3J0ICAgICAgICAgIFRXX0lOVDE2LCAgRkFSICpwVFdfSU5UMTY7CnR5cGVkZWYgbG9uZyAgICAgICAgICAgVFdfSU5UMzIsICBGQVIgKnBUV19JTlQzMjsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyICBUV19VSU5UOCwgIEZBUiAqcFRXX1VJTlQ4Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IFRXX1VJTlQxNiwgRkFSICpwVFdfVUlOVDE2Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgIFRXX1VJTlQzMiwgRkFSICpwVFdfVUlOVDMyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IFRXX0JPT0wsICAgRkFSICpwVFdfQk9PTDsKCi8qIEZpeGVkIHBvaW50IHN0cnVjdHVyZSB0eXBlLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgICBUV19JTlQxNiAgICAgV2hvbGU7ICAgICAgICAvKiBtYWludGFpbnMgdGhlIHNpZ24gKi8KICAgIFRXX1VJTlQxNiAgICBGcmFjOwp9IFRXX0ZJWDMyLCAgRkFSICpwVFdfRklYMzI7CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBTdHJ1Y3R1cmUgRGVmaW5pdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qIE5vIERBVCBuZWVkZWQuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfRklYMzIgICBYOwogICBUV19GSVgzMiAgIFk7CiAgIFRXX0ZJWDMyICAgWjsKfSBUV19DSUVQT0lOVCwgRkFSICogcFRXX0NJRVBPSU5UOwoKLyogTm8gREFUIG5lZWRlZC4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19GSVgzMiAgIFN0YXJ0SW47CiAgIFRXX0ZJWDMyICAgQnJlYWtJbjsKICAgVFdfRklYMzIgICBFbmRJbjsKICAgVFdfRklYMzIgICBTdGFydE91dDsKICAgVFdfRklYMzIgICBCcmVha091dDsKICAgVFdfRklYMzIgICBFbmRPdXQ7CiAgIFRXX0ZJWDMyICAgR2FtbWE7CiAgIFRXX0ZJWDMyICAgU2FtcGxlQ291bnQ7ICAvKiBpZiA9MCB1c2UgdGhlIGdhbW1hICovCn0gVFdfREVDT0RFRlVOQ1RJT04sIEZBUiAqIHBUV19ERUNPREVGVU5DVElPTjsKCi8qIE5vIERBVCBuZWVkZWQuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfVUlOVDggICAgSW5kZXg7ICAgIC8qIFZhbHVlIHVzZWQgdG8gaW5kZXggaW50byB0aGUgY29sb3IgdGFibGUuICovCiAgIFRXX1VJTlQ4ICAgIENoYW5uZWwxOyAvKiBGaXJzdCAgdHJpLXN0aW11bHVzIHZhbHVlIChlLmcgUmVkKSAgICAgICAqLwogICBUV19VSU5UOCAgICBDaGFubmVsMjsgLyogU2Vjb25kIHRyaS1zdGltdWx1cyB2YWx1ZSAoZS5nIEdyZWVuKSAgICAgKi8KICAgVFdfVUlOVDggICAgQ2hhbm5lbDM7IC8qIFRoaXJkICB0cmktc3RpbXVsdXMgdmFsdWUgKGUuZyBCbHVlKSAgICAgICovCn0gVFdfRUxFTUVOVDgsIEZBUiAqIHBUV19FTEVNRU5UODsKCi8qIE5vIERBVC4gIERlZmluZXMgYSBmcmFtZSByZWN0YW5nbGUgaW4gSUNBUF9VTklUUyBjb29yZGluYXRlcy4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19GSVgzMiAgIExlZnQ7CiAgIFRXX0ZJWDMyICAgVG9wOwogICBUV19GSVgzMiAgIFJpZ2h0OwogICBUV19GSVgzMiAgIEJvdHRvbTsKfSBUV19GUkFNRSwgRkFSICogcFRXX0ZSQU1FOwoKLyogTm8gREFUIG5lZWRlZC4gIFVzZWQgdG8gbWFuYWdlIG1lbW9yeSBidWZmZXJzLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1VJTlQzMiAgRmxhZ3M7ICAvKiBBbnkgY29tYmluYXRpb24gb2YgdGhlIFRXTUZfIGNvbnN0YW50cy4gICAgICAgICAgICovCiAgIFRXX1VJTlQzMiAgTGVuZ3RoOyAvKiBOdW1iZXIgb2YgYnl0ZXMgc3RvcmVkIGluIGJ1ZmZlciBUaGVNZW0uICAgICAgICAgICovCiAgIFRXX01FTVJFRiAgVGhlTWVtOyAvKiBQb2ludGVyIG9yIGhhbmRsZSB0byB0aGUgYWxsb2NhdGVkIG1lbW9yeSBidWZmZXIuICovCn0gVFdfTUVNT1JZLCBGQVIgKiBwVFdfTUVNT1JZOwoKLyogTm8gREFUIG5lZWRlZC4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19ERUNPREVGVU5DVElPTiAgIERlY29kZVszXTsKICAgVFdfRklYMzIgICAgICAgICAgICBNaXhbM11bM107Cn0gVFdfVFJBTlNGT1JNU1RBR0UsIEZBUiAqIHBUV19UUkFOU0ZPUk1TVEFHRTsKCi8qIE5vIERBVCBuZWVkZWQuICBEZXNjcmliZXMgdmVyc2lvbiBvZiBzb2Z0d2FyZSBjdXJyZW50bHkgcnVubmluZy4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMTYgIE1ham9yTnVtOyAgLyogTWFqb3IgcmV2aXNpb24gbnVtYmVyIG9mIHRoZSBzb2Z0d2FyZS4gKi8KICAgVFdfVUlOVDE2ICBNaW5vck51bTsgIC8qIEluY3JlbWVudGFsIHJldmlzaW9uIG51bWJlciBvZiB0aGUgc29mdHdhcmUuICovCiAgIFRXX1VJTlQxNiAgTGFuZ3VhZ2U7ICAvKiBlLmcuIFRXTEdfU1dJU1NGUkVOQ0ggKi8KICAgVFdfVUlOVDE2ICBDb3VudHJ5OyAgIC8qIGUuZy4gVFdDWV9TV0lUWkVSTEFORCAqLwogICBUV19TVFIzMiAgIEluZm87ICAgICAgLyogZS5nLiAiMS4wYjMgQmV0YSByZWxlYXNlIiAqLwp9IFRXX1ZFUlNJT04sIEZBUiAqIHBUV19WRVJTSU9OOwoKLyogVFdPTl9BUlJBWS4gQ29udGFpbmVyIGZvciBhcnJheSBvZiB2YWx1ZXMgKGEgc2ltcGxpZmllZCBUV19FTlVNRVJBVElPTikgKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMTYgIEl0ZW1UeXBlOwogICBUV19VSU5UMzIgIE51bUl0ZW1zOyAgICAvKiBIb3cgbWFueSBpdGVtcyBpbiBJdGVtTGlzdCAgICAgICAgICAgKi8KICAgVFdfVUlOVDggICBJdGVtTGlzdFsxXTsgLyogQXJyYXkgb2YgSXRlbVR5cGUgdmFsdWVzIHN0YXJ0cyBoZXJlICovCn0gVFdfQVJSQVksIEZBUiAqIHBUV19BUlJBWTsKCi8qIFRXT05fRU5VTUVSQVRJT04uIENvbnRhaW5lciBmb3IgYSBjb2xsZWN0aW9uIG9mIHZhbHVlcy4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMTYgIEl0ZW1UeXBlOwogICBUV19VSU5UMzIgIE51bUl0ZW1zOyAgICAgLyogSG93IG1hbnkgaXRlbXMgaW4gSXRlbUxpc3QgICAgICAgICAgICAgICAgICovCiAgIFRXX1VJTlQzMiAgQ3VycmVudEluZGV4OyAvKiBDdXJyZW50IHZhbHVlIGlzIGluIEl0ZW1MaXN0W0N1cnJlbnRJbmRleF0gKi8KICAgVFdfVUlOVDMyICBEZWZhdWx0SW5kZXg7IC8qIFBvd2VydXAgdmFsdWUgaXMgaW4gSXRlbUxpc3RbRGVmYXVsdEluZGV4XSAqLwogICBUV19VSU5UOCAgIEl0ZW1MaXN0WzFdOyAgLyogQXJyYXkgb2YgSXRlbVR5cGUgdmFsdWVzIHN0YXJ0cyBoZXJlICAgICAgICovCn0gVFdfRU5VTUVSQVRJT04sIEZBUiAqIHBUV19FTlVNRVJBVElPTjsKCi8qIFRXT05fT05FVkFMVUUuIENvbnRhaW5lciBmb3Igb25lIHZhbHVlLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1VJTlQxNiAgSXRlbVR5cGU7CiAgIFRXX1VJTlQzMiAgSXRlbTsKfSBUV19PTkVWQUxVRSwgRkFSICogcFRXX09ORVZBTFVFOwoKLyogVFdPTl9SQU5HRS4gQ29udGFpbmVyIGZvciBhIHJhbmdlIG9mIHZhbHVlcy4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMTYgIEl0ZW1UeXBlOwogICBUV19VSU5UMzIgIE1pblZhbHVlOyAgICAgLyogU3RhcnRpbmcgdmFsdWUgaW4gdGhlIHJhbmdlLiAgICAgICAgICAgKi8KICAgVFdfVUlOVDMyICBNYXhWYWx1ZTsgICAgIC8qIEZpbmFsIHZhbHVlIGluIHRoZSByYW5nZS4gICAgICAgICAgICAgICovCiAgIFRXX1VJTlQzMiAgU3RlcFNpemU7ICAgICAvKiBJbmNyZW1lbnQgZnJvbSBNaW5WYWx1ZSB0byBNYXhWYWx1ZS4gICAqLwogICBUV19VSU5UMzIgIERlZmF1bHRWYWx1ZTsgLyogUG93ZXItdXAgdmFsdWUuICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgVFdfVUlOVDMyICBDdXJyZW50VmFsdWU7IC8qIFRoZSB2YWx1ZSB0aGF0IGlzIGN1cnJlbnRseSBpbiBlZmZlY3QuICovCn0gVFdfUkFOR0UsIEZBUiAqIHBUV19SQU5HRTsKCi8qIERBVF9DQVBBQklMSVRZLiBVc2VkIGJ5IGFwcGxpY2F0aW9uIHRvIGdldC9zZXQgY2FwYWJpbGl0eSBmcm9tL2luIGEgZGF0YSBzb3VyY2UuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfVUlOVDE2ICBDYXA7IC8qIGlkIG9mIGNhcGFiaWxpdHkgdG8gc2V0IG9yIGdldCwgZS5nLiBDQVBfQlJJR0hUTkVTUyAqLwogICBUV19VSU5UMTYgIENvblR5cGU7IC8qIFRXT05fT05FVkFMVUUsIF9SQU5HRSwgX0VOVU1FUkFUSU9OIG9yIF9BUlJBWSAgICovCiAgIFRXX0hBTkRMRSAgaENvbnRhaW5lcjsgLyogSGFuZGxlIHRvIGNvbnRhaW5lciBvZiB0eXBlIERhdCAgICAgICAgICAgICAgKi8KfSBUV19DQVBBQklMSVRZLCBGQVIgKiBwVFdfQ0FQQUJJTElUWTsKCi8qIERBVF9DSUVDT0xPUi4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMTYgICAgICAgICAgIENvbG9yU3BhY2U7CiAgIFRXX0lOVDE2ICAgICAgICAgICAgTG93RW5kaWFuOwogICBUV19JTlQxNiAgICAgICAgICAgIERldmljZURlcGVuZGVudDsKICAgVFdfSU5UMzIgICAgICAgICAgICBWZXJzaW9uTnVtYmVyOwogICBUV19UUkFOU0ZPUk1TVEFHRSAgIFN0YWdlQUJDOwogICBUV19UUkFOU0ZPUk1TVEFHRSAgIFN0YWdlTE1OOwogICBUV19DSUVQT0lOVCAgICAgICAgIFdoaXRlUG9pbnQ7CiAgIFRXX0NJRVBPSU5UICAgICAgICAgQmxhY2tQb2ludDsKICAgVFdfQ0lFUE9JTlQgICAgICAgICBXaGl0ZVBhcGVyOwogICBUV19DSUVQT0lOVCAgICAgICAgIEJsYWNrSW5rOwogICBUV19GSVgzMiAgICAgICAgICAgIFNhbXBsZXNbMV07Cn0gVFdfQ0lFQ09MT1IsIEZBUiAqIHBUV19DSUVDT0xPUjsKCi8qIERBVF9FVkVOVC4gRm9yIHBhc3NpbmcgZXZlbnRzIGRvd24gZnJvbSB0aGUgYXBwbGljYXRpb24gdG8gdGhlIERTLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX01FTVJFRiAgcEV2ZW50OyAgICAvKiBXaW5kb3dzIHBNU0cgb3IgTWFjIHBFdmVudC4gICAgICAgICAgICAgICAgICovCiAgIFRXX1VJTlQxNiAgVFdNZXNzYWdlOyAvKiBUVyBtc2cgZnJvbSBkYXRhIHNvdXJjZSwgZS5nLiBNU0dfWEZFUlJFQURZICovCn0gVFdfRVZFTlQsIEZBUiAqIHBUV19FVkVOVDsKCi8qIERBVF9HUkFZUkVTUE9OU0UgKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19FTEVNRU5UOCAgICAgICAgIFJlc3BvbnNlWzFdOwp9IFRXX0dSQVlSRVNQT05TRSwgRkFSICogcFRXX0dSQVlSRVNQT05TRTsKCi8qIERBVF9JREVOVElUWS4gSWRlbnRpZmllcyB0aGUgcHJvZ3JhbS9saWJyYXJ5L2NvZGUgcmVzb3VyY2UuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfVUlOVDMyICBJZDsgICAgICAgICAgICAgIC8qIFVuaXF1ZSBudW1iZXIuICBJbiBXaW5kb3dzLCBhcHBsaWNhdGlvbiBoV25kICAgICAgKi8KICAgVFdfVkVSU0lPTiBWZXJzaW9uOyAgICAgICAgIC8qIElkZW50aWZpZXMgdGhlIHBpZWNlIG9mIGNvZGUgICAgICAgICAgICAgICovCiAgIFRXX1VJTlQxNiAgUHJvdG9jb2xNYWpvcjsgICAvKiBBcHBsaWNhdGlvbiBhbmQgRFMgbXVzdCBzZXQgdG8gVFdPTl9QUk9UT0NPTE1BSk9SICovCiAgIFRXX1VJTlQxNiAgUHJvdG9jb2xNaW5vcjsgICAvKiBBcHBsaWNhdGlvbiBhbmQgRFMgbXVzdCBzZXQgdG8gVFdPTl9QUk9UT0NPTE1JTk9SICovCiAgIFRXX1VJTlQzMiAgU3VwcG9ydGVkR3JvdXBzOyAvKiBCaXQgZmllbGQgT1IgY29tYmluYXRpb24gb2YgREdfIGNvbnN0YW50cyAqLwogICBUV19TVFIzMiAgIE1hbnVmYWN0dXJlcjsgICAgLyogTWFudWZhY3R1cmVyIG5hbWUsIGUuZy4gIkhld2xldHQtUGFja2FyZCIgKi8KICAgVFdfU1RSMzIgICBQcm9kdWN0RmFtaWx5OyAgIC8qIFByb2R1Y3QgZmFtaWx5IG5hbWUsIGUuZy4gIlNjYW5KZXQiICAgICAgICovCiAgIFRXX1NUUjMyICAgUHJvZHVjdE5hbWU7ICAgICAvKiBQcm9kdWN0IG5hbWUsIGUuZy4gIlNjYW5KZXQgUGx1cyIgICAgICAgICAqLwp9IFRXX0lERU5USVRZLCBGQVIgKiBwVFdfSURFTlRJVFk7CgovKiBEQVRfSU1BR0VJTkZPLiBBcHBsaWNhdGlvbiBnZXRzIGRldGFpbGVkIGltYWdlIGluZm8gZnJvbSBEUyB3aXRoIHRoaXMuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfRklYMzIgICBYUmVzb2x1dGlvbjsgICAgICAvKiBSZXNvbHV0aW9uIGluIHRoZSBob3Jpem9udGFsICAgICAgICAgICAgICovCiAgIFRXX0ZJWDMyICAgWVJlc29sdXRpb247ICAgICAgLyogUmVzb2x1dGlvbiBpbiB0aGUgdmVydGljYWwgICAgICAgICAgICAgICAqLwogICBUV19JTlQzMiAgIEltYWdlV2lkdGg7ICAgICAgIC8qIENvbHVtbnMgaW4gdGhlIGltYWdlLCAtMSBpZiB1bmtub3duIGJ5IERTKi8KICAgVFdfSU5UMzIgICBJbWFnZUxlbmd0aDsgICAgICAvKiBSb3dzIGluIHRoZSBpbWFnZSwgLTEgaWYgdW5rbm93biBieSBEUyAgICovCiAgIFRXX0lOVDE2ICAgU2FtcGxlc1BlclBpeGVsOyAgLyogTnVtYmVyIG9mIHNhbXBsZXMgcGVyIHBpeGVsLCAzIGZvciBSR0IgICAqLwogICBUV19JTlQxNiAgIEJpdHNQZXJTYW1wbGVbOF07IC8qIE51bWJlciBvZiBiaXRzIGZvciBlYWNoIHNhbXBsZSAgICAgICAgICAgKi8KICAgVFdfSU5UMTYgICBCaXRzUGVyUGl4ZWw7ICAgICAvKiBOdW1iZXIgb2YgYml0cyBmb3IgZWFjaCBwYWRkZWQgcGl4ZWwgICAgICovCiAgIFRXX0JPT0wgICAgUGxhbmFyOyAgICAgICAgICAgLyogVHJ1ZSBpZiBQbGFuYXIsIEZhbHNlIGlmIGNodW5reSAgICAgICAgICAqLwogICBUV19JTlQxNiAgIFBpeGVsVHlwZTsgICAgICAgIC8qIEhvdyB0byBpbnRlcnAgZGF0YTsgcGhvdG8gaW50ZXJwIChUV1BUXykgKi8KICAgVFdfVUlOVDE2ICBDb21wcmVzc2lvbjsgICAgICAvKiBIb3cgdGhlIGRhdGEgaXMgY29tcHJlc3NlZCAoVFdDUF94eHh4KSAgICovCn0gVFdfSU1BR0VJTkZPLCBGQVIgKiBwVFdfSU1BR0VJTkZPOwoKLyogREFUX0lNQUdFTEFZT1VULiBQcm92aWRlcyBpbWFnZSBsYXlvdXQgaW5mb3JtYXRpb24gaW4gY3VycmVudCB1bml0cy4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19GUkFNRSAgIEZyYW1lOyAgICAgICAgICAvKiBGcmFtZSBjb29yZHMgd2l0aGluIGxhcmdlciBkb2N1bWVudCAqLwogICBUV19VSU5UMzIgIERvY3VtZW50TnVtYmVyOwogICBUV19VSU5UMzIgIFBhZ2VOdW1iZXI7ICAgICAvKiBSZXNldCB3aGVuIHlvdSBnbyB0byBuZXh0IGRvY3VtZW50ICAqLwogICBUV19VSU5UMzIgIEZyYW1lTnVtYmVyOyAgICAvKiBSZXNldCB3aGVuIHlvdSBnbyB0byBuZXh0IHBhZ2UgICAgICAqLwp9IFRXX0lNQUdFTEFZT1VULCBGQVIgKiBwVFdfSU1BR0VMQVlPVVQ7CgovKiBEQVRfSU1BR0VNRU1YRkVSLiBVc2VkIHRvIHBhc3MgaW1hZ2UgZGF0YSAoZS5nLiBpbiBzdHJpcHMpIGZyb20gRFMgdG8gYXBwbGljYXRpb24uKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMTYgIENvbXByZXNzaW9uOyAgLyogSG93IHRoZSBkYXRhIGlzIGNvbXByZXNzZWQgICAgICAgICAgICAgICAgKi8KICAgVFdfVUlOVDMyICBCeXRlc1BlclJvdzsgIC8qIE51bWJlciBvZiBieXRlcyBpbiBhIHJvdyBvZiBkYXRhICAgICAgICAgICovCiAgIFRXX1VJTlQzMiAgQ29sdW1uczsgICAgICAvKiBIb3cgbWFueSBjb2x1bW5zICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogICBUV19VSU5UMzIgIFJvd3M7ICAgICAgICAgLyogSG93IG1hbnkgcm93cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgVFdfVUlOVDMyICBYT2Zmc2V0OyAgICAgIC8qIEhvdyBmYXIgZnJvbSB0aGUgc2lkZSBvZiB0aGUgaW1hZ2UgICAgICAgICovCiAgIFRXX1VJTlQzMiAgWU9mZnNldDsgICAgICAvKiBIb3cgZmFyIGZyb20gdGhlIHRvcCBvZiB0aGUgaW1hZ2UgICAgICAgICAqLwogICBUV19VSU5UMzIgIEJ5dGVzV3JpdHRlbjsgLyogSG93IG1hbnkgYnl0ZXMgd3JpdHRlbiBpbiBNZW1vcnkgICAgICAgICAgKi8KICAgVFdfTUVNT1JZICBNZW1vcnk7ICAgICAgIC8qIE1lbSBzdHJ1Y3QgdXNlZCB0byBwYXNzIGFjdHVhbCBpbWFnZSBkYXRhICovCn0gVFdfSU1BR0VNRU1YRkVSLCBGQVIgKiBwVFdfSU1BR0VNRU1YRkVSOwoKLyogQ2hhbmdlZCBpbiAxLjE6IFF1YW50VGFibGUsIEh1ZmZtYW5EQywgSHVmZm1hbkFDIFRXX01FTVJFRiAtPiBUV19NRU1PUlkgICovCi8qIERBVF9KUEVHQ09NUFJFU1NJT04uIEJhc2VkIG9uIEpQRUcgRHJhZnQgSW50ZXJuYXRpb25hbCBTdGQsIHZlciAxMDkxOC0xLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1VJTlQxNiAgIENvbG9yU3BhY2U7ICAgICAgIC8qIE9uZSBvZiB0aGUgVFdQVF94eHh4IHZhbHVlcyAgICAgICAgICAgICAgICAqLwogICBUV19VSU5UMzIgICBTdWJTYW1wbGluZzsgICAgICAvKiBUd28gd29yZCAiYXJyYXkiIGZvciBzdWJzYW1wbGluZyB2YWx1ZXMgICAgKi8KICAgVFdfVUlOVDE2ICAgTnVtQ29tcG9uZW50czsgICAgLyogTnVtYmVyIG9mIGNvbG9yIGNvbXBvbmVudHMgaW4gaW1hZ2UgICAgICAgICovCiAgIFRXX1VJTlQxNiAgIFJlc3RhcnRGcmVxdWVuY3k7IC8qIEZyZXF1ZW5jeSBvZiByZXN0YXJ0IG1hcmtlciBjb2RlcyBpbiBNRFUncyAqLwogICBUV19VSU5UMTYgICBRdWFudE1hcFs0XTsgICAgICAvKiBNYXBwaW5nIG9mIGNvbXBvbmVudHMgdG8gUXVhbnRUYWJsZXMgICAgICAgKi8KICAgVFdfTUVNT1JZICAgUXVhbnRUYWJsZVs0XTsgICAgLyogUXVhbnRpemF0aW9uIHRhYmxlcyAgICAgICAgICAgICAgICAgICAgICAgICovCiAgIFRXX1VJTlQxNiAgIEh1ZmZtYW5NYXBbNF07ICAgIC8qIE1hcHBpbmcgb2YgY29tcG9uZW50cyB0byBIdWZmbWFuIHRhYmxlcyAgICAqLwogICBUV19NRU1PUlkgICBIdWZmbWFuRENbMl07ICAgICAvKiBEQyBIdWZmbWFuIHRhYmxlcyAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgVFdfTUVNT1JZICAgSHVmZm1hbkFDWzJdOyAgICAgLyogQUMgSHVmZm1hbiB0YWJsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICovCn0gVFdfSlBFR0NPTVBSRVNTSU9OLCBGQVIgKiBwVFdfSlBFR0NPTVBSRVNTSU9OOwoKLyogREFUX1BBTEVUVEU4LiBDb2xvciBwYWxldHRlIHdoZW4gVFdQVF9QQUxFVFRFIHBpeGVscyB4ZmVyJ2QgaW4gbWVtIGJ1Zi4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMTYgICAgTnVtQ29sb3JzOyAgIC8qIE51bWJlciBvZiBjb2xvcnMgaW4gdGhlIGNvbG9yIHRhYmxlLiAgKi8KICAgVFdfVUlOVDE2ICAgIFBhbGV0dGVUeXBlOyAvKiBUV1BBX3h4eHgsIHNwZWNpZmllcyB0eXBlIG9mIHBhbGV0dGUuICovCiAgIFRXX0VMRU1FTlQ4ICBDb2xvcnNbMjU2XTsgLyogQXJyYXkgb2YgcGFsZXR0ZSB2YWx1ZXMgc3RhcnRzIGhlcmUuICAqLwp9IFRXX1BBTEVUVEU4LCBGQVIgKiBwVFdfUEFMRVRURTg7CgovKiBEQVRfUEVORElOR1hGRVJTLiBVc2VkIHdpdGggTVNHX0VORFhGRVIgdG8gaW5kaWNhdGUgYWRkaXRpb25hbCBkYXRhLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1VJTlQxNiBDb3VudDsKICAgdW5pb24gewogICAgICBUV19VSU5UMzIgRU9KOwogICAgICBUV19VSU5UMzIgUmVzZXJ2ZWQ7CiAgIH0gdTsKfSBUV19QRU5ESU5HWEZFUlMsIEZBUiAqcFRXX1BFTkRJTkdYRkVSUzsKCi8qIERBVF9SR0JSRVNQT05TRSAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX0VMRU1FTlQ4ICAgICAgICAgUmVzcG9uc2VbMV07Cn0gVFdfUkdCUkVTUE9OU0UsIEZBUiAqIHBUV19SR0JSRVNQT05TRTsKCi8qIERBVF9TRVRVUEZJTEVYRkVSLiBTZXRzIHVwIERTIHRvIGFwcGxpY2F0aW9uIGRhdGEgdHJhbnNmZXIgdmlhIGEgZmlsZS4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19TVFIyNTUgRmlsZU5hbWU7CiAgIFRXX1VJTlQxNiBGb3JtYXQ7ICAgLyogQW55IFRXRkZfIGNvbnN0YW50ICovCiAgIFRXX0lOVDE2ICBWUmVmTnVtOyAgLyogVXNlZCBmb3IgTWFjIG9ubHkgICovCn0gVFdfU0VUVVBGSUxFWEZFUiwgRkFSICogcFRXX1NFVFVQRklMRVhGRVI7CgovKiBEQVRfU0VUVVBNRU1YRkVSLiBTZXRzIHVwIERTIHRvIGFwcGxpY2F0aW9uIGRhdGEgdHJhbnNmZXIgdmlhIGEgbWVtb3J5IGJ1ZmZlci4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19VSU5UMzIgTWluQnVmU2l6ZTsKICAgVFdfVUlOVDMyIE1heEJ1ZlNpemU7CiAgIFRXX1VJTlQzMiBQcmVmZXJyZWQ7Cn0gVFdfU0VUVVBNRU1YRkVSLCBGQVIgKiBwVFdfU0VUVVBNRU1YRkVSOwoKLyogREFUX1NUQVRVUy4gQXBwbGljYXRpb24gZ2V0cyBkZXRhaWxlZCBzdGF0dXMgaW5mbyBmcm9tIGEgZGF0YSBzb3VyY2Ugd2l0aCB0aGlzLiAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1VJTlQxNiAgQ29uZGl0aW9uQ29kZTsgLyogQW55IFRXQ0NfIGNvbnN0YW50ICAgICAqLwogICBUV19VSU5UMTYgIFJlc2VydmVkOyAgICAgIC8qIEZ1dHVyZSBleHBhbnNpb24gc3BhY2UgKi8KfSBUV19TVEFUVVMsIEZBUiAqIHBUV19TVEFUVVM7CgovKiBEQVRfVVNFUklOVEVSRkFDRS4gQ29vcmRpbmF0ZXMgVUkgYmV0d2VlbiBhcHBsaWNhdGlvbiBhbmQgZGF0YSBzb3VyY2UuICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfQk9PTCAgICBTaG93VUk7ICAvKiBUUlVFIGlmIERTIHNob3VsZCBicmluZyB1cCBpdHMgVUkgICAgICAgICAgICovCiAgIFRXX0JPT0wgICAgTW9kYWxVSTsgLyogRm9yIE1hYyBvbmx5IC0gdHJ1ZSBpZiB0aGUgRFMncyBVSSBpcyBtb2RhbCAqLwogICBUV19IQU5ETEUgIGhQYXJlbnQ7IC8qIEZvciB3aW5kb3dzIG9ubHkgLSBBcHBsaWNhdGlvbiB3aW5kb3cgaGFuZGxlICAgICAgICAqLwp9IFRXX1VTRVJJTlRFUkZBQ0UsIEZBUiAqIHBUV19VU0VSSU5URVJGQUNFOwoKLyogU0RIIC0gMDMvMjEvOTUgLSBUV1VOSyAqLwovKiBEQVRfVFdVTktJREVOVElUWS4gUHJvdmlkZXMgRFMgaWRlbnRpdHkgYW5kICdvdGhlcicgaW5mb3JtYXRpb24gbmVjZXNzYXJ5ICovCi8qICAgICAgICAgICAgICAgICAgICBhY3Jvc3MgdGh1bmsgbGluay4gKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19JREVOVElUWSBpZGVudGl0eTsgICAgICAgIC8qIElkZW50aXR5IG9mIGRhdGEgc291cmNlLiAgICAgICAgICAgICAgICAgKi8KICAgVFdfU1RSMjU1ICAgZHNQYXRoOyAgICAgICAgICAvKiBGdWxsIHBhdGggYW5kIGZpbGUgbmFtZSBvZiBkYXRhIHNvdXJjZS4gICovCn0gVFdfVFdVTktJREVOVElUWSwgRkFSICogcFRXX1RXVU5LSURFTlRJVFk7CgovKiBTREggLSAwMy8yMS85NSAtIFRXVU5LICovCi8qIFByb3ZpZGVzIERTX0VudHJ5IHBhcmFtZXRlcnMgb3ZlciB0aHVuayBsaW5rLiAqLwp0eXBlZGVmIHN0cnVjdAp7CiAgICBUV19JTlQ4ICAgICBkZXN0RmxhZzsgICAgICAgLyogVFJVRSBpZiBkZXN0IGlzIG5vdCBOVUxMICAgICAgICAgICAgICAgICAqLwogICAgVFdfSURFTlRJVFkgZGVzdDsgICAgICAgICAgIC8qIElkZW50aXR5IG9mIGRhdGEgc291cmNlIChpZiB1c2VkKSAgICAgICAgKi8KICAgIFRXX0lOVDMyICAgIGRhdGFHcm91cDsgICAgICAvKiBEU01fRW50cnkgZGF0YUdyb3VwIHBhcmFtZXRlciAgICAgICAgICAgICovCiAgICBUV19JTlQxNiAgICBkYXRhQXJnVHlwZTsgICAgLyogRFNNX0VudHJ5IGRhdGFBcmdUeXBlIHBhcmFtZXRlciAgICAgICAgICAqLwogICAgVFdfSU5UMTYgICAgbWVzc2FnZTsgICAgICAgIC8qIERTTV9FbnRyeSBtZXNzYWdlIHBhcmFtZXRlciAgICAgICAgICAgICAgKi8KICAgIFRXX0lOVDMyICAgIHBEYXRhU2l6ZTsgICAgICAvKiBTaXplIG9mIHBEYXRhICgwIGlmIE5VTEwpICAgICAgICAgICAgICAgICovCiAgICAvKiAgVFdfTUVNUkVGICAgcERhdGE7ICovICAgLyogQmFzZWQgb24gaW1wbGVtZW50YXRpb24gc3BlY2lmaWNzLCBhICAgICAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBEYXRhIHBhcmFtZXRlciBtYWtlcyBubyBzZW5zZSBpbiB0aGlzICAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdHJ1Y3R1cmUsIGJ1dCBkYXRhIChpZiBwcm92aWRlZCkgd2lsbCBiZSovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYXBwZW5kZWQgaW4gdGhlIGRhdGEgYmxvY2suICAgICAgICAgICAgICAqLwogICB9IFRXX1RXVU5LRFNFTlRSWVBBUkFNUywgRkFSICogcFRXX1RXVU5LRFNFTlRSWVBBUkFNUzsKCi8qIFNESCAtIDAzLzIxLzk1IC0gVFdVTksgKi8KLyogUHJvdmlkZXMgRFNfRW50cnkgcmVzdWx0cyBvdmVyIHRodW5rIGxpbmsuICovCnR5cGVkZWYgc3RydWN0CnsKICAgIFRXX1VJTlQxNiAgIHJldHVybkNvZGU7ICAgICAvKiBUaHVua2VyIERzRW50cnkgcmV0dXJuIGNvZGUuICAgICAgICAgICAgICovCiAgICBUV19VSU5UMTYgICBjb25kaXRpb25Db2RlOyAgLyogVGh1bmtlciBEc0VudHJ5IGNvbmRpdGlvbiBjb2RlLiAgICAgICAgICAqLwogICAgVFdfSU5UMzIgICAgcERhdGFTaXplOyAgICAgIC8qIFNpemUgb2YgcERhdGEgKDAgaWYgTlVMTCkgICAgICAgICAgICAgICAgKi8KICAgIC8qICBUV19NRU1SRUYgICBwRGF0YTsgKi8gICAvKiBCYXNlZCBvbiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpY3MsIGEgICAgICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcERhdGEgcGFyYW1ldGVyIG1ha2VzIG5vIHNlbnNlIGluIHRoaXMgICAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0cnVjdHVyZSwgYnV0IGRhdGEgKGlmIHByb3ZpZGVkKSB3aWxsIGJlKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhcHBlbmRlZCBpbiB0aGUgZGF0YSBibG9jay4gICAgICAgICAgICAgICovCn0gVFdfVFdVTktEU0VOVFJZUkVUVVJOLCBGQVIgKiBwVFdfVFdVTktEU0VOVFJZUkVUVVJOOwoKLyogV0pEIC0gOTUwODE4ICovCi8qIEFkZGVkIGZvciAxLjYgU3BlY2lmaWNhdGlvbiAqLwovKiBUV0FJTiAxLjYgQ0FQX1NVUFBPUlRFRENBUFNFWFQgc3RydWN0dXJlICovCnR5cGVkZWYgc3RydWN0CnsKICAgIFRXX1VJTlQxNiBDYXA7ICAgLyogV2hpY2ggQ0FQL0lDQVAgaW5mbyBpcyByZWxldmFudCB0byAqLwogICAgVFdfVUlOVDE2IFByb3BlcnRpZXM7ICAvKiBNZXNzYWdlcyB0aGlzIENBUC9JQ0FQIHN1cHBvcnRzICovCn0gVFdfQ0FQRVhULCBGQVIgKiBwVFdfQ0FQRVhUOwoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlwKCiAgVmVyc2lvbiAxLjc6ICAgICAgQWRkZWQgRm9sbG93aW5nIGRhdGEgc3RydWN0dXJlIGZvciBEb2N1bWVudCBJbWFnaW5nCiAgSnVseSAxOTk3ICAgICAgICAgRW5oYW5jZW1lbnQuCiAgS0hMICAgICAgICAgICAgICAgVFdfQ1VTVE9NRFNEQVRBIC0tICBGb3IgU2F2aW5nIGFuZCBSZXN0b3JpbmcgU291cmNlJ3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLgogICAgICAgICAgICAgICAgICAgIFRXX0lORk8gICAgICAgICAtLSAgRWFjaCBhdHRyaWJ1dGUgZm9yIGV4dGVuZGVkIGltYWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbi4KICAgICAgICAgICAgICAgICAgICBUV19FWFRJTUFHRUlORk8gLS0gIEV4dGVuZGVkIGltYWdlIGluZm9ybWF0aW9uIHN0cnVjdHVyZS4KClwqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBUV19VSU5UMzIgIEluZm9MZW5ndGg7ICAgICAvKiBMZW5ndGggb2YgSW5mb3JtYXRpb24gaW4gYnl0ZXMuICAqLwogICAgVFdfSEFORExFICBoRGF0YTsgICAgICAgICAgLyogUGxhY2UgaG9sZGVyIGZvciBkYXRhLCBEUyBBbGxvY2F0ZXMgKi8KfVRXX0NVU1RPTURTREFUQSwgRkFSICpwVFdfQ1VTVE9NRFNEQVRBOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgVFdfVUlOVDE2ICAgSW5mb0lEOwogICAgVFdfVUlOVDE2ICAgSXRlbVR5cGU7CiAgICBUV19VSU5UMTYgICBOdW1JdGVtczsKICAgIFRXX1VJTlQxNiAgIENvbmRDb2RlOwogICAgVFdfVUlOVDMyICAgSXRlbTsKfVRXX0lORk8sIEZBUiogcFRXX0lORk87Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBUV19VSU5UMzIgICBOdW1JbmZvczsKICAgIFRXX0lORk8gICAgIEluZm9bMV07Cn1UV19FWFRJTUFHRUlORk8sIEZBUiogcFRXX0VYVElNQUdFSU5GTzsKCi8qIEFkZGVkIDEuOCAqLwoKLyogREFUX0FVRElPSU5GTywgaW5mb3JtYXRpb24gYWJvdXQgYXVkaW8gZGF0YSAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1NUUjI1NSAgTmFtZTsgICAgICAgLyogbmFtZSBvZiBhdWRpbyBkYXRhICovCiAgIFRXX1VJTlQzMiAgUmVzZXJ2ZWQ7ICAgLyogcmVzZXJ2ZWQgc3BhY2UgKi8KfSBUV19BVURJT0lORk8sIEZBUiAqIHBUV19BVURJT0lORk87CgovKiBEQVRfREVWSUNFRVZFTlQsIGluZm9ybWF0aW9uIGFib3V0IGV2ZW50cyAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIFRXX1VJTlQzMiAgRXZlbnQ7ICAgICAgICAgICAgICAgICAgLyogT25lIG9mIHRoZSBUV0RFX3h4eHggdmFsdWVzLiAqLwogICBUV19TVFIyNTUgIERldmljZU5hbWU7ICAgICAgICAgICAgIC8qIFRoZSBuYW1lIG9mIHRoZSBkZXZpY2UgdGhhdCBnZW5lcmF0ZWQgdGhlIGV2ZW50ICovCiAgIFRXX1VJTlQzMiAgQmF0dGVyeU1pbnV0ZXM7ICAgICAgICAgLyogQmF0dGVyeSBNaW51dGVzIFJlbWFpbmluZyAgICAqLwogICBUV19JTlQxNiAgIEJhdHRlcnlQZXJjZW50YWdlOyAgICAgIC8qIEJhdHRlcnkgUGVyY2VudGFnZSBSZW1haW5pbmcgKi8KICAgVFdfSU5UMzIgICBQb3dlclN1cHBseTsgICAgICAgICAgICAvKiBQb3dlciBTdXBwbHkgICAgICAgICAgICAgICAgICovCiAgIFRXX0ZJWDMyICAgWFJlc29sdXRpb247ICAgICAgICAgICAgLyogUmVzb2x1dGlvbiAgICAgICAgICAgICAgICAgICAqLwogICBUV19GSVgzMiAgIFlSZXNvbHV0aW9uOyAgICAgICAgICAgIC8qIFJlc29sdXRpb24gICAgICAgICAgICAgICAgICAgKi8KICAgVFdfVUlOVDMyICBGbGFzaFVzZWQyOyAgICAgICAgICAgICAvKiBGbGFzaCBVc2VkMiAgICAgICAgICAgICAgICAgICovCiAgIFRXX1VJTlQzMiAgQXV0b21hdGljQ2FwdHVyZTsgICAgICAgLyogQXV0b21hdGljIENhcHR1cmUgICAgICAgICAgICAqLwogICBUV19VSU5UMzIgIFRpbWVCZWZvcmVGaXJzdENhcHR1cmU7IC8qIEF1dG9tYXRpYyBDYXB0dXJlICAgICAgICAgICAgKi8KICAgVFdfVUlOVDMyICBUaW1lQmV0d2VlbkNhcHR1cmVzOyAgICAvKiBBdXRvbWF0aWMgQ2FwdHVyZSAgICAgICAgICAgICovCn0gVFdfREVWSUNFRVZFTlQsIEZBUiAqIHBUV19ERVZJQ0VFVkVOVDsKCi8qIERBVF9GSUxFU1lTVEVNLCBpbmZvcm1hdGlvbiBhYm91dCBUV0FJTiBmaWxlIHN5c3RlbSAqLwp0eXBlZGVmIHN0cnVjdCB7CiAgIC8qIERHX0NPTlRST0wgLyBEQVRfRklMRVNZU1RFTSAvIE1TR194eHh4IGZpZWxkcyAgICAgKi8KICAgVFdfU1RSMjU1ICBJbnB1dE5hbWU7IC8qIFRoZSBuYW1lIG9mIHRoZSBpbnB1dCBvciBzb3VyY2UgZmlsZSAqLwogICBUV19TVFIyNTUgIE91dHB1dE5hbWU7IC8qIFRoZSByZXN1bHQgb2YgYW4gb3BlcmF0aW9uIG9yIHRoZSBuYW1lIG9mIGEgZGVzdGluYXRpb24gZmlsZSAqLwogICBUV19NRU1SRUYgIENvbnRleHQ7IC8qIFNvdXJjZSBzcGVjaWZpYyBkYXRhIHVzZWQgdG8gcmVtZW1iZXIgc3RhdGUgaW5mb3JtYXRpb24gKi8KICAgLyogREdfQ09OVFJPTCAvIERBVF9GSUxFU1lTVEVNIC8gTVNHX0RFTEVURSBmaWVsZCAgICAqLwogICBpbnQgICAgICAgIFJlY3Vyc2l2ZTsgLyogcmVjdXJzaXZlbHkgZGVsZXRlIGFsbCBzdWItZGlyZWN0b3JpZXMgKi8KICAgLyogREdfQ09OVFJPTCAvIERBVF9GSUxFU1lTVEVNIC8gTVNHX0dFVElORk8gZmllbGRzICAqLwogICBUV19JTlQzMiAgIEZpbGVUeXBlOyAvKiBPbmUgb2YgdGhlIFRXRlRfeHh4eCB2YWx1ZXMgKi8KICAgVFdfVUlOVDMyICBTaXplOyAvKiBTaXplIG9mIGN1cnJlbnQgRmlsZVR5cGUgKi8KICAgVFdfU1RSMzIgICBDcmVhdGVUaW1lRGF0ZTsgLyogY3JlYXRpb24gZGF0ZSBvZiB0aGUgZmlsZSAqLwogICBUV19TVFIzMiAgIE1vZGlmaWVkVGltZURhdGU7IC8qIGxhc3QgZGF0ZSB0aGUgZmlsZSB3YXMgbW9kaWZpZWQgKi8KICAgVFdfVUlOVDMyICBGcmVlU3BhY2U7IC8qIGJ5dGVzIG9mIGZyZWUgc3BhY2Ugb24gdGhlIGN1cnJlbnQgZGV2aWNlICovCiAgIFRXX0lOVDMyICAgTmV3SW1hZ2VTaXplOyAvKiBlc3RpbWF0ZSBvZiB0aGUgYW1vdW50IG9mIHNwYWNlIGEgbmV3IGltYWdlIHdvdWxkIHRha2UgdXAgKi8KICAgVFdfVUlOVDMyICBOdW1iZXJPZkZpbGVzOyAvKiBudW1iZXIgb2YgZmlsZXMsIGRlcGVuZHMgb24gRmlsZVR5cGUgKi8KICAgVFdfVUlOVDMyICBOdW1iZXJPZlNuaXBwZXRzOyAvKiovCiAgIGNoYXIgICAgICAgUmVzZXJ2ZWRbNTEyXTsgLyoqLwp9IFRXX0ZJTEVTWVNURU0sIEZBUiAqIHBUV19GSUxFU1lTVEVNOwoKLyogREFUX1BBU1NUSFJVLCBkZXZpY2UgZGVwZW5kZW50IGRhdGEgdG8gcGFzcyB0aHJvdWdoIERhdGEgU291cmNlICovCnR5cGVkZWYgc3RydWN0IHsKICAgVFdfTUVNUkVGICBwQ29tbWFuZDsgICAgICAgIC8qIFBvaW50ZXIgdG8gQ29tbWFuZCBidWZmZXIgKi8KICAgVFdfVUlOVDMyICBDb21tYW5kQnl0ZXM7ICAgIC8qIE51bWJlciBvZiBieXRlcyBpbiBDb21tYW5kIGJ1ZmZlciAqLwogICBUV19JTlQzMiAgIERpcmVjdGlvbjsgICAgICAgLyogT25lIG9mIHRoZSBUV0RSX3h4eHggdmFsdWVzLiAgRGVmaW5lcyB0aGUgZGlyZWN0aW9uIG9mIGRhdGEgZmxvdyAqLwogICBUV19NRU1SRUYgIHBEYXRhOyAgICAgICAgICAgLyogUG9pbnRlciB0byBEYXRhIGJ1ZmZlciAqLwogICBUV19VSU5UMzIgIERhdGFCeXRlczsgICAgICAgLyogTnVtYmVyIG9mIGJ5dGVzIGluIERhdGEgYnVmZmVyICovCiAgIFRXX1VJTlQzMiAgRGF0YUJ5dGVzWGZlcmVkOyAvKiBOdW1iZXIgb2YgYnl0ZXMgc3VjY2Vzc2Z1bGx5IHRyYW5zZmVycmVkICovCn0gVFdfUEFTU1RIUlUsIEZBUiAqIHBUV19QQVNTVEhSVTsKCi8qIERBVF9TRVRVUEFVRElPRklMRVhGRVIsIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIHNldHVwIGFuIGF1ZGlvIGZpbGUgdHJhbnNmZXIgKi8KdHlwZWRlZiBzdHJ1Y3QgewogICBUV19TVFIyNTUgIEZpbGVOYW1lOyAvKiBmdWxsIHBhdGggdGFyZ2V0IGZpbGUgKi8KICAgVFdfVUlOVDE2ICBGb3JtYXQ7ICAgLyogb25lIG9mIFRXQUZfeHh4eCAqLwogICBUV19JTlQxNiBWUmVmTnVtOwp9IFRXX1NFVFVQQVVESU9GSUxFWEZFUiwgRkFSICogcFRXX1NFVFVQQVVESU9GSUxFWEZFUjsKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIEdlbmVyaWMgQ29uc3RhbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBUV09OX0FSUkFZICAgICAgICAgICAzIC8qIGluZGljYXRlcyBUV19BUlJBWSBjb250YWluZXIgICAgICAgKi8KI2RlZmluZSBUV09OX0VOVU1FUkFUSU9OICAgICA0IC8qIGluZGljYXRlcyBUV19FTlVNRVJBVElPTiBjb250YWluZXIgKi8KI2RlZmluZSBUV09OX09ORVZBTFVFICAgICAgICA1IC8qIGluZGljYXRlcyBUV19PTkVWQUxVRSBjb250YWluZXIgICAgKi8KI2RlZmluZSBUV09OX1JBTkdFICAgICAgICAgICA2IC8qIGluZGljYXRlcyBUV19SQU5HRSBjb250YWluZXIgICAgICAgKi8KCiNkZWZpbmUgVFdPTl9JQ09OSUQgICAgICAgICAgOTYyIC8qIHJlcyBJZCBvZiBpY29uIHVzZWQgaW4gVVNFUlNFTEVDVCBsYm94ICovCiNkZWZpbmUgVFdPTl9EU01JRCAgICAgICAgICAgNDYxIC8qIHJlcyBJZCBvZiB0aGUgRFNNIHZlcnNpb24gbnVtIHJlc291cmNlICovCiNkZWZpbmUgVFdPTl9EU01DT0RFSUQgICAgICAgNjMgIC8qIHJlcyBJZCBvZiB0aGUgTWFjIFNNIENvZGUgcmVzb3VyY2UgICAgICovCgojZGVmaW5lIFRXT05fRE9OVENBUkU4ICAgICAgIDB4ZmYKI2RlZmluZSBUV09OX0RPTlRDQVJFMTYgICAgICAweGZmZmYKI2RlZmluZSBUV09OX0RPTlRDQVJFMzIgICAgICAweGZmZmZmZmZmCgovKiBGbGFncyB1c2VkIGluIFRXX01FTU9SWSBzdHJ1Y3R1cmUuICovCiNkZWZpbmUgVFdNRl9BUFBPV05TICAgICAweDEKI2RlZmluZSBUV01GX0RTTU9XTlMgICAgIDB4MgojZGVmaW5lIFRXTUZfRFNPV05TICAgICAgMHg0CiNkZWZpbmUgVFdNRl9QT0lOVEVSICAgICAweDgKI2RlZmluZSBUV01GX0hBTkRMRSAgICAgIDB4MTAKCi8qIFBhbGV0dGUgdHlwZXMgZm9yIFRXX1BBTEVUVEU4ICovCiNkZWZpbmUgVFdQQV9SR0IgICAgICAgICAwCiNkZWZpbmUgVFdQQV9HUkFZICAgICAgICAxCiNkZWZpbmUgVFdQQV9DTVkgICAgICAgICAyCgovKiBUaGVyZSBhcmUgZm91ciBjb250YWluZXJzIHVzZWQgZm9yIGNhcGFiaWxpdGllcyBuZWdvdGlhdGlvbjoKICogICAgVFdPTl9PTkVWQUxVRSwgVFdPTl9SQU5HRSwgVFdPTl9FTlVNRVJBVElPTiwgVFdPTl9BUlJBWQogKiBJbiBlYWNoIGNvbnRhaW5lciBzdHJ1Y3R1cmUgSXRlbVR5cGUgY2FuIGJlIFRXVFlfSU5UOCwgVFdUWV9JTlQxNiwgZXRjLgogKiBUaGUga2luZCBvZiBkYXRhIHN0b3JlZCBpbiB0aGUgY29udGFpbmVyIGNhbiBiZSBkZXRlcm1pbmVkIGJ5IGRvaW5nCiAqIERDSXRlbVNpemVbSXRlbVR5cGVdIHdoZXJlIHRoZSBmb2xsb3dpbmcgaXMgZGVmaW5lZCBpbiBUV0FJTiBnbHVlIGNvZGU6CiAqICAgICAgICAgIERDSXRlbVNpemVbXT0geyBzaXplb2YoVFdfSU5UOCksCiAqICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoVFdfSU5UMTYpLAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgZXRjLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFRXX1VJTlQzMikgfTsKICoKICovCgojZGVmaW5lIFRXVFlfSU5UOCAgICAgICAgMHgwMDAwICAgIC8qIE1lYW5zIEl0ZW0gaXMgYSBUV19JTlQ4ICAgKi8KI2RlZmluZSBUV1RZX0lOVDE2ICAgICAgIDB4MDAwMSAgICAvKiBNZWFucyBJdGVtIGlzIGEgVFdfSU5UMTYgICovCiNkZWZpbmUgVFdUWV9JTlQzMiAgICAgICAweDAwMDIgICAgLyogTWVhbnMgSXRlbSBpcyBhIFRXX0lOVDMyICAqLwoKI2RlZmluZSBUV1RZX1VJTlQ4ICAgICAgIDB4MDAwMyAgICAvKiBNZWFucyBJdGVtIGlzIGEgVFdfVUlOVDggICovCiNkZWZpbmUgVFdUWV9VSU5UMTYgICAgICAweDAwMDQgICAgLyogTWVhbnMgSXRlbSBpcyBhIFRXX1VJTlQxNiAqLwojZGVmaW5lIFRXVFlfVUlOVDMyICAgICAgMHgwMDA1ICAgIC8qIE1lYW5zIEl0ZW0gaXMgYSBUV19VSU5UMzIgKi8KCiNkZWZpbmUgVFdUWV9CT09MICAgICAgICAweDAwMDYgICAgLyogTWVhbnMgSXRlbSBpcyBhIFRXX0JPT0wgICAqLwoKI2RlZmluZSBUV1RZX0ZJWDMyICAgICAgIDB4MDAwNyAgICAvKiBNZWFucyBJdGVtIGlzIGEgVFdfRklYMzIgICovCgojZGVmaW5lIFRXVFlfRlJBTUUgICAgICAgMHgwMDA4ICAgIC8qIE1lYW5zIEl0ZW0gaXMgYSBUV19GUkFNRSAgKi8KCiNkZWZpbmUgVFdUWV9TVFIzMiAgICAgICAweDAwMDkgICAgLyogTWVhbnMgSXRlbSBpcyBhIFRXX1NUUjMyICAqLwojZGVmaW5lIFRXVFlfU1RSNjQgICAgICAgMHgwMDBhICAgIC8qIE1lYW5zIEl0ZW0gaXMgYSBUV19TVFI2NCAgKi8KI2RlZmluZSBUV1RZX1NUUjEyOCAgICAgIDB4MDAwYiAgICAvKiBNZWFucyBJdGVtIGlzIGEgVFdfU1RSMTI4ICovCiNkZWZpbmUgVFdUWV9TVFIyNTUgICAgICAweDAwMGMgICAgLyogTWVhbnMgSXRlbSBpcyBhIFRXX1NUUjI1NSAqLwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ2FwYWJpbGl0eSBDb25zdGFudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgovKiBJQ0FQX0JJVE9SREVSIHZhbHVlcyAoQk9fIG1lYW5zIEJpdCBPcmRlcikgKi8KI2RlZmluZSBUV0JPX0xTQkZJUlNUICAgIDAKI2RlZmluZSBUV0JPX01TQkZJUlNUICAgIDEKCi8qIElDQVBfQ09NUFJFU1NJT04gdmFsdWVzIChDUF8gbWVhbnMgQ29tUHJlc3Npb24gKSAqLwojZGVmaW5lIFRXQ1BfTk9ORSAgICAgICAgMAojZGVmaW5lIFRXQ1BfUEFDS0JJVFMgICAgMQojZGVmaW5lIFRXQ1BfR1JPVVAzMUQgICAgMiAvKiBGb2xsb3dzIENDSVRUIHNwZWMgKG5vIEVuZCBPZiBMaW5lKSAgICAgICAgICAqLwojZGVmaW5lIFRXQ1BfR1JPVVAzMURFT0wgMyAvKiBGb2xsb3dzIENDSVRUIHNwZWMgKGhhcyBFbmQgT2YgTGluZSkgICAgICAgICAqLwojZGVmaW5lIFRXQ1BfR1JPVVAzMkQgICAgNCAvKiBGb2xsb3dzIENDSVRUIHNwZWMgKHVzZSBjYXAgZm9yIEsgRmFjdG9yKSAgICAqLwojZGVmaW5lIFRXQ1BfR1JPVVA0ICAgICAgNSAvKiBGb2xsb3dzIENDSVRUIHNwZWMgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXQ1BfSlBFRyAgICAgICAgNiAvKiBVc2UgY2FwYWJpbGl0eSBmb3IgbW9yZSBpbmZvICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXQ1BfTFpXICAgICAgICAgNyAvKiBNdXN0IGxpY2Vuc2UgZnJvbSBVbmlzeXMgYW5kIElCTSB0byB1c2UgICAgICAqLwojZGVmaW5lIFRXQ1BfSkJJRyAgICAgICAgOCAvKiBGb3IgQml0b25hbCBpbWFnZXMgIC0tIEFkZGVkIDEuNyBLSEwgICAgICAgICAqLwovKiBBZGRlZCAxLjggKi8KI2RlZmluZSBUV0NQX1BORyAgICAgICAgIDkKI2RlZmluZSBUV0NQX1JMRTQgICAgICAgIDEwCiNkZWZpbmUgVFdDUF9STEU4ICAgICAgICAxMQojZGVmaW5lIFRXQ1BfQklURklFTERTICAgMTIKCgovKiBJQ0FQX0lNQUdFRklMRUZPUk1BVCB2YWx1ZXMgKEZGX21lYW5zIEZpbGUgRm9ybWF0KSAgICovCiNkZWZpbmUgVFdGRl9USUZGICAgICAgICAwICAgIC8qIFRhZ2dlZCBJbWFnZSBGaWxlIEZvcm1hdCAgICAgKi8KI2RlZmluZSBUV0ZGX1BJQ1QgICAgICAgIDEgICAgLyogTWFjaW50b3NoIFBJQ1QgICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXRkZfQk1QICAgICAgICAgMiAgICAvKiBXaW5kb3dzIEJpdG1hcCAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdGRl9YQk0gICAgICAgICAzICAgIC8qIFgtV2luZG93cyBCaXRtYXAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0ZGX0pGSUYgICAgICAgIDQgICAgLyogSlBFRyBGaWxlIEludGVyY2hhbmdlIEZvcm1hdCAqLwojZGVmaW5lIFRXRkZfRlBYICAgICAgICAgNSAgICAvKiBGbGFzaCBQaXggICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdGRl9USUZGTVVMVEkgICA2ICAgIC8qIE11bHRpLXBhZ2UgdGlmZiBmaWxlICAgICAgICAgKi8KI2RlZmluZSBUV0ZGX1BORyAgICAgICAgIDcKI2RlZmluZSBUV0ZGX1NQSUZGICAgICAgIDgKI2RlZmluZSBUV0ZGX0VYSUYgICAgICAgIDkKCgovKiBJQ0FQX0ZJTFRFUiB2YWx1ZXMgKEZUXyBtZWFucyBGaWx0ZXIgVHlwZSkgKi8KI2RlZmluZSBUV0ZUX1JFRCAgICAgICAgIDAKI2RlZmluZSBUV0ZUX0dSRUVOICAgICAgIDEKI2RlZmluZSBUV0ZUX0JMVUUgICAgICAgIDIKI2RlZmluZSBUV0ZUX05PTkUgICAgICAgIDMKI2RlZmluZSBUV0ZUX1dISVRFICAgICAgIDQKI2RlZmluZSBUV0ZUX0NZQU4gICAgICAgIDUKI2RlZmluZSBUV0ZUX01BR0VOVEEgICAgIDYKI2RlZmluZSBUV0ZUX1lFTExPVyAgICAgIDcKI2RlZmluZSBUV0ZUX0JMQUNLICAgICAgIDgKCi8qIElDQVBfTElHSFRQQVRIIHZhbHVlcyAoTFBfIG1lYW5zIExpZ2h0IFBhdGgpICovCiNkZWZpbmUgVFdMUF9SRUZMRUNUSVZFICAgMAojZGVmaW5lIFRXTFBfVFJBTlNNSVNTSVZFIDEKCi8qIElDQVBfTElHSFRTT1VSQ0UgdmFsdWVzIChMU18gbWVhbnMgTGlnaHQgU291cmNlKSAqLwojZGVmaW5lIFRXTFNfUkVEICAgICAgICAgMAojZGVmaW5lIFRXTFNfR1JFRU4gICAgICAgMQojZGVmaW5lIFRXTFNfQkxVRSAgICAgICAgMgojZGVmaW5lIFRXTFNfTk9ORSAgICAgICAgMwojZGVmaW5lIFRXTFNfV0hJVEUgICAgICAgNAojZGVmaW5lIFRXTFNfVVYgICAgICAgICAgNQojZGVmaW5lIFRXTFNfSVIgICAgICAgICAgNgoKLyogSUNBUF9PUklFTlRBVElPTiB2YWx1ZXMgKE9SXyBtZWFucyBPUmllbnRhdGlvbikgKi8KI2RlZmluZSBUV09SX1JPVDAgICAgICAgIDAKI2RlZmluZSBUV09SX1JPVDkwICAgICAgIDEKI2RlZmluZSBUV09SX1JPVDE4MCAgICAgIDIKI2RlZmluZSBUV09SX1JPVDI3MCAgICAgIDMKI2RlZmluZSBUV09SX1BPUlRSQUlUICAgIFRXT1JfUk9UMAojZGVmaW5lIFRXT1JfTEFORFNDQVBFICAgVFdPUl9ST1QyNzAKCi8qIElDQVBfUExBTkFSQ0hVTktZIHZhbHVlcyAoUENfIG1lYW5zIFBsYW5hci9DaHVua3kgKSAqLwojZGVmaW5lIFRXUENfQ0hVTktZICAgICAgMAojZGVmaW5lIFRXUENfUExBTkFSICAgICAgMQoKLyogSUNBUF9QSVhFTEZMQVZPUiB2YWx1ZXMgKFBGXyBtZWFucyBQaXhlbCBGbGF2b3IpICovCiNkZWZpbmUgVFdQRl9DSE9DT0xBVEUgICAwICAvKiB6ZXJvIHBpeGVsIHJlcHJlc2VudHMgZGFya2VzdCBzaGFkZSAgKi8KI2RlZmluZSBUV1BGX1ZBTklMTEEgICAgIDEgIC8qIHplcm8gcGl4ZWwgcmVwcmVzZW50cyBsaWdodGVzdCBzaGFkZSAqLwoKLyogSUNBUF9QSVhFTFRZUEUgdmFsdWVzIChQVF8gbWVhbnMgUGl4ZWwgVHlwZSkgKi8KI2RlZmluZSBUV1BUX0JXICAgICAgICAgIDAgLyogQmxhY2sgYW5kIFdoaXRlICovCiNkZWZpbmUgVFdQVF9HUkFZICAgICAgICAxCiNkZWZpbmUgVFdQVF9SR0IgICAgICAgICAyCiNkZWZpbmUgVFdQVF9QQUxFVFRFICAgICAzCiNkZWZpbmUgVFdQVF9DTVkgICAgICAgICA0CiNkZWZpbmUgVFdQVF9DTVlLICAgICAgICA1CiNkZWZpbmUgVFdQVF9ZVVYgICAgICAgICA2CiNkZWZpbmUgVFdQVF9ZVVZLICAgICAgICA3CiNkZWZpbmUgVFdQVF9DSUVYWVogICAgICA4CgovKiBJQ0FQX1NVUFBPUlRFRFNJWkVTIHZhbHVlcyAoU1NfIG1lYW5zIFN1cHBvcnRlZCBTaXplcykgKi8KI2RlZmluZSBUV1NTX05PTkUgICAgICAgIDAKI2RlZmluZSBUV1NTX0E0TEVUVEVSICAgIDEKI2RlZmluZSBUV1NTX0I1TEVUVEVSICAgIDIKI2RlZmluZSBUV1NTX1VTTEVUVEVSICAgIDMKI2RlZmluZSBUV1NTX1VTTEVHQUwgICAgIDQKLyogQWRkZWQgMS41ICovCiNkZWZpbmUgVFdTU19BNSAgICAgICAgICA1CiNkZWZpbmUgVFdTU19CNCAgICAgICAgICA2CiNkZWZpbmUgVFdTU19CNiAgICAgICAgICA3Ci8qI2RlZmluZSBUV1NTX0IgICAgICAgICAgOCAqLwovKiBBZGRlZCAxLjcgKi8KI2RlZmluZSBUV1NTX1VTTEVER0VSICAgIDkKI2RlZmluZSBUV1NTX1VTRVhFQ1VUSVZFIDEwCiNkZWZpbmUgVFdTU19BMyAgICAgICAgICAxMQojZGVmaW5lIFRXU1NfQjMgICAgICAgICAgMTIKI2RlZmluZSBUV1NTX0E2ICAgICAgICAgIDEzCiNkZWZpbmUgVFdTU19DNCAgICAgICAgICAxNAojZGVmaW5lIFRXU1NfQzUgICAgICAgICAgMTUKI2RlZmluZSBUV1NTX0M2ICAgICAgICAgIDE2Ci8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIFRXU1NfNEEwICAgICAgICAgIDE3CiNkZWZpbmUgVFdTU18yQTAgICAgICAgICAgMTgKI2RlZmluZSBUV1NTX0EwICAgICAgICAgICAxOQojZGVmaW5lIFRXU1NfQTEgICAgICAgICAgIDIwCiNkZWZpbmUgVFdTU19BMiAgICAgICAgICAgMjEKI2RlZmluZSBUV1NTX0E0ICAgICAgICAgICBUV1NTX0E0TEVUVEVSCiNkZWZpbmUgVFdTU19BNyAgICAgICAgICAgMjIKI2RlZmluZSBUV1NTX0E4ICAgICAgICAgICAyMwojZGVmaW5lIFRXU1NfQTkgICAgICAgICAgIDI0CiNkZWZpbmUgVFdTU19BMTAgICAgICAgICAgMjUKI2RlZmluZSBUV1NTX0lTT0IwICAgICAgICAyNgojZGVmaW5lIFRXU1NfSVNPQjEgICAgICAgIDI3CiNkZWZpbmUgVFdTU19JU09CMiAgICAgICAgMjgKI2RlZmluZSBUV1NTX0lTT0IzICAgICAgICBUV1NTX0IzCiNkZWZpbmUgVFdTU19JU09CNCAgICAgICAgVFdTU19CNAojZGVmaW5lIFRXU1NfSVNPQjUgICAgICAgIDI5CiNkZWZpbmUgVFdTU19JU09CNiAgICAgICAgVFdTU19CNgojZGVmaW5lIFRXU1NfSVNPQjcgICAgICAgIDMwCiNkZWZpbmUgVFdTU19JU09COCAgICAgICAgMzEKI2RlZmluZSBUV1NTX0lTT0I5ICAgICAgICAzMgojZGVmaW5lIFRXU1NfSVNPQjEwICAgICAgIDMzCiNkZWZpbmUgVFdTU19KSVNCMCAgICAgICAgMzQKI2RlZmluZSBUV1NTX0pJU0IxICAgICAgICAzNQojZGVmaW5lIFRXU1NfSklTQjIgICAgICAgIDM2CiNkZWZpbmUgVFdTU19KSVNCMyAgICAgICAgMzcKI2RlZmluZSBUV1NTX0pJU0I0ICAgICAgICAzOAojZGVmaW5lIFRXU1NfSklTQjUgICAgICAgIFRXU1NfQjVMRVRURVIKI2RlZmluZSBUV1NTX0pJU0I2ICAgICAgICAzOQojZGVmaW5lIFRXU1NfSklTQjcgICAgICAgIDQwCiNkZWZpbmUgVFdTU19KSVNCOCAgICAgICAgNDEKI2RlZmluZSBUV1NTX0pJU0I5ICAgICAgICA0MgojZGVmaW5lIFRXU1NfSklTQjEwICAgICAgIDQzCiNkZWZpbmUgVFdTU19DMCAgICAgICAgICAgNDQKI2RlZmluZSBUV1NTX0MxICAgICAgICAgICA0NQojZGVmaW5lIFRXU1NfQzIgICAgICAgICAgIDQ2CiNkZWZpbmUgVFdTU19DMyAgICAgICAgICAgNDcKI2RlZmluZSBUV1NTX0M3ICAgICAgICAgICA0OAojZGVmaW5lIFRXU1NfQzggICAgICAgICAgIDQ5CiNkZWZpbmUgVFdTU19DOSAgICAgICAgICAgNTAKI2RlZmluZSBUV1NTX0MxMCAgICAgICAgICA1MQojZGVmaW5lIFRXU1NfVVNTVEFURU1FTlQgIDUyCiNkZWZpbmUgVFdTU19CVVNJTkVTU0NBUkQgNTMKCi8qIElDQVBfWEZFUk1FQ0ggdmFsdWVzIChTWF8gbWVhbnMgU2V0dXAgWEZlcikgKi8KI2RlZmluZSBUV1NYX05BVElWRSAgICAgIDAKI2RlZmluZSBUV1NYX0ZJTEUgICAgICAgIDEKI2RlZmluZSBUV1NYX01FTU9SWSAgICAgIDIKCi8qIElDQVBfVU5JVFMgdmFsdWVzIChVTl8gbWVhbnMgVU5pdHMpICovCiNkZWZpbmUgVFdVTl9JTkNIRVMgICAgICAwCiNkZWZpbmUgVFdVTl9DRU5USU1FVEVSUyAxCiNkZWZpbmUgVFdVTl9QSUNBUyAgICAgICAyCiNkZWZpbmUgVFdVTl9QT0lOVFMgICAgICAzCiNkZWZpbmUgVFdVTl9UV0lQUyAgICAgICA0CiNkZWZpbmUgVFdVTl9QSVhFTFMgICAgICA1CgovKiBBZGRlZCAxLjUgKi8KLyogSUNBUF9CSVRERVBUSFJFRFVDVElPTiB2YWx1ZXMgKEJSXyBtZWFucyBCaXRkZXB0aCBSZWR1Y3Rpb24pICovCiNkZWZpbmUgVFdCUl9USFJFU0hPTEQgICAgIDAKI2RlZmluZSBUV0JSX0hBTEZUT05FICAgICAgMQojZGVmaW5lIFRXQlJfQ1VTVEhBTEZUT05FICAyCiNkZWZpbmUgVFdCUl9ESUZGVVNJT04gICAgIDMKCi8qIEFkZGVkIDEuNyAqLwovKiBJQ0FQX0RVUExFWCB2YWx1ZXMgKi8KI2RlZmluZSBUV0RYX05PTkUgICAgICAgICAwCiNkZWZpbmUgVFdEWF8xUEFTU0RVUExFWCAgMQojZGVmaW5lIFRXRFhfMlBBU1NEVVBMRVggIDIKCi8qIEFkZGVkIDEuNyAqLwovKiBUV0VJX0JBUkNPREVUWVBFIHZhbHVlcyAqLwojZGVmaW5lIFRXQlRfM09GOSAgICAgICAgICAgICAgICAgMAojZGVmaW5lIFRXQlRfMk9GNUlOVEVSTEVBVkVEICAgICAgMQojZGVmaW5lIFRXQlRfMk9GNU5PTklOVEVSTEVBVkVEICAgMgojZGVmaW5lIFRXQlRfQ09ERTkzICAgICAgICAgICAgICAgMwojZGVmaW5lIFRXQlRfQ09ERTEyOCAgICAgICAgICAgICAgNAojZGVmaW5lIFRXQlRfVUNDMTI4ICAgICAgICAgICAgICAgNQojZGVmaW5lIFRXQlRfQ09EQUJBUiAgICAgICAgICAgICAgNgojZGVmaW5lIFRXQlRfVVBDQSAgICAgICAgICAgICAgICAgNwojZGVmaW5lIFRXQlRfVVBDRSAgICAgICAgICAgICAgICAgOAojZGVmaW5lIFRXQlRfRUFOOCAgICAgICAgICAgICAgICAgOQojZGVmaW5lIFRXQlRfRUFOMTMgICAgICAgICAgICAgICAgMTAKI2RlZmluZSBUV0JUX1BPU1RORVQgICAgICAgICAgICAgIDExCiNkZWZpbmUgVFdCVF9QREY0MTcgICAgICAgICAgICAgICAxMgovKiBBZGRlZCAxLjggKi8KI2RlZmluZSBUV0JUXzJPRjVJTkRVU1RSSUFMICAgICAgIDEzCiNkZWZpbmUgVFdCVF8yT0Y1TUFUUklYICAgICAgICAgICAxNAojZGVmaW5lIFRXQlRfMk9GNURBVEFMT0dJQyAgICAgICAgMTUKI2RlZmluZSBUV0JUXzJPRjVJQVRBICAgICAgICAgICAgIDE2CiNkZWZpbmUgVFdCVF8zT0Y5RlVMTEFTQ0lJICAgICAgICAxNwojZGVmaW5lIFRXQlRfQ09EQUJBUldJVEhTVEFSVFNUT1AgMTgKI2RlZmluZSBUV0JUX01BWElDT0RFICAgICAgICAgICAgIDE5CgovKiBBZGRlZCAxLjcgKi8KLyogVFdFSV9ERVNLRVdTVEFUVVMgdmFsdWVzICovCiNkZWZpbmUgVFdEU0tfU1VDQ0VTUyAgICAgMAojZGVmaW5lIFRXRFNLX1JFUE9SVE9OTFkgIDEKI2RlZmluZSBUV0RTS19GQUlMICAgICAgICAyCiNkZWZpbmUgVFdEU0tfRElTQUJMRUQgICAgMwoKLyogQWRkZWQgMS43ICovCi8qIFRXRUlfUEFUQ0hDT0RFIHZhbHVlcyAqLwojZGVmaW5lIFRXUENIX1BBVENIMSAgICAgIDAKI2RlZmluZSBUV1BDSF9QQVRDSDIgICAgICAxCiNkZWZpbmUgVFdQQ0hfUEFUQ0gzICAgICAgMgojZGVmaW5lIFRXUENIX1BBVENINCAgICAgIDMKI2RlZmluZSBUV1BDSF9QQVRDSDYgICAgICA0CiNkZWZpbmUgVFdQQ0hfUEFUQ0hUICAgICAgNQoKLyogQWRkZWQgMS43ICovCi8qIENBUF9KT0JDT05UUk9MIHZhbHVlcyAqLwojZGVmaW5lIFRXSkNfTk9ORSAgIDAKI2RlZmluZSBUV0pDX0pTSUMgICAxCiNkZWZpbmUgVFdKQ19KU0lTICAgMgojZGVmaW5lIFRXSkNfSlNYQyAgIDMKI2RlZmluZSBUV0pDX0pTWFMgICA0CgovKiBBZGRlZCAxLjcgKi8KLyogVFdFSV9CQVJDT0RFUk9UQVRJT04gdmFsdWVzIChCQ09SXyBtZWFucyBiYXJjb2RlIHJvdGF0aW9uKSAqLwojZGVmaW5lIFRXQkNPUl9ST1QwICAgMAojZGVmaW5lIFRXQkNPUl9ST1Q5MCAgMQojZGVmaW5lIFRXQkNPUl9ST1QxODAgMgojZGVmaW5lIFRXQkNPUl9ST1QyNzAgMwojZGVmaW5lIFRXQkNPUl9ST1RYICAgNAoKLyogQWRkZWQgMS44ICovCi8qIEFDQVBfQVVESU9GSUxFRk9STUFUIHZhbHVlcyAoQUZfIG1lYW5zIGF1ZGlvIGZvcm1hdCkgKi8KI2RlZmluZSBUV0FGX1dBViAgICAgIDAKI2RlZmluZSBUV0FGX0FJRkYgICAgIDEKI2RlZmluZSBUV0FGX0FVICAgICAgIDMKI2RlZmluZSBUV0FGX1NORCAgICAgIDQKCi8qIENBUF9BTEFSTVMgdmFsdWVzIChBTF8gbWVhbnMgYWxhcm1zKSAqLwojZGVmaW5lIFRXQUxfQUxBUk0gICAgICAgICAgMAojZGVmaW5lIFRXQUxfRkVFREVSRVJST1IgICAgMQojZGVmaW5lIFRXQUxfRkVFREVSV0FSTklORyAgMgojZGVmaW5lIFRXQUxfQkFSQ09ERSAgICAgICAgMwojZGVmaW5lIFRXQUxfRE9VQkxFRkVFRCAgICAgNAojZGVmaW5lIFRXQUxfSkFNICAgICAgICAgICAgNQojZGVmaW5lIFRXQUxfUEFUQ0hDT0RFICAgICAgNgojZGVmaW5lIFRXQUxfUE9XRVIgICAgICAgICAgNwojZGVmaW5lIFRXQUxfU0tFVyAgICAgICAgICAgOAoKLyogQ0FQX0NMRUFSQlVGRkVSUyB2YWx1ZXMgKENCXyBtZWFucyBjbGVhciBidWZmZXJzKSAqLwojZGVmaW5lIFRXQ0JfQVVUTyAgICAgICAgICAgMAojZGVmaW5lIFRXQ0JfQ0xFQVIgICAgICAgICAgMQojZGVmaW5lIFRXQ0JfTk9DTEVBUiAgICAgICAgMgoKLyogQ0FQX0RFVklDRUVWRU5UIHZhbHVlcyAoREVfIG1lYW5zIGRldmljZSBldmVudCkgKi8KI2RlZmluZSBUV0RFX0NVU1RPTUVWRU5UUyAgICAgICAgICAgMHg4MDAwCiNkZWZpbmUgVFdERV9DSEVDS0FVVE9NQVRJQ0NBUFRVUkUgIDAKI2RlZmluZSBUV0RFX0NIRUNLQkFUVEVSWSAgICAgICAgICAgMQojZGVmaW5lIFRXREVfQ0hFQ0tERVZJQ0VPTkxJTkUgICAgICAyCiNkZWZpbmUgVFdERV9DSEVDS0ZMQVNIICAgICAgICAgICAgIDMKI2RlZmluZSBUV0RFX0NIRUNLUE9XRVJTVVBQTFkgICAgICAgNAojZGVmaW5lIFRXREVfQ0hFQ0tSRVNPTFVUSU9OICAgICAgICA1CiNkZWZpbmUgVFdERV9ERVZJQ0VBRERFRCAgICAgICAgICAgIDYKI2RlZmluZSBUV0RFX0RFVklDRU9GRkxJTkUgICAgICAgICAgNwojZGVmaW5lIFRXREVfREVWSUNFUkVBRFkgICAgICAgICAgICA4CiNkZWZpbmUgVFdERV9ERVZJQ0VSRU1PVkVEICAgICAgICAgIDkKI2RlZmluZSBUV0RFX0lNQUdFQ0FQVFVSRUQgICAgICAgICAgMTAKI2RlZmluZSBUV0RFX0lNQUdFREVMRVRFRCAgICAgICAgICAgMTEKI2RlZmluZSBUV0RFX1BBUEVSRE9VQkxFRkVFRCAgICAgICAgMTIKI2RlZmluZSBUV0RFX1BBUEVSSkFNICAgICAgICAgICAgICAgMTMKI2RlZmluZSBUV0RFX0xBTVBGQUlMVVJFICAgICAgICAgICAgMTQKI2RlZmluZSBUV0RFX1BPV0VSU0FWRSAgICAgICAgICAgICAgMTUKI2RlZmluZSBUV0RFX1BPV0VSU0FWRU5PVElGWSAgICAgICAgMTYKCi8qIENBUF9GRUVERVJBTElHTk1FTlQgdmFsdWVzIChGQV8gbWVhbnMgZmVlZGVyIGFsaWdubWVudCkgKi8KI2RlZmluZSBUV0ZBX05PTkUgICAwCiNkZWZpbmUgVFdGQV9MRUZUICAgMQojZGVmaW5lIFRXRkFfQ0VOVEVSIDIKI2RlZmluZSBUV0ZBX1JJR0hUICAzCgovKiBDQVBfRkVFREVST1JERVIgdmFsdWVzIChGT18gbWVhbnMgZmVlZGVyIG9yZGVyKSAqLwojZGVmaW5lIFRXRk9fRklSU1RQQUdFRklSU1QgMAojZGVmaW5lIFRXRk9fTEFTVFBBR0VGSVJTVCAgMQoKLyogQ0FQX0ZJTEVTWVNURU0gdmFsdWVzIChGU18gbWVhbnMgZmlsZSBzeXN0ZW0pICovCiNkZWZpbmUgVFdGU19GSUxFU1lTVEVNICAgICAgIDAKI2RlZmluZSBUV0ZTX1JFQ1VSU0lWRURFTEVURSAgMQoKLyogQ0FQX1BPV0VSU1VQUExZIHZhbHVlcyAoUFNfIG1lYW5zIHBvd2VyIHN1cHBseSkgKi8KI2RlZmluZSBUV1BTX0VYVEVSTkFMIDAKI2RlZmluZSBUV1BTX0JBVFRFUlkgIDEKCi8qIENBUF9QUklOVEVSIHZhbHVlcyAoUFJfIG1lYW5zIHByaW50ZXIpICovCiNkZWZpbmUgVFdQUl9JTVBSSU5URVJUT1BCRUZPUkUgICAgIDAKI2RlZmluZSBUV1BSX0lNUFJJTlRFUlRPUEFGVEVSICAgICAgMQojZGVmaW5lIFRXUFJfSU1QUklOVEVSQk9UVE9NQkVGT1JFICAyCiNkZWZpbmUgVFdQUl9JTVBSSU5URVJCT1RUT01BRlRFUiAgIDMKI2RlZmluZSBUV1BSX0VORE9SU0VSVE9QQkVGT1JFICAgICAgNAojZGVmaW5lIFRXUFJfRU5ET1JTRVJUT1BBRlRFUiAgICAgICA1CiNkZWZpbmUgVFdQUl9FTkRPUlNFUkJPVFRPTUJFRk9SRSAgIDYKI2RlZmluZSBUV1BSX0VORE9SU0VSQk9UVE9NQUZURVIgICAgNwoKLyogQ0FQX1BSSU5URVJNT0RFIHZhbHVlcyAoUE1fIG1lYW5zIHByaW50ZXIgbW9kZSkgKi8KI2RlZmluZSBUV1BNX1NJTkdMRVNUUklORyAgICAgMAojZGVmaW5lIFRXUE1fTVVMVElTVFJJTkcgICAgICAxCiNkZWZpbmUgVFdQTV9DT01QT1VORFNUUklORyAgIDIKCi8qIElDQVBfQkFSQ09ERVNFQVJDSE1PREUgdmFsdWVzIChUV0JEXyBtZWFucyBzZWFyY2gpICovCiNkZWZpbmUgVFdCRF9IT1JaICAgICAwCiNkZWZpbmUgVFdCRF9WRVJUICAgICAxCiNkZWZpbmUgVFdCRF9IT1JaVkVSVCAyCiNkZWZpbmUgVFdCRF9WRVJUSE9SWiAzCgovKiBJQ0FQX0ZMQVNIVVNFRDIgdmFsdWVzIChGTF8gbWVhbnMgZmxhc2gpICovCiNkZWZpbmUgVFdGTF9OT05FICAgICAwCiNkZWZpbmUgVFdGTF9PRkYgICAgICAxCiNkZWZpbmUgVFdGTF9PTiAgICAgICAyCiNkZWZpbmUgVFdGTF9BVVRPICAgICAzCiNkZWZpbmUgVFdGTF9SRURFWUUgICA0CgovKiBJQ0FQX0ZMSVBST1RBVElPTiB2YWx1ZXMgKEZSXyBtZWFucyBmbGlwIHJvdGF0aW9uKSAqLwojZGVmaW5lIFRXRlJfQk9PSyAgICAgMAojZGVmaW5lIFRXRlJfRkFORk9MRCAgMQoKLyogSUNBUF9JTUFHRUZJTFRFUiB2YWx1ZXMgKElGXyBtZWFucyBpbWFnZSBmaWx0ZXIpICovCiNkZWZpbmUgVFdJRl9OT05FICAgICAwCiNkZWZpbmUgVFdJRl9BVVRPICAgICAxCiNkZWZpbmUgVFdJRl9MT1dQQVNTICAyCiNkZWZpbmUgVFdJRl9CQU5EUEFTUyAzCiNkZWZpbmUgVFdJRl9ISUdIUEFTUyA0CiNkZWZpbmUgVFdJRl9URVhUICAgICBUV0lGX0JBTkRQQVNTCiNkZWZpbmUgVFdJRl9GSU5FTElORSBUV0lGX0hJR0hQQVNTCgovKiBJQ0FQX05PSVNFRklMVEVSIHZhbHVlcyAoTkZfIG1lYW5zIG5vaXNlIGZpbHRlcikgKi8KI2RlZmluZSBUV05GX05PTkUgICAgICAgICAwCiNkZWZpbmUgVFdORl9BVVRPICAgICAgICAgMQojZGVmaW5lIFRXTkZfTE9ORVBJWEVMICAgIDIKI2RlZmluZSBUV05GX01BSk9SSVRZUlVMRSAzCgovKiBJQ0FQX09WRVJTQ0FOIHZhbHVlcyAoT1ZfIG1lYW5zIG92ZXJzY2FuKSAqLwojZGVmaW5lIFRXT1ZfTk9ORSAgICAgICAwCiNkZWZpbmUgVFdPVl9BVVRPICAgICAgIDEKI2RlZmluZSBUV09WX1RPUEJPVFRPTSAgMgojZGVmaW5lIFRXT1ZfTEVGVFJJR0hUICAzCiNkZWZpbmUgVFdPVl9BTEwgICAgICAgIDQKCi8qIFRXX0ZJTEVTWVNURU0uRmlsZVR5cGUgdmFsdWVzIChGVF8gbWVhbnMgZmlsZSB0eXBlKSAqLwojZGVmaW5lIFRXRllfQ0FNRVJBICAgICAgICAgMAojZGVmaW5lIFRXRllfQ0FNRVJBVE9QICAgICAgMQojZGVmaW5lIFRXRllfQ0FNRVJBQk9UVE9NICAgMgojZGVmaW5lIFRXRllfQ0FNRVJBUFJFVklFVyAgMwojZGVmaW5lIFRXRllfRE9NQUlOICAgICAgICAgNAojZGVmaW5lIFRXRllfSE9TVCAgICAgICAgICAgNQojZGVmaW5lIFRXRllfRElSRUNUT1JZICAgICAgNgojZGVmaW5lIFRXRllfSU1BR0UgICAgICAgICAgNwojZGVmaW5lIFRXRllfVU5LTk9XTiAgICAgICAgOAoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ291bnRyeSBDb25zdGFudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIFRXQ1lfQUZHSEFOSVNUQU4gICAxMDAxCiNkZWZpbmUgVFdDWV9BTEdFUklBICAgICAgICAyMTMKI2RlZmluZSBUV0NZX0FNRVJJQ0FOU0FNT0EgIDY4NAojZGVmaW5lIFRXQ1lfQU5ET1JSQSAgICAgICAgMDMzCiNkZWZpbmUgVFdDWV9BTkdPTEEgICAgICAgIDEwMDIKI2RlZmluZSBUV0NZX0FOR1VJTExBICAgICAgODA5MAojZGVmaW5lIFRXQ1lfQU5USUdVQSAgICAgICA4MDkxCiNkZWZpbmUgVFdDWV9BUkdFTlRJTkEgICAgICAgNTQKI2RlZmluZSBUV0NZX0FSVUJBICAgICAgICAgIDI5NwojZGVmaW5lIFRXQ1lfQVNDRU5TSU9OSSAgICAgMjQ3CiNkZWZpbmUgVFdDWV9BVVNUUkFMSUEgICAgICAgNjEKI2RlZmluZSBUV0NZX0FVU1RSSUEgICAgICAgICA0MwojZGVmaW5lIFRXQ1lfQkFIQU1BUyAgICAgICA4MDkyCiNkZWZpbmUgVFdDWV9CQUhSQUlOICAgICAgICA5NzMKI2RlZmluZSBUV0NZX0JBTkdMQURFU0ggICAgIDg4MAojZGVmaW5lIFRXQ1lfQkFSQkFET1MgICAgICA4MDkzCiNkZWZpbmUgVFdDWV9CRUxHSVVNICAgICAgICAgMzIKI2RlZmluZSBUV0NZX0JFTElaRSAgICAgICAgIDUwMQojZGVmaW5lIFRXQ1lfQkVOSU4gICAgICAgICAgMjI5CiNkZWZpbmUgVFdDWV9CRVJNVURBICAgICAgIDgwOTQKI2RlZmluZSBUV0NZX0JIVVRBTiAgICAgICAgMTAwMwojZGVmaW5lIFRXQ1lfQk9MSVZJQSAgICAgICAgNTkxCiNkZWZpbmUgVFdDWV9CT1RTV0FOQSAgICAgICAyNjcKI2RlZmluZSBUV0NZX0JSSVRBSU4gICAgICAgICAgNgojZGVmaW5lIFRXQ1lfQlJJVFZJUkdJTklTICA4MDk1CiNkZWZpbmUgVFdDWV9CUkFaSUwgICAgICAgICAgNTUKI2RlZmluZSBUV0NZX0JSVU5FSSAgICAgICAgIDY3MwojZGVmaW5lIFRXQ1lfQlVMR0FSSUEgICAgICAgMzU5CiNkZWZpbmUgVFdDWV9CVVJLSU5BRkFTTyAgIDEwMDQKI2RlZmluZSBUV0NZX0JVUk1BICAgICAgICAgMTAwNQojZGVmaW5lIFRXQ1lfQlVSVU5ESSAgICAgICAxMDA2CiNkZWZpbmUgVFdDWV9DQU1BUk9PTiAgICAgICAyMzcKI2RlZmluZSBUV0NZX0NBTkFEQSAgICAgICAgICAgMgojZGVmaW5lIFRXQ1lfQ0FQRVZFUkRFSVMgICAgMjM4CiNkZWZpbmUgVFdDWV9DQVlNQU5JUyAgICAgIDgwOTYKI2RlZmluZSBUV0NZX0NFTlRSQUxBRlJFUCAgMTAwNwojZGVmaW5lIFRXQ1lfQ0hBRCAgICAgICAgICAxMDA4CiNkZWZpbmUgVFdDWV9DSElMRSAgICAgICAgICAgNTYKI2RlZmluZSBUV0NZX0NISU5BICAgICAgICAgICA4NgojZGVmaW5lIFRXQ1lfQ0hSSVNUTUFTSVMgICAxMDA5CiNkZWZpbmUgVFdDWV9DT0NPU0lTICAgICAgIDEwMDkKI2RlZmluZSBUV0NZX0NPTE9NQklBICAgICAgICA1NwojZGVmaW5lIFRXQ1lfQ09NT1JPUyAgICAgICAxMDEwCiNkZWZpbmUgVFdDWV9DT05HTyAgICAgICAgIDEwMTEKI2RlZmluZSBUV0NZX0NPT0tJUyAgICAgICAgMTAxMgojZGVmaW5lIFRXQ1lfQ09TVEFSSUNBICAgICA1MDYKI2RlZmluZSBUV0NZX0NVQkEgICAgICAgICAgIDAwNQojZGVmaW5lIFRXQ1lfQ1lQUlVTICAgICAgICAgMzU3CiNkZWZpbmUgVFdDWV9DWkVDSE9TTE9WQUtJQSAgNDIKI2RlZmluZSBUV0NZX0RFTk1BUksgICAgICAgICA0NQojZGVmaW5lIFRXQ1lfREpJQk9VVEkgICAgICAxMDEzCiNkZWZpbmUgVFdDWV9ET01JTklDQSAgICAgIDgwOTcKI2RlZmluZSBUV0NZX0RPTUlOQ0FOUkVQICAgODA5OAojZGVmaW5lIFRXQ1lfRUFTVEVSSVMgICAgICAxMDE0CiNkZWZpbmUgVFdDWV9FQ1VBRE9SICAgICAgICA1OTMKI2RlZmluZSBUV0NZX0VHWVBUICAgICAgICAgICAyMAojZGVmaW5lIFRXQ1lfRUxTQUxWQURPUiAgICAgNTAzCiNkZWZpbmUgVFdDWV9FUUdVSU5FQSAgICAgIDEwMTUKI2RlZmluZSBUV0NZX0VUSElPUElBICAgICAgIDI1MQojZGVmaW5lIFRXQ1lfRkFMS0xBTkRJUyAgICAxMDE2CiNkZWZpbmUgVFdDWV9GQUVST0VJUyAgICAgICAyOTgKI2RlZmluZSBUV0NZX0ZJSklJU0xBTkRTICAgIDY3OQojZGVmaW5lIFRXQ1lfRklOTEFORCAgICAgICAgMzU4CiNkZWZpbmUgVFdDWV9GUkFOQ0UgICAgICAgICAgMzMKI2RlZmluZSBUV0NZX0ZSQU5USUxMRVMgICAgIDU5NgojZGVmaW5lIFRXQ1lfRlJHVUlBTkEgICAgICAgNTk0CiNkZWZpbmUgVFdDWV9GUlBPTFlORUlTQSAgICA2ODkKI2RlZmluZSBUV0NZX0ZVVEFOQUlTICAgICAgMTA0MwojZGVmaW5lIFRXQ1lfR0FCT04gICAgICAgICAgMjQxCiNkZWZpbmUgVFdDWV9HQU1CSUEgICAgICAgICAyMjAKI2RlZmluZSBUV0NZX0dFUk1BTlkgICAgICAgICA0OQojZGVmaW5lIFRXQ1lfR0hBTkEgICAgICAgICAgMjMzCiNkZWZpbmUgVFdDWV9HSUJSQUxURVIgICAgICAzNTAKI2RlZmluZSBUV0NZX0dSRUVDRSAgICAgICAgICAzMAojZGVmaW5lIFRXQ1lfR1JFRU5MQU5EICAgICAgMjk5CiNkZWZpbmUgVFdDWV9HUkVOQURBICAgICAgIDgwOTkKI2RlZmluZSBUV0NZX0dSRU5FRElORVMgICAgODAxNQojZGVmaW5lIFRXQ1lfR1VBREVMT1VQRSAgICAgNTkwCiNkZWZpbmUgVFdDWV9HVUFNICAgICAgICAgICA2NzEKI2RlZmluZSBUV0NZX0dVQU5UQU5BTU9CQVkgNTM5OQojZGVmaW5lIFRXQ1lfR1VBVEVNQUxBICAgICAgNTAyCiNkZWZpbmUgVFdDWV9HVUlORUEgICAgICAgICAyMjQKI2RlZmluZSBUV0NZX0dVSU5FQUJJU1NBVSAgMTAxNwojZGVmaW5lIFRXQ1lfR1VZQU5BICAgICAgICAgNTkyCiNkZWZpbmUgVFdDWV9IQUlUSSAgICAgICAgICA1MDkKI2RlZmluZSBUV0NZX0hPTkRVUkFTICAgICAgIDUwNAojZGVmaW5lIFRXQ1lfSE9OR0tPTkcgICAgICA4NTIKI2RlZmluZSBUV0NZX0hVTkdBUlkgICAgICAgICAzNgojZGVmaW5lIFRXQ1lfSUNFTEFORCAgICAgICAgMzU0CiNkZWZpbmUgVFdDWV9JTkRJQSAgICAgICAgICAgOTEKI2RlZmluZSBUV0NZX0lORE9ORVNJQSAgICAgICA2MgojZGVmaW5lIFRXQ1lfSVJBTiAgICAgICAgICAgIDk4CiNkZWZpbmUgVFdDWV9JUkFRICAgICAgICAgICA5NjQKI2RlZmluZSBUV0NZX0lSRUxBTkQgICAgICAgIDM1MwojZGVmaW5lIFRXQ1lfSVNSQUVMICAgICAgICAgOTcyCiNkZWZpbmUgVFdDWV9JVEFMWSAgICAgICAgICAgMzkKI2RlZmluZSBUV0NZX0lWT1JZQ09BU1QgICAgMjI1CiNkZWZpbmUgVFdDWV9KQU1BSUNBICAgICAgIDgwMTAKI2RlZmluZSBUV0NZX0pBUEFOICAgICAgICAgICA4MQojZGVmaW5lIFRXQ1lfSk9SREFOICAgICAgICAgOTYyCiNkZWZpbmUgVFdDWV9LRU5ZQSAgICAgICAgICAyNTQKI2RlZmluZSBUV0NZX0tJUklCQVRJICAgICAgMTAxOAojZGVmaW5lIFRXQ1lfS09SRUEgICAgICAgICAgIDgyCiNkZWZpbmUgVFdDWV9LVVdBSVQgICAgICAgICA5NjUKI2RlZmluZSBUV0NZX0xBT1MgICAgICAgICAgMTAxOQojZGVmaW5lIFRXQ1lfTEVCQU5PTiAgICAgICAxMDIwCiNkZWZpbmUgVFdDWV9MSUJFUklBICAgICAgICAyMzEKI2RlZmluZSBUV0NZX0xJQllBICAgICAgICAgIDIxOAojZGVmaW5lIFRXQ1lfTElFQ0hURU5TVEVJTiAgIDQxCiNkZWZpbmUgVFdDWV9MVVhFTkJPVVJHICAgICAzNTIKI2RlZmluZSBUV0NZX01BQ0FPICAgICAgICAgIDg1MwojZGVmaW5lIFRXQ1lfTUFEQUdBU0NBUiAgICAxMDIxCiNkZWZpbmUgVFdDWV9NQUxBV0kgICAgICAgICAyNjUKI2RlZmluZSBUV0NZX01BTEFZU0lBICAgICAgICA2MAojZGVmaW5lIFRXQ1lfTUFMRElWRVMgICAgICAgOTYwCiNkZWZpbmUgVFdDWV9NQUxJICAgICAgICAgIDEwMjIKI2RlZmluZSBUV0NZX01BTFRBICAgICAgICAgIDM1NgojZGVmaW5lIFRXQ1lfTUFSU0hBTExJUyAgICAgNjkyCiNkZWZpbmUgVFdDWV9NQVVSSVRBTklBICAgIDEwMjMKI2RlZmluZSBUV0NZX01BVVJJVElVUyAgICAgIDIzMAojZGVmaW5lIFRXQ1lfTUVYSUNPICAgICAgICAgICAzCiNkZWZpbmUgVFdDWV9NSUNST05FU0lBICAgICA2OTEKI2RlZmluZSBUV0NZX01JUVVFTE9OICAgICAgIDUwOAojZGVmaW5lIFRXQ1lfTU9OQUNPICAgICAgICAgIDMzCiNkZWZpbmUgVFdDWV9NT05HT0xJQSAgICAgIDEwMjQKI2RlZmluZSBUV0NZX01PTlRTRVJSQVQgICAgODAxMQojZGVmaW5lIFRXQ1lfTU9ST0NDTyAgICAgICAgMjEyCiNkZWZpbmUgVFdDWV9NT1pBTUJJUVVFICAgIDEwMjUKI2RlZmluZSBUV0NZX05BTUlCSUEgICAgICAgIDI2NAojZGVmaW5lIFRXQ1lfTkFVUlUgICAgICAgICAxMDI2CiNkZWZpbmUgVFdDWV9ORVBBTCAgICAgICAgICA5NzcKI2RlZmluZSBUV0NZX05FVEhFUkxBTkRTICAgICAzMQojZGVmaW5lIFRXQ1lfTkVUSEFOVElMTEVTICAgNTk5CiNkZWZpbmUgVFdDWV9ORVZJUyAgICAgICAgIDgwMTIKI2RlZmluZSBUV0NZX05FV0NBTEVET05JQSAgIDY4NwojZGVmaW5lIFRXQ1lfTkVXWkVBTEFORCAgICAgIDY0CiNkZWZpbmUgVFdDWV9OSUNBUkFHVUEgICAgICA1MDUKI2RlZmluZSBUV0NZX05JR0VSICAgICAgICAgIDIyNwojZGVmaW5lIFRXQ1lfTklHRVJJQSAgICAgICAgMjM0CiNkZWZpbmUgVFdDWV9OSVVFICAgICAgICAgIDEwMjcKI2RlZmluZSBUV0NZX05PUkZPTEtJICAgICAgMTAyOAojZGVmaW5lIFRXQ1lfTk9SV0FZICAgICAgICAgIDQ3CiNkZWZpbmUgVFdDWV9PTUFOICAgICAgICAgICA5NjgKI2RlZmluZSBUV0NZX1BBS0lTVEFOICAgICAgICA5MgojZGVmaW5lIFRXQ1lfUEFMQVUgICAgICAgICAxMDI5CiNkZWZpbmUgVFdDWV9QQU5BTUEgICAgICAgICA1MDcKI2RlZmluZSBUV0NZX1BBUkFHVUFZICAgICAgIDU5NQojZGVmaW5lIFRXQ1lfUEVSVSAgICAgICAgICAgIDUxCiNkZWZpbmUgVFdDWV9QSElMTElQUElORVMgICAgNjMKI2RlZmluZSBUV0NZX1BJVENBSVJOSVMgICAgMTAzMAojZGVmaW5lIFRXQ1lfUE5FV0dVSU5FQSAgICAgNjc1CiNkZWZpbmUgVFdDWV9QT0xBTkQgICAgICAgICAgNDgKI2RlZmluZSBUV0NZX1BPUlRVR0FMICAgICAgIDM1MQojZGVmaW5lIFRXQ1lfUUFUQVIgICAgICAgICAgOTc0CiNkZWZpbmUgVFdDWV9SRVVOSU9OSSAgICAgIDEwMzEKI2RlZmluZSBUV0NZX1JPTUFOSUEgICAgICAgICA0MAojZGVmaW5lIFRXQ1lfUldBTkRBICAgICAgICAgMjUwCiNkZWZpbmUgVFdDWV9TQUlQQU4gICAgICAgICA2NzAKI2RlZmluZSBUV0NZX1NBTk1BUklOTyAgICAgICAzOQojZGVmaW5lIFRXQ1lfU0FPVE9NRSAgICAgICAxMDMzCiNkZWZpbmUgVFdDWV9TQVVESUFSQUJJQSAgICA5NjYKI2RlZmluZSBUV0NZX1NFTkVHQUwgICAgICAgIDIyMQojZGVmaW5lIFRXQ1lfU0VZQ0hFTExFU0lTICAxMDM0CiNkZWZpbmUgVFdDWV9TSUVSUkFMRU9ORSAgIDEwMzUKI2RlZmluZSBUV0NZX1NJTkdBUE9SRSAgICAgICA2NQojZGVmaW5lIFRXQ1lfU09MT01PTklTICAgICAxMDM2CiNkZWZpbmUgVFdDWV9TT01BTEkgICAgICAgIDEwMzcKI2RlZmluZSBUV0NZX1NPVVRIQUZSSUNBICAgIDI3CiNkZWZpbmUgVFdDWV9TUEFJTiAgICAgICAgICAgMzQKI2RlZmluZSBUV0NZX1NSSUxBTktBICAgICAgICA5NAojZGVmaW5lIFRXQ1lfU1RIRUxFTkEgICAgICAxMDMyCiNkZWZpbmUgVFdDWV9TVEtJVFRTICAgICAgIDgwMTMKI2RlZmluZSBUV0NZX1NUTFVDSUEgICAgICAgODAxNAojZGVmaW5lIFRXQ1lfU1RQSUVSUkUgICAgICAgNTA4CiNkZWZpbmUgVFdDWV9TVFZJTkNFTlQgICAgIDgwMTUKI2RlZmluZSBUV0NZX1NVREFOICAgICAgICAgMTAzOAojZGVmaW5lIFRXQ1lfU1VSSU5BTUUgICAgICAgNTk3CiNkZWZpbmUgVFdDWV9TV0FaSUxBTkQgICAgICAyNjgKI2RlZmluZSBUV0NZX1NXRURFTiAgICAgICAgICA0NgojZGVmaW5lIFRXQ1lfU1dJVFpFUkxBTkQgICAgIDQxCiNkZWZpbmUgVFdDWV9TWVJJQSAgICAgICAgIDEwMzkKI2RlZmluZSBUV0NZX1RBSVdBTiAgICAgICAgIDg4NgojZGVmaW5lIFRXQ1lfVEFOWkFOSUEgICAgICAgMjU1CiNkZWZpbmUgVFdDWV9USEFJTEFORCAgICAgICAgNjYKI2RlZmluZSBUV0NZX1RPQkFHTyAgICAgICAgODAxNgojZGVmaW5lIFRXQ1lfVE9HTyAgICAgICAgICAgMjI4CiNkZWZpbmUgVFdDWV9UT05HQUlTICAgICAgICA2NzYKI2RlZmluZSBUV0NZX1RSSU5JREFEICAgICAgODAxNgojZGVmaW5lIFRXQ1lfVFVOSVNJQSAgICAgICAgMjE2CiNkZWZpbmUgVFdDWV9UVVJLRVkgICAgICAgICAgOTAKI2RlZmluZSBUV0NZX1RVUktTQ0FJQ09TICAgODAxNwojZGVmaW5lIFRXQ1lfVFVWQUxVICAgICAgICAxMDQwCiNkZWZpbmUgVFdDWV9VR0FOREEgICAgICAgICAyNTYKI2RlZmluZSBUV0NZX1VTU1IgICAgICAgICAgICAgNwojZGVmaW5lIFRXQ1lfVUFFTUlSQVRFUyAgICAgOTcxCiNkZWZpbmUgVFdDWV9VTklURURLSU5HRE9NICAgNDQKI2RlZmluZSBUV0NZX1VTQSAgICAgICAgICAgICAgMQojZGVmaW5lIFRXQ1lfVVJVR1VBWSAgICAgICAgNTk4CiNkZWZpbmUgVFdDWV9WQU5VQVRVICAgICAgIDEwNDEKI2RlZmluZSBUV0NZX1ZBVElDQU5DSVRZICAgICAzOQojZGVmaW5lIFRXQ1lfVkVORVpVRUxBICAgICAgIDU4CiNkZWZpbmUgVFdDWV9XQUtFICAgICAgICAgIDEwNDIKI2RlZmluZSBUV0NZX1dBTExJU0lTICAgICAgMTA0MwojZGVmaW5lIFRXQ1lfV0VTVEVSTlNBSEFSQSAxMDQ0CiNkZWZpbmUgVFdDWV9XRVNURVJOU0FNT0EgIDEwNDUKI2RlZmluZSBUV0NZX1lFTUVOICAgICAgICAgMTA0NgojZGVmaW5lIFRXQ1lfWVVHT1NMQVZJQSAgICAgIDM4CiNkZWZpbmUgVFdDWV9aQUlSRSAgICAgICAgICAyNDMKI2RlZmluZSBUV0NZX1pBTUJJQSAgICAgICAgIDI2MAojZGVmaW5lIFRXQ1lfWklNQkFCV0UgICAgICAgMjYzCi8qIEFkZGVkIGZvciAxLjggKi8KI2RlZmluZSBUV0NZX0FMQkFOSUEgICAgICAgIDM1NQojZGVmaW5lIFRXQ1lfQVJNRU5JQSAgICAgICAgMzc0CiNkZWZpbmUgVFdDWV9BWkVSQkFJSkFOICAgICA5OTQKI2RlZmluZSBUV0NZX0JFTEFSVVMgICAgICAgIDM3NQojZGVmaW5lIFRXQ1lfQk9TTklBSEVSWkdPICAgMzg3CiNkZWZpbmUgVFdDWV9DQU1CT0RJQSAgICAgICA4NTUKI2RlZmluZSBUV0NZX0NST0FUSUEgICAgICAgIDM4NQojZGVmaW5lIFRXQ1lfQ1pFQ0hSRVBVQkxJQyAgNDIwCiNkZWZpbmUgVFdDWV9ESUVHT0dBUkNJQSAgICAyNDYKI2RlZmluZSBUV0NZX0VSSVRSRUEgICAgICAgIDI5MQojZGVmaW5lIFRXQ1lfRVNUT05JQSAgICAgICAgMzcyCiNkZWZpbmUgVFdDWV9HRU9SR0lBICAgICAgICA5OTUKI2RlZmluZSBUV0NZX0xBVFZJQSAgICAgICAgIDM3MQojZGVmaW5lIFRXQ1lfTEVTT1RITyAgICAgICAgMjY2CiNkZWZpbmUgVFdDWV9MSVRIVUFOSUEgICAgICAzNzAKI2RlZmluZSBUV0NZX01BQ0VET05JQSAgICAgIDM4OQojZGVmaW5lIFRXQ1lfTUFZT1RURUlTICAgICAgMjY5CiNkZWZpbmUgVFdDWV9NT0xET1ZBICAgICAgICAzNzMKI2RlZmluZSBUV0NZX01ZQU5NQVIgICAgICAgIDk1CiNkZWZpbmUgVFdDWV9OT1JUSEtPUkVBICAgICA4NTAKI2RlZmluZSBUV0NZX1BVRVJUT1JJQ08gICAgIDc4NwojZGVmaW5lIFRXQ1lfUlVTU0lBICAgICAgICAgNwojZGVmaW5lIFRXQ1lfU0VSQklBICAgICAgICAgMzgxCiNkZWZpbmUgVFdDWV9TTE9WQUtJQSAgICAgICA0MjEKI2RlZmluZSBUV0NZX1NMT1ZFTklBICAgICAgIDM4NgojZGVmaW5lIFRXQ1lfU09VVEhLT1JFQSAgICAgODIKI2RlZmluZSBUV0NZX1VLUkFJTkUgICAgICAgIDM4MAojZGVmaW5lIFRXQ1lfVVNWSVJHSU5JUyAgICAgMzQwCiNkZWZpbmUgVFdDWV9WSUVUTkFNICAgICAgICA4NAoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogTGFuZ3VhZ2UgQ29uc3RhbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIFRXTEdfREFOICAgICAgICAgICAgICAwIC8qIERhbmlzaCAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0xHX0RVVCAgICAgICAgICAgICAgMSAvKiBEdXRjaCAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdMR19FTkcgICAgICAgICAgICAgIDIgLyogSW50ZXJuYXRpb25hbCBFbmdsaXNoICAqLwojZGVmaW5lIFRXTEdfRkNGICAgICAgICAgICAgICAzIC8qIEZyZW5jaCBDYW5hZGlhbiAgICAgICAgKi8KI2RlZmluZSBUV0xHX0ZJTiAgICAgICAgICAgICAgNCAvKiBGaW5uaXNoICAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdMR19GUk4gICAgICAgICAgICAgIDUgLyogRnJlbmNoICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXTEdfR0VSICAgICAgICAgICAgICA2IC8qIEdlcm1hbiAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0xHX0lDRSAgICAgICAgICAgICAgNyAvKiBJY2VsYW5kaWMgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdMR19JVE4gICAgICAgICAgICAgIDggLyogSXRhbGlhbiAgICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXTEdfTk9SICAgICAgICAgICAgICA5IC8qIE5vcndlZ2lhbiAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0xHX1BPUiAgICAgICAgICAgICAxMCAvKiBQb3J0dWd1ZXNlICAgICAgICAgICAgICovCiNkZWZpbmUgVFdMR19TUEEgICAgICAgICAgICAgMTEgLyogU3BhbmlzaCAgICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXTEdfU1dFICAgICAgICAgICAgIDEyIC8qIFN3ZWRpc2ggICAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0xHX1VTQSAgICAgICAgICAgICAxMyAvKiBVLlMuIEVuZ2xpc2ggICAgICAgICAgICovCi8qIEFkZGVkIGZvciAxLjggKi8KI2RlZmluZSBUV0xHX1VTRVJMT0NBTEUgICAgICAgICAgIC0xCiNkZWZpbmUgVFdMR19BRlJJS0FBTlMgICAgICAgICAgICAxNAojZGVmaW5lIFRXTEdfQUxCQU5JQSAgICAgICAgICAgICAgMTUKI2RlZmluZSBUV0xHX0FSQUJJQyAgICAgICAgICAgICAgIDE2CiNkZWZpbmUgVFdMR19BUkFCSUNfQUxHRVJJQSAgICAgICAxNwojZGVmaW5lIFRXTEdfQVJBQklDX0JBSFJBSU4gICAgICAgMTgKI2RlZmluZSBUV0xHX0FSQUJJQ19FR1lQVCAgICAgICAgIDE5CiNkZWZpbmUgVFdMR19BUkFCSUNfSVJBUSAgICAgICAgICAyMAojZGVmaW5lIFRXTEdfQVJBQklDX0pPUkRBTiAgICAgICAgMjEKI2RlZmluZSBUV0xHX0FSQUJJQ19LVVdBSVQgICAgICAgIDIyCiNkZWZpbmUgVFdMR19BUkFCSUNfTEVCQU5PTiAgICAgICAyMwojZGVmaW5lIFRXTEdfQVJBQklDX0xJQllBICAgICAgICAgMjQKI2RlZmluZSBUV0xHX0FSQUJJQ19NT1JPQ0NPICAgICAgIDI1CiNkZWZpbmUgVFdMR19BUkFCSUNfT01BTiAgICAgICAgICAyNgojZGVmaW5lIFRXTEdfQVJBQklDX1FBVEFSICAgICAgICAgMjcKI2RlZmluZSBUV0xHX0FSQUJJQ19TQVVESUFSQUJJQSAgIDI4CiNkZWZpbmUgVFdMR19BUkFCSUNfU1lSSUEgICAgICAgICAyOQojZGVmaW5lIFRXTEdfQVJBQklDX1RVTklTSUEgICAgICAgMzAKI2RlZmluZSBUV0xHX0FSQUJJQ19VQUUgICAgICAgICAgIDMxIC8qIFVuaXRlZCBBcmFiaWMgRW1pcmF0ZXMgKi8KI2RlZmluZSBUV0xHX0FSQUJJQ19ZRU1FTiAgICAgICAgIDMyCiNkZWZpbmUgVFdMR19CQVNRVUUgICAgICAgICAgICAgICAzMwojZGVmaW5lIFRXTEdfQllFTE9SVVNTSUFOICAgICAgICAgMzQKI2RlZmluZSBUV0xHX0JVTEdBUklBTiAgICAgICAgICAgIDM1CiNkZWZpbmUgVFdMR19DQVRBTEFOICAgICAgICAgICAgICAzNgojZGVmaW5lIFRXTEdfQ0hJTkVTRSAgICAgICAgICAgICAgMzcKI2RlZmluZSBUV0xHX0NISU5FU0VfSE9OR0tPTkcgICAgIDM4CiNkZWZpbmUgVFdMR19DSElORVNFX1BSQyAgICAgICAgICAzOSAvKiBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSAqLwojZGVmaW5lIFRXTEdfQ0hJTkVTRV9TSU5HQVBPUkUgICAgNDAKI2RlZmluZSBUV0xHX0NISU5FU0VfU0lNUExJRklFRCAgIDQxCiNkZWZpbmUgVFdMR19DSElORVNFX1RBSVdBTiAgICAgICA0MgojZGVmaW5lIFRXTEdfQ0hJTkVTRV9UUkFESVRJT05BTCAgNDMKI2RlZmluZSBUV0xHX0NST0FUSUEgICAgICAgICAgICAgIDQ0CiNkZWZpbmUgVFdMR19DWkVDSCAgICAgICAgICAgICAgICA0NQojZGVmaW5lIFRXTEdfREFOSVNIICAgICAgICAgICAgICAgVFdMR19EQU4KI2RlZmluZSBUV0xHX0RVVENIICAgICAgICAgICAgICAgIFRXTEdfRFVUCiNkZWZpbmUgVFdMR19EVVRDSF9CRUxHSUFOICAgICAgICA0NgojZGVmaW5lIFRXTEdfRU5HTElTSCAgICAgICAgICAgICAgVFdMR19FTkcKI2RlZmluZSBUV0xHX0VOR0xJU0hfQVVTVFJBTElBTiAgIDQ3CiNkZWZpbmUgVFdMR19FTkdMSVNIX0NBTkFESUFOICAgICA0OAojZGVmaW5lIFRXTEdfRU5HTElTSF9JUkVMQU5EICAgICAgNDkKI2RlZmluZSBUV0xHX0VOR0xJU0hfTkVXWkVBTEFORCAgIDUwCiNkZWZpbmUgVFdMR19FTkdMSVNIX1NPVVRIQUZSSUNBICA1MQojZGVmaW5lIFRXTEdfRU5HTElTSF9VSyAgICAgICAgICAgNTIKI2RlZmluZSBUV0xHX0VOR0xJU0hfVVNBICAgICAgICAgIFRXTEdfVVNBCiNkZWZpbmUgVFdMR19FU1RPTklBTiAgICAgICAgICAgICA1MwojZGVmaW5lIFRXTEdfRkFFUk9FU0UgICAgICAgICAgICAgNTQKI2RlZmluZSBUV0xHX0ZBUlNJICAgICAgICAgICAgICAgIDU1CiNkZWZpbmUgVFdMR19GSU5OSVNIICAgICAgICAgICAgICBUV0xHX0ZJTgojZGVmaW5lIFRXTEdfRlJFTkNIICAgICAgICAgICAgICAgVFdMR19GUk4KI2RlZmluZSBUV0xHX0ZSRU5DSF9CRUxHSUFOICAgICAgIDU2CiNkZWZpbmUgVFdMR19GUkVOQ0hfQ0FOQURJQU4gICAgICBUV0xHX0ZDRgojZGVmaW5lIFRXTEdfRlJFTkNIX0xVWEVNQk9VUkcgICAgNTcKI2RlZmluZSBUV0xHX0ZSRU5DSF9TV0lTUyAgICAgICAgIDU4CiNkZWZpbmUgVFdMR19HRVJNQU4gICAgICAgICAgICAgICBUV0xHX0dFUgojZGVmaW5lIFRXTEdfR0VSTUFOX0FVU1RSSUFOICAgICAgNTkKI2RlZmluZSBUV0xHX0dFUk1BTl9MVVhFTUJPVVJHICAgIDYwCiNkZWZpbmUgVFdMR19HRVJNQU5fTElFQ0hURU5TVEVJTiA2MQojZGVmaW5lIFRXTEdfR0VSTUFOX1NXSVNTICAgICAgICAgNjIKI2RlZmluZSBUV0xHX0dSRUVLICAgICAgICAgICAgICAgIDYzCiNkZWZpbmUgVFdMR19IRUJSRVcgICAgICAgICAgICAgICA2NAojZGVmaW5lIFRXTEdfSFVOR0FSSUFOICAgICAgICAgICAgNjUKI2RlZmluZSBUV0xHX0lDRUxBTkRJQyAgICAgICAgICAgIFRXTEdfSUNFCiNkZWZpbmUgVFdMR19JTkRPTkVTSUFOICAgICAgICAgICA2NgojZGVmaW5lIFRXTEdfSVRBTElBTiAgICAgICAgICAgICAgVFdMR19JVE4KI2RlZmluZSBUV0xHX0lUQUxJQU5fU1dJU1MgICAgICAgIDY3CiNkZWZpbmUgVFdMR19KQVBBTkVTRSAgICAgICAgICAgICA2OAojZGVmaW5lIFRXTEdfS09SRUFOICAgICAgICAgICAgICAgNjkKI2RlZmluZSBUV0xHX0tPUkVBTl9KT0hBQiAgICAgICAgIDcwCiNkZWZpbmUgVFdMR19MQVRWSUFOICAgICAgICAgICAgICA3MQojZGVmaW5lIFRXTEdfTElUSFVBTklBTiAgICAgICAgICAgNzIKI2RlZmluZSBUV0xHX05PUldFR0lBTiAgICAgICAgICAgIFRXTEdfTk9SCiNkZWZpbmUgVFdMR19OT1JXRUdJQU5fQk9LTUFMICAgICA3MwojZGVmaW5lIFRXTEdfTk9SV0VHSUFOX05ZTk9SU0sgICAgNzQKI2RlZmluZSBUV0xHX1BPTElTSCAgICAgICAgICAgICAgIDc1CiNkZWZpbmUgVFdMR19QT1JUVUdVRVNFICAgICAgICAgICBUV0xHX1BPUgojZGVmaW5lIFRXTEdfUE9SVFVHVUVTRV9CUkFaSUwgICAgNzYKI2RlZmluZSBUV0xHX1JPTUFOSUFOICAgICAgICAgICAgIDc3CiNkZWZpbmUgVFdMR19SVVNTSUFOICAgICAgICAgICAgICA3OAojZGVmaW5lIFRXTEdfU0VSQklBTl9MQVRJTiAgICAgICAgNzkKI2RlZmluZSBUV0xHX1NMT1ZBSyAgICAgICAgICAgICAgIDgwCiNkZWZpbmUgVFdMR19TTE9WRU5JQU4gICAgICAgICAgICA4MQojZGVmaW5lIFRXTEdfU1BBTklTSCAgICAgICAgICAgICAgVFdMR19TUEEKI2RlZmluZSBUV0xHX1NQQU5JU0hfTUVYSUNBTiAgICAgIDgyCiNkZWZpbmUgVFdMR19TUEFOSVNIX01PREVSTiAgICAgICA4MwojZGVmaW5lIFRXTEdfU1dFRElTSCAgICAgICAgICAgICAgVFdMR19TV0UKI2RlZmluZSBUV0xHX1RIQUkgICAgICAgICAgICAgICAgIDg0CiNkZWZpbmUgVFdMR19UVVJLSVNIICAgICAgICAgICAgICA4NQojZGVmaW5lIFRXTEdfVUtSQU5JQU4gICAgICAgICAgICAgODYKLyogTW9yZSBzdHVmZiBhZGRlZCBmb3IgMS44ICovCiNkZWZpbmUgVFdMR19BU1NBTUVTRSAgICAgICAgICAgICA4NwojZGVmaW5lIFRXTEdfQkVOR0FMSSAgICAgICAgICAgICAgODgKI2RlZmluZSBUV0xHX0JJSEFSSSAgICAgICAgICAgICAgIDg5CiNkZWZpbmUgVFdMR19CT0RPICAgICAgICAgICAgICAgICA5MAojZGVmaW5lIFRXTEdfRE9HUkkgICAgICAgICAgICAgICAgOTEKI2RlZmluZSBUV0xHX0dVSkFSQVRJICAgICAgICAgICAgIDkyCiNkZWZpbmUgVFdMR19IQVJZQU5WSSAgICAgICAgICAgICA5MwojZGVmaW5lIFRXTEdfSElOREkgICAgICAgICAgICAgICAgOTQKI2RlZmluZSBUV0xHX0tBTk5BREEgICAgICAgICAgICAgIDk1CiNkZWZpbmUgVFdMR19LQVNITUlSSSAgICAgICAgICAgICA5NgojZGVmaW5lIFRXTEdfTUFMQVlBTEFNICAgICAgICAgICAgOTcKI2RlZmluZSBUV0xHX01BUkFUSEkgICAgICAgICAgICAgIDk4CiNkZWZpbmUgVFdMR19NQVJXQVJJICAgICAgICAgICAgICA5OQojZGVmaW5lIFRXTEdfTUVHSEFMQVlBTiAgICAgICAgICAxMDAKI2RlZmluZSBUV0xHX01JWk8gICAgICAgICAgICAgICAgMTAxCiNkZWZpbmUgVFdMR19OQUdBICAgICAgICAgICAgICAgIDEwMgojZGVmaW5lIFRXTEdfT1JJU1NJICAgICAgICAgICAgICAxMDMKI2RlZmluZSBUV0xHX1BVTkpBQkkgICAgICAgICAgICAgMTA0CiNkZWZpbmUgVFdMR19QVVNIVFUgICAgICAgICAgICAgIDEwNQojZGVmaW5lIFRXTEdfU0VSQklBTl9DWVJJTExJQyAgICAxMDYKI2RlZmluZSBUV0xHX1NJS0tJTUkgICAgICAgICAgICAgMTA3CiNkZWZpbmUgVFdMR19TV0VESVNIX0ZJTkxBTkQgICAgIDEwOAojZGVmaW5lIFRXTEdfVEFNSUwgICAgICAgICAgICAgICAxMDkKI2RlZmluZSBUV0xHX1RFTFVHVSAgICAgICAgICAgICAgMTEwCiNkZWZpbmUgVFdMR19UUklQVVJJICAgICAgICAgICAgIDExMQojZGVmaW5lIFRXTEdfVVJEVSAgICAgICAgICAgICAgICAxMTIKI2RlZmluZSBUV0xHX1ZJRVROQU1FU0UgICAgICAgICAgMTEzCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBEYXRhIEdyb3VwcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qIE1vcmUgRGF0YSBHcm91cHMgbWF5IGJlIGFkZGVkIGluIHRoZSBmdXR1cmUuCiAqIFBvc3NpYmxlIGNhbmRpZGF0ZXMgaW5jbHVkZSB0ZXh0LCB2ZWN0b3IgZ3JhcGhpY3MsIHNvdW5kLCBldGMuCiAqIE5PVEU6IERhdGEgR3JvdXAgY29uc3RhbnRzIG11c3QgYmUgcG93ZXJzIG9mIDIgYXMgdGhleSBhcmUgdXNlZAogKiAgICAgICBhcyBiaXRmbGFncyB3aGVuIEFwcGxpY2F0aW9uIGFza3MgRFNNIHRvIHByZXNlbnQgYSBsaXN0IG9mIERTcy4KICovCgojZGVmaW5lIERHX0NPTlRST0wgICAgICAgICAgMHgwMDAxTCAvKiBkYXRhIHBlcnRhaW5pbmcgdG8gY29udHJvbCAgICAgICAqLwojZGVmaW5lIERHX0lNQUdFICAgICAgICAgICAgMHgwMDAyTCAvKiBkYXRhIHBlcnRhaW5pbmcgdG8gcmFzdGVyIGltYWdlcyAqLwovKiBBZGRlZCAxLjggKi8KI2RlZmluZSBER19BVURJTyAgICAgICAgICAgIDB4MDAwNEwgLyogZGF0YSBwZXJ0YWluaW5nIHRvIGF1ZGlvICovCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBEYXRhIEFyZ3VtZW50IFR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qICBTREggLSAwMy8yMy85NSAtIFdBVENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiAgVGhlIHRodW5rZXIgcmVxdWlyZXMga25vd2xlZGdlIGFib3V0IHNpemUgb2YgZGF0YSBiZWluZyBwYXNzZWQgaW4gdGhlICAgKi8KLyogIGxwRGF0YSBwYXJhbWV0ZXIgdG8gRFNfRW50cnkgKHdoaWNoIGlzIG5vdCByZWFkaWx5IGF2YWlsYWJsZSBkdWUgdG8gICAgICovCi8qICB0eXBlIExQVk9JRC4gIFRodXMsIHdlIGtleSBvZmYgdGhlIERBVF8gYXJndW1lbnQgdG8gZGV0ZXJtaW5lIHRoZSBzaXplLiAqLwovKiAgVGhpcyBoYXMgYSBjb3VwbGUgaW1wbGljYXRpb25zOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogIDEpIEFueSBhZGRpdGlvbmFsIERBVF8gZmVhdHVyZXMgcmVxdWlyZSBtb2RpZmljYXRpb25zIHRvIHRoZSB0aHVuayBjb2RlICovCi8qICAgICBmb3IgdGh1bmtlciBzdXBwb3J0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiAgMikgQW55IGFwcGxpY2F0aW9ucyB3aGljaCB1c2UgdGhlIGN1c3RvbSBjYXBhYmFpbGl0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgKi8KLyogICAgIHVuZGVyIHRodW5raW5nIHNpbmNlIHdlIGhhdmUgbm8gd2F5IG9mIGtub3dpbmcgd2hhdCBzaXplIGRhdGEgKGlmICAgICovCi8qICAgICBhbnkpIGlzIGJlaW5nIHBhc3NlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwoKI2RlZmluZSBEQVRfTlVMTCAgICAgICAgICAgIDB4MDAwMCAvKiBObyBkYXRhIG9yIHN0cnVjdHVyZS4gKi8KI2RlZmluZSBEQVRfQ1VTVE9NQkFTRSAgICAgIDB4ODAwMCAvKiBCYXNlIG9mIGN1c3RvbSBEQVRzLiAgKi8KCi8qIERhdGEgQXJndW1lbnQgVHlwZXMgZm9yIHRoZSBER19DT05UUk9MIERhdGEgR3JvdXAuICovCiNkZWZpbmUgREFUX0NBUEFCSUxJVFkgICAgICAweDAwMDEgLyogVFdfQ0FQQUJJTElUWSAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgREFUX0VWRU5UICAgICAgICAgICAweDAwMDIgLyogVFdfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgREFUX0lERU5USVRZICAgICAgICAweDAwMDMgLyogVFdfSURFTlRJVFkgICAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgREFUX1BBUkVOVCAgICAgICAgICAweDAwMDQgLyogVFdfSEFORExFLCBhcHBsaWNhdGlvbiB3aW4gaGFuZGxlIGluIFdpbmRvd3MgKi8KI2RlZmluZSBEQVRfUEVORElOR1hGRVJTICAgIDB4MDAwNSAvKiBUV19QRU5ESU5HWEZFUlMgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfU0VUVVBNRU1YRkVSICAgIDB4MDAwNiAvKiBUV19TRVRVUE1FTVhGRVIgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfU0VUVVBGSUxFWEZFUiAgIDB4MDAwNyAvKiBUV19TRVRVUEZJTEVYRkVSICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfU1RBVFVTICAgICAgICAgIDB4MDAwOCAvKiBUV19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfVVNFUklOVEVSRkFDRSAgIDB4MDAwOSAvKiBUV19VU0VSSU5URVJGQUNFICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfWEZFUkdST1VQICAgICAgIDB4MDAwYSAvKiBUV19VSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogIFNESCAtIDAzLzIxLzk1IC0gVFdVTksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qICBBZGRpdGlvbmFsIG1lc3NhZ2UgcmVxdWlyZWQgZm9yIHRodW5rZXIgdG8gcmVxdWVzdCB0aGUgc3BlY2lhbCAqLwovKiAgaWRlbnRpdHkgaW5mb3JtYXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfVFdVTktJREVOVElUWSAgIDB4MDAwYiAvKiBUV19UV1VOS0lERU5USVRZICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfQ1VTVE9NRFNEQVRBICAgIDB4MDAwYyAvKiBUV19DVVNUT01EU0RBVEEuICAgICAgICAgICAgICAgICAgICAgKi8KLyogQWRkZWQgMS44ICovCiNkZWZpbmUgREFUX0RFVklDRUVWRU5UICAgICAweDAwMGQgLyogVFdfREVWSUNFRVZFTlQgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgREFUX0ZJTEVTWVNURU0gICAgICAweDAwMGUgLyogVFdfRklMRVNZU1RFTSAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgREFUX1BBU1NUSFJVICAgICAgICAweDAwMGYgLyogVFdfUEFTU1RIUlUgICAgICAgICAgICAgICAgICAgICAgICAgICovCgovKiBEYXRhIEFyZ3VtZW50IFR5cGVzIGZvciB0aGUgREdfSU1BR0UgRGF0YSBHcm91cC4gKi8KI2RlZmluZSBEQVRfSU1BR0VJTkZPICAgICAgIDB4MDEwMSAvKiBUV19JTUFHRUlORk8gICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfSU1BR0VMQVlPVVQgICAgIDB4MDEwMiAvKiBUV19JTUFHRUxBWU9VVCAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfSU1BR0VNRU1YRkVSICAgIDB4MDEwMyAvKiBUV19JTUFHRU1FTVhGRVIgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfSU1BR0VOQVRJVkVYRkVSIDB4MDEwNCAvKiBUV19VSU5UMzIgbG93b3JkIGlzIGhESUIsIFBJQ0hhbmRsZSAgKi8KI2RlZmluZSBEQVRfSU1BR0VGSUxFWEZFUiAgIDB4MDEwNSAvKiBOdWxsIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfQ0lFQ09MT1IgICAgICAgIDB4MDEwNiAvKiBUV19DSUVDT0xPUiAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfR1JBWVJFU1BPTlNFICAgIDB4MDEwNyAvKiBUV19HUkFZUkVTUE9OU0UgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfUkdCUkVTUE9OU0UgICAgIDB4MDEwOCAvKiBUV19SR0JSRVNQT05TRSAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfSlBFR0NPTVBSRVNTSU9OIDB4MDEwOSAvKiBUV19KUEVHQ09NUFJFU1NJT04gICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfUEFMRVRURTggICAgICAgIDB4MDEwYSAvKiBUV19QQUxFVFRFOCAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfRVhUSU1BR0VJTkZPICAgIDB4MDEwYiAvKiBUV19FWFRJTUFHRUlORk8gLS0gZm9yIDEuNyBTcGVjLiAgICAgKi8KCi8qIEFkZGVkIDEuOCAqLwovKiBEYXRhIEFyZ3VtZW50IFR5cGVzIGZvciB0aGUgREdfQVVESU8gRGF0YSBHcm91cC4gKi8KI2RlZmluZSBEQVRfQVVESU9GSUxFWEZFUiAgIDB4MDIwMSAvKiBOdWxsIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfQVVESU9JTkZPICAgICAgIDB4MDIwMiAvKiBUV19BVURJT0lORk8gICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBEQVRfQVVESU9OQVRJVkVYRkVSIDB4MDIwMyAvKiBUV19VSU5UMzIgaGFuZGxlIHRvIFdBViwgKEFJRkYgTWFjKSAgKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIE1lc3NhZ2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyogQWxsIG1lc3NhZ2UgY29uc3RhbnRzIGFyZSB1bmlxdWUuCiAqIE1lc3NhZ2VzIGFyZSBncm91cGVkIGFjY29yZGluZyB0byB3aGljaCBEQVRzIHRoZXkgYXJlIHVzZWQgd2l0aC4qLwoKI2RlZmluZSBNU0dfTlVMTCAgICAgICAgIDB4MDAwMCAvKiBVc2VkIGluIFRXX0VWRU5UIHN0cnVjdHVyZSAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX0NVU1RPTUJBU0UgICAweDgwMDAgLyogQmFzZSBvZiBjdXN0b20gbWVzc2FnZXMgICAgICAgICAgICAgICAgICAqLwoKLyogR2VuZXJpYyBtZXNzYWdlcyBtYXkgYmUgdXNlZCB3aXRoIGFueSBvZiBzZXZlcmFsIERBVHMuICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX0dFVCAgICAgICAgICAweDAwMDEgLyogR2V0IG9uZSBvciBtb3JlIHZhbHVlcyAgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE1TR19HRVRDVVJSRU5UICAgMHgwMDAyIC8qIEdldCBjdXJyZW50IHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfR0VUREVGQVVMVCAgIDB4MDAwMyAvKiBHZXQgZGVmYXVsdCAoZS5nLiBwb3dlciB1cCkgdmFsdWUgICAgICAgICovCiNkZWZpbmUgTVNHX0dFVEZJUlNUICAgICAweDAwMDQgLyogR2V0IGZpcnN0IG9mIGEgc2VyaWVzIG9mIGl0ZW1zLCBlLmcuIERTcyAqLwojZGVmaW5lIE1TR19HRVRORVhUICAgICAgMHgwMDA1IC8qIEl0ZXJhdGUgdGhyb3VnaCBhIHNlcmllcyBvZiBpdGVtcy4gICAgICAgKi8KI2RlZmluZSBNU0dfU0VUICAgICAgICAgIDB4MDAwNiAvKiBTZXQgb25lIG9yIG1vcmUgdmFsdWVzICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX1JFU0VUICAgICAgICAweDAwMDcgLyogU2V0IGN1cnJlbnQgdmFsdWUgdG8gZGVmYXVsdCB2YWx1ZSAgICAgICAqLwojZGVmaW5lIE1TR19RVUVSWVNVUFBPUlQgMHgwMDA4IC8qIEdldCBzdXBwb3J0ZWQgb3BlcmF0aW9ucyBvbiB0aGUgY2FwLiAgICAgKi8KCi8qIE1lc3NhZ2VzIHVzZWQgd2l0aCBEQVRfTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE1TR19YRkVSUkVBRFkgICAgMHgwMTAxIC8qIFRoZSBkYXRhIHNvdXJjZSBoYXMgZGF0YSByZWFkeSAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfQ0xPU0VEU1JFUSAgIDB4MDEwMiAvKiBSZXF1ZXN0IGZvciBBcHBsaWNhdGlvbi4gdG8gY2xvc2UgRFMgICAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfQ0xPU0VEU09LICAgIDB4MDEwMyAvKiBUZWxsIHRoZSBBcHBsaWNhdGlvbi4gdG8gc2F2ZSB0aGUgc3RhdGUuICAgICAgICAgKi8KLyogQWRkZWQgMS44ICovCiNkZWZpbmUgTVNHX0RFVklDRUVWRU5UICAwWDAxMDQgLyogU29tZSBldmVudCBoYXMgdGFrZW4gcGxhY2UgICAgICAgICAgICAgICAqLwoKLyogTWVzc2FnZXMgdXNlZCB3aXRoIGEgcG9pbnRlciB0byBhIERBVF9TVEFUVVMgc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX0NIRUNLU1RBVFVTICAweDAyMDEgLyogR2V0IHN0YXR1cyBpbmZvcm1hdGlvbiAgICAgICAgICAgICAgICAgICAqLwoKLyogTWVzc2FnZXMgdXNlZCB3aXRoIGEgcG9pbnRlciB0byBEQVRfUEFSRU5UIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX09QRU5EU00gICAgICAweDAzMDEgLyogT3BlbiB0aGUgRFNNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE1TR19DTE9TRURTTSAgICAgMHgwMzAyIC8qIENsb3NlIHRoZSBEU00gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KCi8qIE1lc3NhZ2VzIHVzZWQgd2l0aCBhIHBvaW50ZXIgdG8gYSBEQVRfSURFTlRJVFkgc3RydWN0dXJlICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE1TR19PUEVORFMgICAgICAgMHgwNDAxIC8qIE9wZW4gYSBkYXRhIHNvdXJjZSAgICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfQ0xPU0VEUyAgICAgIDB4MDQwMiAvKiBDbG9zZSBhIGRhdGEgc291cmNlICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX1VTRVJTRUxFQ1QgICAweDA0MDMgLyogUHV0IHVwIGEgZGlhbG9nIG9mIGFsbCBEUyAgICAgICAgICAgICAgICAqLwoKLyogTWVzc2FnZXMgdXNlZCB3aXRoIGEgcG9pbnRlciB0byBhIERBVF9VU0VSSU5URVJGQUNFIHN0cnVjdHVyZSAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX0RJU0FCTEVEUyAgICAweDA1MDEgLyogRGlzYWJsZSBkYXRhIHRyYW5zZmVyIGluIHRoZSBEUyAgICAgICAgICAqLwojZGVmaW5lIE1TR19FTkFCTEVEUyAgICAgMHgwNTAyIC8qIEVuYWJsZSBkYXRhIHRyYW5zZmVyIGluIHRoZSBEUyAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfRU5BQkxFRFNVSU9OTFkgIDB4MDUwMyAgLyogRW5hYmxlIGZvciBzYXZpbmcgRFMgc3RhdGUgb25seS4gICAgICovCgovKiBNZXNzYWdlcyB1c2VkIHdpdGggYSBwb2ludGVyIHRvIGEgREFUX0VWRU5UIHN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfUFJPQ0VTU0VWRU5UIDB4MDYwMQoKLyogTWVzc2FnZXMgdXNlZCB3aXRoIGEgcG9pbnRlciB0byBhIERBVF9QRU5ESU5HWEZFUlMgc3RydWN0dXJlICAgICAgICAgICAgICovCiNkZWZpbmUgTVNHX0VORFhGRVIgICAgICAweDA3MDEKCi8qIEFkZGVkIDEuOCAqLwovKiBNZXNzYWdlcyB1c2VkIHdpdGggYSBwb2ludGVyIHRvIGEgREFUX0ZJTEVTWVNURU0gc3RydWN0dXJlICAgICAgICAgICAgICAgKi8KI2RlZmluZSBNU0dfQ0hBTkdFRElSRUNUT1JZICAgMHgwODAxCiNkZWZpbmUgTVNHX0NSRUFURURJUkVDVE9SWSAgIDB4MDgwMgojZGVmaW5lIE1TR19ERUxFVEUgICAgICAgICAgICAweDA4MDMKI2RlZmluZSBNU0dfRk9STUFUTUVESUEgICAgICAgMHgwODA0CiNkZWZpbmUgTVNHX0dFVENMT1NFICAgICAgICAgIDB4MDgwNQojZGVmaW5lIE1TR19HRVRGSVJTVEZJTEUgICAgICAweDA4MDYKI2RlZmluZSBNU0dfR0VUSU5GTyAgICAgICAgICAgMHgwODA3CiNkZWZpbmUgTVNHX0dFVE5FWFRGSUxFICAgICAgIDB4MDgwOAojZGVmaW5lIE1TR19SRU5BTUUgICAgICAgICAgICAweDA4MDkKCi8qIE1lc3NhZ2VzIHVzZWQgd2l0aCBhIHBvaW50ZXIgdG8gYSBEQVRfUEFTU1RIUlUgc3RydWN0dXJlICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE1TR19QQVNTVEhSVSAgICAgICAgICAweDA5MDEKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIENhcGFiaWxpdGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBDQVBfQ1VTVE9NQkFTRSAgICAgICAgICAweDgwMDAgLyogQmFzZSBvZiBjdXN0b20gY2FwYWJpbGl0aWVzICovCgovKiBhbGwgZGF0YSBzb3VyY2VzIGFyZSBSRVFVSVJFRCB0byBzdXBwb3J0IHRoZXNlIGNhcHMgKi8KI2RlZmluZSBDQVBfWEZFUkNPVU5UICAgICAgICAgICAweDAwMDEKCi8qIGltYWdlIGRhdGEgc291cmNlcyBhcmUgUkVRVUlSRUQgdG8gc3VwcG9ydCB0aGVzZSBjYXBzICovCiNkZWZpbmUgSUNBUF9DT01QUkVTU0lPTiAgICAgICAgMHgwMTAwCiNkZWZpbmUgSUNBUF9QSVhFTFRZUEUgICAgICAgICAgMHgwMTAxCiNkZWZpbmUgSUNBUF9VTklUUyAgICAgICAgICAgICAgMHgwMTAyIC8qIGRlZmF1bHQgaXMgVFdVTl9JTkNIRVMgKi8KI2RlZmluZSBJQ0FQX1hGRVJNRUNIICAgICAgICAgICAweDAxMDMKCi8qIGFsbCBkYXRhIHNvdXJjZXMgTUFZIHN1cHBvcnQgdGhlc2UgY2FwcyAqLwojZGVmaW5lIENBUF9BVVRIT1IgICAgICAgICAgICAgICAgICAweDEwMDAKI2RlZmluZSBDQVBfQ0FQVElPTiAgICAgICAgICAgICAgICAgMHgxMDAxCiNkZWZpbmUgQ0FQX0ZFRURFUkVOQUJMRUQgICAgICAgICAgIDB4MTAwMgojZGVmaW5lIENBUF9GRUVERVJMT0FERUQgICAgICAgICAgICAweDEwMDMKI2RlZmluZSBDQVBfVElNRURBVEUgICAgICAgICAgICAgICAgMHgxMDA0CiNkZWZpbmUgQ0FQX1NVUFBPUlRFRENBUFMgICAgICAgICAgIDB4MTAwNQojZGVmaW5lIENBUF9FWFRFTkRFRENBUFMgICAgICAgICAgICAweDEwMDYKI2RlZmluZSBDQVBfQVVUT0ZFRUQgICAgICAgICAgICAgICAgMHgxMDA3CiNkZWZpbmUgQ0FQX0NMRUFSUEFHRSAgICAgICAgICAgICAgIDB4MTAwOAojZGVmaW5lIENBUF9GRUVEUEFHRSAgICAgICAgICAgICAgICAweDEwMDkKI2RlZmluZSBDQVBfUkVXSU5EUEFHRSAgICAgICAgICAgICAgMHgxMDBhCiNkZWZpbmUgQ0FQX0lORElDQVRPUlMgICAgICAgICAgICAgIDB4MTAwYiAgIC8qIEFkZGVkIDEuMSAqLwojZGVmaW5lIENBUF9TVVBQT1JURURDQVBTRVhUICAgICAgICAweDEwMGMgICAvKiBBZGRlZCAxLjYgKi8KI2RlZmluZSBDQVBfUEFQRVJERVRFQ1RBQkxFICAgICAgICAgMHgxMDBkICAgLyogQWRkZWQgMS42ICovCiNkZWZpbmUgQ0FQX1VJQ09OVFJPTExBQkxFICAgICAgICAgIDB4MTAwZSAgIC8qIEFkZGVkIDEuNiAqLwojZGVmaW5lIENBUF9ERVZJQ0VPTkxJTkUgICAgICAgICAgICAweDEwMGYgICAvKiBBZGRlZCAxLjYgKi8KI2RlZmluZSBDQVBfQVVUT1NDQU4gICAgICAgICAgICAgICAgMHgxMDEwICAgLyogQWRkZWQgMS42ICovCiNkZWZpbmUgQ0FQX1RIVU1CTkFJTFNFTkFCTEVEICAgICAgIDB4MTAxMSAgIC8qIEFkZGVkIDEuNyAqLwojZGVmaW5lIENBUF9EVVBMRVggICAgICAgICAgICAgICAgICAweDEwMTIgICAvKiBBZGRlZCAxLjcgKi8KI2RlZmluZSBDQVBfRFVQTEVYRU5BQkxFRCAgICAgICAgICAgMHgxMDEzICAgLyogQWRkZWQgMS43ICovCiNkZWZpbmUgQ0FQX0VOQUJMRURTVUlPTkxZICAgICAgICAgIDB4MTAxNCAgIC8qIEFkZGVkIDEuNyAqLwojZGVmaW5lIENBUF9DVVNUT01EU0RBVEEgICAgICAgICAgICAweDEwMTUgICAvKiBBZGRlZCAxLjcgKi8KI2RlZmluZSBDQVBfRU5ET1JTRVIgICAgICAgICAgICAgICAgMHgxMDE2ICAgLyogQWRkZWQgMS43ICovCiNkZWZpbmUgQ0FQX0pPQkNPTlRST0wgICAgICAgICAgICAgIDB4MTAxNyAgIC8qIEFkZGVkIDEuNyAqLwojZGVmaW5lIENBUF9BTEFSTVMgICAgICAgICAgICAgICAgICAweDEwMTggICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfQUxBUk1WT0xVTUUgICAgICAgICAgICAgMHgxMDE5ICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX0FVVE9NQVRJQ0NBUFRVUkUgICAgICAgIDB4MTAxYSAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9USU1FQkVGT1JFRklSU1RDQVBUVVJFICAweDEwMWIgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfVElNRUJFVFdFRU5DQVBUVVJFUyAgICAgMHgxMDFjICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX0NMRUFSQlVGRkVSUyAgICAgICAgICAgIDB4MTAxZCAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9NQVhCQVRDSEJVRkZFUlMgICAgICAgICAweDEwMWUgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfREVWSUNFVElNRURBVEUgICAgICAgICAgMHgxMDFmICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX1BPV0VSU1VQUExZICAgICAgICAgICAgIDB4MTAyMCAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9DQU1FUkFQUkVWSUVXVUkgICAgICAgICAweDEwMjEgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfREVWSUNFRVZFTlQgICAgICAgICAgICAgMHgxMDIyICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX1BBR0VNVUxUSVBMRUFDUVVJUkUgICAgIDB4MTAyMyAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9TRVJJQUxOVU1CRVIgICAgICAgICAgICAweDEwMjQgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfRklMRVNZU1RFTSAgICAgICAgICAgICAgMHgxMDI1ICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX1BSSU5URVIgICAgICAgICAgICAgICAgIDB4MTAyNiAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9QUklOVEVSRU5BQkxFRCAgICAgICAgICAweDEwMjcgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfUFJJTlRFUklOREVYICAgICAgICAgICAgMHgxMDI4ICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX1BSSU5URVJNT0RFICAgICAgICAgICAgIDB4MTAyOSAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9QUklOVEVSU1RSSU5HICAgICAgICAgICAweDEwMmEgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfUFJJTlRFUlNVRkZJWCAgICAgICAgICAgMHgxMDJiICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX0xBTkdVQUdFICAgICAgICAgICAgICAgIDB4MTAyYyAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9GRUVERVJBTElHTk1FTlQgICAgICAgICAweDEwMmQgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfRkVFREVST1JERVIgICAgICAgICAgICAgMHgxMDJlICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX1BBUEVSQklORElORyAgICAgICAgICAgIDB4MTAyZiAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9SRUFDUVVJUkVBTExPV0VEICAgICAgICAweDEwMzAgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfUEFTU1RIUlUgICAgICAgICAgICAgICAgMHgxMDMxICAgLyogQWRkZWQgMS44ICovCiNkZWZpbmUgQ0FQX0JBVFRFUllNSU5VVEVTICAgICAgICAgIDB4MTAzMiAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIENBUF9CQVRURVJZUEVSQ0VOVEFHRSAgICAgICAweDEwMzMgICAvKiBBZGRlZCAxLjggKi8KI2RlZmluZSBDQVBfUE9XRVJET1dOVElNRSAgICAgICAgICAgMHgxMDM0ICAgLyogQWRkZWQgMS44ICovCgovKiBpbWFnZSBkYXRhIHNvdXJjZXMgTUFZIHN1cHBvcnQgdGhlc2UgY2FwcyAqLwojZGVmaW5lIElDQVBfQVVUT0JSSUdIVCAgICAgICAgICAgICAgICAgICAweDExMDAKI2RlZmluZSBJQ0FQX0JSSUdIVE5FU1MgICAgICAgICAgICAgICAgICAgMHgxMTAxCiNkZWZpbmUgSUNBUF9DT05UUkFTVCAgICAgICAgICAgICAgICAgICAgIDB4MTEwMwojZGVmaW5lIElDQVBfQ1VTVEhBTEZUT05FICAgICAgICAgICAgICAgICAweDExMDQKI2RlZmluZSBJQ0FQX0VYUE9TVVJFVElNRSAgICAgICAgICAgICAgICAgMHgxMTA1CiNkZWZpbmUgSUNBUF9GSUxURVIgICAgICAgICAgICAgICAgICAgICAgIDB4MTEwNgojZGVmaW5lIElDQVBfRkxBU0hVU0VEICAgICAgICAgICAgICAgICAgICAweDExMDcKI2RlZmluZSBJQ0FQX0dBTU1BICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTA4CiNkZWZpbmUgSUNBUF9IQUxGVE9ORVMgICAgICAgICAgICAgICAgICAgIDB4MTEwOQojZGVmaW5lIElDQVBfSElHSExJR0hUICAgICAgICAgICAgICAgICAgICAweDExMGEKI2RlZmluZSBJQ0FQX0lNQUdFRklMRUZPUk1BVCAgICAgICAgICAgICAgMHgxMTBjCiNkZWZpbmUgSUNBUF9MQU1QU1RBVEUgICAgICAgICAgICAgICAgICAgIDB4MTEwZAojZGVmaW5lIElDQVBfTElHSFRTT1VSQ0UgICAgICAgICAgICAgICAgICAweDExMGUKI2RlZmluZSBJQ0FQX09SSUVOVEFUSU9OICAgICAgICAgICAgICAgICAgMHgxMTEwCiNkZWZpbmUgSUNBUF9QSFlTSUNBTFdJRFRIICAgICAgICAgICAgICAgIDB4MTExMQojZGVmaW5lIElDQVBfUEhZU0lDQUxIRUlHSFQgICAgICAgICAgICAgICAweDExMTIKI2RlZmluZSBJQ0FQX1NIQURPVyAgICAgICAgICAgICAgICAgICAgICAgMHgxMTEzCiNkZWZpbmUgSUNBUF9GUkFNRVMgICAgICAgICAgICAgICAgICAgICAgIDB4MTExNAojZGVmaW5lIElDQVBfWE5BVElWRVJFU09MVVRJT04gICAgICAgICAgICAweDExMTYKI2RlZmluZSBJQ0FQX1lOQVRJVkVSRVNPTFVUSU9OICAgICAgICAgICAgMHgxMTE3CiNkZWZpbmUgSUNBUF9YUkVTT0xVVElPTiAgICAgICAgICAgICAgICAgIDB4MTExOAojZGVmaW5lIElDQVBfWVJFU09MVVRJT04gICAgICAgICAgICAgICAgICAweDExMTkKI2RlZmluZSBJQ0FQX01BWEZSQU1FUyAgICAgICAgICAgICAgICAgICAgMHgxMTFhCiNkZWZpbmUgSUNBUF9USUxFUyAgICAgICAgICAgICAgICAgICAgICAgIDB4MTExYgojZGVmaW5lIElDQVBfQklUT1JERVIgICAgICAgICAgICAgICAgICAgICAweDExMWMKI2RlZmluZSBJQ0FQX0NDSVRUS0ZBQ1RPUiAgICAgICAgICAgICAgICAgMHgxMTFkCiNkZWZpbmUgSUNBUF9MSUdIVFBBVEggICAgICAgICAgICAgICAgICAgIDB4MTExZQojZGVmaW5lIElDQVBfUElYRUxGTEFWT1IgICAgICAgICAgICAgICAgICAweDExMWYKI2RlZmluZSBJQ0FQX1BMQU5BUkNIVU5LWSAgICAgICAgICAgICAgICAgMHgxMTIwCiNkZWZpbmUgSUNBUF9ST1RBVElPTiAgICAgICAgICAgICAgICAgICAgIDB4MTEyMQojZGVmaW5lIElDQVBfU1VQUE9SVEVEU0laRVMgICAgICAgICAgICAgICAweDExMjIKI2RlZmluZSBJQ0FQX1RIUkVTSE9MRCAgICAgICAgICAgICAgICAgICAgMHgxMTIzCiNkZWZpbmUgSUNBUF9YU0NBTElORyAgICAgICAgICAgICAgICAgICAgIDB4MTEyNAojZGVmaW5lIElDQVBfWVNDQUxJTkcgICAgICAgICAgICAgICAgICAgICAweDExMjUKI2RlZmluZSBJQ0FQX0JJVE9SREVSQ09ERVMgICAgICAgICAgICAgICAgMHgxMTI2CiNkZWZpbmUgSUNBUF9QSVhFTEZMQVZPUkNPREVTICAgICAgICAgICAgIDB4MTEyNwojZGVmaW5lIElDQVBfSlBFR1BJWEVMVFlQRSAgICAgICAgICAgICAgICAweDExMjgKI2RlZmluZSBJQ0FQX1RJTUVGSUxMICAgICAgICAgICAgICAgICAgICAgMHgxMTJhCiNkZWZpbmUgSUNBUF9CSVRERVBUSCAgICAgICAgICAgICAgICAgICAgIDB4MTEyYgojZGVmaW5lIElDQVBfQklUREVQVEhSRURVQ1RJT04gICAgICAgICAgICAweDExMmMgIC8qIEFkZGVkIDEuNSAqLwojZGVmaW5lIElDQVBfVU5ERUZJTkVESU1BR0VTSVpFICAgICAgICAgICAweDExMmQgIC8qIEFkZGVkIDEuNiAqLwojZGVmaW5lIElDQVBfSU1BR0VEQVRBU0VUICAgICAgICAgICAgICAgICAweDExMmUgIC8qIEFkZGVkIDEuNyAqLwojZGVmaW5lIElDQVBfRVhUSU1BR0VJTkZPICAgICAgICAgICAgICAgICAweDExMmYgIC8qIEFkZGVkIDEuNyAqLwojZGVmaW5lIElDQVBfTUlOSU1VTUhFSUdIVCAgICAgICAgICAgICAgICAweDExMzAgIC8qIEFkZGVkIDEuNyAqLwojZGVmaW5lIElDQVBfTUlOSU1VTVdJRFRIICAgICAgICAgICAgICAgICAweDExMzEgIC8qIEFkZGVkIDEuNyAqLwojZGVmaW5lIElDQVBfQVVUT0RJU0NBUkRCTEFOS1BBR0VTICAgICAgICAweDExMzQgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfRkxJUFJPVEFUSU9OICAgICAgICAgICAgICAgICAweDExMzYgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfQkFSQ09ERURFVEVDVElPTkVOQUJMRUQgICAgICAweDExMzcgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfU1VQUE9SVEVEQkFSQ09ERVRZUEVTICAgICAgICAweDExMzggIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfQkFSQ09ERU1BWFNFQVJDSFBSSU9SSVRJRVMgICAweDExMzkgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfQkFSQ09ERVNFQVJDSFBSSU9SSVRJRVMgICAgICAweDExM2EgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfQkFSQ09ERVNFQVJDSE1PREUgICAgICAgICAgICAweDExM2IgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfQkFSQ09ERU1BWFJFVFJJRVMgICAgICAgICAgICAweDExM2MgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfQkFSQ09ERVRJTUVPVVQgICAgICAgICAgICAgICAweDExM2QgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfWk9PTUZBQ1RPUiAgICAgICAgICAgICAgICAgICAweDExM2UgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfUEFUQ0hDT0RFREVURUNUSU9ORU5BQkxFRCAgICAweDExM2YgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfU1VQUE9SVEVEUEFUQ0hDT0RFVFlQRVMgICAgICAweDExNDAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfUEFUQ0hDT0RFTUFYU0VBUkNIUFJJT1JJVElFUyAweDExNDEgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfUEFUQ0hDT0RFU0VBUkNIUFJJT1JJVElFUyAgICAweDExNDIgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfUEFUQ0hDT0RFU0VBUkNITU9ERSAgICAgICAgICAweDExNDMgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfUEFUQ0hDT0RFTUFYUkVUUklFUyAgICAgICAgICAweDExNDQgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfUEFUQ0hDT0RFVElNRU9VVCAgICAgICAgICAgICAweDExNDUgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfRkxBU0hVU0VEMiAgICAgICAgICAgICAgICAgICAweDExNDYgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfSU1BR0VGSUxURVIgICAgICAgICAgICAgICAgICAweDExNDcgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfTk9JU0VGSUxURVIgICAgICAgICAgICAgICAgICAweDExNDggIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfT1ZFUlNDQU4gICAgICAgICAgICAgICAgICAgICAweDExNDkgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfQVVUT01BVElDQk9SREVSREVURUNUSU9OICAgICAweDExNTAgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfQVVUT01BVElDREVTS0VXICAgICAgICAgICAgICAweDExNTEgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIElDQVBfQVVUT01BVElDUk9UQVRFICAgICAgICAgICAgICAweDExNTIgIC8qIEFkZGVkIDEuOCAqLwoKLyogaW1hZ2UgZGF0YSBzb3VyY2VzIE1BWSBzdXBwb3J0IHRoZXNlIGF1ZGlvIGNhcHMgKi8KI2RlZmluZSBBQ0FQX0FVRElPRklMRUZPUk1BVCAgICAweDEyMDEgIC8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIEFDQVBfWEZFUk1FQ0ggICAgICAgICAgIDB4MTIwMiAgLyogQWRkZWQgMS44ICovCgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXAoKICBWZXJzaW9uIDEuNzogICAgICBGb2xsb3dpbmcgaXMgRXh0ZW5kZWQgSW1hZ2UgSW5mbyBBdHRyaWJ1dGVzLgogIEp1bHkgMTk5NwogIEtITAoKXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCiNkZWZpbmUgVFdFSV9CQVJDT0RFWCAgICAgICAgICAgICAgIDB4MTIwMAojZGVmaW5lIFRXRUlfQkFSQ09ERVkgICAgICAgICAgICAgICAweDEyMDEKI2RlZmluZSBUV0VJX0JBUkNPREVURVhUICAgICAgICAgICAgMHgxMjAyCiNkZWZpbmUgVFdFSV9CQVJDT0RFVFlQRSAgICAgICAgICAgIDB4MTIwMwojZGVmaW5lIFRXRUlfREVTSEFERVRPUCAgICAgICAgICAgICAweDEyMDQKI2RlZmluZSBUV0VJX0RFU0hBREVMRUZUICAgICAgICAgICAgMHgxMjA1CiNkZWZpbmUgVFdFSV9ERVNIQURFSEVJR0hUICAgICAgICAgIDB4MTIwNgojZGVmaW5lIFRXRUlfREVTSEFERVdJRFRIICAgICAgICAgICAweDEyMDcKI2RlZmluZSBUV0VJX0RFU0hBREVTSVpFICAgICAgICAgICAgMHgxMjA4CiNkZWZpbmUgVFdFSV9TUEVDS0xFU1JFTU9WRUQgICAgICAgIDB4MTIwOQojZGVmaW5lIFRXRUlfSE9SWkxJTkVYQ09PUkQgICAgICAgICAweDEyMEEKI2RlZmluZSBUV0VJX0hPUlpMSU5FWUNPT1JEICAgICAgICAgMHgxMjBCCiNkZWZpbmUgVFdFSV9IT1JaTElORUxFTkdUSCAgICAgICAgIDB4MTIwQwojZGVmaW5lIFRXRUlfSE9SWkxJTkVUSElDS05FU1MgICAgICAweDEyMEQKI2RlZmluZSBUV0VJX1ZFUlRMSU5FWENPT1JEICAgICAgICAgMHgxMjBFCiNkZWZpbmUgVFdFSV9WRVJUTElORVlDT09SRCAgICAgICAgIDB4MTIwRgojZGVmaW5lIFRXRUlfVkVSVExJTkVMRU5HVEggICAgICAgICAweDEyMTAKI2RlZmluZSBUV0VJX1ZFUlRMSU5FVEhJQ0tORVNTICAgICAgMHgxMjExCiNkZWZpbmUgVFdFSV9QQVRDSENPREUgICAgICAgICAgICAgIDB4MTIxMgojZGVmaW5lIFRXRUlfRU5ET1JTRURURVhUICAgICAgICAgICAweDEyMTMKI2RlZmluZSBUV0VJX0ZPUk1DT05GSURFTkNFICAgICAgICAgMHgxMjE0CiNkZWZpbmUgVFdFSV9GT1JNVEVNUExBVEVNQVRDSCAgICAgIDB4MTIxNQojZGVmaW5lIFRXRUlfRk9STVRFTVBMQVRFUEFHRU1BVENIICAweDEyMTYKI2RlZmluZSBUV0VJX0ZPUk1IT1JaRE9DT0ZGU0VUICAgICAgMHgxMjE3CiNkZWZpbmUgVFdFSV9GT1JNVkVSVERPQ09GRlNFVCAgICAgIDB4MTIxOAojZGVmaW5lIFRXRUlfQkFSQ09ERUNPVU5UICAgICAgICAgICAweDEyMTkKI2RlZmluZSBUV0VJX0JBUkNPREVDT05GSURFTkNFICAgICAgMHgxMjFBCiNkZWZpbmUgVFdFSV9CQVJDT0RFUk9UQVRJT04gICAgICAgIDB4MTIxQgojZGVmaW5lIFRXRUlfQkFSQ09ERVRFWFRMRU5HVEggICAgICAweDEyMUMKI2RlZmluZSBUV0VJX0RFU0hBREVDT1VOVCAgICAgICAgICAgMHgxMjFECiNkZWZpbmUgVFdFSV9ERVNIQURFQkxBQ0tDT1VOVE9MRCAgIDB4MTIxRQojZGVmaW5lIFRXRUlfREVTSEFERUJMQUNLQ09VTlRORVcgICAweDEyMUYKI2RlZmluZSBUV0VJX0RFU0hBREVCTEFDS1JMTUlOICAgICAgMHgxMjIwCiNkZWZpbmUgVFdFSV9ERVNIQURFQkxBQ0tSTE1BWCAgICAgIDB4MTIyMQojZGVmaW5lIFRXRUlfREVTSEFERVdISVRFQ09VTlRPTEQgICAweDEyMjIKI2RlZmluZSBUV0VJX0RFU0hBREVXSElURUNPVU5UTkVXICAgMHgxMjIzCiNkZWZpbmUgVFdFSV9ERVNIQURFV0hJVEVSTE1JTiAgICAgIDB4MTIyNAojZGVmaW5lIFRXRUlfREVTSEFERVdISVRFUkxBVkUgICAgICAweDEyMjUKI2RlZmluZSBUV0VJX0RFU0hBREVXSElURVJMTUFYICAgICAgMHgxMjI2CiNkZWZpbmUgVFdFSV9CTEFDS1NQRUNLTEVTUkVNT1ZFRCAgIDB4MTIyNwojZGVmaW5lIFRXRUlfV0hJVEVTUEVDS0xFU1JFTU9WRUQgICAweDEyMjgKI2RlZmluZSBUV0VJX0hPUlpMSU5FQ09VTlQgICAgICAgICAgMHgxMjI5CiNkZWZpbmUgVFdFSV9WRVJUTElORUNPVU5UICAgICAgICAgIDB4MTIyQQojZGVmaW5lIFRXRUlfREVTS0VXU1RBVFVTICAgICAgICAgICAweDEyMkIKI2RlZmluZSBUV0VJX1NLRVdPUklHSU5BTEFOR0xFICAgICAgMHgxMjJDCiNkZWZpbmUgVFdFSV9TS0VXRklOQUxBTkdMRSAgICAgICAgIDB4MTIyRAojZGVmaW5lIFRXRUlfU0tFV0NPTkZJREVOQ0UgICAgICAgICAweDEyMkUKI2RlZmluZSBUV0VJX1NLRVdXSU5ET1dYMSAgICAgICAgICAgMHgxMjJGCiNkZWZpbmUgVFdFSV9TS0VXV0lORE9XWTEgICAgICAgICAgIDB4MTIzMAojZGVmaW5lIFRXRUlfU0tFV1dJTkRPV1gyICAgICAgICAgICAweDEyMzEKI2RlZmluZSBUV0VJX1NLRVdXSU5ET1dZMiAgICAgICAgICAgMHgxMjMyCiNkZWZpbmUgVFdFSV9TS0VXV0lORE9XWDMgICAgICAgICAgIDB4MTIzMwojZGVmaW5lIFRXRUlfU0tFV1dJTkRPV1kzICAgICAgICAgICAweDEyMzQKI2RlZmluZSBUV0VJX1NLRVdXSU5ET1dYNCAgICAgICAgICAgMHgxMjM1CiNkZWZpbmUgVFdFSV9TS0VXV0lORE9XWTQgICAgICAgICAgIDB4MTIzNgoKI2RlZmluZSBUV0VKX05PTkUgICAgICAgICAgICAgICAgICAgMHgwMDAwCiNkZWZpbmUgVFdFSl9NSURTRVBBUkFUT1IgICAgICAgICAgIDB4MDAwMQojZGVmaW5lIFRXRUpfUEFUQ0gxICAgICAgICAgICAgICAgICAweDAwMDIKI2RlZmluZSBUV0VKX1BBVENIMiAgICAgICAgICAgICAgICAgMHgwMDAzCiNkZWZpbmUgVFdFSl9QQVRDSDMgICAgICAgICAgICAgICAgIDB4MDAwNAojZGVmaW5lIFRXRUpfUEFUQ0g0ICAgICAgICAgICAgICAgICAweDAwMDUKI2RlZmluZSBUV0VKX1BBVENINiAgICAgICAgICAgICAgICAgMHgwMDA2CiNkZWZpbmUgVFdFSl9QQVRDSFQgICAgICAgICAgICAgICAgIDB4MDAwNwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAgICAgICAgICAgIFJldHVybiBDb2RlcyBhbmQgQ29uZGl0aW9uIENvZGVzIHNlY3Rpb24gICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgovKiBSZXR1cm4gQ29kZXM6IERTTV9FbnRyeSBhbmQgRFNfRW50cnkgbWF5IHJldHVybiBhbnkgb25lIG9mIHRoZXNlIHZhbHVlcy4gKi8KI2RlZmluZSBUV1JDX0NVU1RPTUJBU0UgICAgIDB4ODAwMAoKI2RlZmluZSBUV1JDX1NVQ0NFU1MgICAgICAgICAgMAojZGVmaW5lIFRXUkNfRkFJTFVSRSAgICAgICAgICAxIC8qIEFwcGxpY2F0aW9uIG1heSBnZXQgVFdfU1RBVFVTIGZvciBpbmZvIG9uIGZhaWx1cmUgKi8KI2RlZmluZSBUV1JDX0NIRUNLU1RBVFVTICAgICAgMiAvKiAidHJpZWQgaGFyZCI7IGdldCBzdGF0dXMgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIFRXUkNfQ0FOQ0VMICAgICAgICAgICAzCiNkZWZpbmUgVFdSQ19EU0VWRU5UICAgICAgICAgIDQKI2RlZmluZSBUV1JDX05PVERTRVZFTlQgICAgICAgNQojZGVmaW5lIFRXUkNfWEZFUkRPTkUgICAgICAgICA2CiNkZWZpbmUgVFdSQ19FTkRPRkxJU1QgICAgICAgIDcgLyogQWZ0ZXIgTVNHX0dFVE5FWFQgaWYgbm90aGluZyBsZWZ0ICAgICAgICAgKi8KI2RlZmluZSBUV1JDX0lORk9OT1RTVVBQT1JURUQgOAojZGVmaW5lIFRXUkNfREFUQU5PVEFWQUlMQUJMRSA5CgovKiBDb25kaXRpb24gQ29kZXM6IEFwcGxpY2F0aW9uIGdldHMgdGhlc2UgYnkgZG9pbmcgREdfQ09OVFJPTCBEQVRfU1RBVFVTIE1TR19HRVQuICAqLwojZGVmaW5lIFRXQ0NfQ1VTVE9NQkFTRSAgICAgICAgIDB4ODAwMAoKI2RlZmluZSBUV0NDX1NVQ0NFU1MgICAgICAgICAgICAwIC8qIEl0IHdvcmtlZCEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdDQ19CVU1NRVIgICAgICAgICAgICAgMSAvKiBGYWlsdXJlIGR1ZSB0byB1bmtub3duIGNhdXNlcyAgICAgICAgICAgICAqLwojZGVmaW5lIFRXQ0NfTE9XTUVNT1JZICAgICAgICAgIDIgLyogTm90IGVub3VnaCBtZW1vcnkgdG8gcGVyZm9ybSBvcGVyYXRpb24gICAgKi8KI2RlZmluZSBUV0NDX05PRFMgICAgICAgICAgICAgICAzIC8qIE5vIERhdGEgU291cmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdDQ19NQVhDT05ORUNUSU9OUyAgICAgNCAvKiBEUyBpcyBjb25uZWN0ZWQgdG8gbWF4IHBvc3NpYmxlIGFwcGxpY2F0aW9ucyAqLwojZGVmaW5lIFRXQ0NfT1BFUkFUSU9ORVJST1IgICAgIDUgLyogRFMgb3IgRFNNIHJlcG9ydGVkIGVycm9yLCBhcHBsaWNhdGlvbiBzaG91bGRuJ3QgKi8KI2RlZmluZSBUV0NDX0JBRENBUCAgICAgICAgICAgICA2IC8qIFVua25vd24gY2FwYWJpbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgVFdDQ19CQURQUk9UT0NPTCAgICAgICAgOSAvKiBVbnJlY29nbml6ZWQgTVNHIERHIERBVCBjb21iaW5hdGlvbiAgICAgICAqLwojZGVmaW5lIFRXQ0NfQkFEVkFMVUUgICAgICAgICAgIDEwIC8qIERhdGEgcGFyYW1ldGVyIG91dCBvZiByYW5nZSAgICAgICAgICAgICAgKi8KI2RlZmluZSBUV0NDX1NFUUVSUk9SICAgICAgICAgICAxMSAvKiBERyBEQVQgTVNHIG91dCBvZiBleHBlY3RlZCBzZXF1ZW5jZSAgICAgICovCiNkZWZpbmUgVFdDQ19CQURERVNUICAgICAgICAgICAgMTIgLyogVW5rbm93biBkZXN0aW5hdGlvbiBBcHBsaWNhdGlvbi9Tb3VyY2UgaW4gRFNNX0VudHJ5ICovCiNkZWZpbmUgVFdDQ19DQVBVTlNVUFBPUlRFRCAgICAgMTMgLyogQ2FwYWJpbGl0eSBub3Qgc3VwcG9ydGVkIGJ5IHNvdXJjZSAgICAgICAgICAgICovCiNkZWZpbmUgVFdDQ19DQVBCQURPUEVSQVRJT04gICAgMTQgLyogT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgY2FwYWJpbGl0eSAgICAgICAgICovCiNkZWZpbmUgVFdDQ19DQVBTRVFFUlJPUiAgICAgICAgMTUgLyogQ2FwYWJpbGl0eSBoYXMgZGVwZW5kZW5jeSBvbiBvdGhlciBjYXBhYmlsaXR5ICovCi8qIEFkZGVkIDEuOCAqLwojZGVmaW5lIFRXQ0NfREVOSUVEICAgICAgICAgICAgIDE2IC8qIEZpbGUgU3lzdGVtIG9wZXJhdGlvbiBpcyBkZW5pZWQgKGZpbGUgaXMgcHJvdGVjdGVkKSAqLwojZGVmaW5lIFRXQ0NfRklMRUVYSVNUUyAgICAgICAgIDE3IC8qIE9wZXJhdGlvbiBmYWlsZWQgYmVjYXVzZSBmaWxlIGFscmVhZHkgZXhpc3RzLiAqLwojZGVmaW5lIFRXQ0NfRklMRU5PVEZPVU5EICAgICAgIDE4IC8qIEZpbGUgbm90IGZvdW5kICovCiNkZWZpbmUgVFdDQ19OT1RFTVBUWSAgICAgICAgICAgMTkgLyogT3BlcmF0aW9uIGZhaWxlZCBiZWNhdXNlIGRpcmVjdG9yeSBpcyBub3QgZW1wdHkgKi8KI2RlZmluZSBUV0NDX1BBUEVSSkFNICAgICAgICAgICAyMCAgLyogVGhlIGZlZWRlciBpcyBqYW1tZWQgKi8KI2RlZmluZSBUV0NDX1BBUEVSRE9VQkxFRkVFRCAgICAyMSAgLyogVGhlIGZlZWRlciBkZXRlY3RlZCBtdWx0aXBsZSBwYWdlcyAqLwojZGVmaW5lIFRXQ0NfRklMRVdSSVRFRVJST1IgICAgIDIyICAvKiBFcnJvciB3cml0aW5nIHRoZSBmaWxlIChtZWFudCBmb3IgdGhpbmdzIGxpa2UgZGlzayBmdWxsIGNvbmRpdGlvbnMpICovCiNkZWZpbmUgVFdDQ19DSEVDS0RFVklDRU9OTElORSAgMjMgIC8qIFRoZSBkZXZpY2Ugd2VudCBvZmZsaW5lIHByaW9yIHRvIG9yIGR1cmluZyB0aGlzIG9wZXJhdGlvbiAqLwoKCi8qIGJpdCBwYXR0ZXJuczogZm9yIHF1ZXJ5IHRoZSBvcGVyYXRpb24gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBkYXRhIHNvdXJjZSBvbiBhIGNhcGFiaWxpdHkgKi8KLyogQXBwbGljYXRpb24gZ2V0cyB0aGVzZSB0aHJvdWdoIERHX0NPTlRST0wvREFUX0NBUEFCSUxJVFkvTVNHX1FVRVJZU1VQUE9SVCAqLwovKiBBZGRlZCAxLjYgKi8KI2RlZmluZSBUV1FDX0dFVCAgICAgICAgICAgMHgwMDAxCiNkZWZpbmUgVFdRQ19TRVQgICAgICAgICAgIDB4MDAwMgojZGVmaW5lIFRXUUNfR0VUREVGQVVMVCAgICAweDAwMDQKI2RlZmluZSBUV1FDX0dFVENVUlJFTlQgICAgMHgwMDA4CiNkZWZpbmUgVFdRQ19SRVNFVCAgICAgICAgIDB4MDAxMAoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIEVudHJ5IFBvaW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogRnVuY3Rpb246IERTTV9FbnRyeSwgdGhlIG9ubHkgZW50cnkgcG9pbnQgaW50byB0aGUgRGF0YSBTb3VyY2UgTWFuYWdlci4KICoKICogUGFyYW1ldGVyczoKICogIHBPcmlnaW4gSWRlbnRpZmllcyB0aGUgc291cmNlIG1vZHVsZSBvZiB0aGUgbWVzc2FnZS4gVGhpcyBjb3VsZAogKiAgICAgICAgICBpZGVudGlmeSBhbiBBcHBsaWNhdGlvbiwgYSBTb3VyY2UsIG9yIHRoZSBTb3VyY2UgTWFuYWdlci4KICoKICogIHBEZXN0ICAgSWRlbnRpZmllcyB0aGUgZGVzdGluYXRpb24gbW9kdWxlIGZvciB0aGUgbWVzc2FnZS4KICogICAgICAgICAgVGhpcyBjb3VsZCBpZGVudGlmeSBhbiBhcHBsaWNhdGlvbiBvciBhIGRhdGEgc291cmNlLgogKiAgICAgICAgICBJZiB0aGlzIGlzIE5VTEwsIHRoZSBtZXNzYWdlIGdvZXMgdG8gdGhlIFNvdXJjZSBNYW5hZ2VyLgogKgogKiAgREcgICAgICBUaGUgRGF0YSBHcm91cC4KICogICAgICAgICAgRXhhbXBsZTogREdfSU1BR0UuCiAqCiAqICBEQVQgICAgIFRoZSBEYXRhIEF0dHJpYnV0ZSBUeXBlLgogKiAgICAgICAgICBFeGFtcGxlOiBEQVRfSU1BR0VNRU1YRkVSLgogKgogKiAgTVNHICAgICBUaGUgbWVzc2FnZS4gIE1lc3NhZ2VzIGFyZSBpbnRlcnByZXRlZCBieSB0aGUgZGVzdGluYXRpb24gbW9kdWxlCiAqICAgICAgICAgIHdpdGggcmVzcGVjdCB0byB0aGUgRGF0YSBHcm91cCBhbmQgdGhlIERhdGEgQXR0cmlidXRlIFR5cGUuCiAqICAgICAgICAgIEV4YW1wbGU6IE1TR19HRVQuCiAqCiAqICBwRGF0YSAgIEEgcG9pbnRlciB0byB0aGUgZGF0YSBzdHJ1Y3R1cmUgb3IgdmFyaWFibGUgaWRlbnRpZmllZAogKiAgICAgICAgICBieSB0aGUgRGF0YSBBdHRyaWJ1dGUgVHlwZS4KICogICAgICAgICAgRXhhbXBsZTogKFRXX01FTVJFRikmSW1hZ2VNZW1YZmVyCiAqICAgICAgICAgICAgICAgICAgIHdoZXJlIEltYWdlTWVtWGZlciBpcyBhIFRXX0lNQUdFTUVNWEZFUiBzdHJ1Y3R1cmUuCiAqCiAqIFJldHVybnM6CiAqICBSZXR1cm5Db2RlCiAqICAgICAgICAgRXhhbXBsZTogVFdSQ19TVUNDRVNTLgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgovKiBEb24ndCBtYW5nbGUgdGhlIG5hbWUgIkRTTV9FbnRyeSIgaWYgd2UncmUgY29tcGlsaW5nIGluIEMrKyEgKi8KI2lmZGVmICBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmICAvKiBfX2NwbHVzcGx1cyAqLwoKI2lmZGVmICBfTVNXSU5fClRXX1VJTlQxNiBGQVIgUEFTQ0FMIERTTV9FbnRyeSggcFRXX0lERU5USVRZIHBPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcFRXX0lERU5USVRZIHBEZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQzMiAgICBERywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMTYgICAgREFULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiAgICBNU0csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfTUVNUkVGICAgIHBEYXRhKTsKCnR5cGVkZWYgVFdfVUlOVDE2IChGQVIgUEFTQ0FMICpEU01FTlRSWVBST0MpKHBUV19JREVOVElUWSwgcFRXX0lERU5USVRZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMzIsICAgIFRXX1VJTlQxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDE2LCAgICBUV19NRU1SRUYpOwojZWxzZSAgIC8qIF9NU1dJTl8gKi8KCi8qRkFSIFBBU0NBTCBUV19VSU5UMTYgRFNNX0VudHJ5KCBwVFdfSURFTlRJVFkgcE9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwVFdfSURFTlRJVFkgcERlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDMyICAgIERHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiAgICBEQVQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDE2ICAgIE1TRywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19NRU1SRUYgICAgcERhdGEpOyovCgp0eXBlZGVmIFRXX1VJTlQxNiAoKkRTTUVOVFJZUFJPQykocFRXX0lERU5USVRZLCBwVFdfSURFTlRJVFksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMzIsICAgIFRXX1VJTlQxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiwgICAgVFdfTUVNUkVGKTsKI2VuZGlmICAvKiBfTVNXSU5fICovCgojaWZkZWYgIF9fY3BsdXNwbHVzCn0KI2VuZGlmICAvKiBjcGx1c3BsdXMgKi8KCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBGdW5jdGlvbjogRFNfRW50cnksIHRoZSBlbnRyeSBwb2ludCBwcm92aWRlZCBieSBhIERhdGEgU291cmNlLgogKgogKiBQYXJhbWV0ZXJzOgogKiAgcE9yaWdpbiBJZGVudGlmaWVzIHRoZSBzb3VyY2UgbW9kdWxlIG9mIHRoZSBtZXNzYWdlLiBUaGlzIGNvdWxkCiAqICAgICAgICAgIGlkZW50aWZ5IGFuIGFwcGxpY2F0aW9uIG9yIHRoZSBEYXRhIFNvdXJjZSBNYW5hZ2VyLgogKgogKiAgREcgICAgICBUaGUgRGF0YSBHcm91cC4KICogICAgICAgICAgRXhhbXBsZTogREdfSU1BR0UuCiAqCiAqICBEQVQgICAgIFRoZSBEYXRhIEF0dHJpYnV0ZSBUeXBlLgogKiAgICAgICAgICBFeGFtcGxlOiBEQVRfSU1BR0VNRU1YRkVSLgogKgogKiAgTVNHICAgICBUaGUgbWVzc2FnZS4gIE1lc3NhZ2VzIGFyZSBpbnRlcnByZXRlZCBieSB0aGUgZGF0YSBzb3VyY2UKICogICAgICAgICAgd2l0aCByZXNwZWN0IHRvIHRoZSBEYXRhIEdyb3VwIGFuZCB0aGUgRGF0YSBBdHRyaWJ1dGUgVHlwZS4KICogICAgICAgICAgRXhhbXBsZTogTVNHX0dFVC4KICoKICogIHBEYXRhICAgQSBwb2ludGVyIHRvIHRoZSBkYXRhIHN0cnVjdHVyZSBvciB2YXJpYWJsZSBpZGVudGlmaWVkCiAqICAgICAgICAgIGJ5IHRoZSBEYXRhIEF0dHJpYnV0ZSBUeXBlLgogKiAgICAgICAgICBFeGFtcGxlOiAoVFdfTUVNUkVGKSZJbWFnZU1lbVhmZXIKICogICAgICAgICAgICAgICAgICAgd2hlcmUgSW1hZ2VNZW1YZmVyIGlzIGEgVFdfSU1BR0VNRU1YRkVSIHN0cnVjdHVyZS4KICoKICogUmV0dXJuczoKICogIFJldHVybkNvZGUKICogICAgICAgICAgRXhhbXBsZTogVFdSQ19TVUNDRVNTLgogKgogKiBOb3RlOgogKiAgVGhlIERTUFJPQyB0eXBlIGlzIG9ubHkgdXNlZCBieSBhbiBhcHBsaWNhdGlvbiB3aGVuIGl0IGNhbGxzCiAqICBhIERhdGEgU291cmNlIGRpcmVjdGx5LCBieXBhc3NpbmcgdGhlIERhdGEgU291cmNlIE1hbmFnZXIuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogRG9uJ3QgbWFuZ2xlIHRoZSBuYW1lICJEU19FbnRyeSIgaWYgd2UncmUgY29tcGlsaW5nIGluIEMrKyEgKi8KI2lmZGVmICBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmICAvKiBfX2NwbHVzcGx1cyAqLwojaWZkZWYgIF9NU1dJTl8KICAjaWZkZWYgX1dJTjMyCiAgICAgX19kZWNsc3BlYyhkbGxleHBvcnQpIFRXX1VJTlQxNiBGQVIgUEFTQ0FMIERTX0VudHJ5IChwVFdfSURFTlRJVFkgcE9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQzMiAgICBERywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiAgICBEQVQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMTYgICAgTVNHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfTUVNUkVGICAgIHBEYXRhKTsKICAjZWxzZSAgIC8qIF9XSU4zMiAqLwogICAgIFRXX1VJTlQxNiBGQVIgUEFTQ0FMIERTX0VudHJ5IChwVFdfSURFTlRJVFkgcE9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDMyICAgIERHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMTYgICAgREFULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMTYgICAgTVNHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19NRU1SRUYgICAgcERhdGEpOwogICNlbmRpZiAgLyogX1dJTjMyICovCgogIHR5cGVkZWYgVFdfVUlOVDE2IChGQVIgUEFTQ0FMICpEU0VOVFJZUFJPQykgKHBUV19JREVOVElUWSBwT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQzMiAgICBERywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMTYgICAgREFULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiAgICBNU0csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfTUVNUkVGICAgIHBEYXRhKTsKI2Vsc2UgICAvKiBfTVNXSU5fICovCi8qRkFSIFBBU0NBTCBUV19VSU5UMTYgRFNfRW50cnkoIHBUV19JREVOVElUWSBwT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDMyICAgIERHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdfVUlOVDE2ICAgIERBVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiAgICBNU0csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19NRU1SRUYgICAgcERhdGEpOyovCgp0eXBlZGVmIFRXX1VJTlQxNiAoKkRTRU5UUllQUk9DKShwVFdfSURFTlRJVFksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUV19VSU5UMzIsICAgIFRXX1VJTlQxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRXX1VJTlQxNiwgICAgVFdfTUVNUkVGKTsKI2VuZGlmICAvKiBfTVNXSU5fICovCiNpZmRlZiAgX19jcGx1c3BsdXMKfQojZW5kaWYgIC8qIGNwbHVzcGx1cyAqLwoKI2VuZGlmICAvKiBUV0FJTiAqLwo=