From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 3cf98ffe for ; Sat, 7 Sep 2019 18:19:03 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============1114057040724762996==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] [WIP] gcc: update to 9.2.0 and enable gcc-go on musl To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 07 Sep 2019 20:19:03 +0200 Message-ID: <20190907181903.XM0XzG3JWFQCOscgWaI9qWnqRLlUlRWkupp8LmcamNE@z> GitHub notification mails are now in MIME to allow UTF8. --===============1114057040724762996== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLXBw Yy92b2lkLXBhY2thZ2VzIGdjYzkyCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC8xNDI4OQoKW1dJUF0gZ2NjOiB1cGRhdGUgdG8gOS4yLjAgYW5kIGVuYWJs ZSBnY2MtZ28gb24gbXVzbApQcmVsaW1pbmFyeSBwdWxsIHJlcXVlc3QuIEN1cnJlbnRseSBidWls ZGluZyBhbmQgdGVzdGluZy4gYGdjYy1nb2AgZm9yIGBtdXNsYCBpcyBub3cgZW5hYmxlZCwgYnV0 IG9ubHkgZm9yIG5vbi1jcm9zcyBzeXN0ZW1zOyBjcm9zcyB3b3VsZCBuZWVkIHRoaXMgZW5hYmxl ZCBpbiB0aGUgY3Jvc3N0b29sY2hhaW5zLiBXZSBjb3VsZCBtYXliZSB1c2UgdGhpcyBvcHBvcnR1 bml0eSB0byBhbHNvIGVuYWJsZSBPYmplY3RpdmUtQyBpbiB0aGUgY3Jvc3N0b29sY2hhaW5zLCBv ciB3ZSBjb3VsZCBsZWF2ZSB0aGVtIGFzIGlzIGZvciBub3cuCgpBIHBhdGNoIGZpbGUgZnJvbSBo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTQyODkucGF0 Y2ggaXMgYXR0YWNoZWQ= --===============1114057040724762996== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gcc92-14289.patch" RnJvbSA2OGIwYmEyZTdkNjQ1MDQ2YmYzMTU0MzA4NmQ3Njk1MzA4MDE5OGNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQs IDcgU2VwIDIwMTkgMTk6MTM6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBnY2M6IHVwZGF0ZSB0 byA5LjIuMCBhbmQgZW5hYmxlIGdjYy1nbyBvbiBtdXNsCgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dz L2djYy9maWxlcy9nY2Nnby1tdXNsLnBhdGNoICAgICAgICB8IDIwMCArKysrKysrKysKIHNyY3Br Z3MvZ2NjL3BhdGNoZXMvYnVnOTA3NTYucGF0Y2ggICAgICAgIHwgIDIzIC0KIHNyY3BrZ3MvZ2Nj L3BhdGNoZXMvZGFybi5wYXRjaCAgICAgICAgICAgIHwgNTA0ICsrKysrKysrKysrKysrKysrKysr KysKIHNyY3BrZ3MvZ2NjL3BhdGNoZXMvbGliZmZpX2dudWxpbnV4LnBhdGNoIHwgIDExICsKIHNy Y3BrZ3MvZ2NjL3BhdGNoZXMvbm9uLW51bGxuZXNzLnBhdGNoICAgIHwgIDg4IC0tLS0KIHNyY3Br Z3MvZ2NjL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgIDM5ICstCiA2IGZpbGVzIGNo YW5nZWQsIDczMyBpbnNlcnRpb25zKCspLCAxMzIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9nY2MvZmlsZXMvZ2NjZ28tbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZ2NjL3BhdGNoZXMvYnVnOTA3NTYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2djYy9wYXRjaGVzL2Rhcm4ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2djYy9wYXRjaGVzL2xpYmZmaV9nbnVsaW51eC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZ2NjL3BhdGNoZXMvbm9uLW51bGxuZXNzLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nY2MvZmlsZXMvZ2NjZ28tbXVzbC5wYXRjaCBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2djY2dv LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjM2Vk N2QxN2FlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nY2MvZmlsZXMvZ2NjZ28tbXVzbC5w YXRjaApAQCAtMCwwICsxLDIwMCBAQAorVGhpcyBpcyBub3QgYW1vbmcgdGhlIG5vcm1hbCBwYXRj aGVzIGFzIHRoZXNlIGNoYW5nZXMgYXJlIG11c2wgc3BlY2lmaWMgYW5kCit0aGVyZSBpcyBubyB3 YXkgdG8gZWFzaWx5IGNvbmRpdGlvbmFsaXplIGl0IGluIHNvdXJjZSBmb3Igc29tZSBvZiB0aGUg Y2hhbmdlcy4KKworU291dXJjZTogQWTDqWxpZSBMaW51eCwgcTY2CitVUkw6IGh0dHBzOi8vY29k ZS5mb3hraXQudXMvYWRlbGllL3BhY2thZ2VzL3RyZWUvbWFzdGVyL3N5c3RlbS9nY2MKKworLS0t IE1ha2VmaWxlLmluCisrKysgTWFrZWZpbGUuaW4KK0BAIC00NjMyNSw3ICs0NjMyNSw3IEBAIGNv bmZpZ3VyZS10YXJnZXQtbGliZ286CisgCWVzYWM7IFwKKyAJbW9kdWxlX3NyY2Rpcj1saWJnbzsg XAorIAlybSAtZiBuby1zdWNoLWZpbGUgfHwgOiA7IFwKKy0JQ09ORklHX1NJVEU9bm8tc3VjaC1m aWxlICQoU0hFTEwpIFwKKysJQ09ORklHX1NJVEU9bm8tc3VjaC1maWxlIExJQlM9Ii1sdWNvbnRl eHQgJCRMSUJTIiAkKFNIRUxMKSBcCisgCSAgJCRzLyQkbW9kdWxlX3NyY2Rpci9jb25maWd1cmUg XAorIAkgIC0tc3JjZGlyPSQke3RvcGRpcn0vJCRtb2R1bGVfc3JjZGlyIFwKKyAJICAkKFRBUkdF VF9DT05GSUdBUkdTKSAtLWJ1aWxkPSR7YnVpbGRfYWxpYXN9IC0taG9zdD0ke3RhcmdldF9hbGlh c30gXAorLS0tIGxpYmdvL21rc3lzaW5mby5zaAorKysrIGxpYmdvL21rc3lzaW5mby5zaAorQEAg LTM3OSwxMSArMzc5LDcgQEAgZmkKKyAjIFNvbWUgYmFzaWMgdHlwZXMuCisgZWNobyAndHlwZSBT aXplX3QgX3NpemVfdCcgPj4gJHtPVVR9CisgZWNobyAidHlwZSBTc2l6ZV90IF9zc2l6ZV90IiA+ PiAke09VVH0KKy1pZiBncmVwICdeY29uc3QgX0hBVkVfT0ZGNjRfVCA9ICcgZ2VuLXN5c2luZm8u Z28gPiAvZGV2L251bGwgMj4mMTsgdGhlbgorLSAgZWNobyAidHlwZSBPZmZzZXRfdCBfb2ZmNjRf dCIgPj4gJHtPVVR9CistZWxzZQorLSAgZWNobyAidHlwZSBPZmZzZXRfdCBfb2ZmX3QiID4+ICR7 T1VUfQorLWZpCisrZWNobyAidHlwZSBPZmZzZXRfdCBfb2ZmX3QiID4+ICR7T1VUfQorIGVjaG8g InR5cGUgTW9kZV90IF9tb2RlX3QiID4+ICR7T1VUfQorIGVjaG8gInR5cGUgUGlkX3QgX3BpZF90 IiA+PiAke09VVH0KKyBlY2hvICJ0eXBlIFVpZF90IF91aWRfdCIgPj4gJHtPVVR9CistLS0gbGli Z28vZ28vcnVudGltZS9tZW1fZ2NjZ28uZ28KKysrKyBsaWJnby9nby9ydW50aW1lL21lbV9nY2Nn by5nbworQEAgLTE2LDcgKzE2LDcgQEAgaW1wb3J0ICgKKyAvL2dvOmxpbmtuYW1lIHN5c0ZyZWUg cnVudGltZS5zeXNGcmVlCisgCisgLy9leHRlcm4gbW1hcAorLWZ1bmMgc3lzTW1hcChhZGRyIHVu c2FmZS5Qb2ludGVyLCBuIHVpbnRwdHIsIHByb3QsIGZsYWdzLCBmZCBpbnQzMiwgb2ZmIHVpbnRw dHIpIHVuc2FmZS5Qb2ludGVyCisrZnVuYyBzeXNNbWFwKGFkZHIgdW5zYWZlLlBvaW50ZXIsIG4g dWludHB0ciwgcHJvdCwgZmxhZ3MsIGZkIGludDMyLCBvZmYgaW50NjQpIHVuc2FmZS5Qb2ludGVy CisgCisgLy9leHRlcm4gbXVubWFwCisgZnVuYyBtdW5tYXAoYWRkciB1bnNhZmUuUG9pbnRlciwg bGVuZ3RoIHVpbnRwdHIpIGludDMyCitAQCAtMzgsNyArMzgsNyBAQCBmdW5jIGluaXQoKSB7Cisg CX0KKyB9CisgCistZnVuYyBtbWFwKGFkZHIgdW5zYWZlLlBvaW50ZXIsIG4gdWludHB0ciwgcHJv dCwgZmxhZ3MsIGZkIGludDMyLCBvZmYgdWludHB0cikgKHVuc2FmZS5Qb2ludGVyLCBpbnQpIHsK KytmdW5jIG1tYXAoYWRkciB1bnNhZmUuUG9pbnRlciwgbiB1aW50cHRyLCBwcm90LCBmbGFncywg ZmQgaW50MzIsIG9mZiBpbnQ2NCkgKHVuc2FmZS5Qb2ludGVyLCBpbnQpIHsKKyAJcCA6PSBzeXNN bWFwKGFkZHIsIG4sIHByb3QsIGZsYWdzLCBmZCwgb2ZmKQorIAlpZiB1aW50cHRyKHApID09IF9N QVBfRkFJTEVEIHsKKyAJCXJldHVybiBuaWwsIGVycm5vKCkKKy0tLSBsaWJnby9nby9ydW50aW1l L3NpZ25hbF9nY2Nnby5nbworKysrIGxpYmdvL2dvL3J1bnRpbWUvc2lnbmFsX2djY2dvLmdvCitA QCAtMTExLDcgKzExMSw3IEBAIGZ1bmMgZ2V0c2lnKGkgdWludDMyKSB1aW50cHRyIHsKKyAJaWYg c2lnYWN0aW9uKGksIG5pbCwgJnNhKSA8IDAgeworIAkJLy8gT24gR05VL0xpbnV4IGdsaWJjIHJl amVjdHMgYXR0ZW1wdHMgdG8gY2FsbAorIAkJLy8gc2lnYWN0aW9uIHdpdGggc2lnbmFsIDMyIChT SUdDQU5DRUwpIG9yIDMzIChTSUdTRVRYSUQpLgorLQkJaWYgR09PUyA9PSAibGludXgiICYmIChp ID09IDMyIHx8IGkgPT0gMzMpIHsKKysJCWlmIEdPT1MgPT0gImxpbnV4IiAmJiAoaSA9PSAzMiB8 fCBpID09IDMzIHx8IGkgPT0gMzQpIHsKKyAJCQlyZXR1cm4gX1NJR19ERkwKKyAJCX0KKyAJCXRo cm93KCJzaWdhY3Rpb24gcmVhZCBmYWlsdXJlIikKKy0tLSBsaWJnby9nby9zeXNjYWxsL2VycnN0 ci5nbworKysrIGxpYmdvL2dvL3N5c2NhbGwvZXJyc3RyLmdvCitAQCAtNSw3ICs1LDYgQEAKKyAv LyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisgCisgLy8g K2J1aWxkICFodXJkCistLy8gK2J1aWxkICFsaW51eAorIAorIHBhY2thZ2Ugc3lzY2FsbAorIAor LS0tIGxpYmdvL2dvL3N5c2NhbGwvZXJyc3RyX2dsaWJjLmdvCisrKysgL2Rldi9udWxsCitAQCAt MSwzMyArMCwwIEBACistLy8gZXJyc3RyX2dsaWJjLmdvIC0tIEdOVS9MaW51eCBhbmQgR05VL0h1 cmQgc3BlY2lmaWMgZXJyb3Igc3RyaW5ncy4KKy0KKy0vLyBDb3B5cmlnaHQgMjAxMCBUaGUgR28g QXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQorLS8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91 bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0KKy0vLyBXZSB1c2UgdGhpcyByYXRoZXIgdGhhbiBl cnJzdHIuZ28gYmVjYXVzZSBvbiBHTlUvTGludXggc3RlcnJvcl9yCistLy8gcmV0dXJucyBhIHBv aW50ZXIgdG8gdGhlIGVycm9yIG1lc3NhZ2UsIGFuZCBtYXkgbm90IHVzZSBidWYgYXQgYWxsLgor LQorLS8vICtidWlsZCBodXJkIGxpbnV4CistCistcGFja2FnZSBzeXNjYWxsCistCistaW1wb3J0 ICJ1bnNhZmUiCistCistLy9zeXNuYglzdHJlcnJvcl9yKGVycm51bSBpbnQsIGIgW11ieXRlKSAo ZXJyc3RyICpieXRlKQorLS8vc3RyZXJyb3JfcihlcnJudW0gX0NfaW50LCBiICpieXRlLCBsZW4g U2l6ZV90KSAqYnl0ZQorLQorLWZ1bmMgRXJyc3RyKGVycm51bSBpbnQpIHN0cmluZyB7CistCWEg Oj0gbWFrZShbXWJ5dGUsIDEyOCkKKy0JcCA6PSBzdHJlcnJvcl9yKGVycm51bSwgYSkKKy0JYiA6 PSAoKlsxMDAwXWJ5dGUpKHVuc2FmZS5Qb2ludGVyKHApKQorLQlpIDo9IDAKKy0JZm9yIGJbaV0g IT0gMCB7CistCQlpKysKKy0JfQorLQkvLyBMb3dlcmNhc2UgZmlyc3QgbGV0dGVyOiBCYWQgLT4g YmFkLCBidXQgU1RSRUFNIC0+IFNUUkVBTS4KKy0JaWYgaSA+IDEgJiYgJ0EnIDw9IGJbMF0gJiYg YlswXSA8PSAnWicgJiYgJ2EnIDw9IGJbMV0gJiYgYlsxXSA8PSAneicgeworLQkJYyA6PSBiWzBd ICsgJ2EnIC0gJ0EnCistCQlyZXR1cm4gc3RyaW5nKGMpICsgc3RyaW5nKGJbMTppXSkKKy0JfQor LQlyZXR1cm4gc3RyaW5nKGJbOmldKQorLX0KKy0tLSBsaWJnby9nby9zeXNjYWxsL2xpYmNhbGxf bGludXguZ28KKysrKyBsaWJnby9nby9zeXNjYWxsL2xpYmNhbGxfbGludXguZ28KK0BAIC0yMDYs MTkgKzIwNiwxOSBAQCBmdW5jIEdldHRpZCgpICh0aWQgaW50KSB7CisgLy9zeXMJU2V0eGF0dHIo cGF0aCBzdHJpbmcsIGF0dHIgc3RyaW5nLCBkYXRhIFtdYnl0ZSwgZmxhZ3MgaW50KSAoZXJyIGVy cm9yKQorIC8vc2V0eGF0dHIocGF0aCAqYnl0ZSwgbmFtZSAqYnl0ZSwgdmFsdWUgKmJ5dGUsIHNp emUgU2l6ZV90LCBmbGFncyBfQ19pbnQpIF9DX2ludAorIAorLS8vc3lzCXNwbGljZShyZmQgaW50 LCByb2ZmICpfbG9mZl90LCB3ZmQgaW50LCB3b2ZmICpfbG9mZl90LCBsZW4gaW50LCBmbGFncyBp bnQpIChuIGludDY0LCBlcnIgZXJyb3IpCistLy9zcGxpY2UocmZkIF9DX2ludCwgcm9mZiAqX2xv ZmZfdCwgd2ZkIF9DX2ludCwgd29mZiAqX2xvZmZfdCwgbGVuIFNpemVfdCwgZmxhZ3MgX0NfdWlu dCkgU3NpemVfdAorKy8vc3lzCXNwbGljZShyZmQgaW50LCByb2ZmICpfb2ZmX3QsIHdmZCBpbnQs IHdvZmYgKl9vZmZfdCwgbGVuIGludCwgZmxhZ3MgaW50KSAobiBpbnQ2NCwgZXJyIGVycm9yKQor Ky8vc3BsaWNlKHJmZCBfQ19pbnQsIHJvZmYgKl9vZmZfdCwgd2ZkIF9DX2ludCwgd29mZiAqX29m Zl90LCBsZW4gU2l6ZV90LCBmbGFncyBfQ191aW50KSBTc2l6ZV90CisgZnVuYyBTcGxpY2UocmZk IGludCwgcm9mZiAqaW50NjQsIHdmZCBpbnQsIHdvZmYgKmludDY0LCBsZW4gaW50LCBmbGFncyBp bnQpIChuIGludDY0LCBlcnIgZXJyb3IpIHsKKy0JdmFyIGxyb2ZmIF9sb2ZmX3QKKy0JdmFyIHBs cm9mZiAqX2xvZmZfdAorKwl2YXIgbHJvZmYgX29mZl90CisrCXZhciBwbHJvZmYgKl9vZmZfdAor IAlpZiByb2ZmICE9IG5pbCB7CistCQlscm9mZiA9IF9sb2ZmX3QoKnJvZmYpCisrCQlscm9mZiA9 IF9vZmZfdCgqcm9mZikKKyAJCXBscm9mZiA9ICZscm9mZgorIAl9CistCXZhciBsd29mZiBfbG9m Zl90CistCXZhciBwbHdvZmYgKl9sb2ZmX3QKKysJdmFyIGx3b2ZmIF9vZmZfdAorKwl2YXIgcGx3 b2ZmICpfb2ZmX3QKKyAJaWYgd29mZiAhPSBuaWwgeworLQkJbHdvZmYgPSBfbG9mZl90KCp3b2Zm KQorKwkJbHdvZmYgPSBfb2ZmX3QoKndvZmYpCisgCQlwbHdvZmYgPSAmbHdvZmYKKyAJfQorIAlu LCBlcnIgPSBzcGxpY2UocmZkLCBwbHJvZmYsIHdmZCwgcGx3b2ZmLCBsZW4sIGZsYWdzKQorLS0t IGxpYmdvL21rc2lndGFiLnNoCisrKysgbGliZ28vbWtzaWd0YWIuc2gKK0BAIC04Miw3ICs4Miw3 IEBAIGNoZWNrc2lnIF9TSUdQV1IgICAgICd7X1NpZ05vdGlmeSwgIlNJR1BXUjogcG93ZXIgZmFp bHVyZSByZXN0YXJ0In0nCisgY2hlY2tzaWcgX1NJR0VNVCAgICAgJ3tfU2lnVGhyb3csICJTSUdF TVQ6IGVtdWxhdGUgaW5zdHJ1Y3Rpb24gZXhlY3V0ZWQifScKKyBjaGVja3NpZyBfU0lHSU5GTyAg ICAne19TaWdOb3RpZnksICJTSUdJTkZPOiBzdGF0dXMgcmVxdWVzdCBmcm9tIGtleWJvYXJkIn0n CisgY2hlY2tzaWcgX1NJR1RIUiAgICAgJ3tfU2lnTm90aWZ5LCAiU0lHVEhSOiByZXNlcnZlZCJ9 JworLWNoZWNrc2lnIF9TSUdQT0xMICAgICd7X1NpZ05vdGlmeSwgIlNJR1BPTEw6IHBvbGxhYmxl IGV2ZW50IG9jY3VycmVkIn0nCisrI2NoZWNrc2lnIF9TSUdQT0xMICAgICd7X1NpZ05vdGlmeSwg IlNJR1BPTEw6IHBvbGxhYmxlIGV2ZW50IG9jY3VycmVkIn0nCisgY2hlY2tzaWcgX1NJR1dBSVRJ TkcgJ3tfU2lnTm90aWZ5LCAiU0lHV0FJVElORzogcmVzZXJ2ZWQgc2lnbmFsIG5vIGxvbmdlciB1 c2VkIGJ5In0nCisgY2hlY2tzaWcgX1NJR0xXUCAgICAgJ3tfU2lnTm90aWZ5LCAiU0lHTFdQOiBy ZXNlcnZlZCBzaWduYWwgbm8gbG9uZ2VyIHVzZWQgYnkifScKKyBjaGVja3NpZyBfU0lHRlJFRVpF ICAne19TaWdOb3RpZnksICJTSUdGUkVFWkU6IHNwZWNpYWwgc2lnbmFsIHVzZWQgYnkgQ1BSIn0n CitAQCAtOTUsMTAgKzk1LDEyIEBAIGNoZWNrc2lnIF9TSUdMT1NUICcgICB7X1NpZ05vdGlmeSwg IlNJR0xPU1Q6IHJlc291cmNlIGxvc3QgKFN1bik7IHNlcnZlciBkaWVkIChHCisgCisgIyBTcGVj aWFsIGhhbmRsaW5nIG9mIHNpZ25hbHMgMzIgYW5kIDMzIG9uIEdOVS9MaW51eCBzeXN0ZW1zLAor ICMgYmVjYXVzZSB0aGV5IGFyZSBzcGVjaWFsIHRvIGdsaWJjLgorKyMgU2lnbmFsIDM0IGlzIGFk ZGl0aW9uYWxseSBzcGVjaWFsIHRvIExpbnV4IHN5c3RlbXMgd2l0aCBtdXNsLgorIGlmIHRlc3Qg IiR7R09PU30iID0gImxpbnV4IjsgdGhlbgorLSAgICBTSUdMSVNUPSRTSUdMSVNUIl8zMl9fMzNf IgorKyAgICBTSUdMSVNUPSRTSUdMSVNUIl8zMl9fMzNfXzM0XyIKKyAgICAgZWNobyAnCTMyOiB7 X1NpZ1NldFN0YWNrICsgX1NpZ1VuYmxvY2ssICJzaWduYWwgMzIifSwgLyogU0lHQ0FOQ0VMOyBz ZWUgaXNzdWUgNjk5NyAqLycKKyAgICAgZWNobyAnCTMzOiB7X1NpZ1NldFN0YWNrICsgX1NpZ1Vu YmxvY2ssICJzaWduYWwgMzMifSwgLyogU0lHU0VUWElEOyBzZWUgaXNzdWVzIDM4NzEsIDk0MDAs IDEyNDk4ICovJworKyAgICBlY2hvICcJMzQ6IHtfU2lnU2V0U3RhY2sgKyBfU2lnVW5ibG9jaywg InNpZ25hbCAzNCJ9LCAvKiBzZWUgaXNzdWUgMzAwNjIgKi8nCisgZmkKKyAKKyBpZiB0ZXN0ICIk e0dPT1N9IiA9ICJhaXgiOyB0aGVuCistLS0gbGliZ28vcnVudGltZS9nby1zaWduYWwuYworKysr IGxpYmdvL3J1bnRpbWUvZ28tc2lnbmFsLmMKK0BAIC0yMjIsNyArMjIyLDExIEBAIGdldFNpZ2lu Zm8oc2lnaW5mb190ICppbmZvLCB2b2lkICpjb250ZXh0IF9fYXR0cmlidXRlX18oKHVudXNlZCkp KQorICNlbmRpZgorICNpZmRlZiBfX1BQQ19fCisgICAjaWZkZWYgX19saW51eF9fCistCXJldC5z aWdwYyA9ICgodWNvbnRleHRfdCopKGNvbnRleHQpKS0+dWNfbWNvbnRleHQucmVncy0+bmlwOwor KyAgICAjaWZkZWYgX19QUEM2NF9fCisrCXJldC5zaWdwYyA9ICgodWNvbnRleHRfdCopKGNvbnRl eHQpKS0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMl07CisrICAgICNlbHNlCisrCXJldC5zaWdwYyA9 ICgodWNvbnRleHRfdCopKGNvbnRleHQpKS0+dWNfbWNvbnRleHQuZ3JlZ3NbMzJdOworKyAgICAj ZW5kaWYKKyAgICNlbmRpZgorICAgI2lmZGVmIF9BSVgKKyAJcmV0LnNpZ3BjID0gKCh1Y29udGV4 dF90KikoY29udGV4dCkpLT51Y19tY29udGV4dC5qbXBfY29udGV4dC5pYXI7CitAQCAtMzQzLDcg KzM0Myw3IEBAIGR1bXByZWdzKHNpZ2luZm9fdCAqaW5mbyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp KSwgdm9pZCAqY29udGV4dCBfX2F0dHJpYnV0ZV9fKCh1CisgICAjZW5kaWYKKyAjZW5kaWYKKyAK Ky0jaWYgZGVmaW5lZChfX1BQQ19fKSAmJiBkZWZpbmVkKF9fTElUVExFX0VORElBTl9fKQorKyNp ZiBkZWZpbmVkKF9fUFBDX18pICYmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOX18pICYmIGRlZmlu ZWQoX19HTElCQ19fKQorICAgI2lmZGVmIF9fbGludXhfXworIAkgIHsKKyAJCW1jb250ZXh0X3Qg Km0gPSAmKCh1Y29udGV4dF90KikoY29udGV4dCkpLT51Y19tY29udGV4dDsKKy0tLSBsaWJnby9z eXNpbmZvLmMKKysrKyBsaWJnby9zeXNpbmZvLmMKK0BAIC03Myw5ICs3Myw2IEBACisgI2luY2x1 ZGUgPHN5cy90aW1lcy5oPgorICNpbmNsdWRlIDxzeXMvd2FpdC5oPgorICNpbmNsdWRlIDxzeXMv dW4uaD4KKy0jaWYgZGVmaW5lZChIQVZFX1NZU19VU0VSX0gpCistI2luY2x1ZGUgPHN5cy91c2Vy Lmg+CistI2VuZGlmCisgI2lmIGRlZmluZWQoSEFWRV9TWVNfVVRTTkFNRV9IKQorICNpbmNsdWRl IDxzeXMvdXRzbmFtZS5oPgorICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nY2MvcGF0Y2hl cy9idWc5MDc1Ni5wYXRjaCBiL3NyY3BrZ3MvZ2NjL3BhdGNoZXMvYnVnOTA3NTYucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmNzhkYWQ5Y2NlLi4wMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2djYy9wYXRjaGVzL2J1ZzkwNzU2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MjMgKzAsMCBAQAotQnVnIDkwNzU2IC0gWzcvOC85IFJlZ3Jlc3Npb25dIGcrKyBJQ0UgaW4gY29u dmVydF9tb3ZlLCBhdCBleHByLmM6MjE4IG9uIGk2ODYgYW5kIHMzOTB4IAotaHR0cHM6Ly9nY2Mu Z251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9OTA3NTYKLQotLS0tIGdjYy9leHBsb3cu YwkyMDE5LzA3LzA0IDAyOjM5OjU4CTI3MzAzNQotKysrIGdjYy9leHBsb3cuYwkyMDE5LzA3LzA0 IDA0OjQ5OjIyCTI3MzAzNgotQEAgLTg5MiwxNiArODkyLDcgQEAKLSAKLSAgIHRyZWUgdHlwZSA9 IFRSRUVfVFlQRSAobmFtZSk7Ci0gICBpbnQgdW5zaWduZWRwID0gVFlQRV9VTlNJR05FRCAodHlw ZSk7Ci0tICBtYWNoaW5lX21vZGUgbW9kZSA9IFRZUEVfTU9ERSAodHlwZSk7Ci0tCi0tICAvKiBC eXBhc3MgVFlQRV9NT0RFIHdoZW4gaXQgbWFwcyB2ZWN0b3IgbW9kZXMgdG8gQkxLbW9kZS4gICov Ci0tICBpZiAobW9kZSA9PSBCTEttb2RlKQotLSAgICB7Ci0tICAgICAgZ2NjX2Fzc2VydCAoVkVD VE9SX1RZUEVfUCAodHlwZSkpOwotLSAgICAgIG1vZGUgPSB0eXBlLT50eXBlX2NvbW1vbi5tb2Rl OwotLSAgICB9Ci0tCi0tICBtYWNoaW5lX21vZGUgcG1vZGUgPSBwcm9tb3RlX21vZGUgKHR5cGUs IG1vZGUsICZ1bnNpZ25lZHApOwotKyAgbWFjaGluZV9tb2RlIHBtb2RlID0gcHJvbW90ZV9tb2Rl ICh0eXBlLCBUWVBFX01PREUgKHR5cGUpLCAmdW5zaWduZWRwKTsKLSAgIGlmIChwdW5zaWduZWRw KQotICAgICAqcHVuc2lnbmVkcCA9IHVuc2lnbmVkcDsKLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z2NjL3BhdGNoZXMvZGFybi5wYXRjaCBiL3NyY3BrZ3MvZ2NjL3BhdGNoZXMvZGFybi5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTdmN2RlM2Y0MzgKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2djYy9wYXRjaGVzL2Rhcm4ucGF0Y2gKQEAgLTAsMCArMSw1 MDQgQEAKK1Vwc3RyZWFtOiB5ZXMKK1JlZmVyZW5jZTogaHR0cHM6Ly9nY2MuZ251Lm9yZy9idWd6 aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9OTE0ODEKKworaHR0cHM6Ly9nY2MuZ251Lm9yZy92aWV3Y3Zz L2djYz92aWV3PXJldmlzaW9uJnJldmlzaW9uPTI3NTE3MAoraHR0cHM6Ly9nY2MuZ251Lm9yZy92 aWV3Y3ZzL2djYz92aWV3PXJldmlzaW9uJnJldmlzaW9uPTI3NTE4MQorCitGaXhlcyBhIHNlY3Vy aXR5IGlzc3VlIHdpdGggdGhlIGhhcmR3YXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yCit3aGVu IGNvbXBpbGluZyBmb3IgUE9XRVI5LiBTaW5jZSBWb2lkIGNvbXBpbGVzIGZvciBQT1dFUjggYnkK K2RlZmF1bHQsIGl0J3Mgbm90IGFmZmVjdGVkLCBidXQgcGVvcGxlIGJ1aWxkaW5nIGN1c3RvbSBi aW5hcmllcworbWlnaHQgYmUuCisKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kCisr KysgZ2NjL2NvbmZpZy9yczYwMDAvYWx0aXZlYy5tZAorQEAgLTgwLDkgKzgwLDYgQEAKKyAgICBV TlNQRUNfVlVQS0hQWAorICAgIFVOU1BFQ19WVVBLTFBYCisgICAgVU5TUEVDX0NPTlZFUlRfNEYz Ml84STE2CistICAgVU5TUEVDX0RBUk4KKy0gICBVTlNQRUNfREFSTl8zMgorLSAgIFVOU1BFQ19E QVJOX1JBVworICAgIFVOU1BFQ19EU1QKKyAgICBVTlNQRUNfRFNUVAorICAgIFVOU1BFQ19EU1RT VAorQEAgLTE2MSw5ICsxNTgsNiBAQAorICAgIFVOU1BFQ19CQ0RBREQKKyAgICBVTlNQRUNfQkNE U1VCCisgICAgVU5TUEVDX0JDRF9PVkVSRkxPVworLSAgIFVOU1BFQ19DTVBSQgorLSAgIFVOU1BF Q19DTVBSQjIKKy0gICBVTlNQRUNfQ01QRVFCCisgICAgVU5TUEVDX1ZSTE1JCisgICAgVU5TUEVD X1ZSTE5NCisgXSkKK0BAIC00MTAxLDIyMyArNDA5NSw2IEBACisgICAiYmNkPGJjZF9hZGRfc3Vi Pi4gJTAsJTEsJTIsJTMiCisgICBbKHNldF9hdHRyICJ0eXBlIiAidmVjc2ltcGxlIildKQorIAor LShkZWZpbmVfaW5zbiAiZGFybl8zMiIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJl Z2lzdGVyX29wZXJhbmQiICI9ciIpCistICAgICAgICAodW5zcGVjOlNJIFsoY29uc3RfaW50IDAp XSBVTlNQRUNfREFSTl8zMikpXQorLSAgIlRBUkdFVF9QOV9NSVNDIgorLSAgImRhcm4gJTAsMCIK Ky0gIFsoc2V0X2F0dHIgInR5cGUiICJpbnRlZ2VyIildKQorLQorLShkZWZpbmVfaW5zbiAiZGFy bl9yYXciCistICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXIiKQorLSAgICAgICAgKHVuc3BlYzpESSBbKGNvbnN0X2ludCAwKV0gVU5TUEVDX0RBUk5fUkFX KSldCistICAiVEFSR0VUX1A5X01JU0MgJiYgVEFSR0VUXzY0QklUIgorLSAgImRhcm4gJTAsMiIK Ky0gIFsoc2V0X2F0dHIgInR5cGUiICJpbnRlZ2VyIildKQorLQorLShkZWZpbmVfaW5zbiAiZGFy biIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIp CistICAgICAgICAodW5zcGVjOkRJIFsoY29uc3RfaW50IDApXSBVTlNQRUNfREFSTikpXQorLSAg IlRBUkdFVF9QOV9NSVNDICYmIFRBUkdFVF82NEJJVCIKKy0gICJkYXJuICUwLDEiCistICBbKHNl dF9hdHRyICJ0eXBlIiAiaW50ZWdlciIpXSkKKy0KKy07OyBUZXN0IGJ5dGUgd2l0aGluIHJhbmdl LgorLTs7CistOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMSBhcmUgb3JnYW5pemVkIGFzIHh4Onh4 Onh4OnZ2LCB3aGVyZSB4eAorLTs7IHJlcHJlc2VudHMgYSBieXRlIHdob3NlIHZhbHVlIGlzIGln bm9yZWQgaW4gdGhpcyBjb250ZXh0IGFuZAorLTs7IHZ2LCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQg Ynl0ZSwgaG9sZHMgdGhlIGJ5dGUgdmFsdWUgdGhhdCBpcyB0bworLTs7IGJlIHRlc3RlZCBmb3Ig bWVtYmVyc2hpcCB3aXRoaW4gdGhlIHJhbmdlIHNwZWNpZmllZCBieSBvcGVyYW5kIDIuCistOzsg VGhlIGJ5dGVzIG9mIG9wZXJhbmQgMiBhcmUgb3JnYW5pemVkIGFzIHh4Onh4OmhpOmxvLgorLTs7 CistOzsgUmV0dXJuIGluIHRhcmdldCByZWdpc3RlciBvcGVyYW5kIDAgYSB2YWx1ZSBvZiAxIGlm IGxvIDw9IHZ2IGFuZAorLTs7IHZ2IDw9IGhpLiAgT3RoZXJ3aXNlLCBzZXQgcmVnaXN0ZXIgb3Bl cmFuZCAwIHRvIDAuCistOzsKKy07OyBUaG91Z2ggdGhlIGluc3RydWN0aW9ucyB0byB3aGljaCB0 aGlzIGV4cGFuc2lvbiBtYXBzIG9wZXJhdGUgb24KKy07OyA2NC1iaXQgcmVnaXN0ZXJzLCB0aGUg Y3VycmVudCBpbXBsZW1lbnRhdGlvbiBvbmx5IG9wZXJhdGVzIG9uCistOzsgU0ktbW9kZSBvcGVy YW5kcyBhcyB0aGUgaGlnaC1vcmRlciBiaXRzIHByb3ZpZGUgbm8gaW5mb3JtYXRpb24KKy07OyB0 aGF0IGlzIG5vdCBhbHJlYWR5IGF2YWlsYWJsZSBpbiB0aGUgbG93LW9yZGVyIGJpdHMuICBUbyBh dm9pZCB0aGUKKy07OyBjb3N0cyBvZiBkYXRhIHdpZGVuaW5nIG9wZXJhdGlvbnMsIGZ1dHVyZSBl bmhhbmNlbWVudHMgbWlnaHQgYWxsb3cKKy07OyBESSBtb2RlIGZvciBvcGVyYW5kIDAgYW5kL29y IG1pZ2h0IGFsbG93IG9wZXJhbmQgMSB0byBiZSBRSSBtb2RlLgorLShkZWZpbmVfZXhwYW5kICJj bXByYiIKKy0gIFsoc2V0IChtYXRjaF9kdXAgMykKKy0JKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJh bmQ6U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpCistCQkgICAgKG1hdGNoX29wZXJhbmQ6U0kg MiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQorLQkgVU5TUEVDX0NNUFJCKSkKKy0gICAoc2V0ICht YXRjaF9vcGVyYW5kOlNJIDAgImdwY19yZWdfb3BlcmFuZCIgIj1yIikKKy0JKGlmX3RoZW5fZWxz ZTpTSSAobHQgKG1hdGNoX2R1cCAzKQorLQkJCSAgICAgKGNvbnN0X2ludCAwKSkKKy0JCQkgKGNv bnN0X2ludCAtMSkKKy0JCQkgKGlmX3RoZW5fZWxzZSAoZ3QgKG1hdGNoX2R1cCAzKQorLQkJCQkJ ICAgKGNvbnN0X2ludCAwKSkKKy0JCQkJICAgICAgIChjb25zdF9pbnQgMSkKKy0JCQkJICAgICAg IChjb25zdF9pbnQgMCkpKSldCistICAiVEFSR0VUX1A5X01JU0MiCisteworLSAgb3BlcmFuZHNb M10gPSBnZW5fcmVnX3J0eCAoQ0Ntb2RlKTsKKy19KQorLQorLTs7IFRoZSBieXRlcyBvZiBvcGVy YW5kIDEgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDp4eDp2diwgd2hlcmUgeHgKKy07OyByZXByZXNl bnRzIGEgYnl0ZSB3aG9zZSB2YWx1ZSBpcyBpZ25vcmVkIGluIHRoaXMgY29udGV4dCBhbmQKKy07 OyB2diwgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJ5dGUsIGhvbGRzIHRoZSBieXRlIHZhbHVlIHRo YXQgaXMgdG8KKy07OyBiZSB0ZXN0ZWQgZm9yIG1lbWJlcnNoaXAgd2l0aGluIHRoZSByYW5nZSBz cGVjaWZpZWQgYnkgb3BlcmFuZCAyLgorLTs7IFRoZSBieXRlcyBvZiBvcGVyYW5kIDIgYXJlIG9y Z2FuaXplZCBhcyB4eDp4eDpoaTpsby4KKy07OworLTs7IFNldCBiaXQgMSAodGhlIEdUIGJpdCwg MHg0KSBvZiBDUiByZWdpc3RlciBvcGVyYW5kIDAgdG8gMSBpZgorLTs7IGxvIDw9IHZ2IGFuZCB2 diA8PSBoaS4gIE90aGVyd2lzZSwgc2V0IHRoZSBHVCBiaXQgdG8gMC4gIFRoZSBvdGhlcgorLTs7 IDMgYml0cyBvZiB0aGUgdGFyZ2V0IENSIHJlZ2lzdGVyIGFyZSBhbGwgc2V0IHRvIDAuCistKGRl ZmluZV9pbnNuICIqY21wcmJfaW50ZXJuYWwiCistICBbKHNldCAobWF0Y2hfb3BlcmFuZDpDQyAw ICJjY19yZWdfb3BlcmFuZCIgIj15IikKKy0JKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJhbmQ6U0kg MSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpCistCQkgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiZ3Bj X3JlZ19vcGVyYW5kIiAiciIpXQorLQkgVU5TUEVDX0NNUFJCKSldCistICAiVEFSR0VUX1A5X01J U0MiCistICAiY21wcmIgJTAsMCwlMSwlMiIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJsb2dpY2Fs IildKQorLQorLTs7IFNldCBvcGVyYW5kIDAgcmVnaXN0ZXIgdG8gLTEgaWYgdGhlIExUIGJpdCAo MHg4KSBvZiBjb25kaXRpb24KKy07OyByZWdpc3RlciBvcGVyYW5kIDEgaXMgb24uICBPdGhlcndp c2UsIHNldCBvcGVyYW5kIDAgcmVnaXN0ZXIgdG8gMQorLTs7IGlmIHRoZSBHVCBiaXQgKDB4NCkg b2YgY29uZGl0aW9uIHJlZ2lzdGVyIG9wZXJhbmQgMSBpcyBvbi4KKy07OyBPdGhlcndpc2UsIHNl dCBvcGVyYW5kIDAgdG8gMC4gIE5vdGUgdGhhdCB0aGUgcmVzdWx0IHN0b3JlZCBpbnRvCistOzsg cmVnaXN0ZXIgb3BlcmFuZCAwIGlzIG5vbi16ZXJvIGlmZiBlaXRoZXIgdGhlIExUIG9yIEdUIGJp dHMgYXJlIG9uCistOzsgd2l0aGluIGNvbmRpdGlvbiByZWdpc3RlciBvcGVyYW5kIDEuCistKGRl ZmluZV9pbnNuICJzZXRiX3NpZ25lZCIKKy0gICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJn cGNfcmVnX29wZXJhbmQiICI9ciIpCistCSAoaWZfdGhlbl9lbHNlOlNJIChsdCAobWF0Y2hfb3Bl cmFuZDpDQyAxICJjY19yZWdfb3BlcmFuZCIgInkiKQorLQkJCSAgICAgIChjb25zdF9pbnQgMCkp CistCQkJICAoY29uc3RfaW50IC0xKQorLQkJCSAgKGlmX3RoZW5fZWxzZSAoZ3QgKG1hdGNoX2R1 cCAxKQorLQkJCQkJICAgIChjb25zdF9pbnQgMCkpCistCQkJCQkoY29uc3RfaW50IDEpCistCQkJ CQkoY29uc3RfaW50IDApKSkpXQorLSAgIlRBUkdFVF9QOV9NSVNDIgorLSAgInNldGIgJTAsJTEi CistICBbKHNldF9hdHRyICJ0eXBlIiAibG9naWNhbCIpXSkKKy0KKy0oZGVmaW5lX2luc24gInNl dGJfdW5zaWduZWQiCistICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiZ3BjX3JlZ19vcGVy YW5kIiAiPXIiKQorLQkgKGlmX3RoZW5fZWxzZTpTSSAobHR1IChtYXRjaF9vcGVyYW5kOkNDVU5T IDEgImNjX3JlZ19vcGVyYW5kIiAieSIpCistCQkJICAgICAgKGNvbnN0X2ludCAwKSkKKy0JCQkg IChjb25zdF9pbnQgLTEpCistCQkJICAoaWZfdGhlbl9lbHNlIChndHUgKG1hdGNoX2R1cCAxKQor LQkJCQkJICAgIChjb25zdF9pbnQgMCkpCistCQkJCQkoY29uc3RfaW50IDEpCistCQkJCQkoY29u c3RfaW50IDApKSkpXQorLSAgIlRBUkdFVF9QOV9NSVNDIgorLSAgInNldGIgJTAsJTEiCistICBb KHNldF9hdHRyICJ0eXBlIiAibG9naWNhbCIpXSkKKy0KKy07OyBUZXN0IGJ5dGUgd2l0aGluIHR3 byByYW5nZXMuCistOzsKKy07OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAxIGFyZSBvcmdhbml6ZWQg YXMgeHg6eHg6eHg6dnYsIHdoZXJlIHh4CistOzsgcmVwcmVzZW50cyBhIGJ5dGUgd2hvc2UgdmFs dWUgaXMgaWdub3JlZCBpbiB0aGlzIGNvbnRleHQgYW5kCistOzsgdnYsIHRoZSBsZWFzdCBzaWdu aWZpY2FudCBieXRlLCBob2xkcyB0aGUgYnl0ZSB2YWx1ZSB0aGF0IGlzIHRvCistOzsgYmUgdGVz dGVkIGZvciBtZW1iZXJzaGlwIHdpdGhpbiB0aGUgcmFuZ2Ugc3BlY2lmaWVkIGJ5IG9wZXJhbmQg Mi4KKy07OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAyIGFyZSBvcmdhbml6ZWQgYXMgaGlfMTpsb18x OmhpXzI6bG9fMi4KKy07OworLTs7IFJldHVybiBpbiB0YXJnZXQgcmVnaXN0ZXIgb3BlcmFuZCAw IGEgdmFsdWUgb2YgMSBpZiAobG9fMSA8PSB2diBhbmQKKy07OyB2diA8PSBoaV8xKSBvciBpZiAo bG9fMiA8PSB2diBhbmQgdnYgPD0gaGlfMikuICBPdGhlcndpc2UsIHNldCByZWdpc3RlcgorLTs7 IG9wZXJhbmQgMCB0byAwLgorLTs7CistOzsgVGhvdWdoIHRoZSBpbnN0cnVjdGlvbnMgdG8gd2hp Y2ggdGhpcyBleHBhbnNpb24gbWFwcyBvcGVyYXRlIG9uCistOzsgNjQtYml0IHJlZ2lzdGVycywg dGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb25seSBvcGVyYXRlcyBvbgorLTs7IFNJLW1vZGUg b3BlcmFuZHMgYXMgdGhlIGhpZ2gtb3JkZXIgYml0cyBwcm92aWRlIG5vIGluZm9ybWF0aW9uCist OzsgdGhhdCBpcyBub3QgYWxyZWFkeSBhdmFpbGFibGUgaW4gdGhlIGxvdy1vcmRlciBiaXRzLiAg VG8gYXZvaWQgdGhlCistOzsgY29zdHMgb2YgZGF0YSB3aWRlbmluZyBvcGVyYXRpb25zLCBmdXR1 cmUgZW5oYW5jZW1lbnRzIG1pZ2h0IGFsbG93CistOzsgREkgbW9kZSBmb3Igb3BlcmFuZCAwIGFu ZC9vciBtaWdodCBhbGxvdyBvcGVyYW5kIDEgdG8gYmUgUUkgbW9kZS4KKy0oZGVmaW5lX2V4cGFu ZCAiY21wcmIyIgorLSAgWyhzZXQgKG1hdGNoX2R1cCAzKQorLQkodW5zcGVjOkNDIFsobWF0Y2hf b3BlcmFuZDpTSSAxICJncGNfcmVnX29wZXJhbmQiICJyIikKKy0JCSAgICAobWF0Y2hfb3BlcmFu ZDpTSSAyICJncGNfcmVnX29wZXJhbmQiICJyIildCistCSBVTlNQRUNfQ01QUkIyKSkKKy0gICAo c2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgImdwY19yZWdfb3BlcmFuZCIgIj1yIikKKy0JKGlmX3Ro ZW5fZWxzZTpTSSAobHQgKG1hdGNoX2R1cCAzKQorLQkJCSAgICAgKGNvbnN0X2ludCAwKSkKKy0J CQkgKGNvbnN0X2ludCAtMSkKKy0JCQkgKGlmX3RoZW5fZWxzZSAoZ3QgKG1hdGNoX2R1cCAzKQor LQkJCQkJICAgKGNvbnN0X2ludCAwKSkKKy0JCQkJICAgICAgIChjb25zdF9pbnQgMSkKKy0JCQkJ ICAgICAgIChjb25zdF9pbnQgMCkpKSldCistICAiVEFSR0VUX1A5X01JU0MiCisteworLSAgb3Bl cmFuZHNbM10gPSBnZW5fcmVnX3J0eCAoQ0Ntb2RlKTsKKy19KQorLQorLTs7IFRoZSBieXRlcyBv ZiBvcGVyYW5kIDEgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDp4eDp2diwgd2hlcmUgeHgKKy07OyBy ZXByZXNlbnRzIGEgYnl0ZSB3aG9zZSB2YWx1ZSBpcyBpZ25vcmVkIGluIHRoaXMgY29udGV4dCBh bmQKKy07OyB2diwgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJ5dGUsIGhvbGRzIHRoZSBieXRlIHZh bHVlIHRoYXQgaXMgdG8KKy07OyBiZSB0ZXN0ZWQgZm9yIG1lbWJlcnNoaXAgd2l0aGluIHRoZSBy YW5nZXMgc3BlY2lmaWVkIGJ5IG9wZXJhbmQgMi4KKy07OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAy IGFyZSBvcmdhbml6ZWQgYXMgaGlfMTpsb18xOmhpXzI6bG9fMi4KKy07OworLTs7IFNldCBiaXQg MSAodGhlIEdUIGJpdCwgMHg0KSBvZiBDUiByZWdpc3RlciBvcGVyYW5kIDAgdG8gMSBpZgorLTs7 IChsb18xIDw9IHZ2IGFuZCB2diA8PSBoaV8xKSBvciBpZiAobG9fMiA8PSB2diBhbmQgdnYgPD0g aGlfMikuCistOzsgT3RoZXJ3aXNlLCBzZXQgdGhlIEdUIGJpdCB0byAwLiAgVGhlIG90aGVyIDMg Yml0cyBvZiB0aGUgdGFyZ2V0CistOzsgQ1IgcmVnaXN0ZXIgYXJlIGFsbCBzZXQgdG8gMC4KKy0o ZGVmaW5lX2luc24gIipjbXByYjJfaW50ZXJuYWwiCistICBbKHNldCAobWF0Y2hfb3BlcmFuZDpD QyAwICJjY19yZWdfb3BlcmFuZCIgIj15IikKKy0JKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJhbmQ6 U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpCistCQkgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAi Z3BjX3JlZ19vcGVyYW5kIiAiciIpXQorLQkgVU5TUEVDX0NNUFJCMikpXQorLSAgIlRBUkdFVF9Q OV9NSVNDIgorLSAgImNtcHJiICUwLDEsJTEsJTIiCistICBbKHNldF9hdHRyICJ0eXBlIiAibG9n aWNhbCIpXSkKKy0KKy07OyBUZXN0IGJ5dGUgbWVtYmVyc2hpcCB3aXRoaW4gc2V0IG9mIDggYnl0 ZXMuCistOzsKKy07OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAxIGFyZSBvcmdhbml6ZWQgYXMgeHg6 eHg6eHg6dnYsIHdoZXJlIHh4CistOzsgcmVwcmVzZW50cyBhIGJ5dGUgd2hvc2UgdmFsdWUgaXMg aWdub3JlZCBpbiB0aGlzIGNvbnRleHQgYW5kCistOzsgdnYsIHRoZSBsZWFzdCBzaWduaWZpY2Fu dCBieXRlLCBob2xkcyB0aGUgYnl0ZSB2YWx1ZSB0aGF0IGlzIHRvCistOzsgYmUgdGVzdGVkIGZv ciBtZW1iZXJzaGlwIHdpdGhpbiB0aGUgc2V0IHNwZWNpZmllZCBieSBvcGVyYW5kIDIuCistOzsg VGhlIGJ5dGVzIG9mIG9wZXJhbmQgMiBhcmUgb3JnYW5pemVkIGFzIGUwOmUxOmUyOmUzOmU0OmU1 OmU2OmU3LgorLTs7CistOzsgUmV0dXJuIGluIHRhcmdldCByZWdpc3RlciBvcGVyYW5kIDAgYSB2 YWx1ZSBvZiAxIGlmIHZ2IGVxdWFscyBvbmUKKy07OyBvZiB0aGUgdmFsdWVzIGUwLCBlMSwgZTIs IGUzLCBlNCwgZTUsIGU2LCBvciBlNy4gIE90aGVyd2lzZSwgc2V0CistOzsgcmVnaXN0ZXIgb3Bl cmFuZCAwIHRvIDAuICBOb3RlIHRoYXQgdGhlIDggYnl0ZSB2YWx1ZXMgaGVsZCB3aXRoaW4KKy07 OyBvcGVyYW5kIDIgbmVlZCBub3QgYmUgdW5pcXVlLgorLTs7CistOzsgVGhvdWdoIHRoZSBpbnN0 cnVjdGlvbnMgdG8gd2hpY2ggdGhpcyBleHBhbnNpb24gbWFwcyBvcGVyYXRlIG9uCistOzsgNjQt Yml0IHJlZ2lzdGVycywgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gcmVxdWlyZXMgdGhhdCBv cGVyYW5kcworLTs7IDAgYW5kIDEgaGF2ZSBtb2RlIFNJIGFzIHRoZSBoaWdoLW9yZGVyIGJpdHMg cHJvdmlkZSBubyBpbmZvcm1hdGlvbgorLTs7IHRoYXQgaXMgbm90IGFscmVhZHkgYXZhaWxhYmxl IGluIHRoZSBsb3ctb3JkZXIgYml0cy4gIFRvIGF2b2lkIHRoZQorLTs7IGNvc3RzIG9mIGRhdGEg d2lkZW5pbmcgb3BlcmF0aW9ucywgZnV0dXJlIGVuaGFuY2VtZW50cyBtaWdodCBhbGxvdworLTs7 IERJIG1vZGUgZm9yIG9wZXJhbmQgMCBhbmQvb3IgbWlnaHQgYWxsb3cgb3BlcmFuZCAxIHRvIGJl IFFJIG1vZGUuCistKGRlZmluZV9leHBhbmQgImNtcGVxYiIKKy0gIFsoc2V0IChtYXRjaF9kdXAg MykKKy0JKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAi ciIpCistCQkgICAgKG1hdGNoX29wZXJhbmQ6REkgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQor LQkgVU5TUEVDX0NNUEVRQikpCistICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJncGNfcmVn X29wZXJhbmQiICI9ciIpCistCShpZl90aGVuX2Vsc2U6U0kgKGx0IChtYXRjaF9kdXAgMykKKy0J CQkgICAgIChjb25zdF9pbnQgMCkpCistCQkJIChjb25zdF9pbnQgLTEpCistCQkJIChpZl90aGVu X2Vsc2UgKGd0IChtYXRjaF9kdXAgMykKKy0JCQkJCSAgIChjb25zdF9pbnQgMCkpCistCQkJCSAg ICAgICAoY29uc3RfaW50IDEpCistCQkJCSAgICAgICAoY29uc3RfaW50IDApKSkpXQorLSAgIlRB UkdFVF9QOV9NSVNDICYmIFRBUkdFVF82NEJJVCIKKy17CistICBvcGVyYW5kc1szXSA9IGdlbl9y ZWdfcnR4IChDQ21vZGUpOworLX0pCistCistOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMSBhcmUg b3JnYW5pemVkIGFzIHh4Onh4Onh4OnZ2LCB3aGVyZSB4eAorLTs7IHJlcHJlc2VudHMgYSBieXRl IHdob3NlIHZhbHVlIGlzIGlnbm9yZWQgaW4gdGhpcyBjb250ZXh0IGFuZAorLTs7IHZ2LCB0aGUg bGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZSwgaG9sZHMgdGhlIGJ5dGUgdmFsdWUgdGhhdCBpcyB0bwor LTs7IGJlIHRlc3RlZCBmb3IgbWVtYmVyc2hpcCB3aXRoaW4gdGhlIHNldCBzcGVjaWZpZWQgYnkg b3BlcmFuZCAyLgorLTs7IFRoZSBieXRlcyBvZiBvcGVyYW5kIDIgYXJlIG9yZ2FuaXplZCBhcyBl MDplMTplMjplMzplNDplNTplNjplNy4KKy07OworLTs7IFNldCBiaXQgMSAodGhlIEdUIGJpdCwg MHg0KSBvZiBDUiByZWdpc3RlciBvcGVyYW5kIDAgdG8gMSBpZiB2dgorLTs7IGVxdWFscyBvbmUg b2YgdGhlIHZhbHVlcyBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgb3IgZTcuICBPdGhlcndp c2UsCistOzsgc2V0IHRoZSBHVCBiaXQgdG8gemVyby4gIFRoZSBvdGhlciAzIGJpdHMgb2YgdGhl IHRhcmdldCBDUiByZWdpc3RlcgorLTs7IGFyZSBhbGwgc2V0IHRvIDAuCistKGRlZmluZV9pbnNu ICIqY21wZXFiX2ludGVybmFsIgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Q0MgMCAiY2NfcmVn X29wZXJhbmQiICI9eSIpCistCSAodW5zcGVjOkNDIFsobWF0Y2hfb3BlcmFuZDpTSSAxICJncGNf cmVnX29wZXJhbmQiICJyIikKKy0JCSAgICAgKG1hdGNoX29wZXJhbmQ6REkgMiAiZ3BjX3JlZ19v cGVyYW5kIiAiciIpXQorLQkgIFVOU1BFQ19DTVBFUUIpKV0KKy0gICJUQVJHRVRfUDlfTUlTQyAm JiBUQVJHRVRfNjRCSVQiCistICAiY21wZXFiICUwLCUxLCUyIgorLSAgWyhzZXRfYXR0ciAidHlw ZSIgImxvZ2ljYWwiKV0pCistCisgKGRlZmluZV9leHBhbmQgImJjZDxiY2RfYWRkX3N1Yj5fPGNv ZGU+IgorICAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkNDRlAgQ1I2X1JFR05PKQorIAkJICAgKGNv bXBhcmU6Q0NGUAorLS0tIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5tZAorKysrIGdjYy9jb25m aWcvcnM2MDAwL3JzNjAwMC5tZAorQEAgLTEzNyw2ICsxMzcsOSBAQAorICAgIFVOU1BFQ19MU1EK KyAgICBVTlNQRUNfRlVTSU9OX0dQUgorICAgIFVOU1BFQ19TVEFDS19DSEVDSworKyAgIFVOU1BF Q19DTVBSQgorKyAgIFVOU1BFQ19DTVBSQjIKKysgICBVTlNQRUNfQ01QRVFCCisgICAgVU5TUEVD X0FERF9ST1VORF9UT19PREQKKyAgICBVTlNQRUNfU1VCX1JPVU5EX1RPX09ERAorICAgIFVOU1BF Q19NVUxfUk9VTkRfVE9fT0RECitAQCAtMTY0LDYgKzE2Nyw5IEBACisgICAgVU5TUEVDVl9FSF9S UgkJOyBlaF9yZWdfcmVzdG9yZQorICAgIFVOU1BFQ1ZfSVNZTkMJCTsgaXN5bmMgaW5zdHJ1Y3Rp b24KKyAgICBVTlNQRUNWX01GVEIJCQk7IG1vdmUgZnJvbSB0aW1lIGJhc2UKKysgICBVTlNQRUNW X0RBUk4JCQk7IGRhcm4gMSAoZGVsaXZlciBhIHJhbmRvbSBudW1iZXIpCisrICAgVU5TUEVDVl9E QVJOXzMyCQk7IGRhcm4gMgorKyAgIFVOU1BFQ1ZfREFSTl9SQVcJCTsgZGFybiAwCisgICAgVU5T UEVDVl9OTEdSCQkJOyBub24tbG9jYWwgZ290byByZWNlaXZlcgorICAgIFVOU1BFQ1ZfTUZGUwkJ CTsgTW92ZSBmcm9tIEZQU0NSCisgICAgVU5TUEVDVl9NRkZTTAkJOyBNb3ZlIGZyb20gRlBTQ1Ig bGlnaHQgaW5zdHJ1Y3Rpb24gdmVyc2lvbgorQEAgLTEzODUzLDYgKzEzODU5LDIyNCBAQAorICAg WyhzZXRfYXR0ciAidHlwZSIgInZlY21vdmUiKQorICAgIChzZXRfYXR0ciAic2l6ZSIgIjEyOCIp XSkKKyAKKys7OyBNaXNjZWxsYW5lb3VzIElTQSAzLjAgKHBvd2VyOSkgaW5zdHJ1Y3Rpb25zCisr CisrKGRlZmluZV9pbnNuICJkYXJuXzMyIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKysgICAgICAgICh1bnNwZWNfdm9sYXRpbGU6U0kgWyhj b25zdF9pbnQgMCldIFVOU1BFQ1ZfREFSTl8zMikpXQorKyAgIlRBUkdFVF9QOV9NSVNDIgorKyAg ImRhcm4gJTAsMCIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJpbnRlZ2VyIildKQorKworKyhkZWZp bmVfaW5zbiAiZGFybl9yYXciCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXIiKQorKyAgICAgICAgKHVuc3BlY192b2xhdGlsZTpESSBbKGNvbnN0X2lu dCAwKV0gVU5TUEVDVl9EQVJOX1JBVykpXQorKyAgIlRBUkdFVF9QOV9NSVNDICYmIFRBUkdFVF82 NEJJVCIKKysgICJkYXJuICUwLDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiaW50ZWdlciIpXSkK KysKKysoZGVmaW5lX2luc24gImRhcm4iCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorKyAgICAgICAgKHVuc3BlY192b2xhdGlsZTpESSBbKGNv bnN0X2ludCAwKV0gVU5TUEVDVl9EQVJOKSldCisrICAiVEFSR0VUX1A5X01JU0MgJiYgVEFSR0VU XzY0QklUIgorKyAgImRhcm4gJTAsMSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJpbnRlZ2VyIild KQorKworKzs7IFRlc3QgYnl0ZSB3aXRoaW4gcmFuZ2UuCisrOzsKKys7OyBUaGUgYnl0ZXMgb2Yg b3BlcmFuZCAxIGFyZSBvcmdhbml6ZWQgYXMgeHg6eHg6eHg6dnYsIHdoZXJlIHh4CisrOzsgcmVw cmVzZW50cyBhIGJ5dGUgd2hvc2UgdmFsdWUgaXMgaWdub3JlZCBpbiB0aGlzIGNvbnRleHQgYW5k CisrOzsgdnYsIHRoZSBsZWFzdCBzaWduaWZpY2FudCBieXRlLCBob2xkcyB0aGUgYnl0ZSB2YWx1 ZSB0aGF0IGlzIHRvCisrOzsgYmUgdGVzdGVkIGZvciBtZW1iZXJzaGlwIHdpdGhpbiB0aGUgcmFu Z2Ugc3BlY2lmaWVkIGJ5IG9wZXJhbmQgMi4KKys7OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAyIGFy ZSBvcmdhbml6ZWQgYXMgeHg6eHg6aGk6bG8uCisrOzsKKys7OyBSZXR1cm4gaW4gdGFyZ2V0IHJl Z2lzdGVyIG9wZXJhbmQgMCBhIHZhbHVlIG9mIDEgaWYgbG8gPD0gdnYgYW5kCisrOzsgdnYgPD0g aGkuICBPdGhlcndpc2UsIHNldCByZWdpc3RlciBvcGVyYW5kIDAgdG8gMC4KKys7OworKzs7IFRo b3VnaCB0aGUgaW5zdHJ1Y3Rpb25zIHRvIHdoaWNoIHRoaXMgZXhwYW5zaW9uIG1hcHMgb3BlcmF0 ZSBvbgorKzs7IDY0LWJpdCByZWdpc3RlcnMsIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9u bHkgb3BlcmF0ZXMgb24KKys7OyBTSS1tb2RlIG9wZXJhbmRzIGFzIHRoZSBoaWdoLW9yZGVyIGJp dHMgcHJvdmlkZSBubyBpbmZvcm1hdGlvbgorKzs7IHRoYXQgaXMgbm90IGFscmVhZHkgYXZhaWxh YmxlIGluIHRoZSBsb3ctb3JkZXIgYml0cy4gIFRvIGF2b2lkIHRoZQorKzs7IGNvc3RzIG9mIGRh dGEgd2lkZW5pbmcgb3BlcmF0aW9ucywgZnV0dXJlIGVuaGFuY2VtZW50cyBtaWdodCBhbGxvdwor Kzs7IERJIG1vZGUgZm9yIG9wZXJhbmQgMCBhbmQvb3IgbWlnaHQgYWxsb3cgb3BlcmFuZCAxIHRv IGJlIFFJIG1vZGUuCisrKGRlZmluZV9leHBhbmQgImNtcHJiIgorKyAgWyhzZXQgKG1hdGNoX2R1 cCAzKQorKwkodW5zcGVjOkNDIFsobWF0Y2hfb3BlcmFuZDpTSSAxICJncGNfcmVnX29wZXJhbmQi ICJyIikKKysJCSAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJncGNfcmVnX29wZXJhbmQiICJyIild CisrCSBVTlNQRUNfQ01QUkIpKQorKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiZ3BjX3Jl Z19vcGVyYW5kIiAiPXIiKQorKwkoaWZfdGhlbl9lbHNlOlNJIChsdCAobWF0Y2hfZHVwIDMpCisr CQkJICAgICAoY29uc3RfaW50IDApKQorKwkJCSAoY29uc3RfaW50IC0xKQorKwkJCSAoaWZfdGhl bl9lbHNlIChndCAobWF0Y2hfZHVwIDMpCisrCQkJCQkgICAoY29uc3RfaW50IDApKQorKwkJCQkg ICAgICAgKGNvbnN0X2ludCAxKQorKwkJCQkgICAgICAgKGNvbnN0X2ludCAwKSkpKV0KKysgICJU QVJHRVRfUDlfTUlTQyIKKyt7CisrICBvcGVyYW5kc1szXSA9IGdlbl9yZWdfcnR4IChDQ21vZGUp OworK30pCisrCisrOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMSBhcmUgb3JnYW5pemVkIGFzIHh4 Onh4Onh4OnZ2LCB3aGVyZSB4eAorKzs7IHJlcHJlc2VudHMgYSBieXRlIHdob3NlIHZhbHVlIGlz IGlnbm9yZWQgaW4gdGhpcyBjb250ZXh0IGFuZAorKzs7IHZ2LCB0aGUgbGVhc3Qgc2lnbmlmaWNh bnQgYnl0ZSwgaG9sZHMgdGhlIGJ5dGUgdmFsdWUgdGhhdCBpcyB0bworKzs7IGJlIHRlc3RlZCBm b3IgbWVtYmVyc2hpcCB3aXRoaW4gdGhlIHJhbmdlIHNwZWNpZmllZCBieSBvcGVyYW5kIDIuCisr OzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMiBhcmUgb3JnYW5pemVkIGFzIHh4Onh4OmhpOmxvLgor Kzs7CisrOzsgU2V0IGJpdCAxICh0aGUgR1QgYml0LCAweDQpIG9mIENSIHJlZ2lzdGVyIG9wZXJh bmQgMCB0byAxIGlmCisrOzsgbG8gPD0gdnYgYW5kIHZ2IDw9IGhpLiAgT3RoZXJ3aXNlLCBzZXQg dGhlIEdUIGJpdCB0byAwLiAgVGhlIG90aGVyCisrOzsgMyBiaXRzIG9mIHRoZSB0YXJnZXQgQ1Ig cmVnaXN0ZXIgYXJlIGFsbCBzZXQgdG8gMC4KKysoZGVmaW5lX2luc24gIipjbXByYl9pbnRlcm5h bCIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkNDIDAgImNjX3JlZ19vcGVyYW5kIiAiPXkiKQor KwkodW5zcGVjOkNDIFsobWF0Y2hfb3BlcmFuZDpTSSAxICJncGNfcmVnX29wZXJhbmQiICJyIikK KysJCSAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJncGNfcmVnX29wZXJhbmQiICJyIildCisrCSBV TlNQRUNfQ01QUkIpKV0KKysgICJUQVJHRVRfUDlfTUlTQyIKKysgICJjbXByYiAlMCwwLCUxLCUy IgorKyAgWyhzZXRfYXR0ciAidHlwZSIgImxvZ2ljYWwiKV0pCisrCisrOzsgU2V0IG9wZXJhbmQg MCByZWdpc3RlciB0byAtMSBpZiB0aGUgTFQgYml0ICgweDgpIG9mIGNvbmRpdGlvbgorKzs7IHJl Z2lzdGVyIG9wZXJhbmQgMSBpcyBvbi4gIE90aGVyd2lzZSwgc2V0IG9wZXJhbmQgMCByZWdpc3Rl ciB0byAxCisrOzsgaWYgdGhlIEdUIGJpdCAoMHg0KSBvZiBjb25kaXRpb24gcmVnaXN0ZXIgb3Bl cmFuZCAxIGlzIG9uLgorKzs7IE90aGVyd2lzZSwgc2V0IG9wZXJhbmQgMCB0byAwLiAgTm90ZSB0 aGF0IHRoZSByZXN1bHQgc3RvcmVkIGludG8KKys7OyByZWdpc3RlciBvcGVyYW5kIDAgaXMgbm9u LXplcm8gaWZmIGVpdGhlciB0aGUgTFQgb3IgR1QgYml0cyBhcmUgb24KKys7OyB3aXRoaW4gY29u ZGl0aW9uIHJlZ2lzdGVyIG9wZXJhbmQgMS4KKysoZGVmaW5lX2luc24gInNldGJfc2lnbmVkIgor KyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgImdwY19yZWdfb3BlcmFuZCIgIj1yIikKKysJ IChpZl90aGVuX2Vsc2U6U0kgKGx0IChtYXRjaF9vcGVyYW5kOkNDIDEgImNjX3JlZ19vcGVyYW5k IiAieSIpCisrCQkJICAgICAgKGNvbnN0X2ludCAwKSkKKysJCQkgIChjb25zdF9pbnQgLTEpCisr CQkJICAoaWZfdGhlbl9lbHNlIChndCAobWF0Y2hfZHVwIDEpCisrCQkJCQkgICAgKGNvbnN0X2lu dCAwKSkKKysJCQkJCShjb25zdF9pbnQgMSkKKysJCQkJCShjb25zdF9pbnQgMCkpKSldCisrICAi VEFSR0VUX1A5X01JU0MiCisrICAic2V0YiAlMCwlMSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJs b2dpY2FsIildKQorKworKyhkZWZpbmVfaW5zbiAic2V0Yl91bnNpZ25lZCIKKysgICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9ciIpCisrCSAoaWZfdGhlbl9l bHNlOlNJIChsdHUgKG1hdGNoX29wZXJhbmQ6Q0NVTlMgMSAiY2NfcmVnX29wZXJhbmQiICJ5IikK KysJCQkgICAgICAoY29uc3RfaW50IDApKQorKwkJCSAgKGNvbnN0X2ludCAtMSkKKysJCQkgIChp Zl90aGVuX2Vsc2UgKGd0dSAobWF0Y2hfZHVwIDEpCisrCQkJCQkgICAgKGNvbnN0X2ludCAwKSkK KysJCQkJCShjb25zdF9pbnQgMSkKKysJCQkJCShjb25zdF9pbnQgMCkpKSldCisrICAiVEFSR0VU X1A5X01JU0MiCisrICAic2V0YiAlMCwlMSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJsb2dpY2Fs IildKQorKworKzs7IFRlc3QgYnl0ZSB3aXRoaW4gdHdvIHJhbmdlcy4KKys7OworKzs7IFRoZSBi eXRlcyBvZiBvcGVyYW5kIDEgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDp4eDp2diwgd2hlcmUgeHgK Kys7OyByZXByZXNlbnRzIGEgYnl0ZSB3aG9zZSB2YWx1ZSBpcyBpZ25vcmVkIGluIHRoaXMgY29u dGV4dCBhbmQKKys7OyB2diwgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJ5dGUsIGhvbGRzIHRoZSBi eXRlIHZhbHVlIHRoYXQgaXMgdG8KKys7OyBiZSB0ZXN0ZWQgZm9yIG1lbWJlcnNoaXAgd2l0aGlu IHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgb3BlcmFuZCAyLgorKzs7IFRoZSBieXRlcyBvZiBvcGVy YW5kIDIgYXJlIG9yZ2FuaXplZCBhcyBoaV8xOmxvXzE6aGlfMjpsb18yLgorKzs7CisrOzsgUmV0 dXJuIGluIHRhcmdldCByZWdpc3RlciBvcGVyYW5kIDAgYSB2YWx1ZSBvZiAxIGlmIChsb18xIDw9 IHZ2IGFuZAorKzs7IHZ2IDw9IGhpXzEpIG9yIGlmIChsb18yIDw9IHZ2IGFuZCB2diA8PSBoaV8y KS4gIE90aGVyd2lzZSwgc2V0IHJlZ2lzdGVyCisrOzsgb3BlcmFuZCAwIHRvIDAuCisrOzsKKys7 OyBUaG91Z2ggdGhlIGluc3RydWN0aW9ucyB0byB3aGljaCB0aGlzIGV4cGFuc2lvbiBtYXBzIG9w ZXJhdGUgb24KKys7OyA2NC1iaXQgcmVnaXN0ZXJzLCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlv biBvbmx5IG9wZXJhdGVzIG9uCisrOzsgU0ktbW9kZSBvcGVyYW5kcyBhcyB0aGUgaGlnaC1vcmRl ciBiaXRzIHByb3ZpZGUgbm8gaW5mb3JtYXRpb24KKys7OyB0aGF0IGlzIG5vdCBhbHJlYWR5IGF2 YWlsYWJsZSBpbiB0aGUgbG93LW9yZGVyIGJpdHMuICBUbyBhdm9pZCB0aGUKKys7OyBjb3N0cyBv ZiBkYXRhIHdpZGVuaW5nIG9wZXJhdGlvbnMsIGZ1dHVyZSBlbmhhbmNlbWVudHMgbWlnaHQgYWxs b3cKKys7OyBESSBtb2RlIGZvciBvcGVyYW5kIDAgYW5kL29yIG1pZ2h0IGFsbG93IG9wZXJhbmQg MSB0byBiZSBRSSBtb2RlLgorKyhkZWZpbmVfZXhwYW5kICJjbXByYjIiCisrICBbKHNldCAobWF0 Y2hfZHVwIDMpCisrCSh1bnNwZWM6Q0MgWyhtYXRjaF9vcGVyYW5kOlNJIDEgImdwY19yZWdfb3Bl cmFuZCIgInIiKQorKwkJICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImdwY19yZWdfb3BlcmFuZCIg InIiKV0KKysJIFVOU1BFQ19DTVBSQjIpKQorKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAi Z3BjX3JlZ19vcGVyYW5kIiAiPXIiKQorKwkoaWZfdGhlbl9lbHNlOlNJIChsdCAobWF0Y2hfZHVw IDMpCisrCQkJICAgICAoY29uc3RfaW50IDApKQorKwkJCSAoY29uc3RfaW50IC0xKQorKwkJCSAo aWZfdGhlbl9lbHNlIChndCAobWF0Y2hfZHVwIDMpCisrCQkJCQkgICAoY29uc3RfaW50IDApKQor KwkJCQkgICAgICAgKGNvbnN0X2ludCAxKQorKwkJCQkgICAgICAgKGNvbnN0X2ludCAwKSkpKV0K KysgICJUQVJHRVRfUDlfTUlTQyIKKyt7CisrICBvcGVyYW5kc1szXSA9IGdlbl9yZWdfcnR4IChD Q21vZGUpOworK30pCisrCisrOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMSBhcmUgb3JnYW5pemVk IGFzIHh4Onh4Onh4OnZ2LCB3aGVyZSB4eAorKzs7IHJlcHJlc2VudHMgYSBieXRlIHdob3NlIHZh bHVlIGlzIGlnbm9yZWQgaW4gdGhpcyBjb250ZXh0IGFuZAorKzs7IHZ2LCB0aGUgbGVhc3Qgc2ln bmlmaWNhbnQgYnl0ZSwgaG9sZHMgdGhlIGJ5dGUgdmFsdWUgdGhhdCBpcyB0bworKzs7IGJlIHRl c3RlZCBmb3IgbWVtYmVyc2hpcCB3aXRoaW4gdGhlIHJhbmdlcyBzcGVjaWZpZWQgYnkgb3BlcmFu ZCAyLgorKzs7IFRoZSBieXRlcyBvZiBvcGVyYW5kIDIgYXJlIG9yZ2FuaXplZCBhcyBoaV8xOmxv XzE6aGlfMjpsb18yLgorKzs7CisrOzsgU2V0IGJpdCAxICh0aGUgR1QgYml0LCAweDQpIG9mIENS IHJlZ2lzdGVyIG9wZXJhbmQgMCB0byAxIGlmCisrOzsgKGxvXzEgPD0gdnYgYW5kIHZ2IDw9IGhp XzEpIG9yIGlmIChsb18yIDw9IHZ2IGFuZCB2diA8PSBoaV8yKS4KKys7OyBPdGhlcndpc2UsIHNl dCB0aGUgR1QgYml0IHRvIDAuICBUaGUgb3RoZXIgMyBiaXRzIG9mIHRoZSB0YXJnZXQKKys7OyBD UiByZWdpc3RlciBhcmUgYWxsIHNldCB0byAwLgorKyhkZWZpbmVfaW5zbiAiKmNtcHJiMl9pbnRl cm5hbCIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkNDIDAgImNjX3JlZ19vcGVyYW5kIiAiPXki KQorKwkodW5zcGVjOkNDIFsobWF0Y2hfb3BlcmFuZDpTSSAxICJncGNfcmVnX29wZXJhbmQiICJy IikKKysJCSAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJncGNfcmVnX29wZXJhbmQiICJyIildCisr CSBVTlNQRUNfQ01QUkIyKSldCisrICAiVEFSR0VUX1A5X01JU0MiCisrICAiY21wcmIgJTAsMSwl MSwlMiIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJsb2dpY2FsIildKQorKworKzs7IFRlc3QgYnl0 ZSBtZW1iZXJzaGlwIHdpdGhpbiBzZXQgb2YgOCBieXRlcy4KKys7OworKzs7IFRoZSBieXRlcyBv ZiBvcGVyYW5kIDEgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDp4eDp2diwgd2hlcmUgeHgKKys7OyBy ZXByZXNlbnRzIGEgYnl0ZSB3aG9zZSB2YWx1ZSBpcyBpZ25vcmVkIGluIHRoaXMgY29udGV4dCBh bmQKKys7OyB2diwgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJ5dGUsIGhvbGRzIHRoZSBieXRlIHZh bHVlIHRoYXQgaXMgdG8KKys7OyBiZSB0ZXN0ZWQgZm9yIG1lbWJlcnNoaXAgd2l0aGluIHRoZSBz ZXQgc3BlY2lmaWVkIGJ5IG9wZXJhbmQgMi4KKys7OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAyIGFy ZSBvcmdhbml6ZWQgYXMgZTA6ZTE6ZTI6ZTM6ZTQ6ZTU6ZTY6ZTcuCisrOzsKKys7OyBSZXR1cm4g aW4gdGFyZ2V0IHJlZ2lzdGVyIG9wZXJhbmQgMCBhIHZhbHVlIG9mIDEgaWYgdnYgZXF1YWxzIG9u ZQorKzs7IG9mIHRoZSB2YWx1ZXMgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIG9yIGU3LiAg T3RoZXJ3aXNlLCBzZXQKKys7OyByZWdpc3RlciBvcGVyYW5kIDAgdG8gMC4gIE5vdGUgdGhhdCB0 aGUgOCBieXRlIHZhbHVlcyBoZWxkIHdpdGhpbgorKzs7IG9wZXJhbmQgMiBuZWVkIG5vdCBiZSB1 bmlxdWUuCisrOzsKKys7OyBUaG91Z2ggdGhlIGluc3RydWN0aW9ucyB0byB3aGljaCB0aGlzIGV4 cGFuc2lvbiBtYXBzIG9wZXJhdGUgb24KKys7OyA2NC1iaXQgcmVnaXN0ZXJzLCB0aGUgY3VycmVu dCBpbXBsZW1lbnRhdGlvbiByZXF1aXJlcyB0aGF0IG9wZXJhbmRzCisrOzsgMCBhbmQgMSBoYXZl IG1vZGUgU0kgYXMgdGhlIGhpZ2gtb3JkZXIgYml0cyBwcm92aWRlIG5vIGluZm9ybWF0aW9uCisr OzsgdGhhdCBpcyBub3QgYWxyZWFkeSBhdmFpbGFibGUgaW4gdGhlIGxvdy1vcmRlciBiaXRzLiAg VG8gYXZvaWQgdGhlCisrOzsgY29zdHMgb2YgZGF0YSB3aWRlbmluZyBvcGVyYXRpb25zLCBmdXR1 cmUgZW5oYW5jZW1lbnRzIG1pZ2h0IGFsbG93CisrOzsgREkgbW9kZSBmb3Igb3BlcmFuZCAwIGFu ZC9vciBtaWdodCBhbGxvdyBvcGVyYW5kIDEgdG8gYmUgUUkgbW9kZS4KKysoZGVmaW5lX2V4cGFu ZCAiY21wZXFiIgorKyAgWyhzZXQgKG1hdGNoX2R1cCAzKQorKwkodW5zcGVjOkNDIFsobWF0Y2hf b3BlcmFuZDpTSSAxICJncGNfcmVnX29wZXJhbmQiICJyIikKKysJCSAgICAobWF0Y2hfb3BlcmFu ZDpESSAyICJncGNfcmVnX29wZXJhbmQiICJyIildCisrCSBVTlNQRUNfQ01QRVFCKSkKKysgICAo c2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgImdwY19yZWdfb3BlcmFuZCIgIj1yIikKKysJKGlmX3Ro ZW5fZWxzZTpTSSAobHQgKG1hdGNoX2R1cCAzKQorKwkJCSAgICAgKGNvbnN0X2ludCAwKSkKKysJ CQkgKGNvbnN0X2ludCAtMSkKKysJCQkgKGlmX3RoZW5fZWxzZSAoZ3QgKG1hdGNoX2R1cCAzKQor KwkJCQkJICAgKGNvbnN0X2ludCAwKSkKKysJCQkJICAgICAgIChjb25zdF9pbnQgMSkKKysJCQkJ ICAgICAgIChjb25zdF9pbnQgMCkpKSldCisrICAiVEFSR0VUX1A5X01JU0MgJiYgVEFSR0VUXzY0 QklUIgorK3sKKysgIG9wZXJhbmRzWzNdID0gZ2VuX3JlZ19ydHggKENDbW9kZSk7CisrfSkKKysK Kys7OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAxIGFyZSBvcmdhbml6ZWQgYXMgeHg6eHg6eHg6dnYs IHdoZXJlIHh4CisrOzsgcmVwcmVzZW50cyBhIGJ5dGUgd2hvc2UgdmFsdWUgaXMgaWdub3JlZCBp biB0aGlzIGNvbnRleHQgYW5kCisrOzsgdnYsIHRoZSBsZWFzdCBzaWduaWZpY2FudCBieXRlLCBo b2xkcyB0aGUgYnl0ZSB2YWx1ZSB0aGF0IGlzIHRvCisrOzsgYmUgdGVzdGVkIGZvciBtZW1iZXJz aGlwIHdpdGhpbiB0aGUgc2V0IHNwZWNpZmllZCBieSBvcGVyYW5kIDIuCisrOzsgVGhlIGJ5dGVz IG9mIG9wZXJhbmQgMiBhcmUgb3JnYW5pemVkIGFzIGUwOmUxOmUyOmUzOmU0OmU1OmU2OmU3Lgor Kzs7CisrOzsgU2V0IGJpdCAxICh0aGUgR1QgYml0LCAweDQpIG9mIENSIHJlZ2lzdGVyIG9wZXJh bmQgMCB0byAxIGlmIHZ2CisrOzsgZXF1YWxzIG9uZSBvZiB0aGUgdmFsdWVzIGUwLCBlMSwgZTIs IGUzLCBlNCwgZTUsIGU2LCBvciBlNy4gIE90aGVyd2lzZSwKKys7OyBzZXQgdGhlIEdUIGJpdCB0 byB6ZXJvLiAgVGhlIG90aGVyIDMgYml0cyBvZiB0aGUgdGFyZ2V0IENSIHJlZ2lzdGVyCisrOzsg YXJlIGFsbCBzZXQgdG8gMC4KKysoZGVmaW5lX2luc24gIipjbXBlcWJfaW50ZXJuYWwiCisrICBb KHNldCAobWF0Y2hfb3BlcmFuZDpDQyAwICJjY19yZWdfb3BlcmFuZCIgIj15IikKKysJICh1bnNw ZWM6Q0MgWyhtYXRjaF9vcGVyYW5kOlNJIDEgImdwY19yZWdfb3BlcmFuZCIgInIiKQorKwkJICAg ICAobWF0Y2hfb3BlcmFuZDpESSAyICJncGNfcmVnX29wZXJhbmQiICJyIildCisrCSAgVU5TUEVD X0NNUEVRQikpXQorKyAgIlRBUkdFVF9QOV9NSVNDICYmIFRBUkdFVF82NEJJVCIKKysgICJjbXBl cWIgJTAsJTEsJTIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAibG9naWNhbCIpXSkKKyAKKyAoZGVm aW5lX2luc24gIipuYWJzPG1vZGU+Ml9odyIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOklFRUUx MjggMCAiYWx0aXZlY19yZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nY2MvcGF0Y2hlcy9saWJmZmlfZ251bGludXgucGF0Y2ggYi9zcmNwa2dzL2djYy9wYXRjaGVz L2xpYmZmaV9nbnVsaW51eC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNDEzYjRhZWY1YWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2djYy9wYXRjaGVz L2xpYmZmaV9nbnVsaW51eC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gbGliZmZpL3NyYy9j bG9zdXJlcy5jLm9yaWcKKysrKyBsaWJmZmkvc3JjL2Nsb3N1cmVzLmMKK0BAIC0zNCw3ICszNCw3 IEBACisgI2luY2x1ZGUgPGZmaV9jb21tb24uaD4KKworICNpZiAhRkZJX01NQVBfRVhFQ19XUklU ICYmICFGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFCistIyBpZiBfX2dudV9saW51eF9fICYmICFk ZWZpbmVkKF9fQU5EUk9JRF9fKQorKyMgaWYgX19saW51eF9fICYmICFkZWZpbmVkKF9fQU5EUk9J RF9fKQorIC8qIFRoaXMgbWFjcm8gaW5kaWNhdGVzIGl0IG1heSBiZSBmb3JiaWRkZW4gdG8gbWFw IGFub255bW91cyBtZW1vcnkKKyAgICB3aXRoIGJvdGggd3JpdGUgYW5kIGV4ZWN1dGUgcGVybWlz c2lvbi4gIENvZGUgY29tcGlsZWQgd2hlbiB0aGlzCisgICAgb3B0aW9uIGlzIGRlZmluZWQgd2ls bCBhdHRlbXB0IHRvIG1hcCBzdWNoIHBhZ2VzIG9uY2UsIGJ1dCBpZiBpdApkaWZmIC0tZ2l0IGEv c3JjcGtncy9nY2MvcGF0Y2hlcy9ub24tbnVsbG5lc3MucGF0Y2ggYi9zcmNwa2dzL2djYy9wYXRj aGVzL25vbi1udWxsbmVzcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Uw ZTQ0MjVjZTQuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZ2NjL3BhdGNoZXMvbm9uLW51bGxu ZXNzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotU291cmNlOiAyMDE5LTA2 LTIxICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgotVXBzdHJlYW06IHllcwotUmVhc29uOiBQ UiB0cmVlLW9wdGltaXphdGlvbi85MDk0OQotKiB0cmVlLXNzYS1jb3B5LmMgKGZpbmlfY29weV9w cm9wKTogVXNlIHJlc2V0X2Zsb3dfc2Vuc2l0aXZlX2luZm8uCi0qIHRyZWUtc3NhbmFtZXMuYyAo cmVzZXRfZmxvd19zZW5zaXRpdmVfaW5mbyk6IFJlc2V0IG5vbi1udWxsIHN0YXRlLgotCi0tLS0g Z2NjL3RyZWUtc3NhLWNvcHkuYwkyMDE5LTAxLTAxIDEzOjMxOjU1LjAwMDAwMDAwMCArMDEwMAot KysrIGdjYy90cmVlLXNzYS1jb3B5LmMJMjAxOS0wNi0yNiAxODo1MDowMS4wMzAzOTU0NzEgKzAy MDAKLUBAIC01NDUsMTMgKzU0NSwxMiBAQAotIAkgICAgICBkdXBsaWNhdGVfc3NhX25hbWVfcHRy X2luZm8gKGNvcHlfb2ZbaV0udmFsdWUsCi0gCQkJCQkgICBTU0FfTkFNRV9QVFJfSU5GTyAodmFy KSk7Ci0gCSAgICAgIC8qIFBvaW50cy10byBpbmZvcm1hdGlvbiBpcyBjZmcgaW5zZW5zaXRpdmUs Ci0tCQkgYnV0IGFsaWdubWVudCBpbmZvIG1pZ2h0IGJlIGNmZyBzZW5zaXRpdmUsIGlmIGl0Ci0t CQkgZS5nLiBpcyBkZXJpdmVkIGZyb20gVlJQIGRlcml2ZWQgbm9uLXplcm8gYml0cy4KLS0JCSBT bywgZG8gbm90IGNvcHkgYWxpZ25tZW50IGluZm8gaWYgdGhlIHR3byBTU0FfTkFNRXMKLS0JCSBh cmVuJ3QgZGVmaW5lZCBpbiB0aGUgc2FtZSBiYXNpYyBibG9jay4gICovCi0rCQkgYnV0IFtFXVZS UCBtaWdodCByZWNvcmQgY29udGV4dCBzZW5zaXRpdmUgYWxpZ25tZW50Ci0rCQkgaW5mbywgbm9u LW51bGxuZXNzLCBldGMuICBTbyByZXNldCBjb250ZXh0IHNlbnNpdGl2ZQotKwkJIGluZm8gaWYg dGhlIHR3byBTU0FfTkFNRXMgYXJlbid0IGRlZmluZWQgaW4gdGhlIHNhbWUKLSsJCSBiYXNpYyBi bG9jay4gICovCi0gCSAgICAgIGlmICh2YXJfYmIgIT0gY29weV9vZl9iYikKLS0JCW1hcmtfcHRy X2luZm9fYWxpZ25tZW50X3Vua25vd24KLS0JCQkJKFNTQV9OQU1FX1BUUl9JTkZPIChjb3B5X29m W2ldLnZhbHVlKSk7Ci0rCQlyZXNldF9mbG93X3NlbnNpdGl2ZV9pbmZvIChjb3B5X29mW2ldLnZh bHVlKTsKLSAJICAgIH0KLSAJICBlbHNlIGlmICghUE9JTlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAo dmFyKSkKLSAJCSAgICYmIFNTQV9OQU1FX1JBTkdFX0lORk8gKHZhcikKLS0tLSBnY2MvdHJlZS1z c2FuYW1lcy5jCTIwMTktMDMtMTggMTQ6NTk6MTEuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL3Ry ZWUtc3NhbmFtZXMuYwkyMDE5LTA2LTI2IDE4OjUwOjExLjI4MjM5NDkwNiArMDIwMAotQEAgLTgy MCw3ICs4MjAsMTIgQEAKLSAgICAgewotICAgICAgIC8qIHBvaW50cy10byBpbmZvIGlzIG5vdCBm bG93LXNlbnNpdGl2ZS4gICovCi0gICAgICAgaWYgKFNTQV9OQU1FX1BUUl9JTkZPIChuYW1lKSkK LS0JbWFya19wdHJfaW5mb19hbGlnbm1lbnRfdW5rbm93biAoU1NBX05BTUVfUFRSX0lORk8gKG5h bWUpKTsKLSsJewotKwkgIC8qIFtFXVZSUCBjYW4gZGVyaXZlIGNvbnRleHQgc2Vuc2l0aXZlIGFs aWdubWVudCBpbmZvIGFuZAotKwkgICAgIG5vbi1udWxsbmVzcyBwcm9wZXJ0aWVzLiAgV2UgbXVz dCByZXNldCBib3RoLiAgKi8KLSsJICBtYXJrX3B0cl9pbmZvX2FsaWdubWVudF91bmtub3duIChT U0FfTkFNRV9QVFJfSU5GTyAobmFtZSkpOwotKwkgIFNTQV9OQU1FX1BUUl9JTkZPIChuYW1lKS0+ cHQubnVsbCA9IDE7Ci0rCX0KLSAgICAgfQotICAgZWxzZQotICAgICBTU0FfTkFNRV9SQU5HRV9J TkZPIChuYW1lKSA9IE5VTEw7Ci0tLS0gL2Rldi9udWxsCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2Mu Yy10b3J0dXJlL3ByOTA5NDkuYwkyMDE5LTA2LTI2IDE4OjUzOjE2Ljg3MDM4NDY3OSArMDIwMAot QEAgLTAsMCArMSw0MiBAQAotK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vaXBhLCBub2lubGluZSkp IG15X3B1dHMgKGNvbnN0IGNoYXIgKnN0cikgeyB9Ci0rCi0rdm9pZCBfX2F0dHJpYnV0ZV9fICgo bm9pcGEsIG5vaW5saW5lKSkgbXlfZnJlZSAodm9pZCAqcCkgeyB9Ci0rCi0rCi0rc3RydWN0IE5v ZGUKLSt7Ci0rICBzdHJ1Y3QgTm9kZSAqY2hpbGQ7Ci0rfTsKLSsKLStzdHJ1Y3QgTm9kZSBzcGFj ZVsyXSA9IHsgfTsKLSsKLStzdHJ1Y3QgTm9kZSAqIF9fYXR0cmlidXRlX18gKChub2lwYSwgbm9p bmxpbmUpKSBteV9tYWxsb2MgKGludCBieXRlcykKLSt7Ci0rICByZXR1cm4gJnNwYWNlWzBdOwot K30KLSsKLSt2b2lkCi0rd2FsayAoc3RydWN0IE5vZGUgKm1vZHVsZSwgaW50IGNsZWFudXApCi0r ewotKyAgaWYgKG1vZHVsZSA9PSAwKQotKyAgICB7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0r ICBpZiAoIWNsZWFudXApCi0rICAgIHsKLSsgICAgICBteV9wdXRzICgiTm8gY2xlYW51cCIpOwot KyAgICB9Ci0rICB3YWxrIChtb2R1bGUtPmNoaWxkLCBjbGVhbnVwKTsKLSsgIGlmIChjbGVhbnVw KQotKyAgICB7Ci0rICAgICAgbXlfZnJlZSAobW9kdWxlKTsKLSsgICAgfQotK30KLSsKLStpbnQK LSttYWluICgpCi0rewotKyAgc3RydWN0IE5vZGUgKm5vZGUgPSBteV9tYWxsb2MgKHNpemVvZiAo c3RydWN0IE5vZGUpKTsKLSsgIG5vZGUtPmNoaWxkID0gMDsKLSsgIHdhbGsgKG5vZGUsIDEpOwot K30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlIGIvc3JjcGtncy9nY2MvdGVtcGxh dGUKaW5kZXggYmFiMzNkNzk4YWUuLjA2OWI2NmExMWYyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dj Yy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2djYy90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNCBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2NjJwogX21ham9ydmVyPTkKLV9taW5vcnZlcj0ke19tYWpv cnZlcn0uMQorX21pbm9ydmVyPSR7X21ham9ydmVyfS4yCiBfZ21wX3ZlcnNpb249Ni4xLjIKLV9t cGZyX3ZlcnNpb249NC4wLjEKK19tcGZyX3ZlcnNpb249NC4wLjIKIF9tcGNfdmVyc2lvbj0xLjEu MAotX2lzbF92ZXJzaW9uPTAuMTkKK19pc2xfdmVyc2lvbj0wLjIxCiAKIHBrZ25hbWU9Z2NjCiB2 ZXJzaW9uPSR7X21pbm9ydmVyfS4wCi1yZXZpc2lvbj0zCityZXZpc2lvbj0xCiBzaG9ydF9kZXNj PSJHTlUgQ29tcGlsZXIgQ29sbGVjdGlvbiIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBob21lcGFnZT0iaHR0cDovL2djYy5nbnUub3JnIgpAQCAtMjAs MTcgKzIwLDE4IEBAIGRpc3RmaWxlcz0iCiAgaHR0cHM6Ly93d3cubXBmci5vcmcvbXBmci0ke19t cGZyX3ZlcnNpb259L21wZnItJHtfbXBmcl92ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9t cGMvbXBjLSR7X21wY192ZXJzaW9ufS50YXIuZ3oKICBodHRwOi8vaXNsLmdmb3JnZS5pbnJpYS5m ci9pc2wtJHtfaXNsX3ZlcnNpb259LnRhci5iejIiCi1jaGVja3N1bT0iNzlhNjY4MzRlOTZhNjA1 MGQ4ZmU3OGRiMmMzYjMyZmIyODViMjMwYjg1NWQwYTY2Mjg4MjM1YmMwNGIzMjdhMAorY2hlY2tz dW09ImVhNmVmMDhmMTIxMjM5ZGE1Njk1Zjc2YzliMzM2MzdhMTE4ZGNmNjNlMjQxNjQ0MjIyMzE5 MTdmYTYxZmIyMDYKICA4N2I1NjVlODlhOWE2ODRmZTRlYmVlZGRiODM5OWRjZTI1OTlmOWM5MDQ5 ODU0Y2E4YzBkZmJkZWEwZTIxOTEyCi0gNjc4NzRhNjA4MjYzMDNlZTJmYjZhZmZjNmRjMGRkZDNl NzQ5ZTliZmNiNGM4NjU1ZTM5NTNkMDQ1OGE2ZTE2ZQorIDFkM2JlNzA4NjA0ZWFlMGU0MmQ1Nzhi YTkzYjM5MGMyYTE0NWYxNzc0M2E3NDRkOGYzZjhjMmFkNTg1NWEzOGEKICA2OTg1YzUzODE0M2Mx MjA4ZGNiMWFjNDJjZWRhZDZmZjUyZTI2N2I0N2U1Zjk3MDE4M2EzZTc1MTI1YjQzYzJlCi0gZDU5 NzI2ZjM0Zjc4NTJhMDgxZmJkM2RlZmQxYWIyMTM2ZjE3NDExMGZjMmUwYzhkMTBiYjEyMjE3M2Zh OWVkOCIKKyBkMThjYTExZjhhZDFhMzlhYjZkMDNkM2RjYjMzNjVhYjQxNjcyMGZjYjY1YjQyZDY5 ZjM0ZjUxYmYwYTBlODU5IgogCiBub3BpZT15ZXMKIGxpYjMyZGlzYWJsZWQ9eWVzCiBib290c3Ry YXA9eWVzCiByZXBsYWNlcz0iZ2NjLWdjajw3LjIuMCBnY2MtZ2NqLWpkay1jb21wYXQ8Ny4yLjAg bGlibXB4Pj0wIGxpYm1weC1kZXZlbD49MCIKIGFsdGVybmF0aXZlcz0iY2M6Y2M6L3Vzci9iaW4v Z2NjIgorbm9jcm9zcz15ZXMKIAogaWYgWyAiJENIUk9PVF9SRUFEWSIgXTsgdGhlbgogCWhvc3Rt YWtlZGVwZW5kcz0icGVybCBmbGV4IgpAQCAtNjksMTIgKzcwLDExIEBAIGlmIFsgIiRDSFJPT1Rf UkVBRFkiIF07IHRoZW4KIAlzdWJwYWNrYWdlcys9IiBnY2MtZm9ydHJhbiBsaWJnZm9ydHJhbi1k ZXZlbCBsaWJnZm9ydHJhbiIKIAlpZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAkJc3Vi cGFja2FnZXMrPSIgZ2NjLW9iamMgZ2NjLW9iamMrKyBsaWJvYmpjLWRldmVsIGxpYm9iamMiCi0J CWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQkqLW11c2wpCSMgR28gd29uJ3QgbGlu ayBmb3IgbXVzbCBsaWJjCi0JCQk7OwotCQkqKQlzdWJwYWNrYWdlcys9IiBnY2MtZ28gZ2NjLWdv LXRvb2xzIGxpYmdvLWRldmVsIGxpYmdvIgotCQkJOzsKLQkJZXNhYworCQlzdWJwYWNrYWdlcys9 IiBnY2MtZ28gZ2NjLWdvLXRvb2xzIGxpYmdvLWRldmVsIGxpYmdvIgorCQkjIHdlIG5lZWQgdGhp cyBmb3IgZ2NjLWdvIG9uIG11c2wKKwkJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wi IF07IHRoZW4KKwkJCW1ha2VkZXBlbmRzKz0iIGxpYnVjb250ZXh0LWRldmVsIgorCQlmaQogCWZp CiBmaQogCkBAIC0xNjIsNyArMTYyLDEwIEBAIHByZV9jb25maWd1cmUoKSB7CiAJIyBfRk9SVElG WV9TT1VSQ0UgbmVlZHMgYW4gb3B0aW1pemF0aW9uIGxldmVsLgogCXNlZCAtaSAiL2FjX2NwcD0v cy9cJENQUEZMQUdTL1wkQ1BQRkxBR1MgLU8yLyIge2djYyxsaWJpYmVydHl9L2NvbmZpZ3VyZQog CWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQkqLW11c2wpIHBhdGNoIC1wMSAtaSAk e0ZJTEVTRElSfS9saWJnbmFybC1tdXNsLnBhdGNoIDs7CisJCSotbXVzbCkKKwkJCXBhdGNoIC1w MSAtaSAke0ZJTEVTRElSfS9saWJnbmFybC1tdXNsLnBhdGNoCisJCQlwYXRjaCAtcDAgLWkgJHtG SUxFU0RJUn0vZ2NjZ28tbXVzbC5wYXRjaAorCQkJOzsKIAllc2FjCiB9CiBkb19jb25maWd1cmUo KSB7CkBAIC0yMjUsMTMgKzIyOCw3IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkJZXhwb3J0IExEX0xJ QlJBUllfUEFUSD0iJHtYQlBTX01BU1RFUkRJUn0vdXNyL2xpYiIKIAkJX2FyZ3MrPSIgLS1idWls ZD0ke190cmlwbGV0fSIKIAllbHNlCi0JCV9sYW5ncz0iYyxjKyssb2JqYyxvYmotYysrLGZvcnRy YW4sbHRvIgotCQljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQkJCSotbXVzbCkJIyBM aW5raW5nIGxpYmdvLnNvIGlzIGJyb2tlbiBmb3IgbXVzbCBsaWJjCi0JCQkJOzsKLQkJCSopCV9s YW5ncys9IixnbyIKLQkJCQk7OwotCQllc2FjCisJCV9sYW5ncz0iYyxjKyssb2JqYyxvYmotYysr LGdvLGZvcnRyYW4sbHRvIgogCQlfYXJncys9IiAtLWJ1aWxkPSR7X3RyaXBsZXR9IgogCQlfYXJn cys9IiAtLWVuYWJsZS1mYXN0LWNoYXJhY3RlciIKIAlmaQo= --===============1114057040724762996==--