LyoKICogRGlyZWN0M0Qgd2luZSB0eXBlcyBpbmNsdWRlIGZpbGUKICoKICogQ29weXJpZ2h0IDIwMDItMjAwMyBUaGUgd2luZS1kM2QgdGVhbQogKiBDb3B5cmlnaHQgMjAwMi0yMDAzIEphc29uIEVkbWVhZGVzCiAqICAgICAgICAgICAgICAgICAgICAgUmFwaGFlbCBKdW5xdWVpcmEKICogQ29weXJpZ2h0IDIwMDUgT2xpdmVyIFN0aWViZXIKICogQ29weXJpZ2h0IDIwMDYgU3RlZmFuIET2c2luZ2VyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpZm5kZWYgX19XSU5FX1dJTkVEM0RfVFlQRVNfSAojZGVmaW5lIF9fV0lORV9XSU5FRDNEX1RZUEVTX0gKCnR5cGVkZWYgRFdPUkQgV0lORUQzRENPTE9SOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNETElHSFRUWVBFIHsKICBXSU5FRDNETElHSFRfUE9JTlQgICAgICAgICAgPSAxLAogIFdJTkVEM0RMSUdIVF9TUE9UICAgICAgICAgICA9IDIsCiAgV0lORUQzRExJR0hUX0RJUkVDVElPTkFMICAgID0gMywKICBXSU5FRDNETElHSFRfUEFSQUxMRUxQT0lOVCAgPSA0LCAvKiBEM0Q3ICovCiAgV0lORUQzRExJR0hUX0dMU1BPVCAgICAgICAgID0gNSwgLyogRDNENyAqLwogIFdJTkVEM0RMSUdIVF9GT1JDRV9EV09SRCAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNETElHSFRUWVBFOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEUFJJTUlUSVZFVFlQRSB7CiAgICBXSU5FRDNEUFRfUE9JTlRMSVNUICAgICAgID0gMSwKICAgIFdJTkVEM0RQVF9MSU5FTElTVCAgICAgICAgPSAyLAogICAgV0lORUQzRFBUX0xJTkVTVFJJUCAgICAgICA9IDMsCiAgICBXSU5FRDNEUFRfVFJJQU5HTEVMSVNUICAgID0gNCwKICAgIFdJTkVEM0RQVF9UUklBTkdMRVNUUklQICAgPSA1LAogICAgV0lORUQzRFBUX1RSSUFOR0xFRkFOICAgICA9IDYsCgogICAgV0lORUQzRFBUX0ZPUkNFX0RXT1JEICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEUFJJTUlUSVZFVFlQRTsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEQ09MT1JWQUxVRSB7CiAgICBmbG9hdCByOwogICAgZmxvYXQgZzsKICAgIGZsb2F0IGI7CiAgICBmbG9hdCBhOwp9IFdJTkVEM0RDT0xPUlZBTFVFOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RWRUNUT1IgewogICAgZmxvYXQgeDsKICAgIGZsb2F0IHk7CiAgICBmbG9hdCB6Owp9IFdJTkVEM0RWRUNUT1I7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRE1BVFJJWCB7CiAgICB1bmlvbiB7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgZmxvYXQgICAgICAgIF8xMSwgXzEyLCBfMTMsIF8xNDsKICAgICAgICAgICAgZmxvYXQgICAgICAgIF8yMSwgXzIyLCBfMjMsIF8yNDsKICAgICAgICAgICAgZmxvYXQgICAgICAgIF8zMSwgXzMyLCBfMzMsIF8zNDsKICAgICAgICAgICAgZmxvYXQgICAgICAgIF80MSwgXzQyLCBfNDMsIF80NDsKICAgICAgICB9IERVTU1ZU1RSVUNUTkFNRTsKICAgICAgICBmbG9hdCBtWzRdWzRdOwogICAgfSBEVU1NWVVOSU9OTkFNRTsKfSBXSU5FRDNETUFUUklYOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RSRUNUIHsKICAgIExPTkcgeDE7CiAgICBMT05HIHkxOwogICAgTE9ORyB4MjsKICAgIExPTkcgeTI7Cn0gV0lORUQzRFJFQ1Q7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRExJR0hUIHsKICAgIFdJTkVEM0RMSUdIVFRZUEUgICAgVHlwZTsKICAgIFdJTkVEM0RDT0xPUlZBTFVFICAgRGlmZnVzZTsKICAgIFdJTkVEM0RDT0xPUlZBTFVFICAgU3BlY3VsYXI7CiAgICBXSU5FRDNEQ09MT1JWQUxVRSAgIEFtYmllbnQ7CiAgICBXSU5FRDNEVkVDVE9SICAgICAgIFBvc2l0aW9uOwogICAgV0lORUQzRFZFQ1RPUiAgICAgICBEaXJlY3Rpb247CiAgICBmbG9hdCAgICAgICAgICAgICAgIFJhbmdlOwogICAgZmxvYXQgICAgICAgICAgICAgICBGYWxsb2ZmOwogICAgZmxvYXQgICAgICAgICAgICAgICBBdHRlbnVhdGlvbjA7CiAgICBmbG9hdCAgICAgICAgICAgICAgIEF0dGVudWF0aW9uMTsKICAgIGZsb2F0ICAgICAgICAgICAgICAgQXR0ZW51YXRpb24yOwogICAgZmxvYXQgICAgICAgICAgICAgICBUaGV0YTsKICAgIGZsb2F0ICAgICAgICAgICAgICAgUGhpOwp9IFdJTkVEM0RMSUdIVDsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNETUFURVJJQUwgewogICAgV0lORUQzRENPTE9SVkFMVUUgICBEaWZmdXNlOwogICAgV0lORUQzRENPTE9SVkFMVUUgICBBbWJpZW50OwogICAgV0lORUQzRENPTE9SVkFMVUUgICBTcGVjdWxhcjsKICAgIFdJTkVEM0RDT0xPUlZBTFVFICAgRW1pc3NpdmU7CiAgICBmbG9hdCAgICAgICAgICAgUG93ZXI7Cn0gV0lORUQzRE1BVEVSSUFMOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RWSUVXUE9SVCB7CiAgICBEV09SRCAgICAgICBYOwogICAgRFdPUkQgICAgICAgWTsKICAgIERXT1JEICAgICAgIFdpZHRoOwogICAgRFdPUkQgICAgICAgSGVpZ2h0OwogICAgZmxvYXQgICAgICAgTWluWjsKICAgIGZsb2F0ICAgICAgIE1heFo7Cn0gV0lORUQzRFZJRVdQT1JUOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RHQU1NQVJBTVAgewogICAgV09SRCAgICAgICAgICAgICAgICByZWQgIFsyNTZdOwogICAgV09SRCAgICAgICAgICAgICAgICBncmVlblsyNTZdOwogICAgV09SRCAgICAgICAgICAgICAgICBibHVlIFsyNTZdOwp9IFdJTkVEM0RHQU1NQVJBTVA7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRExJTkVQQVRURVJOIHsKICAgIFdPUkQgICAgd1JlcGVhdEZhY3RvcjsKICAgIFdPUkQgICAgd0xpbmVQYXR0ZXJuOwp9IFdJTkVEM0RMSU5FUEFUVEVSTjsKCiNkZWZpbmUgV0lORUQzRF9WU0hBREVSX01BWF9DT05TVEFOVFMgOTYKI2RlZmluZSBXSU5FRDNEX1BTSEFERVJfTUFYX0NPTlNUQU5UUyAzMgoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RWRUNUT1JfMyB7CiAgICBmbG9hdCB4OwogICAgZmxvYXQgeTsKICAgIGZsb2F0IHo7Cn0gV0lORUQzRFZFQ1RPUl8zOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RWRUNUT1JfNCB7CiAgICBmbG9hdCB4OwogICAgZmxvYXQgeTsKICAgIGZsb2F0IHo7CiAgICBmbG9hdCB3Owp9IFdJTkVEM0RWRUNUT1JfNDsKCnR5cGVkZWYgc3RydWN0IFdJTkVEM0RTSEFERVJWRUNUT1IgewogIGZsb2F0IHg7CiAgZmxvYXQgeTsKICBmbG9hdCB6OwogIGZsb2F0IHc7Cn0gV0lORUQzRFNIQURFUlZFQ1RPUjsKCnR5cGVkZWYgc3RydWN0IFdJTkVEM0RTSEFERVJTQ0FMQVIgewogIGZsb2F0IHg7Cn0gV0lORUQzRFNIQURFUlNDQUxBUjsKCnR5cGVkZWYgV0lORUQzRFNIQURFUlZFQ1RPUiBXSU5FVlNIQURFUkNPTlNUQU5UUzhbV0lORUQzRF9WU0hBREVSX01BWF9DT05TVEFOVFNdOwoKdHlwZWRlZiBzdHJ1Y3QgVlNIQURFUkRBVEEgewogIC8qKiBSdW4gVGltZSBTaGFkZXIgRnVuY3Rpb24gQ29uc3RhbnRzICovCiAgLypEM0RYQlVGRkVSKiBjb25zdGFudHM7Ki8KICBXSU5FVlNIQURFUkNPTlNUQU5UUzggQzsKICAvKiogU2hhZGVyIENvZGUgYXMgY2hhciAuLi4gKi8KICBDT05TVCBEV09SRCogY29kZTsKICBVSU5UIGNvZGVMZW5ndGg7Cn0gVlNIQURFUkRBVEE7CgovKiogdGVtcG9yYXJ5IGhlcmUgd2FpdGluZyBmb3IgYnVmZmVyIGNvZGUgKi8KdHlwZWRlZiBzdHJ1Y3QgVlNIQURFUklOUFVUREFUQSB7CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBWWzE3XTsKfSBXSU5FVlNIQURFUklOUFVUREFUQTsKCi8qKiB0ZW1wb3JhcnkgaGVyZSB3YWl0aW5nIGZvciBidWZmZXIgY29kZSAqLwp0eXBlZGVmIHN0cnVjdCBWU0hBREVST1VUUFVUREFUQSB7CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBvUG9zOwogIFdJTkVEM0RTSEFERVJWRUNUT1Igb0RbMl07CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBvVFs4XTsKICBXSU5FRDNEU0hBREVSVkVDVE9SIG9Gb2c7CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBvUHRzOwp9IFdJTkVWU0hBREVST1VUUFVUREFUQTsKCnR5cGVkZWYgV0lORUQzRFNIQURFUlZFQ1RPUiBXSU5FUFNIQURFUkNPTlNUQU5UUzhbV0lORUQzRF9QU0hBREVSX01BWF9DT05TVEFOVFNdOwoKdHlwZWRlZiBzdHJ1Y3QgUFNIQURFUkRBVEEgewogIC8qKiBSdW4gVGltZSBTaGFkZXIgRnVuY3Rpb24gQ29uc3RhbnRzICovCiAgLypEM0RYQlVGRkVSKiBjb25zdGFudHM7Ki8KICBXSU5FUFNIQURFUkNPTlNUQU5UUzggQzsKICAvKiogU2hhZGVyIENvZGUgYXMgY2hhciAuLi4gKi8KICBDT05TVCBEV09SRCogY29kZTsKICBVSU5UIGNvZGVMZW5ndGg7Cn0gUFNIQURFUkRBVEE7CgovKiogdGVtcG9yYXJ5IGhlcmUgd2FpdGluZyBmb3IgYnVmZmVyIGNvZGUgKi8KdHlwZWRlZiBzdHJ1Y3QgUFNIQURFUklOUFVUREFUQSB7CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBWWzJdOwogIFdJTkVEM0RTSEFERVJWRUNUT1IgVFs4XTsKICBXSU5FRDNEU0hBREVSVkVDVE9SIFNbMTZdOwogIC8qRDNEU0hBREVSVkVDVE9SIFJbMTJdOyovCn0gV0lORVBTSEFERVJJTlBVVERBVEE7CgovKiogdGVtcG9yYXJ5IGhlcmUgd2FpdGluZyBmb3IgYnVmZmVyIGNvZGUgKi8KdHlwZWRlZiBzdHJ1Y3QgUFNIQURFUk9VVFBVVERBVEEgewogIFdJTkVEM0RTSEFERVJWRUNUT1Igb0NbNF07CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBvRGVwdGg7Cn0gV0lORVBTSEFERVJPVVRQVVREQVRBOwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIFdpbmVEM0QgU3RydWN0dXJlcyB0byBiZSB1c2VkIHdoZW4gZDNkOCBhbmQgZDNkOSBhcmUgaW5jb21wYXRpYmxlCiAqLwoKCnR5cGVkZWYgZW51bSBfV0lORUQzRERFVlRZUEUgewogICAgV0lORUQzRERFVlRZUEVfSEFMICAgICAgICAgPSAxLAogICAgV0lORUQzRERFVlRZUEVfUkVGICAgICAgICAgPSAyLAogICAgV0lORUQzRERFVlRZUEVfU1cgICAgICAgICAgPSAzLAogICAgV0lORUQzRERFVlRZUEVfTlVMTFJFRiAgICAgPSA0LAoKICAgIFdJTkVEM0RERVZUWVBFX0ZPUkNFX0RXT1JEID0gMHhmZmZmZmZmZgp9IFdJTkVEM0RERVZUWVBFOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEREVHUkVFVFlQRSB7CiAgICBXSU5FRDNEREVHUkVFX0xJTkVBUiAgICAgID0gMSwKICAgIFdJTkVEM0RERUdSRUVfUVVBRFJBVElDICAgPSAyLAogICAgV0lORUQzRERFR1JFRV9DVUJJQyAgICAgICA9IDMsCiAgICBXSU5FRDNEREVHUkVFX1FVSU5USUMgICAgID0gNSwKICAgIAogICAgV0lORUQzRERFR1JFRV9GT1JDRV9EV09SRCAgID0gMHg3ZmZmZmZmZgp9IFdJTkVEM0RERUdSRUVUWVBFOwoKI2RlZmluZSBXSU5FTUFLRUZPVVJDQyhjaDAsIGNoMSwgY2gyLCBjaDMpICBcCiAgICAoKERXT1JEKShCWVRFKShjaDApIHwgKChEV09SRCkoQllURSkoY2gxKSA8PCA4KSB8ICBcCiAgICAoKERXT1JEKShCWVRFKShjaDIpIDw8IDE2KSB8ICgoRFdPUkQpKEJZVEUpKGNoMykgPDwgMjQgKSkKCnR5cGVkZWYgZW51bSBfV0lORUQzREZPUk1BVCB7CiAgICBXSU5FRDNERk1UX1VOS05PV04gICAgICAgICAgICAgID0gICAwLAoKICAgIFdJTkVEM0RGTVRfUjhHOEI4ICAgICAgICAgICAgICAgPSAgMjAsCiAgICBXSU5FRDNERk1UX0E4UjhHOEI4ICAgICAgICAgICAgID0gIDIxLAogICAgV0lORUQzREZNVF9YOFI4RzhCOCAgICAgICAgICAgICA9ICAyMiwKICAgIFdJTkVEM0RGTVRfUjVHNkI1ICAgICAgICAgICAgICAgPSAgMjMsCiAgICBXSU5FRDNERk1UX1gxUjVHNUI1ICAgICAgICAgICAgID0gIDI0LAogICAgV0lORUQzREZNVF9BMVI1RzVCNSAgICAgICAgICAgICA9ICAyNSwKICAgIFdJTkVEM0RGTVRfQTRSNEc0QjQgICAgICAgICAgICAgPSAgMjYsCiAgICBXSU5FRDNERk1UX1IzRzNCMiAgICAgICAgICAgICAgID0gIDI3LAogICAgV0lORUQzREZNVF9BOCAgICAgICAgICAgICAgICAgICA9ICAyOCwKICAgIFdJTkVEM0RGTVRfQThSM0czQjIgICAgICAgICAgICAgPSAgMjksCiAgICBXSU5FRDNERk1UX1g0UjRHNEI0ICAgICAgICAgICAgID0gIDMwLAogICAgV0lORUQzREZNVF9BMkIxMEcxMFIxMCAgICAgICAgICA9ICAzMSwKICAgIFdJTkVEM0RGTVRfQThCOEc4UjggICAgICAgICAgICAgPSAgMzIsCiAgICBXSU5FRDNERk1UX1g4QjhHOFI4ICAgICAgICAgICAgID0gIDMzLAogICAgV0lORUQzREZNVF9HMTZSMTYgICAgICAgICAgICAgICA9ICAzNCwKICAgIFdJTkVEM0RGTVRfQTJSMTBHMTBCMTAgICAgICAgICAgPSAgMzUsCiAgICBXSU5FRDNERk1UX0ExNkIxNkcxNlIxNiAgICAgICAgID0gIDM2LAogIAoKICAgIFdJTkVEM0RGTVRfQThQOCAgICAgICAgICAgICAgICAgPSAgNDAsCiAgICBXSU5FRDNERk1UX1A4ICAgICAgICAgICAgICAgICAgID0gIDQxLAoKICAgIFdJTkVEM0RGTVRfTDggICAgICAgICAgICAgICAgICAgPSAgNTAsCiAgICBXSU5FRDNERk1UX0E4TDggICAgICAgICAgICAgICAgID0gIDUxLAogICAgV0lORUQzREZNVF9BNEw0ICAgICAgICAgICAgICAgICA9ICA1MiwKCiAgICBXSU5FRDNERk1UX1Y4VTggICAgICAgICAgICAgICAgID0gIDYwLAogICAgV0lORUQzREZNVF9MNlY1VTUgICAgICAgICAgICAgICA9ICA2MSwKICAgIFdJTkVEM0RGTVRfWDhMOFY4VTggICAgICAgICAgICAgPSAgNjIsCiAgICBXSU5FRDNERk1UX1E4VzhWOFU4ICAgICAgICAgICAgID0gIDYzLAogICAgV0lORUQzREZNVF9WMTZVMTYgICAgICAgICAgICAgICA9ICA2NCwKICAgIFdJTkVEM0RGTVRfVzExVjExVTEwICAgICAgICAgICAgPSAgNjUsCiAgICBXSU5FRDNERk1UX0EyVzEwVjEwVTEwICAgICAgICAgID0gIDY3LAoKICAgIFdJTkVEM0RGTVRfVVlWWSAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ1UnLCAnWScsICdWJywgJ1knKSwKICAgIFdJTkVEM0RGTVRfWVVZMiAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ1knLCAnVScsICdZJywgJzInKSwKICAgIFdJTkVEM0RGTVRfRFhUMSAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0QnLCAnWCcsICdUJywgJzEnKSwKICAgIFdJTkVEM0RGTVRfRFhUMiAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0QnLCAnWCcsICdUJywgJzInKSwKICAgIFdJTkVEM0RGTVRfRFhUMyAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0QnLCAnWCcsICdUJywgJzMnKSwKICAgIFdJTkVEM0RGTVRfRFhUNCAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0QnLCAnWCcsICdUJywgJzQnKSwKICAgIFdJTkVEM0RGTVRfRFhUNSAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0QnLCAnWCcsICdUJywgJzUnKSwKICAgIFdJTkVEM0RGTVRfTVVMVEkyX0FSR0I4ICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ00nLCAnRScsICdUJywgJzEnKSwKICAgIFdJTkVEM0RGTVRfRzhSOF9HOEI4ICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0cnLCAnUicsICdHJywgJ0InKSwKICAgIFdJTkVEM0RGTVRfUjhHOF9COEc4ICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ1InLCAnRycsICdCJywgJ0cnKSwKCiAgICBXSU5FRDNERk1UX0QxNl9MT0NLQUJMRSAgICAgICAgID0gIDcwLAogICAgV0lORUQzREZNVF9EMzIgICAgICAgICAgICAgICAgICA9ICA3MSwKICAgIFdJTkVEM0RGTVRfRDE1UzEgICAgICAgICAgICAgICAgPSAgNzMsCiAgICBXSU5FRDNERk1UX0QyNFM4ICAgICAgICAgICAgICAgID0gIDc1LAogICAgV0lORUQzREZNVF9EMjRYOCAgICAgICAgICAgICAgICA9ICA3NywKICAgIFdJTkVEM0RGTVRfRDI0WDRTNCAgICAgICAgICAgICAgPSAgNzksCiAgICBXSU5FRDNERk1UX0QxNiAgICAgICAgICAgICAgICAgID0gIDgwLAogICAgV0lORUQzREZNVF9MMTYgICAgICAgICAgICAgICAgICA9ICA4MSwKICAgIFdJTkVEM0RGTVRfRDMyRl9MT0NLQUJMRSAgICAgICAgPSAgODIsCiAgICBXSU5FRDNERk1UX0QyNEZTOCAgICAgICAgICAgICAgID0gIDgzLAoKICAgIFdJTkVEM0RGTVRfVkVSVEVYREFUQSAgICAgICAgICAgPSAxMDAsCiAgICBXSU5FRDNERk1UX0lOREVYMTYgICAgICAgICAgICAgID0gMTAxLAogICAgV0lORUQzREZNVF9JTkRFWDMyICAgICAgICAgICAgICA9IDEwMiwKICAgIFdJTkVEM0RGTVRfUTE2VzE2VjE2VTE2ICAgICAgICAgPSAxMTAsCiAgICAvKiBGbG9hdGluZyBwb2ludCBmb3JtYXRzICovCiAgICBXSU5FRDNERk1UX1IxNkYgICAgICAgICAgICAgICAgID0gMTExLAogICAgV0lORUQzREZNVF9HMTZSMTZGICAgICAgICAgICAgICA9IDExMiwKICAgIFdJTkVEM0RGTVRfQTE2QjE2RzE2UjE2RiAgICAgICAgPSAxMTMsCiAgICAKICAgIC8qIElFRUUgZm9ybWF0cyAqLwogICAgV0lORUQzREZNVF9SMzJGICAgICAgICAgICAgICAgICA9IDExNCwKICAgIFdJTkVEM0RGTVRfRzMyUjMyRiAgICAgICAgICAgICAgPSAxMTUsCiAgICBXSU5FRDNERk1UX0EzMkIzMkczMlIzMkYgICAgICAgID0gMTE2LAogICAgCiAgICBXSU5FRDNERk1UX0N4VjhVOCAgICAgICAgICAgICAgID0gMTE3LAoKCiAgICBXSU5FRDNERk1UX0ZPUkNFX0RXT1JEICAgICAgICAgID0gMHhGRkZGRkZGRgp9IFdJTkVEM0RGT1JNQVQ7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RSRU5ERVJTVEFURVRZUEUgewogICAgV0lORUQzRFJTX1RFWFRVUkVIQU5ETEUgICAgICAgICAgICAgPSAgIDEsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19BTlRJQUxJQVMgICAgICAgICAgICAgICAgID0gICAyLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfVEVYVFVSRUFERFJFU1MgICAgICAgICAgICA9ICAgMywgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1RFWFRVUkVQRVJTUEVDVElWRSAgICAgICAgPSAgIDQsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19XUkFQVSAgICAgICAgICAgICAgICAgICAgID0gICA1LCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfV1JBUFYgICAgICAgICAgICAgICAgICAgICA9ICAgNiwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1pFTkFCTEUgICAgICAgICAgICAgICAgICAgPSAgIDcsCiAgICBXSU5FRDNEUlNfRklMTE1PREUgICAgICAgICAgICAgICAgICA9ICAgOCwKICAgIFdJTkVEM0RSU19TSEFERU1PREUgICAgICAgICAgICAgICAgID0gICA5LAogICAgV0lORUQzRFJTX0xJTkVQQVRURVJOICAgICAgICAgICAgICAgPSAgMTAsIC8qIGQzZDcsIGQzZDggKi8KICAgIFdJTkVEM0RSU19NT05PRU5BQkxFICAgICAgICAgICAgICAgID0gIDExLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfUk9QMiAgICAgICAgICAgICAgICAgICAgICA9ICAxMiwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1BMQU5FTUFTSyAgICAgICAgICAgICAgICAgPSAgMTMsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19aV1JJVEVFTkFCTEUgICAgICAgICAgICAgID0gIDE0LAogICAgV0lORUQzRFJTX0FMUEhBVEVTVEVOQUJMRSAgICAgICAgICAgPSAgMTUsCiAgICBXSU5FRDNEUlNfTEFTVFBJWEVMICAgICAgICAgICAgICAgICA9ICAxNiwKICAgIFdJTkVEM0RSU19URVhUVVJFTUFHICAgICAgICAgICAgICAgID0gIDE3LCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfVEVYVFVSRU1JTiAgICAgICAgICAgICAgICA9ICAxOCwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1NSQ0JMRU5EICAgICAgICAgICAgICAgICAgPSAgMTksCiAgICBXSU5FRDNEUlNfREVTVEJMRU5EICAgICAgICAgICAgICAgICA9ICAyMCwKICAgIFdJTkVEM0RSU19URVhUVVJFTUFQQkxFTkQgICAgICAgICAgID0gIDIxLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfQ1VMTE1PREUgICAgICAgICAgICAgICAgICA9ICAyMiwKICAgIFdJTkVEM0RSU19aRlVOQyAgICAgICAgICAgICAgICAgICAgID0gIDIzLAogICAgV0lORUQzRFJTX0FMUEhBUkVGICAgICAgICAgICAgICAgICAgPSAgMjQsCiAgICBXSU5FRDNEUlNfQUxQSEFGVU5DICAgICAgICAgICAgICAgICA9ICAyNSwKICAgIFdJTkVEM0RSU19ESVRIRVJFTkFCTEUgICAgICAgICAgICAgID0gIDI2LAogICAgV0lORUQzRFJTX0FMUEhBQkxFTkRFTkFCTEUgICAgICAgICAgPSAgMjcsCiAgICBXSU5FRDNEUlNfRk9HRU5BQkxFICAgICAgICAgICAgICAgICA9ICAyOCwKICAgIFdJTkVEM0RSU19TUEVDVUxBUkVOQUJMRSAgICAgICAgICAgID0gIDI5LAogICAgV0lORUQzRFJTX1pWSVNJQkxFICAgICAgICAgICAgICAgICAgPSAgMzAsIC8qIGQzZDcsIGQzZDggKi8KICAgIFdJTkVEM0RSU19TVUJQSVhFTCAgICAgICAgICAgICAgICAgID0gIDMxLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfU1VCUElYRUxYICAgICAgICAgICAgICAgICA9ICAzMiwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1NUSVBQTEVEQUxQSEEgICAgICAgICAgICAgPSAgMzMsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19GT0dDT0xPUiAgICAgICAgICAgICAgICAgID0gIDM0LAogICAgV0lORUQzRFJTX0ZPR1RBQkxFTU9ERSAgICAgICAgICAgICAgPSAgMzUsCiAgICBXSU5FRDNEUlNfRk9HU1RBUlQgICAgICAgICAgICAgICAgICA9ICAzNiwKICAgIFdJTkVEM0RSU19GT0dFTkQgICAgICAgICAgICAgICAgICAgID0gIDM3LAogICAgV0lORUQzRFJTX0ZPR0RFTlNJVFkgICAgICAgICAgICAgICAgPSAgMzgsCiAgICBXSU5FRDNEUlNfU1RJUFBMRUVOQUJMRSAgICAgICAgICAgICA9ICAzOSwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX0VER0VBTlRJQUxJQVMgICAgICAgICAgICAgPSAgNDAsIC8qIGQzZDcsIGQzZDggKi8KICAgIFdJTkVEM0RSU19DT0xPUktFWUVOQUJMRSAgICAgICAgICAgID0gIDQxLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfQk9SREVSQ09MT1IgICAgICAgICAgICAgICA9ICA0MywgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1RFWFRVUkVBRERSRVNTVSAgICAgICAgICAgPSAgNDQsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19URVhUVVJFQUREUkVTU1YgICAgICAgICAgID0gIDQ1LCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfTUlQTUFQTE9EQklBUyAgICAgICAgICAgICA9ICA0NiwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1pCSUFTICAgICAgICAgICAgICAgICAgICAgPSAgNDcsIC8qIGQzZDcsIGQzZDggKi8KICAgIFdJTkVEM0RSU19SQU5HRUZPR0VOQUJMRSAgICAgICAgICAgID0gIDQ4LAogICAgV0lORUQzRFJTX0FOSVNPVFJPUFkgICAgICAgICAgICAgICAgPSAgNDksIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19GTFVTSEJBVENIICAgICAgICAgICAgICAgID0gIDUwLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfVFJBTlNMVUNFTlRTT1JUSU5ERVBFTkRFTlQgPSA1MSwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1NURU5DSUxFTkFCTEUgICAgICAgICAgICAgPSAgNTIsCiAgICBXSU5FRDNEUlNfU1RFTkNJTEZBSUwgICAgICAgICAgICAgICA9ICA1MywKICAgIFdJTkVEM0RSU19TVEVOQ0lMWkZBSUwgICAgICAgICAgICAgID0gIDU0LAogICAgV0lORUQzRFJTX1NURU5DSUxQQVNTICAgICAgICAgICAgICAgPSAgNTUsCiAgICBXSU5FRDNEUlNfU1RFTkNJTEZVTkMgICAgICAgICAgICAgICA9ICA1NiwKICAgIFdJTkVEM0RSU19TVEVOQ0lMUkVGICAgICAgICAgICAgICAgID0gIDU3LAogICAgV0lORUQzRFJTX1NURU5DSUxNQVNLICAgICAgICAgICAgICAgPSAgNTgsCiAgICBXSU5FRDNEUlNfU1RFTkNJTFdSSVRFTUFTSyAgICAgICAgICA9ICA1OSwKICAgIFdJTkVEM0RSU19URVhUVVJFRkFDVE9SICAgICAgICAgICAgID0gIDYwLAoKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjAwICAgICAgICAgID0gNjQsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4wMSAgICAgICAgICA9IDY1LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMDIgICAgICAgICAgPSA2NiwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjAzICAgICAgICAgID0gNjcsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4wNCAgICAgICAgICA9IDY4LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMDUgICAgICAgICAgPSA2OSwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjA2ICAgICAgICAgID0gNzAsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4wNyAgICAgICAgICA9IDcxLAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMDggICAgICAgICAgPSA3MiwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjA5ICAgICAgICAgID0gNzMsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4xMCAgICAgICAgICA9IDc0LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMTEgICAgICAgICAgPSA3NSwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjEyICAgICAgICAgID0gNzYsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4xMyAgICAgICAgICA9IDc3LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMTQgICAgICAgICAgPSA3OCwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjE1ICAgICAgICAgID0gNzksCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4xNiAgICAgICAgICA9IDgwLAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMTcgICAgICAgICAgPSA4MSwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjE4ICAgICAgICAgID0gODIsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4xOSAgICAgICAgICA9IDgzLAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMjAgICAgICAgICAgPSA4NCwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjIxICAgICAgICAgID0gODUsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4yMiAgICAgICAgICA9IDg2LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMjMgICAgICAgICAgPSA4NywKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjI0ICAgICAgICAgID0gODgsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4yNSAgICAgICAgICA9IDg5LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMjYgICAgICAgICAgPSA5MCwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjI3ICAgICAgICAgID0gOTEsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4yOCAgICAgICAgICA9IDkyLAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMjkgICAgICAgICAgPSA5MywKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjMwICAgICAgICAgID0gOTQsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4zMSAgICAgICAgICA9IDk1LAoKICAgIFdJTkVEM0RSU19XUkFQMCAgICAgICAgICAgICAgICAgICAgID0gMTI4LAogICAgV0lORUQzRFJTX1dSQVAxICAgICAgICAgICAgICAgICAgICAgPSAxMjksCiAgICBXSU5FRDNEUlNfV1JBUDIgICAgICAgICAgICAgICAgICAgICA9IDEzMCwKICAgIFdJTkVEM0RSU19XUkFQMyAgICAgICAgICAgICAgICAgICAgID0gMTMxLAogICAgV0lORUQzRFJTX1dSQVA0ICAgICAgICAgICAgICAgICAgICAgPSAxMzIsCiAgICBXSU5FRDNEUlNfV1JBUDUgICAgICAgICAgICAgICAgICAgICA9IDEzMywKICAgIFdJTkVEM0RSU19XUkFQNiAgICAgICAgICAgICAgICAgICAgID0gMTM0LAogICAgV0lORUQzRFJTX1dSQVA3ICAgICAgICAgICAgICAgICAgICAgPSAxMzUsCiAgICBXSU5FRDNEUlNfQ0xJUFBJTkcgICAgICAgICAgICAgICAgICA9IDEzNiwKICAgIFdJTkVEM0RSU19MSUdIVElORyAgICAgICAgICAgICAgICAgID0gMTM3LAogICAgV0lORUQzRFJTX0VYVEVOVFMgICAgICAgICAgICAgICAgICAgPSAxMzgsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19BTUJJRU5UICAgICAgICAgICAgICAgICAgID0gMTM5LAogICAgV0lORUQzRFJTX0ZPR1ZFUlRFWE1PREUgICAgICAgICAgICAgPSAxNDAsCiAgICBXSU5FRDNEUlNfQ09MT1JWRVJURVggICAgICAgICAgICAgICA9IDE0MSwKICAgIFdJTkVEM0RSU19MT0NBTFZJRVdFUiAgICAgICAgICAgICAgID0gMTQyLAogICAgV0lORUQzRFJTX05PUk1BTElaRU5PUk1BTFMgICAgICAgICAgPSAxNDMsCiAgICBXSU5FRDNEUlNfQ09MT1JLRVlCTEVOREVOQUJMRSAgICAgICA9IDE0NCwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX0RJRkZVU0VNQVRFUklBTFNPVVJDRSAgICAgPSAxNDUsCiAgICBXSU5FRDNEUlNfU1BFQ1VMQVJNQVRFUklBTFNPVVJDRSAgICA9IDE0NiwKICAgIFdJTkVEM0RSU19BTUJJRU5UTUFURVJJQUxTT1VSQ0UgICAgID0gMTQ3LAogICAgV0lORUQzRFJTX0VNSVNTSVZFTUFURVJJQUxTT1VSQ0UgICAgPSAxNDgsCiAgICBXSU5FRDNEUlNfVkVSVEVYQkxFTkQgICAgICAgICAgICAgICA9IDE1MSwKICAgIFdJTkVEM0RSU19DTElQUExBTkVFTkFCTEUgICAgICAgICAgID0gMTUyLCAgCiAgICBXSU5FRDNEUlNfU09GVFdBUkVWRVJURVhQUk9DRVNTSU5HICA9IDE1MywgLyogZDNkOCAqLwogICAgV0lORUQzRFJTX1BPSU5UU0laRSAgICAgICAgICAgICAgICAgPSAxNTQsCiAgICBXSU5FRDNEUlNfUE9JTlRTSVpFX01JTiAgICAgICAgICAgICA9IDE1NSwKICAgIFdJTkVEM0RSU19QT0lOVFNQUklURUVOQUJMRSAgICAgICAgID0gMTU2LAogICAgV0lORUQzRFJTX1BPSU5UU0NBTEVFTkFCTEUgICAgICAgICAgPSAxNTcsCiAgICBXSU5FRDNEUlNfUE9JTlRTQ0FMRV9BICAgICAgICAgICAgICA9IDE1OCwKICAgIFdJTkVEM0RSU19QT0lOVFNDQUxFX0IgICAgICAgICAgICAgID0gMTU5LAogICAgV0lORUQzRFJTX1BPSU5UU0NBTEVfQyAgICAgICAgICAgICAgPSAxNjAsCiAgICBXSU5FRDNEUlNfTVVMVElTQU1QTEVBTlRJQUxJQVMgICAgICA9IDE2MSwKICAgIFdJTkVEM0RSU19NVUxUSVNBTVBMRU1BU0sgICAgICAgICAgID0gMTYyLAogICAgV0lORUQzRFJTX1BBVENIRURHRVNUWUxFICAgICAgICAgICAgPSAxNjMsCiAgICBXSU5FRDNEUlNfUEFUQ0hTRUdNRU5UUyAgICAgICAgICAgICA9IDE2NCwgLyogZDNkOCAqLwogICAgV0lORUQzRFJTX0RFQlVHTU9OSVRPUlRPS0VOICAgICAgICAgPSAxNjUsCiAgICBXSU5FRDNEUlNfUE9JTlRTSVpFX01BWCAgICAgICAgICAgICA9IDE2NiwKICAgIFdJTkVEM0RSU19JTkRFWEVEVkVSVEVYQkxFTkRFTkFCTEUgID0gMTY3LAogICAgV0lORUQzRFJTX0NPTE9SV1JJVEVFTkFCTEUgICAgICAgICAgPSAxNjgsCiAgICBXSU5FRDNEUlNfVFdFRU5GQUNUT1IgICAgICAgICAgICAgICA9IDE3MCwKICAgIFdJTkVEM0RSU19CTEVORE9QICAgICAgICAgICAgICAgICAgID0gMTcxLAogICAgV0lORUQzRFJTX1BPU0lUSU9OT1JERVIgICAgICAgICAgICAgPSAxNzIsCiAgICBXSU5FRDNEUlNfTk9STUFMT1JERVIgICAgICAgICAgICAgICA9IDE3MywKICAgIFdJTkVEM0RSU19QT1NJVElPTkRFR1JFRSAgICAgICAgICAgID0gMTcyLAogICAgV0lORUQzRFJTX05PUk1BTERFR1JFRSAgICAgICAgICAgICAgPSAxNzMsCiAgICBXSU5FRDNEUlNfU0NJU1NPUlRFU1RFTkFCTEUgICAgICAgICA9IDE3NCwKICAgIFdJTkVEM0RSU19TTE9QRVNDQUxFREVQVEhCSUFTICAgICAgID0gMTc1LAogICAgV0lORUQzRFJTX0FOVElBTElBU0VETElORUVOQUJMRSAgICAgPSAxNzYsCiAgICBXSU5FRDNEUlNfTUlOVEVTU0VMTEFUSU9OTEVWRUwgICAgICA9IDE3OCwKICAgIFdJTkVEM0RSU19NQVhURVNTRUxMQVRJT05MRVZFTCAgICAgID0gMTc5LAogICAgV0lORUQzRFJTX0FEQVBUSVZFVEVTU19YICAgICAgICAgICAgPSAxODAsCiAgICBXSU5FRDNEUlNfQURBUFRJVkVURVNTX1kgICAgICAgICAgICA9IDE4MSwKICAgIFdJTkVEM0RSU19BREFQVElWRVRFU1NfWiAgICAgICAgICAgID0gMTgyLAogICAgV0lORUQzRFJTX0FEQVBUSVZFVEVTU19XICAgICAgICAgICAgPSAxODMsCiAgICBXSU5FRDNEUlNfRU5BQkxFQURBUFRJVkVURVNTRUxMQVRJT049IDE4NCwKICAgIFdJTkVEM0RSU19UV09TSURFRFNURU5DSUxNT0RFICAgICAgID0gMTg1LAogICAgV0lORUQzRFJTX0NDV19TVEVOQ0lMRkFJTCAgICAgICAgICAgPSAxODYsCiAgICBXSU5FRDNEUlNfQ0NXX1NURU5DSUxaRkFJTCAgICAgICAgICA9IDE4NywKICAgIFdJTkVEM0RSU19DQ1dfU1RFTkNJTFBBU1MgICAgICAgICAgID0gMTg4LAogICAgV0lORUQzRFJTX0NDV19TVEVOQ0lMRlVOQyAgICAgICAgICAgPSAxODksCiAgICBXSU5FRDNEUlNfQ09MT1JXUklURUVOQUJMRTEgICAgICAgICA9IDE5MCwKICAgIFdJTkVEM0RSU19DT0xPUldSSVRFRU5BQkxFMiAgICAgICAgID0gMTkxLAogICAgV0lORUQzRFJTX0NPTE9SV1JJVEVFTkFCTEUzICAgICAgICAgPSAxOTIsCiAgICBXSU5FRDNEUlNfQkxFTkRGQUNUT1IgICAgICAgICAgICAgICA9IDE5MywKICAgIFdJTkVEM0RSU19TUkdCV1JJVEVFTkFCTEUgICAgICAgICAgID0gMTk0LAogICAgV0lORUQzRFJTX0RFUFRIQklBUyAgICAgICAgICAgICAgICAgPSAxOTUsCiAgICBXSU5FRDNEUlNfV1JBUDggICAgICAgICAgICAgICAgICAgICA9IDE5OCwKICAgIFdJTkVEM0RSU19XUkFQOSAgICAgICAgICAgICAgICAgICAgID0gMTk5LAogICAgV0lORUQzRFJTX1dSQVAxMCAgICAgICAgICAgICAgICAgICAgPSAyMDAsCiAgICBXSU5FRDNEUlNfV1JBUDExICAgICAgICAgICAgICAgICAgICA9IDIwMSwKICAgIFdJTkVEM0RSU19XUkFQMTIgICAgICAgICAgICAgICAgICAgID0gMjAyLAogICAgV0lORUQzRFJTX1dSQVAxMyAgICAgICAgICAgICAgICAgICAgPSAyMDMsCiAgICBXSU5FRDNEUlNfV1JBUDE0ICAgICAgICAgICAgICAgICAgICA9IDIwNCwKICAgIFdJTkVEM0RSU19XUkFQMTUgICAgICAgICAgICAgICAgICAgID0gMjA1LAogICAgV0lORUQzRFJTX1NFUEFSQVRFQUxQSEFCTEVOREVOQUJMRSAgPSAyMDYsCiAgICBXSU5FRDNEUlNfU1JDQkxFTkRBTFBIQSAgICAgICAgICAgICA9IDIwNywKICAgIFdJTkVEM0RSU19ERVNUQkxFTkRBTFBIQSAgICAgICAgICAgID0gMjA4LAogICAgV0lORUQzRFJTX0JMRU5ET1BBTFBIQSAgICAgICAgICAgICAgPSAyMDksCgogICAgV0lORUQzRFJTX0ZPUkNFX0RXT1JEICAgICAgICAgICAgICAgPSAweDdmZmZmZmZmCn0gV0lORUQzRFJFTkRFUlNUQVRFVFlQRTsKCiNkZWZpbmUgV0lORUhJR0hFU1RfUkVOREVSX1NUQVRFICAgV0lORUQzRFJTX0JMRU5ET1BBTFBIQQogICAgICAgIC8qIEhpZ2hlc3QgV0lORUQzRFJTXyB2YWx1ZSAgICovCgojZGVmaW5lIFdJTkVEM0RDT0xPUldSSVRFRU5BQkxFX1JFRCAgICgxPDwwKQojZGVmaW5lIFdJTkVEM0RDT0xPUldSSVRFRU5BQkxFX0dSRUVOICgxPDwxKQojZGVmaW5lIFdJTkVEM0RDT0xPUldSSVRFRU5BQkxFX0JMVUUgICgxPDwyKQojZGVmaW5lIFdJTkVEM0RDT0xPUldSSVRFRU5BQkxFX0FMUEhBICgxPDwzKQoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEQkxFTkQgewogICAgV0lORUQzREJMRU5EX1pFUk8gICAgICAgICAgICAgICA9ICAxLAogICAgV0lORUQzREJMRU5EX09ORSAgICAgICAgICAgICAgICA9ICAyLAogICAgV0lORUQzREJMRU5EX1NSQ0NPTE9SICAgICAgICAgICA9ICAzLAogICAgV0lORUQzREJMRU5EX0lOVlNSQ0NPTE9SICAgICAgICA9ICA0LAogICAgV0lORUQzREJMRU5EX1NSQ0FMUEhBICAgICAgICAgICA9ICA1LAogICAgV0lORUQzREJMRU5EX0lOVlNSQ0FMUEhBICAgICAgICA9ICA2LAogICAgV0lORUQzREJMRU5EX0RFU1RBTFBIQSAgICAgICAgICA9ICA3LAogICAgV0lORUQzREJMRU5EX0lOVkRFU1RBTFBIQSAgICAgICA9ICA4LAogICAgV0lORUQzREJMRU5EX0RFU1RDT0xPUiAgICAgICAgICA9ICA5LAogICAgV0lORUQzREJMRU5EX0lOVkRFU1RDT0xPUiAgICAgICA9IDEwLAogICAgV0lORUQzREJMRU5EX1NSQ0FMUEhBU0FUICAgICAgICA9IDExLAogICAgV0lORUQzREJMRU5EX0JPVEhTUkNBTFBIQSAgICAgICA9IDEyLAogICAgV0lORUQzREJMRU5EX0JPVEhJTlZTUkNBTFBIQSAgICA9IDEzLAogICAgV0lORUQzREJMRU5EX0JMRU5ERkFDVE9SICAgICAgICA9IDE0LAogICAgV0lORUQzREJMRU5EX0lOVkJMRU5ERkFDVE9SICAgICA9IDE1LAogICAgV0lORUQzREJMRU5EX0ZPUkNFX0RXT1JEICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEQkxFTkQ7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RCTEVORE9QIHsKICAgIFdJTkVEM0RCTEVORE9QX0FERCAgICAgICAgICAgICAgPSAxLAogICAgV0lORUQzREJMRU5ET1BfU1VCVFJBQ1QgICAgICAgICA9IDIsCiAgICBXSU5FRDNEQkxFTkRPUF9SRVZTVUJUUkFDVCAgICAgID0gMywKICAgIFdJTkVEM0RCTEVORE9QX01JTiAgICAgICAgICAgICAgPSA0LAogICAgV0lORUQzREJMRU5ET1BfTUFYICAgICAgICAgICAgICA9IDUsCgogICAgV0lORUQzREJMRU5ET1BfRk9SQ0VfRFdPUkQgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEQkxFTkRPUDsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFZFUlRFWEJMRU5ERkxBR1MgewogICAgV0lORUQzRFZCRl9ESVNBQkxFICA9ICAgMCwKICAgIFdJTkVEM0RWQkZfMVdFSUdIVFMgPSAgIDEsCiAgICBXSU5FRDNEVkJGXzJXRUlHSFRTID0gICAyLAogICAgV0lORUQzRFZCRl8zV0VJR0hUUyA9ICAgMywKICAgIFdJTkVEM0RWQkZfVFdFRU5JTkcgPSAyNTUsCiAgICBXSU5FRDNEVkJGXzBXRUlHSFRTID0gMjU2Cn0gV0lORUQzRFZFUlRFWEJMRU5ERkxBR1M7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RDTVBGVU5DIHsKICAgIFdJTkVEM0RDTVBfTkVWRVIgICAgICAgICAgICAgICAgPSAxLAogICAgV0lORUQzRENNUF9MRVNTICAgICAgICAgICAgICAgICA9IDIsCiAgICBXSU5FRDNEQ01QX0VRVUFMICAgICAgICAgICAgICAgID0gMywKICAgIFdJTkVEM0RDTVBfTEVTU0VRVUFMICAgICAgICAgICAgPSA0LAogICAgV0lORUQzRENNUF9HUkVBVEVSICAgICAgICAgICAgICA9IDUsCiAgICBXSU5FRDNEQ01QX05PVEVRVUFMICAgICAgICAgICAgID0gNiwKICAgIFdJTkVEM0RDTVBfR1JFQVRFUkVRVUFMICAgICAgICAgPSA3LAogICAgV0lORUQzRENNUF9BTFdBWVMgICAgICAgICAgICAgICA9IDgsCgogICAgV0lORUQzRENNUF9GT1JDRV9EV09SRCAgICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEQ01QRlVOQzsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFpCVUZGRVJUWVBFIHsKICAgIFdJTkVEM0RaQl9GQUxTRSAgICAgICAgICAgICAgICAgPSAwLAogICAgV0lORUQzRFpCX1RSVUUgICAgICAgICAgICAgICAgICA9IDEsCiAgICBXSU5FRDNEWkJfVVNFVyAgICAgICAgICAgICAgICAgID0gMiwKCiAgICBXSU5FRDNEWkJfRk9SQ0VfRFdPUkQgICAgICAgICAgID0gMHg3ZmZmZmZmZgp9IFdJTkVEM0RaQlVGRkVSVFlQRTsKCnR5cGVkZWYgZW51bSBfV0lORUQzREZPR01PREUgewogICAgV0lORUQzREZPR19OT05FICAgICAgICAgICAgICAgICA9IDAsCiAgICBXSU5FRDNERk9HX0VYUCAgICAgICAgICAgICAgICAgID0gMSwKICAgIFdJTkVEM0RGT0dfRVhQMiAgICAgICAgICAgICAgICAgPSAyLAogICAgV0lORUQzREZPR19MSU5FQVIgICAgICAgICAgICAgICA9IDMsCgogICAgV0lORUQzREZPR19GT1JDRV9EV09SRCAgICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNERk9HTU9ERTsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFNIQURFTU9ERSB7CiAgICBXSU5FRDNEU0hBREVfRkxBVCAgICAgICAgICAgICAgID0gMSwKICAgIFdJTkVEM0RTSEFERV9HT1VSQVVEICAgICAgICAgICAgPSAyLAogICAgV0lORUQzRFNIQURFX1BIT05HICAgICAgICAgICAgICA9IDMsCgogICAgV0lORUQzRFNIQURFX0ZPUkNFX0RXT1JEICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEU0hBREVNT0RFOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNERklMTE1PREUgewogICAgV0lORUQzREZJTExfUE9JTlQgICAgICAgICAgICAgICA9IDEsCiAgICBXSU5FRDNERklMTF9XSVJFRlJBTUUgICAgICAgICAgID0gMiwKICAgIFdJTkVEM0RGSUxMX1NPTElEICAgICAgICAgICAgICAgPSAzLAoKICAgIFdJTkVEM0RGSUxMX0ZPUkNFX0RXT1JEICAgICAgICAgPSAweDdmZmZmZmZmCn0gV0lORUQzREZJTExNT0RFOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEQ1VMTCB7CiAgICBXSU5FRDNEQ1VMTF9OT05FICAgICAgICAgICAgICAgID0gMSwKICAgIFdJTkVEM0RDVUxMX0NXICAgICAgICAgICAgICAgICAgPSAyLAogICAgV0lORUQzRENVTExfQ0NXICAgICAgICAgICAgICAgICA9IDMsCgogICAgV0lORUQzRENVTExfRk9SQ0VfRFdPUkQgICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEQ1VMTDsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFNURU5DSUxPUCB7CiAgICBXSU5FRDNEU1RFTkNJTE9QX0tFRVAgICAgICAgICAgID0gMSwKICAgIFdJTkVEM0RTVEVOQ0lMT1BfWkVSTyAgICAgICAgICAgPSAyLAogICAgV0lORUQzRFNURU5DSUxPUF9SRVBMQUNFICAgICAgICA9IDMsCiAgICBXSU5FRDNEU1RFTkNJTE9QX0lOQ1JTQVQgICAgICAgID0gNCwKICAgIFdJTkVEM0RTVEVOQ0lMT1BfREVDUlNBVCAgICAgICAgPSA1LAogICAgV0lORUQzRFNURU5DSUxPUF9JTlZFUlQgICAgICAgICA9IDYsCiAgICBXSU5FRDNEU1RFTkNJTE9QX0lOQ1IgICAgICAgICAgID0gNywKICAgIFdJTkVEM0RTVEVOQ0lMT1BfREVDUiAgICAgICAgICAgPSA4LAoKICAgIFdJTkVEM0RTVEVOQ0lMT1BfRk9SQ0VfRFdPUkQgICAgPSAweDdmZmZmZmZmCn0gV0lORUQzRFNURU5DSUxPUDsKCnR5cGVkZWYgZW51bSBfV0lORUQzRE1BVEVSSUFMQ09MT1JTT1VSQ0UgewogICAgV0lORUQzRE1DU19NQVRFUklBTCAgICAgICAgID0gMCwKICAgIFdJTkVEM0RNQ1NfQ09MT1IxICAgICAgICAgICA9IDEsCiAgICBXSU5FRDNETUNTX0NPTE9SMiAgICAgICAgICAgPSAyLAoKICAgIFdJTkVEM0RNQ1NfRk9SQ0VfRFdPUkQgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNETUFURVJJQUxDT0xPUlNPVVJDRTsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFBBVENIRURHRVNUWUxFIHsKICAgV0lORUQzRFBBVENIRURHRV9ESVNDUkVURSAgICA9IDAsCiAgIFdJTkVEM0RQQVRDSEVER0VfQ09OVElOVU9VUyAgPSAxLAoKICAgV0lORUQzRFBBVENIRURHRV9GT1JDRV9EV09SRCA9IDB4N2ZmZmZmZmYsCn0gV0lORUQzRFBBVENIRURHRVNUWUxFOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RESVNQTEFZTU9ERSB7CiAgICBVSU5UICAgICAgICAgICAgV2lkdGg7CiAgICBVSU5UICAgICAgICAgICAgSGVpZ2h0OwogICAgVUlOVCAgICAgICAgICAgIFJlZnJlc2hSYXRlOwogICAgV0lORUQzREZPUk1BVCAgIEZvcm1hdDsKfSBXSU5FRDNERElTUExBWU1PREU7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RCQUNLQlVGRkVSX1RZUEUgewogICAgV0lORUQzREJBQ0tCVUZGRVJfVFlQRV9NT05PICAgICAgICAgPSAwLAogICAgV0lORUQzREJBQ0tCVUZGRVJfVFlQRV9MRUZUICAgICAgICAgPSAxLAogICAgV0lORUQzREJBQ0tCVUZGRVJfVFlQRV9SSUdIVCAgICAgICAgPSAyLAoKICAgIFdJTkVEM0RCQUNLQlVGRkVSX1RZUEVfRk9SQ0VfRFdPUkQgID0gMHg3ZmZmZmZmZgp9IFdJTkVEM0RCQUNLQlVGRkVSX1RZUEU7CgojZGVmaW5lIFdJTkVEM0RBREFQVEVSX0RFRkFVTFQgICAgICAgICAgMAojZGVmaW5lIFdJTkVEM0RFTlVNX05PX1dIUUxfTEVWRUwgICAgICAgMgojZGVmaW5lIFdJTkVEM0RQUkVTRU5UX0JBQ0tfQlVGRkVSX01BWCAgMwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEU1dBUEVGRkVDVCB7CiAgICBXSU5FRDNEU1dBUEVGRkVDVF9ESVNDQVJEICAgICAgICAgPSAxLAogICAgV0lORUQzRFNXQVBFRkZFQ1RfRkxJUCAgICAgICAgICAgID0gMiwKICAgIFdJTkVEM0RTV0FQRUZGRUNUX0NPUFkgICAgICAgICAgICA9IDMsCiAgICBXSU5FRDNEU1dBUEVGRkVDVF9DT1BZX1ZTWU5DICAgICAgPSA0LAogICAgV0lORUQzRFNXQVBFRkZFQ1RfRk9SQ0VfRFdPUkQgICAgID0gMHhGRkZGRkZGRgp9IFdJTkVEM0RTV0FQRUZGRUNUOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEU0FNUExFUlNUQVRFVFlQRSB7CiAgICBXSU5FRDNEU0FNUF9BRERSRVNTVSAgICAgICA9IDEsCiAgICBXSU5FRDNEU0FNUF9BRERSRVNTViAgICAgICA9IDIsCiAgICBXSU5FRDNEU0FNUF9BRERSRVNTVyAgICAgICA9IDMsCiAgICBXSU5FRDNEU0FNUF9CT1JERVJDT0xPUiAgICA9IDQsCiAgICBXSU5FRDNEU0FNUF9NQUdGSUxURVIgICAgICA9IDUsCiAgICBXSU5FRDNEU0FNUF9NSU5GSUxURVIgICAgICA9IDYsCiAgICBXSU5FRDNEU0FNUF9NSVBGSUxURVIgICAgICA9IDcsCiAgICBXSU5FRDNEU0FNUF9NSVBNQVBMT0RCSUFTICA9IDgsCiAgICBXSU5FRDNEU0FNUF9NQVhNSVBMRVZFTCAgICA9IDksCiAgICBXSU5FRDNEU0FNUF9NQVhBTklTT1RST1BZICA9IDEwLAogICAgV0lORUQzRFNBTVBfU1JHQlRFWFRVUkUgICAgPSAxMSwKICAgIFdJTkVEM0RTQU1QX0VMRU1FTlRJTkRFWCAgID0gMTIsCiAgICBXSU5FRDNEU0FNUF9ETUFQT0ZGU0VUICAgICA9IDEzLAoKICAgIFdJTkVEM0RTQU1QX0ZPUkNFX0RXT1JEICAgPSAweDdmZmZmZmZmLAp9IFdJTkVEM0RTQU1QTEVSU1RBVEVUWVBFOwojZGVmaW5lIFdJTkVEM0RfSElHSEVTVF9TQU1QTEVSX1NUQVRFIFdJTkVEM0RTQU1QX0RNQVBPRkZTRVQKCnR5cGVkZWYgZW51bSBfV0lORUQzRE1VTFRJU0FNUExFX1RZUEUgewogICAgV0lORUQzRE1VTFRJU0FNUExFX05PTkUgICAgICAgICAgPSAgMCwKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV9OT05NQVNLQUJMRSAgID0gIDEsCiAgICBXSU5FRDNETVVMVElTQU1QTEVfMl9TQU1QTEVTICAgICA9ICAyLAogICAgV0lORUQzRE1VTFRJU0FNUExFXzNfU0FNUExFUyAgICAgPSAgMywKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV80X1NBTVBMRVMgICAgID0gIDQsCiAgICBXSU5FRDNETVVMVElTQU1QTEVfNV9TQU1QTEVTICAgICA9ICA1LAogICAgV0lORUQzRE1VTFRJU0FNUExFXzZfU0FNUExFUyAgICAgPSAgNiwKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV83X1NBTVBMRVMgICAgID0gIDcsCiAgICBXSU5FRDNETVVMVElTQU1QTEVfOF9TQU1QTEVTICAgICA9ICA4LAogICAgV0lORUQzRE1VTFRJU0FNUExFXzlfU0FNUExFUyAgICAgPSAgOSwKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV8xMF9TQU1QTEVTICAgID0gMTAsCiAgICBXSU5FRDNETVVMVElTQU1QTEVfMTFfU0FNUExFUyAgICA9IDExLAogICAgV0lORUQzRE1VTFRJU0FNUExFXzEyX1NBTVBMRVMgICAgPSAxMiwKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV8xM19TQU1QTEVTICAgID0gMTMsCiAgICBXSU5FRDNETVVMVElTQU1QTEVfMTRfU0FNUExFUyAgICA9IDE0LAogICAgV0lORUQzRE1VTFRJU0FNUExFXzE1X1NBTVBMRVMgICAgPSAxNSwKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV8xNl9TQU1QTEVTICAgID0gMTYsCgogICAgV0lORUQzRE1VTFRJU0FNUExFX0ZPUkNFX0RXT1JEICAgPSAweGZmZmZmZmZmCn0gV0lORUQzRE1VTFRJU0FNUExFX1RZUEU7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RURVhUVVJFU1RBR0VTVEFURVRZUEUgewogICAgV0lORUQzRFRTU19DT0xPUk9QICAgICAgICAgICAgICAgPSAgMSwKICAgIFdJTkVEM0RUU1NfQ09MT1JBUkcxICAgICAgICAgICAgID0gIDIsCiAgICBXSU5FRDNEVFNTX0NPTE9SQVJHMiAgICAgICAgICAgICA9ICAzLAogICAgV0lORUQzRFRTU19BTFBIQU9QICAgICAgICAgICAgICAgPSAgNCwKICAgIFdJTkVEM0RUU1NfQUxQSEFBUkcxICAgICAgICAgICAgID0gIDUsCiAgICBXSU5FRDNEVFNTX0FMUEhBQVJHMiAgICAgICAgICAgICA9ICA2LAogICAgV0lORUQzRFRTU19CVU1QRU5WTUFUMDAgICAgICAgICAgPSAgNywKICAgIFdJTkVEM0RUU1NfQlVNUEVOVk1BVDAxICAgICAgICAgID0gIDgsCiAgICBXSU5FRDNEVFNTX0JVTVBFTlZNQVQxMCAgICAgICAgICA9ICA5LAogICAgV0lORUQzRFRTU19CVU1QRU5WTUFUMTEgICAgICAgICAgPSAxMCwKICAgIFdJTkVEM0RUU1NfVEVYQ09PUkRJTkRFWCAgICAgICAgID0gMTEsCiAgICBXSU5FRDNEVFNTX0FERFJFU1MgICAgICAgICAgICAgICA9IDEyLAogICAgV0lORUQzRFRTU19BRERSRVNTVSAgICAgICAgICAgICAgPSAxMywKICAgIFdJTkVEM0RUU1NfQUREUkVTU1YgICAgICAgICAgICAgID0gMTQsCiAgICBXSU5FRDNEVFNTX0JPUkRFUkNPTE9SICAgICAgICAgICA9IDE1LAogICAgV0lORUQzRFRTU19NQUdGSUxURVIgICAgICAgICAgICAgPSAxNiwKICAgIFdJTkVEM0RUU1NfTUlORklMVEVSICAgICAgICAgICAgID0gMTcsCiAgICBXSU5FRDNEVFNTX01JUEZJTFRFUiAgICAgICAgICAgICA9IDE4LAogICAgV0lORUQzRFRTU19NSVBNQVBMT0RCSUFTICAgICAgICAgPSAxOSwKICAgIFdJTkVEM0RUU1NfTUFYTUlQTEVWRUwgICAgICAgICAgID0gMjAsCiAgICBXSU5FRDNEVFNTX01BWEFOSVNPVFJPUFkgICAgICAgICA9IDIxLAogICAgV0lORUQzRFRTU19CVU1QRU5WTFNDQUxFICAgICAgICAgPSAyMiwKICAgIFdJTkVEM0RUU1NfQlVNUEVOVkxPRkZTRVQgICAgICAgID0gMjMsCiAgICBXSU5FRDNEVFNTX1RFWFRVUkVUUkFOU0ZPUk1GTEFHUyA9IDI0LAogICAgV0lORUQzRFRTU19BRERSRVNTVyAgICAgICAgICAgICAgPSAyNSwKICAgIFdJTkVEM0RUU1NfQ09MT1JBUkcwICAgICAgICAgICAgID0gMjYsCiAgICBXSU5FRDNEVFNTX0FMUEhBQVJHMCAgICAgICAgICAgICA9IDI3LAogICAgV0lORUQzRFRTU19SRVNVTFRBUkcgICAgICAgICAgICAgPSAyOCwKICAgIFdJTkVEM0RUU1NfQ09OU1RBTlQgICAgICAgICAgICAgID0gMzIsCgogICAgV0lORUQzRFRTU19GT1JDRV9EV09SRCAgICAgICAgICAgPSAweDdmZmZmZmZmCn0gV0lORUQzRFRFWFRVUkVTVEFHRVNUQVRFVFlQRTsKCiNkZWZpbmUgV0lORUQzRFRTU19UQ0lfUEFTU1RIUlUgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAKI2RlZmluZSBXSU5FRDNEVFNTX1RDSV9DQU1FUkFTUEFDRU5PUk1BTCAgICAgICAgICAgICAgMHgxMDAwMAojZGVmaW5lIFdJTkVEM0RUU1NfVENJX0NBTUVSQVNQQUNFUE9TSVRJT04gICAgICAgICAgICAweDIwMDAwCiNkZWZpbmUgV0lORUQzRFRTU19UQ0lfQ0FNRVJBU1BBQ0VSRUZMRUNUSU9OVkVDVE9SICAgIDB4MzAwMDAKI2RlZmluZSBXSU5FRDNEVFNTX1RDSV9TUEhFUkVNQVAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMAoKI2RlZmluZSBXSU5FRDNEX0hJR0hFU1RfVEVYVFVSRV9TVEFURSBXSU5FRDNEVFNTX0NPTlNUQU5UCgp0eXBlZGVmIGVudW0gX1dJTkVEM0RURVhUVVJFVFJBTlNGT1JNRkxBR1MgewogICAgV0lORUQzRFRURkZfRElTQUJMRSAgICAgICAgID0gICAwLAogICAgV0lORUQzRFRURkZfQ09VTlQxICAgICAgICAgID0gICAxLAogICAgV0lORUQzRFRURkZfQ09VTlQyICAgICAgICAgID0gICAyLAogICAgV0lORUQzRFRURkZfQ09VTlQzICAgICAgICAgID0gICAzLAogICAgV0lORUQzRFRURkZfQ09VTlQ0ICAgICAgICAgID0gICA0LAogICAgV0lORUQzRFRURkZfUFJPSkVDVEVEICAgICAgID0gMjU2LAoKICAgIFdJTkVEM0RUVEZGX0ZPUkNFX0RXT1JEICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEVEVYVFVSRVRSQU5TRk9STUZMQUdTOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEVEVYVFVSRU9QIHsKICAgIFdJTkVEM0RUT1BfRElTQUJMRSAgICAgICAgICAgICAgICAgICA9ICAxLAogICAgV0lORUQzRFRPUF9TRUxFQ1RBUkcxICAgICAgICAgICAgICAgID0gIDIsCiAgICBXSU5FRDNEVE9QX1NFTEVDVEFSRzIgICAgICAgICAgICAgICAgPSAgMywKICAgIFdJTkVEM0RUT1BfTU9EVUxBVEUgICAgICAgICAgICAgICAgICA9ICA0LAogICAgV0lORUQzRFRPUF9NT0RVTEFURTJYICAgICAgICAgICAgICAgID0gIDUsCiAgICBXSU5FRDNEVE9QX01PRFVMQVRFNFggICAgICAgICAgICAgICAgPSAgNiwKICAgIFdJTkVEM0RUT1BfQUREICAgICAgICAgICAgICAgICAgICAgICA9ICA3LAogICAgV0lORUQzRFRPUF9BRERTSUdORUQgICAgICAgICAgICAgICAgID0gIDgsCiAgICBXSU5FRDNEVE9QX0FERFNJR05FRDJYICAgICAgICAgICAgICAgPSAgOSwKICAgIFdJTkVEM0RUT1BfU1VCVFJBQ1QgICAgICAgICAgICAgICAgICA9IDEwLAogICAgV0lORUQzRFRPUF9BRERTTU9PVEggICAgICAgICAgICAgICAgID0gMTEsCiAgICBXSU5FRDNEVE9QX0JMRU5ERElGRlVTRUFMUEhBICAgICAgICAgPSAxMiwKICAgIFdJTkVEM0RUT1BfQkxFTkRURVhUVVJFQUxQSEEgICAgICAgICA9IDEzLAogICAgV0lORUQzRFRPUF9CTEVOREZBQ1RPUkFMUEhBICAgICAgICAgID0gMTQsCiAgICBXSU5FRDNEVE9QX0JMRU5EVEVYVFVSRUFMUEhBUE0gICAgICAgPSAxNSwKICAgIFdJTkVEM0RUT1BfQkxFTkRDVVJSRU5UQUxQSEEgICAgICAgICA9IDE2LAogICAgV0lORUQzRFRPUF9QUkVNT0RVTEFURSAgICAgICAgICAgICAgID0gMTcsCiAgICBXSU5FRDNEVE9QX01PRFVMQVRFQUxQSEFfQUREQ09MT1IgICAgPSAxOCwKICAgIFdJTkVEM0RUT1BfTU9EVUxBVEVDT0xPUl9BRERBTFBIQSAgICA9IDE5LAogICAgV0lORUQzRFRPUF9NT0RVTEFURUlOVkFMUEhBX0FERENPTE9SID0gMjAsCiAgICBXSU5FRDNEVE9QX01PRFVMQVRFSU5WQ09MT1JfQUREQUxQSEEgPSAyMSwKICAgIFdJTkVEM0RUT1BfQlVNUEVOVk1BUCAgICAgICAgICAgICAgICA9IDIyLAogICAgV0lORUQzRFRPUF9CVU1QRU5WTUFQTFVNSU5BTkNFICAgICAgID0gMjMsCiAgICBXSU5FRDNEVE9QX0RPVFBST0RVQ1QzICAgICAgICAgICAgICAgPSAyNCwKICAgIFdJTkVEM0RUT1BfTVVMVElQTFlBREQgICAgICAgICAgICAgICA9IDI1LAogICAgV0lORUQzRFRPUF9MRVJQICAgICAgICAgICAgICAgICAgICAgID0gMjYsCgogICAgV0lORUQzRFRPUF9GT1JDRV9EV09SRCAgICAgICAgICAgICAgID0gMHg3ZmZmZmZmZiwKfSBXSU5FRDNEVEVYVFVSRU9QOwoKI2RlZmluZSBXSU5FRDNEVEFfU0VMRUNUTUFTSyAgICAgICAgMHgwMDAwMDAwZgojZGVmaW5lIFdJTkVEM0RUQV9ESUZGVVNFICAgICAgICAgICAweDAwMDAwMDAwCiNkZWZpbmUgV0lORUQzRFRBX0NVUlJFTlQgICAgICAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBXSU5FRDNEVEFfVEVYVFVSRSAgICAgICAgICAgMHgwMDAwMDAwMgojZGVmaW5lIFdJTkVEM0RUQV9URkFDVE9SICAgICAgICAgICAweDAwMDAwMDAzCiNkZWZpbmUgV0lORUQzRFRBX1NQRUNVTEFSICAgICAgICAgIDB4MDAwMDAwMDQKI2RlZmluZSBXSU5FRDNEVEFfVEVNUCAgICAgICAgICAgICAgMHgwMDAwMDAwNQojZGVmaW5lIFdJTkVEM0RUQV9DT05TVEFOVCAgICAgICAgICAweDAwMDAwMDA2CiNkZWZpbmUgV0lORUQzRFRBX0NPTVBMRU1FTlQgICAgICAgIDB4MDAwMDAwMTAKI2RlZmluZSBXSU5FRDNEVEFfQUxQSEFSRVBMSUNBVEUgICAgMHgwMDAwMDAyMAoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEVEVYVFVSRUFERFJFU1MgewogICAgV0lORUQzRFRBRERSRVNTX1dSQVAgICAgICAgICAgICA9IDEsCiAgICBXSU5FRDNEVEFERFJFU1NfTUlSUk9SICAgICAgICAgID0gMiwKICAgIFdJTkVEM0RUQUREUkVTU19DTEFNUCAgICAgICAgICAgPSAzLAogICAgV0lORUQzRFRBRERSRVNTX0JPUkRFUiAgICAgICAgICA9IDQsCiAgICBXSU5FRDNEVEFERFJFU1NfTUlSUk9ST05DRSAgICAgID0gNSwKCiAgICBXSU5FRDNEVEFERFJFU1NfRk9SQ0VfRFdPUkQgICAgID0gMHg3ZmZmZmZmZgp9IFdJTkVEM0RURVhUVVJFQUREUkVTUzsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFRSQU5TRk9STVNUQVRFVFlQRSB7CiAgICBXSU5FRDNEVFNfVklFVyAgICAgICAgICAgID0gIDIsCiAgICBXSU5FRDNEVFNfUFJPSkVDVElPTiAgICAgID0gIDMsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTAgICAgICAgID0gMTYsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTEgICAgICAgID0gMTcsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTIgICAgICAgID0gMTgsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTMgICAgICAgID0gMTksCiAgICBXSU5FRDNEVFNfVEVYVFVSRTQgICAgICAgID0gMjAsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTUgICAgICAgID0gMjEsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTYgICAgICAgID0gMjIsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTcgICAgICAgID0gMjMsCgogICAgV0lORUQzRFRTX0ZPUkNFX0RXT1JEICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEVFJBTlNGT1JNU1RBVEVUWVBFOwoKI2RlZmluZSBXSU5FRDNEVFNfV09STEQgIFdJTkVEM0RUU19XT1JMRE1BVFJJWCgwKQojZGVmaW5lIFdJTkVEM0RUU19XT1JMRDEgV0lORUQzRFRTX1dPUkxETUFUUklYKDEpCiNkZWZpbmUgV0lORUQzRFRTX1dPUkxEMiBXSU5FRDNEVFNfV09STERNQVRSSVgoMikKI2RlZmluZSBXSU5FRDNEVFNfV09STEQzIFdJTkVEM0RUU19XT1JMRE1BVFJJWCgzKQojZGVmaW5lIFdJTkVEM0RUU19XT1JMRE1BVFJJWChpbmRleCkgKFdJTkVEM0RUUkFOU0ZPUk1TVEFURVRZUEUpKGluZGV4ICsgMjU2KQoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEQkFTSVNUWVBFIHsKICAgV0lORUQzREJBU0lTX0JFWklFUiAgICAgICAgPSAwLAogICBXSU5FRDNEQkFTSVNfQlNQTElORSAgICAgICA9IDEsCiAgIFdJTkVEM0RCQVNJU19JTlRFUlBPTEFURSAgID0gMiwKCiAgIFdJTkVEM0RCQVNJU19GT1JDRV9EV09SRCAgID0gMHg3ZmZmZmZmZgp9IFdJTkVEM0RCQVNJU1RZUEU7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RDVUJFTUFQX0ZBQ0VTIHsKICAgIFdJTkVEM0RDVUJFTUFQX0ZBQ0VfUE9TSVRJVkVfWCAgICAgPSAwLAogICAgV0lORUQzRENVQkVNQVBfRkFDRV9ORUdBVElWRV9YICAgICA9IDEsCiAgICBXSU5FRDNEQ1VCRU1BUF9GQUNFX1BPU0lUSVZFX1kgICAgID0gMiwKICAgIFdJTkVEM0RDVUJFTUFQX0ZBQ0VfTkVHQVRJVkVfWSAgICAgPSAzLAogICAgV0lORUQzRENVQkVNQVBfRkFDRV9QT1NJVElWRV9aICAgICA9IDQsCiAgICBXSU5FRDNEQ1VCRU1BUF9GQUNFX05FR0FUSVZFX1ogICAgID0gNSwKCiAgICBXSU5FRDNEQ1VCRU1BUF9GQUNFX0ZPUkNFX0RXT1JEICAgID0gMHhmZmZmZmZmZgp9IFdJTkVEM0RDVUJFTUFQX0ZBQ0VTOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEVEVYVFVSRUZJTFRFUlRZUEUgewogICAgV0lORUQzRFRFWEZfTk9ORSAgICAgICAgICAgID0gMCwKICAgIFdJTkVEM0RURVhGX1BPSU5UICAgICAgICAgICA9IDEsCiAgICBXSU5FRDNEVEVYRl9MSU5FQVIgICAgICAgICAgPSAyLAogICAgV0lORUQzRFRFWEZfQU5JU09UUk9QSUMgICAgID0gMywKICAgIFdJTkVEM0RURVhGX0ZMQVRDVUJJQyAgICAgICA9IDQsCiAgICBXSU5FRDNEVEVYRl9HQVVTU0lBTkNVQklDICAgPSA1LAogICAgV0lORUQzRFRFWEZfUFlSQU1JREFMUVVBRCAgID0gNiwKICAgIFdJTkVEM0RURVhGX0dBVVNTSUFOUVVBRCAgICA9IDcsCiAgICBXSU5FRDNEVEVYRl9GT1JDRV9EV09SRCAgICAgPSAweDdmZmZmZmZmCn0gV0lORUQzRFRFWFRVUkVGSUxURVJUWVBFOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVERDNEUkVDVFBBVENIX0lORk8gewogICAgVUlOVCAgICAgICAgICAgICAgICBTdGFydFZlcnRleE9mZnNldFdpZHRoOwogICAgVUlOVCAgICAgICAgICAgICAgICBTdGFydFZlcnRleE9mZnNldEhlaWdodDsKICAgIFVJTlQgICAgICAgICAgICAgICAgV2lkdGg7CiAgICBVSU5UICAgICAgICAgICAgICAgIEhlaWdodDsKICAgIFVJTlQgICAgICAgICAgICAgICAgU3RyaWRlOwogICAgV0lORUQzREJBU0lTVFlQRSAgICBCYXNpczsKICAgIFdJTkVEM0RERUdSRUVUWVBFICAgRGVncmVlOwp9IFdJTkVEM0RSRUNUUEFUQ0hfSU5GTzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEVFJJUEFUQ0hfSU5GTyB7CiAgICBVSU5UICAgICAgICAgICAgICAgIFN0YXJ0VmVydGV4T2Zmc2V0OwogICAgVUlOVCAgICAgICAgICAgICAgICBOdW1WZXJ0aWNlczsKICAgIFdJTkVEM0RCQVNJU1RZUEUgICAgQmFzaXM7CiAgICBXSU5FRDNEREVHUkVFVFlQRSAgIERlZ3JlZTsKfSBXSU5FRDNEVFJJUEFUQ0hfSU5GTzsKCgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzREFEQVBURVJfSURFTlRJRklFUiB7CiAgICBjaGFyICAgICAgICAgICAqRHJpdmVyOwogICAgY2hhciAgICAgICAgICAgKkRlc2NyaXB0aW9uOwogICAgY2hhciAgICAgICAgICAgKkRldmljZU5hbWU7CiAgICBMQVJHRV9JTlRFR0VSICAqRHJpdmVyVmVyc2lvbjsgCiAgICBEV09SRCAgICAgICAgICAqVmVuZG9ySWQ7CiAgICBEV09SRCAgICAgICAgICAqRGV2aWNlSWQ7CiAgICBEV09SRCAgICAgICAgICAqU3ViU3lzSWQ7CiAgICBEV09SRCAgICAgICAgICAqUmV2aXNpb247CiAgICBHVUlEICAgICAgICAgICAqRGV2aWNlSWRlbnRpZmllcjsKICAgIERXT1JEICAgICAgICAgICpXSFFMTGV2ZWw7Cn0gV0lORUQzREFEQVBURVJfSURFTlRJRklFUjsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEUFJFU0VOVF9QQVJBTUVURVJTIHsKICAgIFVJTlQgICAgICAgICAgICAgICAgICAgIEJhY2tCdWZmZXJXaWR0aDsKICAgIFVJTlQgICAgICAgICAgICAgICAgICAgIEJhY2tCdWZmZXJIZWlnaHQ7CiAgICBXSU5FRDNERk9STUFUICAgICAgICAgICBCYWNrQnVmZmVyRm9ybWF0OwogICAgVUlOVCAgICAgICAgICAgICAgICAgICAgQmFja0J1ZmZlckNvdW50OwogICAgV0lORUQzRE1VTFRJU0FNUExFX1RZUEUgTXVsdGlTYW1wbGVUeXBlOwogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgTXVsdGlTYW1wbGVRdWFsaXR5OwogICAgV0lORUQzRFNXQVBFRkZFQ1QgICAgICAgU3dhcEVmZmVjdDsKICAgIEhXTkQgICAgICAgICAgICAgICAgICAgIGhEZXZpY2VXaW5kb3c7CiAgICBCT09MICAgICAgICAgICAgICAgICAgICBXaW5kb3dlZDsKICAgIEJPT0wgICAgICAgICAgICAgICAgICAgIEVuYWJsZUF1dG9EZXB0aFN0ZW5jaWw7CiAgICBXSU5FRDNERk9STUFUICAgICAgICAgICBBdXRvRGVwdGhTdGVuY2lsRm9ybWF0OwogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgRmxhZ3M7CiAgICBVSU5UICAgICAgICAgICAgICAgICAgICBGdWxsU2NyZWVuX1JlZnJlc2hSYXRlSW5IejsKICAgIFVJTlQgICAgICAgICAgICAgICAgICAgIFByZXNlbnRhdGlvbkludGVydmFsOwp9IFdJTkVEM0RQUkVTRU5UX1BBUkFNRVRFUlM7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RSRVNPVVJDRVRZUEUgewogICAgV0lORUQzRFJUWVBFX1NVUkZBQ0UgICAgICAgICAgICAgICAgPSAgMSwKICAgIFdJTkVEM0RSVFlQRV9WT0xVTUUgICAgICAgICAgICAgICAgID0gIDIsCiAgICBXSU5FRDNEUlRZUEVfVEVYVFVSRSAgICAgICAgICAgICAgICA9ICAzLAogICAgV0lORUQzRFJUWVBFX1ZPTFVNRVRFWFRVUkUgICAgICAgICAgPSAgNCwKICAgIFdJTkVEM0RSVFlQRV9DVUJFVEVYVFVSRSAgICAgICAgICAgID0gIDUsCiAgICBXSU5FRDNEUlRZUEVfVkVSVEVYQlVGRkVSICAgICAgICAgICA9ICA2LAogICAgV0lORUQzRFJUWVBFX0lOREVYQlVGRkVSICAgICAgICAgICAgPSAgNywKCiAgICBXSU5FRDNEUlRZUEVfRk9SQ0VfRFdPUkQgICAgICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEUkVTT1VSQ0VUWVBFOwoKI2RlZmluZSBXSU5FRDNEUlRZUEVDT1VOVCAoV0lORUQzRFJUWVBFX0lOREVYQlVGRkVSKzEpCgp0eXBlZGVmIGVudW0gX1dJTkVEM0RQT09MIHsKICAgIFdJTkVEM0RQT09MX0RFRkFVTFQgICAgICAgICAgICAgICAgID0gMCwKICAgIFdJTkVEM0RQT09MX01BTkFHRUQgICAgICAgICAgICAgICAgID0gMSwKICAgIFdJTkVEM0RQT09MX1NZU1RFTU1FTSAgICAgICAgICAgICAgID0gMiwKICAgIFdJTkVEM0RQT09MX1NDUkFUQ0ggICAgICAgICAgICAgICAgID0gMywKCiAgICBXSU5FRDNEUE9PTF9GT1JDRV9EV09SRCAgICAgICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEUE9PTDsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEU1VSRkFDRV9ERVNDCnsKICAgIFdJTkVEM0RGT1JNQVQgICAgICAgICAgICpGb3JtYXQ7CiAgICBXSU5FRDNEUkVTT1VSQ0VUWVBFICAgICAqVHlwZTsKICAgIERXT1JEICAgICAgICAgICAgICAgICAgICpVc2FnZTsKICAgIFdJTkVEM0RQT09MICAgICAgICAgICAgICpQb29sOwogICAgVUlOVCAgICAgICAgICAgICAgICAgICAgKlNpemU7CgogICAgV0lORUQzRE1VTFRJU0FNUExFX1RZUEUgKk11bHRpU2FtcGxlVHlwZTsKICAgIERXT1JEICAgICAgICAgICAgICAgICAgICpNdWx0aVNhbXBsZVF1YWxpdHk7CiAgICBVSU5UICAgICAgICAgICAgICAgICAgICAqV2lkdGg7CiAgICBVSU5UICAgICAgICAgICAgICAgICAgICAqSGVpZ2h0Owp9IFdJTkVEM0RTVVJGQUNFX0RFU0M7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRFZPTFVNRV9ERVNDCnsKICAgIFdJTkVEM0RGT1JNQVQgICAgICAgKkZvcm1hdDsKICAgIFdJTkVEM0RSRVNPVVJDRVRZUEUgKlR5cGU7CiAgICBEV09SRCAgICAgICAgICAgICAgICpVc2FnZTsKICAgIFdJTkVEM0RQT09MICAgICAgICAgKlBvb2w7CiAgICBVSU5UICAgICAgICAgICAgICAgICpTaXplOwoKICAgIFVJTlQgICAgICAgICAgICAgICAgKldpZHRoOwogICAgVUlOVCAgICAgICAgICAgICAgICAqSGVpZ2h0OwogICAgVUlOVCAgICAgICAgICAgICAgICAqRGVwdGg7Cn0gV0lORUQzRFZPTFVNRV9ERVNDOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RDTElQU1RBVFVTIHsKICAgRFdPUkQgQ2xpcFVuaW9uOwogICBEV09SRCBDbGlwSW50ZXJzZWN0aW9uOwp9IFdJTkVEM0RDTElQU1RBVFVTOwoKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEVkVSVEVYRUxFTUVOVCB7CiAgV09SRCAgICBTdHJlYW07CiAgV09SRCAgICBPZmZzZXQ7CiAgQllURSAgICBUeXBlOwogIEJZVEUgICAgTWV0aG9kOwogIEJZVEUgICAgVXNhZ2U7CiAgQllURSAgICBVc2FnZUluZGV4OwogIGludCAgICAgUmVnOyAvKiBEaXJlY3RYIDggKi8KfSBXSU5FRDNEVkVSVEVYRUxFTUVOVCwgKkxQV0lORUQzRFZFUlRFWEVMRU1FTlQ7CgoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEUVVFUllUWVBFIHsKICAgIFdJTkVEM0RRVUVSWVRZUEVfVkNBQ0hFICAgICAgICAgICAgID0gNCwKICAgIFdJTkVEM0RRVUVSWVRZUEVfUkVTT1VSQ0VNQU5BR0VSICAgID0gNSwKICAgIFdJTkVEM0RRVUVSWVRZUEVfVkVSVEVYU1RBVFMgICAgICAgID0gNiwKICAgIFdJTkVEM0RRVUVSWVRZUEVfRVZFTlQgICAgICAgICAgICAgID0gOCwKICAgIFdJTkVEM0RRVUVSWVRZUEVfT0NDTFVTSU9OICAgICAgICAgID0gOSwKICAgIFdJTkVEM0RRVUVSWVRZUEVfVElNRVNUQU1QICAgICAgICAgID0gMTAsCiAgICBXSU5FRDNEUVVFUllUWVBFX1RJTUVTVEFNUERJU0pPSU5UICA9IDExLAogICAgV0lORUQzRFFVRVJZVFlQRV9USU1FU1RBTVBGUkVRICAgICAgPSAxMiwKICAgIFdJTkVEM0RRVUVSWVRZUEVfUElQRUxJTkVUSU1JTkdTICAgID0gMTMsCiAgICBXSU5FRDNEUVVFUllUWVBFX0lOVEVSRkFDRVRJTUlOR1MgICA9IDE0LAogICAgV0lORUQzRFFVRVJZVFlQRV9WRVJURVhUSU1JTkdTICAgICAgPSAxNSwKICAgIFdJTkVEM0RRVUVSWVRZUEVfUElYRUxUSU1JTkdTICAgICAgID0gMTYsCiAgICBXSU5FRDNEUVVFUllUWVBFX0JBTkRXSURUSFRJTUlOR1MgICA9IDE3LAogICAgV0lORUQzRFFVRVJZVFlQRV9DQUNIRVVUSUxJWkFUSU9OICAgPSAxOAp9IFdJTkVEM0RRVUVSWVRZUEU7CgojZGVmaW5lIFdJTkVEM0RJU1NVRV9CRUdJTiAgICgxIDw8IDEpCiNkZWZpbmUgV0lORUQzRElTU1VFX0VORCAgICAgKDEgPDwgMCkKI2RlZmluZSBXSU5FRDNER0VUREFUQV9GTFVTSCAoMSA8PCAwKQoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RERVZJQ0VfQ1JFQVRJT05fUEFSQU1FVEVSUyB7CiAgICBVSU5UICAgICAgICAgICBBZGFwdGVyT3JkaW5hbDsKICAgIFdJTkVEM0RERVZUWVBFIERldmljZVR5cGU7CiAgICBIV05EICAgICAgICAgICBoRm9jdXNXaW5kb3c7CiAgICBEV09SRCAgICAgICAgICBCZWhhdmlvckZsYWdzOwp9IFdJTkVEM0RERVZJQ0VfQ1JFQVRJT05fUEFSQU1FVEVSUzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEREVWSU5GT19CQU5EV0lEVEhUSU1JTkdTIHsKICAgIGZsb2F0ICAgICAgICAgTWF4QmFuZHdpZHRoVXRpbGl6ZWQ7CiAgICBmbG9hdCAgICAgICAgIEZyb250RW5kVXBsb2FkTWVtb3J5VXRpbGl6ZWRQZXJjZW50OwogICAgZmxvYXQgICAgICAgICBWZXJ0ZXhSYXRlVXRpbGl6ZWRQZXJjZW50OwogICAgZmxvYXQgICAgICAgICBUcmlhbmdsZVNldHVwUmF0ZVV0aWxpemVkUGVyY2VudDsKICAgIGZsb2F0ICAgICAgICAgRmlsbFJhdGVVdGlsaXplZFBlcmNlbnQ7Cn0gV0lORUQzRERFVklORk9fQkFORFdJRFRIVElNSU5HUzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEREVWSU5GT19DQUNIRVVUSUxJWkFUSU9OIHsKICAgIGZsb2F0ICAgICAgICAgVGV4dHVyZUNhY2hlSGl0UmF0ZTsKICAgIGZsb2F0ICAgICAgICAgUG9zdFRyYW5zZm9ybVZlcnRleENhY2hlSGl0UmF0ZTsKfSBXSU5FRDNEREVWSU5GT19DQUNIRVVUSUxJWkFUSU9OOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RERVZJTkZPX0lOVEVSRkFDRVRJTUlOR1MgewogICAgZmxvYXQgICAgICAgICBXYWl0aW5nRm9yR1BVVG9Vc2VBcHBsaWNhdGlvblJlc291cmNlVGltZVBlcmNlbnQ7CiAgICBmbG9hdCAgICAgICAgIFdhaXRpbmdGb3JHUFVUb0FjY2VwdE1vcmVDb21tYW5kc1RpbWVQZXJjZW50OwogICAgZmxvYXQgICAgICAgICBXYWl0aW5nRm9yR1BVVG9TdGF5V2l0aGluTGF0ZW5jeVRpbWVQZXJjZW50OwogICAgZmxvYXQgICAgICAgICBXYWl0aW5nRm9yR1BVRXhjbHVzaXZlUmVzb3VyY2VUaW1lUGVyY2VudDsKICAgIGZsb2F0ICAgICAgICAgV2FpdGluZ0ZvckdQVU90aGVyVGltZVBlcmNlbnQ7Cn0gV0lORUQzRERFVklORk9fSU5URVJGQUNFVElNSU5HUzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEREVWSU5GT19QSVBFTElORVRJTUlOR1MgewogICAgZmxvYXQgICAgICAgICBWZXJ0ZXhQcm9jZXNzaW5nVGltZVBlcmNlbnQ7CiAgICBmbG9hdCAgICAgICAgIFBpeGVsUHJvY2Vzc2luZ1RpbWVQZXJjZW50OwogICAgZmxvYXQgICAgICAgICBPdGhlckdQVVByb2Nlc3NpbmdUaW1lUGVyY2VudDsKICAgIGZsb2F0ICAgICAgICAgR1BVSWRsZVRpbWVQZXJjZW50Owp9IFdJTkVEM0RERVZJTkZPX1BJUEVMSU5FVElNSU5HUzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEREVWSU5GT19TVEFHRVRJTUlOR1MgewogICAgZmxvYXQgICAgICAgICBNZW1vcnlQcm9jZXNzaW5nUGVyY2VudDsKICAgIGZsb2F0ICAgICAgICAgQ29tcHV0YXRpb25Qcm9jZXNzaW5nUGVyY2VudDsKfSBXSU5FRDNEREVWSU5GT19TVEFHRVRJTUlOR1M7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRFJBU1RFUl9TVEFUVVMgewogICAgQk9PTCAgICAgICAgICAgIEluVkJsYW5rOwogICAgVUlOVCAgICAgICAgICAgIFNjYW5MaW5lOwp9IFdJTkVEM0RSQVNURVJfU1RBVFVTOwoKCnR5cGVkZWYgc3RydWN0IFdJTkVEM0RSRVNPVVJDRVNUQVRTIHsKICAgIEJPT0wgICAgICAgICAgICAgICAgYlRocmFzaGluZzsKICAgIERXT1JEICAgICAgICAgICAgICAgQXBwcm94Qnl0ZXNEb3dubG9hZGVkOwogICAgRFdPUkQgICAgICAgICAgICAgICBOdW1FdmljdHM7CiAgICBEV09SRCAgICAgICAgICAgICAgIE51bVZpZENyZWF0ZXM7CiAgICBEV09SRCAgICAgICAgICAgICAgIExhc3RQcmk7CiAgICBEV09SRCAgICAgICAgICAgICAgIE51bVVzZWQ7CiAgICBEV09SRCAgICAgICAgICAgICAgIE51bVVzZWRJblZpZE1lbTsKICAgIERXT1JEICAgICAgICAgICAgICAgV29ya2luZ1NldDsKICAgIERXT1JEICAgICAgICAgICAgICAgV29ya2luZ1NldEJ5dGVzOwogICAgRFdPUkQgICAgICAgICAgICAgICBUb3RhbE1hbmFnZWQ7CiAgICBEV09SRCAgICAgICAgICAgICAgIFRvdGFsQnl0ZXM7Cn0gV0lORUQzRFJFU09VUkNFU1RBVFM7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRERFVklORk9fUkVTT1VSQ0VNQU5BR0VSIHsKICAgIFdJTkVEM0RSRVNPVVJDRVNUQVRTIHN0YXRzW1dJTkVEM0RSVFlQRUNPVU5UXTsKfSBXSU5FRDNEREVWSU5GT19SRVNPVVJDRU1BTkFHRVI7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRERFVklORk9fVkVSVEVYU1RBVFMgewogICAgRFdPUkQgTnVtUmVuZGVyZWRUcmlhbmdsZXM7CiAgICBEV09SRCBOdW1FeHRyYUNsaXBwaW5nVHJpYW5nbGVzOwp9IFdJTkVEM0RERVZJTkZPX1ZFUlRFWFNUQVRTOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RMT0NLRURfUkVDVCB7CiAgICBJTlQgICAgICAgICAgICAgICAgIFBpdGNoOwogICAgdm9pZCogICAgICAgICAgICAgICBwQml0czsKfSBXSU5FRDNETE9DS0VEX1JFQ1Q7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRExPQ0tFRF9CT1ggewogICAgSU5UICAgICAgICAgICAgICAgICBSb3dQaXRjaDsKICAgIElOVCAgICAgICAgICAgICAgICAgU2xpY2VQaXRjaDsKICAgIHZvaWQqICAgICAgICAgICAgICAgcEJpdHM7Cn0gV0lORUQzRExPQ0tFRF9CT1g7CgoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RCT1ggewogICAgVUlOVCAgICAgICAgICAgICAgICBMZWZ0OwogICAgVUlOVCAgICAgICAgICAgICAgICBUb3A7CiAgICBVSU5UICAgICAgICAgICAgICAgIFJpZ2h0OwogICAgVUlOVCAgICAgICAgICAgICAgICBCb3R0b207CiAgICBVSU5UICAgICAgICAgICAgICAgIEZyb250OwogICAgVUlOVCAgICAgICAgICAgICAgICBCYWNrOwp9IFdJTkVEM0RCT1g7CgovKlZlcnRleCBjYWNoZSBvcHRpbWl6YXRpb24gaGludHMuKi8KdHlwZWRlZiBzdHJ1Y3QgV0lORUQzRERFVklORk9fVkNBQ0hFIHsKICAgIC8qTXVzdCBiZSBhIDQgY2hhciBjb2RlIEZPVVJDQyAoZS5nLiBDQUNIKSovCiAgICBEV09SRCAgICAgICAgIFBhdHRlcm47IAogICAgLyowIHRvIGdldCB0aGUgbG9uZ2VzdCAgc3RyaXBzLCAxIHZlcnRleCBjYWNoZSovCiAgICBEV09SRCAgICAgICAgIE9wdE1ldGhvZDsgCiAgICAgLypDYWNoZSBzaXplIHRvIHVzZSAob25seSB2YWxpZCBpZiBPcHRNZXRob2Q9PTEpICovCiAgICBEV09SRCAgICAgICAgIENhY2hlU2l6ZTsKICAgIC8qaW50ZXJuYWwgZm9yIGRlY2lkaW5nIHdoZW4gdG8gcmVzdGFydCBzdHJpcHMsIG5vbiB1c2VyIG1vZGlmeWFibGUgKG9ubHkgdmFsaWQgaWYgT3B0TWV0aG9kPT0xKSovCiAgICBEV09SRCAgICAgICAgIE1hZ2ljTnVtYmVyOyAKfSBXSU5FRDNEREVWSU5GT19WQ0FDSEU7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRFZFUlRFWEJVRkZFUl9ERVNDIHsKICAgIFdJTkVEM0RGT1JNQVQgICAgICAgICAgIEZvcm1hdDsKICAgIFdJTkVEM0RSRVNPVVJDRVRZUEUgICAgIFR5cGU7CiAgICBEV09SRCAgICAgICAgICAgICAgICAgICBVc2FnZTsKICAgIFdJTkVEM0RQT09MICAgICAgICAgICAgIFBvb2w7CiAgICBVSU5UICAgICAgICAgICAgICAgICAgICBTaXplOwogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgRlZGOwp9IFdJTkVEM0RWRVJURVhCVUZGRVJfREVTQzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNESU5ERVhCVUZGRVJfREVTQyB7CiAgICBXSU5FRDNERk9STUFUICAgICAgICAgICBGb3JtYXQ7CiAgICBXSU5FRDNEUkVTT1VSQ0VUWVBFICAgICBUeXBlOwogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgVXNhZ2U7CiAgICBXSU5FRDNEUE9PTCAgICAgICAgICAgICBQb29sOwogICAgVUlOVCAgICAgICAgICAgICAgICAgICAgU2l6ZTsKfSBXSU5FRDNESU5ERVhCVUZGRVJfREVTQzsKCi8qCiAqIFRoZSB3aW5lZDNkY2FwcyBzdHJ1Y3R1cmUKICovCgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRFZTSEFERVJDQVBTMl8wIHsKICBEV09SRCAgKkNhcHM7CiAgSU5UICAgICpEeW5hbWljRmxvd0NvbnRyb2xEZXB0aDsKICBJTlQgICAgKk51bVRlbXBzOwogIElOVCAgICAqU3RhdGljRmxvd0NvbnRyb2xEZXB0aDsKfSBXSU5FRDNEVlNIQURFUkNBUFMyXzA7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRFBTSEFERVJDQVBTMl8wIHsKICBEV09SRCAgKkNhcHM7CiAgSU5UICAgICpEeW5hbWljRmxvd0NvbnRyb2xEZXB0aDsKICBJTlQgICAgKk51bVRlbXBzOwogIElOVCAgICAqU3RhdGljRmxvd0NvbnRyb2xEZXB0aDsKICBJTlQgICAgKk51bUluc3RydWN0aW9uU2xvdHM7Cn0gV0lORUQzRFBTSEFERVJDQVBTMl8wOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RDQVBTIHsKICBXSU5FRDNEREVWVFlQRSAgICAgICpEZXZpY2VUeXBlOwogIFVJTlQgICAgICAgICAgICAgICAgKkFkYXB0ZXJPcmRpbmFsOwoKICBEV09SRCAgICAgICAgICAgICAgICpDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgKkNhcHMyOwogIERXT1JEICAgICAgICAgICAgICAgKkNhcHMzOwogIERXT1JEICAgICAgICAgICAgICAgKlByZXNlbnRhdGlvbkludGVydmFsczsKCiAgRFdPUkQgICAgICAgICAgICAgICAqQ3Vyc29yQ2FwczsKCiAgRFdPUkQgICAgICAgICAgICAgICAqRGV2Q2FwczsKCiAgRFdPUkQgICAgICAgICAgICAgICAqUHJpbWl0aXZlTWlzY0NhcHM7CiAgRFdPUkQgICAgICAgICAgICAgICAqUmFzdGVyQ2FwczsKICBEV09SRCAgICAgICAgICAgICAgICpaQ21wQ2FwczsKICBEV09SRCAgICAgICAgICAgICAgICpTcmNCbGVuZENhcHM7CiAgRFdPUkQgICAgICAgICAgICAgICAqRGVzdEJsZW5kQ2FwczsKICBEV09SRCAgICAgICAgICAgICAgICpBbHBoYUNtcENhcHM7CiAgRFdPUkQgICAgICAgICAgICAgICAqU2hhZGVDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgKlRleHR1cmVDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgKlRleHR1cmVGaWx0ZXJDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgKkN1YmVUZXh0dXJlRmlsdGVyQ2FwczsKICBEV09SRCAgICAgICAgICAgICAgICpWb2x1bWVUZXh0dXJlRmlsdGVyQ2FwczsKICBEV09SRCAgICAgICAgICAgICAgICpUZXh0dXJlQWRkcmVzc0NhcHM7CiAgRFdPUkQgICAgICAgICAgICAgICAqVm9sdW1lVGV4dHVyZUFkZHJlc3NDYXBzOwoKICBEV09SRCAgICAgICAgICAgICAgICpMaW5lQ2FwczsKCiAgRFdPUkQgICAgICAgICAgICAgICAqTWF4VGV4dHVyZVdpZHRoOwogIERXT1JEICAgICAgICAgICAgICAgKk1heFRleHR1cmVIZWlnaHQ7CiAgRFdPUkQgICAgICAgICAgICAgICAqTWF4Vm9sdW1lRXh0ZW50OwoKICBEV09SRCAgICAgICAgICAgICAgICpNYXhUZXh0dXJlUmVwZWF0OwogIERXT1JEICAgICAgICAgICAgICAgKk1heFRleHR1cmVBc3BlY3RSYXRpbzsKICBEV09SRCAgICAgICAgICAgICAgICpNYXhBbmlzb3Ryb3B5OwogIGZsb2F0ICAgICAgICAgICAgICAgKk1heFZlcnRleFc7CgogIGZsb2F0ICAgICAgICAgICAgICAgKkd1YXJkQmFuZExlZnQ7CiAgZmxvYXQgICAgICAgICAgICAgICAqR3VhcmRCYW5kVG9wOwogIGZsb2F0ICAgICAgICAgICAgICAgKkd1YXJkQmFuZFJpZ2h0OwogIGZsb2F0ICAgICAgICAgICAgICAgKkd1YXJkQmFuZEJvdHRvbTsKCiAgZmxvYXQgICAgICAgICAgICAgICAqRXh0ZW50c0FkanVzdDsKICBEV09SRCAgICAgICAgICAgICAgICpTdGVuY2lsQ2FwczsKCiAgRFdPUkQgICAgICAgICAgICAgICAqRlZGQ2FwczsKICBEV09SRCAgICAgICAgICAgICAgICpUZXh0dXJlT3BDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgKk1heFRleHR1cmVCbGVuZFN0YWdlczsKICBEV09SRCAgICAgICAgICAgICAgICpNYXhTaW11bHRhbmVvdXNUZXh0dXJlczsKCiAgRFdPUkQgICAgICAgICAgICAgICAqVmVydGV4UHJvY2Vzc2luZ0NhcHM7CiAgRFdPUkQgICAgICAgICAgICAgICAqTWF4QWN0aXZlTGlnaHRzOwogIERXT1JEICAgICAgICAgICAgICAgKk1heFVzZXJDbGlwUGxhbmVzOwogIERXT1JEICAgICAgICAgICAgICAgKk1heFZlcnRleEJsZW5kTWF0cmljZXM7CiAgRFdPUkQgICAgICAgICAgICAgICAqTWF4VmVydGV4QmxlbmRNYXRyaXhJbmRleDsKCiAgZmxvYXQgICAgICAgICAgICAgICAqTWF4UG9pbnRTaXplOwoKICBEV09SRCAgICAgICAgICAgICAgICpNYXhQcmltaXRpdmVDb3VudDsKICBEV09SRCAgICAgICAgICAgICAgICpNYXhWZXJ0ZXhJbmRleDsKICBEV09SRCAgICAgICAgICAgICAgICpNYXhTdHJlYW1zOwogIERXT1JEICAgICAgICAgICAgICAgKk1heFN0cmVhbVN0cmlkZTsKCiAgRFdPUkQgICAgICAgICAgICAgICAqVmVydGV4U2hhZGVyVmVyc2lvbjsKICBEV09SRCAgICAgICAgICAgICAgICpNYXhWZXJ0ZXhTaGFkZXJDb25zdDsKCiAgRFdPUkQgICAgICAgICAgICAgICAqUGl4ZWxTaGFkZXJWZXJzaW9uOwogIGZsb2F0ICAgICAgICAgICAgICAgKlBpeGVsU2hhZGVyMXhNYXhWYWx1ZTsKCiAgLyogRFggOSAqLwogIERXT1JEICAgICAgICAgICAgICAgKkRldkNhcHMyOwoKICBmbG9hdCAgICAgICAgICAgICAgICpNYXhOcGF0Y2hUZXNzZWxsYXRpb25MZXZlbDsKICBEV09SRCAgICAgICAgICAgICAgICpSZXNlcnZlZDU7IC8qdW5kb2N1bWVudGVkKi8KCiAgVUlOVCAgICAgICAgICAgICAgICAqTWFzdGVyQWRhcHRlck9yZGluYWw7CiAgVUlOVCAgICAgICAgICAgICAgICAqQWRhcHRlck9yZGluYWxJbkdyb3VwOwogIFVJTlQgICAgICAgICAgICAgICAgKk51bWJlck9mQWRhcHRlcnNJbkdyb3VwOwogIERXT1JEICAgICAgICAgICAgICAgKkRlY2xUeXBlczsKICBEV09SRCAgICAgICAgICAgICAgICpOdW1TaW11bHRhbmVvdXNSVHM7CiAgRFdPUkQgICAgICAgICAgICAgICAqU3RyZXRjaFJlY3RGaWx0ZXJDYXBzOwogIFdJTkVEM0RWU0hBREVSQ0FQUzJfMCAgIFZTMjBDYXBzOwogIFdJTkVEM0RQU0hBREVSQ0FQUzJfMCAgIFBTMjBDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgKlZlcnRleFRleHR1cmVGaWx0ZXJDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgKk1heFZTaGFkZXJJbnN0cnVjdGlvbnNFeGVjdXRlZDsKICBEV09SRCAgICAgICAgICAgICAgICpNYXhQU2hhZGVySW5zdHJ1Y3Rpb25zRXhlY3V0ZWQ7CiAgRFdPUkQgICAgICAgICAgICAgICAqTWF4VmVydGV4U2hhZGVyMzBJbnN0cnVjdGlvblNsb3RzOyAKICBEV09SRCAgICAgICAgICAgICAgICpNYXhQaXhlbFNoYWRlcjMwSW5zdHJ1Y3Rpb25TbG90czsKICBEV09SRCAgICAgICAgICAgICAgICpSZXNlcnZlZDI7LyogTm90IGluIHRoZSBtaWNyb3NvZnQgaGVhZGVycyBidXQgZG9jdW1lbnRlZCAqLwogIERXT1JEICAgICAgICAgICAgICAgKlJlc2VydmVkMzsKCn0gV0lORUQzRENBUFM7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RTVEFURUJMT0NLVFlQRSB7CiAgICBXSU5FRDNEU0JUX0lOSVQgICAgICAgICAgPSAwLAogICAgV0lORUQzRFNCVF9BTEwgICAgICAgICAgID0gMSwKICAgIFdJTkVEM0RTQlRfUElYRUxTVEFURSAgICA9IDIsCiAgICBXSU5FRDNEU0JUX1ZFUlRFWFNUQVRFICAgPSAzLAogICAgV0lORUQzRFNCVF9SRUNPUkRFRCAgICAgID0gNCwgICAgICAgLyogV2luZUQzRCBwcml2YXRlICovCgogICAgV0lORUQzRFNCVF9GT1JDRV9EV09SRCAgID0gMHhmZmZmZmZmZgp9IFdJTkVEM0RTVEFURUJMT0NLVFlQRTsKCnR5cGVkZWYgc3RydWN0IGdsRGVzY3JpcHRvciB7CiAgICBVSU5UICAgICAgICAgIHRleHR1cmVOYW1lOwogICAgaW50ICAgICAgICAgICBsZXZlbDsKICAgIGludCAgICAgICAgICAgdGFyZ2V0OwogICAgaW50LypHTGVudW0qLyBnbEZvcm1hdDsKICAgIGludC8qR0xlbnVtKi8gZ2xGb3JtYXRJbnRlcm5hbDsKICAgIGludC8qR0xlbnVtKi8gZ2xUeXBlOwp9IGdsRGVzY3JpcHRvcjsKCiNkZWZpbmUgV0lORUQzRERQX01BWFRFWENPT1JEIDgKCnR5cGVkZWYgZW51bSBfV0lORUQzRERFQ0xNRVRIT0QgewogICAgV0lORUQzRERFQ0xNRVRIT0RfREVGQVVMVCAgICAgICAgICA9IDAsCiAgICBXSU5FRDNEREVDTE1FVEhPRF9QQVJUSUFMVSAgICAgICAgID0gMSwKICAgIFdJTkVEM0RERUNMTUVUSE9EX1BBUlRJQUxWICAgICAgICAgPSAyLAogICAgV0lORUQzRERFQ0xNRVRIT0RfQ1JPU1NVViAgICAgICAgICA9IDMsCiAgICBXSU5FRDNEREVDTE1FVEhPRF9VViAgICAgICAgICAgICAgID0gNCwKICAgIFdJTkVEM0RERUNMTUVUSE9EX0xPT0tVUCAgICAgICAgICAgPSA1LAogICAgV0lORUQzRERFQ0xNRVRIT0RfTE9PS1VQUFJFU0FNUExFRCA9IDYKfSBXSU5FRDNEREVDTE1FVEhPRDsKCnR5cGVkZWYgZW51bSBfV0lORUQzRERFQ0xUWVBFIHsKICBXSU5FRDNEREVDTFRZUEVfRkxPQVQxICAgID0gIDAsCiAgV0lORUQzRERFQ0xUWVBFX0ZMT0FUMiAgICA9ICAxLAogIFdJTkVEM0RERUNMVFlQRV9GTE9BVDMgICAgPSAgMiwKICBXSU5FRDNEREVDTFRZUEVfRkxPQVQ0ICAgID0gIDMsCiAgV0lORUQzRERFQ0xUWVBFX0QzRENPTE9SICA9ICA0LAogIFdJTkVEM0RERUNMVFlQRV9VQllURTQgICAgPSAgNSwKICBXSU5FRDNEREVDTFRZUEVfU0hPUlQyICAgID0gIDYsCiAgV0lORUQzRERFQ0xUWVBFX1NIT1JUNCAgICA9ICA3LAogIC8qIFZTIDIuMCAqLwogIFdJTkVEM0RERUNMVFlQRV9VQllURTROICAgPSAgOCwKICBXSU5FRDNEREVDTFRZUEVfU0hPUlQyTiAgID0gIDksCiAgV0lORUQzRERFQ0xUWVBFX1NIT1JUNE4gICA9IDEwLAogIFdJTkVEM0RERUNMVFlQRV9VU0hPUlQyTiAgPSAxMSwKICBXSU5FRDNEREVDTFRZUEVfVVNIT1JUNE4gID0gMTIsCiAgV0lORUQzRERFQ0xUWVBFX1VERUMzICAgICA9IDEzLAogIFdJTkVEM0RERUNMVFlQRV9ERUMzTiAgICAgPSAxNCwKICBXSU5FRDNEREVDTFRZUEVfRkxPQVQxNl8yID0gMTUsCiAgV0lORUQzRERFQ0xUWVBFX0ZMT0FUMTZfNCA9IDE2LAogIFdJTkVEM0RERUNMVFlQRV9VTlVTRUQgICAgPSAxNywKfSBXSU5FRDNEREVDTFRZUEU7CgojZGVmaW5lIFdJTkVEM0RERUNMX0VORCgpIHsweEZGLDAsV0lORUQzRERFQ0xUWVBFX1VOVVNFRCwwLDAsMCwtMX0KCnR5cGVkZWYgc3RydWN0IFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhIHsKICAgIEJZVEUgICAgICpscERhdGE7ICAgICAgICAvKiBQb2ludGVyIHRvIHN0YXJ0IG9mIGRhdGEgICAgICAgICAgICAgICAqLwogICAgRFdPUkQgICAgIGR3U3RyaWRlOyAgICAgIC8qIFN0cmlkZSBiZXR3ZWVuIG9jY3VyYW5jZXMgb2YgdGhpcyBkYXRhICovCiAgICBEV09SRCAgICAgZHdUeXBlOyAgICAgICAgLyogVHlwZSAoYXMgaW4gRDNEVlNEVF9UWVBFKSAgICAgICAgICAgICAgKi8KICAgIGludCAgICAgICBWQk87ICAgICAgICAgICAvKiBWZXJ0ZXggYnVmZmVyIG9iamVjdCB0aGlzIGRhdGEgaXMgaW4gICAqLwogICAgVUlOVCAgICAgIHN0cmVhbU5vOyAgICAgIC8qIEQzRCBzdHJlYW0gbnVtYmVyICAgICAgICAgICAgICAgICAgICAgICovCn0gV2luZURpcmVjdDNEU3RyaWRlZERhdGE7Cgp0eXBlZGVmIHN0cnVjdCBXaW5lRGlyZWN0M0RWZXJ0ZXhTdHJpZGVkRGF0YSB7CiAgICAvKiBJTVBPUlRBTlQ6CiAgICAgKgogICAgICogVGhpcyBzdHJ1Y3R1cmUgY2FuIGJlIGFjY2Vzc2VkIGluIHR3byB3YXlzOiBOYW1lZCBhY2Nlc3MsIGFuZCBhcnJheQogICAgICogYWNjZXNzLiBQbGVhc2Ugbm90ZSB0aGF0IG5hbWVkIGFjY2VzcyBpcyBvbmx5IHZhbGlkIHdpdGggdGhlIGZpeGVkCiAgICAgKiBmdW5jdGlvbiB2ZXJ0ZXggcGlwZWxpbmUsIGFuZCB0aGUgYXJyYXlzIGFyZSBvbmx5IHZhbGlkIHdpdGggdGhlCiAgICAgKiBwcm9ncmFtbWFibGUgdmVydGV4IHBpcGVsaW5lKHZlcnRleCBzaGFkZXJzKQogICAgICovCiAgICB1bmlvbiB7CiAgICAgICAgc3RydWN0IHsKCiAgICAgICAgICAgICAvKiBEbyBub3QgYWRkIG9yIHJlb3JkZXIgZmllbGRzIGhlcmUsCiAgICAgICAgICAgICAgKiBzbyB0aGlzIGNhbiBiZSBpbmRleGVkIGFzIGFuIGFycmF5ICovCiAgICAgICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSAgcG9zaXRpb247CiAgICAgICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSAgYmxlbmRXZWlnaHRzOwogICAgICAgICAgICAgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgIGJsZW5kTWF0cml4SW5kaWNlczsKICAgICAgICAgICAgIFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhICBub3JtYWw7CiAgICAgICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSAgcFNpemU7CiAgICAgICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSAgZGlmZnVzZTsKICAgICAgICAgICAgIFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhICBzcGVjdWxhcjsKICAgICAgICAgICAgIFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhICB0ZXhDb29yZHNbV0lORUQzRERQX01BWFRFWENPT1JEXTsKICAgICAgICAgICAgIFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhICBwb3NpdGlvbjI7IC8qIHR3ZWVuIGRhdGEgKi8KICAgICAgICAgICAgIFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhICBub3JtYWwyOyAgIC8qIHR3ZWVuIGRhdGEgKi8KICAgICAgICAgICAgIFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhICB0YW5nZW50OwogICAgICAgICAgICAgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgIGJpbm9ybWFsOwogICAgICAgICAgICAgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgIHRlc3NGYWN0b3I7CiAgICAgICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSAgZm9nOwogICAgICAgICAgICAgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgIGRlcHRoOwogICAgICAgICAgICAgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgIHNhbXBsZTsKCiAgICAgICAgICAgICAvKiBBZGQgZmllbGRzIGhlcmUgKi8KICAgICAgICAgICAgIEJPT0wgcG9zaXRpb25fdHJhbnNmb3JtZWQ7CgogICAgICAgIH0gczsKICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSBpbnB1dFsxNl07ICAvKiBJbmRleGVkIGJ5IGNvbnN0YW50cyBpbiBEM0RWU0RFX1JFR0lTVEVSICovCiAgICB9IHU7Cn0gV2luZURpcmVjdDNEVmVydGV4U3RyaWRlZERhdGE7Cgp0eXBlZGVmIGVudW0gewogICAgV0lORUQzRERFQ0xVU0FHRV9QT1NJVElPTiAgICAgPSAwLAogICAgV0lORUQzRERFQ0xVU0FHRV9CTEVORFdFSUdIVCAgPSAxLAogICAgV0lORUQzRERFQ0xVU0FHRV9CTEVORElORElDRVMgPSAyLAogICAgV0lORUQzRERFQ0xVU0FHRV9OT1JNQUwgICAgICAgPSAzLAogICAgV0lORUQzRERFQ0xVU0FHRV9QU0laRSAgICAgICAgPSA0LAogICAgV0lORUQzRERFQ0xVU0FHRV9URVhDT09SRCAgICAgPSA1LAogICAgV0lORUQzRERFQ0xVU0FHRV9UQU5HRU5UICAgICAgPSA2LAogICAgV0lORUQzRERFQ0xVU0FHRV9CSU5PUk1BTCAgICAgPSA3LAogICAgV0lORUQzRERFQ0xVU0FHRV9URVNTRkFDVE9SICAgPSA4LAogICAgV0lORUQzRERFQ0xVU0FHRV9QT1NJVElPTlQgICAgPSA5LAogICAgV0lORUQzRERFQ0xVU0FHRV9DT0xPUiAgICAgICAgPSAxMCwKICAgIFdJTkVEM0RERUNMVVNBR0VfRk9HICAgICAgICAgID0gMTEsCiAgICBXSU5FRDNEREVDTFVTQUdFX0RFUFRIICAgICAgICA9IDEyLAogICAgV0lORUQzRERFQ0xVU0FHRV9TQU1QTEUgICAgICAgPSAxMwp9IFdJTkVEM0RERUNMVVNBR0U7CgojZGVmaW5lIFdJTkVEM0RVU0FHRV9SRU5ERVJUQVJHRVQgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9ERVBUSFNURU5DSUwgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9XUklURU9OTFkgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAojZGVmaW5lIFdJTkVEM0RVU0FHRV9TT0ZUV0FSRVBST0NFU1NJTkcgICAgICAgICAgICAgICAweDAwMDAwMDEwTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9ET05PVENMSVAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9QT0lOVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9SVFBBVENIRVMgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9OUEFUQ0hFUyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9EWU5BTUlDICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9BVVRPR0VOTUlQTUFQICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwTCAKI2RlZmluZSBXSU5FRDNEVVNBR0VfRE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNEZGRkwKI2RlZmluZSBXSU5FRDNEVVNBR0VfT1ZFUkxBWSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKCiNkZWZpbmUgV0lORUQzRFVTQUdFX1FVRVJZX0xFR0FDWUJVTVBNQVAgICAgICAgICAgICAweDAwMDA4MDAwTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9RVUVSWV9GSUxURVIgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfUVVFUllfUE9TVFBJWEVMU0hBREVSX0JMRU5ESU5HIDB4MDAwODAwMDBMCiNkZWZpbmUgV0lORUQzRFVTQUdFX1FVRVJZX1NSR0JSRUFEICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9RVUVSWV9TUkdCV1JJVEUgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfUVVFUllfVkVSVEVYVEVYVFVSRSAgICAgICAgICAgIDB4MDAxMDAwMDBMCiNkZWZpbmUgV0lORUQzRFVTQUdFX1FVRVJZX1dSQVBBTkRNSVAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9RVUVSWV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDJGODAwMEwKCnR5cGVkZWYgZW51bSBfV0lORUQzRFNVUkZUWVBFIHsKICAgIFNVUkZBQ0VfVU5LTk9XTiAgICA9IDAsICAgLyogRGVmYXVsdCAvIFVua25vd24gc3VyZmFjZSB0eXBlICovCiAgICBTVVJGQUNFX09QRU5HTCwgICAgICAgICAgIC8qIE9wZW5HTCBzdXJmYWNlOiBSZW5kZXJzIHVzaW5nIGxpYkdMLCBuZWVkZWQgZm9yIDNEICovCiAgICBTVVJGQUNFX0dESSwgICAgICAgICAgICAgIC8qIFVzZXIgc3VyZmFjZS4gTm8gM0QsIERpcmVjdERyYXcgcmVuZGVyaW5nIHdpdGggR0RJICovCiAgICBTVVJGQUNFX1hSRU5ERVIgICAgICAgICAgIC8qIEZ1dHVyZSBkcmVhbXM6IFVzZSBYUkVOREVSIC8gRVhBIC8gd2hhdGV2ZXIgc3R1ZmYgKi8KfSBXSU5FRDNEU1VSRlRZUEU7CgojZGVmaW5lIFdJTkVEM0RDQVBTMl9OTzJERFVSSU5HM0RTQ0VORSAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKI2RlZmluZSBXSU5FRDNEQ0FQUzJfRlVMTFNDUkVFTkdBTU1BICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCiNkZWZpbmUgV0lORUQzRENBUFMyX0NBTlJFTkRFUldJTkRPV0VEICAgICAgICAgICAgICAgICAweDAwMDgwMDAwTAojZGVmaW5lIFdJTkVEM0RDQVBTMl9DQU5DQUxJQlJBVEVHQU1NQSAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKI2RlZmluZSBXSU5FRDNEQ0FQUzJfUkVTRVJWRUQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDBMCiNkZWZpbmUgV0lORUQzRENBUFMyX0NBTk1BTkFHRVJFU09VUkNFICAgICAgICAgICAgICAgICAweDEwMDAwMDAwTAojZGVmaW5lIFdJTkVEM0RDQVBTMl9EWU5BTUlDVEVYVFVSRVMgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMEwKI2RlZmluZSBXSU5FRDNEQ0FQUzJfQ0FOQVVUT0dFTk1JUE1BUCAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBMCgojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19ESVRIRVIgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19ST1AyICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19YT1IgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19QQVQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4TAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19aVEVTVCAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19TVUJQSVhFTCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19TVUJQSVhFTFggICAgICAgICAgICAgICAgICAweDAwMDAwMDQwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19GT0dWRVJURVggICAgICAgICAgICAgICAgICAweDAwMDAwMDgwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19GT0dUQUJMRSAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19TVElQUExFICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19BTlRJQUxJQVNTT1JUREVQRU5ERU5UICAgICAweDAwMDAwNDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19BTlRJQUxJQVNTT1JUSU5ERVBFTkRFTlQgICAweDAwMDAwODAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19BTlRJQUxJQVNFREdFUyAgICAgICAgICAgICAweDAwMDAxMDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19NSVBNQVBMT0RCSUFTICAgICAgICAgICAgICAweDAwMDAyMDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19aQklBUyAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19aQlVGRkVSTEVTU0hTUiAgICAgICAgICAgICAweDAwMDA4MDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19GT0dSQU5HRSAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19BTklTT1RST1BZICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19XQlVGRkVSICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19UUkFOU0xVQ0VOVFNPUlRJTkRFUEVOREVOVCAweDAwMDgwMDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19XRk9HICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19aRk9HICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19DT0xPUlBFUlNQRUNUSVZFICAgICAgICAgICAweDAwNDAwMDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19TQ0lTU09SVEVTVCAgICAgICAgICAgICAgICAweDAxMDAwMDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19TTE9QRVNDQUxFREVQVEhCSUFTICAgICAgICAweDAyMDAwMDAwTAojZGVmaW5lIFdJTkVEM0RQUkFTVEVSQ0FQU19ERVBUSEJJQVMgICAgICAgICAgICAgICAgICAweDA0MDAwMDAwTCAKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfTVVMVElTQU1QTEVfVE9HR0xFICAgICAgICAgMHgwODAwMDAwMEwKCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQ09MT1JGTEFUTU9OTyAgICAgICAgICAgICAgIDB4MDAwMDAxCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQ09MT1JGTEFUUkdCICAgICAgICAgICAgICAgIDB4MDAwMDAyCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQ09MT1JHT1VSQVVETU9OTyAgICAgICAgICAgIDB4MDAwMDA0CiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQ09MT1JHT1VSQVVEUkdCICAgICAgICAgICAgIDB4MDAwMDA4CiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQ09MT1JQSE9OR01PTk8gICAgICAgICAgICAgIDB4MDAwMDEwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQ09MT1JQSE9OR1JHQiAgICAgICAgICAgICAgIDB4MDAwMDIwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfU1BFQ1VMQVJGTEFUTU9OTyAgICAgICAgICAgIDB4MDAwMDQwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfU1BFQ1VMQVJGTEFUUkdCICAgICAgICAgICAgIDB4MDAwMDgwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfU1BFQ1VMQVJHT1VSQVVETU9OTyAgICAgICAgIDB4MDAwMTAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfU1BFQ1VMQVJHT1VSQVVEUkdCICAgICAgICAgIDB4MDAwMjAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfU1BFQ1VMQVJQSE9OR01PTk8gICAgICAgICAgIDB4MDAwNDAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfU1BFQ1VMQVJQSE9OR1JHQiAgICAgICAgICAgIDB4MDAwODAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQUxQSEFGTEFUQkxFTkQgICAgICAgICAgICAgIDB4MDAxMDAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQUxQSEFGTEFUU1RJUFBMRUQgICAgICAgICAgIDB4MDAyMDAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQUxQSEFHT1VSQVVEQkxFTkQgICAgICAgICAgIDB4MDA0MDAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQUxQSEFHT1VSQVVEU1RJUFBMRUQgICAgICAgIDB4MDA4MDAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQUxQSEFQSE9OR0JMRU5EICAgICAgICAgICAgIDB4MDEwMDAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfQUxQSEFQSE9OR1NUSVBQTEVEICAgICAgICAgIDB4MDIwMDAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfRk9HRkxBVCAgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfRk9HR09VUkFVRCAgICAgICAgICAgICAgICAgIDB4MDgwMDAwCiNkZWZpbmUgV0lORUQzRFBTSEFERUNBUFNfRk9HUEhPTkcgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwCgojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfUEVSU1BFQ1RJVkUgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19QT1cyICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX0FMUEhBICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfVFJBTlNQQVJFTkNZICAgICAgICAgICAgIDB4MDAwMDAwMDhMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19CT1JERVIgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX1NRVUFSRU9OTFkgICAgICAgICAgICAgICAweDAwMDAwMDIwTAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfVEVYUkVQRUFUTk9UU0NBTEVEQllTSVpFIDB4MDAwMDAwNDBMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19BTFBIQVBBTEVUVEUgICAgICAgICAgICAgMHgwMDAwMDA4MEwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX05PTlBPVzJDT05ESVRJT05BTCAgICAgICAweDAwMDAwMTAwTAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfUFJPSkVDVEVEICAgICAgICAgICAgICAgIDB4MDAwMDA0MDBMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19DVUJFTUFQICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMEwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX0NPTE9SS0VZQkxFTkQgICAgICAgICAgICAweDAwMDAxMDAwTAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfVk9MVU1FTUFQICAgICAgICAgICAgICAgIDB4MDAwMDIwMDBMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19NSVBNQVAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX01JUFZPTFVNRU1BUCAgICAgICAgICAgICAweDAwMDA4MDAwTAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfTUlQQ1VCRU1BUCAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19DVUJFTUFQX1BPVzIgICAgICAgICAgICAgMHgwMDAyMDAwMEwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX1ZPTFVNRU1BUF9QT1cyICAgICAgICAgICAweDAwMDQwMDAwTAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfTk9QUk9KRUNURURCVU1QRU5WICAgICAgIDB4MDAyMDAwMDBMCgojZGVmaW5lIFdJTkVEM0RQVEZJTFRFUkNBUFNfTkVBUkVTVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBXSU5FRDNEUFRGSUxURVJDQVBTX0xJTkVBUiAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgV0lORUQzRFBURklMVEVSQ0FQU19NSVBORUFSRVNUICAgICAgICAgICAgICAgMHgwMDAwMDAwNAojZGVmaW5lIFdJTkVEM0RQVEZJTFRFUkNBUFNfTUlQTElORUFSICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKI2RlZmluZSBXSU5FRDNEUFRGSUxURVJDQVBTX0xJTkVBUk1JUE5FQVJFU1QgICAgICAgICAweDAwMDAwMDEwCiNkZWZpbmUgV0lORUQzRFBURklMVEVSQ0FQU19MSU5FQVJNSVBMSU5FQVIgICAgICAgICAgMHgwMDAwMDAyMAojZGVmaW5lIFdJTkVEM0RQVEZJTFRFUkNBUFNfTUlORlBPSU5UICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKI2RlZmluZSBXSU5FRDNEUFRGSUxURVJDQVBTX01JTkZMSU5FQVIgICAgICAgICAgICAgICAweDAwMDAwMjAwCiNkZWZpbmUgV0lORUQzRFBURklMVEVSQ0FQU19NSU5GQU5JU09UUk9QSUMgICAgICAgICAgMHgwMDAwMDQwMAojZGVmaW5lIFdJTkVEM0RQVEZJTFRFUkNBUFNfTUlQRlBPSU5UICAgICAgICAgICAgICAgIDB4MDAwMTAwMDAKI2RlZmluZSBXSU5FRDNEUFRGSUxURVJDQVBTX01JUEZMSU5FQVIgICAgICAgICAgICAgICAweDAwMDIwMDAwCiNkZWZpbmUgV0lORUQzRFBURklMVEVSQ0FQU19NQUdGUE9JTlQgICAgICAgICAgICAgICAgMHgwMTAwMDAwMAojZGVmaW5lIFdJTkVEM0RQVEZJTFRFUkNBUFNfTUFHRkxJTkVBUiAgICAgICAgICAgICAgIDB4MDIwMDAwMDAKI2RlZmluZSBXSU5FRDNEUFRGSUxURVJDQVBTX01BR0ZBTklTT1RST1BJQyAgICAgICAgICAweDA0MDAwMDAwCiNkZWZpbmUgV0lORUQzRFBURklMVEVSQ0FQU19NQUdGUFlSQU1JREFMUVVBRCAgICAgICAgMHgwODAwMDAwMAojZGVmaW5lIFdJTkVEM0RQVEZJTFRFUkNBUFNfTUFHRkdBVVNTSUFOUVVBRCAgICAgICAgIDB4MTAwMDAwMDAKCiNkZWZpbmUgV0lORUQzRFZUWFBDQVBTX1RFWEdFTiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKI2RlZmluZSBXSU5FRDNEVlRYUENBUFNfTUFURVJJQUxTT1VSQ0U3ICAgICAgICAgICAgICAweDAwMDAwMDAyTAojZGVmaW5lIFdJTkVEM0RWVFhQQ0FQU19WRVJURVhGT0cgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMCiNkZWZpbmUgV0lORUQzRFZUWFBDQVBTX0RJUkVDVElPTkFMTElHSFRTICAgICAgICAgICAgMHgwMDAwMDAwOEwKI2RlZmluZSBXSU5FRDNEVlRYUENBUFNfUE9TSVRJT05BTExJR0hUUyAgICAgICAgICAgICAweDAwMDAwMDEwTAojZGVmaW5lIFdJTkVEM0RWVFhQQ0FQU19MT0NBTFZJRVdFUiAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjBMCiNkZWZpbmUgV0lORUQzRFZUWFBDQVBTX1RXRUVOSU5HICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKI2RlZmluZSBXSU5FRDNEVlRYUENBUFNfVEVYR0VOX1NQSEVSRU1BUCAgICAgICAgICAgICAweDAwMDAwMTAwTAojZGVmaW5lIFdJTkVEM0RWVFhQQ0FQU19OT19URVhHRU5fTk9OTE9DQUxWSUVXRVIgICAgIDB4MDAwMDAyMDBMCgojZGVmaW5lIFdJTkVEM0RDVVJTT1JDQVBTX0NPTE9SICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAxCiNkZWZpbmUgV0lORUQzRENVUlNPUkNBUFNfTE9XUkVTICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDIKCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfRkxPQVRUTFZFUlRFWCAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDEKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19TT1JUSU5DUkVBU0lOR1ogICAgICAgICAgICAgICAweDAwMDAwMDAwMgojZGVmaW5lIFdJTkVEM0RERVZDQVBTX1NPUlRERUNSRUFTSU5HWiAgICAgICAgICAgICAgIDBYMDAwMDAwMDA0CiNkZWZpbmUgV0lORUQzRERFVkNBUFNfU09SVEVYQUNUICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDgKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19FWEVDVVRFU1lTVEVNTUVNT1JZICAgICAgICAgICAweDAwMDAwMDAxMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX0VYRUNVVEVWSURFT01FTU9SWSAgICAgICAgICAgIDB4MDAwMDAwMDIwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfVExWRVJURVhTWVNURU1NRU1PUlkgICAgICAgICAgMHgwMDAwMDAwNDAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19UTFZFUlRFWFZJREVPTUVNT1JZICAgICAgICAgICAweDAwMDAwMDA4MAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX1RFWFRVUkVTWVNURU1NRU1PUlkgICAgICAgICAgIDB4MDAwMDAwMTAwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfVEVYVFVSRVZJREVPTUVNT1JZICAgICAgICAgICAgMHgwMDAwMDAyMDAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19EUkFXUFJJTVRMVkVSVEVYICAgICAgICAgICAgICAweDAwMDAwMDQwMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX0NBTlJFTkRFUkFGVEVSRkxJUCAgICAgICAgICAgIDB4MDAwMDAwODAwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfVEVYVFVSRU5PTkxPQ0FMVklETUVNICAgICAgICAgMHgwMDAwMDEwMDAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19EUkFXUFJJTUlUSVZFUzIgICAgICAgICAgICAgICAweDAwMDAwMjAwMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX1NFUEFSQVRFVEVYVFVSRU1FTU9SSUVTICAgICAgIDB4MDAwMDA0MDAwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfRFJBV1BSSU1JVElWRVMyRVggICAgICAgICAgICAgMHgwMDAwMDgwMDAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19IV1RSQU5TRk9STUFORExJR0hUICAgICAgICAgICAweDAwMDAxMDAwMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX0NBTkJMVFNZU1RPTk9OTE9DQUwgICAgICAgICAgIDB4MDAwMDIwMDAwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfSFdSQVNURVJJWkFUSU9OICAgICAgICAgICAgICAgMHgwMDAwODAwMDAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19QVVJFREVWSUNFICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX1FVSU5USUNSVFBBVENIRVMgICAgICAgICAgICAgIDB4MDAwMjAwMDAwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfUlRQQVRDSEVTICAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMDAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19SVFBBVENISEFORExFWkVSTyAgICAgICAgICAgICAweDAwMDgwMDAwMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX05QQVRDSEVTICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDAwCgojZGVmaW5lIFdJTkVEM0RMT0NLX1JFQURPTkxZICAgICAgICAgICAweDAwMTAKI2RlZmluZSBXSU5FRDNETE9DS19OT1NZU0xPQ0sgICAgICAgICAgMHgwODAwCiNkZWZpbmUgV0lORUQzRExPQ0tfTk9PVkVSV1JJVEUgICAgICAgIDB4MTAwMAojZGVmaW5lIFdJTkVEM0RMT0NLX0RJU0NBUkQgICAgICAgICAgICAweDIwMDAKI2RlZmluZSBXSU5FRDNETE9DS19ET05PVFdBSVQgICAgICAgICAgMHg0MDAwCiNkZWZpbmUgV0lORUQzRExPQ0tfTk9fRElSVFlfVVBEQVRFICAgIDB4ODAwMAoKI2RlZmluZSBXSU5FRDNEUFJFU0VOVF9SQVRFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMAoKI2RlZmluZSBXSU5FRDNEUFJFU0VOVF9JTlRFUlZBTF9ERUZBVUxUICAgICAgICAgICAgICAweDAwMDAwMDAwCiNkZWZpbmUgV0lORUQzRFBSRVNFTlRfSU5URVJWQUxfT05FICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQojZGVmaW5lIFdJTkVEM0RQUkVTRU5UX0lOVEVSVkFMX1RXTyAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKI2RlZmluZSBXSU5FRDNEUFJFU0VOVF9JTlRFUlZBTF9USFJFRSAgICAgICAgICAgICAgICAweDAwMDAwMDA0CiNkZWZpbmUgV0lORUQzRFBSRVNFTlRfSU5URVJWQUxfRk9VUiAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAojZGVmaW5lIFdJTkVEM0RQUkVTRU5UX0lOVEVSVkFMX0lNTUVESUFURSAgICAgICAgICAgIDB4ODAwMDAwMDAKCiNkZWZpbmUgV0lORUQzRE1BWFVTRVJDTElQUExBTkVTICAgICAgIDMyCiNkZWZpbmUgV0lORUQzRENMSVBQTEFORTAgICAgICAgICAgICAgICgxIDw8IDApCiNkZWZpbmUgV0lORUQzRENMSVBQTEFORTEgICAgICAgICAgICAgICgxIDw8IDEpCiNkZWZpbmUgV0lORUQzRENMSVBQTEFORTIgICAgICAgICAgICAgICgxIDw8IDIpCiNkZWZpbmUgV0lORUQzRENMSVBQTEFORTMgICAgICAgICAgICAgICgxIDw8IDMpCiNkZWZpbmUgV0lORUQzRENMSVBQTEFORTQgICAgICAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgV0lORUQzRENMSVBQTEFORTUgICAgICAgICAgICAgICgxIDw8IDUpCgovKiBGVkYgKEZsZXhpYmxlIFZlcnRleCBGb3JtYXQpIGNvZGVzICovCiNkZWZpbmUgV0lORUQzREZWRl9SRVNFUlZFRDAgICAgICAgICAgIDB4MDAwMQojZGVmaW5lIFdJTkVEM0RGVkZfUE9TSVRJT05fTUFTSyAgICAgICAweDAwMEUKI2RlZmluZSBXSU5FRDNERlZGX1hZWiAgICAgICAgICAgICAgICAgMHgwMDAyCiNkZWZpbmUgV0lORUQzREZWRl9YWVpSSFcgICAgICAgICAgICAgIDB4MDAwNAojZGVmaW5lIFdJTkVEM0RGVkZfWFlaQjEgICAgICAgICAgICAgICAweDAwMDYKI2RlZmluZSBXSU5FRDNERlZGX1hZWkIyICAgICAgICAgICAgICAgMHgwMDA4CiNkZWZpbmUgV0lORUQzREZWRl9YWVpCMyAgICAgICAgICAgICAgIDB4MDAwYQojZGVmaW5lIFdJTkVEM0RGVkZfWFlaQjQgICAgICAgICAgICAgICAweDAwMGMKI2RlZmluZSBXSU5FRDNERlZGX1hZWkI1ICAgICAgICAgICAgICAgMHgwMDBlCiNkZWZpbmUgV0lORUQzREZWRl9YWVpXICAgICAgICAgICAgICAgIDB4NDAwMgojZGVmaW5lIFdJTkVEM0RGVkZfTk9STUFMICAgICAgICAgICAgICAweDAwMTAKI2RlZmluZSBXSU5FRDNERlZGX1BTSVpFICAgICAgICAgICAgICAgMHgwMDIwCiNkZWZpbmUgV0lORUQzREZWRl9ESUZGVVNFICAgICAgICAgICAgIDB4MDA0MAojZGVmaW5lIFdJTkVEM0RGVkZfU1BFQ1VMQVIgICAgICAgICAgICAweDAwODAKI2RlZmluZSBXSU5FRDNERlZGX1RFWENPVU5UX01BU0sgICAgICAgMHgwZjAwCiNkZWZpbmUgV0lORUQzREZWRl9URVhDT1VOVF9TSElGVCAgICAgICAgICAgOAojZGVmaW5lIFdJTkVEM0RGVkZfVEVYMCAgICAgICAgICAgICAgICAweDAwMDAKI2RlZmluZSBXSU5FRDNERlZGX1RFWDEgICAgICAgICAgICAgICAgMHgwMTAwCiNkZWZpbmUgV0lORUQzREZWRl9URVgyICAgICAgICAgICAgICAgIDB4MDIwMAojZGVmaW5lIFdJTkVEM0RGVkZfVEVYMyAgICAgICAgICAgICAgICAweDAzMDAKI2RlZmluZSBXSU5FRDNERlZGX1RFWDQgICAgICAgICAgICAgICAgMHgwNDAwCiNkZWZpbmUgV0lORUQzREZWRl9URVg1ICAgICAgICAgICAgICAgIDB4MDUwMAojZGVmaW5lIFdJTkVEM0RGVkZfVEVYNiAgICAgICAgICAgICAgICAweDA2MDAKI2RlZmluZSBXSU5FRDNERlZGX1RFWDcgICAgICAgICAgICAgICAgMHgwNzAwCiNkZWZpbmUgV0lORUQzREZWRl9URVg4ICAgICAgICAgICAgICAgIDB4MDgwMAojZGVmaW5lIFdJTkVEM0RGVkZfTEFTVEJFVEFfVUJZVEU0ICAgICAweDEwMDAKI2RlZmluZSBXSU5FRDNERlZGX0xBU1RCRVRBX0QzRENPTE9SICAgMHg4MDAwCiNkZWZpbmUgV0lORUQzREZWRl9SRVNFUlZFRDIgICAgICAgICAgIDB4NjAwMAoKI2RlZmluZSBXSU5FRDNERlZGX1RFWFRVUkVGT1JNQVQxIDMKI2RlZmluZSBXSU5FRDNERlZGX1RFWFRVUkVGT1JNQVQyIDAKI2RlZmluZSBXSU5FRDNERlZGX1RFWFRVUkVGT1JNQVQzIDEKI2RlZmluZSBXSU5FRDNERlZGX1RFWFRVUkVGT1JNQVQ0IDIKI2RlZmluZSBXSU5FRDNERlZGX1RFWENPT1JEU0laRTEoQ29vcmRJbmRleCkgKFdJTkVEM0RGVkZfVEVYVFVSRUZPUk1BVDEgPDwgKENvb3JkSW5kZXgqMiArIDE2KSkKI2RlZmluZSBXSU5FRDNERlZGX1RFWENPT1JEU0laRTIoQ29vcmRJbmRleCkgKFdJTkVEM0RGVkZfVEVYVFVSRUZPUk1BVDIpCiNkZWZpbmUgV0lORUQzREZWRl9URVhDT09SRFNJWkUzKENvb3JkSW5kZXgpIChXSU5FRDNERlZGX1RFWFRVUkVGT1JNQVQzIDw8IChDb29yZEluZGV4KjIgKyAxNikpCiNkZWZpbmUgV0lORUQzREZWRl9URVhDT09SRFNJWkU0KENvb3JkSW5kZXgpIChXSU5FRDNERlZGX1RFWFRVUkVGT1JNQVQ0IDw8IChDb29yZEluZGV4KjIgKyAxNikpCgovKiBDbGVhciBmbGFncyAqLwojZGVmaW5lIFdJTkVEM0RDTEVBUl9UQVJHRVQgICAweDAwMDAwMDAxCiNkZWZpbmUgV0lORUQzRENMRUFSX1pCVUZGRVIgIDB4MDAwMDAwMDIKI2RlZmluZSBXSU5FRDNEQ0xFQVJfU1RFTkNJTCAgMHgwMDAwMDAwNAoKLyogU3RyZWFtIHNvdXJjZSBmbGFncyAqLwojZGVmaW5lIFdJTkVEM0RTVFJFQU1TT1VSQ0VfSU5ERVhFRERBVEEgICgxIDw8IDMwKQojZGVmaW5lIFdJTkVEM0RTVFJFQU1TT1VSQ0VfSU5TVEFOQ0VEQVRBICgyIDw8IDMwKQoKLyogU2V0UHJpdmF0ZURhdGEgZmxhZ3MgKi8KI2RlZmluZSBXSU5FRDNEU1BEX0lVTktOT1dOIDB4MDAwMDAwMDEKCi8qIElXaW5lRDNEOjpDcmVhdGVEZXZpY2UgYmVoYXZpb3VyIGZsYWdzICovCiNkZWZpbmUgV0lORUQzRENSRUFURV9GUFVfUFJFU0VSVkUgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgV0lORUQzRENSRUFURV9QVVJFREVWSUNFICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwCiNkZWZpbmUgV0lORUQzRENSRUFURV9TT0ZUV0FSRV9WRVJURVhQUk9DRVNTSU5HICAgICAweDAwMDAwMDIwCiNkZWZpbmUgV0lORUQzRENSRUFURV9IQVJEV0FSRV9WRVJURVhQUk9DRVNTSU5HICAgICAweDAwMDAwMDQwCiNkZWZpbmUgV0lORUQzRENSRUFURV9NSVhFRF9WRVJURVhQUk9DRVNTSU5HICAgICAgICAweDAwMDAwMDgwCiNkZWZpbmUgV0lORUQzRENSRUFURV9ESVNBQkxFX0RSSVZFUl9NQU5BR0VNRU5UICAgICAweDAwMDAwMTAwCiNkZWZpbmUgV0lORUQzRENSRUFURV9BREFQVEVSR1JPVVBfREVWSUNFICAgICAgICAgICAweDAwMDAwMjAwCgovKiBWVEYgZGVmaW5lcyAqLwojZGVmaW5lIFdJTkVEM0RETUFQU0FNUExFUiAgICAgICAgICAgICAgMHgxMDAKI2RlZmluZSBXSU5FRDNEVkVSVEVYVEVYVFVSRVNBTVBMRVIwICAgIChXSU5FRDNERE1BUFNBTVBMRVIgKyAxKQojZGVmaW5lIFdJTkVEM0RWRVJURVhURVhUVVJFU0FNUExFUjEgICAgKFdJTkVEM0RETUFQU0FNUExFUiArIDIpCiNkZWZpbmUgV0lORUQzRFZFUlRFWFRFWFRVUkVTQU1QTEVSMiAgICAoV0lORUQzRERNQVBTQU1QTEVSICsgMykKI2RlZmluZSBXSU5FRDNEVkVSVEVYVEVYVFVSRVNBTVBMRVIzICAgIChXSU5FRDNERE1BUFNBTVBMRVIgKyA0KQoKLyogRGlyZWN0RHJhdyB0eXBlcyAqLwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVERENPTE9SS0VZCnsKICAgIERXT1JEICAgICAgIGR3Q29sb3JTcGFjZUxvd1ZhbHVlOyAgICAgICAgICAgLyogbG93IGJvdW5kYXJ5IG9mIGNvbG9yIHNwYWNlIHRoYXQgaXMgdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYmUgdHJlYXRlZCBhcyBDb2xvciBLZXksIGluY2x1c2l2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgIERXT1JEICAgICAgIGR3Q29sb3JTcGFjZUhpZ2hWYWx1ZTsgICAgICAgICAgLyogaGlnaCBib3VuZGFyeSBvZiBjb2xvciBzcGFjZSB0aGF0IGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRvIGJlIHRyZWF0ZWQgYXMgQ29sb3IgS2V5LCBpbmNsdXNpdmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCn0gV0lORUREQ09MT1JLRVksKkxQV0lORUREQ09MT1JLRVk7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUREQkxURlgKewogICAgRFdPUkQgICAgICAgZHdTaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzaXplIG9mIHN0cnVjdHVyZSAqLwogICAgRFdPUkQgICAgICAgZHdEREZYOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGWCBvcGVyYXRpb25zICovCiAgICBEV09SRCAgICAgICBkd1JPUDsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdpbjMyIHJhc3RlciBvcGVyYXRpb25zICovCiAgICBEV09SRCAgICAgICBkd0REUk9QOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJhc3RlciBvcGVyYXRpb25zIG5ldyBmb3IgRGlyZWN0RHJhdyAqLwogICAgRFdPUkQgICAgICAgZHdSb3RhdGlvbkFuZ2xlOyAgICAgICAgICAgICAgICAvKiBSb3RhdGlvbiBhbmdsZSBmb3IgYmx0ICovCiAgICBEV09SRCAgICAgICBkd1pCdWZmZXJPcENvZGU7ICAgICAgICAgICAgICAgIC8qIFpCdWZmZXIgY29tcGFyZXMgKi8KICAgIERXT1JEICAgICAgIGR3WkJ1ZmZlckxvdzsgICAgICAgICAgICAgICAgICAgLyogTG93IGxpbWl0IG9mIFogYnVmZmVyICovCiAgICBEV09SRCAgICAgICBkd1pCdWZmZXJIaWdoOyAgICAgICAgICAgICAgICAgIC8qIEhpZ2ggbGltaXQgb2YgWiBidWZmZXIgKi8KICAgIERXT1JEICAgICAgIGR3WkJ1ZmZlckJhc2VEZXN0OyAgICAgICAgICAgICAgLyogRGVzdGluYXRpb24gYmFzZSB2YWx1ZSAqLwogICAgRFdPUkQgICAgICAgZHdaRGVzdENvbnN0Qml0RGVwdGg7ICAgICAgICAgICAvKiBCaXQgZGVwdGggdXNlZCB0byBzcGVjaWZ5IFogY29uc3RhbnQgZm9yIGRlc3RpbmF0aW9uICovCiAgICB1bmlvbgogICAgewogICAgICAgIERXT1JEICAgZHdaRGVzdENvbnN0OyAgICAgICAgICAgICAgICAgICAvKiBDb25zdGFudCB0byB1c2UgYXMgWiBidWZmZXIgZm9yIGRlc3QgKi8KICAgICAgICBzdHJ1Y3QgSVdpbmVEM0RTdXJmYWNlICpscEREU1pCdWZmZXJEZXN0OyAgICAgIC8qIFN1cmZhY2UgdG8gdXNlIGFzIFogYnVmZmVyIGZvciBkZXN0ICovCiAgICB9IERVTU1ZVU5JT05OQU1FMTsKICAgIERXT1JEICAgICAgIGR3WlNyY0NvbnN0Qml0RGVwdGg7ICAgICAgICAgICAgLyogQml0IGRlcHRoIHVzZWQgdG8gc3BlY2lmeSBaIGNvbnN0YW50IGZvciBzb3VyY2UgKi8KICAgIHVuaW9uCiAgICB7CiAgICAgICAgRFdPUkQgICBkd1pTcmNDb25zdDsgICAgICAgICAgICAgICAgICAgIC8qIENvbnN0YW50IHRvIHVzZSBhcyBaIGJ1ZmZlciBmb3Igc3JjICovCiAgICAgICAgc3RydWN0IElXaW5lRDNEU3VyZmFjZSAqbHBERFNaQnVmZmVyU3JjOy8qIFN1cmZhY2UgdG8gdXNlIGFzIFogYnVmZmVyIGZvciBzcmMgKi8KICAgIH0gRFVNTVlVTklPTk5BTUUyOwogICAgRFdPUkQgICAgICAgZHdBbHBoYUVkZ2VCbGVuZEJpdERlcHRoOyAgICAgICAvKiBCaXQgZGVwdGggdXNlZCB0byBzcGVjaWZ5IGNvbnN0YW50IGZvciBhbHBoYSBlZGdlIGJsZW5kICovCiAgICBEV09SRCAgICAgICBkd0FscGhhRWRnZUJsZW5kOyAgICAgICAgICAgICAgIC8qIEFscGhhIGZvciBlZGdlIGJsZW5kaW5nICovCiAgICBEV09SRCAgICAgICBkd1Jlc2VydmVkOwogICAgRFdPUkQgICAgICAgZHdBbHBoYURlc3RDb25zdEJpdERlcHRoOyAgICAgICAvKiBCaXQgZGVwdGggdXNlZCB0byBzcGVjaWZ5IGFscGhhIGNvbnN0YW50IGZvciBkZXN0aW5hdGlvbiAqLwogICAgdW5pb24KICAgIHsKICAgICAgICBEV09SRCAgIGR3QWxwaGFEZXN0Q29uc3Q7ICAgICAgICAgICAgICAgLyogQ29uc3RhbnQgdG8gdXNlIGFzIEFscGhhIENoYW5uZWwgKi8KICAgICAgICBzdHJ1Y3QgSVdpbmVEM0RTdXJmYWNlICpscEREU0FscGhhRGVzdDsgLyogU3VyZmFjZSB0byB1c2UgYXMgQWxwaGEgQ2hhbm5lbCAqLwogICAgfSBEVU1NWVVOSU9OTkFNRTM7CiAgICBEV09SRCAgICAgICBkd0FscGhhU3JjQ29uc3RCaXREZXB0aDsgICAgICAgIC8qIEJpdCBkZXB0aCB1c2VkIHRvIHNwZWNpZnkgYWxwaGEgY29uc3RhbnQgZm9yIHNvdXJjZSAqLwogICAgdW5pb24KICAgIHsKICAgICAgICBEV09SRCAgIGR3QWxwaGFTcmNDb25zdDsgICAgICAgICAgICAgICAgLyogQ29uc3RhbnQgdG8gdXNlIGFzIEFscGhhIENoYW5uZWwgKi8KICAgICAgICBzdHJ1Y3QgSVdpbmVEM0RTdXJmYWNlICpscEREU0FscGhhU3JjOyAgLyogU3VyZmFjZSB0byB1c2UgYXMgQWxwaGEgQ2hhbm5lbCAqLwogICAgfSBEVU1NWVVOSU9OTkFNRTQ7CiAgICB1bmlvbgogICAgewogICAgICAgIERXT1JEICAgZHdGaWxsQ29sb3I7ICAgICAgICAgICAgICAgICAgICAvKiBjb2xvciBpbiBSR0Igb3IgUGFsZXR0aXplZCAqLwogICAgICAgIERXT1JEICAgZHdGaWxsRGVwdGg7ICAgICAgICAgICAgICAgICAgICAvKiBkZXB0aCB2YWx1ZSBmb3Igei1idWZmZXIgKi8KCURXT1JEICAgZHdGaWxsUGl4ZWw7CQkJLyogcGl4ZWwgdmFsIGZvciBSR0JBIG9yIFJHQlogKi8KICAgICAgICBzdHJ1Y3QgSVdpbmVEM0RTdXJmYWNlICpscEREU1BhdHRlcm47ICAgLyogU3VyZmFjZSB0byB1c2UgYXMgcGF0dGVybiAqLwogICAgfSBEVU1NWVVOSU9OTkFNRTU7CiAgICBXSU5FRERDT0xPUktFWSAgZGRja0Rlc3RDb2xvcmtleTsgICAgICAgICAgLyogRGVzdENvbG9ya2V5IG92ZXJyaWRlICovCiAgICBXSU5FRERDT0xPUktFWSAgZGRja1NyY0NvbG9ya2V5OyAgICAgICAgICAgLyogU3JjQ29sb3JrZXkgb3ZlcnJpZGUgKi8KfSBXSU5FRERCTFRGWCwqTFBXSU5FRERCTFRGWDsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRERPVkVSTEFZRlgKewogICAgRFdPUkQgICAgICAgZHdTaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzaXplIG9mIHN0cnVjdHVyZSAqLwogICAgRFdPUkQgICAgICAgZHdBbHBoYUVkZ2VCbGVuZEJpdERlcHRoOyAgICAgICAvKiBCaXQgZGVwdGggdXNlZCB0byBzcGVjaWZ5IGNvbnN0YW50IGZvciBhbHBoYSBlZGdlIGJsZW5kICovCiAgICBEV09SRCAgICAgICBkd0FscGhhRWRnZUJsZW5kOyAgICAgICAgICAgICAgIC8qIENvbnN0YW50IHRvIHVzZSBhcyBhbHBoYSBmb3IgZWRnZSBibGVuZCAqLwogICAgRFdPUkQgICAgICAgZHdSZXNlcnZlZDsKICAgIERXT1JEICAgICAgIGR3QWxwaGFEZXN0Q29uc3RCaXREZXB0aDsgICAgICAgLyogQml0IGRlcHRoIHVzZWQgdG8gc3BlY2lmeSBhbHBoYSBjb25zdGFudCBmb3IgZGVzdGluYXRpb24gKi8KICAgIHVuaW9uCiAgICB7CiAgICAgICAgRFdPUkQgICBkd0FscGhhRGVzdENvbnN0OyAgICAgICAgICAgICAgIC8qIENvbnN0YW50IHRvIHVzZSBhcyBhbHBoYSBjaGFubmVsIGZvciBkZXN0ICovCiAgICAgICAgc3RydWN0IElXaW5lRDNEU3VyZmFjZSAqbHBERFNBbHBoYURlc3Q7IC8qIFN1cmZhY2UgdG8gdXNlIGFzIGFscGhhIGNoYW5uZWwgZm9yIGRlc3QgKi8KICAgIH0gRFVNTVlVTklPTk5BTUUxOwogICAgRFdPUkQgICAgICAgZHdBbHBoYVNyY0NvbnN0Qml0RGVwdGg7ICAgICAgICAvKiBCaXQgZGVwdGggdXNlZCB0byBzcGVjaWZ5IGFscGhhIGNvbnN0YW50IGZvciBzb3VyY2UgKi8KICAgIHVuaW9uCiAgICB7CiAgICAgICAgRFdPUkQgICBkd0FscGhhU3JjQ29uc3Q7ICAgICAgICAgICAgICAgIC8qIENvbnN0YW50IHRvIHVzZSBhcyBhbHBoYSBjaGFubmVsIGZvciBzcmMgKi8KICAgICAgICBzdHJ1Y3QgSVdpbmVEM0RTdXJmYWNlICpscEREU0FscGhhU3JjOyAgLyogU3VyZmFjZSB0byB1c2UgYXMgYWxwaGEgY2hhbm5lbCBmb3Igc3JjICovCiAgICB9IERVTU1ZVU5JT05OQU1FMjsKICAgIFdJTkVERENPTE9SS0VZICBkY2tEZXN0Q29sb3JrZXk7ICAgICAgICAgICAgLyogRGVzdENvbG9ya2V5IG92ZXJyaWRlICovCiAgICBXSU5FRERDT0xPUktFWSAgZGNrU3JjQ29sb3JrZXk7ICAgICAgICAgICAgIC8qIERlc3RDb2xvcmtleSBvdmVycmlkZSAqLwogICAgRFdPUkQgICAgICAgZHdEREZYOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPdmVybGF5IEZYICovCiAgICBEV09SRCAgICAgICBkd0ZsYWdzOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZsYWdzICovCn0gV0lORURET1ZFUkxBWUZYOwoKLyogZHdEREZYICovCi8qIGFyaXRobWV0aWMgc3RyZXRjaGluZyBhbG9uZyB5IGF4aXMgKi8KI2RlZmluZSBXSU5FRERCTFRGWF9BUklUSFNUUkVUQ0hZICAgICAgICAgICAgICAgMHgwMDAwMDAwMQovKiBtaXJyb3Igb24geSBheGlzICovCiNkZWZpbmUgV0lORUREQkxURlhfTUlSUk9STEVGVFJJR0hUICAgICAgICAgICAgIDB4MDAwMDAwMDIKLyogbWlycm9yIG9uIHggYXhpcyAqLwojZGVmaW5lIFdJTkVEREJMVEZYX01JUlJPUlVQRE9XTiAgICAgICAgICAgICAgICAweDAwMDAwMDA0Ci8qIGRvIG5vdCB0ZWFyICovCiNkZWZpbmUgV0lORUREQkxURlhfTk9URUFSSU5HICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKLyogMTgwIGRlZ3JlZXMgY2xvY2t3aXNlIHJvdGF0aW9uICovCiNkZWZpbmUgV0lORUREQkxURlhfUk9UQVRFMTgwICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTAKLyogMjcwIGRlZ3JlZXMgY2xvY2t3aXNlIHJvdGF0aW9uICovCiNkZWZpbmUgV0lORUREQkxURlhfUk9UQVRFMjcwICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjAKLyogOTAgZGVncmVlcyBjbG9ja3dpc2Ugcm90YXRpb24gKi8KI2RlZmluZSBXSU5FRERCTFRGWF9ST1RBVEU5MCAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MAovKiBkd1pCdWZmZXJMb3cgYW5kIGR3WkJ1ZmZlckhpZ2ggc3BlY2lmeSBsaW1pdHMgdG8gdGhlIGNvcGllZCBaIHZhbHVlcyAqLwojZGVmaW5lIFdJTkVEREJMVEZYX1pCVUZGRVJSQU5HRSAgICAgICAgICAgICAgICAweDAwMDAwMDgwCi8qIGFkZCBkd1pCdWZmZXJCYXNlRGVzdCB0byBldmVyeSBzb3VyY2UgeiB2YWx1ZSBiZWZvcmUgY29tcGFyZSAqLwojZGVmaW5lIFdJTkVEREJMVEZYX1pCVUZGRVJCQVNFREVTVCAgICAgICAgICAgICAweDAwMDAwMTAwCgovKiBkd0ZsYWdzIGZvciBCbHQqICovCiNkZWZpbmUgV0lORUREQkxUX0FMUEhBREVTVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBXSU5FRERCTFRfQUxQSEFERVNUQ09OU1RPVkVSUklERSAgICAgICAgMHgwMDAwMDAwMgojZGVmaW5lIFdJTkVEREJMVF9BTFBIQURFU1RORUcgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0CiNkZWZpbmUgV0lORUREQkxUX0FMUEhBREVTVFNVUkZBQ0VPVkVSUklERSAgICAgIDB4MDAwMDAwMDgKI2RlZmluZSBXSU5FRERCTFRfQUxQSEFFREdFQkxFTkQgICAgICAgICAgICAgICAgMHgwMDAwMDAxMAojZGVmaW5lIFdJTkVEREJMVF9BTFBIQVNSQyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwCiNkZWZpbmUgV0lORUREQkxUX0FMUEhBU1JDQ09OU1RPVkVSUklERSAgICAgICAgIDB4MDAwMDAwNDAKI2RlZmluZSBXSU5FRERCTFRfQUxQSEFTUkNORUcgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MAojZGVmaW5lIFdJTkVEREJMVF9BTFBIQVNSQ1NVUkZBQ0VPVkVSUklERSAgICAgICAweDAwMDAwMTAwCiNkZWZpbmUgV0lORUREQkxUX0FTWU5DICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDAKI2RlZmluZSBXSU5FRERCTFRfQ09MT1JGSUxMICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMAojZGVmaW5lIFdJTkVEREJMVF9EREZYICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwCiNkZWZpbmUgV0lORUREQkxUX0REUk9QUyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAKI2RlZmluZSBXSU5FRERCTFRfS0VZREVTVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMAojZGVmaW5lIFdJTkVEREJMVF9LRVlERVNUT1ZFUlJJREUgICAgICAgICAgICAgICAweDAwMDA0MDAwCiNkZWZpbmUgV0lORUREQkxUX0tFWVNSQyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDAKI2RlZmluZSBXSU5FRERCTFRfS0VZU1JDT1ZFUlJJREUgICAgICAgICAgICAgICAgMHgwMDAxMDAwMAojZGVmaW5lIFdJTkVEREJMVF9ST1AgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwCiNkZWZpbmUgV0lORUREQkxUX1JPVEFUSU9OQU5HTEUgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDAKI2RlZmluZSBXSU5FRERCTFRfWkJVRkZFUiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMAojZGVmaW5lIFdJTkVEREJMVF9aQlVGRkVSREVTVENPTlNUT1ZFUlJJREUgICAgICAweDAwMTAwMDAwCiNkZWZpbmUgV0lORUREQkxUX1pCVUZGRVJERVNUT1ZFUlJJREUgICAgICAgICAgIDB4MDAyMDAwMDAKI2RlZmluZSBXSU5FRERCTFRfWkJVRkZFUlNSQ0NPTlNUT1ZFUlJJREUgICAgICAgMHgwMDQwMDAwMAojZGVmaW5lIFdJTkVEREJMVF9aQlVGRkVSU1JDT1ZFUlJJREUgICAgICAgICAgICAweDAwODAwMDAwCiNkZWZpbmUgV0lORUREQkxUX1dBSVQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDAKI2RlZmluZSBXSU5FRERCTFRfREVQVEhGSUxMICAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMAojZGVmaW5lIFdJTkVEREJMVF9ET05PVFdBSVQgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwCgovKiBkd1RyYW5zIGZvciBCbHRGYXN0ICovCiNkZWZpbmUgV0lORUREQkxURkFTVF9OT0NPTE9SS0VZICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKI2RlZmluZSBXSU5FRERCTFRGQVNUX1NSQ0NPTE9SS0VZICAgICAgICAgICAgICAgMHgwMDAwMDAwMQojZGVmaW5lIFdJTkVEREJMVEZBU1RfREVTVENPTE9SS0VZICAgICAgICAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgV0lORUREQkxURkFTVF9XQUlUICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTAKI2RlZmluZSBXSU5FRERCTFRGQVNUX0RPTk9UV0FJVCAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMAoKLyogRERDQVBTLmR3UGFsQ2FwcyAqLwojZGVmaW5lIFdJTkVERFBDQVBTXzRCSVQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiNkZWZpbmUgV0lORUREUENBUFNfOEJJVEVOVFJJRVMgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKI2RlZmluZSBXSU5FRERQQ0FQU184QklUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNAojZGVmaW5lIFdJTkVERFBDQVBTX0lOSVRJQUxJWkUgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CiNkZWZpbmUgV0lORUREUENBUFNfUFJJTUFSWVNVUkZBQ0UgICAgICAgICAgICAgIDB4MDAwMDAwMTAKI2RlZmluZSBXSU5FRERQQ0FQU19QUklNQVJZU1VSRkFDRUxFRlQgICAgICAgICAgMHgwMDAwMDAyMAojZGVmaW5lIFdJTkVERFBDQVBTX0FMTE9XMjU2ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwCiNkZWZpbmUgV0lORUREUENBUFNfVlNZTkMgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODAKI2RlZmluZSBXSU5FRERQQ0FQU18xQklUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMAojZGVmaW5lIFdJTkVERFBDQVBTXzJCSVQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwCiNkZWZpbmUgV0lORUREUENBUFNfQUxQSEEgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDAKCi8qIEREU1VSRkFDRURFU0MuZHdGbGFncyAqLwojZGVmaW5lIFdJTkVERFNEX0NBUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiNkZWZpbmUgV0lORUREU0RfSEVJR0hUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKI2RlZmluZSBXSU5FRERTRF9XSURUSCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNAojZGVmaW5lIFdJTkVERFNEX1BJVENIICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CiNkZWZpbmUgV0lORUREU0RfQkFDS0JVRkZFUkNPVU5UICAgICAgICAgICAgICAgIDB4MDAwMDAwMjAKI2RlZmluZSBXSU5FRERTRF9aQlVGRkVSQklUREVQVEggICAgICAgICAgICAgICAgMHgwMDAwMDA0MAojZGVmaW5lIFdJTkVERFNEX0FMUEhBQklUREVQVEggICAgICAgICAgICAgICAgICAweDAwMDAwMDgwCiNkZWZpbmUgV0lORUREU0RfTFBTVVJGQUNFICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDAKI2RlZmluZSBXSU5FRERTRF9QSVhFTEZPUk1BVCAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMAojZGVmaW5lIFdJTkVERFNEX0NLREVTVE9WRVJMQVkgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwCiNkZWZpbmUgV0lORUREU0RfQ0tERVNUQkxUICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAKI2RlZmluZSBXSU5FRERTRF9DS1NSQ09WRVJMQVkgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMAojZGVmaW5lIFdJTkVERFNEX0NLU1JDQkxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwCiNkZWZpbmUgV0lORUREU0RfTUlQTUFQQ09VTlQgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDAKI2RlZmluZSBXSU5FRERTRF9SRUZSRVNIUkFURSAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMAojZGVmaW5lIFdJTkVERFNEX0xJTkVBUlNJWkUgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwCiNkZWZpbmUgV0lORUREU0RfVEVYVFVSRVNUQUdFICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDAKI2RlZmluZSBXSU5FRERTRF9GVkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMAojZGVmaW5lIFdJTkVERFNEX1NSQ1ZCSEFORExFICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwCiNkZWZpbmUgV0lORUREU0RfQUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3ZmY5ZWUKCi8qIFNldC9HZXQgQ29sb3VyIEtleSBGbGFncyAqLwojZGVmaW5lIFdJTkVERENLRVlfQ09MT1JTUEFDRSAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxICAvKiBTdHJ1Y3QgaXMgc2luZ2xlIGNvbG91ciBzcGFjZSAqLwojZGVmaW5lIFdJTkVERENLRVlfREVTVEJMVCAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyICAvKiBUbyBiZSB1c2VkIGFzIGRlc3QgZm9yIGJsdCAqLwojZGVmaW5lIFdJTkVERENLRVlfREVTVE9WRVJMQVkgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0ICAvKiBUbyBiZSB1c2VkIGFzIGRlc3QgZm9yIENLIG92ZXJsYXlzICovCiNkZWZpbmUgV0lORUREQ0tFWV9TUkNCTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDggIC8qIFRvIGJlIHVzZWQgYXMgc3JjIGZvciBibHQgKi8KI2RlZmluZSBXSU5FRERDS0VZX1NSQ09WRVJMQVkgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMCAgLyogVG8gYmUgdXNlZCBhcyBzcmMgZm9yIENLIG92ZXJsYXlzICovCgovKiBkd0ZsYWdzIGZvciBHZXRCbHRTdGF0dXMgKi8KI2RlZmluZSBXSU5FRERHQlNfQ0FOQkxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQojZGVmaW5lIFdJTkVEREdCU19JU0JMVERPTkUgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyCgovKiBkd0ZsYWdzIGZvciBHZXRGbGlwU3RhdHVzICovCiNkZWZpbmUgV0lORURER0ZTX0NBTkZMSVAgICAgICAgICAgICAgICAgICAgICAgIDFMCiNkZWZpbmUgV0lORURER0ZTX0lTRkxJUERPTkUgICAgICAgICAgICAgICAgICAgIDJMCgovKiBkd0ZsYWdzIGZvciBGbGlwICovCiNkZWZpbmUgV0lORURERkxJUF9XQUlUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBXSU5FRERGTElQX0VWRU4gICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMiAvKiBvbmx5IHZhbGlkIGZvciBvdmVybGF5ICovCiNkZWZpbmUgV0lORURERkxJUF9PREQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDQgLyogb25seSB2YWxpZCBmb3Igb3ZlcmxheSAqLwojZGVmaW5lIFdJTkVEREZMSVBfTk9WU1lOQyAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CiNkZWZpbmUgV0lORURERkxJUF9TVEVSRU8gICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTAKI2RlZmluZSBXSU5FRERGTElQX0RPTk9UV0FJVCAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMAojZGVmaW5lIFdJTkVEREZMSVBfSU5URVJWQUwyICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwCiNkZWZpbmUgV0lORURERkxJUF9JTlRFUlZBTDMgICAgICAgICAgICAgICAgICAgIDB4MDMwMDAwMDAKI2RlZmluZSBXSU5FRERGTElQX0lOVEVSVkFMNCAgICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMAoKI2VuZGlmCg==