From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] snapshot: 16.1.1-1 Date: Thu, 04 Jun 2026 14:12:11 GMT Message-ID: <178058233105.1.4534700988824346721.rpms-gcc-63cc611a9c9b@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: snapshot X-Git-Rev: 63cc611a9c9bddcaf59df0341bc326f9f209a807 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHNuYXBzaG90CkNvbW1pdCA6IDYzY2M2MTFhOWM5YmRkY2FmNTlkZjAzNDFiYzMyNmY5ZjIwOWE4 MDcKQXV0aG9yIDogSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4KRGF0ZSAgIDogMjAy Ni0wNS0wMVQxNzo0MTowOCswMjowMApTdGF0cyAgOiArMzIvLTE1ODUgaW4gOSBmaWxlKHMpClVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2NjL2MvNjNjYzYxMWE5 YzliZGRjYWY1OWRmMDM0MWJjMzI2ZjlmMjA5YTgwNz9icmFuY2g9c25hcHNob3QKCkxvZzoKMTYu MS4xLTEKCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggZDVm ODIxYS4uZmU2NWJhZSAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBA IC0zOSwzICszOSw0IEBACiAvZ2NjLTE2LjAuMS0yMDI2MDMyMS50YXIueHoKIC9nY2MtMTYuMC4x LTIwMjYwNDE2LnRhci54egogL252cHR4LXRvb2xzLTIxMmRhMmU3ODFlZDBmOTQyMzgyNGU4NWVi MDQ4MTk5NTg1MTNmN2EudGFyLnh6CisvZ2NjLTE2LjEuMS0yMDI2MDUwMS50YXIueHoKCmRpZmYg LS1naXQgYS9nY2Muc3BlYyBiL2djYy5zcGVjCmluZGV4IGMxN2RmYzkuLjA1OThjNGYgMTAwNjQ0 Ci0tLSBhL2djYy5zcGVjCisrKyBiL2djYy5zcGVjCkBAIC0xLDEzICsxLDE0IEBACi0lZ2xvYmFs IERBVEUgMjAyNjA0MTYKLSVnbG9iYWwgZ2l0cmV2IDFjZTAzMWJmYTg0YjY5NzM2ZTIwOWZiZTc0 NDZiZjI3MWUyZjQ5ZDMKLSVnbG9iYWwgZ2NjX3ZlcnNpb24gMTYuMC4xCislZ2xvYmFsIERBVEUg MjAyNjA1MDEKKyVnbG9iYWwgZ2l0cmV2IGY0ZTY4ZGMzYmRjOGYxYzVkMjAyZGI5MmM4YzdiY2Q4 OWM2Mzg2ODgKKyVnbG9iYWwgZ2NjX3ZlcnNpb24gMTYuMS4xCiAlZ2xvYmFsIGdjY19tYWpvciAx NgogIyBOb3RlLCBnY2NfcmVsZWFzZSBtdXN0IGJlIGludGVnZXIsIGlmIHlvdSB3YW50IHRvIGFk ZCBzdWZmaXhlcyB0bwogIyAlJXtyZWxlYXNlfSwgYXBwZW5kIHRoZW0gYWZ0ZXIgJSV7Z2NjX3Jl bGVhc2V9IG9uIFJlbGVhc2U6IGxpbmUuCi0lZ2xvYmFsIGdjY19yZWxlYXNlIDAKKyVnbG9iYWwg Z2NjX3JlbGVhc2UgMQogJWdsb2JhbCBudnB0eF90b29sc19naXRyZXYgMjEyZGEyZTc4MWVkMGY5 NDIzODI0ZTg1ZWIwNDgxOTk1ODUxM2Y3YQogJWdsb2JhbCBuZXdsaWJfY3lnd2luX2dpdHJldiBk MzVjYzgyYjVlYzE1YmI4YTVmZTBmZTExZTE4M2QxODg3OTkyZTk5CiAlZ2xvYmFsIF91bnBhY2th Z2VkX2ZpbGVzX3Rlcm1pbmF0ZV9idWlsZCAwCislZ2xvYmFsIF9maW5kX2RlYnVnaW5mb19vcHRz IC0ta2VlcC1zZWN0aW9uIC5hNjhfZXhwb3J0cwogJWlmIDAlez9mZWRvcmE6MX0KICVnbG9iYWwg X3BlcmZvcm1hbmNlX2J1aWxkIDEKICMgSGFyZGVuaW5nIHNsb3dzIHRoZSBjb21waWxlciB3YXkg dG9vIG11Y2guCkBAIC0xNTgsNyArMTU5LDcgQEAKIFN1bW1hcnk6IFZhcmlvdXMgY29tcGlsZXJz IChDLCBDKyssIE9iamVjdGl2ZS1DLCAuLi4pCiBOYW1lOiBnY2MKIFZlcnNpb246ICV7Z2NjX3Zl cnNpb259Ci1SZWxlYXNlOiAle2djY19yZWxlYXNlfS4xMSV7P2Rpc3R9CitSZWxlYXNlOiAle2dj Y19yZWxlYXNlfSV7P2Rpc3R9CiAjIExpY2Vuc2Ugbm90ZXMgZm9yIHNvbWUgb2YgdGhlIGxlc3Mg b2J2aW91cyBvbmVzOgogIyAgIGdjYy9kb2MvY3BwaW50ZXJuYWxzLnRleGk6IExpbnV4LW1hbi1w YWdlcy1jb3B5bGVmdC0yLXBhcmEKICMgICBpc2w6IE1JVCwgQlNELTItQ2xhdXNlCkBAIC0zMjIs MTEgKzMyMyw2IEBAIFBhdGNoOTogZ2NjMTYtV25vLWZvcm1hdC1zZWN1cml0eS5wYXRjaAogUGF0 Y2gxMDogZ2NjMTYtcmgxNTc0OTM2LnBhdGNoCiBQYXRjaDExOiBnY2MxNi1kLXNoYXJlZC1saWJw aG9ib3MucGF0Y2gKIFBhdGNoMTI6IGdjYzE2LXByMTE5MDA2LnBhdGNoCi1QYXRjaDEzOiBnY2Mx Ni11Z2xpZmljYXRpb24ucGF0Y2gKLVBhdGNoMTQ6IGdjYzE2LXVnbGlmaWNhdGlvbjIucGF0Y2gK LVBhdGNoMTU6IGdjYzE2LW1vZHVsZS1leHBvcnRzLnBhdGNoCi1QYXRjaDE2OiBnY2MxNi1iaXRp bnQtdGVzdHMucGF0Y2gKLVBhdGNoMTc6IGdjYzE2LXByMTI0MjY4LnBhdGNoCiAKIFBhdGNoNTA6 IGlzbC1yaDIxNTUxMjcucGF0Y2gKIApAQCAtMzk3Nyw2ICszOTczLDI4IEBAIGVuZAogJWVuZGlm CiAKICVjaGFuZ2Vsb2cKKyogRnJpIE1heSAgMSAyMDI2IEpha3ViIEplbGluZWsgPGpha3ViQHJl ZGhhdC5jb20+IDE2LjEuMS0xCistIHVwZGF0ZSBmcm9tIHRydW5rIGFuZCByZWxlYXNlcy9nY2Mt MTYgYnJhbmNoCisgIC0gR0NDIDE2LjEuMCByZWxlYXNlCisgIC0gUFJzIGFkYS8xMDczOTEsIGFk YS8xMDczOTIsIGFkYS8xMjQ5MTgsIGFkYS8xMjUwNDQsIGMvODQ3MTcsIGMrKy8xMjA1MDIsCisJ YysrLzEyMzg3OSwgYysrLzEyNDU4MiwgYysrLzEyNDYzMiwgYysrLzEyNDcwNiwgYysrLzEyNDc1 NiwKKwljKysvMTI0ODU1LCBjKysvMTI0OTEwLCBjKysvMTI0OTI2LCBjKysvMTI0OTI3LCBjKysv MTI0OTQ0LAorCWMrKy8xMjQ5NTAsIGMrKy8xMjQ5NTMsIGMrKy8xMjQ5NzMsIGMrKy8xMjQ5ODEs IGMrKy8xMjQ5ODksCisJYysrLzEyNTAzNSwgYysrLzEyNTA5NiwgY29ib2wvMTE5ODE4LCBkLzEy MzQxMSwgZC8xMjQxNTcsIGQvMTI0OTIyLAorCWZvcnRyYW4vNjM4NTgsIGZvcnRyYW4vOTMzMjks IGZvcnRyYW4vOTM0NjMsIGZvcnRyYW4vMTA4MzgyLAorCWZvcnRyYW4vMTE3MDc3LCBmb3J0cmFu LzEyMDQzMSwgaXBhLzEyMDA5OCwgbGliZm9ydHJhbi8xMjA0MzEsCisJbGlic3RkYysrLzExMjQ5 MCwgbGlic3RkYysrLzExOTcxNCwgbGlic3RkYysrLzEyNDQxMCwKKwlsaWJzdGRjKysvMTI0NTQw LCBsaWJzdGRjKysvMTI0ODkwLCBsaWJzdGRjKysvMTI1MDI0LAorCWxpYnN0ZGMrKy8xMjUxMTIs IG1pZGRsZS1lbmQvOTU1NTEsIG1pZGRsZS1lbmQvMTIyMDIxLAorCW1pZGRsZS1lbmQvMTI0OTAw LCBtaWRkbGUtZW5kLzEyNDk3MSwgbW9kdWxhMi8xMjAxODksCisJcHJlcHJvY2Vzc29yLzEyNDkz MCwgcnRsLW9wdGltaXphdGlvbi8xMjQ2NDMsIHNhbml0aXplci8xMjQyNDgsCisJc2FuaXRpemVy LzEyNDk2OSwgdGFyZ2V0LzEwMzM4MywgdGFyZ2V0LzEyNDEzMywgdGFyZ2V0LzEyNDkzMywKKwl0 YXJnZXQvMTI0OTU5LCB0YXJnZXQvMTI0OTg0LCB0YXJnZXQvMTI1MTE3LCB0ZXN0c3VpdGUvMTI0 NjgyLAorCXRlc3RzdWl0ZS8xMjQ5MzksIHRyZWUtb3B0aW1pemF0aW9uLzExNjQ2MywgdHJlZS1v cHRpbWl6YXRpb24vMTI0OTA5LAorCXRyZWUtb3B0aW1pemF0aW9uLzEyNDk0MSwgdHJlZS1vcHRp bWl6YXRpb24vMTI0OTg4LAorCXRyZWUtb3B0aW1pemF0aW9uLzEyNTAxOSwgdHJlZS1vcHRpbWl6 YXRpb24vMTI1MDM5LAorCXRyZWUtb3B0aW1pemF0aW9uLzEyNTA3OQorCiAqIFRodSBBcHIgMTYg MjAyNiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiAxNi4wLjEtMC4xMQogLSB1cGRh dGUgZnJvbSB0cnVuawogICAtIFBScyBhZGEvNzc1MzUsIGFkYS84NzE3MCwgYWRhLzk1NDUyLCBh ZGEvMTA1MjEyLCBhZGEvMTI0NTk2LCBhZGEvMTI0NjA2LAoKZGlmZiAtLWdpdCBhL2djYzE2LWJp dGludC10ZXN0cy5wYXRjaCBiL2djYzE2LWJpdGludC10ZXN0cy5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggOTJiNjBmMC4uMDAwMDAwMAotLS0gYS9nY2MxNi1iaXRpbnQtdGVz dHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMzggKzAsMCBAQAotLS0tIGdjYy90ZXN0c3Vp dGUvZ2NjLmRnL2JpdGludGV4dC5oLmpqCTIwMjYtMDQtMTUgMTc6MjA6NTcuMzAxODk2NDU0ICsw MjAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYml0aW50ZXh0LmgJMjAyNi0wNC0xNiAxOToy Mjo1Mi4zMDMxMzkzMDEgKzAyMDAKLUBAIC0xNiw3ICsxNiw3IEBAIGRvX2NvcHkgKHZvaWQgKnAs IGNvbnN0IHZvaWQgKnEsIF9fU0laRV8KLSAjZGVmaW5lIENFSUwoeCx5KSAoKCh4KSArICh5KSAt IDEpIC8gKHkpKQotIAotIC8qIFByb21vdGUgYSBfQml0SW50IHR5cGUgdG8gaW5jbHVkZSBpdHMg cGFkZGluZyBiaXRzLiAgKi8KLS0jaWYgZGVmaW5lZCAoX19zMzkweF9fKSB8fCBkZWZpbmVkKF9f YXJtX18pIHx8IGRlZmluZWQoX19yaXNjdl9fKQotKyNpZiBkZWZpbmVkIChfX3MzOTB4X18pIHx8 IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Jpc2N2KQotICNkZWZpbmUgUFJPTU9URURf U0laRSh4KSBzaXplb2YgKHgpCi0gI2VsaWYgZGVmaW5lZChfX2xvb25nYXJjaF9fKQotICNkZWZp bmUgUFJPTU9URURfU0laRSh4KSAoc2l6ZW9mICh4KSA+IDggPyBDRUlMIChTICh4KSwgNjQpICog OCA6IHNpemVvZiAoeCkpCi1AQCAtMjUsNyArMjUsNyBAQCBkb19jb3B5ICh2b2lkICpwLCBjb25z dCB2b2lkICpxLCBfX1NJWkVfCi0gLyogTWFjcm8gdG8gdGVzdCB3aGV0aGVyIChvbiB0YXJnZXRz IHdoZXJlIHBzQUJJIHJlcXVpcmVzIGl0KSBfQml0SW50Ci0gICAgd2l0aCBwYWRkaW5nIGJpdHMg aGF2ZSB0aG9zZSBmaWxsZWQgd2l0aCBzaWduIG9yIHplcm8gZXh0ZW5zaW9uLiAgKi8KLSAjaWYg ZGVmaW5lZChfX3MzOTB4X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2xvb25n YXJjaF9fKSBcCi0tICAgIHx8IGRlZmluZWQoX19yaXNjdl9fKQotKyAgICB8fCBkZWZpbmVkKF9f cmlzY3YpCi0gI2RlZmluZSBCRVhUQzEoeCwgdW5zKSBcCi0gICBkbyB7CQkJCQkJCSAgXAotICAg ICB1bnMgX0JpdEludChQUk9NT1RFRF9TSVpFICh4KSAqIF9fQ0hBUl9CSVRfXykgX194OwkgIFwK LS0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy90b3J0dXJlL2JpdGludC04Ni5jLmpqCTIwMjYtMDQt MTUgMTc6MjA6NTcuMzAyMDk5OTU3ICswMjAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdG9y dHVyZS9iaXRpbnQtODYuYwkyMDI2LTA0LTE2IDE4OjI3OjAxLjIyODc2NDM4NyArMDIwMAotQEAg LTEsNiArMSw1IEBACi0gLyogUFIgbWlkZGxlLWVuZC8xMjM2MzUgKi8KLSAvKiB7IGRnLWRvIHJ1 biB7IHRhcmdldCBiaXRpbnQgfSB9ICovCi0tLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJn ZXQgc3luY19jaGFyX3Nob3J0IH0gKi8KLSAvKiB7IGRnLW9wdGlvbnMgIi1zdGQ9YzIzIC1wZWRh bnRpYy1lcnJvcnMiIH0gKi8KLSAvKiB7IGRnLXNraXAtaWYgIiIgeyAhIHJ1bl9leHBlbnNpdmVf dGVzdHMgfSAgeyAiKiIgfSB7ICItTzAiICItTzIiIH0gfSAqLwotIC8qIHsgZGctc2tpcC1pZiAi IiB7ICEgcnVuX2V4cGVuc2l2ZV90ZXN0cyB9IHsgIi1mbHRvIiB9IHsgIiIgfSB9ICovCi0tLS0g Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdG9ydHVyZS9iaXRpbnQtODcuYy5qagkyMDI2LTA0LTE1IDE3 OjIwOjU3LjMwMjE4NjIwNCArMDIwMAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3RvcnR1cmUv Yml0aW50LTg3LmMJMjAyNi0wNC0xNiAxODoyNzowNi4yMTM2ODE5MDEgKzAyMDAKLUBAIC0xLDYg KzEsNSBAQAotIC8qIFBSIG1pZGRsZS1lbmQvMTIzNjM1ICovCi0gLyogeyBkZy1kbyBydW4geyB0 YXJnZXQgYml0aW50IH0gfSAqLwotLS8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHN5 bmNfY2hhcl9zaG9ydCB9ICovCi0gLyogeyBkZy1vcHRpb25zICItc3RkPWMyMyAtcGVkYW50aWMt ZXJyb3JzIiB9ICovCi0gLyogeyBkZy1za2lwLWlmICIiIHsgISBydW5fZXhwZW5zaXZlX3Rlc3Rz IH0gIHsgIioiIH0geyAiLU8wIiAiLU8yIiB9IH0gKi8KLSAvKiB7IGRnLXNraXAtaWYgIiIgeyAh IHJ1bl9leHBlbnNpdmVfdGVzdHMgfSB7ICItZmx0byIgfSB7ICIiIH0gfSAqLwotLS0tIGdjYy90 ZXN0c3VpdGUvZ2NjLmRnL3RvcnR1cmUvYml0aW50LTg4LmMuamoJMjAyNi0wNC0xNiAxNzoyNjoy NC41MzE5ODE5NzcgKzAyMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy90b3J0dXJlL2JpdGlu dC04OC5jCTIwMjYtMDQtMTYgMTg6Mjc6MTEuMTk2NTk5NDQyICswMjAwCi1AQCAtMCwwICsxLDk1 IEBACi0rLyogUFIgbWlkZGxlLWVuZC8xMjM2MzUgKi8KLSsvKiB7IGRnLWRvIHJ1biB7IHRhcmdl dCBiaXRpbnQgfSB9ICovCi0rLyogeyBkZy1vcHRpb25zICItc3RkPWMyMyAtcGVkYW50aWMtZXJy b3JzIiB9ICovCi0rLyogeyBkZy1za2lwLWlmICIiIHsgISBydW5fZXhwZW5zaXZlX3Rlc3RzIH0g IHsgIioiIH0geyAiLU8wIiAiLU8yIiB9IH0gKi8KLSsvKiB7IGRnLXNraXAtaWYgIiIgeyAhIHJ1 bl9leHBlbnNpdmVfdGVzdHMgfSB7ICItZmx0byIgfSB7ICIiIH0gfSAqLwotKwotKyNpZiBfX0JJ VElOVF9NQVhXSURUSF9fID49IDEwMjUKLSt1bnNpZ25lZCBfQml0SW50KDUxMykgYSwgYiwgYywg ZDsKLStfQml0SW50KDUxMykgZSwgZiwgZywgaDsKLSt1bnNpZ25lZCBfQml0SW50KDEwMjUpIGks IGosIGssIGw7Ci0rX0JpdEludCgxMDI1KSBtLCBuLCBvLCBwOwotKyNlbmRpZgotKwotKyNpbmNs dWRlICIuLi9iaXRpbnRleHQuaCIKLSsKLSsjaWYgX19CSVRJTlRfTUFYV0lEVEhfXyA+PSAxMDI1 Ci0rW1tnbnU6Om5vaXBhXV0gdm9pZAotK2YxIChfQml0SW50KDUxMykgcSwgX0JpdEludCg1MTMp IHIsIF9CaXRJbnQoNTEzKSBzLAotKyAgICB1bnNpZ25lZCBfQml0SW50KDUxMykgdCwgdW5zaWdu ZWQgX0JpdEludCg1MTMpIHUsIHVuc2lnbmVkIF9CaXRJbnQoNTEzKSB2KQotK3sKLSsgIGEgPSBx ICsgcjsKLSsgIEJFWFRDIChhKTsKLSsgIGIgPSByICsgczsKLSsgIEJFWFRDIChiKTsKLSsgIGMg PSBxIC0gcjsKLSsgIEJFWFRDIChjKTsKLSsgIGQgPSBxIC0gczsKLSsgIEJFWFRDIChkKTsKLSsg IGUgPSB0ICsgdTsKLSsgIEJFWFRDIChlKTsKLSsgIGYgPSB1ICsgdjsKLSsgIEJFWFRDIChmKTsK LSsgIGcgPSB0IC0gdTsKLSsgIEJFWFRDIChnKTsKLSsgIGggPSB0IC0gdjsKLSsgIEJFWFRDICho KTsKLSt9Ci0rCi0rW1tnbnU6Om5vaXBhXV0gdm9pZAotK2YyIChfQml0SW50KDUxMykgcSwgX0Jp dEludCg1MTMpIHIsIF9CaXRJbnQoNTEzKSBzLAotKyAgICB1bnNpZ25lZCBfQml0SW50KDUxMykg dCwgdW5zaWduZWQgX0JpdEludCg1MTMpIHUsIHVuc2lnbmVkIF9CaXRJbnQoNTEzKSB2KQotK3sK LSsgIGkgPSBxICsgcjsKLSsgIEJFWFRDIChpKTsKLSsgIGogPSByICsgczsKLSsgIEJFWFRDIChq KTsKLSsgIGsgPSBxIC0gcjsKLSsgIEJFWFRDIChrKTsKLSsgIGwgPSBxIC0gczsKLSsgIEJFWFRD IChsKTsKLSsgIG0gPSB0ICsgdTsKLSsgIEJFWFRDIChtKTsKLSsgIG4gPSB1ICsgdjsKLSsgIEJF WFRDIChuKTsKLSsgIG8gPSB0IC0gdTsKLSsgIEJFWFRDIChvKTsKLSsgIHAgPSB0IC0gdjsKLSsg IEJFWFRDIChwKTsKLSt9Ci0rI2VuZGlmCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsjaWYgX19C SVRJTlRfTUFYV0lEVEhfXyA+PSAxMDI1Ci0rICBfX2J1aWx0aW5fbWVtc2V0ICgmYSwgMHg1NSwg c2l6ZW9mIChhKSk7Ci0rICBfX2J1aWx0aW5fbWVtc2V0ICgmYiwgMHhhYSwgc2l6ZW9mIChiKSk7 Ci0rICBfX2J1aWx0aW5fbWVtc2V0ICgmYywgMHg1NSwgc2l6ZW9mIChjKSk7Ci0rICBfX2J1aWx0 aW5fbWVtc2V0ICgmZCwgMHhhYSwgc2l6ZW9mIChkKSk7Ci0rICBfX2J1aWx0aW5fbWVtc2V0ICgm ZSwgMHg1NSwgc2l6ZW9mIChlKSk7Ci0rICBfX2J1aWx0aW5fbWVtc2V0ICgmZiwgMHhhYSwgc2l6 ZW9mIChmKSk7Ci0rICBfX2J1aWx0aW5fbWVtc2V0ICgmZywgMHg1NSwgc2l6ZW9mIChnKSk7Ci0r ICBfX2J1aWx0aW5fbWVtc2V0ICgmaCwgMHhhYSwgc2l6ZW9mIChoKSk7Ci0rICBmMSAoLTI2Mzk2 MTYwODUxOTM0MTI2NzUwODk3MjcyNzIxMzAwMTk3NjU5ODQzOTgxMjcyNzg4NjE5OTgzNzgwNDU5 OTcxNzMyMTkzOTI4NjY4MzU5NDQ4Mjg0NTQ1NTk2NTQwNDcyNDcwNTk3NzM1NTY4NTI1OTM0NzE1 MzE0MzM0NTQ4MTA4MzEyOTgyNTk3ODU2MTEyODM1MzYyMDR3YiwKLSsgICAgICAtNzIzNDEyMTE5 MjQ5NTI5ODExMjcxMzkzNjI2ODcwMjA1NjIwNTkxNTUzNzgyNDY1ODMyMzgzOTI1NTIwNjE4ODQ1 Njk0NDk2NjcwOTc1MjIwNTc4MTQ0MDY4Mzc1Nzk0OTE2MTY0OTEyMzE1MjQyODYyMDYxOTk5NzAx NDIwOTA5ODE4MzY3NzMyODg0MDY0Nzg4NDcwMDMzMndiLAotKyAgICAgIDg2NTQyODM1NDkyMjcy MTk2NzY1Mzc0NTEzMjY1NzY5Mjk3Njg2MTQwMDE0MjczMjM1NjAzODM3MDUxMzEyMjM0OTg1MDU1 ODE5ODI3Mzg5NjQ4Nzk0Mzc1MjAwMjA0MzYwMTI4OTE2NDkwODM2NDY5NjU2NTEzNzg0MDczOTc0 MzY3ODU3NDk4NjAwMjM1NTM3Nzg2NDY4NjF3YiwKLSsgICAgICAxNTA0Njc0NTU5NDU1MDYxNzYx OTIwNTQyMjQ2NDIzMTgwNTEwOTExMDg4Mzg2NDU3ODI4OTAyNDQzOTA4MzUxNzg3MTgyMDU3ODE3 OTU1MzkyNzYxNTUzOTUyNjc5MTMxMzYzNDQzNzc4NzA4MTgxNDc2MzQzMjgwNDgwODAzODExNTM4 ODM2NzMzMTUyOTAzNTI0NjI0MDY1NXV3YiwKLSsgICAgICAyMDYzMzYzNzgyODcxNzgzNzA5NjE3 NDkxNzg3NDA4ODM5MTYwNzQ2NDI4MTY1NjgxODg2ODIxMzQ2ODk3MDc3Mzk5NDU5OTA2ODYwOTYx NzY3MzQzNjA4MDcyNTU2OTc4MDM0MDA1MDM1ODI5OTQxOTI1MjkyNjc3NTAyNTEzNjc3ODc1NDk3 MTcwMTU1MzExMDE2OTI4MTE1MXV3YiwKLSsgICAgICA1MTM2MTIyMDkwNDUxODk1MDM2MjIwNzY0 NzQ5OTUyMTY2MDYwODYzODMxMzk2NzE0MjcxMDQxNzk5Nzg2ODg5ODIwMzQxMTc3NjQ2NjQ3MTEy NzcwNzI3OTUwODM5MDI5NTE1NjQzNTg5OTg0OTgxMDk0MTIxNDIzMjIxMzg5MzM3NjAxNzM2Mjgy NTU2OTc0MzUyODQ3ODF1d2IpOwotKyAgX19idWlsdGluX21lbXNldCAoJmksIDB4NTUsIHNpemVv ZiAoaSkpOwotKyAgX19idWlsdGluX21lbXNldCAoJmosIDB4YWEsIHNpemVvZiAoaikpOwotKyAg X19idWlsdGluX21lbXNldCAoJmssIDB4NTUsIHNpemVvZiAoaykpOwotKyAgX19idWlsdGluX21l bXNldCAoJmwsIDB4YWEsIHNpemVvZiAobCkpOwotKyAgX19idWlsdGluX21lbXNldCAoJm0sIDB4 NTUsIHNpemVvZiAobSkpOwotKyAgX19idWlsdGluX21lbXNldCAoJm4sIDB4YWEsIHNpemVvZiAo bikpOwotKyAgX19idWlsdGluX21lbXNldCAoJm8sIDB4NTUsIHNpemVvZiAobykpOwotKyAgX19i dWlsdGluX21lbXNldCAoJnAsIDB4YWEsIHNpemVvZiAocCkpOwotKyAgZjIgKC0yNjM5NjE2MDg1 MTkzNDEyNjc1MDg5NzI3MjcyMTMwMDE5NzY1OTg0Mzk4MTI3Mjc4ODYxOTk4Mzc4MDQ1OTk3MTcz MjE5MzkyODY2ODM1OTQ0ODI4NDU0NTU5NjU0MDQ3MjQ3MDU5NzczNTU2ODUyNTkzNDcxNTMxNDMz NDU0ODEwODMxMjk4MjU5Nzg1NjExMjgzNTM2MjA0d2IsCi0rICAgICAgLTcyMzQxMjExOTI0OTUy OTgxMTI3MTM5MzYyNjg3MDIwNTYyMDU5MTU1Mzc4MjQ2NTgzMjM4MzkyNTUyMDYxODg0NTY5NDQ5 NjY3MDk3NTIyMDU3ODE0NDA2ODM3NTc5NDkxNjE2NDkxMjMxNTI0Mjg2MjA2MTk5OTcwMTQyMDkw OTgxODM2NzczMjg4NDA2NDc4ODQ3MDAzMzJ3YiwKLSsgICAgICA4NjU0MjgzNTQ5MjI3MjE5Njc2 NTM3NDUxMzI2NTc2OTI5NzY4NjE0MDAxNDI3MzIzNTYwMzgzNzA1MTMxMjIzNDk4NTA1NTgxOTgy NzM4OTY0ODc5NDM3NTIwMDIwNDM2MDEyODkxNjQ5MDgzNjQ2OTY1NjUxMzc4NDA3Mzk3NDM2Nzg1 NzQ5ODYwMDIzNTUzNzc4NjQ2ODYxd2IsCi0rICAgICAgMTUwNDY3NDU1OTQ1NTA2MTc2MTkyMDU0 MjI0NjQyMzE4MDUxMDkxMTA4ODM4NjQ1NzgyODkwMjQ0MzkwODM1MTc4NzE4MjA1NzgxNzk1NTM5 Mjc2MTU1Mzk1MjY3OTEzMTM2MzQ0Mzc3ODcwODE4MTQ3NjM0MzI4MDQ4MDgwMzgxMTUzODgzNjcz MzE1MjkwMzUyNDYyNDA2NTV1d2IsCi0rICAgICAgMjA2MzM2Mzc4Mjg3MTc4MzcwOTYxNzQ5MTc4 NzQwODgzOTE2MDc0NjQyODE2NTY4MTg4NjgyMTM0Njg5NzA3NzM5OTQ1OTkwNjg2MDk2MTc2NzM0 MzYwODA3MjU1Njk3ODAzNDAwNTAzNTgyOTk0MTkyNTI5MjY3NzUwMjUxMzY3Nzg3NTQ5NzE3MDE1 NTMxMTAxNjkyODExNTF1d2IsCi0rICAgICAgNTEzNjEyMjA5MDQ1MTg5NTAzNjIyMDc2NDc0OTk1 MjE2NjA2MDg2MzgzMTM5NjcxNDI3MTA0MTc5OTc4Njg4OTgyMDM0MTE3NzY0NjY0NzExMjc3MDcy Nzk1MDgzOTAyOTUxNTY0MzU4OTk4NDk4MTA5NDEyMTQyMzIyMTM4OTMzNzYwMTczNjI4MjU1Njk3 NDM1Mjg0NzgxdXdiKTsKLSsjZW5kaWYKLSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdG9y dHVyZS9iaXRpbnQtODkuYy5qagkyMDI2LTA0LTE2IDE3OjM4OjI3LjM2NzA1MDAxMSArMDIwMAot KysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3RvcnR1cmUvYml0aW50LTg5LmMJMjAyNi0wNC0xNiAx ODoyNzoxNi44MDA1MDY3MDcgKzAyMDAKLUBAIC0wLDAgKzEsOTkgQEAKLSsvKiBQUiBtaWRkbGUt ZW5kLzEyMzYzNSAqLwotKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IGJpdGludCB9IH0gKi8KLSsv KiB7IGRnLW9wdGlvbnMgIi1zdGQ9YzIzIC1wZWRhbnRpYy1lcnJvcnMiIH0gKi8KLSsvKiB7IGRn LXNraXAtaWYgIiIgeyAhIHJ1bl9leHBlbnNpdmVfdGVzdHMgfSAgeyAiKiIgfSB7ICItTzAiICIt TzIiIH0gfSAqLwotKy8qIHsgZGctc2tpcC1pZiAiIiB7ICEgcnVuX2V4cGVuc2l2ZV90ZXN0cyB9 IHsgIi1mbHRvIiB9IHsgIiIgfSB9ICovCi0rCi0rI2lmIF9fQklUSU5UX01BWFdJRFRIX18gPj0g MTAyNQotK19CaXRJbnQoNTEzKSBhLCBiLCBjLCBkOwotK3Vuc2lnbmVkIF9CaXRJbnQoNTEzKSBl LCBmLCBnLCBoOwotK19CaXRJbnQoNTEzKSBpLCBqLCBrLCBsOwotK3Vuc2lnbmVkIF9CaXRJbnQo NTEzKSBtLCBuLCBvLCBwOwotKyNlbmRpZgotKwotKyNpbmNsdWRlICIuLi9iaXRpbnRleHQuaCIK LSsKLSsjaWYgX19CSVRJTlRfTUFYV0lEVEhfXyA+PSAxMDI1Ci0rW1tnbnU6Om5vaXBhXV0gdm9p ZAotK2YxIChfQml0SW50KDUxMykgcSwgX0JpdEludCg1MTMpIHIsIF9CaXRJbnQoNTEzKSBzLAot KyAgICB1bnNpZ25lZCBfQml0SW50KDUxMykgdCwgdW5zaWduZWQgX0JpdEludCg1MTMpIHUsIHVu c2lnbmVkIF9CaXRJbnQoNTEzKSB2LAotKyAgICBpbnQgeikKLSt7Ci0rICBhID0gcSA+PiAyMzsK LSsgIEJFWFRDIChhKTsKLSsgIGIgPSByIDw8IDIzOwotKyAgQkVYVEMgKGIpOwotKyAgYyA9IHIg Pj4gejsKLSsgIEJFWFRDIChjKTsKLSsgIGQgPSBzIDw8IHo7Ci0rICBCRVhUQyAoZCk7Ci0rICBl ID0gdCA+PiAyMzsKLSsgIEJFWFRDIChlKTsKLSsgIGYgPSB1IDw8IDIzOwotKyAgQkVYVEMgKGYp OwotKyAgZyA9IHQgPj4gejsKLSsgIEJFWFRDIChnKTsKLSsgIGggPSB2IDw8IHo7Ci0rICBCRVhU QyAoaCk7Ci0rfQotKwotK1tbZ251Ojpub2lwYV1dIHZvaWQKLStmMiAoX0JpdEludCg1MTMpIHEs IF9CaXRJbnQoNTEzKSByLCBfQml0SW50KDUxMykgcywKLSsgICAgdW5zaWduZWQgX0JpdEludCg1 MTMpIHQsIHVuc2lnbmVkIF9CaXRJbnQoNTEzKSB1LCB1bnNpZ25lZCBfQml0SW50KDUxMykgdiwK LSsgICAgaW50IHopCi0rewotKyAgaSA9IHEgPj4gNjc7Ci0rICBCRVhUQyAoaSk7Ci0rICBqID0g ciA8PCA2NzsKLSsgIEJFWFRDIChqKTsKLSsgIGsgPSBxID4+IHo7Ci0rICBCRVhUQyAoayk7Ci0r ICBsID0gcyA8PCB6OwotKyAgQkVYVEMgKGwpOwotKyAgbSA9IHQgPj4gNjc7Ci0rICBCRVhUQyAo bSk7Ci0rICBuID0gdSA8PCA2NzsKLSsgIEJFWFRDIChuKTsKLSsgIG8gPSB0ID4+IHo7Ci0rICBC RVhUQyAobyk7Ci0rICBwID0gdiA8PCB6OwotKyAgQkVYVEMgKHApOwotK30KLSsjZW5kaWYKLSsK LStpbnQKLSttYWluICgpCi0rewotKyNpZiBfX0JJVElOVF9NQVhXSURUSF9fID49IDEwMjUKLSsg IF9fYnVpbHRpbl9tZW1zZXQgKCZhLCAweDU1LCBzaXplb2YgKGEpKTsKLSsgIF9fYnVpbHRpbl9t ZW1zZXQgKCZiLCAweGFhLCBzaXplb2YgKGIpKTsKLSsgIF9fYnVpbHRpbl9tZW1zZXQgKCZjLCAw eDU1LCBzaXplb2YgKGMpKTsKLSsgIF9fYnVpbHRpbl9tZW1zZXQgKCZkLCAweGFhLCBzaXplb2Yg KGQpKTsKLSsgIF9fYnVpbHRpbl9tZW1zZXQgKCZlLCAweDU1LCBzaXplb2YgKGUpKTsKLSsgIF9f YnVpbHRpbl9tZW1zZXQgKCZmLCAweGFhLCBzaXplb2YgKGYpKTsKLSsgIF9fYnVpbHRpbl9tZW1z ZXQgKCZnLCAweDU1LCBzaXplb2YgKGcpKTsKLSsgIF9fYnVpbHRpbl9tZW1zZXQgKCZoLCAweGFh LCBzaXplb2YgKGgpKTsKLSsgIGYxICgtMjYzOTYxNjA4NTE5MzQxMjY3NTA4OTcyNzI3MjEzMDAx OTc2NTk4NDM5ODEyNzI3ODg2MTk5ODM3ODA0NTk5NzE3MzIxOTM5Mjg2NjgzNTk0NDgyODQ1NDU1 OTY1NDA0NzI0NzA1OTc3MzU1Njg1MjU5MzQ3MTUzMTQzMzQ1NDgxMDgzMTI5ODI1OTc4NTYxMTI4 MzUzNjIwNHdiLAotKyAgICAgIC03MjM0MTIxMTkyNDk1Mjk4MTEyNzEzOTM2MjY4NzAyMDU2MjA1 OTE1NTM3ODI0NjU4MzIzODM5MjU1MjA2MTg4NDU2OTQ0OTY2NzA5NzUyMjA1NzgxNDQwNjgzNzU3 OTQ5MTYxNjQ5MTIzMTUyNDI4NjIwNjE5OTk3MDE0MjA5MDk4MTgzNjc3MzI4ODQwNjQ3ODg0NzAw MzMyd2IsCi0rICAgICAgODY1NDI4MzU0OTIyNzIxOTY3NjUzNzQ1MTMyNjU3NjkyOTc2ODYxNDAw MTQyNzMyMzU2MDM4MzcwNTEzMTIyMzQ5ODUwNTU4MTk4MjczODk2NDg3OTQzNzUyMDAyMDQzNjAx Mjg5MTY0OTA4MzY0Njk2NTY1MTM3ODQwNzM5NzQzNjc4NTc0OTg2MDAyMzU1Mzc3ODY0Njg2MXdi LAotKyAgICAgIDE1MDQ2NzQ1NTk0NTUwNjE3NjE5MjA1NDIyNDY0MjMxODA1MTA5MTEwODgzODY0 NTc4Mjg5MDI0NDM5MDgzNTE3ODcxODIwNTc4MTc5NTUzOTI3NjE1NTM5NTI2NzkxMzEzNjM0NDM3 Nzg3MDgxODE0NzYzNDMyODA0ODA4MDM4MTE1Mzg4MzY3MzMxNTI5MDM1MjQ2MjQwNjU1dXdiLAot KyAgICAgIDIwNjMzNjM3ODI4NzE3ODM3MDk2MTc0OTE3ODc0MDg4MzkxNjA3NDY0MjgxNjU2ODE4 ODY4MjEzNDY4OTcwNzczOTk0NTk5MDY4NjA5NjE3NjczNDM2MDgwNzI1NTY5NzgwMzQwMDUwMzU4 Mjk5NDE5MjUyOTI2Nzc1MDI1MTM2Nzc4NzU0OTcxNzAxNTUzMTEwMTY5MjgxMTUxdXdiLAotKyAg ICAgIDUxMzYxMjIwOTA0NTE4OTUwMzYyMjA3NjQ3NDk5NTIxNjYwNjA4NjM4MzEzOTY3MTQyNzEw NDE3OTk3ODY4ODk4MjAzNDExNzc2NDY2NDcxMTI3NzA3Mjc5NTA4MzkwMjk1MTU2NDM1ODk5ODQ5 ODEwOTQxMjE0MjMyMjEzODkzMzc2MDE3MzYyODI1NTY5NzQzNTI4NDc4MXV3YiwKLSsgICAgICAx MjkpOwotKyAgX19idWlsdGluX21lbXNldCAoJmksIDB4NTUsIHNpemVvZiAoaSkpOwotKyAgX19i dWlsdGluX21lbXNldCAoJmosIDB4YWEsIHNpemVvZiAoaikpOwotKyAgX19idWlsdGluX21lbXNl dCAoJmssIDB4NTUsIHNpemVvZiAoaykpOwotKyAgX19idWlsdGluX21lbXNldCAoJmwsIDB4YWEs IHNpemVvZiAobCkpOwotKyAgX19idWlsdGluX21lbXNldCAoJm0sIDB4NTUsIHNpemVvZiAobSkp OwotKyAgX19idWlsdGluX21lbXNldCAoJm4sIDB4YWEsIHNpemVvZiAobikpOwotKyAgX19idWls dGluX21lbXNldCAoJm8sIDB4NTUsIHNpemVvZiAobykpOwotKyAgX19idWlsdGluX21lbXNldCAo JnAsIDB4YWEsIHNpemVvZiAocCkpOwotKyAgZjIgKDI2Mzk2MTYwODUxOTM0MTI2NzUwODk3Mjcy NzIxMzAwMTk3NjU5ODQzOTgxMjcyNzg4NjE5OTgzNzgwNDU5OTcxNzMyMTkzOTI4NjY4MzU5NDQ4 Mjg0NTQ1NTk2NTQwNDcyNDcwNTk3NzM1NTY4NTI1OTM0NzE1MzE0MzM0NTQ4MTA4MzEyOTgyNTk3 ODU2MTEyODM1MzYyMDR3YiwKLSsgICAgICAtNzIzNDEyMTE5MjQ5NTI5ODExMjcxMzkzNjI2ODcw MjA1NjIwNTkxNTUzNzgyNDY1ODMyMzgzOTI1NTIwNjE4ODQ1Njk0NDk2NjcwOTc1MjIwNTc4MTQ0 MDY4Mzc1Nzk0OTE2MTY0OTEyMzE1MjQyODYyMDYxOTk5NzAxNDIwOTA5ODE4MzY3NzMyODg0MDY0 Nzg4NDcwMDMzMndiLAotKyAgICAgIC04NjU0MjgzNTQ5MjI3MjE5Njc2NTM3NDUxMzI2NTc2OTI5 NzY4NjE0MDAxNDI3MzIzNTYwMzgzNzA1MTMxMjIzNDk4NTA1NTgxOTgyNzM4OTY0ODc5NDM3NTIw MDIwNDM2MDEyODkxNjQ5MDgzNjQ2OTY1NjUxMzc4NDA3Mzk3NDM2Nzg1NzQ5ODYwMDIzNTUzNzc4 NjQ2ODYxd2IsCi0rICAgICAgNTEzNjEyMjA5MDQ1MTg5NTAzNjIyMDc2NDc0OTk1MjE2NjA2MDg2 MzgzMTM5NjcxNDI3MTA0MTc5OTc4Njg4OTgyMDM0MTE3NzY0NjY0NzExMjc3MDcyNzk1MDgzOTAy OTUxNTY0MzU4OTk4NDk4MTA5NDEyMTQyMzIyMTM4OTMzNzYwMTczNjI4MjU1Njk3NDM1Mjg0Nzgx dXdiLAotKyAgICAgIDIwNjMzNjM3ODI4NzE3ODM3MDk2MTc0OTE3ODc0MDg4MzkxNjA3NDY0Mjgx NjU2ODE4ODY4MjEzNDY4OTcwNzczOTk0NTk5MDY4NjA5NjE3NjczNDM2MDgwNzI1NTY5NzgwMzQw MDUwMzU4Mjk5NDE5MjUyOTI2Nzc1MDI1MTM2Nzc4NzU0OTcxNzAxNTUzMTEwMTY5MjgxMTUxdXdi LAotKyAgICAgIDE1MDQ2NzQ1NTk0NTUwNjE3NjE5MjA1NDIyNDY0MjMxODA1MTA5MTEwODgzODY0 NTc4Mjg5MDI0NDM5MDgzNTE3ODcxODIwNTc4MTc5NTUzOTI3NjE1NTM5NTI2NzkxMzEzNjM0NDM3 Nzg3MDgxODE0NzYzNDMyODA0ODA4MDM4MTE1Mzg4MzY3MzMxNTI5MDM1MjQ2MjQwNjU1dXdiLAot KyAgICAgIDIxMSk7Ci0rI2VuZGlmCi0rfQoKZGlmZiAtLWdpdCBhL2djYzE2LWxpYnN0ZGMrKy1k b2NzLnBhdGNoIGIvZ2NjMTYtbGlic3RkYysrLWRvY3MucGF0Y2gKaW5kZXggN2QyZDM1Ny4uZjk3 MTYyNyAxMDA2NDQKLS0tIGEvZ2NjMTYtbGlic3RkYysrLWRvY3MucGF0Y2gKKysrIGIvZ2NjMTYt bGlic3RkYysrLWRvY3MucGF0Y2gKQEAgLTQsNyArNCw3IEBACiAgICAgICAgPGEgY2xhc3M9Imxp bmsiIGhyZWY9Imh0dHBzOi8vd3d3LmZzZi5vcmciIHRhcmdldD0iX3RvcCI+RlNGCiAgICAgICAg PC9hPgogICAgICA8L3A+PHA+Ci0rICAgICAgUmVsZWFzZSAxNi4wLjEKKysgICAgICBSZWxlYXNl IDE2LjEuMQogKyAgICA8L3A+PHA+CiAgICAgICAgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNv cHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCiAgICAgICAgZG9jdW1lbnQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uCkBAIC0xNyw3ICsxNyw3IEBA CiAgPC9wPjxwPgogLSAgVGhlIEFQSSBkb2N1bWVudGF0aW9uLCByZW5kZXJlZCBpbnRvIEhUTUws IGNhbiBiZSB2aWV3ZWQgb25saW5lCiArICBUaGUgQVBJIGRvY3VtZW50YXRpb24sIHJlbmRlcmVk IGludG8gSFRNTCwgY2FuIGJlIHZpZXdlZCBsb2NhbGx5Ci0rICA8YSBjbGFzcz0ibGluayIgaHJl Zj0iYXBpL2luZGV4Lmh0bWwiIHRhcmdldD0iX3RvcCI+Zm9yIHRoZSAxNi4wLjEgcmVsZWFzZTwv YT4sCisrICA8YSBjbGFzcz0ibGluayIgaHJlZj0iYXBpL2luZGV4Lmh0bWwiIHRhcmdldD0iX3Rv cCI+Zm9yIHRoZSAxNi4xLjEgcmVsZWFzZTwvYT4sCiArICBvbmxpbmUKICAgIDxhIGNsYXNzPSJs aW5rIiBocmVmPSJodHRwczovL2djYy5nbnUub3JnL29ubGluZWRvY3MvIiB0YXJnZXQ9Il90b3Ai PmZvciBlYWNoIEdDQyByZWxlYXNlPC9hPgogICAgYW5kCgpkaWZmIC0tZ2l0IGEvZ2NjMTYtbW9k dWxlLWV4cG9ydHMucGF0Y2ggYi9nY2MxNi1tb2R1bGUtZXhwb3J0cy5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDU4YzQyOS4uMDAwMDAwMAotLS0gYS9nY2MxNi1tb2R1bGUt ZXhwb3J0cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMxMiArMCwwIEBACi0yMDI2LTAzLTE5 ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCSogZysrLmRnL3BsdWdpbi9w bHVnaW4uZXhwOiBTZXQgUExVR0lOX0RFRkFVTFRfUkVQTy4gIEFkZAotCXNldCptb2R1bGUqZXhw b3J0cyogdG8gcGx1Z2luX3Rlc3RfbGlzdC4gIFJlbW92ZSAqLmdjbSBmaWxlcwotCWF0IHRoZSBz dGFydCBhbmQgZW5kLgotCSogZysrLmRnL3BsdWdpbi9zdGRfbW9kdWxlX2V4cG9ydHNfcGx1Z2lu LmNjOiBOZXcgZmlsZS4KLQkqIGcrKy5kZy9wbHVnaW4vc3RkLW1vZHVsZS1leHBvcnRzLWMrKzIw LkM6IE5ldyB0ZXN0LgotCSogZysrLmRnL3BsdWdpbi9zdGQtbW9kdWxlLWV4cG9ydHMtYysrMjMu QzogTmV3IHRlc3QuCi0JKiBnKysuZGcvcGx1Z2luL3N0ZC1tb2R1bGUtZXhwb3J0cy1jKysyNi5D OiBOZXcgdGVzdC4KLQotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi9wbHVnaW4uZXhw LmpqCTIwMjYtMDMtMTkgMTY6MjA6MDIuMzc5MjU3MjU4ICswMTAwCi0rKysgZ2NjL3Rlc3RzdWl0 ZS9nKysuZGcvcGx1Z2luL3BsdWdpbi5leHAJMjAyNi0wMy0xOSAxNjoyMDoxMC45OTMzNjg3ODMg KzAxMDAKLUBAIC01MSw2ICs1MSw4IEBAIGlmICFbZ2NjX3BhcmFsbGVsX3Rlc3RfcnVuX3AgcGx1 Z2luXSB7Ci0gfQotIGdjY19wYXJhbGxlbF90ZXN0X2VuYWJsZSAwCi0gCi0rc2V0IFBMVUdJTl9E RUZBVUxUX1JFUE8gImdjbS5jYWNoZSIKLSsKLSAjIFNwZWNpZnkgdGhlIHBsdWdpbiBzb3VyY2Ug ZmlsZSBhbmQgdGhlIGFzc29jaWF0ZWQgdGVzdCBmaWxlcyBpbiBhIGxpc3QuCi0gIyBwbHVnaW5f dGVzdF9saXN0PXsge3BsdWdpbjEgdGVzdDEgdGVzdDIgLi4ufSB7cGx1Z2luMiB0ZXN0MSAuLi59 IC4uLiB9Ci0gc2V0IHBsdWdpbl90ZXN0X2xpc3QgW2xpc3QgXAotQEAgLTg3LDkgKzg5LDE3IEBA IHNldCBwbHVnaW5fdGVzdF9saXN0IFtsaXN0IFwKLSAgICAgCSAgdWdsaWZpY2F0aW9uLWMrKzIw LkMgXAotICAgICAJICB1Z2xpZmljYXRpb24tYysrMjMuQyBcCi0gICAgIAkgIHVnbGlmaWNhdGlv bi1jKysyNi5DIH0gXAotKyAgICB7IHN0ZF9tb2R1bGVfZXhwb3J0c19wbHVnaW4uY2MgXAotKwkg IHN0ZC1tb2R1bGUtZXhwb3J0cy1jKysyMC5DIFwKLSsJICBzdGQtbW9kdWxlLWV4cG9ydHMtYysr MjMuQyBcCi0rCSAgc3RkLW1vZHVsZS1leHBvcnRzLWMrKzI2LkMgfSBcCi0gICAgIHsgY29tbWVu dF9wbHVnaW4uY2MgY29tbWVudHMtMS5DIH0gXAotIF0KLSAKLStmb3JlYWNoIGZpbGUgW2ZpbmQg JFBMVUdJTl9ERUZBVUxUX1JFUE8gKi5nY21dIHsKLSsgICAgZmlsZV9vbl9ob3N0IGRlbGV0ZSAk ZmlsZQotK30KLSsKLSBmb3JlYWNoIHBsdWdpbl90ZXN0ICRwbHVnaW5fdGVzdF9saXN0IHsKLSAg ICAgIyBSZXBsYWNlIGVhY2ggc291cmNlIGZpbGUgd2l0aCBpdHMgZnVsbC1wYXRoIG5hbWUKLSAg ICAgZm9yIHtzZXQgaSAwfSB7JGkgPCBbbGxlbmd0aCAkcGx1Z2luX3Rlc3RdfSB7aW5jciBpfSB7 Ci1AQCAtMTA1LDQgKzExNSw4IEBAIGZvcmVhY2ggcGx1Z2luX3Rlc3QgJHBsdWdpbl90ZXN0X2xp c3QgewotICAgICBwbHVnaW4tdGVzdC1leGVjdXRlICRwbHVnaW5fc3JjICRwbHVnaW5faW5wdXRf dGVzdHMKLSB9Ci0gCi0rZm9yZWFjaCBmaWxlIFtmaW5kICRQTFVHSU5fREVGQVVMVF9SRVBPICou Z2NtXSB7Ci0rICAgIGZpbGVfb25faG9zdCBkZWxldGUgJGZpbGUKLSt9Ci0rCi0gZ2NjX3BhcmFs bGVsX3Rlc3RfZW5hYmxlIDEKLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9wbHVnaW4vc3RkX21v ZHVsZV9leHBvcnRzX3BsdWdpbi5jYy5qagkyMDI2LTAzLTE5IDE2OjE5OjIzLjY5NDkxOTgxNiAr MDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi9zdGRfbW9kdWxlX2V4cG9ydHNf cGx1Z2luLmNjCTIwMjYtMDMtMTkgMTY6NDU6MTIuNzU2NTQzOTc5ICswMTAwCi1AQCAtMCwwICsx LDIxOSBAQAotKyNpbmNsdWRlICJnY2MtcGx1Z2luLmgiCi0rI2luY2x1ZGUgPHN0ZGxpYi5oPgot KyNpbmNsdWRlICJjb25maWcuaCIKLSsjaW5jbHVkZSAic3lzdGVtLmgiCi0rI2luY2x1ZGUgImNv cmV0eXBlcy5oIgotKyNpbmNsdWRlICJ0cmVlLmgiCi0rI2luY2x1ZGUgImludGwuaCIKLSsjaW5j bHVkZSAiY3AvY3AtdHJlZS5oIgotKyNpbmNsdWRlICJjcC9uYW1lLWxvb2t1cC5oIgotKyNpbmNs dWRlICJkaWFnbm9zdGljLmgiCi0rI2luY2x1ZGUgInN0cmluZ3Bvb2wuaCIKLSsjaW5jbHVkZSAi YXR0cmlicy5oIgotKwotK2ludCBwbHVnaW5faXNfR1BMX2NvbXBhdGlibGU7Ci0rCi0rdm9pZCBw bHVnaW5fZHVtcF9ucyAodHJlZSwgY2hhciAqLCBoYXNoX3NldDx0cmVlPiAqKik7Ci0rCi0rZW51 bSBjbGFzcyB3aGl0ZWxpc3Rfc3RkIHsKLSsgIGN4eDIwID0gMSA8PCAwLAotKyAgY3h4MjMgPSAx IDw8IDEsCi0rICBjeHgyNiA9IDEgPDwgMiwKLSsgIGFsbCA9ICgxIDw8IDMpIC0gMQotK307Ci0r c3RydWN0IHsKLSsgIGNvbnN0IGNoYXIgKm5hbWU7Ci0rICB3aGl0ZWxpc3Rfc3RkIGVuYWJsZWRf aW47Ci0rfSB3aGl0ZWxpc3RbXSA9IHsKLSsgIC8vIFt6b21iaWUubmFtZXNdIGluIEMrKzIwLUMr KzI2LCBzdXBwb3J0ZWQgYXMgYW4gZXh0ZW5zaW9uLgotKyAgeyAic3RkOjpyZXN1bHRfb2YiLCB3 aGl0ZWxpc3Rfc3RkOjphbGwgfSwKLSsgIHsgInN0ZDo6cmVzdWx0X29mX3QiLCB3aGl0ZWxpc3Rf c3RkOjphbGwgfSwKLSsgIC8vIFt6b21iaWUubmFtZXNdIGluIEMrKzIwLUMrKzI2LCBzdXBwb3J0 ZWQgaW4gQysrMjAgYXMgYW4gZXh0ZW5zaW9uLgotKyAgeyAic3RkOjp1bmV4cGVjdGVkX2hhbmRs ZXIiLCB3aGl0ZWxpc3Rfc3RkOjpjeHgyMCB9LAotKyAgLy8gW3pvbWJpZS5uYW1lc10gaW4gQysr MjMtQysrMjYsIG5vdCBleHBvcnRlZCBpbiBDKysyMC4KLSsgIHsgInN0ZDo6ZGVjbGFyZV9ub19w b2ludGVycyIsIHdoaXRlbGlzdF9zdGQ6OmN4eDIwIH0sCi0rICB7ICJzdGQ6OmRlY2xhcmVfcmVh Y2hhYmxlIiwgd2hpdGVsaXN0X3N0ZDo6Y3h4MjAgfSwKLSsgIHsgInN0ZDo6Z2V0X3BvaW50ZXJf c2FmZXR5Iiwgd2hpdGVsaXN0X3N0ZDo6Y3h4MjAgfSwKLSsgIHsgInN0ZDo6cG9pbnRlcl9zYWZl dHkiLCB3aGl0ZWxpc3Rfc3RkOjpjeHgyMCB9LAotKyAgeyAic3RkOjp1bmRlY2xhcmVfbm9fcG9p bnRlcnMiLCB3aGl0ZWxpc3Rfc3RkOjpjeHgyMCB9LAotKyAgeyAic3RkOjp1bmRlY2xhcmVfcmVh Y2hhYmxlIiwgd2hpdGVsaXN0X3N0ZDo6Y3h4MjAgfQotK307Ci0rCi0rdm9pZAotK3BsdWdpbl9k dW1wX2RlY2wgKHRyZWUgZGVjbCwgY2hhciAqc2NvcGUsIGhhc2hfc2V0PHRyZWU+ICoqZXhwb3J0 ZWRfdXNpbmdzKQotK3sKLSsgIGlmIChWQVJfUCAoZGVjbCkgJiYgREVDTF9BUlRJRklDSUFMIChk ZWNsKSkKLSsgICAgcmV0dXJuOwotKwotKyAgdHJlZSBuYW1lID0gREVDTF9OQU1FIChkZWNsKTsK LSsgIGlmICghbmFtZSkKLSsgICAgcmV0dXJuOwotKwotKyAgaWYgKElERU5USUZJRVJfQU5PTl9Q IChuYW1lKSkKLSsgICAgcmV0dXJuOwotKwotKyAgaWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gQ09O U1RfREVDTCkKLSsgICAgcmV0dXJuOwotKwotKyAgaWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gTkFN RVNQQUNFX0RFQ0wgJiYgREVDTF9OQU1FU1BBQ0VfSU5MSU5FX1AgKGRlY2wpKQotKyAgICB7Ci0r ICAgICAgcGx1Z2luX2R1bXBfbnMgKGRlY2wsIHNjb3BlLCBleHBvcnRlZF91c2luZ3MpOwotKyAg ICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgaWYgKElERU5USUZJRVJfUE9JTlRFUiAobmFtZSlb MF0gPT0gJ18nCi0rICAgICAgfHwgc3RyY2hyIChJREVOVElGSUVSX1BPSU5URVIgKG5hbWUpLCAn ICcpKQotKyAgICByZXR1cm47Ci0rCi0rICBpZiAoVFJFRV9DT0RFIChkZWNsKSA9PSBOQU1FU1BB Q0VfREVDTCkKLSsgICAgewotKyAgICAgIGNoYXIgKnAgPSBzdHJjaHIgKHNjb3BlLCAnXDAnKTsK LSsgICAgICBzdHJjcHkgKHAsIElERU5USUZJRVJfUE9JTlRFUiAobmFtZSkpOwotKyAgICAgIHN0 cmNhdCAocCwgIjo6Iik7Ci0rICAgICAgcGx1Z2luX2R1bXBfbnMgKGRlY2wsIHNjb3BlLCBleHBv cnRlZF91c2luZ3MpOwotKyAgICAgICpwID0gJ1wwJzsKLSsgICAgICByZXR1cm47Ci0rICAgIH0K LSsKLSsgIGlmIChERUNMX01PRFVMRV9FWFBPUlRfUCAoZGVjbCkpCi0rICAgIHJldHVybjsKLSsg IGlmIChUUkVFX0RFUFJFQ0FURUQgKGRlY2wpCi0rICAgICAgfHwgbG9va3VwX2F0dHJpYnV0ZSAo ImRlcHJlY2F0ZWQiLCBERUNMX0FUVFJJQlVURVMgKGRlY2wpKSkKLSsgICAgcmV0dXJuOwotKyAg aWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gVEVNUExBVEVfREVDTAotKyAgICAgICYmIERFQ0xfVEVN UExBVEVfUkVTVUxUIChkZWNsKQotKyAgICAgICYmIChUUkVFX0RFUFJFQ0FURUQgKERFQ0xfVEVN UExBVEVfUkVTVUxUIChkZWNsKSkKLSsJICB8fCBsb29rdXBfYXR0cmlidXRlICgiZGVwcmVjYXRl ZCIsCi0rCQkJICAgICAgIERFQ0xfQVRUUklCVVRFUyAoREVDTF9URU1QTEFURV9SRVNVTFQgKGRl Y2wpKSkpKQotKyAgICByZXR1cm47Ci0rICBpZiAoKmV4cG9ydGVkX3VzaW5ncwotKyAgICAgICYm ICgqZXhwb3J0ZWRfdXNpbmdzKS0+Y29udGFpbnMgKERFQ0xfTkFNRSAoZGVjbCkpKQotKyAgICBy ZXR1cm47Ci0rCi0rICBzaXplX3Qgc2NvcGVfbGVuID0gc3RybGVuIChzY29wZSk7Ci0rICB3aGl0 ZWxpc3Rfc3RkIHRoaXNfc3RkOwotKyAgaWYgKGN4eF9kaWFsZWN0ID09IGN4eDIwKQotKyAgICB0 aGlzX3N0ZCA9IHdoaXRlbGlzdF9zdGQ6OmN4eDIwOwotKyAgZWxzZSBpZiAoY3h4X2RpYWxlY3Qg PT0gY3h4MjMpCi0rICAgIHRoaXNfc3RkID0gd2hpdGVsaXN0X3N0ZDo6Y3h4MjM7Ci0rICBlbHNl IGlmIChjeHhfZGlhbGVjdCA9PSBjeHgyNikKLSsgICAgdGhpc19zdGQgPSB3aGl0ZWxpc3Rfc3Rk OjpjeHgyNjsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRSAod2hpdGVsaXN0KTsg KytpKQotKyAgICBpZiAoc3RybmNtcCAod2hpdGVsaXN0W2ldLm5hbWUsIHNjb3BlLCBzY29wZV9s ZW4pID09IDAKLSsJJiYgc3RyY21wICh3aGl0ZWxpc3RbaV0ubmFtZSArIHNjb3BlX2xlbiwKLSsJ CSAgIElERU5USUZJRVJfUE9JTlRFUiAobmFtZSkpID09IDApCi0rICAgICAgewotKwlpZiAoKChp bnQpIHdoaXRlbGlzdFtpXS5lbmFibGVkX2luICYgKGludCkgdGhpc19zdGQpICE9IDApCi0rCSAg ewotKwkgICAgaW5mb3JtIChERUNMX1NPVVJDRV9MT0NBVElPTiAoZGVjbCksCi0rCQkgICAgIm1p c3NpbmcgdXNpbmcgJXMlRDsgd2hpdGVsaXN0ZWQiLCBzY29wZSwgbmFtZSk7Ci0rCSAgICByZXR1 cm47Ci0rCSAgfQotKwlicmVhazsKLSsgICAgICB9Ci0rCi0rICBlcnJvcl9hdCAoREVDTF9TT1VS Q0VfTE9DQVRJT04gKGRlY2wpLCAibWlzc2luZyB1c2luZyAlcyVEOyIsIHNjb3BlLCBuYW1lKTsK LSt9Ci0rCi0rdm9pZAotK3BsdWdpbl9kdW1wX2JpbmRpbmcgKHRyZWUgYmluZGluZywgY2hhciAq c2NvcGUsCi0rCQkgICAgIGhhc2hfc2V0PHRyZWU+ICoqZXhwb3J0ZWRfdXNpbmdzKQotK3sKLSsg IHRyZWUgdmFsdWUgPSBOVUxMX1RSRUU7Ci0rCi0rICBpZiAoVFJFRV9DT0RFIChiaW5kaW5nKSA9 PSBPVkVSTE9BRCkKLSsgICAgewotKyAgICAgIHRyZWUgb3ZsID0gb3ZsX3NraXBfaGlkZGVuIChi aW5kaW5nKTsKLSsgICAgICBpZiAob3ZsICYmIFRSRUVfQ09ERSAob3ZsKSA9PSBPVkVSTE9BRCAm JiBPVkxfRVhQT1JUX1AgKG92bCkpCi0rCXJldHVybjsKLSsgICAgfQotKwotKyAgaWYgKFNUQVRf SEFDS19QIChiaW5kaW5nKSkKLSsgICAgewotKyAgICAgIGlmICghU1RBVF9UWVBFX0hJRERFTl9Q IChiaW5kaW5nKQotKyAgICAgICAgICAmJiBTVEFUX1RZUEUgKGJpbmRpbmcpKQotKyAgICAgICAg cmV0dXJuIHBsdWdpbl9kdW1wX2RlY2wgKFNUQVRfVFlQRSAoYmluZGluZyksIHNjb3BlLCBleHBv cnRlZF91c2luZ3MpOwotKyAgICAgIGVsc2UgaWYgKCFTVEFUX0RFQ0xfSElEREVOX1AgKGJpbmRp bmcpKQotKyAgICAgICAgdmFsdWUgPSBTVEFUX0RFQ0wgKGJpbmRpbmcpOwotKyAgICB9Ci0rICBl bHNlCi0rICAgIHZhbHVlID0gYmluZGluZzsKLSsKLSsgIHZhbHVlID0gb3ZsX3NraXBfaGlkZGVu ICh2YWx1ZSk7Ci0rICBpZiAodmFsdWUpCi0rICAgIHsKLSsgICAgICB2YWx1ZSA9IE9WTF9GSVJT VCAodmFsdWUpOwotKyAgICAgIHJldHVybiBwbHVnaW5fZHVtcF9kZWNsICh2YWx1ZSwgc2NvcGUs IGV4cG9ydGVkX3VzaW5ncyk7Ci0rICAgIH0KLSt9Ci0rCi0rdm9pZAotK3BsdWdpbl9kdW1wX25z ICh0cmVlIG5zLCBjaGFyICpzY29wZSwgaGFzaF9zZXQ8dHJlZT4gKipleHBvcnRlZF91c2luZ3Mp Ci0rewotKyAgdXNpbmcgaXRlcnQgPSBoYXNoX3RhYmxlPG5hbWVkX2RlY2xfaGFzaD46Oml0ZXJh dG9yOwotKyAgaXRlcnQgZW5kIChERUNMX05BTUVTUEFDRV9CSU5ESU5HUyAobnMpLT5lbmQgKCkp OwotKyAgaGFzaF9zZXQ8dHJlZT4gKm15X2V4cG9ydGVkX3VzaW5ncyA9IE5VTEw7Ci0rICBpZiAo REVDTF9OQU1FU1BBQ0VfSU5MSU5FX1AgKG5zKSkKLSsgICAgewotKyAgICAgIGlmICgqZXhwb3J0 ZWRfdXNpbmdzID09IE5VTEwpCi0rCXsKLSsJICAqZXhwb3J0ZWRfdXNpbmdzID0gbmV3IGhhc2hf c2V0PHRyZWU+OwotKwkgIHRyZWUgcGFyZW50ID0gREVDTF9DT05URVhUIChucyk7Ci0rCSAgaXRl cnQgcGVuZCAoREVDTF9OQU1FU1BBQ0VfQklORElOR1MgKHBhcmVudCktPmVuZCAoKSk7Ci0rCSAg Zm9yIChpdGVydCBpdGVyIChERUNMX05BTUVTUEFDRV9CSU5ESU5HUyAocGFyZW50KS0+YmVnaW4g KCkpOwotKwkgICAgICAgaXRlciAhPSBwZW5kOyArK2l0ZXIpCi0rCSAgICB7Ci0rCSAgICAgIHRy ZWUgYiA9ICppdGVyOwotKwkgICAgICBpZiAoVFJFRV9DT0RFIChiKSA9PSBVU0lOR19ERUNMCi0r CQkgICYmIERFQ0xfTU9EVUxFX0VYUE9SVF9QIChiKQotKwkJICAmJiBERUNMX05BTUUgKGIpKQot KwkJKCpleHBvcnRlZF91c2luZ3MpLT5hZGQgKERFQ0xfTkFNRSAoYikpOwotKwkgICAgICBlbHNl IGlmIChUUkVFX0NPREUgKGIpID09IE9WRVJMT0FEKQotKwkJewotKwkJICB0cmVlIG92bCA9IG92 bF9za2lwX2hpZGRlbiAoYik7Ci0rCQkgIGlmIChvdmwgJiYgVFJFRV9DT0RFIChvdmwpID09IE9W RVJMT0FEICYmIE9WTF9FWFBPUlRfUCAob3ZsKSkKLSsJCSAgICB7Ci0rCQkgICAgICBiID0gT1ZM X0ZJUlNUIChvdmwpOwotKwkJICAgICAgaWYgKERFQ0xfTkFNRSAoYikpCi0rCQkJKCpleHBvcnRl ZF91c2luZ3MpLT5hZGQgKERFQ0xfTkFNRSAoYikpOwotKwkJICAgIH0KLSsJCX0KLSsJICAgIH0K LSsJfQotKyAgICB9Ci0rICBlbHNlCi0rICAgIGV4cG9ydGVkX3VzaW5ncyA9ICZteV9leHBvcnRl ZF91c2luZ3M7Ci0rICBmb3IgKGl0ZXJ0IGl0ZXIgKERFQ0xfTkFNRVNQQUNFX0JJTkRJTkdTIChu cyktPmJlZ2luICgpKTsKLSsgICAgICAgaXRlciAhPSBlbmQ7ICsraXRlcikKLSsgICAgewotKyAg ICAgIHRyZWUgYiA9ICppdGVyOwotKyAgICAgIGdjY19hc3NlcnQgKFRSRUVfQ09ERSAoYikgIT0g QklORElOR19WRUNUT1IpOwotKyAgICAgIHBsdWdpbl9kdW1wX2JpbmRpbmcgKGIsIHNjb3BlLCBl eHBvcnRlZF91c2luZ3MpOwotKyAgICB9Ci0rICBkZWxldGUgbXlfZXhwb3J0ZWRfdXNpbmdzOwot K30KLSsKLSt2b2lkCi0rcGx1Z2luX2ZpbmlzaF91bml0ICh2b2lkICosIHZvaWQgKikKLSt7Ci0r ICBpZiAoIW1haW5faW5wdXRfZmlsZW5hbWUKLSsgICAgICB8fCBzdHJzdHIgKG1haW5faW5wdXRf ZmlsZW5hbWUsICIvc3RkLmNjIikgPT0gTlVMTCkKLSsgICAgcmV0dXJuOwotKwotKyAgY2hhciBi dWZbNDA5Nl07Ci0rICBzdHJjcHkgKGJ1ZiwgInN0ZDo6Iik7Ci0rICBoYXNoX3NldDx0cmVlPiAq ZXhwb3J0ZWRfdXNpbmdzID0gTlVMTDsKLSsgIHBsdWdpbl9kdW1wX25zIChzdGRfbm9kZSwgYnVm LCAmZXhwb3J0ZWRfdXNpbmdzKTsKLSsgIGRlbGV0ZSBleHBvcnRlZF91c2luZ3M7Ci0rfQotKwot K2ludAotK3BsdWdpbl9pbml0IChzdHJ1Y3QgcGx1Z2luX25hbWVfYXJncyAqcGx1Z2luX2luZm8s Ci0rICAgICAgICAgICAgIHN0cnVjdCBwbHVnaW5fZ2NjX3ZlcnNpb24gKnZlcnNpb24pCi0rewot KyAgY29uc3QgY2hhciAqcGx1Z2luX25hbWUgPSBwbHVnaW5faW5mby0+YmFzZV9uYW1lOwotKwot KyAgcmVnaXN0ZXJfY2FsbGJhY2sgKHBsdWdpbl9uYW1lLCBQTFVHSU5fRklOSVNIX1VOSVQsCi0r ICAgICAgICAgICAgICAgICAgICAgcGx1Z2luX2ZpbmlzaF91bml0LCBOVUxMKTsKLSsgIHJldHVy biAwOwotK30KLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9wbHVnaW4vc3RkLW1vZHVsZS1leHBv cnRzLWMrKzIwLkMuamoJMjAyNi0wMy0xOSAxNjoxOToyMy42OTUwMzUyNTkgKzAxMDAKLSsrKyBn Y2MvdGVzdHN1aXRlL2crKy5kZy9wbHVnaW4vc3RkLW1vZHVsZS1leHBvcnRzLWMrKzIwLkMJMjAy Ni0wMy0xOSAxNjoyMDoxMC45OTM2ODg4OTEgKzAxMDAKLUBAIC0wLDAgKzEsMTEgQEAKLSsvLyBU ZXN0IGJpdHMvc3RkLmNjIGV4cG9ydHMgZXZlcnl0aGluZyBpdCBzaG91bGQuCi0rLy8gVGhpcyBp cyBkb25lIHVzaW5nIGEgcGx1Z2luIHRvIHdhbGsgc3RkIG5hbWVzcGFjZSBhbmQKLSsvLyBpdHMg Y2hpbGQgbmFtZXNwYWNlcywgbG9va2luZyBmb3IgZGVjbHMgd2l0aCBub24tdWdsaWZpZWQKLSsv LyBuYW1lcyB3aGljaCBhcmVuJ3QgZGVwcmVjYXRlZCBhbmQgYXJlIG5vdCBleHBvcnRlZC4KLSsv LyB7IGRnLWRvIGxpbmsgfQotKy8vIHsgZGctb3B0aW9ucyAiLU8wIC1zdGQ9YysrMjAgLWZtb2R1 bGVzIC14IGMrKy1zeXN0ZW0tbW9kdWxlIGJpdHMvc3RkLmNjIC14IG5vbmUiIH0KLSsKLStpbnQK LSttYWluICgpCi0rewotK30KLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9wbHVnaW4vc3RkLW1v ZHVsZS1leHBvcnRzLWMrKzIzLkMuamoJMjAyNi0wMy0xOSAxNjoxOToyMy42OTUxMTY2MjcgKzAx MDAKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9wbHVnaW4vc3RkLW1vZHVsZS1leHBvcnRzLWMr KzIzLkMJMjAyNi0wMy0xOSAxNjoyMDoxMC45OTM3ODg1NjMgKzAxMDAKLUBAIC0wLDAgKzEsMTEg QEAKLSsvLyBUZXN0IGJpdHMvc3RkLmNjIGV4cG9ydHMgZXZlcnl0aGluZyBpdCBzaG91bGQuCi0r Ly8gVGhpcyBpcyBkb25lIHVzaW5nIGEgcGx1Z2luIHRvIHdhbGsgc3RkIG5hbWVzcGFjZSBhbmQK LSsvLyBpdHMgY2hpbGQgbmFtZXNwYWNlcywgbG9va2luZyBmb3IgZGVjbHMgd2l0aCBub24tdWds aWZpZWQKLSsvLyBuYW1lcyB3aGljaCBhcmVuJ3QgZGVwcmVjYXRlZCBhbmQgYXJlIG5vdCBleHBv cnRlZC4KLSsvLyB7IGRnLWRvIGxpbmsgfQotKy8vIHsgZGctb3B0aW9ucyAiLU8wIC1zdGQ9Yysr MjMgLWZtb2R1bGVzIC14IGMrKy1zeXN0ZW0tbW9kdWxlIGJpdHMvc3RkLmNjIC14IG5vbmUiIH0K LSsKLStpbnQKLSttYWluICgpCi0rewotK30KLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9wbHVn aW4vc3RkLW1vZHVsZS1leHBvcnRzLWMrKzI2LkMuamoJMjAyNi0wMy0xOSAxNjoxOToyMy42OTUx OTQ5NTkgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9wbHVnaW4vc3RkLW1vZHVsZS1l eHBvcnRzLWMrKzI2LkMJMjAyNi0wMy0xOSAxNjoyMDoxMC45OTM5MDQ1MjUgKzAxMDAKLUBAIC0w LDAgKzEsMTEgQEAKLSsvLyBUZXN0IGJpdHMvc3RkLmNjIGV4cG9ydHMgZXZlcnl0aGluZyBpdCBz aG91bGQuCi0rLy8gVGhpcyBpcyBkb25lIHVzaW5nIGEgcGx1Z2luIHRvIHdhbGsgc3RkIG5hbWVz cGFjZSBhbmQKLSsvLyBpdHMgY2hpbGQgbmFtZXNwYWNlcywgbG9va2luZyBmb3IgZGVjbHMgd2l0 aCBub24tdWdsaWZpZWQKLSsvLyBuYW1lcyB3aGljaCBhcmVuJ3QgZGVwcmVjYXRlZCBhbmQgYXJl IG5vdCBleHBvcnRlZC4KLSsvLyB7IGRnLWRvIGxpbmsgfQotKy8vIHsgZGctb3B0aW9ucyAiLU8w IC1zdGQ9YysrMjYgLWZtb2R1bGVzIC1mcmVmbGVjdGlvbiAtZmNvbnRyYWN0cyAteCBjKystc3lz dGVtLW1vZHVsZSBiaXRzL3N0ZC5jYyAteCBub25lIiB9Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sK LSt9CgpkaWZmIC0tZ2l0IGEvZ2NjMTYtcHIxMjQyNjgucGF0Y2ggYi9nY2MxNi1wcjEyNDI2OC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNkYzIzNS4uMDAwMDAwMAotLS0g YS9nY2MxNi1wcjEyNDI2OC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzNSArMCwwIEBACi1U aGlzIHRyaWVzIHRvIGVuc3VyZSB0aGF0IHRoZSBtb2R1bGUgaW5pdCBmdW5jdGlvbnMgYXJlIHBy ZXNlbnQgaW4KLWxpYnN0ZGMrKy5zbyBhbmQgbGlic3RkYysrLmEsIHNvIHRoYXQgdXNlcnMgb2Yg dGhlIHN0ZCBhbmQgc3RkLmNvbXBhdAotbW9kdWxlcyBkb24ndCBuZWVkIHRvIG1hbnVhbGx5IGxp bmsgdG8gc3RkLm8gYW5kL29yIHN0ZC5jb21wYXQubyBpbgotYWRkaXRpb24gdG8gY29tcGlsaW5n IHRoZSBDTUlzLgotCi1UaGlzIGFsc28gYWRkcyBhIGNsZWFuLWxvY2FsIHRhcmdldCB0byByZW1v dmUgdGhlIGdlbmVyYXRlZCBpbnRlcmZhY2UKLXVuaXRzIGFuZCBtYW5pZmVzdCwgYW5kIHRoZSBn Y20uY2FjaGUgZGlyZWN0b3J5IGZvciB0aGUgQ01Jcy4KLQotVGhpcyB3YXMgcHJldmlvdXNseSBj b21taXR0ZWQgYW5kIHRoZW4gcmV2ZXJ0ZWQgYmVjYXVzZSBpdCBicm9rZQotYm9vdHN0cmFwIG9u IGEgZmV3IHRhcmdldHMuIE1vc3Qgb2YgdGhlIHJlYXNvbnMgdGhlIG1vZHVsZSBpbnRlcmZhY2UK LXVuaXRzIGZhaWxlZCB0byBjb21waWxlIGhhdmUgKHdlIGJlbGlldmUpIG5vdyBiZWVuIGFkZHJl c3NlZCB3aXRoIEcrKwotY2hhbmdlcywgYWx0aG91Z2ggdGhlcmUncyBzdGlsbCBhIHByb2JsZW0g b24gYW1kZ2NuIChQUjEyNDU1NCkuIER1ZSB0bwotdGhhdCBwcm9ibGVtLCBhbmQgYW55IG5vdCB5 ZXQga25vd24gcHJvYmxlbXMsIHRoaXMgdmVyc2lvbiBvZiB0aGUgcGF0Y2gKLXRyaWVzIHRvIGF2 b2lkIGJyZWFraW5nIGJvb3RzdHJhcCBhZ2FpbiBieSBhbGxvd2luZyB0aGUgbW9kdWxlcyB0byBm YWlsCi10byBjb21waWxlLiBJZiBjb21waWxpbmcgc3RkLm8gb3Igc3RkLmNvbXBhdC5vIGZhaWxz IHRoZW4gYW4gZW1wdHkKLXRyYW5zbGF0aW9uIHVuaXQgd2lsbCBiZSBjb21waWxlZCBhbmQgYWRk ZWQgdG8gbGlic3RkYysrLnNvIGluc3RlYWQuCi0KLVRoaXMgbWVhbnMgdGhhdCB3ZSB3aWxsIG9u bHkgZXhwb3J0IHRoZSBtb2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zCi1mcm9tIHRoZSBs aWJyYXJ5IGlmIHRoZSBtb2R1bGUgY2FuIGJlIGNvbXBpbGVkIGZvciB0aGUgdGFyZ2V0LiBUaGlz Ci1zZWVtcyBmaW5lIGJlY2F1c2Ugd2UgZG9uJ3QgbmVlZCB0byBpbml0aWFsaXplIGFueXRoaW5n IGZvciBhIG1vZHVsZQotdGhhdCBjYW5ub3QgZXZlbiBiZSBjb21waWxlZCEgRml4aW5nIFBSMTI0 NTU0IGFuZCByZW1vdmluZyB0aGlzIGtsdWdlCi1zaG91bGQgYmUgZG9uZSBmb3IgR0NDIDE3IGlu IHN0YWdlIDEuCi0KLWxpYnN0ZGMrKy12My9DaGFuZ2VMb2c6Ci0KLQlQUiBsaWJzdGRjKysvMTI0 MjY4Ci0JKiBjb25maWcvYWJpL3ByZS9nbnUudmVyOiBFeHBvcnQgc3ltYm9scy4KLQkqIHNyYy9N YWtlZmlsZS5hbTogQWRkIGxpYm1vZHVsZXNjb252ZW5pZW5jZS5sYSB0byBsaWJzdGRjKysKLQls aW5rLgotCSogc3JjL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgotCSogc3JjL2MrKzIzL01ha2Vm aWxlLmFtOiBDcmVhdGUgbGlibW9kdWxlc2NvbnZlbmllbmNlLmxhCi0JYW5kIHBvcHVsYXRlIGl0 IHdpdGggc3RkLm8gYW5kIHN0ZC5jb21wYXQubyBpbnRlcmZhY2UgdW5pdHMsCi0Jd2l0aCBlbXB0 eSBmYWxsYmFjayBvYmplY3RzIGlmIGNvbXBpbGluZyB0aGUgaW50ZXJmYWNlIHVuaXRzCi0JZmFp bHMuIEFkZCBjbGVhbi1sb2NhbCB0YXJnZXQuCi0JKiBzcmMvYysrMjMvTWFrZWZpbGUuaW46IFJl Z2VuZXJhdGUuCi0tLS0KLQotdjI6IFJlcGxhY2UgdGhlIG1vZHVsZSBpbnRlcmZhY2UgdW5pdHMg d2l0aCBlbXB0eSB0cmFuc2xhdGlvbiB1bml0cyBpZgotdGhleSBmYWlsIHRvIGNvbXBpbGUuCi0K LVRlc3RlZCB4ODZfNjQtbGludXgsIHNwYXJjLXNvbGFyaXMsIGFhcmNoNjQtbGludXguCi0KLUJv b3RzdHJhcHBlZCBvbiB4dGVuc2EtZXNwMzItZWxmIGJlZm9yZSBKYWt1YidzIHIxNi04NzAzIGFu ZCB0aGlzIHBhdGNoCi1hbGxvd3MgYm9vdHN0cmFwIHRvIGNvbXBsZXRlIGV2ZW4gdGhvdWdoIHN0 ZC5jYyBmYWlsczoKLQotc3RkLmNjOjQxNTA6MTQ6IGVycm9yOiBleHBvcnRpbmcgJ3R5cGVkZWYg X19nbnVjX3ZhX2xpc3QgdmFfbGlzdCcgdGhhdCBkb2VzIG5vdCBoYXZlIGV4dGVybmFsIGxpbmth Z2UKLSA0MTUwIHwgICB1c2luZyBzdGQ6OnZhX2xpc3Q7Ci0gICAgICB8ICAgICAgICAgICAgICBe fn5+fn5+Ci08YnVpbHQtaW4+OiBub3RlOiAndHlwZWRlZiBzdHJ1Y3QgX192YV9saXN0X3RhZyBf X3ZhX2xpc3RfdGFnJyBkZWNsYXJlZCBoZXJlIHdpdGggaW50ZXJuYWwgbGlua2FnZQotQ2Fubm90 IGNvbXBpbGUgc3RkIG1vZHVsZQotTW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIHdpbGwg YmUgbWlzc2luZwotCi0gbGlic3RkYysrLXYzL2NvbmZpZy9hYmkvcHJlL2dudS52ZXIgfCAgNCAr KwotIGxpYnN0ZGMrKy12My9zcmMvTWFrZWZpbGUuYW0gICAgICAgIHwgIDYgKystCi0gbGlic3Rk YysrLXYzL3NyYy9NYWtlZmlsZS5pbiAgICAgICAgfCAgNiArKy0KLSBsaWJzdGRjKystdjMvc3Jj L2MrKzIzL01ha2VmaWxlLmFtICB8IDQ1ICsrKysrKysrKysrKysrKystCi0gbGlic3RkYysrLXYz L3NyYy9jKysyMy9NYWtlZmlsZS5pbiAgfCA3NiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LQotIDUgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQot Ci0tLS0gbGlic3RkYysrLXYzL2NvbmZpZy9hYmkvcHJlL2dudS52ZXIKLSsrKyBsaWJzdGRjKyst djMvY29uZmlnL2FiaS9wcmUvZ251LnZlcgotQEAgLTI2MTcsNiArMjYxNywxMCBAQCBHTElCQ1hY XzMuNC4zNSB7Ci0gICAgIF9aU3QxNV9fZ2V0X29uY2VfY2FsbHY7Ci0gI2VuZGlmCi0gCi0rICAg ICMgTW9kdWxlIGluaXRpdGlhbGl6YXRpb24gc3ltYm9scyBmb3Igc3RkIGFuZCBzdGQuY29tcGF0 IG1vZHVsZXMuCi0rICAgIF9aR0lXM3N0ZDsKLSsgICAgX1pHSVczc3RkVzZjb21wYXQ7Ci0rCi0g fSBHTElCQ1hYXzMuNC4zNDsKLSAKLSAjIFN5bWJvbHMgaW4gdGhlIHN1cHBvcnQgbGlicmFyeSAo bGlic3VwYysrKSBoYXZlIHRoZWlyIG93biB0YWcuCi0tLS0gbGlic3RkYysrLXYzL3NyYy9NYWtl ZmlsZS5hbQotKysrIGxpYnN0ZGMrKy12My9zcmMvTWFrZWZpbGUuYW0KLUBAIC0xNDUsNyArMTQ1 LDggQEAgbGlic3RkY19fX2xhX0xJQkFERCA9IFwKLSAJJCh0b3BfYnVpbGRkaXIpL3NyYy9jKys5 OC9saWJjKys5OGNvbnZlbmllbmNlLmxhIFwKLSAJJCh0b3BfYnVpbGRkaXIpL3NyYy9jKysxMS9s aWJjKysxMWNvbnZlbmllbmNlLmxhIFwKLSAJJCh0b3BfYnVpbGRkaXIpL3NyYy9jKysxNy9saWJj KysxN2NvbnZlbmllbmNlLmxhIFwKLS0JJCh0b3BfYnVpbGRkaXIpL3NyYy9jKysyMC9saWJjKysy MGNvbnZlbmllbmNlLmxhCi0rCSQodG9wX2J1aWxkZGlyKS9zcmMvYysrMjAvbGliYysrMjBjb252 ZW5pZW5jZS5sYSBcCi0rCSQodG9wX2J1aWxkZGlyKS9zcmMvYysrMjMvbGlibW9kdWxlc2NvbnZl bmllbmNlLmxhCi0gCi0gbGlic3RkY19fX2xhX0RFUEVOREVOQ0lFUyA9IFwKLSAJJHt2ZXJzaW9u X2RlcH0gXAotQEAgLTE1Myw3ICsxNTQsOCBAQCBsaWJzdGRjX19fbGFfREVQRU5ERU5DSUVTID0g XAotIAkkKHRvcF9idWlsZGRpcikvc3JjL2MrKzk4L2xpYmMrKzk4Y29udmVuaWVuY2UubGEgXAot IAkkKHRvcF9idWlsZGRpcikvc3JjL2MrKzExL2xpYmMrKzExY29udmVuaWVuY2UubGEgXAotIAkk KHRvcF9idWlsZGRpcikvc3JjL2MrKzE3L2xpYmMrKzE3Y29udmVuaWVuY2UubGEgXAotLQkkKHRv cF9idWlsZGRpcikvc3JjL2MrKzIwL2xpYmMrKzIwY29udmVuaWVuY2UubGEKLSsJJCh0b3BfYnVp bGRkaXIpL3NyYy9jKysyMC9saWJjKysyMGNvbnZlbmllbmNlLmxhIFwKLSsJJCh0b3BfYnVpbGRk aXIpL3NyYy9jKysyMy9saWJtb2R1bGVzY29udmVuaWVuY2UubGEKLSAKLSBpZiBFTkFCTEVfREFS V0lOX0FUX1JQQVRICi0gbGlic3RkY19fX2Rhcndpbl9ycGF0aCA9IC1XYywtbm9kZWZhdWx0cnBh dGhzCi0tLS0gbGlic3RkYysrLXYzL3NyYy9NYWtlZmlsZS5pbgotKysrIGxpYnN0ZGMrKy12My9z cmMvTWFrZWZpbGUuaW4KLUBAIC01NTUsNyArNTU1LDggQEAgbGlic3RkY19fX2xhX0xJQkFERCA9 IFwKLSAJJCh0b3BfYnVpbGRkaXIpL3NyYy9jKys5OC9saWJjKys5OGNvbnZlbmllbmNlLmxhIFwK LSAJJCh0b3BfYnVpbGRkaXIpL3NyYy9jKysxMS9saWJjKysxMWNvbnZlbmllbmNlLmxhIFwKLSAJ JCh0b3BfYnVpbGRkaXIpL3NyYy9jKysxNy9saWJjKysxN2NvbnZlbmllbmNlLmxhIFwKLS0JJCh0 b3BfYnVpbGRkaXIpL3NyYy9jKysyMC9saWJjKysyMGNvbnZlbmllbmNlLmxhCi0rCSQodG9wX2J1 aWxkZGlyKS9zcmMvYysrMjAvbGliYysrMjBjb252ZW5pZW5jZS5sYSBcCi0rCSQodG9wX2J1aWxk ZGlyKS9zcmMvYysrMjMvbGlibW9kdWxlc2NvbnZlbmllbmNlLmxhCi0gCi0gbGlic3RkY19fX2xh X0RFUEVOREVOQ0lFUyA9IFwKLSAJJHt2ZXJzaW9uX2RlcH0gXAotQEAgLTU2Myw3ICs1NjQsOCBA QCBsaWJzdGRjX19fbGFfREVQRU5ERU5DSUVTID0gXAotIAkkKHRvcF9idWlsZGRpcikvc3JjL2Mr Kzk4L2xpYmMrKzk4Y29udmVuaWVuY2UubGEgXAotIAkkKHRvcF9idWlsZGRpcikvc3JjL2MrKzEx L2xpYmMrKzExY29udmVuaWVuY2UubGEgXAotIAkkKHRvcF9idWlsZGRpcikvc3JjL2MrKzE3L2xp YmMrKzE3Y29udmVuaWVuY2UubGEgXAotLQkkKHRvcF9idWlsZGRpcikvc3JjL2MrKzIwL2xpYmMr KzIwY29udmVuaWVuY2UubGEKLSsJJCh0b3BfYnVpbGRkaXIpL3NyYy9jKysyMC9saWJjKysyMGNv bnZlbmllbmNlLmxhIFwKLSsJJCh0b3BfYnVpbGRkaXIpL3NyYy9jKysyMy9saWJtb2R1bGVzY29u dmVuaWVuY2UubGEKLSAKLSBARU5BQkxFX0RBUldJTl9BVF9SUEFUSF9UUlVFQGxpYnN0ZGNfX19k YXJ3aW5fcnBhdGggPSAgXAotIEBFTkFCTEVfREFSV0lOX0FUX1JQQVRIX1RSVUVACS1XYywtbm9k ZWZhdWx0cnBhdGhzIFwKLS0tLSBsaWJzdGRjKystdjMvc3JjL2MrKzIzL01ha2VmaWxlLmFtCi0r KysgbGlic3RkYysrLXYzL3NyYy9jKysyMy9NYWtlZmlsZS5hbQotQEAgLTIzLDEwICsyMywxMyBA QAotIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9mcmFnbWVudC5hbQotIAotICMgQ29udmVuaWVuY2Ug bGlicmFyeSBmb3IgQysrMjMgcnVudGltZS4KLS1ub2luc3RfTFRMSUJSQVJJRVMgPSBsaWJjKysy M2NvbnZlbmllbmNlLmxhCi0rIyBUaGlzIGxpYmMrKzIzY29udmVuaWVuY2UubGEgb25lIGlzbid0 IGxpbmtlZCBpbnRvIGxpYnN0ZGMrKy5sYSB5ZXQsCi0rIyBzbyBidWlsZCBhbiBhZGRpdGlvbmFs IGxpYm1vZHVsZXNjb252ZW5pZW5jZS5sYSB3aGljaCBpcyBsaW5rZWQgaW4uCi0rbm9pbnN0X0xU TElCUkFSSUVTID0gbGliYysrMjNjb252ZW5pZW5jZS5sYSBsaWJtb2R1bGVzY29udmVuaWVuY2Uu bGEKLSAKLS0jIE1vZHVsZSBzdGQgc3VwcG9ydC4gIE5vdCBjb21waWxlZCBmb3Igbm93LCBvbmx5 IGluc3RhbGxlZC4KLSsjIE1vZHVsZSBzdGQgc3VwcG9ydC4KLSAjIExldCdzIGluc3RhbGwgdGhl IGludGVyZmFjZSB1bml0cyBpbiB0aGUgYml0cyBzdWJkaXJlY3RvcnkuCi0rIyBXZSBhbHNvIGNv bXBpbGUgdGhlbSBhbmQgaW5jbHVkZSB0aGVtIGluIGxpYm1vZHVsZXNjb252ZW5pZW5jZS5sYQot IHRvb2xleGVjbGliX0RBVEEgPSBsaWJzdGRjKysubW9kdWxlcy5qc29uCi0gaW5jbHVkZWJpdHNk aXIgPSAkKGd4eF9pbmNsdWRlX2RpcikvYml0cwotIGluY2x1ZGViaXRzX0RBVEEgPSBzdGQuY2Mg c3RkLmNvbXBhdC5jYwotQEAgLTU5LDYgKzYyLDkgQEAgc3RhbXAtbW9kdWxlcy1iaXRzOiAkKGlu Y2x1ZGViaXRzX0RBVEEpCi0gCi0gYWxsLWxvY2FsOiBzdGFtcC1tb2R1bGUtbWFuaWZlc3Qgc3Rh bXAtbW9kdWxlcy1iaXRzCi0gCi0rY2xlYW4tbG9jYWw6Ci0rCXJtIC1yZiBzdGFtcCogbGlic3Rk YysrLm1vZHVsZXMuanNvbiBzdGQuY2Mgc3RkLmNvbXBhdC5jYyBnY20uY2FjaGUKLSsKLSBoZWFk ZXJzID0KLSAKLSBpZiBFTkFCTEVfRVhURVJOX1RFTVBMQVRFCi1AQCAtODAsMTIgKzg2LDQ3IEBA IGVsc2UKLSBsaWJjX18yM2NvbnZlbmllbmNlX2xhX1NPVVJDRVMgPQotIGVuZGlmCi0gCi0rbGli bW9kdWxlc2NvbnZlbmllbmNlX2xhX1NPVVJDRVMgPSBzdGQuY2Mgc3RkLmNvbXBhdC5jYwotKwot ICMgVXNlIEMrKzI2IHNvIHRoYXQgc3RkOjpmaWxlYnVmOjpuYXRpdmVfaGFuZGxlKCkgaXMgYXZh aWxhYmxlLgotIHByaW50LmxvOiBwcmludC5jYwotIAkkKExUQ1hYQ09NUElMRSkgLXN0ZD1nbnUr KzI2IC1jICQ8Ci0gcHJpbnQubzogcHJpbnQuY2MKLSAJJChDWFhDT01QSUxFKSAtc3RkPWdudSsr MjYgLWMgJDwKLSAKLStNT0RVTEVTX0ZMQUdTID0gLWlzeXN0ZW0gJHtnbGliY3h4X3NyY2Rpcn0v aW5jbHVkZS9iYWNrd2FyZCAtZm1vZHVsZXMgXAotKwktV25vLXVua25vd24tcHJhZ21hcwotKwot KyMgVGhlc2UgZ28gaW50byBsaWJtb2R1bGVzY29udmVuaWVuY2UubGEgYW5kIGFyZSBsaW5rZWQg aW50byBsaWJzdGRjKysKLStzdGQubG86IHN0ZC5jYwotKwlpZiAhICQoTFRDWFhDT01QSUxFKSAk KE1PRFVMRVNfRkxBR1MpIC1jICQ8IDsgdGhlbiBcCi0rCSAgZWNobyAiQ2Fubm90IGNvbXBpbGUg c3RkIG1vZHVsZSIgPiYyOyBcCi0rCSAgZWNobyAiTW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0 aW9uIHdpbGwgYmUgbWlzc2luZyIgPiYyOyBcCi0rCSAgZWNobyA+ICQ8LnRtcCAmJiBtdiAkPC50 bXAgJDwgJiYgXAotKwkgICQoTFRDWFhDT01QSUxFKSAkKE1PRFVMRVNfRkxBR1MpIC1jICQ8IDsg XAotKwlmaQotK3N0ZC5vOiBzdGQuY2MKLSsJaWYgISAkKENYWENPTVBJTEUpICQoTU9EVUxFU19G TEFHUykgLWMgJDwgOyB0aGVuIFwKLSsJICBlY2hvICJDYW5ub3QgY29tcGlsZSBzdGQgbW9kdWxl IiA+JjI7IFwKLSsJICBlY2hvICJNb2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gd2lsbCBi ZSBtaXNzaW5nIiA+JjI7IFwKLSsJICBlY2hvID4gJDwudG1wICYmIG12ICQ8LnRtcCAkPCAmJiBc Ci0rCSAgJChDWFhDT01QSUxFKSAkKE1PRFVMRVNfRkxBR1MpIC1jICQ8IDsgXAotKwlmaQotK3N0 ZC5jb21wYXQubG86IHN0ZC5jb21wYXQuY2Mgc3RkLmxvCi0rCWlmICEgJChMVENYWENPTVBJTEUp ICQoTU9EVUxFU19GTEFHUykgLWMgJDwgOyB0aGVuIFwKLSsJICBlY2hvICJDYW5ub3QgY29tcGls ZSBzdGQuY29tcGF0IG1vZHVsZSIgPiYyOyBcCi0rCSAgZWNobyAiTW9kdWxlIGluaXRpYWxpemF0 aW9uIGZ1bmN0aW9uIHdpbGwgYmUgbWlzc2luZyIgPiYyOyBcCi0rCSAgZWNobyA+ICQ8LnRtcCAm JiBtdiAkPC50bXAgJDwgJiYgXAotKwkgICQoTFRDWFhDT01QSUxFKSAkKE1PRFVMRVNfRkxBR1Mp IC1jICQ8IDsgXAotKwlmaQotK3N0ZC5jb21wYXQubzogc3RkLmNvbXBhdC5jYyBzdGQubwotKwlp ZiAhICQoQ1hYQ09NUElMRSkgJChNT0RVTEVTX0ZMQUdTKSAtYyAkPCA7IHRoZW4gXAotKwkgIGVj aG8gIkNhbm5vdCBjb21waWxlIHN0ZC5jb21wYXQgbW9kdWxlIiA+JjI7IFwKLSsJICBlY2hvICJN b2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gd2lsbCBiZSBtaXNzaW5nIiA+JjI7IFwKLSsJ ICBlY2hvID4gJDwudG1wICYmIG12ICQ8LnRtcCAkPCAmJiBcCi0rCSAgJChDWFhDT01QSUxFKSAk KE1PRFVMRVNfRkxBR1MpIC1jICQ8IDsgXAotKwlmaQotKwotICMgQU1fQ1hYRkxBR1MgbmVlZHMg dG8gYmUgaW4gZWFjaCBzdWJkaXJlY3Rvcnkgc28gdGhhdCBpdCBjYW4gYmUKLSAjIG1vZGlmaWVk IGluIGEgcGVyLWxpYnJhcnkgb3IgcGVyLXN1Yi1saWJyYXJ5IHdheS4gIE5lZWQgdG8gbWFudWFs bHkKLSAjIHNldCB0aGlzIG9wdGlvbiBiZWNhdXNlIENPTkZJR19DWFhGTEFHUyBoYXMgdG8gYmUg YWZ0ZXIKLS0tLSBsaWJzdGRjKystdjMvc3JjL2MrKzIzL01ha2VmaWxlLmluCi0rKysgbGlic3Rk YysrLXYzL3NyYy9jKysyMy9NYWtlZmlsZS5pbgotQEAgLTEzMyw2ICsxMzMsMTAgQEAgQU1fVl9s dCA9ICQoYW1fX3ZfbHRfQEFNX1ZAKQotIGFtX192X2x0XyA9ICQoYW1fX3ZfbHRfQEFNX0RFRkFV TFRfVkApCi0gYW1fX3ZfbHRfMCA9IC0tc2lsZW50Ci0gYW1fX3ZfbHRfMSA9IAotK2xpYm1vZHVs ZXNjb252ZW5pZW5jZV9sYV9MSUJBREQgPQotK2FtX2xpYm1vZHVsZXNjb252ZW5pZW5jZV9sYV9P QkpFQ1RTID0gc3RkLmxvIHN0ZC5jb21wYXQubG8KLStsaWJtb2R1bGVzY29udmVuaWVuY2VfbGFf T0JKRUNUUyA9ICBcCi0rCSQoYW1fbGlibW9kdWxlc2NvbnZlbmllbmNlX2xhX09CSkVDVFMpCi0g QU1fVl9QID0gJChhbV9fdl9QX0BBTV9WQCkKLSBhbV9fdl9QXyA9ICQoYW1fX3ZfUF9AQU1fREVG QVVMVF9WQCkKLSBhbV9fdl9QXzAgPSBmYWxzZQotQEAgLTE1OSw3ICsxNjMsOCBAQCBBTV9WX0NY WExEID0gJChhbV9fdl9DWFhMRF9AQU1fVkApCi0gYW1fX3ZfQ1hYTERfID0gJChhbV9fdl9DWFhM RF9AQU1fREVGQVVMVF9WQCkKLSBhbV9fdl9DWFhMRF8wID0gQGVjaG8gIiAgQ1hYTEQgICAiICRA OwotIGFtX192X0NYWExEXzEgPSAKLS1TT1VSQ0VTID0gJChsaWJjX18yM2NvbnZlbmllbmNlX2xh X1NPVVJDRVMpCi0rU09VUkNFUyA9ICQobGliY19fMjNjb252ZW5pZW5jZV9sYV9TT1VSQ0VTKSBc Ci0rCSQobGlibW9kdWxlc2NvbnZlbmllbmNlX2xhX1NPVVJDRVMpCi0gYW1fX2Nhbl9ydW5faW5z dGFsbGluZm8gPSBcCi0gICBjYXNlICQkQU1fVVBEQVRFX0lORk9fRElSIGluIFwKLSAgICAgbnxu b3xOTykgZmFsc2U7OyBcCi1AQCAtNDU3LDEwICs0NjIsMTMgQEAgV0FSTl9DWFhGTEFHUyA9IFwK LSBBTV9DUFBGTEFHUyA9ICQoR0xJQkNYWF9JTkNMVURFUykgJChDUFBGTEFHUykKLSAKLSAjIENv bnZlbmllbmNlIGxpYnJhcnkgZm9yIEMrKzIzIHJ1bnRpbWUuCi0tbm9pbnN0X0xUTElCUkFSSUVT ID0gbGliYysrMjNjb252ZW5pZW5jZS5sYQotKyMgVGhpcyBsaWJjKysyM2NvbnZlbmllbmNlLmxh IG9uZSBpc24ndCBsaW5rZWQgaW50byBsaWJzdGRjKysubGEgeWV0LAotKyMgc28gYnVpbGQgYW4g YWRkaXRpb25hbCBsaWJtb2R1bGVzY29udmVuaWVuY2UubGEgd2hpY2ggaXMgbGlua2VkIGluLgot K25vaW5zdF9MVExJQlJBUklFUyA9IGxpYmMrKzIzY29udmVuaWVuY2UubGEgbGlibW9kdWxlc2Nv bnZlbmllbmNlLmxhCi0gCi0tIyBNb2R1bGUgc3RkIHN1cHBvcnQuICBOb3QgY29tcGlsZWQgZm9y IG5vdywgb25seSBpbnN0YWxsZWQuCi0rIyBNb2R1bGUgc3RkIHN1cHBvcnQuCi0gIyBMZXQncyBp bnN0YWxsIHRoZSBpbnRlcmZhY2UgdW5pdHMgaW4gdGhlIGJpdHMgc3ViZGlyZWN0b3J5LgotKyMg V2UgYWxzbyBjb21waWxlIHRoZW0gYW5kIGluY2x1ZGUgdGhlbSBpbiBsaWJtb2R1bGVzY29udmVu aWVuY2UubGEKLSB0b29sZXhlY2xpYl9EQVRBID0gbGlic3RkYysrLm1vZHVsZXMuanNvbgotIGlu Y2x1ZGViaXRzZGlyID0gJChneHhfaW5jbHVkZV9kaXIpL2JpdHMKLSBpbmNsdWRlYml0c19EQVRB ID0gc3RkLmNjIHN0ZC5jb21wYXQuY2MKLUBAIC00NzMsNiArNDgxLDEwIEBAIGhlYWRlcnMgPQot IHNvdXJjZXMgPSBzdGFja3RyYWNlLmNjIHByaW50LmNjCi0gQEdMSUJDWFhfSE9TVEVEX0ZBTFNF QGxpYmNfXzIzY29udmVuaWVuY2VfbGFfU09VUkNFUyA9IAotIEBHTElCQ1hYX0hPU1RFRF9UUlVF QGxpYmNfXzIzY29udmVuaWVuY2VfbGFfU09VUkNFUyA9ICQoc291cmNlcykgICQoaW5zdF9zb3Vy Y2VzKQotK2xpYm1vZHVsZXNjb252ZW5pZW5jZV9sYV9TT1VSQ0VTID0gc3RkLmNjIHN0ZC5jb21w YXQuY2MKLStNT0RVTEVTX0ZMQUdTID0gLWlzeXN0ZW0gJHtnbGliY3h4X3NyY2Rpcn0vaW5jbHVk ZS9iYWNrd2FyZCAtZm1vZHVsZXMgXAotKwktV25vLXVua25vd24tcHJhZ21hcwotKwotIAotICMg QU1fQ1hYRkxBR1MgbmVlZHMgdG8gYmUgaW4gZWFjaCBzdWJkaXJlY3Rvcnkgc28gdGhhdCBpdCBj YW4gYmUKLSAjIG1vZGlmaWVkIGluIGEgcGVyLWxpYnJhcnkgb3IgcGVyLXN1Yi1saWJyYXJ5IHdh eS4gIE5lZWQgdG8gbWFudWFsbHkKLUBAIC01ODYsNiArNTk4LDkgQEAgY2xlYW4tbm9pbnN0TFRM SUJSQVJJRVM6Ci0gbGliYysrMjNjb252ZW5pZW5jZS5sYTogJChsaWJjX18yM2NvbnZlbmllbmNl X2xhX09CSkVDVFMpICQobGliY19fMjNjb252ZW5pZW5jZV9sYV9ERVBFTkRFTkNJRVMpICQoRVhU UkFfbGliY19fMjNjb252ZW5pZW5jZV9sYV9ERVBFTkRFTkNJRVMpIAotIAkkKEFNX1ZfQ1hYTEQp JChDWFhMSU5LKSAgJChsaWJjX18yM2NvbnZlbmllbmNlX2xhX09CSkVDVFMpICQobGliY19fMjNj b252ZW5pZW5jZV9sYV9MSUJBREQpICQoTElCUykKLSAKLStsaWJtb2R1bGVzY29udmVuaWVuY2Uu bGE6ICQobGlibW9kdWxlc2NvbnZlbmllbmNlX2xhX09CSkVDVFMpICQobGlibW9kdWxlc2NvbnZl bmllbmNlX2xhX0RFUEVOREVOQ0lFUykgJChFWFRSQV9saWJtb2R1bGVzY29udmVuaWVuY2VfbGFf REVQRU5ERU5DSUVTKSAKLSsJJChBTV9WX0NYWExEKSQoQ1hYTElOSykgICQobGlibW9kdWxlc2Nv bnZlbmllbmNlX2xhX09CSkVDVFMpICQobGlibW9kdWxlc2NvbnZlbmllbmNlX2xhX0xJQkFERCkg JChMSUJTKQotKwotIG1vc3RseWNsZWFuLWNvbXBpbGU6Ci0gCS1ybSAtZiAqLiQoT0JKRVhUKQot IAotQEAgLTczOSw4ICs3NTQsOCBAQCBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0gCUBlY2hv ICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1 aWxkLiIKLSBjbGVhbjogY2xlYW4tYW0KLSAKLS1jbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIFwKLS0JbW9zdGx5Y2xlYW4tYW0KLStj bGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLWxvY2FsIFwKLSsJY2xl YW4tbm9pbnN0TFRMSUJSQVJJRVMgbW9zdGx5Y2xlYW4tYW0KLSAKLSBkaXN0Y2xlYW46IGRpc3Rj bGVhbi1hbQotIAktcm0gLWYgTWFrZWZpbGUKLUBAIC04MDksMTUgKzgyNCwxNSBAQCB1bmluc3Rh bGwtYW06IHVuaW5zdGFsbC1pbmNsdWRlYml0c0RBVEEgdW5pbnN0YWxsLXRvb2xleGVjbGliREFU QQotIC5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKLSAKLSAuUEhPTlk6IENUQUdTIEdU QUdTIFRBR1MgYWxsIGFsbC1hbSBhbGwtbG9jYWwgY2hlY2sgY2hlY2stYW0gY2xlYW4gXAotLQlj bGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVMgXAotLQlj c2NvcGVsaXN0LWFtIGN0YWdzIGN0YWdzLWFtIGRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBc Ci0tCWRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGR2 aSBkdmktYW0gXAotLQlodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1h bSBpbnN0YWxsLWRhdGEgXAotLQlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1k dmktYW0gaW5zdGFsbC1leGVjIFwKLS0JaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0 YWxsLWh0bWwtYW0gXAotLQlpbnN0YWxsLWluY2x1ZGViaXRzREFUQSBpbnN0YWxsLWluZm8gaW5z dGFsbC1pbmZvLWFtIFwKLS0JaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0g aW5zdGFsbC1wcyBcCi0tCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsLXRvb2xl eGVjbGliREFUQSBcCi0rCWNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1sb2NhbCBc Ci0rCWNsZWFuLW5vaW5zdExUTElCUkFSSUVTIGNzY29wZWxpc3QtYW0gY3RhZ3MgY3RhZ3MtYW0g ZGlzdGNsZWFuIFwKLSsJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNs ZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4tdGFncyBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBp bmZvIGluZm8tYW0gaW5zdGFsbCBcCi0rCWluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwt ZGF0YS1hbSBpbnN0YWxsLWR2aSBcCi0rCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKLSsJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5j bHVkZWJpdHNEQVRBIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1h biBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1h bSBpbnN0YWxsLXN0cmlwIGluc3RhbGwtdG9vbGV4ZWNsaWJEQVRBIFwKLSAJaW5zdGFsbGNoZWNr IGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKLSAJbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAotIAlt b3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1h bSBcCi1AQCAtODU1LDYgKzg3MCw5IEBAIHN0YW1wLW1vZHVsZXMtYml0czogJChpbmNsdWRlYml0 c19EQVRBKQotIAotIGFsbC1sb2NhbDogc3RhbXAtbW9kdWxlLW1hbmlmZXN0IHN0YW1wLW1vZHVs ZXMtYml0cwotIAotK2NsZWFuLWxvY2FsOgotKwlybSAtcmYgc3RhbXAqIGxpYnN0ZGMrKy5tb2R1 bGVzLmpzb24gc3RkLmNjIHN0ZC5jb21wYXQuY2MgZ2NtLmNhY2hlCi0rCi0gdnBhdGggJSAkKHRv cF9zcmNkaXIpL3NyYy9jKysyMwotIAotICMgVXNlIEMrKzI2IHNvIHRoYXQgc3RkOjpmaWxlYnVm OjpuYXRpdmVfaGFuZGxlKCkgaXMgYXZhaWxhYmxlLgotQEAgLTg2Myw2ICs4ODEsMzYgQEAgcHJp bnQubG86IHByaW50LmNjCi0gcHJpbnQubzogcHJpbnQuY2MKLSAJJChDWFhDT01QSUxFKSAtc3Rk PWdudSsrMjYgLWMgJDwKLSAKLSsjIFRoZXNlIGdvIGludG8gbGlibW9kdWxlc2NvbnZlbmllbmNl LmxhIGFuZCBhcmUgbGlua2VkIGludG8gbGlic3RkYysrCi0rc3RkLmxvOiBzdGQuY2MKLSsJaWYg ISAkKExUQ1hYQ09NUElMRSkgJChNT0RVTEVTX0ZMQUdTKSAtYyAkPCA7IHRoZW4gXAotKwkgIGVj aG8gIkNhbm5vdCBjb21waWxlIHN0ZCBtb2R1bGUiID4mMjsgXAotKwkgIGVjaG8gIk1vZHVsZSBp bml0aWFsaXphdGlvbiBmdW5jdGlvbiB3aWxsIGJlIG1pc3NpbmciID4mMjsgXAotKwkgIGVjaG8g PiAkPC50bXAgJiYgbXYgJDwudG1wICQ8ICYmIFwKLSsJICAkKExUQ1hYQ09NUElMRSkgJChNT0RV TEVTX0ZMQUdTKSAtYyAkPCA7IFwKLSsJZmkKLStzdGQubzogc3RkLmNjCi0rCWlmICEgJChDWFhD T01QSUxFKSAkKE1PRFVMRVNfRkxBR1MpIC1jICQ8IDsgdGhlbiBcCi0rCSAgZWNobyAiQ2Fubm90 IGNvbXBpbGUgc3RkIG1vZHVsZSIgPiYyOyBcCi0rCSAgZWNobyAiTW9kdWxlIGluaXRpYWxpemF0 aW9uIGZ1bmN0aW9uIHdpbGwgYmUgbWlzc2luZyIgPiYyOyBcCi0rCSAgZWNobyA+ICQ8LnRtcCAm JiBtdiAkPC50bXAgJDwgJiYgXAotKwkgICQoQ1hYQ09NUElMRSkgJChNT0RVTEVTX0ZMQUdTKSAt YyAkPCA7IFwKLSsJZmkKLStzdGQuY29tcGF0LmxvOiBzdGQuY29tcGF0LmNjIHN0ZC5sbwotKwlp ZiAhICQoTFRDWFhDT01QSUxFKSAkKE1PRFVMRVNfRkxBR1MpIC1jICQ8IDsgdGhlbiBcCi0rCSAg ZWNobyAiQ2Fubm90IGNvbXBpbGUgc3RkLmNvbXBhdCBtb2R1bGUiID4mMjsgXAotKwkgIGVjaG8g Ik1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiB3aWxsIGJlIG1pc3NpbmciID4mMjsgXAot KwkgIGVjaG8gPiAkPC50bXAgJiYgbXYgJDwudG1wICQ8ICYmIFwKLSsJICAkKExUQ1hYQ09NUElM RSkgJChNT0RVTEVTX0ZMQUdTKSAtYyAkPCA7IFwKLSsJZmkKLStzdGQuY29tcGF0Lm86IHN0ZC5j b21wYXQuY2Mgc3RkLm8KLSsJaWYgISAkKENYWENPTVBJTEUpICQoTU9EVUxFU19GTEFHUykgLWMg JDwgOyB0aGVuIFwKLSsJICBlY2hvICJDYW5ub3QgY29tcGlsZSBzdGQuY29tcGF0IG1vZHVsZSIg PiYyOyBcCi0rCSAgZWNobyAiTW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIHdpbGwgYmUg bWlzc2luZyIgPiYyOyBcCi0rCSAgZWNobyA+ICQ8LnRtcCAmJiBtdiAkPC50bXAgJDwgJiYgXAot KwkgICQoQ1hYQ09NUElMRSkgJChNT0RVTEVTX0ZMQUdTKSAtYyAkPCA7IFwKLSsJZmkKLSsKLSAj IFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwg dmFyaWFibGVzLgotICMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFz dCkgbWF5IGJlIGV4Y2VlZGVkLgotIC5OT0VYUE9SVDoKCmRpZmYgLS1naXQgYS9nY2MxNi11Z2xp ZmljYXRpb24ucGF0Y2ggYi9nY2MxNi11Z2xpZmljYXRpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDFiMDBlOTEuLjAwMDAwMDAKLS0tIGEvZ2NjMTYtdWdsaWZpY2F0aW9u LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjI1ICswLDAgQEAKLTIwMjYtMDMtMTkgIEpha3Vi IEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JKiBnKysuZGcvcGx1Z2luL3BsdWdpbi5l eHAgKHBsdWdpbl90ZXN0X2xpc3QpOiBBZGQgdWdsaWZpY2F0aW9uIHRlc3RzLgotCSogZysrLmRn L3BsdWdpbi91Z2xpZmljYXRpb25fcGx1Z2luLmNjOiBOZXcgZmlsZS4KLQkqIGcrKy5kZy9wbHVn aW4vdWdsaWZpY2F0aW9uLkM6IE5ldyB0ZXN0LgotCSogZysrLmRnL3BsdWdpbi91Z2xpZmljYXRp b24tYysrOTguQzogTmV3IHRlc3QuCi0JKiBnKysuZGcvcGx1Z2luL3VnbGlmaWNhdGlvbi1jKysx MS5DOiBOZXcgdGVzdC4KLQkqIGcrKy5kZy9wbHVnaW4vdWdsaWZpY2F0aW9uLWMrKzE0LkM6IE5l dyB0ZXN0LgotCSogZysrLmRnL3BsdWdpbi91Z2xpZmljYXRpb24tYysrMTcuQzogTmV3IHRlc3Qu Ci0JKiBnKysuZGcvcGx1Z2luL3VnbGlmaWNhdGlvbi1jKysyMC5DOiBOZXcgdGVzdC4KLQkqIGcr Ky5kZy9wbHVnaW4vdWdsaWZpY2F0aW9uLWMrKzIzLkM6IE5ldyB0ZXN0LgotCSogZysrLmRnL3Bs dWdpbi91Z2xpZmljYXRpb24tYysrMjYuQzogTmV3IHRlc3QuCi0KLS0tLSBnY2MvdGVzdHN1aXRl L2crKy5kZy9wbHVnaW4vcGx1Z2luLmV4cC5qagkyMDI2LTAzLTE4IDE1OjQwOjE1LjY0NjAwODkz NCArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi9wbHVnaW4uZXhwCTIwMjYt MDMtMTggMTY6NDg6MzQuMzk1Mjg0ODg5ICswMTAwCi1AQCAtNzgsNiArNzgsMTUgQEAgc2V0IHBs dWdpbl90ZXN0X2xpc3QgW2xpc3QgXAotICAgICAJICBzaG93LXRlbXBsYXRlLXRyZWUtY29sb3It bm8taGlnaGxpZ2h0LWNvbG9ycy5DIFwKLSAgICAgCSAgc2hvdy10ZW1wbGF0ZS10cmVlLWNvbG9y LWxhYmVscy5DIFwKLSAgICAgCSAgc2hvdy10ZW1wbGF0ZS10cmVlLWNvbG9yLW5vLWVsaWRlLXR5 cGUuQyB9IFwKLSsgICAgeyB1Z2xpZmljYXRpb25fcGx1Z2luLmNjIFwKLSsJICB1Z2xpZmljYXRp b24uQyBcCi0rICAgIAkgIHVnbGlmaWNhdGlvbi1jKys5OC5DIFwKLSsgICAgCSAgdWdsaWZpY2F0 aW9uLWMrKzExLkMgXAotKyAgICAJICB1Z2xpZmljYXRpb24tYysrMTQuQyBcCi0rICAgIAkgIHVn bGlmaWNhdGlvbi1jKysxNy5DIFwKLSsgICAgCSAgdWdsaWZpY2F0aW9uLWMrKzIwLkMgXAotKyAg ICAJICB1Z2xpZmljYXRpb24tYysrMjMuQyBcCi0rICAgIAkgIHVnbGlmaWNhdGlvbi1jKysyNi5D IH0gXAotICAgICB7IGNvbW1lbnRfcGx1Z2luLmNjIGNvbW1lbnRzLTEuQyB9IFwKLSBdCi0gCi0t LS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvcGx1Z2luL3VnbGlmaWNhdGlvbl9wbHVnaW4uY2MuamoJ MjAyNi0wMy0xOSAwMDowNDo0MS45MjcyMzE3MzQgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2cr Ky5kZy9wbHVnaW4vdWdsaWZpY2F0aW9uX3BsdWdpbi5jYwkyMDI2LTAzLTE5IDA5OjAwOjA2Ljc0 MTQzMzAxNSArMDEwMAotQEAgLTAsMCArMSwzNTMgQEAKLSsjaW5jbHVkZSAiZ2NjLXBsdWdpbi5o IgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSAiY29uZmlnLmgiCi0rI2luY2x1ZGUg InN5c3RlbS5oIgotKyNpbmNsdWRlICJjb3JldHlwZXMuaCIKLSsjaW5jbHVkZSAidHJlZS5oIgot KyNpbmNsdWRlICJpbnRsLmgiCi0rI2luY2x1ZGUgImNwL2NwLXRyZWUuaCIKLSsjaW5jbHVkZSAi Y3AvbmFtZS1sb29rdXAuaCIKLSsjaW5jbHVkZSAiZGlhZ25vc3RpYy5oIgotKyNpbmNsdWRlICJz dHJpbmdwb29sLmgiCi0rCi0raW50IHBsdWdpbl9pc19HUExfY29tcGF0aWJsZTsKLSsKLSt2b2lk IHBsdWdpbl93YWxrX25zICh0cmVlKTsKLSsKLStjb25zdCBjaGFyICpiYWRuYW1lc1tdID0gewot KyAgLyogU2VlIGxpYnN0ZGMrKy12My90ZXN0c3VpdGUvMTdfaW50cm8veyxiYWR9bmFtZXMuY2Mu ICAqLwotKyAgIl9BIiwgIl9CIiwgIl9DIiwgIl9HIiwgIl9MIiwgIl9OIiwgIl9QIiwgIl9TIiwg Il9UIiwgIl9VIiwgIl9YIiwKLSsgICJfX2RlcmVmIiwgIl9fdXNlZCIsICJfX3VudXNlZCIsICJf X2lubGluZSIsICJfQ29tcGxleCIsCi0rICAiX19pc3R5cGUiLCAiX19tYXNrcnVuZSIsICJfX3Rv bG93ZXIiLCAiX190b3VwcGVyIiwgIl9fd2NoYXJfdCIsCi0rICAiX193aW50X3QiLCAiX3JlcyIs ICJfcmVzX2V4dCIsICJfQzIiLCAiX19sb2NrYWJsZSIsICJfX251bGxfc2VudGluZWwiLAotKyAg Il9fcGFja2VkIiwgIl9fd2VhayIsICJfX3N0cm9uZyIsICJfSW5fIiwgIl9Jbm91dF8iLCAiX091 dF8iLAotKyAgIl9SZXNlcnZlZF8iLCAiX19pbm91dCIsICJfX2luX29wdCIsICJfX291dF9vcHQi Ci0rfTsKLSsKLSt2ZWM8dHJlZT4gbm9udWdseV9uYW1lczsKLStoYXNoX3NldDx0cmVlPiB3aGl0 ZWxpc3Q7Ci0rYm9vbCBpbXBsX25zOwotKwotK3ZvaWQKLStwbHVnaW5fY2hlY2tfZGVjbCAodHJl ZSBkZWNsKQotK3sKLSsgIGlmIChkZWNsID09IE5VTExfVFJFRSkKLSsgICAgcmV0dXJuOwotKwot KyAgaWYgKFZBUl9PUl9GVU5DVElPTl9ERUNMX1AgKGRlY2wpCi0rICAgICAgJiYgREVDTF9FWFRF Uk5BTCAoZGVjbCkKLSsgICAgICAmJiBERUNMX0NPTlRFWFQgKGRlY2wpCi0rICAgICAgJiYgVFJF RV9DT0RFIChERUNMX0NPTlRFWFQgKGRlY2wpKSA9PSBGVU5DVElPTl9ERUNMKQotKyAgICByZXR1 cm47Ci0rCi0rICB0cmVlIG5hbWUgPSBERUNMX05BTUUgKGRlY2wpOwotKyAgaWYgKG5hbWUgPT0g TlVMTF9UUkVFCi0rICAgICAgfHwgSURFTlRJRklFUl9BTk9OX1AgKG5hbWUpCi0rICAgICAgfHwg bmFtZSA9PSB0aGlzX2lkZW50aWZpZXIKLSsgICAgICB8fCBJREVOVElGSUVSX0FOWV9PUF9QIChu YW1lKSkKLSsgICAgcmV0dXJuOwotKwotKyAgY29uc3QgY2hhciAqY25hbWUgPSBJREVOVElGSUVS X1BPSU5URVIgKG5hbWUpOwotKyAgaWYgKG1lbWNtcCAoY25hbWUsICJhdXRvOiIsIDUpID09IDAp Ci0rICAgIHJldHVybjsKLSsKLSsgIGlmIChjbmFtZVswXSAhPSAnXycKLSsgICAgICB8fCAoY25h bWVbMV0gIT0gJ18nCi0rCSAgJiYgIUlTVVBQRVIgKGNuYW1lWzFdKQotKwkgICYmIGNuYW1lWzFd KSkKLSsgICAgewotKyAgICAgIG5vbnVnbHlfbmFtZXMuc2FmZV9wdXNoIChkZWNsKTsKLSsgICAg ICByZXR1cm47Ci0rICAgIH0KLSsKLSsgIGJvb2wgYmFkbmFtZSA9IGZhbHNlOwotKyAgZm9yIChp bnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFIChiYWRuYW1lcyk7ICsraSkKLSsgICAgaWYgKHN0cmNt cCAoYmFkbmFtZXNbaV0sIGNuYW1lKSA9PSAwKQotKyAgICAgIHsKLSsJYmFkbmFtZSA9IHRydWU7 Ci0rCWJyZWFrOwotKyAgICAgIH0KLSsgIGlmICghYmFkbmFtZSAmJiBjbmFtZVsxXSA9PSAnRScg JiYgSVNESUdJVCAoY25hbWVbMl0pKQotKyAgICB7Ci0rICAgICAgaWYgKGNuYW1lWzJdICE9ICcw JwotKwkgICYmICghY25hbWVbM10gfHwgKChjbmFtZVsyXSA9PSAnMScgfHwgY25hbWVbMl0gPT0g JzInKQotKwkJCSAgICAmJiBJU0RJR0lUIChjbmFtZVszXSkKLSsJCQkgICAgJiYgIWNuYW1lWzRd KSkpCi0rCWJhZG5hbWUgPSB0cnVlOwotKyAgICB9Ci0rICBlbHNlIGlmIChtZW1jbXAgKGNuYW1l ICsgMSwgIl90Z18iLCA0KSA9PSAwKQotKyAgICBiYWRuYW1lID0gdHJ1ZTsKLSsgIGlmIChiYWRu YW1lKQotKyAgICBpbmZvcm0gKERFQ0xfU09VUkNFX0xPQ0FUSU9OIChkZWNsKSwgImJhZG5hbWUg JXFzIiwgY25hbWUpOwotK30KLSsKLSt0cmVlCi0rcGx1Z2luX2NoZWNrX3RyZWUgKHRyZWUgKnRw LCBpbnQgKi8qd2Fsa19zdWJ0cmVlcyovLCB2b2lkICovKmRhdGEqLykKLSt7Ci0rICBpZiAoVFJF RV9DT0RFICgqdHApID09IEJJTkRfRVhQUikKLSsgICAgZm9yICh0cmVlIHZhciA9IEJJTkRfRVhQ Ul9WQVJTICgqdHApOyB2YXI7IHZhciA9IERFQ0xfQ0hBSU4gKHZhcikpCi0rICAgICAgcGx1Z2lu X2NoZWNrX2RlY2wgKHZhcik7Ci0rICBpZiAoVFJFRV9DT0RFICgqdHApID09IERFQ0xfRVhQUikK LSsgICAgcGx1Z2luX2NoZWNrX2RlY2wgKERFQ0xfRVhQUl9ERUNMICgqdHApKTsKLSsgIHJldHVy biBOVUxMX1RSRUU7Ci0rfQotKwotK3ZvaWQKLStwbHVnaW5fY2hlY2tfZm4gKHRyZWUgZGVjbCkK LSt7Ci0rICBmb3IgKHRyZWUgYXJnID0gREVDTF9BUkdVTUVOVFMgKGRlY2wpOyBhcmc7IGFyZyA9 IERFQ0xfQ0hBSU4gKGFyZykpCi0rICAgIHBsdWdpbl9jaGVja19kZWNsIChhcmcpOwotKwotKyAg aWYgKERFQ0xfREVGQVVMVEVEX0ZOIChkZWNsKSkKLSsgICAgcmV0dXJuOwotKyAgY3Bfd2Fsa190 cmVlX3dpdGhvdXRfZHVwbGljYXRlcyAoJkRFQ0xfU0FWRURfVFJFRSAoZGVjbCksIHBsdWdpbl9j aGVja190cmVlLAotKwkJCQkgICBOVUxMKTsKLSt9Ci0rCi0rYm9vbAotK3BsdWdpbl9oZWFkZXJf Y2hlY2sgKHRyZWUgZGVjbCkKLSt7Ci0rICBleHBhbmRlZF9sb2NhdGlvbiBlbG9jID0gZXhwYW5k X2xvY2F0aW9uIChERUNMX1NPVVJDRV9MT0NBVElPTiAoZGVjbCkpOwotKyAgaWYgKGVsb2MuZmls ZSA9PSBOVUxMKQotKyAgICByZXR1cm4gZmFsc2U7Ci0rICBpZiAoc3Ryc3RyIChlbG9jLmZpbGUs ICIvbGlic3RkYysrLXYzL2luY2x1ZGUvIikgPT0gTlVMTAotKyAgICAgICYmIHN0cnN0ciAoZWxv Yy5maWxlLCAiL2xpYnN0ZGMrKy12My9saWJzdXBjKysvIikgPT0gTlVMTCkKLSsgICAgcmV0dXJu IGZhbHNlOwotKyAgcmV0dXJuIHRydWU7Ci0rfQotKwotK3ZvaWQKLStwbHVnaW5fd2Fsa19kZWNs ICh0cmVlIGRlY2wpCi0rewotKyAgaWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gTkFNRVNQQUNFX0RF Q0wpCi0rICAgIHsKLSsgICAgICBpZiAoaW1wbF9ucwotKwkgIHx8IChERUNMX05BTUUgKGRlY2wp Ci0rCSAgICAgICYmIElERU5USUZJRVJfUE9JTlRFUiAoREVDTF9OQU1FIChkZWNsKSlbMF0gIT0g J18nCi0rCSAgICAgICYmICFJREVOVElGSUVSX0FOT05fUCAoREVDTF9OQU1FIChkZWNsKSkpCi0r CSAgfHwgREVDTF9OQU1FU1BBQ0VfSU5MSU5FX1AgKGRlY2wpKQotKwlwbHVnaW5fd2Fsa19ucyAo ZGVjbCk7Ci0rICAgICAgZWxzZQotKwl7Ci0rCSAgaW1wbF9ucyA9IHRydWU7Ci0rCSAgcGx1Z2lu X3dhbGtfbnMgKGRlY2wpOwotKwkgIGltcGxfbnMgPSBmYWxzZTsKLSsJfQotKyAgICAgIHJldHVy bjsKLSsgICAgfQotKwotKyAgaWYgKCFwbHVnaW5faGVhZGVyX2NoZWNrIChkZWNsKSkKLSsgICAg cmV0dXJuOwotKwotKyAgaWYgKCFpbXBsX25zCi0rICAgICAgJiYgREVDTF9OQU1FIChkZWNsKQot KyAgICAgICYmICFJREVOVElGSUVSX0FOT05fUCAoREVDTF9OQU1FIChkZWNsKSkKLSsgICAgICAm JiAhSURFTlRJRklFUl9BTllfT1BfUCAoREVDTF9OQU1FIChkZWNsKSkKLSsgICAgICAmJiBJREVO VElGSUVSX1BPSU5URVIgKERFQ0xfTkFNRSAoZGVjbCkpWzBdICE9ICdfJykKLSsgICAgd2hpdGVs aXN0LmFkZCAoREVDTF9OQU1FIChkZWNsKSk7Ci0rICBlbHNlIGlmIChpbXBsX25zICYmIERFQ0xf TkFNRSAoZGVjbCkpCi0rICAgIHBsdWdpbl9jaGVja19kZWNsIChkZWNsKTsKLSsKLSsgIGlmIChU UkVFX0NPREUgKGRlY2wpID09IFRFTVBMQVRFX0RFQ0wpCi0rICAgIHsKLSsgICAgICB0cmVlIHBh cm1zID0gREVDTF9JTk5FUk1PU1RfVEVNUExBVEVfUEFSTVMgKGRlY2wpOwotKyAgICAgIGZvciAo dHJlZSBub2RlIDogdHJlZV92ZWNfcmFuZ2UgKHBhcm1zKSkKLSsJcGx1Z2luX2NoZWNrX2RlY2wg KFRSRUVfVkFMVUUgKG5vZGUpKTsKLSsgICAgfQotKwotKyAgaWYgKERFQ0xfRlVOQ1RJT05fVEVN UExBVEVfUCAoZGVjbCkpCi0rICAgIHBsdWdpbl9jaGVja19mbiAoREVDTF9URU1QTEFURV9SRVNV TFQgKGRlY2wpKTsKLSsgIGVsc2UgaWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gRlVOQ1RJT05fREVD TAotKwkgICAmJiBERUNMX0xBTkdfU1BFQ0lGSUMgKGRlY2wpCi0rCSAgICYmIERFQ0xfVEVNUExB VEVfSU5GTyAoZGVjbCkpCi0rICAgIHBsdWdpbl9jaGVja19mbiAoZGVjbCk7Ci0rCi0rICBpZiAo REVDTF9DTEFTU19URU1QTEFURV9QIChkZWNsKSkKLSsgICAgZGVjbCA9IERFQ0xfVEVNUExBVEVf UkVTVUxUIChkZWNsKTsKLSsgIGlmIChUUkVFX0NPREUgKGRlY2wpID09IFRZUEVfREVDTAotKyAg ICAgICYmIERFQ0xfSU1QTElDSVRfVFlQRURFRl9QIChkZWNsKSkKLSsgICAgewotKyAgICAgIGJv b2wgc2F2ZV9pbXBsX25zID0gaW1wbF9uczsKLSsgICAgICBpZiAoaW1wbF9ucwotKwkgICYmIERF Q0xfTkFNRSAoZGVjbCkKLSsJICAmJiBpZF9lcXVhbCAoREVDTF9OQU1FIChkZWNsKSwgIl9Qcm9t aXNlX2VyYXNlZCIpCi0rCSAgJiYgREVDTF9DT05URVhUIChkZWNsKQotKwkgICYmIFRSRUVfQ09E RSAoREVDTF9DT05URVhUIChkZWNsKSkgPT0gTkFNRVNQQUNFX0RFQ0wKLSsJICAmJiBERUNMX05B TUUgKERFQ0xfQ09OVEVYVCAoZGVjbCkpCi0rCSAgJiYgaWRfZXF1YWwgKERFQ0xfTkFNRSAoREVD TF9DT05URVhUIChkZWNsKSksICJfX2dlbiIpKQotKwkvKiBXb3JrYXJvdW5kOiBzdGQ6OmdlbmVy YXRvcjxSLCBWLCBBPjo6cHJvbWlzZV90eXBlIGluCi0rCSAgIHRoZSBzdGFuZGFyZCBpcyBhY3R1 YWxseSBkZWZpbmVkIGFzIHN0ZDo6X19nZW46Ol9Qcm9taXNlX2VyYXNlZCwKLSsJICAgYnV0IHdl IHdhbnQgdG8gd2hpdGVsaXN0IGl0cyBtZW1iZXJzLiAgVGVtcG9yYXJpbHkgY2xlYXIKLSsJICAg aW1wbF9ucyBpbiB0aGF0IGNsYXNzLiAgKi8KLSsJaW1wbF9ucyA9IGZhbHNlOwotKyAgICAgIGlm IChSRUNPUkRfT1JfVU5JT05fVFlQRV9QIChUUkVFX1RZUEUgKGRlY2wpKSkKLSsJewotKwkgIGZv ciAodHJlZSBmbGQgPSBUWVBFX0ZJRUxEUyAoVFJFRV9UWVBFIChkZWNsKSk7Ci0rCSAgICAgICBm bGQ7IGZsZCA9IERFQ0xfQ0hBSU4gKGZsZCkpCi0rCSAgICBwbHVnaW5fd2Fsa19kZWNsIChmbGQp OwotKwkgIGZvciAodHJlZSBmID0gREVDTF9GUklFTkRMSVNUIChkZWNsKTsgZjsgZiA9IFRSRUVf Q0hBSU4gKGYpKQotKwkgICAgZm9yICh0cmVlIGwgPSBGUklFTkRfREVDTFMgKGYpOyBsOyBsID0g VFJFRV9DSEFJTiAobCkpCi0rCSAgICAgIHBsdWdpbl93YWxrX2RlY2wgKFRSRUVfVkFMVUUgKGwp KTsKLSsJfQotKyAgICAgIGVsc2UgaWYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChkZWNsKSkgPT0g RU5VTUVSQUxfVFlQRSkKLSsJZm9yICh0cmVlIGVuID0gVFlQRV9WQUxVRVMgKFRSRUVfVFlQRSAo ZGVjbCkpOwotKwkgICAgIGVuOyBlbiA9IFRSRUVfQ0hBSU4gKGVuKSkKLSsJICBwbHVnaW5fd2Fs a19kZWNsIChUUkVFX1ZBTFVFIChlbikpOwotKyAgICAgIGltcGxfbnMgPSBzYXZlX2ltcGxfbnM7 Ci0rICAgIH0KLSt9Ci0rCi0rdm9pZAotK3BsdWdpbl93YWxrX2JpbmRpbmcgKHRyZWUgYmluZGlu ZykKLSt7Ci0rICB0cmVlIHZhbHVlID0gTlVMTF9UUkVFOwotKwotKyAgaWYgKFNUQVRfSEFDS19Q IChiaW5kaW5nKSkKLSsgICAgewotKyAgICAgIGlmICghU1RBVF9UWVBFX0hJRERFTl9QIChiaW5k aW5nKQotKwkgICYmIFNUQVRfVFlQRSAoYmluZGluZykpCi0rCXJldHVybiBwbHVnaW5fd2Fsa19k ZWNsIChTVEFUX1RZUEUgKGJpbmRpbmcpKTsKLSsgICAgICBlbHNlIGlmICghU1RBVF9ERUNMX0hJ RERFTl9QIChiaW5kaW5nKSkKLSsJdmFsdWUgPSBTVEFUX0RFQ0wgKGJpbmRpbmcpOwotKyAgICB9 Ci0rICBlbHNlCi0rICAgIHZhbHVlID0gYmluZGluZzsKLSsKLSsgIHZhbHVlID0gb3ZsX3NraXBf aGlkZGVuICh2YWx1ZSk7Ci0rICBpZiAodmFsdWUpCi0rICAgIHsKLSsgICAgICB2YWx1ZSA9IE9W TF9GSVJTVCAodmFsdWUpOwotKyAgICAgIHJldHVybiBwbHVnaW5fd2Fsa19kZWNsICh2YWx1ZSk7 Ci0rICAgIH0KLSt9Ci0rCi0rdm9pZAotK3BsdWdpbl93YWxrX25zICh0cmVlIG5zKQotK3sKLSsg IHVzaW5nIGl0ZXJ0ID0gaGFzaF90YWJsZTxuYW1lZF9kZWNsX2hhc2g+OjppdGVyYXRvcjsKLSsg IGl0ZXJ0IGVuZCAoREVDTF9OQU1FU1BBQ0VfQklORElOR1MgKG5zKS0+ZW5kICgpKTsKLSsgIGZv ciAoaXRlcnQgaXRlciAoREVDTF9OQU1FU1BBQ0VfQklORElOR1MgKG5zKS0+YmVnaW4gKCkpOwot KyAgICAgICBpdGVyICE9IGVuZDsgKytpdGVyKQotKyAgICB7Ci0rICAgICAgdHJlZSBiID0gKml0 ZXI7Ci0rICAgICAgZ2NjX2Fzc2VydCAoVFJFRV9DT0RFIChiKSAhPSBCSU5ESU5HX1ZFQ1RPUik7 Ci0rICAgICAgcGx1Z2luX3dhbGtfYmluZGluZyAoYik7Ci0rICAgIH0KLSt9Ci0rCi0raW50Ci0r cGx1Z2luX2N0eF9jaGVjayAodHJlZSBkZWNsKQotK3sKLSsgIGludCByZXQgPSAxOwotKyAgdHJl ZSBjdHggPSBERUNMX0NPTlRFWFQgKGRlY2wpOwotKyAgd2hpbGUgKGN0eCkKLSsgICAgewotKyAg ICAgIGlmIChjdHggPT0gc3RkX25vZGUpCi0rCXJldHVybiByZXQ7Ci0rICAgICAgaWYgKFRSRUVf Q09ERSAoY3R4KSA9PSBOQU1FU1BBQ0VfREVDTAotKwkgICYmIERFQ0xfTkFNRSAoY3R4KQotKwkg ICYmIGlkX2VxdWFsIChERUNMX05BTUUgKGN0eCksICJfX2dudV9jeHgiKQotKwkgICYmIENQX0RF Q0xfQ09OVEVYVCAoY3R4KSA9PSBnbG9iYWxfbmFtZXNwYWNlKQotKwlyZXR1cm4gMjsKLSsgICAg ICBpZiAoVFJFRV9DT0RFIChjdHgpID09IE5BTUVTUEFDRV9ERUNMCi0rCSAgJiYgKCFERUNMX05B TUUgKGN0eCkKLSsJICAgICAgfHwgSURFTlRJRklFUl9QT0lOVEVSIChERUNMX05BTUUgKGN0eCkp WzBdID09ICdfJwotKwkgICAgICB8fCBJREVOVElGSUVSX0FOT05fUCAoREVDTF9OQU1FIChjdHgp KSkKLSsJICAmJiAhREVDTF9OQU1FU1BBQ0VfSU5MSU5FX1AgKGN0eCkpCi0rCXJldCA9IDI7Ci0r ICAgICAgaWYgKFRZUEVfUCAoY3R4KSkKLSsJY3R4ID0gVFlQRV9DT05URVhUIChjdHgpOwotKyAg ICAgIGVsc2UKLSsJY3R4ID0gREVDTF9DT05URVhUIChjdHgpOwotKyAgICB9Ci0rICByZXR1cm4g MDsKLSt9Ci0rCi0rdm9pZAotK3BsdWdpbl9maW5pc2hfcGFyc2VfZnVuY3Rpb24gKHZvaWQgKmV2 ZW50X2RhdGEsIHZvaWQgKikKLSt7Ci0rICB0cmVlIGRlY2wgPSAodHJlZSkgZXZlbnRfZGF0YTsK LSsgIGlmICghcGx1Z2luX2hlYWRlcl9jaGVjayAoZGVjbCkpCi0rICAgIHJldHVybjsKLSsKLSsg IC8qIE9ubHkgZGlhZ25vc2Ugc3R1ZmYgbmVzdGVkIGluIDo6c3RkIG9yIDo6X19nbnVfY3h4Ci0r ICAgICBuYW1lc3BhY2VzLiAgKi8KLSsgIGlmICghcGx1Z2luX2N0eF9jaGVjayAoZGVjbCkpCi0r ICAgIHJldHVybjsKLSsKLSsgIC8qIFRlbXBsYXRlcyBhcmUgaGFuZGxlZCBmcm9tIHBsdWdpbl93 YWxrX25zLiAgKi8KLSsgIGlmIChERUNMX0xBTkdfU1BFQ0lGSUMgKGRlY2wpICYmIERFQ0xfVEVN UExBVEVfSU5GTyAoZGVjbCkpCi0rICAgIHJldHVybjsKLSsgIHBsdWdpbl9jaGVja19mbiAoZGVj bCk7Ci0rfQotKwotK3ZvaWQKLStwbHVnaW5fd2Fsa19zcGVjaWFsaXphdGlvbiAoYm9vbCwgc3Bl Y19lbnRyeSAqZW50cnksIHZvaWQgKikKLSt7Ci0rICB0cmVlIGluZm87Ci0rICBpZiAoVFlQRV9Q IChlbnRyeS0+c3BlYykpCi0rICAgIGluZm8gPSBUWVBFX1RFTVBMQVRFX0lORk8gKGVudHJ5LT5z cGVjKTsKLSsgIGVsc2UKLSsgICAgaW5mbyA9IERFQ0xfVEVNUExBVEVfSU5GTyAoZW50cnktPnNw ZWMpOwotKyAgaWYgKFBSSU1BUllfVEVNUExBVEVfUCAoVElfVEVNUExBVEUgKGluZm8pKSAmJiBU SV9QQVJUSUFMX0lORk8gKGluZm8pKQotKyAgICBpbmZvID0gVElfUEFSVElBTF9JTkZPIChpbmZv KTsKLSsgIHRyZWUgZGVjbCA9IFRJX1RFTVBMQVRFIChpbmZvKTsKLSsgIGlmIChpbnQgYyA9IHBs dWdpbl9jdHhfY2hlY2sgKGRlY2wpKQotKyAgICB7Ci0rICAgICAgaW1wbF9ucyA9IGMgPT0gMjsK LSsgICAgICBwbHVnaW5fd2Fsa19kZWNsIChkZWNsKTsKLSsgICAgfQotK30KLSsKLSt2b2lkCi0r cGx1Z2luX2ZpbmlzaF91bml0ICh2b2lkICosIHZvaWQgKikKLSt7Ci0rICBwbHVnaW5fd2Fsa19u cyAoc3RkX25vZGUpOwotKyAgdHJlZSBnbnVjeHhfbnMgPSBsb29rdXBfcXVhbGlmaWVkX25hbWUg KGdsb2JhbF9uYW1lc3BhY2UsICJfX2dudV9jeHgiKTsKLSsgIGlmIChnbnVjeHhfbnMgJiYgVFJF RV9DT0RFIChnbnVjeHhfbnMpID09IE5BTUVTUEFDRV9ERUNMKQotKyAgICBwbHVnaW5fd2Fsa19u cyAoZ251Y3h4X25zKTsKLSsgIHdhbGtfc3BlY2lhbGl6YXRpb25zIChmYWxzZSwgcGx1Z2luX3dh bGtfc3BlY2lhbGl6YXRpb24sIE5VTEwpOwotKyAgd2Fsa19zcGVjaWFsaXphdGlvbnMgKHRydWUs IHBsdWdpbl93YWxrX3NwZWNpYWxpemF0aW9uLCBOVUxMKTsKLSsgIHVuc2lnbmVkIGludCBpOwot KyAgdHJlZSBkZWNsOwotKyAgRk9SX0VBQ0hfVkVDX0VMVCAobm9udWdseV9uYW1lcywgaSwgZGVj bCkKLSsgICAgaWYgKCF3aGl0ZWxpc3QuY29udGFpbnMgKERFQ0xfTkFNRSAoZGVjbCkpKQotKyAg ICAgIGluZm9ybSAoREVDTF9TT1VSQ0VfTE9DQVRJT04gKGRlY2wpLCAibm9uLXVnbGlmaWVkIG5h bWUgJXFzIiwKLSsJICAgICAgSURFTlRJRklFUl9QT0lOVEVSIChERUNMX05BTUUgKGRlY2wpKSk7 Ci0rICAgIGVsc2UKLSsgICAgICBpbmZvcm0gKERFQ0xfU09VUkNFX0xPQ0FUSU9OIChkZWNsKSwg Im5vbi11Z2xpZmllZCB3aGl0ZWxpc3RlZCBuYW1lICVxcyIsCi0rCSAgICAgIElERU5USUZJRVJf UE9JTlRFUiAoREVDTF9OQU1FIChkZWNsKSkpOwotK30KLSsKLSt2b2lkCi0rcGx1Z2luX2dnY193 YWxrZXIgKHZvaWQgKikKLSt7Ci0rICB1bnNpZ25lZCBpbnQgaTsKLSsgIHRyZWUgZGVjbDsKLSsg IEZPUl9FQUNIX1ZFQ19FTFQgKG5vbnVnbHlfbmFtZXMsIGksIGRlY2wpCi0rICAgIGd0X2dnY19t Xzl0cmVlX25vZGUgKGRlY2wpOwotKyAgZm9yIChoYXNoX3NldDx0cmVlPjo6aXRlcmF0b3IgaXQg PSB3aGl0ZWxpc3QuYmVnaW4gKCk7Ci0rICAgICAgIGl0ICE9IHdoaXRlbGlzdC5lbmQgKCk7ICsr aXQpCi0rICAgIGd0X2dnY19tXzl0cmVlX25vZGUgKCppdCk7Ci0rfQotKwotK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZ2djX3Jvb3RfdGFiIHh0cmF0YWJbXSA9IHsKLSsgIHsgKHZvaWQgKikgJnh0cmF0 YWIsIDEsIDEsIHBsdWdpbl9nZ2Nfd2Fsa2VyLCBOVUxMIH0sCi0rICBMQVNUX0dHQ19ST09UX1RB QgotK307Ci0rCi0raW50Ci0rcGx1Z2luX2luaXQgKHN0cnVjdCBwbHVnaW5fbmFtZV9hcmdzICpw bHVnaW5faW5mbywKLSsJICAgICBzdHJ1Y3QgcGx1Z2luX2djY192ZXJzaW9uICp2ZXJzaW9uKQot K3sKLSsgIGNvbnN0IGNoYXIgKnBsdWdpbl9uYW1lID0gcGx1Z2luX2luZm8tPmJhc2VfbmFtZTsK LSsKLSsgIHJlZ2lzdGVyX2NhbGxiYWNrIChwbHVnaW5fbmFtZSwgUExVR0lOX0ZJTklTSF9VTklU LAotKwkJICAgICBwbHVnaW5fZmluaXNoX3VuaXQsIE5VTEwpOwotKyAgcmVnaXN0ZXJfY2FsbGJh Y2sgKHBsdWdpbl9uYW1lLCBQTFVHSU5fRklOSVNIX1BBUlNFX0ZVTkNUSU9OLAotKwkJICAgICBw bHVnaW5fZmluaXNoX3BhcnNlX2Z1bmN0aW9uLCBOVUxMKTsKLSsgIHJlZ2lzdGVyX2NhbGxiYWNr IChwbHVnaW5fbmFtZSwgUExVR0lOX1JFR0lTVEVSX0dHQ19ST09UUywKLSsJCSAgICAgTlVMTCwg KHZvaWQgKikgeHRyYXRhYik7Ci0rCi0rICByZXR1cm4gMDsKLSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0 ZS9nKysuZGcvcGx1Z2luL3VnbGlmaWNhdGlvbi5DLmpqCTIwMjYtMDMtMTggMTY6NDg6MzQuMzk1 NTk0OTgwICswMTAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvcGx1Z2luL3VnbGlmaWNhdGlv bi5DCTIwMjYtMDMtMTggMTY6NTk6MTIuOTI5Mjg4OTA4ICswMTAwCi1AQCAtMCwwICsxLDE1MSBA QAotKy8vIFRlc3QgdGhhdCB1Z2xpZmljYXRpb25fcGx1Z2luLmNjIHdvcmtzIHByb3Blcmx5Lgot Ky8vIHsgZGctb3B0aW9ucyAiLU8wIC1zdGQ9YysrMjAiIH0KLSsKLSsvLyBQcmV0ZW5kIHRoaXMg aXMgaW4gYSBsaWJzdGRjKystdjMgaGVhZGVyLgotKyNsaW5lIDYgImdjYy9saWJzdGRjKystdjMv aW5jbHVkZS9iaXRzL3VuaXZlcnNlLmgiCi0rCi0rLy8gU3R1ZmYgb3V0c2lkZSBvZiBuYW1lc3Bh Y2Ugc3RkIG5vdCByZXBvcnRlZC4KLStpbnQKLStmb28gKGludCBhLCBpbnQgYikJCQkvLyB7IGRn LWJvZ3VzICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAnXFthYl0nIiB9Ci0rewotKyAgaW50IGMg PSBhICsgYjsJCQkvLyB7IGRnLWJvZ3VzICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAnYyciIH0K LSsgIHJldHVybiBjOwotK30KLSsKLStuYW1lc3BhY2Ugc3RkIHsKLSsgIHN0cnVjdCBmb28gewot KyAgICBpbnQgYmFyIChpbnQgZCwgaW50IF9fZSkgewkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBu b24tdWdsaWZpZWQgbmFtZSAnZCciIH0KLSsgICAgICBpbnQgZiA9IGQgKyBfX2U7CQkJLy8geyBk Zy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAnZiciIH0KLSsgICAgICBpbnQgX0Ux MiA9IGY7CQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBiYWRuYW1lICdfRTEyJyIgfQotKyAgICAg IHVzaW5nIGcgPSBpbnQ7CQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgbmFt ZSAnZyciIH0KLSsgICAgICByZXR1cm4gZiArIF9FMTI7Ci0rICAgIH0KLSsgICAgdGVtcGxhdGUg PHR5cGVuYW1lIFQ+CQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdU JyIgfQotKyAgICBpbnQgYmF6IChpbnQgX19oLCBpbnQgX190Z19mb28pIHsJLy8geyBkZy1tZXNz YWdlICJub3RlOiBiYWRuYW1lICdfX3RnX2ZvbyciIH0KLSsgICAgICBpbnQgaSA9IF9faDsJCQkv LyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdpJyIgfQotKyAgICAgIHVz aW5nIGogPSBpbnQ7CQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAn aiciIH0KLSsgICAgICByZXR1cm4gaTsKLSsgICAgfQotKyAgICB0ZW1wbGF0ZSA8ZG91YmxlPgot KyAgICBpbnQgYmF6IChpbnQgYWEpIHsJCQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xp ZmllZCBuYW1lICdhYSciIH0KLSsgICAgICBpbnQgYWIgPSBhYTsJCQkvLyB7IGRnLW1lc3NhZ2Ug Im5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdhYiciIH0KLSsgICAgICB1c2luZyBhYyA9IGRvdWJs ZTsJCS8vIHsgZGctbWVzc2FnZSAibm90ZTogbm9uLXVnbGlmaWVkIG5hbWUgJ2FjJyIgfQotKyAg ICAgIHJldHVybiBhYjsKLSsgICAgfQotKyAgICBpbnQgeno7CQkJCS8vIHsgZGctYm9ndXMgIm5v dGU6IG5vbi11Z2xpZmllZCBuYW1lICd6eiciIH0KLSsgIH07Ci0rICB0ZW1wbGF0ZSA8dHlwZW5h bWUgX1Q+CQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IGJhZG5hbWUgJ19UJyIgfQotKyAgc3RydWN0 IHF1eCB7Ci0rICAgIGludCBjb3JnZSAoaW50IGssIGludCBfX2wpIHsJLy8geyBkZy1tZXNzYWdl ICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAnayciIH0KLSsgICAgICBpbnQgX19tYXNrcnVuZSA9 IGsgKyBfX2w7CQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IGJhZG5hbWUgJ19fbWFza3J1bmUnIiB9 Ci0rICAgICAgdHlwZWRlZiBzdGQ6OmZvbyBfX2luX29wdDsJLy8geyBkZy1tZXNzYWdlICJub3Rl OiBiYWRuYW1lICdfX2luX29wdCciIH0KLSsgICAgICByZXR1cm4gX19tYXNrcnVuZTsKLSsgICAg fQotKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgX1RwPgotKyAgICBpbnQgZ2FycGx5IChpbnQgbSkg ewkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAnbSciIH0KLSsgICAg ICBpbnQgbiA9IG07CQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAn biciIH0KLSsgICAgICBzdHJ1Y3QgZm9vIHsgaW50IGJhejsgfSBfX287CS8vIHsgZGctbWVzc2Fn ZSAibm90ZTogbm9uLXVnbGlmaWVkIHdoaXRlbGlzdGVkIG5hbWUgJ2ZvbyciIH0KLSsgICAgICBf X28uYmF6ID0gbjsKLSsgICAgICByZXR1cm4gX19vLmJhejsKLSsgICAgfQotKyAgfTsKLSsgIHRl bXBsYXRlIDx0eXBlbmFtZSBfVHAsIHR5cGVuYW1lIF9VcD4KLSsgIHN0cnVjdCBTIHsKLSsgICAg UyAoKSA9IGRlbGV0ZTsKLSsgICAgflMgKCkgPSBkZWxldGU7Ci0rICB9OwotKyAgdGVtcGxhdGUg PHR5cGVuYW1lIF9UcD4KLSsgIHN0cnVjdCBTIDxfVHAsIF9UcD4gewotKyAgICBpbnQgZ3JhdWx0 IChpbnQgYWQpIHsJCS8vIHsgZGctbWVzc2FnZSAibm90ZTogbm9uLXVnbGlmaWVkIG5hbWUgJ2Fk JyIgfQotKyAgICAgIGludCBhZSA9IGFkOwkJCS8vIHsgZGctbWVzc2FnZSAibm90ZTogbm9uLXVn bGlmaWVkIG5hbWUgJ2FlJyIgfQotKyAgICAgIHJldHVybiBhZTsKLSsgICAgfQotKyAgICBpbnQg cXV1eCAoKSB7IHJldHVybiAwOyB9Ci0rICB9OwotKyAgdGVtcGxhdGUgPD4KLSsgIHN0cnVjdCBT IDxpbnQsIGxvbmc+IHsKLSsgICAgaW50IGdyYXVsdCAoaW50IGFmKSB7CQkvLyB7IGRnLW1lc3Nh Z2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdhZiciIH0KLSsgICAgICBpbnQgYWcgPSBhZjsJ CQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdhZyciIH0KLSsgICAg ICByZXR1cm4gYWc7Ci0rICAgIH0KLSsgIH07Ci0rCi0rICBpbmxpbmUgbmFtZXNwYWNlIF9fY3h4 MTEgewotKyAgICBlbnVtIGZyZWRkeSB7Ci0rICAgICAgZnJvZywgd2FsZG8KLSsgICAgfTsKLSsg ICAgc3RydWN0IGZyZWQgewotKyAgICAgIGludCBnYXJwbHkgKGludCBwKSB7CQkvLyB7IGRnLW1l c3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdwJyIgfQotKwlpbnQgX3Jlc19leHQgPSBw OwkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAnX3Jlc19leHQnIiB9 Ci0rCXJldHVybiBfcmVzX2V4dDsKLSsgICAgICB9Ci0rICAgIH07Ci0rICB9Ci0rICBuYW1lc3Bh Y2UgX19nbnVfY3h4IHsKLSsgICAgdGVtcGxhdGUgPHR5cGVuYW1lIC4uLlU+CQkvLyB7IGRnLW1l c3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdVJyIgfQotKyAgICBpbnQgZm9vIChVLi4u IHEpIHsJCQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdxJyIgfQot KyAgICAgIHJldHVybiAwOwkJCQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCB3 aGl0ZWxpc3RlZCBuYW1lICdmb28nIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9Ci0rICAgIH0K LSsgICAgZW51bSBibGFoIHsJCQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQg bmFtZSAnYmxhaCciIH0KLSsgICAgICBwbHVnaCwJCQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBu b24tdWdsaWZpZWQgbmFtZSAncGx1Z2gnIiB9Ci0rICAgICAgdGh1ZCwJCQkJLy8geyBkZy1tZXNz YWdlICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAndGh1ZCciIH0KLSsgICAgICBfRTUsCQkJCS8v IHsgZGctbWVzc2FnZSAibm90ZTogYmFkbmFtZSAnX0U1JyIgfQotKyAgICAgIGdhcnBseSwJCQkJ Ly8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgd2hpdGVsaXN0ZWQgbmFtZSAnZ2Fy cGx5JyIgfQotKyAgICAgIGdyYXVsdCwJCQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWds aWZpZWQgd2hpdGVsaXN0ZWQgbmFtZSAnZ3JhdWx0JyIgfQotKyAgICAgIHF1dXgsCQkJCS8vIHsg ZGctbWVzc2FnZSAibm90ZTogbm9uLXVnbGlmaWVkIHdoaXRlbGlzdGVkIG5hbWUgJ3F1dXgnIiB9 Ci0rICAgICAgbG9yZW0sCQkJCS8vIHsgZGctbWVzc2FnZSAibm90ZTogbm9uLXVnbGlmaWVkIHdo aXRlbGlzdGVkIG5hbWUgJ2xvcmVtJyIgfQotKyAgICAgIGlwc3VtLAkJCQkvLyB7IGRnLW1lc3Nh Z2UgIm5vdGU6IG5vbi11Z2xpZmllZCB3aGl0ZWxpc3RlZCBuYW1lICdpcHN1bSciIH0KLSsgICAg ICBkb2xvciwJCQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgd2hpdGVsaXN0 ZWQgbmFtZSAnZG9sb3InIiB9Ci0rICAgICAgc2l0LAkJCQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6 IG5vbi11Z2xpZmllZCB3aGl0ZWxpc3RlZCBuYW1lICdzaXQnIiB9Ci0rICAgICAgYW1ldCwJCQkJ Ly8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgd2hpdGVsaXN0ZWQgbmFtZSAnYW1l dCciIH0KLSsgICAgICBjb25zZWN0ZXR1ciwJCQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11 Z2xpZmllZCB3aGl0ZWxpc3RlZCBuYW1lICdjb25zZWN0ZXR1ciciIH0KLSsgICAgICBhZGlwaXNj aW5nLAkJCS8vIHsgZGctbWVzc2FnZSAibm90ZTogbm9uLXVnbGlmaWVkIHdoaXRlbGlzdGVkIG5h bWUgJ2FkaXBpc2NpbmcnIiB9Ci0rICAgICAgZWxpdAkJCQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6 IG5vbi11Z2xpZmllZCB3aGl0ZWxpc3RlZCBuYW1lICdlbGl0JyIgfQotKyAgICB9OwotKyAgICBp bnQgd2FsZG8gKGludCByKSB7CQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQg bmFtZSAnciciIH0KLSsgICAgICB1c2luZyBzID0gc3RkOjpmb287CQkvLyB7IGRnLW1lc3NhZ2Ug Im5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdzJyIgfQotKyAgICAgIHJldHVybiByOwkJCQkvLyB7 IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCB3aGl0ZWxpc3RlZCBuYW1lICd3YWxkbyci ICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0yIH0KLSsgICAgfQotKyAgICBpbnQgeHl6enkgKCkgeyBy ZXR1cm4gMDsgfQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgd2hpdGVsaXN0 ZWQgbmFtZSAneHl6enknIiB9Ci0rICAgIGludCBiYXJmICgpIHsgcmV0dXJuIDA7IH0JCS8vIHsg ZGctbWVzc2FnZSAibm90ZTogbm9uLXVnbGlmaWVkIG5hbWUgJ2JhcmYnIiB9Ci0rICAgIGludCBf X2Zvb2JhciAoKSB7IHJldHVybiAwOyB9Ci0rICAgIHN0cnVjdCBWIHsJCQkJLy8geyBkZy1tZXNz YWdlICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAnViciIH0KLSsgICAgICB1bmlvbiB7Ci0rCWlu dCB0OwkJCQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICd0JyIgfQot KyAgICAgIH07Ci0rICAgICAgaW50IHp6ICgpIHsgcmV0dXJuIDA7IH0JCS8vIHsgZGctbWVzc2Fn ZSAibm90ZTogbm9uLXVnbGlmaWVkIHdoaXRlbGlzdGVkIG5hbWUgJ3p6JyIgfQotKyAgICAgIGlu dCB3dyAoKSB7IHJldHVybiAwOyB9CQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmll ZCBuYW1lICd3dyciIH0KLSsgICAgfTsKLSsgIH0KLSsgIGludCB4eXp6eSAoaW50IHMpIHsJCQkv LyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdzJyIgfQotKyAgICByZXR1 cm4gczsKLSsgIH0KLSsgIHRlbXBsYXRlIDxpbnQgX0lkeD4KLSsgIHN0cnVjdCBsb3JlbSB7Ci0r ICAgIHRlbXBsYXRlIDxpbnQgX0lkeDI+Ci0rICAgIGZyaWVuZCBpbnQgaXBzdW0gKGludCBhaCkg ewkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAnYWgnIiB9Ci0rICAg ICAgaW50IGFpID0gYWg7CQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgbmFt ZSAnYWknIiB9Ci0rICAgICAgcmV0dXJuIGFpOwotKyAgICB9Ci0rICB9OwotKyAgdGVtcGxhdGUg PGludCBfSWR4PgotKyAgc3RydWN0IGRvbG9yIHsKLSsgICAgZnJpZW5kIGludCBzaXQgKGludCBh aikgewkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAnYWonIiB9Ci0r ICAgICAgaW50IGFrID0gYWo7CQkJLy8geyBkZy1tZXNzYWdlICJub3RlOiBub24tdWdsaWZpZWQg bmFtZSAnYWsnIiB9Ci0rICAgICAgcmV0dXJuIGFrOwotKyAgICB9Ci0rICB9OwotKyAgc3RydWN0 IGFtZXQgewotKyAgICB0ZW1wbGF0ZSA8aW50IF9JZHg+Ci0rICAgIGZyaWVuZCBpbnQgY29uc2Vj dGV0dXIgKGludCBhbCkgewkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1l ICdhbCciIH0KLSsgICAgICBpbnQgYW0gPSBhbDsJCQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5v bi11Z2xpZmllZCBuYW1lICdhbSciIH0KLSsgICAgICByZXR1cm4gYW07Ci0rICAgIH0KLSsgIH07 Ci0rICBzdHJ1Y3QgYWRpcGlzY2luZyB7Ci0rICAgIGZyaWVuZCBpbnQgZWxpdCAoaW50IGFuKSB7 CQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdhbiciIH0KLSsgICAg ICBpbnQgYW8gPSBhbjsJCQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1l ICdhbyciIH0KLSsgICAgICByZXR1cm4gYW87Ci0rICAgIH0KLSsgIH07Ci0rfQotLS0tIGdjYy90 ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi91Z2xpZmljYXRpb24tYysrOTguQy5qagkyMDI2LTAzLTE4 IDE2OjQ4OjM0LjM5NTY5OTc1NSArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BsdWdp bi91Z2xpZmljYXRpb24tYysrOTguQwkyMDI2LTAzLTE4IDE2OjQ4OjM0LjM5NTY5OTc1NSArMDEw MAotQEAgLTAsMCArMSw5IEBACi0rLy8gVmVyaWZ5IHRlbXBsYXRlIHBhcmFtZXRlciBuYW1lcywg bmFtZXMgb2YgYXJndW1lbnRzIGFuZCBibG9jayBzY29wZSBkZWNscwotKy8vIGluIGZ1bmN0aW9u cyBhbmQgZnVuY3Rpb24gdGVtcGxhdGVzIGFyZSB1Z2xpZmllZCBhbmQgZG9uJ3QgY29udGFpbgot Ky8vIGJhZG5hbWVzLgotKy8vIHsgZGctb3B0aW9ucyAiLU8wIC1zdGQ9YysrOTgiIH0KLSsKLSsj aW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KLSsKLSsvLyB7IGRnLWJvZ3VzICJub3RlOiBub24tdWds aWZpZWQgbmFtZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAwIH0KLSsvLyB7IGRnLWJvZ3VzICJub3Rl OiBiYWRuYW1lIiAiIiB7IHRhcmdldCAqLSotKiB9IDAgfQotLS0tIGdjYy90ZXN0c3VpdGUvZysr LmRnL3BsdWdpbi91Z2xpZmljYXRpb24tYysrMTEuQy5qagkyMDI2LTAzLTE4IDE2OjQ4OjM0LjM5 NTc3ODIzNiArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi91Z2xpZmljYXRp b24tYysrMTEuQwkyMDI2LTAzLTE4IDE2OjQ4OjM0LjM5NTc3ODIzNiArMDEwMAotQEAgLTAsMCAr MSw5IEBACi0rLy8gVmVyaWZ5IHRlbXBsYXRlIHBhcmFtZXRlciBuYW1lcywgbmFtZXMgb2YgYXJn dW1lbnRzIGFuZCBibG9jayBzY29wZSBkZWNscwotKy8vIGluIGZ1bmN0aW9ucyBhbmQgZnVuY3Rp b24gdGVtcGxhdGVzIGFyZSB1Z2xpZmllZCBhbmQgZG9uJ3QgY29udGFpbgotKy8vIGJhZG5hbWVz LgotKy8vIHsgZGctb3B0aW9ucyAiLU8wIC1zdGQ9YysrMTEiIH0KLSsKLSsjaW5jbHVkZSA8Yml0 cy9zdGRjKysuaD4KLSsKLSsvLyB7IGRnLWJvZ3VzICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSIg IiIgeyB0YXJnZXQgKi0qLSogfSAwIH0KLSsvLyB7IGRnLWJvZ3VzICJub3RlOiBiYWRuYW1lIiAi IiB7IHRhcmdldCAqLSotKiB9IDAgfQotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi91 Z2xpZmljYXRpb24tYysrMTQuQy5qagkyMDI2LTAzLTE4IDE2OjQ4OjM0LjM5NTg1MjI5MiArMDEw MAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi91Z2xpZmljYXRpb24tYysrMTQuQwky MDI2LTAzLTE4IDE2OjQ4OjM0LjM5NTg1MjI5MiArMDEwMAotQEAgLTAsMCArMSw5IEBACi0rLy8g VmVyaWZ5IHRlbXBsYXRlIHBhcmFtZXRlciBuYW1lcywgbmFtZXMgb2YgYXJndW1lbnRzIGFuZCBi bG9jayBzY29wZSBkZWNscwotKy8vIGluIGZ1bmN0aW9ucyBhbmQgZnVuY3Rpb24gdGVtcGxhdGVz IGFyZSB1Z2xpZmllZCBhbmQgZG9uJ3QgY29udGFpbgotKy8vIGJhZG5hbWVzLgotKy8vIHsgZGct b3B0aW9ucyAiLU8wIC1zdGQ9YysrMTQiIH0KLSsKLSsjaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4K LSsKLSsvLyB7IGRnLWJvZ3VzICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSIgIiIgeyB0YXJnZXQg Ki0qLSogfSAwIH0KLSsvLyB7IGRnLWJvZ3VzICJub3RlOiBiYWRuYW1lIiAiIiB7IHRhcmdldCAq LSotKiB9IDAgfQotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi91Z2xpZmljYXRpb24t YysrMTcuQy5qagkyMDI2LTAzLTE4IDE2OjQ4OjM0LjM5NTk0NjQwMyArMDEwMAotKysrIGdjYy90 ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi91Z2xpZmljYXRpb24tYysrMTcuQwkyMDI2LTAzLTE4IDE2 OjQ4OjM0LjM5NTk0NjQwMyArMDEwMAotQEAgLTAsMCArMSw5IEBACi0rLy8gVmVyaWZ5IHRlbXBs YXRlIHBhcmFtZXRlciBuYW1lcywgbmFtZXMgb2YgYXJndW1lbnRzIGFuZCBibG9jayBzY29wZSBk ZWNscwotKy8vIGluIGZ1bmN0aW9ucyBhbmQgZnVuY3Rpb24gdGVtcGxhdGVzIGFyZSB1Z2xpZmll ZCBhbmQgZG9uJ3QgY29udGFpbgotKy8vIGJhZG5hbWVzLgotKy8vIHsgZGctb3B0aW9ucyAiLU8w IC1zdGQ9YysrMTciIH0KLSsKLSsjaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KLSsKLSsvLyB7IGRn LWJvZ3VzICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAwIH0K LSsvLyB7IGRnLWJvZ3VzICJub3RlOiBiYWRuYW1lIiAiIiB7IHRhcmdldCAqLSotKiB9IDAgfQot LS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi91Z2xpZmljYXRpb24tYysrMjAuQy5qagky MDI2LTAzLTE4IDE2OjQ4OjM0LjM5NjAyMjE2NSArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysr LmRnL3BsdWdpbi91Z2xpZmljYXRpb24tYysrMjAuQwkyMDI2LTAzLTE4IDE2OjQ4OjM0LjM5NjAy MjE2NSArMDEwMAotQEAgLTAsMCArMSw5IEBACi0rLy8gVmVyaWZ5IHRlbXBsYXRlIHBhcmFtZXRl ciBuYW1lcywgbmFtZXMgb2YgYXJndW1lbnRzIGFuZCBibG9jayBzY29wZSBkZWNscwotKy8vIGlu IGZ1bmN0aW9ucyBhbmQgZnVuY3Rpb24gdGVtcGxhdGVzIGFyZSB1Z2xpZmllZCBhbmQgZG9uJ3Qg Y29udGFpbgotKy8vIGJhZG5hbWVzLgotKy8vIHsgZGctb3B0aW9ucyAiLU8wIC1zdGQ9YysrMjAi IH0KLSsKLSsjaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KLSsKLSsvLyB7IGRnLWJvZ3VzICJub3Rl OiBub24tdWdsaWZpZWQgbmFtZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAwIH0KLSsvLyB7IGRnLWJv Z3VzICJub3RlOiBiYWRuYW1lIiAiIiB7IHRhcmdldCAqLSotKiB9IDAgfQotLS0tIGdjYy90ZXN0 c3VpdGUvZysrLmRnL3BsdWdpbi91Z2xpZmljYXRpb24tYysrMjMuQy5qagkyMDI2LTAzLTE4IDE2 OjQ4OjM0LjM5NjA5NjU1NCArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi91 Z2xpZmljYXRpb24tYysrMjMuQwkyMDI2LTAzLTE4IDE2OjQ4OjM0LjM5NjA5NjU1NCArMDEwMAot QEAgLTAsMCArMSw5IEBACi0rLy8gVmVyaWZ5IHRlbXBsYXRlIHBhcmFtZXRlciBuYW1lcywgbmFt ZXMgb2YgYXJndW1lbnRzIGFuZCBibG9jayBzY29wZSBkZWNscwotKy8vIGluIGZ1bmN0aW9ucyBh bmQgZnVuY3Rpb24gdGVtcGxhdGVzIGFyZSB1Z2xpZmllZCBhbmQgZG9uJ3QgY29udGFpbgotKy8v IGJhZG5hbWVzLgotKy8vIHsgZGctb3B0aW9ucyAiLU8wIC1zdGQ9YysrMjMiIH0KLSsKLSsjaW5j bHVkZSA8Yml0cy9zdGRjKysuaD4KLSsKLSsvLyB7IGRnLWJvZ3VzICJub3RlOiBub24tdWdsaWZp ZWQgbmFtZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAwIH0KLSsvLyB7IGRnLWJvZ3VzICJub3RlOiBi YWRuYW1lIiAiIiB7IHRhcmdldCAqLSotKiB9IDAgfQotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRn L3BsdWdpbi91Z2xpZmljYXRpb24tYysrMjYuQy5qagkyMDI2LTAzLTE4IDE2OjQ4OjM0LjM5NjE2 OTkwMSArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BsdWdpbi91Z2xpZmljYXRpb24t YysrMjYuQwkyMDI2LTAzLTE4IDE2OjQ4OjM0LjM5NjE2OTkwMSArMDEwMAotQEAgLTAsMCArMSw5 IEBACi0rLy8gVmVyaWZ5IHRlbXBsYXRlIHBhcmFtZXRlciBuYW1lcywgbmFtZXMgb2YgYXJndW1l bnRzIGFuZCBibG9jayBzY29wZSBkZWNscwotKy8vIGluIGZ1bmN0aW9ucyBhbmQgZnVuY3Rpb24g dGVtcGxhdGVzIGFyZSB1Z2xpZmllZCBhbmQgZG9uJ3QgY29udGFpbgotKy8vIGJhZG5hbWVzLgot Ky8vIHsgZGctb3B0aW9ucyAiLU8wIC1zdGQ9YysrMjYgLWZyZWZsZWN0aW9uIC1mY29udHJhY3Rz IiB9Ci0rCi0rI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Ci0rCi0rLy8geyBkZy1ib2d1cyAibm90 ZTogbm9uLXVnbGlmaWVkIG5hbWUiICIiIHsgdGFyZ2V0ICotKi0qIH0gMCB9Ci0rLy8geyBkZy1i b2d1cyAibm90ZTogYmFkbmFtZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAwIH0KCmRpZmYgLS1naXQg YS9nY2MxNi11Z2xpZmljYXRpb24yLnBhdGNoIGIvZ2NjMTYtdWdsaWZpY2F0aW9uMi5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTUzZWQyNy4uMDAwMDAwMAotLS0gYS9nY2Mx Ni11Z2xpZmljYXRpb24yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotMjAy Ni0wNC0wOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQkqIGcrKy5kZy9w bHVnaW4vdWdsaWZpY2F0aW9uX3BsdWdpbi5jYyAocGx1Z2luX2NoZWNrX3RyZWUpOiBXYWxrCi0J UkVRVUlSRVNfRVhQUl9QQVJNUyBvZiBSRVFVSVJFU19FWFBSLgotCShwbHVnaW5fd2Fsa19kZWNs KTogV2FsayBURU1QTEFURV9QQVJNU19DT05TVFJBSU5UUyB1c2luZwotCXBsdWdpbl9jaGVja190 cmVlLiAgV2FsayBERUNMX0lOSVRJQUwgb2YgQ09OQ0VQVF9ERUNMIGFzIHdlbGwuCi0JKiBnKysu ZGcvcGx1Z2luL3VnbGlmaWNhdGlvbi5DOiBBZGQgdGVzdHMgZm9yIG5vbi11Z2xpZmllZCBuYW1l cwotCWluIGxhbWJkYSBwYXJhbWV0ZXJzLCBsYW1iZGEgY2FwdHVyZXMgYW5kIHJlcXVpcmVzIGV4 cHJlc3Npb25zLgotCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvcGx1Z2luL3VnbGlmaWNhdGlv bl9wbHVnaW4uY2MuamoJMjAyNi0wNC0wOSAxMjoyMzo0NC4wMDEwNzE5OTkgKzAyMDAKLSsrKyBn Y2MvdGVzdHN1aXRlL2crKy5kZy9wbHVnaW4vdWdsaWZpY2F0aW9uX3BsdWdpbi5jYwkyMDI2LTA0 LTA5IDEzOjMxOjQxLjkyNDYxNzcwMCArMDIwMAotQEAgLTg5LDYgKzg5LDkgQEAgcGx1Z2luX2No ZWNrX3RyZWUgKHRyZWUgKnRwLCBpbnQgKi8qd2FsawotICAgICAgIHBsdWdpbl9jaGVja19kZWNs ICh2YXIpOwotICAgaWYgKFRSRUVfQ09ERSAoKnRwKSA9PSBERUNMX0VYUFIpCi0gICAgIHBsdWdp bl9jaGVja19kZWNsIChERUNMX0VYUFJfREVDTCAoKnRwKSk7Ci0rICBpZiAoVFJFRV9DT0RFICgq dHApID09IFJFUVVJUkVTX0VYUFIpCi0rICAgIGZvciAodHJlZSBwYXJtID0gUkVRVUlSRVNfRVhQ Ul9QQVJNUyAoKnRwKTsgcGFybTsgcGFybSA9IERFQ0xfQ0hBSU4gKHBhcm0pKQotKyAgICAgIHBs dWdpbl9jaGVja19kZWNsIChwYXJtKTsKLSAgIHJldHVybiBOVUxMX1RSRUU7Ci0gfQotIAotQEAg LTE1Myw2ICsxNTYsMTAgQEAgcGx1Z2luX3dhbGtfZGVjbCAodHJlZSBkZWNsKQotICAgICAgIHRy ZWUgcGFybXMgPSBERUNMX0lOTkVSTU9TVF9URU1QTEFURV9QQVJNUyAoZGVjbCk7Ci0gICAgICAg Zm9yICh0cmVlIG5vZGUgOiB0cmVlX3ZlY19yYW5nZSAocGFybXMpKQotIAlwbHVnaW5fY2hlY2tf ZGVjbCAoVFJFRV9WQUxVRSAobm9kZSkpOwotKyAgICAgIGlmICh0cmVlIGNvbnN0cgotKwkgID0g VEVNUExBVEVfUEFSTVNfQ09OU1RSQUlOVFMgKERFQ0xfVEVNUExBVEVfUEFSTVMgKGRlY2wpKSkK LSsgICAgICAgIGNwX3dhbGtfdHJlZV93aXRob3V0X2R1cGxpY2F0ZXMgKCZjb25zdHIsIHBsdWdp bl9jaGVja190cmVlLAotKwkJCQkJIE5VTEwpOwotICAgICB9Ci0gCi0gICBpZiAoREVDTF9GVU5D VElPTl9URU1QTEFURV9QIChkZWNsKSkKLUBAIC0xNjIsNiArMTY5LDEwIEBAIHBsdWdpbl93YWxr X2RlY2wgKHRyZWUgZGVjbCkKLSAJICAgJiYgREVDTF9URU1QTEFURV9JTkZPIChkZWNsKSkKLSAg ICAgcGx1Z2luX2NoZWNrX2ZuIChkZWNsKTsKLSAKLSsgIGlmIChUUkVFX0NPREUgKFNUUklQX1RF TVBMQVRFIChkZWNsKSkgPT0gQ09OQ0VQVF9ERUNMKQotKyAgICBjcF93YWxrX3RyZWVfd2l0aG91 dF9kdXBsaWNhdGVzICgmREVDTF9JTklUSUFMIChTVFJJUF9URU1QTEFURSAoZGVjbCkpLAotKwkJ CQkgICAgIHBsdWdpbl9jaGVja190cmVlLCBOVUxMKTsKLSsKLSAgIGlmIChERUNMX0NMQVNTX1RF TVBMQVRFX1AgKGRlY2wpKQotICAgICBkZWNsID0gREVDTF9URU1QTEFURV9SRVNVTFQgKGRlY2wp OwotICAgaWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gVFlQRV9ERUNMCi0tLS0gZ2NjL3Rlc3RzdWl0 ZS9nKysuZGcvcGx1Z2luL3VnbGlmaWNhdGlvbi5DLmpqCTIwMjYtMDQtMDkgMTI6MjM6NDQuMDAx MjM2MjkyICswMjAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvcGx1Z2luL3VnbGlmaWNhdGlv bi5DCTIwMjYtMDQtMDkgMTI6NTY6MDYuMjY3MTY0ODkxICswMjAwCi1AQCAtMTQ4LDQgKzE0OCwx NiBAQCBuYW1lc3BhY2Ugc3RkIHsKLSAgICAgICByZXR1cm4gYW87Ci0gICAgIH0KLSAgIH07Ci0r ICB2b2lkIHNlZCAoaW50IF9fYXApIHsKLSsgICAgYXV0byBfX2FxID0gW10gKGludCBhcikge307 CQkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdhciciIH0KLSsgICAg YXV0byBfX2FzID0gW2F0ID0gX19hcF0gKCkge307CS8vIHsgZGctbWVzc2FnZSAibm90ZTogbm9u LXVnbGlmaWVkIG5hbWUgJ2F0JyIgfQotKyAgfQotKyAgdGVtcGxhdGUgPHR5cGVuYW1lIF9UcD4K LSsgIGNvbmNlcHQgZWl1c21vZCA9IHJlcXVpcmVzIChfVHAgYXUpIHsJLy8geyBkZy1tZXNzYWdl ICJub3RlOiBub24tdWdsaWZpZWQgbmFtZSAnYXUnIiB9Ci0rICAgIGF1Kys7Ci0rICB9OwotKyAg dGVtcGxhdGUgPHR5cGVuYW1lIC4uLl9UcD4KLSsgIHJlcXVpcmVzICgocmVxdWlyZXMgKGNvbnN0 IF9UcCBhdikgewkvLyB7IGRnLW1lc3NhZ2UgIm5vdGU6IG5vbi11Z2xpZmllZCBuYW1lICdhdici IH0KLSsgICAgYXYrKzsgfSkgJiYgLi4uKQotKyAgdm9pZCB0ZW1wb3IgKF9UcCAuLi5hdykge30J CS8vIHsgZGctbWVzc2FnZSAibm90ZTogbm9uLXVnbGlmaWVkIG5hbWUgJ2F3JyIgfQotIH0KCmRp ZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBlZDAwOWY5Li5iYzNmMjVmIDEwMDY0 NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEsNCArMSw0IEBACi1TSEE1MTIgKGdj Yy0xNi4wLjEtMjAyNjA0MTYudGFyLnh6KSA9IDg5ZjQyNjEwMDEyZjU5ZWNhOWJlMTI2ODY1MzNm OWNmOWJhYzM4OGQ1ODFkZDUyYWFiNjM5NDU1NWEzNzA1ZmExNzg0YTU1MzRjNWExY2Y1NzkzNTY3 MTEzOTg0OTAyMWZiNDJmN2FmMDI2MWFmMjljMTkwNDY3NmE3OTlhOTNmCitTSEE1MTIgKGdjYy0x Ni4xLjEtMjAyNjA1MDEudGFyLnh6KSA9IDkyMDE5ZDQ1ZGQxMzVhMTY0MmM4ZThlZjJiOGU3MTE1 M2M0YmUyZmY1OTk5NGMyOGMyMmVhZTk3YWM3NGRkZGVkNGYyYWE3ZDk3MjlhZjlmYjNiN2RlODQw MWU0OTdlMmJjOTg0YTI4YWI3ZWViZjg0NDNjZTViOTk2NjViZjI3CiBTSEE1MTIgKGlzbC0wLjI0 LnRhci5iejIpID0gYWFiM2JkZGJkYTk2YjgwMWQwZjU2ZDI4NjlmOTQzMTU3YWFkNTJhNmY2ZTZh NjE3NDVlZGQ3NDAyMzRjNjM1YzM4MjMxYWYyMGJjM2YxYTA4ZDQxNmE1ZTk3M2E5MGUxODI0OTA3 OGVkOGU0YWUyZjFkNWRlNTc2NTg3MzhlOTUKIFNIQTUxMiAobmV3bGliLWN5Z3dpbi1kMzVjYzgy YjVlYzE1YmI4YTVmZTBmZTExZTE4M2QxODg3OTkyZTk5LnRhci54eikgPSBlZjk0OTU3NDVhOTZk MWQ3NmY5ZjQyNWM0YTQ4YzgwN2ZmYWNlMzZhMWFhOTIzNTFjNWQwMjQxMDM2NzhkMTQ0ZDA0NmU4 ZGU1NWQxOTUxMDM3ODQ0NzJjMTQ4NzRlMjllNGI5Mjg0ZDVkNmEyZTdiYjI3ZmQ5OGM4NDU1YTg4 MQogU0hBNTEyIChudnB0eC10b29scy0yMTJkYTJlNzgxZWQwZjk0MjM4MjRlODVlYjA0ODE5OTU4 NTEzZjdhLnRhci54eikgPSA1YTU1MDliMDUxMzg0MzI1NGVlMmJlMjc3ZTBiOGQ0NzMzZjY0M2I3 NGI5OGM3MzllODI4NzIxODFhMmMzNjZiOWI0M2RlOWU1ZmI1MDVhYTFlOTk2N2EzODJkYTU5Y2Fi MDE1ZjYzMDExY2JjYjU5NzI5NzFmMjE2MDg3MGYwMAo=