ZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggZjQyYzhmMC4uMjI5NzY1MSAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTUyNSw2ICs1MjUsMTIgQEAKIAogCW9tYXAzX2JlYWdsZQlBUk0gQ09SVEVYLUE4IChPTUFQMzUzMCBTb0MpCiAKK0VyaWMgQmVuYXJkIDxlcmljQGV1a3JlYS5jb20+CisKKwljcHVhdDkxCQlBUk05MjBUCisJY3B1OTI2MAkJQVJNOTI2RUpTIChBVDkxU0FNOTI2MCBTb0MpCisJY3B1OUcyMAkJQVJNOTI2RUpTIChBVDkxU0FNOUcyMCBTb0MpCisKIFJpc2hpIEJoYXR0YWNoYXJ5YSA8cmlzaGlAdGkuY29tPgogCiAJb21hcDU5MTJvc2sJQVJNOTI2RUpTCkBAIC01ODgsNiArNTk0LDEwIEBACiBLb25zdGFudGluIEtsZXRzY2hrZSA8a2xldHNjaGtlQHN5bmVydHJvbml4eC5kZT4KIAlzY2I5MzI4CQlBUk05MjBUCiAKK1NpbW9uIEthZ3N0cm9tIDxzaW1vbi5rYWdzdHJvbUBuZXRpbnNpZ2h0Lm5ldD4KKworICAgICAgIG9wZW5yZF9iYXNlICAgICBBUk05MjZFSlMgKEtpcmt3b29kIFNvQykKKwogTmlzaGFudCBLYW1hdCA8bnNrYW1hdEB0aS5jb20+CiAKIAlvbWFwMTYxMGgyCUFSTTkyNkVKUwpkaWZmIC0tZ2l0IGEvTUFLRUFMTCBiL01BS0VBTEwKaW5kZXggOGZmNjk4Ny4uMDdkMjQxNCAxMDA3NTUKLS0tIGEvTUFLRUFMTAorKysgYi9NQUtFQUxMCkBAIC00MDQsOSArNDA0LDIxIEBACiAJUDIwMjBEUwkJXAogCVAyMDIwRFNfMzZCSVQJXAogCVAxMDExUkRCCVwKKwlQMTAxMVJEQl9OQU5ECVwKKwlQMTAxMVJEQl9TRENBUkQJXAorCVAxMDExUkRCX1NQSUZMQVNICVwKIAlQMTAyMFJEQglcCisJUDEwMjBSREJfTkFORAlcCisJUDEwMjBSREJfU0RDQVJECVwKKwlQMTAyMFJEQl9TUElGTEFTSAlcCiAJUDIwMTBSREIJXAorCVAyMDEwUkRCX05BTkQJXAorCVAyMDEwUkRCX1NEQ0FSRAlcCisJUDIwMTBSREJfU1BJRkxBU0gJXAogCVAyMDIwUkRCCVwKKwlQMjAyMFJEQl9OQU5ECVwKKwlQMjAyMFJEQl9TRENBUkQJXAorCVAyMDIwUkRCX1NQSUZMQVNICVwKIAlQTTg1NAkJXAogCVBNODU2CQlcCiAJc2JjODU0MAkJXApAQCAtNTQ5LDYgKzU2MSw3IEBACiAJb21hcDE2MTBpbm4JCVwKIAlvbWFwNTkxMm9zawkJXAogCW9tYXA3MzBwMgkJXAorCW9wZW5yZF9iYXNlCQlcCiAJcmQ2MjgxYQkJCVwKIAlzYmMyNDEweAkJXAogCXNjYjkzMjgJCQlcCkBAIC02MTgsMTEgKzYzMSwxNCBAQAogCWF0OTFzYW05MjYwZWsJCVwKIAlhdDkxc2FtOTI2MWVrCQlcCiAJYXQ5MXNhbTkyNjNlawkJXAotCWF0OTFzYW05ZzEwZWsJXAorCWF0OTFzYW05ZzEwZWsJCVwKIAlhdDkxc2FtOWcyMGVrCQlcCiAJYXQ5MXNhbTltMTBnNDVlawlcCiAJYXQ5MXNhbTlybGVrCQlcCiAJY21jX3B1MgkJCVwKKwlDUFVBVDkxCQkJXAorCUNQVTkyNjAJCQlcCisJQ1BVOUcyMAkJCVwKIAljc2I2MzcJCQlcCiAJa2I5MjAyCQkJXAogCW1lZXNjCQkJXApkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQppbmRleCA1ODU3YjUyLi5iZWQ5NDY5IDEwMDY0NAotLS0gYS9NYWtlZmlsZQorKysgYi9NYWtlZmlsZQpAQCAtNTAxLDYgKzUwMSw5IEBACiAJCSQob2JqKWJvYXJkLyovY29uZmlnLnRtcCAkKG9iailib2FyZC8qLyovY29uZmlnLnRtcCBcCiAJCSQob2JqKWluY2x1ZGUvYXV0b2NvbmYubWsgJChvYmopaW5jbHVkZS9hdXRvY29uZi5tay5kZXAKIAorJTogJV9jb25maWcKKwkkKE1BS0UpCisKICM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICMgUG93ZXJQQwogIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjUxMSw5ICsyNTE0LDIxIEBACiAJQCQoTUtDT05GSUcpIC10ICQoQDpfY29uZmlnPSkgUDIwMjBEUyBwcGMgbXBjODV4eCBwMjAyMGRzIGZyZWVzY2FsZQogCiBQMTAxMVJEQl9jb25maWcJXAorUDEwMTFSREJfTkFORF9jb25maWcgXAorUDEwMTFSREJfU0RDQVJEX2NvbmZpZyBcCitQMTAxMVJEQl9TUElGTEFTSF9jb25maWcgXAogUDEwMjBSREJfY29uZmlnCVwKK1AxMDIwUkRCX05BTkRfY29uZmlnIFwKK1AxMDIwUkRCX1NEQ0FSRF9jb25maWcgXAorUDEwMjBSREJfU1BJRkxBU0hfY29uZmlnIFwKIFAyMDEwUkRCX2NvbmZpZyBcCi1QMjAyMFJEQl9jb25maWc6CXVuY29uZmlnCitQMjAxMFJEQl9OQU5EX2NvbmZpZyBcCitQMjAxMFJEQl9TRENBUkRfY29uZmlnIFwKK1AyMDEwUkRCX1NQSUZMQVNIX2NvbmZpZyBcCitQMjAyMFJEQl9jb25maWcgXAorUDIwMjBSREJfTkFORF9jb25maWcgXAorUDIwMjBSREJfU0RDQVJEX2NvbmZpZyBcCitQMjAyMFJEQl9TUElGTEFTSF9jb25maWc6CXVuY29uZmlnCiAJQCQoTUtDT05GSUcpIC10ICQoQDpfY29uZmlnPSkgUDFfUDJfUkRCIHBwYyBtcGM4NXh4IHAxX3AyX3JkYiBmcmVlc2NhbGUKIAogUE04NTRfY29uZmlnOgl1bmNvbmZpZwpAQCAtMjY5MSw2ICsyNzA2LDEyIEBACiBjbWNfcHUyX2NvbmZpZwk6CXVuY29uZmlnCiAJQCQoTUtDT05GSUcpICQoQDpfY29uZmlnPSkgYXJtIGFybTkyMHQgY21jX3B1MiBOVUxMIGF0OTFybTkyMDAKIAorQ1BVQVQ5MV9SQU1fY29uZmlnIFwKK0NQVUFUOTFfY29uZmlnCToJdW5jb25maWcKKwlAbWtkaXIgLXAgJChvYmopaW5jbHVkZQorCUBlY2hvICIjZGVmaW5lIENPTkZJR18kKEA6X2NvbmZpZz0pIDEiCT4kKG9iailpbmNsdWRlL2NvbmZpZy5oCisJQCQoTUtDT05GSUcpIC1hIGNwdWF0OTEgYXJtIGFybTkyMHQgY3B1YXQ5MSBldWtyZWEgYXQ5MXJtOTIwMAorCiBjc2I2MzdfY29uZmlnCToJdW5jb25maWcKIAlAJChNS0NPTkZJRykgJChAOl9jb25maWc9KSBhcm0gYXJtOTIwdCBjc2I2MzcgTlVMTCBhdDkxcm05MjAwCiAKQEAgLTI4MjEsNiArMjg0MiwxNCBAQAogCWZpOwogCUAkKE1LQ09ORklHKSAtYSBhdDkxc2FtOXJsZWsgYXJtIGFybTkyNmVqcyBhdDkxc2FtOXJsZWsgYXRtZWwgYXQ5MQogCitDUFU5RzIwXzEyOE1fY29uZmlnIFwKK0NQVTlHMjBfY29uZmlnIFwKK0NQVTkyNjBfMTI4TV9jb25maWcgXAorQ1BVOTI2MF9jb25maWcJOgl1bmNvbmZpZworCUBta2RpciAtcCAkKG9iailpbmNsdWRlCisJQGVjaG8gIiNkZWZpbmUgQ09ORklHXyQoQDpfY29uZmlnPSkgMSIgPiQob2JqKWluY2x1ZGUvY29uZmlnLmgKKwlAJChNS0NPTkZJRykgLWEgY3B1OTI2MCBhcm0gYXJtOTI2ZWpzIGNwdTkyNjAgZXVrcmVhIGF0OTEKKwogbWVlc2NfY29uZmlnCToJdW5jb25maWcKIAlAJChNS0NPTkZJRykgJChAOl9jb25maWc9KSBhcm0gYXJtOTI2ZWpzIG1lZXNjIGVzZCBhdDkxCiAKQEAgLTI5NzYsNiArMzAwNSw5IEBACiBvbWFwNTkxMm9za19jb25maWcgOgl1bmNvbmZpZwogCUAkKE1LQ09ORklHKSAkKEA6X2NvbmZpZz0pIGFybSBhcm05MjZlanMgb21hcDU5MTJvc2sgdGkgb21hcAogCitvcGVucmRfYmFzZV9jb25maWc6IHVuY29uZmlnCisJQCQoTUtDT05GSUcpICQoQDpfY29uZmlnPSkgYXJtIGFybTkyNmVqcyAkKEA6X2NvbmZpZz0pIE1hcnZlbGwga2lya3dvb2QKKwogeHRyYWN0X29tYXA3MzBwMiA9ICQoc3Vic3QgX2NzMGJvb3QsLCQoc3Vic3QgX2NzM2Jvb3QsLCAkKHN1YnN0IF9jb25maWcsLCQxKSkpCiAKIG9tYXA3MzBwMl9jb25maWcgXApAQCAtMzUxMywxMCArMzU0NSw2IEBACiAkKEJGSU5fQk9BUkRTOiU9JV9jb25maWcpCTogdW5jb25maWcKIAlAJChNS0NPTkZJRykgJChAOl9jb25maWc9KSBibGFja2ZpbiBibGFja2ZpbiAkKEA6X2NvbmZpZz0pCiAKLSQoQkZJTl9CT0FSRFMpOgotCSQoTUFLRSkgJEBfY29uZmlnCi0JJChNQUtFKQotCiAjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAjIEFWUjMyCiAjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9SRUFETUUgYi9SRUFETUUKaW5kZXggZGVlMGU2Ny4uNzQ0ZjZiZiAxMDA2NDQKLS0tIGEvUkVBRE1FCisrKyBiL1JFQURNRQpAQCAtMjMwNSw2ICsyMzA1LDExIEBACiBvZiBlbnZpcm9ubWVudCBkYXRhICh2YXJpYWJsZSBhcmVhKTsgaW4gZ2VuZXJhbCwgd2Ugc3VwcG9ydCB0aGUKIGZvbGxvd2luZyBjb25maWd1cmF0aW9uczoKIAorLSBDT05GSUdfQlVJTERfRU5WQ1JDOgorCisJQnVpbGRzIHVwIGVudmNyYyB3aXRoIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQgc28gdGhhdCBleHRlcm5hbCB1dGlscworCW1heSBlYXNpbHkgZXh0cmFjdCBpdCBhbmQgZW1iZWQgaXQgaW4gZmluYWwgVS1Cb290IGltYWdlcy4KKwogLSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIOgogCiAJRGVmaW5lIHRoaXMgaWYgdGhlIGVudmlyb25tZW50IGlzIGluIGZsYXNoIG1lbW9yeS4KZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvbXY4OGY2MjgxZ3R3X2dlL2NvbmZpZy5tayBiL2JvYXJkL01hcnZlbGwvbXY4OGY2MjgxZ3R3X2dlL2NvbmZpZy5tawppbmRleCBhNGVhNzY5Li4yYmQ5Zjc5IDEwMDY0NAotLS0gYS9ib2FyZC9NYXJ2ZWxsL212ODhmNjI4MWd0d19nZS9jb25maWcubWsKKysrIGIvYm9hcmQvTWFydmVsbC9tdjg4ZjYyODFndHdfZ2UvY29uZmlnLm1rCkBAIC0yMywzICsyMyw2IEBACiAjCiAKIFRFWFRfQkFTRSA9IDB4MDA2MDAwMDAKKworIyBLaXJrd29vZCBCb290IEltYWdlIGNvbmZpZ3VyYXRpb24gZmlsZQorS1dEX0NPTkZJRyA9ICQoU1JDVFJFRSkvYm9hcmQvJChCT0FSRERJUikva3diaW1hZ2UuY2ZnCmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL212ODhmNjI4MWd0d19nZS9rd2JpbWFnZS5jZmcgYi9ib2FyZC9NYXJ2ZWxsL212ODhmNjI4MWd0d19nZS9rd2JpbWFnZS5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWMyNTEzZgotLS0gL2Rldi9udWxsCisrKyBiL2JvYXJkL01hcnZlbGwvbXY4OGY2MjgxZ3R3X2dlL2t3YmltYWdlLmNmZwpAQCAtMCwwICsxLDE2NSBAQAorIworIyAoQykgQ29weXJpZ2h0IDIwMDkKKyMgTWFydmVsbCBTZW1pY29uZHVjdG9yIDx3d3cubWFydmVsbC5jb20+CisjIFdyaXR0ZW4tYnk6IFByYWZ1bGxhIFdhZGFza2FyIDxwcmFmdWxsYUBtYXJ2ZWxsLmNvbT4KKyMKKyMgU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyMgcHJvamVjdC4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworIyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorIyB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisjIE1BIDAyMTEwLTEzMDEgVVNBCisjCisjIFJlZmVyIGRvY3MvUkVBRE1FLmt3aW1hZ2UgZm9yIG1vcmUgZGV0YWlscyBhYm91dCBob3ctdG8gY29uZmlndXJlCisjIGFuZCBjcmVhdGUga2lya3dvb2QgYm9vdCBpbWFnZQorIworCisjIEJvb3QgTWVkaWEgY29uZmlndXJhdGlvbnMKK0JPT1RfRlJPTQlzcGkJIyBCb290IGZyb20gU1BJIGZsYXNoCisKKyMgU09DIHJlZ2lzdGVycyBjb25maWd1cmF0aW9uIHVzaW5nIGJvb3Ryb20gaGVhZGVyIGV4dGVuc2lvbgorIyBNYXhpbXVtIEtXQklNQUdFX01BWF9DT05GSUcgY29uZmlndXJhdGlvbnMgYWxsb3dlZAorCisjIENvbmZpZ3VyZSBSR01JSS0wIGludGVyZmFjZSBwYWQgdm9sdGFnZSB0byAxLjhWCitEQVRBIDB4RkZEMTAwZTAgMHgxYjFiMWI5YgorCisjRHJhbSBpbml0YWxpemF0aW9uIGZvciBTSU5HTEUgeDE2IENMPTUgQCA0MDBNSHoKK0RBVEEgMHhGRkQwMTQwMCAweDQzMDAwYTAwCSMgRERSIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIKKyMgYml0MTMtMDogIDB4YTAwICgyNTYwIEREUjIgY2xrcyByZWZyZXNoIHJhdGUpCisjIGJpdDIzLTE0OiB6ZXJvCisjIGJpdDI0OiAxPSBlbmFibGUgZXhpdCBzZWxmIHJlZnJlc2ggbW9kZSBvbiBERFIgYWNjZXNzCisjIGJpdDI1OiAxIHJlcXVpcmVkCisjIGJpdDI5LTI2OiB6ZXJvCisjIGJpdDMxLTMwOiAwMQorCitEQVRBIDB4RkZEMDE0MDQgMHgzODU0MzAwMAkjIEREUiBDb250cm9sbGVyIENvbnRyb2wgTG93CisjIGJpdCA0OiAgICAwPWFkZHIvY21kIGluIHNtYW1lIGN5Y2xlCisjIGJpdCA1OiAgICAwPWNsayBpcyBkcml2ZW4gZHVyaW5nIHNlbGYgcmVmcmVzaCwgd2UgZG9uJ3QgY2FyZSBmb3IgQVBYCisjIGJpdCA2OiAgICAwPXVzZSByZWNvbW1lbmRlZCBmYWxsaW5nIGVkZ2Ugb2YgY2xrIGZvciBhZGRyL2NtZAorIyBiaXQxNDogICAgMD1pbnB1dCBidWZmZXIgYWx3YXlzIHBvd2VyZWQgdXAKKyMgYml0MTg6ICAgIDE9Y3B1IGxvY2sgdHJhbnNhY3Rpb24gZW5hYmxlZAorIyBiaXQyMy0yMDogNT1yZWNvbW1lbmRlZCB2YWx1ZSBmb3IgQ0w9NSBhbmQgU1RBUlRCVVJTVF9ERUwgZGlzYWJsZWQgYml0MzE9MAorIyBiaXQyNy0yNDogOD0gQ0wrMywgU1RBUlRCVVJTVCBzYW1wbGUgc3RhZ2VzLCBmb3IgZnJlcXMgNDAwTUh6LCB1bmJ1ZmZlcmVkIERJTU0KKyMgYml0MzAtMjg6IDMgcmVxdWlyZWQKKyMgYml0MzE6ICAgIDA9bm8gYWRkaXRpb25hbCBTVEFSVEJVUlNUIGRlbGF5CisKK0RBVEEgMHhGRkQwMTQwOCAweDIyMDI0MzNECSMgRERSIFRpbWluZyAoTG93KSAoYWN0aXZlIGN5Y2xlcyB2YWx1ZSArMSkKKyMgYml0My0wOiAgIFRSQVMgbHNicworIyBiaXQ3LTQ6ICAgVFJDRAorIyBiaXQxMS0gODogVFJQCisjIGJpdDE1LTEyOiBUV1IKKyMgYml0MTktMTY6IFRXVFIKKyMgYml0MjA6ICAgIFRSQVMgbXNiCisjIGJpdDIzLTIxOiAweDAKKyMgYml0MjctMjQ6IFRSUkQKKyMgYml0MzEtMjg6IFRSVFAKKworREFUQSAweEZGRDAxNDBDIDB4MDAwMDAwMkEJIyAgRERSIFRpbWluZyAoSGlnaCkKKyMgYml0Ni0wOiAgIFRSRkMKKyMgYml0OC03OiAgIFRSMlIKKyMgYml0MTAtOTogIFRSMlcKKyMgYml0MTItMTE6IFRXMlcKKyMgYml0MzEtMTM6IHplcm8gcmVxdWlyZWQKKworREFUQSAweEZGRDAxNDEwIDB4MDAwMDAwMEQJIyAgRERSIEFkZHJlc3MgQ29udHJvbAorIyBiaXQxLTA6ICAgMDEsIENzMHdpZHRoPXgxNgorIyBiaXQzLTI6ICAgMTEsIENzMHNpemU9MUdiCisjIGJpdDUtNDogICAwMCwgQ3Myd2lkdGg9bm9uZXhpc3RlbnQKKyMgYml0Ny02OiAgIDAwLCBDczFzaXplID1ub25leGlzdGVudAorIyBiaXQ5LTg6ICAgMDAsIENzMndpZHRoPW5vbmV4aXN0ZW50CisjIGJpdDExLTEwOiAwMCwgQ3Myc2l6ZSA9bm9uZXhpc3RlbnQKKyMgYml0MTMtMTI6IDAwLCBDczN3aWR0aD1ub25leGlzdGVudAorIyBiaXQxNS0xNDogMDAsIENzM3NpemUgPW5vbmV4aXN0ZW50CisjIGJpdDE2OiAgICAwLCAgQ3MwQWRkclNlbAorIyBiaXQxNzogICAgMCwgIENzMUFkZHJTZWwKKyMgYml0MTg6ICAgIDAsICBDczJBZGRyU2VsCisjIGJpdDE5OiAgICAwLCAgQ3MzQWRkclNlbAorIyBiaXQzMS0yMDogMCByZXF1aXJlZAorCitEQVRBIDB4RkZEMDE0MTQgMHgwMDAwMDAwMAkjICBERFIgT3BlbiBQYWdlcyBDb250cm9sCisjIGJpdDA6ICAgIDAsICBPcGVuUGFnZSBlbmFibGVkCisjIGJpdDMxLTE6IDAgcmVxdWlyZWQKKworREFUQSAweEZGRDAxNDE4IDB4MDAwMDAwMDAJIyAgRERSIE9wZXJhdGlvbgorIyBiaXQzLTA6ICAgMHgwLCBERFIgY21kCisjIGJpdDMxLTQ6ICAwIHJlcXVpcmVkCisKK0RBVEEgMHhGRkQwMTQxQyAweDAwMDAwQzUyCSMgIEREUiBNb2RlCisjIGJpdDItMDogICAyLCBCdXJzdExlbj0yIHJlcXVpcmVkCisjIGJpdDM6ICAgICAwLCBCdXJzdFR5cGU9MCByZXF1aXJlZAorIyBiaXQ2LTQ6ICAgNCwgQ0w9NQorIyBiaXQ3OiAgICAgMCwgVGVzdE1vZGU9MCBub3JtYWwKKyMgYml0ODogICAgIDAsIERMTCByZXNldD0wIG5vcm1hbAorIyBiaXQxMS05OiAgNiwgYXV0by1wcmVjaGFyZ2Ugd3JpdGUgcmVjb3ZlcnkgPz8/Pz8/Pz8/Pz8/CisjIGJpdDEyOiAgICAwLCBQRCBtdXN0IGJlIHplcm8KKyMgYml0MzEtMTM6IDAgcmVxdWlyZWQKKworREFUQSAweEZGRDAxNDIwIDB4MDAwMDAwNDYJIyAgRERSIEV4dGVuZGVkIE1vZGUKKyMgYml0MDogICAgMCwgIEREUiBETEwgZW5hYmxlZAorIyBiaXQxOiAgICAxLCAgRERSIGRyaXZlIHN0cmVuZ2h0IHJlZHVjZWQKKyMgYml0MjogICAgMSwgIEREUiBPRFQgY29udHJvbCBsc2QgZW5hYmxlZAorIyBiaXQ1LTM6ICAwMDAsIHJlcXVpcmVkCisjIGJpdDY6ICAgIDEsICBERFIgT0RUIGNvbnRyb2wgbXNiLCBlbmFibGVkCisjIGJpdDktNzogIDAwMCwgcmVxdWlyZWQKKyMgYml0MTA6ICAgMCwgIGRpZmZlcmVudGlhbCBEUVMgZW5hYmxlZAorIyBiaXQxMTogICAwLCByZXF1aXJlZAorIyBiaXQxMjogICAwLCBERFIgb3V0cHV0IGJ1ZmZlciBlbmFibGVkCisjIGJpdDMxLTEzOiAwIHJlcXVpcmVkCisKK0RBVEEgMHhGRkQwMTQyNCAweDAwMDBGMUZGCSMgIEREUiBDb250cm9sbGVyIENvbnRyb2wgSGlnaAorIyBiaXQyLTA6ICAxMTEsIHJlcXVpcmVkCisjIGJpdDMgIDogIDEgICwgTUJVUyBCdXJzdCBDaG9wIGRpc2FibGVkCisjIGJpdDYtNDogIDExMSwgcmVxdWlyZWQKKyMgYml0NyAgOiAgMSAgLCBEMlAgTGF0ZW5jeSBlbmFibGVkCisjIGJpdDggIDogIDEgICwgYWRkIHdyaXRlcGF0aCBzYW1wbGUgc3RhZ2UsIG11c3QgYmUgMSBmb3IgRERSIGZyZXEgPj0gMzAwTUh6CisjIGJpdDkgIDogIDAgICwgbm8gaGFsZiBjbG9jayBjeWNsZSBhZGRpdGlvbiB0byBkYXRhb3V0CisjIGJpdDEwIDogIDAgICwgMS80IGNsb2NrIGN5Y2xlIHNrZXcgZW5hYmxlZCBmb3IgYWRkci9jdGwgc2lnbmFscworIyBiaXQxMSA6ICAwICAsIDEvNCBjbG9jayBjeWNsZSBza2V3IGRpc2FibGVkIGZvciB3cml0ZSBtZXNoCisjIGJpdDE1LTEyOiAxMTExIHJlcXVpcmVkCisjIGJpdDMxLTE2OiAwICAgIHJlcXVpcmVkCisKK0RBVEEgMHhGRkQwMTQyOCAweDAwMDg1NTIwCSMgRERSMiBPRFQgUmVhZCBUaW1pbmcgKGRlZmF1bHQgdmFsdWVzKQorREFUQSAweEZGRDAxNDdDIDB4MDAwMDg1NTIJIyBERFIyIE9EVCBXcml0ZSBUaW1pbmcgKGRlZmF1bHQgdmFsdWVzKQorCitEQVRBIDB4RkZEMDE1MDAgMHgwMDAwMDAwMAkjIENTWzBdbiBCYXNlIGFkZHJlc3MgdG8gMHgwCitEQVRBIDB4RkZEMDE1MDQgMHgwN0ZGRkZGMQkjIENTWzBdbiBTaXplCisjIGJpdDA6ICAgIDEsICBXaW5kb3cgZW5hYmxlZAorIyBiaXQxOiAgICAwLCAgV3JpdGUgUHJvdGVjdCBkaXNhYmxlZAorIyBiaXQzLTI6ICAwMCwgQ1MwIGhpdCBzZWxlY3RlZAorIyBiaXQyMy00OiBvbmVzLCByZXF1aXJlZAorIyBiaXQzMS0yNDogMHgwNywgU2l6ZSAoaS5lLiAxMjhNQikKKworREFUQSAweEZGRDAxNTBDIDB4MDAwMDAwMDAJIyBDU1sxXW4gU2l6ZSwgd2luZG93IGRpc2FibGVkCitEQVRBIDB4RkZEMDE1MTQgMHgwMDAwMDAwMAkjIENTWzJdbiBTaXplLCB3aW5kb3cgZGlzYWJsZWQKK0RBVEEgMHhGRkQwMTUxQyAweDAwMDAwMDAwCSMgQ1NbM11uIFNpemUsIHdpbmRvdyBkaXNhYmxlZAorCitEQVRBIDB4RkZEMDE0OTQgMHgwMDAxMDAwMQkjICBERFIgT0RUIENvbnRyb2wgKExvdykKKyMgYml0My0wOiAgMSwgT0RUMFJkLCBNT0RUWzBdIGFzc2VydGVkIGR1cmluZyByZWFkIGZyb20gRFJBTSBDUzAKKyMgYml0MTktMTY6MSwgT0RUMFdyLCBNT0RUWzBdIGFzc2VydGVkIGR1cmluZyB3cml0ZSB0byBEUkFNIENTMAorCitEQVRBIDB4RkZEMDE0OTggMHgwMDAwMDAwMAkjICBERFIgT0RUIENvbnRyb2wgKEhpZ2gpCisjIGJpdDEtMDogIDAwLCBPRFQwIGNvbnRyb2xsZWQgYnkgT0RUIENvbnRyb2wgKGxvdykgcmVnaXN0ZXIgYWJvdmUKKyMgYml0My0yOiAgMDEsIE9EVDEgYWN0aXZlIE5FVkVSIQorIyBiaXQzMS00OiB6ZXJvLCByZXF1aXJlZAorCitEQVRBIDB4RkZEMDE0OUMgMHgwMDAwRTgxMQkjIENQVSBPRFQgQ29udHJvbAorIyBiaXQzLTA6ICAxLCBPRFQwUmQsIEludGVybmFsIE9EVCBhc3NlcnRlZCBkdXJpbmcgcmVhZCBmcm9tIERSQU0gYmFuazAKKyMgYml0Ny00OiAgMSwgT0RUMFdyLCBJbnRlcm5hbCBPRFQgYXNzZXJ0ZWQgZHVyaW5nIHdyaXRlIHRvIERSQU0gYmFuazAKKyMgYml0MTEtMTA6MSwgRFFfT0RUU2VsLiBPRFQgc2VsZWN0IHR1cm5lZCBvbgorCitEQVRBIDB4RkZEMDE0ODAgMHgwMDAwMDAwMQkjIEREUiBJbml0aWFsaXphdGlvbiBDb250cm9sCisjYml0MD0xLCBlbmFibGUgRERSIGluaXQgdXBvbiB0aGlzIHJlZ2lzdGVyIHdyaXRlCisKKyMgRW5kIG9mIEhlYWRlciBleHRlbnNpb24KK0RBVEEgMHgwIDB4MApkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9vcGVucmRfYmFzZS9NYWtlZmlsZSBiL2JvYXJkL01hcnZlbGwvb3BlbnJkX2Jhc2UvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VmMGI5YgotLS0gL2Rldi9udWxsCisrKyBiL2JvYXJkL01hcnZlbGwvb3BlbnJkX2Jhc2UvTWFrZWZpbGUKQEAgLTAsMCArMSw1NiBAQAorIworIyAoQykgQ29weXJpZ2h0IDIwMDkKKyMgTmV0IEluc2lnaHQgPHd3dy5uZXRpbnNpZ2h0Lm5ldD4KKyMgV3JpdHRlbi1ieTogU2ltb24gS2Fnc3Ryb20gPHNpbW9uLmthZ3N0cm9tQG5ldGluc2lnaHQubmV0PgorIworIyBCYXNlZCBvbiBzaGVldmFwbHVnOgorIyAoQykgQ29weXJpZ2h0IDIwMDkKKyMgTWFydmVsbCBTZW1pY29uZHVjdG9yIDx3d3cubWFydmVsbC5jb20+CisjIFdyaXR0ZW4tYnk6IFByYWZ1bGxhIFdhZGFza2FyIDxwcmFmdWxsYUBtYXJ2ZWxsLmNvbT4KKyMKKyMgU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyMgcHJvamVjdC4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworIyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorIyB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4JIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorIyBNQSAwMjExMC0xMzAxIFVTQQorIworCitpbmNsdWRlICQoVE9QRElSKS9jb25maWcubWsKKworTElCCT0gJChvYmopbGliJChCT0FSRCkuYQorCitDT0JKUwk6PSBvcGVucmRfYmFzZS5vCisKK1NSQ1MJOj0gJChTT0JKUzoubz0uUykgJChDT0JKUzoubz0uYykKK09CSlMJOj0gJChhZGRwcmVmaXggJChvYmopLCQoQ09CSlMpKQorU09CSlMJOj0gJChhZGRwcmVmaXggJChvYmopLCQoU09CSlMpKQorCiskKExJQik6CSQob2JqKS5kZXBlbmQgJChPQkpTKSAkKFNPQkpTKQorCSQoQVIpICQoQVJGTEFHUykgJEAgJChPQkpTKSAkKFNPQkpTKQorCitjbGVhbjoKKwlybSAtZiAkKFNPQkpTKSAkKE9CSlMpCisKK2Rpc3RjbGVhbjoJY2xlYW4KKwlybSAtZiAkKExJQikgY29yZSAqLmJhayAuZGVwZW5kCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBkZWZpbmVzICQob2JqKS5kZXBlbmQgdGFyZ2V0CitpbmNsdWRlICQoU1JDVFJFRSkvcnVsZXMubWsKKworc2luY2x1ZGUgJChvYmopLmRlcGVuZAorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL29wZW5yZF9iYXNlL2NvbmZpZy5tayBiL2JvYXJkL01hcnZlbGwvb3BlbnJkX2Jhc2UvY29uZmlnLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhZTM1NWUKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9NYXJ2ZWxsL29wZW5yZF9iYXNlL2NvbmZpZy5tawpAQCAtMCwwICsxLDMzIEBACisjCisjIChDKSBDb3B5cmlnaHQgMjAwOQorIyBOZXQgSW5zaWdodCA8d3d3Lm5ldGluc2lnaHQubmV0PgorIyBXcml0dGVuLWJ5OiBTaW1vbiBLYWdzdHJvbSA8c2ltb24ua2Fnc3Ryb21AbmV0aW5zaWdodC5uZXQ+CisjCisjIEJhc2VkIG9uIHNoZWV2YXBsdWc6CisjIChDKSBDb3B5cmlnaHQgMjAwOQorIyBNYXJ2ZWxsIFNlbWljb25kdWN0b3IgPHd3dy5tYXJ2ZWxsLmNvbT4KKyMgV3JpdHRlbi1ieTogUHJhZnVsbGEgV2FkYXNrYXIgPHByYWZ1bGxhQG1hcnZlbGwuY29tPgorIworIyBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworIyBwcm9qZWN0LgorIworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisjIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyMgTUEgMDIxMTAtMTMwMSBVU0EKKyMKKworVEVYVF9CQVNFID0gMHgwMDYwMDAwMAorCisjIEtpcmt3b29kIEJvb3QgSW1hZ2UgY29uZmlndXJhdGlvbiBmaWxlCitLV0RfQ09ORklHID0gJChTUkNUUkVFKS9ib2FyZC8kKEJPQVJERElSKS9rd2JpbWFnZS5jZmcKZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvb3BlbnJkX2Jhc2Uva3diaW1hZ2UuY2ZnIGIvYm9hcmQvTWFydmVsbC9vcGVucmRfYmFzZS9rd2JpbWFnZS5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU3ZWIyOAotLS0gL2Rldi9udWxsCisrKyBiL2JvYXJkL01hcnZlbGwvb3BlbnJkX2Jhc2Uva3diaW1hZ2UuY2ZnCkBAIC0wLDAgKzEsMTY4IEBACisjCisjIChDKSBDb3B5cmlnaHQgMjAwOQorIyBNYXJ2ZWxsIFNlbWljb25kdWN0b3IgPHd3dy5tYXJ2ZWxsLmNvbT4KKyMgV3JpdHRlbi1ieTogUHJhZnVsbGEgV2FkYXNrYXIgPHByYWZ1bGxhQG1hcnZlbGwuY29tPgorIworIyBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworIyBwcm9qZWN0LgorIworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisjIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyMgTUEgMDIxMTAtMTMwMSBVU0EKKyMKKyMgUmVmZXIgZG9jcy9SRUFETUUua3dpbWFnZSBmb3IgbW9yZSBkZXRhaWxzIGFib3V0IGhvdy10byBjb25maWd1cmUKKyMgYW5kIGNyZWF0ZSBraXJrd29vZCBib290IGltYWdlCisjCisKKyMgQm9vdCBNZWRpYSBjb25maWd1cmF0aW9ucworQk9PVF9GUk9NCW5hbmQKK05BTkRfRUNDX01PREUJZGVmYXVsdAorTkFORF9QQUdFX1NJWkUJMHgwODAwCisKKyMgU09DIHJlZ2lzdGVycyBjb25maWd1cmF0aW9uIHVzaW5nIGJvb3Ryb20gaGVhZGVyIGV4dGVuc2lvbgorIyBNYXhpbXVtIEtXQklNQUdFX01BWF9DT05GSUcgY29uZmlndXJhdGlvbnMgYWxsb3dlZAorCisjIENvbmZpZ3VyZSBSR01JSS0wIGludGVyZmFjZSBwYWQgdm9sdGFnZSB0byAxLjhWCitEQVRBIDB4RkZEMTAwZTAgMHgxYjFiMWI5YgorCisjRHJhbSBpbml0YWxpemF0aW9uIGZvciBTSU5HTEUgeDE2IENMPTUgQCA0MDBNSHoKK0RBVEEgMHhGRkQwMTQwMCAweDQzMDAwYzMwCSMgRERSIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIKKyMgYml0MTMtMDogIDB4YzMwICgzMTIwIEREUjIgY2xrcyByZWZyZXNoIHJhdGUpCisjIGJpdDIzLTE0OiB6ZXJvCisjIGJpdDI0OiAxPSBlbmFibGUgZXhpdCBzZWxmIHJlZnJlc2ggbW9kZSBvbiBERFIgYWNjZXNzCisjIGJpdDI1OiAxIHJlcXVpcmVkCisjIGJpdDI5LTI2OiB6ZXJvCisjIGJpdDMxLTMwOiAwMQorCitEQVRBIDB4RkZEMDE0MDQgMHgzNzU0MzAwMAkjIEREUiBDb250cm9sbGVyIENvbnRyb2wgTG93CisjIGJpdCA0OiAgICAwPWFkZHIvY21kIGluIHNtYW1lIGN5Y2xlCisjIGJpdCA1OiAgICAwPWNsayBpcyBkcml2ZW4gZHVyaW5nIHNlbGYgcmVmcmVzaCwgd2UgZG9uJ3QgY2FyZSBmb3IgQVBYCisjIGJpdCA2OiAgICAwPXVzZSByZWNvbW1lbmRlZCBmYWxsaW5nIGVkZ2Ugb2YgY2xrIGZvciBhZGRyL2NtZAorIyBiaXQxNDogICAgMD1pbnB1dCBidWZmZXIgYWx3YXlzIHBvd2VyZWQgdXAKKyMgYml0MTg6ICAgIDE9Y3B1IGxvY2sgdHJhbnNhY3Rpb24gZW5hYmxlZAorIyBiaXQyMy0yMDogNT1yZWNvbW1lbmRlZCB2YWx1ZSBmb3IgQ0w9NSBhbmQgU1RBUlRCVVJTVF9ERUwgZGlzYWJsZWQgYml0MzE9MAorIyBiaXQyNy0yNDogNz0gQ0wrMiwgU1RBUlRCVVJTVCBzYW1wbGUgc3RhZ2VzLCBmb3IgZnJlcXMgNDAwTUh6LCB1bmJ1ZmZlcmVkIERJTU0KKyMgYml0MzAtMjg6IDMgcmVxdWlyZWQKKyMgYml0MzE6ICAgIDA9bm8gYWRkaXRpb25hbCBTVEFSVEJVUlNUIGRlbGF5CisKK0RBVEEgMHhGRkQwMTQwOCAweDIyMTI1NDUxCSMgRERSIFRpbWluZyAoTG93KSAoYWN0aXZlIGN5Y2xlcyB2YWx1ZSArMSkKKyMgYml0My0wOiAgIFRSQVMgbHNicworIyBiaXQ3LTQ6ICAgVFJDRAorIyBiaXQxMS0gODogVFJQCisjIGJpdDE1LTEyOiBUV1IKKyMgYml0MTktMTY6IFRXVFIKKyMgYml0MjA6ICAgIFRSQVMgbXNiCisjIGJpdDIzLTIxOiAweDAKKyMgYml0MjctMjQ6IFRSUkQKKyMgYml0MzEtMjg6IFRSVFAKKworREFUQSAweEZGRDAxNDBDIDB4MDAwMDBhMzMJIyAgRERSIFRpbWluZyAoSGlnaCkKKyMgYml0Ni0wOiAgIFRSRkMKKyMgYml0OC03OiAgIFRSMlIKKyMgYml0MTAtOTogIFRSMlcKKyMgYml0MTItMTE6IFRXMlcKKyMgYml0MzEtMTM6IHplcm8gcmVxdWlyZWQKKworREFUQSAweEZGRDAxNDEwIDB4MDAwMDAwY2MJIyAgRERSIEFkZHJlc3MgQ29udHJvbAorIyBiaXQxLTA6ICAgMDAsIENzMHdpZHRoPXg4CisjIGJpdDMtMjogICAxMSwgQ3Mwc2l6ZT0xR2IKKyMgYml0NS00OiAgIDAwLCBDczF3aWR0aD14OAorIyBiaXQ3LTY6ICAgMTEsIENzMXNpemU9MUdiCisjIGJpdDktODogICAwMCwgQ3Myd2lkdGg9bm9uZXhpc3RlbnQKKyMgYml0MTEtMTA6IDAwLCBDczJzaXplID1ub25leGlzdGVudAorIyBiaXQxMy0xMjogMDAsIENzM3dpZHRoPW5vbmV4aXN0ZW50CisjIGJpdDE1LTE0OiAwMCwgQ3Mzc2l6ZSA9bm9uZXhpc3RlbnQKKyMgYml0MTY6ICAgIDAsICBDczBBZGRyU2VsCisjIGJpdDE3OiAgICAwLCAgQ3MxQWRkclNlbAorIyBiaXQxODogICAgMCwgIENzMkFkZHJTZWwKKyMgYml0MTk6ICAgIDAsICBDczNBZGRyU2VsCisjIGJpdDMxLTIwOiAwIHJlcXVpcmVkCisKK0RBVEEgMHhGRkQwMTQxNCAweDAwMDAwMDAwCSMgIEREUiBPcGVuIFBhZ2VzIENvbnRyb2wKKyMgYml0MDogICAgMCwgIE9wZW5QYWdlIGVuYWJsZWQKKyMgYml0MzEtMTogMCByZXF1aXJlZAorCitEQVRBIDB4RkZEMDE0MTggMHgwMDAwMDAwMAkjICBERFIgT3BlcmF0aW9uCisjIGJpdDMtMDogICAweDAsIEREUiBjbWQKKyMgYml0MzEtNDogIDAgcmVxdWlyZWQKKworREFUQSAweEZGRDAxNDFDIDB4MDAwMDBDNTIJIyAgRERSIE1vZGUKKyMgYml0Mi0wOiAgIDIsIEJ1cnN0TGVuPTIgcmVxdWlyZWQKKyMgYml0MzogICAgIDAsIEJ1cnN0VHlwZT0wIHJlcXVpcmVkCisjIGJpdDYtNDogICA0LCBDTD01CisjIGJpdDc6ICAgICAwLCBUZXN0TW9kZT0wIG5vcm1hbAorIyBiaXQ4OiAgICAgMCwgRExMIHJlc2V0PTAgbm9ybWFsCisjIGJpdDExLTk6ICA2LCBhdXRvLXByZWNoYXJnZSB3cml0ZSByZWNvdmVyeSA/Pz8/Pz8/Pz8/Pz8KKyMgYml0MTI6ICAgIDAsIFBEIG11c3QgYmUgemVybworIyBiaXQzMS0xMzogMCByZXF1aXJlZAorCitEQVRBIDB4RkZEMDE0MjAgMHgwMDAwMDA0MgkjICBERFIgRXh0ZW5kZWQgTW9kZQorIyBiaXQwOiAgICAwLCAgRERSIERMTCBlbmFibGVkCisjIGJpdDE6ICAgIDEsICBERFIgZHJpdmUgc3RyZW5ndGggcmVkdWNlZAorIyBiaXQyOiAgICAwLCAgRERSIE9EVCBjb250cm9sIGxzZCAoZGlzYWJsZWQpCisjIGJpdDUtMzogIDAwMCwgcmVxdWlyZWQKKyMgYml0NjogICAgMSwgIEREUiBPRFQgY29udHJvbCBtc2IsIChkaXNhYmxlZCkKKyMgYml0OS03OiAgMDAwLCByZXF1aXJlZAorIyBiaXQxMDogICAwLCAgZGlmZmVyZW50aWFsIERRUyBlbmFibGVkCisjIGJpdDExOiAgIDAsIHJlcXVpcmVkCisjIGJpdDEyOiAgIDAsIEREUiBvdXRwdXQgYnVmZmVyIGVuYWJsZWQKKyMgYml0MzEtMTM6IDAgcmVxdWlyZWQKKworREFUQSAweEZGRDAxNDI0IDB4MDAwMEYxN0YJIyAgRERSIENvbnRyb2xsZXIgQ29udHJvbCBIaWdoCisjIGJpdDItMDogIDExMSwgcmVxdWlyZWQKKyMgYml0MyAgOiAgMSAgLCBNQlVTIEJ1cnN0IENob3AgZGlzYWJsZWQKKyMgYml0Ni00OiAgMTExLCByZXF1aXJlZAorIyBiaXQ3ICA6ICAwCisjIGJpdDggIDogIDEgICwgYWRkIHdyaXRlcGF0aCBzYW1wbGUgc3RhZ2UsIG11c3QgYmUgMSBmb3IgRERSIGZyZXEgPj0gMzAwTUh6CisjIGJpdDkgIDogIDAgICwgbm8gaGFsZiBjbG9jayBjeWNsZSBhZGRpdGlvbiB0byBkYXRhb3V0CisjIGJpdDEwIDogIDAgICwgMS80IGNsb2NrIGN5Y2xlIHNrZXcgZW5hYmxlZCBmb3IgYWRkci9jdGwgc2lnbmFscworIyBiaXQxMSA6ICAwICAsIDEvNCBjbG9jayBjeWNsZSBza2V3IGRpc2FibGVkIGZvciB3cml0ZSBtZXNoCisjIGJpdDE1LTEyOiAxMTExIHJlcXVpcmVkCisjIGJpdDMxLTE2OiAwICAgIHJlcXVpcmVkCisKK0RBVEEgMHhGRkQwMTQyOCAweDAwMDg1NTIwCSMgRERSMiBPRFQgUmVhZCBUaW1pbmcgKGRlZmF1bHQgdmFsdWVzKQorREFUQSAweEZGRDAxNDdDIDB4MDAwMDg1NTIJIyBERFIyIE9EVCBXcml0ZSBUaW1pbmcgKGRlZmF1bHQgdmFsdWVzKQorCitEQVRBIDB4RkZEMDE1MDAgMHgwMDAwMDAwMAkjIENTWzBdbiBCYXNlIGFkZHJlc3MgdG8gMHgwCitEQVRBIDB4RkZEMDE1MDQgMHgwRkZGRkZGMQkjIENTWzBdbiBTaXplCisjIGJpdDA6ICAgIDEsICBXaW5kb3cgZW5hYmxlZAorIyBiaXQxOiAgICAwLCAgV3JpdGUgUHJvdGVjdCBkaXNhYmxlZAorIyBiaXQzLTI6ICAwMCwgQ1MwIGhpdCBzZWxlY3RlZAorIyBiaXQyMy00OiBvbmVzLCByZXF1aXJlZAorIyBiaXQzMS0yNDogMHgwRiwgU2l6ZSAoaS5lLiAyNTZNQikKKworREFUQSAweEZGRDAxNTA4IDB4MTAwMDAwMDAJIyBDU1sxXW4gQmFzZSBhZGRyZXNzIHRvIDI1Nk1iCitEQVRBIDB4RkZEMDE1MEMgMHgwRkZGRkZGNQkjIENTWzFdbiBTaXplIDI1Nk1iIFdpbmRvdyBlbmFibGVkIGZvciBDUzEKKworREFUQSAweEZGRDAxNTE0IDB4MDAwMDAwMDAJIyBDU1syXW4gU2l6ZSwgd2luZG93IGRpc2FibGVkCitEQVRBIDB4RkZEMDE1MUMgMHgwMDAwMDAwMAkjIENTWzNdbiBTaXplLCB3aW5kb3cgZGlzYWJsZWQKKworREFUQSAweEZGRDAxNDk0IDB4MDAxMjAwMTIJIyAgRERSIE9EVCBDb250cm9sIChMb3cpCisjIGJpdDMtMDogICAwMDEwLCAocmVhZCkgTV9PRFRbMF0gaXMgYXNzZXJ0ZWQgZHVyaW5nIHJlYWQgZnJvbSBEUkFNIENTMQorIyBiaXQ3LTQ6ICAgMDAwMSwgKHJlYWQpIE1fT0RUWzFdIGlzIGFzc2VydGVkIGR1cmluZyByZWFkIGZyb20gRFJBTSBDUzAKKyMgYml0MTktMTY6IDAwMTAsICh3cml0ZSkgTV9PRFRbMF0gaXMgYXNzZXJ0ZWQgZHVyaW5nIHdyaXRlIHRvIERSQU0gQ1MxLgorIyBiaXQyMy0yMDogMDAwMSwgKHdyaXRlKSBNX09EVFsxXSBpcyBhc3NlcnRlZCBkdXJpbmcgd3JpdGUgdG8gRFJBTSBDUzAuCitEQVRBIDB4RkZEMDE0OTggMHgwMDAwMDAwMAkjICBERFIgT0RUIENvbnRyb2wgKEhpZ2gpCisKK0RBVEEgMHhGRkQwMTQ5QyAweDAwMDBFNDBmCSMgQ1BVIE9EVCBDb250cm9sCisjIGJpdDMtMDogICAgMTExMSwgaW50ZXJuYWwgT0RUIGlzIGFzc2VydGVkIGR1cmluZyByZWFkIGZyb20gRFJBTSBiYW5rIDAtMworIyBiaXQxMS0xMDogICAgMDEsIE1fRFEsIE1fRE0sIGFuZCBNX0RRUyBJL08gYnVmZmVyIE9EVCBTZWxlY3Q6IDE1MCBvaG0KKyMgYml0MTMtMTI6ICAgIDEwLCBNX1NUQVJUQlVSU1RfSU4gSS9PIGJ1ZmZlciBPRFQgU2VsZWN0OiA3NSBvaG0KKyMgYml0MTQ6ICAgICAgICAxLCBNX1NUQVJUQlVSU1RfSU4gT0RUOiBFbmFibGVkCisjIGJpdDE1OiAgICAgICAgMSwgRERSIElPIE9EVCBVbml0OiBVc2UgT0RUIGJsb2NrCitEQVRBIDB4RkZEMDE0ODAgMHgwMDAwMDAwMQkjIEREUiBJbml0aWFsaXphdGlvbiBDb250cm9sCisjYml0MD0xLCBlbmFibGUgRERSIGluaXQgdXBvbiB0aGlzIHJlZ2lzdGVyIHdyaXRlCisKKyMgRW5kIG9mIEhlYWRlciBleHRlbnNpb24KK0RBVEEgMHgwIDB4MApkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9vcGVucmRfYmFzZS9vcGVucmRfYmFzZS5jIGIvYm9hcmQvTWFydmVsbC9vcGVucmRfYmFzZS9vcGVucmRfYmFzZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwMGEwOGEKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9NYXJ2ZWxsL29wZW5yZF9iYXNlL29wZW5yZF9iYXNlLmMKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IDIwMDkKKyAqIE5ldCBJbnNpZ2h0IDx3d3cubmV0aW5zaWdodC5uZXQ+CisgKiBXcml0dGVuLWJ5OiBTaW1vbiBLYWdzdHJvbSA8c2ltb24ua2Fnc3Ryb21AbmV0aW5zaWdodC5uZXQ+CisgKgorICogQmFzZWQgb24gc2hlZXZhcGx1Zy5jOgorICogKEMpIENvcHlyaWdodCAyMDA5CisgKiBNYXJ2ZWxsIFNlbWljb25kdWN0b3IgPHd3dy5tYXJ2ZWxsLmNvbT4KKyAqIFdyaXR0ZW4tYnk6IFByYWZ1bGxhIFdhZGFza2FyIDxwcmFmdWxsYUBtYXJ2ZWxsLmNvbT4KKyAqCisgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworICogcHJvamVjdC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUgPGNvbW1vbi5oPgorI2luY2x1ZGUgPG1paXBoeS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2tpcmt3b29kLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbXBwLmg+CisjaW5jbHVkZSAib3BlbnJkX2Jhc2UuaCIKKworREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CisKK2ludCBib2FyZF9pbml0KHZvaWQpCit7CisJLyoKKwkgKiBkZWZhdWx0IGdwaW8gY29uZmlndXJhdGlvbgorCSAqIFRoZXJlIGFyZSBtYXhpbXVtIDY0IGdwaW9zIGNvbnRyb2xsZWQgdGhyb3VnaCAyIHNldHMgb2YgcmVnaXN0ZXJzCisJICogdGhlICBiZWxvdyBjb25maWd1cmF0aW9uIGNvbmZpZ3VyZXMgbWFpbmx5IGluaXRpYWwgTEVEIHN0YXR1cworCSAqLworCWt3X2NvbmZpZ19ncGlvKE9QRU5SRF9PRV9WQUxfTE9XLAorCQkJT1BFTlJEX09FX1ZBTF9ISUdILAorCQkJT1BFTlJEX09FX0xPVywgT1BFTlJEX09FX0hJR0gpOworCisJLyogTXVsdGktUHVycG9zZSBQaW5zIEZ1bmN0aW9uYWxpdHkgY29uZmlndXJhdGlvbiAqLworCXUzMiBrd21wcF9jb25maWdbXSA9IHsKKwkJTVBQMF9ORl9JTzIsCisJCU1QUDFfTkZfSU8zLAorCQlNUFAyX05GX0lPNCwKKwkJTVBQM19ORl9JTzUsCisJCU1QUDRfTkZfSU82LAorCQlNUFA1X05GX0lPNywKKwkJTVBQNl9TWVNSU1RfT1VUbiwKKwkJTVBQN19HUE8sCisJCU1QUDhfVFdfU0RBLAorCQlNUFA5X1RXX1NDSywKKwkJTVBQMTBfVUFSVDBfVFhELAorCQlNUFAxMV9VQVJUMF9SWEQsCisJCU1QUDEyX1NEX0NMSywKKwkJTVBQMTNfU0RfQ01ELCAvKiBBbHQgVUFSVDFfVFhEICovCisJCU1QUDE0X1NEX0QwLCAgLyogQWx0IFVBUlQxX1JYRCAqLworCQlNUFAxNV9TRF9EMSwKKwkJTVBQMTZfU0RfRDIsCisJCU1QUDE3X1NEX0QzLAorCQlNUFAxOF9ORl9JTzAsCisJCU1QUDE5X05GX0lPMSwKKwkJTVBQMjBfR0UxXzAsCisJCU1QUDIxX0dFMV8xLAorCQlNUFAyMl9HRTFfMiwKKwkJTVBQMjNfR0UxXzMsCisJCU1QUDI0X0dFMV80LAorCQlNUFAyNV9HRTFfNSwKKwkJTVBQMjZfR0UxXzYsCisJCU1QUDI3X0dFMV83LAorCQlNUFAyOF9HUElPLAorCQlNUFAyOV9UU01QOSwKKwkJTVBQMzBfR0UxXzEwLAorCQlNUFAzMV9HRTFfMTEsCisJCU1QUDMyX0dFMV8xMiwKKwkJTVBQMzNfR0UxXzEzLAorCQlNUFAzNF9HUElPLCAgIC8qIFVBUlQxIC8gU0Qgc2VsICovCisJCU1QUDM1X1RETV9DSDBfVFhfUUwsCisJCU1QUDM2X1RETV9TUElfQ1MxLAorCQlNUFAzN19URE1fQ0gyX1RYX1FMLAorCQlNUFAzOF9URE1fQ0gyX1JYX1FMLAorCQlNUFAzOV9BVURJT19JMlNCQ0xLLAorCQlNUFA0MF9BVURJT19JMlNETywKKwkJTVBQNDFfQVVESU9fSTJTTFJDLAorCQlNUFA0Ml9BVURJT19JMlNNQ0xLLAorCQlNUFA0M19BVURJT19JMlNESSwKKwkJTVBQNDRfQVVESU9fRVhUQ0xLLAorCQlNUFA0NV9URE1fUENMSywKKwkJTVBQNDZfVERNX0ZTLAorCQlNUFA0N19URE1fRFJYLAorCQlNUFA0OF9URE1fRFRYLAorCQlNUFA0OV9URE1fQ0gwX1JYX1FMLAorCQkwCisJfTsKKworCWtpcmt3b29kX21wcF9jb25mKGt3bXBwX2NvbmZpZyk7CisKKwkvKgorCSAqIGFyY2ggbnVtYmVyIG9mIGJvYXJkCisJICovCisJZ2QtPmJkLT5iaV9hcmNoX251bWJlciA9IE1BQ0hfVFlQRV9PUEVOUkRfQkFTRTsKKworCS8qIGFkcmVzcyBvZiBib290IHBhcmFtZXRlcnMgKi8KKwlnZC0+YmQtPmJpX2Jvb3RfcGFyYW1zID0ga3dfc2RyYW1fYmFyKDApICsgMHgxMDA7CisJcmV0dXJuIDA7Cit9CisKK2ludCBkcmFtX2luaXQodm9pZCkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfTlJfRFJBTV9CQU5LUzsgaSsrKSB7CisJCWdkLT5iZC0+YmlfZHJhbVtpXS5zdGFydCA9IGt3X3NkcmFtX2JhcihpKTsKKwkJZ2QtPmJkLT5iaV9kcmFtW2ldLnNpemUgPSBrd19zZHJhbV9icyhpKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBDT05GSUdfUkVTRVRfUEhZX1IKKy8qIENvbmZpZ3VyZSBhbmQgZW5hYmxlIE1WODhFMTExNiBQSFkgKi8KK3ZvaWQgcmVzZXRfcGh5KHZvaWQpCit7CisJdTE2IHJlZzsKKwl1MTYgZGV2YWRyOworCWNoYXIgKm5hbWUgPSAiZWdpZ2EwIjsKKworCWlmIChtaWlwaHlfc2V0X2N1cnJlbnRfZGV2KG5hbWUpKQorCQlyZXR1cm47CisKKwkvKiBjb21tYW5kIHRvIHJlYWQgUEhZIGRldiBhZGRyZXNzICovCisJaWYgKG1paXBoeV9yZWFkKG5hbWUsIDB4RUUsIDB4RUUsICh1MTYgKikgJmRldmFkcikpIHsKKwkJcHJpbnRmKCJFcnIuLiVzIGNvdWxkIG5vdCByZWFkIFBIWSBkZXYgYWRkcmVzc1xuIiwKKwkJCV9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIEVuYWJsZSBSR01JSSBkZWxheSBvbiBUeCBhbmQgUnggZm9yIENQVSBwb3J0CisJICogUmVmOiBzZWMgNC43LjIgb2YgY2hpcCBkYXRhc2hlZXQKKwkgKi8KKwltaWlwaHlfd3JpdGUobmFtZSwgZGV2YWRyLCBNVjg4RTExMTZfUEdBRFJfUkVHLCAyKTsKKwltaWlwaHlfcmVhZChuYW1lLCBkZXZhZHIsIE1WODhFMTExNl9NQUNfQ1RSTF9SRUcsICZyZWcpOworCXJlZyB8PSAoTVY4OEUxMTE2X1JHTUlJX1JYVE1fQ1RSTCB8IE1WODhFMTExNl9SR01JSV9UWFRNX0NUUkwpOworCW1paXBoeV93cml0ZShuYW1lLCBkZXZhZHIsIE1WODhFMTExNl9NQUNfQ1RSTF9SRUcsIHJlZyk7CisJbWlpcGh5X3dyaXRlKG5hbWUsIGRldmFkciwgTVY4OEUxMTE2X1BHQURSX1JFRywgMCk7CisKKwkvKiByZXNldCB0aGUgcGh5ICovCisJbWlpcGh5X3Jlc2V0KG5hbWUsIGRldmFkcik7CisKKwlwcmludGYoIjg4RTExMTYgSW5pdGlhbGl6ZWQgb24gJXNcbiIsIG5hbWUpOworfQorI2VuZGlmIC8qIENPTkZJR19SRVNFVF9QSFlfUiAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9vcGVucmRfYmFzZS9vcGVucmRfYmFzZS5oIGIvYm9hcmQvTWFydmVsbC9vcGVucmRfYmFzZS9vcGVucmRfYmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzZGFmMTcKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9NYXJ2ZWxsL29wZW5yZF9iYXNlL29wZW5yZF9iYXNlLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgMjAwOQorICogTmV0IEluc2lnaHQgPHd3dy5uZXRpbnNpZ2h0Lm5ldD4KKyAqIFdyaXR0ZW4tYnk6IFNpbW9uIEthZ3N0cm9tIDxzaW1vbi5rYWdzdHJvbUBuZXRpbnNpZ2h0Lm5ldD4KKyAqCisgKiBCYXNlZCBvbiBzaGVldmFwbHVnLmg6CisgKiAoQykgQ29weXJpZ2h0IDIwMDkKKyAqIE1hcnZlbGwgU2VtaWNvbmR1Y3RvciA8d3d3Lm1hcnZlbGwuY29tPgorICogV3JpdHRlbi1ieTogUHJhZnVsbGEgV2FkYXNrYXIgPHByYWZ1bGxhQG1hcnZlbGwuY29tPgorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaWZuZGVmIF9fT1BFTlJEX0JBU0VfSAorI2RlZmluZSBfX09QRU5SRF9CQVNFX0gKKworI2RlZmluZSBPUEVOUkRfT0VfTE9XCQkofigxPDwyOCkpICAgICAgICAvKiBSUzIzMiAvIFJTNDg1ICovCisjZGVmaW5lIE9QRU5SRF9PRV9ISUdICQkofigxPDwyKSkgICAgICAgICAvKiBTRCAvIFVBUlQxICovCisjZGVmaW5lIE9QRU5SRF9PRV9WQUxfTE9XCQkoMCkgICAgICAgLyogU2VsIFJTMjMyICovCisjZGVmaW5lIE9QRU5SRF9PRV9WQUxfSElHSAkJKDEgPDwgMikgIC8qIFNlbCBTRCAqLworCisvKiBQSFkgcmVsYXRlZCAqLworI2RlZmluZSBNVjg4RTExMTZfTEVEX0ZDVFJMX1JFRwkJMTAKKyNkZWZpbmUgTVY4OEUxMTE2X0NQUlNQX0NSM19SRUcJCTIxCisjZGVmaW5lIE1WODhFMTExNl9NQUNfQ1RSTF9SRUcJCTIxCisjZGVmaW5lIE1WODhFMTExNl9QR0FEUl9SRUcJCTIyCisjZGVmaW5lIE1WODhFMTExNl9SR01JSV9UWFRNX0NUUkwJKDEgPDwgNCkKKyNkZWZpbmUgTVY4OEUxMTE2X1JHTUlJX1JYVE1fQ1RSTAkoMSA8PCA1KQorCisjZW5kaWYgLyogX19PUEVOUkRfQkFTRV9IICovCmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL3JkNjI4MWEvY29uZmlnLm1rIGIvYm9hcmQvTWFydmVsbC9yZDYyODFhL2NvbmZpZy5tawppbmRleCBhNGVhNzY5Li4yYmQ5Zjc5IDEwMDY0NAotLS0gYS9ib2FyZC9NYXJ2ZWxsL3JkNjI4MWEvY29uZmlnLm1rCisrKyBiL2JvYXJkL01hcnZlbGwvcmQ2MjgxYS9jb25maWcubWsKQEAgLTIzLDMgKzIzLDYgQEAKICMKIAogVEVYVF9CQVNFID0gMHgwMDYwMDAwMAorCisjIEtpcmt3b29kIEJvb3QgSW1hZ2UgY29uZmlndXJhdGlvbiBmaWxlCitLV0RfQ09ORklHID0gJChTUkNUUkVFKS9ib2FyZC8kKEJPQVJERElSKS9rd2JpbWFnZS5jZmcKZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvcmQ2MjgxYS9rd2JpbWFnZS5jZmcgYi9ib2FyZC9NYXJ2ZWxsL3JkNjI4MWEva3diaW1hZ2UuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMTJkZDkKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9NYXJ2ZWxsL3JkNjI4MWEva3diaW1hZ2UuY2ZnCkBAIC0wLDAgKzEsMTY3IEBACisjCisjIChDKSBDb3B5cmlnaHQgMjAwOQorIyBNYXJ2ZWxsIFNlbWljb25kdWN0b3IgPHd3dy5tYXJ2ZWxsLmNvbT4KKyMgV3JpdHRlbi1ieTogUHJhZnVsbGEgV2FkYXNrYXIgPHByYWZ1bGxhQG1hcnZlbGwuY29tPgorIworIyBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworIyBwcm9qZWN0LgorIworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisjIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyMgTUEgMDIxMTAtMTMwMSBVU0EKKyMKKyMgUmVmZXIgZG9jcy9SRUFETUUua3dpbWFnZSBmb3IgbW9yZSBkZXRhaWxzIGFib3V0IGhvdy10byBjb25maWd1cmUKKyMgYW5kIGNyZWF0ZSBraXJrd29vZCBib290IGltYWdlCisjCisKKyMgQm9vdCBNZWRpYSBjb25maWd1cmF0aW9ucworQk9PVF9GUk9NCW5hbmQKK05BTkRfRUNDX01PREUJZGVmYXVsdAorTkFORF9QQUdFX1NJWkUJMHgwODAwCisKKyMgU09DIHJlZ2lzdGVycyBjb25maWd1cmF0aW9uIHVzaW5nIGJvb3Ryb20gaGVhZGVyIGV4dGVuc2lvbgorIyBNYXhpbXVtIEtXQklNQUdFX01BWF9DT05GSUcgY29uZmlndXJhdGlvbnMgYWxsb3dlZAorCisjIENvbmZpZ3VyZSBSR01JSS0wIGludGVyZmFjZSBwYWQgdm9sdGFnZSB0byAxLjhWCitEQVRBIDB4RkZEMTAwZTAgMHgxYjFiMWI5YgorCisjRHJhbSBpbml0YWxpemF0aW9uIGZvciBTSU5HTEUgeDE2IENMPTUgQCA0MDBNSHoKK0RBVEEgMHhGRkQwMTQwMCAweDQzMDAwYzMwCSMgRERSIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIKKyMgYml0MTMtMDogIDB4YzMwICgzMTIwIEREUjIgY2xrcyByZWZyZXNoIHJhdGUpCisjIGJpdDIzLTE0OiB6ZXJvCisjIGJpdDI0OiAxPSBlbmFibGUgZXhpdCBzZWxmIHJlZnJlc2ggbW9kZSBvbiBERFIgYWNjZXNzCisjIGJpdDI1OiAxIHJlcXVpcmVkCisjIGJpdDI5LTI2OiB6ZXJvCisjIGJpdDMxLTMwOiAwMQorCitEQVRBIDB4RkZEMDE0MDQgMHgzNzU0MzAwMAkjIEREUiBDb250cm9sbGVyIENvbnRyb2wgTG93CisjIGJpdCA0OiAgICAwPWFkZHIvY21kIGluIHNtYW1lIGN5Y2xlCisjIGJpdCA1OiAgICAwPWNsayBpcyBkcml2ZW4gZHVyaW5nIHNlbGYgcmVmcmVzaCwgd2UgZG9uJ3QgY2FyZSBmb3IgQVBYCisjIGJpdCA2OiAgICAwPXVzZSByZWNvbW1lbmRlZCBmYWxsaW5nIGVkZ2Ugb2YgY2xrIGZvciBhZGRyL2NtZAorIyBiaXQxNDogICAgMD1pbnB1dCBidWZmZXIgYWx3YXlzIHBvd2VyZWQgdXAKKyMgYml0MTg6ICAgIDE9Y3B1IGxvY2sgdHJhbnNhY3Rpb24gZW5hYmxlZAorIyBiaXQyMy0yMDogNT1yZWNvbW1lbmRlZCB2YWx1ZSBmb3IgQ0w9NSBhbmQgU1RBUlRCVVJTVF9ERUwgZGlzYWJsZWQgYml0MzE9MAorIyBiaXQyNy0yNDogNz0gQ0wrMiwgU1RBUlRCVVJTVCBzYW1wbGUgc3RhZ2VzLCBmb3IgZnJlcXMgNDAwTUh6LCB1bmJ1ZmZlcmVkIERJTU0KKyMgYml0MzAtMjg6IDMgcmVxdWlyZWQKKyMgYml0MzE6ICAgIDA9bm8gYWRkaXRpb25hbCBTVEFSVEJVUlNUIGRlbGF5CisKK0RBVEEgMHhGRkQwMTQwOCAweDIyMTI1NDUxCSMgRERSIFRpbWluZyAoTG93KSAoYWN0aXZlIGN5Y2xlcyB2YWx1ZSArMSkKKyMgYml0My0wOiAgIFRSQVMgbHNicworIyBiaXQ3LTQ6ICAgVFJDRAorIyBiaXQxMS0gODogVFJQCisjIGJpdDE1LTEyOiBUV1IKKyMgYml0MTktMTY6IFRXVFIKKyMgYml0MjA6ICAgIFRSQVMgbXNiCisjIGJpdDIzLTIxOiAweDAKKyMgYml0MjctMjQ6IFRSUkQKKyMgYml0MzEtMjg6IFRSVFAKKworREFUQSAweEZGRDAxNDBDIDB4MDAwMDBhMzMJIyAgRERSIFRpbWluZyAoSGlnaCkKKyMgYml0Ni0wOiAgIFRSRkMKKyMgYml0OC03OiAgIFRSMlIKKyMgYml0MTAtOTogIFRSMlcKKyMgYml0MTItMTE6IFRXMlcKKyMgYml0MzEtMTM6IHplcm8gcmVxdWlyZWQKKworREFUQSAweEZGRDAxNDEwIDB4MDAwMDAwOTkJIyAgRERSIEFkZHJlc3MgQ29udHJvbAorIyBiaXQxLTA6ICAgMDAsIENzMHdpZHRoPXg4CisjIGJpdDMtMjogICAxMSwgQ3Mwc2l6ZT0xR2IKKyMgYml0NS00OiAgIDAwLCBDczF3aWR0aD14OAorIyBiaXQ3LTY6ICAgMTEsIENzMXNpemU9MUdiCisjIGJpdDktODogICAwMCwgQ3Myd2lkdGg9bm9uZXhpc3RlbnQKKyMgYml0MTEtMTA6IDAwLCBDczJzaXplID1ub25leGlzdGVudAorIyBiaXQxMy0xMjogMDAsIENzM3dpZHRoPW5vbmV4aXN0ZW50CisjIGJpdDE1LTE0OiAwMCwgQ3Mzc2l6ZSA9bm9uZXhpc3RlbnQKKyMgYml0MTY6ICAgIDAsICBDczBBZGRyU2VsCisjIGJpdDE3OiAgICAwLCAgQ3MxQWRkclNlbAorIyBiaXQxODogICAgMCwgIENzMkFkZHJTZWwKKyMgYml0MTk6ICAgIDAsICBDczNBZGRyU2VsCisjIGJpdDMxLTIwOiAwIHJlcXVpcmVkCisKK0RBVEEgMHhGRkQwMTQxNCAweDAwMDAwMDAwCSMgIEREUiBPcGVuIFBhZ2VzIENvbnRyb2wKKyMgYml0MDogICAgMCwgIE9wZW5QYWdlIGVuYWJsZWQKKyMgYml0MzEtMTogMCByZXF1aXJlZAorCitEQVRBIDB4RkZEMDE0MTggMHgwMDAwMDAwMAkjICBERFIgT3BlcmF0aW9uCisjIGJpdDMtMDogICAweDAsIEREUiBjbWQKKyMgYml0MzEtNDogIDAgcmVxdWlyZWQKKworREFUQSAweEZGRDAxNDFDIDB4MDAwMDBDNTIJIyAgRERSIE1vZGUKKyMgYml0Mi0wOiAgIDIsIEJ1cnN0TGVuPTIgcmVxdWlyZWQKKyMgYml0MzogICAgIDAsIEJ1cnN0VHlwZT0wIHJlcXVpcmVkCisjIGJpdDYtNDogICA0LCBDTD01CisjIGJpdDc6ICAgICAwLCBUZXN0TW9kZT0wIG5vcm1hbAorIyBiaXQ4OiAgICAgMCwgRExMIHJlc2V0PTAgbm9ybWFsCisjIGJpdDExLTk6ICA2LCBhdXRvLXByZWNoYXJnZSB3cml0ZSByZWNvdmVyeSA/Pz8/Pz8/Pz8/Pz8KKyMgYml0MTI6ICAgIDAsIFBEIG11c3QgYmUgemVybworIyBiaXQzMS0xMzogMCByZXF1aXJlZAorCitEQVRBIDB4RkZEMDE0MjAgMHgwMDAwMDAwNAkjICBERFIgRXh0ZW5kZWQgTW9kZQorIyBiaXQwOiAgICAwLCAgRERSIERMTCBlbmFibGVkCisjIGJpdDE6ICAgIDAsICBERFIgZHJpdmUgc3RyZW5naHQgbm9ybWFsCisjIGJpdDI6ICAgIDEsICBERFIgT0RUIGNvbnRyb2wgbHNkIChkaXNhYmxlZCkKKyMgYml0NS0zOiAgMDAwLCByZXF1aXJlZAorIyBiaXQ2OiAgICAwLCAgRERSIE9EVCBjb250cm9sIG1zYiwgKGRpc2FibGVkKQorIyBiaXQ5LTc6ICAwMDAsIHJlcXVpcmVkCisjIGJpdDEwOiAgIDAsICBkaWZmZXJlbnRpYWwgRFFTIGVuYWJsZWQKKyMgYml0MTE6ICAgMCwgcmVxdWlyZWQKKyMgYml0MTI6ICAgMCwgRERSIG91dHB1dCBidWZmZXIgZW5hYmxlZAorIyBiaXQzMS0xMzogMCByZXF1aXJlZAorCitEQVRBIDB4RkZEMDE0MjQgMHgwMDAwRjE3RgkjICBERFIgQ29udHJvbGxlciBDb250cm9sIEhpZ2gKKyMgYml0Mi0wOiAgMTExLCByZXF1aXJlZAorIyBiaXQzICA6ICAxICAsIE1CVVMgQnVyc3QgQ2hvcCBkaXNhYmxlZAorIyBiaXQ2LTQ6ICAxMTEsIHJlcXVpcmVkCisjIGJpdDcgIDogIDAKKyMgYml0OCAgOiAgMSAgLCBhZGQgd3JpdGVwYXRoIHNhbXBsZSBzdGFnZSwgbXVzdCBiZSAxIGZvciBERFIgZnJlcSA+PSAzMDBNSHoKKyMgYml0OSAgOiAgMCAgLCBubyBoYWxmIGNsb2NrIGN5Y2xlIGFkZGl0aW9uIHRvIGRhdGFvdXQKKyMgYml0MTAgOiAgMCAgLCAxLzQgY2xvY2sgY3ljbGUgc2tldyBlbmFibGVkIGZvciBhZGRyL2N0bCBzaWduYWxzCisjIGJpdDExIDogIDAgICwgMS80IGNsb2NrIGN5Y2xlIHNrZXcgZGlzYWJsZWQgZm9yIHdyaXRlIG1lc2gKKyMgYml0MTUtMTI6IDExMTEgcmVxdWlyZWQKKyMgYml0MzEtMTY6IDAgICAgcmVxdWlyZWQKKworREFUQSAweEZGRDAxNDI4IDB4MDAwODU1MjAJIyBERFIyIE9EVCBSZWFkIFRpbWluZyAoZGVmYXVsdCB2YWx1ZXMpCitEQVRBIDB4RkZEMDE0N0MgMHgwMDAwODU1MgkjIEREUjIgT0RUIFdyaXRlIFRpbWluZyAoZGVmYXVsdCB2YWx1ZXMpCisKK0RBVEEgMHhGRkQwMTUwMCAweDAwMDAwMDAwCSMgQ1NbMF1uIEJhc2UgYWRkcmVzcyB0byAweDAKK0RBVEEgMHhGRkQwMTUwNCAweDBGRkZGRkYxCSMgQ1NbMF1uIFNpemUKKyMgYml0MDogICAgMSwgIFdpbmRvdyBlbmFibGVkCisjIGJpdDE6ICAgIDAsICBXcml0ZSBQcm90ZWN0IGRpc2FibGVkCisjIGJpdDMtMjogIDAwLCBDUzAgaGl0IHNlbGVjdGVkCisjIGJpdDIzLTQ6IG9uZXMsIHJlcXVpcmVkCisjIGJpdDMxLTI0OiAweDBGLCBTaXplIChpLmUuIDI1Nk1CKQorCitEQVRBIDB4RkZEMDE1MDggMHgxMDAwMDAwMAkjIENTWzFdbiBCYXNlIGFkZHJlc3MgdG8gMjU2TWIKK0RBVEEgMHhGRkQwMTUwQyAweDBGRkZGRkY1CSMgQ1NbMV1uIFNpemUgMjU2TWIgV2luZG93IGVuYWJsZWQgZm9yIENTMQorCitEQVRBIDB4RkZEMDE1MTQgMHgwMDAwMDAwMAkjIENTWzJdbiBTaXplLCB3aW5kb3cgZGlzYWJsZWQKK0RBVEEgMHhGRkQwMTUxQyAweDAwMDAwMDAwCSMgQ1NbM11uIFNpemUsIHdpbmRvdyBkaXNhYmxlZAorCitEQVRBIDB4RkZEMDE0OTQgMHgwMDEyMDAxMgkjICBERFIgT0RUIENvbnRyb2wgKExvdykKKyMgYml0My0wOiAgMiwgT0RUMFJkLCBNT0RUWzBdIGFzc2VydGVkIGR1cmluZyByZWFkIGZyb20gRFJBTSBDUzEKKyMgYml0Ny00OiAgMSwgT0RUMFJkLCBNT0RUWzBdIGFzc2VydGVkIGR1cmluZyByZWFkIGZyb20gRFJBTSBDUzAKKyMgYml0MTktMTY6MiwgT0RUMFdyLCBNT0RUWzBdIGFzc2VydGVkIGR1cmluZyB3cml0ZSB0byBEUkFNIENTMQorIyBiaXQyMy0yMDoxLCBPRFQwV3IsIE1PRFRbMF0gYXNzZXJ0ZWQgZHVyaW5nIHdyaXRlIHRvIERSQU0gQ1MwCisKK0RBVEEgMHhGRkQwMTQ5OCAweDAwMDAwMDAwCSMgIEREUiBPRFQgQ29udHJvbCAoSGlnaCkKKyMgYml0MS0wOiAgMDAsIE9EVDAgY29udHJvbGxlZCBieSBPRFQgQ29udHJvbCAobG93KSByZWdpc3RlciBhYm92ZQorIyBiaXQzLTI6ICAwMSwgT0RUMSBhY3RpdmUgTkVWRVIhCisjIGJpdDMxLTQ6IHplcm8sIHJlcXVpcmVkCisKK0RBVEEgMHhGRkQwMTQ5QyAweDAwMDBFNDBGCSMgQ1BVIE9EVCBDb250cm9sCitEQVRBIDB4RkZEMDE0ODAgMHgwMDAwMDAwMQkjIEREUiBJbml0aWFsaXphdGlvbiBDb250cm9sCisjYml0MD0xLCBlbmFibGUgRERSIGluaXQgdXBvbiB0aGlzIHJlZ2lzdGVyIHdyaXRlCisKKyMgRW5kIG9mIEhlYWRlciBleHRlbnNpb24KK0RBVEEgMHgwIDB4MApkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2aW5jaS9kbTM2NWV2bS9kbTM2NWV2bS5jIGIvYm9hcmQvZGF2aW5jaS9kbTM2NWV2bS9kbTM2NWV2bS5jCmluZGV4IGUzMDE4NGIuLjViOTcwNjAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmluY2kvZG0zNjVldm0vZG0zNjVldm0uYworKysgYi9ib2FyZC9kYXZpbmNpL2RtMzY1ZXZtL2RtMzY1ZXZtLmMKQEAgLTE3LDEwICsxNywxMiBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bmFuZC5oPgotI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9lbWlmX2RlZnMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9uYW5kX2RlZnMuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ncGlvX2RlZnMuaD4KKyNpbmNsdWRlIDxuZXRkZXYuaD4KICNpbmNsdWRlICIuLi9jb21tb24vbWlzYy5oIgogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKQEAgLTMzLDYgKzM1LDQ2IEBACiAJcmV0dXJuIDA7CiB9CiAKKyNpZmRlZiBDT05GSUdfRFJJVkVSX1RJX0VNQUMKK2ludCBib2FyZF9ldGhfaW5pdChiZF90ICpiaXMpCit7CisJdWludDhfdCBlZXByb21fZW5ldGFkZHJbNl07CisJaW50IGk7CisJc3RydWN0IGRhdmluY2lfZ3BpbyAqZ3BpbzFfYmFzZSA9CisJCQkoc3RydWN0IGRhdmluY2lfZ3BpbyAqKURBVklOQ0lfR1BJT19CQU5LMDE7CisKKwkvKiBDb25maWd1cmUgUElOTVVYIDMgdG8gZW5hYmxlIEVNQUMgcGlucyAqLworCXdyaXRlbCgocmVhZGwoUElOTVVYMykgfCAweDFhZmZmZiksIFBJTk1VWDMpOworCisJLyogQ29uZmlndXJlIEdQSU8yMCBhcyBvdXRwdXQgKi8KKwl3cml0ZWwoKHJlYWRsKCZncGlvMV9iYXNlLT5kaXIpICYgfigxIDw8IDIwKSksICZncGlvMV9iYXNlLT5kaXIpOworCisJLyogVG9nZ2xlIEdQSU8gMjAgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMjA7IGkrKykgeworCQkvKiBHUElPIDIwIGxvdyAqLworCQl3cml0ZWwoKHJlYWRsKCZncGlvMV9iYXNlLT5vdXRfZGF0YSkgJiB+KDEgPDwgMjApKSwKKwkJCQkJCSZncGlvMV9iYXNlLT5vdXRfZGF0YSk7CisKKwkJdWRlbGF5KDEwMDApOworCisJCS8qIEdQSU8gMjAgaGlnaCAqLworCQl3cml0ZWwoKHJlYWRsKCZncGlvMV9iYXNlLT5vdXRfZGF0YSkgfCAoMSA8PCAyMCkpLAorCQkJCQkJJmdwaW8xX2Jhc2UtPm91dF9kYXRhKTsKKwl9CisKKwkvKiBDb25maWd1cmUgSTJDIHBpbnMgc28gdGhhdCBFRVBST00gY2FuIGJlIHJlYWQgKi8KKwl3cml0ZWwoKHJlYWRsKFBJTk1VWDMpIHwgMHgwMTQwMDAwMCksIFBJTk1VWDMpOworCisJLyogUmVhZCBFdGhlcm5ldCBNQUMgYWRkcmVzcyBmcm9tIEVFUFJPTSAqLworCWlmIChkdmV2bV9yZWFkX21hY19hZGRyZXNzKGVlcHJvbV9lbmV0YWRkcikpCisJCWR2X2NvbmZpZ3VyZV9tYWNfYWRkcmVzcyhlZXByb21fZW5ldGFkZHIpOworCisJZGF2aW5jaV9lbWFjX2luaXRpYWxpemUoKTsKKworCXJldHVybiAwOworfQorI2VuZGlmCisKICNpZmRlZiBDT05GSUdfTkFORF9EQVZJTkNJCiBzdGF0aWMgdm9pZCBuYW5kX2RtMzY1ZXZtX3NlbGVjdF9jaGlwKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBpbnQgY2hpcCkKIHsKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9tZWVzYy9tZWVzYy5jIGIvYm9hcmQvZXNkL21lZXNjL21lZXNjLmMKaW5kZXggNjM2ZDBlZC4uZWZiYTYwZCAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL21lZXNjL21lZXNjLmMKKysrIGIvYm9hcmQvZXNkL21lZXNjL21lZXNjLmMKQEAgLTEyNiw4ICsxMjYsMTAgQEAKIAkJQVQ5MV9TTUNfTlJEUFVMU0VfKDQpIHwgQVQ5MV9TTUNfTkNTX1JEUFVMU0VfKDkpKTsKIAlhdDkxX3N5c193cml0ZShBVDkxX1NNQzFfQ1lDTEUoMCksCiAJCUFUOTFfU01DX05XRUNZQ0xFXygxMCkgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNSkpOwotCS8qIENvbmZpZ3VyZSBiZWhhdmlvciBhdCBleHRlcm5hbCB3YWl0IHNpZ25hbCwgYnl0ZS1zZWxlY3QgbW9kZSwgMTYgYml0Ci0JZGF0YSBidXMgd2lkdGgsIG5vbmUgZGF0YSBmbG9hdCB3YWl0IHN0YXRlcyBhbmQgVERGIG9wdGltaXphdGlvbiAqLworCS8qCisJICogQ29uZmlndXJlIGJlaGF2aW9yIGF0IGV4dGVybmFsIHdhaXQgc2lnbmFsLCBieXRlLXNlbGVjdCBtb2RlLCAxNiBiaXQKKwkgKiBkYXRhIGJ1cyB3aWR0aCwgbm9uZSBkYXRhIGZsb2F0IHdhaXQgc3RhdGVzIGFuZCBUREYgb3B0aW1pemF0aW9uCisJICovCiAJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUMxX01PREUoMCksCiAJCUFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfRVhOV01PREVfUkVBRFkgfAogCQlBVDkxX1NNQ19CQVRfU0VMRUNUIHwgQVQ5MV9TTUNfREJXXzE2IHwgQVQ5MV9TTUNfVERGXygwKSB8CkBAIC0xNTYsOCArMTU4LDMyIEBACiBpbnQgY2hlY2tib2FyZCh2b2lkKQogewogCWNoYXIgc3RyWzMyXTsKKwl1X2NoYXIgaHdfdHlwZTsJLyogaGFyZHdhcmUgdHlwZSAqLwogCi0JcHV0cygiQm9hcmQ6IGVzZCBDQU4tRXRoZXJDQVQgR2F0ZXdheSIpOworCS8qIHJlYWQgdGhlICJUeXBlIiByZWdpc3RlciBvZiB0aGUgRVQxMTAwIGNvbnRyb2xsZXIgKi8KKwlod190eXBlID0gcmVhZGIoQ09ORklHX0VUMTEwMF9CQVNFKTsKKworCXN3aXRjaCAoaHdfdHlwZSkgeworCWNhc2UgMHgxMToKKwljYXNlIDB4M0Y6CisJCS8qIEVUMTEwMCBwcmVzZW50LCBhcmNoIG51bWJlciBvZiBNRUVTQy1Cb2FyZCAqLworCQlnZC0+YmQtPmJpX2FyY2hfbnVtYmVyID0gTUFDSF9UWVBFX01FRVNDOworCQlwdXRzKCJCb2FyZDogQ0FOLUV0aGVyQ0FUIEdhdGV3YXkiKTsKKwkJYnJlYWs7CisJY2FzZSAweEZGOgorCQkvKiBubyBFVDExMDAgcHJlc2VudCwgYXJjaCBudW1iZXIgb2YgRXRoZXJDQU4vMi1Cb2FyZCAqLworCQlnZC0+YmQtPmJpX2FyY2hfbnVtYmVyID0gTUFDSF9UWVBFX0VUSEVSQ0FOMjsKKwkJcHV0cygiQm9hcmQ6IEV0aGVyQ0FOLzIgR2F0ZXdheSIpOworCQkvKiBzd2l0Y2ggb24gTEVEMUQgKi8KKwkJYXQ5MV9zZXRfZ3Bpb19vdXRwdXQoQVQ5MV9QSU5fUEIxMiwgMSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCS8qIGFzc3VtZSwgbm8gRVQxMTAwIHByZXNlbnQsIGFyY2ggbnVtYmVyIG9mIEV0aGVyQ0FOLzItQm9hcmQgKi8KKwkJZ2QtPmJkLT5iaV9hcmNoX251bWJlciA9IE1BQ0hfVFlQRV9FVEhFUkNBTjI7CisJCXByaW50ZigiRVJST1IhIFJlYWQgaW52YWxpZCBod190eXBlOiAlMDJYXG4iLCBod190eXBlKTsKKwkJcHV0cygiQm9hcmQ6IEV0aGVyQ0FOLzIgR2F0ZXdheSIpOworCQlicmVhazsKKwl9CiAJaWYgKGdldGVudl9yKCJzZXJpYWwjIiwgc3RyLCBzaXplb2Yoc3RyKSkgPiAwKSB7CiAJCXB1dHMoIiwgc2VyaWFsIyAiKTsKIAkJcHV0cyhzdHIpOwpAQCAtMTY2LDYgKzE5MiwzMiBAQAogCXByaW50ZigiTWFjaC10eXBlOiAlbHVcbiIsIGdkLT5iZC0+YmlfYXJjaF9udW1iZXIpOwogCXJldHVybiAwOwogfQorCisjaWZkZWYgQ09ORklHX1NFUklBTF9UQUcKK3ZvaWQgZ2V0X2JvYXJkX3NlcmlhbChzdHJ1Y3QgdGFnX3NlcmlhbG5yICpzZXJpYWxucikKK3sKKwljaGFyICpzdHI7CisKKwljaGFyICpzZXJpYWwgPSBnZXRlbnYoInNlcmlhbCMiKTsKKwlpZiAoc2VyaWFsKSB7CisJCXN0ciA9IHN0cmNocihzZXJpYWwsICdfJyk7CisJCWlmIChzdHIgJiYgKHN0cmxlbihzdHIpID49IDQpKSB7CisJCQlzZXJpYWxuci0+aGlnaCA9ICgqKHN0ciArIDEpIDw8IDgpIHwgKihzdHIgKyAyKTsKKwkJCXNlcmlhbG5yLT5sb3cgPSBzaW1wbGVfc3RydG91bChzdHIgKyAzLCBOVUxMLCAxNik7CisJCX0KKwl9IGVsc2UgeworCQlzZXJpYWxuci0+aGlnaCA9IDA7CisJCXNlcmlhbG5yLT5sb3cgPSAwOworCX0KK30KKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1JFVklTSU9OX1RBRwordTMyIGdldF9ib2FyZF9yZXYodm9pZCkKK3sKKwlyZXR1cm4gaHdfcmV2IHwgMHgxMDA7Cit9CisjZW5kaWYKIAogaW50IGJvYXJkX2luaXQodm9pZCkKIHsKQEAgLTE3NCw4ICsyMjYsOCBAQAogCQkJCQkxIDw8IEFUOTFTQU05MjYzX0lEX1BJT0IgfAogCQkJCQkxIDw8IEFUOTFTQU05MjYzX0lEX1BJT0NERSk7CiAKLQkvKiBhcmNoIG51bWJlciBvZiBNRUVTQy1Cb2FyZCAqLwotCWdkLT5iZC0+YmlfYXJjaF9udW1iZXIgPSBNQUNIX1RZUEVfTUVFU0M7CisJLyogaW5pdGlhbGl6ZSBFVDExMDAgQ29udHJvbGxlciAqLworCW1lZXNjX2V0aGVyY2F0X2h3X2luaXQoKTsKIAogCS8qIGFkcmVzcyBvZiBib290IHBhcmFtZXRlcnMgKi8KIAlnZC0+YmQtPmJpX2Jvb3RfcGFyYW1zID0gUEhZU19TRFJBTSArIDB4MTAwOwpAQCAtMTg0LDcgKzIzNiw2IEBACiAjaWZkZWYgQ09ORklHX0NNRF9OQU5ECiAJbWVlc2NfbmFuZF9od19pbml0KCk7CiAjZW5kaWYKLQltZWVzY19ldGhlcmNhdF9od19pbml0KCk7CiAjaWZkZWYgQ09ORklHX0hBU19EQVRBRkxBU0gKIAlhdDkxX3NwaTBfaHdfaW5pdCgxIDw8IDApOwogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9ldWtyZWEvY3B1OTI2MC9NYWtlZmlsZSBiL2JvYXJkL2V1a3JlYS9jcHU5MjYwL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5OGI1NDEKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9ldWtyZWEvY3B1OTI2MC9NYWtlZmlsZQpAQCAtMCwwICsxLDU5IEBACisjCisjIChDKSBDb3B5cmlnaHQgMjAwMy0yMDA4CisjIFdvbGZnYW5nIERlbmssIERFTlggU29mdHdhcmUgRW5naW5lZXJpbmcsIHdkQGRlbnguZGUuCisjCisjIChDKSBDb3B5cmlnaHQgMjAwOAorIyBTdGVsaWFuIFBvcCA8c3RlbGlhbi5wb3BAbGVhZHRlY2hkZXNpZ24uY29tCisjIExlYWQgVGVjaCBEZXNpZ24gPHd3dy5sZWFkdGVjaGRlc2lnbi5jb20+CisjIElsa28gSWxpZXYgPHd3dy5yb25ldGl4LmF0PgorIworIyAoQykgQ29weXJpZ2h0IDIwMDkKKyMgRXJpYyBCZW5hcmQgPGVyaWNAZXVrcmVhLmNvbT4KKyMKKyMgU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyMgcHJvamVjdC4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworIyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorIyB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorIyBNQSAwMjExMS0xMzA3IFVTQQorIworCitpbmNsdWRlICQoVE9QRElSKS9jb25maWcubWsKKworTElCCT0gJChvYmopbGliJChCT0FSRCkuYQorCitDT0JKUy15ICs9ICQoQk9BUkQpLm8KK0NPQkpTLXkgKz0gbGVkLm8KKworU1JDUwk6PSAkKFNPQkpTOi5vPS5TKSAkKENPQkpTLXk6Lm89LmMpCitPQkpTCTo9ICQoYWRkcHJlZml4ICQob2JqKSwkKENPQkpTLXkpICQoU09CSlMpKQorU09CSlMJOj0gJChhZGRwcmVmaXggJChvYmopLCQoU09CSlMpKQorCiskKExJQik6CSQob2JqKS5kZXBlbmQgJChPQkpTKSAkKFNPQkpTKQorCSQoQVIpICQoQVJGTEFHUykgJEAgJChPQkpTKQorCitjbGVhbjoKKwlybSAtZiAkKFNPQkpTKSAkKE9CSlMpCisKK2Rpc3RjbGVhbjoJY2xlYW4KKwlybSAtZiAkKExJQikgY29yZSAqLmJhayAkKG9iaikuZGVwZW5kCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBkZWZpbmVzICQob2JqKS5kZXBlbmQgdGFyZ2V0CitpbmNsdWRlICQoU1JDVFJFRSkvcnVsZXMubWsKKworc2luY2x1ZGUgJChvYmopLmRlcGVuZAorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9ib2FyZC9ldWtyZWEvY3B1OTI2MC9jb25maWcubWsgYi9ib2FyZC9ldWtyZWEvY3B1OTI2MC9jb25maWcubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNlMTYxZQotLS0gL2Rldi9udWxsCisrKyBiL2JvYXJkL2V1a3JlYS9jcHU5MjYwL2NvbmZpZy5tawpAQCAtMCwwICsxIEBACitURVhUX0JBU0UgPSAweDIxZjAwMDAwCmRpZmYgLS1naXQgYS9ib2FyZC9ldWtyZWEvY3B1OTI2MC9jcHU5MjYwLmMgYi9ib2FyZC9ldWtyZWEvY3B1OTI2MC9jcHU5MjYwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI0ZjBkNAotLS0gL2Rldi9udWxsCisrKyBiL2JvYXJkL2V1a3JlYS9jcHU5MjYwL2NwdTkyNjAuYwpAQCAtMCwwICsxLDIyMCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgMjAwNy0yMDA4CisgKiBTdGVsaWFuIFBvcCA8c3RlbGlhbi5wb3BAbGVhZHRlY2hkZXNpZ24uY29tPgorICogTGVhZCBUZWNoIERlc2lnbiA8d3d3LmxlYWR0ZWNoZGVzaWduLmNvbT4KKyAqIElsa28gSWxpZXYgPHd3dy5yb25ldGl4LmF0PgorICoKKyAqIChDKSBDb3B5cmlnaHQgMjAwOQorICogRXJpYyBCZW5hcmQgPGVyaWNAZXVrcmVhLmNvbT4KKyAqCisgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworICogcHJvamVjdC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisKKyNpbmNsdWRlIDxjb21tb24uaD4KKyNpbmNsdWRlIDxhc20vc2l6ZXMuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9hdDkxc2FtOTI2MC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFzYW05X21hdHJpeC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFzYW05X3NtYy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFfY29tbW9uLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MV9wbWMuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9hdDkxX3JzdGMuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgorI2lmIGRlZmluZWQoQ09ORklHX1JFU0VUX1BIWV9SKSAmJiBkZWZpbmVkKENPTkZJR19NQUNCKQorI2luY2x1ZGUgPG5ldC5oPgorI2VuZGlmCisjaW5jbHVkZSA8bmV0ZGV2Lmg+CisKK0RFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKgorICogTWlzY2VsYW5lb3VzIHBsYXRmb3JtIGRlcGVuZGVudCBpbml0aWFsaXNhdGlvbnMKKyAqLworCisjaWZkZWYgQ09ORklHX0NNRF9OQU5ECitzdGF0aWMgdm9pZCBjcHU5MjYwX25hbmRfaHdfaW5pdCh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgY3NhOworCisJLyogRW5hYmxlIENTMyAqLworCWNzYSA9IGF0OTFfc3lzX3JlYWQoQVQ5MV9NQVRSSVhfRUJJQ1NBKTsKKwlhdDkxX3N5c193cml0ZShBVDkxX01BVFJJWF9FQklDU0EsCisJCSAgICAgICBjc2EgfCBBVDkxX01BVFJJWF9DUzNBX1NNQ19TTUFSVE1FRElBKTsKKworCS8qIENvbmZpZ3VyZSBTTUMgQ1MzIGZvciBOQU5EL1NtYXJ0TWVkaWEgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19DUFU5RzIwKQorCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1NFVFVQKDMpLAorCQkgICAgICAgQVQ5MV9TTUNfTldFU0VUVVBfKDIpIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApIHwKKwkJICAgICAgIEFUOTFfU01DX05SRFNFVFVQXygyKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksCisJCSAgICAgICBBVDkxX1NNQ19OV0VQVUxTRV8oNCkgfCBBVDkxX1NNQ19OQ1NfV1JQVUxTRV8oNCkgfAorCQkgICAgICAgQVQ5MV9TTUNfTlJEUFVMU0VfKDQpIHwgQVQ5MV9TTUNfTkNTX1JEUFVMU0VfKDQpKTsKKwlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19DWUNMRSgzKSwKKwkJICAgICAgIEFUOTFfU01DX05XRUNZQ0xFXyg3KSB8IEFUOTFfU01DX05SRENZQ0xFXyg3KSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfTU9ERSgzKSwKKwkJICAgICAgIEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwKKwkJICAgICAgIEFUOTFfU01DX0VYTldNT0RFX0RJU0FCTEUgfAorCQkgICAgICAgQVQ5MV9TTUNfREJXXzggfAorCQkgICAgICAgQVQ5MV9TTUNfVERGXygzKSk7CisjZWxpZiBkZWZpbmVkKENPTkZJR19DUFU5MjYwKQorCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1NFVFVQKDMpLAorCQkgICAgICAgQVQ5MV9TTUNfTldFU0VUVVBfKDEpIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApIHwKKwkJICAgICAgIEFUOTFfU01DX05SRFNFVFVQXygxKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksCisJCSAgICAgICBBVDkxX1NNQ19OV0VQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfV1JQVUxTRV8oMykgfAorCQkgICAgICAgQVQ5MV9TTUNfTlJEUFVMU0VfKDMpIHwgQVQ5MV9TTUNfTkNTX1JEUFVMU0VfKDMpKTsKKwlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19DWUNMRSgzKSwKKwkJICAgICAgIEFUOTFfU01DX05XRUNZQ0xFXyg1KSB8IEFUOTFfU01DX05SRENZQ0xFXyg1KSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfTU9ERSgzKSwKKwkJICAgICAgIEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwKKwkJICAgICAgIEFUOTFfU01DX0VYTldNT0RFX0RJU0FCTEUgfAorCQkgICAgICAgQVQ5MV9TTUNfREJXXzggfAorCQkgICAgICAgQVQ5MV9TTUNfVERGXygyKSk7CisjZW5kaWYKKworCWF0OTFfc3lzX3dyaXRlKEFUOTFfUE1DX1BDRVIsIDEgPDwgQVQ5MVNBTTkyNjBfSURfUElPQyk7CisKKwkvKiBDb25maWd1cmUgUkRZL0JTWSAqLworCWF0OTFfc2V0X2dwaW9faW5wdXQoQ09ORklHX1NZU19OQU5EX1JFQURZX1BJTiwgMSk7CisKKwkvKiBFbmFibGUgTmFuZEZsYXNoICovCisJYXQ5MV9zZXRfZ3Bpb19vdXRwdXQoQ09ORklHX1NZU19OQU5EX0VOQUJMRV9QSU4sIDEpOworfQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUFDQgorc3RhdGljIHZvaWQgY3B1OTI2MF9tYWNiX2h3X2luaXQodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIHJzdGM7CisKKwkvKiBFbmFibGUgY2xvY2sgKi8KKwlhdDkxX3N5c193cml0ZShBVDkxX1BNQ19QQ0VSLCAxIDw8IEFUOTFTQU05MjYwX0lEX0VNQUMpOworCisJLyoKKwkgKiBEaXNhYmxlIHB1bGwtdXAgb246CisJICoJUlhEViAoUEExNykgPT4gUEhZIG5vcm1hbCBtb2RlIChub3QgVGVzdCBtb2RlKQorCSAqCUVSWDAgKFBBMTQpID0+IFBIWSBBRERSMAorCSAqCUVSWDEgKFBBMTUpID0+IFBIWSBBRERSMQorCSAqCUVSWDIgKFBBMjUpID0+IFBIWSBBRERSMgorCSAqCUVSWDMgKFBBMjYpID0+IFBIWSBBRERSMworCSAqCUVDUlMgKFBBMjgpID0+IFBIWSBBRERSNCAgPT4gUEhZQUREUiA9IDB4MAorCSAqCisJICogUEhZIGhhcyBpbnRlcm5hbCBwdWxsLWRvd24KKwkgKi8KKwl3cml0ZWwocGluX3RvX21hc2soQVQ5MV9QSU5fUEExNCkgfAorCSAgICAgICBwaW5fdG9fbWFzayhBVDkxX1BJTl9QQTE1KSB8CisJICAgICAgIHBpbl90b19tYXNrKEFUOTFfUElOX1BBMTcpIHwKKwkgICAgICAgcGluX3RvX21hc2soQVQ5MV9QSU5fUEEyNSkgfAorCSAgICAgICBwaW5fdG9fbWFzayhBVDkxX1BJTl9QQTI2KSB8CisJICAgICAgIHBpbl90b19tYXNrKEFUOTFfUElOX1BBMjgpLAorCSAgICAgICBwaW5fdG9fY29udHJvbGxlcihBVDkxX1BJTl9QQTApICsgUElPX1BVRFIpOworCisJcnN0YyA9IGF0OTFfc3lzX3JlYWQoQVQ5MV9SU1RDX01SKSAmIEFUOTFfUlNUQ19FUlNUTDsKKworCS8qIE5lZWQgdG8gcmVzZXQgUEhZIC0+IDUwMG1zIHJlc2V0ICovCisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9SU1RDX01SLCBBVDkxX1JTVENfS0VZIHwKKwkJICAgICAgIChBVDkxX1JTVENfRVJTVEwgJiAoMHgwRCA8PCA4KSkgfAorCQkgICAgICAgQVQ5MV9SU1RDX1VSU1RFTik7CisKKwlhdDkxX3N5c193cml0ZShBVDkxX1JTVENfQ1IsIEFUOTFfUlNUQ19LRVkgfCBBVDkxX1JTVENfRVhUUlNUKTsKKworCS8qIFdhaXQgZm9yIGVuZCBoYXJkd2FyZSByZXNldCAqLworCXdoaWxlICghKGF0OTFfc3lzX3JlYWQoQVQ5MV9SU1RDX1NSKSAmIEFUOTFfUlNUQ19OUlNUTCkpCisJCTsKKworCS8qIFJlc3RvcmUgTlJTVCB2YWx1ZSAqLworCWF0OTFfc3lzX3dyaXRlKEFUOTFfUlNUQ19NUiwgQVQ5MV9SU1RDX0tFWSB8CisJCSAgICAgICAocnN0YykgfAorCQkgICAgICAgQVQ5MV9SU1RDX1VSU1RFTik7CisKKwkvKiBSZS1lbmFibGUgcHVsbC11cCAqLworCXdyaXRlbChwaW5fdG9fbWFzayhBVDkxX1BJTl9QQTE0KSB8CisJICAgICAgIHBpbl90b19tYXNrKEFUOTFfUElOX1BBMTUpIHwKKwkgICAgICAgcGluX3RvX21hc2soQVQ5MV9QSU5fUEExNykgfAorCSAgICAgICBwaW5fdG9fbWFzayhBVDkxX1BJTl9QQTI1KSB8CisJICAgICAgIHBpbl90b19tYXNrKEFUOTFfUElOX1BBMjYpIHwKKwkgICAgICAgcGluX3RvX21hc2soQVQ5MV9QSU5fUEEyOCksCisJICAgICAgIHBpbl90b19jb250cm9sbGVyKEFUOTFfUElOX1BBMCkgKyBQSU9fUFVFUik7CisKKwlhdDkxX21hY2JfaHdfaW5pdCgpOworfQorI2VuZGlmCisKK2ludCBib2FyZF9pbml0KHZvaWQpCit7CisJLyogRW5hYmxlIEN0cmxjICovCisJY29uc29sZV9pbml0X2YoKTsKKworCS8qIGFyY2ggbnVtYmVyIG9mIHRoZSBib2FyZCAqLworI2lmIGRlZmluZWQoQ09ORklHX0NQVTlHMjApCisJZ2QtPmJkLT5iaV9hcmNoX251bWJlciA9IE1BQ0hfVFlQRV9DUFVBVDkyNjA7CisjZWxpZiBkZWZpbmVkKENPTkZJR19DUFU5MjYwKQorCWdkLT5iZC0+YmlfYXJjaF9udW1iZXIgPSBNQUNIX1RZUEVfQ1BVQVQ5MjYwOworI2VuZGlmCisKKwkvKiBhZHJlc3Mgb2YgYm9vdCBwYXJhbWV0ZXJzICovCisJZ2QtPmJkLT5iaV9ib290X3BhcmFtcyA9IFBIWVNfU0RSQU0gKyAweDEwMDsKKworCWF0OTFfc2VyaWFsX2h3X2luaXQoKTsKKyNpZmRlZiBDT05GSUdfQ01EX05BTkQKKwljcHU5MjYwX25hbmRfaHdfaW5pdCgpOworI2VuZGlmCisjaWZkZWYgQ09ORklHX01BQ0IKKwljcHU5MjYwX21hY2JfaHdfaW5pdCgpOworI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfU1RBVFVTX0xFRCkgJiYgZGVmaW5lZChTVEFUVVNfTEVEX0JPT1QpCisJc3RhdHVzX2xlZF9zZXQoU1RBVFVTX0xFRF9CT09ULCBTVEFUVVNfTEVEX09OKTsKKyNlbmRpZgorCXJldHVybiAwOworfQorCitpbnQgZHJhbV9pbml0KHZvaWQpCit7CisJZ2QtPmJkLT5iaV9kcmFtWzBdLnN0YXJ0ID0gUEhZU19TRFJBTTsKKwlpZiAoZ2V0X3JhbV9zaXplKChsb25nICopIFBIWVNfU0RSQU0sIFBIWVNfU0RSQU1fU0laRSkgIT0KKwkgICAgUEhZU19TRFJBTV9TSVpFKQorCQlyZXR1cm4gLTE7CisKKwlnZC0+YmQtPmJpX2RyYW1bMF0uc2l6ZSA9IFBIWVNfU0RSQU1fU0laRTsKKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIENPTkZJR19SRVNFVF9QSFlfUgordm9pZCByZXNldF9waHkodm9pZCkKK3sKKyNpZmRlZiBDT05GSUdfTUFDQgorCS8qCisJICogSW5pdGlhbGl6ZSBldGhlcm5ldCBIVyBhZGRyIHByaW9yIHRvIHN0YXJ0aW5nIExpbnV4LAorCSAqIG5lZWRlZCBmb3IgbmZzcm9vdAorCSAqLworCWV0aF9pbml0KGdkLT5iZCk7CisjZW5kaWYKK30KKyNlbmRpZgorCitpbnQgYm9hcmRfZXRoX2luaXQoYmRfdCAqYmlzKQoreworCWludCByYyA9IDA7CisjaWZkZWYgQ09ORklHX01BQ0IKKwlyYyA9IG1hY2JfZXRoX2luaXRpYWxpemUoMCwgKHZvaWQgKilBVDkxU0FNOTI2MF9CQVNFX0VNQUMsIDB4MDApOworI2VuZGlmCisJcmV0dXJuIHJjOworfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXVrcmVhL2NwdTkyNjAvbGVkLmMgYi9ib2FyZC9ldWtyZWEvY3B1OTI2MC9sZWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzM1NDNiCi0tLSAvZGV2L251bGwKKysrIGIvYm9hcmQvZXVrcmVhL2NwdTkyNjAvbGVkLmMKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDkgV2luZCBSaXZlciBTeXN0ZW1zLCBJbmMuCisgKiBUb20gUml4IDxUb20uUml4QHdpbmRyaXZlci5jb20+CisgKiAoQykgQ29weXJpZ2h0IDIwMDkKKyAqIEVyaWMgQmVuYXJkIDxlcmljQGV1a3JlYS5jb20+CisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaW5jbHVkZSA8Y29tbW9uLmg+CisjaW5jbHVkZSA8c3RhdHVzX2xlZC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFzYW05MjYwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MV9wbWMuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW8uaD4KKworc3RhdGljIHVuc2lnbmVkIGludCBzYXZlZF9zdGF0ZVs0XSA9IHtTVEFUVVNfTEVEX09GRiwgU1RBVFVTX0xFRF9PRkYsCisJCVNUQVRVU19MRURfT0ZGLCBTVEFUVVNfTEVEX09GRn07CisKK3ZvaWQgY29sb3VyZWRfTEVEX2luaXQodm9pZCkKK3sKKwkvKiBFbmFibGUgY2xvY2sgKi8KKwlhdDkxX3N5c193cml0ZShBVDkxX1BNQ19QQ0VSLCAxIDw8IEFUOTFTQU05MjYwX0lEX1BJT0MpOworCisJYXQ5MV9zZXRfZ3Bpb19vdXRwdXQoQ09ORklHX1JFRF9MRUQsIDEpOworCWF0OTFfc2V0X2dwaW9fb3V0cHV0KENPTkZJR19HUkVFTl9MRUQsIDEpOworCWF0OTFfc2V0X2dwaW9fb3V0cHV0KENPTkZJR19ZRUxMT1dfTEVELCAxKTsKKwlhdDkxX3NldF9ncGlvX291dHB1dChDT05GSUdfQkxVRV9MRUQsIDEpOworCisJYXQ5MV9zZXRfZ3Bpb192YWx1ZShDT05GSUdfUkVEX0xFRCwgMSk7CisJYXQ5MV9zZXRfZ3Bpb192YWx1ZShDT05GSUdfR1JFRU5fTEVELCAxKTsKKwlhdDkxX3NldF9ncGlvX3ZhbHVlKENPTkZJR19ZRUxMT1dfTEVELCAxKTsKKwlhdDkxX3NldF9ncGlvX3ZhbHVlKENPTkZJR19CTFVFX0xFRCwgMSk7Cit9CisKK3ZvaWQgcmVkX0xFRF9vZmYodm9pZCkKK3sKKwlhdDkxX3NldF9ncGlvX3ZhbHVlKENPTkZJR19SRURfTEVELCAxKTsKKwlzYXZlZF9zdGF0ZVtTVEFUVVNfTEVEX1JFRF0gPSBTVEFUVVNfTEVEX09GRjsKK30KKwordm9pZCBncmVlbl9MRURfb2ZmKHZvaWQpCit7CisJYXQ5MV9zZXRfZ3Bpb192YWx1ZShDT05GSUdfR1JFRU5fTEVELCAxKTsKKwlzYXZlZF9zdGF0ZVtTVEFUVVNfTEVEX0dSRUVOXSA9IFNUQVRVU19MRURfT0ZGOworfQorCit2b2lkIHllbGxvd19MRURfb2ZmKHZvaWQpCit7CisJYXQ5MV9zZXRfZ3Bpb192YWx1ZShDT05GSUdfWUVMTE9XX0xFRCwgMSk7CisJc2F2ZWRfc3RhdGVbU1RBVFVTX0xFRF9ZRUxMT1ddID0gU1RBVFVTX0xFRF9PRkY7Cit9CisKK3ZvaWQgYmx1ZV9MRURfb2ZmKHZvaWQpCit7CisJYXQ5MV9zZXRfZ3Bpb192YWx1ZShDT05GSUdfQkxVRV9MRUQsIDEpOworCXNhdmVkX3N0YXRlW1NUQVRVU19MRURfQkxVRV0gPSBTVEFUVVNfTEVEX09GRjsKK30KKwordm9pZCByZWRfTEVEX29uKHZvaWQpCit7CisJYXQ5MV9zZXRfZ3Bpb192YWx1ZShDT05GSUdfUkVEX0xFRCwgMCk7CisJc2F2ZWRfc3RhdGVbU1RBVFVTX0xFRF9SRURdID0gU1RBVFVTX0xFRF9PTjsKK30KKwordm9pZCBncmVlbl9MRURfb24odm9pZCkKK3sKKwlhdDkxX3NldF9ncGlvX3ZhbHVlKENPTkZJR19HUkVFTl9MRUQsIDApOworCXNhdmVkX3N0YXRlW1NUQVRVU19MRURfR1JFRU5dID0gU1RBVFVTX0xFRF9PTjsKK30KKwordm9pZCB5ZWxsb3dfTEVEX29uKHZvaWQpCit7CisJYXQ5MV9zZXRfZ3Bpb192YWx1ZShDT05GSUdfWUVMTE9XX0xFRCwgMCk7CisJc2F2ZWRfc3RhdGVbU1RBVFVTX0xFRF9ZRUxMT1ddID0gU1RBVFVTX0xFRF9PTjsKK30KKwordm9pZCBibHVlX0xFRF9vbih2b2lkKQoreworCWF0OTFfc2V0X2dwaW9fdmFsdWUoQ09ORklHX0JMVUVfTEVELCAwKTsKKwlzYXZlZF9zdGF0ZVtTVEFUVVNfTEVEX0JMVUVdID0gU1RBVFVTX0xFRF9PTjsKK30KKwordm9pZCBfX2xlZF9pbml0KGxlZF9pZF90IG1hc2ssIGludCBzdGF0ZSkKK3sKKwlfX2xlZF9zZXQobWFzaywgc3RhdGUpOworfQorCit2b2lkIF9fbGVkX3RvZ2dsZShsZWRfaWRfdCBtYXNrKQoreworCWlmIChTVEFUVVNfTEVEX0JMVUUgPT0gbWFzaykgeworCQlpZiAoU1RBVFVTX0xFRF9PTiA9PSBzYXZlZF9zdGF0ZVtTVEFUVVNfTEVEX0JMVUVdKQorCQkJYmx1ZV9MRURfb2ZmKCk7CisJCWVsc2UKKwkJCWJsdWVfTEVEX29uKCk7CisJfSBlbHNlIGlmIChTVEFUVVNfTEVEX1JFRCA9PSBtYXNrKSB7CisJCWlmIChTVEFUVVNfTEVEX09OID09IHNhdmVkX3N0YXRlW1NUQVRVU19MRURfUkVEXSkKKwkJCXJlZF9MRURfb2ZmKCk7CisJCWVsc2UKKwkJCXJlZF9MRURfb24oKTsKKwl9IGVsc2UgaWYgKFNUQVRVU19MRURfR1JFRU4gPT0gbWFzaykgeworCQlpZiAoU1RBVFVTX0xFRF9PTiA9PSBzYXZlZF9zdGF0ZVtTVEFUVVNfTEVEX0dSRUVOXSkKKwkJCWdyZWVuX0xFRF9vZmYoKTsKKwkJZWxzZQorCQkJZ3JlZW5fTEVEX29uKCk7CisJfSBlbHNlIGlmIChTVEFUVVNfTEVEX1lFTExPVyA9PSBtYXNrKSB7CisJCWlmIChTVEFUVVNfTEVEX09OID09IHNhdmVkX3N0YXRlW1NUQVRVU19MRURfWUVMTE9XXSkKKwkJCXllbGxvd19MRURfb2ZmKCk7CisJCWVsc2UKKwkJCXllbGxvd19MRURfb24oKTsKKwl9Cit9CisKK3ZvaWQgX19sZWRfc2V0KGxlZF9pZF90IG1hc2ssIGludCBzdGF0ZSkKK3sKKwlpZiAoU1RBVFVTX0xFRF9CTFVFID09IG1hc2spIHsKKwkJaWYgKFNUQVRVU19MRURfT04gPT0gc3RhdGUpCisJCQlibHVlX0xFRF9vbigpOworCQllbHNlCisJCQlibHVlX0xFRF9vZmYoKTsKKwl9IGVsc2UgaWYgKFNUQVRVU19MRURfUkVEID09IG1hc2spIHsKKwkJaWYgKFNUQVRVU19MRURfT04gPT0gc3RhdGUpCisJCQlyZWRfTEVEX29uKCk7CisJCWVsc2UKKwkJCXJlZF9MRURfb2ZmKCk7CisJfSBlbHNlIGlmIChTVEFUVVNfTEVEX0dSRUVOID09IG1hc2spIHsKKwkJaWYgKFNUQVRVU19MRURfT04gPT0gc3RhdGUpCisJCQlncmVlbl9MRURfb24oKTsKKwkJZWxzZQorCQkJZ3JlZW5fTEVEX29mZigpOworCX0gZWxzZSBpZiAoU1RBVFVTX0xFRF9ZRUxMT1cgPT0gbWFzaykgeworCQlpZiAoU1RBVFVTX0xFRF9PTiA9PSBzdGF0ZSkKKwkJCXllbGxvd19MRURfb24oKTsKKwkJZWxzZQorCQkJeWVsbG93X0xFRF9vZmYoKTsKKwl9Cit9CmRpZmYgLS1naXQgYS9ib2FyZC9ldWtyZWEvY3B1YXQ5MS9NYWtlZmlsZSBiL2JvYXJkL2V1a3JlYS9jcHVhdDkxL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzMWI3YTEKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9ldWtyZWEvY3B1YXQ5MS9NYWtlZmlsZQpAQCAtMCwwICsxLDUwIEBACisjCisjIChDKSBDb3B5cmlnaHQgMjAwMy0yMDA2CisjIFdvbGZnYW5nIERlbmssIERFTlggU29mdHdhcmUgRW5naW5lZXJpbmcsIHdkIGF0IGRlbnguZGUuIDxodHRwOi8vbGlzdHMuZGVueC5kZS9tYWlsbWFuL2xpc3RpbmZvL3UtYm9vdD4KKyMKKyMgU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyMgcHJvamVjdC4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworIyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorIyB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyMgTUEgMDIxMTEtMTMwNyBVU0EKKyMKKworaW5jbHVkZSAkKFRPUERJUikvY29uZmlnLm1rCisKK0xJQgk9ICQob2JqKWxpYiQoQk9BUkQpLmEKKworQ09CSlMJOj0gY3B1YXQ5MS5vCisKK1NSQ1MJOj0gJChTT0JKUzoubz0uUykgJChDT0JKUzoubz0uYykKK09CSlMJOj0gJChhZGRwcmVmaXggJChvYmopLCQoQ09CSlMpKQorU09CSlMJOj0gJChhZGRwcmVmaXggJChvYmopLCQoU09CSlMpKQorCiskKExJQik6CSQob2JqKS5kZXBlbmQgJChPQkpTKSAkKFNPQkpTKQorCSQoQVIpICQoQVJGTEFHUykgJEAgJChPQkpTKSAkKFNPQkpTKQorCitjbGVhbjoKKwlybSAtZiAkKFNPQkpTKSAkKE9CSlMpCisKK2Rpc3RjbGVhbjoJY2xlYW4KKwlybSAtZiAkKExJQikgY29yZSAqLmJhayAuZGVwZW5kCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBkZWZpbmVzICQob2JqKS5kZXBlbmQgdGFyZ2V0CitpbmNsdWRlICQoU1JDVFJFRSkvcnVsZXMubWsKKworc2luY2x1ZGUgJChvYmopLmRlcGVuZAorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9ib2FyZC9ldWtyZWEvY3B1YXQ5MS9jb25maWcubWsgYi9ib2FyZC9ldWtyZWEvY3B1YXQ5MS9jb25maWcubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY4ZGRhMAotLS0gL2Rldi9udWxsCisrKyBiL2JvYXJkL2V1a3JlYS9jcHVhdDkxL2NvbmZpZy5tawpAQCAtMCwwICsxIEBACitURVhUX0JBU0UgPSAweDIxRjAwMDAwCmRpZmYgLS1naXQgYS9ib2FyZC9ldWtyZWEvY3B1YXQ5MS9jcHVhdDkxLmMgYi9ib2FyZC9ldWtyZWEvY3B1YXQ5MS9jcHVhdDkxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE3MDBiNgotLS0gL2Rldi9udWxsCisrKyBiL2JvYXJkL2V1a3JlYS9jcHVhdDkxL2NwdWF0OTEuYwpAQCAtMCwwICsxLDgxIEBACisvKgorICogKEMpIENvcHlyaWdodCAyMDA2IEV1a3JlYSBFbGVjdHJvbWF0aXF1ZSA8d3d3LmV1a3JlYS5jb20+CisgKiBFcmljIEJlbmFyZCA8ZXJpY0BldWtyZWEuY29tPgorICogYmFzZWQgb24gYXQ5MXJtOTIwMGRrLmMgd2hpY2ggaXMgOgorICogKEMpIENvcHlyaWdodCAyMDAyCisgKiBTeXNnbyBSZWFsLVRpbWUgU29sdXRpb25zLCBHbWJIIDx3d3cuZWxpbm9zLmNvbT4KKyAqIE1hcml1cyBHcm9lZ2VyIDxtZ3JvZWdlckBzeXNnby5kZT4KKyAqCisgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworICogcHJvamVjdC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaW5jbHVkZSA8Y29tbW9uLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvQVQ5MVJNOTIwMC5oPgorI2luY2x1ZGUgPGF0OTFybTkyMDBfbmV0Lmg+CisjaW5jbHVkZSA8a3M4NzIxLmg+CisKK0RFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKgorICogTWlzY2VsYW5lb3VzIHBsYXRmb3JtIGRlcGVuZGVudCBpbml0aWFsaXNhdGlvbnMKKyAqLworCitpbnQgYm9hcmRfaW5pdCh2b2lkKQoreworCS8qIEVuYWJsZSBDdHJsYyAqLworCWNvbnNvbGVfaW5pdF9mKCk7CisJLyogYXJjaCBudW1iZXIgb2YgQ1BVQVQ5MS1Cb2FyZCAqLworCWdkLT5iZC0+YmlfYXJjaF9udW1iZXIgPSBNQUNIX1RZUEVfQ1BVQVQ5MTsKKwkvKiBhZHJlc3Mgb2YgYm9vdCBwYXJhbWV0ZXJzICovCisJZ2QtPmJkLT5iaV9ib290X3BhcmFtcyA9IFBIWVNfU0RSQU0gKyAweDEwMDsKKworCXJldHVybiAwOworfQorCitpbnQgZHJhbV9pbml0KHZvaWQpCit7CisJZ2QtPmJkLT5iaV9kcmFtWzBdLnN0YXJ0ID0gUEhZU19TRFJBTTsKKwlnZC0+YmQtPmJpX2RyYW1bMF0uc2l6ZSA9IFBIWVNfU0RSQU1fU0laRTsKKwlyZXR1cm4gMDsKK30KKworI2lmIGRlZmluZWQoQ09ORklHX0RSSVZFUl9FVEhFUikKKyNpZiBkZWZpbmVkKENPTkZJR19DTURfTkVUKQorCisvKgorICogTmFtZToKKyAqCWF0OTFybTkyMDBfR2V0UGh5SW50ZXJmYWNlCisgKiBEZXNjcmlwdGlvbjoKKyAqCUluaXRpYWxpc2UgdGhlIGludGVyZmFjZSBmdW5jdGlvbnMgdG8gdGhlIFBIWQorICogQXJndW1lbnRzOgorICoJTm9uZQorICogUmV0dXJuIHZhbHVlOgorICoJTm9uZQorICovCit2b2lkIGF0OTFybTkyMDBfR2V0UGh5SW50ZXJmYWNlKEFUOTFQU19QaHlPcHMgcF9waHlvcHMpCit7CisJcF9waHlvcHMtPkluaXQgPSBrczg3MjFfaW5pdHBoeTsKKwlwX3BoeW9wcy0+SXNQaHlDb25uZWN0ZWQgPSBrczg3MjFfaXNwaHljb25uZWN0ZWQ7CisJcF9waHlvcHMtPkdldExpbmtTcGVlZCA9IGtzODcyMV9nZXRsaW5rc3BlZWQ7CisJcF9waHlvcHMtPkF1dG9OZWdvdGlhdGUgPSBrczg3MjFfYXV0b25lZ290aWF0ZTsKK30KKworI2VuZGlmCS8qIENPTkZJR19DTURfTkVUICovCisjZW5kaWYJLyogQ09ORklHX0RSSVZFUl9FVEhFUiAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL3AxX3AyX3JkYi9jb25maWcubWsgYi9ib2FyZC9mcmVlc2NhbGUvcDFfcDJfcmRiL2NvbmZpZy5tawppbmRleCBhNTZiNTM2Li4wZjdhMDQ4IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvcDFfcDJfcmRiL2NvbmZpZy5taworKysgYi9ib2FyZC9mcmVlc2NhbGUvcDFfcDJfcmRiL2NvbmZpZy5tawpAQCAtMjQsOCArMjQsMjcgQEAKICMgcDFfcDJyZGIgYm9hcmQKICMKIAoraWZuZGVmIE5BTkRfU1BMCitpZmVxICgkKENPTkZJR19NS19OQU5EKSwgeSkKK1RFWFRfQkFTRSA9ICQoQ09ORklHX1JBTUJPT1RfVEVYVF9CQVNFKQorTERTQ1JJUFQgOj0gJChUT1BESVIpL2NwdS8kKENQVSkvdS1ib290LW5hbmQubGRzCitlbmRpZgorZW5kaWYKKworaWZlcSAoJChDT05GSUdfTUtfU0RDQVJEKSwgeSkKK1RFWFRfQkFTRSA9ICQoQ09ORklHX1JBTUJPT1RfVEVYVF9CQVNFKQorUkVTRVRfVkVDVE9SX0FERFJFU1MgPSAweGY4ZmZmZmZjCitlbmRpZgorCitpZmVxICgkKENPTkZJR19NS19TUElGTEFTSCksIHkpCitURVhUX0JBU0UgPSAkKENPTkZJR19SQU1CT09UX1RFWFRfQkFTRSkKK1JFU0VUX1ZFQ1RPUl9BRERSRVNTID0gMHhmOGZmZmZmYworZW5kaWYKKwogaWZuZGVmIFRFWFRfQkFTRQogVEVYVF9CQVNFID0gMHhlZmY4MDAwMAogZW5kaWYKIAoraWZuZGVmIFJFU0VUX1ZFQ1RPUl9BRERSRVNTCiBSRVNFVF9WRUNUT1JfQUREUkVTUyA9IDB4ZWZmZmZmZmMKK2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvcDFfcDJfcmRiL3RsYi5jIGIvYm9hcmQvZnJlZXNjYWxlL3AxX3AyX3JkYi90bGIuYwppbmRleCBjZjliZmZlLi4wMDA5OTEzIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvcDFfcDJfcmRiL3RsYi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9wMV9wMl9yZGIvdGxiLmMKQEAgLTc4LDYgKzc4LDE2IEBACiAJCQlNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJCTAsIDYsIEJPT0tFX1BBR0VTWl8xTSwgMSksCiAKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfTDJfQUREUikKKwkvKiAqSSpHIC0gTDJTUkFNICovCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0lOSVRfTDJfQUREUiwgQ09ORklHX1NZU19JTklUX0wyX0FERFJfUEhZUywKKwkJCU1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAorCQkJMCwgNywgQk9PS0VfUEFHRVNaXzI1NkssIDEpLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19JTklUX0wyX0FERFIgKyAweDQwMDAwLAorCQkJQ09ORklHX1NZU19JTklUX0wyX0FERFJfUEhZUyArIDB4NDAwMDAsCisJCQlNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKKwkJCTAsIDgsIEJPT0tFX1BBR0VTWl8yNTZLLCAxKSwKKyNlbmRpZgogfTsKIAogaW50IG51bV90bGJfZW50cmllcyA9IEFSUkFZX1NJWkUodGxiX3RhYmxlKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2xvZ2ljcGQvem9vbTEvem9vbTEuaCBiL2JvYXJkL2xvZ2ljcGQvem9vbTEvem9vbTEuaAppbmRleCA0ZjQ5YTQxLi45MDU4ZDFmIDEwMDY0NAotLS0gYS9ib2FyZC9sb2dpY3BkL3pvb20xL3pvb20xLmgKKysrIGIvYm9hcmQvbG9naWNwZC96b29tMS96b29tMS5oCkBAIC00NSw4OCArNDUsODggQEAKICAqLwogI2RlZmluZSBNVVhfWk9PTTFfTURLKCkgXAogIC8qU0RSQyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzKi9cCi0gTVVYX1ZBTChDUChTRFJDX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDQqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENSovXAotIE1VWF9WQUwoQ1AoU0RSQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q2Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDcqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EOCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q5Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEyKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTQqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE1Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTcqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE4Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxOSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIxKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QyMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjMqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI0Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjYqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI3Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyOCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjkqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDMwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDMwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QzMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzMSovXAotIE1VWF9WQUwoQ1AoU0RSQ19DTEspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19DTEsqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzIqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzMqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMyovXAorCU1VWF9WQUwoQ1AoU0RSQ19ENCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q0Ki9cCisJTVVYX1ZBTChDUChTRFJDX0Q1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDUqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENiovXAorCU1VWF9WQUwoQ1AoU0RSQ19ENyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q3Ki9cCisJTVVYX1ZBTChDUChTRFJDX0Q4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDgqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EOSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDExKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDExKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMiovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTMqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE0Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTYqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE3Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxOCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTkqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIwKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjIqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIzKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjUqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI2Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QyNyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNyovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjgqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI5Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QzMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzMCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMzEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMzEqL1wKKwlNVVhfVkFMKENQKFNEUkNfQ0xLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfQ0xLKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMwKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMxKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMyKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMzKi9cCiAgLypHUE1DKi9cCi0gTVVYX1ZBTChDUChHUE1DX0ExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTEqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BMiovXAotIE1VWF9WQUwoQ1AoR1BNQ19BMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0EzKi9cCi0gTVVYX1ZBTChDUChHUE1DX0E0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTQqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNSovXAotIE1VWF9WQUwoQ1AoR1BNQ19BNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E2Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0E3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTcqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BOCovXAotIE1VWF9WQUwoQ1AoR1BNQ19BOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E5Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0ExMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0ExMCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QwKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMiovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QzKi9cCi0gTVVYX1ZBTChDUChHUE1DX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDQqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENSovXAotIE1VWF9WQUwoQ1AoR1BNQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q2Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDcqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EOCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q5Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTEqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEyKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMyovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTQqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDE1Ki9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MwKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzEpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNNykpIC8qR1BNQ19uQ1MxKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzIpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNNykpIC8qR1BNQ19uQ1MyKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzMpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNNykpIC8qR1BNQ19uQ1MzKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzQpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNNykpIC8qR1BNQ19uQ1M0Ki9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNykpIC8qR1BNQ19uQ1M1Ki9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNykpIC8qR1BNQ19uQ1M2Ki9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzcpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNykpIC8qR1BNQ19uQ1M3Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0NMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0NMSyovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQURWX0FMRSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkFEVl9BTEUqL1wKLSBNVVhfVkFMKENQKEdQTUNfTk9FKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbk9FKi9cCi0gTVVYX1ZBTChDUChHUE1DX05XRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25XRSovXAotIE1VWF9WQUwoQ1AoR1BNQ19OV1ApLAkJKElESVMgfCBQVFUgfCBESVMgfCBNMCkpIC8qR1BNQ19uV1AqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkJFMF9DTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25CRTBfQ0xFKi9cCi0gTVVYX1ZBTChDUChHUE1DX05CRTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uQkUxKi9cCi0gTVVYX1ZBTChDUChHUE1DX1dBSVQwKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMCovXAotIE1VWF9WQUwoQ1AoR1BNQ19XQUlUMSksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDEqL1wKLSBNVVhfVkFMKENQKEdQTUNfV0FJVDIpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQyKi9cCi0gTVVYX1ZBTChDUChHUE1DX1dBSVQzKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMyovCisJTVVYX1ZBTChDUChHUE1DX0ExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTEqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19BMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0EzKi9cCisJTVVYX1ZBTChDUChHUE1DX0E0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTQqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNSovXAorCU1VWF9WQUwoQ1AoR1BNQ19BNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E2Ki9cCisJTVVYX1ZBTChDUChHUE1DX0E3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTcqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BOCovXAorCU1VWF9WQUwoQ1AoR1BNQ19BOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E5Ki9cCisJTVVYX1ZBTChDUChHUE1DX0ExMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0ExMCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QwKi9cCisJTVVYX1ZBTChDUChHUE1DX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QzKi9cCisJTVVYX1ZBTChDUChHUE1DX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDQqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENSovXAorCU1VWF9WQUwoQ1AoR1BNQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q2Ki9cCisJTVVYX1ZBTChDUChHUE1DX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDcqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EOCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q5Ki9cCisJTVVYX1ZBTChDUChHUE1DX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTEqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEyKi9cCisJTVVYX1ZBTChDUChHUE1DX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTQqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDE1Ki9cCisJTVVYX1ZBTChDUChHUE1DX05DUzApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MwKi9cCisJTVVYX1ZBTChDUChHUE1DX05DUzEpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNNykpIC8qR1BNQ19uQ1MxKi9cCisJTVVYX1ZBTChDUChHUE1DX05DUzIpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNNykpIC8qR1BNQ19uQ1MyKi9cCisJTVVYX1ZBTChDUChHUE1DX05DUzMpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNNykpIC8qR1BNQ19uQ1MzKi9cCisJTVVYX1ZBTChDUChHUE1DX05DUzQpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNNykpIC8qR1BNQ19uQ1M0Ki9cCisJTVVYX1ZBTChDUChHUE1DX05DUzUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNykpIC8qR1BNQ19uQ1M1Ki9cCisJTVVYX1ZBTChDUChHUE1DX05DUzYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNykpIC8qR1BNQ19uQ1M2Ki9cCisJTVVYX1ZBTChDUChHUE1DX05DUzcpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNykpIC8qR1BNQ19uQ1M3Ki9cCisJTVVYX1ZBTChDUChHUE1DX0NMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0NMSyovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQURWX0FMRSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkFEVl9BTEUqL1wKKwlNVVhfVkFMKENQKEdQTUNfTk9FKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbk9FKi9cCisJTVVYX1ZBTChDUChHUE1DX05XRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25XRSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OV1ApLAkJKElESVMgfCBQVFUgfCBESVMgfCBNMCkpIC8qR1BNQ19uV1AqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkJFMF9DTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25CRTBfQ0xFKi9cCisJTVVYX1ZBTChDUChHUE1DX05CRTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uQkUxKi9cCisJTVVYX1ZBTChDUChHUE1DX1dBSVQwKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDAqL1wKKwlNVVhfVkFMKENQKEdQTUNfV0FJVDEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMSovXAorCU1VWF9WQUwoQ1AoR1BNQ19XQUlUMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQyKi9cCisJTVVYX1ZBTChDUChHUE1DX1dBSVQzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDMqLwogCiAjZW5kaWYgLyogX0JPQVJEX1pPT01fSF8gKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2xvZ2ljcGQvem9vbTIvem9vbTIuaCBiL2JvYXJkL2xvZ2ljcGQvem9vbTIvem9vbTIuaAppbmRleCBhMjFkMWQ2Li5mMzk2ODViIDEwMDY0NAotLS0gYS9ib2FyZC9sb2dpY3BkL3pvb20yL3pvb20yLmgKKysrIGIvYm9hcmQvbG9naWNwZC96b29tMi96b29tMi5oCkBAIC01MywxMDYgKzUzLDEwNiBAQAogICovCiAjZGVmaW5lIE1VWF9aT09NMigpIFwKICAvKiBTRFJDKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QwKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDAgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDEgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QyKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDIgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QzKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDMgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0Q0KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDQgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0Q1KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDUgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0Q2KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDYgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0Q3KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDcgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0Q4KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDggKi9cCi0gTVVYX1ZBTChDUChTRFJDX0Q5KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDkgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMCksIChJRU4gfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBTRFJDX0QxMCAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDExKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDExICovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTIpLCAoSUVOIHwgUFREIHwgRElTIHwgTTApKQkJLyogU0RSQ19EMTIgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMyksIChJRU4gfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBTRFJDX0QxMyAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE0KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDE0ICovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTUpLCAoSUVOIHwgUFREIHwgRElTIHwgTTApKQkJLyogU0RSQ19EMTUgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxNiksIChJRU4gfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBTRFJDX0QxNiAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE3KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDE3ICovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTgpLCAoSUVOIHwgUFREIHwgRElTIHwgTTApKQkJLyogU0RSQ19EMTggKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxOSksIChJRU4gfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBTRFJDX0QxOSAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIwKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDIwICovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjEpLCAoSUVOIHwgUFREIHwgRElTIHwgTTApKQkJLyogU0RSQ19EMjEgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QyMiksIChJRU4gfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBTRFJDX0QyMiAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIzKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDIzICovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjQpLCAoSUVOIHwgUFREIHwgRElTIHwgTTApKQkJLyogU0RSQ19EMjQgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QyNSksIChJRU4gfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBTRFJDX0QyNSAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI2KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDI2ICovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjcpLCAoSUVOIHwgUFREIHwgRElTIHwgTTApKQkJLyogU0RSQ19EMjcgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QyOCksIChJRU4gfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBTRFJDX0QyOCAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI5KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRDI5ICovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMzApLCAoSUVOIHwgUFREIHwgRElTIHwgTTApKQkJLyogU0RSQ19EMzAgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QzMSksIChJRU4gfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBTRFJDX0QzMSAqL1wKLSBNVVhfVkFMKENQKFNEUkNfQ0xLKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfQ0xLICovXAotIE1VWF9WQUwoQ1AoU0RSQ19EUVMwKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRFFTMCAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMSksIChJRU4gfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBTRFJDX0RRUzEgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0RRUzIpLCAoSUVOIHwgUFREIHwgRElTIHwgTTApKQkJLyogU0RSQ19EUVMyICovXAotIE1VWF9WQUwoQ1AoU0RSQ19EUVMzKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIFNEUkNfRFFTMyAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qIFNEUkNfRDAgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBTRFJDX0QxICovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMiAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qIFNEUkNfRDMgKi9cCisJTVVYX1ZBTChDUChTRFJDX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBTRFJDX0Q0ICovXAorCU1VWF9WQUwoQ1AoU0RSQ19ENSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19ENSAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qIFNEUkNfRDYgKi9cCisJTVVYX1ZBTChDUChTRFJDX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBTRFJDX0Q3ICovXAorCU1VWF9WQUwoQ1AoU0RSQ19EOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EOCAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qIFNEUkNfRDkgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMTAgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMTEgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMTIgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMTMgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMTQgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMTUgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMTYgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxNyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMTcgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMTggKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMTkgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMjAgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMjEgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMjIgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMjMgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMjQgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMjUgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMjYgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyNyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMjcgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMjggKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMjkgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QzMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMzAgKi9cCisJTVVYX1ZBTChDUChTRFJDX0QzMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EMzEgKi9cCisJTVVYX1ZBTChDUChTRFJDX0NMSyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19DTEsgKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qIFNEUkNfRFFTMCAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRFFTMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogU0RSQ19EUVMxICovXAorCU1VWF9WQUwoQ1AoU0RSQ19EUVMyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBTRFJDX0RRUzIgKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qIFNEUkNfRFFTMyAqL1wKIC8qIEdQTUMgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0ExKSwgKElESVMgfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBHUE1DX0ExICovXAotIE1VWF9WQUwoQ1AoR1BNQ19BMiksIChJRElTIHwgUFREIHwgRElTIHwgTTApKQkJLyogR1BNQ19BMiAqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTMpLCAoSURJUyB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfQTMgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0E0KSwgKElESVMgfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBHUE1DX0E0ICovXAotIE1VWF9WQUwoQ1AoR1BNQ19BNSksIChJRElTIHwgUFREIHwgRElTIHwgTTApKQkJLyogR1BNQ19BNSAqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTYpLCAoSURJUyB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfQTYgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0E3KSwgKElESVMgfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBHUE1DX0E3ICovXAotIE1VWF9WQUwoQ1AoR1BNQ19BOCksIChJRElTIHwgUFREIHwgRElTIHwgTTApKQkJLyogR1BNQ19BOCAqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTkpLCAoSURJUyB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfQTkgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0ExMCksIChJRElTIHwgUFREIHwgRElTIHwgTTApKQkJLyogR1BNQ19BMTAgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QwKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDAgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDEgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QyKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDIgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QzKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDMgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0Q0KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDQgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0Q1KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDUgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0Q2KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDYgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0Q3KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDcgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0Q4KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDggKi9cCi0gTVVYX1ZBTChDUChHUE1DX0Q5KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDkgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxMCksIChJRU4gfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBHUE1DX0QxMCAqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDExKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDExICovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTIpLCAoSUVOIHwgUFREIHwgRElTIHwgTTApKQkJLyogR1BNQ19EMTIgKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxMyksIChJRU4gfCBQVEQgfCBESVMgfCBNMCkpCQkvKiBHUE1DX0QxMyAqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDE0KSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfRDE0ICovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTUpLCAoSUVOIHwgUFREIHwgRElTIHwgTTApKQkJLyogR1BNQ19EMTUgKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzApLCAoSURJUyB8IFBUVSB8IEVOIHwgTTApKQkJLyogR1BNQ19uQ1MwICovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1MxKSwgKElESVMgfCBQVFUgfCBFTiB8IE03KSkJCS8qIEdQTUNfbkNTMSAqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTMiksIChJRElTIHwgUFRVIHwgRU4gfCBNNykpCQkvKiBHUE1DX25DUzIgKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzMpLCAoSURJUyB8IFBUVSB8IEVOIHwgTTcpKQkJLyogR1BNQ19uQ1MzICovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1M0KSwgKElESVMgfCBQVFUgfCBFTiB8IE03KSkJCS8qIEdQTUNfbkNTNCAqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTNSksIChJRElTIHwgUFREIHwgRElTIHwgTTcpKQkvKiBHUE1DX25DUzUgKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzYpLCAoSUVOIHwgUFREIHwgRElTIHwgTTcpKQkJLyogR1BNQ19uQ1M2ICovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1M3KSwgKElFTiB8IFBUVSB8IEVOIHwgTTcpKQkJLyogR1BNQ19uQ1M3ICovXAotIE1VWF9WQUwoQ1AoR1BNQ19DTEspLCAoSURJUyB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfQ0xLICovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQURWX0FMRSksIChJRElTIHwgUFREIHwgRElTIHwgTTApKQkvKiBHUE1DX25BRFZfQUxFICovXAotIE1VWF9WQUwoQ1AoR1BNQ19OT0UpLCAoSURJUyB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfbk9FICovXAotIE1VWF9WQUwoQ1AoR1BNQ19OV0UpLCAoSURJUyB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfbldFICovXAotIE1VWF9WQUwoQ1AoR1BNQ19OV1ApLCAoSURJUyB8IFBUVSB8IERJUyB8IE0wKSkJCS8qIEdQTUNfbldQICovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQkUwX0NMRSksIChJRElTIHwgUFREIHwgRElTIHwgTTApKQkvKiBHUE1DX25CRTBfQ0xFICovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQkUxKSwgKElFTiB8IFBURCB8IERJUyB8IE0wKSkJCS8qIEdQTUNfbkJFMSAqL1wKLSBNVVhfVkFMKENQKEdQTUNfV0FJVDApLCAoSUVOIHwgUFREIHwgRU4gfCBNMCkpCQkvKiBHUE1DX1dBSVQwICovXAotIE1VWF9WQUwoQ1AoR1BNQ19XQUlUMSksIChJRU4gfCBQVFUgfCBFTiB8IE0wKSkJCS8qIEdQTUNfV0FJVDEgKi9cCi0gTVVYX1ZBTChDUChHUE1DX1dBSVQyKSwgKElFTiB8IFBUVSB8IEVOIHwgTTApKQkJLyogR1BNQ19XQUlUMiAqL1wKLSBNVVhfVkFMKENQKEdQTUNfV0FJVDMpLCAoSUVOIHwgUFRVIHwgRU4gfCBNMCkpCQkvKiBHUE1DX1dBSVQzICovXAorCU1VWF9WQUwoQ1AoR1BNQ19BMSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLyogR1BNQ19BMSAqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qIEdQTUNfQTIgKi9cCisJTVVYX1ZBTChDUChHUE1DX0EzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0EzICovXAorCU1VWF9WQUwoQ1AoR1BNQ19BNCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLyogR1BNQ19BNCAqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qIEdQTUNfQTUgKi9cCisJTVVYX1ZBTChDUChHUE1DX0E2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0E2ICovXAorCU1VWF9WQUwoQ1AoR1BNQ19BNyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLyogR1BNQ19BNyAqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qIEdQTUNfQTggKi9cCisJTVVYX1ZBTChDUChHUE1DX0E5KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0E5ICovXAorCU1VWF9WQUwoQ1AoR1BNQ19BMTApLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qIEdQTUNfQTEwICovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogR1BNQ19EMCAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qIEdQTUNfRDEgKi9cCisJTVVYX1ZBTChDUChHUE1DX0QyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0QyICovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogR1BNQ19EMyAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qIEdQTUNfRDQgKi9cCisJTVVYX1ZBTChDUChHUE1DX0Q1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0Q1ICovXAorCU1VWF9WQUwoQ1AoR1BNQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogR1BNQ19ENiAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qIEdQTUNfRDcgKi9cCisJTVVYX1ZBTChDUChHUE1DX0Q4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0Q4ICovXAorCU1VWF9WQUwoQ1AoR1BNQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLyogR1BNQ19EOSAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDEwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0QxMCAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDExKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0QxMSAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0QxMiAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDEzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0QxMyAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDE0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0QxNCAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKiBHUE1DX0QxNSAqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTMCksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLyogR1BNQ19uQ1MwICovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1MxKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTcpKSAvKiBHUE1DX25DUzEgKi9cCisJTVVYX1ZBTChDUChHUE1DX05DUzIpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNNykpIC8qIEdQTUNfbkNTMiAqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTMyksCQkoSURJUyB8IFBUVSB8IEVOICB8IE03KSkgLyogR1BNQ19uQ1MzICovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M0KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTcpKSAvKiBHUE1DX25DUzQgKi9cCisJTVVYX1ZBTChDUChHUE1DX05DUzUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNykpIC8qIEdQTUNfbkNTNSAqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE03KSkgLyogR1BNQ19uQ1M2ICovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTcpKSAvKiBHUE1DX25DUzcgKi9cCisJTVVYX1ZBTChDUChHUE1DX0NMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLyogR1BNQ19DTEsgKi9cCisJTVVYX1ZBTChDUChHUE1DX05BRFZfQUxFKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qIEdQTUNfbkFEVl9BTEUgKi9cCisJTVVYX1ZBTChDUChHUE1DX05PRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLyogR1BNQ19uT0UgKi9cCisJTVVYX1ZBTChDUChHUE1DX05XRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLyogR1BNQ19uV0UgKi9cCisJTVVYX1ZBTChDUChHUE1DX05XUCksCQkoSURJUyB8IFBUVSB8IERJUyB8IE0wKSkgLyogR1BNQ19uV1AgKi9cCisJTVVYX1ZBTChDUChHUE1DX05CRTBfQ0xFKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qIEdQTUNfbkJFMF9DTEUgKi9cCisJTVVYX1ZBTChDUChHUE1DX05CRTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qIEdQTUNfbkJFMSAqL1wKKwlNVVhfVkFMKENQKEdQTUNfV0FJVDApLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qIEdQTUNfV0FJVDAgKi9cCisJTVVYX1ZBTChDUChHUE1DX1dBSVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKiBHUE1DX1dBSVQxICovXAorCU1VWF9WQUwoQ1AoR1BNQ19XQUlUMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLyogR1BNQ19XQUlUMiAqL1wKKwlNVVhfVkFMKENQKEdQTUNfV0FJVDMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qIEdQTUNfV0FJVDMgKi9cCiAvKiBJRENDIG1vZGVtIFBvd2VyIE9uICovXAotIE1VWF9WQUwoQ1AoQ0FNX0QxMSksIChJRU4gfCBQVFUgfCBFTiB8IE00KSkJCS8qIEdQSU9fMTEwICovXAotIE1VWF9WQUwoQ1AoQ0FNX0Q0KSwgKElFTiB8IFBUVSB8IEVOIHwgTTQpKQkJLyogR1BJT18xMDMgKi9cCisJTVVYX1ZBTChDUChDQU1fRDExKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKiBHUElPXzExMCAqL1wKKwlNVVhfVkFMKENQKENBTV9ENCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLyogR1BJT18xMDMgKi9cCiAvKiBHUE1DIENTNyBoYXMgTEFOOTIxMSBkZXZpY2UgKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzcpLCAoSURJUyB8IFBUVSB8IEVOIHwgTTApKQkJLyogR1BNQ19uQ1M3ICovXAotIE1VWF9WQUwoQ1AoTUNCU1AxX0RYKSwgKElFTiB8IFBURCB8IERJUyB8IE00KSkJCS8qIExBTjkyMjEgKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfQ1MyKSwgKElFTiB8IFBURCB8IEVOIHwgTTApKQkJLyogTUNTUEkxX0NTMiAqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTNyksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLyogR1BNQ19uQ1M3ICovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0RYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKiBMQU45MjIxICovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX0NTMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLyogTUNTUEkxX0NTMiAqL1wKIC8qIEdQTUMgQ1MzIGhhcyBTZXJpYWwgVEwxNkNQNzU0QyBkZXZpY2UgKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzMpLCAoSURJUyB8IFBUVSB8IEVOIHwgTTApKQkJLyogR1BNQ19uQ1MzICovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1MzKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKiBHUE1DX25DUzMgKi9cCiAvKiBUb2dnbGUgUmVzZXQgcGluIG9mIFRMMTZDUDc1NEMgZGV2aWNlICovXAotIE1VWF9WQUwoQ1AoTUNCU1A0X0NMS1gpLCAoSUVOIHwgUFRVIHwgRU4gfCBNNCkpCS8qIEdQSU9fMTUyICovXAorCU1VWF9WQUwoQ1AoTUNCU1A0X0NMS1gpLAkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLyogR1BJT18xNTIgKi9cCiAgdWRlbGF5KDEwKTtcCi0gTVVYX1ZBTChDUChNQ0JTUDRfQ0xLWCksIChJRU4gfCBQVEQgfCBFTiB8IE00KSkJLyogR1BJT18xNTIgKi9cCi0gTVVYX1ZBTChDUChTRFJDX0NLRTEpLCAoSURJUyB8IFBUVSB8IEVOIHwgTTApKQkJLyogU0RSQ19DS0UxICovXAorCU1VWF9WQUwoQ1AoTUNCU1A0X0NMS1gpLAkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLyogR1BJT18xNTIgKi9cCisJTVVYX1ZBTChDUChTRFJDX0NLRTEpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qIFNEUkNfQ0tFMSAqL1wKIC8qIExFRFMgKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfU09NSSksIChJRU4gfCBQVEQgfCBFTiB8IE00KSkJLyogR1BJT18xNzMgcmVkICAqL1wKLSBNVVhfVkFMKENQKE1DQlNQNF9EWCksIChJRU4gfCBQVEQgfCBFTiB8IE00KSkJCS8qIEdQSU9fMTU0IGJsdWUgICovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQkUxKSwgKElFTiB8IFBURCB8IEVOIHwgTTQpKQkJLyogR1BJT182MSBibHVlMiAgKi8KKwlNVVhfVkFMKENQKE1DU1BJMV9TT01JKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNNCkpIC8qIEdQSU9fMTczIHJlZCAgKi9cCisJTVVYX1ZBTChDUChNQ0JTUDRfRFgpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNNCkpIC8qIEdQSU9fMTU0IGJsdWUgKi9cCisJTVVYX1ZBTChDUChHUE1DX05CRTEpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNNCkpIC8qIEdQSU9fNjEgYmx1ZTIgKi8KIAogI2VuZGlmIC8qIF9CT0FSRF9aT09NMl9IXyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvb3Zlcm8vb3Zlcm8uYyBiL2JvYXJkL292ZXJvL292ZXJvLmMKaW5kZXggZGQ2ZDI4Ni4uZDQyZGMxMyAxMDA2NDQKLS0tIGEvYm9hcmQvb3Zlcm8vb3Zlcm8uYworKysgYi9ib2FyZC9vdmVyby9vdmVyby5jCkBAIC0yOSwxMyArMjksMjAgQEAKICAqIE1BIDAyMTExLTEzMDcgVVNBCiAgKi8KICNpbmNsdWRlIDxjb21tb24uaD4KKyNpbmNsdWRlIDxuZXRkZXYuaD4KICNpbmNsdWRlIDx0d2w0MDMwLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvbXV4Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbWVtLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvc3lzX3Byb3RvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaW5jbHVkZSAib3Zlcm8uaCIKIAorI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ORVQpCitzdGF0aWMgdm9pZCBzZXR1cF9uZXRfY2hpcCh2b2lkKTsKKyNlbmRpZgorCiAvKgogICogUm91dGluZTogYm9hcmRfaW5pdAogICogRGVzY3JpcHRpb246IEVhcmx5IGhhcmR3YXJlIGluaXQuCkBAIC02Miw2ICs2OSwxMCBAQAogCXR3bDQwMzBfcG93ZXJfaW5pdCgpOwogCXR3bDQwMzBfbGVkX2luaXQoKTsKIAorI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ORVQpCisJc2V0dXBfbmV0X2NoaXAoKTsKKyNlbmRpZgorCiAJZGllaWRfbnVtX3IoKTsKIAogCXJldHVybiAwOwpAQCAtNzcsMyArODgsNTEgQEAKIHsKIAlNVVhfT1ZFUk8oKTsKIH0KKworI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ORVQpCisvKgorICogUm91dGluZTogc2V0dXBfbmV0X2NoaXAKKyAqIERlc2NyaXB0aW9uOiBTZXR0aW5nIHVwIHRoZSBjb25maWd1cmF0aW9uIEdQTUMgcmVnaXN0ZXJzIHNwZWNpZmljIHRvIHRoZQorICoJICAgICAgRXRoZXJuZXQgaGFyZHdhcmUuCisgKi8KK3N0YXRpYyB2b2lkIHNldHVwX25ldF9jaGlwKHZvaWQpCit7CisJc3RydWN0IGN0cmwgKmN0cmxfYmFzZSA9IChzdHJ1Y3QgY3RybCAqKU9NQVAzNFhYX0NUUkxfQkFTRTsKKworCS8qIENvbmZpZ3VyZSBHUE1DIHJlZ2lzdGVycyAqLworCXdyaXRlbChORVRfR1BNQ19DT05GSUcxLCAmZ3BtY19jZmctPmNzWzVdLmNvbmZpZzEpOworCXdyaXRlbChORVRfR1BNQ19DT05GSUcyLCAmZ3BtY19jZmctPmNzWzVdLmNvbmZpZzIpOworCXdyaXRlbChORVRfR1BNQ19DT05GSUczLCAmZ3BtY19jZmctPmNzWzVdLmNvbmZpZzMpOworCXdyaXRlbChORVRfR1BNQ19DT05GSUc0LCAmZ3BtY19jZmctPmNzWzVdLmNvbmZpZzQpOworCXdyaXRlbChORVRfR1BNQ19DT05GSUc1LCAmZ3BtY19jZmctPmNzWzVdLmNvbmZpZzUpOworCXdyaXRlbChORVRfR1BNQ19DT05GSUc2LCAmZ3BtY19jZmctPmNzWzVdLmNvbmZpZzYpOworCXdyaXRlbChORVRfR1BNQ19DT05GSUc3LCAmZ3BtY19jZmctPmNzWzVdLmNvbmZpZzcpOworCisJLyogRW5hYmxlIG9mZiBtb2RlIGZvciBOV0UgaW4gUEFEQ09ORl9HUE1DX05XRSByZWdpc3RlciAqLworCXdyaXRldyhyZWFkdygmY3RybF9iYXNlIC0+Z3BtY19ud2UpIHwgMHgwRTAwLCAmY3RybF9iYXNlLT5ncG1jX253ZSk7CisJLyogRW5hYmxlIG9mZiBtb2RlIGZvciBOT0UgaW4gUEFEQ09ORl9HUE1DX05BRFZfQUxFIHJlZ2lzdGVyICovCisJd3JpdGV3KHJlYWR3KCZjdHJsX2Jhc2UtPmdwbWNfbm9lKSB8IDB4MEUwMCwgJmN0cmxfYmFzZS0+Z3BtY19ub2UpOworCS8qIEVuYWJsZSBvZmYgbW9kZSBmb3IgQUxFIGluIFBBRENPTkZfR1BNQ19OQURWX0FMRSByZWdpc3RlciAqLworCXdyaXRldyhyZWFkdygmY3RybF9iYXNlLT5ncG1jX25hZHZfYWxlKSB8IDB4MEUwMCwKKwkJJmN0cmxfYmFzZS0+Z3BtY19uYWR2X2FsZSk7CisKKwkvKiBNYWtlIEdQSU8gNjQgYXMgb3V0cHV0IHBpbiBhbmQgc2VuZCBhIG1hZ2ljIHB1bHNlIHRocm91Z2ggaXQgKi8KKwlpZiAoIW9tYXBfcmVxdWVzdF9ncGlvKDY0KSkgeworCQlvbWFwX3NldF9ncGlvX2RpcmVjdGlvbig2NCwgMCk7CisJCW9tYXBfc2V0X2dwaW9fZGF0YW91dCg2NCwgMSk7CisJCXVkZWxheSgxKTsKKwkJb21hcF9zZXRfZ3Bpb19kYXRhb3V0KDY0LCAwKTsKKwkJdWRlbGF5KDEpOworCQlvbWFwX3NldF9ncGlvX2RhdGFvdXQoNjQsIDEpOworCX0KK30KKyNlbmRpZgorCitpbnQgYm9hcmRfZXRoX2luaXQoYmRfdCAqYmlzKQoreworCWludCByYyA9IDA7CisjaWZkZWYgQ09ORklHX1NNQzkxMVgKKwlyYyA9IHNtYzkxMXhfaW5pdGlhbGl6ZSgwLCBDT05GSUdfU01DOTExWF9CQVNFKTsKKyNlbmRpZgorCXJldHVybiByYzsKK30KZGlmZiAtLWdpdCBhL2JvYXJkL292ZXJvL292ZXJvLmggYi9ib2FyZC9vdmVyby9vdmVyby5oCmluZGV4IDBiNTkxMjAuLjRjN2FjMjcgMTAwNjQ0Ci0tLSBhL2JvYXJkL292ZXJvL292ZXJvLmgKKysrIGIvYm9hcmQvb3Zlcm8vb3Zlcm8uaApAQCAtNDUsMzM3ICs0NSwzMzggQEAKICAqLwogI2RlZmluZSBNVVhfT1ZFUk8oKSBcCiAgLypTRFJDKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDMqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENCovXAotIE1VWF9WQUwoQ1AoU0RSQ19ENSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q1Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0Q2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDYqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q4Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0Q5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDkqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDEwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTIqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDEzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEzKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTUqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE2Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxNyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTgqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE5Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIyKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QyMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjQqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI1Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjcqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI4Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyOSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMzApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMzAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDMxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDMxKi9cCi0gTVVYX1ZBTChDUChTRFJDX0NMSyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0NMSyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EUVMwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRFFTMCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EUVMxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRFFTMSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EUVMyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRFFTMiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EUVMzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRFFTMyovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QwKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMiovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzKi9cCisJTVVYX1ZBTChDUChTRFJDX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDQqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENSovXAorCU1VWF9WQUwoQ1AoU0RSQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q2Ki9cCisJTVVYX1ZBTChDUChTRFJDX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDcqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EOCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q5Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTEqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEyKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMyovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTQqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE1Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNiovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTcqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE4Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxOSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIxKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMiovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjMqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI0Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QyNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjYqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI3Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QyOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyOCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjkqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDMwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDMwKi9cCisJTVVYX1ZBTChDUChTRFJDX0QzMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzMSovXAorCU1VWF9WQUwoQ1AoU0RSQ19DTEspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19DTEsqL1wKKwlNVVhfVkFMKENQKFNEUkNfRFFTMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRFFTMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzEqL1wKKwlNVVhfVkFMKENQKFNEUkNfRFFTMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzIqL1wKKwlNVVhfVkFMKENQKFNEUkNfRFFTMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzMqL1wKICAvKkdQTUMqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19BMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0EyKi9cCi0gTVVYX1ZBTChDUChHUE1DX0EzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTMqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTQpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNCovXAotIE1VWF9WQUwoQ1AoR1BNQ19BNSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E1Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0E2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTYqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTcpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNyovXAotIE1VWF9WQUwoQ1AoR1BNQ19BOCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E4Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0E5KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTkqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTEwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTEwKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDAqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QyKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDMqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENCovXAotIE1VWF9WQUwoQ1AoR1BNQ19ENSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q1Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0Q2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDYqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENyovXAotIE1VWF9WQUwoQ1AoR1BNQ19EOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q4Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0Q5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDkqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEwKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTIqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEzKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxNCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTUqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTMCksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzAqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTMSksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzEqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTMiksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzIqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTMyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzU0Ki9cCi0JCQkJCQkJIC8qIC0gTU1DMV9XUCovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1M0KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTNCovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1M1KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkNTNSovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1M2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkNTNiovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1M3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTNyovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQkUxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkNTMyovXAotIE1VWF9WQUwoQ1AoR1BNQ19DTEspLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19DTEsqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkFEVl9BTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25BRFZfQUxFKi9cCi0gTVVYX1ZBTChDUChHUE1DX05PRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25PRSovXAotIE1VWF9WQUwoQ1AoR1BNQ19OV0UpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uV0UqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkJFMF9DTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25CRTBfQ0xFKi9cCi0gTVVYX1ZBTChDUChHUE1DX05XUCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25XUCovXAotIE1VWF9WQUwoQ1AoR1BNQ19XQUlUMCksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDAqL1wKLSBNVVhfVkFMKENQKEdQTUNfV0FJVDEpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQxKi9cCi0gTVVYX1ZBTChDUChHUE1DX1dBSVQyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNNCkpIC8qR1BJT182NCovXAotCQkJCQkJCS8qIC0gU01TQzkxMVhfTlJFUyovXAotIE1VWF9WQUwoQ1AoR1BNQ19XQUlUMyksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19BMSksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0ExKi9cCisJTVVYX1ZBTChDUChHUE1DX0EyKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfQTIqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTMpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19BMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19BNCksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0E0Ki9cCisJTVVYX1ZBTChDUChHUE1DX0E1KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfQTUqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTYpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19BNiovXAorCU1VWF9WQUwoQ1AoR1BNQ19BNyksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0E3Ki9cCisJTVVYX1ZBTChDUChHUE1DX0E4KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfQTgqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTkpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19BOSovXAorCU1VWF9WQUwoQ1AoR1BNQ19BMTApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19BMTAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDApLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EMCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0QxKi9cCisJTVVYX1ZBTChDUChHUE1DX0QyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDIqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19ENCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0Q0Ki9cCisJTVVYX1ZBTChDUChHUE1DX0Q1KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDUqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDYpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19ENiovXAorCU1VWF9WQUwoQ1AoR1BNQ19ENyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0Q3Ki9cCisJTVVYX1ZBTChDUChHUE1DX0Q4KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDgqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDkpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EOSovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTApLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EMTAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDExKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDExKi9cCisJTVVYX1ZBTChDUChHUE1DX0QxMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0QxMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EMTMqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDE0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDE0Ki9cCisJTVVYX1ZBTChDUChHUE1DX0QxNSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0QxNSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1MwKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMCovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1MxKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1MyKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1MzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fNTQqL1wKKwkJCQkJCQkJIC8qIC0gTU1DMV9XUCovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M0KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTNCovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M1KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTNSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkNTNiovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTNyovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQkUxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkNTMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19DTEspLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19DTEsqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkFEVl9BTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25BRFZfQUxFKi9cCisJTVVYX1ZBTChDUChHUE1DX05PRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25PRSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OV0UpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uV0UqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkJFMF9DTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25CRTBfQ0xFKi9cCisJTVVYX1ZBTChDUChHUE1DX05XUCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25XUCovXAorCU1VWF9WQUwoQ1AoR1BNQ19XQUlUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQwKi9cCisJTVVYX1ZBTChDUChHUE1DX1dBSVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDEqL1wKKwlNVVhfVkFMKENQKEdQTUNfV0FJVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT182NCovXAorCQkJCQkJCQkgLyogLSBTTVNDOTExWF9OUkVTKi9cCisJTVVYX1ZBTChDUChHUE1DX1dBSVQzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMyovXAogIC8qRFNTKi9cCi0gTVVYX1ZBTChDUChEU1NfUENMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfUENMSyovXAotIE1VWF9WQUwoQ1AoRFNTX0hTWU5DKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19IU1lOQyovXAotIE1VWF9WQUwoQ1AoRFNTX1ZTWU5DKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19WU1lOQyovXAotIE1VWF9WQUwoQ1AoRFNTX0FDQklBUyksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19BQ0JJQVMqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTAqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTMqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTQqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTUqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTYqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTcqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBOCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTgqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTkqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTApLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEwKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTExKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExMSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExMiksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTIqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTMpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEzKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTE0KSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExNSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTUqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTYpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE2Ki9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTE3KSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNyovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExOCksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTgqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTkpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE5Ki9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTIwKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEEyMSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjEqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMjIpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIyKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTIzKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMyovXAorCU1VWF9WQUwoQ1AoRFNTX1BDTEspLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX1BDTEsqL1wKKwlNVVhfVkFMKENQKERTU19IU1lOQyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfSFNZTkMqL1wKKwlNVVhfVkFMKENQKERTU19WU1lOQyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfVlNZTkMqL1wKKwlNVVhfVkFMKENQKERTU19BQ0JJQVMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0FDQklBUyovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEyKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMiovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMyovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE1KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNiovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNyovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE4KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBOCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE5KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBOSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEwKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTEqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExMiovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEzKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTE0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTQqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE2Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTE3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTcqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExOCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE5Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTIwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjAqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMjEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEyMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIyKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTIzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjMqL1wKICAvKkNBTUVSQSovXAotIE1VWF9WQUwoQ1AoQ0FNX0hTKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkNBTV9IUyAqL1wKLSBNVVhfVkFMKENQKENBTV9WUyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypDQU1fVlMgKi9cCi0gTVVYX1ZBTChDUChDQU1fWENMS0EpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX1hDTEtBKi9cCi0gTVVYX1ZBTChDUChDQU1fUENMSyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypDQU1fUENMSyovXAotIE1VWF9WQUwoQ1AoQ0FNX0ZMRCksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypDQU1fRkxEKi9cCi0gTVVYX1ZBTChDUChDQU1fRDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QwKi9cCi0gTVVYX1ZBTChDUChDQU1fRDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QxKi9cCi0gTVVYX1ZBTChDUChDQU1fRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QyKi9cCi0gTVVYX1ZBTChDUChDQU1fRDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QzKi9cCi0gTVVYX1ZBTChDUChDQU1fRDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q0Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q1Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q2Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q3Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q4Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q5Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDEwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9EMTAqL1wKLSBNVVhfVkFMKENQKENBTV9EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QxMSovXAotIE1VWF9WQUwoQ1AoQ0FNX1hDTEtCKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9YQ0xLQiovXAotIE1VWF9WQUwoQ1AoQ0FNX1dFTiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fV0VOKi9cCi0gTVVYX1ZBTChDUChDQU1fU1RST0JFKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX1NUUk9CRSovXAotIE1VWF9WQUwoQ1AoQ1NJMl9EWDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ1NJMl9EWDAqL1wKLSBNVVhfVkFMKENQKENTSTJfRFkwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNTSTJfRFkwKi9cCi0gTVVYX1ZBTChDUChDU0kyX0RYMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzExNCovXAotCQkJCQkJCSAvKiAtIFBFTl9ET1dOKi9cCi0gTVVYX1ZBTChDUChDU0kyX0RZMSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzExNSovXAorCU1VWF9WQUwoQ1AoQ0FNX0hTKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkNBTV9IUyAqL1wKKwlNVVhfVkFMKENQKENBTV9WUyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypDQU1fVlMgKi9cCisJTVVYX1ZBTChDUChDQU1fWENMS0EpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX1hDTEtBKi9cCisJTVVYX1ZBTChDUChDQU1fUENMSyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypDQU1fUENMSyovXAorCU1VWF9WQUwoQ1AoQ0FNX0ZMRCksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypDQU1fRkxEKi9cCisJTVVYX1ZBTChDUChDQU1fRDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QwKi9cCisJTVVYX1ZBTChDUChDQU1fRDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QxKi9cCisJTVVYX1ZBTChDUChDQU1fRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QyKi9cCisJTVVYX1ZBTChDUChDQU1fRDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QzKi9cCisJTVVYX1ZBTChDUChDQU1fRDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q0Ki9cCisJTVVYX1ZBTChDUChDQU1fRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q1Ki9cCisJTVVYX1ZBTChDUChDQU1fRDYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q2Ki9cCisJTVVYX1ZBTChDUChDQU1fRDcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q3Ki9cCisJTVVYX1ZBTChDUChDQU1fRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q4Ki9cCisJTVVYX1ZBTChDUChDQU1fRDkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q5Ki9cCisJTVVYX1ZBTChDUChDQU1fRDEwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9EMTAqL1wKKwlNVVhfVkFMKENQKENBTV9EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QxMSovXAorCU1VWF9WQUwoQ1AoQ0FNX1hDTEtCKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9YQ0xLQiovXAorCU1VWF9WQUwoQ1AoQ0FNX1dFTiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fV0VOKi9cCisJTVVYX1ZBTChDUChDQU1fU1RST0JFKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9TVFJPQkUqL1wKKwlNVVhfVkFMKENQKENTSTJfRFgwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNTSTJfRFgwKi9cCisJTVVYX1ZBTChDUChDU0kyX0RZMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDU0kyX0RZMCovXAorCU1VWF9WQUwoQ1AoQ1NJMl9EWDEpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNNCkpIC8qR1BJT18xMTQqL1wKKwkJCQkJCQkJIC8qIC0gUEVOX0RPV04qL1wKKwlNVVhfVkFMKENQKENTSTJfRFkxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTE1Ki9cCiAgLypBdWRpbyBJbnRlcmZhY2UgKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDJfRlNYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0ZTWCovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0NMS1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDJfQ0xLWCovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0RSKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9EUiovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9EWCovXAorCU1VWF9WQUwoQ1AoTUNCU1AyX0ZTWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDJfRlNYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9DTEtYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfRFIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0RSKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfRFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0RYKi9cCiAgLypFeHBhbnNpb24gY2FyZCAqL1wKLSBNVVhfVkFMKENQKE1NQzFfQ0xLKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfQ0xLKi9cCi0gTVVYX1ZBTChDUChNTUMxX0NNRCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0NNRCovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQwKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMCovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMSovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMiovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMyovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQ0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNCovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQ1KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNSovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQ2KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNiovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQ3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNyovXAorCU1VWF9WQUwoQ1AoTU1DMV9DTEspLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9DTEsqL1wKKwlNVVhfVkFMKENQKE1NQzFfQ01EKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfQ01EKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDApLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQwKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQxKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQyKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQzKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQ0Ki9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDUpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQ1Ki9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDYpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQ2Ki9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDcpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQ3Ki9cCiAgLypXaXJlbGVzcyBMQU4gKi9cCi0gTVVYX1ZBTChDUChNTUMyX0NMSyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0NMSyovXAotIE1VWF9WQUwoQ1AoTU1DMl9DTUQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMl9DTUQqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDAqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDEqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDIqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDMqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUNCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0xKSkgLypNTUMyX0RJUl9EQVQwKi9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDUpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMSkpIC8qTU1DMl9ESVJfREFUMSovXAotIE1VWF9WQUwoQ1AoTU1DMl9EQVQ2KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTEpKSAvKk1NQzJfRElSX0NNRCovXAotIE1VWF9WQUwoQ1AoTU1DMl9EQVQ3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTEpKSAvKk1NQzJfQ0xLSU4qL1wKKwlNVVhfVkFMKENQKE1NQzJfQ0xLKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzJfQ0xLKi9cCisJTVVYX1ZBTChDUChNTUMyX0NNRCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0NNRCovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQwKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzJfREFUMCovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzJfREFUMSovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzJfREFUMiovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzJfREFUMyovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQ0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTEpKSAvKk1NQzJfRElSX0RBVDAqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUNSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0xKSkgLypNTUMyX0RJUl9EQVQxKi9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDYpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMSkpIC8qTU1DMl9ESVJfQ01EKi9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDcpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMSkpIC8qTU1DMl9DTEtJTiovXAogIC8qQmx1ZXRvb3RoKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDNfRFgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMSkpIC8qVUFSVDJfQ1RTKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDNfRFIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMSkpIC8qVUFSVDJfUlRTKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDNfQ0xLWCksCShJRElTIHwgUFREIHwgRElTIHwgTTEpKSAvKlVBUlQyX1RYKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDNfRlNYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMSkpIC8qVUFSVDJfUlgqL1wKLSBNVVhfVkFMKENQKFVBUlQyX0NUUyksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0NCAtIExDRF9FTiovXAotIE1VWF9WQUwoQ1AoVUFSVDJfUlRTKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQ1Ki9cCi0gTVVYX1ZBTChDUChVQVJUMl9UWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0NiovXAotIE1VWF9WQUwoQ1AoVUFSVDJfUlgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDcqL1wKLSBNVVhfVkFMKENQKFVBUlQxX1RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQxX1RYKi9cCi0gTVVYX1ZBTChDUChVQVJUMV9SVFMpLAkJKElFTiAgfCBQVFUgfCBESVMgfCBNNCkpIC8qR1BJT18xNDkqLyBcCi0gTVVYX1ZBTChDUChVQVJUMV9DVFMpLAkJKElFTiAgfCBQVFUgfCBESVMgfCBNNCkpIC8qR1BJT18xNTAtTU1DM19XUCovXAotIE1VWF9WQUwoQ1AoVUFSVDFfUlgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDFfUlgqL1wKLSBNVVhfVkFMKENQKE1DQlNQNF9DTEtYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1A0X0NMS1gqL1wKLSBNVVhfVkFMKENQKE1DQlNQNF9EUiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDRfRFIqL1wKLSBNVVhfVkFMKENQKE1DQlNQNF9EWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDRfRFgqL1wKLSBNVVhfVkFMKENQKE1DQlNQNF9GU1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDRfRlNYKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDFfQ0xLUiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMV9DTEtSKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDFfRlNSKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AxX0ZTUiovXAotIE1VWF9WQUwoQ1AoTUNCU1AxX0RYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMV9EWCovXAotIE1VWF9WQUwoQ1AoTUNCU1AxX0RSKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMV9EUiovXAotIE1VWF9WQUwoQ1AoTUNCU1BfQ0xLUyksCShJRU4gIHwgUFRVIHwgRElTIHwgTTApKSAvKk1jQlNQX0NMS1MqL1wKLSBNVVhfVkFMKENQKE1DQlNQMV9GU1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDFfRlNYKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDFfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMV9DTEtYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDNfRFgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMSkpIC8qVUFSVDJfQ1RTKi9cCisJTVVYX1ZBTChDUChNQ0JTUDNfRFIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMSkpIC8qVUFSVDJfUlRTKi9cCisJTVVYX1ZBTChDUChNQ0JTUDNfQ0xLWCksCShJRElTIHwgUFREIHwgRElTIHwgTTEpKSAvKlVBUlQyX1RYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDNfRlNYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTEpKSAvKlVBUlQyX1JYKi9cCisJTVVYX1ZBTChDUChVQVJUMl9DVFMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDQgLSBMQ0RfRU4qL1wKKwlNVVhfVkFMKENQKFVBUlQyX1JUUyksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0NSovXAorCU1VWF9WQUwoQ1AoVUFSVDJfVFgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDYqL1wKKwlNVVhfVkFMKENQKFVBUlQyX1JYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQ3Ki9cCisJTVVYX1ZBTChDUChVQVJUMV9UWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUMV9UWCovXAorCU1VWF9WQUwoQ1AoVUFSVDFfUlRTKSwJCShJRU4gIHwgUFRVIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQ5Ki8gXAorCU1VWF9WQUwoQ1AoVUFSVDFfQ1RTKSwJCShJRU4gIHwgUFRVIHwgRElTIHwgTTQpKSAvKkdQSU9fMTUwLU1NQzNfV1AqL1wKKwlNVVhfVkFMKENQKFVBUlQxX1JYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQxX1JYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDRfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQNF9DTEtYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDRfRFIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1A0X0RSKi9cCisJTVVYX1ZBTChDUChNQ0JTUDRfRFgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1A0X0RYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDRfRlNYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQNF9GU1gqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9DTEtSKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AxX0NMS1IqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9GU1IpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AxX0ZTUiovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0RYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMV9EWCovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0RSKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMV9EUiovXAorCU1VWF9WQUwoQ1AoTUNCU1BfQ0xLUyksCQkoSUVOICB8IFBUVSB8IERJUyB8IE0wKSkgLypNY0JTUF9DTEtTKi9cCisJTVVYX1ZBTChDUChNQ0JTUDFfRlNYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMV9GU1gqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9DTEtYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AxX0NMS1gqL1wKICAvKlNlcmlhbCBJbnRlcmZhY2UqL1wKLSBNVVhfVkFMKENQKFVBUlQzX0NUU19SQ1RYKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qVUFSVDNfQ1RTX1JDVFgqL1wKLSBNVVhfVkFMKENQKFVBUlQzX1JUU19TRCksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTY0IFcyV18qL1wKLQkJCQkJCQkgLyogQlRfTlJFU0VUKi9cCi0gTVVYX1ZBTChDUChVQVJUM19SWF9JUlJYKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qVUFSVDNfUlhfSVJSWCovXAotIE1VWF9WQUwoQ1AoVUFSVDNfVFhfSVJUWCksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQzX1RYX0lSVFgqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9DTEspLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfQ0xLKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfU1RQKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSFNVU0IwX1NUUCovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RJUiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9ESVIqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9OWFQpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfTlhUKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTAqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBMSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMSovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEEyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEEyKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTMpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTMqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBNCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNCovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE1KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE1Ki9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTYpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTYqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBNyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNyovXAotIE1VWF9WQUwoQ1AoSTJDMV9TQ0wpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDMV9TQ0wqL1wKLSBNVVhfVkFMKENQKEkyQzFfU0RBKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzFfU0RBKi9cCi0gTVVYX1ZBTChDUChJMkMyX1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzE2OCovXAotCQkJCQkJCSAvKiAtIFVTQkhfQ1BFTiovXAotIE1VWF9WQUwoQ1AoSTJDMl9TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xODMqL1wKLQkJCQkJCQkgLyogLSBVU0JIX1JFU0VUKi9cCi0gTVVYX1ZBTChDUChJMkMzX1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMzX1NDTCovXAotIE1VWF9WQUwoQ1AoSTJDM19TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDM19TREEqL1wKLSBNVVhfVkFMKENQKEkyQzRfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzRfU0NMKi9cCi0gTVVYX1ZBTChDUChJMkM0X1NEQSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkM0X1NEQSovXAotIE1VWF9WQUwoQ1AoSERRX1NJTyksCQkoSURJUyB8IFBUVSB8IEVOICB8IE00KSkgLypIRFFfU0lPKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfQ0xLKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNTUEkxX0NMSyovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX1NJTU8pLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY1NQSTFfU0lNTyAqL1wKLSBNVVhfVkFMKENQKE1DU1BJMV9TT01JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNTUEkxX1NPTUkgKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfQ1MwKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qTWNTUEkxX0NTMCovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX0NTMSksCShJRElTIHwgUFREIHwgRU4gIHwgTTApKSAvKk1jU1BJMV9DUzEqL1wKLSBNVVhfVkFMKENQKE1DU1BJMV9DUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE3NiovXAotCQkJCQkJCS8qIC0gU01TQzkxMVhfSVJRKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfQ1MzKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RBVEEyKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTJfQ0xLKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RBVEE3Ki9cCi0gTVVYX1ZBTChDUChNQ1NQSTJfU0lNTyksCShJRU4gIHwgUFREIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9EQVRBNCovXAotIE1VWF9WQUwoQ1AoTUNTUEkyX1NPTUkpLAkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTUqL1wKLSBNVVhfVkFMKENQKE1DU1BJMl9DUzApLAkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTYqL1wKLSBNVVhfVkFMKENQKE1DU1BJMl9DUzEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTMqL1wKKwlNVVhfVkFMKENQKFVBUlQzX0NUU19SQ1RYKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qVUFSVDNfQ1RTX1JDVFgqL1wKKwlNVVhfVkFMKENQKFVBUlQzX1JUU19TRCksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTY0IFcyV18qL1wKKwkJCQkJCQkJIC8qIEJUX05SRVNFVCovXAorCU1VWF9WQUwoQ1AoVUFSVDNfUlhfSVJSWCksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKlVBUlQzX1JYX0lSUlgqL1wKKwlNVVhfVkFMKENQKFVBUlQzX1RYX0lSVFgpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUM19UWF9JUlRYKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfQ0xLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9DTEsqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9TVFApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSFNVU0IwX1NUUCovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RJUiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfRElSKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfTlhUKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9OWFQqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBMCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMCovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEExKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEExKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTIqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBMyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMyovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE0KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE0Ki9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTUpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTUqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBNiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNiovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE3KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE3Ki9cCisJTVVYX1ZBTChDUChJMkMxX1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMxX1NDTCovXAorCU1VWF9WQUwoQ1AoSTJDMV9TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDMV9TREEqL1wKKwlNVVhfVkFMKENQKEkyQzJfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTY4Ki9cCisJCQkJCQkJCSAvKiAtIFVTQkhfQ1BFTiovXAorCU1VWF9WQUwoQ1AoSTJDMl9TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xODMqL1wKKwkJCQkJCQkJIC8qIC0gVVNCSF9SRVNFVCovXAorCU1VWF9WQUwoQ1AoSTJDM19TQ0wpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDM19TQ0wqL1wKKwlNVVhfVkFMKENQKEkyQzNfU0RBKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzNfU0RBKi9cCisJTVVYX1ZBTChDUChJMkM0X1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkM0X1NDTCovXAorCU1VWF9WQUwoQ1AoSTJDNF9TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDNF9TREEqL1wKKwlNVVhfVkFMKENQKEhEUV9TSU8pLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNNCkpIC8qSERRX1NJTyovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX0NMSyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY1NQSTFfQ0xLKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfU0lNTyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jU1BJMV9TSU1PICovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX1NPTUkpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY1NQSTFfU09NSSAqL1wKKwlNVVhfVkFMKENQKE1DU1BJMV9DUzApLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qTWNTUEkxX0NTMCovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX0NTMSksCQkoSURJUyB8IFBURCB8IEVOICB8IE0wKSkgLypNY1NQSTFfQ1MxKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfQ1MyKSwJCShJRU4gIHwgUFRVIHwgRElTIHwgTTQpKSAvKkdQSU9fMTc2ICovXAorCQkJCQkJCQkgLyogLSBMQU5fSU5UUiAqL1wKKwlNVVhfVkFMKENQKE1DU1BJMV9DUzMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RBVEEyKi9cCisJTVVYX1ZBTChDUChNQ1NQSTJfQ0xLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9EQVRBNyovXAorCU1VWF9WQUwoQ1AoTUNTUEkyX1NJTU8pLAkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTQqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9TT01JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RBVEE1Ki9cCisJTVVYX1ZBTChDUChNQ1NQSTJfQ1MwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9EQVRBNiovXAorCU1VWF9WQUwoQ1AoTUNTUEkyX0NTMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTMqL1wKICAvKkNvbnRyb2wgYW5kIGRlYnVnICovXAotIE1VWF9WQUwoQ1AoU1lTXzMySyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfMzJLKi9cCi0gTVVYX1ZBTChDUChTWVNfQ0xLUkVRKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTX0NMS1JFUSovXAotIE1VWF9WQUwoQ1AoU1lTX05JUlEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qU1lTX25JUlEqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzIqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzMgKi9cCi0gTVVYX1ZBTChDUChTWVNfQk9PVDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT180IC0gTU1DMV9XUCovXAotIE1VWF9WQUwoQ1AoU1lTX0JPT1QzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fNSovXAotIE1VWF9WQUwoQ1AoU1lTX0JPT1Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fNiovXAotIE1VWF9WQUwoQ1AoU1lTX0JPT1Q1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fNyovXAotIE1VWF9WQUwoQ1AoU1lTX0JPT1Q2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fOCovXAotIE1VWF9WQUwoQ1AoU1lTX09GRl9NT0RFKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTX09GRl9NT0RFKi9cCi0gTVVYX1ZBTChDUChTWVNfQ0xLT1VUMSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNZU19DTEtPVVQxKi9cCi0gTVVYX1ZBTChDUChTWVNfQ0xLT1VUMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTg2Ki9cCi0gTVVYX1ZBTChDUChFVEtfQ0xLX0VTMiksCShJRElTIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfQ0xLKi9cCi0gTVVYX1ZBTChDUChFVEtfQ1RMX0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfQ01EKi9cCi0gTVVYX1ZBTChDUChFVEtfRDBfRVMyKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xNCovXAotIE1VWF9WQUwoQ1AoRVRLX0QxX0VTMiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTUgLSBYX0dBVEUqL1wKLSBNVVhfVkFMKENQKEVUS19EMl9FUzIpLAkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzE2Ki9cCi0JCQkJCQkJIC8qIC0gVzJXX05SRVNFVCovXAotIE1VWF9WQUwoQ1AoRVRLX0QzX0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfREFUMyovXAotIE1VWF9WQUwoQ1AoRVRLX0Q0X0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfREFUMCovXAotIE1VWF9WQUwoQ1AoRVRLX0Q1X0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfREFUMSovXAotIE1VWF9WQUwoQ1AoRVRLX0Q2X0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfREFUMiovXAotIE1VWF9WQUwoQ1AoRVRLX0Q3X0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMjEqL1wKLSBNVVhfVkFMKENQKEVUS19EOF9FUzIpLAkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzIyKi9cCi0gTVVYX1ZBTChDUChFVEtfRDlfRVMyKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18yMyovXAotIE1VWF9WQUwoQ1AoRVRLX0QxMF9FUzIpLAkoSURJUyB8IFBURCB8IERJUyB8IE0zKSkgLypIU1VTQjJfQ0xLKi9cCi0gTVVYX1ZBTChDUChFVEtfRDExX0VTMiksCShJRElTIHwgUFREIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9TVFAqL1wKLSBNVVhfVkFMKENQKEVUS19EMTJfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RJUiovXAotIE1VWF9WQUwoQ1AoRVRLX0QxM19FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypIU1VTQjJfTlhUKi9cCi0gTVVYX1ZBTChDUChFVEtfRDE0X0VTMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9EQVRBMCovXAotIE1VWF9WQUwoQ1AoRVRLX0QxNV9FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTEqL1wKKwlNVVhfVkFMKENQKFNZU18zMkspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTXzMySyovXAorCU1VWF9WQUwoQ1AoU1lTX0NMS1JFUSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfQ0xLUkVRKi9cCisJTVVYX1ZBTChDUChTWVNfTklSUSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypTWVNfbklSUSovXAorCU1VWF9WQUwoQ1AoU1lTX0JPT1QwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMiovXAorCU1VWF9WQUwoQ1AoU1lTX0JPT1QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMyAqL1wKKwlNVVhfVkFMKENQKFNZU19CT09UMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzQgLSBNTUMxX1dQKi9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT181Ki9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT182Ki9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT183Ki9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDYpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT184Ki9cCisJTVVYX1ZBTChDUChTWVNfT0ZGX01PREUpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfT0ZGX01PREUqL1wKKwlNVVhfVkFMKENQKFNZU19DTEtPVVQxKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTX0NMS09VVDEqL1wKKwlNVVhfVkFMKENQKFNZU19DTEtPVVQyKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xODYqL1wKKwlNVVhfVkFMKENQKEVUS19DTEtfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMikpIC8qTU1DM19DTEsqL1wKKwlNVVhfVkFMKENQKEVUS19DVExfRVMyKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMikpIC8qTU1DM19DTUQqL1wKKwlNVVhfVkFMKENQKEVUS19EMF9FUzIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xNCovXAorCU1VWF9WQUwoQ1AoRVRLX0QxX0VTMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzE1IC0gWF9HQVRFKi9cCisJTVVYX1ZBTChDUChFVEtfRDJfRVMyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTYqL1wKKwkJCQkJCQkJIC8qIC0gVzJXX05SRVNFVCovXAorCU1VWF9WQUwoQ1AoRVRLX0QzX0VTMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0yKSkgLypNTUMzX0RBVDMqL1wKKwlNVVhfVkFMKENQKEVUS19ENF9FUzIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMikpIC8qTU1DM19EQVQwKi9cCisJTVVYX1ZBTChDUChFVEtfRDVfRVMyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfREFUMSovXAorCU1VWF9WQUwoQ1AoRVRLX0Q2X0VTMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0yKSkgLypNTUMzX0RBVDIqL1wKKwlNVVhfVkFMKENQKEVUS19EN19FUzIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18yMSovXAorCU1VWF9WQUwoQ1AoRVRLX0Q4X0VTMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzIyKi9cCisJTVVYX1ZBTChDUChFVEtfRDlfRVMyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMjMqL1wKKwlNVVhfVkFMKENQKEVUS19EMTBfRVMyKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMykpIC8qSFNVU0IyX0NMSyovXAorCU1VWF9WQUwoQ1AoRVRLX0QxMV9FUzIpLAkoSURJUyB8IFBURCB8IERJUyB8IE0zKSkgLypIU1VTQjJfU1RQKi9cCisJTVVYX1ZBTChDUChFVEtfRDEyX0VTMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9ESVIqL1wKKwlNVVhfVkFMKENQKEVUS19EMTNfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qSFNVU0IyX05YVCovXAorCU1VWF9WQUwoQ1AoRVRLX0QxNF9FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTAqL1wKKwlNVVhfVkFMKENQKEVUS19EMTVfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RBVEExKi9cCiAgLyogZGllIHRvIGRpZSAqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDUqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDYqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDcqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEOCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDgqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEOSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDkqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTApLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEwKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDExKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxMSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxMiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTIqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTMpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEzKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDE0KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNCovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxNSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTUqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTYpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE2Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDE3KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNyovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxOCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTgqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTkpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE5Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDIwKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMCovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyMSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjEqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjIpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIyKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDIzKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMyovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyNCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjUpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI1Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDI2KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyNiovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyNyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjcqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjgpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI4Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDI5KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyOSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzMCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzAqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMzEpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMxKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDMyKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzMiovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzMyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzMqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMzQpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDM0Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDM1KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzNSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzNiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzYqL1wKLSBNVVhfVkFMKENQKEQyRF9DTEsyNk1JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2NsazI2bWkqL1wKLSBNVVhfVkFMKENQKEQyRF9OUkVTUFdST04pLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbnJlc3B3cm9uKi9cCi0gTVVYX1ZBTChDUChEMkRfTlJFU1dBUk0pLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypkMmRfbnJlc3dhcm0gKi9cCi0gTVVYX1ZBTChDUChEMkRfQVJNOU5JUlEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfYXJtOW5pcnEgKi9cCi0gTVVYX1ZBTChDUChEMkRfVU1BMlA2RklRKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX3VtYTJwNmZpcSovXAotIE1VWF9WQUwoQ1AoRDJEX1NQSU5UKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9zcGludCovXAotIE1VWF9WQUwoQ1AoRDJEX0ZSSU5UKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9mcmludCovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMCovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMSovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMiovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTMpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMyovXAotIE1VWF9WQUwoQ1AoRDJEX04zR1RSU1QpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndHJzdCovXAotIE1VWF9WQUwoQ1AoRDJEX04zR1RESSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0ZGkqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dURE8pLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndGRvKi9cCi0gTVVYX1ZBTChDUChEMkRfTjNHVE1TKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3RtcyovXAotIE1VWF9WQUwoQ1AoRDJEX04zR1RDSyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0Y2sqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dSVENLKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3J0Y2sqL1wKLSBNVVhfVkFMKENQKEQyRF9NU1REQlkpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypkMmRfbXN0ZGJ5Ki9cCi0gTVVYX1ZBTChDUChEMkRfU1dBS0VVUCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9zd2FrZXVwKi9cCi0gTVVYX1ZBTChDUChEMkRfSURMRVJFUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9pZGxlcmVxKi9cCi0gTVVYX1ZBTChDUChEMkRfSURMRUFDSyksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKmQyZF9pZGxlYWNrKi9cCi0gTVVYX1ZBTChDUChEMkRfTVdSSVRFKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX213cml0ZSovXAotIE1VWF9WQUwoQ1AoRDJEX1NXUklURSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9zd3JpdGUqL1wKLSBNVVhfVkFMKENQKEQyRF9NUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbXJlYWQqL1wKLSBNVVhfVkFMKENQKEQyRF9TUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfc3JlYWQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQlVTRkxBRyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9tYnVzZmxhZyovXAotIE1VWF9WQUwoQ1AoRDJEX1NCVVNGTEFHKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX3NidXNmbGFnKi9cCi0gTVVYX1ZBTChDUChTRFJDX0NLRTApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qc2RyY19ja2UwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0NLRTEpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qc2RyY19ja2UxKi8KKwlNVVhfVkFMKENQKEQyRF9NQ0FEMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FENCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDQqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FENSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDUqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FENiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDYqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FENyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDcqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEOCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDgqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEOSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDkqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTApLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxMCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDExKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDEyKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTIqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTMpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxMyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxNCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE0Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDE1KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTUqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTYpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxNyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE3Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDE4KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTgqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTkpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxOSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyMCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIwKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDIxKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjEqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjIpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIzKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDI0KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjQqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjUpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyNSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyNiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI2Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDI3KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjcqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjgpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyOCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyOSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI5Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDMwKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzAqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzEpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzMSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMyKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDMzKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzMqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzNCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzNSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDM1Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDM2KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzYqL1wKKwlNVVhfVkFMKENQKEQyRF9DTEsyNk1JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2NsazI2bWkqL1wKKwlNVVhfVkFMKENQKEQyRF9OUkVTUFdST04pLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbnJlc3B3cm9uKi9cCisJTVVYX1ZBTChDUChEMkRfTlJFU1dBUk0pLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypkMmRfbnJlc3dhcm0gKi9cCisJTVVYX1ZBTChDUChEMkRfQVJNOU5JUlEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfYXJtOW5pcnEgKi9cCisJTVVYX1ZBTChDUChEMkRfVU1BMlA2RklRKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX3VtYTJwNmZpcSovXAorCU1VWF9WQUwoQ1AoRDJEX1NQSU5UKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9zcGludCovXAorCU1VWF9WQUwoQ1AoRDJEX0ZSSU5UKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9mcmludCovXAorCU1VWF9WQUwoQ1AoRDJEX0RNQVJFUTApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMCovXAorCU1VWF9WQUwoQ1AoRDJEX0RNQVJFUTEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMSovXAorCU1VWF9WQUwoQ1AoRDJEX0RNQVJFUTIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMiovXAorCU1VWF9WQUwoQ1AoRDJEX0RNQVJFUTMpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMyovXAorCU1VWF9WQUwoQ1AoRDJEX04zR1RSU1QpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndHJzdCovXAorCU1VWF9WQUwoQ1AoRDJEX04zR1RESSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndGRpKi9cCisJTVVYX1ZBTChDUChEMkRfTjNHVERPKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0ZG8qL1wKKwlNVVhfVkFMKENQKEQyRF9OM0dUTVMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3RtcyovXAorCU1VWF9WQUwoQ1AoRDJEX04zR1RDSyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndGNrKi9cCisJTVVYX1ZBTChDUChEMkRfTjNHUlRDSyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2dydGNrKi9cCisJTVVYX1ZBTChDUChEMkRfTVNUREJZKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKmQyZF9tc3RkYnkqL1wKKwlNVVhfVkFMKENQKEQyRF9TV0FLRVVQKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX3N3YWtldXAqL1wKKwlNVVhfVkFMKENQKEQyRF9JRExFUkVRKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2lkbGVyZXEqL1wKKwlNVVhfVkFMKENQKEQyRF9JRExFQUNLKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qZDJkX2lkbGVhY2sqL1wKKwlNVVhfVkFMKENQKEQyRF9NV1JJVEUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX213cml0ZSovXAorCU1VWF9WQUwoQ1AoRDJEX1NXUklURSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfc3dyaXRlKi9cCisJTVVYX1ZBTChDUChEMkRfTVJFQUQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX21yZWFkKi9cCisJTVVYX1ZBTChDUChEMkRfU1JFQUQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX3NyZWFkKi9cCisJTVVYX1ZBTChDUChEMkRfTUJVU0ZMQUcpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbWJ1c2ZsYWcqL1wKKwlNVVhfVkFMKENQKEQyRF9TQlVTRkxBRyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9zYnVzZmxhZyovXAorCU1VWF9WQUwoQ1AoU0RSQ19DS0UwKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKnNkcmNfY2tlMCovXAorCU1VWF9WQUwoQ1AoU0RSQ19DS0UxKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKnNkcmNfY2tlMSovCisKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9wYW5kb3JhL3BhbmRvcmEuaCBiL2JvYXJkL3BhbmRvcmEvcGFuZG9yYS5oCmluZGV4IGYwNmVlNWIuLjViZmEwZjkgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BhbmRvcmEvcGFuZG9yYS5oCisrKyBiL2JvYXJkL3BhbmRvcmEvcGFuZG9yYS5oCkBAIC00MSwzNjEgKzQxLDM2MSBAQAogICovCiAjZGVmaW5lIE1VWF9QQU5ET1JBKCkgXAogIC8qU0RSQyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzKi9cCi0gTVVYX1ZBTChDUChTRFJDX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDQqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENSovXAotIE1VWF9WQUwoQ1AoU0RSQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q2Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDcqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EOCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q5Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEyKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTQqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE1Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTcqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE4Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxOSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIxKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QyMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjMqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI0Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjYqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI3Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyOCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjkqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDMwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDMwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QzMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzMSovXAotIE1VWF9WQUwoQ1AoU0RSQ19DTEspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19DTEsqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzIqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzMqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMyovXAorCU1VWF9WQUwoQ1AoU0RSQ19ENCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q0Ki9cCisJTVVYX1ZBTChDUChTRFJDX0Q1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDUqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENiovXAorCU1VWF9WQUwoQ1AoU0RSQ19ENyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q3Ki9cCisJTVVYX1ZBTChDUChTRFJDX0Q4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDgqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EOSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDExKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDExKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMiovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTMqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE0Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTYqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE3Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxOCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTkqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIwKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjIqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIzKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjUqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI2Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QyNyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNyovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjgqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI5Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QzMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzMCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMzEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMzEqL1wKKwlNVVhfVkFMKENQKFNEUkNfQ0xLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfQ0xLKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMwKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMxKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMyKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMzKi9cCiAgLypHUE1DKi9cCi0gTVVYX1ZBTChDUChHUE1DX0ExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTEqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BMiovXAotIE1VWF9WQUwoQ1AoR1BNQ19BMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0EzKi9cCi0gTVVYX1ZBTChDUChHUE1DX0E0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTQqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNSovXAotIE1VWF9WQUwoQ1AoR1BNQ19BNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E2Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0E3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTcqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BOCovXAotIE1VWF9WQUwoQ1AoR1BNQ19BOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E5Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0ExMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0ExMCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QwKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMiovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QzKi9cCi0gTVVYX1ZBTChDUChHUE1DX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDQqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENSovXAotIE1VWF9WQUwoQ1AoR1BNQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q2Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDcqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EOCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q5Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTEqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEyKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMyovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTQqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDE1Ki9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MwKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzEpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MxKi9cCi0gTVVYX1ZBTChDUChHUE1DX0NMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0NMSyovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQURWX0FMRSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkFEVl9BTEUqL1wKLSBNVVhfVkFMKENQKEdQTUNfTk9FKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbk9FKi9cCi0gTVVYX1ZBTChDUChHUE1DX05XRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25XRSovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQkUwX0NMRSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkJFMF9DTEUqL1wKLSBNVVhfVkFMKENQKEdQTUNfTldQKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbldQKi9cCi0gTVVYX1ZBTChDUChHUE1DX1dBSVQwKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMCovXAotIE1VWF9WQUwoQ1AoR1BNQ19XQUlUMSksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDEqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BMSovXAorCU1VWF9WQUwoQ1AoR1BNQ19BMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0EyKi9cCisJTVVYX1ZBTChDUChHUE1DX0EzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTMqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTQpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNCovXAorCU1VWF9WQUwoQ1AoR1BNQ19BNSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E1Ki9cCisJTVVYX1ZBTChDUChHUE1DX0E2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTYqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTcpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNyovXAorCU1VWF9WQUwoQ1AoR1BNQ19BOCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E4Ki9cCisJTVVYX1ZBTChDUChHUE1DX0E5KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTkqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTEwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTEwKi9cCisJTVVYX1ZBTChDUChHUE1DX0QwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMSovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QyKi9cCisJTVVYX1ZBTChDUChHUE1DX0QzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDMqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENCovXAorCU1VWF9WQUwoQ1AoR1BNQ19ENSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q1Ki9cCisJTVVYX1ZBTChDUChHUE1DX0Q2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDYqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENyovXAorCU1VWF9WQUwoQ1AoR1BNQ19EOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q4Ki9cCisJTVVYX1ZBTChDUChHUE1DX0Q5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDkqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDEwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEwKi9cCisJTVVYX1ZBTChDUChHUE1DX0QxMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMSovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTIqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDEzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEzKi9cCisJTVVYX1ZBTChDUChHUE1DX0QxNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxNCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTUqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTMCksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzAqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTMSksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzEqL1wKKwlNVVhfVkFMKENQKEdQTUNfQ0xLKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQ0xLKi9cCisJTVVYX1ZBTChDUChHUE1DX05BRFZfQUxFKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uQURWX0FMRSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OT0UpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uT0UqL1wKKwlNVVhfVkFMKENQKEdQTUNfTldFKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbldFKi9cCisJTVVYX1ZBTChDUChHUE1DX05CRTBfQ0xFKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uQkUwX0NMRSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OV1ApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uV1AqL1wKKwlNVVhfVkFMKENQKEdQTUNfV0FJVDApLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMCovXAorCU1VWF9WQUwoQ1AoR1BNQ19XQUlUMSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQxKi9cCiAgLypEU1MqL1wKLSBNVVhfVkFMKENQKERTU19QQ0xLKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19QQ0xLKi9cCi0gTVVYX1ZBTChDUChEU1NfSFNZTkMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0hTWU5DKi9cCi0gTVVYX1ZBTChDUChEU1NfVlNZTkMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX1ZTWU5DKi9cCi0gTVVYX1ZBTChDUChEU1NfQUNCSUFTKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0FDQklBUyovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEEwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEEyKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMiovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEEzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMyovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE1KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNiovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNyovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE4KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBOCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE5KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBOSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExMCksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTAqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTEpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTExKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTEyKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExMiovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExMyksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTMqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTQpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE0Ki9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTE1KSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExNiksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTYqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTcpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE3Ki9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTE4KSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExOCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExOSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTkqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMjApLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIwKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTIxKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEEyMiksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjIqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMjMpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIzKi9cCisJTVVYX1ZBTChDUChEU1NfUENMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfUENMSyovXAorCU1VWF9WQUwoQ1AoRFNTX0hTWU5DKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19IU1lOQyovXAorCU1VWF9WQUwoQ1AoRFNTX1ZTWU5DKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19WU1lOQyovXAorCU1VWF9WQUwoQ1AoRFNTX0FDQklBUyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfQUNCSUFTKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTApLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEwKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEzKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTQpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE0Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE1Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTYpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE2Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTcpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE3Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE4Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTkpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE5Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTEwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTAqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExMSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEyKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTEzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTMqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTQpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExNSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE1Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTE2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTYqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTcpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNyovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExOCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE4Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTE5KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTkqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMjApLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEyMSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIxKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTIyKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjIqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMjMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMyovXAogIC8qR1BJTyBiYXNlZCBnYW1lIGJ1dHRvbnMqL1wKLSBNVVhfVkFMKENQKENBTV9YQ0xLQSksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzk2IC0gTEVGVCovXAotIE1VWF9WQUwoQ1AoQ0FNX1BDTEspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT185NyAtIEwyKi9cCi0gTVVYX1ZBTChDUChDQU1fRkxEKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fOTggLSBSSUdIVCovXAotIE1VWF9WQUwoQ1AoQ0FNX0QwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fOTkgLSBNRU5VKi9cCi0gTVVYX1ZBTChDUChDQU1fRDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMDAgLSBTVEFSVCovXAotIE1VWF9WQUwoQ1AoQ0FNX0QyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTAxIC0gWSovXAotIE1VWF9WQUwoQ1AoQ0FNX0QzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTAyIC0gTDEqL1wKLSBNVVhfVkFMKENQKENBTV9ENCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzEwMyAtIERPV04qL1wKLSBNVVhfVkFMKENQKENBTV9ENSksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzEwNCAtIFNFTEVDVCovXAotIE1VWF9WQUwoQ1AoQ0FNX0Q2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTA1IC0gUjEqL1wKLSBNVVhfVkFMKENQKENBTV9ENyksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzEwNiAtIEIqL1wKLSBNVVhfVkFMKENQKENBTV9EOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzEwNyAtIFIyKi9cCi0gTVVYX1ZBTChDUChDQU1fRDEwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTA5IC0gWCovXAotIE1VWF9WQUwoQ1AoQ0FNX0QxMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzExMCAtIFVQKi9cCi0gTVVYX1ZBTChDUChDQU1fWENMS0IpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMTEgLSBBKi9cCisJTVVYX1ZBTChDUChDQU1fWENMS0EpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT185NiAtIExFRlQqL1wKKwlNVVhfVkFMKENQKENBTV9QQ0xLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fOTcgLSBMMiovXAorCU1VWF9WQUwoQ1AoQ0FNX0ZMRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzk4IC0gUklHSFQqL1wKKwlNVVhfVkFMKENQKENBTV9EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzk5IC0gTUVOVSovXAorCU1VWF9WQUwoQ1AoQ0FNX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTAwIC0gU1RBUlQqL1wKKwlNVVhfVkFMKENQKENBTV9EMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzEwMSAtIFkqL1wKKwlNVVhfVkFMKENQKENBTV9EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzEwMiAtIEwxKi9cCisJTVVYX1ZBTChDUChDQU1fRDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMDMgLSBET1dOKi9cCisJTVVYX1ZBTChDUChDQU1fRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMDQgLSBTRUxFQ1QqL1wKKwlNVVhfVkFMKENQKENBTV9ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzEwNSAtIFIxKi9cCisJTVVYX1ZBTChDUChDQU1fRDcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMDYgLSBCKi9cCisJTVVYX1ZBTChDUChDQU1fRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMDcgLSBSMiovXAorCU1VWF9WQUwoQ1AoQ0FNX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzEwOSAtIFgqL1wKKwlNVVhfVkFMKENQKENBTV9EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMTAgLSBVUCovXAorCU1VWF9WQUwoQ1AoQ0FNX1hDTEtCKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTExIC0gQSovXAogIC8qQXVkaW8gSW50ZXJmYWNlIFRvIEV4dGVybmFsIERBQyAoSGVhZHBob25lLCBTcGVha2VycykqL1wKLSBNVVhfVkFMKENQKE1DQlNQMl9GU1gpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDJfRlNYKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDJfQ0xLWCksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9DTEtYKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDJfRFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0RYKi9cCi0gTVVYX1ZBTChDUChNQ0JTUF9DTEtTKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1BfQ0xLUyovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0RSKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTE4Ki9cCi0JCQkJCQkJIC8qIC0gblBPV0VSRE9XTl9EQUMqL1wKKwlNVVhfVkFMKENQKE1DQlNQMl9GU1gpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0ZTWCovXAorCU1VWF9WQUwoQ1AoTUNCU1AyX0NMS1gpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDJfQ0xLWCovXAorCU1VWF9WQUwoQ1AoTUNCU1AyX0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9EWCovXAorCU1VWF9WQUwoQ1AoTUNCU1BfQ0xLUyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUF9DTEtTKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfRFIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMTgqL1wKKwkJCQkJCQkJIC8qIC0gblBPV0VSRE9XTl9EQUMqL1wKICAvKkV4cGFuc2lvbiBjYXJkIDEqL1wKLSBNVVhfVkFMKENQKE1NQzFfQ0xLKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfQ0xLKi9cCi0gTVVYX1ZBTChDUChNTUMxX0NNRCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0NNRCovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQwKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMCovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMSovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMiovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMyovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQ0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTI2IC0gTU1DMV9XUCovXAorCU1VWF9WQUwoQ1AoTU1DMV9DTEspLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9DTEsqL1wKKwlNVVhfVkFMKENQKE1NQzFfQ01EKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfQ01EKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDApLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQwKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQxKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQyKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQzKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMjYgLSBNTUMxX1dQKi9cCiAgLypFeHBhbnNpb24gY2FyZCAyKi9cCi0gTVVYX1ZBTChDUChNTUMyX0NMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypNTUMyX0NMSyovXAotIE1VWF9WQUwoQ1AoTU1DMl9DTUQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMl9DTUQqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDAqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDEqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDIqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDMqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUNCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0xKSkgLypNTUMyX0RJUl9EQVQwKi9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMSkpIC8qTU1DMl9ESVJfREFUMSovXAotIE1VWF9WQUwoQ1AoTU1DMl9EQVQ2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTEpKSAvKk1NQzJfRElSX0NNRCAqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUNyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0xKSkgLypNTUMyX0NMS0lOKi9cCi0gTVVYX1ZBTChDUChNTUMxX0RBVDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMjcgLSBNTUMyX1dQKi9cCisJTVVYX1ZBTChDUChNTUMyX0NMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypNTUMyX0NMSyovXAorCU1VWF9WQUwoQ1AoTU1DMl9DTUQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMl9DTUQqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDAqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUMSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDEqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDIqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUMyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMyX0RBVDMqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUNCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0xKSkgLypNTUMyX0RJUl9EQVQwKi9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMSkpIC8qTU1DMl9ESVJfREFUMSovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQ2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTEpKSAvKk1NQzJfRElSX0NNRCAqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUNyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0xKSkgLypNTUMyX0NMS0lOKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMjcgLSBNTUMyX1dQKi9cCiAgLypTRElPIEludGVyZmFjZSB0byBXSUZJIE1vZHVsZSovXAotIE1VWF9WQUwoQ1AoRVRLX0NMS19FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0yKSkgLypNTUMzX0NMSyovXAotIE1VWF9WQUwoQ1AoRVRLX0NUTF9FUzIpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0yKSkgLypNTUMzX0NNRCovXAotIE1VWF9WQUwoQ1AoRVRLX0Q0X0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfREFUMCovXAotIE1VWF9WQUwoQ1AoRVRLX0Q1X0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfREFUMSovXAotIE1VWF9WQUwoQ1AoRVRLX0Q2X0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfREFUMiovXAotIE1VWF9WQUwoQ1AoRVRLX0QzX0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfREFUMyovXAorCU1VWF9WQUwoQ1AoRVRLX0NMS19FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0yKSkgLypNTUMzX0NMSyovXAorCU1VWF9WQUwoQ1AoRVRLX0NUTF9FUzIpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0yKSkgLypNTUMzX0NNRCovXAorCU1VWF9WQUwoQ1AoRVRLX0Q0X0VTMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0yKSkgLypNTUMzX0RBVDAqL1wKKwlNVVhfVkFMKENQKEVUS19ENV9FUzIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMikpIC8qTU1DM19EQVQxKi9cCisJTVVYX1ZBTChDUChFVEtfRDZfRVMyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTIpKSAvKk1NQzNfREFUMiovXAorCU1VWF9WQUwoQ1AoRVRLX0QzX0VTMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0yKSkgLypNTUMzX0RBVDMqL1wKICAvKkF1ZGlvIEludGVyZmFjZSBUbyBCbHVldG9vdGggY2hpcCovXAotIE1VWF9WQUwoQ1AoTUNCU1AzX0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQM19EWCovXAotIE1VWF9WQUwoQ1AoTUNCU1AzX0RSKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQM19EUiovXAotIE1VWF9WQUwoQ1AoTUNCU1AzX0NMS1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDNfQ0xLWCovXAotIE1VWF9WQUwoQ1AoTUNCU1AzX0ZTWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQM19GU1gqL1wKKwlNVVhfVkFMKENQKE1DQlNQM19EWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDNfRFgqL1wKKwlNVVhfVkFMKENQKE1DQlNQM19EUiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDNfRFIqL1wKKwlNVVhfVkFMKENQKE1DQlNQM19DTEtYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AzX0NMS1gqL1wKKwlNVVhfVkFMKENQKE1DQlNQM19GU1gpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AzX0ZTWCovXAogIC8qRGlnaXRhbCBJbnRlcmZhY2UgdG8gQmx1ZXRvb3RoIChVQVJUKSovXAotIE1VWF9WQUwoQ1AoVUFSVDFfVFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDFfVFgqL1wKLSBNVVhfVkFMKENQKFVBUlQxX1JUUyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUMV9SVFMqL1wKLSBNVVhfVkFMKENQKFVBUlQxX0NUUyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypVQVJUMV9DVFMqL1wKLSBNVVhfVkFMKENQKFVBUlQxX1JYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQxX1JYKi9cCisJTVVYX1ZBTChDUChVQVJUMV9UWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUMV9UWCovXAorCU1VWF9WQUwoQ1AoVUFSVDFfUlRTKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQxX1JUUyovXAorCU1VWF9WQUwoQ1AoVUFSVDFfQ1RTKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKlVBUlQxX0NUUyovXAorCU1VWF9WQUwoQ1AoVUFSVDFfUlgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDFfUlgqL1wKICAvKkF1ZGlvIEludGVyZmFjZSB0byBUcml0b24yIGNoaXAgKFRQUzY1OTUwKSovXAotIE1VWF9WQUwoQ1AoTUNCU1A0X0NMS1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDRfQ0xLWCovXAotIE1VWF9WQUwoQ1AoTUNCU1A0X0RSKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQNF9EUiovXAotIE1VWF9WQUwoQ1AoTUNCU1A0X0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQNF9EWCovXAotIE1VWF9WQUwoQ1AoTUNCU1A0X0ZTWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQNF9GU1gqL1wKKwlNVVhfVkFMKENQKE1DQlNQNF9DTEtYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1A0X0NMS1gqL1wKKwlNVVhfVkFMKENQKE1DQlNQNF9EUiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDRfRFIqL1wKKwlNVVhfVkFMKENQKE1DQlNQNF9EWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDRfRFgqL1wKKwlNVVhfVkFMKENQKE1DQlNQNF9GU1gpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1A0X0ZTWCovXAogIC8qR1BJTyBkZWZpbml0aW9ucyBmb3IgbXV4ZWQgcGlucyBvbiBBViBjb25uZWN0b3IqL1wKLSBNVVhfVkFMKENQKFVBUlQyX0NUUyksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzE0NCwqL1wKLQkJCQkJCQkgLypVQVJUMl9DVFMqL1wKLSBNVVhfVkFMKENQKFVBUlQyX1JUUyksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzE0NSwqL1wKLQkJCQkJCQkgLypVQVJUMl9SVFMqL1wKLSBNVVhfVkFMKENQKFVBUlQyX1RYKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTQ2LCovXAotCQkJCQkJCSAvKlVBUlQyX1RYKi9cCi0gTVVYX1ZBTChDUChVQVJUMl9SWCksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzE0NywqL1wKLQkJCQkJCQkgLypVQVJUMl9SWCovXAorCU1VWF9WQUwoQ1AoVUFSVDJfQ1RTKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTQ0LCovXAorCQkJCQkJCQkgLypVQVJUMl9DVFMqL1wKKwlNVVhfVkFMKENQKFVBUlQyX1JUUyksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzE0NSwqL1wKKwkJCQkJCQkJIC8qVUFSVDJfUlRTKi9cCisJTVVYX1ZBTChDUChVQVJUMl9UWCksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzE0NiwqL1wKKwkJCQkJCQkJIC8qVUFSVDJfVFgqL1wKKwlNVVhfVkFMKENQKFVBUlQyX1JYKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTQ3LCovXAorCQkJCQkJCQkgLypVQVJUMl9SWCovXAogIC8qU2VyaWFsIEludGVyZmFjZSAoUGVyaXBoZXJhbCBib290LCBMaW51eCBjb25zb2xlLCBvbiBBViBjb25uZWN0b3IpKi9cCi0gTVVYX1ZBTChDUChVQVJUM19SWF9JUlJYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDNfUlgqL1wKLSBNVVhfVkFMKENQKFVBUlQzX1RYX0lSVFgpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUM19UWCovXAorCU1VWF9WQUwoQ1AoVUFSVDNfUlhfSVJSWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQzX1JYKi9cCisJTVVYX1ZBTChDUChVQVJUM19UWF9JUlRYKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDNfVFgqL1wKICAvKkxFRHMgKENvbnRyb2xsZWQgYnkgT01BUCkqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzEyOCovXAotCQkJCQkJCSAvKiAtIExFRF9NTUMxKi9cCi0gTVVYX1ZBTChDUChNTUMxX0RBVDcpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMjkqL1wKLQkJCQkJCQkgLyogLSBMRURfTU1DMiovXAotIE1VWF9WQUwoQ1AoTUNCU1AxX0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTU4Ki9cCi0JCQkJCQkJIC8qIC0gTEVEX0JUKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDFfRFIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNTkqL1wKLQkJCQkJCQkgLyogLSBMRURfV0lGSSovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQ2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTI4Ki9cCisJCQkJCQkJCSAvKiAtIExFRF9NTUMxKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDcpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMjkqL1wKKwkJCQkJCQkJIC8qIC0gTEVEX01NQzIqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9EWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1OCovXAorCQkJCQkJCQkgLyogLSBMRURfQlQqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9EUiksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1OSovXAorCQkJCQkJCQkgLyogLSBMRURfV0lGSSovXAogIC8qU3dpdGNoZXMqL1wKLSBNVVhfVkFMKENQKE1DU1BJMV9DUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE3NiovXAotCQkJCQkJCSAvKiAtIG5IT0xEX1NXSVRDSCovXAotIE1VWF9WQUwoQ1AoQ0FNX0Q5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTA4Ki9cCi0JCQkJCQkJIC8qIC0gbkxJRF9TV0lUQ0gqL1wKKwlNVVhfVkFMKENQKE1DU1BJMV9DUzIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNzYqL1wKKwkJCQkJCQkJIC8qIC0gbkhPTERfU1dJVENIKi9cCisJTVVYX1ZBTChDUChDQU1fRDkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMDgqL1wKKwkJCQkJCQkJIC8qIC0gbkxJRF9TV0lUQ0gqL1wKICAvKkV4dGVybmFsIElSUXMqL1wKLSBNVVhfVkFMKENQKENBTV9IUyksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzk0Ki9cCi0JCQkJCQkJIC8qIC0gblRPVUNIX0lSUSovXAotIE1VWF9WQUwoQ1AoRVRLX0Q3X0VTMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMjEqL1wKLQkJCQkJCQkgLyogLSBXSUZJX0lSUSovXAotIE1VWF9WQUwoQ1AoTUNCU1AxX0ZTWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTYxKi9cCi0JCQkJCQkJIC8qIC0gbklSUV9OVUIxKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDFfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTYyKi9cCi0JCQkJCQkJIC8qIC0gbklSUV9OVUIyKi9cCisJTVVYX1ZBTChDUChDQU1fSFMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT185NCovXAorCQkJCQkJCQkgLyogLSBuVE9VQ0hfSVJRKi9cCisJTVVYX1ZBTChDUChFVEtfRDdfRVMyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMjEqL1wKKwkJCQkJCQkJIC8qIC0gV0lGSV9JUlEqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9GU1gpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNjEqL1wKKwkJCQkJCQkJIC8qIC0gbklSUV9OVUIxKi9cCisJTVVYX1ZBTChDUChNQ0JTUDFfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTYyKi9cCisJCQkJCQkJCSAvKiAtIG5JUlFfTlVCMiovXAogIC8qVmFyaW91cyBvdGhlciBzdHVmZiovXAotIE1VWF9WQUwoQ1AoVUFSVDNfQ1RTX1JDVFgpLAkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE2MyovXAotCQkJCQkJCSAvKiAtIG5PQ19VU0I1Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDhfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18yMiovXAotCQkJCQkJCSAvKiAtIE1TRUNVUkUqL1wKLSBNVVhfVkFMKENQKENTSTJfRFkxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTE1Ki9cCi0JCQkJCQkJIC8qIC0gUE9QX09WRVJIRUFUKi9cCisJTVVYX1ZBTChDUChVQVJUM19DVFNfUkNUWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTYzKi9cCisJCQkJCQkJCSAvKiAtIG5PQ19VU0I1Ki9cCisJTVVYX1ZBTChDUChFVEtfRDhfRVMyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMjIqL1wKKwkJCQkJCQkJIC8qIC0gTVNFQ1VSRSovXAorCU1VWF9WQUwoQ1AoQ1NJMl9EWTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xMTUqL1wKKwkJCQkJCQkJIC8qIC0gUE9QX09WRVJIRUFUKi9cCiAgLypFeHRlcm5hbCBSZXNldHMgYW5kIEVuYWJsZXMqL1wKLSBNVVhfVkFMKENQKEVUS19EMF9FUzIpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0Ki9cCi0JCQkJCQkJIC8qIC0gbkhEUEhOX1NIVVRET1dOKi9cCi0gTVVYX1ZBTChDUChFVEtfRDFfRVMyKSwJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNSovXAotCQkJCQkJCSAvKiAtIG5CVF9TSFVURE9XTiovXAotIE1VWF9WQUwoQ1AoRVRLX0Q5X0VTMiksCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMjMqL1wKLQkJCQkJCQkgLyogLSBuV0lGSV9SRVNFVCovXAotIE1VWF9WQUwoQ1AoTUNCU1AxX0ZTUiksCShJRElTIHwgUFRVIHwgRElTIHwgTTQpKSAvKkdQSU9fMTU3Ki9cCi0JCQkJCQkJIC8qIC0gbkxDRF9SRVNFVCovXAotIE1VWF9WQUwoQ1AoTUNCU1AxX0NMS1IpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1NiovXAotCQkJCQkJCSAvKiAtIFJFU0VUX05VQlMqL1wKLSBNVVhfVkFMKENQKFVBUlQzX1JUU19TRCksCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTY0Ki9cCi0JCQkJCQkJIC8qIC0gRU5fVVNCXzVWKi9cCisJTVVYX1ZBTChDUChFVEtfRDBfRVMyKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQqL1wKKwkJCQkJCQkJIC8qIC0gbkhEUEhOX1NIVVRET1dOKi9cCisJTVVYX1ZBTChDUChFVEtfRDFfRVMyKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTUqL1wKKwkJCQkJCQkJIC8qIC0gbkJUX1NIVVRET1dOKi9cCisJTVVYX1ZBTChDUChFVEtfRDlfRVMyKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMjMqL1wKKwkJCQkJCQkJIC8qIC0gbldJRklfUkVTRVQqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9GU1IpLAkJKElESVMgfCBQVFUgfCBESVMgfCBNNCkpIC8qR1BJT18xNTcqL1wKKwkJCQkJCQkJIC8qIC0gbkxDRF9SRVNFVCovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0NMS1IpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1NiovXAorCQkJCQkJCQkgLyogLSBSRVNFVF9OVUJTKi9cCisJTVVYX1ZBTChDUChVQVJUM19SVFNfU0QpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE2NCovXAorCQkJCQkJCQkgLyogLSBFTl9VU0JfNVYqL1wKICAvKlNwYXJlIEdQSU9zKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzcpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNNCkpIC8qR1BJT181OCovXAotIE1VWF9WQUwoQ1AoR1BNQ19XQUlUMiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTQpKSAvKkdQSU9fNjQqL1wKLSBNVVhfVkFMKENQKEdQTUNfV0FJVDMpLAkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzY1Ki9cCi0gTVVYX1ZBTChDUChDQU1fVlMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT185NSovXAotIE1VWF9WQUwoQ1AoQ0FNX1dFTiksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzE2NyovXAotIE1VWF9WQUwoQ1AoSERRX1NJTyksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzE3MCovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M3KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTQpKSAvKkdQSU9fNTgqL1wKKwlNVVhfVkFMKENQKEdQTUNfV0FJVDIpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNNCkpIC8qR1BJT182NCovXAorCU1VWF9WQUwoQ1AoR1BNQ19XQUlUMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzY1Ki9cCisJTVVYX1ZBTChDUChDQU1fVlMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT185NSovXAorCU1VWF9WQUwoQ1AoQ0FNX1dFTiksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzE2NyovXAorCU1VWF9WQUwoQ1AoSERRX1NJTyksCQkoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzE3MCovXAogIC8qSFMgVVNCIE9URyBQb3J0IChjb25uZWN0cyB0byBIU1VTQjApKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfQ0xLKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0NMSyovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX1NUUCksCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkhTVVNCMF9TVFAqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9ESVIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfRElSKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfTlhUKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX05YVCovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEEwKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEEwKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTEqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMiovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEEzKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEEzKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTQpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTQqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBNSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNSovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE2KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE2Ki9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTcpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTcqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9DTEspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0NMSyovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX1NUUCksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypIU1VTQjBfU1RQKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfRElSKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9ESVIqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9OWFQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX05YVCovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEEwKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEEwKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTEqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMiovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEEzKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEEzKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTQpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTQqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBNSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNSovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE2KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE2Ki9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTcpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTcqL1wKICAvKkkyQyBQb3J0cyovXAotIE1VWF9WQUwoQ1AoSTJDMV9TQ0wpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDMV9TQ0wgLSBUMl9DVFJMKi9cCi0gTVVYX1ZBTChDUChJMkMxX1NEQSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMxX1NEQSAtIFQyX0NUUkwqL1wKLSBNVVhfVkFMKENQKEkyQzNfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzNfU0NMIC0gTlVCUyovXAotIE1VWF9WQUwoQ1AoSTJDM19TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDM19TREEgLSBOVUJTKi9cCi0gTVVYX1ZBTChDUChJMkM0X1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkM0X1NDTCAtIFQyX1NSKi9cCi0gTVVYX1ZBTChDUChJMkM0X1NEQSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkM0X1NEQSAtIFQyX1NSKi9cCisJTVVYX1ZBTChDUChJMkMxX1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMxX1NDTCAtIFQyX0NUUkwqL1wKKwlNVVhfVkFMKENQKEkyQzFfU0RBKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzFfU0RBIC0gVDJfQ1RSTCovXAorCU1VWF9WQUwoQ1AoSTJDM19TQ0wpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDM19TQ0wgLSBOVUJTKi9cCisJTVVYX1ZBTChDUChJMkMzX1NEQSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMzX1NEQSAtIE5VQlMqL1wKKwlNVVhfVkFMKENQKEkyQzRfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzRfU0NMIC0gVDJfU1IqL1wKKwlNVVhfVkFMKENQKEkyQzRfU0RBKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzRfU0RBIC0gVDJfU1IqL1wKICAvKlNlcmlhbCBJbnRlcmZhY2UgKFRvdWNoLCBMQ0QgY29udHJvbCkqL1wKLSBNVVhfVkFMKENQKE1DU1BJMV9DTEspLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY1NQSTFfQ0xLKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfU0lNTyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jU1BJMV9TSU1PKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfU09NSSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jU1BJMV9TT01JKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfQ1MwKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTWNTUEkxX0NTMCAtIFRPVUNIKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfQ1MxKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTWNTUEkxX0NTMSAtIExDRCovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX0NMSyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY1NQSTFfQ0xLKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfU0lNTyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jU1BJMV9TSU1PKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfU09NSSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jU1BJMV9TT01JKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfQ1MwKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1jU1BJMV9DUzAgLSBUT1VDSCovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX0NTMSksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypNY1NQSTFfQ1MxIC0gTENEKi9cCiAgLypIUyBVU0IgSE9TVCBQb3J0IChjb25uZWN0cyB0byBIU1VTQjIpKi9cCi0gTVVYX1ZBTChDUChFVEtfRDEwX0VTMiksCShJRElTIHwgUFREIHwgRElTIHwgTTMpKSAvKlVTQl9IT1NUX0NMSyovXAotIE1VWF9WQUwoQ1AoRVRLX0QxMV9FUzIpLAkoSURJUyB8IFBUVSB8IEVOICB8IE0zKSkgLypVU0JfSE9TVF9TVFAqL1wKLSBNVVhfVkFMKENQKEVUS19EMTJfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRElSKi9cCi0gTVVYX1ZBTChDUChFVEtfRDEzX0VTMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTMpKSAvKlVTQl9IT1NUX05YVCovXAotIE1VWF9WQUwoQ1AoRVRLX0QxNF9FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypVU0JfSE9TVF9EMCovXAotIE1VWF9WQUwoQ1AoRVRLX0QxNV9FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypVU0JfSE9TVF9EMSovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX0NTMyksCShJRU4gIHwgUFREIHwgRElTIHwgTTMpKSAvKlVTQl9IT1NUX0QyKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTJfQ1MxKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRDMqL1wKLSBNVVhfVkFMKENQKE1DU1BJMl9TSU1PKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRDQqL1wKLSBNVVhfVkFMKENQKE1DU1BJMl9TT01JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRDUqL1wKLSBNVVhfVkFMKENQKE1DU1BJMl9DUzApLAkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypVU0JfSE9TVF9ENiovXAotIE1VWF9WQUwoQ1AoTUNTUEkyX0NMSyksCShJRU4gIHwgUFREIHwgRElTIHwgTTMpKSAvKlVTQl9IT1NUX0Q3Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDJfRVMyKSwJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNiovXAotCQkJCQkJCSAvKiAtIG5SRVNFVF9VU0JfSE9TVCovXAorCU1VWF9WQUwoQ1AoRVRLX0QxMF9FUzIpLAkoSURJUyB8IFBURCB8IERJUyB8IE0zKSkgLypVU0JfSE9TVF9DTEsqL1wKKwlNVVhfVkFMKENQKEVUS19EMTFfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qVVNCX0hPU1RfU1RQKi9cCisJTVVYX1ZBTChDUChFVEtfRDEyX0VTMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTMpKSAvKlVTQl9IT1NUX0RJUiovXAorCU1VWF9WQUwoQ1AoRVRLX0QxM19FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0zKSkgLypVU0JfSE9TVF9OWFQqL1wKKwlNVVhfVkFMKENQKEVUS19EMTRfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRDAqL1wKKwlNVVhfVkFMKENQKEVUS19EMTVfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRDEqL1wKKwlNVVhfVkFMKENQKE1DU1BJMV9DUzMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRDIqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9DUzEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRDMqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9TSU1PKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRDQqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9TT01JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRDUqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9DUzApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRDYqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9DTEspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qVVNCX0hPU1RfRDcqL1wKKwlNVVhfVkFMKENQKEVUS19EMl9FUzIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNiovXAorCQkJCQkJCQkgLyogLSBuUkVTRVRfVVNCX0hPU1QqL1wKICAvKkNvbnRyb2wgYW5kIGRlYnVnICovXAotIE1VWF9WQUwoQ1AoU1lTXzMySyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfMzJLKi9cCi0gTVVYX1ZBTChDUChTWVNfQ0xLUkVRKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTX0NMS1JFUSovXAotIE1VWF9WQUwoQ1AoU1lTX05JUlEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qU1lTX25JUlEqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzIqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzMqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzQqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzUqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzYqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzcqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzgqL1wKLSBNVVhfVkFMKENQKFNZU19PRkZfTU9ERSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNZU19PRkZfTU9ERSovXAorCU1VWF9WQUwoQ1AoU1lTXzMySyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfMzJLKi9cCisJTVVYX1ZBTChDUChTWVNfQ0xLUkVRKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNZU19DTEtSRVEqL1wKKwlNVVhfVkFMKENQKFNZU19OSVJRKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKlNZU19uSVJRKi9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18yKi9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18zKi9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT180Ki9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT181Ki9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT182Ki9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT183Ki9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT184Ki9cCisJTVVYX1ZBTChDUChTWVNfT0ZGX01PREUpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfT0ZGX01PREUqL1wKICAvKkpUQUcqL1wKLSBNVVhfVkFMKENQKEpUQUdfblRSU1QpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypKVEFHX25UUlNUKi9cCi0gTVVYX1ZBTChDUChKVEFHX1RDSyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypKVEFHX1RDSyovXAotIE1VWF9WQUwoQ1AoSlRBR19UTVMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSlRBR19UTVMqL1wKLSBNVVhfVkFMKENQKEpUQUdfVERJKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkpUQUdfVERJKi9cCi0gTVVYX1ZBTChDUChKVEFHX0VNVTApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSlRBR19FTVUwKi9cCi0gTVVYX1ZBTChDUChKVEFHX0VNVTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSlRBR19FTVUxKi9cCisJTVVYX1ZBTChDUChKVEFHX25UUlNUKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkpUQUdfblRSU1QqL1wKKwlNVVhfVkFMKENQKEpUQUdfVENLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkpUQUdfVENLKi9cCisJTVVYX1ZBTChDUChKVEFHX1RNUyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypKVEFHX1RNUyovXAorCU1VWF9WQUwoQ1AoSlRBR19UREkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSlRBR19UREkqL1wKKwlNVVhfVkFMKENQKEpUQUdfRU1VMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypKVEFHX0VNVTAqL1wKKwlNVVhfVkFMKENQKEpUQUdfRU1VMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypKVEFHX0VNVTEqL1wKICAvKkRpZSB0byBEaWUgc3R1ZmYqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDUqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDYqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDcqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEOCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDgqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEOSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDkqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTApLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEwKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDExKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxMSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxMiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTIqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTMpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEzKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDE0KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNCovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxNSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTUqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTYpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE2Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDE3KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNyovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxOCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTgqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTkpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE5Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDIwKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMCovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyMSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjEqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjIpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIyKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDIzKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMyovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyNCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjUpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI1Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDI2KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyNiovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyNyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjcqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjgpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI4Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDI5KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyOSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzMCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzAqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMzEpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMxKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDMyKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzMiovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzMyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzMqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMzQpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDM0Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDM1KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzNSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzNiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzYqL1wKLSBNVVhfVkFMKENQKEQyRF9DTEsyNk1JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2NsazI2bWkqL1wKLSBNVVhfVkFMKENQKEQyRF9OUkVTUFdST04pLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbnJlc3B3cm9uKi9cCi0gTVVYX1ZBTChDUChEMkRfTlJFU1dBUk0pLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypkMmRfbnJlc3dhcm0qL1wKLSBNVVhfVkFMKENQKEQyRF9BUk05TklSUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9hcm05bmlycSovXAotIE1VWF9WQUwoQ1AoRDJEX1VNQTJQNkZJUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF91bWEycDZmaXEqL1wKLSBNVVhfVkFMKENQKEQyRF9TUElOVCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfc3BpbnQqL1wKLSBNVVhfVkFMKENQKEQyRF9GUklOVCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfZnJpbnQqL1wKLSBNVVhfVkFMKENQKEQyRF9ETUFSRVEwKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTAqL1wKLSBNVVhfVkFMKENQKEQyRF9ETUFSRVExKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTEqL1wKLSBNVVhfVkFMKENQKEQyRF9ETUFSRVEyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTIqL1wKLSBNVVhfVkFMKENQKEQyRF9ETUFSRVEzKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTMqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dUUlNUKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3Ryc3QqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dUREkpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndGRpKi9cCi0gTVVYX1ZBTChDUChEMkRfTjNHVERPKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3RkbyovXAotIE1VWF9WQUwoQ1AoRDJEX04zR1RNUyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0bXMqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dUQ0spLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndGNrKi9cCi0gTVVYX1ZBTChDUChEMkRfTjNHUlRDSyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2dydGNrKi9cCi0gTVVYX1ZBTChDUChEMkRfTVNUREJZKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qZDJkX21zdGRieSovXAotIE1VWF9WQUwoQ1AoRDJEX1NXQUtFVVApLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfc3dha2V1cCovXAotIE1VWF9WQUwoQ1AoRDJEX0lETEVSRVEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfaWRsZXJlcSovXAotIE1VWF9WQUwoQ1AoRDJEX0lETEVBQ0spLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypkMmRfaWRsZWFjayovXAotIE1VWF9WQUwoQ1AoRDJEX01XUklURSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9td3JpdGUqL1wKLSBNVVhfVkFMKENQKEQyRF9TV1JJVEUpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfc3dyaXRlKi9cCi0gTVVYX1ZBTChDUChEMkRfTVJFQUQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX21yZWFkKi9cCi0gTVVYX1ZBTChDUChEMkRfU1JFQUQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX3NyZWFkKi9cCi0gTVVYX1ZBTChDUChEMkRfTUJVU0ZMQUcpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbWJ1c2ZsYWcqL1wKLSBNVVhfVkFMKENQKEQyRF9TQlVTRkxBRyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9zYnVzZmxhZyovXAotIE1VWF9WQUwoQ1AoU0RSQ19DS0UwKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKnNkcmNfY2tlMCovXAotIE1VWF9WQUwoQ1AoU0RSQ19DS0UxKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKnNkcmNfY2tlMSovCisJTVVYX1ZBTChDUChEMkRfTUNBRDEpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDIpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDMpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ0Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDUpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ1Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDYpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ2Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDcpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ3Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDgpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ4Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDkpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ5Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDEwKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTAqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTEpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxMSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEyKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDEzKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTMqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxNSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE1Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDE2KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTYqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTcpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxOCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE4Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDE5KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTkqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjApLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIxKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDIyKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjIqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjMpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyNCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI0Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDI1KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjUqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjYpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyNiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyNyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI3Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDI4KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjgqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjkpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyOSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzMCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMwKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDMxKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzEqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzIpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzMiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMzKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDM0KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzQqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzUpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzNSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzNiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDM2Ki9cCisJTVVYX1ZBTChDUChEMkRfQ0xLMjZNSSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9jbGsyNm1pKi9cCisJTVVYX1ZBTChDUChEMkRfTlJFU1BXUk9OKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX25yZXNwd3JvbiovXAorCU1VWF9WQUwoQ1AoRDJEX05SRVNXQVJNKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qZDJkX25yZXN3YXJtKi9cCisJTVVYX1ZBTChDUChEMkRfQVJNOU5JUlEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfYXJtOW5pcnEqL1wKKwlNVVhfVkFMKENQKEQyRF9VTUEyUDZGSVEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfdW1hMnA2ZmlxKi9cCisJTVVYX1ZBTChDUChEMkRfU1BJTlQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX3NwaW50Ki9cCisJTVVYX1ZBTChDUChEMkRfRlJJTlQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX2ZyaW50Ki9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9kbWFyZXEwKi9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9kbWFyZXExKi9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9kbWFyZXEyKi9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9kbWFyZXEzKi9cCisJTVVYX1ZBTChDUChEMkRfTjNHVFJTVCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0cnN0Ki9cCisJTVVYX1ZBTChDUChEMkRfTjNHVERJKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0ZGkqL1wKKwlNVVhfVkFMKENQKEQyRF9OM0dURE8pLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3RkbyovXAorCU1VWF9WQUwoQ1AoRDJEX04zR1RNUyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndG1zKi9cCisJTVVYX1ZBTChDUChEMkRfTjNHVENLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0Y2sqL1wKKwlNVVhfVkFMKENQKEQyRF9OM0dSVENLKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3J0Y2sqL1wKKwlNVVhfVkFMKENQKEQyRF9NU1REQlkpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qZDJkX21zdGRieSovXAorCU1VWF9WQUwoQ1AoRDJEX1NXQUtFVVApLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfc3dha2V1cCovXAorCU1VWF9WQUwoQ1AoRDJEX0lETEVSRVEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfaWRsZXJlcSovXAorCU1VWF9WQUwoQ1AoRDJEX0lETEVBQ0spLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypkMmRfaWRsZWFjayovXAorCU1VWF9WQUwoQ1AoRDJEX01XUklURSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbXdyaXRlKi9cCisJTVVYX1ZBTChDUChEMkRfU1dSSVRFKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9zd3JpdGUqL1wKKwlNVVhfVkFMKENQKEQyRF9NUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbXJlYWQqL1wKKwlNVVhfVkFMKENQKEQyRF9TUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfc3JlYWQqL1wKKwlNVVhfVkFMKENQKEQyRF9NQlVTRkxBRyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9tYnVzZmxhZyovXAorCU1VWF9WQUwoQ1AoRDJEX1NCVVNGTEFHKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX3NidXNmbGFnKi9cCisJTVVYX1ZBTChDUChTRFJDX0NLRTApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qc2RyY19ja2UwKi9cCisJTVVYX1ZBTChDUChTRFJDX0NLRTEpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qc2RyY19ja2UxKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4NjQxZC9sYXcuYyBiL2JvYXJkL3NiYzg2NDFkL2xhdy5jCmluZGV4IDc2MGM2OTMuLmQyMGZhNTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NiYzg2NDFkL2xhdy5jCisrKyBiL2JvYXJkL3NiYzg2NDFkL2xhdy5jCkBAIC00NCwxNCArNDQsMTcgQEAKIAogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0geworI2lmICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKQogCVNFVF9MQVcoQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfRERSXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAsCisJCSBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFJfMiksCisjZW5kaWYKIAlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzEpLAogCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCiAJU0VUX0xBVygweGY4MDAwMDAwLCBMQVdfU0laRV8yTSwgTEFXX1RSR1RfSUZfTEJDKSwKIAlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSV8xKSwKIAlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSV8yKSwKIAlTRVRfTEFXKDB4ZmUwMDAwMDAsIExBV19TSVpFXzMyTSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUl8yKSwKIAlTRVRfTEFXKENPTkZJR19TWVNfUklPX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pCiB9OwogCmRpZmYgLS1naXQgYS9ib2FyZC90aS9iZWFnbGUvYmVhZ2xlLmggYi9ib2FyZC90aS9iZWFnbGUvYmVhZ2xlLmgKaW5kZXggM2EwZjkwNy4uN2ZlNjI3NSAxMDA2NDQKLS0tIGEvYm9hcmQvdGkvYmVhZ2xlL2JlYWdsZS5oCisrKyBiL2JvYXJkL3RpL2JlYWdsZS9iZWFnbGUuaApAQCAtNDcsMzM4ICs0NywzMzggQEAKICAqLwogI2RlZmluZSBNVVhfQkVBR0xFKCkgXAogIC8qU0RSQyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzKi9cCi0gTVVYX1ZBTChDUChTRFJDX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDQqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENSovXAotIE1VWF9WQUwoQ1AoU0RSQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q2Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDcqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EOCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q5Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEyKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTQqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE1Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTcqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE4Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxOSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIxKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QyMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjMqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI0Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjYqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI3Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyOCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjkqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDMwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDMwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QzMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzMSovXAotIE1VWF9WQUwoQ1AoU0RSQ19DTEspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19DTEsqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzIqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzMqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMyovXAorCU1VWF9WQUwoQ1AoU0RSQ19ENCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q0Ki9cCisJTVVYX1ZBTChDUChTRFJDX0Q1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDUqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENiovXAorCU1VWF9WQUwoQ1AoU0RSQ19ENyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q3Ki9cCisJTVVYX1ZBTChDUChTRFJDX0Q4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDgqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EOSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDExKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDExKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMiovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTMqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE0Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTYqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE3Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxOCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTkqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIwKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjIqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIzKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjUqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI2Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QyNyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNyovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjgqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI5Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QzMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzMCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMzEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMzEqL1wKKwlNVVhfVkFMKENQKFNEUkNfQ0xLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfQ0xLKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMwKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMxKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMyKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMzKi9cCiAgLypHUE1DKi9cCi0gTVVYX1ZBTChDUChHUE1DX0ExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTEqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BMiovXAotIE1VWF9WQUwoQ1AoR1BNQ19BMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0EzKi9cCi0gTVVYX1ZBTChDUChHUE1DX0E0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTQqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNSovXAotIE1VWF9WQUwoQ1AoR1BNQ19BNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E2Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0E3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTcqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BOCovXAotIE1VWF9WQUwoQ1AoR1BNQ19BOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E5Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0ExMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0ExMCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QwKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMiovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QzKi9cCi0gTVVYX1ZBTChDUChHUE1DX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDQqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENSovXAotIE1VWF9WQUwoQ1AoR1BNQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q2Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDcqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EOCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q5Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTEqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEyKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMyovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTQqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDE1Ki9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MwKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzEpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MxKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzIpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MyKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzMpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MzKi9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzQpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1M0Ki9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uQ1M1Ki9cCi0gTVVYX1ZBTChDUChHUE1DX05DUzYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMSkpIC8qU1lTX25ETUFfUkVRMiovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1M3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTEpKSAvKlNZU19uRE1BX1JFUTMqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkJFMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25CRTEqL1wKLSBNVVhfVkFMKENQKEdQTUNfV0FJVDIpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQyKi9cCi0gTVVYX1ZBTChDUChHUE1DX1dBSVQzKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMyovXAotIE1VWF9WQUwoQ1AoR1BNQ19DTEspLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19DTEsqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkFEVl9BTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25BRFZfQUxFKi9cCi0gTVVYX1ZBTChDUChHUE1DX05PRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25PRSovXAotIE1VWF9WQUwoQ1AoR1BNQ19OV0UpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uV0UqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkJFMF9DTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25CRTBfQ0xFKi9cCi0gTVVYX1ZBTChDUChHUE1DX05XUCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25XUCovXAotIE1VWF9WQUwoQ1AoR1BNQ19XQUlUMCksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDAqL1wKLSBNVVhfVkFMKENQKEdQTUNfV0FJVDEpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQxKi9cCisJTVVYX1ZBTChDUChHUE1DX0ExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTEqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19BMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0EzKi9cCisJTVVYX1ZBTChDUChHUE1DX0E0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTQqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNSovXAorCU1VWF9WQUwoQ1AoR1BNQ19BNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E2Ki9cCisJTVVYX1ZBTChDUChHUE1DX0E3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTcqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BOCovXAorCU1VWF9WQUwoQ1AoR1BNQ19BOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E5Ki9cCisJTVVYX1ZBTChDUChHUE1DX0ExMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0ExMCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QwKi9cCisJTVVYX1ZBTChDUChHUE1DX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QzKi9cCisJTVVYX1ZBTChDUChHUE1DX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDQqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENSovXAorCU1VWF9WQUwoQ1AoR1BNQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q2Ki9cCisJTVVYX1ZBTChDUChHUE1DX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDcqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EOCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q5Ki9cCisJTVVYX1ZBTChDUChHUE1DX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTEqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEyKi9cCisJTVVYX1ZBTChDUChHUE1DX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTQqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDE1Ki9cCisJTVVYX1ZBTChDUChHUE1DX05DUzApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MwKi9cCisJTVVYX1ZBTChDUChHUE1DX05DUzEpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MxKi9cCisJTVVYX1ZBTChDUChHUE1DX05DUzIpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MyKi9cCisJTVVYX1ZBTChDUChHUE1DX05DUzMpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MzKi9cCisJTVVYX1ZBTChDUChHUE1DX05DUzQpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1M0Ki9cCisJTVVYX1ZBTChDUChHUE1DX05DUzUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uQ1M1Ki9cCisJTVVYX1ZBTChDUChHUE1DX05DUzYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMSkpIC8qU1lTX25ETUFfUkVRMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTEpKSAvKlNZU19uRE1BX1JFUTMqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkJFMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25CRTEqL1wKKwlNVVhfVkFMKENQKEdQTUNfV0FJVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19XQUlUMyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQzKi9cCisJTVVYX1ZBTChDUChHUE1DX0NMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0NMSyovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQURWX0FMRSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkFEVl9BTEUqL1wKKwlNVVhfVkFMKENQKEdQTUNfTk9FKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbk9FKi9cCisJTVVYX1ZBTChDUChHUE1DX05XRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25XRSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQkUwX0NMRSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkJFMF9DTEUqL1wKKwlNVVhfVkFMKENQKEdQTUNfTldQKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbldQKi9cCisJTVVYX1ZBTChDUChHUE1DX1dBSVQwKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDAqL1wKKwlNVVhfVkFMKENQKEdQTUNfV0FJVDEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMSovXAogIC8qRFNTKi9cCi0gTVVYX1ZBTChDUChEU1NfUENMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfUENMSyovXAotIE1VWF9WQUwoQ1AoRFNTX0hTWU5DKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19IU1lOQyovXAotIE1VWF9WQUwoQ1AoRFNTX1ZTWU5DKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19WU1lOQyovXAotIE1VWF9WQUwoQ1AoRFNTX0FDQklBUyksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19BQ0JJQVMqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTAqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTMqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTQqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTUqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTYqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTcqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBOCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTgqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTkqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTApLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEwKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTExKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExMSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExMiksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTIqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTMpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEzKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTE0KSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExNSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTUqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTYpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE2Ki9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTE3KSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNyovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExOCksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTgqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTkpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE5Ki9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTIwKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEEyMSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjEqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMjIpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIyKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTIzKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMyovXAorCU1VWF9WQUwoQ1AoRFNTX1BDTEspLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX1BDTEsqL1wKKwlNVVhfVkFMKENQKERTU19IU1lOQyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfSFNZTkMqL1wKKwlNVVhfVkFMKENQKERTU19WU1lOQyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfVlNZTkMqL1wKKwlNVVhfVkFMKENQKERTU19BQ0JJQVMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0FDQklBUyovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEyKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMiovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMyovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE1KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNiovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNyovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE4KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBOCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE5KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBOSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEwKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTEqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExMiovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEzKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTE0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTQqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE2Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTE3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTcqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExOCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE5Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTIwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjAqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMjEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEyMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIyKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTIzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjMqL1wKICAvKkNBTUVSQSovXAotIE1VWF9WQUwoQ1AoQ0FNX0hTKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkNBTV9IUyAqL1wKLSBNVVhfVkFMKENQKENBTV9WUyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypDQU1fVlMgKi9cCi0gTVVYX1ZBTChDUChDQU1fWENMS0EpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX1hDTEtBKi9cCi0gTVVYX1ZBTChDUChDQU1fUENMSyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypDQU1fUENMSyovXAotIE1VWF9WQUwoQ1AoQ0FNX0ZMRCksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzk4Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QwKi9cCi0gTVVYX1ZBTChDUChDQU1fRDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QxKi9cCi0gTVVYX1ZBTChDUChDQU1fRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QyKi9cCi0gTVVYX1ZBTChDUChDQU1fRDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QzKi9cCi0gTVVYX1ZBTChDUChDQU1fRDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q0Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q1Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q2Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q3Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q4Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0Q5Ki9cCi0gTVVYX1ZBTChDUChDQU1fRDEwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9EMTAqL1wKLSBNVVhfVkFMKENQKENBTV9EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QxMSovXAotIE1VWF9WQUwoQ1AoQ0FNX1hDTEtCKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9YQ0xLQiovXAotIE1VWF9WQUwoQ1AoQ0FNX1dFTiksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE2NyovXAotIE1VWF9WQUwoQ1AoQ0FNX1NUUk9CRSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9TVFJPQkUqL1wKLSBNVVhfVkFMKENQKENTSTJfRFgwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNTSTJfRFgwKi9cCi0gTVVYX1ZBTChDUChDU0kyX0RZMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDU0kyX0RZMCovXAotIE1VWF9WQUwoQ1AoQ1NJMl9EWDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ1NJMl9EWDEqL1wKLSBNVVhfVkFMKENQKENTSTJfRFkxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNTSTJfRFkxKi9cCisJTVVYX1ZBTChDUChDQU1fSFMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qQ0FNX0hTICovXAorCU1VWF9WQUwoQ1AoQ0FNX1ZTKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkNBTV9WUyAqL1wKKwlNVVhfVkFMKENQKENBTV9YQ0xLQSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fWENMS0EqL1wKKwlNVVhfVkFMKENQKENBTV9QQ0xLKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkNBTV9QQ0xLKi9cCisJTVVYX1ZBTChDUChDQU1fRkxEKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fOTgqL1wKKwlNVVhfVkFMKENQKENBTV9EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDAqL1wKKwlNVVhfVkFMKENQKENBTV9EMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDEqL1wKKwlNVVhfVkFMKENQKENBTV9EMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDIqL1wKKwlNVVhfVkFMKENQKENBTV9EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDMqL1wKKwlNVVhfVkFMKENQKENBTV9ENCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDQqL1wKKwlNVVhfVkFMKENQKENBTV9ENSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDUqL1wKKwlNVVhfVkFMKENQKENBTV9ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDYqL1wKKwlNVVhfVkFMKENQKENBTV9ENyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDcqL1wKKwlNVVhfVkFMKENQKENBTV9EOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDgqL1wKKwlNVVhfVkFMKENQKENBTV9EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDkqL1wKKwlNVVhfVkFMKENQKENBTV9EMTApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QxMCovXAorCU1VWF9WQUwoQ1AoQ0FNX0QxMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDExKi9cCisJTVVYX1ZBTChDUChDQU1fWENMS0IpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX1hDTEtCKi9cCisJTVVYX1ZBTChDUChDQU1fV0VOKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTY3Ki9cCisJTVVYX1ZBTChDUChDQU1fU1RST0JFKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9TVFJPQkUqL1wKKwlNVVhfVkFMKENQKENTSTJfRFgwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNTSTJfRFgwKi9cCisJTVVYX1ZBTChDUChDU0kyX0RZMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDU0kyX0RZMCovXAorCU1VWF9WQUwoQ1AoQ1NJMl9EWDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ1NJMl9EWDEqL1wKKwlNVVhfVkFMKENQKENTSTJfRFkxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNTSTJfRFkxKi9cCiAgLypBdWRpbyBJbnRlcmZhY2UgKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDJfRlNYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0ZTWCovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0NMS1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDJfQ0xLWCovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0RSKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9EUiovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9EWCovXAorCU1VWF9WQUwoQ1AoTUNCU1AyX0ZTWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDJfRlNYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9DTEtYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfRFIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0RSKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfRFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0RYKi9cCiAgLypFeHBhbnNpb24gY2FyZCAqL1wKLSBNVVhfVkFMKENQKE1NQzFfQ0xLKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfQ0xLKi9cCi0gTVVYX1ZBTChDUChNTUMxX0NNRCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0NNRCovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQwKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMCovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMSovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMiovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMyovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQ0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNCovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQ1KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNSovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQ2KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNiovXAotIE1VWF9WQUwoQ1AoTU1DMV9EQVQ3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNyovXAorCU1VWF9WQUwoQ1AoTU1DMV9DTEspLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9DTEsqL1wKKwlNVVhfVkFMKENQKE1NQzFfQ01EKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfQ01EKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDApLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQwKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQxKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQyKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQzKi9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQ0Ki9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDUpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQ1Ki9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDYpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQ2Ki9cCisJTVVYX1ZBTChDUChNTUMxX0RBVDcpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQ3Ki9cCiAgLypXaXJlbGVzcyBMQU4gKi9cCi0gTVVYX1ZBTChDUChNTUMyX0NMSyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzMCovXAotIE1VWF9WQUwoQ1AoTU1DMl9DTUQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzEqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzMiovXAotIE1VWF9WQUwoQ1AoTU1DMl9EQVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTMzKi9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzQqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzNSovXAotIE1VWF9WQUwoQ1AoTU1DMl9EQVQ0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTM2Ki9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDUpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzcqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUNiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzOCovXAotIE1VWF9WQUwoQ1AoTU1DMl9EQVQ3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTM5Ki9cCisJTVVYX1ZBTChDUChNTUMyX0NMSyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzMCovXAorCU1VWF9WQUwoQ1AoTU1DMl9DTUQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzEqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzMiovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTMzKi9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzQqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUMyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzNSovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQ0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTM2Ki9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDUpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzcqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUNiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzOCovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQ3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTM5Ki9cCiAgLypCbHVldG9vdGgqL1wKLSBNVVhfVkFMKENQKE1DQlNQM19EWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0xKSkgLypVQVJUMl9DVFMqL1wKLSBNVVhfVkFMKENQKE1DQlNQM19EUiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0xKSkgLypVQVJUMl9SVFMqL1wKLSBNVVhfVkFMKENQKE1DQlNQM19DTEtYKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMSkpIC8qVUFSVDJfVFgqL1wKLSBNVVhfVkFMKENQKE1DQlNQM19GU1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0xKSkgLypVQVJUMl9SWCovXAotIE1VWF9WQUwoQ1AoVUFSVDJfQ1RTKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQ0Ki9cCi0gTVVYX1ZBTChDUChVQVJUMl9SVFMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDUqL1wKLSBNVVhfVkFMKENQKFVBUlQyX1RYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQ2Ki9cCi0gTVVYX1ZBTChDUChVQVJUMl9SWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0NyovXAorCU1VWF9WQUwoQ1AoTUNCU1AzX0RYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTEpKSAvKlVBUlQyX0NUUyovXAorCU1VWF9WQUwoQ1AoTUNCU1AzX0RSKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTEpKSAvKlVBUlQyX1JUUyovXAorCU1VWF9WQUwoQ1AoTUNCU1AzX0NMS1gpLAkoSURJUyB8IFBURCB8IERJUyB8IE0xKSkgLypVQVJUMl9UWCovXAorCU1VWF9WQUwoQ1AoTUNCU1AzX0ZTWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0xKSkgLypVQVJUMl9SWCovXAorCU1VWF9WQUwoQ1AoVUFSVDJfQ1RTKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQ0Ki9cCisJTVVYX1ZBTChDUChVQVJUMl9SVFMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDUqL1wKKwlNVVhfVkFMKENQKFVBUlQyX1RYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQ2Ki9cCisJTVVYX1ZBTChDUChVQVJUMl9SWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0NyovXAogIC8qTW9kZW0gSW50ZXJmYWNlICovXAotIE1VWF9WQUwoQ1AoVUFSVDFfVFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDFfVFgqL1wKLSBNVVhfVkFMKENQKFVBUlQxX1JUUyksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0OSovIFwKLSBNVVhfVkFMKENQKFVBUlQxX0NUUyksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1MCovIFwKLSBNVVhfVkFMKENQKFVBUlQxX1JYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQxX1JYKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDRfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTEpKSAvKlNTSTFfREFUX1JYKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDRfRFIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMSkpIC8qU1NJMV9GTEFHX1JYKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDRfRFgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMSkpIC8qU1NJMV9SRFlfUlgqL1wKLSBNVVhfVkFMKENQKE1DQlNQNF9GU1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0xKSkgLypTU0kxX1dBS0UqL1wKLSBNVVhfVkFMKENQKE1DQlNQMV9DTEtSKSwJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNTYqL1wKLSBNVVhfVkFMKENQKE1DQlNQMV9GU1IpLAkoSURJUyB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzE1NyovXAotIE1VWF9WQUwoQ1AoTUNCU1AxX0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTU4Ki9cCi0gTVVYX1ZBTChDUChNQ0JTUDFfRFIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNTkqL1wKLSBNVVhfVkFMKENQKE1DQlNQX0NMS1MpLAkoSUVOICB8IFBUVSB8IERJUyB8IE0wKSkgLypNY0JTUF9DTEtTKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDFfRlNYKSwJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNjEqL1wKLSBNVVhfVkFMKENQKE1DQlNQMV9DTEtYKSwJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNjIqL1wKKwlNVVhfVkFMKENQKFVBUlQxX1RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQxX1RYKi9cCisJTVVYX1ZBTChDUChVQVJUMV9SVFMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDkqLyBcCisJTVVYX1ZBTChDUChVQVJUMV9DVFMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNTAqLyBcCisJTVVYX1ZBTChDUChVQVJUMV9SWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUMV9SWCovXAorCU1VWF9WQUwoQ1AoTUNCU1A0X0NMS1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0xKSkgLypTU0kxX0RBVF9SWCovXAorCU1VWF9WQUwoQ1AoTUNCU1A0X0RSKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTEpKSAvKlNTSTFfRkxBR19SWCovXAorCU1VWF9WQUwoQ1AoTUNCU1A0X0RYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTEpKSAvKlNTSTFfUkRZX1JYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDRfRlNYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTEpKSAvKlNTSTFfV0FLRSovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0NMS1IpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1NiovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0ZTUiksCQkoSURJUyB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzE1NyovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTU4Ki9cCisJTVVYX1ZBTChDUChNQ0JTUDFfRFIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNTkqL1wKKwlNVVhfVkFMKENQKE1DQlNQX0NMS1MpLAkJKElFTiAgfCBQVFUgfCBESVMgfCBNMCkpIC8qTWNCU1BfQ0xLUyovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0ZTWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE2MSovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0NMS1gpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE2MiovXAogIC8qU2VyaWFsIEludGVyZmFjZSovXAotIE1VWF9WQUwoQ1AoVUFSVDNfQ1RTX1JDVFgpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypVQVJUM19DVFNfUkNUWCovXAotIE1VWF9WQUwoQ1AoVUFSVDNfUlRTX1NEKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDNfUlRTX1NEICovXAotIE1VWF9WQUwoQ1AoVUFSVDNfUlhfSVJSWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQzX1JYX0lSUlgqL1wKLSBNVVhfVkFMKENQKFVBUlQzX1RYX0lSVFgpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUM19UWF9JUlRYKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfQ0xLKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0NMSyovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX1NUUCksCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkhTVVNCMF9TVFAqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9ESVIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfRElSKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfTlhUKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX05YVCovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEEwKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEEwKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTEqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMiovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEEzKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEEzKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTQpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTQqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBNSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNSovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE2KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE2Ki9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTcpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTcqL1wKLSBNVVhfVkFMKENQKEkyQzFfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzFfU0NMKi9cCi0gTVVYX1ZBTChDUChJMkMxX1NEQSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMxX1NEQSovXAotIE1VWF9WQUwoQ1AoSTJDMl9TQ0wpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xNjgqL1wKLSBNVVhfVkFMKENQKEkyQzJfU0RBKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTgzKi9cCi0gTVVYX1ZBTChDUChJMkMzX1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMzX1NDTCovXAotIE1VWF9WQUwoQ1AoSTJDM19TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDM19TREEqL1wKLSBNVVhfVkFMKENQKEkyQzRfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzRfU0NMKi9cCi0gTVVYX1ZBTChDUChJMkM0X1NEQSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkM0X1NEQSovXAotIE1VWF9WQUwoQ1AoSERRX1NJTyksCQkoSURJUyB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzE3MCovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX0NMSyksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTcxKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfU0lNTyksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTcyKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfU09NSSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jU1BJMV9TT01JKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfQ1MwKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qTWNTUEkxX0NTMCovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX0NTMSksCShJRElTIHwgUFREIHwgRU4gIHwgTTApKSAvKk1jU1BJMV9DUzEqL1wKLSBNVVhfVkFMKENQKE1DU1BJMV9DUzIpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE3NiovXAorCU1VWF9WQUwoQ1AoVUFSVDNfQ1RTX1JDVFgpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypVQVJUM19DVFNfUkNUWCovXAorCU1VWF9WQUwoQ1AoVUFSVDNfUlRTX1NEKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDNfUlRTX1NEICovXAorCU1VWF9WQUwoQ1AoVUFSVDNfUlhfSVJSWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQzX1JYX0lSUlgqL1wKKwlNVVhfVkFMKENQKFVBUlQzX1RYX0lSVFgpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUM19UWF9JUlRYKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfQ0xLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9DTEsqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9TVFApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSFNVU0IwX1NUUCovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RJUiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfRElSKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfTlhUKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9OWFQqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBMCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMCovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEExKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEExKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTIqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBMyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMyovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE0KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE0Ki9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTUpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTUqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBNiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNiovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE3KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE3Ki9cCisJTVVYX1ZBTChDUChJMkMxX1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMxX1NDTCovXAorCU1VWF9WQUwoQ1AoSTJDMV9TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDMV9TREEqL1wKKwlNVVhfVkFMKENQKEkyQzJfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTY4Ki9cCisJTVVYX1ZBTChDUChJMkMyX1NEQSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzE4MyovXAorCU1VWF9WQUwoQ1AoSTJDM19TQ0wpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDM19TQ0wqL1wKKwlNVVhfVkFMKENQKEkyQzNfU0RBKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzNfU0RBKi9cCisJTVVYX1ZBTChDUChJMkM0X1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkM0X1NDTCovXAorCU1VWF9WQUwoQ1AoSTJDNF9TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDNF9TREEqL1wKKwlNVVhfVkFMKENQKEhEUV9TSU8pLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xNzAqL1wKKwlNVVhfVkFMKENQKE1DU1BJMV9DTEspLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xNzEqL1wKKwlNVVhfVkFMKENQKE1DU1BJMV9TSU1PKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xNzIqL1wKKwlNVVhfVkFMKENQKE1DU1BJMV9TT01JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNTUEkxX1NPTUkqL1wKKwlNVVhfVkFMKENQKE1DU1BJMV9DUzApLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qTWNTUEkxX0NTMCovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX0NTMSksCQkoSURJUyB8IFBURCB8IEVOICB8IE0wKSkgLypNY1NQSTFfQ1MxKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfQ1MyKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTc2Ki9cCiAgLyogVVNCIEVIQ0kgKHBvcnQgMikgKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfQ1MzKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RBVEEyKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTJfQ0xLKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RBVEE3Ki9cCi0gTVVYX1ZBTChDUChNQ1NQSTJfU0lNTyksCShJRU4gIHwgUFRVIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9EQVRBNCovXAotIE1VWF9WQUwoQ1AoTUNTUEkyX1NPTUkpLAkoSUVOICB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTUqL1wKLSBNVVhfVkFMKENQKE1DU1BJMl9DUzApLAkoSUVOICB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTYqL1wKLSBNVVhfVkFMKENQKE1DU1BJMl9DUzEpLAkoSUVOICB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTMqL1wKLSBNVVhfVkFMKENQKEVUS19EMTBfRVMyKSwJKElESVMgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IyX0NMSyovXAotIE1VWF9WQUwoQ1AoRVRLX0QxMV9FUzIpLAkoSURJUyB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjJfU1RQKi9cCi0gTVVYX1ZBTChDUChFVEtfRDEyX0VTMiksCShJRU4gIHwgUFRVIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9ESVIqL1wKLSBNVVhfVkFMKENQKEVUS19EMTNfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IyX05YVCovXAotIE1VWF9WQUwoQ1AoRVRLX0QxNF9FUzIpLAkoSUVOICB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTAqL1wKLSBNVVhfVkFMKENQKEVUS19EMTVfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RBVEExKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfQ1MzKSwJCShJRU4gIHwgUFRVIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9EQVRBMiovXAorCU1VWF9WQUwoQ1AoTUNTUEkyX0NMSyksCQkoSUVOICB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTcqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9TSU1PKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RBVEE0Ki9cCisJTVVYX1ZBTChDUChNQ1NQSTJfU09NSSksCShJRU4gIHwgUFRVIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9EQVRBNSovXAorCU1VWF9WQUwoQ1AoTUNTUEkyX0NTMCksCQkoSUVOICB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjJfREFUQTYqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9DUzEpLAkJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RBVEEzKi9cCisJTVVYX1ZBTChDUChFVEtfRDEwX0VTMiksCShJRElTIHwgUFRVIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9DTEsqL1wKKwlNVVhfVkFMKENQKEVUS19EMTFfRVMyKSwJKElESVMgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IyX1NUUCovXAorCU1VWF9WQUwoQ1AoRVRLX0QxMl9FUzIpLAkoSUVOICB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjJfRElSKi9cCisJTVVYX1ZBTChDUChFVEtfRDEzX0VTMiksCShJRU4gIHwgUFRVIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9OWFQqL1wKKwlNVVhfVkFMKENQKEVUS19EMTRfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IyX0RBVEEwKi9cCisJTVVYX1ZBTChDUChFVEtfRDE1X0VTMiksCShJRU4gIHwgUFRVIHwgRElTIHwgTTMpKSAvKkhTVVNCMl9EQVRBMSovXAogIC8qQ29udHJvbCBhbmQgZGVidWcgKi9cCi0gTVVYX1ZBTChDUChTWVNfMzJLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNZU18zMksqL1wKLSBNVVhfVkFMKENQKFNZU19DTEtSRVEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfQ0xLUkVRKi9cCi0gTVVYX1ZBTChDUChTWVNfTklSUSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypTWVNfbklSUSovXAotIE1VWF9WQUwoQ1AoU1lTX0JPT1QwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMiovXAotIE1VWF9WQUwoQ1AoU1lTX0JPT1QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMyovXAotIE1VWF9WQUwoQ1AoU1lTX0JPT1QyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fNCAtIE1NQzFfV1AqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzUqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzYqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzcqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzgqLyBcCi0gTVVYX1ZBTChDUChTWVNfT0ZGX01PREUpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfT0ZGX01PREUqL1wKLSBNVVhfVkFMKENQKFNZU19DTEtPVVQxKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTX0NMS09VVDEqL1wKLSBNVVhfVkFMKENQKFNZU19DTEtPVVQyKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xODYqL1wKLSBNVVhfVkFMKENQKEVUS19DTEtfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX1NUUCovXAotIE1VWF9WQUwoQ1AoRVRLX0NUTF9FUzIpLAkoSURJUyB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjFfQ0xLKi9cCi0gTVVYX1ZBTChDUChFVEtfRDBfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RBVEEwKi9cCi0gTVVYX1ZBTChDUChFVEtfRDFfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RBVEExKi9cCi0gTVVYX1ZBTChDUChFVEtfRDJfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RBVEEyKi9cCi0gTVVYX1ZBTChDUChFVEtfRDNfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RBVEE3Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDRfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RBVEE0Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDVfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RBVEE1Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDZfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RBVEE2Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDdfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RBVEEzKi9cCi0gTVVYX1ZBTChDUChFVEtfRDhfRVMyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RJUiovXAotIE1VWF9WQUwoQ1AoRVRLX0Q5X0VTMiksCShJRU4gIHwgUFRVIHwgRElTIHwgTTMpKSAvKkhTVVNCMV9OWFQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDUqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDYqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDcqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEOCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDgqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEOSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDkqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTApLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEwKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDExKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxMSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxMiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTIqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTMpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEzKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDE0KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNCovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxNSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTUqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTYpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE2Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDE3KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNyovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxOCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTgqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTkpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE5Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDIwKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMCovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyMSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjEqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjIpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIyKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDIzKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMyovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyNCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjUpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI1Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDI2KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyNiovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyNyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjcqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjgpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI4Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDI5KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyOSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzMCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzAqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMzEpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMxKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDMyKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzMiovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzMyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzMqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMzQpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDM0Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDM1KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzNSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzNiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzYqL1wKLSBNVVhfVkFMKENQKEQyRF9DTEsyNk1JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2NsazI2bWkqL1wKLSBNVVhfVkFMKENQKEQyRF9OUkVTUFdST04pLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbnJlc3B3cm9uKi9cCi0gTVVYX1ZBTChDUChEMkRfTlJFU1dBUk0pLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypkMmRfbnJlc3dhcm0gKi9cCi0gTVVYX1ZBTChDUChEMkRfQVJNOU5JUlEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfYXJtOW5pcnEgKi9cCi0gTVVYX1ZBTChDUChEMkRfVU1BMlA2RklRKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX3VtYTJwNmZpcSovXAotIE1VWF9WQUwoQ1AoRDJEX1NQSU5UKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9zcGludCovXAotIE1VWF9WQUwoQ1AoRDJEX0ZSSU5UKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9mcmludCovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMCovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMSovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMiovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTMpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfZG1hcmVxMyovXAotIE1VWF9WQUwoQ1AoRDJEX04zR1RSU1QpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndHJzdCovXAotIE1VWF9WQUwoQ1AoRDJEX04zR1RESSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0ZGkqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dURE8pLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndGRvKi9cCi0gTVVYX1ZBTChDUChEMkRfTjNHVE1TKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3RtcyovXAotIE1VWF9WQUwoQ1AoRDJEX04zR1RDSyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0Y2sqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dSVENLKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3J0Y2sqL1wKLSBNVVhfVkFMKENQKEQyRF9NU1REQlkpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypkMmRfbXN0ZGJ5Ki9cCi0gTVVYX1ZBTChDUChEMkRfU1dBS0VVUCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9zd2FrZXVwKi9cCi0gTVVYX1ZBTChDUChEMkRfSURMRVJFUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9pZGxlcmVxKi9cCi0gTVVYX1ZBTChDUChEMkRfSURMRUFDSyksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKmQyZF9pZGxlYWNrKi9cCi0gTVVYX1ZBTChDUChEMkRfTVdSSVRFKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX213cml0ZSovXAotIE1VWF9WQUwoQ1AoRDJEX1NXUklURSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9zd3JpdGUqL1wKLSBNVVhfVkFMKENQKEQyRF9NUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbXJlYWQqL1wKLSBNVVhfVkFMKENQKEQyRF9TUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfc3JlYWQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQlVTRkxBRyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9tYnVzZmxhZyovXAotIE1VWF9WQUwoQ1AoRDJEX1NCVVNGTEFHKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX3NidXNmbGFnKi9cCi0gTVVYX1ZBTChDUChTRFJDX0NLRTApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qc2RyY19ja2UwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0NLRTEpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qc2RyY19ja2UxKi8KKwlNVVhfVkFMKENQKFNZU18zMkspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTXzMySyovXAorCU1VWF9WQUwoQ1AoU1lTX0NMS1JFUSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfQ0xLUkVRKi9cCisJTVVYX1ZBTChDUChTWVNfTklSUSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypTWVNfbklSUSovXAorCU1VWF9WQUwoQ1AoU1lTX0JPT1QwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMiovXAorCU1VWF9WQUwoQ1AoU1lTX0JPT1QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMyovXAorCU1VWF9WQUwoQ1AoU1lTX0JPT1QyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fNCAtIE1NQzFfV1AqL1wKKwlNVVhfVkFMKENQKFNZU19CT09UMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzUqL1wKKwlNVVhfVkFMKENQKFNZU19CT09UNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzYqL1wKKwlNVVhfVkFMKENQKFNZU19CT09UNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzcqL1wKKwlNVVhfVkFMKENQKFNZU19CT09UNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzgqLyBcCisJTVVYX1ZBTChDUChTWVNfT0ZGX01PREUpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfT0ZGX01PREUqL1wKKwlNVVhfVkFMKENQKFNZU19DTEtPVVQxKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTX0NMS09VVDEqL1wKKwlNVVhfVkFMKENQKFNZU19DTEtPVVQyKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xODYqL1wKKwlNVVhfVkFMKENQKEVUS19DTEtfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX1NUUCovXAorCU1VWF9WQUwoQ1AoRVRLX0NUTF9FUzIpLAkoSURJUyB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjFfQ0xLKi9cCisJTVVYX1ZBTChDUChFVEtfRDBfRVMyKSwJCShJRU4gIHwgUFRVIHwgRElTIHwgTTMpKSAvKkhTVVNCMV9EQVRBMCovXAorCU1VWF9WQUwoQ1AoRVRLX0QxX0VTMiksCQkoSUVOICB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjFfREFUQTEqL1wKKwlNVVhfVkFMKENQKEVUS19EMl9FUzIpLAkJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RBVEEyKi9cCisJTVVYX1ZBTChDUChFVEtfRDNfRVMyKSwJCShJRU4gIHwgUFRVIHwgRElTIHwgTTMpKSAvKkhTVVNCMV9EQVRBNyovXAorCU1VWF9WQUwoQ1AoRVRLX0Q0X0VTMiksCQkoSUVOICB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjFfREFUQTQqL1wKKwlNVVhfVkFMKENQKEVUS19ENV9FUzIpLAkJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RBVEE1Ki9cCisJTVVYX1ZBTChDUChFVEtfRDZfRVMyKSwJCShJRU4gIHwgUFRVIHwgRElTIHwgTTMpKSAvKkhTVVNCMV9EQVRBNiovXAorCU1VWF9WQUwoQ1AoRVRLX0Q3X0VTMiksCQkoSUVOICB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjFfREFUQTMqL1wKKwlNVVhfVkFMKENQKEVUS19EOF9FUzIpLAkJKElFTiAgfCBQVFUgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RJUiovXAorCU1VWF9WQUwoQ1AoRVRLX0Q5X0VTMiksCQkoSUVOICB8IFBUVSB8IERJUyB8IE0zKSkgLypIU1VTQjFfTlhUKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDEpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDIpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDMpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ0Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDUpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ1Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDYpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ2Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDcpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ3Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDgpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ4Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDkpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ5Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDEwKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTAqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTEpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxMSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEyKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDEzKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTMqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxNSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE1Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDE2KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTYqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTcpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxOCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE4Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDE5KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTkqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjApLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIxKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDIyKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjIqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjMpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyNCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI0Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDI1KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjUqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjYpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyNiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyNyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI3Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDI4KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjgqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjkpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyOSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzMCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMwKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDMxKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzEqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzIpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzMiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMzKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDM0KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzQqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzUpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzNSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzNiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDM2Ki9cCisJTVVYX1ZBTChDUChEMkRfQ0xLMjZNSSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9jbGsyNm1pKi9cCisJTVVYX1ZBTChDUChEMkRfTlJFU1BXUk9OKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX25yZXNwd3JvbiovXAorCU1VWF9WQUwoQ1AoRDJEX05SRVNXQVJNKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qZDJkX25yZXN3YXJtICovXAorCU1VWF9WQUwoQ1AoRDJEX0FSTTlOSVJRKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2FybTluaXJxICovXAorCU1VWF9WQUwoQ1AoRDJEX1VNQTJQNkZJUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF91bWEycDZmaXEqL1wKKwlNVVhfVkFMKENQKEQyRF9TUElOVCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfc3BpbnQqL1wKKwlNVVhfVkFMKENQKEQyRF9GUklOVCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfZnJpbnQqL1wKKwlNVVhfVkFMKENQKEQyRF9ETUFSRVEwKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTAqL1wKKwlNVVhfVkFMKENQKEQyRF9ETUFSRVExKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTEqL1wKKwlNVVhfVkFMKENQKEQyRF9ETUFSRVEyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTIqL1wKKwlNVVhfVkFMKENQKEQyRF9ETUFSRVEzKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTMqL1wKKwlNVVhfVkFMKENQKEQyRF9OM0dUUlNUKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3Ryc3QqL1wKKwlNVVhfVkFMKENQKEQyRF9OM0dUREkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3RkaSovXAorCU1VWF9WQUwoQ1AoRDJEX04zR1RETyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndGRvKi9cCisJTVVYX1ZBTChDUChEMkRfTjNHVE1TKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0bXMqL1wKKwlNVVhfVkFMKENQKEQyRF9OM0dUQ0spLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3RjayovXAorCU1VWF9WQUwoQ1AoRDJEX04zR1JUQ0spLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNncnRjayovXAorCU1VWF9WQUwoQ1AoRDJEX01TVERCWSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypkMmRfbXN0ZGJ5Ki9cCisJTVVYX1ZBTChDUChEMkRfU1dBS0VVUCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9zd2FrZXVwKi9cCisJTVVYX1ZBTChDUChEMkRfSURMRVJFUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9pZGxlcmVxKi9cCisJTVVYX1ZBTChDUChEMkRfSURMRUFDSyksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKmQyZF9pZGxlYWNrKi9cCisJTVVYX1ZBTChDUChEMkRfTVdSSVRFKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9td3JpdGUqL1wKKwlNVVhfVkFMKENQKEQyRF9TV1JJVEUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX3N3cml0ZSovXAorCU1VWF9WQUwoQ1AoRDJEX01SRUFEKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9tcmVhZCovXAorCU1VWF9WQUwoQ1AoRDJEX1NSRUFEKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9zcmVhZCovXAorCU1VWF9WQUwoQ1AoRDJEX01CVVNGTEFHKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX21idXNmbGFnKi9cCisJTVVYX1ZBTChDUChEMkRfU0JVU0ZMQUcpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfc2J1c2ZsYWcqL1wKKwlNVVhfVkFMKENQKFNEUkNfQ0tFMCksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypzZHJjX2NrZTAqL1wKKwlNVVhfVkFMKENQKFNEUkNfQ0tFMSksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypzZHJjX2NrZTEqLwogCiAjZGVmaW5lIE1VWF9CRUFHTEVfQygpIFwKLSBNVVhfVkFMKENQKE1DQlNQM19EWCksCQkoSUVOIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQwKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDNfRFIpLAkJKElFTiB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0MiovXAotIE1VWF9WQUwoQ1AoTUNCU1AzX0NMS1gpLAkoSUVOIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQxKi9cCi0gTVVYX1ZBTChDUChVQVJUMl9DVFMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qVUFSVDJfQ1RTKi9cCi0gTVVYX1ZBTChDUChVQVJUMl9SVFMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDJfUlRTKi9cCi0gTVVYX1ZBTChDUChVQVJUMl9UWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUMl9UWCovCisJTVVYX1ZBTChDUChNQ0JTUDNfRFgpLAkJKElFTiB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0MCovXAorCU1VWF9WQUwoQ1AoTUNCU1AzX0RSKSwJCShJRU4gfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDIqL1wKKwlNVVhfVkFMKENQKE1DQlNQM19DTEtYKSwJKElFTiB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0MSovXAorCU1VWF9WQUwoQ1AoVUFSVDJfQ1RTKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKlVBUlQyX0NUUyovXAorCU1VWF9WQUwoQ1AoVUFSVDJfUlRTKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQyX1JUUyovXAorCU1VWF9WQUwoQ1AoVUFSVDJfVFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDJfVFgqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL3RpL2V2bS9ldm0uaCBiL2JvYXJkL3RpL2V2bS9ldm0uaAppbmRleCA0YTgyYTdmLi4zN2RhMjlkIDEwMDY0NAotLS0gYS9ib2FyZC90aS9ldm0vZXZtLmgKKysrIGIvYm9hcmQvdGkvZXZtL2V2bS5oCkBAIC00NywzNDcgKzQ3LDM0NyBAQAogICovCiAjZGVmaW5lIE1VWF9FVk0oKSBcCiAgLypTRFJDKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDMqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENCovXAotIE1VWF9WQUwoQ1AoU0RSQ19ENSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q1Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0Q2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDYqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q4Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0Q5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDkqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDEwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTIqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDEzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEzKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTUqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE2Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxNyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTgqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE5Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIyKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QyMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjQqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI1Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjcqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI4Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyOSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMzApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMzAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDMxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDMxKi9cCi0gTVVYX1ZBTChDUChTRFJDX0NMSyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0NMSyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EUVMwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRFFTMCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EUVMxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRFFTMSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EUVMyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRFFTMiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EUVMzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRFFTMyovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QwKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMiovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzKi9cCisJTVVYX1ZBTChDUChTRFJDX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDQqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENSovXAorCU1VWF9WQUwoQ1AoU0RSQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q2Ki9cCisJTVVYX1ZBTChDUChTRFJDX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDcqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EOCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q5Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTEqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEyKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMyovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTQqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE1Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNiovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTcqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE4Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxOSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIxKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMiovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjMqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI0Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QyNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjYqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI3Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QyOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyOCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjkqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDMwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDMwKi9cCisJTVVYX1ZBTChDUChTRFJDX0QzMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzMSovXAorCU1VWF9WQUwoQ1AoU0RSQ19DTEspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19DTEsqL1wKKwlNVVhfVkFMKENQKFNEUkNfRFFTMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRFFTMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzEqL1wKKwlNVVhfVkFMKENQKFNEUkNfRFFTMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzIqL1wKKwlNVVhfVkFMKENQKFNEUkNfRFFTMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzMqL1wKICAvKkdQTUMqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTEpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19BMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19BMiksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0EyKi9cCi0gTVVYX1ZBTChDUChHUE1DX0EzKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfQTMqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTQpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19BNCovXAotIE1VWF9WQUwoQ1AoR1BNQ19BNSksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0E1Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0E2KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfQTYqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTcpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19BNyovXAotIE1VWF9WQUwoQ1AoR1BNQ19BOCksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0E4Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0E5KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfQTkqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTEwKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfQTEwKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QwKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDAqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0QyKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDMqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19ENCovXAotIE1VWF9WQUwoQ1AoR1BNQ19ENSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0Q1Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0Q2KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDYqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDcpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19ENyovXAotIE1VWF9WQUwoQ1AoR1BNQ19EOCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0Q4Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0Q5KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDkqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEwKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDEwKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxMSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0QxMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EMTIqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDEzKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxNCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0QxNCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTUpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EMTUqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTMCksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzAqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTMSksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzEqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTMiksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzIqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTMyksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzMqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTNCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzQqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTNSksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzUqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25DUzYqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTNyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzcqL1wKLSBNVVhfVkFMKENQKEdQTUNfQ0xLKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfQ0xLKi9cCi0gTVVYX1ZBTChDUChHUE1DX05BRFZfQUxFKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uQURWX0FMRSovXAotIE1VWF9WQUwoQ1AoR1BNQ19OT0UpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uT0UqL1wKLSBNVVhfVkFMKENQKEdQTUNfTldFKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbldFKi9cCi0gTVVYX1ZBTChDUChHUE1DX05CRTBfQ0xFKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQkUwX0NMRSovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQkUxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkJFMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19OV1ApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uV1AqL1wKLSBNVVhfVkFMKENQKEdQTUNfV0FJVDApLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQwKi9cCi0gTVVYX1ZBTChDUChHUE1DX1dBSVQxKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19XQUlUMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fNjQqL1wKLQkJCQkJCQkgLyogLSBFVEhfblJFU0VUKi9cCi0gTVVYX1ZBTChDUChHUE1DX1dBSVQzKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19BMSksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0ExKi9cCisJTVVYX1ZBTChDUChHUE1DX0EyKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfQTIqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTMpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19BMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19BNCksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0E0Ki9cCisJTVVYX1ZBTChDUChHUE1DX0E1KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfQTUqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTYpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19BNiovXAorCU1VWF9WQUwoQ1AoR1BNQ19BNyksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0E3Ki9cCisJTVVYX1ZBTChDUChHUE1DX0E4KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfQTgqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTkpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19BOSovXAorCU1VWF9WQUwoQ1AoR1BNQ19BMTApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19BMTAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDApLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EMCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0QxKi9cCisJTVVYX1ZBTChDUChHUE1DX0QyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDIqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19ENCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0Q0Ki9cCisJTVVYX1ZBTChDUChHUE1DX0Q1KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDUqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDYpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19ENiovXAorCU1VWF9WQUwoQ1AoR1BNQ19ENyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0Q3Ki9cCisJTVVYX1ZBTChDUChHUE1DX0Q4KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDgqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDkpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EOSovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTApLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EMTAqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDExKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDExKi9cCisJTVVYX1ZBTChDUChHUE1DX0QxMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0QxMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19EMTMqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDE0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfRDE0Ki9cCisJTVVYX1ZBTChDUChHUE1DX0QxNSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX0QxNSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1MwKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMCovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1MxKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1MyKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1MzKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTNCovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M1KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTNSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfbkNTNiovXAorCU1VWF9WQUwoQ1AoR1BNQ19OQ1M3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTNyovXAorCU1VWF9WQUwoQ1AoR1BNQ19DTEspLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19DTEsqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkFEVl9BTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25BRFZfQUxFKi9cCisJTVVYX1ZBTChDUChHUE1DX05PRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25PRSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OV0UpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uV0UqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkJFMF9DTEUpLAkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25CRTBfQ0xFKi9cCisJTVVYX1ZBTChDUChHUE1DX05CRTEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQkUxKi9cCisJTVVYX1ZBTChDUChHUE1DX05XUCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25XUCovXAorCU1VWF9WQUwoQ1AoR1BNQ19XQUlUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQwKi9cCisJTVVYX1ZBTChDUChHUE1DX1dBSVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDEqL1wKKwlNVVhfVkFMKENQKEdQTUNfV0FJVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT182NCovXAorCQkJCQkJCQkgLyogLSBFVEhfblJFU0VUKi9cCisJTVVYX1ZBTChDUChHUE1DX1dBSVQzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDMqL1wKICAvKkRTUyovXAotIE1VWF9WQUwoQ1AoRFNTX1BDTEspLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX1BDTEsqL1wKLSBNVVhfVkFMKENQKERTU19IU1lOQyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfSFNZTkMqL1wKLSBNVVhfVkFMKENQKERTU19WU1lOQyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfVlNZTkMqL1wKLSBNVVhfVkFMKENQKERTU19BQ0JJQVMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0FDQklBUyovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEEwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEEyKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMiovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEEzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMyovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE1KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNiovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNyovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE4KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBOCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEE5KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBOSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExMCksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTAqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTEpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTExKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTEyKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExMiovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExMyksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTMqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTQpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE0Ki9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTE1KSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExNiksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTYqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTcpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE3Ki9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTE4KSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExOCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExOSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTkqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMjApLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIwKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTIxKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEEyMiksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjIqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMjMpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIzKi9cCisJTVVYX1ZBTChDUChEU1NfUENMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfUENMSyovXAorCU1VWF9WQUwoQ1AoRFNTX0hTWU5DKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19IU1lOQyovXAorCU1VWF9WQUwoQ1AoRFNTX1ZTWU5DKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19WU1lOQyovXAorCU1VWF9WQUwoQ1AoRFNTX0FDQklBUyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfQUNCSUFTKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTApLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEwKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEzKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTQpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE0Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE1Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTYpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE2Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTcpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE3Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE4Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTkpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEE5Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTEwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTAqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExMSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEyKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTEzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTMqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTQpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExNSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE1Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTE2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTYqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTcpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNyovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExOCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE4Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTE5KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTkqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMjApLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEyMSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIxKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTIyKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjIqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMjMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMyovXAogIC8qQ0FNRVJBKi9cCi0gTVVYX1ZBTChDUChDQU1fSFMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qQ0FNX0hTICovXAotIE1VWF9WQUwoQ1AoQ0FNX1ZTKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkNBTV9WUyAqL1wKLSBNVVhfVkFMKENQKENBTV9YQ0xLQSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fWENMS0EqL1wKLSBNVVhfVkFMKENQKENBTV9QQ0xLKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkNBTV9QQ0xLKi9cCi0gTVVYX1ZBTChDUChDQU1fRkxEKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fOTgqL1wKLQkJCQkJCQkgLyogLSBDQU1fUkVTRVQqL1wKLSBNVVhfVkFMKENQKENBTV9EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDAqL1wKLSBNVVhfVkFMKENQKENBTV9EMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDEqL1wKLSBNVVhfVkFMKENQKENBTV9EMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDIqL1wKLSBNVVhfVkFMKENQKENBTV9EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDMqL1wKLSBNVVhfVkFMKENQKENBTV9ENCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDQqL1wKLSBNVVhfVkFMKENQKENBTV9ENSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDUqL1wKLSBNVVhfVkFMKENQKENBTV9ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDYqL1wKLSBNVVhfVkFMKENQKENBTV9ENyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDcqL1wKLSBNVVhfVkFMKENQKENBTV9EOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDgqL1wKLSBNVVhfVkFMKENQKENBTV9EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDkqL1wKLSBNVVhfVkFMKENQKENBTV9EMTApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QxMCovXAotIE1VWF9WQUwoQ1AoQ0FNX0QxMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDExKi9cCi0gTVVYX1ZBTChDUChDQU1fWENMS0IpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX1hDTEtCKi9cCi0gTVVYX1ZBTChDUChDQU1fV0VOKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTY3Ki9cCi0gTVVYX1ZBTChDUChDQU1fU1RST0JFKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX1NUUk9CRSovXAotIE1VWF9WQUwoQ1AoQ1NJMl9EWDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ1NJMl9EWDAqL1wKLSBNVVhfVkFMKENQKENTSTJfRFkwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNTSTJfRFkwKi9cCi0gTVVYX1ZBTChDUChDU0kyX0RYMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDU0kyX0RYMSovXAotIE1VWF9WQUwoQ1AoQ1NJMl9EWTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ1NJMl9EWTEqL1wKKwlNVVhfVkFMKENQKENBTV9IUyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypDQU1fSFMgKi9cCisJTVVYX1ZBTChDUChDQU1fVlMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qQ0FNX1ZTICovXAorCU1VWF9WQUwoQ1AoQ0FNX1hDTEtBKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9YQ0xLQSovXAorCU1VWF9WQUwoQ1AoQ0FNX1BDTEspLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qQ0FNX1BDTEsqL1wKKwlNVVhfVkFMKENQKENBTV9GTEQpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT185OCovXAorCQkJCQkJCQkgLyogLSBDQU1fUkVTRVQqL1wKKwlNVVhfVkFMKENQKENBTV9EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDAqL1wKKwlNVVhfVkFMKENQKENBTV9EMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDEqL1wKKwlNVVhfVkFMKENQKENBTV9EMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDIqL1wKKwlNVVhfVkFMKENQKENBTV9EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDMqL1wKKwlNVVhfVkFMKENQKENBTV9ENCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDQqL1wKKwlNVVhfVkFMKENQKENBTV9ENSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDUqL1wKKwlNVVhfVkFMKENQKENBTV9ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDYqL1wKKwlNVVhfVkFMKENQKENBTV9ENyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDcqL1wKKwlNVVhfVkFMKENQKENBTV9EOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDgqL1wKKwlNVVhfVkFMKENQKENBTV9EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDkqL1wKKwlNVVhfVkFMKENQKENBTV9EMTApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QxMCovXAorCU1VWF9WQUwoQ1AoQ0FNX0QxMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDExKi9cCisJTVVYX1ZBTChDUChDQU1fWENMS0IpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX1hDTEtCKi9cCisJTVVYX1ZBTChDUChDQU1fV0VOKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTY3Ki9cCisJTVVYX1ZBTChDUChDQU1fU1RST0JFKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9TVFJPQkUqL1wKKwlNVVhfVkFMKENQKENTSTJfRFgwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNTSTJfRFgwKi9cCisJTVVYX1ZBTChDUChDU0kyX0RZMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDU0kyX0RZMCovXAorCU1VWF9WQUwoQ1AoQ1NJMl9EWDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ1NJMl9EWDEqL1wKKwlNVVhfVkFMKENQKENTSTJfRFkxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNTSTJfRFkxKi9cCiAgLypBdWRpbyBJbnRlcmZhY2UgKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDJfRlNYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0ZTWCovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0NMS1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDJfQ0xLWCovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0RSKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9EUiovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9EWCovXAorCU1VWF9WQUwoQ1AoTUNCU1AyX0ZTWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDJfRlNYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9DTEtYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfRFIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0RSKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfRFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0RYKi9cCiAgLypFeHBhbnNpb24gY2FyZCAgKi9cCi0gTVVYX1ZBTChDUChNTUMxX0NMSyksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0NMSyovXAotIE1VWF9WQUwoQ1AoTU1DMV9DTUQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9DTUQqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDAqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUMSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDEqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDIqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUMyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDMqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUNCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDQqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUNSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDUqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUNiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDYqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUNyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDcqL1wKKwlNVVhfVkFMKENQKE1NQzFfQ0xLKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfQ0xLKi9cCisJTVVYX1ZBTChDUChNTUMxX0NNRCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0NNRCovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQwKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMCovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMSovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMiovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMyovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQ0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNCovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQ1KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNSovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQ2KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNiovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQ3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNyovXAogIC8qV2lyZWxlc3MgTEFOICovXAotIE1VWF9WQUwoQ1AoTU1DMl9DTEspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTU1DMl9DTEsqL1wKLSBNVVhfVkFMKENQKE1NQzJfQ01EKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzJfQ01EKi9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDApLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMl9EQVQwKi9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMl9EQVQxKi9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMl9EQVQyKi9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMl9EQVQzKi9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDQpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTU1DMl9EQVQ0Ki9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTU1DMl9EQVQ1Ki9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDYpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTU1DMl9EQVQ2ICovXAotIE1VWF9WQUwoQ1AoTU1DMl9EQVQ3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzJfREFUNyovXAorCU1VWF9WQUwoQ1AoTU1DMl9DTEspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTU1DMl9DTEsqL1wKKwlNVVhfVkFMKENQKE1NQzJfQ01EKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzJfQ01EKi9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDApLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMl9EQVQwKi9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMl9EQVQxKi9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMl9EQVQyKi9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMl9EQVQzKi9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDQpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTU1DMl9EQVQ0Ki9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTU1DMl9EQVQ1Ki9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDYpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTU1DMl9EQVQ2ICovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQ3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzJfREFUNyovXAogIC8qQmx1ZXRvb3RoKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDNfRFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AzX0RYKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDNfRFIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AzX0RSKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDNfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQM19DTEtYICAqL1wKLSBNVVhfVkFMKENQKE1DQlNQM19GU1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDNfRlNYKi9cCi0gTVVYX1ZBTChDUChVQVJUMl9DVFMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qVUFSVDJfQ1RTKi9cCi0gTVVYX1ZBTChDUChVQVJUMl9SVFMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDJfUlRTKi9cCi0gTVVYX1ZBTChDUChVQVJUMl9UWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUMl9UWCovXAotIE1VWF9WQUwoQ1AoVUFSVDJfUlgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDJfUlgqL1wKKwlNVVhfVkFMKENQKE1DQlNQM19EWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDNfRFgqL1wKKwlNVVhfVkFMKENQKE1DQlNQM19EUiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDNfRFIqL1wKKwlNVVhfVkFMKENQKE1DQlNQM19DTEtYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AzX0NMS1ggICovXAorCU1VWF9WQUwoQ1AoTUNCU1AzX0ZTWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDNfRlNYKi9cCisJTVVYX1ZBTChDUChVQVJUMl9DVFMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qVUFSVDJfQ1RTKi9cCisJTVVYX1ZBTChDUChVQVJUMl9SVFMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDJfUlRTKi9cCisJTVVYX1ZBTChDUChVQVJUMl9UWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUMl9UWCovXAorCU1VWF9WQUwoQ1AoVUFSVDJfUlgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDJfUlgqL1wKICAvKk1vZGVtIEludGVyZmFjZSAqL1wKLSBNVVhfVkFMKENQKFVBUlQxX1RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQxX1RYKi9cCi0gTVVYX1ZBTChDUChVQVJUMV9SVFMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDFfUlRTKi9cCi0gTVVYX1ZBTChDUChVQVJUMV9DVFMpLAkJKElFTiAgfCBQVFUgfCBESVMgfCBNMCkpIC8qVUFSVDFfQ1RTKi9cCi0gTVVYX1ZBTChDUChVQVJUMV9SWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUMV9SWCovXAotIE1VWF9WQUwoQ1AoTUNCU1A0X0NMS1gpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1MiovXAotCQkJCQkJCSAvKiAtIExDRF9JTkkqL1wKLSBNVVhfVkFMKENQKE1DQlNQNF9EUiksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1MyovXAotCQkJCQkJCSAvKiAtIExDRF9FTlZERCAqL1wKLSBNVVhfVkFMKENQKE1DQlNQNF9EWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1NCovXAotCQkJCQkJCSAvKiAtIExDRF9RVkdBL25WR0EgKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDRfRlNYKSwJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNTUqL1wKLQkJCQkJCQkgLyogLSBMQ0RfUkVTQiAqL1wKLSBNVVhfVkFMKENQKE1DQlNQMV9DTEtSKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTUNCU1AxX0NMS1IgICovXAotIE1VWF9WQUwoQ1AoTUNCU1AxX0ZTUiksCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1DQlNQMV9GU1IqL1wKLSBNVVhfVkFMKENQKE1DQlNQMV9EWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypNQ0JTUDFfRFgqL1wKLSBNVVhfVkFMKENQKE1DQlNQMV9EUiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNQ0JTUDFfRFIqL1wKLSBNVVhfVkFMKENQKE1DQlNQX0NMS1MpLAkoSUVOICB8IFBUVSB8IERJUyB8IE0wKSkgLypNQ0JTUF9DTEtTICAqL1wKLSBNVVhfVkFMKENQKE1DQlNQMV9GU1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNQ0JTUDFfRlNYKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDFfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1DQlNQMV9DTEtYICAqL1wKKwlNVVhfVkFMKENQKFVBUlQxX1RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQxX1RYKi9cCisJTVVYX1ZBTChDUChVQVJUMV9SVFMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDFfUlRTKi9cCisJTVVYX1ZBTChDUChVQVJUMV9DVFMpLAkJKElFTiAgfCBQVFUgfCBESVMgfCBNMCkpIC8qVUFSVDFfQ1RTKi9cCisJTVVYX1ZBTChDUChVQVJUMV9SWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUMV9SWCovXAorCU1VWF9WQUwoQ1AoTUNCU1A0X0NMS1gpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1MiovXAorCQkJCQkJCQkgLyogLSBMQ0RfSU5JKi9cCisJTVVYX1ZBTChDUChNQ0JTUDRfRFIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNTMqL1wKKwkJCQkJCQkJIC8qIC0gTENEX0VOVkREICovXAorCU1VWF9WQUwoQ1AoTUNCU1A0X0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTU0Ki9cCisJCQkJCQkJCSAvKiAtIExDRF9RVkdBL25WR0EgKi9cCisJTVVYX1ZBTChDUChNQ0JTUDRfRlNYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTU1Ki9cCisJCQkJCQkJCSAvKiAtIExDRF9SRVNCICovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0NMS1IpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNQ0JTUDFfQ0xLUiAgKi9cCisJTVVYX1ZBTChDUChNQ0JTUDFfRlNSKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1DQlNQMV9GU1IqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9EWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypNQ0JTUDFfRFgqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9EUiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNQ0JTUDFfRFIqL1wKKwlNVVhfVkFMKENQKE1DQlNQX0NMS1MpLAkJKElFTiAgfCBQVFUgfCBESVMgfCBNMCkpIC8qTUNCU1BfQ0xLUyAgKi9cCisJTVVYX1ZBTChDUChNQ0JTUDFfRlNYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1DQlNQMV9GU1gqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9DTEtYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTUNCU1AxX0NMS1ggICovXAogIC8qU2VyaWFsIEludGVyZmFjZSovXAotIE1VWF9WQUwoQ1AoVUFSVDNfQ1RTX1JDVFgpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypVQVJUM19DVFNfKi9cCi0JCQkJCQkJIC8qIFJDVFgqL1wKLSBNVVhfVkFMKENQKFVBUlQzX1JUU19TRCksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQzX1JUU19TRCAqL1wKLSBNVVhfVkFMKENQKFVBUlQzX1JYX0lSUlgpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUM19SWF9JUlJYKi9cCi0gTVVYX1ZBTChDUChVQVJUM19UWF9JUlRYKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDNfVFhfSVJUWCovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0NMSyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9DTEsqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9TVFApLAkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypIU1VTQjBfU1RQKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfRElSKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RJUiovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX05YVCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9OWFQqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBMCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMCovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEExKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEExKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTIqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBMyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMyovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE0KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE0Ki9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTUpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTUqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBNiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNiovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE3KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE3Ki9cCi0gTVVYX1ZBTChDUChJMkMxX1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMxX1NDTCovXAotIE1VWF9WQUwoQ1AoSTJDMV9TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDMV9TREEqL1wKLSBNVVhfVkFMKENQKEkyQzJfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzJfU0NMKi9cCi0gTVVYX1ZBTChDUChJMkMyX1NEQSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMyX1NEQSovXAotIE1VWF9WQUwoQ1AoSTJDM19TQ0wpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDM19TQ0wqL1wKLSBNVVhfVkFMKENQKEkyQzNfU0RBKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzNfU0RBKi9cCi0gTVVYX1ZBTChDUChJMkM0X1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkM0X1NDTCovXAotIE1VWF9WQUwoQ1AoSTJDNF9TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDNF9TREEqL1wKLSBNVVhfVkFMKENQKEhEUV9TSU8pLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSERRX1NJTyovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX0NMSyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jU1BJMV9DTEsqL1wKLSBNVVhfVkFMKENQKE1DU1BJMV9TSU1PKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNTUEkxX1NJTU8gICovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX1NPTUkpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY1NQSTFfU09NSSAgKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfQ1MwKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qTWNTUEkxX0NTMCovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX0NTMSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTc1Ki9cCi0JCQkJCQkJIC8qIFRTX1BFTl9JUlEgKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfQ1MyKSwJKElFTiAgfCBQVFUgfCBESVMgfCBNNCkpIC8qR1BJT18xNzYqL1wKLQkJCQkJCQkgLyogLSBMQU5fSU5UUiovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX0NTMyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKk1jU1BJMV9DUzMqL1wKLSBNVVhfVkFMKENQKE1DU1BJMl9DTEspLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY1NQSTJfQ0xLKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTJfU0lNTyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jU1BJMl9TSU1PKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTJfU09NSSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jU1BJMl9TT01JKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTJfQ1MwKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qTWNTUEkyX0NTMCovXAotIE1VWF9WQUwoQ1AoTUNTUEkyX0NTMSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKk1jU1BJMl9DUzEqL1wKKwlNVVhfVkFMKENQKFVBUlQzX0NUU19SQ1RYKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qVUFSVDNfQ1RTXyovXAorCQkJCQkJCQkgLyogUkNUWCovXAorCU1VWF9WQUwoQ1AoVUFSVDNfUlRTX1NEKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDNfUlRTX1NEICovXAorCU1VWF9WQUwoQ1AoVUFSVDNfUlhfSVJSWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQzX1JYX0lSUlgqL1wKKwlNVVhfVkFMKENQKFVBUlQzX1RYX0lSVFgpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUM19UWF9JUlRYKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfQ0xLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9DTEsqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9TVFApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSFNVU0IwX1NUUCovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RJUiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfRElSKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfTlhUKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9OWFQqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBMCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMCovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEExKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEExKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTIqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBMyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMyovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE0KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE0Ki9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTUpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTUqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBNiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNiovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE3KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE3Ki9cCisJTVVYX1ZBTChDUChJMkMxX1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMxX1NDTCovXAorCU1VWF9WQUwoQ1AoSTJDMV9TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDMV9TREEqL1wKKwlNVVhfVkFMKENQKEkyQzJfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzJfU0NMKi9cCisJTVVYX1ZBTChDUChJMkMyX1NEQSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMyX1NEQSovXAorCU1VWF9WQUwoQ1AoSTJDM19TQ0wpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDM19TQ0wqL1wKKwlNVVhfVkFMKENQKEkyQzNfU0RBKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzNfU0RBKi9cCisJTVVYX1ZBTChDUChJMkM0X1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkM0X1NDTCovXAorCU1VWF9WQUwoQ1AoSTJDNF9TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDNF9TREEqL1wKKwlNVVhfVkFMKENQKEhEUV9TSU8pLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSERRX1NJTyovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX0NMSyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY1NQSTFfQ0xLKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfU0lNTyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jU1BJMV9TSU1PICAqL1wKKwlNVVhfVkFMKENQKE1DU1BJMV9TT01JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNTUEkxX1NPTUkgICovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX0NTMCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypNY1NQSTFfQ1MwKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfQ1MxKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTc1Ki9cCisJCQkJCQkJCSAvKiBUU19QRU5fSVJRICovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX0NTMiksCQkoSUVOICB8IFBUVSB8IERJUyB8IE00KSkgLypHUElPXzE3NiovXAorCQkJCQkJCQkgLyogLSBMQU5fSU5UUiovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX0NTMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypNY1NQSTFfQ1MzKi9cCisJTVVYX1ZBTChDUChNQ1NQSTJfQ0xLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jU1BJMl9DTEsqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9TSU1PKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNTUEkyX1NJTU8qL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9TT01JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNTUEkyX1NPTUkqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9DUzApLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qTWNTUEkyX0NTMCovXAorCU1VWF9WQUwoQ1AoTUNTUEkyX0NTMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypNY1NQSTJfQ1MxKi9cCiAgLypDb250cm9sIGFuZCBkZWJ1ZyAqL1wKLSBNVVhfVkFMKENQKFNZU18zMkspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTXzMySyovXAotIE1VWF9WQUwoQ1AoU1lTX0NMS1JFUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNZU19DTEtSRVEqL1wKLSBNVVhfVkFMKENQKFNZU19OSVJRKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKlNZU19uSVJRKi9cCi0gTVVYX1ZBTChDUChTWVNfQk9PVDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18yKi9cCi0JCQkJCQkJIC8qIC0gUEVOX0lSUSAqL1wKLSBNVVhfVkFMKENQKFNZU19CT09UMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzMgKi9cCi0gTVVYX1ZBTChDUChTWVNfQk9PVDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT180Ki9cCi0gTVVYX1ZBTChDUChTWVNfQk9PVDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT181Ki9cCi0gTVVYX1ZBTChDUChTWVNfQk9PVDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT182Ki9cCi0gTVVYX1ZBTChDUChTWVNfQk9PVDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT183Ki9cCi0gTVVYX1ZBTChDUChTWVNfQk9PVDYpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT184Ki9cCi0JCQkJCQkJIC8qIC0gVklPXzFWOCovXAotIE1VWF9WQUwoQ1AoU1lTX09GRl9NT0RFKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTX09GRl9NT0RFKi9cCi0gTVVYX1ZBTChDUChTWVNfQ0xLT1VUMSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNZU19DTEtPVVQxKi9cCi0gTVVYX1ZBTChDUChTWVNfQ0xLT1VUMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKlNZU19DTEtPVVQyKi9cCi0gTVVYX1ZBTChDUChKVEFHX25UUlNUKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSlRBR19uVFJTVCovXAotIE1VWF9WQUwoQ1AoSlRBR19UQ0spLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSlRBR19UQ0sqL1wKLSBNVVhfVkFMKENQKEpUQUdfVE1TKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkpUQUdfVE1TKi9cCi0gTVVYX1ZBTChDUChKVEFHX1RESSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypKVEFHX1RESSovXAotIE1VWF9WQUwoQ1AoSlRBR19FTVUwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkpUQUdfRU1VMCovXAotIE1VWF9WQUwoQ1AoSlRBR19FTVUxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkpUQUdfRU1VMSovXAotIE1VWF9WQUwoQ1AoRVRLX0NMS19FUzIpLAkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypFVEtfQ0xLKi9cCi0gTVVYX1ZBTChDUChFVEtfQ1RMX0VTMiksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkVUS19DVEwqL1wKLSBNVVhfVkFMKENQKEVUS19EMF9FUzIgKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0QwKi9cCi0gTVVYX1ZBTChDUChFVEtfRDFfRVMyICksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkVUS19EMSovXAotIE1VWF9WQUwoQ1AoRVRLX0QyX0VTMiApLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypFVEtfRDIqL1wKLSBNVVhfVkFMKENQKEVUS19EM19FUzIgKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0QzKi9cCi0gTVVYX1ZBTChDUChFVEtfRDRfRVMyICksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkVUS19ENCovXAotIE1VWF9WQUwoQ1AoRVRLX0Q1X0VTMiApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypFVEtfRDUqL1wKLSBNVVhfVkFMKENQKEVUS19ENl9FUzIgKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0Q2Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDdfRVMyICksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkVUS19ENyovXAotIE1VWF9WQUwoQ1AoRVRLX0Q4X0VTMiApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypFVEtfRDgqL1wKLSBNVVhfVkFMKENQKEVUS19EOV9FUzIgKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0Q5Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDEwX0VTMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkVUS19EMTAqL1wKLSBNVVhfVkFMKENQKEVUS19EMTFfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0QxMSovXAotIE1VWF9WQUwoQ1AoRVRLX0QxMl9FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypFVEtfRDEyKi9cCi0gTVVYX1ZBTChDUChFVEtfRDEzX0VTMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkVUS19EMTMqL1wKLSBNVVhfVkFMKENQKEVUS19EMTRfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0QxNCovXAotIE1VWF9WQUwoQ1AoRVRLX0QxNV9FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypFVEtfRDE1Ki9cCisJTVVYX1ZBTChDUChTWVNfMzJLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNZU18zMksqL1wKKwlNVVhfVkFMKENQKFNZU19DTEtSRVEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTX0NMS1JFUSovXAorCU1VWF9WQUwoQ1AoU1lTX05JUlEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qU1lTX25JUlEqL1wKKwlNVVhfVkFMKENQKFNZU19CT09UMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzIqL1wKKwkJCQkJCQkJIC8qIC0gUEVOX0lSUSAqL1wKKwlNVVhfVkFMKENQKFNZU19CT09UMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzMgKi9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT180Ki9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT181Ki9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT182Ki9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT183Ki9cCisJTVVYX1ZBTChDUChTWVNfQk9PVDYpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT184Ki9cCisJCQkJCQkJCSAvKiAtIFZJT18xVjgqL1wKKwlNVVhfVkFMKENQKFNZU19PRkZfTU9ERSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNZU19PRkZfTU9ERSovXAorCU1VWF9WQUwoQ1AoU1lTX0NMS09VVDEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfQ0xLT1VUMSovXAorCU1VWF9WQUwoQ1AoU1lTX0NMS09VVDIpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypTWVNfQ0xLT1VUMiovXAorCU1VWF9WQUwoQ1AoSlRBR19uVFJTVCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypKVEFHX25UUlNUKi9cCisJTVVYX1ZBTChDUChKVEFHX1RDSyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypKVEFHX1RDSyovXAorCU1VWF9WQUwoQ1AoSlRBR19UTVMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSlRBR19UTVMqL1wKKwlNVVhfVkFMKENQKEpUQUdfVERJKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkpUQUdfVERJKi9cCisJTVVYX1ZBTChDUChKVEFHX0VNVTApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSlRBR19FTVUwKi9cCisJTVVYX1ZBTChDUChKVEFHX0VNVTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSlRBR19FTVUxKi9cCisJTVVYX1ZBTChDUChFVEtfQ0xLX0VTMiksCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkVUS19DTEsqL1wKKwlNVVhfVkFMKENQKEVUS19DVExfRVMyKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0NUTCovXAorCU1VWF9WQUwoQ1AoRVRLX0QwX0VTMiApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypFVEtfRDAqL1wKKwlNVVhfVkFMKENQKEVUS19EMV9FUzIgKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0QxKi9cCisJTVVYX1ZBTChDUChFVEtfRDJfRVMyICksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkVUS19EMiovXAorCU1VWF9WQUwoQ1AoRVRLX0QzX0VTMiApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypFVEtfRDMqL1wKKwlNVVhfVkFMKENQKEVUS19ENF9FUzIgKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0Q0Ki9cCisJTVVYX1ZBTChDUChFVEtfRDVfRVMyICksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkVUS19ENSovXAorCU1VWF9WQUwoQ1AoRVRLX0Q2X0VTMiApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypFVEtfRDYqL1wKKwlNVVhfVkFMKENQKEVUS19EN19FUzIgKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0Q3Ki9cCisJTVVYX1ZBTChDUChFVEtfRDhfRVMyICksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkVUS19EOCovXAorCU1VWF9WQUwoQ1AoRVRLX0Q5X0VTMiApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypFVEtfRDkqL1wKKwlNVVhfVkFMKENQKEVUS19EMTBfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0QxMCovXAorCU1VWF9WQUwoQ1AoRVRLX0QxMV9FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypFVEtfRDExKi9cCisJTVVYX1ZBTChDUChFVEtfRDEyX0VTMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkVUS19EMTIqL1wKKwlNVVhfVkFMKENQKEVUS19EMTNfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRVRLX0QxMyovXAorCU1VWF9WQUwoQ1AoRVRLX0QxNF9FUzIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypFVEtfRDE0Ki9cCisJTVVYX1ZBTChDUChFVEtfRDE1X0VTMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkVUS19EMTUqL1wKICAvKkRpZSB0byBEaWUgKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDEpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDIpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDMpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ0Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDUpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ1Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDYpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ2Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDcpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ3Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDgpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ4Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDkpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQ5Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDEwKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxMCovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxMSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTEqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTIpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEyKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDEzKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxMyovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxNCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTUpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE1Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDE2KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNiovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxNyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTcqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTgpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE4Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDE5KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxOSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyMCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjAqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjEpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIxKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDIyKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMiovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyMyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjMqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjQpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI0Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDI1KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyNSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyNiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjYqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjcpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI3Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDI4KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyOCovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyOSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjkqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMzApLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMwKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDMxKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzMSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzMiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzIqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMzMpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMzKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDM0KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzNCovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzNSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzUqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMzYpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDM2Ki9cCi0gTVVYX1ZBTChDUChEMkRfQ0xLMjZNSSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9jbGsyNm1pKi9cCi0gTVVYX1ZBTChDUChEMkRfTlJFU1BXUk9OKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX25yZXNwd3JvbiovXAotIE1VWF9WQUwoQ1AoRDJEX05SRVNXQVJNKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qZDJkX25yZXN3YXJtICovXAotIE1VWF9WQUwoQ1AoRDJEX0FSTTlOSVJRKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2FybTluaXJxICovXAotIE1VWF9WQUwoQ1AoRDJEX1VNQTJQNkZJUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF91bWEycDZmaXEqL1wKLSBNVVhfVkFMKENQKEQyRF9TUElOVCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfc3BpbnQqL1wKLSBNVVhfVkFMKENQKEQyRF9GUklOVCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfZnJpbnQqL1wKLSBNVVhfVkFMKENQKEQyRF9ETUFSRVEwKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTAqL1wKLSBNVVhfVkFMKENQKEQyRF9ETUFSRVExKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTEqL1wKLSBNVVhfVkFMKENQKEQyRF9ETUFSRVEyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTIqL1wKLSBNVVhfVkFMKENQKEQyRF9ETUFSRVEzKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX2RtYXJlcTMqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dUUlNUKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3Ryc3QqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dUREkpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndGRpKi9cCi0gTVVYX1ZBTChDUChEMkRfTjNHVERPKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3RkbyovXAotIE1VWF9WQUwoQ1AoRDJEX04zR1RNUyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0bXMqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dUQ0spLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndGNrKi9cCi0gTVVYX1ZBTChDUChEMkRfTjNHUlRDSyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2dydGNrKi9cCi0gTVVYX1ZBTChDUChEMkRfTVNUREJZKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qZDJkX21zdGRieSovXAotIE1VWF9WQUwoQ1AoRDJEX1NXQUtFVVApLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfc3dha2V1cCovXAotIE1VWF9WQUwoQ1AoRDJEX0lETEVSRVEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfaWRsZXJlcSovXAotIE1VWF9WQUwoQ1AoRDJEX0lETEVBQ0spLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypkMmRfaWRsZWFjayovXAotIE1VWF9WQUwoQ1AoRDJEX01XUklURSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9td3JpdGUqL1wKLSBNVVhfVkFMKENQKEQyRF9TV1JJVEUpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfc3dyaXRlKi9cCi0gTVVYX1ZBTChDUChEMkRfTVJFQUQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX21yZWFkKi9cCi0gTVVYX1ZBTChDUChEMkRfU1JFQUQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX3NyZWFkKi9cCi0gTVVYX1ZBTChDUChEMkRfTUJVU0ZMQUcpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbWJ1c2ZsYWcqL1wKLSBNVVhfVkFMKENQKEQyRF9TQlVTRkxBRyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9zYnVzZmxhZyovXAotIE1VWF9WQUwoQ1AoU0RSQ19DS0UwKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKnNkcmNfY2tlMCovXAotIE1VWF9WQUwoQ1AoU0RSQ19DS0UxKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTcpKSAvKnNkcmNfY2tlMSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ0KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkNCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ1KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkNSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ2KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkNiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ3KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkNyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ4KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkOCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ5KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkOSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxMCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEwKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDExKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTEqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTIpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxMiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDEzKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDE0KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTQqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTUpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxNSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxNiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE2Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDE3KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMTcqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTgpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQxOCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxOSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDE5Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDIwKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjAqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjEpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyMSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDIyKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDIzKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjMqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyNCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyNSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI1Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDI2KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjYqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjcpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQyNyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyOCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDI4Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDI5KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMjkqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzApLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzMCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDMxKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDMyKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzIqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzMpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzMyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzNCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfbWNhZDM0Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDM1KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9tY2FkMzUqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzYpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX21jYWQzNiovXAorCU1VWF9WQUwoQ1AoRDJEX0NMSzI2TUkpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfY2xrMjZtaSovXAorCU1VWF9WQUwoQ1AoRDJEX05SRVNQV1JPTiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKmQyZF9ucmVzcHdyb24qL1wKKwlNVVhfVkFMKENQKEQyRF9OUkVTV0FSTSksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKmQyZF9ucmVzd2FybSAqL1wKKwlNVVhfVkFMKENQKEQyRF9BUk05TklSUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9hcm05bmlycSAqL1wKKwlNVVhfVkFMKENQKEQyRF9VTUEyUDZGSVEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfdW1hMnA2ZmlxKi9cCisJTVVYX1ZBTChDUChEMkRfU1BJTlQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX3NwaW50Ki9cCisJTVVYX1ZBTChDUChEMkRfRlJJTlQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qZDJkX2ZyaW50Ki9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9kbWFyZXEwKi9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9kbWFyZXExKi9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9kbWFyZXEyKi9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9kbWFyZXEzKi9cCisJTVVYX1ZBTChDUChEMkRfTjNHVFJTVCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0cnN0Ki9cCisJTVVYX1ZBTChDUChEMkRfTjNHVERJKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0ZGkqL1wKKwlNVVhfVkFMKENQKEQyRF9OM0dURE8pLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3RkbyovXAorCU1VWF9WQUwoQ1AoRDJEX04zR1RNUyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbjNndG1zKi9cCisJTVVYX1ZBTChDUChEMkRfTjNHVENLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9uM2d0Y2sqL1wKKwlNVVhfVkFMKENQKEQyRF9OM0dSVENLKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX24zZ3J0Y2sqL1wKKwlNVVhfVkFMKENQKEQyRF9NU1REQlkpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qZDJkX21zdGRieSovXAorCU1VWF9WQUwoQ1AoRDJEX1NXQUtFVVApLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypkMmRfc3dha2V1cCovXAorCU1VWF9WQUwoQ1AoRDJEX0lETEVSRVEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfaWRsZXJlcSovXAorCU1VWF9WQUwoQ1AoRDJEX0lETEVBQ0spLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypkMmRfaWRsZWFjayovXAorCU1VWF9WQUwoQ1AoRDJEX01XUklURSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbXdyaXRlKi9cCisJTVVYX1ZBTChDUChEMkRfU1dSSVRFKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9zd3JpdGUqL1wKKwlNVVhfVkFMKENQKEQyRF9NUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfbXJlYWQqL1wKKwlNVVhfVkFMKENQKEQyRF9TUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypkMmRfc3JlYWQqL1wKKwlNVVhfVkFMKENQKEQyRF9NQlVTRkxBRyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKmQyZF9tYnVzZmxhZyovXAorCU1VWF9WQUwoQ1AoRDJEX1NCVVNGTEFHKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qZDJkX3NidXNmbGFnKi9cCisJTVVYX1ZBTChDUChTRFJDX0NLRTApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qc2RyY19ja2UwKi9cCisJTVVYX1ZBTChDUChTRFJDX0NLRTEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNykpIC8qc2RyY19ja2UxKi9cCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvdGltbGwvZGV2a2l0ODAwMC9kZXZraXQ4MDAwLmggYi9ib2FyZC90aW1sbC9kZXZraXQ4MDAwL2RldmtpdDgwMDAuaAppbmRleCA2ZmNjNzVhLi5hYTY5ZTZjIDEwMDY0NAotLS0gYS9ib2FyZC90aW1sbC9kZXZraXQ4MDAwL2RldmtpdDgwMDAuaAorKysgYi9ib2FyZC90aW1sbC9kZXZraXQ4MDAwL2RldmtpdDgwMDAuaApAQCAtNDUsMzI5ICs0NSwzMjkgQEAKIAogI2RlZmluZSBNVVhfREVWS0lUODAwMCgpIFwKICAvKiBTRFJDICovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzKi9cCi0gTVVYX1ZBTChDUChTRFJDX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDQqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENSovXAotIE1VWF9WQUwoQ1AoU0RSQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q2Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDcqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EOCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q5Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDEyKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMyovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTQqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE1Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxNiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMTcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTcqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDE4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE4Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QxOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxOSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDIxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIxKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QyMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMiovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjMqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI0Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNSovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjYqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDI3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI3Ki9cCi0gTVVYX1ZBTChDUChTRFJDX0QyOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyOCovXAotIE1VWF9WQUwoQ1AoU0RSQ19EMjkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjkqL1wKLSBNVVhfVkFMKENQKFNEUkNfRDMwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDMwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0QzMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzMSovXAotIE1VWF9WQUwoQ1AoU0RSQ19DTEspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19DTEsqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzAqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzEqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzIqL1wKLSBNVVhfVkFMKENQKFNEUkNfRFFTMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0RRUzMqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMyovXAorCU1VWF9WQUwoQ1AoU0RSQ19ENCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q0Ki9cCisJTVVYX1ZBTChDUChTRFJDX0Q1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDUqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19ENiovXAorCU1VWF9WQUwoQ1AoU0RSQ19ENyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0Q3Ki9cCisJTVVYX1ZBTChDUChTRFJDX0Q4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDgqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EOSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTAqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDExKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDExKi9cCisJTVVYX1ZBTChDUChTRFJDX0QxMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxMiovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTMqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE0Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxNSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTYpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTYqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDE3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDE3Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QxOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QxOCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMTkpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMTkqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIwKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyMSovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjIqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDIzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDIzKi9cCisJTVVYX1ZBTChDUChTRFJDX0QyNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjUqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI2Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QyNyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QyNyovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMjgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMjgqL1wKKwlNVVhfVkFMKENQKFNEUkNfRDI5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfRDI5Ki9cCisJTVVYX1ZBTChDUChTRFJDX0QzMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTRFJDX0QzMCovXAorCU1VWF9WQUwoQ1AoU0RSQ19EMzEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EMzEqL1wKKwlNVVhfVkFMKENQKFNEUkNfQ0xLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNEUkNfQ0xLKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMwKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMxKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMyKi9cCisJTVVYX1ZBTChDUChTRFJDX0RRUzMpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU0RSQ19EUVMzKi9cCiAgLyogR1BNQyAqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19BMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0EyKi9cCi0gTVVYX1ZBTChDUChHUE1DX0EzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTMqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTQpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNCovXAotIE1VWF9WQUwoQ1AoR1BNQ19BNSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E1Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0E2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTYqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTcpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNyovXAotIE1VWF9WQUwoQ1AoR1BNQ19BOCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E4Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0E5KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTkqL1wKLSBNVVhfVkFMKENQKEdQTUNfQTEwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTEwKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDAqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QyKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDMqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENCovXAotIE1VWF9WQUwoQ1AoR1BNQ19ENSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q1Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0Q2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDYqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDcpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENyovXAotIE1VWF9WQUwoQ1AoR1BNQ19EOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q4Ki9cCi0gTVVYX1ZBTChDUChHUE1DX0Q5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDkqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEwKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTIqL1wKLSBNVVhfVkFMKENQKEdQTUNfRDEzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEzKi9cCi0gTVVYX1ZBTChDUChHUE1DX0QxNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxNCovXAotIE1VWF9WQUwoQ1AoR1BNQ19EMTUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTUqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTMCksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzAgTkFORCovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1MxKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMSovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1MyKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMiovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1MzKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTMyovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1M0KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTNCovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1M1KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTNSovXAotIE1VWF9WQUwoQ1AoR1BNQ19OQ1M2KSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfbkNTNiBETTkwMDAqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkNTNyksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzcqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkJFMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25CRTEqL1wKLSBNVVhfVkFMKENQKEdQTUNfV0FJVDIpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQyKi9cCi0gTVVYX1ZBTChDUChHUE1DX1dBSVQzKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMyovXAotIE1VWF9WQUwoQ1AoR1BNQ19DTEspLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19DTEsqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkFEVl9BTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25BRFZfQUxFKi9cCi0gTVVYX1ZBTChDUChHUE1DX05PRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25PRSovXAotIE1VWF9WQUwoQ1AoR1BNQ19OV0UpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uV0UqL1wKLSBNVVhfVkFMKENQKEdQTUNfTkJFMF9DTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25CRTBfQ0xFKi9cCi0gTVVYX1ZBTChDUChHUE1DX05XUCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25XUCovXAotIE1VWF9WQUwoQ1AoR1BNQ19XQUlUMCksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDAqL1wKLSBNVVhfVkFMKENQKEdQTUNfV0FJVDEpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQxKi9cCisJTVVYX1ZBTChDUChHUE1DX0ExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTEqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19BMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0EzKi9cCisJTVVYX1ZBTChDUChHUE1DX0E0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTQqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BNSovXAorCU1VWF9WQUwoQ1AoR1BNQ19BNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E2Ki9cCisJTVVYX1ZBTChDUChHUE1DX0E3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfQTcqL1wKKwlNVVhfVkFMKENQKEdQTUNfQTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19BOCovXAorCU1VWF9WQUwoQ1AoR1BNQ19BOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0E5Ki9cCisJTVVYX1ZBTChDUChHUE1DX0ExMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0ExMCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QwKi9cCisJTVVYX1ZBTChDUChHUE1DX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMiovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QzKi9cCisJTVVYX1ZBTChDUChHUE1DX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDQqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDUpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19ENSovXAorCU1VWF9WQUwoQ1AoR1BNQ19ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q2Ki9cCisJTVVYX1ZBTChDUChHUE1DX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDcqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EOCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0Q5Ki9cCisJTVVYX1ZBTChDUChHUE1DX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMCovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTEqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDEyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDEyKi9cCisJTVVYX1ZBTChDUChHUE1DX0QxMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX0QxMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19EMTQpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19EMTQqL1wKKwlNVVhfVkFMKENQKEdQTUNfRDE1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQTUNfRDE1Ki9cCisJTVVYX1ZBTChDUChHUE1DX05DUzApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1MwIE5BTkQqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTMSksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzEqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTMiksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzIqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTMyksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzMqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTNCksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzQqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTNSksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzUqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkNTNiksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX25DUzYgRE05MDAwKi9cCisJTVVYX1ZBTChDUChHUE1DX05DUzcpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19uQ1M3Ki9cCisJTVVYX1ZBTChDUChHUE1DX05CRTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uQkUxKi9cCisJTVVYX1ZBTChDUChHUE1DX1dBSVQyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDIqL1wKKwlNVVhfVkFMKENQKEdQTUNfV0FJVDMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qR1BNQ19XQUlUMyovXAorCU1VWF9WQUwoQ1AoR1BNQ19DTEspLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19DTEsqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkFEVl9BTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25BRFZfQUxFKi9cCisJTVVYX1ZBTChDUChHUE1DX05PRSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25PRSovXAorCU1VWF9WQUwoQ1AoR1BNQ19OV0UpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BNQ19uV0UqL1wKKwlNVVhfVkFMKENQKEdQTUNfTkJFMF9DTEUpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25CRTBfQ0xFKi9cCisJTVVYX1ZBTChDUChHUE1DX05XUCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypHUE1DX25XUCovXAorCU1VWF9WQUwoQ1AoR1BNQ19XQUlUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypHUE1DX1dBSVQwKi9cCisJTVVYX1ZBTChDUChHUE1DX1dBSVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkdQTUNfV0FJVDEqL1wKICAvKiBEU1MgKi9cCi0gTVVYX1ZBTChDUChEU1NfUENMSyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfUENMSyovXAotIE1VWF9WQUwoQ1AoRFNTX0hTWU5DKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19IU1lOQyovXAotIE1VWF9WQUwoQ1AoRFNTX1ZTWU5DKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19WU1lOQyovXAotIE1VWF9WQUwoQ1AoRFNTX0FDQklBUyksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19BQ0JJQVMqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTAqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTMqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTQqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTUqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTYqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBNyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTcqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBOCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTgqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTkqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTApLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEwKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTExKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExMSovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExMiksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTIqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTMpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEzKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTE0KSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExNSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTUqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTYpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE2Ki9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTE3KSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNyovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEExOCksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTgqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMTkpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE5Ki9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTIwKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMCovXAotIE1VWF9WQUwoQ1AoRFNTX0RBVEEyMSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjEqL1wKLSBNVVhfVkFMKENQKERTU19EQVRBMjIpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIyKi9cCi0gTVVYX1ZBTChDUChEU1NfREFUQTIzKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMyovXAorCU1VWF9WQUwoQ1AoRFNTX1BDTEspLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX1BDTEsqL1wKKwlNVVhfVkFMKENQKERTU19IU1lOQyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfSFNZTkMqL1wKKwlNVVhfVkFMKENQKERTU19WU1lOQyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfVlNZTkMqL1wKKwlNVVhfVkFMKENQKERTU19BQ0JJQVMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0FDQklBUyovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEyKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMiovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMyovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE1KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNiovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBNyovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE4KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBOCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEE5KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBOSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExMCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEwKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTExKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTEqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExMiovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExMyksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTEzKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTE0KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTQqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExNSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE2Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTE3KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMTcqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMTgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEExOCovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEExOSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTE5Ki9cCisJTVVYX1ZBTChDUChEU1NfREFUQTIwKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjAqL1wKKwlNVVhfVkFMKENQKERTU19EQVRBMjEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qRFNTX0RBVEEyMSovXAorCU1VWF9WQUwoQ1AoRFNTX0RBVEEyMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypEU1NfREFUQTIyKi9cCisJTVVYX1ZBTChDUChEU1NfREFUQTIzKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkRTU19EQVRBMjMqL1wKICAvKiBDQU1FUkEgKi9cCi0gTVVYX1ZBTChDUChDQU1fSFMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qQ0FNX0hTICovXAotIE1VWF9WQUwoQ1AoQ0FNX1ZTKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkNBTV9WUyAqL1wKLSBNVVhfVkFMKENQKENBTV9YQ0xLQSksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fWENMS0EqL1wKLSBNVVhfVkFMKENQKENBTV9QQ0xLKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkNBTV9QQ0xLKi9cCi0gTVVYX1ZBTChDUChDQU1fRkxEKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fOTgqL1wKLSBNVVhfVkFMKENQKENBTV9EMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDAqL1wKLSBNVVhfVkFMKENQKENBTV9EMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDEqL1wKLSBNVVhfVkFMKENQKENBTV9EMiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDIqL1wKLSBNVVhfVkFMKENQKENBTV9EMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDMqL1wKLSBNVVhfVkFMKENQKENBTV9ENCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDQqL1wKLSBNVVhfVkFMKENQKENBTV9ENSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDUqL1wKLSBNVVhfVkFMKENQKENBTV9ENiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDYqL1wKLSBNVVhfVkFMKENQKENBTV9ENyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDcqL1wKLSBNVVhfVkFMKENQKENBTV9EOCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDgqL1wKLSBNVVhfVkFMKENQKENBTV9EOSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDkqL1wKLSBNVVhfVkFMKENQKENBTV9EMTApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX0QxMCovXAotIE1VWF9WQUwoQ1AoQ0FNX0QxMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDExKi9cCi0gTVVYX1ZBTChDUChDQU1fWENMS0IpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX1hDTEtCKi9cCi0gTVVYX1ZBTChDUChDQU1fV0VOKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTY3Ki9cCi0gTVVYX1ZBTChDUChDQU1fU1RST0JFKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX1NUUk9CRSovXAotIE1VWF9WQUwoQ1AoQ1NJMl9EWDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ1NJMl9EWDAqL1wKLSBNVVhfVkFMKENQKENTSTJfRFkwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNTSTJfRFkwKi9cCi0gTVVYX1ZBTChDUChDU0kyX0RYMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDU0kyX0RYMSovXAotIE1VWF9WQUwoQ1AoQ1NJMl9EWTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ1NJMl9EWTEqL1wKKwlNVVhfVkFMKENQKENBTV9IUyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypDQU1fSFMgKi9cCisJTVVYX1ZBTChDUChDQU1fVlMpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qQ0FNX1ZTICovXAorCU1VWF9WQUwoQ1AoQ0FNX1hDTEtBKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9YQ0xLQSovXAorCU1VWF9WQUwoQ1AoQ0FNX1BDTEspLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qQ0FNX1BDTEsqL1wKKwlNVVhfVkFMKENQKENBTV9GTEQpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT185OCovXAorCU1VWF9WQUwoQ1AoQ0FNX0QwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9EMCovXAorCU1VWF9WQUwoQ1AoQ0FNX0QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9EMSovXAorCU1VWF9WQUwoQ1AoQ0FNX0QyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9EMiovXAorCU1VWF9WQUwoQ1AoQ0FNX0QzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9EMyovXAorCU1VWF9WQUwoQ1AoQ0FNX0Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9ENCovXAorCU1VWF9WQUwoQ1AoQ0FNX0Q1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9ENSovXAorCU1VWF9WQUwoQ1AoQ0FNX0Q2KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9ENiovXAorCU1VWF9WQUwoQ1AoQ0FNX0Q3KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9ENyovXAorCU1VWF9WQUwoQ1AoQ0FNX0Q4KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9EOCovXAorCU1VWF9WQUwoQ1AoQ0FNX0Q5KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9EOSovXAorCU1VWF9WQUwoQ1AoQ0FNX0QxMCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fRDEwKi9cCisJTVVYX1ZBTChDUChDQU1fRDExKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNBTV9EMTEqL1wKKwlNVVhfVkFMKENQKENBTV9YQ0xLQiksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypDQU1fWENMS0IqL1wKKwlNVVhfVkFMKENQKENBTV9XRU4pLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNjcqL1wKKwlNVVhfVkFMKENQKENBTV9TVFJPQkUpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ0FNX1NUUk9CRSovXAorCU1VWF9WQUwoQ1AoQ1NJMl9EWDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ1NJMl9EWDAqL1wKKwlNVVhfVkFMKENQKENTSTJfRFkwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkNTSTJfRFkwKi9cCisJTVVYX1ZBTChDUChDU0kyX0RYMSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypDU0kyX0RYMSovXAorCU1VWF9WQUwoQ1AoQ1NJMl9EWTEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qQ1NJMl9EWTEqL1wKICAvKiBBdWRpbyBJbnRlcmZhY2UgKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDJfRlNYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0ZTWCovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0NMS1gpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDJfQ0xLWCovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0RSKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9EUiovXAotIE1VWF9WQUwoQ1AoTUNCU1AyX0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9EWCovXAorCU1VWF9WQUwoQ1AoTUNCU1AyX0ZTWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypNY0JTUDJfRlNYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1jQlNQMl9DTEtYKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfRFIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0RSKi9cCisJTVVYX1ZBTChDUChNQ0JTUDJfRFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTWNCU1AyX0RYKi9cCiAgLyogTU1DIFNsb3QgKi9cCi0gTVVYX1ZBTChDUChNTUMxX0NMSyksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0NMSyovXAotIE1VWF9WQUwoQ1AoTU1DMV9DTUQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9DTUQqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDAqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUMSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDEqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUMiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDIqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUMyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDMqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUNCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDQqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUNSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDUqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUNiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDYqL1wKLSBNVVhfVkFMKENQKE1NQzFfREFUNyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDcqL1wKKwlNVVhfVkFMKENQKE1NQzFfQ0xLKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfQ0xLKi9cCisJTVVYX1ZBTChDUChNTUMxX0NNRCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0NNRCovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQwKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMCovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMSovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQyKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMiovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQzKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMyovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQ0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNCovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQ1KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNSovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQ2KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNiovXAorCU1VWF9WQUwoQ1AoTU1DMV9EQVQ3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNyovXAogIC8qIEV4cGFuc2lvbiBIZWFkZXIgKi9cCi0gTVVYX1ZBTChDUChNTUMyX0NMSyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzMCovXAotIE1VWF9WQUwoQ1AoTU1DMl9DTUQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzEqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzMiovXAotIE1VWF9WQUwoQ1AoTU1DMl9EQVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTMzKi9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzQqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUMyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzNSovXAotIE1VWF9WQUwoQ1AoTU1DMl9EQVQ0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTM2Ki9cCi0gTVVYX1ZBTChDUChNTUMyX0RBVDUpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzcqL1wKLSBNVVhfVkFMKENQKE1NQzJfREFUNiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzOCovXAotIE1VWF9WQUwoQ1AoTU1DMl9EQVQ3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTM5Ki9cCi0gTVVYX1ZBTChDUChNQ0JTUDNfRFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDAqL1wKLSBNVVhfVkFMKENQKE1DQlNQM19EUiksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0MSovXAotIE1VWF9WQUwoQ1AoTUNCU1AzX0NMS1gpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0MiovXAotIE1VWF9WQUwoQ1AoTUNCU1AzX0ZTWCksCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQzKi9cCi0gTVVYX1ZBTChDUChVQVJUMl9DVFMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDQqL1wKLSBNVVhfVkFMKENQKFVBUlQyX1JUUyksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0NSovXAotIE1VWF9WQUwoQ1AoVUFSVDJfVFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDYqL1wKLSBNVVhfVkFMKENQKFVBUlQyX1JYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQ3Ki9cCi0gTVVYX1ZBTChDUChVQVJUMV9UWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypHUElPXzE0OCovXAotIE1VWF9WQUwoQ1AoVUFSVDFfUlRTKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQ5Ki8gXAotIE1VWF9WQUwoQ1AoVUFSVDFfQ1RTKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTUwKi8gXAotIE1VWF9WQUwoQ1AoVUFSVDFfUlgpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BJT18xNTEqL1wKLSBNVVhfVkFMKENQKE1DQlNQNF9DTEtYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMSkpIC8qR1BJT18xNTIqL1wKLSBNVVhfVkFMKENQKE1DQlNQNF9EUiksCQkoSUVOICB8IFBURCB8IERJUyB8IE0xKSkgLypHUElPXzE1MyovXAotIE1VWF9WQUwoQ1AoTUNCU1A0X0RYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTEpKSAvKkdQSU9fMTU0Ki9cCi0gTVVYX1ZBTChDUChNQ0JTUDRfRlNYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMSkpIC8qR1BJT18xNTUqL1wKLSBNVVhfVkFMKENQKE1DQlNQMV9DTEtSKSwJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNTYqL1wKLSBNVVhfVkFMKENQKE1DQlNQMV9GU1IpLAkoSURJUyB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzE1NyovXAotIE1VWF9WQUwoQ1AoTUNCU1AxX0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTU4Ki9cCi0gTVVYX1ZBTChDUChNQ0JTUDFfRFIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNTkqL1wKLSBNVVhfVkFMKENQKE1DQlNQX0NMS1MpLAkoSUVOICB8IFBUVSB8IERJUyB8IE0wKSkgLypHUElPXzE2MCovXAotIE1VWF9WQUwoQ1AoTUNCU1AxX0ZTWCksCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTYxKi9cCi0gTVVYX1ZBTChDUChNQ0JTUDFfQ0xLWCksCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTYyKi9cCisJTVVYX1ZBTChDUChNTUMyX0NMSyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzMCovXAorCU1VWF9WQUwoQ1AoTU1DMl9DTUQpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzEqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUMCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzMiovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQxKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTMzKi9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDIpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzQqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUMyksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzNSovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQ0KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTM2Ki9cCisJTVVYX1ZBTChDUChNTUMyX0RBVDUpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xMzcqL1wKKwlNVVhfVkFMKENQKE1NQzJfREFUNiksCQkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzEzOCovXAorCU1VWF9WQUwoQ1AoTU1DMl9EQVQ3KSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTM5Ki9cCisJTVVYX1ZBTChDUChNQ0JTUDNfRFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDAqL1wKKwlNVVhfVkFMKENQKE1DQlNQM19EUiksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0MSovXAorCU1VWF9WQUwoQ1AoTUNCU1AzX0NMS1gpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0MiovXAorCU1VWF9WQUwoQ1AoTUNCU1AzX0ZTWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0MyovXAorCU1VWF9WQUwoQ1AoVUFSVDJfQ1RTKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQ0Ki9cCisJTVVYX1ZBTChDUChVQVJUMl9SVFMpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNDUqL1wKKwlNVVhfVkFMKENQKFVBUlQyX1RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTQ2Ki9cCisJTVVYX1ZBTChDUChVQVJUMl9SWCksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0NyovXAorCU1VWF9WQUwoQ1AoVUFSVDFfVFgpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qR1BJT18xNDgqL1wKKwlNVVhfVkFMKENQKFVBUlQxX1JUUyksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE0OSovIFwKKwlNVVhfVkFMKENQKFVBUlQxX0NUUyksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1MCovIFwKKwlNVVhfVkFMKENQKFVBUlQxX1JYKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkdQSU9fMTUxKi9cCisJTVVYX1ZBTChDUChNQ0JTUDRfQ0xLWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTEpKSAvKkdQSU9fMTUyKi9cCisJTVVYX1ZBTChDUChNQ0JTUDRfRFIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMSkpIC8qR1BJT18xNTMqL1wKKwlNVVhfVkFMKENQKE1DQlNQNF9EWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0xKSkgLypHUElPXzE1NCovXAorCU1VWF9WQUwoQ1AoTUNCU1A0X0ZTWCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0xKSkgLypHUElPXzE1NSovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0NMS1IpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE1NiovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0ZTUiksCQkoSURJUyB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzE1NyovXAorCU1VWF9WQUwoQ1AoTUNCU1AxX0RYKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTU4Ki9cCisJTVVYX1ZBTChDUChNQ0JTUDFfRFIpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNTkqL1wKKwlNVVhfVkFMKENQKE1DQlNQX0NMS1MpLAkJKElFTiAgfCBQVFUgfCBESVMgfCBNMCkpIC8qR1BJT18xNjAqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9GU1gpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNjEqL1wKKwlNVVhfVkFMKENQKE1DQlNQMV9DTEtYKSwJKElESVMgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18xNjIqL1wKICAvKiBTZXJpYWwgSW50ZXJmYWNlICovXAotIE1VWF9WQUwoQ1AoVUFSVDNfQ1RTX1JDVFgpLAkoSURJUyB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzE2MyAtIExFRDIqL1wKLSBNVVhfVkFMKENQKFVBUlQzX1JUU19TRCksCShJRElTIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTY0IC0gTEVEMyovXAotIE1VWF9WQUwoQ1AoVUFSVDNfUlhfSVJSWCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQzX1JYX0lSUlgqL1wKLSBNVVhfVkFMKENQKFVBUlQzX1RYX0lSVFgpLAkoSURJUyB8IFBURCB8IERJUyB8IE0wKSkgLypVQVJUM19UWF9JUlRYKi9cCisJTVVYX1ZBTChDUChVQVJUM19DVFNfUkNUWCksCShJRElTIHwgUFREIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTYzIC0gTEVEMiovXAorCU1VWF9WQUwoQ1AoVUFSVDNfUlRTX1NEKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xNjQgLSBMRUQzKi9cCisJTVVYX1ZBTChDUChVQVJUM19SWF9JUlJYKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDNfUlhfSVJSWCovXAorCU1VWF9WQUwoQ1AoVUFSVDNfVFhfSVJUWCksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQzX1RYX0lSVFgqL1wKICAvKiBIb3N0IFVTQjAgKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfQ0xLKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0NMSyovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX1NUUCksCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkhTVVNCMF9TVFAqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9ESVIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfRElSKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfTlhUKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX05YVCovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEEwKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEEwKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTEqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMiovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEEzKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEEzKi9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTQpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTQqL1wKLSBNVVhfVkFMKENQKEhTVVNCMF9EQVRBNSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNSovXAotIE1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE2KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE2Ki9cCi0gTVVYX1ZBTChDUChIU1VTQjBfREFUQTcpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTcqL1wKLSBNVVhfVkFMKENQKEkyQzFfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzFfU0NMKi9cCi0gTVVYX1ZBTChDUChJMkMxX1NEQSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMxX1NEQSovXAotIE1VWF9WQUwoQ1AoSTJDMl9TQ0wpLAkJKElESVMgfCBQVFUgfCBESVMgfCBNNCkpIC8qR1BJT18xNjgqL1wKLSBNVVhfVkFMKENQKEkyQzJfU0RBKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMTgzKi9cCi0gTVVYX1ZBTChDUChJMkMzX1NDTCksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMzX1NDTCovXAotIE1VWF9WQUwoQ1AoSTJDM19TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDM19TREEqL1wKLSBNVVhfVkFMKENQKEkyQzRfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzRfU0NMKi9cCi0gTVVYX1ZBTChDUChJMkM0X1NEQSksCQkoSUVOICB8IFBUVSB8IERJUyB8IE0wKSkgLypJMkM0X1NEQSovXAotIE1VWF9WQUwoQ1AoSERRX1NJTyksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE3MCovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX0NMSyksCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTcxKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfU0lNTyksCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTcyKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfU09NSSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1DU1BJMV9TT01JKi9cCi0gTVVYX1ZBTChDUChNQ1NQSTFfQ1MwKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qTUNTUEkxX0NTMCovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX0NTMSksCShJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKk1DU1BJMV9DUzEqL1wKLSBNVVhfVkFMKENQKE1DU1BJMV9DUzIpLAkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE3NiovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0NMSyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfQ0xLKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfU1RQKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTApKSAvKkhTVVNCMF9TVFAqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9ESVIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RJUiovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX05YVCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfTlhUKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTAqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBMSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBMSovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEEyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEEyKi9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTMpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTMqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBNCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNCovXAorCU1VWF9WQUwoQ1AoSFNVU0IwX0RBVEE1KSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IwX0RBVEE1Ki9cCisJTVVYX1ZBTChDUChIU1VTQjBfREFUQTYpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjBfREFUQTYqL1wKKwlNVVhfVkFMKENQKEhTVVNCMF9EQVRBNyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMF9EQVRBNyovXAorCU1VWF9WQUwoQ1AoSTJDMV9TQ0wpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDMV9TQ0wqL1wKKwlNVVhfVkFMKENQKEkyQzFfU0RBKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzFfU0RBKi9cCisJTVVYX1ZBTChDUChJMkMyX1NDTCksCQkoSURJUyB8IFBUVSB8IERJUyB8IE00KSkgLypHUElPXzE2OCovXAorCU1VWF9WQUwoQ1AoSTJDMl9TREEpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xODMqL1wKKwlNVVhfVkFMKENQKEkyQzNfU0NMKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkkyQzNfU0NMKi9cCisJTVVYX1ZBTChDUChJMkMzX1NEQSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypJMkMzX1NEQSovXAorCU1VWF9WQUwoQ1AoSTJDNF9TQ0wpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qSTJDNF9TQ0wqL1wKKwlNVVhfVkFMKENQKEkyQzRfU0RBKSwJCShJRU4gIHwgUFRVIHwgRElTIHwgTTApKSAvKkkyQzRfU0RBKi9cCisJTVVYX1ZBTChDUChIRFFfU0lPKSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTcwKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfQ0xLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTcxKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfU0lNTyksCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMTcyKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfU09NSSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1DU1BJMV9TT01JKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfQ1MwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKk1DU1BJMV9DUzAqL1wKKwlNVVhfVkFMKENQKE1DU1BJMV9DUzEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qTUNTUEkxX0NTMSovXAorCU1VWF9WQUwoQ1AoTUNTUEkxX0NTMiksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzE3NiovXAogIC8qIFVTQiBFSENJIChwb3J0IDIpICovXAotIE1VWF9WQUwoQ1AoTUNTUEkxX0NTMyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkhTVVNCMl9EQVRBMiovXAotIE1VWF9WQUwoQ1AoTUNTUEkyX0NMSyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMl9EQVRBNyovXAotIE1VWF9WQUwoQ1AoTUNTUEkyX1NJTU8pLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjJfREFUQTQqL1wKLSBNVVhfVkFMKENQKE1DU1BJMl9TT01JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IyX0RBVEE1Ki9cCi0gTVVYX1ZBTChDUChNQ1NQSTJfQ1MwKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qSFNVU0IyX0RBVEE2Ki9cCi0gTVVYX1ZBTChDUChNQ1NQSTJfQ1MxKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qSFNVU0IyX0RBVEEzKi9cCisJTVVYX1ZBTChDUChNQ1NQSTFfQ1MzKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkhTVVNCMl9EQVRBMiovXAorCU1VWF9WQUwoQ1AoTUNTUEkyX0NMSyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypIU1VTQjJfREFUQTcqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9TSU1PKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qSFNVU0IyX0RBVEE0Ki9cCisJTVVYX1ZBTChDUChNQ1NQSTJfU09NSSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkhTVVNCMl9EQVRBNSovXAorCU1VWF9WQUwoQ1AoTUNTUEkyX0NTMCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypIU1VTQjJfREFUQTYqL1wKKwlNVVhfVkFMKENQKE1DU1BJMl9DUzEpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qSFNVU0IyX0RBVEEzKi9cCiAgLypDb250cm9sIGFuZCBkZWJ1ZyAqL1wKLSBNVVhfVkFMKENQKFNZU18zMkspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTXzMySyovXAotIE1VWF9WQUwoQ1AoU1lTX0NMS1JFUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNZU19DTEtSRVEqL1wKLSBNVVhfVkFMKENQKFNZU19OSVJRKSwJCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKlNZU19uSVJRKi9cCi0gTVVYX1ZBTChDUChTWVNfQk9PVDApLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18yKi9cCi0gTVVYX1ZBTChDUChTWVNfQk9PVDEpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT18zKi9cCi0gTVVYX1ZBTChDUChTWVNfQk9PVDIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT180IC0gTU1DMV9XUCovXAotIE1VWF9WQUwoQ1AoU1lTX0JPT1QzKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fNSovXAotIE1VWF9WQUwoQ1AoU1lTX0JPT1Q0KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fNiovXAotIE1VWF9WQUwoQ1AoU1lTX0JPT1Q1KSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fNyovXAotIE1VWF9WQUwoQ1AoU1lTX0JPT1Q2KSwJCShJRElTIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fOCovIFwKLSBNVVhfVkFMKENQKFNZU19PRkZfTU9ERSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKlNZU19PRkZfTU9ERSovXAotIE1VWF9WQUwoQ1AoU1lTX0NMS09VVDEpLAkoSURJUyB8IFBURCB8IEVOICB8IE0wKSkgLypTWVNfQ0xLT1VUMSovXAotIE1VWF9WQUwoQ1AoU1lTX0NMS09VVDIpLAkoSURJUyB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzE4NiAtIExFRDEqL1wKLSBNVVhfVkFMKENQKEVUS19DTEtfRVMyKSwJKElESVMgfCBQVEQgfCBESVMgfCBNMykpIC8qSFNVU0IxX1NUUCovXAotIE1VWF9WQUwoQ1AoRVRLX0NUTF9FUzIpLAkoSURJUyB8IFBURCB8IEVOICB8IE0zKSkgLypIU1VTQjFfQ0xLKi9cCi0gTVVYX1ZBTChDUChFVEtfRDBfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0RBVEEwKi9cCi0gTVVYX1ZBTChDUChFVEtfRDFfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0RBVEExKi9cCi0gTVVYX1ZBTChDUChFVEtfRDJfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0RBVEEyKi9cCi0gTVVYX1ZBTChDUChFVEtfRDNfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0RBVEE3Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDRfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0RBVEE0Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDVfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0RBVEE1Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDZfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0RBVEE2Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDdfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0RBVEEzKi9cCi0gTVVYX1ZBTChDUChFVEtfRDhfRVMyKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qSFNVU0IxX0RJUiovXAotIE1VWF9WQUwoQ1AoRVRLX0Q5X0VTMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTMpKSAvKkhTVVNCMV9OWFQqL1wKLSBNVVhfVkFMKENQKEVUS19EMTBfRVMyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18yNCovXAotIE1VWF9WQUwoQ1AoRVRLX0QxMV9FUzIpLAkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzI1Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDEyX0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMjYqL1wKLSBNVVhfVkFMKENQKEVUS19EMTNfRVMyKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18yNyovXAotIE1VWF9WQUwoQ1AoRVRLX0QxNF9FUzIpLAkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzI4Ki9cCi0gTVVYX1ZBTChDUChFVEtfRDE1X0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMjkqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDEqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDIqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDMqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDUqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDYqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FENyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDcqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEOCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDgqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEOSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDkqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTApLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDEwKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDExKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQxMSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxMiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMTIqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTMpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDEzKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDE0KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQxNCovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxNSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMTUqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTYpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDE2Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDE3KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQxNyovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQxOCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMTgqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMTkpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDE5Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDIwKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQyMCovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyMSksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMjEqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjIpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDIyKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDIzKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQyMyovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyNCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMjQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjUpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDI1Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDI2KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQyNiovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQyNyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMjcqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMjgpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDI4Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDI5KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQyOSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzMCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMzAqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMzEpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDMxKi9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDMyKSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQzMiovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzMyksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMzMqL1wKLSBNVVhfVkFMKENQKEQyRF9NQ0FEMzQpLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDM0Ki9cCi0gTVVYX1ZBTChDUChEMkRfTUNBRDM1KSwJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQzNSovXAotIE1VWF9WQUwoQ1AoRDJEX01DQUQzNiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMzYqL1wKLSBNVVhfVkFMKENQKEQyRF9DTEsyNk1JKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRDJEX2NsazI2bWkqL1wKLSBNVVhfVkFMKENQKEQyRF9OUkVTUFdST04pLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfbnJlc3B3cm9uKi9cCi0gTVVYX1ZBTChDUChEMkRfTlJFU1dBUk0pLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypEMkRfbnJlc3dhcm0gKi9cCi0gTVVYX1ZBTChDUChEMkRfQVJNOU5JUlEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfYXJtOW5pcnEgKi9cCi0gTVVYX1ZBTChDUChEMkRfVU1BMlA2RklRKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRDJEX3VtYTJwNmZpcSovXAotIE1VWF9WQUwoQ1AoRDJEX1NQSU5UKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9zcGludCovXAotIE1VWF9WQUwoQ1AoRDJEX0ZSSU5UKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9mcmludCovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTApLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfZG1hcmVxMCovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfZG1hcmVxMSovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTIpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfZG1hcmVxMiovXAotIE1VWF9WQUwoQ1AoRDJEX0RNQVJFUTMpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfZG1hcmVxMyovXAotIE1VWF9WQUwoQ1AoRDJEX04zR1RSU1QpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfbjNndHJzdCovXAotIE1VWF9WQUwoQ1AoRDJEX04zR1RESSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9uM2d0ZGkqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dURE8pLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfbjNndGRvKi9cCi0gTVVYX1ZBTChDUChEMkRfTjNHVE1TKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRDJEX24zZ3RtcyovXAotIE1VWF9WQUwoQ1AoRDJEX04zR1RDSyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9uM2d0Y2sqL1wKLSBNVVhfVkFMKENQKEQyRF9OM0dSVENLKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRDJEX24zZ3J0Y2sqL1wKLSBNVVhfVkFMKENQKEQyRF9NU1REQlkpLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypEMkRfbXN0ZGJ5Ki9cCi0gTVVYX1ZBTChDUChEMkRfU1dBS0VVUCksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9zd2FrZXVwKi9cCi0gTVVYX1ZBTChDUChEMkRfSURMRVJFUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9pZGxlcmVxKi9cCi0gTVVYX1ZBTChDUChEMkRfSURMRUFDSyksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkQyRF9pZGxlYWNrKi9cCi0gTVVYX1ZBTChDUChEMkRfTVdSSVRFKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRDJEX213cml0ZSovXAotIE1VWF9WQUwoQ1AoRDJEX1NXUklURSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9zd3JpdGUqL1wKLSBNVVhfVkFMKENQKEQyRF9NUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfbXJlYWQqL1wKLSBNVVhfVkFMKENQKEQyRF9TUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfc3JlYWQqL1wKLSBNVVhfVkFMKENQKEQyRF9NQlVTRkxBRyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9tYnVzZmxhZyovXAotIE1VWF9WQUwoQ1AoRDJEX1NCVVNGTEFHKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRDJEX3NidXNmbGFnKi9cCi0gTVVYX1ZBTChDUChTRFJDX0NLRTApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qc2RyY19ja2UwKi9cCi0gTVVYX1ZBTChDUChTRFJDX0NLRTEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNykpIC8qc2RyY19ja2UxKi8KKwlNVVhfVkFMKENQKFNZU18zMkspLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qU1lTXzMySyovXAorCU1VWF9WQUwoQ1AoU1lTX0NMS1JFUSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfQ0xLUkVRKi9cCisJTVVYX1ZBTChDUChTWVNfTklSUSksCQkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypTWVNfbklSUSovXAorCU1VWF9WQUwoQ1AoU1lTX0JPT1QwKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMiovXAorCU1VWF9WQUwoQ1AoU1lTX0JPT1QxKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fMyovXAorCU1VWF9WQUwoQ1AoU1lTX0JPT1QyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTQpKSAvKkdQSU9fNCAtIE1NQzFfV1AqL1wKKwlNVVhfVkFMKENQKFNZU19CT09UMyksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzUqL1wKKwlNVVhfVkFMKENQKFNZU19CT09UNCksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzYqL1wKKwlNVVhfVkFMKENQKFNZU19CT09UNSksCQkoSUVOICB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzcqL1wKKwlNVVhfVkFMKENQKFNZU19CT09UNiksCQkoSURJUyB8IFBURCB8IERJUyB8IE00KSkgLypHUElPXzgqLyBcCisJTVVYX1ZBTChDUChTWVNfT0ZGX01PREUpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypTWVNfT0ZGX01PREUqL1wKKwlNVVhfVkFMKENQKFNZU19DTEtPVVQxKSwJKElESVMgfCBQVEQgfCBFTiAgfCBNMCkpIC8qU1lTX0NMS09VVDEqL1wKKwlNVVhfVkFMKENQKFNZU19DTEtPVVQyKSwJKElESVMgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18xODYgLSBMRUQxKi9cCisJTVVYX1ZBTChDUChFVEtfQ0xLX0VTMiksCShJRElTIHwgUFREIHwgRElTIHwgTTMpKSAvKkhTVVNCMV9TVFAqL1wKKwlNVVhfVkFMKENQKEVUS19DVExfRVMyKSwJKElESVMgfCBQVEQgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0NMSyovXAorCU1VWF9WQUwoQ1AoRVRLX0QwX0VTMiksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0zKSkgLypIU1VTQjFfREFUQTAqL1wKKwlNVVhfVkFMKENQKEVUS19EMV9FUzIpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0RBVEExKi9cCisJTVVYX1ZBTChDUChFVEtfRDJfRVMyKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTMpKSAvKkhTVVNCMV9EQVRBMiovXAorCU1VWF9WQUwoQ1AoRVRLX0QzX0VTMiksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0zKSkgLypIU1VTQjFfREFUQTcqL1wKKwlNVVhfVkFMKENQKEVUS19ENF9FUzIpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0RBVEE0Ki9cCisJTVVYX1ZBTChDUChFVEtfRDVfRVMyKSwJCShJRElTIHwgUFRVIHwgRU4gIHwgTTMpKSAvKkhTVVNCMV9EQVRBNSovXAorCU1VWF9WQUwoQ1AoRVRLX0Q2X0VTMiksCQkoSURJUyB8IFBUVSB8IEVOICB8IE0zKSkgLypIU1VTQjFfREFUQTYqL1wKKwlNVVhfVkFMKENQKEVUS19EN19FUzIpLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMykpIC8qSFNVU0IxX0RBVEEzKi9cCisJTVVYX1ZBTChDUChFVEtfRDhfRVMyKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTMpKSAvKkhTVVNCMV9ESVIqL1wKKwlNVVhfVkFMKENQKEVUS19EOV9FUzIpLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMykpIC8qSFNVU0IxX05YVCovXAorCU1VWF9WQUwoQ1AoRVRLX0QxMF9FUzIpLAkoSURJUyB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzI0Ki9cCisJTVVYX1ZBTChDUChFVEtfRDExX0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMjUqL1wKKwlNVVhfVkFMKENQKEVUS19EMTJfRVMyKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18yNiovXAorCU1VWF9WQUwoQ1AoRVRLX0QxM19FUzIpLAkoSUVOICB8IFBUVSB8IEVOICB8IE00KSkgLypHUElPXzI3Ki9cCisJTVVYX1ZBTChDUChFVEtfRDE0X0VTMiksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQSU9fMjgqL1wKKwlNVVhfVkFMKENQKEVUS19EMTVfRVMyKSwJKElFTiAgfCBQVFUgfCBFTiAgfCBNNCkpIC8qR1BJT18yOSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ0KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FENCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ1KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FENSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ2KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FENiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ3KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FENyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ4KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEOCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQ5KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEOSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxMCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDEwKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDExKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMTEqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTIpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQxMiovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxMyksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDEzKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDE0KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMTQqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTUpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQxNSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxNiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDE2Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDE3KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMTcqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMTgpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQxOCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQxOSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDE5Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDIwKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMjAqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjEpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQyMSovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyMiksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDIyKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDIzKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMjMqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQyNCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyNSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDI1Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDI2KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMjYqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMjcpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQyNyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQyOCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDI4Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDI5KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMjkqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzApLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQzMCovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzMSksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDMxKi9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDMyKSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMzIqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzMpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQzMyovXAorCU1VWF9WQUwoQ1AoRDJEX01DQUQzNCksCQkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfTUNBRDM0Ki9cCisJTVVYX1ZBTChDUChEMkRfTUNBRDM1KSwJCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9NQ0FEMzUqL1wKKwlNVVhfVkFMKENQKEQyRF9NQ0FEMzYpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX01DQUQzNiovXAorCU1VWF9WQUwoQ1AoRDJEX0NMSzI2TUkpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfY2xrMjZtaSovXAorCU1VWF9WQUwoQ1AoRDJEX05SRVNQV1JPTiksCShJRU4gIHwgUFREIHwgRU4gIHwgTTApKSAvKkQyRF9ucmVzcHdyb24qL1wKKwlNVVhfVkFMKENQKEQyRF9OUkVTV0FSTSksCShJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKkQyRF9ucmVzd2FybSAqL1wKKwlNVVhfVkFMKENQKEQyRF9BUk05TklSUSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9hcm05bmlycSAqL1wKKwlNVVhfVkFMKENQKEQyRF9VTUEyUDZGSVEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfdW1hMnA2ZmlxKi9cCisJTVVYX1ZBTChDUChEMkRfU1BJTlQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX3NwaW50Ki9cCisJTVVYX1ZBTChDUChEMkRfRlJJTlQpLAkJKElFTiAgfCBQVEQgfCBFTiAgfCBNMCkpIC8qRDJEX2ZyaW50Ki9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9kbWFyZXEwKi9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMSksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9kbWFyZXExKi9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMiksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9kbWFyZXEyKi9cCisJTVVYX1ZBTChDUChEMkRfRE1BUkVRMyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9kbWFyZXEzKi9cCisJTVVYX1ZBTChDUChEMkRfTjNHVFJTVCksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9uM2d0cnN0Ki9cCisJTVVYX1ZBTChDUChEMkRfTjNHVERJKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9uM2d0ZGkqL1wKKwlNVVhfVkFMKENQKEQyRF9OM0dURE8pLAkJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRDJEX24zZ3RkbyovXAorCU1VWF9WQUwoQ1AoRDJEX04zR1RNUyksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfbjNndG1zKi9cCisJTVVYX1ZBTChDUChEMkRfTjNHVENLKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9uM2d0Y2sqL1wKKwlNVVhfVkFMKENQKEQyRF9OM0dSVENLKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRDJEX24zZ3J0Y2sqL1wKKwlNVVhfVkFMKENQKEQyRF9NU1REQlkpLAkJKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qRDJEX21zdGRieSovXAorCU1VWF9WQUwoQ1AoRDJEX1NXQUtFVVApLAkoSUVOICB8IFBURCB8IEVOICB8IE0wKSkgLypEMkRfc3dha2V1cCovXAorCU1VWF9WQUwoQ1AoRDJEX0lETEVSRVEpLAkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfaWRsZXJlcSovXAorCU1VWF9WQUwoQ1AoRDJEX0lETEVBQ0spLAkoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypEMkRfaWRsZWFjayovXAorCU1VWF9WQUwoQ1AoRDJEX01XUklURSksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfbXdyaXRlKi9cCisJTVVYX1ZBTChDUChEMkRfU1dSSVRFKSwJCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9zd3JpdGUqL1wKKwlNVVhfVkFMKENQKEQyRF9NUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfbXJlYWQqL1wKKwlNVVhfVkFMKENQKEQyRF9TUkVBRCksCQkoSUVOICB8IFBURCB8IERJUyB8IE0wKSkgLypEMkRfc3JlYWQqL1wKKwlNVVhfVkFMKENQKEQyRF9NQlVTRkxBRyksCShJRU4gIHwgUFREIHwgRElTIHwgTTApKSAvKkQyRF9tYnVzZmxhZyovXAorCU1VWF9WQUwoQ1AoRDJEX1NCVVNGTEFHKSwJKElFTiAgfCBQVEQgfCBESVMgfCBNMCkpIC8qRDJEX3NidXNmbGFnKi9cCisJTVVYX1ZBTChDUChTRFJDX0NLRTApLAkJKElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qc2RyY19ja2UwKi9cCisJTVVYX1ZBTChDUChTRFJDX0NLRTEpLAkJKElESVMgfCBQVEQgfCBESVMgfCBNNykpIC8qc2RyY19ja2UxKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9jb21tb24vTWFrZWZpbGUgYi9jb21tb24vTWFrZWZpbGUKaW5kZXggMzc4MTczOC4uYTkyYTc1ZiAxMDA2NDQKLS0tIGEvY29tbW9uL01ha2VmaWxlCisrKyBiL2NvbW1vbi9NYWtlZmlsZQpAQCAtNTIsOSArNTIsNiBAQAogQ09CSlMtJChDT05GSUdfRU5WX0lTX0lOX0RBVEFGTEFTSCkgKz0gZW52X2RhdGFmbGFzaC5vCiBDT0JKUy0kKENPTkZJR19FTlZfSVNfSU5fRUVQUk9NKSArPSBlbnZfZWVwcm9tLm8KIENPQkpTLSQoQ09ORklHX0VOVl9JU19FTUJFRERFRCkgKz0gZW52X2VtYmVkZGVkLm8KLUNPQkpTLSQoQ09ORklHX0VOVl9JU19JTl9FRVBST00pICs9IGVudl9lbWJlZGRlZC5vCi1DT0JKUy0kKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpICs9IGVudl9lbWJlZGRlZC5vCi1DT0JKUy0kKENPTkZJR19FTlZfSVNfSU5fTlZSQU0pICs9IGVudl9lbWJlZGRlZC5vCiBDT0JKUy0kKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpICs9IGVudl9mbGFzaC5vCiBDT0JKUy0kKENPTkZJR19FTlZfSVNfSU5fTUdfRElTSykgKz0gZW52X21nZGlzay5vCiBDT0JKUy0kKENPTkZJR19FTlZfSVNfSU5fTkFORCkgKz0gZW52X25hbmQubwpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9tZW0uYyBiL2NvbW1vbi9jbWRfbWVtLmMKaW5kZXggOTg1MDgwMC4uYTM0YjM0MiAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9tZW0uYworKysgYi9jb21tb24vY21kX21lbS5jCkBAIC02MzEsNyArNjMxLDcgQEAKIAl2dV9sb25nCSphZGRyLCAqc3RhcnQsICplbmQ7CiAJdWxvbmcJdmFsOwogCXVsb25nCXJlYWRiYWNrOwotCWludCAgICAgcmNvZGUgPSAwOworCXVsb25nCWVycnMgPSAwOwogCWludCBpdGVyYXRpb25zID0gMTsKIAlpbnQgaXRlcmF0aW9uX2xpbWl0OwogCkBAIC02OTgsOSArNjk4LDkgQEAKIAogCiAJCWlmIChpdGVyYXRpb25fbGltaXQgJiYgaXRlcmF0aW9ucyA+IGl0ZXJhdGlvbl9saW1pdCkgewotCQkJcHJpbnRmKCJUZXN0ZWQgJWQgaXRlcmF0aW9uKHMpIHdpdGhvdXQgZXJyb3JzLlxuIiwKLQkJCQlpdGVyYXRpb25zLTEpOwotCQkJcmV0dXJuIDA7CisJCQlwcmludGYoIlRlc3RlZCAlZCBpdGVyYXRpb24ocykgd2l0aCAlbHUgZXJyb3JzLlxuIiwKKwkJCQlpdGVyYXRpb25zLTEsIGVycnMpOworCQkJcmV0dXJuIGVycnMgIT0gMDsKIAkJfQogCiAJCXByaW50ZigiSXRlcmF0aW9uOiAlNmRcciIsIGl0ZXJhdGlvbnMpOwpAQCAtNzMyLDkgKzczMiwxNCBAQAogCQkJKmR1bW15ICA9IH52YWw7IC8qIGNsZWFyIHRoZSB0ZXN0IGRhdGEgb2ZmIG9mIHRoZSBidXMgKi8KIAkJCXJlYWRiYWNrID0gKmFkZHI7CiAJCQlpZihyZWFkYmFjayAhPSB2YWwpIHsKLQkJCSAgICAgcHJpbnRmICgiRkFJTFVSRSAoZGF0YSBsaW5lKTogIgorCQkJICAgIHByaW50ZiAoIkZBSUxVUkUgKGRhdGEgbGluZSk6ICIKIAkJCQkiZXhwZWN0ZWQgJTA4bHgsIGFjdHVhbCAlMDhseFxuIiwKIAkJCQkJICB2YWwsIHJlYWRiYWNrKTsKKwkJCSAgICBlcnJzKys7CisJCQkgICAgaWYgKGN0cmxjKCkpIHsKKwkJCQlwdXRjICgnXG4nKTsKKwkJCQlyZXR1cm4gMTsKKwkJCSAgICB9CiAJCQl9CiAJCQkqYWRkciAgPSB+dmFsOwogCQkJKmR1bW15ICA9IHZhbDsKQEAgLTc0Myw2ICs3NDgsMTEgQEAKIAkJCSAgICBwcmludGYgKCJGQUlMVVJFIChkYXRhIGxpbmUpOiAiCiAJCQkJIklzICUwOGx4LCBzaG91bGQgYmUgJTA4bHhcbiIsCiAJCQkJCXJlYWRiYWNrLCB+dmFsKTsKKwkJCSAgICBlcnJzKys7CisJCQkgICAgaWYgKGN0cmxjKCkpIHsKKwkJCQlwdXRjICgnXG4nKTsKKwkJCQlyZXR1cm4gMTsKKwkJCSAgICB9CiAJCQl9CiAJCSAgICB9CiAJCX0KQEAgLTgwOCw3ICs4MTgsMTEgQEAKIAkJCXByaW50ZiAoIlxuRkFJTFVSRTogQWRkcmVzcyBiaXQgc3R1Y2sgaGlnaCBAIDB4JS44bHg6IgogCQkJCSIgZXhwZWN0ZWQgMHglLjhseCwgYWN0dWFsIDB4JS44bHhcbiIsCiAJCQkJKHVsb25nKSZzdGFydFtvZmZzZXRdLCBwYXR0ZXJuLCB0ZW1wKTsKLQkJCXJldHVybiAxOworCQkJZXJycysrOworCQkJaWYgKGN0cmxjKCkpIHsKKwkJCSAgICBwdXRjICgnXG4nKTsKKwkJCSAgICByZXR1cm4gMTsKKwkJCX0KIAkJICAgIH0KIAkJfQogCQlzdGFydFt0ZXN0X29mZnNldF0gPSBwYXR0ZXJuOwpAQCAtODI2LDcgKzg0MCwxMSBAQAogCQkJICAgIHByaW50ZiAoIlxuRkFJTFVSRTogQWRkcmVzcyBiaXQgc3R1Y2sgbG93IG9yIHNob3J0ZWQgQCIKIAkJCQkiIDB4JS44bHg6IGV4cGVjdGVkIDB4JS44bHgsIGFjdHVhbCAweCUuOGx4XG4iLAogCQkJCSh1bG9uZykmc3RhcnRbb2Zmc2V0XSwgcGF0dGVybiwgdGVtcCk7Ci0JCQkgICAgcmV0dXJuIDE7CisJCQkgICAgZXJycysrOworCQkJICAgIGlmIChjdHJsYygpKSB7CisJCQkJcHV0YyAoJ1xuJyk7CisJCQkJcmV0dXJuIDE7CisJCQkgICAgfQogCQkJfQogCQkgICAgfQogCQkgICAgc3RhcnRbdGVzdF9vZmZzZXRdID0gcGF0dGVybjsKQEAgLTg2NCw3ICs4ODIsMTEgQEAKIAkJCXByaW50ZiAoIlxuRkFJTFVSRSAocmVhZC93cml0ZSkgQCAweCUuOGx4OiIKIAkJCQkiIGV4cGVjdGVkIDB4JS44bHgsIGFjdHVhbCAweCUuOGx4KVxuIiwKIAkJCQkodWxvbmcpJnN0YXJ0W29mZnNldF0sIHBhdHRlcm4sIHRlbXApOwotCQkJcmV0dXJuIDE7CisJCQllcnJzKys7CisJCQlpZiAoY3RybGMoKSkgeworCQkJICAgIHB1dGMgKCdcbicpOworCQkJICAgIHJldHVybiAxOworCQkJfQogCQkgICAgfQogCiAJCSAgICBhbnRpX3BhdHRlcm4gPSB+cGF0dGVybjsKQEAgLTg4Miw3ICs5MDQsMTEgQEAKIAkJCXByaW50ZiAoIlxuRkFJTFVSRSAocmVhZC93cml0ZSk6IEAgMHglLjhseDoiCiAJCQkJIiBleHBlY3RlZCAweCUuOGx4LCBhY3R1YWwgMHglLjhseClcbiIsCiAJCQkJKHVsb25nKSZzdGFydFtvZmZzZXRdLCBhbnRpX3BhdHRlcm4sIHRlbXApOwotCQkJcmV0dXJuIDE7CisJCQllcnJzKys7CisJCQlpZiAoY3RybGMoKSkgeworCQkJICAgIHB1dGMgKCdcbicpOworCQkJICAgIHJldHVybiAxOworCQkJfQogCQkgICAgfQogCQkgICAgc3RhcnRbb2Zmc2V0XSA9IDA7CiAJCX0KQEAgLTg5Nyw5ICs5MjMsOSBAQAogCQl9CiAKIAkJaWYgKGl0ZXJhdGlvbl9saW1pdCAmJiBpdGVyYXRpb25zID4gaXRlcmF0aW9uX2xpbWl0KSB7Ci0JCQlwcmludGYoIlRlc3RlZCAlZCBpdGVyYXRpb24ocykgd2l0aG91dCBlcnJvcnMuXG4iLAotCQkJCWl0ZXJhdGlvbnMtMSk7Ci0JCQlyZXR1cm4gMDsKKwkJCXByaW50ZigiVGVzdGVkICVkIGl0ZXJhdGlvbihzKSB3aXRoICVsdSBlcnJvcnMuXG4iLAorCQkJCWl0ZXJhdGlvbnMtMSwgZXJycyk7CisJCQlyZXR1cm4gZXJycyAhPSAwOwogCQl9CiAJCSsraXRlcmF0aW9uczsKIApAQCAtOTIzLDcgKzk0OSwxMSBAQAogCQkJCXByaW50ZiAoIlxuTWVtIGVycm9yIEAgMHglMDhYOiAiCiAJCQkJCSJmb3VuZCAlMDhsWCwgZXhwZWN0ZWQgJTA4bFhcbiIsCiAJCQkJCSh1aW50KWFkZHIsIHJlYWRiYWNrLCB2YWwpOwotCQkJCXJjb2RlID0gMTsKKwkJCQllcnJzKys7CisJCQkJaWYgKGN0cmxjKCkpIHsKKwkJCQkJcHV0YyAoJ1xuJyk7CisJCQkJCXJldHVybiAxOworCQkJCX0KIAkJCX0KIAkJCXZhbCArPSBpbmNyOwogCQl9CkBAIC05NDMsNyArOTczLDcgQEAKIAkJaW5jciA9IC1pbmNyOwogCX0KICNlbmRpZgotCXJldHVybiByY29kZTsKKwlyZXR1cm4gMDsJLyogbm90IHJlYWNoZWQgKi8KIH0KIAogCmRpZmYgLS1naXQgYS9jb21tb24vY21kX252ZWRpdC5jIGIvY29tbW9uL2NtZF9udmVkaXQuYwppbmRleCAyMTg2MjA1Li45ZjhkNTMxIDEwMDY0NAotLS0gYS9jb21tb24vY21kX252ZWRpdC5jCisrKyBiL2NvbW1vbi9jbWRfbnZlZGl0LmMKQEAgLTIwMiw2ICsyMDIsMzcgQEAKIAkJCWJyZWFrOwogCX0KIAorCS8qIENoZWNrIGZvciBjb25zb2xlIHJlZGlyZWN0aW9uICovCisJaWYgKHN0cmNtcChuYW1lLCJzdGRpbiIpID09IDApIHsKKwkJY29uc29sZSA9IHN0ZGluOworCX0gZWxzZSBpZiAoc3RyY21wKG5hbWUsInN0ZG91dCIpID09IDApIHsKKwkJY29uc29sZSA9IHN0ZG91dDsKKwl9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCJzdGRlcnIiKSA9PSAwKSB7CisJCWNvbnNvbGUgPSBzdGRlcnI7CisJfQorCisJaWYgKGNvbnNvbGUgIT0gLTEpIHsKKwkJaWYgKGFyZ2MgPCAzKSB7CQkvKiBDYW5ub3QgZGVsZXRlIGl0ISAqLworCQkJcHJpbnRmKCJDYW4ndCBkZWxldGUgXCIlc1wiXG4iLCBuYW1lKTsKKwkJCXJldHVybiAxOworCQl9CisKKyNpZmRlZiBDT05GSUdfQ09OU09MRV9NVVgKKwkJaSA9IGlvbXV4X2RvZW52KGNvbnNvbGUsIGFyZ3ZbMl0pOworCQlpZiAoaSkKKwkJCXJldHVybiBpOworI2Vsc2UKKwkJLyogVHJ5IGFzc2lnbmluZyBzcGVjaWZpZWQgZGV2aWNlICovCisJCWlmIChjb25zb2xlX2Fzc2lnbiAoY29uc29sZSwgYXJndlsyXSkgPCAwKQorCQkJcmV0dXJuIDE7CisKKyNpZmRlZiBDT05GSUdfU0VSSUFMX01VTFRJCisJCWlmIChzZXJpYWxfYXNzaWduIChhcmd2WzJdKSA8IDApCisJCQlyZXR1cm4gMTsKKyNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19DT05TT0xFX01VWCAqLworCX0KKwogCS8qCiAJICogRGVsZXRlIGFueSBleGlzdGluZyBkZWZpbml0aW9uCiAJICovCkBAIC0yMjcsMzggKzI1OCw3IEBACiAJCQlwcmludGYgKCJDYW4ndCBvdmVyd3JpdGUgXCIlc1wiXG4iLCBuYW1lKTsKIAkJCXJldHVybiAxOwogCQl9Ci0jZW5kaWYKLQotCQkvKiBDaGVjayBmb3IgY29uc29sZSByZWRpcmVjdGlvbiAqLwotCQlpZiAoc3RyY21wKG5hbWUsInN0ZGluIikgPT0gMCkgewotCQkJY29uc29sZSA9IHN0ZGluOwotCQl9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCJzdGRvdXQiKSA9PSAwKSB7Ci0JCQljb25zb2xlID0gc3Rkb3V0OwotCQl9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCJzdGRlcnIiKSA9PSAwKSB7Ci0JCQljb25zb2xlID0gc3RkZXJyOwotCQl9Ci0KLQkJaWYgKGNvbnNvbGUgIT0gLTEpIHsKLQkJCWlmIChhcmdjIDwgMykgewkJLyogQ2Fubm90IGRlbGV0ZSBpdCEgKi8KLQkJCQlwcmludGYoIkNhbid0IGRlbGV0ZSBcIiVzXCJcbiIsIG5hbWUpOwotCQkJCXJldHVybiAxOwotCQkJfQotCi0jaWZkZWYgQ09ORklHX0NPTlNPTEVfTVVYCi0JCQlpID0gaW9tdXhfZG9lbnYoY29uc29sZSwgYXJndlsyXSk7Ci0JCQlpZiAoaSkKLQkJCQlyZXR1cm4gaTsKLSNlbHNlCi0JCQkvKiBUcnkgYXNzaWduaW5nIHNwZWNpZmllZCBkZXZpY2UgKi8KLQkJCWlmIChjb25zb2xlX2Fzc2lnbiAoY29uc29sZSwgYXJndlsyXSkgPCAwKQotCQkJCXJldHVybiAxOwotCi0jaWZkZWYgQ09ORklHX1NFUklBTF9NVUxUSQotCQkJaWYgKHNlcmlhbF9hc3NpZ24gKGFyZ3ZbMl0pIDwgMCkKLQkJCQlyZXR1cm4gMTsKICNlbmRpZgotI2VuZGlmIC8qIENPTkZJR19DT05TT0xFX01VWCAqLwotCQl9CiAKIAkJLyoKIAkJICogU3dpdGNoIHRvIG5ldyBiYXVkcmF0ZSBpZiBuZXcgYmF1ZHJhdGUgaXMgc3VwcG9ydGVkCmRpZmYgLS1naXQgYS9jb21tb24vZW52X2VtYmVkZGVkLmMgYi9jb21tb24vZW52X2VtYmVkZGVkLmMKaW5kZXggYWU2Y2FjNC4uZTI3ZTFjZCAxMDA2NDQKLS0tIGEvY29tbW9uL2Vudl9lbWJlZGRlZC5jCisrKyBiL2NvbW1vbi9lbnZfZW1iZWRkZWQuYwpAQCAtNDEsMTEgKzQxLDYgQEAKICNlbmRpZgogCiAvKgotICogR2VuZXJhdGUgZW1iZWRkZWQgZW52aXJvbm1lbnQgdGFibGUKLSAqIGluc2lkZSBVLUJvb3QgaW1hZ2UsIGlmIG5lZWRlZC4KLSAqLwotI2lmIGRlZmluZWQoRU5WX0lTX0VNQkVEREVEKQotLyoKICAqIE9ubHkgcHV0IHRoZSBlbnZpcm9ubWVudCBpbiBpdCdzIG93biBzZWN0aW9uIHdoZW4gd2UgYXJlIGJ1aWxkaW5nCiAgKiBVLUJvb3QgcHJvcGVyLiAgVGhlIGhvc3QgYmFzZWQgcHJvZ3JhbSAidG9vbHMvZW52Y3JjIiBkb2VzIG5vdCBuZWVkCiAgKiBhIHNlcGVyYXRlIHNlY3Rpb24uICBOb3RlIHRoYXQgRU5WX0NSQyBpcyBvbmx5IGRlZmluZWQgd2hlbiBidWlsZGluZwpAQCAtMjEwLDUgKzIwNSwzIEBACiAgKiBBZGQgaW4gYWJzb2x1dGVzLgogICovCiBHRU5fQUJTKGVudl9vZmZzZXQsIENPTkZJR19FTlZfT0ZGU0VUKTsKLQotI2VuZGlmIC8qIEVOVl9JU19FTUJFRERFRCAqLwpkaWZmIC0tZ2l0IGEvY29tbW9uL2xjZC5jIGIvY29tbW9uL2xjZC5jCmluZGV4IGRjOGZlYTYuLjRlMzE2MTggMTAwNjQ0Ci0tLSBhL2NvbW1vbi9sY2QuYworKysgYi9jb21tb24vbGNkLmMKQEAgLTk5LDMyICs5OSwxMSBAQAogCiBzdGF0aWMgdm9pZCBjb25zb2xlX3Njcm9sbHVwICh2b2lkKQogewotI2lmIDEKIAkvKiBDb3B5IHVwIHJvd3MgaWdub3JpbmcgdGhlIGZpcnN0IG9uZSAqLwogCW1lbWNweSAoQ09OU09MRV9ST1dfRklSU1QsIENPTlNPTEVfUk9XX1NFQ09ORCwgQ09OU09MRV9TQ1JPTExfU0laRSk7CiAKIAkvKiBDbGVhciB0aGUgbGFzdCBvbmUgKi8KIAltZW1zZXQgKENPTlNPTEVfUk9XX0xBU1QsIENPTE9SX01BU0sobGNkX2NvbG9yX2JnKSwgQ09OU09MRV9ST1dfU0laRSk7Ci0jZWxzZQotCS8qCi0JICogUG9vciBhdHRlbXB0IHRvIG9wdGltaXplIHNwZWVkIGJ5IG1vdmluZyAibG9uZyJzLgotCSAqIEJ1dCB0aGUgY29kZSBpcyB1Z2x5LCBhbmQgbm90IGEgYml0IGZhc3RlciA6LSgKLQkgKi8KLQl1bG9uZyAqdCA9ICh1bG9uZyAqKUNPTlNPTEVfUk9XX0ZJUlNUOwotCXVsb25nICpzID0gKHVsb25nICopQ09OU09MRV9ST1dfU0VDT05EOwotCXVsb25nICAgIGwgPSBDT05TT0xFX1NDUk9MTF9TSVpFIC8gc2l6ZW9mKHVsb25nKTsKLQl1Y2hhciAgYyA9IGxjZF9jb2xvcl9iZyAmIDB4RkY7Ci0JdWxvbmcgdmFsPSAoYzw8MjQpIHwgKGM8PDE2KSB8IChjPDw4KSB8IGM7Ci0KLQl3aGlsZSAobC0tKQotCQkqdCsrID0gKnMrKzsKLQotCXQgPSAodWxvbmcgKilDT05TT0xFX1JPV19MQVNUOwotCWwgPSBDT05TT0xFX1JPV19TSVpFIC8gc2l6ZW9mKHVsb25nKTsKLQotCXdoaWxlIChsLS0gPiAwKQotCQkqdCsrID0gdmFsOwotI2VuZGlmCiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb21tb24vbWlpcGh5dXRpbC5jIGIvY29tbW9uL21paXBoeXV0aWwuYwppbmRleCA2NmZkOWNhLi4xOTZlZjRhIDEwMDY0NAotLS0gYS9jb21tb24vbWlpcGh5dXRpbC5jCisrKyBiL2NvbW1vbi9taWlwaHl1dGlsLmMKQEAgLTI5OSw3ICsyOTksNyBAQAogCQlkZWJ1ZyAoIlBIWSBzdGF0dXMgcmVhZCBmYWlsZWRcbiIpOwogCQlyZXR1cm4gKC0xKTsKIAl9Ci0JaWYgKG1paXBoeV93cml0ZSAoZGV2bmFtZSwgYWRkciwgUEhZX0JNQ1IsIHJlZyB8IDB4ODAwMCkgIT0gMCkgeworCWlmIChtaWlwaHlfd3JpdGUgKGRldm5hbWUsIGFkZHIsIFBIWV9CTUNSLCByZWcgfCBQSFlfQk1DUl9SRVNFVCkgIT0gMCkgewogCQlkZWJ1ZyAoIlBIWSByZXNldCBmYWlsZWRcbiIpOwogCQlyZXR1cm4gKC0xKTsKIAl9CmRpZmYgLS1naXQgYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL01ha2VmaWxlIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9NYWtlZmlsZQppbmRleCA3M2FlZWFjLi4xMTRkOGFkIDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL01ha2VmaWxlCisrKyBiL2NwdS9hcm05MjB0L2F0OTFybTkyMDAvTWFrZWZpbGUKQEAgLTMxLDE0ICszMSwxNSBAQAogQ09CSlMJKz0gZG05MTYxLm8KIENPQkpTCSs9IGV0aGVyLm8KIENPQkpTCSs9IGkyYy5vCitDT0JKUy0kKENPTkZJR19LUzg3MjFfUEhZKQkrPSBrczg3MjEubwogQ09CSlMJKz0gbHh0OTcyLm8KIENPQkpTCSs9IHJlc2V0Lm8KIENPQkpTCSs9IHNwaS5vCiBDT0JKUwkrPSB0aW1lci5vCiBDT0JKUwkrPSB1c2IubwogCi1TUkNTCTo9ICQoU09CSlM6Lm89LlMpICQoQ09CSlM6Lm89LmMpCi1PQkpTCTo9ICQoYWRkcHJlZml4ICQob2JqKSwkKFNPQkpTKSAkKENPQkpTKSkKK1NSQ1MJOj0gJChTT0JKUzoubz0uUykgJChDT0JKUzoubz0uYykgJChDT0JKUy15Oi5vPS5jKQorT0JKUwk6PSAkKGFkZHByZWZpeCAkKG9iaiksJChTT0JKUykgJChDT0JKUykgJChDT0JKUy15KSkKIAogYWxsOgkkKG9iaikuZGVwZW5kICQoTElCKQogCmRpZmYgLS1naXQgYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL2tzODcyMS5jIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9rczg3MjEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmUzNzkzCi0tLSAvZGV2L251bGwKKysrIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9rczg3MjEuYwpAQCAtMCwwICsxLDI0OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgMjAwNgorICogQXV0aG9yIDogRXJpYyBCZW5hcmQgKEV1a3JlYSBFbGVjdHJvbWF0aXF1ZSkKKyAqIGJhc2VkIG9uIGRtOTE2MS5jIHdoaWNoIGlzIDoKKyAqIChDKSBDb3B5cmlnaHQgMjAwMworICogQXV0aG9yIDogSGFtaWQgSWtkb3VtaSAoQXRtZWwpCisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2luY2x1ZGUgPGF0OTFybTkyMDBfbmV0Lmg+CisjaW5jbHVkZSA8bmV0Lmg+CisjaW5jbHVkZSA8a3M4NzIxLmg+CisKKyNpZmRlZiBDT05GSUdfRFJJVkVSX0VUSEVSCisKKyNpZiBkZWZpbmVkKENPTkZJR19DTURfTkVUKQorCisvKgorICogTmFtZToKKyAqCWtzODcyMV9pc3BoeWNvbm5lY3RlZAorICogRGVzY3JpcHRpb246CisgKglSZWFkcyB0aGUgMiBQSFkgSUQgcmVnaXN0ZXJzCisgKiBBcmd1bWVudHM6CisgKglwX21hYyAtIHBvaW50ZXIgdG8gQVQ5MVNfRU1BQyBzdHJ1Y3QKKyAqIFJldHVybiB2YWx1ZToKKyAqCTEgLSBpZiBpZCByZWFkIHN1Y2Nlc3NmdWxseQorICoJMCAtIGlmIGVycm9yCisgKi8KK3Vuc2lnbmVkIGludCBrczg3MjFfaXNwaHljb25uZWN0ZWQoQVQ5MVBTX0VNQUMgcF9tYWMpCit7CisJdW5zaWduZWQgc2hvcnQgaWQxLCBpZDI7CisKKwlhdDkxcm05MjAwX0VtYWNFbmFibGVNRElPKHBfbWFjKTsKKwlhdDkxcm05MjAwX0VtYWNSZWFkUGh5KHBfbWFjLAorCQlDT05GSUdfUEhZX0FERFJFU1MgfCBLUzg3MjFfUEhZSUQxLCAmaWQxKTsKKwlhdDkxcm05MjAwX0VtYWNSZWFkUGh5KHBfbWFjLAorCQlDT05GSUdfUEhZX0FERFJFU1MgfCBLUzg3MjFfUEhZSUQyLCAmaWQyKTsKKwlhdDkxcm05MjAwX0VtYWNEaXNhYmxlTURJTyhwX21hYyk7CisKKwlpZiAoKGlkMSA9PSAoS1M4NzIxX1BIWUlEX09VSSA+PiA2KSkgJiYKKwkJKChpZDIgPj4gMTApID09IChLUzg3MjFfUEhZSURfT1VJICYgS1M4NzIxX0xTQl9NQVNLKSkpIHsKKwkJaWYgKChpZDIgJiBLUzg3MjFfTU9ERUxNQVNLKSA9PSBLUzg3MjFCTF9NT0RFTCkKKwkJCXByaW50ZigiTWljcmVsIEtTODcyMWJMIFBIWSBkZXRlY3RlZCA6ICIpOworCQllbHNlCisJCQlwcmludGYoIlVua25vd24gTWljcmVsIFBIWSBkZXRlY3RlZCA6ICIpOworCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBOYW1lOgorICoJa3M4NzIxX2dldGxpbmtzcGVlZAorICogRGVzY3JpcHRpb246CisgKglMaW5rIHBhcmFsbGVsIGRldGVjdGlvbiBzdGF0dXMgb2YgTUFDIGlzIGNoZWNrZWQgYW5kIHNldCBpbiB0aGUKKyAqCU1BQyBjb25maWd1cmF0aW9uIHJlZ2lzdGVycworICogQXJndW1lbnRzOgorICoJcF9tYWMgLSBwb2ludGVyIHRvIE1BQworICogUmV0dXJuIHZhbHVlOgorICoJMSAtIGlmIGxpbmsgc3RhdHVzIHNldCBzdWNjZXNmdWxseQorICoJMCAtIGlmIGxpbmsgc3RhdHVzIG5vdCBzZXQKKyAqLwordW5zaWduZWQgY2hhciBrczg3MjFfZ2V0bGlua3NwZWVkKEFUOTFQU19FTUFDIHBfbWFjKQoreworCXVuc2lnbmVkIHNob3J0IHN0YXQxOworCisJaWYgKCFhdDkxcm05MjAwX0VtYWNSZWFkUGh5KHBfbWFjLCBLUzg3MjFfQk1TUiwgJnN0YXQxKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoIShzdGF0MSAmIEtTODcyMV9MSU5LX1NUQVRVUykpIHsKKwkJLyogbGluayBzdGF0dXMgdXA/ICovCisJCXByaW50ZigiTGluayBEb3duICFcbiIpOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoc3RhdDEgJiBLUzg3MjFfMTAwQkFTRV9UWF9GRCkgeworCQkvKiBzZXQgRW1hYyBmb3IgMTAwQmFzZVRYIGFuZCBGdWxsIER1cGxleCAqLworCQlwcmludGYoIjEwMEJUIEZEXG4iKTsKKwkJcF9tYWMtPkVNQUNfQ0ZHIHw9IEFUOTFDX0VNQUNfU1BEIHwgQVQ5MUNfRU1BQ19GRDsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKHN0YXQxICYgS1M4NzIxXzEwQkFTRV9UX0ZEKSB7CisJCS8qIHNldCBNSUkgZm9yIDEwQmFzZVQgYW5kIEZ1bGwgRHVwbGV4ICovCisJCXByaW50ZigiMTBCVCBGRFxuIik7CisJCXBfbWFjLT5FTUFDX0NGRyA9IChwX21hYy0+RU1BQ19DRkcgJgorCQkJCX4oQVQ5MUNfRU1BQ19TUEQgfCBBVDkxQ19FTUFDX0ZEKSkKKwkJCQl8IEFUOTFDX0VNQUNfRkQ7CisJCXJldHVybiAxOworCX0KKworCWlmIChzdGF0MSAmIEtTODcyMV8xMDBCQVNFX1Q0X0hEKSB7CisJCS8qIHNldCBNSUkgZm9yIDEwMEJhc2VUWCBhbmQgSGFsZiBEdXBsZXggKi8KKwkJcHJpbnRmKCIxMDBCVCBIRFxuIik7CisJCXBfbWFjLT5FTUFDX0NGRyA9IChwX21hYy0+RU1BQ19DRkcgJgorCQkJCX4oQVQ5MUNfRU1BQ19TUEQgfCBBVDkxQ19FTUFDX0ZEKSkKKwkJCQl8IEFUOTFDX0VNQUNfU1BEOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoc3RhdDEgJiBLUzg3MjFfMTBCQVNFX1RfSEQpIHsKKwkJLyogc2V0IE1JSSBmb3IgMTBCYXNlVCBhbmQgSGFsZiBEdXBsZXggKi8KKwkJcHJpbnRmKCIxMEJUIEhEXG4iKTsKKwkJcF9tYWMtPkVNQUNfQ0ZHICY9IH4oQVQ5MUNfRU1BQ19TUEQgfCBBVDkxQ19FTUFDX0ZEKTsKKwkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogTmFtZToKKyAqCWtzODcyMV9pbml0cGh5CisgKiBEZXNjcmlwdGlvbjoKKyAqCU1BQyBzdGFydHMgY2hlY2tpbmcgaXRzIGxpbmsgYnkgdXNpbmcgcGFyYWxsZWwgZGV0ZWN0aW9uIGFuZAorICoJQXV0b25lZ290aWF0aW9uIGFuZCB0aGUgc2FtZSBpcyBzZXQgaW4gdGhlIE1BQyBjb25maWd1cmF0aW9uIHJlZ2lzdGVycworICogQXJndW1lbnRzOgorICoJcF9tYWMgLSBwb2ludGVyIHRvIHN0cnVjdCBBVDkxU19FTUFDCisgKiBSZXR1cm4gdmFsdWU6CisgKgkxIC0gaWYgbGluayBzdGF0dXMgc2V0IHN1Y2Nlc2Z1bGx5CisgKgkwIC0gaWYgbGluayBzdGF0dXMgbm90IHNldAorICovCit1bnNpZ25lZCBjaGFyIGtzODcyMV9pbml0cGh5KEFUOTFQU19FTUFDIHBfbWFjKQoreworCXVuc2lnbmVkIGNoYXIgcmV0ID0gMTsKKwl1bnNpZ25lZCBzaG9ydCBpbnR2YWx1ZTsKKworCWF0OTFybTkyMDBfRW1hY0VuYWJsZU1ESU8ocF9tYWMpOworCisJLyogVHJ5IGFub3RoZXIgdGltZSAqLworCWlmICgha3M4NzIxX2dldGxpbmtzcGVlZChwX21hYykpCisJCXJldCA9IGtzODcyMV9nZXRsaW5rc3BlZWQocF9tYWMpOworCisJLyogRGlzYWJsZSBQSFkgSW50ZXJydXB0cyAqLworCWludHZhbHVlID0gMDsKKwlhdDkxcm05MjAwX0VtYWNXcml0ZVBoeShwX21hYywKKwkJQ09ORklHX1BIWV9BRERSRVNTIHwgS1M4NzIxX01ESU5UUiwgJmludHZhbHVlKTsKKwlhdDkxcm05MjAwX0VtYWNEaXNhYmxlTURJTyhwX21hYyk7CisKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogTmFtZToKKyAqCWtzODcyMV9hdXRvbmVnb3RpYXRlCisgKiBEZXNjcmlwdGlvbjoKKyAqCU1BQyBBdXRvbmVnb3RpYXRlcyB3aXRoIHRoZSBwYXJ0bmVyIHN0YXR1cyBvZiBzYW1lIGlzIHNldCBpbiB0aGUKKyAqCU1BQyBjb25maWd1cmF0aW9uIHJlZ2lzdGVycworICogQXJndW1lbnRzOgorICoJZGV2IC0gcG9pbnRlciB0byBzdHJ1Y3QgbmV0X2RldmljZQorICogUmV0dXJuIHZhbHVlOgorICoJMSAtIGlmIGxpbmsgc3RhdHVzIHNldCBzdWNjZXNzZnVsbHkKKyAqCTAgLSBpZiBsaW5rIHN0YXR1cyBub3Qgc2V0CisgKi8KK3Vuc2lnbmVkIGNoYXIga3M4NzIxX2F1dG9uZWdvdGlhdGUoQVQ5MVBTX0VNQUMgcF9tYWMsIGludCAqc3RhdHVzKQoreworCXVuc2lnbmVkIHNob3J0IHZhbHVlOworCXVuc2lnbmVkIHNob3J0IHBoeWFuYXI7CisJdW5zaWduZWQgc2hvcnQgcGh5YW5hbHBhcjsKKworCS8qIFNldCBrczg3MjEgY29udHJvbCByZWdpc3RlciAqLworCWlmICghYXQ5MXJtOTIwMF9FbWFjUmVhZFBoeShwX21hYywKKwkJQ09ORklHX1BIWV9BRERSRVNTIHwgS1M4NzIxX0JNQ1IsICZ2YWx1ZSkpCisJCXJldHVybiAwOworCisJLyogcmVtb3ZlIGF1dG9uZWdvdGlhdGlvbiBlbmFibGUgKi8KKwl2YWx1ZSAmPSB+S1M4NzIxX0FVVE9ORUc7CisJLyogRWxlY3RyaWNhbGx5IGlzb2xhdGUgUEhZICovCisJdmFsdWUgfD0gS1M4NzIxX0lTT0xBVEU7CisJaWYgKCFhdDkxcm05MjAwX0VtYWNXcml0ZVBoeShwX21hYywKKwkJQ09ORklHX1BIWV9BRERSRVNTIHwgS1M4NzIxX0JNQ1IsICZ2YWx1ZSkpIHsKKwkJcmV0dXJuIDA7CisJfQorCS8qCisJICogU2V0IHRoZSBBdXRvX25lZ290aWF0aW9uIEFkdmVydGlzZW1lbnQgUmVnaXN0ZXIKKwkgKiBNSUkgYWR2ZXJ0aXNpbmcgZm9yIE5leHQgcGFnZSwgMTAwQmFzZVR4RkQgYW5kIEhELAorCSAqIDEwQmFzZVRGRCBhbmQgSEQsIElFRUUgODAyLjMKKwkgKi8KKwlwaHlhbmFyID0gS1M4NzIxX05QIHwgS1M4NzIxX1RYX0ZEWCB8IEtTODcyMV9UWF9IRFggfAorCQkgIEtTODcyMV8xMF9GRFggfCBLUzg3MjFfMTBfSERYIHwgS1M4NzIxX0FOX0lFRUVfODAyXzM7CisJaWYgKCFhdDkxcm05MjAwX0VtYWNXcml0ZVBoeShwX21hYywKKwkJQ09ORklHX1BIWV9BRERSRVNTIHwgS1M4NzIxX0FOQVIsICZwaHlhbmFyKSkgeworCQlyZXR1cm4gMDsKKwl9CisJLyogUmVhZCB0aGUgQ29udHJvbCBSZWdpc3RlciAqLworCWlmICghYXQ5MXJtOTIwMF9FbWFjUmVhZFBoeShwX21hYywKKwkJQ09ORklHX1BIWV9BRERSRVNTIHwgS1M4NzIxX0JNQ1IsICZ2YWx1ZSkpIHsKKwkJcmV0dXJuIDA7CisJfQorCXZhbHVlIHw9IEtTODcyMV9TUEVFRF9TRUxFQ1QgfCBLUzg3MjFfQVVUT05FRyB8IEtTODcyMV9EVVBMRVhfTU9ERTsKKwlpZiAoIWF0OTFybTkyMDBfRW1hY1dyaXRlUGh5KHBfbWFjLAorCQlDT05GSUdfUEhZX0FERFJFU1MgfCBLUzg3MjFfQk1DUiwgJnZhbHVlKSkgeworCQlyZXR1cm4gMDsKKwl9CisJLyogUmVzdGFydCBBdXRvX25lZ290aWF0aW9uICovCisJdmFsdWUgfD0gS1M4NzIxX1JFU1RBUlRfQVVUT05FRzsKKwl2YWx1ZSAmPSB+S1M4NzIxX0lTT0xBVEU7CisJaWYgKCFhdDkxcm05MjAwX0VtYWNXcml0ZVBoeShwX21hYywKKwkJQ09ORklHX1BIWV9BRERSRVNTIHwgS1M4NzIxX0JNQ1IsICZ2YWx1ZSkpIHsKKwkJcmV0dXJuIDA7CisJfQorCS8qIENoZWNrIEF1dG9OZWdvdGlhdGUgY29tcGxldGUgKi8KKwl1ZGVsYXkoMTAwMDApOworCWF0OTFybTkyMDBfRW1hY1JlYWRQaHkocF9tYWMsCisJCUNPTkZJR19QSFlfQUREUkVTUyB8IEtTODcyMV9CTVNSLCAmdmFsdWUpOworCWlmICghKHZhbHVlICYgS1M4NzIxX0FVVE9ORUdfQ09NUCkpCisJCXJldHVybiAwOworCisJLyogR2V0IHRoZSBBdXRvTmVnIExpbmsgcGFydG5lciBiYXNlIHBhZ2UgKi8KKwlpZiAoIWF0OTFybTkyMDBfRW1hY1JlYWRQaHkocF9tYWMsCisJCUNPTkZJR19QSFlfQUREUkVTUyB8IEtTODcyMV9BTkxQQVIsICZwaHlhbmFscGFyKSkgeworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoKHBoeWFuYXIgJiBLUzg3MjFfVFhfRkRYKSAmJiAocGh5YW5hbHBhciAmIEtTODcyMV9UWF9GRFgpKSB7CisJCS8qIFNldCBNSUkgZm9yIDEwMEJhc2VUWCBhbmQgRnVsbCBEdXBsZXggKi8KKwkJcF9tYWMtPkVNQUNfQ0ZHIHw9IEFUOTFDX0VNQUNfU1BEIHwgQVQ5MUNfRU1BQ19GRDsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKChwaHlhbmFyICYgS1M4NzIxXzEwX0ZEWCkgJiYgKHBoeWFuYWxwYXIgJiBLUzg3MjFfMTBfRkRYKSkgeworCQkvKiBTZXQgTUlJIGZvciAxMEJhc2VUIGFuZCBGdWxsIER1cGxleCAqLworCQlwX21hYy0+RU1BQ19DRkcgPSAocF9tYWMtPkVNQUNfQ0ZHICYKKwkJCQl+KEFUOTFDX0VNQUNfU1BEIHwgQVQ5MUNfRU1BQ19GRCkpCisJCQkJfCBBVDkxQ19FTUFDX0ZEOworCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZgkvKiBDT05GSUdfQ01EX05FVCAqLworCisjZW5kaWYJLyogQ09ORklHX0RSSVZFUl9FVEhFUiAqLwpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyNmVqcy9hdDkxL2xvd2xldmVsX2luaXQuUyBiL2NwdS9hcm05MjZlanMvYXQ5MS9sb3dsZXZlbF9pbml0LlMKaW5kZXggOTk2MmFlOS4uZjExZWJjNiAxMDA2NDQKLS0tIGEvY3B1L2FybTkyNmVqcy9hdDkxL2xvd2xldmVsX2luaXQuUworKysgYi9jcHUvYXJtOTI2ZWpzL2F0OTEvbG93bGV2ZWxfaW5pdC5TCkBAIC0xOTQsNyArMTk0LDggQEAKIAkud29yZCBDT05GSUdfU1lTX1BJT0RfUFBVRFJfVkFMCiAJLndvcmQgKEFUOTFfQkFTRV9TWVMgKyBBVDkxX1BJT0QgKyBQSU9fQVNSKQogCS53b3JkIENPTkZJR19TWVNfUElPRF9QUFVEUl9WQUwKLSNlbGlmIGRlZmluZWQoQ09ORklHX0FUOTFTQU05MjYwKSB8fCBkZWZpbmVkKENPTkZJR19BVDkxU0FNOTI2MSkKKyNlbGlmIGRlZmluZWQoQ09ORklHX0FUOTFTQU05MjYwKSB8fCBkZWZpbmVkKENPTkZJR19BVDkxU0FNOTI2MSkgXAorCXx8IGRlZmluZWQoQ09ORklHX0FUOTFTQU05RzIwKQogCS53b3JkIChBVDkxX0JBU0VfU1lTICsgQVQ5MV9QSU9DICsgUElPX1BEUikKIAkud29yZCBDT05GSUdfU1lTX1BJT0NfUERSX1ZBTDEKIAkud29yZCAoQVQ5MV9CQVNFX1NZUyArIEFUOTFfUElPQyArIFBJT19QVURSKQpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyNmVqcy9kYXZpbmNpL01ha2VmaWxlIGIvY3B1L2FybTkyNmVqcy9kYXZpbmNpL01ha2VmaWxlCmluZGV4IDc1MDFhODUuLmQ3ZTllMmMgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05MjZlanMvZGF2aW5jaS9NYWtlZmlsZQorKysgYi9jcHUvYXJtOTI2ZWpzL2RhdmluY2kvTWFrZWZpbGUKQEAgLTMxLDYgKzMxLDcgQEAKIENPQkpTLSQoQ09ORklHX1NPQ19ETTM1NSkJKz0gZG0zNTUubwogQ09CSlMtJChDT05GSUdfU09DX0RNMzY1KQkrPSBkbTM2NS5vCiBDT0JKUy0kKENPTkZJR19TT0NfRE02NDRYKQkrPSBkbTY0NHgubworQ09CSlMtJChDT05GSUdfU09DX0RNNjQ2WCkJKz0gZG02NDZ4Lm8KIENPQkpTLSQoQ09ORklHX0RSSVZFUl9USV9FTUFDKQkrPSBseHQ5NzIubyBkcDgzODQ4Lm8KIAogU09CSlMJPSByZXNldC5vCmRpZmYgLS1naXQgYS9jcHUvYXJtOTI2ZWpzL2RhdmluY2kvZG02NDZ4LmMgYi9jcHUvYXJtOTI2ZWpzL2RhdmluY2kvZG02NDZ4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI5ODI1ZgotLS0gL2Rldi9udWxsCisrKyBiL2NwdS9hcm05MjZlanMvZGF2aW5jaS9kbTY0NnguYwpAQCAtMCwwICsxLDQxIEBACisvKgorICogU29DLXNwZWNpZmljIGNvZGUgZm9yIFRNUzMyMERNNjQ2eCBjaGlwcworICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgorCit2b2lkIGRhdmluY2lfZW5hYmxlX3VhcnQwKHZvaWQpCit7CisJbHBzY19vbihEQVZJTkNJX0RNNjQ2WF9MUFNDX1VBUlQwKTsKK30KKworI2lmZGVmIENPTkZJR19EUklWRVJfVElfRU1BQwordm9pZCBkYXZpbmNpX2VuYWJsZV9lbWFjKHZvaWQpCit7CisJbHBzY19vbihEQVZJTkNJX0RNNjQ2WF9MUFNDX0VNQUMpOworfQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfRFJJVkVSX0RBVklOQ0lfSTJDCit2b2lkIGRhdmluY2lfZW5hYmxlX2kyYyh2b2lkKQoreworCWxwc2Nfb24oREFWSU5DSV9ETTY0NlhfTFBTQ19JMkMpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvYXJtOTI2ZWpzL2tpcmt3b29kL2NwdS5jIGIvY3B1L2FybTkyNmVqcy9raXJrd29vZC9jcHUuYwppbmRleCBiYWI1ZmFmLi42ZmMzOTAyIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI2ZWpzL2tpcmt3b29kL2NwdS5jCisrKyBiL2NwdS9hcm05MjZlanMva2lya3dvb2QvY3B1LmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxhc20vY2FjaGUuaD4KICNpbmNsdWRlIDx1LWJvb3QvbWQ1Lmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gva2lya3dvb2QuaD4KKyNpbmNsdWRlIDxodXNoLmg+CiAKICNkZWZpbmUgQlVGTEVOCTE2CiAKZGlmZiAtLWdpdCBhL2NwdS9hcm1fY29ydGV4YTgvY3B1LmMgYi9jcHUvYXJtX2NvcnRleGE4L2NwdS5jCmluZGV4IDVhNTk4MWUuLmEwMWUwZDYgMTAwNjQ0Ci0tLSBhL2NwdS9hcm1fY29ydGV4YTgvY3B1LmMKKysrIGIvY3B1L2FybV9jb3J0ZXhhOC9jcHUuYwpAQCAtNjQsNyArNjQsNyBAQAogCS8qIHR1cm4gb2ZmIEwyIGNhY2hlICovCiAJbDJfY2FjaGVfZGlzYWJsZSgpOwogCS8qIGludmFsaWRhdGUgTDIgY2FjaGUgYWxzbyAqLwotCXY3X2ZsdXNoX2RjYWNoZV9hbGwoZ2V0X2RldmljZV90eXBlKCkpOworCWludmFsaWRhdGVfZGNhY2hlKGdldF9kZXZpY2VfdHlwZSgpKTsKICNlbmRpZgogCWkgPSAwOwogCS8qIG1lbSBiYXJyaWVyIHRvIHN5bmMgdXAgdGhpbmdzICovCmRpZmYgLS1naXQgYS9jcHUvYXJtX2NvcnRleGE4L29tYXAzL01ha2VmaWxlIGIvY3B1L2FybV9jb3J0ZXhhOC9vbWFwMy9NYWtlZmlsZQppbmRleCBlZWYxNjVjLi4xMzZiMTYzIDEwMDY0NAotLS0gYS9jcHUvYXJtX2NvcnRleGE4L29tYXAzL01ha2VmaWxlCisrKyBiL2NwdS9hcm1fY29ydGV4YTgvb21hcDMvTWFrZWZpbGUKQEAgLTI2LDEwICsyNiwxMCBAQAogTElCCT0gICQob2JqKWxpYiQoU09DKS5hCiAKIFNPQkpTCTo9IGxvd2xldmVsX2luaXQubworU09CSlMJKz0gY2FjaGUubwogU09CSlMJKz0gcmVzZXQubwogCiBDT0JKUwkrPSBib2FyZC5vCi1DT0JKUwkrPSBjYWNoZS5vCiBDT0JKUwkrPSBjbG9jay5vCiBDT0JKUwkrPSBncGlvLm8KIENPQkpTCSs9IG1lbS5vCmRpZmYgLS1naXQgYS9jcHUvYXJtX2NvcnRleGE4L29tYXAzL2JvYXJkLmMgYi9jcHUvYXJtX2NvcnRleGE4L29tYXAzL2JvYXJkLmMKaW5kZXggYjhiZDA1Mi4uZGQyYzk0MCAxMDA2NDQKLS0tIGEvY3B1L2FybV9jb3J0ZXhhOC9vbWFwMy9ib2FyZC5jCisrKyBiL2NwdS9hcm1fY29ydGV4YTgvb21hcDMvYm9hcmQuYwpAQCAtMjAxLDcgKzIwMSw3IEBACiAJICogUmlnaHQgbm93IGZsdXNoaW5nIGF0IGxvdyBNUFUgc3BlZWQuCiAJICogTmVlZCB0byBtb3ZlIGFmdGVyIGNsb2NrIGluaXQKIAkgKi8KLQl2N19mbHVzaF9kY2FjaGVfYWxsKGdldF9kZXZpY2VfdHlwZSgpKTsKKwlpbnZhbGlkYXRlX2RjYWNoZShnZXRfZGV2aWNlX3R5cGUoKSk7CiAjaWZuZGVmIENPTkZJR19JQ0FDSEVfT0ZGCiAJaWNhY2hlX2VuYWJsZSgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvYXJtX2NvcnRleGE4L29tYXAzL2NhY2hlLlMgYi9jcHUvYXJtX2NvcnRleGE4L29tYXAzL2NhY2hlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGY2MzgxNQotLS0gL2Rldi9udWxsCisrKyBiL2NwdS9hcm1fY29ydGV4YTgvb21hcDMvY2FjaGUuUwpAQCAtMCwwICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOSBXaW5kIFJpdmVyIFN5c3RlbXMsIEluYy4KKyAqIFRvbSBSaXggPFRvbS5SaXhAd2luZHJpdmVyLmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgaXMgYmFzZWQgb24gYW5kIHJlcGxhY2VzIHRoZSBleGlzdGluZyBjYWNoZS5jIGZpbGUKKyAqIFRoZSBjb3B5cmlnaHRzIGZvciB0aGUgY2FjaGUuYyBmaWxlIGFyZToKKyAqCisgKiAoQykgQ29weXJpZ2h0IDIwMDggVGV4YXMgSW5zdHVybWVudHMKKyAqCisgKiAoQykgQ29weXJpZ2h0IDIwMDIKKyAqIFN5c2dvIFJlYWwtVGltZSBTb2x1dGlvbnMsIEdtYkggPHd3dy5lbGlub3MuY29tPgorICogTWFyaXVzIEdyb2VnZXIgPG1ncm9lZ2VyQHN5c2dvLmRlPgorICoKKyAqIChDKSBDb3B5cmlnaHQgMjAwMgorICogR2FyeSBKZW5uZWpvaG4sIERFTlggU29mdHdhcmUgRW5naW5lZXJpbmcsIDxnakBkZW54LmRlPgorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisKKyNpbmNsdWRlIDxhc20vYXJjaC9vbWFwMy5oPgorCisvKgorICogb21hcDMgY2FjaGUgY29kZQorICovCisKKy5hbGlnbiA1CisuZ2xvYmFsIGludmFsaWRhdGVfZGNhY2hlCisuZ2xvYmFsIGwyX2NhY2hlX2VuYWJsZQorLmdsb2JhbCBsMl9jYWNoZV9kaXNhYmxlCisKKy8qCisgKglpbnZhbGlkYXRlX2RjYWNoZSgpCisgKgorICoJSW52YWxpZGF0ZSB0aGUgd2hvbGUgRC1jYWNoZS4KKyAqCisgKglDb3JydXB0ZWQgcmVnaXN0ZXJzOiByMC1yNSwgcjcsIHI5LXIxMQorICoKKyAqCS0gbW0JLSBtbV9zdHJ1Y3QgZGVzY3JpYmluZyBhZGRyZXNzIHNwYWNlCisgKi8KK2ludmFsaWRhdGVfZGNhY2hlOgorCXN0bWZkCXIxMyEsIHtyMCAtIHI1LCByNywgcjkgLSByMTIsIHIxNH0KKworCW1vdglyNywgcjAJCQkJQCB0YWtlIGEgYmFja3VwIG9mIGRldmljZSB0eXBlCisJY21wCXIwLCAjMHgzCQkJQCBjaGVjayBpZiB0aGUgZGV2aWNlIHR5cGUgaXMKKwkJCQkJCUAgR1AKKwltb3ZlcSByMTIsICMweDEJCQkJQCBzZXQgdXAgdG8gaW52YWxpZGUgTDIKK3NtaToJLndvcmQgMHgwMTYwMDA3MAkJCUAgQ2FsbCBTTUkgbW9uaXRvciAoc21pZXEpCisJY21wCXI3LCAjMHgzCQkJQCBjb21wYXJlIGFnYWluIGluIGNhc2UgaXRzCisJCQkJCQlAIGxvc3QKKwliZXEJZmluaXNoZWRfaW52YWwJCQlAIGlmIEdQIGRldmljZSwgaW52YWwgZG9uZQorCQkJCQkJQCBhYm92ZQorCisJbXJjCXAxNSwgMSwgcjAsIGMwLCBjMCwgMQkJQCByZWFkIGNsaWRyCisJYW5kcwlyMywgcjAsICMweDcwMDAwMDAJCUAgZXh0cmFjdCBsb2MgZnJvbSBjbGlkcgorCW1vdglyMywgcjMsIGxzciAjMjMJCQlAIGxlZnQgYWxpZ24gbG9jIGJpdCBmaWVsZAorCWJlcQlmaW5pc2hlZF9pbnZhbAkJCUAgaWYgbG9jIGlzIDAsIHRoZW4gbm8gbmVlZCB0bworCQkJCQkJQCBjbGVhbgorCW1vdglyMTAsICMwCQkJCUAgc3RhcnQgY2xlYW4gYXQgY2FjaGUgbGV2ZWwgMAoraW52YWxfbG9vcDE6CisJYWRkCXIyLCByMTAsIHIxMCwgbHNyICMxCQlAIHdvcmsgb3V0IDN4IGN1cnJlbnQgY2FjaGUKKwkJCQkJCUAgbGV2ZWwKKwltb3YJcjEsIHIwLCBsc3IgcjIJCQlAIGV4dHJhY3QgY2FjaGUgdHlwZSBiaXRzIGZyb20KKwkJCQkJCUAgY2xpZHIKKwlhbmQJcjEsIHIxLCAjNwkJCUAgbWFzayBvZiB0aGUgYml0cyBmb3IgY3VycmVudAorCQkJCQkJQCBjYWNoZSBvbmx5CisJY21wCXIxLCAjMgkJCQlAIHNlZSB3aGF0IGNhY2hlIHdlIGhhdmUgYXQKKwkJCQkJCUAgdGhpcyBsZXZlbAorCWJsdAlza2lwX2ludmFsCQkJQCBza2lwIGlmIG5vIGNhY2hlLCBvciBqdXN0CisJCQkJCQlAIGktY2FjaGUKKwltY3IJcDE1LCAyLCByMTAsIGMwLCBjMCwgMAkJQCBzZWxlY3QgY3VycmVudCBjYWNoZSBsZXZlbAorCQkJCQkJQCBpbiBjc3NyCisJbW92CXIyLCAjMAkJCQlAIG9wZXJhbmQgZm9yIG1jciBTQloKKwltY3IJcDE1LCAwLCByMiwgYzcsIGM1LCA0CQlAIGZsdXNoIHByZWZldGNoIGJ1ZmZlciB0bworCQkJCQkJQCBzeWNoIHRoZSBuZXcgY3NzciZjc2lkciwKKwkJCQkJCUAgd2l0aCBhcm12NyB0aGlzIGlzICdpc2InLAorCQkJCQkJQCBidXQgd2UgY29tcGlsZSB3aXRoIGFybXY1CisJbXJjCXAxNSwgMSwgcjEsIGMwLCBjMCwgMAkJQCByZWFkIHRoZSBuZXcgY3NpZHIKKwlhbmQJcjIsIHIxLCAjNwkJCUAgZXh0cmFjdCB0aGUgbGVuZ3RoIG9mIHRoZQorCQkJCQkJQCBjYWNoZSBsaW5lcworCWFkZAlyMiwgcjIsICM0CQkJQCBhZGQgNCAobGluZSBsZW5ndGggb2Zmc2V0KQorCWxkcglyNCwgPTB4M2ZmCisJYW5kcwlyNCwgcjQsIHIxLCBsc3IgIzMJCUAgZmluZCBtYXhpbXVtIG51bWJlciBvbiB0aGUKKwkJCQkJCUAgd2F5IHNpemUKKwljbHoJcjUsIHI0CQkJCUAgZmluZCBiaXQgcG9zaXRpb24gb2Ygd2F5CisJCQkJCQlAIHNpemUgaW5jcmVtZW50CisJbGRyCXI3LCA9MHg3ZmZmCisJYW5kcwlyNywgcjcsIHIxLCBsc3IgIzEzCQlAIGV4dHJhY3QgbWF4IG51bWJlciBvZiB0aGUKKwkJCQkJCUAgaW5kZXggc2l6ZQoraW52YWxfbG9vcDI6CisJbW92CXI5LCByNAkJCQlAIGNyZWF0ZSB3b3JraW5nIGNvcHkgb2YgbWF4CisJCQkJCQlAIHdheSBzaXplCitpbnZhbF9sb29wMzoKKwlvcnIJcjExLCByMTAsIHI5LCBsc2wgcjUJCUAgZmFjdG9yIHdheSBhbmQgY2FjaGUgbnVtYmVyCisJCQkJCQlAIGludG8gcjExCisJb3JyCXIxMSwgcjExLCByNywgbHNsIHIyCQlAIGZhY3RvciBpbmRleCBudW1iZXIgaW50byByMTEKKwltY3IJcDE1LCAwLCByMTEsIGM3LCBjNiwgMgkJQCBpbnZhbGlkYXRlIGJ5IHNldC93YXkKKwlzdWJzCXI5LCByOSwgIzEJCQlAIGRlY3JlbWVudCB0aGUgd2F5CisJYmdlCWludmFsX2xvb3AzCisJc3VicwlyNywgcjcsICMxCQkJQCBkZWNyZW1lbnQgdGhlIGluZGV4CisJYmdlCWludmFsX2xvb3AyCitza2lwX2ludmFsOgorCWFkZAlyMTAsIHIxMCwgIzIJCQlAIGluY3JlbWVudCBjYWNoZSBudW1iZXIKKwljbXAJcjMsIHIxMAorCWJndAlpbnZhbF9sb29wMQorZmluaXNoZWRfaW52YWw6CisJbW92CXIxMCwgIzAJCQkJQCBzd2l0aCBiYWNrIHRvIGNhY2hlIGxldmVsIDAKKwltY3IJcDE1LCAyLCByMTAsIGMwLCBjMCwgMAkJQCBzZWxlY3QgY3VycmVudCBjYWNoZSBsZXZlbAorCQkJCQkJQCBpbiBjc3NyCisJbWNyCXAxNSwgMCwgcjEwLCBjNywgYzUsIDQJCUAgZmx1c2ggcHJlZmV0Y2ggYnVmZmVyLAorCQkJCQkJQCB3aXRoIGFybXY3IHRoaXMgaXMgJ2lzYicsCisJCQkJCQlAIGJ1dCB3ZSBjb21waWxlIHdpdGggYXJtdjUKKworCWxkbWZkCXIxMyEsIHtyMCAtIHI1LCByNywgcjkgLSByMTIsIHBjfQorCisKK2wyX2NhY2hlX2VuYWJsZToKKwlwdXNoCXtyMCwgcjEsIHIyLCBscn0KKwlAIEVTMiBvbndhcmRzIHdlIGNhbiBkaXNhYmxlL2VuYWJsZSBMMiBvdXJzZWx2ZXMKKwlibAlnZXRfY3B1X3JldgorCWNtcAlyMCwgI0NQVV8zWFhfRVMyMAorCWJsdAlsMl9jYWNoZV9kaXNhYmxlX0VBUkxJRVJfVEhBTl9FUzIKKwltcmMJMTUsIDAsIHIzLCBjcjEsIGNyMCwgMQorCW9ycglyMywgcjMsICMyCisJbWNyCTE1LCAwLCByMywgY3IxLCBjcjAsIDEKKwliCWwyX2NhY2hlX2VuYWJsZV9FTkQKK2wyX2NhY2hlX2VuYWJsZV9FQVJMSUVSX1RIQU5fRVMyOgorCUAgU2F2ZSByMCwgcjEyIGFuZCByZXN0b3JlIHRoZW0gYWZ0ZXIgdXNhZ2UKKwltb3YJcjMsIGlwCisJc3RyCXIzLCBbc3AsICM0XQorCW1vdglyMywgcjAKKwlACisJQCBHUCBEZXZpY2UgUk9NIGNvZGUgQVBJIHVzYWdlIGhlcmUKKwlAIHIxMiA9IEFVWENSIFdyaXRlIGZ1bmN0aW9uIGFuZCByMCB2YWx1ZQorCUAKKwltb3YJaXAsICMzCisJbXJjCTE1LCAwLCByMCwgY3IxLCBjcjAsIDEKKwlvcnIJcjAsIHIwLCAjMgorCUAgU01JIGluc3RydWN0aW9uIHRvIGNhbGwgUk9NIENvZGUgQVBJCisJLndvcmQJMHhlMTYwMDA3MAorCW1vdglyMCwgcjMKKwltb3YJaXAsIHIzCisJc3RyCXIzLCBbc3AsICM0XQorbDJfY2FjaGVfZW5hYmxlX0VORDoKKwlwb3AJe3IxLCByMiwgcjMsIHBjfQorCisKK2wyX2NhY2hlX2Rpc2FibGU6CisJcHVzaAl7cjAsIHIxLCByMiwgbHJ9CisJQCBFUzIgb253YXJkcyB3ZSBjYW4gZGlzYWJsZS9lbmFibGUgTDIgb3Vyc2VsdmVzCisJYmwJZ2V0X2NwdV9yZXYKKwljbXAJcjAsICNDUFVfM1hYX0VTMjAKKwlibHQJbDJfY2FjaGVfZGlzYWJsZV9FQVJMSUVSX1RIQU5fRVMyCisJbXJjCTE1LCAwLCByMywgY3IxLCBjcjAsIDEKKwliaWMJcjMsIHIzLCAjMgorCW1jcgkxNSwgMCwgcjMsIGNyMSwgY3IwLCAxCisJYglsMl9jYWNoZV9kaXNhYmxlX0VORAorbDJfY2FjaGVfZGlzYWJsZV9FQVJMSUVSX1RIQU5fRVMyOgorCUAgU2F2ZSByMCwgcjEyIGFuZCByZXN0b3JlIHRoZW0gYWZ0ZXIgdXNhZ2UKKwltb3YJcjMsIGlwCisJc3RyCXIzLCBbc3AsICM0XQorCW1vdglyMywgcjAKKwlACisJQCBHUCBEZXZpY2UgUk9NIGNvZGUgQVBJIHVzYWdlIGhlcmUKKwlAIHIxMiA9IEFVWENSIFdyaXRlIGZ1bmN0aW9uIGFuZCByMCB2YWx1ZQorCUAKKwltb3YJaXAsICMzCisJbXJjCTE1LCAwLCByMCwgY3IxLCBjcjAsIDEKKwliaWMJcjAsIHIwLCAjMgorCUAgU01JIGluc3RydWN0aW9uIHRvIGNhbGwgUk9NIENvZGUgQVBJCisJLndvcmQJMHhlMTYwMDA3MAorCW1vdglyMCwgcjMKKwltb3YJaXAsIHIzCisJc3RyCXIzLCBbc3AsICM0XQorbDJfY2FjaGVfZGlzYWJsZV9FTkQ6CisJcG9wCXtyMSwgcjIsIHIzLCBwY30KZGlmZiAtLWdpdCBhL2NwdS9hcm1fY29ydGV4YTgvb21hcDMvY2FjaGUuYyBiL2NwdS9hcm1fY29ydGV4YTgvb21hcDMvY2FjaGUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQ1YjQ0NC4uMDAwMDAwMAotLS0gYS9jcHUvYXJtX2NvcnRleGE4L29tYXAzL2NhY2hlLmMKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBACi0vKgotICogKEMpIENvcHlyaWdodCAyMDA4IFRleGFzIEluc3R1cm1lbnRzCi0gKgotICogKEMpIENvcHlyaWdodCAyMDAyCi0gKiBTeXNnbyBSZWFsLVRpbWUgU29sdXRpb25zLCBHbWJIIDx3d3cuZWxpbm9zLmNvbT4KLSAqIE1hcml1cyBHcm9lZ2VyIDxtZ3JvZWdlckBzeXNnby5kZT4KLSAqCi0gKiAoQykgQ29weXJpZ2h0IDIwMDIKLSAqIEdhcnkgSmVubmVqb2huLCBERU5YIFNvZnR3YXJlIEVuZ2luZWVyaW5nLCA8Z2pAZGVueC5kZT4KLSAqCi0gKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcwotICogcHJvamVjdC4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKLSAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAotICogTUEgMDIxMTEtMTMwNyBVU0EKLSAqLwotCi0vKgotICogb21hcDMgTDIgY2FjaGUgY29kZQotICovCi0KLSNpbmNsdWRlIDxjb21tb24uaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9zeXNfcHJvdG8uaD4KLSNpbmNsdWRlIDxhc20vY2FjaGUuaD4KLQotdm9pZCBsMl9jYWNoZV9lbmFibGUodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGk7Ci0Jdm9sYXRpbGUgdW5zaWduZWQgaW50IGo7Ci0KLQkvKiBFUzIgb253YXJkcyB3ZSBjYW4gZGlzYWJsZS9lbmFibGUgTDIgb3Vyc2VsdmVzICovCi0JaWYgKGdldF9jcHVfcmV2KCkgPj0gQ1BVXzNYWF9FUzIwKSB7Ci0JCV9fYXNtX18gX192b2xhdGlsZV9fKCJtcmMgcDE1LCAwLCAlMCwgYzEsIGMwLCAxIjoiPXIiKGkpKTsKLQkJX19hc21fXyBfX3ZvbGF0aWxlX18oIm9yciAlMCwgJTAsICMweDIiOiI9ciIoaSkpOwotCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygibWNyIHAxNSwgMCwgJTAsIGMxLCBjMCwgMSI6Ij1yIihpKSk7Ci0JfSBlbHNlIHsKLQkJLyogU2F2ZSByMCwgcjEyIGFuZCByZXN0b3JlIHRoZW0gYWZ0ZXIgdXNhZ2UgKi8KLQkJX19hc21fXyBfX3ZvbGF0aWxlX18oIm1vdiAlMCwgcjEyIjoiPXIiKGopKTsKLQkJX19hc21fXyBfX3ZvbGF0aWxlX18oIm1vdiAlMCwgcjAiOiI9ciIoaSkpOwotCi0JCS8qCi0JCSAqIEdQIERldmljZSBST00gY29kZSBBUEkgdXNhZ2UgaGVyZQotCQkgKiByMTIgPSBBVVhDUiBXcml0ZSBmdW5jdGlvbiBhbmQgcjAgdmFsdWUKLQkJICovCi0JCV9fYXNtX18gX192b2xhdGlsZV9fKCJtb3YgcjEyLCAjMHgzIik7Ci0JCV9fYXNtX18gX192b2xhdGlsZV9fKCJtcmMgcDE1LCAwLCByMCwgYzEsIGMwLCAxIik7Ci0JCV9fYXNtX18gX192b2xhdGlsZV9fKCJvcnIgcjAsIHIwLCAjMHgyIik7Ci0JCS8qIFNNSSBpbnN0cnVjdGlvbiB0byBjYWxsIFJPTSBDb2RlIEFQSSAqLwotCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiLndvcmQgMHhFMTYwMDA3MCIpOwotCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92IHIwLCAlMCI6Ij1yIihpKSk7Ci0JCV9fYXNtX18gX192b2xhdGlsZV9fKCJtb3YgcjEyLCAlMCI6Ij1yIihqKSk7Ci0JfQotCi19Ci0KLXZvaWQgbDJfY2FjaGVfZGlzYWJsZSh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgaTsKLQl2b2xhdGlsZSB1bnNpZ25lZCBpbnQgajsKLQotCS8qIEVTMiBvbndhcmRzIHdlIGNhbiBkaXNhYmxlL2VuYWJsZSBMMiBvdXJzZWx2ZXMgKi8KLQlpZiAoZ2V0X2NwdV9yZXYoKSA+PSBDUFVfM1hYX0VTMjApIHsKLQkJX19hc21fXyBfX3ZvbGF0aWxlX18oIm1yYyBwMTUsIDAsICUwLCBjMSwgYzAsIDEiOiI9ciIoaSkpOwotCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiYmljICUwLCAlMCwgIzB4MiI6Ij1yIihpKSk7Ci0JCV9fYXNtX18gX192b2xhdGlsZV9fKCJtY3IgcDE1LCAwLCAlMCwgYzEsIGMwLCAxIjoiPXIiKGkpKTsKLQl9IGVsc2UgewotCQkvKiBTYXZlIHIwLCByMTIgYW5kIHJlc3RvcmUgdGhlbSBhZnRlciB1c2FnZSAqLwotCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92ICUwLCByMTIiOiI9ciIoaikpOwotCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92ICUwLCByMCI6Ij1yIihpKSk7Ci0KLQkJLyoKLQkJICogR1AgRGV2aWNlIFJPTSBjb2RlIEFQSSB1c2FnZSBoZXJlCi0JCSAqIHIxMiA9IEFVWENSIFdyaXRlIGZ1bmN0aW9uIGFuZCByMCB2YWx1ZQotCQkgKi8KLQkJX19hc21fXyBfX3ZvbGF0aWxlX18oIm1vdiByMTIsICMweDMiKTsKLQkJX19hc21fXyBfX3ZvbGF0aWxlX18oIm1yYyBwMTUsIDAsIHIwLCBjMSwgYzAsIDEiKTsKLQkJX19hc21fXyBfX3ZvbGF0aWxlX18oImJpYyByMCwgcjAsICMweDIiKTsKLQkJLyogU01JIGluc3RydWN0aW9uIHRvIGNhbGwgUk9NIENvZGUgQVBJICovCi0JCV9fYXNtX18gX192b2xhdGlsZV9fKCIud29yZCAweEUxNjAwMDcwIik7Ci0JCV9fYXNtX18gX192b2xhdGlsZV9fKCJtb3YgcjAsICUwIjoiPXIiKGkpKTsKLQkJX19hc21fXyBfX3ZvbGF0aWxlX18oIm1vdiByMTIsICUwIjoiPXIiKGopKTsKLQl9Ci19CmRpZmYgLS1naXQgYS9jcHUvYXJtX2NvcnRleGE4L3N0YXJ0LlMgYi9jcHUvYXJtX2NvcnRleGE4L3N0YXJ0LlMKaW5kZXggNmJkNjU1Mi4uMTRhOWJkMyAxMDA2NDQKLS0tIGEvY3B1L2FybV9jb3J0ZXhhOC9zdGFydC5TCisrKyBiL2NwdS9hcm1fY29ydGV4YTgvc3RhcnQuUwpAQCAtNDE1LDg4ICs0MTUsMyBAQAogCiAjZW5kaWYKIAotLyoKLSAqCXY3X2ZsdXNoX2RjYWNoZV9hbGwoKQotICoKLSAqCUZsdXNoIHRoZSB3aG9sZSBELWNhY2hlLgotICoKLSAqCUNvcnJ1cHRlZCByZWdpc3RlcnM6IHIwLXI1LCByNywgcjktcjExCi0gKgotICoJLSBtbQktIG1tX3N0cnVjdCBkZXNjcmliaW5nIGFkZHJlc3Mgc3BhY2UKLSAqLwotCS5hbGlnbiA1Ci0uZ2xvYmFsIHY3X2ZsdXNoX2RjYWNoZV9hbGwKLXY3X2ZsdXNoX2RjYWNoZV9hbGw6Ci0Jc3RtZmQJcjEzISwge3IwIC0gcjUsIHI3LCByOSAtIHIxMiwgcjE0fQotCi0JbW92CXI3LCByMAkJCQlAIHRha2UgYSBiYWNrdXAgb2YgZGV2aWNlIHR5cGUKLQljbXAJcjAsICMweDMJCQlAIGNoZWNrIGlmIHRoZSBkZXZpY2UgdHlwZSBpcwotCQkJCQkJQCBHUAotCW1vdmVxIHIxMiwgIzB4MQkJCQlAIHNldCB1cCB0byBpbnZhbGlkZSBMMgotc21pOgkud29yZCAweDAxNjAwMDcwCQkJQCBDYWxsIFNNSSBtb25pdG9yIChzbWllcSkKLQljbXAJcjcsICMweDMJCQlAIGNvbXBhcmUgYWdhaW4gaW4gY2FzZSBpdHMKLQkJCQkJCUAgbG9zdAotCWJlcQlmaW5pc2hlZF9pbnZhbAkJCUAgaWYgR1AgZGV2aWNlLCBpbnZhbCBkb25lCi0JCQkJCQlAIGFib3ZlCi0KLQltcmMJcDE1LCAxLCByMCwgYzAsIGMwLCAxCQlAIHJlYWQgY2xpZHIKLQlhbmRzCXIzLCByMCwgIzB4NzAwMDAwMAkJQCBleHRyYWN0IGxvYyBmcm9tIGNsaWRyCi0JbW92CXIzLCByMywgbHNyICMyMwkJCUAgbGVmdCBhbGlnbiBsb2MgYml0IGZpZWxkCi0JYmVxCWZpbmlzaGVkX2ludmFsCQkJQCBpZiBsb2MgaXMgMCwgdGhlbiBubyBuZWVkIHRvCi0JCQkJCQlAIGNsZWFuCi0JbW92CXIxMCwgIzAJCQkJQCBzdGFydCBjbGVhbiBhdCBjYWNoZSBsZXZlbCAwCi1pbnZhbF9sb29wMToKLQlhZGQJcjIsIHIxMCwgcjEwLCBsc3IgIzEJCUAgd29yayBvdXQgM3ggY3VycmVudCBjYWNoZQotCQkJCQkJQCBsZXZlbAotCW1vdglyMSwgcjAsIGxzciByMgkJCUAgZXh0cmFjdCBjYWNoZSB0eXBlIGJpdHMgZnJvbQotCQkJCQkJQCBjbGlkcgotCWFuZAlyMSwgcjEsICM3CQkJQCBtYXNrIG9mIHRoZSBiaXRzIGZvciBjdXJyZW50Ci0JCQkJCQlAIGNhY2hlIG9ubHkKLQljbXAJcjEsICMyCQkJCUAgc2VlIHdoYXQgY2FjaGUgd2UgaGF2ZSBhdAotCQkJCQkJQCB0aGlzIGxldmVsCi0JYmx0CXNraXBfaW52YWwJCQlAIHNraXAgaWYgbm8gY2FjaGUsIG9yIGp1c3QKLQkJCQkJCUAgaS1jYWNoZQotCW1jcglwMTUsIDIsIHIxMCwgYzAsIGMwLCAwCQlAIHNlbGVjdCBjdXJyZW50IGNhY2hlIGxldmVsCi0JCQkJCQlAIGluIGNzc3IKLQltb3YJcjIsICMwCQkJCUAgb3BlcmFuZCBmb3IgbWNyIFNCWgotCW1jcglwMTUsIDAsIHIyLCBjNywgYzUsIDQJCUAgZmx1c2ggcHJlZmV0Y2ggYnVmZmVyIHRvCi0JCQkJCQlAIHN5Y2ggdGhlIG5ldyBjc3NyJmNzaWRyLAotCQkJCQkJQCB3aXRoIGFybXY3IHRoaXMgaXMgJ2lzYicsCi0JCQkJCQlAIGJ1dCB3ZSBjb21waWxlIHdpdGggYXJtdjUKLQltcmMJcDE1LCAxLCByMSwgYzAsIGMwLCAwCQlAIHJlYWQgdGhlIG5ldyBjc2lkcgotCWFuZAlyMiwgcjEsICM3CQkJQCBleHRyYWN0IHRoZSBsZW5ndGggb2YgdGhlCi0JCQkJCQlAIGNhY2hlIGxpbmVzCi0JYWRkCXIyLCByMiwgIzQJCQlAIGFkZCA0IChsaW5lIGxlbmd0aCBvZmZzZXQpCi0JbGRyCXI0LCA9MHgzZmYKLQlhbmRzCXI0LCByNCwgcjEsIGxzciAjMwkJQCBmaW5kIG1heGltdW0gbnVtYmVyIG9uIHRoZQotCQkJCQkJQCB3YXkgc2l6ZQotCWNseglyNSwgcjQJCQkJQCBmaW5kIGJpdCBwb3NpdGlvbiBvZiB3YXkKLQkJCQkJCUAgc2l6ZSBpbmNyZW1lbnQKLQlsZHIJcjcsID0weDdmZmYKLQlhbmRzCXI3LCByNywgcjEsIGxzciAjMTMJCUAgZXh0cmFjdCBtYXggbnVtYmVyIG9mIHRoZQotCQkJCQkJQCBpbmRleCBzaXplCi1pbnZhbF9sb29wMjoKLQltb3YJcjksIHI0CQkJCUAgY3JlYXRlIHdvcmtpbmcgY29weSBvZiBtYXgKLQkJCQkJCUAgd2F5IHNpemUKLWludmFsX2xvb3AzOgotCW9ycglyMTEsIHIxMCwgcjksIGxzbCByNQkJQCBmYWN0b3Igd2F5IGFuZCBjYWNoZSBudW1iZXIKLQkJCQkJCUAgaW50byByMTEKLQlvcnIJcjExLCByMTEsIHI3LCBsc2wgcjIJCUAgZmFjdG9yIGluZGV4IG51bWJlciBpbnRvIHIxMQotCW1jcglwMTUsIDAsIHIxMSwgYzcsIGM2LCAyCQlAIGludmFsaWRhdGUgYnkgc2V0L3dheQotCXN1YnMJcjksIHI5LCAjMQkJCUAgZGVjcmVtZW50IHRoZSB3YXkKLQliZ2UJaW52YWxfbG9vcDMKLQlzdWJzCXI3LCByNywgIzEJCQlAIGRlY3JlbWVudCB0aGUgaW5kZXgKLQliZ2UJaW52YWxfbG9vcDIKLXNraXBfaW52YWw6Ci0JYWRkCXIxMCwgcjEwLCAjMgkJCUAgaW5jcmVtZW50IGNhY2hlIG51bWJlcgotCWNtcAlyMywgcjEwCi0JYmd0CWludmFsX2xvb3AxCi1maW5pc2hlZF9pbnZhbDoKLQltb3YJcjEwLCAjMAkJCQlAIHN3aXRoIGJhY2sgdG8gY2FjaGUgbGV2ZWwgMAotCW1jcglwMTUsIDIsIHIxMCwgYzAsIGMwLCAwCQlAIHNlbGVjdCBjdXJyZW50IGNhY2hlIGxldmVsCi0JCQkJCQlAIGluIGNzc3IKLQltY3IJcDE1LCAwLCByMTAsIGM3LCBjNSwgNAkJQCBmbHVzaCBwcmVmZXRjaCBidWZmZXIsCi0JCQkJCQlAIHdpdGggYXJtdjcgdGhpcyBpcyAnaXNiJywKLQkJCQkJCUAgYnV0IHdlIGNvbXBpbGUgd2l0aCBhcm12NQotCi0JbGRtZmQJcjEzISwge3IwIC0gcjUsIHI3LCByOSAtIHIxMiwgcGN9CmRpZmYgLS1naXQgYS9jcHUvYmxhY2tmaW4vaW50ZXJydXB0cy5jIGIvY3B1L2JsYWNrZmluL2ludGVycnVwdHMuYwppbmRleCBiZjZmYjRiLi4xOTQ1NmU1IDEwMDY0NAotLS0gYS9jcHUvYmxhY2tmaW4vaW50ZXJydXB0cy5jCisrKyBiL2NwdS9ibGFja2Zpbi9pbnRlcnJ1cHRzLmMKQEAgLTIwLDYgKzIwLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGNvbmZpZy5oPgorI2luY2x1ZGUgPHdhdGNoZG9nLmg+CiAjaW5jbHVkZSA8YXNtL2JsYWNrZmluLmg+CiAjaW5jbHVkZSAiY3B1LmgiCiAKQEAgLTcwLDYgKzcxLDggQEAKIAljY2xrID0gKENPTkZJR19DQ0xLX0haKTsKIAogCXdoaWxlICh1c2VjID4gMSkgeworCQlXQVRDSERPR19SRVNFVCgpOworCiAJCS8qCiAJCSAqIGhvdyBtYW55IGNsb2NrIHRpY2tzIHRvIGRlbGF5PwogCQkgKiAgLSByZXF1ZXN0KGluIHVzZWNvbmRzKSAqIGNsb2NrX3RpY2tzKEh6KSAvIHVzZWNvbmRzL3NlY29uZApkaWZmIC0tZ2l0IGEvY3B1L21wYzh4eHgvZGRyL3V0aWwuYyBiL2NwdS9tcGM4eHh4L2Rkci91dGlsLmMKaW5kZXggNDQ1MTk4OS4uMWUyZDkyMSAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eHgvZGRyL3V0aWwuYworKysgYi9jcHUvbXBjOHh4eC9kZHIvdXRpbC5jCkBAIC04OSwxNyArODksMTggQEAKIAkJCT8gTEFXX1RSR1RfSUZfRERSX0lOVFJMViA6IExBV19UUkdUX0lGX0REUl8xOwogCiAJCWlmIChzZXRfZGRyX2xhd3MoYmFzZSwgc2l6ZSwgbGF3YmFyMV90YXJnZXRfaWQpIDwgMCkgewotCQkJcHJpbnRmKCJFUlJPUlxuIik7CisJCQlwcmludGYoIiVzOiBFUlJPUiAoY3RybCAjMCwgaW50cmx2PSVkKVxuIiwgX19mdW5jX18sCisJCQkJbWVtY3RsX2ludGVybGVhdmVkKTsKIAkJCXJldHVybiA7CiAJCX0KIAl9IGVsc2UgaWYgKGN0cmxfbnVtID09IDEpIHsKIAkJaWYgKHNldF9kZHJfbGF3cyhiYXNlLCBzaXplLCBMQVdfVFJHVF9JRl9ERFJfMikgPCAwKSB7Ci0JCQlwcmludGYoIkVSUk9SXG4iKTsKKwkJCXByaW50ZigiJXM6IEVSUk9SIChjdHJsICMxKVxuIiwgX19mdW5jX18pOwogCQkJcmV0dXJuIDsKIAkJfQogCX0gZWxzZSB7Ci0JCXByaW50ZigidW5leHBlY3RlZCBjb250cm9sbGVyIG51bWJlciAldSBpbiAlc1xuIiwKLQkJCWN0cmxfbnVtLCBfX0ZVTkNUSU9OX18pOworCQlwcmludGYoIiVzOiB1bmV4cGVjdGVkIEREUiBjb250cm9sbGVyIG51bWJlciAoJXUpXG4iLCBfX2Z1bmNfXywKKwkJCWN0cmxfbnVtKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2Rpc2svcGFydF9kb3MuYyBiL2Rpc2svcGFydF9kb3MuYwppbmRleCBiOTE1ZWI3Li44ODdiNzVlIDEwMDY0NAotLS0gYS9kaXNrL3BhcnRfZG9zLmMKKysrIGIvZGlzay9wYXJ0X2Rvcy5jCkBAIC0xODgsNyArMTg4LDggQEAKIAkJICogZmRpc2sgZG9lcyBub3Qgc2hvdyB0aGUgZXh0ZW5kZWQgcGFydGl0aW9ucyB0aGF0CiAJCSAqIGFyZSBub3QgaW4gdGhlIE1CUgogCQkgKi8KLQkJaWYgKChwdC0+c3lzX2luZCAhPSAwKSAmJgorCQlpZiAoKChwdC0+Ym9vdF9pbmQgJiB+MHg4MCkgPT0gMCkgJiYKKwkJICAgIChwdC0+c3lzX2luZCAhPSAwKSAmJgogCQkgICAgKHBhcnRfbnVtID09IHdoaWNoX3BhcnQpICYmCiAJCSAgICAoaXNfZXh0ZW5kZWQocHQtPnN5c19pbmQpID09IDApKSB7CiAJCQlpbmZvLT5ibGtzeiA9IDUxMjsKZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUuYml0YmFuZ01JSSBiL2RvYy9SRUFETUUuYml0YmFuZ01JSQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGQwODU2Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL1JFQURNRS5iaXRiYW5nTUlJCkBAIC0wLDAgKzEsNTYgQEAKK1RoaXMgcGF0Y2ggcmV3cml0ZXMgdGhlIG1paXBoeWJiICggQml0LWJhbmdlZCBNSUkgYnVzIGRyaXZlciApIGluIG9yZGVyIHRvCitzdXBwb3J0IGFuIGFyYml0cmFyeSBudW1iZXIgb2YgbWlpIGJ1c2VzLiBUaGlzIGZlYXR1cmUgaXMgdXNlZnVsIHdoZW4geW91cgorYm9hcmQgdXNlcyBkaWZmZXJlbnQgbWlpIGJ1c2VzIGZvciBkaWZmZXJlbnQgcGh5cyBhbmQgYWxsIChvciBhIHBhcnQpIG9mIHRoZXNlCitidXNlcyBhcmUgaW1wbGVtZW50ZWQgdmlhIGJpdC1iYW5naW5nIG1vZGUuCisKK1RoZSBkcml2ZXIgcmVxdWlyZXMgdGhhdCB0aGUgZm9sbG93aW5nIG1hY3JvcyBzaG91bGQgYmUgZGVmaW5lZCBpbnRvIHRoZSBib2FyZAorY29uZmlndXJhdGlvbiBmaWxlOgorCitDT05GSUdfQklUQkFOR01JSSAgICAgICAtIEVuYWJsZSB0aGUgbWlpcGh5YmIgZHJpdmVyCitDT05GSUdfQklUQkFOR01JSV9NVUxUSSAtIEVuYWJsZSB0aGUgbXVsdGkgYnVzIHN1cHBvcnQKKworSWYgdGhlIENPTkZJR19CSVRCQU5HTUlJX01VTFRJIGlzIG5vdCBkZWZpbmVkLCB0aGUgYm9hcmQncyBjb25maWcgZmlsZSBuZWVkcwordG8gZGVmaW5lIGF0IGxlYXN0IHRoZSBmb2xsb3dpbmcgbWFjcm9zOgorCitNSUlfSU5JVCAgICAgIC0gR2VuZXJpYyBjb2RlIHRvIGVuYWJsZSB0aGUgTUlJIGJ1cyAob3B0aW9uYWwpCitNRElPX0RFQ0xBUkUgIC0gRGVjbGFyYXRpb24gbmVlZGVkIHRvIGFjY2VzcyB0byB0aGUgTURJTyBwaW4gKG9wdGlvbmFsKQorTURJT19BQ1RJVkUgICAtIEFjdGl2YXRlIHRoZSBNRElPIHBpbiBhcyBvdXQgcGluCitNRElPX1RSSVNUQVRFIC0gQWN0aXZhdGUgdGhlIE1ESU8gcGluIGFzIGlucHV0L3RyaXN0YXRlIHBpbgorTURJT19SRUFEICAgICAtIFJlYWQgdGhlIE1ESU8gcGluCitNRElPKHYpICAgICAgIC0gV3JpdGUgdiBvbiB0aGUgTURJTyBwaW4KK01EQ19ERUNMQVJFICAgLSBEZWNsYXJhdGlvbiBuZWVkZWQgdG8gYWNjZXNzIHRvIHRoZSBNREMgcGluIChvcHRpb25hbCkKK01EQyh2KSAgICAgICAgLSBXcml0ZSB2IG9uIHRoZSBNREMgcGluCisKK1RoZSBwcmV2aW91cyBtYWNyb3MgbWFrZSB0aGUgZHJpdmVyIGNvbXBhdGlibGUgd2l0aCB0aGUgcHJldmlvdXMgdmVyc2lvbgorKHRoYXQgZGlkbid0IHN1cHBvcnQgdGhlIG11bHRpLWJ1cykuCisKK1doZW4gdGhlIENPTkZJR19CSVRCQU5HTUlJX01VTFRJIGlzIGFsc28gZGVmaW5lZCwgdGhlIGJvYXJkIGNvZGUgbmVlZHMgdG8gZmlsbAordGhlIGJiX21paXBoeV9idXNlc1tdIGFycmF5IHdpdGggYSByZWNvcmQgZm9yIGVhY2ggcmVxdWlyZWQgYnVzIGFuZCBkZWNsYXJlCit0aGUgYmJfbWlpcGh5X2J1c2VzX251bSB2YXJpYWJsZSB3aXRoIHRoZSBudW1iZXIgb2YgbWlpIGJ1c2VzLgorVGhlIHJlY29yZCAoc3RydWN0IGJiX21paXBoeV9idXMpIGhhcyB0aGUgZm9sbG93aW5nIGZpZWxkcy9jYWxsYmFja3MgKHNlZQorbWlpcGh5LmggZm9yIGRldGFpbHMpOgorCitjaGFyIG5hbWVbXSAgICAgICAgICAgIC0gVGhlIHN5bWJvbGljIG5hbWUgdGhhdCBtdXN0IGJlIGVxdWFsIHRvIHRoZSBNSUkgYnVzCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJlZCBuYW1lCitpbnQgKCppbml0KSgpICAgICAgICAgIC0gSW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gY2FsbGVkIGF0IHN0YXJ0dXAgdGltZSAoanVzdAorICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZSB0aGUgRXRoZXJuZXQgaW5pdGlhbGl6YXRpb24pCitpbnQgKCptZGlvX2FjdGl2ZSkoKSAgIC0gQWN0aXZhdGUgdGhlIE1ESU8gcGluIGFzIG91dHB1dAoraW50ICgqbWRpb190cmlzdGF0ZSkoKSAtIEFjdGl2YXRlIHRoZSBNRElPIHBpbiBhcyBpbnB1dC90cmlzdGF0ZSBwaW4KK2ludCAoKnNldF9tZGlvKSgpICAgICAgLSBXcml0ZSB0aGUgTURJTyBwaW4KK2ludCAoKmdldF9tZGlvKSgpICAgICAgLSBSZWFkIHRoZSBNRElPIHBpbgoraW50ICgqc2V0X21kYykoKSAgICAgICAtIFdyaXRlIHRoZSBNREMgcGluCitpbnQgKCpkZWxheSkoKSAgICAgICAgIC0gRGVsYXkgZnVuY3Rpb24KK3ZvaWQgKnByaXYgICAgICAgICAgICAgLSBQcml2YXRlIGRhdGEgdXNlZCBieSBib2FyZCBzcGVjaWZpYyBjb2RlCisKK1RoZSBib2FyZCBjb2RlIHdpbGwgbG9vayBsaWtlOgorCitzdHJ1Y3QgYmJfbWlpcGh5X2J1cyBiYl9taWlwaHlfYnVzZXNbXSA9IHsKKyB7IC5uYW1lID0gIm1paWJ1cyMxIiwgLmluaXQgPSBiMV9pbml0LCAubWRpb19hY3RpdmUgPSBiMV9tZGlvX2FjdGl2ZSwgLi4uIH0sCisgeyAubmFtZSA9ICJtaWlidXMjMiIsIC5pbml0ID0gYjJfaW5pdCwgLm1kaW9fYWN0aXZlID0gYjJfbWRpb19hY3RpdmUsIC4uLiB9LAorIC4uLgorfTsKK2ludCBiYl9taWlwaHlfYnVzZXNfbnVtID0gc2l6ZW9mKGJiX21paXBoeV9idXNlcykgLworICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoYmJfbWlpcGh5X2J1c2VzWzBdKTsKKworMjAwOSBJbmR1c3RyaWUgRGlhbCBGYWNlIFMucC5BLgorICAgICBMdWlnaSAnQ29taW8nIE1hbnRlbGxpbmkgPGx1aWdpLm1hbnRlbGxpbmlAaWRmLWhpdC5jb20+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jpb3NfZW11bGF0b3IveDg2ZW11L29wcy5jIGIvZHJpdmVycy9iaW9zX2VtdWxhdG9yL3g4NmVtdS9vcHMuYwppbmRleCBmODg0ZTliLi5jODM2YTIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jpb3NfZW11bGF0b3IveDg2ZW11L29wcy5jCisrKyBiL2RyaXZlcnMvYmlvc19lbXVsYXRvci94ODZlbXUvb3BzLmMKQEAgLTcwLDkgKzcwLDYgQEAKICogY2FsbHMgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQ7IG90aGVyd2lzZSBtaXN0YWtlcyBpbiBjb2RpbmcgYW4KICogImFkZCIgd291bGQgcmVwcmVzZW50IGEgbmlnaHRtYXJlIGluIG1haW50ZW5hbmNlLgogKgotKiBKYXNvbiBwb3J0ZWQgdGhpcyBmaWxlIHRvIHUtYm9vdC4gcGxhY2UgYWxsIHRoZSBmdW5jdGlvbiBwb2ludGVyIGluCi0qIHRoZSBnb3QyIHNlY3Rvci4gUmVtb3ZlZCBzb21lIG9wY29kZS4KLSoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNpbmNsdWRlIDxjb21tb24uaD4KQEAgLTg4LDcgKzg1LDcgQEAKICNlbmRpZgogCiAvKiB1c2VkIGJ5IHNldmVyYWwgb3Bjb2RlcyAgKi8KLXN0YXRpYyB1OCAoKmdlbm9wX2J5dGVfb3BlcmF0aW9uW10pKHU4IGQsIHU4IHMpIF9fYXR0cmlidXRlX18gKChzZWN0aW9uKEdPVDJfVFlQRSkpKSA9CitzdGF0aWMgdTggKCpnZW5vcF9ieXRlX29wZXJhdGlvbltdKSh1OCBkLCB1OCBzKSA9CiB7CiAgICAgYWRkX2J5dGUsCQkvKiAwMCAqLwogICAgIG9yX2J5dGUsCQkvKiAwMSAqLwpAQCAtMTAwLDcgKzk3LDcgQEAKICAgICBjbXBfYnl0ZSwJCS8qIDA3ICovCiB9OwogCi1zdGF0aWMgdTE2ICgqZ2Vub3Bfd29yZF9vcGVyYXRpb25bXSkodTE2IGQsIHUxNiBzKSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbihHT1QyX1RZUEUpKSkgPQorc3RhdGljIHUxNiAoKmdlbm9wX3dvcmRfb3BlcmF0aW9uW10pKHUxNiBkLCB1MTYgcykgPQogewogICAgIGFkZF93b3JkLAkJLyowMCAqLwogICAgIG9yX3dvcmQsCQkvKjAxICovCkBAIC0xMTIsNyArMTA5LDcgQEAKICAgICBjbXBfd29yZCwJCS8qMDcgKi8KIH07CiAKLXN0YXRpYyB1MzIgKCpnZW5vcF9sb25nX29wZXJhdGlvbltdKSh1MzIgZCwgdTMyIHMpIF9fYXR0cmlidXRlX18gKChzZWN0aW9uKEdPVDJfVFlQRSkpKSA9CitzdGF0aWMgdTMyICgqZ2Vub3BfbG9uZ19vcGVyYXRpb25bXSkodTMyIGQsIHUzMiBzKSA9CiB7CiAgICAgYWRkX2xvbmcsCQkvKjAwICovCiAgICAgb3JfbG9uZywJCS8qMDEgKi8KQEAgLTEyNSw3ICsxMjIsNyBAQAogfTsKIAogLyogdXNlZCBieSBvcGNvZGVzIDgwLCBjMCwgZDAsIGFuZCBkMi4gKi8KLXN0YXRpYyB1OCgqb3BjRDBfYnl0ZV9vcGVyYXRpb25bXSkodTggZCwgdTggcykgX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24oR09UMl9UWVBFKSkpID0KK3N0YXRpYyB1OCgqb3BjRDBfYnl0ZV9vcGVyYXRpb25bXSkodTggZCwgdTggcykgPQogewogICAgIHJvbF9ieXRlLAogICAgIHJvcl9ieXRlLApAQCAtMTM4LDcgKzEzNSw3IEBACiB9OwogCiAvKiB1c2VkIGJ5IG9wY29kZXMgYzEsIGQxLCBhbmQgZDMuICovCi1zdGF0aWMgdTE2KCpvcGNEMV93b3JkX29wZXJhdGlvbltdKSh1MTYgcywgdTggZCkgX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24oR09UMl9UWVBFKSkpID0KK3N0YXRpYyB1MTYoKm9wY0QxX3dvcmRfb3BlcmF0aW9uW10pKHUxNiBzLCB1OCBkKSA9CiB7CiAgICAgcm9sX3dvcmQsCiAgICAgcm9yX3dvcmQsCkBAIC0xNTEsNyArMTQ4LDcgQEAKIH07CiAKIC8qIHVzZWQgYnkgb3Bjb2RlcyBjMSwgZDEsIGFuZCBkMy4gKi8KLXN0YXRpYyB1MzIgKCpvcGNEMV9sb25nX29wZXJhdGlvbltdKSh1MzIgcywgdTggZCkgX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24oR09UMl9UWVBFKSkpID0KK3N0YXRpYyB1MzIgKCpvcGNEMV9sb25nX29wZXJhdGlvbltdKSh1MzIgcywgdTggZCkgPQogewogICAgIHJvbF9sb25nLAogICAgIHJvcl9sb25nLApAQCAtNTE0NCw3ICs1MTQxLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIFNpbmdsZSBieXRlIG9wZXJhdGlvbiBjb2RlIHRhYmxlOgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotdm9pZCAoKng4NmVtdV9vcHRhYlsyNTZdKSh1OCkgX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24oR09UMl9UWVBFKSkpID0KK3ZvaWQgKCp4ODZlbXVfb3B0YWJbMjU2XSkodTgpID0KIHsKIC8qICAweDAwICovIHg4NmVtdU9wX2dlbm9wX2J5dGVfUk1fUiwKIC8qICAweDAxICovIHg4NmVtdU9wX2dlbm9wX3dvcmRfUk1fUiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmlvc19lbXVsYXRvci94ODZlbXUvb3BzMi5jIGIvZHJpdmVycy9iaW9zX2VtdWxhdG9yL3g4NmVtdS9vcHMyLmMKaW5kZXggZWU3MjU4ZS4uOTM3YmY0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9iaW9zX2VtdWxhdG9yL3g4NmVtdS9vcHMyLmMKKysrIGIvZHJpdmVycy9iaW9zX2VtdWxhdG9yL3g4NmVtdS9vcHMyLmMKQEAgLTM5LDkgKzM5LDYgQEAKICoJCWFuZCBlbXVsYXRpb24gb2YgYWxsIHRoZSB4ODYgZXh0ZW5kZWQgdHdvLWJ5dGUgcHJvY2Vzc29yCiAqCQlpbnN0cnVjdGlvbnMuCiAqCi0qCQlKYXNvbiBwb3J0IHRoaXMgZmlsZSB0byB1LWJvb3QuIFB1dCB0aGUgZnVuY3Rpb24gcG9pbnRlciBpbnRvCi0qCQlnb3QyIHNlY3Rvci4KLSoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNpbmNsdWRlIDxjb21tb24uaD4KQEAgLTE0OTUsNyArMTQ5Miw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBEb3VibGUgYnl0ZSBvcGVyYXRpb24gY29kZSB0YWJsZToKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXZvaWQgKCp4ODZlbXVfb3B0YWIyWzI1Nl0pKHU4KSBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKEdPVDJfVFlQRSkpKSA9Cit2b2lkICgqeDg2ZW11X29wdGFiMlsyNTZdKSh1OCkgPQogewogLyogIDB4MDAgKi8geDg2ZW11T3AyX2lsbGVnYWxfb3AsICAvKiBHcm91cCBGIChyaW5nIDAgUE0pICAgICAgKi8KIC8qICAweDAxICovIHg4NmVtdU9wMl9pbGxlZ2FsX29wLCAgLyogR3JvdXAgRyAocmluZyAwIFBNKSAgICAgICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9vbWFwM19tbWMuYyBiL2RyaXZlcnMvbW1jL29tYXAzX21tYy5jCmluZGV4IDllMDk0MzQuLjUxM2RkMjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbW1jL29tYXAzX21tYy5jCisrKyBiL2RyaXZlcnMvbW1jL29tYXAzX21tYy5jCkBAIC0yMzUsOCArMjM1LDggQEAKIAl1bnNpZ25lZCBjaGFyIGVycjsKIAl1bnNpZ25lZCBpbnQgYXJndW1lbnQgPSAwOwogCXVuc2lnbmVkIGludCBvY3JfdmFsdWUsIG9jcl9yZWN2ZCwgcmV0X2NtZDQxLCBoY3NfdmFsOwotCXVuc2lnbmVkIGludCByZXNwWzRdOwogCXVuc2lnbmVkIHNob3J0IHJldHJ5X2NudCA9IDIwMDA7CisJbW1jX3Jlc3BfdCBtbWNfcmVzcDsKIAogCS8qIFNldCB0byBJbml0aWFsaXphdGlvbiBDbG9jayAqLwogCWVyciA9IG1tY19jbG9ja19jb25maWcoQ0xLXzQwMEtIWiwgMCk7CkBAIC0yNDcsMTggKzI0NywxOCBAQAogCWFyZ3VtZW50ID0gMHgwMDAwMDAwMDsKIAogCW9jcl92YWx1ZSA9ICgweDFGRiA8PCAxNSk7Ci0JZXJyID0gbW1jX3NlbmRfY21kKE1NQ19DTUQwLCBhcmd1bWVudCwgcmVzcCk7CisJZXJyID0gbW1jX3NlbmRfY21kKE1NQ19DTUQwLCBhcmd1bWVudCwgbW1jX3Jlc3AucmVzcCk7CiAJaWYgKGVyciAhPSAxKQogCQlyZXR1cm4gZXJyOwogCiAJYXJndW1lbnQgPSBTRF9DTUQ4X0NIRUNLX1BBVFRFUk4gfCBTRF9DTUQ4XzJfN18zXzZfVl9SQU5HRTsKLQllcnIgPSBtbWNfc2VuZF9jbWQoTU1DX1NEQ01EOCwgYXJndW1lbnQsIHJlc3ApOworCWVyciA9IG1tY19zZW5kX2NtZChNTUNfU0RDTUQ4LCBhcmd1bWVudCwgbW1jX3Jlc3AucmVzcCk7CiAJaGNzX3ZhbCA9IChlcnIgPT0gMSkgPwogCQlNTUNfT0NSX1JFR19IT1NUX0NBUEFDSVRZX1NVUFBPUlRfU0VDVE9SIDoKIAkJTU1DX09DUl9SRUdfSE9TVF9DQVBBQ0lUWV9TVVBQT1JUX0JZVEU7CiAKIAlhcmd1bWVudCA9IDB4MDAwMCA8PCAxNjsKLQllcnIgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDU1LCBhcmd1bWVudCwgcmVzcCk7CisJZXJyID0gbW1jX3NlbmRfY21kKE1NQ19DTUQ1NSwgYXJndW1lbnQsIG1tY19yZXNwLnJlc3ApOwogCWlmIChlcnIgPT0gMSkgewogCQltbWNfY2FyZF9jdXItPmNhcmRfdHlwZSA9IFNEX0NBUkQ7CiAJCW9jcl92YWx1ZSB8PSBoY3NfdmFsOwpAQCAtMjcyLDI0ICsyNzIsMjQgQEAKIAl9CiAKIAlhcmd1bWVudCA9IG9jcl92YWx1ZTsKLQllcnIgPSBtbWNfc2VuZF9jbWQocmV0X2NtZDQxLCBhcmd1bWVudCwgcmVzcCk7CisJZXJyID0gbW1jX3NlbmRfY21kKHJldF9jbWQ0MSwgYXJndW1lbnQsIG1tY19yZXNwLnJlc3ApOwogCWlmIChlcnIgIT0gMSkKIAkJcmV0dXJuIGVycjsKIAotCW9jcl9yZWN2ZCA9ICgobW1jX3Jlc3BfcjMgKikgcmVzcCktPm9jcjsKKwlvY3JfcmVjdmQgPSBtbWNfcmVzcC5yMy5vY3I7CiAKIAl3aGlsZSAoIShvY3JfcmVjdmQgJiAoMHgxIDw8IDMxKSkgJiYgKHJldHJ5X2NudCA+IDApKSB7CiAJCXJldHJ5X2NudC0tOwogCQlpZiAobW1jX2NhcmRfY3VyLT5jYXJkX3R5cGUgPT0gU0RfQ0FSRCkgewogCQkJYXJndW1lbnQgPSAweDAwMDAgPDwgMTY7Ci0JCQllcnIgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDU1LCBhcmd1bWVudCwgcmVzcCk7CisJCQllcnIgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDU1LCBhcmd1bWVudCwgbW1jX3Jlc3AucmVzcCk7CiAJCX0KIAogCQlhcmd1bWVudCA9IG9jcl92YWx1ZTsKLQkJZXJyID0gbW1jX3NlbmRfY21kKHJldF9jbWQ0MSwgYXJndW1lbnQsIHJlc3ApOworCQllcnIgPSBtbWNfc2VuZF9jbWQocmV0X2NtZDQxLCBhcmd1bWVudCwgbW1jX3Jlc3AucmVzcCk7CiAJCWlmIChlcnIgIT0gMSkKIAkJCXJldHVybiBlcnI7Ci0JCW9jcl9yZWN2ZCA9ICgobW1jX3Jlc3BfcjMgKikgcmVzcCktPm9jcjsKKwkJb2NyX3JlY3ZkID0gbW1jX3Jlc3AucjMub2NyOwogCX0KIAogCWlmICghKG9jcl9yZWN2ZCAmICgweDEgPDwgMzEpKSkKQEAgLTMxOCwyMiArMzE4LDIyIEBACiAJaWYgKCEob2NyX3JlY3ZkICYgb2NyX3ZhbHVlKSkKIAkJcmV0dXJuIDA7CiAKLQllcnIgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDIsIGFyZ3VtZW50LCByZXNwKTsKKwllcnIgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDIsIGFyZ3VtZW50LCBtbWNfcmVzcC5yZXNwKTsKIAlpZiAoZXJyICE9IDEpCiAJCXJldHVybiBlcnI7CiAKIAlpZiAobW1jX2NhcmRfY3VyLT5jYXJkX3R5cGUgPT0gTU1DX0NBUkQpIHsKIAkJYXJndW1lbnQgPSBtbWNfY2FyZF9jdXItPlJDQSA8PCAxNjsKLQkJZXJyID0gbW1jX3NlbmRfY21kKE1NQ19DTUQzLCBhcmd1bWVudCwgcmVzcCk7CisJCWVyciA9IG1tY19zZW5kX2NtZChNTUNfQ01EMywgYXJndW1lbnQsIG1tY19yZXNwLnJlc3ApOwogCQlpZiAoZXJyICE9IDEpCiAJCQlyZXR1cm4gZXJyOwogCX0gZWxzZSB7CiAJCWFyZ3VtZW50ID0gMHgwMDAwMDAwMDsKLQkJZXJyID0gbW1jX3NlbmRfY21kKE1NQ19TRENNRDMsIGFyZ3VtZW50LCByZXNwKTsKKwkJZXJyID0gbW1jX3NlbmRfY21kKE1NQ19TRENNRDMsIGFyZ3VtZW50LCBtbWNfcmVzcC5yZXNwKTsKIAkJaWYgKGVyciAhPSAxKQogCQkJcmV0dXJuIGVycjsKIAotCQltbWNfY2FyZF9jdXItPlJDQSA9ICgobW1jX3Jlc3BfcjYgKikgcmVzcCktPm5ld3B1Ymxpc2hlZHJjYTsKKwkJbW1jX2NhcmRfY3VyLT5SQ0EgPSBtbWNfcmVzcC5yNi5uZXdwdWJsaXNoZWRyY2E7CiAJfQogCiAJd3JpdGVsKHJlYWRsKCZtbWNfYmFzZS0+Y29uKSAmIH5PRCwgJm1tY19iYXNlLT5jb24pOwpAQCAtNDM3LDEwICs0MzcsOSBAQAogewogCXVuc2lnbmVkIGNoYXIgcmV0X3ZhbDsKIAl1bnNpZ25lZCBpbnQgYXJndW1lbnQ7Ci0JdW5zaWduZWQgaW50IHJlc3BbNF07CiAJdW5zaWduZWQgaW50IHRyYW5zX2NsaywgdHJhbnNfZmFjdCwgdHJhbnNfdW5pdCwgcmV0cmllcyA9IDI7Ci0JbW1jX2NzZF9yZWdfdCBDYXJkX0NTRDsKIAl1bnNpZ25lZCBjaGFyIHRyYW5zX3NwZWVkOworCW1tY19yZXNwX3QgbW1jX3Jlc3A7CiAKIAlyZXRfdmFsID0gbW1jX2luaXRfc2V0dXAoKTsKIApAQCAtNDUzLDIxICs0NTIsMTYgQEAKIAl9IHdoaWxlICgocmV0cmllcyA+IDApICYmIChyZXRfdmFsICE9IDEpKTsKIAogCWFyZ3VtZW50ID0gbW1jX2NhcmRfY3VyLT5SQ0EgPDwgMTY7Ci0JcmV0X3ZhbCA9IG1tY19zZW5kX2NtZChNTUNfQ01EOSwgYXJndW1lbnQsIHJlc3ApOworCXJldF92YWwgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDksIGFyZ3VtZW50LCBtbWNfcmVzcC5yZXNwKTsKIAlpZiAocmV0X3ZhbCAhPSAxKQogCQlyZXR1cm4gcmV0X3ZhbDsKIAotCSgodW5zaWduZWQgaW50ICopICZDYXJkX0NTRClbM10gPSByZXNwWzNdOwotCSgodW5zaWduZWQgaW50ICopICZDYXJkX0NTRClbMl0gPSByZXNwWzJdOwotCSgodW5zaWduZWQgaW50ICopICZDYXJkX0NTRClbMV0gPSByZXNwWzFdOwotCSgodW5zaWduZWQgaW50ICopICZDYXJkX0NTRClbMF0gPSByZXNwWzBdOwotCiAJaWYgKG1tY19jYXJkX2N1ci0+Y2FyZF90eXBlID09IE1NQ19DQVJEKQotCQltbWNfY2FyZF9jdXItPnZlcnNpb24gPSBDYXJkX0NTRC5zcGVjX3ZlcnM7CisJCW1tY19jYXJkX2N1ci0+dmVyc2lvbiA9IG1tY19yZXNwLkNhcmRfQ1NELnNwZWNfdmVyczsKIAotCXRyYW5zX3NwZWVkID0gQ2FyZF9DU0QudHJhbl9zcGVlZDsKKwl0cmFuc19zcGVlZCA9IG1tY19yZXNwLkNhcmRfQ1NELnRyYW5fc3BlZWQ7CiAKLQlyZXRfdmFsID0gbW1jX3NlbmRfY21kKE1NQ19DTUQ0LCBNTUNfRFNSX0RFRkFVTFQgPDwgMTYsIHJlc3ApOworCXJldF92YWwgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDQsIE1NQ19EU1JfREVGQVVMVCA8PCAxNiwgbW1jX3Jlc3AucmVzcCk7CiAJaWYgKHJldF92YWwgIT0gMSkKIAkJcmV0dXJuIHJldF92YWw7CiAKQEAgLTQ5MSwxOCArNDg1LDE4IEBACiAJCXJldHVybiByZXRfdmFsOwogCiAJYXJndW1lbnQgPSBtbWNfY2FyZF9jdXItPlJDQSA8PCAxNjsKLQlyZXRfdmFsID0gbW1jX3NlbmRfY21kKE1NQ19DTUQ3X1NFTEVDVCwgYXJndW1lbnQsIHJlc3ApOworCXJldF92YWwgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDdfU0VMRUNULCBhcmd1bWVudCwgbW1jX3Jlc3AucmVzcCk7CiAJaWYgKHJldF92YWwgIT0gMSkKIAkJcmV0dXJuIHJldF92YWw7CiAKIAkvKiBDb25maWd1cmUgdGhlIGJsb2NrIGxlbmd0aCB0byA1MTIgYnl0ZXMgKi8KIAlhcmd1bWVudCA9IE1NQ1NEX1NFQ1RPUl9TSVpFOwotCXJldF92YWwgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDE2LCBhcmd1bWVudCwgcmVzcCk7CisJcmV0X3ZhbCA9IG1tY19zZW5kX2NtZChNTUNfQ01EMTYsIGFyZ3VtZW50LCBtbWNfcmVzcC5yZXNwKTsKIAlpZiAocmV0X3ZhbCAhPSAxKQogCQlyZXR1cm4gcmV0X3ZhbDsKIAogCS8qIGdldCB0aGUgY2FyZCBzaXplIGluIHNlY3RvcnMgKi8KLQlyZXRfdmFsID0gbW1jX3JlYWRfY2FyZHNpemUobW1jX2NhcmRfY3VyLCAmQ2FyZF9DU0QpOworCXJldF92YWwgPSBtbWNfcmVhZF9jYXJkc2l6ZShtbWNfY2FyZF9jdXIsICZtbWNfcmVzcC5DYXJkX0NTRCk7CiAJaWYgKHJldF92YWwgIT0gMSkKIAkJcmV0dXJuIHJldF92YWw7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9taWlwaHliYi5jIGIvZHJpdmVycy9uZXQvcGh5L21paXBoeWJiLmMKaW5kZXggYjc3YzkxNy4uNDRjNDVmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L21paXBoeWJiLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21paXBoeWJiLmMKQEAgLTEsNCArMSw3IEBACiAvKgorICogKEMpIENvcHlyaWdodCAyMDA5IEluZHVzdHJpZSBEaWFsIEZhY2UgUy5wLkEuCisgKiBMdWlnaSAnQ29taW8nIE1hbnRlbGxpbmkgPGx1aWdpLm1hbnRlbGxpbmlAaWRmLWhpdC5jb20+CisgKgogICogKEMpIENvcHlyaWdodCAyMDAxCiAgKiBHZXJhbGQgVmFuIEJhcmVuLCBDdXN0b20gSURFQVMsIHZhbmJhcmVuQGNpZGVhcy5jb20uCiAgKgpAQCAtMjksMTggKzMyLDE0NCBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGlvcG9ydHMuaD4KICNpbmNsdWRlIDxwcGNfYXNtLnRtcGw+CisjaW5jbHVkZSA8bWlpcGh5Lmg+CisKKyNkZWZpbmUgQkJfTUlJX1JFTE9DQVRFKHYsb2ZmKSAodiArPSAodj9vZmY6MCkpCisKK0RFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOworCisjaWZuZGVmIENPTkZJR19CSVRCQU5HTUlJX01VTFRJCisKKy8qCisgKiBJZiBDT05GSUdfQklUQkFOR01JSV9NVUxUSSBpcyBub3QgZGVmaW5lZCB3ZSB1c2UgYQorICogY29tcGF0aWJpbGl0eSBsYXllciB3aXRoIHRoZSBwcmV2aW91cyBtaWlwaHliYiBpbXBsZW1lbnRhdGlvbgorICogYmFzZWQgb24gbWFjcm9zIHVzYWdlLgorICoKKyAqLworc3RhdGljIGludCBiYl9taWlfaW5pdF93cmFwKHN0cnVjdCBiYl9taWlwaHlfYnVzICpidXMpCit7CisjaWZkZWYgTUlJX0lOSVQKKwlNSUlfSU5JVDsKKyNlbmRpZgorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJiX21kaW9fYWN0aXZlX3dyYXAoc3RydWN0IGJiX21paXBoeV9idXMgKmJ1cykKK3sKKyNpZmRlZiBNRElPX0RFQ0xBUkUKKwlNRElPX0RFQ0xBUkU7CisjZW5kaWYKKwlNRElPX0FDVElWRTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiYl9tZGlvX3RyaXN0YXRlX3dyYXAoc3RydWN0IGJiX21paXBoeV9idXMgKmJ1cykKK3sKKyNpZmRlZiBNRElPX0RFQ0xBUkUKKwlNRElPX0RFQ0xBUkU7CisjZW5kaWYKKwlNRElPX1RSSVNUQVRFOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJiX3NldF9tZGlvX3dyYXAoc3RydWN0IGJiX21paXBoeV9idXMgKmJ1cywgaW50IHYpCit7CisjaWZkZWYgTURJT19ERUNMQVJFCisJTURJT19ERUNMQVJFOworI2VuZGlmCisJTURJTyh2KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiYl9nZXRfbWRpb193cmFwKHN0cnVjdCBiYl9taWlwaHlfYnVzICpidXMsIGludCAqdikKK3sKKyNpZmRlZiBNRElPX0RFQ0xBUkUKKwlNRElPX0RFQ0xBUkU7CisjZW5kaWYKKwkqdiA9IE1ESU9fUkVBRDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiYl9zZXRfbWRjX3dyYXAoc3RydWN0IGJiX21paXBoeV9idXMgKmJ1cywgaW50IHYpCit7CisjaWZkZWYgTURDX0RFQ0xBUkUKKwlNRENfREVDTEFSRTsKKyNlbmRpZgorCU1EQyh2KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiYl9kZWxheV93cmFwKHN0cnVjdCBiYl9taWlwaHlfYnVzICpidXMpCit7CisJTUlJREVMQVk7CisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBiYl9taWlwaHlfYnVzIGJiX21paXBoeV9idXNlc1tdID0geworCXsKKwkJLm5hbWUgPSBCQl9NSUlfREVWTkFNRSwKKwkJLmluaXQgPSBiYl9taWlfaW5pdF93cmFwLAorCQkubWRpb19hY3RpdmUgPSBiYl9tZGlvX2FjdGl2ZV93cmFwLAorCQkubWRpb190cmlzdGF0ZSA9IGJiX21kaW9fdHJpc3RhdGVfd3JhcCwKKwkJLnNldF9tZGlvID0gYmJfc2V0X21kaW9fd3JhcCwKKwkJLmdldF9tZGlvID0gYmJfZ2V0X21kaW9fd3JhcCwKKwkJLnNldF9tZGMgPSBiYl9zZXRfbWRjX3dyYXAsCisJCS5kZWxheSA9IGJiX2RlbGF5X3dyYXAsCisJfQorfTsKKworaW50IGJiX21paXBoeV9idXNlc19udW0gPSBzaXplb2YoYmJfbWlpcGh5X2J1c2VzKSAvCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihiYl9taWlwaHlfYnVzZXNbMF0pOworI2VuZGlmCisKK3ZvaWQgYmJfbWlpcGh5X2luaXQodm9pZCkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBiYl9taWlwaHlfYnVzZXNfbnVtOyBpKyspIHsKKyNpZiAhZGVmaW5lZChDT05GSUdfUkVMT0NfRklYVVBfV09SS1MpCisJCS8qIFJlbG9jYXRlIHRoZSBob29rIHBvaW50ZXJzKi8KKwkJQkJfTUlJX1JFTE9DQVRFKGJiX21paXBoeV9idXNlc1tpXS5pbml0LCBnZC0+cmVsb2Nfb2ZmKTsKKwkJQkJfTUlJX1JFTE9DQVRFKGJiX21paXBoeV9idXNlc1tpXS5tZGlvX2FjdGl2ZSwgZ2QtPnJlbG9jX29mZik7CisJCUJCX01JSV9SRUxPQ0FURShiYl9taWlwaHlfYnVzZXNbaV0ubWRpb190cmlzdGF0ZSwgZ2QtPnJlbG9jX29mZik7CisJCUJCX01JSV9SRUxPQ0FURShiYl9taWlwaHlfYnVzZXNbaV0uc2V0X21kaW8sIGdkLT5yZWxvY19vZmYpOworCQlCQl9NSUlfUkVMT0NBVEUoYmJfbWlpcGh5X2J1c2VzW2ldLmdldF9tZGlvLCBnZC0+cmVsb2Nfb2ZmKTsKKwkJQkJfTUlJX1JFTE9DQVRFKGJiX21paXBoeV9idXNlc1tpXS5zZXRfbWRjLCBnZC0+cmVsb2Nfb2ZmKTsKKwkJQkJfTUlJX1JFTE9DQVRFKGJiX21paXBoeV9idXNlc1tpXS5kZWxheSwgZ2QtPnJlbG9jX29mZik7CisjZW5kaWYKKwkJaWYgKGJiX21paXBoeV9idXNlc1tpXS5pbml0ICE9IE5VTEwpIHsKKwkJCWJiX21paXBoeV9idXNlc1tpXS5pbml0KCZiYl9taWlwaHlfYnVzZXNbaV0pOworCQl9CisJfQorfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBiYl9taWlwaHlfYnVzICpiYl9taWlwaHlfZ2V0YnVzKGNoYXIgKmRldm5hbWUpCit7CisjaWZkZWYgQ09ORklHX0JJVEJBTkdNSUlfTVVMVEkKKwlpbnQgaTsKKworCS8qIFNlYXJjaCB0aGUgY29ycmVjdCBidXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgYmJfbWlpcGh5X2J1c2VzX251bTsgaSsrKSB7CisJCWlmICghc3RyY21wKGJiX21paXBoeV9idXNlc1tpXS5uYW1lLCBkZXZuYW1lKSkgeworCQkJcmV0dXJuICZiYl9taWlwaHlfYnVzZXNbaV07CisJCX0KKwl9CisJcmV0dXJuIE5VTEw7CisjZWxzZQorCS8qIFdlIGhhdmUganVzdCBvbmUgYml0YmFuZ2luZyBidXMgKi8KKwlyZXR1cm4gJmJiX21paXBoeV9idXNlc1swXTsKKyNlbmRpZgorfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBVdGlsaXR5IHRvIHNlbmQgdGhlIHByZWFtYmxlLCBhZGRyZXNzLCBhbmQgcmVnaXN0ZXIgKGNvbW1vbiB0byByZWFkCiAgKiBhbmQgd3JpdGUpLgogICovCi1zdGF0aWMgdm9pZCBtaWlwaHlfcHJlIChjaGFyIHJlYWQsIHVuc2lnbmVkIGNoYXIgYWRkciwgdW5zaWduZWQgY2hhciByZWcpCitzdGF0aWMgdm9pZCBtaWlwaHlfcHJlKHN0cnVjdCBiYl9taWlwaHlfYnVzICpidXMsIGNoYXIgcmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBhZGRyLCB1bnNpZ25lZCBjaGFyIHJlZykKIHsKLQlpbnQgajsJCQkvKiBjb3VudGVyICovCi0jaWYgIShkZWZpbmVkKENPTkZJR19FUDgyNDgpIHx8IGRlZmluZWQoQ09ORklHX0VQODJYWE0pKQotCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SLCBNRElPX1BPUlQpOwotI2VuZGlmCisJaW50IGo7CiAKIAkvKgogCSAqIFNlbmQgYSAzMiBiaXQgcHJlYW1ibGUgKCcxJ3MpIHdpdGggYW4gZXh0cmEgJzEnIGJpdCBmb3IgZ29vZCBtZWFzdXJlLgpAQCAtNTAsNjcgKzE3OSw2NiBAQAogCSAqIGJ1dCBpdCBpcyBzYWZlciBhbmQgd2lsbCBiZSBtdWNoIG1vcmUgcm9idXN0LgogCSAqLwogCi0JTURJT19BQ1RJVkU7Ci0JTURJTyAoMSk7CisJYnVzLT5tZGlvX2FjdGl2ZShidXMpOworCWJ1cy0+c2V0X21kaW8oYnVzLCAxKTsKIAlmb3IgKGogPSAwOyBqIDwgMzI7IGorKykgewotCQlNREMgKDApOwotCQlNSUlERUxBWTsKLQkJTURDICgxKTsKLQkJTUlJREVMQVk7CisJCWJ1cy0+c2V0X21kYyhidXMsIDApOworCQlidXMtPmRlbGF5KGJ1cyk7CisJCWJ1cy0+c2V0X21kYyhidXMsIDEpOworCQlidXMtPmRlbGF5KGJ1cyk7CiAJfQogCiAJLyogc2VuZCB0aGUgc3RhcnQgYml0ICgwMSkgYW5kIHRoZSByZWFkIG9wY29kZSAoMTApIG9yIHdyaXRlICgxMCkgKi8KLQlNREMgKDApOwotCU1ESU8gKDApOwotCU1JSURFTEFZOwotCU1EQyAoMSk7Ci0JTUlJREVMQVk7Ci0JTURDICgwKTsKLQlNRElPICgxKTsKLQlNSUlERUxBWTsKLQlNREMgKDEpOwotCU1JSURFTEFZOwotCU1EQyAoMCk7Ci0JTURJTyAocmVhZCk7Ci0JTUlJREVMQVk7Ci0JTURDICgxKTsKLQlNSUlERUxBWTsKLQlNREMgKDApOwotCU1ESU8gKCFyZWFkKTsKLQlNSUlERUxBWTsKLQlNREMgKDEpOwotCU1JSURFTEFZOworCWJ1cy0+c2V0X21kYyhidXMsIDApOworCWJ1cy0+c2V0X21kaW8oYnVzLCAwKTsKKwlidXMtPmRlbGF5KGJ1cyk7CisJYnVzLT5zZXRfbWRjKGJ1cywgMSk7CisJYnVzLT5kZWxheShidXMpOworCWJ1cy0+c2V0X21kYyhidXMsIDApOworCWJ1cy0+c2V0X21kaW8oYnVzLCAxKTsKKwlidXMtPmRlbGF5KGJ1cyk7CisJYnVzLT5zZXRfbWRjKGJ1cywgMSk7CisJYnVzLT5kZWxheShidXMpOworCWJ1cy0+c2V0X21kYyhidXMsIDApOworCWJ1cy0+c2V0X21kaW8oYnVzLCByZWFkKTsKKwlidXMtPmRlbGF5KGJ1cyk7CisJYnVzLT5zZXRfbWRjKGJ1cywgMSk7CisJYnVzLT5kZWxheShidXMpOworCWJ1cy0+c2V0X21kYyhidXMsIDApOworCWJ1cy0+c2V0X21kaW8oYnVzLCAhcmVhZCk7CisJYnVzLT5kZWxheShidXMpOworCWJ1cy0+c2V0X21kYyhidXMsIDEpOworCWJ1cy0+ZGVsYXkoYnVzKTsKIAogCS8qIHNlbmQgdGhlIFBIWSBhZGRyZXNzICovCiAJZm9yIChqID0gMDsgaiA8IDU7IGorKykgewotCQlNREMgKDApOworCQlidXMtPnNldF9tZGMoYnVzLCAwKTsKIAkJaWYgKChhZGRyICYgMHgxMCkgPT0gMCkgewotCQkJTURJTyAoMCk7CisJCQlidXMtPnNldF9tZGlvKGJ1cywgMCk7CiAJCX0gZWxzZSB7Ci0JCQlNRElPICgxKTsKKwkJCWJ1cy0+c2V0X21kaW8oYnVzLCAxKTsKIAkJfQotCQlNSUlERUxBWTsKLQkJTURDICgxKTsKLQkJTUlJREVMQVk7CisJCWJ1cy0+ZGVsYXkoYnVzKTsKKwkJYnVzLT5zZXRfbWRjKGJ1cywgMSk7CisJCWJ1cy0+ZGVsYXkoYnVzKTsKIAkJYWRkciA8PD0gMTsKIAl9CiAKIAkvKiBzZW5kIHRoZSByZWdpc3RlciBhZGRyZXNzICovCiAJZm9yIChqID0gMDsgaiA8IDU7IGorKykgewotCQlNREMgKDApOworCQlidXMtPnNldF9tZGMoYnVzLCAwKTsKIAkJaWYgKChyZWcgJiAweDEwKSA9PSAwKSB7Ci0JCQlNRElPICgwKTsKKwkJCWJ1cy0+c2V0X21kaW8oYnVzLCAwKTsKIAkJfSBlbHNlIHsKLQkJCU1ESU8gKDEpOworCQkJYnVzLT5zZXRfbWRpbyhidXMsIDEpOwogCQl9Ci0JCU1JSURFTEFZOwotCQlNREMgKDEpOwotCQlNSUlERUxBWTsKKwkJYnVzLT5kZWxheShidXMpOworCQlidXMtPnNldF9tZGMoYnVzLCAxKTsKKwkJYnVzLT5kZWxheShidXMpOwogCQlyZWcgPDw9IDE7CiAJfQogfQogCi0KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIFJlYWQgYSBNSUkgUEhZIHJlZ2lzdGVyLgpAQCAtMTE4LDYzICsyNDYsNjkgQEAKICAqIFJldHVybnM6CiAgKiAgIDAgb24gc3VjY2VzcwogICovCi1pbnQgYmJfbWlpcGh5X3JlYWQgKGNoYXIgKmRldm5hbWUsIHVuc2lnbmVkIGNoYXIgYWRkciwKLQkJdW5zaWduZWQgY2hhciByZWcsIHVuc2lnbmVkIHNob3J0ICp2YWx1ZSkKK2ludCBiYl9taWlwaHlfcmVhZChjaGFyICpkZXZuYW1lLCB1bnNpZ25lZCBjaGFyIGFkZHIsCisgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciByZWcsIHVuc2lnbmVkIHNob3J0ICp2YWx1ZSkKIHsKLQlzaG9ydCByZHJlZzsJCS8qIHJlZ2lzdGVyIHdvcmtpbmcgdmFsdWUgKi8KLQlpbnQgajsJCQkvKiBjb3VudGVyICovCi0jaWYgIShkZWZpbmVkKENPTkZJR19FUDgyNDgpIHx8IGRlZmluZWQoQ09ORklHX0VQODJYWE0pKQotCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SLCBNRElPX1BPUlQpOwotI2VuZGlmCisJc2hvcnQgcmRyZWc7IC8qIHJlZ2lzdGVyIHdvcmtpbmcgdmFsdWUgKi8KKwlpbnQgdjsKKwlpbnQgajsgLyogY291bnRlciAqLworCXN0cnVjdCBiYl9taWlwaHlfYnVzICpidXM7CisKKwlidXMgPSBiYl9taWlwaHlfZ2V0YnVzKGRldm5hbWUpOworCWlmIChidXMgPT0gTlVMTCkgeworCQlyZXR1cm4gLTE7CisJfQogCiAJaWYgKHZhbHVlID09IE5VTEwpIHsKIAkJcHV0cygiTlVMTCB2YWx1ZSBwb2ludGVyXG4iKTsKLQkJcmV0dXJuICgtMSk7CisJCXJldHVybiAtMTsKIAl9CiAKLQltaWlwaHlfcHJlICgxLCBhZGRyLCByZWcpOworCW1paXBoeV9wcmUgKGJ1cywgMSwgYWRkciwgcmVnKTsKIAogCS8qIHRyaS1zdGF0ZSBvdXIgTURJTyBJL08gcGluIHNvIHdlIGNhbiByZWFkICovCi0JTURDICgwKTsKLQlNRElPX1RSSVNUQVRFOwotCU1JSURFTEFZOwotCU1EQyAoMSk7Ci0JTUlJREVMQVk7CisJYnVzLT5zZXRfbWRjKGJ1cywgMCk7CisJYnVzLT5tZGlvX3RyaXN0YXRlKGJ1cyk7CisJYnVzLT5kZWxheShidXMpOworCWJ1cy0+c2V0X21kYyhidXMsIDEpOworCWJ1cy0+ZGVsYXkoYnVzKTsKIAogCS8qIGNoZWNrIHRoZSB0dXJuYXJvdW5kIGJpdDogdGhlIFBIWSBzaG91bGQgYmUgZHJpdmluZyBpdCB0byB6ZXJvICovCi0JaWYgKE1ESU9fUkVBRCAhPSAwKSB7CisJYnVzLT5nZXRfbWRpbyhidXMsICZ2KTsKKwlpZiAodiAhPSAwKSB7CiAJCS8qIHB1dHMgKCJQSFkgZGlkbid0IGRyaXZlIFRBIGxvd1xuIik7ICovCiAJCWZvciAoaiA9IDA7IGogPCAzMjsgaisrKSB7Ci0JCQlNREMgKDApOwotCQkJTUlJREVMQVk7Ci0JCQlNREMgKDEpOwotCQkJTUlJREVMQVk7CisJCQlidXMtPnNldF9tZGMoYnVzLCAwKTsKKwkJCWJ1cy0+ZGVsYXkoYnVzKTsKKwkJCWJ1cy0+c2V0X21kYyhidXMsIDEpOworCQkJYnVzLT5kZWxheShidXMpOwogCQl9CiAJCS8qIFRoZXJlIGlzIG5vIFBIWSwgc2V0IHZhbHVlIHRvIDB4RkZGRiBhbmQgcmV0dXJuICovCiAJCSp2YWx1ZSA9IDB4RkZGRjsKLQkJcmV0dXJuICgtMSk7CisJCXJldHVybiAtMTsKIAl9CiAKLQlNREMgKDApOwotCU1JSURFTEFZOworCWJ1cy0+c2V0X21kYyhidXMsIDApOworCWJ1cy0+ZGVsYXkoYnVzKTsKIAogCS8qIHJlYWQgMTYgYml0cyBvZiByZWdpc3RlciBkYXRhLCBNU0IgZmlyc3QgKi8KIAlyZHJlZyA9IDA7CiAJZm9yIChqID0gMDsgaiA8IDE2OyBqKyspIHsKLQkJTURDICgxKTsKLQkJTUlJREVMQVk7CisJCWJ1cy0+c2V0X21kYyhidXMsIDEpOworCQlidXMtPmRlbGF5KGJ1cyk7CiAJCXJkcmVnIDw8PSAxOwotCQlyZHJlZyB8PSBNRElPX1JFQUQ7Ci0JCU1EQyAoMCk7Ci0JCU1JSURFTEFZOworCQlidXMtPmdldF9tZGlvKGJ1cywgJnYpOworCQlyZHJlZyB8PSAodiAmIDB4MSk7CisJCWJ1cy0+c2V0X21kYyhidXMsIDApOworCQlidXMtPmRlbGF5KGJ1cyk7CiAJfQogCi0JTURDICgxKTsKLQlNSUlERUxBWTsKLQlNREMgKDApOwotCU1JSURFTEFZOwotCU1EQyAoMSk7Ci0JTUlJREVMQVk7CisJYnVzLT5zZXRfbWRjKGJ1cywgMSk7CisJYnVzLT5kZWxheShidXMpOworCWJ1cy0+c2V0X21kYyhidXMsIDApOworCWJ1cy0+ZGVsYXkoYnVzKTsKKwlidXMtPnNldF9tZGMoYnVzLCAxKTsKKwlidXMtPmRlbGF5KGJ1cyk7CiAKIAkqdmFsdWUgPSByZHJlZzsKIApAQCAtMTk0LDQ5ICszMjgsNTMgQEAKICAqICAgMCBvbiBzdWNjZXNzCiAgKi8KIGludCBiYl9taWlwaHlfd3JpdGUgKGNoYXIgKmRldm5hbWUsIHVuc2lnbmVkIGNoYXIgYWRkciwKLQkJdW5zaWduZWQgY2hhciByZWcsIHVuc2lnbmVkIHNob3J0IHZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciByZWcsIHVuc2lnbmVkIHNob3J0IHZhbHVlKQogeworCXN0cnVjdCBiYl9taWlwaHlfYnVzICpidXM7CiAJaW50IGo7CQkJLyogY291bnRlciAqLwotI2lmICEoZGVmaW5lZChDT05GSUdfRVA4MjQ4KSB8fCBkZWZpbmVkKENPTkZJR19FUDgyWFhNKSkKLQl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiwgTURJT19QT1JUKTsKLSNlbmRpZgorCisJYnVzID0gYmJfbWlpcGh5X2dldGJ1cyhkZXZuYW1lKTsKKwlpZiAoYnVzID09IE5VTEwpIHsKKwkJLyogQnVzIG5vdCBmb3VuZCEgKi8KKwkJcmV0dXJuIC0xOworCX0KIAotCW1paXBoeV9wcmUgKDAsIGFkZHIsIHJlZyk7CisJbWlpcGh5X3ByZSAoYnVzLCAwLCBhZGRyLCByZWcpOwogCiAJLyogc2VuZCB0aGUgdHVybmFyb3VuZCAoMTApICovCi0JTURDICgwKTsKLQlNRElPICgxKTsKLQlNSUlERUxBWTsKLQlNREMgKDEpOwotCU1JSURFTEFZOwotCU1EQyAoMCk7Ci0JTURJTyAoMCk7Ci0JTUlJREVMQVk7Ci0JTURDICgxKTsKLQlNSUlERUxBWTsKKwlidXMtPnNldF9tZGMoYnVzLCAwKTsKKwlidXMtPnNldF9tZGlvKGJ1cywgMSk7CisJYnVzLT5kZWxheShidXMpOworCWJ1cy0+c2V0X21kYyhidXMsIDEpOworCWJ1cy0+ZGVsYXkoYnVzKTsKKwlidXMtPnNldF9tZGMoYnVzLCAwKTsKKwlidXMtPnNldF9tZGlvKGJ1cywgMCk7CisJYnVzLT5kZWxheShidXMpOworCWJ1cy0+c2V0X21kYyhidXMsIDEpOworCWJ1cy0+ZGVsYXkoYnVzKTsKIAogCS8qIHdyaXRlIDE2IGJpdHMgb2YgcmVnaXN0ZXIgZGF0YSwgTVNCIGZpcnN0ICovCiAJZm9yIChqID0gMDsgaiA8IDE2OyBqKyspIHsKLQkJTURDICgwKTsKKwkJYnVzLT5zZXRfbWRjKGJ1cywgMCk7CiAJCWlmICgodmFsdWUgJiAweDAwMDA4MDAwKSA9PSAwKSB7Ci0JCQlNRElPICgwKTsKKwkJCWJ1cy0+c2V0X21kaW8oYnVzLCAwKTsKIAkJfSBlbHNlIHsKLQkJCU1ESU8gKDEpOworCQkJYnVzLT5zZXRfbWRpbyhidXMsIDEpOwogCQl9Ci0JCU1JSURFTEFZOwotCQlNREMgKDEpOwotCQlNSUlERUxBWTsKKwkJYnVzLT5kZWxheShidXMpOworCQlidXMtPnNldF9tZGMoYnVzLCAxKTsKKwkJYnVzLT5kZWxheShidXMpOwogCQl2YWx1ZSA8PD0gMTsKIAl9CiAKIAkvKgogCSAqIFRyaS1zdGF0ZSB0aGUgTURJTyBsaW5lLgogCSAqLwotCU1ESU9fVFJJU1RBVEU7Ci0JTURDICgwKTsKLQlNSUlERUxBWTsKLQlNREMgKDEpOwotCU1JSURFTEFZOworCWJ1cy0+bWRpb190cmlzdGF0ZShidXMpOworCWJ1cy0+c2V0X21kYyhidXMsIDApOworCWJ1cy0+ZGVsYXkoYnVzKTsKKwlidXMtPnNldF9tZGMoYnVzLCAxKTsKKwlidXMtPmRlbGF5KGJ1cyk7CiAKIAlyZXR1cm4gMDsKLX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zbWM5MTF4LmMgYi9kcml2ZXJzL25ldC9zbWM5MTF4LmMKaW5kZXggMThhNzI5Yy4uYjEwNmVjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc21jOTExeC5jCisrKyBiL2RyaXZlcnMvbmV0L3NtYzkxMXguYwpAQCAtMTQ2LDEwICsxNDYsOSBAQAogCiBzdGF0aWMgaW50IHNtYzkxMXhfaW5pdChzdHJ1Y3QgZXRoX2RldmljZSAqZGV2LCBiZF90ICogYmQpCiB7Ci0JcHJpbnRmKERSSVZFUk5BTUUgIjogaW5pdGlhbGl6aW5nXG4iKTsKKwlzdHJ1Y3QgY2hpcF9pZCAqaWQgPSBkZXYtPnByaXY7CiAKLQlpZiAoc21jOTExeF9kZXRlY3RfY2hpcChkZXYpKQotCQlnb3RvIGVycl9vdXQ7CisgICAgICAgIHByaW50ZihEUklWRVJOQU1FICI6IGRldGVjdGVkICVzIGNvbnRyb2xsZXJcbiIsIGlkLT5uYW1lKTsKIAogCXNtYzkxMXhfcmVzZXQoZGV2KTsKIApAQCAtMTYyLDkgKzE2MSw2IEBACiAJc21jOTExeF9lbmFibGUoZGV2KTsKIAogCXJldHVybiAwOwotCi1lcnJfb3V0OgotCXJldHVybiAtMTsKIH0KIAogc3RhdGljIGludCBzbWM5MTF4X3NlbmQoc3RydWN0IGV0aF9kZXZpY2UgKmRldiwKQEAgLTI2OCw2ICsyNjQsMTIgQEAKIAlkZXYtPnJlY3YgPSBzbWM5MTF4X3J4OwogCXNwcmludGYoZGV2LT5uYW1lLCAiJXMtJWh1IiwgRFJJVkVSTkFNRSwgZGV2X251bSk7CiAKKwkvKiBUcnkgdG8gZGV0ZWN0IGNoaXAuIFdpbGwgZmFpbCBpZiBub3QgcHJlc2VudC4gKi8KKwlpZiAoc21jOTExeF9kZXRlY3RfY2hpcChkZXYpKSB7CisJCWZyZWUoZGV2KTsKKwkJcmV0dXJuIDA7CisJfQorCiAJZXRoX3JlZ2lzdGVyKGRldik7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zbWM5MTF4LmggYi9kcml2ZXJzL25ldC9zbWM5MTF4LmgKaW5kZXggMDUzZTMzMC4uMDVlMDA3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc21jOTExeC5oCisrKyBiL2RyaXZlcnMvbmV0L3NtYzkxMXguaApAQCAtMzkzLDYgKzM5Myw3IEBACiAjZGVmaW5lIENISVBfOTIxNgkweDExNmEKICNkZWZpbmUgQ0hJUF85MjE3CTB4MTE3YQogI2RlZmluZSBDSElQXzkyMTgJMHgxMThhCisjZGVmaW5lIENISVBfOTIyMAkweDkyMjAKICNkZWZpbmUgQ0hJUF85MjIxCTB4OTIyMQogCiBzdHJ1Y3QgY2hpcF9pZCB7CkBAIC00MTAsNiArNDExLDcgQEAKIAl7IENISVBfOTIxNiwgIkxBTjkyMTYiIH0sCiAJeyBDSElQXzkyMTcsICJMQU45MjE3IiB9LAogCXsgQ0hJUF85MjE4LCAiTEFOOTIxOCIgfSwKKwl7IENISVBfOTIyMCwgIkxBTjkyMjAiIH0sCiAJeyBDSElQXzkyMjEsICJMQU45MjIxIiB9LAogCXsgMCwgTlVMTCB9LAogfTsKQEAgLTQ0MSw3ICs0NDMsMTAgQEAKIAl1bnNpZ25lZCBsb25nIHZhbCwgaTsKIAogCXZhbCA9IHNtYzkxMXhfcmVnX3JlYWQoZGV2LCBCWVRFX1RFU1QpOwotCWlmICh2YWwgIT0gMHg4NzY1NDMyMSkgeworCWlmICh2YWwgPT0gMHhmZmZmZmZmZikgeworCQkvKiBTcGVjaWFsIGNhc2UgLS0gbm8gY2hpcCBwcmVzZW50ICovCisJCXJldHVybiAtMTsKKwl9IGVsc2UgaWYgKHZhbCAhPSAweDg3NjU0MzIxKSB7CiAJCXByaW50ZihEUklWRVJOQU1FICI6IEludmFsaWQgY2hpcCBlbmRpYW4gMHglMDhseFxuIiwgdmFsKTsKIAkJcmV0dXJuIC0xOwogCX0KQEAgLTQ1NSw3ICs0NjAsNyBAQAogCQlyZXR1cm4gLTE7CiAJfQogCi0JcHJpbnRmKERSSVZFUk5BTUUgIjogZGV0ZWN0ZWQgJXMgY29udHJvbGxlclxuIiwgY2hpcF9pZHNbaV0ubmFtZSk7CisJZGV2LT5wcml2ID0gKHZvaWQgKikmY2hpcF9pZHNbaV07CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWRhdmluY2kvZW1hY19kZWZzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1kYXZpbmNpL2VtYWNfZGVmcy5oCmluZGV4IGFlNzVmODQuLjk2YmM4MGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWRhdmluY2kvZW1hY19kZWZzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZGF2aW5jaS9lbWFjX2RlZnMuaApAQCAtNTAsNyArNTAsNyBAQAogI2RlZmluZSBFTUFDX01ESU9fQkFTRV9BRERSCQkoMHgwMWM4NDAwMCkKICNlbmRpZgogCi0jaWZkZWYgQ09ORklHX1NPQ19ETTY0NngKKyNpZmRlZiBDT05GSUdfU09DX0RNNjQ2WAogLyogTURJTyBtb2R1bGUgaW5wdXQgZnJlcXVlbmN5ICovCiAjZGVmaW5lIEVNQUNfTURJT19CVVNfRlJFUQkJNzY1MDAwMDAKIC8qIE1ESU8gY2xvY2sgb3V0cHV0IGZyZXF1ZW5jeSAqLwpAQCAtMjgzLDcgKzI4Myw3IEBACiAKIC8qIEVNQUMgV3JhcHBlciBSZWdpc3RlcnMgU3RydWN0dXJlICovCiB0eXBlZGVmIHN0cnVjdCAgewotI2lmIGRlZmluZWQoQ09ORklHX1NPQ19ETTY0NngpIHx8IGRlZmluZWQoQ09ORklHX1NPQ19ETTM2NSkKKyNpZiBkZWZpbmVkKENPTkZJR19TT0NfRE02NDZYKSB8fCBkZWZpbmVkKENPTkZJR19TT0NfRE0zNjUpCiAJZHZfcmVnCQlJRFZFUjsKIAlkdl9yZWcJCVNPRlRSU1Q7CiAJZHZfcmVnCQlFTUNUUkw7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1kYXZpbmNpL2dwaW9fZGVmcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZGF2aW5jaS9ncGlvX2RlZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzQzOTY5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZGF2aW5jaS9ncGlvX2RlZnMuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZAorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisjaWZuZGVmIF9HUElPX0RFRlNfSF8KKyNkZWZpbmUgX0dQSU9fREVGU19IXworCisjZGVmaW5lIERBVklOQ0lfR1BJT19CSU5URU4JMHgwMUM2NzAwOAorI2RlZmluZSBEQVZJTkNJX0dQSU9fQkFOSzAxCTB4MDFDNjcwMTAKKyNkZWZpbmUgREFWSU5DSV9HUElPX0JBTksyMwkweDAxQzY3MDM4CisjZGVmaW5lIERBVklOQ0lfR1BJT19CQU5LNDUJMHgwMUM2NzA2MAorI2RlZmluZSBEQVZJTkNJX0dQSU9fQkFOSzY3CTB4MDFDNjcwODgKKworc3RydWN0IGRhdmluY2lfZ3BpbyB7CisJdW5zaWduZWQgaW50IGRpcjsKKwl1bnNpZ25lZCBpbnQgb3V0X2RhdGE7CisJdW5zaWduZWQgaW50IHNldF9kYXRhOworCXVuc2lnbmVkIGludCBjbHJfZGF0YTsKKwl1bnNpZ25lZCBpbnQgaW5fZGF0YTsKKwl1bnNpZ25lZCBpbnQgc2V0X3Jpc2luZzsKKwl1bnNpZ25lZCBpbnQgY2xyX3Jpc2luZzsKKwl1bnNpZ25lZCBpbnQgc2V0X2ZhbGxpbmc7CisJdW5zaWduZWQgaW50IGNscl9mYWxsaW5nOworCXVuc2lnbmVkIGludCBpbnRzdGF0OworfTsKKworc3RydWN0IGRhdmluY2lfZ3Bpb19iYW5rIHsKKwlpbnQgbnVtX2dwaW87CisJdW5zaWduZWQgaW50IGlycV9udW07CisJdW5zaWduZWQgaW50IGlycV9tYXNrOworCXVuc2lnbmVkIGxvbmcgKmluX3VzZTsKKwl1bnNpZ25lZCBsb25nIGJhc2U7Cit9OworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtZGF2aW5jaS9oYXJkd2FyZS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZGF2aW5jaS9oYXJkd2FyZS5oCmluZGV4IDMxM2IzZjMuLmFjMzI1MTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWRhdmluY2kvaGFyZHdhcmUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1kYXZpbmNpL2hhcmR3YXJlLmgKQEAgLTEwNSw2ICsxMDUsMTMgQEAKICNkZWZpbmUgREFWSU5DSV9BU1lOQ19FTUlGX0NOVFJMX0JBU0UJCTB4MDFkMTAwMDAKICNkZWZpbmUgREFWSU5DSV9NTUNfU0QwX0JBU0UJCQkweDAxZDExMDAwCiAKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NPQ19ETTY0NlgpCisjZGVmaW5lIERBVklOQ0lfQVNZTkNfRU1JRl9DTlRSTF9CQVNFCQkweDIwMDA4MDAwCisjZGVmaW5lIERBVklOQ0lfQVNZTkNfRU1JRl9EQVRBX0NFMF9CQVNFCTB4NDIwMDAwMDAKKyNkZWZpbmUgREFWSU5DSV9BU1lOQ19FTUlGX0RBVEFfQ0UxX0JBU0UJMHg0NDAwMDAwMAorI2RlZmluZSBEQVZJTkNJX0FTWU5DX0VNSUZfREFUQV9DRTJfQkFTRQkweDQ2MDAwMDAwCisjZGVmaW5lIERBVklOQ0lfQVNZTkNfRU1JRl9EQVRBX0NFM19CQVNFCTB4NDgwMDAwMDAKKwogI2VuZGlmCiAKIC8qIFBvd2VyIGFuZCBTbGVlcCBDb250cm9sbGVyIChQU0MpIERvbWFpbnMgKi8KQEAgLTE1Myw2ICsxNjAsMTAgQEAKICNkZWZpbmUgREFWSU5DSV9MUFNDX0dFTQkJMzkKICNkZWZpbmUgREFWSU5DSV9MUFNDX0lNQ09QCQk0MAogCisjZGVmaW5lIERBVklOQ0lfRE02NDZYX0xQU0NfRU1BQwkxNAorI2RlZmluZSBEQVZJTkNJX0RNNjQ2WF9MUFNDX1VBUlQwCTI2CisjZGVmaW5lIERBVklOQ0lfRE02NDZYX0xQU0NfSTJDCQkzMQorCiB2b2lkIGxwc2Nfb24odW5zaWduZWQgaW50IGlkKTsKIHZvaWQgZHNwX29uKHZvaWQpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1kYXZpbmNpL25hbmRfZGVmcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZGF2aW5jaS9uYW5kX2RlZnMuaAppbmRleCAzODY1NDBlLi4xMGYzYTM5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1kYXZpbmNpL25hbmRfZGVmcy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWRhdmluY2kvbmFuZF9kZWZzLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CiAKLSNpZmRlZiBDT05GSUdfU09DX0RNNjQ2eAorI2lmZGVmIENPTkZJR19TT0NfRE02NDZYCiAjZGVmaW5lCU1BU0tfQ0xFCTB4ODAwMDAKICNkZWZpbmUJTUFTS19BTEUJMHg0MDAwMAogI2Vsc2UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAzL21tYy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcDMvbW1jLmgKaW5kZXggNTU1ODRkOS4uMTk2ZmZkYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcDMvbW1jLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcDMvbW1jLmgKQEAgLTIyMyw2ICsyMjMsMTMgQEAKIAl1bnNpZ25lZCBzaG9ydCBuZXdwdWJsaXNoZWRyY2E7CiB9IG1tY19yZXNwX3I2OwogCit0eXBlZGVmIHVuaW9uIHsKKwl1bnNpZ25lZCBpbnQgcmVzcFs0XTsKKwltbWNfcmVzcF9yMyByMzsKKwltbWNfcmVzcF9yNiByNjsKKwltbWNfY3NkX3JlZ190IENhcmRfQ1NEOworfSBtbWNfcmVzcF90OworCiBleHRlcm4gbW1jX2NhcmRfZGF0YSBtbWNfZGV2OwogCiB1bnNpZ25lZCBjaGFyIG1tY19sb3dsZXZlbF9pbml0KHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcDMvb21hcDMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAzL29tYXAzLmgKaW5kZXggNjQ1OWQ5OS4uMTI4MTVmNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcDMvb21hcDMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwMy9vbWFwMy5oCkBAIC0xNjgsNiArMTY4LDggQEAKICAqICBFUzEgICAgID0gcmV2IDAKICAqCiAgKiAgRVMyIG9ud2FyZHMsIHRoZSB2YWx1ZSBtYXBzIHRvIGNvbnRlbnRzIG9mIElEQ09ERSByZWdpc3RlciBbMzE6MjhdLgorICoKKyAqIE5vdGUgOiBDUFVfM1hYX0VTMjAgaXMgdXNlZCBpbiBjYWNoZS5TLiAgUGxlYXNlIHJldmlldyBiZWZvcmUgY2hhbmdpbmcuCiAgKi8KICNkZWZpbmUgQ1BVXzNYWF9FUzEwCQkwCiAjZGVmaW5lIENQVV8zWFhfRVMyMAkJMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcDMvc3lzX3Byb3RvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwMy9zeXNfcHJvdG8uaAppbmRleCA3MzYxZDA4Li4yMjQ2ZjgwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwMy9zeXNfcHJvdG8uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwMy9zeXNfcHJvdG8uaApAQCAtNTUsNyArNTUsNyBAQAogdm9pZCBzZXR1cF9hdXhjcih2b2lkKTsKIHZvaWQgdHJ5X3VubG9ja19tZW1vcnkodm9pZCk7CiB1MzIgZ2V0X2Jvb3RfdHlwZSh2b2lkKTsKLXZvaWQgdjdfZmx1c2hfZGNhY2hlX2FsbCh1MzIpOwordm9pZCBpbnZhbGlkYXRlX2RjYWNoZSh1MzIpOwogdm9pZCBzcjMyKHZvaWQgKiwgdTMyLCB1MzIsIHUzMik7CiB1MzIgd2FpdF9vbl92YWx1ZSh1MzIsIHUzMiwgdm9pZCAqLCB1MzIpOwogdm9pZCBzZGVsYXkodW5zaWduZWQgbG9uZyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9jb25maWcuaCBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL2NvbmZpZy5oCmluZGV4IDI1Nzk0ZGQuLjMyNzg0M2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL2NvbmZpZy5oCisrKyBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL2NvbmZpZy5oCkBAIC0xOCw2ICsxOCw5IEBACiAjIGRlZmluZSBDT05GSUdfQkZJTl9TQ1JBVENIX1JFRyByZXRuCiAjZW5kaWYKIAorLyogUmVsb2NhdGlvbiB0byBTRFJBTSB3b3JrcyBvbiBhbGwgQmxhY2tmaW4gYm9hcmRzICovCisjZGVmaW5lIENPTkZJR19SRUxPQ19GSVhVUF9XT1JLUworCiAvKiBNYWtlIHN1cmUgdGhlIHN0cnVjdHVyZSBpcyBwcm9wZXJseSBhbGlnbmVkICovCiAjaWYgKChDT05GSUdfU1lTX0dCTF9EQVRBX0FERFIgJiAtNCkgIT0gQ09ORklHX1NZU19HQkxfREFUQV9BRERSKQogIyBlcnJvciBDT05GSUdfU1lTX0dCTF9EQVRBX0FERFI6IG11c3QgYmUgNCBieXRlIGFsaWduZWQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL2dsb2JhbF9kYXRhLmggYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9nbG9iYWxfZGF0YS5oCmluZGV4IDMxOTRiNzIuLmI3OGIwNGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL2dsb2JhbF9kYXRhLmgKKysrIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vZ2xvYmFsX2RhdGEuaApAQCAtNDQsNyArNDQsNiBAQAogCXVuc2lnbmVkIGxvbmcgYmF1ZHJhdGU7CiAJdW5zaWduZWQgbG9uZyBoYXZlX2NvbnNvbGU7CS8qIHNlcmlhbF9pbml0KCkgd2FzIGNhbGxlZCAqLwogCXBoeXNfc2l6ZV90IHJhbV9zaXplOwkJLyogUkFNIHNpemUgKi8KLQl1bnNpZ25lZCBsb25nIHJlbG9jX29mZjsJLyogUmVsb2NhdGlvbiBPZmZzZXQgKi8KIAl1bnNpZ25lZCBsb25nIGVudl9hZGRyOwkvKiBBZGRyZXNzICBvZiBFbnZpcm9ubWVudCBzdHJ1Y3QgKi8KIAl1bnNpZ25lZCBsb25nIGVudl92YWxpZDsJLyogQ2hlY2tzdW0gb2YgRW52aXJvbm1lbnQgdmFsaWQ/ICovCiAjaWYgZGVmaW5lZChDT05GSUdfUE9TVCkgfHwgZGVmaW5lZChDT05GSUdfTE9HQlVGRkVSKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL2ltbWFwXzUxMnguaCBiL2luY2x1ZGUvYXNtLXBwYy9pbW1hcF81MTJ4LmgKaW5kZXggYmRjNmZmMi4uOTUzNTBmZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjL2ltbWFwXzUxMnguaAorKysgYi9pbmNsdWRlL2FzbS1wcGMvaW1tYXBfNTEyeC5oCkBAIC0yMTUsOCArMjE1LDggQEAKICNkZWZpbmUgQ0xPQ0tfU0NDUjJfRElVX0VOCQkweDgwMDAwMDAwCiAjZGVmaW5lIENMT0NLX1NDQ1IyX0FYRV9FTgkJMHg0MDAwMDAwMAogI2RlZmluZSBDTE9DS19TQ0NSMl9NRU1fRU4JCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0xPQ0tfU0NDUjJfVVNCMl9FTgkJMHgxMDAwMDAwMAotI2RlZmluZSBDTE9DS19TQ0NSMl9VU0IxX0VOCQkweDA4MDAwMDAwCisjZGVmaW5lIENMT0NLX1NDQ1IyX1VTQjFfRU4JCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ0xPQ0tfU0NDUjJfVVNCMl9FTgkJMHgwODAwMDAwMAogI2RlZmluZSBDTE9DS19TQ0NSMl9JMkNfRU4JCTB4MDQwMDAwMDAKICNkZWZpbmUgQ0xPQ0tfU0NDUjJfQkRMQ19FTgkJMHgwMjAwMDAwMAogI2RlZmluZSBDTE9DS19TQ0NSMl9TREhDX0VOCQkweDAxMDAwMDAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbW1vbi5oIGIvaW5jbHVkZS9jb21tb24uaAppbmRleCBmN2M5M2JmLi43ZGY5YWZhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvY29tbW9uLmgKQEAgLTcxOSw0ICs3MTksOSBAQAogI2RlZmluZSBBTElHTih4LGEpCQlfX0FMSUdOX01BU0soKHgpLCh0eXBlb2YoeCkpKGEpLTEpCiAjZGVmaW5lIF9fQUxJR05fTUFTSyh4LG1hc2spCSgoKHgpKyhtYXNrKSkmfihtYXNrKSkKIAorLyogUHVsbCBpbiBzdHVmZiBmb3IgdGhlIGJ1aWxkIHN5c3RlbSAqLworI2lmZGVmIERPX0RFUFNfT05MWQorIyBpbmNsdWRlIDxlbnZpcm9ubWVudC5oPgorI2VuZGlmCisKICNlbmRpZgkvKiBfX0NPTU1PTl9IXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0lTUEFOLmggYi9pbmNsdWRlL2NvbmZpZ3MvSVNQQU4uaAppbmRleCA2ZWI0NjZhLi5jMGIxZDg2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvSVNQQU4uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSVNQQU4uaApAQCAtODQsNiArODQsMTAgQEAKICAqIEdQSU8gcGlucyB1c2VkIGZvciBiaXQtYmFuZ2VkIE1JSSBjb21tdW5pY2F0aW9ucwogICovCiAjZGVmaW5lIE1ESU9fUE9SVAkJMwkJLyogUG9ydCBEICovCisjZGVmaW5lIE1ESU9fREVDTEFSRQkJdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICggXAorCQkJCQkoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIsIE1ESU9fUE9SVCApCisjZGVmaW5lIE1EQ19ERUNMQVJFCQlNRElPX0RFQ0xBUkUKKwogCiAjZGVmaW5lIENPTkZJR19TWVNfTURJT19QSU4JCTB4MDAwNDAwMDAJLyogUEQxMyAqLwogI2RlZmluZSBDT05GSUdfU1lTX01EQ19QSU4JCTB4MDAwODAwMDAJLyogUEQxMiAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzgyNjBBRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4MjYwQURTLmgKaW5kZXggMzliOGI4Zi4uZmZkMzdmZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzgyNjBBRFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODI2MEFEUy5oCkBAIC0xNTAsNiArMTUwLDkgQEAKICAqIEdQSU8gcGlucyB1c2VkIGZvciBiaXQtYmFuZ2VkIE1JSSBjb21tdW5pY2F0aW9ucwogICovCiAjZGVmaW5lIE1ESU9fUE9SVAkyCQkvKiBQb3J0IEMgKi8KKyNkZWZpbmUgTURJT19ERUNMQVJFCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoIFwKKwkJCQkoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIsIE1ESU9fUE9SVCApCisjZGVmaW5lIE1EQ19ERUNMQVJFCU1ESU9fREVDTEFSRQogCiAjaWYgQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjcyQURTCiAjZGVmaW5lIENPTkZJR19TWVNfTURJT19QSU4JMHgwMDAwMjAwMAkvKiBQQzE4ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODI2NkFEUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgyNjZBRFMuaAppbmRleCBiMDE2MmMzLi41NWQ3N2Y4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODI2NkFEUy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MjY2QURTLmgKQEAgLTk2LDYgKzk2LDEwIEBACiAgKiBQb3J0IHBpbnMgdXNlZCBmb3IgYml0LWJhbmdlZCBNSUkgY29tbXVuaWN0aW9ucyAoaWYgYXBwbGljYWJsZSkuCiAgKi8KICNkZWZpbmUgTURJT19QT1JUCTIJLyogUG9ydCBDICovCisjZGVmaW5lIE1ESU9fREVDTEFSRQl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKCBcCisJCQkJKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SLCBNRElPX1BPUlQgKQorI2RlZmluZSBNRENfREVDTEFSRQlNRElPX0RFQ0xBUkUKKwogI2RlZmluZSBNRElPX0FDVElWRQkoaW9wLT5wZGlyIHw9ICAweDAwNDAwMDAwKQogI2RlZmluZSBNRElPX1RSSVNUQVRFCShpb3AtPnBkaXIgJj0gfjB4MDA0MDAwMDApCiAjZGVmaW5lIE1ESU9fUkVBRAkoKGlvcC0+cGRhdCAmICAweDAwNDAwMDAwKSAhPSAwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg1NjBBRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTYwQURTLmgKaW5kZXggOGRkY2U1Yy4uZGY1OWFjYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzg1NjBBRFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU2MEFEUy5oCkBAIC0zNjMsNiArMzYzLDEwIEBACiAgKiBHUElPIHBpbnMgdXNlZCBmb3IgYml0LWJhbmdlZCBNSUkgY29tbXVuaWNhdGlvbnMKICAqLwogI2RlZmluZSBNRElPX1BPUlQJMgkJLyogUG9ydCBDICovCisjZGVmaW5lIE1ESU9fREVDTEFSRQl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKCBcCisJCQkJKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SLCBNRElPX1BPUlQgKQorI2RlZmluZSBNRENfREVDTEFSRQlNRElPX0RFQ0xBUkUKKwogI2RlZmluZSBNRElPX0FDVElWRQkoaW9wLT5wZGlyIHw9ICAweDAwNDAwMDAwKQogI2RlZmluZSBNRElPX1RSSVNUQVRFCShpb3AtPnBkaXIgJj0gfjB4MDA0MDAwMDApCiAjZGVmaW5lIE1ESU9fUkVBRAkoKGlvcC0+cGRhdCAmICAweDAwNDAwMDAwKSAhPSAwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg2MTBIUENELmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODYxMEhQQ0QuaAppbmRleCA3NjE5MzI4Li43Y2I0Y2NkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODYxMEhQQ0QuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODYxMEhQQ0QuaApAQCAtMTAyLDggKzEwMiw2IEBACiAjZGVmaW5lIENPTkZJR19TWVNfTUFYX0REUl9CQVRfU0laRQkweDgwMDAwMDAwCS8qIEJBVCBtYXBwaW5nIHNpemUgKi8KICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCi0jZGVmaW5lIE1QQzg2eHhfRERSX1NEUkFNX0NMS19DTlRMCi0KICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQogI2RlZmluZSBDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUgkxCiAjZGVmaW5lIENPTkZJR19DSElQX1NFTEVDVFNfUEVSX0NUUkwJKDIgKiBDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4NjQxSFBDTi5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg2NDFIUENOLmgKaW5kZXggYjBhZTI1Yy4uYTQ2ZjdjOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzg2NDFIUENOLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzg2NDFIUENOLmgKQEAgLTE0MSw4ICsxNDEsNiBAQAogI2RlZmluZSBDT05GSUdfU1lTX01BWF9ERFJfQkFUX1NJWkUJMHg4MDAwMDAwMAkvKiBCQVQgbWFwcGluZyBzaXplICovCiAjZGVmaW5lIENPTkZJR19WRVJZX0JJR19SQU0KIAotI2RlZmluZSBNUEM4Nnh4X0REUl9TRFJBTV9DTEtfQ05UTAotCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTIKICNkZWZpbmUgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIJMgogI2RlZmluZSBDT05GSUdfQ0hJUF9TRUxFQ1RTX1BFUl9DVFJMCSgyICogQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUDFfUDJfUkRCLmggYi9pbmNsdWRlL2NvbmZpZ3MvUDFfUDJfUkRCLmgKaW5kZXggOGU5N2FkMC4uMzEwMjQyZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1AxX1AyX1JEQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QMV9QMl9SREIuaApAQCAtNDMsNiArNDMsMjIgQEAKICNkZWZpbmUgQ09ORklHX1AyMDIwCiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19NS19OQU5ECisjZGVmaW5lIENPTkZJR19OQU5EX1VfQk9PVAkJMQorI2RlZmluZSBDT05GSUdfUkFNQk9PVF9OQU5ECQkxCisjZGVmaW5lIENPTkZJR19SQU1CT09UX1RFWFRfQkFTRQkweGY4ZjgyMDAwCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NS19TRENBUkQKKyNkZWZpbmUgQ09ORklHX1JBTUJPT1RfU0RDQVJECQkxCisjZGVmaW5lIENPTkZJR19SQU1CT09UX1RFWFRfQkFTRQkweGY4ZjgwMDAwCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NS19TUElGTEFTSAorI2RlZmluZSBDT05GSUdfUkFNQk9PVF9TUElGTEFTSAkJMQorI2RlZmluZSBDT05GSUdfUkFNQk9PVF9URVhUX0JBU0UJMHhmOGY4MDAwMAorI2VuZGlmCisKIC8qIEhpZ2ggTGV2ZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zICovCiAjZGVmaW5lIENPTkZJR19CT09LRQkJMQkvKiBCT09LRSAqLwogI2RlZmluZSBDT05GSUdfRTUwMAkJMQkvKiBCT09LRSBlNTAwIGZhbWlseSAqLwpAQCAtODIsMTYgKzk4LDM0IEBACiAjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MWZmZmZmZmYKICNkZWZpbmUgQ09ORklHX1BBTklDX0hBTkcJLyogZG8gbm90IHJlc2V0IGJvYXJkIG9uIHBhbmljICovCiAKKyAvKgorICAqIENvbmZpZyB0aGUgTDIgQ2FjaGUgYXMgTDIgU1JBTQorICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfTDJfQUREUgkJMHhmOGY4MDAwMAorI2lmZGVmIENPTkZJR19QSFlTXzY0QklUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9MMl9BRERSX1BIWVMJMHhmZjhmODAwMDB1bGwKKyNlbHNlCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9MMl9BRERSX1BIWVMJQ09ORklHX1NZU19JTklUX0wyX0FERFIKKyNlbmRpZgorI2RlZmluZSBDT05GSUdfU1lTX0wyX1NJWkUJCSg1MTIgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9MMl9FTkQJCShDT05GSUdfU1lTX0lOSVRfTDJfQUREUiArIENPTkZJR19TWVNfTDJfU0laRSkKKwogLyoKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi8KLSNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGZmZTAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mICovCiAJCQkJCQkJLyogQ0NTUkJBUiAqLwogI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgKi8KIAkJCQkJCQkvKiBDT05GSUdfU1lTX0lNTVIgKi8KKworI2lmIGRlZmluZWQoQ09ORklHX1JBTUJPT1RfTkFORCkgJiYgIWRlZmluZWQoQ09ORklHX05BTkRfU1BMKQorI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAlDT05GSUdfU1lTX0NDU1JCQVIKKyNlbHNlCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAgICAgICAvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNlbmRpZgorCiAjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweDkwMDApCiAjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweGEwMDApCiAKQEAgLTE1OCw2ICsxOTIsMTMgQEAKIAogI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1NQTCkgfHwgZGVmaW5lZChDT05GSUdfUkFNQk9PVF9OQU5EKSBcCisJfHwgZGVmaW5lZChDT05GSUdfUkFNQk9PVF9TRENBUkQpIHx8IGRlZmluZWQoQ09ORklHX1JBTUJPT1RfU1BJRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAorI2Vsc2UKKyN1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNlbmRpZgorCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCiAjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwpAQCAtMTc3LDcgKzIxOCwxMSBAQAogI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiovCiAjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jKi8KIAorI2lmbmRlZiBDT05GSUdfTkFORF9TUEwKICNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4ZmZhMDAwMDAKKyNlbHNlCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweGZmZjAwMDAwCisjZW5kaWYKICNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfUEhZUwlDT05GSUdfU1lTX05BTkRfQkFTRQogI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXtDT05GSUdfU1lTX05BTkRfQkFTRX0KICNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQpAQCAtMTg3LDYgKzIzMiwxNSBAQAogI2RlZmluZSBDT05GSUdfTkFORF9GU0xfRUxCQwkJMQogI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQkoMTYgKiAxMDI0KQogCisvKiBOQU5EIGJvb3Q6IDRLIE5BTkQgbG9hZGVyIGNvbmZpZyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU1BMX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfU0laRQkoKDUxMiA8PCAxMCkgLSAweDIwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUCShDT05GSUdfU1lTX0lOSVRfTDJfQUREUikKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9TVEFSVAkoQ09ORklHX1NZU19JTklUX0wyX0FERFIgKyBDT05GSUdfU1lTX05BTkRfU1BMX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfT0ZGUwkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9SRUxPQwkoQ09ORklHX1NZU19JTklUX0wyX0VORCAtIDB4MjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9SRUxPQ19TUAkJKChDT05GSUdfU1lTX0lOSVRfTDJfRU5EIC0gMSkgJiB+MHhGKQorCiAvKiBOQU5EIGZsYXNoIGNvbmZpZyAqLwogI2RlZmluZSBDT05GSUdfTkFORF9CUl9QUkVMSU0JKENPTkZJR19TWVNfTkFORF9CQVNFX1BIWVMgXAogCQkJCXwgKDI8PEJSX0RFQ0NfU0hJRlQpCS8qIFVzZSBIVyBFQ0MgKi8gXApAQCAtMjAyLDEwICsyNTYsMTcgQEAKIAkJCQl8IE9SX0ZDTV9UUkxYIFwKIAkJCQl8IE9SX0ZDTV9FSFRSKQogCisjaWZkZWYgQ09ORklHX1JBTUJPT1RfTkFORAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0gIENPTkZJR19OQU5EX0JSX1BSRUxJTSAgLyogTkFORCBCYXNlIEFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICBDT05GSUdfTkFORF9PUl9QUkVMSU0gIC8qIE5BTkQgT3B0aW9ucyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0gIENPTkZJR19GTEFTSF9CUl9QUkVMSU0gIC8qIE5PUiBCYXNlIEFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNICBDT05GSUdfRkxBU0hfT1JfUFJFTElNICAvKiBOT1IgT3B0aW9ucyAqLworI2Vsc2UKICNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICBDT05GSUdfRkxBU0hfQlJfUFJFTElNICAvKiBOT1IgQmFzZSBBZGRyZXNzICovCiAjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTSAgQ09ORklHX0ZMQVNIX09SX1BSRUxJTSAgLyogTk9SIE9wdGlvbnMgKi8KICNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICBDT05GSUdfTkFORF9CUl9QUkVMSU0gIC8qIE5BTkQgQmFzZSBBZGRyZXNzICovCiAjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSAgQ09ORklHX05BTkRfT1JfUFJFTElNICAvKiBOQU5EIE9wdGlvbnMgKi8KKyNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19TWVNfVlNDNzM4NV9CQVNFCTB4ZmZiMDAwMDAKIApAQCAtMzcxLDE0ICs0MzIsMjYgQEAKIC8qCiAgKiBFbnZpcm9ubWVudAogICovCi0jZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID4gMHhmZmY4MDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4ZmZmODAwMDAKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19SQU1CT09UX05BTkQpCisJI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05BTkQJMQorCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQorCSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJKCg1MTIgKiAxMDI0KSArIENPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFKQorI2VsaWYgZGVmaW5lZChDT05GSUdfUkFNQk9PVF9TRENBUkQpIHx8IGRlZmluZWQoQ09ORklHX1JBTUJPT1RfU1BJRkxBU0gpCisJI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKKyNlbmRpZgogI2Vsc2UKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKKwkjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQorCSNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+IDB4ZmZmODAwMDAKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhmZmY4MDAwMAorCSNlbHNlCisJI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQorCSNlbmRpZgorCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKKwkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogMTI4SyAob25lIHNlY3RvcikgKi8KICNlbmRpZgotI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAotI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwIC8qIDEyOEsgKG9uZSBzZWN0b3IpICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KICNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1JhdHRsZXIuaCBiL2luY2x1ZGUvY29uZmlncy9SYXR0bGVyLmgKaW5kZXggNWI2ZjI3MS4uZTYzMGFmZWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9SYXR0bGVyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1JhdHRsZXIuaApAQCAtMTAzLDYgKzEwMywxMCBAQAogICogR1BJTyBwaW5zIHVzZWQgZm9yIGJpdC1iYW5nZWQgTUlJIGNvbW11bmljYXRpb25zCiAgKi8KICNkZWZpbmUgTURJT19QT1JUCQkyCS8qIFBvcnQgQyAqLworI2RlZmluZSBNRElPX0RFQ0xBUkUJCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoIFwKKwkJCQkJKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SLCBNRElPX1BPUlQgKQorI2RlZmluZSBNRENfREVDTEFSRQkJTURJT19ERUNMQVJFCisKICNkZWZpbmUgTURJT19BQ1RJVkUJCShpb3AtPnBkaXIgfD0gIDB4MDA0MDAwMDApCiAjZGVmaW5lIE1ESU9fVFJJU1RBVEUJCShpb3AtPnBkaXIgJj0gfjB4MDA0MDAwMDApCiAjZGVmaW5lIE1ESU9fUkVBRAkJKChpb3AtPnBkYXQgJiAgMHgwMDQwMDAwMCkgIT0gMCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9TQkM4NTQwLmggYi9pbmNsdWRlL2NvbmZpZ3MvU0JDODU0MC5oCmluZGV4IDdjZGUzOWIuLjE5ODllNWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9TQkM4NTQwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1NCQzg1NDAuaApAQCAtMjkwLDYgKzI5MCwxMCBAQAogICAgKiBHUElPIHBpbnMgdXNlZCBmb3IgYml0LWJhbmdlZCBNSUkgY29tbXVuaWNhdGlvbnMKICAgICovCiAgICNkZWZpbmUgTURJT19QT1JUCTIJCS8qIFBvcnQgQyAqLworICAjZGVmaW5lIE1ESU9fREVDTEFSRQl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKCBcCisJCQkJKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SLCBNRElPX1BPUlQgKQorICAjZGVmaW5lIE1EQ19ERUNMQVJFCU1ESU9fREVDTEFSRQorCiAgICNkZWZpbmUgTURJT19BQ1RJVkUJKGlvcC0+cGRpciB8PSAgMHgwMDQwMDAwMCkKICAgI2RlZmluZSBNRElPX1RSSVNUQVRFCShpb3AtPnBkaXIgJj0gfjB4MDA0MDAwMDApCiAgICNkZWZpbmUgTURJT19SRUFECSgoaW9wLT5wZGF0ICYgIDB4MDA0MDAwMDApICE9IDApCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODI3Mi5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTgyNzIuaAppbmRleCA2YzQ2MmFmLi42ZWFhNjFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODI3Mi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU04MjcyLmgKQEAgLTIxOSw2ICsyMTksOSBAQAogICogR1BJTyBwaW5zIHVzZWQgZm9yIGJpdC1iYW5nZWQgTUlJIGNvbW11bmljYXRpb25zCiAgKi8KICNkZWZpbmUgTURJT19QT1JUCTIJCS8qIFBvcnQgQyAqLworI2RlZmluZSBNRElPX0RFQ0xBUkUJdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICggXAorCQkJCShpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiwgTURJT19QT1JUICkKKyNkZWZpbmUgTURDX0RFQ0xBUkUJTURJT19ERUNMQVJFCiAKICNpZiBTVEs4Mnh4XzE1MAogI2RlZmluZSBDT05GSUdfU1lTX01ESU9fUElOCTB4MDAwMDgwMDAJLyogUEMxNiAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1ZvVlBOLUdXLmggYi9pbmNsdWRlL2NvbmZpZ3MvVm9WUE4tR1cuaAppbmRleCBiMmQ3NWUzLi4zNjE0MTg0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVm9WUE4tR1cuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVm9WUE4tR1cuaApAQCAtMTI0LDYgKzEyNCwxMSBAQAogI2RlZmluZSBDT05GSUdfQklUQkFOR01JSQogCiAjZGVmaW5lIE1ESU9fUE9SVAkJCTEJCS8qIFBvcnQgQiAqLworCisjZGVmaW5lIE1ESU9fREVDTEFSRQkJdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICggXAorCQkJCQkoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIsIE1ESU9fUE9SVCApCisjZGVmaW5lIE1EQ19ERUNMQVJFCQlNRElPX0RFQ0xBUkUKKwogI2RlZmluZSBDT05GSUdfU1lTX01ESU9fUElOCQkJMHgwMDAwMjAwMAkvKiBQQjE4ICovCiAjZGVmaW5lIENPTkZJR19TWVNfTURDX1BJTgkJCTB4MDAwMDEwMDAJLyogUEIxOSAqLwogI2RlZmluZSBNRElPX0FDVElWRQkJCShpb3AtPnBkaXIgfD0gIENPTkZJR19TWVNfTURJT19QSU4pCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvWlBDMTkwMC5oIGIvaW5jbHVkZS9jb25maWdzL1pQQzE5MDAuaAppbmRleCA5Y2RhM2Y5Li44YWU3NjVjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvWlBDMTkwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9aUEMxOTAwLmgKQEAgLTg2LDYgKzg2LDEwIEBACiAgKiBHUElPIHBpbnMgdXNlZCBmb3IgYml0LWJhbmdlZCBNSUkgY29tbXVuaWNhdGlvbnMKICAqLwogI2RlZmluZSBNRElPX1BPUlQJCTIJLyogUG9ydCBDICovCisjZGVmaW5lIE1ESU9fREVDTEFSRQkJdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICggXAorCQkJCQkoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIsIE1ESU9fUE9SVCApCisjZGVmaW5lIE1EQ19ERUNMQVJFCQlNRElPX0RFQ0xBUkUKKwogI2RlZmluZSBNRElPX0FDVElWRQkJKGlvcC0+cGRpciB8PSAgMHgwMDQwMDAwMCkKICNkZWZpbmUgTURJT19UUklTVEFURQkJKGlvcC0+cGRpciAmPSB+MHgwMDQwMDAwMCkKICNkZWZpbmUgTURJT19SRUFECQkoKGlvcC0+cGRhdCAmICAweDAwNDAwMDAwKSAhPSAwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NwdTkyNjAuaCBiL2luY2x1ZGUvY29uZmlncy9jcHU5MjYwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVmODU2NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvY29uZmlncy9jcHU5MjYwLmgKQEAgLTAsMCArMSw0NTMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IDIwMDctMjAwOAorICogU3RlbGlhbiBQb3AgPHN0ZWxpYW4ucG9wQGxlYWR0ZWNoZGVzaWduLmNvbT4KKyAqIExlYWQgVGVjaCBEZXNpZ24gPHd3dy5sZWFkdGVjaGRlc2lnbi5jb20+CisgKiBJbGtvIElsaWV2IDx3d3cucm9uZXRpeC5hdD4KKyAqCisgKiAoQykgQ29weXJpZ2h0IDIwMDkKKyAqIEVyaWMgQmVuYXJkIDxlcmljQGV1a3JlYS5jb20+CisgKgorICogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIEV1a3JlYSBDUFU5MjYwIGJvYXJkLgorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2lmbmRlZiBfX0NPTkZJR19ICisjZGVmaW5lIF9fQ09ORklHX0gKKworI2RlZmluZSBDT05GSUdfRElTUExBWV9DUFVJTkZPCTEKKworI2RlZmluZSBBVDkxX01BSU5fQ0xPQ0sJCTE4NDMyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAKKworI2RlZmluZSBDT05GSUdfQVJNOTI2RUpTCTEKKworI2lmIGRlZmluZWQoQ09ORklHX0NQVTkyNjBfMTI4TSkgfHwgZGVmaW5lZChDT05GSUdfQ1BVOTI2MCkKKyNkZWZpbmUgQ09ORklHX0NQVTkyNjAJCTEKKyNlbGlmIGRlZmluZWQoQ09ORklHX0NQVTlHMjBfMTI4TSkgfHwgZGVmaW5lZChDT05GSUdfQ1BVOUcyMCkKKyNkZWZpbmUgQ09ORklHX0NQVTlHMjAJCTEKKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfQ1BVOUcyMCkKKyNkZWZpbmUgQ09ORklHX0FUOTFTQU05RzIwCTEKKyNlbGlmIGRlZmluZWQoQ09ORklHX0NQVTkyNjApCisjZGVmaW5lIENPTkZJR19BVDkxU0FNOTI2MAkxCisjZWxzZQorI2Vycm9yICJVbmtub3duIGJvYXJkIgorI2VuZGlmCisKKyNkZWZpbmUgQ09ORklHX0FSQ0hfQ1BVX0lOSVQKKyN1bmRlZiBDT05GSUdfVVNFX0lSUQorCisjZGVmaW5lIENPTkZJR19DTURMSU5FX1RBRwkJMQorI2RlZmluZSBDT05GSUdfU0VUVVBfTUVNT1JZX1RBR1MgCTEKKyNkZWZpbmUgQ09ORklHX0lOSVRSRF9UQUcJCTEKKworLyogY2xvY2tzICovCisjaWYgZGVmaW5lZChDT05GSUdfQ1BVOUcyMCkKKyNkZWZpbmUgTUFTVEVSX1BMTF9ESVYJCTB4MDEKKyNkZWZpbmUgTUFTVEVSX1BMTF9NVUwJCTB4MkIKKyNlbGlmIGRlZmluZWQoQ09ORklHX0NQVTkyNjApCisjZGVmaW5lIE1BU1RFUl9QTExfRElWCQkweDA5CisjZGVmaW5lIE1BU1RFUl9QTExfTVVMCQkweDYxCisjZW5kaWYKKworLyogQ0tHUl9NT1IgLSBlbmFibGUgbWFpbiBvc2MuICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9SX1ZBTAkJCQkJCVwKKwkJKEFUOTFfUE1DX01PU0NFTiB8CQkJCQlcCisJCSAoMjU1IDw8IDgpKQkJLyogTWFpbiBPc2NpbGxhdG9yIFN0YXJ0LXVwIFRpbWUgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19DUFU5RzIwKQorI2RlZmluZSBDT05GSUdfU1lTX1BMTEFSX1ZBTAkJCQkJCVwKKwkJKEFUOTFfUE1DX1BMTEFfV1JfRVJSQVRBIHwgLyogQml0IDI5IG11c3QgYmUgMSB3aGVuIHByb2cgKi8gXAorCQkgKChNQVNURVJfUExMX01VTCAtIDEpIDw8IDE2KSB8IChNQVNURVJfUExMX0RJVikpCisjZWxpZiBkZWZpbmVkKENPTkZJR19DUFU5MjYwKQorI2RlZmluZSBDT05GSUdfU1lTX1BMTEFSX1ZBTAkJCQkJCVwKKwkJKEFUOTFfUE1DX1BMTEFfV1JfRVJSQVRBIHwgLyogQml0IDI5IG11c3QgYmUgMSB3aGVuIHByb2cgKi8gXAorCQkgQVQ5MV9QTUNfT1VUIHwJCQkJCQlcCisJCSAoKE1BU1RFUl9QTExfTVVMIC0gMSkgPDwgMTYpIHwgKE1BU1RFUl9QTExfRElWKSkKKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfQ1BVOUcyMCkKKyNkZWZpbmUJQ09ORklHX1NZU19NQ0tSMV9WQUwJCVwKKwkJKEFUOTFfUE1DX0NTU19QTExBIHwJXAorCQkgQVQ5MV9QTUNfUFJFU18xIHwJXAorCQkgQVQ5MVNBTTlfUE1DX01ESVZfNiB8CVwKKwkJIEFUOTFfUE1DX1BESVZfMikKKyNkZWZpbmUJQ09ORklHX1NZU19NQ0tSMl9WQUwJCVwKKwkJQ09ORklHX1NZU19NQ0tSMV9WQUwKKyNlbGlmIGRlZmluZWQoQ09ORklHX0NQVTkyNjApCisjZGVmaW5lCUNPTkZJR19TWVNfTUNLUjFfVkFMCQlcCisJCShBVDkxX1BNQ19DU1NfU0xPVyB8CVwKKwkJIEFUOTFfUE1DX1BSRVNfMSB8CVwKKwkJIEFUOTFTQU05X1BNQ19NRElWXzIgfAlcCisJCSBBVDkxX1BNQ19QRElWXzEpCisjZGVmaW5lCUNPTkZJR19TWVNfTUNLUjJfVkFMCQlcCisJCShBVDkxX1BNQ19DU1NfUExMQSB8CVwKKwkJIEFUOTFfUE1DX1BSRVNfMSB8CVwKKwkJIEFUOTFTQU05X1BNQ19NRElWXzIgfAlcCisJCSBBVDkxX1BNQ19QRElWXzEpCisjZW5kaWYKKworLyogZGVmaW5lIFBEQ1szMToxNl0gYXMgREFUQVszMToxNl0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QSU9DX1BEUl9WQUwxCTB4RkZGRjAwMDAKKy8qIG5vIHB1bGwtdXAgZm9yIERbMzE6MTZdICovCisjZGVmaW5lIENPTkZJR19TWVNfUElPQ19QUFVEUl9WQUwJMHhGRkZGMDAwMAorCisvKiBFQklfQ1NBLCAzLjNWLCBubyBwdWxsLXVwcyBmb3IgRFsxNTowXSwgQ1MxIFNEUkFNLCBDUzMgTkFORCBGbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BVFJJWF9FQklDU0FfVkFMCQlcCisgICAgICAgKEFUOTFfTUFUUklYX0RCUFVDIHwgQVQ5MV9NQVRSSVhfQ1MxQV9TRFJBTUMgfFwKKyAgICAgICBBVDkxX01BVFJJWF9DUzNBX1NNQ19TTUFSVE1FRElBIHwgQVQ5MV9NQVRSSVhfVkRESU9NU0VMKQorCisvKiBTRFJBTSAqLworLyogU0RSQU1DX01SIE1vZGUgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX01SX1ZBTDEJCUFUOTFfU0RSQU1DX01PREVfTk9STUFMCisvKiBTRFJBTUNfVFIgLSBSZWZyZXNoIFRpbWVyIHJlZ2lzdGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQ19UUl9WQUwxCQkweDI4NworLyogU0RSQU1DX0NSIC0gQ29uZmlndXJhdGlvbiByZWdpc3RlciovCisjaWYgZGVmaW5lZChDT05GSUdfQ1BVOUcyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX0NSX1ZBTF82NE1CCQkJCQlcCisJCShBVDkxX1NEUkFNQ19OQ185IHwJCQkJCVwKKwkJIEFUOTFfU0RSQU1DX05SXzEzIHwJCQkJCVwKKwkJIEFUOTFfU0RSQU1DX05CXzQgfAkJCQkJXAorCQkgQVQ5MV9TRFJBTUNfQ0FTXzIgfAkJCQkJXAorCQkgQVQ5MV9TRFJBTUNfREJXXzMyIHwJCQkJCVwKKwkJICgyIDw8ICA4KSB8CS8qIFdyaXRlIFJlY292ZXJ5IERlbGF5ICovCQlcCisJCSAoOSA8PCAxMikgfAkvKiBSb3cgQ3ljbGUgRGVsYXkgKi8JCQlcCisJCSAoMyA8PCAxNikgfAkvKiBSb3cgUHJlY2hhcmdlIERlbGF5ICovCQlcCisJCSAoMyA8PCAyMCkgfAkvKiBSb3cgdG8gQ29sdW1uIERlbGF5ICovCQlcCisJCSAoNiA8PCAyNCkgfAkvKiBBY3RpdmUgdG8gUHJlY2hhcmdlIERlbGF5ICovCQlcCisJCSAoMTAgPDwgMjgpKQkvKiBFeGl0IFNlbGYgUmVmcmVzaCB0byBBY3RpdmUgRGVsYXkgKi8KKworI2RlZmluZSBDT05GSUdfU1lTX1NEUkNfQ1JfVkFMXzEyOE1CCQkJCQlcCisJCShBVDkxX1NEUkFNQ19OQ18xMCB8CQkJCQlcCisJCSBBVDkxX1NEUkFNQ19OUl8xMyB8CQkJCQlcCisJCSBBVDkxX1NEUkFNQ19OQl80IHwJCQkJCVwKKwkJIEFUOTFfU0RSQU1DX0NBU18yIHwJCQkJCVwKKwkJIEFUOTFfU0RSQU1DX0RCV18zMiB8CQkJCQlcCisJCSAoMiA8PCAgOCkgfAkvKiBXcml0ZSBSZWNvdmVyeSBEZWxheSAqLwkJXAorCQkgKDkgPDwgMTIpIHwJLyogUm93IEN5Y2xlIERlbGF5ICovCQkJXAorCQkgKDMgPDwgMTYpIHwJLyogUm93IFByZWNoYXJnZSBEZWxheSAqLwkJXAorCQkgKDMgPDwgMjApIHwJLyogUm93IHRvIENvbHVtbiBEZWxheSAqLwkJXAorCQkgKDYgPDwgMjQpIHwJLyogQWN0aXZlIHRvIFByZWNoYXJnZSBEZWxheSAqLwkJXAorCQkgKDEwIDw8IDI4KSkJLyogRXhpdCBTZWxmIFJlZnJlc2ggdG8gQWN0aXZlIERlbGF5ICovCisjZWxpZiBkZWZpbmVkKENPTkZJR19DUFU5MjYwKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkNfQ1JfVkFMXzY0TUIJCQkJCVwKKwkJKEFUOTFfU0RSQU1DX05DXzkgfAkJCQkJXAorCQkgQVQ5MV9TRFJBTUNfTlJfMTMgfAkJCQkJXAorCQkgQVQ5MV9TRFJBTUNfTkJfNCB8CQkJCQlcCisJCSBBVDkxX1NEUkFNQ19DQVNfMiB8CQkJCQlcCisJCSBBVDkxX1NEUkFNQ19EQldfMzIgfAkJCQkJXAorCQkgKDIgPDwgIDgpIHwJLyogV3JpdGUgUmVjb3ZlcnkgRGVsYXkgKi8JCVwKKwkJICg3IDw8IDEyKSB8CS8qIFJvdyBDeWNsZSBEZWxheSAqLwkJCVwKKwkJICgyIDw8IDE2KSB8CS8qIFJvdyBQcmVjaGFyZ2UgRGVsYXkgKi8JCVwKKwkJICgyIDw8IDIwKSB8CS8qIFJvdyB0byBDb2x1bW4gRGVsYXkgKi8JCVwKKwkJICg1IDw8IDI0KSB8CS8qIEFjdGl2ZSB0byBQcmVjaGFyZ2UgRGVsYXkgKi8JCVwKKwkJICg4IDw8IDI4KSkJLyogRXhpdCBTZWxmIFJlZnJlc2ggdG8gQWN0aXZlIERlbGF5ICovCisKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX0NSX1ZBTF8xMjhNQgkJCQkJXAorCQkoQVQ5MV9TRFJBTUNfTkNfMTAgfAkJCQkJXAorCQkgQVQ5MV9TRFJBTUNfTlJfMTMgfAkJCQkJXAorCQkgQVQ5MV9TRFJBTUNfTkJfNCB8CQkJCQlcCisJCSBBVDkxX1NEUkFNQ19DQVNfMiB8CQkJCQlcCisJCSBBVDkxX1NEUkFNQ19EQldfMzIgfAkJCQkJXAorCQkgKDIgPDwgIDgpIHwJLyogV3JpdGUgUmVjb3ZlcnkgRGVsYXkgKi8JCVwKKwkJICg3IDw8IDEyKSB8CS8qIFJvdyBDeWNsZSBEZWxheSAqLwkJCVwKKwkJICgyIDw8IDE2KSB8CS8qIFJvdyBQcmVjaGFyZ2UgRGVsYXkgKi8JCVwKKwkJICgyIDw8IDIwKSB8CS8qIFJvdyB0byBDb2x1bW4gRGVsYXkgKi8JCVwKKwkJICg1IDw8IDI0KSB8CS8qIEFjdGl2ZSB0byBQcmVjaGFyZ2UgRGVsYXkgKi8JCVwKKwkJICg4IDw8IDI4KSkJLyogRXhpdCBTZWxmIFJlZnJlc2ggdG8gQWN0aXZlIERlbGF5ICovCisjZW5kaWYKKworLyogTWVtb3J5IERldmljZSBSZWdpc3RlciAtPiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkNfTURSX1ZBTAkJQVQ5MV9TRFJBTUNfTURfU0RSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX01SX1ZBTDIJCUFUOTFfU0RSQU1DX01PREVfUFJFQ0hBUkdFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVkFMMQkJMAkJLyogU0RSQU1fQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkNfTVJfVkFMMwkJQVQ5MV9TRFJBTUNfTU9ERV9SRUZSRVNICisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVkFMMgkJMAkJLyogU0RSQU1fQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1ZBTDMJCTAJCS8qIFNEUkFNX0JBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9WQUw0CQkwCQkvKiBTRFJBTV9CQVNFICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVkFMNQkJMAkJLyogU0RSQU1fQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1ZBTDYJCTAJCS8qIFNEUkFNX0JBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9WQUw3CQkwCQkvKiBTRFJBTV9CQVNFICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVkFMOAkJMAkJLyogU0RSQU1fQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1ZBTDkJCTAJCS8qIFNEUkFNX0JBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX01SX1ZBTDQJCUFUOTFfU0RSQU1DX01PREVfTE1SCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVkFMMTAJCTAJCS8qIFNEUkFNX0JBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX01SX1ZBTDUJCUFUOTFfU0RSQU1DX01PREVfTk9STUFMCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVkFMMTEJCTAJCS8qIFNEUkFNX0JBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX1RSX1ZBTDIJCTEyMDAJCS8qIFNEUkFNX1RSICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVkFMMTIJCTAJCS8qIFNEUkFNX0JBU0UgKi8KKworLyogc2V0dXAgU01DMCwgQ1MwIChOT1IgRmxhc2gpIC0gMTYtYml0ICovCisjaWYgZGVmaW5lZChDT05GSUdfQ1BVOUcyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TTUMwX1NFVFVQMF9WQUwJCQkJCVwKKwkJKEFUOTFfU01DX05XRVNFVFVQXygwKSB8IEFUOTFfU01DX05DU19XUlNFVFVQXygwKSB8CVwKKwkJIEFUOTFfU01DX05SRFNFVFVQXygwKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19TTUMwX1BVTFNFMF9WQUwJCQkJCVwKKwkJKEFUOTFfU01DX05XRVBVTFNFXyg4KSB8IEFUOTFfU01DX05DU19XUlBVTFNFXyg4KSB8CVwKKwkJIEFUOTFfU01DX05SRFBVTFNFXygxNCkgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oMTQpKQorI2RlZmluZSBDT05GSUdfU1lTX1NNQzBfQ1lDTEUwX1ZBTAlcCisJCShBVDkxX1NNQ19OV0VDWUNMRV8oOCkgfCBBVDkxX1NNQ19OUkRDWUNMRV8oMTQpKQorI2RlZmluZSBDT05GSUdfU1lTX1NNQzBfTU9ERTBfVkFMCQkJCVwKKwkJKEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwJXAorCQkgQVQ5MV9TTUNfREJXXzE2IHwJCQkJXAorCQkgQVQ5MV9TTUNfVERGTU9ERSB8CQkJCVwKKwkJIEFUOTFfU01DX1RERl8oMykpCisjZWxpZiBkZWZpbmVkKENPTkZJR19DUFU5MjYwKQorI2RlZmluZSBDT05GSUdfU1lTX1NNQzBfU0VUVVAwX1ZBTAkJCQkJXAorCQkoQVQ5MV9TTUNfTldFU0VUVVBfKDApIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApIHwJXAorCQkgQVQ5MV9TTUNfTlJEU0VUVVBfKDApIHwgQVQ5MV9TTUNfTkNTX1JEU0VUVVBfKDApKQorI2RlZmluZSBDT05GSUdfU1lTX1NNQzBfUFVMU0UwX1ZBTAkJCQkJXAorCQkoQVQ5MV9TTUNfTldFUFVMU0VfKDYpIHwgQVQ5MV9TTUNfTkNTX1dSUFVMU0VfKDYpIHwJXAorCQkgQVQ5MV9TTUNfTlJEUFVMU0VfKDEwKSB8IEFUOTFfU01DX05DU19SRFBVTFNFXygxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfU01DMF9DWUNMRTBfVkFMCVwKKwkJKEFUOTFfU01DX05XRUNZQ0xFXyg2KSB8IEFUOTFfU01DX05SRENZQ0xFXygxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfU01DMF9NT0RFMF9WQUwJCQkJXAorCQkoQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfAlcCisJCSBBVDkxX1NNQ19EQldfMTYgfAkJCQlcCisJCSBBVDkxX1NNQ19UREZNT0RFIHwJCQkJXAorCQkgQVQ5MV9TTUNfVERGXygyKSkKKyNlbmRpZgorCisvKiB1c2VyIHJlc2V0IGVuYWJsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JTVENfUk1SX1ZBTAkJCVwKKwkJKEFUOTFfUlNUQ19LRVkgfAkJXAorCQlBVDkxX1JTVENfUFJPQ1JTVCB8CQlcCisJCUFUOTFfUlNUQ19SU1RUWVBfV0FLRVVQIHwJXAorCQlBVDkxX1JTVENfUlNUVFlQX1dBVENIRE9HKQorCisvKiBEaXNhYmxlIFdhdGNoZG9nICovCisjZGVmaW5lIENPTkZJR19TWVNfV0RUQ19XRE1SX1ZBTAkJCQlcCisJCShBVDkxX1dEVF9XRElETEVITFQgfCBBVDkxX1dEVF9XRERCR0hMVCB8CVwKKwkJIEFUOTFfV0RUX1dEViB8CQkJCQlcCisJCSBBVDkxX1dEVF9XRERJUyB8CQkJCVwKKwkJIEFUOTFfV0RUX1dERCkKKworLyoKKyAqIEhhcmR3YXJlIGRyaXZlcnMKKyAqLworI2RlZmluZSBDT05GSUdfQVRNRUxfVVNBUlQJMQorI3VuZGVmIENPTkZJR19VU0FSVDAKKyN1bmRlZiBDT05GSUdfVVNBUlQxCisjdW5kZWYgQ09ORklHX1VTQVJUMgorI2RlZmluZSBDT05GSUdfVVNBUlQzCQkxCS8qIFVTQVJUIDMgaXMgREJHVSAqLworCisjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMworCisvKgorICogQk9PVFAgb3B0aW9ucworICovCisjZGVmaW5lIENPTkZJR19CT09UUF9CT09URklMRVNJWkUJMQorI2RlZmluZSBDT05GSUdfQk9PVFBfQk9PVFBBVEgJCTEKKyNkZWZpbmUgQ09ORklHX0JPT1RQX0dBVEVXQVkJCTEKKyNkZWZpbmUgQ09ORklHX0JPT1RQX0hPU1ROQU1FCQkxCisKKy8qCisgKiBDb21tYW5kIGxpbmUgY29uZmlndXJhdGlvbi4KKyAqLworI2luY2x1ZGUgPGNvbmZpZ19jbWRfZGVmYXVsdC5oPgorI3VuZGVmIENPTkZJR19DTURfQkRJCisjdW5kZWYgQ09ORklHX0NNRF9JTUkKKyN1bmRlZiBDT05GSUdfQ01EX0ZQR0EKKyN1bmRlZiBDT05GSUdfQ01EX0xPQURTCisjdW5kZWYgQ09ORklHX0NNRF9JTUxTCisKKyNkZWZpbmUgQ09ORklHX0NNRF9QSU5HCQkxCisjZGVmaW5lIENPTkZJR19DTURfREhDUAkJMQorI2RlZmluZSBDT05GSUdfQ01EX05BTkQJCTEKKyNkZWZpbmUgQ09ORklHX0NNRF9VU0IJCTEKKyNkZWZpbmUgQ09ORklHX0NNRF9GQVQJCTEKKworLyogU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX05SX0RSQU1fQkFOS1MJMQorI2RlZmluZSBQSFlTX1NEUkFNCQkweDIwMDAwMDAwCisjaWYgZGVmaW5lZChDT05GSUdfQ1BVOTI2MF8xMjhNKSB8fCBkZWZpbmVkKENPTkZJR19DUFU5RzIwXzEyOE0pCisjZGVmaW5lIFBIWVNfU0RSQU1fU0laRQkJMHgwODAwMDAwMAkvKiAxMjggTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX0NSX1ZBTAlDT05GSUdfU1lTX1NEUkNfQ1JfVkFMXzEyOE1CCisjZWxzZQorI2RlZmluZSBQSFlTX1NEUkFNX1NJWkUJCTB4MDQwMDAwMDAJLyogNjQgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX0NSX1ZBTAlDT05GSUdfU1lTX1NEUkNfQ1JfVkFMXzY0TUIKKyNlbmRpZgorCisvKiBOQU5EIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19OQU5EX0FUTUVMCQkJMQorI2RlZmluZSBOQU5EX01BWF9DSElQUwkJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfREJXXzgJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRUFEWV9QSU4JCUFUOTFfUElOX1BDMTMKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VOQUJMRV9QSU4JCUFUOTFfUElOX1BDMTQKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX01BU0tfQUxFCQkoMSA8PCAyMSkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX01BU0tfQ0xFCQkoMSA8PCAyMikKKworLyogTk9SIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJMQorI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCTEKKyNkZWZpbmUgUEhZU19GTEFTSF8xCQkJCTB4MTAwMDAwMDAKKyNkZWZpbmUgUEhZU19GTEFTSF8yCQkJCTB4MTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCQlcCisJCXsgUEhZU19GTEFTSF8xLCBQSFlTX0ZMQVNIXzIgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJKDI1NSs0KQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAkJRkxBU0hfQ0ZJXzE2QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCQlQSFlTX0ZMQVNIXzEKKworLyogRXRoZXJuZXQgKi8KKyNkZWZpbmUgQ09ORklHX01BQ0IJCQkJMQorI2RlZmluZSBDT05GSUdfUk1JSQkJCQkxCisjZGVmaW5lIENPTkZJR19SRVNFVF9QSFlfUgkJCTEKKyNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkJCTEKKyNkZWZpbmUgQ09ORklHX05FVF9SRVRSWV9DT1VOVAkJCTIwCisjZGVmaW5lIENPTkZJR19NQUNCX1NFQVJDSF9QSFkJCQkxCisKKy8qIExFRFMgKi8KKy8qIFN0YXR1cyBMRUQgKi8KKyNkZWZpbmUgQ09ORklHX1NUQVRVU19MRUQJCQkxIC8qIFN0YXR1cyBMRUQgZW5hYmxlZAkqLworI2RlZmluZSBDT05GSUdfQk9BUkRfU1BFQ0lGSUNfTEVECQkxCisjZGVmaW5lIFNUQVRVU19MRURfUkVECQkJCTAKKyNkZWZpbmUgU1RBVFVTX0xFRF9HUkVFTgkJCTEKKyNkZWZpbmUgU1RBVFVTX0xFRF9ZRUxMT1cJCQkyCisjZGVmaW5lIFNUQVRVU19MRURfQkxVRQkJCQkzCisvKiBSZWQgKi8KKyNkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCQkJU1RBVFVTX0xFRF9SRUQKKyNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQkJCVNUQVRVU19MRURfT0ZGCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECQkJKENPTkZJR19TWVNfSFogLyAyKQorLyogR3JlZW4gKi8KKyNkZWZpbmUgU1RBVFVTX0xFRF9CSVQxCQkJCVNUQVRVU19MRURfR1JFRU4KKyNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTEJCQlTVEFUVVNfTEVEX09GRgorI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJCQkoQ09ORklHX1NZU19IWiAvIDIpCisvKiBZZWxsb3cgKi8KKyNkZWZpbmUgU1RBVFVTX0xFRF9CSVQyCQkJCVNUQVRVU19MRURfWUVMTE9XCisjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUyCQkJU1RBVFVTX0xFRF9PRkYKKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QyCQkJKENPTkZJR19TWVNfSFogLyAyKQorLyogQmx1ZSAqLworI2RlZmluZSBTVEFUVVNfTEVEX0JJVDMJCQkJU1RBVFVTX0xFRF9CTFVFCisjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUzCQkJU1RBVFVTX0xFRF9PTgorI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRDMJCQkoQ09ORklHX1NZU19IWiAvIDIpCisvKiBPcHRpb25hbCB2YWx1ZSAqLworI2RlZmluZSBTVEFUVVNfTEVEX0JPT1QJCQkJU1RBVFVTX0xFRF9CSVQKKworI2RlZmluZSBDT05GSUdfUkVEX0xFRAkJCQlBVDkxX1BJTl9QQzExCisjZGVmaW5lIENPTkZJR19HUkVFTl9MRUQJCQlBVDkxX1BJTl9QQzEyCisjZGVmaW5lIENPTkZJR19ZRUxMT1dfTEVECQkJQVQ5MV9QSU5fUEM3CisjZGVmaW5lIENPTkZJR19CTFVFX0xFRAkJCQlBVDkxX1BJTl9QQzkKKworLyogVVNCICovCisjZGVmaW5lIENPTkZJR19VU0JfQVRNRUwJCQkxCisjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcJCQkxCisjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCQkweDAwNTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCQkiYXQ5MXNhbTkyNjAiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMgorI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UJCQkxCisKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkweDIxMDAwMDAwCisKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkweDIxZTAwMDAwCisKKyN1bmRlZiBDT05GSUdfU1lTX1VTRV9OQU5ERkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfRkxBU0gJCQkxCisKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfVVNFX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICQkxCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwCisjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCQkweDIwMDAwCisjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJCTEKKworI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJCSJydW4gZmxhc2hib290IgorCisjZGVmaW5lIE1URElEU19ERUZBVUxUCSAJIm5vcjA9cGh5c21hcC1mbGFzaC4wLG5hbmQwPWF0bWVsX25hbmQiCisjZGVmaW5lIE1URFBBUlRTX0RFRkFVTFQJCVwKKwkibXRkcGFydHM9cGh5c21hcC1mbGFzaC4wOiIJXAorCQkiMjU2ayh1LWJvb3Qpcm8sIglcCisJCSIxMjhrKHUtYm9vdC1lbnYpcm8sIglcCisJCSIxNzkyayhrZXJuZWwpLCIJXAorCQkiLShyb290ZnMpOyIJCVwKKwkiYXRtZWxfbmFuZDotKG5hbmQpIgorCisjZGVmaW5lIENPTkZJR19CT09UQVJHUyAicm9vdD0vZGV2L210ZGJsb2NrMyByb290ZnN0eXBlPWpmZnMyICIKKworI2lmIGRlZmluZWQoQ09ORklHX0NQVTlHMjApCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRURJUgkiY3B1OUcyMCIKKyNlbGlmIGRlZmluZWQoQ09ORklHX0NQVTkyNjApCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRURJUgkiY3B1OTI2MCIKKyNlbmRpZgorCisjZGVmaW5lIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJCQkJXAorCSJtdGRpZHM9IiBNVERJRFNfREVGQVVMVCAiXDAiCQkJCVwKKwkibXRkcGFydHM9IiBNVERQQVJUU19ERUZBVUxUICJcMCIJCQlcCisJInBhcnRpdGlvbj1uYW5kMCwwXDAiCQkJCQlcCisJInJhbWFyZ3M9c2V0ZW52IGJvb3RhcmdzICQoYm9vdGFyZ3MpICQobXRkcGFydHMpXDAiCVwKKwkicmFtYm9vdD10ZnRwYm9vdCAweDIyMDAwMDAwIGNwdTkyNjAvdUltYWdlOyIJCVwKKwkJInJ1biByYW1hcmdzO2Jvb3RtIDIyMDAwMDAwXDAiCQkJXAorCSJmbGFzaGJvb3Q9cnVuIHJhbWFyZ3M7Ym9vdG0gMHgxMDA2MDAwMFwwIgkJXAorCSJiYXNlZGlyPSIgQ09ORklHX1NZU19CQVNFRElSICJcMCIJCQlcCisJInVwZHR1Yj10ZnRwIDB4MjQwMDAwMDAgJChiYXNlZGlyKS91LWJvb3QuYmluO3Byb3RlY3QgIglcCisJCSJvZmYgMHgxMDAwMDAwMCAweDEwMDNmZmZmO2VyYXNlIDB4MTAwMDAwMDAgIglcCisJCSIweDEwMDNmZmZmO2NwLmIgMHgyNDAwMDAwMCAweDEwMDAwMDAwICIJXAorCQkiJChmaWxlc2l6ZSlcMCIgXAorCSJ1cGR0dWk9dGZ0cCAweDI0MDAwMDAwICQoYmFzZWRpcikvdUltYWdlO3Byb3RlY3Qgb2ZmIglcCisJCSIgMHgxMDA2MDAwMCAweDEwMjFmZmZmO2VyYXNlIDB4MTAwNjAwMDAgIglcCisJCSIweDEwMjFmZmZmO2NwLmIgMHgyNDAwMDAwMCAweDEwMDYwMDAwICIJXAorCQkiJChmaWxlc2l6ZSlcMCIgXAorCSJ1cGR0cmZzPXRmdHAgMHgyNDAwMDAwMCAkKGJhc2VkaXIpL3Jvb3Rmcy5qZmZzMjsgIglcCisJCSJwcm90ZWN0IG9mZiAweDEwMjIwMDAwIDB4MTNmZmZmZmY7ZXJhc2UgIglcCisJCSIweDEwMjIwMDAwIDB4MTNmZmZmZmY7Y3AuYiAweDI0MDAwMDAwICIJXAorCQkiMHgxMDIyMDAwMCAkKGZpbGVzaXplKVwwIiBcCisJIiIKKyNlbmRpZgorCisjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJCTExNTIwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsxMTUyMDAgLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KKworI2lmIGRlZmluZWQoQ09ORklHX0NQVTlHMjApCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiQ1BVOUcyMD0+ICIKKyNlbGlmIGRlZmluZWQoQ09ORklHX0NQVTkyNjApCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiQ1BVOTI2MD0+ICIKKyNlbmRpZgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCVwKKwkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCisjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJCTEKKyNkZWZpbmUgQ09ORklHX1NJTEVOVF9DT05TT0xFCQkxCisjZGVmaW5lIENPTkZJR19ORVRDT05TT0xFCQkxCisKKy8qCisgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKKyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCVwKKwkJUk9VTkQoMyAqIENPTkZJR19FTlZfU0laRSArIDEyOCAqIDEwMjQsIDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAorCisjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJCSgzMiAqIDEwMjQpCisKKyNpZiBkZWZpbmVkKENPTkZJR19VU0VfSVJRKQorI2Vycm9yIENPTkZJR19VU0VfSVJRIG5vdCBzdXBwb3J0ZWQKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jcHVhdDkxLmggYi9pbmNsdWRlL2NvbmZpZ3MvY3B1YXQ5MS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkM2FjZjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY3B1YXQ5MS5oCkBAIC0wLDAgKzEsMjI4IEBACisvKgorICogQ1BVQVQ5MSBieSAoQykgQ29weXJpZ2h0IDIwMDYgRXJpYyBCZW5hcmQKKyAqIGVyaWNAZXVrcmVhLmNvbQorICoKKyAqIENvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBDUFVBVDkxIGJvYXJkLgorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgkgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisKKyNpZm5kZWYgX19DT05GSUdfSAorI2RlZmluZSBfX0NPTkZJR19ICisKKyNpZmRlZiBDT05GSUdfQ1BVQVQ5MV9SQU0KKyNkZWZpbmUgQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVAkxCisjZGVmaW5lIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09UCTEKKyNkZWZpbmUgQ09ORklHX0NQVUFUOTEJCQkxCisjZWxzZQorI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCQkxCisjZW5kaWYKKworI2RlZmluZSBBVDkxQ19NQUlOX0NMT0NLCQkxNzk3MTIwMDAKKyNkZWZpbmUgQVQ5MUNfTUFTVEVSX0NMT0NLCQk1OTkwNDAwMAorCisjZGVmaW5lIEFUOTFfU0xPV19DTE9DSwkJCTMyNzY4CisKKyNkZWZpbmUgQ09ORklHX0FSTTkyMFQJCQkxCisjZGVmaW5lIENPTkZJR19BVDkxUk05MjAwCQkxCisKKyN1bmRlZiBDT05GSUdfVVNFX0lSUQorI2RlZmluZSBVU0VfOTIwVF9NTVUJCQkxCisKKyNkZWZpbmUgQ09ORklHX0NNRExJTkVfVEFHCQkxCisjZGVmaW5lIENPTkZJR19TRVRVUF9NRU1PUllfVEFHUwkxCisjZGVmaW5lIENPTkZJR19JTklUUkRfVEFHCQkxCisKKyNpZm5kZWYgQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9NQUlOX09TQ0lMTEFUT1IJMQorLyogZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQ19QVUlBX1ZBTAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNfUFVQX1ZBTAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNfUFVFUl9WQUwJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DX0FTUl9WQUwJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DX0FBU1JfVkFMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQklfQ0ZHUl9WQUwJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NNQ19DU1IwX1ZBTAkweDAwMDAzMjg0IC8qIDE2Yml0LCAyIFRERiwgNCBXUyAqLworCisvKiBjbG9ja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QTExBUl9WQUwJMHgyMDI2M0UwNCAvKiAxNzkuNzEyMDAwIE1IeiBmb3IgUENLICovCisjZGVmaW5lIENPTkZJR19TWVNfUExMQlJfVkFMCTB4MTA0ODNFMEUgLyogNDguMDU0ODU3IE1IeiBmb3IgVVNCICovCisjZGVmaW5lIENPTkZJR19TWVNfTUNLUl9WQUwJMHgwMDAwMDIwMiAvKiBQQ0svMyA9IE1DSyBNYXN0ZXIgQ2xvY2sgKi8KKworLyogc2RyYW0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QSU9DX0FTUl9WQUwJMHhGRkZGMDAwMCAvKiBDb25maWd1cmUgUElPQyBhcyBEMTYvRDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfUElPQ19CU1JfVkFMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QSU9DX1BEUl9WQUwJMHhGRkZGMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCSV9DU0FfVkFMCTB4MDAwMDAwMDIgLyogQ1MxPVNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQ19DUl9WQUwJMHgyMTg4QzE1NSAvKiBzZXQgdXAgdGhlIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0JMHgyMDAwMDAwMCAvKiBhZGRyZXNzIG9mIHRoZSBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMQkweDIwMDAwMDgwIC8qIGFkZHJlc3Mgb2YgdGhlIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVkFMCTB4MDAwMDAwMDAgLyogdmFsdWUgd3JpdHRlbiB0byBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkNfTVJfVkFMCTB4MDAwMDAwMDIgLyogUHJlY2hhcmdlIEFsbCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkNfTVJfVkFMMQkweDAwMDAwMDA0IC8qIHJlZnJlc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX01SX1ZBTDIJMHgwMDAwMDAwMyAvKiBMb2FkIE1vZGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX01SX1ZBTDMJMHgwMDAwMDAwMCAvKiBOb3JtYWwgTW9kZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkNfVFJfVkFMCTB4MDAwMDAyRTAgLyogV3JpdGUgcmVmcmVzaCByYXRlICovCisjZW5kaWYJLyogQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVCAqLworCisvKiBkZWZpbmUgb25lIG9mIHRoZXNlIHRvIGNob29zZSB0aGUgREJHVSwgVVNBUlQwIG9yIFVTQVJUMSBhcyBjb25zb2xlICovCisjZGVmaW5lIENPTkZJR19BVDkxUk05MjAwX1VTQVJUCQkxCisjZGVmaW5lIENPTkZJR19EQkdVCQkJMQorI3VuZGVmIENPTkZJR19VU0FSVDAKKyN1bmRlZiBDT05GSUdfVVNBUlQxCisKKyNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJMQorCisjaWYgZGVmaW5lZChDT05GSUdfSEFSRF9JMkMpCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NQRUVECQkJNTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDU0CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkxCisjZGVmaW5lCUNPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKKyNlbmRpZgorCisjZGVmaW5lIENPTkZJR19CT09UUF9CT09URklMRVNJWkUJMQorI2RlZmluZSBDT05GSUdfQk9PVFBfQk9PVFBBVEgJCTEKKyNkZWZpbmUgQ09ORklHX0JPT1RQX0dBVEVXQVkJCTEKKyNkZWZpbmUgQ09ORklHX0JPT1RQX0hPU1ROQU1FCQkxCisKKyNpbmNsdWRlIDxjb25maWdfY21kX2RlZmF1bHQuaD4KKworI2RlZmluZSBDT05GSUdfQ01EX0RIQ1AJCQkxCisjZGVmaW5lIENPTkZJR19DTURfUElORwkJCTEKKyNkZWZpbmUgQ09ORklHX0NNRF9NSUkJCQkxCisjZGVmaW5lIENPTkZJR19DTURfQ0FDSEUJCTEKKyN1bmRlZiBDT05GSUdfQ01EX1VTQgorI3VuZGVmIENPTkZJR19DTURfRlBHQQorI3VuZGVmIENPTkZJR19DTURfSU1JCisjdW5kZWYgQ09ORklHX0NNRF9MT0FEUworI3VuZGVmIENPTkZJR19DTURfTkZTCisKKyNpZiBkZWZpbmVkKENPTkZJR19IQVJEX0kyQykKKyNkZWZpbmUgQ09ORklHX0NNRF9FRVBST00JCTEKKyNkZWZpbmUgQ09ORklHX0NNRF9JMkMJCQkxCisjZW5kaWYKKworI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkJCTEKKyNkZWZpbmUgUEhZU19TRFJBTQkJCQkweDIwMDAwMDAwCisjZGVmaW5lIFBIWVNfU0RSQU1fU0laRQkJCQkweDAyMDAwMDAwCisKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQlcCisJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtIDUxMiAqIDEwMjQpCisKKyNkZWZpbmUgQ09ORklHX0RSSVZFUl9FVEhFUgkJCTEKKyNkZWZpbmUgQ09ORklHX05FVF9SRVRSWV9DT1VOVAkJCTIwCisjZGVmaW5lIENPTkZJR19BVDkxQ19VU0VfUk1JSQkJCTEKKyNkZWZpbmUgQ09ORklHX1BIWV9BRERSRVNTCQkJKDEgPDwgNSkKKyNkZWZpbmUgQ09ORklHX0tTODcyMV9QSFkJCQkxCisKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkxCisjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkxCisjZGVmaW5lIFBIWVNfRkxBU0hfMQkJCQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxMjgKKworI2lmIGRlZmluZWQoQ09ORklHX0NNRF9VU0IpCisjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcJCQkxCisjZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRQkJCTEKKyNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JCQkxCisjZGVmaW5lIENPTkZJR19BVDkxQ19QUUZQX1VIUEJVCQkJMQorI3VuZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCQlBVDkxX1VTQl9IT1NUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJCSJhdDkxcm05MjAwIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1CisjZW5kaWYKKworI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICQkxCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShQSFlTX0ZMQVNIXzEgKyAweDIwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCQkweDIwMDAwCisKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjEwMDAwMDAKKworI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCQkxMTUyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCwgNTc2MDAsIDM4NDAwLCAxOTIwMCwgOTYwMCB9CisKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJDUFVBVDkxPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCVwKKwkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQorCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFpfQ0xPQ0sJCShBVDkxQ19NQVNURVJfQ0xPQ0sgLyAyKQorCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgKKyNkZWZpbmUgQ09ORklHX1NUQUNLU0laRQkJKDMyICogMTAyNCkKKworI2lmIGRlZmluZWQoQ09ORklHX1VTRV9JUlEpCisjZXJyb3IgQ09ORklHX1VTRV9JUlEgbm90IHN1cHBvcnRlZAorI2VuZGlmCisKKyNkZWZpbmUgQ09ORklHX0RFVklDRV9OVUxMREVWCSAJMQorI2RlZmluZSBDT05GSUdfU0lMRU5UX0NPTlNPTEUJCTEKKworI2RlZmluZSBDT05GSUdfQVVUT0JPT1RfS0VZRUQJCTEKKyNkZWZpbmUgQ09ORklHX0FVVE9CT09UX1BST01QVCAJCVwKKwkiUHJlc3MgU1BBQ0UgdG8gYWJvcnQgYXV0b2Jvb3QgaW4gJWQgc2Vjb25kc1xuIgorI2RlZmluZSBDT05GSUdfQVVUT0JPT1RfU1RPUF9TVFIJIiAiCisjZGVmaW5lIENPTkZJR19BVVRPQk9PVF9ERUxBWV9TVFIJImQiCisKKyNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUJCTEKKworI2RlZmluZSBNVERJRFNfREVGQVVMVAkJCSJub3IwPXBoeXNtYXAtZmxhc2guMCIKKyNkZWZpbmUgTVREUEFSVFNfREVGQVVMVAkJXAorCSJtdGRwYXJ0cz1waHlzbWFwLWZsYXNoLjA6IglcCisJCSIxMjhrKHUtYm9vdClybywiCVwKKwkJIjEyOGsodS1ib290LWVudiksIglcCisJCSIxNDA4ayhrZXJuZWwpLCIJXAorCQkiLShyb290ZnMpIgorCisjZGVmaW5lIENPTkZJR19CT09UQVJHUyAJCVwKKwkicm9vdD0vZGV2L210ZGJsb2NrMyByb290ZnN0eXBlPWpmZnMyIGNvbnNvbGU9dHR5UzAsMTE1MjAwIgorCisjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkJInJ1biBmbGFzaGJvb3QiCisKKyNkZWZpbmUJQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJXAorCSJtdGRpZD0iIE1URElEU19ERUZBVUxUICJcMCIJCQkJCVwKKwkibXRkcGFydHM9IiBNVERQQVJUU19ERUZBVUxUICJcMCIJCQkJXAorCSJmbHViPXRmdHAgMjEwMDAwMDAgY3B1YXQ5MS91LWJvb3QuYmluOyBwcm90ZWN0IG9mZiAxMDAwMDAwMCAiCVwKKwkJIjEwMDFGRkZGOyBlcmFzZSAxMDAwMDAwMCAxMDAxRkZGRjsgY3AuYiAyMTAwMDAwMCAiCVwKKwkJIjEwMDAwMDAwICR7ZmlsZXNpemV9XDAiCQkJCVwKKwkiZmx1aT10ZnRwIDIxMDAwMDAwIGNwdWF0OTEvdUltYWdlOyBwcm90ZWN0IG9mZiAxMDA0MDAwMCAiCVwKKwkJIjEwMTlmZmZmOyBlcmFzZSAxMDA0MDAwMCAxMDE5ZmZmZjsgY3AuYiAyMTAwMDAwMCAiCVwKKwkJIjEwMDQwMDAwICR7ZmlsZXNpemV9XDAiCQkJCVwKKwkiZmxyZnM9dGZ0cCAyMTAwMDAwMCBjcHVhdDkxL3Jvb3Rmcy5qZmZzMjsgcHJvdGVjdCBvZmYgIglcCisJCSIxMDFhMDAwMCAxMGZmZmZmZjsgZXJhc2UgMTAxYTAwMDAgMTBmZmZmZmY7IGNwLmIgIglcCisJCSIyMTAwMDAwMCAxMDFBMDAwMCAke2ZpbGVzaXplfVwwIgkJCVwKKwkicmFtYXJncz1zZXRlbnYgYm9vdGFyZ3MgJChib290YXJncykgJChtdGRwYXJ0cylcMCIJCVwKKwkiZmxhc2hib290PXJ1biByYW1hcmdzO2Jvb3RtIDEwMDQwMDAwXDAiCQkJXAorCSJuZXRib290PXJ1biByYW1hcmdzO3RmdHBib290IDIxMDAwMDAwIGNwdWF0OTEvdUltYWdlOyIJCVwKKwkJImJvb3RtIDIxMDAwMDAwXDAiCisjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfZG0zNTVldm0uaCBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX2RtMzU1ZXZtLmgKaW5kZXggYzM1ZjVjOS4uZDA5MmZiOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfZG0zNTVldm0uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZGF2aW5jaV9kbTM1NWV2bS5oCkBAIC0xOSw3ICsxOSw2IEBACiAKICNpZm5kZWYgX19DT05GSUdfSAogI2RlZmluZSBfX0NPTkZJR19ICi0jaW5jbHVkZSA8YXNtL3NpemVzLmg+CiAKIC8qIFNwZWN0cnVtIERpZ2l0YWwgVE1TMzIwRE0zNTUgRVZNIGJvYXJkICovCiAjZGVmaW5lIERBVklOQ0lfRE0zNTVFVk0KQEAgLTQwLDcgKzM5LDcgQEAKIC8qIE1lbW9yeSBJbmZvICovCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJCTB4ODAwMDAwMDAKLSNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJCVNaXzEyOE0KKyNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJCSgxMjggPDwgMjApCS8qIDEyOCBNaUIgKi8KIAogLyogU2VyaWFsIERyaXZlciBpbmZvOiBVQVJUMCBmb3IgY29uc29sZSAgKi8KICNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCkBAIC02Niw5ICs2NSwxMCBAQAogI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHgxMAkvKiBTTUJ1cyBob3N0IGFkZHJlc3MgKi8KIAogLyogTkFORDogc29ja2V0ZWQsIHR3byBjaGlwc2VsZWN0cywgbm9ybWFsbHkgMiBHQnl0ZXMgKi8KLS8qIE5ZRVQgLS0gI2RlZmluZSBDT05GSUdfTkFORF9EQVZJTkNJICovCi0jZGVmaW5lIENPTkZJR19TWVNfTkFORF9IV19FQ0MKKyNkZWZpbmUgQ09ORklHX05BTkRfREFWSU5DSQogI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVVNFX0ZMQVNIX0JCVAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfNEJJVF9IV19FQ0NfT09CRklSU1QKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BBR0VfMksKIAogI2RlZmluZSBDT05GSUdfU1lTX05BTkRfTEFSR0VQQUdFCiAjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QJeyAweDAyMDAwMDAwLCB9CkBAIC05NiwxNSArOTYsMTIgQEAKICNpZmRlZiBDT05GSUdfTkFORF9EQVZJTkNJCiAjZGVmaW5lIENPTkZJR19DTURfTVREUEFSVFMKICNkZWZpbmUgQ09ORklHX01URF9QQVJUSVRJT05TCisjZGVmaW5lIENPTkZJR19NVERfREVWSUNFCiAjZGVmaW5lIENPTkZJR19DTURfTkFORAogI2RlZmluZSBDT05GSUdfQ01EX1VCSQogI2RlZmluZSBDT05GSUdfUkJUUkVFCiAjZW5kaWYKIAotLyogVEVNUE9SQVJZIC0tIG5vIHNhZmUgcGxhY2UgdG8gc2F2ZSBlbnYsIHlldCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUKLSN1bmRlZiBDT05GSUdfQ01EX1NBVkVFTlYKLQogI2lmZGVmIENPTkZJR19VU0JfREFWSU5DSQogI2RlZmluZSBDT05GSUdfTVVTQl9IQ0QKICNkZWZpbmUgQ09ORklHX0NNRF9VU0IKQEAgLTEzMCw5ICsxMjcsMTQgQEAKICNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAKLSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlTWl8xNksKKyNpZmRlZiBDT05GSUdfTkFORF9EQVZJTkNJCisjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKDI1NiA8PCAxMCkJLyogMjU2IEtpQiAqLworI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05BTkQKKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJMHgzQzAwMDAKKyN1bmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICisjZW5kaWYKIAotLyogTllFVCAtLSAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNSAqLworI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5EIFwKIAkJImRoY3A7Ym9vdG0iCiAjZGVmaW5lIENPTkZJR19CT09UQVJHUyBcCkBAIC0xNDYsOCArMTQ4LDggQEAKICNkZWZpbmUgQ09ORklHX05FVF9SRVRSWV9DT1VOVCAxMAogCiAvKiBVLUJvb3QgbWVtb3J5IGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ09ORklHX1NUQUNLU0laRQkJU1pfMjU2SwkJLyogcmVndWxhciBzdGFjayAqLwotI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCVNaXzUxMksJCS8qIG1hbGxvYygpIGFyZW5hICovCisjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJCSgyNTYgPDwgMTApCS8qIDI1NiBLaUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMSA8PCAyMCkJLyogMSBNaUIgKi8KICNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogZm9yIGluaXRpYWwgZGF0YSAqLwogI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg4NzAwMDAwMAkvKiBwaHlzaWNhbCBhZGRyZXNzICovCiAjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4ODgwMDAwMDAJLyogdGVzdCAxNk1CIFJBTSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfZG0zNjVldm0uaCBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX2RtMzY1ZXZtLmgKaW5kZXggNDdjYjU1NC4uMjc5N2Y4MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfZG0zNjVldm0uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZGF2aW5jaV9kbTM2NWV2bS5oCkBAIC0xOCw3ICsxOCw2IEBACiAKICNpZm5kZWYgX19DT05GSUdfSAogI2RlZmluZSBfX0NPTkZJR19ICi0jaW5jbHVkZSA8YXNtL3NpemVzLmg+CiAKIC8qIFNwZWN0cnVtIERpZ2l0YWwgVE1TMzIwRE0zNjUgRVZNIGJvYXJkICovCiAjZGVmaW5lIERBVklOQ0lfRE0zNjVFVk0KQEAgLTM4LDcgKzM3LDcgQEAKIC8qIE1lbW9yeSBJbmZvICovCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJCTB4ODAwMDAwMDAKLSNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJCVNaXzEyOE0KKyNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJCSgxMjggPDwgMjApCS8qIDEyOCBNaUIgKi8KIAogLyogU2VyaWFsIERyaXZlciBpbmZvOiBVQVJUMCBmb3IgY29uc29sZSAgKi8KICNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCkBAIC03NCw3ICs3Myw2IEBACiAKIC8qIE5BTkQ6IHNvY2tldGVkLCB0d28gY2hpcHNlbGVjdHMsIG5vcm1hbGx5IDIgR0J5dGVzICovCiAjZGVmaW5lIENPTkZJR19OQU5EX0RBVklOQ0kKLSNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0hXX0VDQwogI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVVNFX0ZMQVNIX0JCVAogI2RlZmluZSBDT05GSUdfU1lTX05BTkRfNEJJVF9IV19FQ0NfT09CRklSU1QKICNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BBR0VfMksKQEAgLTk4LDcgKzk2LDYgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9JMkMKICNkZWZpbmUgQ09ORklHX0NNRF9QSU5HCiAjZGVmaW5lIENPTkZJR19DTURfU0FWRVMKLSNkZWZpbmUgQ09ORklHX0NNRF9TQVZFRU5WCiAKICNpZmRlZiBDT05GSUdfTkFORF9EQVZJTkNJCiAjZGVmaW5lIENPTkZJR19DTURfTVREUEFSVFMKQEAgLTEyNSw3ICsxMjIsNyBAQAogI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAKICNpZmRlZiBDT05GSUdfTkFORF9EQVZJTkNJCi0jZGVmaW5lIENPTkZJR19FTlZfU0laRQkJU1pfMjU2SworI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCSgyNTYgPDwgMTApCS8qIDI1NiBLaUIgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCTB4M0MwMDAwCiAjdW5kZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMTQzLDggKzE0MCw4IEBACiAjZGVmaW5lIENPTkZJR19USU1FU1RBTVAKIAogLyogVS1Cb290IG1lbW9yeSBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJCVNaXzI1NksJCS8qIHJlZ3VsYXIgc3RhY2sgKi8KLSNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQlTWl8xTQkvKiBtYWxsb2MoKSBhcmVuYSAqLworI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCQkoMjU2IDw8IDEwKQkvKiAyNTYgS2lCICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEgPDwgMjApCS8qIDEgTWlCICovCiAjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIGZvciBpbml0aWFsIGRhdGEgKi8KICNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4ODcwMDAwMDAJLyogcGh5c2ljYWwgYWRkcmVzcyAqLwogI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDg4MDAwMDAwCS8qIHRlc3QgMTZNQiBSQU0gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX2R2ZXZtLmggYi9pbmNsdWRlL2NvbmZpZ3MvZGF2aW5jaV9kdmV2bS5oCmluZGV4IDk2YjZhZmMuLmY3ZDIzOTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX2R2ZXZtLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfZHZldm0uaApAQCAtMTksNyArMTksNiBAQAogCiAjaWZuZGVmIF9fQ09ORklHX0gKICNkZWZpbmUgX19DT05GSUdfSAotI2luY2x1ZGUgPGFzbS9zaXplcy5oPgogCiAvKgogICogRGVmaW5lIHRoaXMgdG8gbWFrZSBVLUJvb3Qgc2tpcCBsb3cgbGV2ZWwgaW5pdGlhbGl6YXRpb24gd2hlbiBsb2FkZWQKQEAgLTEyMCw4ICsxMTksOSBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05BTkQJCS8qIFUtQm9vdCBlbnYgaW4gTkFORCBGbGFzaCAgKi8KICNpZmRlZiBDT05GSUdfU1lTX05BTkRfU01BTExQQUdFCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTUxMgkvKiBFbnYgc2VjdG9yIFNpemUgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlTWl8xNksKKyNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoMTYgPDwgMTApCS8qIDE2IEtpQiAqLwogI2RlZmluZSBDT05GSUdfTVREX1BBUlRJVElPTlMKKyNkZWZpbmUgQ09ORklHX01URF9ERVZJQ0UKICNkZWZpbmUgQ09ORklHX0NNRF9NVERQQVJUUwogI2RlZmluZSBNVERJRFNfREVGQVVMVAkJXAogCSJuYW5kMD1kYXZpbmNpX25hbmQuMCIKQEAgLTEyOSw3ICsxMjksNyBAQAogCSJtdGRwYXJ0cz1kYXZpbmNpX25hbmQuMDozODRrKGJvb3Rsb2FkZXIpcm8sNG0oa2VybmVsKSwtKGZpbGVzeXN0ZW0pIgogI2Vsc2UKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMjA0OAkvKiBFbnYgc2VjdG9yIFNpemUgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlTWl8xMjhLCisjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKDEyOCA8PCAxMCkJLyogMTI4IEtpQiAqLwogI2VuZGlmCiAjZGVmaW5lIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQJLyogVS1Cb290IGlzIGxvYWRlZCBieSBhIGJvb3Rsb2FkZXIgKi8KICNkZWZpbmUgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QJLyogdG8gYSBwcm9wZXIgYWRkcmVzcywgaW5pdCBkb25lICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZGF2aW5jaV9zY2htb29naWUuaCBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NjaG1vb2dpZS5oCmluZGV4IDc5MDk1NjkuLjkzODRjZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NjaG1vb2dpZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NjaG1vb2dpZS5oCkBAIC0xOSw3ICsxOSw2IEBACiAKICNpZm5kZWYgX19DT05GSUdfSAogI2RlZmluZSBfX0NPTkZJR19ICi0jaW5jbHVkZSA8YXNtL3NpemVzLmg+CiAKIC8qPT09PT09PSovCiAvKiBCb2FyZCAqLwpAQCAtODYsNyArODUsNyBAQAogI2RlZmluZSBDT05GSUdfTkFORF9EQVZJTkNJCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkJLyogVS1Cb290IGVudiBpbiBOQU5EIEZsYXNoICAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkyMDQ4CS8qIEVudiBzZWN0b3IgU2l6ZSAqLwotI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCVNaXzEyOEsKKyNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoMTI4IDw8IDEwKQkvKiAxMjggS2lCICovCiAjZGVmaW5lIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQJLyogVS1Cb290IGlzIGxvYWRlZCBieSBhIGJvb3Rsb2FkZXIgKi8KICNkZWZpbmUgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QJLyogdG8gYSBwcm9wZXIgYWRkcmVzcywgaW5pdCBkb25lICovCiAjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweDAyMDAwMDAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZGF2aW5jaV9zZmZzZHIuaCBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NmZnNkci5oCmluZGV4IDUzMWJhZjEuLjcxZDQ4ZmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NmZnNkci5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NmZnNkci5oCkBAIC0yMiw3ICsyMiw2IEBACiAKICNpZm5kZWYgX19DT05GSUdfSAogI2RlZmluZSBfX0NPTkZJR19ICi0jaW5jbHVkZSA8YXNtL3NpemVzLmg+CiAKIC8qIEJvYXJkICovCiAjZGVmaW5lIFNGRlNEUgpAQCAtODEsNyArODAsNyBAQAogI2RlZmluZSBDT05GSUdfTkFORF9EQVZJTkNJCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkJLyogVS1Cb290IGVudiBpbiBOQU5EIEZsYXNoICAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkyMDQ4CS8qIEVudiBzZWN0b3IgU2l6ZSAqLwotI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCVNaXzEyOEsKKyNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoMTI4IDw8IDEwKQkvKiAxMjggS2lCICovCiAjZGVmaW5lIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQJLyogVS1Cb290IGlzIGxvYWRlZCBieSBhIGJvb3Rsb2FkZXIgKi8KICNkZWZpbmUgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QJLyogdG8gYSBwcm9wZXIgYWRkcmVzcywgaW5pdCBkb25lICovCiAjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweDAyMDAwMDAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZGF2aW5jaV9zb25hdGEuaCBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NvbmF0YS5oCmluZGV4IDgyOTAxYjMuLjVhNTVjNTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NvbmF0YS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NvbmF0YS5oCkBAIC0xOSw3ICsxOSw2IEBACiAKICNpZm5kZWYgX19DT05GSUdfSAogI2RlZmluZSBfX0NPTkZJR19ICi0jaW5jbHVkZSA8YXNtL3NpemVzLmg+CiAKIC8qCiAgKiBEZWZpbmUgdGhpcyB0byBtYWtlIFUtQm9vdCBza2lwIGxvdyBsZXZlbCBpbml0aWFsaXphdGlvbiB3aGVuIGxvYWRlZApAQCAtMTE5LDcgKzExOCw3IEBACiAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECQkvKiBVLUJvb3QgZW52IGluIE5BTkQgRmxhc2ggICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTUxMgkvKiBFbnYgc2VjdG9yIFNpemUgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlTWl8xNksKKyNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoMTYgPDwgMTApCS8qIDE2IEtpQiAqLwogI2RlZmluZSBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCS8qIFUtQm9vdCBpcyBsb2FkZWQgYnkgYSBib290bG9hZGVyICovCiAjZGVmaW5lIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09UCS8qIHRvIGEgcHJvcGVyIGFkZHJlc3MsIGluaXQgZG9uZSAqLwogI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJMHgwMjAwMDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2RldmtpdDgwMDAuaCBiL2luY2x1ZGUvY29uZmlncy9kZXZraXQ4MDAwLmgKaW5kZXggY2Q0MGRhNi4uYThhYzc4NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2RldmtpdDgwMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZGV2a2l0ODAwMC5oCkBAIC05OCw2ICs5OCw3IEBACiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCQkxCiAKIC8qIEkyQyAqLworI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkxCiAjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAKICNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTEKICNkZWZpbmUgQ09ORklHX1NZU19JMkNfQlVTCQkwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZXA4MjQ4LmggYi9pbmNsdWRlL2NvbmZpZ3MvZXA4MjQ4LmgKaW5kZXggY2I0MTg1YS4uYTczODQyNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2VwODI0OC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9lcDgyNDguaApAQCAtOTIsNiArOTIsNyBAQAogICogR1BJTyBwaW5zIHVzZWQgZm9yIGJpdC1iYW5nZWQgTUlJIGNvbW11bmljYXRpb25zCiAgKi8KICNkZWZpbmUgTURJT19QT1JUCQkwCS8qIE5vdCB1c2VkIC0gaW1wbGVtZW50ZWQgaW4gQkNTUiAqLworCiAjZGVmaW5lIE1ESU9fQUNUSVZFCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpICY9IDB4RkIpCiAjZGVmaW5lIE1ESU9fVFJJU1RBVEUJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgfD0gMHgwNCkKICNkZWZpbmUgTURJT19SRUFECQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpICYgMSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9lcDgyeHhtLmggYi9pbmNsdWRlL2NvbmZpZ3MvZXA4Mnh4bS5oCmluZGV4IDIzOWZmNjcuLmM3MzdmMTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9lcDgyeHhtLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2VwODJ4eG0uaApAQCAtODUsNiArODUsNyBAQAogICogR1BJTyBwaW5zIHVzZWQgZm9yIGJpdC1iYW5nZWQgTUlJIGNvbW11bmljYXRpb25zCiAgKi8KICNkZWZpbmUgTURJT19QT1JUCQkwCS8qIE5vdCB1c2VkIC0gaW1wbGVtZW50ZWQgaW4gQkNTUiAqLworCiAjZGVmaW5lIE1ESU9fQUNUSVZFCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpICY9IDB4RkIpCiAjZGVmaW5lIE1ESU9fVFJJU1RBVEUJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgfD0gMHgwNCkKICNkZWZpbmUgTURJT19SRUFECQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpICYgMSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9nYWxheHk1MjAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvZ2FsYXh5NTIwMC5oCmluZGV4IDNiNjdlYTkuLjkzMWFjZmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9nYWxheHk1MjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2dhbGF4eTUyMDAuaApAQCAtMjEwLDcgKzIxMCw3IEBACiAvKiBDaGlwIFNlbGVjdCBjb25maWd1cmF0aW9uIGZvciBOQU5EIGZsYXNoICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQkweDIwMDAwMDAwCiAjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NJWkUJCTB4OTAwMDAKLSNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDAwMDJkOTAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHgwMDAyNWIwMAogCiAvKiBDaGlwIFNlbGVjdCBjb25maWd1cmF0aW9uIGZvciBFcHNvbiBTMUQxMzUxMyAqLwogI2RlZmluZSBDT05GSUdfU1lTX0NTM19TVEFSVAkJMHgxMDAwMDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2d3ODI2MC5oIGIvaW5jbHVkZS9jb25maWdzL2d3ODI2MC5oCmluZGV4IDUzYTAwMWQuLjllZDM4NDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ndzgyNjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZ3c4MjYwLmgKQEAgLTIxMiw2ICsyMTIsMTEgQEAKICAqIFBvcnQgcGlucyB1c2VkIGZvciBiaXQtYmFuZ2VkIE1JSSBjb21tdW5pY3Rpb25zIChpZiBhcHBsaWNhYmxlKS4KICAqLwogI2RlZmluZSBNRElPX1BPUlQgICAyICAgICAgIC8qIFBvcnQgQyAqLworCisjZGVmaW5lIE1ESU9fREVDTEFSRQl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKCBcCisJCQkJKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SLCBNRElPX1BPUlQgKQorI2RlZmluZSBNRENfREVDTEFSRQlNRElPX0RFQ0xBUkUKKwogI2RlZmluZSBNRElPX0FDVElWRSAgICAoaW9wLT5wZGlyIHw9ICAweDAwNDAwMDAwKQogI2RlZmluZSBNRElPX1RSSVNUQVRFICAoaW9wLT5wZGlyICY9IH4weDAwNDAwMDAwKQogI2RlZmluZSBNRElPX1JFQUQgICAgICgoaW9wLT5wZGF0ICYgIDB4MDA0MDAwMDApICE9IDApCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvaHltb2QuaCBiL2luY2x1ZGUvY29uZmlncy9oeW1vZC5oCmluZGV4IDI4NDY3MmIuLjVhMjgyZmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9oeW1vZC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9oeW1vZC5oCkBAIC05Myw2ICs5MywxMCBAQAogIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICMgZGVmaW5lIE1ESU9fUE9SVAkJMAkJLyogUG9ydCBBICovCisjIGRlZmluZSBNRElPX0RFQ0xBUkUJCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoIFwKKwkJCQkJKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SLCBNRElPX1BPUlQgKQorIyBkZWZpbmUgTURDX0RFQ0xBUkUJCU1ESU9fREVDTEFSRQorCiAjIGRlZmluZSBNRElPX0RBVEFfUElOTUFTSwkweDAwMDQwMDAwCS8qIFBpbiAxMyAqLwogIyBkZWZpbmUgTURJT19DTENLX1BJTk1BU0sJMHgwMDA4MDAwMAkvKiBQaW4gMTIgKi8KIApAQCAtMTEwLDYgKzExNCwxMCBAQAogIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICMgZGVmaW5lIE1ESU9fUE9SVAkJMAkJLyogUG9ydCBBICovCisjIGRlZmluZSBNRElPX0RFQ0xBUkUJCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoIFwKKwkJCQkJKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SLCBNRElPX1BPUlQgKQorIyBkZWZpbmUgTURDX0RFQ0xBUkUJCU1ESU9fREVDTEFSRQorCiAjIGRlZmluZSBNRElPX0RBVEFfUElOTUFTSwkweDAwMDAwMDQwCS8qIFBpbiAyNSAqLwogIyBkZWZpbmUgTURJT19DTENLX1BJTk1BU0sJMHgwMDAwMDA4MAkvKiBQaW4gMjQgKi8KIApAQCAtMTI3LDYgKzEzNSwxMCBAQAogIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICMgZGVmaW5lIE1ESU9fUE9SVAkJMAkJLyogUG9ydCBBICovCisjIGRlZmluZSBNRElPX0RFQ0xBUkUJCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoIFwKKwkJCQkJKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SLCBNRElPX1BPUlQgKQorIyBkZWZpbmUgTURDX0RFQ0xBUkUJCU1ESU9fREVDTEFSRQorCiAjIGRlZmluZSBNRElPX0RBVEFfUElOTUFTSwkweDAwMDAwMTAwCS8qIFBpbiAyMyAqLwogIyBkZWZpbmUgTURJT19DTENLX1BJTk1BU0sJMHgwMDAwMDIwMAkvKiBQaW4gMjIgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21jYzIwMC5oIGIvaW5jbHVkZS9jb25maWdzL21jYzIwMC5oCmluZGV4IGU1ODEyZWUuLjdlZjYzODUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tY2MyMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbWNjMjAwLmgKQEAgLTM5OCw3ICszOTgsNyBAQAogI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DUzJfU1RBUlQgfCAoQ09ORklHX1FVQVJUX0NPTlNPTEUgLSAxKTw8NSkKICNlbGlmIChDT05GSUdfUVVBUlRfQ09OU09MRSA+IDQpICYmIChDT05GSUdfUVVBUlRfQ09OU09MRSA8IDkpCiAjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0NTMV9TVEFSVCB8IChDT05GSUdfUVVBUlRfQ09OU09MRSAtIDUpPDw1KQotI2VsaWYKKyNlbHNlCiAjZXJyb3IgIldyb25nIFFVQVJUIGV4cGFuZGVyIG51bWJlci4iCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21lZXNjLmggYi9pbmNsdWRlL2NvbmZpZ3MvbWVlc2MuaAppbmRleCA4MjUzMTcyLi5iOTk2ODU0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbWVlc2MuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbWVlc2MuaApAQCAtMzYsMTMgKzM2LDE0IEBACiAjZGVmaW5lIENPTkZJR19NRUVTQwkJCTEJLyogQm9hcmQgaXMgZXNkIE1FRVNDICovCiAjZGVmaW5lIENPTkZJR19BUk05MjZFSlMJCTEJLyogVGhpcyBpcyBhbiBBUk05MjZFSlMgQ29yZSAqLwogI2RlZmluZSBDT05GSUdfQVQ5MVNBTTkyNjMJCTEJLyogSXQncyBhbiBBVDkxU0FNOTI2MyBTb0MgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJCTEJLyogbmVjZXNzYXJ5IG9uIHByb3RvdHlwZXMgKi8KICNkZWZpbmUgQ09ORklHX0RJU1BMQVlfQk9BUkRJTkZPCTEKICNkZWZpbmUgQ09ORklHX0RJU1BMQVlfQ1BVSU5GTwkJMQkvKiBkaXNwbGF5IGNwdSBpbmZvIGFuZCBzcGVlZCAqLwogI2RlZmluZSBDT05GSUdfUFJFQk9PVAkJCQkvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9UQUcJCTEJLyogZW5hYmxlIHBhc3Npbmcgb2YgQVRBR3MgKi8KICNkZWZpbmUgQ09ORklHX1NFVFVQX01FTU9SWV9UQUdTCTEKICNkZWZpbmUgQ09ORklHX0lOSVRSRF9UQUcJCTEKKyNkZWZpbmUgQ09ORklHX1NFUklBTF9UQUcJCTEKKyNkZWZpbmUgQ09ORklHX1JFVklTSU9OX1RBRwkJMQogI3VuZGVmIENPTkZJR19VU0VfSVJRCQkJCS8qIGRvbid0IG5lZWQgSVJRL0ZJUSBzdHVmZiAqLwogCiAjZGVmaW5lIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQKQEAgLTEzOCwxMiArMTM5LDEzIEBACiAjZGVmaW5lIENPTkZJR19TWVNfVVNFX0RBVEFGTEFTSAkJMQogI3VuZGVmIENPTkZJR19TWVNfVVNFX05BTkRGTEFTSAogCi0jaWZkZWYgQ09ORklHX1NZU19VU0VfREFUQUZMQVNICi0KIC8qIENBTiAqLwogI2RlZmluZSBDT05GSUdfQVQ5MV9DQU4JCQkJMQogCi0vKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBkYXRhZmxhc2ggb24gQ1MwICovCisvKiBody1jb250cm9sbGVyIGFkZHJlc3NlcyAqLworI2RlZmluZSBDT05GSUdfRVQxMTAwX0JBU0UJCQkweDcwMDAwMDAwCisKKy8qIGJvb3RzdHJhcCArIHUtYm9vdCArIGVudiBpbiBkYXRhZmxhc2ggb24gQ1MwICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNICTEKICNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCShDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIFwKIAkJCQkJMHg4NDAwKQpAQCAtMTUxLDE4ICsxNTMsNiBAQAogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBcCiAJCQkJCUNPTkZJR19FTlZfT0ZGU0VUKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQkweDQyMDAKLSNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECQkiY3AuYiBDMDA0MjAwMCAyMjAwMDAwMCAyMTAwMDA7IGJvb3RtIgotCi0jZWxzZSAvKiBDT05GSUdfU1lTX1VTRV9OQU5ERkxBU0ggKi8KLQotLyogYm9vdHN0cmFwICsgdS1ib290ICsgZW52ICsgbGludXggaW4gbmFuZGZsYXNoICovCi0jZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkxCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDYwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkweDgwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfU0laRQkJCTB4MjAwMDAJCS8qIDEgc2VjdG9yID0gMTI4IGtCICovCi0jZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkJIm5hbmQgcmVhZCAyMjAwMDAwMCBBMDAwMCAyMDAwMDA7IGJvb3RtIgotCi0jZW5kaWYKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCQkxMTUyMDAKICNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7MTE1MjAwICwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgOTYwMCB9CkBAIC0xNzgsNyArMTY4LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCTB4MkQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQlST1VORCgzICogQ09ORklHX0VOVl9TSVpFICsgXAorCQkJCQkxMjgqMTAyNCwgMHgxMDAwKQogI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIDEyOCBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCiAKICNkZWZpbmUgQ09ORklHX1NUQUNLU0laRQkJKDMyICogMTAyNCkJLyogcmVndWxhciBzdGFjayAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL211YXMzMDAxLmggYi9pbmNsdWRlL2NvbmZpZ3MvbXVhczMwMDEuaAppbmRleCBjOTRkYWEzLi40M2Y0NmJmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbXVhczMwMDEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbXVhczMwMDEuaApAQCAtMTAxLDYgKzEwMSwxMCBAQAogICogR1BJTyBwaW5zIHVzZWQgZm9yIGJpdC1iYW5nZWQgTUlJIGNvbW11bmljYXRpb25zCiAgKi8KICNkZWZpbmUgTURJT19QT1JUCTAJCS8qIFBvcnQgQSAqLworI2RlZmluZSBNRElPX0RFQ0xBUkUJdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICggXAorCQkJCShpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiwgTURJT19QT1JUICkKKyNkZWZpbmUgTURDX0RFQ0xBUkUJTURJT19ERUNMQVJFCisKIAogI2RlZmluZSBDT05GSUdfU1lTX01ESU9fUElOCTB4MDAyMDAwMDAJLyogUEExMCAqLwogI2RlZmluZSBDT05GSUdfU1lTX01EQ19QSU4JMHgwMDQwMDAwMAkvKiBQQTkgICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfYmVhZ2xlLmggYi9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfYmVhZ2xlLmgKaW5kZXggNjE2MjlmOC4uNTVlZWI5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL29tYXAzX2JlYWdsZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9vbWFwM19iZWFnbGUuaApAQCAtMTIzLDYgKzEyMyw3IEBACiAjdW5kZWYgQ09ORklHX0NNRF9ORlMJCS8qIE5GUyBzdXBwb3J0CQkJKi8KIAogI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICisjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCTEKICNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAogI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMQogI2RlZmluZSBDT05GSUdfU1lTX0kyQ19CVVMJCTAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9vbWFwM19ldm0uaCBiL2luY2x1ZGUvY29uZmlncy9vbWFwM19ldm0uaAppbmRleCA5ZjBmMzRiLi43MmU5NjI2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfZXZtLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL29tYXAzX2V2bS5oCkBAIC0xMjEsNiArMTIxLDcgQEAKICN1bmRlZiBDT05GSUdfQ01EX0lNTFMJCS8qIExpc3QgYWxsIGZvdW5kIGltYWdlcwkqLwogCiAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gKKyNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJMQogI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCiAjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkxCiAjZGVmaW5lIENPTkZJR19TWVNfSTJDX0JVUwkJMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL29tYXAzX292ZXJvLmggYi9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfb3Zlcm8uaAppbmRleCAwN2EwMzFiLi4xYTkxOTIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfb3Zlcm8uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfb3Zlcm8uaApAQCAtMjgsNyArMjgsNyBAQAogI2RlZmluZSBDT05GSUdfT01BUAkJMQkvKiBpbiBhIFRJIE9NQVAgY29yZSAqLwogI2RlZmluZSBDT05GSUdfT01BUDM0WFgJCTEJLyogd2hpY2ggaXMgYSAzNFhYICovCiAjZGVmaW5lIENPTkZJR19PTUFQMzQzMAkJMQkvKiB3aGljaCBpcyBpbiBhIDM0MzAgKi8KLSNkZWZpbmUgQ09ORklHX09NQVAzX09WRVJPCQkxCS8qIHdvcmtpbmcgd2l0aCBvdmVybyAqLworI2RlZmluZSBDT05GSUdfT01BUDNfT1ZFUk8JMQkvKiB3b3JraW5nIHdpdGggb3Zlcm8gKi8KIAogI2luY2x1ZGUgPGFzbS9hcmNoL2NwdS5oPgkvKiBnZXQgY2hpcCBhbmQgYm9hcmQgZGVmcyAqLwogI2luY2x1ZGUgPGFzbS9hcmNoL29tYXAzLmg+CkBAIC0xMDUsMTAgKzEwNSwxMSBAQAogI3VuZGVmIENPTkZJR19DTURfRlBHQQkJLyogRlBHQSBjb25maWd1cmF0aW9uIFN1cHBvcnQJKi8KICN1bmRlZiBDT05GSUdfQ01EX0lNSQkJLyogaW1pbmZvCQkJKi8KICN1bmRlZiBDT05GSUdfQ01EX0lNTFMJCS8qIExpc3QgYWxsIGZvdW5kIGltYWdlcwkqLwotI3VuZGVmIENPTkZJR19DTURfTkVUCQkvKiBib290cCwgdGZ0cGJvb3QsIHJhcnBib290CSovCiAjdW5kZWYgQ09ORklHX0NNRF9ORlMJCS8qIE5GUyBzdXBwb3J0CQkJKi8KKyNkZWZpbmUgQ09ORklHX0NNRF9ORVQJCS8qIGJvb3RwLCB0ZnRwYm9vdCwgcmFycGJvb3QJKi8KIAogI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICisjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCTEKICNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAogI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMQogI2RlZmluZSBDT05GSUdfU1lTX0kyQ19CVVMJCTAKQEAgLTI5Myw0ICsyOTQsMTcgQEAKIGV4dGVybiB1bnNpZ25lZCBpbnQgYm9vdF9mbGFzaF90eXBlOwogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKENPTkZJR19DTURfTkVUKQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBTTVNDOTIxMSBFdGhlcm5ldCBmcm9tIFNNU0M5MTE4IGZhbWlseQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCisjZGVmaW5lIENPTkZJR19TTUM5MTFYCQkxCisjZGVmaW5lIENPTkZJR19TTUM5MTFYXzMyX0JJVAorI2RlZmluZSBDT05GSUdfU01DOTExWF9CQVNFICAgICAweDJDMDAwMDAwCisKKyNlbmRpZiAvKiAoQ09ORklHX0NNRF9ORVQpICovCisKICNlbmRpZgkJCQkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfcGFuZG9yYS5oIGIvaW5jbHVkZS9jb25maWdzL29tYXAzX3BhbmRvcmEuaAppbmRleCAxY2ZkN2U5Li4wNjRjMGJjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfcGFuZG9yYS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9vbWFwM19wYW5kb3JhLmgKQEAgLTExMiw2ICsxMTIsNyBAQAogI3VuZGVmIENPTkZJR19DTURfTkZTCQkvKiBORlMgc3VwcG9ydAkJCSovCiAKICNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAorI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkxCiAjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAKICNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTEKICNkZWZpbmUgQ09ORklHX1NZU19JMkNfQlVTCQkwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfem9vbTEuaCBiL2luY2x1ZGUvY29uZmlncy9vbWFwM196b29tMS5oCmluZGV4IDYxYTQxZTcuLmI1NWI4ZjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9vbWFwM196b29tMS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9vbWFwM196b29tMS5oCkBAIC0xMTksNiArMTE5LDcgQEAKICN1bmRlZiBDT05GSUdfQ01EX05GUwkJLyogTkZTIHN1cHBvcnQJCQkqLwogCiAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gKKyNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJMQogI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCiAjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkxCiAjZGVmaW5lIENPTkZJR19TWVNfSTJDX0JVUwkJMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL29tYXAzX3pvb20yLmggYi9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfem9vbTIuaAppbmRleCAwM2Y5MmY1Li43NWFiOTgwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfem9vbTIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvb21hcDNfem9vbTIuaApAQCAtMTQwLDYgKzE0MCw3IEBACiAjdW5kZWYgQ09ORklHX0NNRF9ORlMJCQkvKiBORlMgc3VwcG9ydAkJCSovCiAKICNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAorI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkxCiAjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAKICNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTEKICNkZWZpbmUgQ09ORklHX1NZU19JMkNfQlVTCQkwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvb3BlbnJkX2Jhc2UuaCBiL2luY2x1ZGUvY29uZmlncy9vcGVucmRfYmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhYmEwY2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvb3BlbnJkX2Jhc2UuaApAQCAtMCwwICsxLDIyMCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgMjAwOQorICogTmV0IEluc2lnaHQgPHd3dy5uZXRpbnNpZ2h0Lm5ldD4KKyAqIFdyaXR0ZW4tYnk6IFNpbW9uIEthZ3N0cm9tIDxzaW1vbi5rYWdzdHJvbUBuZXRpbnNpZ2h0Lm5ldD4KKyAqCisgKiBCYXNlZCBvbiBzaGVldmFwbHVnLmg6CisgKiAoQykgQ29weXJpZ2h0IDIwMDkKKyAqIE1hcnZlbGwgU2VtaWNvbmR1Y3RvciA8d3d3Lm1hcnZlbGwuY29tPgorICogV3JpdHRlbi1ieTogUHJhZnVsbGEgV2FkYXNrYXIgPHByYWZ1bGxhQG1hcnZlbGwuY29tPgorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaWZuZGVmIF9DT05GSUdfT1BFTlJEX0JBU0VfSAorI2RlZmluZSBfQ09ORklHX09QRU5SRF9CQVNFX0gKKworLyoKKyAqIFZlcnNpb24gbnVtYmVyIGluZm9ybWF0aW9uCisgKi8KKyNkZWZpbmUgQ09ORklHX0lERU5UX1NUUklORwkiXG5PcGVuUkRfYmFzZSIKKworLyoKKyAqIEhpZ2ggTGV2ZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zIChlYXN5IHRvIGNoYW5nZSkKKyAqLworI2RlZmluZSBDT05GSUdfTUFSVkVMTAkJMQorI2RlZmluZSBDT05GSUdfQVJNOTI2RUpTCTEJLyogQmFzaWMgQXJjaGl0ZWN0dXJlICovCisjZGVmaW5lIENPTkZJR19TSEVFVkFfODhTVjEzMQkxCS8qIENQVSBDb3JlIHN1YnZlcnNpb24gKi8KKyNkZWZpbmUgQ09ORklHX0tJUktXT09ECQkxCS8qIFNPQyBGYW1pbHkgTmFtZSAqLworI2RlZmluZSBDT05GSUdfS1c4OEY2MjgxCTEJLyogU09DIE5hbWUgKi8KKyNkZWZpbmUgQ09ORklHX01BQ0hfT1BFTlJEX0JBU0UJLyogTWFjaGluZSB0eXBlICovCisKKyNkZWZpbmUgQ09ORklHX01ENQkvKiBnZXRfcmFuZG9tX2hleCBvbiBrcmlrd29vZCBuZWVkcyBNRDUgc3VwcG9ydCAqLworI2RlZmluZSBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCS8qIGRpc2FibGUgYm9hcmQgbG93bGV2ZWxfaW5pdCAqLworI2RlZmluZSBDT05GSUdfS0lSS1dPT0RfRUdJR0FfSU5JVAkvKiBFbmFibGUgR2JlUG9ydDAvMSBmb3Iga2VybmVsICovCisjZGVmaW5lIENPTkZJR19LSVJLV09PRF9SR01JSV9QQURfMVY4CS8qIFNldCBSR01JSSBQYWQgdm9sdGFnZSB0byAxLjhWICovCisjZGVmaW5lIENPTkZJR19LSVJLV09PRF9QQ0lFX0lOSVQgICAgICAgLyogRW5hYmxlIFBDSUUgUG9ydDAgZm9yIGtlcm5lbCAqLworCisvKgorICogQ0xLcyBjb25maWd1cmF0aW9ucworICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAKKworLyoKKyAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgorICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkoLTQpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCUNPTkZJR19TWVNfVENMSworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkJS1dfVUFSVDBfQkFTRQorCisvKgorICogU2VyaWFsIFBvcnQgY29uZmlndXJhdGlvbgorICogVGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucyBsZXQgeW91IHNlbGVjdCB3aGF0IHNlcmlhbCB5b3Ugd2FudCB0byB1c2UKKyAqIGZvciB5b3VyIGNvbnNvbGUgZHJpdmVyLgorICovCisKKyNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQkvKkNvbnNvbGUgb24gVUFSVDAgKi8KKyNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkJMTE1MjAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCBcCisJCQkJCSAgMTE1MjAwLDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQorLyogYXV0byBib290ICovCisjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwkvKiBkZWZhdWx0IGVuYWJsZSBhdXRvYm9vdCAqLworCisvKgorICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQorICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKKyAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KKyAqLworI2RlZmluZSBDT05GSUdfQ01ETElORV9UQUcJMQkvKiBlbmFibGUgcGFzc2luZyBvZiBBVEFHcyAgKi8KKyNkZWZpbmUgQ09ORklHX0lOSVRSRF9UQUcJMQkvKiBlbmFibGUgSU5JVFJEIHRhZyAqLworI2RlZmluZSBDT05GSUdfU0VUVVBfTUVNT1JZX1RBR1MgMQkvKiBlbmFibGUgbWVtb3J5IHRhZyAqLworCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSJNYXJ2ZWxsPj4gIgkvKiBDb21tYW5kIFByb21wdCAqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmYgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgXAorCQkrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQkvKiBQcmludCBCdWZmICovCisvKgorICogQ29tbWFuZHMgY29uZmlndXJhdGlvbgorICovCisjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCS8qIERlY2xhcmUgbm8gZmxhc2ggKE5PUi9TUEkpICovCisjaW5jbHVkZSA8Y29uZmlnX2NtZF9kZWZhdWx0Lmg+CisjZGVmaW5lIENPTkZJR19DTURfQVVUT1NDUklQVAorI2RlZmluZSBDT05GSUdfQ01EX0RIQ1AKKyNkZWZpbmUgQ09ORklHX0NNRF9FTlYKKyNkZWZpbmUgQ09ORklHX0NNRF9GQVQKKyNkZWZpbmUgQ09ORklHX0NNRF9OQU5ECisjZGVmaW5lIENPTkZJR19DTURfTUlJCisjZGVmaW5lIENPTkZJR19DTURfUElORworI2RlZmluZSBDT05GSUdfQ01EX1VTQgorCisvKgorICogTkFORCBjb25maWd1cmF0aW9uCisgKi8KKyNpZmRlZiBDT05GSUdfQ01EX05BTkQKKyNkZWZpbmUgQ09ORklHX05BTkRfS0lSS1dPT0QKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBOQU5EX01BWF9DSElQUwkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4RDgwMDAwMDAJLyogS1dfREVGQURSX05BTkRGICovCisjZGVmaW5lIE5BTkRfQUxMT1dfRVJBU0VfQUxMCQkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYJLyogbmVlZGVkIGZvciBuYW5kX3V0aWwuYyAqLworI2VuZGlmCisKKy8qCisgKiAgRW52aXJvbm1lbnQgdmFyaWFibGVzIGNvbmZpZ3VyYXRpb25zCisgKi8KKyNpZmRlZiBDT05GSUdfQ01EX05BTkQKKyNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECQkxCisjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCQkweDIwMDAwCS8qIDEyOEsgKi8KKyNlbHNlCisjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQkJMQkvKiBpZiBlbnYgaW4gU0RSQU0gKi8KKyNlbmRpZgorLyoKKyAqIG1heCA0ayBlbnYgc2l6ZSBpcyBlbm91Z2gsIGJ1dCBpbiBjYXNlIG9mIG5hbmQKKyAqIGl0IGhhcyB0byBiZSByb3VuZGVkIHRvIHNlY3RvciBzaXplCisgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJMHgyMDAwMAkvKiAxMjhrICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCTB4NjAwMDAKKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4NjAwMDAJLyogZW52IHN0YXJ0cyBoZXJlICovCisKKy8qCisgKiBEZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcworICovCisjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkJIiR7eF9ib290Y21kX2tlcm5lbH07ICIJXAorCSJzZXRlbnYgYm9vdGFyZ3MgJHt4X2Jvb3RhcmdzfSAke3hfYm9vdGFyZ3Nfcm9vdH07ICIJXAorCSIke3hfYm9vdGNtZF91c2J9OyBib290bSAweDY0MDAwMDA7IgorCisjZGVmaW5lIE1URElEU19ERUZBVUxUCQkibmFuZDA9bmFuZF9tdGQiCisjZGVmaW5lIE1URFBBUlRTX0RFRkFVTFQJIm10ZHBhcnRzPW5hbmRfbXRkOjB4MTAwMDAwQDB4MDAwMDAwKHVib290KSwiXAorCSIweDQwMDAwMEAweDEwMDAwMCh1SW1hZ2UpLCJcCisJIjB4MWZiMDAwMDBAMHg1MDAwMDAocm9vdGZzKSIKKworI2RlZmluZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCSJ4X2Jvb3RhcmdzPWNvbnNvbGUiCQlcCisJIj10dHlTMCwxMTUyMDAgIk1URFBBUlRTX0RFRkFVTFQgIiBydyB1YmkubXRkPTIsMjA0OFwwIgkJXAorCSJ4X2Jvb3RjbWRfa2VybmVsPW5hbmQgcmVhZCAweDY0MDAwMDAgMHgxMDAwMDAgMHgzMDAwMDBcMCIJXAorCSJ4X2Jvb3RjbWRfdXNiPXVzYiBzdGFydFwwIgkJCQkJXAorCSJ4X2Jvb3RhcmdzX3Jvb3Q9cm9vdD11YmkwOnJvb3RmcyByb290ZnN0eXBlPXViaWZzXDAiCQlcCisJIm10ZGlkcz0iTVRESURTX0RFRkFVTFQiXDAiCQkJCQlcCisJIm10ZHBhcnRzPSJNVERQQVJUU19ERUZBVUxUIlwwIgorCisvKgorICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCisgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSgxMDI0ICogMTAyNCkgLyogMU1pQiBmb3IgbWFsbG9jKCkgKi8KKy8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CisKKy8qCisgKiBPdGhlciByZXF1aXJlZCBtaW5pbWFsIGNvbmZpZ3VyYXRpb25zCisgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQorI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCisjZGVmaW5lIENPTkZJR19BUkNIX0NQVV9JTklUCS8qIGNhbGwgYXJjaF9jcHVfaW5pdCgpICovCisjZGVmaW5lIENPTkZJR19BUkNIX01JU0NfSU5JVAkvKiBjYWxsIGFyY2hfbWlzY19pbml0KCkgKi8KKyNkZWZpbmUgQ09ORklHX0RJU1BMQVlfQ1BVSU5GTwkvKiBEaXNwbGF5IGNwdSBpbmZvICovCisjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCTQKKyNkZWZpbmUgQ09ORklHX1NUQUNLU0laRQkweDAwMTAwMDAwCS8qIHJlZ3VsYXIgc3RhY2stIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDA4MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkci0gOE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUIDB4MDA0MDAwMDAJLyogNE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkweDAwN2ZmZmZmCS8qKF84TSAtMSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTIDB4ZmZmZjAwMDAJLyogUnN0IFZlY3RvciBBZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisKKy8qCisgKiBFdGhlcm5ldCBEcml2ZXIgY29uZmlndXJhdGlvbgorICovCisjaWZkZWYgQ09ORklHX0NNRF9ORVQKKyNkZWZpbmUgQ09ORklHX05FVENPTlNPTEUJLyogaW5jbHVkZSBOZXRDb25zb2xlIHN1cHBvcnQgICAqLworI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCS8qIHNwZWNpZnkgbW9yZSB0aGF0IG9uZSBwb3J0cyBhdmFpbGFibGUgKi8KKyNkZWZpbmUJQ09ORklHX01JSQkJLyogZXhwb3NlIHNtaSBvdmUgbWlpcGh5IGludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfS0lSS1dPT0RfRUdJR0EJLyogRW5hYmxlIGtpcmt3b29kIEdiZSBDb250cm9sbGVyIERyaXZlciAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCS8qIGRldGVjdCBsaW5rIHVzaW5nIHBoeSAqLworI2RlZmluZSBDT05GSUdfS0lSS1dPT0RfRUdJR0FfUE9SVFMJezEsMH0JLyogZW5hYmxlIHBvcnQgMCBvbmx5ICovCisjZGVmaW5lIENPTkZJR19QSFlfQkFTRV9BRFIJMHg4CisjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCS8qIGV0aGFkZHIgY2FuIGJlIHJlcHJvZ3JhbW1lZCAqLworI2RlZmluZSBDT05GSUdfUkVTRVRfUEhZX1IJLyogdXNlIHJlc2V0X3BoeSgpIHRvIGluaXQgbXY4ODMxMTE2IFBIWSAqLworI2VuZGlmIC8qIENPTkZJR19DTURfTkVUICovCisKKy8qCisgKiBVU0IvRUhDSQorICovCisjaWZkZWYgQ09ORklHX0NNRF9VU0IKKyNkZWZpbmUgQ09ORklHX1VTQl9FSENJCQkJLyogRW5hYmxlIEVIQ0kgVVNCIHN1cHBvcnQgKi8KKyNkZWZpbmUgQ09ORklHX1VTQl9FSENJX0tJUktXT09ECS8qIG9uIEtpcmt3b29kIHBsYXRmb3JtCSovCisjZGVmaW5lIENPTkZJR19FSENJX0lTX1RESQorI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UKKyNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KKyNkZWZpbmUgQ09ORklHX0lTT19QQVJUSVRJT04KKyNkZWZpbmUgQ09ORklHX1NVUFBPUlRfVkZBVAorI2VuZGlmIC8qIENPTkZJR19DTURfVVNCICovCisKKy8qCisgKiBGaWxlIHN5c3RlbQorICovCisjZGVmaW5lIENPTkZJR19DTURfVUJJCisjZGVmaW5lIENPTkZJR19DTURfVUJJRlMKKyNkZWZpbmUgQ09ORklHX1JCVFJFRQorI2RlZmluZSBDT05GSUdfTVREX0RFVklDRSAgICAgICAgICAgICAgIC8qIG5lZWRlZCBmb3IgbXRkcGFydHMgY29tbWFuZHMgKi8KKyNkZWZpbmUgQ09ORklHX01URF9QQVJUSVRJT05TCisjZGVmaW5lIENPTkZJR19DTURfTVREUEFSVFMKKyNkZWZpbmUgQ09ORklHX0xaTworCisjZW5kaWYgLyogX0NPTkZJR19PUEVOUkRfQkFTRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcHBtYzgyNjAuaCBiL2luY2x1ZGUvY29uZmlncy9wcG1jODI2MC5oCmluZGV4IGZmN2Q2MTQuLmYzODc2MDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9wcG1jODI2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9wcG1jODI2MC5oCkBAIC0xODIsNiArMTgyLDEwIEBACiAgKiBQb3J0IHBpbnMgdXNlZCBmb3IgYml0LWJhbmdlZCBNSUkgY29tbXVuaWN0aW9ucyAoaWYgYXBwbGljYWJsZSkuCiAgKi8KICNkZWZpbmUgTURJT19QT1JUCTIJLyogUG9ydCBDICovCisjZGVmaW5lIE1ESU9fREVDTEFSRQl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKCBcCisJCQkJKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SLCBNRElPX1BPUlQgKQorI2RlZmluZSBNRENfREVDTEFSRQlNRElPX0RFQ0xBUkUKKwogI2RlZmluZSBNRElPX0FDVElWRQkoaW9wLT5wZGlyIHw9ICAweDAwNDAwMDAwKQogI2RlZmluZSBNRElPX1RSSVNUQVRFCShpb3AtPnBkaXIgJj0gfjB4MDA0MDAwMDApCiAjZGVmaW5lIE1ESU9fUkVBRAkoKGlvcC0+cGRhdCAmICAweDAwNDAwMDAwKSAhPSAwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NhY3NuZy5oIGIvaW5jbHVkZS9jb25maWdzL3NhY3NuZy5oCmluZGV4IDBhYjZmYzMuLmIwMTk4YWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zYWNzbmcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc2Fjc25nLmgKQEAgLTE3OSw2ICsxNzksMTAgQEAKICAqLwogCiAjZGVmaW5lIE1ESU9fUE9SVAkyCSAgICAgICAgLyogUG9ydCBBPTAsIEI9MSwgQz0yLCBEPTMgKi8KKyNkZWZpbmUgTURJT19ERUNMQVJFCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoIFwKKwkJCQkoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIsIE1ESU9fUE9SVCApCisjZGVmaW5lIE1EQ19ERUNMQVJFCU1ESU9fREVDTEFSRQorCiAjZGVmaW5lIE1ESU9fQUNUSVZFCShpb3AtPnBkaXIgfD0gIDB4NDAwMDAwMDApCiAjZGVmaW5lIE1ESU9fVFJJU1RBVEUJKGlvcC0+cGRpciAmPSB+MHg0MDAwMDAwMCkKICNkZWZpbmUgTURJT19SRUFECSgoaW9wLT5wZGF0ICYgIDB4NDAwMDAwMDApICE9IDApCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODI2MC5oIGIvaW5jbHVkZS9jb25maWdzL3NiYzgyNjAuaAppbmRleCAyNmVkNTU3Li4zZmE4MGE4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODI2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYmM4MjYwLmgKQEAgLTIwMSw2ICsyMDEsMTAgQEAKICAqIFBvcnQgcGlucyB1c2VkIGZvciBiaXQtYmFuZ2VkIE1JSSBjb21tdW5pY3Rpb25zIChpZiBhcHBsaWNhYmxlKS4KICAqLwogI2RlZmluZSBNRElPX1BPUlQJMgkvKiBQb3J0IEMgKi8KKyNkZWZpbmUgTURJT19ERUNMQVJFCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoIFwKKwkJCQkoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIsIE1ESU9fUE9SVCApCisjZGVmaW5lIE1EQ19ERUNMQVJFCU1ESU9fREVDTEFSRQorCiAjZGVmaW5lIE1ESU9fQUNUSVZFCShpb3AtPnBkaXIgfD0gIDB4MDA0MDAwMDApCiAjZGVmaW5lIE1ESU9fVFJJU1RBVEUJKGlvcC0+cGRpciAmPSB+MHgwMDQwMDAwMCkKICNkZWZpbmUgTURJT19SRUFECSgoaW9wLT5wZGF0ICYgIDB4MDA0MDAwMDApICE9IDApCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODU2MC5oIGIvaW5jbHVkZS9jb25maWdzL3NiYzg1NjAuaAppbmRleCBhNmIxNWY3Li5kYWI0ZjgwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODU2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYmM4NTYwLmgKQEAgLTI5Myw2ICsyOTMsMTAgQEAKICAgICogR1BJTyBwaW5zIHVzZWQgZm9yIGJpdC1iYW5nZWQgTUlJIGNvbW11bmljYXRpb25zCiAgICAqLwogICAjZGVmaW5lIE1ESU9fUE9SVAkyCQkvKiBQb3J0IEMgKi8KKyAgI2RlZmluZSBNRElPX0RFQ0xBUkUJdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICggXAorCQkJCShpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiwgTURJT19QT1JUICkKKyAgI2RlZmluZSBNRENfREVDTEFSRQlNRElPX0RFQ0xBUkUKKwogICAjZGVmaW5lIE1ESU9fQUNUSVZFCShpb3AtPnBkaXIgfD0gIDB4MDA0MDAwMDApCiAgICNkZWZpbmUgTURJT19UUklTVEFURQkoaW9wLT5wZGlyICY9IH4weDAwNDAwMDAwKQogICAjZGVmaW5lIE1ESU9fUkVBRAkoKGlvcC0+cGRhdCAmICAweDAwNDAwMDAwKSAhPSAwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NiYzg2NDFkLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2JjODY0MWQuaAppbmRleCAyODY1ZGY1Li42ODJkMjQxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODY0MWQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc2JjODY0MWQuaApAQCAtMTIxLDggKzEyMSw2IEBACiAjZGVmaW5lIENPTkZJR19TWVNfTUFYX0REUl9CQVRfU0laRQkweDgwMDAwMDAwCS8qIEJBVCBtYXBwaW5nIHNpemUgKi8KICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCi0jZGVmaW5lIE1QQzg2eHhfRERSX1NEUkFNX0NMS19DTlRMCi0KICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMgogI2RlZmluZSBDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUgkyCiAjZGVmaW5lIENPTkZJR19DSElQX1NFTEVDVFNfUEVSX0NUUkwJKDIgKiBDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUikKZGlmZiAtLWdpdCBhL2luY2x1ZGUva3M4NzIxLmggYi9pbmNsdWRlL2tzODcyMS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NWQ5YmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2tzODcyMS5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBOT1RFOglNSUNSRUwgZXRoZXJuZXQgUGh5c2ljYWwgbGF5ZXIKKyAqCisgKiBWZXJzaW9uOglLUzg3MjEuaAorICoKKyAqIEF1dGhvcnM6CUVyaWMgQmVuYXJkIChiYXNlZCBvbiBkbTkxNjEuaCkKKyAqCisgKgkJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICoJCW1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKgkJYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uCisgKgkJMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqLworCisvKiBNSUNSRUwgUEhZU0lDQUwgTEFZRVIgVFJBTlNDRUlWRVIgS1M4NzIxICovCisKKyNkZWZpbmUJS1M4NzIxX0JNQ1IJCTAKKyNkZWZpbmUgS1M4NzIxX0JNU1IJCTEKKyNkZWZpbmUgS1M4NzIxX1BIWUlEMQkJMgorI2RlZmluZSBLUzg3MjFfUEhZSUQyCQkzCisjZGVmaW5lIEtTODcyMV9BTkFSCQk0CisjZGVmaW5lIEtTODcyMV9BTkxQQVIJCTUKKyNkZWZpbmUgS1M4NzIxX0FORVIJCTYKKyNkZWZpbmUgS1M4NzIxX1JFQ1IJCTE1CisjZGVmaW5lIEtTODcyMV9NRElOVFIJCTI3CisjZGVmaW5lIEtTODcyMV8xMDBCVAkJMzEKKworLyogLS1CaXQgZGVmaW5pdGlvbnM6IEtTODcyMV9CTUNSICovCisjZGVmaW5lIEtTODcyMV9SRVNFVAkJKDEgPDwgMTUpCisjZGVmaW5lIEtTODcyMV9MT09QQkFDSwkJKDEgPDwgMTQpCisjZGVmaW5lIEtTODcyMV9TUEVFRF9TRUxFQ1QJKDEgPDwgMTMpCisjZGVmaW5lIEtTODcyMV9BVVRPTkVHCQkoMSA8PCAxMikKKyNkZWZpbmUgS1M4NzIxX1BPV0VSX0RPV04JKDEgPDwgMTEpCisjZGVmaW5lIEtTODcyMV9JU09MQVRFCQkoMSA8PCAxMCkKKyNkZWZpbmUgS1M4NzIxX1JFU1RBUlRfQVVUT05FRwkoMSA8PCA5KQorI2RlZmluZSBLUzg3MjFfRFVQTEVYX01PREUJKDEgPDwgOCkKKyNkZWZpbmUgS1M4NzIxX0NPTExJU0lPTl9URVNUCSgxIDw8IDcpCisjZGVmaW5lCUtTODcyMV9ESVNBQkxFCQkoMSA8PCAwKQorCisvKi0tQml0IGRlZmluaXRpb25zOiBLUzg3MjFfQk1TUiAqLworI2RlZmluZSBLUzg3MjFfMTAwQkFTRV9UNAkoMSA8PCAxNSkKKyNkZWZpbmUgS1M4NzIxXzEwMEJBU0VfVFhfRkQJKDEgPDwgMTQpCisjZGVmaW5lIEtTODcyMV8xMDBCQVNFX1Q0X0hECSgxIDw8IDEzKQorI2RlZmluZSBLUzg3MjFfMTBCQVNFX1RfRkQJKDEgPDwgMTIpCisjZGVmaW5lIEtTODcyMV8xMEJBU0VfVF9IRAkoMSA8PCAxMSkKKyNkZWZpbmUgS1M4NzIxX01GX1BSRUFNQl9TVVBQUgkoMSA8PCA2KQorI2RlZmluZSBLUzg3MjFfQVVUT05FR19DT01QCSgxIDw8IDUpCisjZGVmaW5lIEtTODcyMV9SRU1PVEVfRkFVTFQJKDEgPDwgNCkKKyNkZWZpbmUgS1M4NzIxX0FVVE9ORUdfQUJJTElUWQkoMSA8PCAzKQorI2RlZmluZSBLUzg3MjFfTElOS19TVEFUVVMJKDEgPDwgMikKKyNkZWZpbmUgS1M4NzIxX0pBQkJFUl9ERVRFQ1QJKDEgPDwgMSkKKyNkZWZpbmUgS1M4NzIxX0VYVEVORF9DQVBBQgkoMSA8PCAwKQorCisvKi0tQml0IGRlZmluaXRpb25zOiBLUzg3MjFfUEhZSUQgKi8KKyNkZWZpbmUgS1M4NzIxX1BIWUlEX09VSQkweDA4ODUKKyNkZWZpbmUgS1M4NzIxX0xTQl9NQVNLCQkweDNGCisKKyNkZWZpbmUJS1M4NzIxQkxfTU9ERUwJCTB4MjEKKyNkZWZpbmUJS1M4NzIxX01PREVMTUFTSwkweDNGMAorI2RlZmluZQlLUzg3MjFCTF9SRVYJCTB4OQorI2RlZmluZSBLUzg3MjFfUkVWTUFTSwkJMHhGCisKKy8qLS1CaXQgZGVmaW5pdGlvbnM6IEtTODcyMV9BTkFSLCBLUzg3MjFfQU5MUEFSICovCisjZGVmaW5lIEtTODcyMV9OUAkJKDEgPDwgMTUpCisjZGVmaW5lIEtTODcyMV9BQ0sJCSgxIDw8IDE0KQorI2RlZmluZSBLUzg3MjFfUkYJCSgxIDw8IDEzKQorI2RlZmluZSBLUzg3MjFfUEFVU0UJCSgxIDw8IDEwKQorI2RlZmluZSBLUzg3MjFfVDQJCSgxIDw8IDkpCisjZGVmaW5lIEtTODcyMV9UWF9GRFgJCSgxIDw8IDgpCisjZGVmaW5lIEtTODcyMV9UWF9IRFgJCSgxIDw8IDcpCisjZGVmaW5lIEtTODcyMV8xMF9GRFgJCSgxIDw8IDYpCisjZGVmaW5lIEtTODcyMV8xMF9IRFgJCSgxIDw8IDUpCisjZGVmaW5lIEtTODcyMV9BTl9JRUVFXzgwMl8zCTB4MDAwMQorCisvKioqKioqKioqKioqKioqKioqICBmdW5jdGlvbiBwcm90b3R5cGVzICoqKioqKioqKioqKioqKioqKioqKiovCit1bnNpZ25lZCBpbnQgIGtzODcyMV9pc3BoeWNvbm5lY3RlZChBVDkxUFNfRU1BQyBwX21hYyk7Cit1bnNpZ25lZCBjaGFyIGtzODcyMV9nZXRsaW5rc3BlZWQoQVQ5MVBTX0VNQUMgcF9tYWMpOwordW5zaWduZWQgY2hhciBrczg3MjFfYXV0b25lZ290aWF0ZShBVDkxUFNfRU1BQyBwX21hYywgaW50ICpzdGF0dXMpOwordW5zaWduZWQgY2hhciBrczg3MjFfaW5pdHBoeShBVDkxUFNfRU1BQyBwX21hYyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL21paXBoeS5oIGIvaW5jbHVkZS9taWlwaHkuaAppbmRleCBmYTMzZWM3Li41MzYyMTI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL21paXBoeS5oCisrKyBiL2luY2x1ZGUvbWlpcGh5LmgKQEAgLTE5LDYgKzE5LDggQEAKIHwKIHwJQ09QWVJJR0hUICAgSSBCIE0gICBDT1JQT1JBVElPTiAxOTk5CiB8CUxJQ0VOU0VEIE1BVEVSSUFMICAtICBQUk9HUkFNIFBST1BFUlRZIE9GIEkgQiBNCit8Cit8ICAgQWRkaXRpb25zIChDKSBDb3B5cmlnaHQgMjAwOSBJbmR1c3RyaWUgRGlhbCBGYWNlIFMucC5BLgogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogfApAQCAtNjEsMTIgKzYzLDMzIEBACiAKIHZvaWQgbWlpcGh5X2xpc3RkZXYgKHZvaWQpOwogCisjaWZkZWYgQ09ORklHX0JJVEJBTkdNSUkKKworI2RlZmluZSBCQl9NSUlfREVWTkFNRQkiYmJfbWlpcGh5IgorCi0jZGVmaW5lIEJCX01JSV9ERVZOQU1FCSJiYm1paSIKK3N0cnVjdCBiYl9taWlwaHlfYnVzIHsKKwljaGFyIG5hbWVbTkFNRVNJWkVdOworCWludCAoKmluaXQpKHN0cnVjdCBiYl9taWlwaHlfYnVzICpidXMpOworCWludCAoKm1kaW9fYWN0aXZlKShzdHJ1Y3QgYmJfbWlpcGh5X2J1cyAqYnVzKTsKKwlpbnQgKCptZGlvX3RyaXN0YXRlKShzdHJ1Y3QgYmJfbWlpcGh5X2J1cyAqYnVzKTsKKwlpbnQgKCpzZXRfbWRpbykoc3RydWN0IGJiX21paXBoeV9idXMgKmJ1cywgaW50IHYpOworCWludCAoKmdldF9tZGlvKShzdHJ1Y3QgYmJfbWlpcGh5X2J1cyAqYnVzLCBpbnQgKnYpOworCWludCAoKnNldF9tZGMpKHN0cnVjdCBiYl9taWlwaHlfYnVzICpidXMsIGludCB2KTsKKwlpbnQgKCpkZWxheSkoc3RydWN0IGJiX21paXBoeV9idXMgKmJ1cyk7CisjaWZkZWYgQ09ORklHX0JJVEJBTkdNSUlfTVVMVEkKKwl2b2lkICpwcml2OworI2VuZGlmCit9OworCitleHRlcm4gc3RydWN0IGJiX21paXBoeV9idXMgYmJfbWlpcGh5X2J1c2VzW107CitleHRlcm4gaW50IGJiX21paXBoeV9idXNlc19udW07CiAKK3ZvaWQgYmJfbWlpcGh5X2luaXQgKHZvaWQpOwogaW50IGJiX21paXBoeV9yZWFkIChjaGFyICpkZXZuYW1lLCB1bnNpZ25lZCBjaGFyIGFkZHIsCiAJCSAgICB1bnNpZ25lZCBjaGFyIHJlZywgdW5zaWduZWQgc2hvcnQgKnZhbHVlKTsKIGludCBiYl9taWlwaHlfd3JpdGUgKGNoYXIgKmRldm5hbWUsIHVuc2lnbmVkIGNoYXIgYWRkciwKIAkJICAgICB1bnNpZ25lZCBjaGFyIHJlZywgdW5zaWduZWQgc2hvcnQgdmFsdWUpOworI2VuZGlmCiAKIC8qIHBoeSBzZWVkIHNldHVwICovCiAjZGVmaW5lIEFVVE8JCQk5OQpkaWZmIC0tZ2l0IGEvbGliX2FybS9ib2FyZC5jIGIvbGliX2FybS9ib2FyZC5jCmluZGV4IGEwZTU2ZDUuLjVlM2Q3ZjYgMTAwNjQ0Ci0tLSBhL2xpYl9hcm0vYm9hcmQuYworKysgYi9saWJfYXJtL2JvYXJkLmMKQEAgLTUwLDYgKzUwLDEwIEBACiAjaW5jbHVkZSA8b25lbmFuZF91Ym9vdC5oPgogI2luY2x1ZGUgPG1tYy5oPgogCisjaWZkZWYgQ09ORklHX0JJVEJBTkdNSUkKKyNpbmNsdWRlIDxtaWlwaHkuaD4KKyNlbmRpZgorCiAjaWZkZWYgQ09ORklHX0RSSVZFUl9TTUM5MTExMQogI2luY2x1ZGUgIi4uL2RyaXZlcnMvbmV0L3NtYzkxMTExLmgiCiAjZW5kaWYKQEAgLTQxNyw2ICs0MjEsOSBAQAogCW1tY19pbml0aWFsaXplIChnZC0+YmQpOwogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfQklUQkFOR01JSQorCWJiX21paXBoeV9pbml0KCk7CisjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19DTURfTkVUKQogI2lmIGRlZmluZWQoQ09ORklHX05FVF9NVUxUSSkKIAlwdXRzICgiTmV0OiAgICIpOwpkaWZmIC0tZ2l0IGEvbGliX2F2cjMyL2JvYXJkLmMgYi9saWJfYXZyMzIvYm9hcmQuYwppbmRleCAyOTk5OWQ4Li45MTdlZDZjIDEwMDY0NAotLS0gYS9saWJfYXZyMzIvYm9hcmQuYworKysgYi9saWJfYXZyMzIvYm9hcmQuYwpAQCAtMjcsNiArMjcsMTAgQEAKICNpbmNsdWRlIDx2ZXJzaW9uLmg+CiAjaW5jbHVkZSA8bmV0Lmg+CiAKKyNpZmRlZiBDT05GSUdfQklUQkFOR01JSQorI2luY2x1ZGUgPG1paXBoeS5oPgorI2VuZGlmCisKICNpbmNsdWRlIDxhc20vaW5pdGNhbGxzLmg+CiAjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CiAKQEAgLTMzNyw2ICszNDEsOSBAQAogCWlmIChzKQogCQlsb2FkX2FkZHIgPSBzaW1wbGVfc3RydG91bChzLCBOVUxMLCAxNik7CiAKKyNpZmRlZiBDT05GSUdfQklUQkFOR01JSQorCWJiX21paXBoeV9pbml0KCk7CisjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19DTURfTkVUKQogCXMgPSBnZXRlbnYoImJvb3RmaWxlIik7CiAJaWYgKHMpCmRpZmYgLS1naXQgYS9saWJfYmxhY2tmaW4vYm9hcmQuYyBiL2xpYl9ibGFja2Zpbi9ib2FyZC5jCmluZGV4IDEwNTNmNjkuLjZjYWRlN2QgMTAwNjQ0Ci0tLSBhL2xpYl9ibGFja2Zpbi9ib2FyZC5jCisrKyBiL2xpYl9ibGFja2Zpbi9ib2FyZC5jCkBAIC0yNiw2ICsyNiwxMCBAQAogI2luY2x1ZGUgPG5hbmQuaD4JLyogY2Fubm90IGV2ZW4gaW5jbHVkZSBuYW5kLmggaWYgaXQgaXNudCBjb25maWd1cmVkICovCiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19CSVRCQU5HTUlJCisjaW5jbHVkZSA8bWlpcGh5Lmg+CisjZW5kaWYKKwogI2lmIGRlZmluZWQoQ09ORklHX1BPU1QpCiAjaW5jbHVkZSA8cG9zdC5oPgogaW50IHBvc3RfZmxhZzsKQEAgLTI3MCw4ICsyNzQsMTAgQEAKIAogc3RhdGljIHZvaWQgYm9hcmRfbmV0X2luaXRfcihiZF90ICpiZCkKIHsKKyNpZmRlZiBDT05GSUdfQklUQkFOR01JSQorCWJiX21paXBoeV9pbml0KCk7CisjZW5kaWYKICNpZmRlZiBDT05GSUdfQ01EX05FVAotCXVjaGFyIGVuZXRhZGRyWzZdOwogCWNoYXIgKnM7CiAKIAlpZiAoKHMgPSBnZXRlbnYoImJvb3RmaWxlIikpICE9IE5VTEwpCkBAIC0yODEsMTUgKzI4NywxMSBAQAogCiAJcHJpbnRmKCJOZXQ6ICAgIik7CiAJZXRoX2luaXRpYWxpemUoZ2QtPmJkKTsKLQotCWV0aF9nZXRlbnZfZW5ldGFkZHIoImV0aGFkZHIiLCBlbmV0YWRkcik7Ci0JcHJpbnRmKCJNQUM6ICAgJXBNXG4iLCBlbmV0YWRkcik7CiAjZW5kaWYKIH0KIAogdm9pZCBib2FyZF9pbml0X3IoZ2RfdCAqIGlkLCB1bG9uZyBkZXN0X2FkZHIpCiB7Ci0JZXh0ZXJuIHZvaWQgbWFsbG9jX2Jpbl9yZWxvYyh2b2lkKTsKIAljaGFyICpzOwogCWJkX3QgKmJkOwogCWdkID0gaWQ7CkBAIC0zMDMsNyArMzA1LDYgQEAKIAogCS8qIGluaXRpYWxpemUgbWFsbG9jKCkgYXJlYSAqLwogCW1lbV9tYWxsb2NfaW5pdChDT05GSUdfU1lTX01BTExPQ19CQVNFLCBDT05GSUdfU1lTX01BTExPQ19MRU4pOwotCW1hbGxvY19iaW5fcmVsb2MoKTsKIAogI2lmCSFkZWZpbmVkKENPTkZJR19TWVNfTk9fRkxBU0gpCiAJLyogSW5pdGlhbGl6ZSB0aGUgZmxhc2ggYW5kIHByb3RlY3QgdS1ib290IGJ5IGRlZmF1bHQgKi8KZGlmZiAtLWdpdCBhL2xpYl9nZW5lcmljL3N0cmluZy5jIGIvbGliX2dlbmVyaWMvc3RyaW5nLmMKaW5kZXggMTgxZWRhNi4uYjM3NWI4MSAxMDA2NDQKLS0tIGEvbGliX2dlbmVyaWMvc3RyaW5nLmMKKysrIGIvbGliX2dlbmVyaWMvc3RyaW5nLmMKQEAgLTQwMywxMCArNDAzLDI2IEBACiAgKi8KIHZvaWQgKiBtZW1zZXQodm9pZCAqIHMsaW50IGMsc2l6ZV90IGNvdW50KQogewotCWNoYXIgKnhzID0gKGNoYXIgKikgczsKKwl1bnNpZ25lZCBsb25nICpzbCA9ICh1bnNpZ25lZCBsb25nICopIHM7CisJdW5zaWduZWQgbG9uZyBjbCA9IDA7CisJY2hhciAqczg7CisJaW50IGk7CiAKKwkvKiBkbyBpdCBvbmUgd29yZCBhdCBhIHRpbWUgKDMyIGJpdHMgb3IgNjQgYml0cykgd2hpbGUgcG9zc2libGUgKi8KKwlpZiAoICgodWxvbmcpcyAmIChzaXplb2YoKnNsKSAtIDEpKSA9PSAwKSB7CisJCWZvciAoaSA9IDA7IGkgPCBzaXplb2YoKnNsKTsgaSsrKSB7CisJCQljbCA8PD0gODsKKwkJCWNsIHw9IGMgJiAweGZmOworCQl9CisJCXdoaWxlIChjb3VudCA+PSBzaXplb2YoKnNsKSkgeworCQkJKnNsKysgPSBjbDsKKwkJCWNvdW50IC09IHNpemVvZigqc2wpOworCQl9CisJfQorCS8qIGZpbGwgOCBiaXRzIGF0IGEgdGltZSAqLworCXM4ID0gKGNoYXIgKilzbDsKIAl3aGlsZSAoY291bnQtLSkKLQkJKnhzKysgPSBjOworCQkqczgrKyA9IGM7CiAKIAlyZXR1cm4gczsKIH0KQEAgLTQ0NiwxMiArNDYyLDIzIEBACiAgKiBZb3Ugc2hvdWxkIG5vdCB1c2UgdGhpcyBmdW5jdGlvbiB0byBhY2Nlc3MgSU8gc3BhY2UsIHVzZSBtZW1jcHlfdG9pbygpCiAgKiBvciBtZW1jcHlfZnJvbWlvKCkgaW5zdGVhZC4KICAqLwotdm9pZCAqIG1lbWNweSh2b2lkICogZGVzdCxjb25zdCB2b2lkICpzcmMsc2l6ZV90IGNvdW50KQordm9pZCAqIG1lbWNweSh2b2lkICpkZXN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBjb3VudCkKIHsKLQljaGFyICp0bXAgPSAoY2hhciAqKSBkZXN0LCAqcyA9IChjaGFyICopIHNyYzsKKwl1bnNpZ25lZCBsb25nICpkbCA9ICh1bnNpZ25lZCBsb25nICopZGVzdCwgKnNsID0gKHVuc2lnbmVkIGxvbmcgKilzcmM7CisJY2hhciAqZDgsICpzODsKIAorCS8qIHdoaWxlIGFsbCBkYXRhIGlzIGFsaWduZWQgKGNvbW1vbiBjYXNlKSwgY29weSBhIHdvcmQgYXQgYSB0aW1lICovCisJaWYgKCAoKCh1bG9uZylkZXN0IHwgKHVsb25nKXNyYykgJiAoc2l6ZW9mKCpkbCkgLSAxKSkgPT0gMCkgeworCQl3aGlsZSAoY291bnQgPj0gc2l6ZW9mKCpkbCkpIHsKKwkJCSpkbCsrID0gKnNsKys7CisJCQljb3VudCAtPSBzaXplb2YoKmRsKTsKKwkJfQorCX0KKwkvKiBjb3B5IHRoZSByZXNldCBvbmUgYnl0ZSBhdCBhIHRpbWUgKi8KKwlkOCA9IChjaGFyICopZGw7CisJczggPSAoY2hhciAqKXNsOwogCXdoaWxlIChjb3VudC0tKQotCQkqdG1wKysgPSAqcysrOworCQkqZDgrKyA9ICpzOCsrOwogCiAJcmV0dXJuIGRlc3Q7CiB9CmRpZmYgLS1naXQgYS9saWJfaTM4Ni9ib2FyZC5jIGIvbGliX2kzODYvYm9hcmQuYwppbmRleCAwMjYyYjVlLi4xMmNhMjBmIDEwMDY0NAotLS0gYS9saWJfaTM4Ni9ib2FyZC5jCisrKyBiL2xpYl9pMzg2L2JvYXJkLmMKQEAgLTEsNiArMSw2IEBACiAvKgogICogKEMpIENvcHlyaWdodCAyMDAyCi0gKiBEYW5pZWwgRW5nc3Ry9m0sIE9taWNyb24gQ2V0aSBBQiwgZGFuaWVsQG9taWNyb24uc2UKKyAqIERhbmllbCBFbmdzdHLvv71tLCBPbWljcm9uIENldGkgQUIsIGRhbmllbEBvbWljcm9uLnNlCiAgKgogICogKEMpIENvcHlyaWdodCAyMDAyCiAgKiBXb2xmZ2FuZyBEZW5rLCBERU5YIFNvZnR3YXJlIEVuZ2luZWVyaW5nLCB3ZEBkZW54LmRlLgpAQCAtMzksNiArMzksMTAgQEAKICNpbmNsdWRlIDxpZGUuaD4KICNpbmNsdWRlIDxhc20vdS1ib290LWkzODYuaD4KIAorI2lmZGVmIENPTkZJR19CSVRCQU5HTUlJCisjaW5jbHVkZSA8bWlpcGh5Lmg+CisjZW5kaWYKKwogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKIGV4dGVybiBsb25nIF9pMzg2Ym9vdF9zdGFydDsKQEAgLTM1MSw2ICszNTUsOSBAQAogCWRvY19pbml0KCk7CiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19CSVRCQU5HTUlJCisJYmJfbWlpcGh5X2luaXQoKTsKKyNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ORVQpCiAjaWYgZGVmaW5lZChDT05GSUdfTkVUX01VTFRJKQogCVdBVENIRE9HX1JFU0VUKCk7CmRpZmYgLS1naXQgYS9saWJfbTY4ay9ib2FyZC5jIGIvbGliX202OGsvYm9hcmQuYwppbmRleCAzZDg4NTMwLi43MzIwMjNkIDEwMDY0NAotLS0gYS9saWJfbTY4ay9ib2FyZC5jCisrKyBiL2xpYl9tNjhrL2JvYXJkLmMKQEAgLTYzLDYgKzYzLDEwIEBACiAjaW5jbHVkZSA8c3BpLmg+CiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19CSVRCQU5HTUlJCisjaW5jbHVkZSA8bWlpcGh5Lmg+CisjZW5kaWYKKwogI2luY2x1ZGUgPG5hbmQuaD4KIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CkBAIC02MzAsNiArNjM0LDkgQEAKIAluYW5kX2luaXQoKTsJCS8qIGdvIGluaXQgdGhlIE5BTkQgKi8KICNlbmRpZgogCisjaWZkZWYgQ09ORklHX0JJVEJBTkdNSUkKKwliYl9taWlwaHlfaW5pdCgpOworI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05FVCkKIAlXQVRDSERPR19SRVNFVCgpOwogI2lmIGRlZmluZWQoRkVDX0VORVQpCmRpZmYgLS1naXQgYS9saWJfbWlwcy9ib2FyZC5jIGIvbGliX21pcHMvYm9hcmQuYwppbmRleCBmNjJhNDZhLi5iMmQxMTNlIDEwMDY0NAotLS0gYS9saWJfbWlwcy9ib2FyZC5jCisrKyBiL2xpYl9taXBzL2JvYXJkLmMKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8b25lbmFuZF91Ym9vdC5oPgogI2luY2x1ZGUgPHNwaS5oPgogCisjaWZkZWYgQ09ORklHX0JJVEJBTkdNSUkKKyNpbmNsdWRlIDxtaWlwaHkuaD4KKyNlbmRpZgorCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAogI2lmICggKChDT05GSUdfRU5WX0FERFIrQ09ORklHX0VOVl9TSVpFKSA8IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSB8fCBcCkBAIC00MDcsNiArNDExLDkgQEAKIAltaXNjX2luaXRfciAoKTsKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX0JJVEJBTkdNSUkKKwliYl9taWlwaHlfaW5pdCgpOworI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05FVCkKICNpZiBkZWZpbmVkKENPTkZJR19ORVRfTVVMVEkpCiAJcHV0cyAoIk5ldDogICAiKTsKZGlmZiAtLWdpdCBhL2xpYl9wcGMvYm9hcmQuYyBiL2xpYl9wcGMvYm9hcmQuYwppbmRleCA4YjhkZGI1Li43NjVmOTdhIDEwMDY0NAotLS0gYS9saWJfcHBjL2JvYXJkLmMKKysrIGIvbGliX3BwYy9ib2FyZC5jCkBAIC04Myw2ICs4MywxMCBAQAogI2luY2x1ZGUgPGFzbS9tcC5oPgogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfQklUQkFOR01JSQorI2luY2x1ZGUgPG1paXBoeS5oPgorI2VuZGlmCisKICNpZmRlZiBDT05GSUdfU1lTX1VQREFURV9GTEFTSF9TSVpFCiBleHRlcm4gaW50IHVwZGF0ZV9mbGFzaF9zaXplIChpbnQgZmxhc2hfc2l6ZSk7CiAjZW5kaWYKQEAgLTI1MSwxNCArMjU1LDEyIEBACiAgKi8KIAogaW5pdF9mbmNfdCAqaW5pdF9zZXF1ZW5jZVtdID0gewotCi0jaWYgZGVmaW5lZChDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GKQotCWJvYXJkX2Vhcmx5X2luaXRfZiwKLSNlbmRpZgotCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDODV4eCkgfHwgZGVmaW5lZChDT05GSUdfTVBDODZ4eCkKIAlwcm9iZWNwdSwKICNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRikKKwlib2FyZF9lYXJseV9pbml0X2YsCisjZW5kaWYKICNpZiAhZGVmaW5lZChDT05GSUdfOHh4X0NQVUNMS19ERUZBVUxUKQogCWdldF9jbG9ja3MsCQkvKiBnZXQgQ1BVIGFuZCBidXMgY2xvY2tzIChldGMuKSAqLwogI2lmIGRlZmluZWQoQ09ORklHX1RRTTh4eEwpICYmICFkZWZpbmVkKENPTkZJR19UUU04NjZNKSBcCkBAIC05NDIsNiArOTQ0LDkgQEAKIAlkb2NfaW5pdCAoKTsKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX0JJVEJBTkdNSUkKKwliYl9taWlwaHlfaW5pdCgpOworI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05FVCkKICNpZiBkZWZpbmVkKENPTkZJR19ORVRfTVVMVEkpCiAJV0FUQ0hET0dfUkVTRVQgKCk7CmRpZmYgLS1naXQgYS9saWJfc2gvYm9hcmQuYyBiL2xpYl9zaC9ib2FyZC5jCmluZGV4IDVkNjFmMGQuLjVlZDQwZTkyMiAxMDA2NDQKLS0tIGEvbGliX3NoL2JvYXJkLmMKKysrIGIvbGliX3NoL2JvYXJkLmMKQEAgLTI4LDYgKzI4LDEwIEBACiAjaW5jbHVkZSA8bmV0Lmg+CiAjaW5jbHVkZSA8ZW52aXJvbm1lbnQuaD4KIAorI2lmZGVmIENPTkZJR19CSVRCQU5HTUlJCisjaW5jbHVkZSA8bWlpcGh5Lmg+CisjZW5kaWYKKwogZXh0ZXJuIHZvaWQgbWFsbG9jX2Jpbl9yZWxvYyAodm9pZCk7CiBleHRlcm4gaW50IGNwdV9pbml0KHZvaWQpOwogZXh0ZXJuIGludCBib2FyZF9pbml0KHZvaWQpOwpAQCAtMTc4LDYgKzE4Miw5IEBACiAjZW5kaWYgLyogQ09ORklHX1dBVENIRE9HKi8KIAogCisjaWZkZWYgQ09ORklHX0JJVEJBTkdNSUkKKwliYl9taWlwaHlfaW5pdCgpOworI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05FVCkKIAl7CiAJCWNoYXIgKnM7CmRpZmYgLS1naXQgYS9saWJfc3BhcmMvYm9hcmQuYyBiL2xpYl9zcGFyYy9ib2FyZC5jCmluZGV4IDZhYWRiNTYuLjExZWVhNjAgMTAwNjQ0Ci0tLSBhL2xpYl9zcGFyYy9ib2FyZC5jCisrKyBiL2xpYl9zcGFyYy9ib2FyZC5jCkBAIC00OSw2ICs0OSwxMCBAQAogI2luY2x1ZGUgPGFtYmFwcC5oPgogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfQklUQkFOR01JSQorI2luY2x1ZGUgPG1paXBoeS5oPgorI2VuZGlmCisKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCiAvKiBEZWJ1ZyBvcHRpb25zCkBAIC00MDUsNiArNDA5LDkgQEAKIAlkb2NfaW5pdCgpOwogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfQklUQkFOR01JSQorCWJiX21paXBoeV9pbml0KCk7CisjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19DTURfTkVUKQogI2lmIGRlZmluZWQoQ09ORklHX05FVF9NVUxUSSkKIAlXQVRDSERPR19SRVNFVCgpOwpkaWZmIC0tZ2l0IGEvbmFuZF9zcGwvYm9hcmQvZnJlZXNjYWxlL3AxX3AyX3JkYi9NYWtlZmlsZSBiL25hbmRfc3BsL2JvYXJkL2ZyZWVzY2FsZS9wMV9wMl9yZGIvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ1ZTMxOQotLS0gL2Rldi9udWxsCisrKyBiL25hbmRfc3BsL2JvYXJkL2ZyZWVzY2FsZS9wMV9wMl9yZGIvTWFrZWZpbGUKQEAgLTAsMCArMSwxMjcgQEAKKyMKKyMgKEMpIENvcHlyaWdodCAyMDA3CisjIFN0ZWZhbiBSb2VzZSwgREVOWCBTb2Z0d2FyZSBFbmdpbmVlcmluZywgc3JAZGVueC5kZS4KKyMKKyMgQ29weXJpZ2h0IDIwMDkgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4KKyMKKyMgU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyMgcHJvamVjdC4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworIyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorIyB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyMgTUEgMDIxMTEtMTMwNyBVU0EKKyMKKworTkFORF9TUEwgOj0geQorVEVYVF9CQVNFIDo9IDB4ZmZmMDAwMDAKK1BBRF9UTyA6PSAweGZmZjAxMDAwCisKK2luY2x1ZGUgJChUT1BESVIpL2NvbmZpZy5taworCitMRFNDUklQVD0gJChUT1BESVIpL2NwdS8kKENQVSkvdS1ib290LW5hbmRfc3BsLmxkcworTERGTEFHUwk9IC1Cc3RhdGljIC1UICQoTERTQ1JJUFQpIC1UdGV4dCAkKFRFWFRfQkFTRSkgJChQTEFURk9STV9MREZMQUdTKQorQUZMQUdTCSs9IC1EQ09ORklHX05BTkRfU1BMCitDRkxBR1MJKz0gLURDT05GSUdfTkFORF9TUEwKKworU09CSlMJPSBzdGFydC5vIHJlc2V0dmVjLm8KK0NPQkpTCT0gY2FjaGUubyBjcHVfaW5pdF9lYXJseS5vIGNwdV9pbml0X25hbmQubyBmc2xfbGF3Lm8gbGF3Lm8gXAorCSAgbmFuZF9ib290Lm8gbmFuZF9ib290X2ZzbF9lbGJjLm8gbnMxNjU1MC5vIHRsYi5vIHRsYl90YWJsZS5vCisKK1NSQ1MJOj0gJChhZGRwcmVmaXggJChvYmopLCQoU09CSlM6Lm89LlMpICQoQ09CSlM6Lm89LmMpKQorT0JKUwk6PSAkKGFkZHByZWZpeCAkKG9iaiksJChTT0JKUykgJChDT0JKUykpCitfX09CSlMJOj0gJChTT0JKUykgJChDT0JKUykKK0xORElSCTo9ICQoT0JKVFJFRSkvbmFuZF9zcGwvYm9hcmQvJChCT0FSRERJUikKKworbmFuZG9iagk6PSAkKE9CSlRSRUUpL25hbmRfc3BsLworCitBTEwJPSAkKG5hbmRvYmopdS1ib290LXNwbCAkKG5hbmRvYmopdS1ib290LXNwbC5iaW4gJChuYW5kb2JqKXUtYm9vdC1zcGwtMTZrLmJpbgorCithbGw6CSQob2JqKS5kZXBlbmQgJChBTEwpCisKKyQobmFuZG9iail1LWJvb3Qtc3BsLTE2ay5iaW46ICQobmFuZG9iail1LWJvb3Qtc3BsCisJJChPQkpDT1BZKSAke09CSkNGTEFHU30gLS1wYWQtdG89JChQQURfVE8pIC1PIGJpbmFyeSAkPCAkQAorCiskKG5hbmRvYmopdS1ib290LXNwbC5iaW46CSQobmFuZG9iail1LWJvb3Qtc3BsCisJJChPQkpDT1BZKSAke09CSkNGTEFHU30gLU8gYmluYXJ5ICQ8ICRACisKKyQobmFuZG9iail1LWJvb3Qtc3BsOgkkKE9CSlMpCisJY2QgJChMTkRJUikgJiYgJChMRCkgJChMREZMQUdTKSAkKF9fT0JKUykgJChQTEFURk9STV9MSUJTKSBcCisJCS1NYXAgJChuYW5kb2JqKXUtYm9vdC1zcGwubWFwIFwKKwkJLW8gJChuYW5kb2JqKXUtYm9vdC1zcGwKKworIyBjcmVhdGUgc3ltYm9saWMgbGlua3MgZm9yIGNvbW1vbiBmaWxlcworCiskKG9iailjYWNoZS5jOgorCUBybSAtZiAkKG9iailjYWNoZS5jCisJbG4gLXNmICQoU1JDVFJFRSkvbGliX3BwYy9jYWNoZS5jICQob2JqKWNhY2hlLmMKKworJChvYmopY3B1X2luaXRfZWFybHkuYzoKKwlAcm0gLWYgJChvYmopY3B1X2luaXRfZWFybHkuYworCWxuIC1zZiAkKFNSQ1RSRUUpL2NwdS9tcGM4NXh4L2NwdV9pbml0X2Vhcmx5LmMgJChvYmopY3B1X2luaXRfZWFybHkuYworCiskKG9iailjcHVfaW5pdF9uYW5kLmM6CisJQHJtIC1mICQob2JqKWNwdV9pbml0X25hbmQuYworCWxuIC1zZiAkKFNSQ1RSRUUpL2NwdS9tcGM4NXh4L2NwdV9pbml0X25hbmQuYyAkKG9iailjcHVfaW5pdF9uYW5kLmMKKworJChvYmopZnNsX2xhdy5jOgorCUBybSAtZiAkKG9iailmc2xfbGF3LmMKKwlsbiAtc2YgJChTUkNUUkVFKS9kcml2ZXJzL21pc2MvZnNsX2xhdy5jICQob2JqKWZzbF9sYXcuYworCiskKG9iailsYXcuYzoKKwlAcm0gLWYgJChvYmopbGF3LmMKKwlsbiAtc2YgJChTUkNUUkVFKS9ib2FyZC8kKEJPQVJERElSKS9sYXcuYyAkKG9iailsYXcuYworCiskKG9iailuYW5kX2Jvb3RfZnNsX2VsYmMuYzoKKwlAcm0gLWYgJChvYmopbmFuZF9ib290X2ZzbF9lbGJjLmMKKwlsbiAtc2YgJChTUkNUUkVFKS9uYW5kX3NwbC9uYW5kX2Jvb3RfZnNsX2VsYmMuYyBcCisJICAgICAgICQob2JqKW5hbmRfYm9vdF9mc2xfZWxiYy5jCisKKyQob2JqKW5zMTY1NTAuYzoKKwlAcm0gLWYgJChvYmopbnMxNjU1MC5jCisJbG4gLXNmICQoU1JDVFJFRSkvZHJpdmVycy9zZXJpYWwvbnMxNjU1MC5jICQob2JqKW5zMTY1NTAuYworCiskKG9iailyZXNldHZlYy5TOgorCUBybSAtZiAkKG9iailyZXNldHZlYy5TCisJbG4gLXMgJChTUkNUUkVFKS9jcHUvJChDUFUpL3Jlc2V0dmVjLlMgJChvYmopcmVzZXR2ZWMuUworCiskKG9iailmaXhlZF9pdm9yLlM6CisJQHJtIC1mICQob2JqKWZpeGVkX2l2b3IuUworCWxuIC1zZiAkKFNSQ1RSRUUpL2NwdS9tcGM4NXh4L2ZpeGVkX2l2b3IuUyAkKG9iailmaXhlZF9pdm9yLlMKKworJChvYmopc3RhcnQuUzogJChvYmopZml4ZWRfaXZvci5TCisJQHJtIC1mICQob2JqKXN0YXJ0LlMKKwlsbiAtc2YgJChTUkNUUkVFKS9jcHUvbXBjODV4eC9zdGFydC5TICQob2JqKXN0YXJ0LlMKKworJChvYmopdGxiLmM6CisJQHJtIC1mICQob2JqKXRsYi5jCisJbG4gLXNmICQoU1JDVFJFRSkvY3B1L21wYzg1eHgvdGxiLmMgJChvYmopdGxiLmMKKworJChvYmopdGxiX3RhYmxlLmM6CisJQHJtIC1mICQob2JqKXRsYl90YWJsZS5jCisJbG4gLXNmICQoU1JDVFJFRSkvYm9hcmQvJChCT0FSRERJUikvdGxiLmMgJChvYmopdGxiX3RhYmxlLmMKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCiskKG9iaiklLm86CSQob2JqKSUuUworCSQoQ0MpICQoQUZMQUdTKSAtYyAtbyAkQCAkPAorCiskKG9iaiklLm86CSQob2JqKSUuYworCSQoQ0MpICQoQ0ZMQUdTKSAtYyAtbyAkQCAkPAorCisjIGRlZmluZXMgJChvYmopLmRlcGVuZCB0YXJnZXQKK2luY2x1ZGUgJChTUkNUUkVFKS9ydWxlcy5taworCitzaW5jbHVkZSAkKG9iaikuZGVwZW5kCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL25hbmRfc3BsL2JvYXJkL2ZyZWVzY2FsZS9wMV9wMl9yZGIvbmFuZF9ib290LmMgYi9uYW5kX3NwbC9ib2FyZC9mcmVlc2NhbGUvcDFfcDJfcmRiL25hbmRfYm9vdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkNTEzYjgKLS0tIC9kZXYvbnVsbAorKysgYi9uYW5kX3NwbC9ib2FyZC9mcmVlc2NhbGUvcDFfcDJfcmRiL25hbmRfYm9vdC5jCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwOSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCisgKgorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICoKKyAqLworI2luY2x1ZGUgPGNvbW1vbi5oPgorI2luY2x1ZGUgPG1wYzg1eHguaD4KKyNpbmNsdWRlIDxhc20tcHBjL2lvLmg+CisjaW5jbHVkZSA8bnMxNjU1MC5oPgorI2luY2x1ZGUgPG5hbmQuaD4KKyNpbmNsdWRlIDxhc20vbW11Lmg+CisjaW5jbHVkZSA8YXNtL2ltbWFwXzg1eHguaD4KKyNpbmNsdWRlIDxhc20vZnNsX2Rkcl9zZHJhbS5oPgorI2luY2x1ZGUgPGFzbS9mc2xfbGF3Lmg+CisKKyNkZWZpbmUgU1lTQ0xLX01BU0sgICAgIDB4MDAyMDAwMDAKKyNkZWZpbmUgQk9BUkRSRVZfTUFTSyAgIDB4MTAxMDAwMDAKKyNkZWZpbmUgQk9BUkRSRVZfQiAgICAgIDB4MTAxMDAwMDAKKyNkZWZpbmUgQk9BUkRSRVZfQyAgICAgIDB4MDAxMDAwMDAKKworI2RlZmluZSBTWVNDTEtfNjYgICAgICAgNjY2NjY2NjYKKyNkZWZpbmUgU1lTQ0xLXzUwICAgICAgIDUwMDAwMDAwCisjZGVmaW5lIFNZU0NMS18xMDAgICAgICAxMDAwMDAwMDAKKworREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CisKK3ZvaWQgYm9hcmRfaW5pdF9mKHVsb25nIGJvb3RmbGFnKQoreworCXVpbnQgcGxhdF9yYXRpbywgYnVzX2Nsaywgc3lzX2NsazsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2dwaW9fdCAqcGdwaW8gPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1BJT19BRERSKTsKKwl1aW50IHZhbCwgdGVtcCwgc3lzY2xrX21hc2s7CisKKwl2YWwgPSBwZ3Bpby0+Z3BkYXQ7CisJc3lzY2xrX21hc2sgPSB2YWwgJiBTWVNDTEtfTUFTSzsKKwl0ZW1wID0gdmFsICYgQk9BUkRSRVZfTUFTSzsKKwlpZiAodGVtcCA9PSBCT0FSRFJFVl9DKSB7CisJCWlmKHN5c2Nsa19tYXNrID09IDApCisJCQlzeXNfY2xrID0gU1lTQ0xLXzY2OworCQllbHNlCisJCQlzeXNfY2xrID0gU1lTQ0xLXzEwMDsKKwl9IGVsc2UgaWYgKHRlbXAgPT0gQk9BUkRSRVZfQikgeworCQlpZihzeXNjbGtfbWFzayA9PSAwKQorCQkJc3lzX2NsayA9IFNZU0NMS182NjsKKwkJZWxzZQorCQkJc3lzX2NsayA9IFNZU0NMS181MDsKKwl9CisKKwlwbGF0X3JhdGlvID0gZ3VyLT5wb3JwbGxzciAmIDB4MDAwMDAwM2U7CisJcGxhdF9yYXRpbyA+Pj0gMTsKKwlidXNfY2xrID0gcGxhdF9yYXRpbyAqIHN5c19jbGs7CisJTlMxNjU1MF9pbml0KChOUzE2NTUwX3QpQ09ORklHX1NZU19OUzE2NTUwX0NPTTEsCisJCQlidXNfY2xrIC8gMTYgLyBDT05GSUdfQkFVRFJBVEUpOworCisJcHV0cygiXG5OQU5EIGJvb3QuLi4gIik7CisKKwkvKiBjb3B5IGNvZGUgdG8gRERSIGFuZCBqdW1wIHRvIGl0IC0gdGhpcyBzaG91bGQgbm90IHJldHVybiAqLworCS8qIE5PVEUgLSBjb2RlIGhhcyB0byBiZSBjb3BpZWQgb3V0IG9mIE5BTkQgYnVmZmVyIGJlZm9yZQorCSAqIG90aGVyIGJsb2NrcyBjYW4gYmUgcmVhZC4KKwkgKi8KKwlyZWxvY2F0ZV9jb2RlKENPTkZJR19TWVNfTkFORF9VX0JPT1RfUkVMT0NfU1AsIDAsCisJCQlDT05GSUdfU1lTX05BTkRfVV9CT09UX1JFTE9DKTsKK30KKwordm9pZCBib2FyZF9pbml0X3IoZ2RfdCAqZ2QsIHVsb25nIGRlc3RfYWRkcikKK3sKKwluYW5kX2Jvb3QoKTsKK30KKwordm9pZCBwdXRjKGNoYXIgYykKK3sKKwlpZiAoYyA9PSAnXG4nKQorCQlOUzE2NTUwX3B1dGMoKE5TMTY1NTBfdClDT05GSUdfU1lTX05TMTY1NTBfQ09NMSwgJ1xyJyk7CisKKwlOUzE2NTUwX3B1dGMoKE5TMTY1NTBfdClDT05GSUdfU1lTX05TMTY1NTBfQ09NMSwgYyk7Cit9CisKK3ZvaWQgcHV0cyhjb25zdCBjaGFyICpzdHIpCit7CisJd2hpbGUgKCpzdHIpCisJCXB1dGMoKnN0cisrKTsKK30KZGlmZiAtLWdpdCBhL3Rvb2xzL01ha2VmaWxlIGIvdG9vbHMvTWFrZWZpbGUKaW5kZXggYjA0ZTNmMy4uMmE5YTlmZDEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL01ha2VmaWxlCisrKyBiL3Rvb2xzL01ha2VmaWxlCkBAIC02OSwxMyArNjksNyBAQAogQklOX0ZJTEVTLSQoQ09ORklHX0xDRF9MT0dPKSArPSBibXBfbG9nbyQoU0ZYKQogQklOX0ZJTEVTLSQoQ09ORklHX1ZJREVPX0xPR08pICs9IGJtcF9sb2dvJChTRlgpCiBCSU5fRklMRVMtJChDT05GSUdfRU5WX0lTX0VNQkVEREVEKSArPSBlbnZjcmMkKFNGWCkKLUJJTl9GSUxFUy0kKENPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNIKSArPSBlbnZjcmMkKFNGWCkKLUJJTl9GSUxFUy0kKENPTkZJR19FTlZfSVNfSU5fRUVQUk9NKSArPSBlbnZjcmMkKFNGWCkKLUJJTl9GSUxFUy0kKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpICs9IGVudmNyYyQoU0ZYKQotQklOX0ZJTEVTLSQoQ09ORklHX0VOVl9JU19JTl9PTkVOQU5EKSArPSBlbnZjcmMkKFNGWCkKLUJJTl9GSUxFUy0kKENPTkZJR19FTlZfSVNfSU5fTkFORCkgKz0gZW52Y3JjJChTRlgpCi1CSU5fRklMRVMtJChDT05GSUdfRU5WX0lTX0lOX05WUkFNKSArPSBlbnZjcmMkKFNGWCkKLUJJTl9GSUxFUy0kKENPTkZJR19FTlZfSVNfSU5fU1BJX0ZMQVNIKSArPSBlbnZjcmMkKFNGWCkKK0JJTl9GSUxFUy0kKENPTkZJR19CVUlMRF9FTlZDUkMpICs9IGVudmNyYyQoU0ZYKQogQklOX0ZJTEVTLSQoQ09ORklHX0NNRF9ORVQpICs9IGdlbl9ldGhfYWRkciQoU0ZYKQogQklOX0ZJTEVTLSQoQ09ORklHX0NNRF9MT0FEUykgKz0gaW1nMnNyZWMkKFNGWCkKIEJJTl9GSUxFUy0kKENPTkZJR19JTkNBX0lQKSArPSBpbmNhLXN3YXAtYnl0ZXMkKFNGWCkKQEAgLTk1LDYgKzg5LDcgQEAKIE9CSl9GSUxFUy0kKENPTkZJR19WSURFT19MT0dPKSArPSBibXBfbG9nby5vCiBPQkpfRklMRVMteSArPSBkZWZhdWx0X2ltYWdlLm8KIE9CSl9GSUxFUy0kKENPTkZJR19FTlZfSVNfRU1CRURERUQpICs9IGVudmNyYy5vCitPQkpfRklMRVMtJChDT05GSUdfQlVJTERfRU5WQ1JDKSArPSBlbnZjcmMubwogT0JKX0ZJTEVTLXkgKz0gZml0X2ltYWdlLm8KIE9CSl9GSUxFUy0kKENPTkZJR19DTURfTkVUKSArPSBnZW5fZXRoX2FkZHIubwogT0JKX0ZJTEVTLSQoQ09ORklHX0NNRF9MT0FEUykgKz0gaW1nMnNyZWMubwpkaWZmIC0tZ2l0IGEvdG9vbHMvZW52Y3JjLmMgYi90b29scy9lbnZjcmMuYwppbmRleCA1YjBmN2NkLi5kMWU4NGIzIDEwMDY0NAotLS0gYS90b29scy9lbnZjcmMuYworKysgYi90b29scy9lbnZjcmMuYwpAQCAtMjEsNiArMjEsNyBAQAogICogTUEgMDIxMTEtMTMwNyBVU0EKICAqLwogCisjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNTAsMTAgKzUxLDYgQEAKICMgaWYgZGVmaW5lZChDT05GSUdfRU5WX0FERFJfUkVEVU5EKSAmJiAhZGVmaW5lZChDT05GSUdfRU5WX1NJWkVfUkVEVU5EKQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJQ09ORklHX0VOVl9TSVpFCiAjIGVuZGlmCi0jIGlmIChDT05GSUdfRU5WX0FERFIgPj0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpICYmIFwKLSAgICAgKChDT05GSUdfRU5WX0FERFIgKyBDT05GSUdfRU5WX1NJWkUpIDw9IChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pKQotIyAgZGVmaW5lIEVOVl9JU19FTUJFRERFRAkxCi0jIGVuZGlmCiAjIGlmIGRlZmluZWQoQ09ORklHX0VOVl9BRERSX1JFRFVORCkgfHwgZGVmaW5lZChDT05GSUdfRU5WX09GRlNFVF9SRURVTkQpCiAjICBkZWZpbmUgQ09ORklHX1NZU19SRURVTkRBTkRfRU5WSVJPTk1FTlQJMQogIyBlbmRpZgpAQCAtNzAsMTQgKzY3LDExIEBACiAKIGV4dGVybiB1aW50MzJfdCBjcmMzMiAodWludDMyX3QsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgaW50KTsKIAotI2lmZGVmCUVOVl9JU19FTUJFRERFRAogZXh0ZXJuIHVuc2lnbmVkIGludCBlbnZfc2l6ZTsKIGV4dGVybiB1bnNpZ25lZCBjaGFyIGVudmlyb25tZW50OwotI2VuZGlmCS8qIEVOVl9JU19FTUJFRERFRCAqLwogCiBpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewotI2lmZGVmCUVOVl9JU19FTUJFRERFRAogCXVuc2lnbmVkIGNoYXIgcGFkID0gMHgwMDsKIAl1aW50MzJfdCBjcmM7CiAJdW5zaWduZWQgY2hhciAqZW52cHRyID0gJmVudmlyb25tZW50LApAQCAtMTIxLDcgKzExNSw4IEBACiAJCQl9CiAJCQlmb3IgKGkgPSBzdGFydDsgaSAhPSBlbmQ7IGkgKz0gc3RlcCkKIAkJCQlwcmludGYoIiVjIiwgKGNyYyAmICgweEZGIDw8IChpICogOCkpKSA+PiAoaSAqIDgpKTsKLQkJCWZ3cml0ZShkYXRhcHRyLCAxLCBkYXRhc2l6ZSwgc3Rkb3V0KTsKKwkJCWlmIChmd3JpdGUoZGF0YXB0ciwgMSwgZGF0YXNpemUsIHN0ZG91dCkgIT0gZGF0YXNpemUpCisJCQkJZnByaW50ZihzdGRlcnIsICJmd3JpdGUoKSBmYWlsZWQ6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwogCQl9IGVsc2UgewogCQkJcHJpbnRmKCJDUkMzMiBmcm9tIG9mZnNldCAlMDhYIHRvICUwOFggb2YgZW52aXJvbm1lbnQgPSAlMDhYXG4iLAogCQkJCSh1bnNpZ25lZCBpbnQpIChkYXRhcHRyIC0gZW52cHRyKSwKQEAgLTEzMSw4ICsxMjYsNiBAQAogCX0gZWxzZSB7CiAJCXByaW50ZiAoIjB4JTA4WFxuIiwgY3JjKTsKIAl9Ci0jZWxzZQotCXByaW50ZiAoIjBcbiIpOwotI2VuZGlmCisKIAlyZXR1cm4gRVhJVF9TVUNDRVNTOwogfQo=