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: Mamoru TASAKA To: git-commits@fedoraproject.org Subject: [rpms/ruby] rawhide: Backport ruby/openssl 4.0.2 from ruby 4.0 branch to support openssl 4.0 Date: Tue, 16 Jun 2026 18:25:40 GMT Message-ID: <178163434078.1.15144066648447813954.rpms-ruby-e8748e1daf35@fedoraproject.org> List-ID: X-Git-Repo: rpms/ruby X-Git-Branch: rawhide X-Git-Rev: e8748e1daf35b1afa71ecd16a85365e850024e46 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcnVieQpCcmFuY2gg OiByYXdoaWRlCkNvbW1pdCA6IGU4NzQ4ZTFkYWYzNWIxYWZhNzFlY2QxNmE4NTM2NWU4NTAwMjRl NDYKQXV0aG9yIDogTWFtb3J1IFRBU0FLQSA8bXRhc2FrYUBmZWRvcmFwcm9qZWN0Lm9yZz4KRGF0 ZSAgIDogMjAyNi0wNi0xNFQyMjozOTo1MSswOTowMApTdGF0cyAgOiArMTc1Ny8tMiBpbiAyIGZp bGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9ydWJ5L2Mv ZTg3NDhlMWRhZjM1YjFhZmE3MWVjZDE2YTg1MzY1ZTg1MDAyNGU0Nj9icmFuY2g9cmF3aGlkZQoK TG9nOgpCYWNrcG9ydCBydWJ5L29wZW5zc2wgNC4wLjIgZnJvbSBydWJ5IDQuMCBicmFuY2ggdG8g c3VwcG9ydCBvcGVuc3NsIDQuMAoKLS0tCmRpZmYgLS1naXQgYS9ydWJ5LXByMTY5NDctb3BlbnNz bC00XzBfMi1mcm9tLXJ1YnlfNF8wLnBhdGNoIGIvcnVieS1wcjE2OTQ3LW9wZW5zc2wtNF8wXzIt ZnJvbS1ydWJ5XzRfMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j NGVmMWMxCi0tLSAvZGV2L251bGwKKysrIGIvcnVieS1wcjE2OTQ3LW9wZW5zc2wtNF8wXzItZnJv bS1ydWJ5XzRfMC5wYXRjaApAQCAtMCwwICsxLDE3NDcgQEAKK0Zyb20gMDU3NjQ1MjAzMGQ0NDQ1 NTI1MGNlNjdlY2Q0Y2E1MTJiMjFjN2RiZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IEthenVraSBZYW1hZ3VjaGkgPGtAcmhlLmpwPgorRGF0ZTogVGh1LCAxNCBNYXkgMjAyNiAwMDo0 Njo1NCArMDkwMAorU3ViamVjdDogW1BBVENIIDEvMl0gTWVyZ2Ugb3BlbnNzbC00LjAuMQorCitU aGUgY2hhbmdlcyBjYW4gYmUgZm91bmQgYXQ6CisKKyAgICBodHRwczovL2dpdGh1Yi5jb20vcnVi eS9vcGVuc3NsL2NvbXBhcmUvdjQuMC4wLi4udjQuMC4xCistLS0KKyBleHQvb3BlbnNzbC9IaXN0 b3J5Lm1kICAgICAgICAgICAgIHwgMjAgKysrKysrKworIGV4dC9vcGVuc3NsL2xpYi9vcGVuc3Ns L3ZlcnNpb24ucmIgfCAgMiArLQorIGV4dC9vcGVuc3NsL29wZW5zc2wuZ2Vtc3BlYyAgICAgICAg fCAgMiArLQorIGV4dC9vcGVuc3NsL29zc2xfY2lwaGVyLmMgICAgICAgICAgfCAxMyArKy0tLQor IGV4dC9vcGVuc3NsL29zc2xfb2NzcC5jICAgICAgICAgICAgfCAgNCArLQorIGV4dC9vcGVuc3Ns L29zc2xfcGtjczcuYyAgICAgICAgICAgfCAgMiArLQorIGV4dC9vcGVuc3NsL29zc2xfcGtleV9l Yy5jICAgICAgICAgfCAgMiArLQorIGV4dC9vcGVuc3NsL29zc2xfc3NsLmMgICAgICAgICAgICAg fCA4OCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KKyB0ZXN0L29wZW5zc2wvdGVzdF9j aXBoZXIucmIgICAgICAgIHwgNjcgKysrKysrKysrKysrKy0tLS0tLS0tLS0KKyB0ZXN0L29wZW5z c2wvdGVzdF9kaWdlc3QucmIgICAgICAgIHwgMjggKysrKysrLS0tLQorIHRlc3Qvb3BlbnNzbC90 ZXN0X2ZpcHMucmIgICAgICAgICAgfCAgMiArLQorIHRlc3Qvb3BlbnNzbC90ZXN0X29jc3AucmIg ICAgICAgICAgfCAyOSArKysrKysrKysrCisgdGVzdC9vcGVuc3NsL3Rlc3RfcGtjczEyLnJiICAg ICAgICB8IDM4ICsrKysrKysrKysrLS0KKyB0ZXN0L29wZW5zc2wvdGVzdF9wa2V5X2VjLnJiICAg ICAgIHwgIDkgKysrCisgdGVzdC9vcGVuc3NsL3Rlc3Rfc3NsLnJiICAgICAgICAgICB8IDY2ICsr KysrKysrKysrKysrKy0tLS0tLS0KKyAxNSBmaWxlcyBjaGFuZ2VkLCAyNjMgaW5zZXJ0aW9ucygr KSwgMTA5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvSGlzdG9yeS5t ZCBiL2V4dC9vcGVuc3NsL0hpc3RvcnkubWQKK2luZGV4IDQxOTIzN2ZmMTY3ZjlhLi5jNzhjN2U0 NjMzNGRkYiAxMDA2NDQKKy0tLSBhL2V4dC9vcGVuc3NsL0hpc3RvcnkubWQKKysrKyBiL2V4dC9v cGVuc3NsL0hpc3RvcnkubWQKK0BAIC0xLDMgKzEsMjMgQEAKKytWZXJzaW9uIDQuMC4xCisrPT09 PT09PT09PT09PQorKworK05vdGFibGUgY2hhbmdlcworKy0tLS0tLS0tLS0tLS0tLQorKworKyog QWRkIGBzeW5jX2Nsb3NlYCBrZXl3b3JkIGFyZ3VtZW50IHRvIGBPcGVuU1NMOjpTU0w6OlNTTFNv Y2tldC5uZXdgIGFzIGEKKysgIHNob3J0LWhhbmQgZm9yIHNldHRpbmcgYHN5bmNfY2xvc2VgIGF0 dHJpYnV0ZSBvbiB0aGUgY3JlYXRlZCBgU1NMU29ja2V0YAorKyAgaW5zdGFuY2UuCisrICBbW0dp dEh1YiAjOTU1XV0oaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkvb3BlbnNzbC9pc3N1ZXMvOTU1KQor KyAgW1tHaXRIdWIgIzk5Nl1dKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L29wZW5zc2wvcHVsbC85 OTYpCisrCisrCisrQnVnIGZpeGVzCisrLS0tLS0tLS0tCisrCisrKiBGaXggdW5pbml0aWFsaXpl ZCB2YXJpYWJsZXMgaW4gYE9wZW5TU0w6Ok9DU1A6OkJhc2ljUmVzcG9uc2Ujc3RhdHVzYC4KKysg IFtbR2l0SHViICMxMDA0XV0oaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkvb3BlbnNzbC9wdWxsLzEw MDQpCisrCisrCisgVmVyc2lvbiA0LjAuMAorID09PT09PT09PT09PT0KKyAKK2RpZmYgLS1naXQg YS9leHQvb3BlbnNzbC9saWIvb3BlbnNzbC92ZXJzaW9uLnJiIGIvZXh0L29wZW5zc2wvbGliL29w ZW5zc2wvdmVyc2lvbi5yYgoraW5kZXggODg1NzA1NjJlMjU1YzMuLjQ1YzE1MGJlMTEwNWJhIDEw MDY0NAorLS0tIGEvZXh0L29wZW5zc2wvbGliL29wZW5zc2wvdmVyc2lvbi5yYgorKysrIGIvZXh0 L29wZW5zc2wvbGliL29wZW5zc2wvdmVyc2lvbi5yYgorQEAgLTIsNSArMiw1IEBACisgCisgbW9k dWxlIE9wZW5TU0wKKyAgICMgVGhlIHZlcnNpb24gc3RyaW5nIG9mIFJ1YnkvT3BlblNTTC4KKy0g IFZFUlNJT04gPSAiNC4wLjAiCisrICBWRVJTSU9OID0gIjQuMC4xIgorIGVuZAorZGlmZiAtLWdp dCBhL2V4dC9vcGVuc3NsL29wZW5zc2wuZ2Vtc3BlYyBiL2V4dC9vcGVuc3NsL29wZW5zc2wuZ2Vt c3BlYworaW5kZXggNzA3MmQ1OTlkODZkNjkuLmM1OTRjNmYxNzc2NTM4IDEwMDY0NAorLS0tIGEv ZXh0L29wZW5zc2wvb3BlbnNzbC5nZW1zcGVjCisrKysgYi9leHQvb3BlbnNzbC9vcGVuc3NsLmdl bXNwZWMKK0BAIC0xLDYgKzEsNiBAQAorIEdlbTo6U3BlY2lmaWNhdGlvbi5uZXcgZG8gfHNwZWN8 CisgICBzcGVjLm5hbWUgICAgICAgICAgPSAib3BlbnNzbCIKKy0gIHNwZWMudmVyc2lvbiAgICAg ICA9ICI0LjAuMCIKKysgIHNwZWMudmVyc2lvbiAgICAgICA9ICI0LjAuMSIKKyAgIHNwZWMuYXV0 aG9ycyAgICAgICA9IFsiTWFydGluIEJvc3NsZXQiLCAiU0hJQkFUQSBIaXJvc2hpIiwgIlphY2hh cnkgU2NvdHQiLCAiS2F6dWtpIFlhbWFndWNoaSJdCisgICBzcGVjLmVtYWlsICAgICAgICAgPSBb InJ1YnktY29yZUBydWJ5LWxhbmcub3JnIl0KKyAgIHNwZWMuc3VtbWFyeSAgICAgICA9ICVxe1NT TC9UTFMgYW5kIGdlbmVyYWwtcHVycG9zZSBjcnlwdG9ncmFwaHkgZm9yIFJ1Ynl9CitkaWZmIC0t Z2l0IGEvZXh0L29wZW5zc2wvb3NzbF9jaXBoZXIuYyBiL2V4dC9vcGVuc3NsL29zc2xfY2lwaGVy LmMKK2luZGV4IGRiNjVlOTk4ODhkM2JmLi5mM2NkMjQ3YzhmZGZiYyAxMDA2NDQKKy0tLSBhL2V4 dC9vcGVuc3NsL29zc2xfY2lwaGVyLmMKKysrKyBiL2V4dC9vcGVuc3NsL29zc2xfY2lwaGVyLmMK K0BAIC00MDEsOSArNDAxLDkgQEAgb3NzbF9jaXBoZXJfdXBkYXRlKGludCBhcmdjLCBWQUxVRSAq YXJndiwgVkFMVUUgc2VsZikKKyAgICAgfQorICAgICBvdXRfbGVuID0gaW5fbGVuICsgRVZQX01B WF9CTE9DS19MRU5HVEg7CisgCistICAgIGlmIChOSUxfUChzdHIpKSB7CistICAgICAgICBzdHIg PSByYl9zdHJfbmV3KDAsIG91dF9sZW4pOworLSAgICB9IGVsc2UgeworKyAgICBpZiAoTklMX1Ao c3RyKSkKKysgICAgICAgIHN0ciA9IHJiX3N0cl9idWZfbmV3KG91dF9sZW4pOworKyAgICBlbHNl IHsKKyAgICAgICAgIFN0cmluZ1ZhbHVlKHN0cik7CisgICAgICAgICBpZiAoKGxvbmcpcmJfc3Ry X2NhcGFjaXR5KHN0cikgPj0gb3V0X2xlbikKKyAgICAgICAgICAgICByYl9zdHJfbW9kaWZ5KHN0 cik7CitAQCAtNDExLDkgKzQxMSw5IEBAIG9zc2xfY2lwaGVyX3VwZGF0ZShpbnQgYXJnYywgVkFM VUUgKmFyZ3YsIFZBTFVFIHNlbGYpCisgICAgICAgICAgICAgcmJfc3RyX21vZGlmeV9leHBhbmQo c3RyLCBvdXRfbGVuIC0gUlNUUklOR19MRU4oc3RyKSk7CisgICAgIH0KKyAKKy0gICAgaWYgKCFv c3NsX2NpcGhlcl91cGRhdGVfbG9uZyhjdHgsICh1bnNpZ25lZCBjaGFyICopUlNUUklOR19QVFIo c3RyKSwgJm91dF9sZW4sIGluLCBpbl9sZW4pKQorLSAgICAgICAgb3NzbF9yYWlzZShlQ2lwaGVy RXJyb3IsIE5VTEwpOworLSAgICBhc3NlcnQob3V0X2xlbiA8PSBSU1RSSU5HX0xFTihzdHIpKTsK KysgICAgaWYgKCFvc3NsX2NpcGhlcl91cGRhdGVfbG9uZyhjdHgsICh1bnNpZ25lZCBjaGFyICop UlNUUklOR19QVFIoc3RyKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0 X2xlbiwgaW4sIGluX2xlbikpCisrICAgICAgICBvc3NsX3JhaXNlKGVDaXBoZXJFcnJvciwgIkVW UF9DaXBoZXJVcGRhdGUiKTsKKyAgICAgcmJfc3RyX3NldF9sZW4oc3RyLCBvdXRfbGVuKTsKKyAK KyAgICAgcmV0dXJuIHN0cjsKK0BAIC00NTYsNyArNDU2LDYgQEAgb3NzbF9jaXBoZXJfZmluYWwo VkFMVUUgc2VsZikKKyAgICAgICAgICAgICBvc3NsX3JhaXNlKGVDaXBoZXJFcnJvciwgImNpcGhl ciBmaW5hbCBmYWlsZWQiKTsKKyAgICAgICAgIH0KKyAgICAgfQorLSAgICBhc3NlcnQob3V0X2xl biA8PSBSU1RSSU5HX0xFTihzdHIpKTsKKyAgICAgcmJfc3RyX3NldF9sZW4oc3RyLCBvdXRfbGVu KTsKKyAKKyAgICAgcmV0dXJuIHN0cjsKK2RpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX29j c3AuYyBiL2V4dC9vcGVuc3NsL29zc2xfb2NzcC5jCitpbmRleCA5M2Q4YmM4NTY3MWVhYy4uZGRi NjdmY2YwN2E3Y2UgMTAwNjQ0CistLS0gYS9leHQvb3BlbnNzbC9vc3NsX29jc3AuYworKysrIGIv ZXh0L29wZW5zc2wvb3NzbF9vY3NwLmMKK0BAIC05MDUsOCArOTA1LDggQEAgb3NzbF9vY3NwYnJl c19nZXRfc3RhdHVzKFZBTFVFIHNlbGYpCisgICAgIGludCBjb3VudCA9IE9DU1BfcmVzcF9jb3Vu dChicyk7CisgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAg T0NTUF9TSU5HTEVSRVNQICpzaW5nbGUgPSBPQ1NQX3Jlc3BfZ2V0MChicywgaSk7CistICAgICAg ICBBU04xX1RJTUUgKnJldnRpbWUsICp0aGlzdXBkLCAqbmV4dHVwZDsKKy0gICAgICAgIGludCBy ZWFzb247CisrICAgICAgICBBU04xX1RJTUUgKnJldnRpbWUgPSBOVUxMLCAqdGhpc3VwZCA9IE5V TEwsICpuZXh0dXBkID0gTlVMTDsKKysgICAgICAgIGludCByZWFzb24gPSAtMTsKKyAKKyAgICAg ICAgIGludCBzdGF0dXMgPSBPQ1NQX3NpbmdsZV9nZXQwX3N0YXR1cyhzaW5nbGUsICZyZWFzb24s ICZyZXZ0aW1lLCAmdGhpc3VwZCwgJm5leHR1cGQpOworICAgICAgICAgaWYgKHN0YXR1cyA8IDAp CitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvb3NzbF9wa2NzNy5jIGIvZXh0L29wZW5zc2wvb3Nz bF9wa2NzNy5jCitpbmRleCA2ZTUxZmQ0MmI5MGZhYy4uYWUwZDM1YjcyMzU5MjMgMTAwNjQ0Cist LS0gYS9leHQvb3BlbnNzbC9vc3NsX3BrY3M3LmMKKysrKyBiL2V4dC9vcGVuc3NsL29zc2xfcGtj czcuYworQEAgLTEwMTAsNyArMTAxMCw3IEBAIHN0YXRpYyBWQUxVRQorIG9zc2xfcGtjczdzaV9n ZXRfc2lnbmVkX3RpbWUoVkFMVUUgc2VsZikKKyB7CisgICAgIFBLQ1M3X1NJR05FUl9JTkZPICpw N3NpOworLSAgICBBU04xX1RZUEUgKmFzbjFvYmo7CisrICAgIGNvbnN0IEFTTjFfVFlQRSAqYXNu MW9iajsKKyAKKyAgICAgR2V0UEtDUzdzaShzZWxmLCBwN3NpKTsKKyAKK2RpZmYgLS1naXQgYS9l eHQvb3BlbnNzbC9vc3NsX3BrZXlfZWMuYyBiL2V4dC9vcGVuc3NsL29zc2xfcGtleV9lYy5jCitp bmRleCBiYjE5NTMzZWRmNDc0NC4uMzVmMDMxODE5ZGM2ZWIgMTAwNjQ0CistLS0gYS9leHQvb3Bl bnNzbC9vc3NsX3BrZXlfZWMuYworKysrIGIvZXh0L29wZW5zc2wvb3NzbF9wa2V5X2VjLmMKK0BA IC03MDIsNyArNzAyLDcgQEAgc3RhdGljIFZBTFVFIG9zc2xfZWNfZ3JvdXBfaW5pdGlhbGl6ZShp bnQgYXJnYywgVkFMVUUgKmFyZ3YsIFZBTFVFIHNlbGYpCisgCisgICAgICAgICBicmVhazsKKyAg ICAgICBkZWZhdWx0OgorLSAgICAgICAgb3NzbF9yYWlzZShyYl9lQXJnRXJyb3IsICJ3cm9uZyBu dW1iZXIgb2YgYXJndW1lbnRzIik7CisrICAgICAgICBvc3NsX3JhaXNlKHJiX2VBcmdFcnJvciwg Indyb25nIG51bWJlciBvZiBhcmd1bWVudHMgKGdpdmVuICVkLCBleHBlY3RlZCAxIG9yIDQpIiwg YXJnYyk7CisgICAgIH0KKyAKKyAgICAgQVNTVU1FKGdyb3VwKTsKK2RpZmYgLS1naXQgYS9leHQv b3BlbnNzbC9vc3NsX3NzbC5jIGIvZXh0L29wZW5zc2wvb3NzbF9zc2wuYworaW5kZXggNjMwZDQ2 ZTQzZjI1NmUuLmM2ZGVjMzJhOWU1ZTgyIDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3NzbF9z c2wuYworKysrIGIvZXh0L29wZW5zc2wvb3NzbF9zc2wuYworQEAgLTQ3LDcgKzQ3LDcgQEAgc3Rh dGljIElEIGlkX2lfY2VydF9zdG9yZSwgaWRfaV9jYV9maWxlLCBpZF9pX2NhX3BhdGgsIGlkX2lf dmVyaWZ5X21vZGUsCisgICAgICAgICAgIGlkX2lfc2Vzc2lvbl9yZW1vdmVfY2IsIGlkX2lfbnBu X3NlbGVjdF9jYiwgaWRfaV9ucG5fcHJvdG9jb2xzLAorICAgICAgICAgICBpZF9pX2FscG5fc2Vs ZWN0X2NiLCBpZF9pX2FscG5fcHJvdG9jb2xzLCBpZF9pX3NlcnZlcm5hbWVfY2IsCisgICAgICAg ICAgIGlkX2lfdmVyaWZ5X2hvc3RuYW1lLCBpZF9pX2tleWxvZ19jYiwgaWRfaV90bXBfZGhfY2Fs bGJhY2s7Cistc3RhdGljIElEIGlkX2lfaW8sIGlkX2lfY29udGV4dCwgaWRfaV9ob3N0bmFtZTsK KytzdGF0aWMgSUQgaWRfaV9pbywgaWRfaV9jb250ZXh0LCBpZF9pX2hvc3RuYW1lLCBpZF9pX3N5 bmNfY2xvc2U7CisgCisgc3RhdGljIGludCBvc3NsX3NzbF9leF9wdHJfaWR4OworIHN0YXRpYyBp bnQgb3NzbF9zc2xjdHhfZXhfcHRyX2lkeDsKK0BAIC0xNTkwLDMyICsxNTkwLDMxIEBAIG9zc2xf c3NsX3NfYWxsb2MoVkFMVUUga2xhc3MpCisgfQorIAorIHN0YXRpYyBWQUxVRQorLXBlZXJfaXBf YWRkcmVzcyhWQUxVRSBzZWxmKQorK3BlZXJfaXBfYWRkcmVzcyhWQUxVRSBpbykKKyB7CistICAg IFZBTFVFIHJlbW90ZV9hZGRyZXNzID0gcmJfZnVuY2FsbChyYl9hdHRyX2dldChzZWxmLCBpZF9p X2lvKSwgcmJfaW50ZXJuKCJyZW1vdGVfYWRkcmVzcyIpLCAwKTsKKysgICAgVkFMVUUgcmVtb3Rl X2FkZHJlc3MgPSByYl9mdW5jYWxsKGlvLCByYl9pbnRlcm4oInJlbW90ZV9hZGRyZXNzIiksIDAp OworIAorICAgICByZXR1cm4gcmJfZnVuY2FsbChyZW1vdGVfYWRkcmVzcywgcmJfaW50ZXJuKCJp bnNwZWN0X3NvY2thZGRyIiksIDApOworIH0KKyAKKyBzdGF0aWMgVkFMVUUKKy1mYWxsYmFja19w ZWVyX2lwX2FkZHJlc3MoVkFMVUUgc2VsZiwgVkFMVUUgYXJncykKKytmYWxsYmFja19wZWVyX2lw X2FkZHJlc3MoVkFMVUUgc2VsZiwgVkFMVUUgZXhjKQorIHsKKyAgICAgcmV0dXJuIHJiX3N0cl9u ZXdfY3N0cigiKG51bGwpIik7CisgfQorIAorIHN0YXRpYyBWQUxVRQorLXBlZXJhZGRyX2lwX3N0 cihWQUxVRSBzZWxmKQorK3BlZXJhZGRyX2lwX3N0cihWQUxVRSBpbykKKyB7CistICAgIFZBTFVF IHJiX21FcnJubyA9IHJiX2NvbnN0X2dldChyYl9jT2JqZWN0LCByYl9pbnRlcm4oIkVycm5vIikp OworLSAgICBWQUxVRSByYl9lU3lzdGVtQ2FsbEVycm9yID0gcmJfY29uc3RfZ2V0KHJiX21FcnJu bywgcmJfaW50ZXJuKCJTeXN0ZW1DYWxsRXJyb3IiKSk7CistCistICAgIHJldHVybiByYl9yZXNj dWUyKHBlZXJfaXBfYWRkcmVzcywgc2VsZiwgZmFsbGJhY2tfcGVlcl9pcF9hZGRyZXNzLCAoVkFM VUUpMCwgcmJfZVN5c3RlbUNhbGxFcnJvciwgTlVMTCk7CisrICAgIHJldHVybiByYl9yZXNjdWUy KHBlZXJfaXBfYWRkcmVzcywgaW8sIGZhbGxiYWNrX3BlZXJfaXBfYWRkcmVzcywgUW5pbCwKKysg ICAgICAgICAgICAgICAgICAgICAgcmJfZVN5c3RlbUNhbGxFcnJvciwgKFZBTFVFKTApOworIH0K KyAKKyAvKgorICAqIGNhbGwtc2VxOgorICAqICAgIFNTTFNvY2tldC5uZXcoaW8pID0+IGFTU0xT b2NrZXQKKyAgKiAgICBTU0xTb2NrZXQubmV3KGlvLCBjdHgpID0+IGFTU0xTb2NrZXQKKysgKiAg ICBTU0xTb2NrZXQubmV3KGlvLCBjdHgsIHN5bmNfY2xvc2U6KSA9PiBhU1NMU29ja2V0CisgICoK KyAgKiBDcmVhdGVzIGEgbmV3IFNTTCBzb2NrZXQgZnJvbSBfaW9fIHdoaWNoIG11c3QgYmUgYSBy ZWFsIElPIG9iamVjdCAobm90IGFuCisgICogSU8tbGlrZSBvYmplY3QgdGhhdCByZXNwb25kcyB0 byByZWFkL3dyaXRlKS4KK0BAIC0xNjIzLDYgKzE2MjIsMTAgQEAgcGVlcmFkZHJfaXBfc3RyKFZB TFVFIHNlbGYpCisgICogSWYgX2N0eF8gaXMgcHJvdmlkZWQgdGhlIFNTTCBTb2NrZXRzIGluaXRp YWwgcGFyYW1zIHdpbGwgYmUgdGFrZW4gZnJvbQorICAqIHRoZSBjb250ZXh0LgorICAqCisrICog VGhlIG9wdGlvbmFsIF9zeW5jX2Nsb3NlXyBrZXl3b3JkIHBhcmFtZXRlciBzZXRzIHRoZSBfc3lu Y19jbG9zZV8gaW5zdGFuY2UKKysgKiB2YXJpYWJsZS4gU2V0dGluZyB0aGlzIHRvICt0cnVlKyB3 aWxsIGNhdXNlIHRoZSB1bmRlcmx5aW5nIHNvY2tldCB0byBiZQorKyAqIGNsb3NlZCB3aGVuIHRo ZSBTU0wvVExTIGNvbm5lY3Rpb24gaXMgc2h1dCBkb3duLgorKyAqCisgICogVGhlIE9wZW5TU0w6 OkJ1ZmZlcmluZyBtb2R1bGUgcHJvdmlkZXMgYWRkaXRpb25hbCBJTyBtZXRob2RzLgorICAqCisg ICogVGhpcyBtZXRob2Qgd2lsbCBmcmVlemUgdGhlIFNTTENvbnRleHQgaWYgb25lIGlzIHByb3Zp ZGVkOworQEAgLTE2MzEsNiArMTYzNCwxMCBAQCBwZWVyYWRkcl9pcF9zdHIoVkFMVUUgc2VsZikK KyBzdGF0aWMgVkFMVUUKKyBvc3NsX3NzbF9pbml0aWFsaXplKGludCBhcmdjLCBWQUxVRSAqYXJn diwgVkFMVUUgc2VsZikKKyB7CisrICAgIHN0YXRpYyBJRCBrd19pZHNbMV07CisrICAgIFZBTFVF IGt3X2FyZ3NbMV07CisrICAgIFZBTFVFIG9wdHM7CisrCisgICAgIFZBTFVFIGlvLCB2X2N0eDsK KyAgICAgU1NMICpzc2w7CisgICAgIFNTTF9DVFggKmN0eDsKK0BAIC0xNjM5LDkgKzE2NDYsMTgg QEAgb3NzbF9zc2xfaW5pdGlhbGl6ZShpbnQgYXJnYywgVkFMVUUgKmFyZ3YsIFZBTFVFIHNlbGYp CisgICAgIGlmIChzc2wpCisgICAgICAgICBvc3NsX3JhaXNlKGVTU0xFcnJvciwgIlNTTCBhbHJl YWR5IGluaXRpYWxpemVkIik7CisgCistICAgIGlmIChyYl9zY2FuX2FyZ3MoYXJnYywgYXJndiwg IjExIiwgJmlvLCAmdl9jdHgpID09IDEpCisrICAgIGlmIChyYl9zY2FuX2FyZ3MoYXJnYywgYXJn diwgIjExOiIsICZpbywgJnZfY3R4LCAmb3B0cykgPT0gMSkKKyAgICAgICAgIHZfY3R4ID0gcmJf ZnVuY2FsbChjU1NMQ29udGV4dCwgcmJfaW50ZXJuKCJuZXciKSwgMCk7CisgCisrICAgIGlmICgh a3dfaWRzWzBdKSB7CisrICAgICAgICBrd19pZHNbMF0gPSByYl9pbnRlcm5fY29uc3QoInN5bmNf Y2xvc2UiKTsKKysgICAgfQorKworKyAgICByYl9nZXRfa3dhcmdzKG9wdHMsIGt3X2lkcywgMCwg MSwga3dfYXJncyk7CisrICAgIGlmIChrd19hcmdzWzBdICE9IFF1bmRlZikgeworKyAgICAgICAg cmJfaXZhcl9zZXQoc2VsZiwgaWRfaV9zeW5jX2Nsb3NlLCBrd19hcmdzWzBdKTsKKysgICAgfQor KworICAgICBHZXRTU0xDVFgodl9jdHgsIGN0eCk7CisgICAgIHJiX2l2YXJfc2V0KHNlbGYsIGlk X2lfY29udGV4dCwgdl9jdHgpOworICAgICBvc3NsX3NzbGN0eF9zZXR1cCh2X2N0eCk7CitAQCAt MTY5NiwxMSArMTcxMiwxNSBAQCBvc3NsX3NzbF9zZXR1cChWQUxVRSBzZWxmKQorICAgICByZXR1 cm4gUXRydWU7CisgfQorIAorK3N0YXRpYyBpbnQKKytlcnJub19tYXBwZWQodm9pZCkKKyt7Cisg I2lmZGVmIF9XSU4zMgorLSNkZWZpbmUgc3NsX2dldF9lcnJvcihzc2wsIHJldCkgKGVycm5vID0g cmJfdzMyX21hcF9lcnJubyhXU0FHZXRMYXN0RXJyb3IoKSksIFNTTF9nZXRfZXJyb3IoKHNzbCks IChyZXQpKSkKKysgICAgcmV0dXJuIHJiX3czMl9tYXBfZXJybm8oV1NBR2V0TGFzdEVycm9yKCkp OworICNlbHNlCistI2RlZmluZSBzc2xfZ2V0X2Vycm9yKHNzbCwgcmV0KSBTU0xfZ2V0X2Vycm9y KChzc2wpLCAocmV0KSkKKysgICAgcmV0dXJuIGVycm5vOworICNlbmRpZgorK30KKyAKKyBzdGF0 aWMgdm9pZAorIHdyaXRlX3dvdWxkX2Jsb2NrKGludCBub25ibG9jaykKK0BAIC0xNzQxLDEzICsx NzYxLDEzIEBAIHN0YXRpYyB2b2lkCisgaW9fd2FpdF93cml0YWJsZShWQUxVRSBpbykKKyB7Cisg I2lmZGVmIEhBVkVfUkJfSU9fTUFZQkVfV0FJVAorLSAgICBpZiAoIXJiX2lvX21heWJlX3dhaXRf d3JpdGFibGUoZXJybm8sIGlvLCBSVUJZX0lPX1RJTUVPVVRfREVGQVVMVCkpIHsKKysgICAgaWYg KCFyYl9pb193YWl0KGlvLCBJTlQyTlVNKFJVQllfSU9fV1JJVEFCTEUpLCBSVUJZX0lPX1RJTUVP VVRfREVGQVVMVCkpIHsKKyAgICAgICAgIHJiX3JhaXNlKElPX1RJTUVPVVRfRVJST1IsICJUaW1l ZCBvdXQgd2hpbGUgd2FpdGluZyB0byBiZWNvbWUgd3JpdGFibGUhIik7CisgICAgIH0KKyAjZWxz ZQorICAgICByYl9pb190ICpmcHRyOworICAgICBHZXRPcGVuRmlsZShpbywgZnB0cik7CistICAg IHJiX2lvX3dhaXRfd3JpdGFibGUoZnB0ci0+ZmQpOworKyAgICByYl90aHJlYWRfZmRfd3JpdGFi bGUoZnB0ci0+ZmQpOworICNlbmRpZgorIH0KKyAKK0BAIC0xNzU1LDEzICsxNzc1LDEzIEBAIHN0 YXRpYyB2b2lkCisgaW9fd2FpdF9yZWFkYWJsZShWQUxVRSBpbykKKyB7CisgI2lmZGVmIEhBVkVf UkJfSU9fTUFZQkVfV0FJVAorLSAgICBpZiAoIXJiX2lvX21heWJlX3dhaXRfcmVhZGFibGUoZXJy bm8sIGlvLCBSVUJZX0lPX1RJTUVPVVRfREVGQVVMVCkpIHsKKysgICAgaWYgKCFyYl9pb193YWl0 KGlvLCBJTlQyTlVNKFJVQllfSU9fUkVBREFCTEUpLCBSVUJZX0lPX1RJTUVPVVRfREVGQVVMVCkp IHsKKyAgICAgICAgIHJiX3JhaXNlKElPX1RJTUVPVVRfRVJST1IsICJUaW1lZCBvdXQgd2hpbGUg d2FpdGluZyB0byBiZWNvbWUgcmVhZGFibGUhIik7CisgICAgIH0KKyAjZWxzZQorICAgICByYl9p b190ICpmcHRyOworICAgICBHZXRPcGVuRmlsZShpbywgZnB0cik7CistICAgIHJiX2lvX3dhaXRf cmVhZGFibGUoZnB0ci0+ZmQpOworKyAgICByYl90aHJlYWRfd2FpdF9mZChmcHRyLT5mZCk7Cisg I2VuZGlmCisgfQorIAorQEAgLTE3NjksNyArMTc4OSw2IEBAIHN0YXRpYyBWQUxVRQorIG9zc2xf c3RhcnRfc3NsKFZBTFVFIHNlbGYsIGludCAoKmZ1bmMpKFNTTCAqKSwgY29uc3QgY2hhciAqZnVu Y25hbWUsIFZBTFVFIG9wdHMpCisgeworICAgICBTU0wgKnNzbDsKKy0gICAgaW50IHJldCwgcmV0 MjsKKyAgICAgVkFMVUUgY2Jfc3RhdGU7CisgICAgIGludCBub25ibG9jayA9IG9wdHMgIT0gUWZh bHNlOworIAorQEAgLTE3NzksNyArMTc5OCw4IEBAIG9zc2xfc3RhcnRfc3NsKFZBTFVFIHNlbGYs IGludCAoKmZ1bmMpKFNTTCAqKSwgY29uc3QgY2hhciAqZnVuY25hbWUsIFZBTFVFIG9wdHMpCisg CisgICAgIFZBTFVFIGlvID0gcmJfYXR0cl9nZXQoc2VsZiwgaWRfaV9pbyk7CisgICAgIGZvciAo OzspIHsKKy0gICAgICAgIHJldCA9IGZ1bmMoc3NsKTsKKysgICAgICAgIGludCByZXQgPSBmdW5j KHNzbCk7CisrICAgICAgICBpbnQgc2F2ZWRfZXJybm8gPSBlcnJub19tYXBwZWQoKTsKKyAKKyAg ICAgICAgIGNiX3N0YXRlID0gcmJfYXR0cl9nZXQoc2VsZiwgSURfY2FsbGJhY2tfc3RhdGUpOwor ICAgICAgICAgaWYgKCFOSUxfUChjYl9zdGF0ZSkpIHsKK0BAIC0xNzkxLDcgKzE4MTEsOCBAQCBv c3NsX3N0YXJ0X3NzbChWQUxVRSBzZWxmLCBpbnQgKCpmdW5jKShTU0wgKiksIGNvbnN0IGNoYXIg KmZ1bmNuYW1lLCBWQUxVRSBvcHRzKQorICAgICAgICAgaWYgKHJldCA+IDApCisgICAgICAgICAg ICAgYnJlYWs7CisgCistICAgICAgICBzd2l0Y2ggKChyZXQyID0gc3NsX2dldF9lcnJvcihzc2ws IHJldCkpKSB7CisrICAgICAgICBpbnQgY29kZSA9IFNTTF9nZXRfZXJyb3Ioc3NsLCByZXQpOwor KyAgICAgICAgc3dpdGNoIChjb2RlKSB7CisgICAgICAgICAgIGNhc2UgU1NMX0VSUk9SX1dBTlRf V1JJVEU6CisgICAgICAgICAgICAgaWYgKG5vX2V4Y2VwdGlvbl9wKG9wdHMpKSB7IHJldHVybiBz eW1fd2FpdF93cml0YWJsZTsgfQorICAgICAgICAgICAgIHdyaXRlX3dvdWxkX2Jsb2NrKG5vbmJs b2NrKTsKK0BAIC0xODA1LDEwICsxODI2LDExIEBAIG9zc2xfc3RhcnRfc3NsKFZBTFVFIHNlbGYs IGludCAoKmZ1bmMpKFNTTCAqKSwgY29uc3QgY2hhciAqZnVuY25hbWUsIFZBTFVFIG9wdHMpCisg ICAgICAgICAgIGNhc2UgU1NMX0VSUk9SX1NZU0NBTEw6CisgI2lmZGVmIF9fQVBQTEVfXworICAg ICAgICAgICAgIC8qIFNlZSBvc3NsX3NzbF93cml0ZV9pbnRlcm5hbCgpICovCistICAgICAgICAg ICAgaWYgKGVycm5vID09IEVQUk9UT1RZUEUpCisrICAgICAgICAgICAgaWYgKHNhdmVkX2Vycm5v ID09IEVQUk9UT1RZUEUpCisgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICNlbmRpZgorLSAg ICAgICAgICAgIGlmIChlcnJubykgcmJfc3lzX2ZhaWwoZnVuY25hbWUpOworKyAgICAgICAgICAg IGlmIChzYXZlZF9lcnJubykKKysgICAgICAgICAgICAgICAgcmJfZXhjX3JhaXNlKHJiX3N5c2Vy cl9uZXcoc2F2ZWRfZXJybm8sIGZ1bmNuYW1lKSk7CisgICAgICAgICAgICAgLyogZmFsbHRocm91 Z2ggKi8KKyAgICAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAgICAgVkFMVUUgZXJyb3Jf YXBwZW5kID0gUW5pbDsKK0BAIC0xODI5LDEwICsxODUxLDEwIEBAIG9zc2xfc3RhcnRfc3NsKFZB TFVFIHNlbGYsIGludCAoKmZ1bmMpKFNTTCAqKSwgY29uc3QgY2hhciAqZnVuY25hbWUsIFZBTFVF IG9wdHMpCisgICAgICAgICAgICAgICBvc3NsX3JhaXNlKGVTU0xFcnJvciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIiVzJXMgcmV0dXJuZWQ9JWQgZXJybm89JWQgcGVlcmFkZHI9JSJQUklz VkFMVUUiIHN0YXRlPSVzJSJQUklzVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1 bmNuYW1lLAorLSAgICAgICAgICAgICAgICAgICAgICAgICByZXQyID09IFNTTF9FUlJPUl9TWVND QUxMID8gIiBTWVNDQUxMIiA6ICIiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICByZXQyLAor LSAgICAgICAgICAgICAgICAgICAgICAgICBlcnJubywKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgcGVlcmFkZHJfaXBfc3RyKHNlbGYpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBjb2Rl ID09IFNTTF9FUlJPUl9TWVNDQUxMID8gIiBTWVNDQUxMIiA6ICIiLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICBjb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBzYXZlZF9lcnJubywK KysgICAgICAgICAgICAgICAgICAgICAgICAgcGVlcmFkZHJfaXBfc3RyKGlvKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgU1NMX3N0YXRlX3N0cmluZ19sb25nKHNzbCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgIGVycm9yX2FwcGVuZCk7CisgICAgICAgICAgIH0KK0BAIC0xOTc0LDYg KzE5OTYsNyBAQCBvc3NsX3NzbF9yZWFkX2ludGVybmFsKGludCBhcmdjLCBWQUxVRSAqYXJndiwg VkFMVUUgc2VsZiwgaW50IG5vbmJsb2NrKQorICAgICBmb3IgKDs7KSB7CisgICAgICAgICByYl9z dHJfbG9ja3RtcChzdHIpOworICAgICAgICAgaW50IG5yZWFkID0gU1NMX3JlYWQoc3NsLCBSU1RS SU5HX1BUUihzdHIpLCBpbGVuKTsKKysgICAgICAgIGludCBzYXZlZF9lcnJubyA9IGVycm5vX21h cHBlZCgpOworICAgICAgICAgcmJfc3RyX3VubG9ja3RtcChzdHIpOworIAorICAgICAgICAgY2Jf c3RhdGUgPSByYl9hdHRyX2dldChzZWxmLCBJRF9jYWxsYmFja19zdGF0ZSk7CitAQCAtMTk4Myw3 ICsyMDA2LDcgQEAgb3NzbF9zc2xfcmVhZF9pbnRlcm5hbChpbnQgYXJnYywgVkFMVUUgKmFyZ3Ys IFZBTFVFIHNlbGYsIGludCBub25ibG9jaykKKyAgICAgICAgICAgICByYl9qdW1wX3RhZyhOVU0y SU5UKGNiX3N0YXRlKSk7CisgICAgICAgICB9CisgCistICAgICAgICBzd2l0Y2ggKHNzbF9nZXRf ZXJyb3Ioc3NsLCBucmVhZCkpIHsKKysgICAgICAgIHN3aXRjaCAoU1NMX2dldF9lcnJvcihzc2ws IG5yZWFkKSkgeworICAgICAgICAgICBjYXNlIFNTTF9FUlJPUl9OT05FOgorICAgICAgICAgICAg IHJiX3N0cl9zZXRfbGVuKHN0ciwgbnJlYWQpOworICAgICAgICAgICAgIHJldHVybiBzdHI7CitA QCAtMjAwNiw4ICsyMDI5LDggQEAgb3NzbF9zc2xfcmVhZF9pbnRlcm5hbChpbnQgYXJnYywgVkFM VUUgKmFyZ3YsIFZBTFVFIHNlbGYsIGludCBub25ibG9jaykKKyAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgY2FzZSBTU0xfRVJST1JfU1lTQ0FMTDoKKyAgICAgICAgICAgICBpZiAoIUVS Ul9wZWVrX2Vycm9yKCkpIHsKKy0gICAgICAgICAgICAgICAgaWYgKGVycm5vKQorLSAgICAgICAg ICAgICAgICAgICAgcmJfc3lzX2ZhaWwoMCk7CisrICAgICAgICAgICAgICAgIGlmIChzYXZlZF9l cnJubykKKysgICAgICAgICAgICAgICAgICAgIHJiX2V4Y19yYWlzZShyYl9zeXNlcnJfbmV3KHNh dmVkX2Vycm5vLCAiU1NMX3JlYWQiKSk7CisgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAg ICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAqIFRoZSB1bmRlcmx5aW5n IEJJTyByZXR1cm5lZCAwLiBUaGlzIGlzIGFjdHVhbGx5IGEKK0BAIC0yMDkyLDYgKzIxMTUsNyBA QCBvc3NsX3NzbF93cml0ZV9pbnRlcm5hbF9zYWZlKFZBTFVFIF9hcmdzKQorIAorICAgICBmb3Ig KDs7KSB7CisgICAgICAgICBpbnQgbndyaXR0ZW4gPSBTU0xfd3JpdGUoc3NsLCBSU1RSSU5HX1BU UihzdHIpLCBudW0pOworKyAgICAgICAgaW50IHNhdmVkX2Vycm5vID0gZXJybm9fbWFwcGVkKCk7 CisgCisgICAgICAgICBjYl9zdGF0ZSA9IHJiX2F0dHJfZ2V0KHNlbGYsIElEX2NhbGxiYWNrX3N0 YXRlKTsKKyAgICAgICAgIGlmICghTklMX1AoY2Jfc3RhdGUpKSB7CitAQCAtMjEwMCw3ICsyMTI0 LDcgQEAgb3NzbF9zc2xfd3JpdGVfaW50ZXJuYWxfc2FmZShWQUxVRSBfYXJncykKKyAgICAgICAg ICAgICByYl9qdW1wX3RhZyhOVU0ySU5UKGNiX3N0YXRlKSk7CisgICAgICAgICB9CisgCistICAg ICAgICBzd2l0Y2ggKHNzbF9nZXRfZXJyb3Ioc3NsLCBud3JpdHRlbikpIHsKKysgICAgICAgIHN3 aXRjaCAoU1NMX2dldF9lcnJvcihzc2wsIG53cml0dGVuKSkgeworICAgICAgICAgICBjYXNlIFNT TF9FUlJPUl9OT05FOgorICAgICAgICAgICAgIHJldHVybiBJTlQyTlVNKG53cml0dGVuKTsKKyAg ICAgICAgICAgY2FzZSBTU0xfRVJST1JfV0FOVF9XUklURToKK0BAIC0yMTIxLDEwICsyMTQ1LDEx IEBAIG9zc2xfc3NsX3dyaXRlX2ludGVybmFsX3NhZmUoVkFMVUUgX2FyZ3MpCisgICAgICAgICAg ICAgICogbWFrZSB0aGUgZXJyb3IgaGFuZGxpbmcgaW4gbGluZSB3aXRoIHRoZSBzb2NrZXQgbGli cmFyeS4KKyAgICAgICAgICAgICAgKiBbQnVnICMxNDcxM10gaHR0cHM6Ly9idWdzLnJ1YnktbGFu Zy5vcmcvaXNzdWVzLzE0NzEzCisgICAgICAgICAgICAgICovCistICAgICAgICAgICAgaWYgKGVy cm5vID09IEVQUk9UT1RZUEUpCisrICAgICAgICAgICAgaWYgKHNhdmVkX2Vycm5vID09IEVQUk9U T1RZUEUpCisgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICNlbmRpZgorLSAgICAgICAgICAg IGlmIChlcnJubykgcmJfc3lzX2ZhaWwoMCk7CisrICAgICAgICAgICAgaWYgKHNhdmVkX2Vycm5v KQorKyAgICAgICAgICAgICAgICByYl9leGNfcmFpc2UocmJfc3lzZXJyX25ldyhzYXZlZF9lcnJu bywgIlNTTF93cml0ZSIpKTsKKyAgICAgICAgICAgICAvKiBmYWxsdGhyb3VnaCAqLworICAgICAg ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgIG9zc2xfcmFpc2UoZVNTTEVycm9yLCAiU1NMX3dy aXRlIik7CitAQCAtMzMwMCw1ICszMzI1LDYgQEAgSW5pdF9vc3NsX3NzbCh2b2lkKQorICAgICBE ZWZJVmFySUQoaW8pOworICAgICBEZWZJVmFySUQoY29udGV4dCk7CisgICAgIERlZklWYXJJRCho b3N0bmFtZSk7CisrICAgIERlZklWYXJJRChzeW5jX2Nsb3NlKTsKKyAjZW5kaWYgLyogIWRlZmlu ZWQoT1BFTlNTTF9OT19TT0NLKSAqLworIH0KK2RpZmYgLS1naXQgYS90ZXN0L29wZW5zc2wvdGVz dF9jaXBoZXIucmIgYi90ZXN0L29wZW5zc2wvdGVzdF9jaXBoZXIucmIKK2luZGV4IDkzNzY2Y2Zj ODhjZTE3Li42YTQwNWRhMGE5NzYzZiAxMDA2NDQKKy0tLSBhL3Rlc3Qvb3BlbnNzbC90ZXN0X2Np cGhlci5yYgorKysrIGIvdGVzdC9vcGVuc3NsL3Rlc3RfY2lwaGVyLnJiCitAQCAtMzIsMjggKzMy LDI4IEBAIGRlZiB0ZXN0X3BrY3M1X2tleWl2Z2VuCisgICAgIHNhbHQgPSAiXHgwMSIgKiA4Cisg ICAgIG51bSA9IDIwNDgKKyAgICAgcHQgPSAiZGF0YSB0byBiZSBlbmNyeXB0ZWQiCistICAgIGNp cGhlciA9IE9wZW5TU0w6OkNpcGhlci5uZXcoIkRFUy1FREUzLUNCQyIpLmVuY3J5cHQKKy0gICAg Y2lwaGVyLnBrY3M1X2tleWl2Z2VuKHBhc3MsIHNhbHQsIG51bSwgIk1ENSIpCisrICAgIGNpcGhl ciA9IE9wZW5TU0w6OkNpcGhlci5uZXcoIkFFUy0yNTYtQ0JDIikuZW5jcnlwdAorKyAgICBjaXBo ZXIucGtjczVfa2V5aXZnZW4ocGFzcywgc2FsdCwgbnVtLCAiU0hBMjU2IikKKyAgICAgczEgPSBj aXBoZXIudXBkYXRlKHB0KSA8PCBjaXBoZXIuZmluYWwKKyAKKy0gICAgZDEgPSBudW0udGltZXMu aW5qZWN0KHBhc3MgKyBzYWx0KSB7fG91dCwgX3wgT3BlblNTTDo6RGlnZXN0LmRpZ2VzdCgnTUQ1 Jywgb3V0KSB9CistICAgIGQyID0gbnVtLnRpbWVzLmluamVjdChkMSArIHBhc3MgKyBzYWx0KSB7 fG91dCwgX3wgT3BlblNTTDo6RGlnZXN0LmRpZ2VzdCgnTUQ1Jywgb3V0KSB9CistICAgIGtleSA9 IChkMSArIGQyKVswLCAyNF0KKy0gICAgaXYgPSAoZDEgKyBkMilbMjQsIDhdCistICAgIGNpcGhl ciA9IG5ld19lbmNyeXB0b3IoIkRFUy1FREUzLUNCQyIsIGtleToga2V5LCBpdjogaXYpCisrICAg IGQxID0gbnVtLnRpbWVzLmluamVjdChwYXNzICsgc2FsdCkge3xvdXQsIF98IE9wZW5TU0w6OkRp Z2VzdC5kaWdlc3QoJ1NIQTI1NicsIG91dCkgfQorKyAgICBkMiA9IG51bS50aW1lcy5pbmplY3Qo ZDEgKyBwYXNzICsgc2FsdCkge3xvdXQsIF98IE9wZW5TU0w6OkRpZ2VzdC5kaWdlc3QoJ1NIQTI1 NicsIG91dCkgfQorKyAgICBrZXkgPSAoZDEgKyBkMilbMCwgMzJdCisrICAgIGl2ID0gKGQxICsg ZDIpWzMyLCAxNl0KKysgICAgY2lwaGVyID0gbmV3X2VuY3J5cHRvcigiQUVTLTI1Ni1DQkMiLCBr ZXk6IGtleSwgaXY6IGl2KQorICAgICBzMiA9IGNpcGhlci51cGRhdGUocHQpIDw8IGNpcGhlci5m aW5hbAorIAorICAgICBhc3NlcnRfZXF1YWwgczEsIHMyCisgCistICAgIGNpcGhlcjIgPSBPcGVu U1NMOjpDaXBoZXIubmV3KCJERVMtRURFMy1DQkMiKS5lbmNyeXB0CistICAgIGFzc2VydF9yYWlz ZShBcmd1bWVudEVycm9yKSB7IGNpcGhlcjIucGtjczVfa2V5aXZnZW4ocGFzcywgc2FsdCwgLTEs ICJNRDUiKSB9CisrICAgIGNpcGhlcjIgPSBPcGVuU1NMOjpDaXBoZXIubmV3KCJBRVMtMjU2LUNC QyIpLmVuY3J5cHQKKysgICAgYXNzZXJ0X3JhaXNlKEFyZ3VtZW50RXJyb3IpIHsgY2lwaGVyMi5w a2NzNV9rZXlpdmdlbihwYXNzLCBzYWx0LCAtMSwgIlNIQTI1NiIpIH0KKyAgIGVuZAorIAorICAg ZGVmIHRlc3RfaW5mbworLSAgICBjaXBoZXIgPSBPcGVuU1NMOjpDaXBoZXIubmV3KCJERVMtRURF My1DQkMiKS5lbmNyeXB0CistICAgIGFzc2VydF9lcXVhbCAiREVTLUVERTMtQ0JDIiwgY2lwaGVy Lm5hbWUKKy0gICAgYXNzZXJ0X2VxdWFsIDI0LCBjaXBoZXIua2V5X2xlbgorLSAgICBhc3NlcnRf ZXF1YWwgOCwgY2lwaGVyLml2X2xlbgorKyAgICBjaXBoZXIgPSBPcGVuU1NMOjpDaXBoZXIubmV3 KCJBRVMtMjU2LUNCQyIpLmVuY3J5cHQKKysgICAgYXNzZXJ0X2VxdWFsICJBRVMtMjU2LUNCQyIs IGNpcGhlci5uYW1lCisrICAgIGFzc2VydF9lcXVhbCAzMiwgY2lwaGVyLmtleV9sZW4KKysgICAg YXNzZXJ0X2VxdWFsIDE2LCBjaXBoZXIuaXZfbGVuCisgICBlbmQKKyAKKyAgIGRlZiB0ZXN0X2R1 cAorQEAgLTgwLDEzICs4MCwxMyBAQCBkZWYgdGVzdF9yZXNldAorICAgZW5kCisgCisgICBkZWYg dGVzdF9rZXlfaXZfc2V0CistICAgIGNpcGhlciA9IE9wZW5TU0w6OkNpcGhlci5uZXcoIkRFUy1F REUzLUNCQyIpLmVuY3J5cHQKKy0gICAgYXNzZXJ0X3JhaXNlKEFyZ3VtZW50RXJyb3IpIHsgY2lw aGVyLmtleSA9ICJceDAxIiAqIDIzIH0KKy0gICAgYXNzZXJ0X25vdGhpbmdfcmFpc2VkIHsgY2lw aGVyLmtleSA9ICJceDAxIiAqIDI0IH0KKy0gICAgYXNzZXJ0X3JhaXNlKEFyZ3VtZW50RXJyb3Ip IHsgY2lwaGVyLmtleSA9ICJceDAxIiAqIDI1IH0KKy0gICAgYXNzZXJ0X3JhaXNlKEFyZ3VtZW50 RXJyb3IpIHsgY2lwaGVyLml2ID0gIlx4MDEiICogNyB9CistICAgIGFzc2VydF9ub3RoaW5nX3Jh aXNlZCB7IGNpcGhlci5pdiA9ICJceDAxIiAqIDggfQorLSAgICBhc3NlcnRfcmFpc2UoQXJndW1l bnRFcnJvcikgeyBjaXBoZXIuaXYgPSAiXHgwMSIgKiA5IH0KKysgICAgY2lwaGVyID0gT3BlblNT TDo6Q2lwaGVyLm5ldygiQUVTLTI1Ni1DQkMiKS5lbmNyeXB0CisrICAgIGFzc2VydF9yYWlzZShB cmd1bWVudEVycm9yKSB7IGNpcGhlci5rZXkgPSAiXHgwMSIgKiAzMSB9CisrICAgIGFzc2VydF9u b3RoaW5nX3JhaXNlZCB7IGNpcGhlci5rZXkgPSAiXHgwMSIgKiAzMiB9CisrICAgIGFzc2VydF9y YWlzZShBcmd1bWVudEVycm9yKSB7IGNpcGhlci5rZXkgPSAiXHgwMSIgKiAzMyB9CisrICAgIGFz c2VydF9yYWlzZShBcmd1bWVudEVycm9yKSB7IGNpcGhlci5pdiA9ICJceDAxIiAqIDE1IH0KKysg ICAgYXNzZXJ0X25vdGhpbmdfcmFpc2VkIHsgY2lwaGVyLml2ID0gIlx4MDEiICogMTYgfQorKyAg ICBhc3NlcnRfcmFpc2UoQXJndW1lbnRFcnJvcikgeyBjaXBoZXIuaXYgPSAiXHgwMSIgKiAxNyB9 CisgICBlbmQKKyAKKyAgIGRlZiB0ZXN0X3JhbmRvbV9rZXlfaXYKK0BAIC0xMDksOCArMTA5LDgg QEAgZGVmIHRlc3RfcmFuZG9tX2tleV9pdgorICAgZW5kCisgCisgICBkZWYgdGVzdF9pbml0aWFs aXplCistICAgIGNpcGhlciA9IE9wZW5TU0w6OkNpcGhlci5uZXcoIkRFUy1FREUzLUNCQyIpCist ICAgIGFzc2VydF9yYWlzZShSdW50aW1lRXJyb3IpIHsgY2lwaGVyLl9fc2VuZF9fKDppbml0aWFs aXplLCAiREVTLUVERTMtQ0JDIikgfQorKyAgICBjaXBoZXIgPSBPcGVuU1NMOjpDaXBoZXIubmV3 KCJBRVMtMjU2LUNCQyIpCisrICAgIGFzc2VydF9yYWlzZShSdW50aW1lRXJyb3IpIHsgY2lwaGVy Ll9fc2VuZF9fKDppbml0aWFsaXplLCAiQUVTLTI1Ni1DQkMiKSB9CisgICAgIGFzc2VydF9yYWlz ZShSdW50aW1lRXJyb3IpIHsgT3BlblNTTDo6Q2lwaGVyLmFsbG9jYXRlLmZpbmFsIH0KKyAgICAg YXNzZXJ0X3JhaXNlKE9wZW5TU0w6OkNpcGhlcjo6Q2lwaGVyRXJyb3IpIHsKKyAgICAgICBPcGVu U1NMOjpDaXBoZXIubmV3KCJubyBzdWNoIGFsZ29yaXRobSIpCitAQCAtMTM0LDEzICsxMzQsMTQg QEAgZGVmIHRlc3RfY3RyX2lmX2V4aXN0cworICAgZGVmIHRlc3RfdXBkYXRlX3dpdGhfYnVmZmVy CisgICAgIGNpcGhlciA9IE9wZW5TU0w6OkNpcGhlci5uZXcoImFlcy0xMjgtZWNiIikuZW5jcnlw dAorICAgICBjaXBoZXIucmFuZG9tX2tleQorLSAgICBleHBlY3RlZCA9IGNpcGhlci51cGRhdGUo ImRhdGEiKSA8PCBjaXBoZXIuZmluYWwKKy0gICAgYXNzZXJ0X2VxdWFsIDE2LCBleHBlY3RlZC5i eXRlc2l6ZQorKyAgICBleHBlY3RlZCA9IGNpcGhlci51cGRhdGUoImRhdGEiICogMTApIDw8IGNp cGhlci5maW5hbAorKyAgICBhc3NlcnRfZXF1YWwgNDgsIGV4cGVjdGVkLmJ5dGVzaXplCisgCisg ICAgICMgQnVmZmVyIGlzIHN1cHBsaWVkCisgICAgIGNpcGhlci5yZXNldAorICAgICBidWYgPSBT dHJpbmcubmV3CistICAgIGFzc2VydF9zYW1lIGJ1ZiwgY2lwaGVyLnVwZGF0ZSgiZGF0YSIsIGJ1 ZikKKysgICAgYXNzZXJ0X3NhbWUgYnVmLCBjaXBoZXIudXBkYXRlKCJkYXRhIiAqIDEwLCBidWYp CisrICAgIGFzc2VydF9lcXVhbCAzMiwgYnVmLmJ5dGVzaXplCisgICAgIGFzc2VydF9lcXVhbCBl eHBlY3RlZCwgYnVmICsgY2lwaGVyLmZpbmFsCisgCisgICAgICMgQnVmZmVyIGlzIGZyb3plbgor QEAgLTE0OSw5ICsxNTAsOSBAQCBkZWYgdGVzdF91cGRhdGVfd2l0aF9idWZmZXIKKyAKKyAgICAg IyBCdWZmZXIgaXMgYSBzaGFyZWQgc3RyaW5nIFtydWJ5LWNvcmU6MTIwMTQxXSBbQnVnICMyMDkz N10KKyAgICAgY2lwaGVyLnJlc2V0CistICAgIGJ1ZiA9ICJ4IiAqIDEwMjQKKy0gICAgc2hhcmVk ID0gYnVmWy0oImRhdGEiLmJ5dGVzaXplICsgMzIpLi4tMV0KKy0gICAgYXNzZXJ0X3NhbWUgc2hh cmVkLCBjaXBoZXIudXBkYXRlKCJkYXRhIiwgc2hhcmVkKQorKyAgICBidWYgPSAieCIuYiAqIDEw MjQKKysgICAgc2hhcmVkID0gYnVmWy0oImRhdGEiLmJ5dGVzaXplICogMTAgKyAzMikuLi0xXQor KyAgICBhc3NlcnRfc2FtZSBzaGFyZWQsIGNpcGhlci51cGRhdGUoImRhdGEiICogMTAsIHNoYXJl ZCkKKyAgICAgYXNzZXJ0X2VxdWFsIGV4cGVjdGVkLCBzaGFyZWQgKyBjaXBoZXIuZmluYWwKKyAg IGVuZAorIAorQEAgLTE2OCwxMiArMTY5LDEyIEBAIGRlZiB0ZXN0X0FFUworICAgICAldyhlY2Ig Y2JjIGNmYiBvZmIpLmVhY2h7fG1vZGV8CisgICAgICAgYzEgPSBPcGVuU1NMOjpDaXBoZXIubmV3 KCJhZXMtMjU2LSN7bW9kZX0iKQorICAgICAgIGMxLmVuY3J5cHQKKy0gICAgICBjMS5wa2NzNV9r ZXlpdmdlbigicGFzc3dkIikKKysgICAgICBjMS5wa2NzNV9rZXlpdmdlbigicGFzc3dkIiwgIjEy MzQ1Njc4IiwgMTAwMDAsICJTSEEyNTYiKQorICAgICAgIGN0ID0gYzEudXBkYXRlKHB0KSArIGMx LmZpbmFsCisgCisgICAgICAgYzIgPSBPcGVuU1NMOjpDaXBoZXIubmV3KCJhZXMtMjU2LSN7bW9k ZX0iKQorICAgICAgIGMyLmRlY3J5cHQKKy0gICAgICBjMi5wa2NzNV9rZXlpdmdlbigicGFzc3dk IikKKysgICAgICBjMi5wa2NzNV9rZXlpdmdlbigicGFzc3dkIiwgIjEyMzQ1Njc4IiwgMTAwMDAs ICJTSEEyNTYiKQorICAgICAgIGFzc2VydF9lcXVhbChwdCwgYzIudXBkYXRlKGN0KSArIGMyLmZp bmFsKQorICAgICB9CisgICBlbmQKK0BAIC0zMTIsNiArMzEzLDkgQEAgZGVmIHRlc3RfYWVzX2dj bV92YXJpYWJsZV9pdl9sZW4KKyAgIGVuZAorIAorICAgZGVmIHRlc3RfYWVzX29jYl90YWdfbGVu CisrICAgICMgQUVTLTEyOC1PQ0IgaXMgbm90IEZJUFMtYXBwcm92ZWQuCisrICAgIG9taXRfb25f ZmlwcworKworICAgICAjIFJGQyA3MjUzIEFwcGVuZGl4IEE7IHRoZSBzZWNvbmQgc2FtcGxlCisg ICAgIGtleSA9IFsiMDAwMTAyMDMwNDA1MDYwNzA4MDkwQTBCMEMwRDBFMEYiXS5wYWNrKCJIKiIp CisgICAgIGl2ICA9IFsiQkJBQTk5ODg3NzY2NTU0NDMzMjIxMTAxIl0ucGFjaygiSCoiKQorQEAg LTM0Niw2ICszNTAsOSBAQCBkZWYgdGVzdF9hZXNfb2NiX3RhZ19sZW4KKyAgIGVuZCBpZiBoYXNf Y2lwaGVyPygiYWVzLTEyOC1vY2IiKQorIAorICAgZGVmIHRlc3RfYWVzX2djbV9zaXYKKysgICAg IyBBRVMtMTI4LUdDTS1TSVYgaXMgbm90IEZJUFMtYXBwcm92ZWQuCisrICAgIG9taXRfb25fZmlw cworKworICAgICAjIFJGQyA4NDUyIEFwcGVuZGl4IEMuMS4sIDh0aCBleGFtcGxlCisgICAgIGtl eSA9IFsiMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXS5wYWNrKCJIKiIpCisgICAg IGl2ICA9IFsiMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0ucGFjaygiSCoiKQorZGlmZiAtLWdp dCBhL3Rlc3Qvb3BlbnNzbC90ZXN0X2RpZ2VzdC5yYiBiL3Rlc3Qvb3BlbnNzbC90ZXN0X2RpZ2Vz dC5yYgoraW5kZXggMmVmODRjZmE0YzdkMmEuLjkxZWQyNDc0MTQyYzVlIDEwMDY0NAorLS0tIGEv dGVzdC9vcGVuc3NsL3Rlc3RfZGlnZXN0LnJiCisrKysgYi90ZXN0L29wZW5zc2wvdGVzdF9kaWdl c3QucmIKK0BAIC02LDggKzYsOCBAQAorIGNsYXNzIE9wZW5TU0w6OlRlc3REaWdlc3QgPCBPcGVu U1NMOjpUZXN0Q2FzZQorICAgZGVmIHNldHVwCisgICAgIHN1cGVyCistICAgIEBkMSA9IE9wZW5T U0w6OkRpZ2VzdC5uZXcoIk1ENSIpCistICAgIEBkMiA9IE9wZW5TU0w6OkRpZ2VzdDo6TUQ1Lm5l dworKyAgICBAZDEgPSBPcGVuU1NMOjpEaWdlc3QubmV3KCJTSEEyNTYiKQorKyAgICBAZDIgPSBP cGVuU1NMOjpEaWdlc3Q6OlNIQTI1Ni5uZXcKKyAgIGVuZAorIAorICAgZGVmIHRlc3RfaW5pdGlh bGl6ZQorQEAgLTE3LDE4ICsxNywyMCBAQCBkZWYgdGVzdF9pbml0aWFsaXplCisgICBlbmQKKyAK KyAgIGRlZiB0ZXN0X2RpZ2VzdAorLSAgICBudWxsX2hleCA9ICJkNDFkOGNkOThmMDBiMjA0ZTk4 MDA5OThlY2Y4NDI3ZSIKKysgICAgIyBTSEEyNTYgbnVsbCB2YWx1ZSBjYWxjdWxhdGVkIGJ5IGBl Y2hvIC1uICIiIHwgc2hhMjU2c3VtYAorKyAgICBudWxsX2hleCA9ICJlM2IwYzQ0Mjk4ZmMxYzE0 OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1IgorICAgICBu dWxsX2JpbiA9IFtudWxsX2hleF0ucGFjaygiSCoiKQorICAgICBkYXRhID0gIkRBVEEiCistICAg IGhleCA9ICJlNDRmOWUzNDhlNDFjYjI3MmVmYTg3Mzg3NzI4NTcxYiIKKysgICAgIyBTSEEyNTYg REFUQSB2YWx1ZSBjYWxjdWxhdGVkIGJ5IGBlY2hvIC1uICJEQVRBIiB8IHNoYTI1NnN1bWAKKysg ICAgaGV4ID0gImM5N2MyOWM3YTcxYjM5MmI0MzdlZTAzZmQxN2YwOWJiMTBiNzVlODc5NDY2ZmMw ZWI3NTdiMmM0YTc4YWM5MzgiCisgICAgIGJpbiA9IFtoZXhdLnBhY2soIkgqIikKKyAgICAgYXNz ZXJ0X2VxdWFsKG51bGxfYmluLCBAZDEuZGlnZXN0KQorICAgICBhc3NlcnRfZXF1YWwobnVsbF9o ZXgsIEBkMS5oZXhkaWdlc3QpCisgICAgIEBkMSA8PCBkYXRhCisgICAgIGFzc2VydF9lcXVhbChi aW4sIEBkMS5kaWdlc3QpCisgICAgIGFzc2VydF9lcXVhbChoZXgsIEBkMS5oZXhkaWdlc3QpCist ICAgIGFzc2VydF9lcXVhbChiaW4sIE9wZW5TU0w6OkRpZ2VzdC5kaWdlc3QoJ01ENScsIGRhdGEp KQorLSAgICBhc3NlcnRfZXF1YWwoaGV4LCBPcGVuU1NMOjpEaWdlc3QuaGV4ZGlnZXN0KCdNRDUn LCBkYXRhKSkKKysgICAgYXNzZXJ0X2VxdWFsKGJpbiwgT3BlblNTTDo6RGlnZXN0LmRpZ2VzdCgn U0hBMjU2JywgZGF0YSkpCisrICAgIGFzc2VydF9lcXVhbChoZXgsIE9wZW5TU0w6OkRpZ2VzdC5o ZXhkaWdlc3QoJ1NIQTI1NicsIGRhdGEpKQorICAgZW5kCisgCisgICBkZWYgdGVzdF9lcWwKK0BA IC0zOCw5ICs0MCw5IEBAIGRlZiB0ZXN0X2VxbAorICAgZW5kCisgCisgICBkZWYgdGVzdF9pbmZv CistICAgIGFzc2VydF9lcXVhbCgiTUQ1IiwgQGQxLm5hbWUsICJuYW1lIikKKy0gICAgYXNzZXJ0 X2VxdWFsKCJNRDUiLCBAZDIubmFtZSwgIm5hbWUiKQorLSAgICBhc3NlcnRfZXF1YWwoMTYsIEBk MS5zaXplLCAic2l6ZSIpCisrICAgIGFzc2VydF9lcXVhbCgiU0hBMjU2IiwgQGQxLm5hbWUsICJu YW1lIikKKysgICAgYXNzZXJ0X2VxdWFsKCJTSEEyNTYiLCBAZDIubmFtZSwgIm5hbWUiKQorKyAg ICBhc3NlcnRfZXF1YWwoMzIsIEBkMS5zaXplLCAic2l6ZSIpCisgICBlbmQKKyAKKyAgIGRlZiB0 ZXN0X2R1cAorQEAgLTYwLDcgKzYyLDEwIEBAIGRlZiB0ZXN0X3Jlc2V0CisgICBlbmQKKyAKKyAg IGRlZiB0ZXN0X2RpZ2VzdF9jb25zdGFudHMKKy0gICAgJXd7TUQ1IFNIQTEgU0hBMjI0IFNIQTI1 NiBTSEEzODQgU0hBNTEyfS5lYWNoIGRvIHxuYW1lfAorKyAgICBub25fZmlwc19uYW1lcyA9ICV3 e01ENX0KKysgICAgbmFtZXMgPSAld3tTSEExIFNIQTIyNCBTSEEyNTYgU0hBMzg0IFNIQTUxMn0K KysgICAgbmFtZXMgPSBub25fZmlwc19uYW1lcyArIG5hbWVzIHVubGVzcyBPcGVuU1NMLmZpcHNf bW9kZQorKyAgICBuYW1lcy5lYWNoIGRvIHxuYW1lfAorICAgICAgIGFzc2VydF9ub3RfbmlsKE9w ZW5TU0w6OkRpZ2VzdC5uZXcobmFtZSkpCisgICAgICAga2xhc3MgPSBPcGVuU1NMOjpEaWdlc3Qu Y29uc3RfZ2V0KG5hbWUudHIoJy0nLCAnXycpKQorICAgICAgIGFzc2VydF9ub3RfbmlsKGtsYXNz Lm5ldykKK0BAIC0xMjUsNiArMTMwLDkgQEAgZGVmIHRlc3Rfc2hhMworICAgZW5kCisgCisgICBk ZWYgdGVzdF9mZXRjaGVkX2V2cF9tZAorKyAgICAjIEtFQ0NBSy0yNTYgaXMgbm90IEZJUFMtYXBw cm92ZWQuCisrICAgIG9taXRfb25fZmlwcworKworICAgICAjIFByZS1OSVNUIEtlY2NhayBpcyBh biBleGFtcGxlIG9mIGEgZGlnZXN0IGFsZ29yaXRobSB0aGF0IGRvZXNuJ3QgaGF2ZSBhbgorICAg ICAjIE5JRCBhbmQgcmVxdWlyZXMgZHluYW1pYyBhbGxvY2F0aW9uIG9mIEVWUF9NRAorICAgICBo ZXggPSAiYzVkMjQ2MDE4NmY3MjMzYzkyN2U3ZGIyZGNjNzAzYzBlNTAwYjY1M2NhODIyNzNiN2Jm YWQ4MDQ1ZDg1YTQ3MCIKK2RpZmYgLS1naXQgYS90ZXN0L29wZW5zc2wvdGVzdF9maXBzLnJiIGIv dGVzdC9vcGVuc3NsL3Rlc3RfZmlwcy5yYgoraW5kZXggZWZjMjY1NWUyNWJmNTQuLjY4M2UwMDEx ZThkN2ZjIDEwMDY0NAorLS0tIGEvdGVzdC9vcGVuc3NsL3Rlc3RfZmlwcy5yYgorKysrIGIvdGVz dC9vcGVuc3NsL3Rlc3RfZmlwcy5yYgorQEAgLTMwLDcgKzMwLDcgQEAgZGVmIHRlc3RfZmlwc19t b2RlX2dldF9pc19mYWxzZV9vbl9maXBzX21vZGVfZGlzYWJsZWQKKyAgIGRlZiB0ZXN0X2ZpcHNf bW9kZV9pc19yZWVudHJhbnQKKyAgICAgcmV0dXJuIGlmIGF3c19sYz8gIyBBV1MtTEMncyBGSVBT IG1vZGUgaXMgZGVjaWRlZCBhdCBjb21waWxlIHRpbWUuCisgCistICAgIGFzc2VydF9zZXBhcmF0 ZWx5KFsiLXJvcGVuc3NsIl0sIDw8fiJlbmQ7IikKKysgICAgYXNzZXJ0X3J1Ynlfc3RhdHVzKFsi LXJvcGVuc3NsIl0sIDw8fiJlbmQ7IikKKyAgICAgICBPcGVuU1NMLmZpcHNfbW9kZSA9IGZhbHNl CisgICAgICAgT3BlblNTTC5maXBzX21vZGUgPSBmYWxzZQorICAgICBlbmQ7CitkaWZmIC0tZ2l0 IGEvdGVzdC9vcGVuc3NsL3Rlc3Rfb2NzcC5yYiBiL3Rlc3Qvb3BlbnNzbC90ZXN0X29jc3AucmIK K2luZGV4IGI5YjY2YWQzN2FkMDg4Li5jNDNmZjVjYjU1MWY0MSAxMDA2NDQKKy0tLSBhL3Rlc3Qv b3BlbnNzbC90ZXN0X29jc3AucmIKKysrKyBiL3Rlc3Qvb3BlbnNzbC90ZXN0X29jc3AucmIKK0BA IC0yMTUsNiArMjE1LDM1IEBAIGRlZiB0ZXN0X2Jhc2ljX3Jlc3BvbnNlX2R1cAorICAgICBhc3Nl cnRfZXF1YWwgYnJlcy50b19kZXIsIGJyZXMuZHVwLnRvX2RlcgorICAgZW5kCisgCisrICBkZWYg dGVzdF9iYXNpY19yZXNwb25zZV9zdGF0dXNfZ29vZAorKyAgICBicmVzID0gT3BlblNTTDo6T0NT UDo6QmFzaWNSZXNwb25zZS5uZXcKKysgICAgY2lkID0gT3BlblNTTDo6T0NTUDo6Q2VydGlmaWNh dGVJZC5uZXcoQGNlcnQsIEBjYV9jZXJ0LCBPcGVuU1NMOjpEaWdlc3QubmV3KCdTSEExJykpCisr ICAgIGJyZXMuYWRkX3N0YXR1cyhjaWQsIE9wZW5TU0w6Ok9DU1A6OlZfQ0VSVFNUQVRVU19HT09E LCAwLCBuaWwsIC0zMDAsIDUwMCwgbmlsKQorKyAgICBicmVzLnNpZ24oQG9jc3BfY2VydCwgQG9j c3Bfa2V5LCBbQGNhX2NlcnRdKQorKworKyAgICBzdGF0dXNlcyA9IGJyZXMuc3RhdHVzCisrICAg IGFzc2VydF9lcXVhbCAxLCBzdGF0dXNlcy5zaXplCisrICAgIHN0YXR1cyA9IHN0YXR1c2VzWzBd CisrICAgIGFzc2VydF9lcXVhbCBjaWQudG9fZGVyLCBzdGF0dXNbMF0udG9fZGVyCisrICAgIGFz c2VydF9lcXVhbCBPcGVuU1NMOjpPQ1NQOjpWX0NFUlRTVEFUVVNfR09PRCwgc3RhdHVzWzFdCisr ICAgIGFzc2VydF9uaWwgc3RhdHVzWzNdICMgcmV2dGltZSBzaG91bGQgYmUgbmlsIGZvciBHT09E IHN0YXR1cworKyAgZW5kCisrCisrICBkZWYgdGVzdF9iYXNpY19yZXNwb25zZV9zdGF0dXNfcmV2 b2tlZAorKyAgICBicmVzID0gT3BlblNTTDo6T0NTUDo6QmFzaWNSZXNwb25zZS5uZXcKKysgICAg bm93ID0gVGltZS5hdChUaW1lLm5vdy50b19pKQorKyAgICBjaWQgPSBPcGVuU1NMOjpPQ1NQOjpD ZXJ0aWZpY2F0ZUlkLm5ldyhAY2VydCwgQGNhX2NlcnQsIE9wZW5TU0w6OkRpZ2VzdC5uZXcoJ1NI QTEnKSkKKysgICAgYnJlcy5hZGRfc3RhdHVzKGNpZCwgT3BlblNTTDo6T0NTUDo6Vl9DRVJUU1RB VFVTX1JFVk9LRUQsCisrICAgICAgICAgICAgICAgICAgICBPcGVuU1NMOjpPQ1NQOjpSRVZPS0VE X1NUQVRVU19VTlNQRUNJRklFRCwgbm93IC0gNDAwLCAtMzAwLCBuaWwsIG5pbCkKKysgICAgYnJl cy5zaWduKEBvY3NwX2NlcnQsIEBvY3NwX2tleSwgW0BjYV9jZXJ0XSkKKysKKysgICAgc3RhdHVz ZXMgPSBicmVzLnN0YXR1cworKyAgICBhc3NlcnRfZXF1YWwgMSwgc3RhdHVzZXMuc2l6ZQorKyAg ICBzdGF0dXMgPSBzdGF0dXNlc1swXQorKyAgICBhc3NlcnRfZXF1YWwgT3BlblNTTDo6T0NTUDo6 Vl9DRVJUU1RBVFVTX1JFVk9LRUQsIHN0YXR1c1sxXQorKyAgICBhc3NlcnRfZXF1YWwgbm93IC0g NDAwLCBzdGF0dXNbM10gIyByZXZ0aW1lIHNob3VsZCBiZSB0aGUgcmV2b2NhdGlvbiB0aW1lCisr ICBlbmQKKysKKyAgIGRlZiB0ZXN0X2Jhc2ljX3Jlc3BvbnNlX3Jlc3BvbnNlX29wZXJhdGlvbnMK KyAgICAgYnJlcyA9IE9wZW5TU0w6Ok9DU1A6OkJhc2ljUmVzcG9uc2UubmV3CisgICAgIG5vdyA9 IFRpbWUuYXQoVGltZS5ub3cudG9faSkKK2RpZmYgLS1naXQgYS90ZXN0L29wZW5zc2wvdGVzdF9w a2NzMTIucmIgYi90ZXN0L29wZW5zc2wvdGVzdF9wa2NzMTIucmIKK2luZGV4IDFiNTMyODc3NGU0 ZjJhLi42MTdjMTU2Y2JkNzUyNSAxMDA2NDQKKy0tLSBhL3Rlc3Qvb3BlbnNzbC90ZXN0X3BrY3Mx Mi5yYgorKysrIGIvdGVzdC9vcGVuc3NsL3Rlc3RfcGtjczEyLnJiCitAQCAtMyw2ICszLDI5IEBA CisgCisgaWYgZGVmaW5lZD8oT3BlblNTTCkKKyAKKysjIE9wZW5TU0w6OlBLQ1MxMi5jcmVhdGUg Y2FsbGluZyB0aGUgUEtDUzEyX2NyZWF0ZSgpIGhhcyB0aGUgYXJndW1lbnQgbWFjX2l0ZXIKKysj IHdoaWNoIHVzZXMgYSBNQUMga2V5IHVzaW5nIFBLQ1MxMktERiB3aGljaCBpcyBub3QgRklQUy1h cHByb3ZlZC4KKysjIE9wZW5TU0w6OlBLQ1MxMi5uZXcgd2l0aCBiYXNlNjQtZW5jb2RlZCBleGFt cGxlIGNhbGxpbmcgUEtDUzEyX3BhcnNlKCkKKysjIHZlcmlmaWVzIHRoZSBNQUMga2V5IHVzaW5n IFBLQ1MxMktERiB3aGljaCBpcyBub3QgRklQUy1hcHByb3ZlZC4KKysjCisrIyBQQkUtU0hBMS0z REVTIHVzZXMgUEtDUzEyS0RGIHdoaWNoIGlzIG5vdCBGSVBTLWFwcHJvdmVkIGFjY29yZGluZyB0 byB0aGUgUkZDCisrIyA3MjkyIFBLQ1MjMTIuCisrIyBodHRwczovL2RhdGF0cmFja2VyLmlldGYu b3JnL2RvYy9odG1sL3JmYzcyOTIjYXBwZW5kaXgtQworKyMgPiBUaGUgUEJFUzEgZW5jcnlwdGlv biBzY2hlbWUgZGVmaW5lZCBpbiBQS0NTICM1IHByb3ZpZGVzIGEgbnVtYmVyIG9mCisrIyA+IGFs Z29yaXRobSBpZGVudGlmaWVycyBmb3IgZGVyaXZpbmcga2V5cyBhbmQgSVZzOyBoZXJlLCB3ZSBz cGVjaWZ5IGEKKysjID4gZmV3IG1vcmUsIGFsbCBvZiB3aGljaCB1c2UgdGhlIHByb2NlZHVyZSBk ZXRhaWxlZCBpbiBBcHBlbmRpY2VzIEIuMgorKyMgPiBhbmQgQi4zIHRvIGNvbnN0cnVjdCBrZXlz IChhbmQgSVZzLCB3aGVyZSBuZWVkZWQpLiAgQXMgaXMgaW1wbGllZCBieQorKyMgPiB0aGVpciBu YW1lcywgYWxsIG9mIHRoZSBvYmplY3QgaWRlbnRpZmllcnMgYmVsb3cgdXNlIHRoZSBoYXNoCisr IyA+IGZ1bmN0aW9uIFNIQS0xLgorKyMgPiAuLi4KKysjID4gcGJlV2l0aFNIQUFuZDMtS2V5VHJp cGxlREVTLUNCQyAgT0JKRUNUIElERU5USUZJRVIgOjo9IHtwa2NzLTEyUGJlSWRzIDN9CisrIwor KyMgTm90ZSB0aGF0IHRoZSBwYmVXaXRoU0hBQW5kMy1LZXlUcmlwbGVERVMtQ0JDIChwa2NzMTIt cGJlaWRzIDMpIGluIHRoZSBSRkMKKysjIDcyOTIgUEtDUyMxMiBtZWFucyBQQkUtU0hBMS0zREVT IGluIE9wZW5TU0wuIFBLQ1MxMktERiBpcyB1c2VkIGluIFBLQ1MjMTIuCisrIyBodHRwczovL29p ZHJlZi5jb20vMS4yLjg0MC4xMTM1NDkuMS4xMi4xLjMKKysjIGh0dHBzOi8vZ2l0aHViLmNvbS9v cGVuc3NsL29wZW5zc2wvYmxvYi9lZDU3ZDFlMDZkY2EyODY4OTE5MGUwMGQ5ODkzZTBmZDdlY2M2 N2MxL2NyeXB0by9vYmplY3RzL29iamVjdHMudHh0I0wzODUKKytyZXR1cm4gaWYgT3BlblNTTC5m aXBzX21vZGUKKysKKyBtb2R1bGUgT3BlblNTTAorICAgY2xhc3MgVGVzdFBLQ1MxMiA8IE9wZW5T U0w6OlRlc3RDYXNlCisgICAgIERFRkFVTFRfUEJFX1BLRVlTID0gIlBCRS1TSEExLTNERVMiCitA QCAtMjEwLDggKzIzMywxMyBAQCBkZWYgdGVzdF9jcmVhdGVfd2l0aF9rZXl0eXBlCisgICAgIGVu ZAorIAorICAgICBkZWYgdGVzdF9uZXdfd2l0aF9ub19rZXlzCistICAgICAgIyBnZW5lcmF0ZWQg d2l0aDoKKy0gICAgICAjICAgb3BlbnNzbCBwa2NzMTIgLWNlcnRwYmUgUEJFLVNIQTEtM0RFUyAt aW4gPEBteWNlcnQ+IC1ub2tleXMgLWV4cG9ydAorKyAgICAgICMgR2VuZXJhdGVkIHdpdGggdGhl IGZvbGxvd2luZyBzdGVwczoKKysgICAgICAjICAgUHJpbnQgdGhlIHZhbHVlIG9mIHRoZSBAbXlj ZXJ0IHN1Y2ggYXMgYnkgYHB1dHMgQG15Y2VydC50b19zYCBhbmQKKysgICAgICAjICAgc2F2ZSB0 aGUgdmFsdWUgYXMgdGhlIGZpbGUgYG15Y2VydC5wZW1gLgorKyAgICAgICMgICBSdW4gdGhlIGZv bGxvd2luZyBjb21tYW5kczoKKysgICAgICAjICAgb3BlbnNzbCBwa2NzMTIgLWNlcnRwYmUgUEJF LVNIQTEtM0RFUyAtaW4gPChjYXQgbXljZXJ0LnBlbSkgXAorKyAgICAgICMgICAgIC1ub2tleXMg LWV4cG9ydCAtcGFzc291dCBwYXNzOmFiYzEyMyAtb3V0IC90bXAvcDEyLm91dAorKyAgICAgICMg ICBiYXNlNjQgLXcgNjAgL3RtcC9wMTIub3V0CisgICAgICAgc3RyID0gPDx+RU9GLnVucGFjazEo Im0iKQorIE1JSUdKQUlCQXpDQ0Jlb0dDU3FHU0liM0RRRUhBYUNDQmRzRWdnWFhNSUlGMHpDQ0Jj OEdDU3FHU0liMworIERRRUhCcUNDQmNBd2dnVzhBZ0VBTUlJRnRRWUpLb1pJaHZjTkFRY0JNQndH Q2lxR1NJYjNEUUVNQVFNdworQEAgLTI1OSw4ICsyODcsMTAgQEAgZGVmIHRlc3RfbmV3X3dpdGhf bm9fa2V5cworICAgICBlbmQKKyAKKyAgICAgZGVmIHRlc3RfbmV3X3dpdGhfbm9fY2VydHMKKy0g ICAgICAjIGdlbmVyYXRlZCB3aXRoOgorLSAgICAgICMgICBvcGVuc3NsIHBrY3MxMiAtaW5rZXkg Zml4dHVyZXMvb3BlbnNzbC9wa2V5L3JzYS0xLnBlbSAtbm9jZXJ0cyAtZXhwb3J0CisrICAgICAg IyBHZW5lcmF0ZWQgd2l0aCB0aGUgZm9sb3dpbmcgc3RlcHM6CisrICAgICAgIyAgIG9wZW5zc2wg cGtjczEyIC1pbmtleSB0ZXN0L29wZW5zc2wvZml4dHVyZXMvcGtleS9yc2EtMS5wZW0gXAorKyAg ICAgICMgICAgIC1ub2NlcnRzIC1leHBvcnQgLXBhc3NvdXQgcGFzczphYmMxMjMgLW91dCAvdG1w L3AxMi5vdXQKKysgICAgICAjICAgYmFzZTY0IC13IDYwIC90bXAvcDEyLm91dAorICAgICAgIHN0 ciA9IDw8fkVPRi51bnBhY2sxKCJtIikKKyBNSUlKN3dJQkF6Q0NDYlVHQ1NxR1NJYjNEUUVIQWFD Q0NhWUVnZ21pTUlJSm5qQ0NDWm9HQ1NxR1NJYjMKKyBEUUVIQWFDQ0NZc0VnZ21ITUlJSmd6Q0ND WDhHQ3lxR1NJYjNEUUVNQ2dFQ29JSUpiakNDQ1dvd0hBWUsKK2RpZmYgLS1naXQgYS90ZXN0L29w ZW5zc2wvdGVzdF9wa2V5X2VjLnJiIGIvdGVzdC9vcGVuc3NsL3Rlc3RfcGtleV9lYy5yYgoraW5k ZXggODgwODViYzY4YzdlZjUuLmVjOTdhNzQ3YTMzYjhiIDEwMDY0NAorLS0tIGEvdGVzdC9vcGVu c3NsL3Rlc3RfcGtleV9lYy5yYgorKysrIGIvdGVzdC9vcGVuc3NsL3Rlc3RfcGtleV9lYy5yYgor QEAgLTM0NSw2ICszNDUsMTUgQEAgZGVmIHRlc3RfZWNfZ3JvdXAKKyAgICAgYXNzZXJ0X2VxdWFs IGdyb3VwMS5kZWdyZWUsIGdyb3VwNC5kZWdyZWUKKyAgIGVuZAorIAorKyAgZGVmIHRlc3RfZWNf Z3JvdXBfaW5pdGlhbGl6ZV9lcnJvcl9tZXNzYWdlCisrICAgICMgVGVzdCB0aGF0IHBhc3Npbmcg MiBhcmd1bWVudHMgcmFpc2VzIHRoZSBoZWxwZnVsIGVycm9yCisrICAgIGUgPSBhc3NlcnRfcmFp c2UoQXJndW1lbnRFcnJvcikgZG8KKysgICAgICBPcGVuU1NMOjpQS2V5OjpFQzo6R3JvdXAubmV3 KDpHRnAsIDEyMykKKysgICAgZW5kCisrCisrICAgIGFzc2VydF9lcXVhbCgid3JvbmcgbnVtYmVy IG9mIGFyZ3VtZW50cyAoZ2l2ZW4gMiwgZXhwZWN0ZWQgMSBvciA0KSIsIGUubWVzc2FnZSkKKysg IGVuZAorKworICAgZGVmIHRlc3RfZWNfcG9pbnQKKyAgICAgZ3JvdXAgPSBPcGVuU1NMOjpQS2V5 OjpFQzo6R3JvdXAubmV3KCJwcmltZTI1NnYxIikKKyAgICAga2V5ID0gT3BlblNTTDo6UEtleTo6 RUMuZ2VuZXJhdGUoZ3JvdXApCitkaWZmIC0tZ2l0IGEvdGVzdC9vcGVuc3NsL3Rlc3Rfc3NsLnJi IGIvdGVzdC9vcGVuc3NsL3Rlc3Rfc3NsLnJiCitpbmRleCA1ZDIwY2NkMWY0YjJlNC4uY2UxYjJj MWU5NjZmZDAgMTAwNjQ0CistLS0gYS90ZXN0L29wZW5zc2wvdGVzdF9zc2wucmIKKysrKyBiL3Rl c3Qvb3BlbnNzbC90ZXN0X3NzbC5yYgorQEAgLTM1NSw2ICszNTUsMjIgQEAgZGVmIHRlc3Rfc3lu Y19jbG9zZQorICAgICBlbmQKKyAgIGVuZAorIAorKyAgZGVmIHRlc3Rfc3luY19jbG9zZV9pbml0 aWFsaXplX29wdAorKyAgICBzdGFydF9zZXJ2ZXIgZG8gfHBvcnR8CisrICAgICAgYmVnaW4KKysg ICAgICAgIHNvY2sgPSBUQ1BTb2NrZXQubmV3KCIxMjcuMC4wLjEiLCBwb3J0KQorKyAgICAgICAg c3NsID0gT3BlblNTTDo6U1NMOjpTU0xTb2NrZXQubmV3KHNvY2ssIHN5bmNfY2xvc2U6IHRydWUp CisrICAgICAgICBhc3NlcnRfZXF1YWwgdHJ1ZSwgc3NsLnN5bmNfY2xvc2UKKysgICAgICAgIHNz bC5jb25uZWN0CisrICAgICAgICBzc2wucHV0cyAiYWJjIjsgYXNzZXJ0X2VxdWFsICJhYmNcbiIs IHNzbC5nZXRzCisrICAgICAgICBzc2wuY2xvc2UKKysgICAgICAgIGFzc2VydF9wcmVkaWNhdGUg c29jaywgOmNsb3NlZD8KKysgICAgICBlbnN1cmUKKysgICAgICAgIHNvY2smLmNsb3NlCisrICAg ICAgZW5kCisrICAgIGVuZAorKyAgZW5kCisrCisgICBkZWYgdGVzdF9jb3B5X3N0cmVhbQorICAg ICBzdGFydF9zZXJ2ZXIgZG8gfHBvcnR8CisgICAgICAgc2VydmVyX2Nvbm5lY3QocG9ydCkgZG8g fHNzbHwKK0BAIC0xMDY0LDM2ICsxMDgwLDQ2IEBAIGRlZiB0ZXN0X3Rsc2V4dF9ob3N0bmFtZQor ICAgICBlbmQKKyAgIGVuZAorIAorLSAgZGVmIHRlc3Rfc2VydmVybmFtZV9jYl9yYWlzZXNfYW5f ZXhjZXB0aW9uX29uX3Vua25vd25fb2JqZWN0cworLSAgICBob3N0bmFtZSA9ICdleGFtcGxlLm9y ZycKKy0KKy0gICAgY3R4MiA9IE9wZW5TU0w6OlNTTDo6U1NMQ29udGV4dC5uZXcKKy0gICAgY3R4 Mi5jZXJ0ID0gQHN2cl9jZXJ0CistICAgIGN0eDIua2V5ID0gQHN2cl9rZXkKKy0gICAgY3R4Mi5z ZXJ2ZXJuYW1lX2NiID0gbGFtYmRhIHsgfGFyZ3N8IE9iamVjdC5uZXcgfQorLQorKyAgZGVmIHRl c3Rfc2VydmVybmFtZV9jYl9leGNlcHRpb24KKyAgICAgc29jazEsIHNvY2syID0gc29ja2V0cGFp cgorIAorKyAgICB0ID0gVGhyZWFkLm5ldyB7CisrICAgICAgczEgPSBPcGVuU1NMOjpTU0w6OlNT TFNvY2tldC5uZXcoc29jazEpCisrICAgICAgczEuaG9zdG5hbWUgPSAibG9jYWxob3N0IgorKyAg ICAgIGFzc2VydF9yYWlzZV93aXRoX21lc3NhZ2UoT3BlblNTTDo6U1NMOjpTU0xFcnJvciwgL3Vu cmVjb2duaXplZC5uYW1lL2kpIHsKKysgICAgICAgIHMxLmNvbm5lY3QKKysgICAgICB9CisrICAg IH0KKysKKysgICAgY3R4MiA9IE9wZW5TU0w6OlNTTDo6U1NMQ29udGV4dC5uZXcKKysgICAgY3R4 Mi5zZXJ2ZXJuYW1lX2NiID0gbGFtYmRhIHsgfGFyZ3N8IHJhaXNlIFJ1bnRpbWVFcnJvciwgImZv byIgfQorICAgICBzMiA9IE9wZW5TU0w6OlNTTDo6U1NMU29ja2V0Lm5ldyhzb2NrMiwgY3R4MikK KysgICAgYXNzZXJ0X3JhaXNlX3dpdGhfbWVzc2FnZShSdW50aW1lRXJyb3IsICJmb28iKSB7IHMy LmFjY2VwdCB9CisrICAgIGFzc2VydCB0LmpvaW4KKysgIGVuc3VyZQorKyAgICBzb2NrMS5jbG9z ZQorKyAgICBzb2NrMi5jbG9zZQorKyAgICB0LmtpbGwuam9pbgorKyAgZW5kCisgCistICAgIGN0 eDEgPSBPcGVuU1NMOjpTU0w6OlNTTENvbnRleHQubmV3CisrICBkZWYgdGVzdF9zZXJ2ZXJuYW1l X2NiX3JhaXNlc19hbl9leGNlcHRpb25fb25fdW5rbm93bl9vYmplY3RzCisrICAgIHNvY2sxLCBz b2NrMiA9IHNvY2tldHBhaXIKKyAKKy0gICAgczEgPSBPcGVuU1NMOjpTU0w6OlNTTFNvY2tldC5u ZXcoc29jazEsIGN0eDEpCistICAgIHMxLmhvc3RuYW1lID0gaG9zdG5hbWUKKyAgICAgdCA9IFRo cmVhZC5uZXcgeworLSAgICAgIGFzc2VydF9yYWlzZShPcGVuU1NMOjpTU0w6OlNTTEVycm9yKSBk bworLSAgICAgICAgczEuY29ubmVjdAorLSAgICAgIGVuZAorKyAgICAgIHMxID0gT3BlblNTTDo6 U1NMOjpTU0xTb2NrZXQubmV3KHNvY2sxKQorKyAgICAgIHMxLmhvc3RuYW1lID0gImxvY2FsaG9z dCIKKysgICAgICBhc3NlcnRfcmFpc2UoT3BlblNTTDo6U1NMOjpTU0xFcnJvcikgeyBzMS5jb25u ZWN0IH0KKyAgICAgfQorIAorLSAgICBhc3NlcnRfcmFpc2UoQXJndW1lbnRFcnJvcikgZG8KKy0g ICAgICBzMi5hY2NlcHQKKy0gICAgZW5kCistCisrICAgIGN0eDIgPSBPcGVuU1NMOjpTU0w6OlNT TENvbnRleHQubmV3CisrICAgIGN0eDIuc2VydmVybmFtZV9jYiA9IGxhbWJkYSB7IHxhcmdzfCBP YmplY3QubmV3IH0KKysgICAgczIgPSBPcGVuU1NMOjpTU0w6OlNTTFNvY2tldC5uZXcoc29jazIs IGN0eDIpCisrICAgIGFzc2VydF9yYWlzZShBcmd1bWVudEVycm9yKSB7IHMyLmFjY2VwdCB9Cisg ICAgIGFzc2VydCB0LmpvaW4KKyAgIGVuc3VyZQorLSAgICBzb2NrMS5jbG9zZSBpZiBzb2NrMQor LSAgICBzb2NrMi5jbG9zZSBpZiBzb2NrMgorKyAgICBzb2NrMS5jbG9zZQorKyAgICBzb2NrMi5j bG9zZQorKyAgICB0LmtpbGwuam9pbgorICAgZW5kCisgCisgICBkZWYgdGVzdF9hY2NlcHRfZXJy b3JzX2luY2x1ZGVfcGVlcmFkZHIKKworRnJvbSA3MmUzMzgxM2FkNWZhODY2YmYzNDMxMjc3MDQ5 ODE5MzNkMjYxOTFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2F6dWtpIFlhbWFn dWNoaSA8a0ByaGUuanA+CitEYXRlOiBUaHUsIDE0IE1heSAyMDI2IDAwOjQ3OjE1ICswOTAwCitT dWJqZWN0OiBbUEFUQ0ggMi8yXSBNZXJnZSBvcGVuc3NsLTQuMC4yCisKK1RoZSBjaGFuZ2VzIGNh biBiZSBmb3VuZCBhdDoKKworICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L29wZW5zc2wvY29t cGFyZS92NC4wLjEuLi52NC4wLjIKKy0tLQorIGV4dC9vcGVuc3NsL0hpc3RvcnkubWQgICAgICAg ICAgICAgfCAyMiArKysrKysrKysKKyBleHQvb3BlbnNzbC9leHRjb25mLnJiICAgICAgICAgICAg IHwgIDMgKysKKyBleHQvb3BlbnNzbC9saWIvb3BlbnNzbC92ZXJzaW9uLnJiIHwgIDIgKy0KKyBl eHQvb3BlbnNzbC9vcGVuc3NsLmdlbXNwZWMgICAgICAgIHwgIDIgKy0KKyBleHQvb3BlbnNzbC9v cGVuc3NsX21pc3NpbmcuaCAgICAgIHwgMjMgKysrKysrKysrKworIGV4dC9vcGVuc3NsL29zc2wu YyAgICAgICAgICAgICAgICAgfCAyMiArKysrKysrLS0KKyBleHQvb3BlbnNzbC9vc3NsX2FzbjEu YyAgICAgICAgICAgIHwgNDcgKysrKysrKysrKy0tLS0tLS0tLQorIGV4dC9vcGVuc3NsL29zc2xf YmlvLmMgICAgICAgICAgICAgfCAgNiArKy0KKyBleHQvb3BlbnNzbC9vc3NsX29jc3AuYyAgICAg ICAgICAgIHwgIDUgKy0KKyBleHQvb3BlbnNzbC9vc3NsX3BrZXkuaCAgICAgICAgICAgIHwgIDEg LQorIGV4dC9vcGVuc3NsL29zc2xfdHMuYyAgICAgICAgICAgICAgfCAgMiArLQorIGV4dC9vcGVu c3NsL29zc2xfeDUwOS5oICAgICAgICAgICAgfCAxMiArKy0tLQorIGV4dC9vcGVuc3NsL29zc2xf eDUwOWF0dHIuYyAgICAgICAgfCAgOSArKy0tCisgZXh0L29wZW5zc2wvb3NzbF94NTA5Y2VydC5j ICAgICAgICB8IDEyICsrLS0tCisgZXh0L29wZW5zc2wvb3NzbF94NTA5Y3JsLmMgICAgICAgICB8 IDEwICsrLS0KKyBleHQvb3BlbnNzbC9vc3NsX3g1MDlleHQuYyAgICAgICAgIHwgMTkgKysrKysr LS0KKyBleHQvb3BlbnNzbC9vc3NsX3g1MDluYW1lLmMgICAgICAgIHwgIDUgKy0KKyBleHQvb3Bl bnNzbC9vc3NsX3g1MDlyZXEuYyAgICAgICAgIHwgIDQgKy0KKyBleHQvb3BlbnNzbC9vc3NsX3g1 MDlyZXZva2VkLmMgICAgIHwgIDcgKy0tCisgZXh0L29wZW5zc2wvb3NzbF94NTA5c3RvcmUuYyAg ICAgICB8IDEwICsrLS0KKyB0ZXN0L29wZW5zc2wvdGVzdF9vc3NsLnJiICAgICAgICAgIHwgMTAg KysrKworIHRlc3Qvb3BlbnNzbC90ZXN0X3BrZXlfcnNhLnJiICAgICAgfCA3NCArKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0KKyB0ZXN0L29wZW5zc2wvdGVzdF9zc2wucmIgICAgICAgICAg IHwgIDggKysrLQorIDIzIGZpbGVzIGNoYW5nZWQsIDIwMyBpbnNlcnRpb25zKCspLCAxMTIgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9IaXN0b3J5Lm1kIGIvZXh0L29w ZW5zc2wvSGlzdG9yeS5tZAoraW5kZXggYzc4YzdlNDYzMzRkZGIuLmNlMDFiM2UwZjIxNTg5IDEw MDY0NAorLS0tIGEvZXh0L29wZW5zc2wvSGlzdG9yeS5tZAorKysrIGIvZXh0L29wZW5zc2wvSGlz dG9yeS5tZAorQEAgLTEsMyArMSw5IEBACisrVmVyc2lvbiA0LjAuMgorKz09PT09PT09PT09PT0K KysKKytNZXJnZWQgY2hhbmdlcyBpbiAzLjIuNCBhbmQgMy4zLjMuCisrCisrCisgVmVyc2lvbiA0 LjAuMQorID09PT09PT09PT09PT0KKyAKK0BAIC0xMDMsNiArMTA5LDEyIEBAIE5vdGFibGUgY2hh bmdlcworICAgW1tHaXRIdWIgIzk4M11dKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L29wZW5zc2wv cHVsbC85ODMpCisgCisgCisrVmVyc2lvbiAzLjMuMworKz09PT09PT09PT09PT0KKysKKytNZXJn ZWQgY2hhbmdlcyBpbiAzLjIuNC4KKysKKysKKyBWZXJzaW9uIDMuMy4yCisgPT09PT09PT09PT09 PQorIAorQEAgLTE5MSw2ICsyMDMsMTYgQEAgQW5kIHZhcmlvdXMgbm9uLXVzZXItdmlzaWJsZSBj aGFuZ2VzIGFuZCBidWcgZml4ZXMuIFBsZWFzZSBzZWUgdGhlIGNvbW1pdAorIGhpc3RvcnkgZm9y IG1vcmUgZGV0YWlscy4KKyAKKyAKKytWZXJzaW9uIDMuMi40CisrPT09PT09PT09PT09PQorKwor K05vdGFibGUgY2hhbmdlcworKy0tLS0tLS0tLS0tLS0tLQorKworKyogQWRkIHN1cHBvcnQgZm9y IE9wZW5TU0wgNC4wLgorKyAgW1tHaXRIdWIgIzEwNTFdXShodHRwczovL2dpdGh1Yi5jb20vcnVi eS9vcGVuc3NsL3B1bGwvMTA1MSkKKysKKysKKyBWZXJzaW9uIDMuMi4zCisgPT09PT09PT09PT09 PQorIAorZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL2V4dGNvbmYucmIgYi9leHQvb3BlbnNzbC9l eHRjb25mLnJiCitpbmRleCBhODk3Yzg2YjY1N2U5Yy4uMDZlZDRmNmFjMzM0ZGQgMTAwNjQ0Cist LS0gYS9leHQvb3BlbnNzbC9leHRjb25mLnJiCisrKysgYi9leHQvb3BlbnNzbC9leHRjb25mLnJi CitAQCAtMTY5LDYgKzE2OSw5IEBAIGRlZiBmaW5kX29wZW5zc2xfbGlicmFyeQorICMgYWRkZWQg aW4gMy41LjAKKyBoYXZlX2Z1bmMoIlNTTF9nZXQwX3BlZXJfc2lnbmF0dXJlX25hbWUoTlVMTCwg TlVMTCkiLCBzc2xfaCkKKyAKKysjIGFkZGVkIGluIDQuMC4wCisraGF2ZV9mdW5jKCJBU04xX0JJ VF9TVFJJTkdfc2V0MShOVUxMLCBOVUxMLCAwLCAwKSIsICJvcGVuc3NsL2FzbjEuaCIpCisrCisg TG9nZ2luZzo6bWVzc2FnZSAiPT09IENoZWNraW5nIGRvbmUuID09PVxuIgorIAorICMgQXBwZW5k IGZsYWdzIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzLgorZGlmZiAtLWdpdCBhL2V4dC9vcGVu c3NsL2xpYi9vcGVuc3NsL3ZlcnNpb24ucmIgYi9leHQvb3BlbnNzbC9saWIvb3BlbnNzbC92ZXJz aW9uLnJiCitpbmRleCA0NWMxNTBiZTExMDViYS4uMzk1YTcyMGEzMTMzNzIgMTAwNjQ0CistLS0g YS9leHQvb3BlbnNzbC9saWIvb3BlbnNzbC92ZXJzaW9uLnJiCisrKysgYi9leHQvb3BlbnNzbC9s aWIvb3BlbnNzbC92ZXJzaW9uLnJiCitAQCAtMiw1ICsyLDUgQEAKKyAKKyBtb2R1bGUgT3BlblNT TAorICAgIyBUaGUgdmVyc2lvbiBzdHJpbmcgb2YgUnVieS9PcGVuU1NMLgorLSAgVkVSU0lPTiA9 ICI0LjAuMSIKKysgIFZFUlNJT04gPSAiNC4wLjIiCisgZW5kCitkaWZmIC0tZ2l0IGEvZXh0L29w ZW5zc2wvb3BlbnNzbC5nZW1zcGVjIGIvZXh0L29wZW5zc2wvb3BlbnNzbC5nZW1zcGVjCitpbmRl eCBjNTk0YzZmMTc3NjUzOC4uYWYxNzc1ZTNiMDdiNzEgMTAwNjQ0CistLS0gYS9leHQvb3BlbnNz bC9vcGVuc3NsLmdlbXNwZWMKKysrKyBiL2V4dC9vcGVuc3NsL29wZW5zc2wuZ2Vtc3BlYworQEAg LTEsNiArMSw2IEBACisgR2VtOjpTcGVjaWZpY2F0aW9uLm5ldyBkbyB8c3BlY3wKKyAgIHNwZWMu bmFtZSAgICAgICAgICA9ICJvcGVuc3NsIgorLSAgc3BlYy52ZXJzaW9uICAgICAgID0gIjQuMC4x IgorKyAgc3BlYy52ZXJzaW9uICAgICAgID0gIjQuMC4yIgorICAgc3BlYy5hdXRob3JzICAgICAg ID0gWyJNYXJ0aW4gQm9zc2xldCIsICJTSElCQVRBIEhpcm9zaGkiLCAiWmFjaGFyeSBTY290dCIs ICJLYXp1a2kgWWFtYWd1Y2hpIl0KKyAgIHNwZWMuZW1haWwgICAgICAgICA9IFsicnVieS1jb3Jl QHJ1YnktbGFuZy5vcmciXQorICAgc3BlYy5zdW1tYXJ5ICAgICAgID0gJXF7U1NML1RMUyBhbmQg Z2VuZXJhbC1wdXJwb3NlIGNyeXB0b2dyYXBoeSBmb3IgUnVieX0KK2RpZmYgLS1naXQgYS9leHQv b3BlbnNzbC9vcGVuc3NsX21pc3NpbmcuaCBiL2V4dC9vcGVuc3NsL29wZW5zc2xfbWlzc2luZy5o CitpbmRleCA2NTkyZjljY2VhZjcxNC4uZWQzYjViN2MwZjU2MTEgMTAwNjQ0CistLS0gYS9leHQv b3BlbnNzbC9vcGVuc3NsX21pc3NpbmcuaAorKysrIGIvZXh0L29wZW5zc2wvb3BlbnNzbF9taXNz aW5nLmgKK0BAIC0yOSw0ICsyOSwyNyBAQAorICMgIGRlZmluZSBFVlBfUEtFWV9lcShhLCBiKSBF VlBfUEtFWV9jbXAoYSwgYikKKyAjZW5kaWYKKyAKKysvKiBhZGRlZCBpbiA0LjAuMCAqLworKyNp Zm5kZWYgSEFWRV9BU04xX0JJVF9TVFJJTkdfU0VUMQorK3N0YXRpYyBpbmxpbmUgaW50CisrQVNO MV9CSVRfU1RSSU5HX3NldDEoQVNOMV9CSVRfU1RSSU5HICpiaXRzdHIsIGNvbnN0IHVpbnQ4X3Qg KmRhdGEsCisrICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwgaW50IHVudXNlZF9i aXRzKQorK3sKKysgICAgaWYgKGxlbmd0aCA+IElOVF9NQVggfHwgIUFTTjFfU1RSSU5HX3NldChi aXRzdHIsIGRhdGEsIChpbnQpbGVuZ3RoKSkKKysgICAgICAgIHJldHVybiAwOworKyAgICBiaXRz dHItPmZsYWdzICY9IH4oQVNOMV9TVFJJTkdfRkxBR19CSVRTX0xFRlQgfCAweDA3KTsKKysgICAg Yml0c3RyLT5mbGFncyB8PSBBU04xX1NUUklOR19GTEFHX0JJVFNfTEVGVCB8IHVudXNlZF9iaXRz OworKyAgICByZXR1cm4gMTsKKyt9CisrCisrc3RhdGljIGlubGluZSBpbnQKKytBU04xX0JJVF9T VFJJTkdfZ2V0X2xlbmd0aChjb25zdCBBU04xX0JJVF9TVFJJTkcgKmJpdHN0ciwgc2l6ZV90ICps ZW5ndGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICp1bnVzZWRfYml0cykKKyt7 CisrICAgICpsZW5ndGggPSBiaXRzdHItPmxlbmd0aDsKKysgICAgKnVudXNlZF9iaXRzID0gYml0 c3RyLT5mbGFncyAmIDB4MDc7CisrICAgIHJldHVybiAxOworK30KKysjZW5kaWYKKysKKyAjZW5k aWYgLyogX09TU0xfT1BFTlNTTF9NSVNTSU5HX0hfICovCitkaWZmIC0tZ2l0IGEvZXh0L29wZW5z c2wvb3NzbC5jIGIvZXh0L29wZW5zc2wvb3NzbC5jCitpbmRleCA5ODEyN2ZjYmEwMjMxNC4uNTcx NmU2ZjEwMDI4MjAgMTAwNjQ0CistLS0gYS9leHQvb3BlbnNzbC9vc3NsLmMKKysrKyBiL2V4dC9v cGVuc3NsL29zc2wuYworQEAgLTM0LDcgKzM0LDExIEBAIG9zc2xfIyNuYW1lIyNfYXJ5MnNrMChW QUxVRSBhcnkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAg ICAgICAgICAgICAiIG9mIGNsYXNzICMjdHlwZSMjIik7ICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICAgeCA9IGR1cCh2YWwpOyAvKiBORUVEIFRPIERVUCAqLyAgICAgICAg ICAgICAgICAgICAgICAgICBcCistICAgICAgICBza18jI3R5cGUjI19wdXNoKHNrLCB4KTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgIGlmICghc2tfIyN0eXBlIyNf cHVzaChzaywgeCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgICAgIHR5 cGUjI19mcmVlKHgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAg ICAgICAgICAgc2tfIyN0eXBlIyNfcG9wX2ZyZWUoc2ssIHR5cGUjI19mcmVlKTsgICAgICAgICAg ICAgIFwKKysgICAgICAgICAgICBvc3NsX3JhaXNlKGVPU1NMRXJyb3IsIE5VTEwpOyAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgIH0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgcmV0dXJuIChWQUxV RSlzazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorIH0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCitAQCAtNTIzLDEwICs1MjcsMTggQEAgb3NzbF9maXBzX21vZGVfc2V0KFZBTFVFIHNlbGYs IFZBTFVFIGVuYWJsZWQpCisgc3RhdGljIFZBTFVFCisgb3NzbF9jcnlwdG9fZml4ZWRfbGVuZ3Ro X3NlY3VyZV9jb21wYXJlKFZBTFVFIGR1bW15LCBWQUxVRSBzdHIxLCBWQUxVRSBzdHIyKQorIHsK Ky0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqcDEgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKVN0 cmluZ1ZhbHVlUHRyKHN0cjEpOworLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwMiA9IChjb25z dCB1bnNpZ25lZCBjaGFyICopU3RyaW5nVmFsdWVQdHIoc3RyMik7CistICAgIGxvbmcgbGVuMSA9 IFJTVFJJTkdfTEVOKHN0cjEpOworLSAgICBsb25nIGxlbjIgPSBSU1RSSU5HX0xFTihzdHIyKTsK KysgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcDE7CisrICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIg KnAyOworKyAgICBsb25nIGxlbjE7CisrICAgIGxvbmcgbGVuMjsKKysKKysgICAgU3RyaW5nVmFs dWUoc3RyMSk7CisrICAgIFN0cmluZ1ZhbHVlKHN0cjIpOworKworKyAgICBwMSA9IChjb25zdCB1 bnNpZ25lZCBjaGFyICopUlNUUklOR19QVFIoc3RyMSk7CisrICAgIHAyID0gKGNvbnN0IHVuc2ln bmVkIGNoYXIgKilSU1RSSU5HX1BUUihzdHIyKTsKKysgICAgbGVuMSA9IFJTVFJJTkdfTEVOKHN0 cjEpOworKyAgICBsZW4yID0gUlNUUklOR19MRU4oc3RyMik7CisgCisgICAgIGlmIChsZW4xICE9 IGxlbjIpIHsKKyAgICAgICAgIG9zc2xfcmFpc2UocmJfZUFyZ0Vycm9yLCAiaW5wdXRzIG11c3Qg YmUgb2YgZXF1YWwgbGVuZ3RoIik7CitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvb3NzbF9hc24x LmMgYi9leHQvb3BlbnNzbC9vc3NsX2FzbjEuYworaW5kZXggNzFhODdmMDQ2MzZjOTguLjY3YzAz YjdmOThhOTUyIDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3NzbF9hc24xLmMKKysrKyBiL2V4 dC9vcGVuc3NsL29zc2xfYXNuMS5jCitAQCAtMTMwLDE1ICsxMzAsMTcgQEAgYXNuMWludGVnZXJf dG9fbnVtKGNvbnN0IEFTTjFfSU5URUdFUiAqYWkpCisgICAgIGlmICghYWkpIHsKKyAgICAgICAg IG9zc2xfcmFpc2UocmJfZVR5cGVFcnJvciwgIkFTTjFfSU5URUdFUiBpcyBOVUxMISIpOworICAg ICB9CisrCisrICAgIG51bSA9IG9zc2xfYm5fbmV3KEJOX3ZhbHVlX29uZSgpKTsKKysgICAgYm4g PSBHZXRCTlB0cihudW0pOworKworICAgICBpZiAoQVNOMV9TVFJJTkdfdHlwZShhaSkgPT0gVl9B U04xX0VOVU1FUkFURUQpCistICAgICAgICBibiA9IEFTTjFfRU5VTUVSQVRFRF90b19CTihhaSwg TlVMTCk7CisrICAgICAgICBibiA9IEFTTjFfRU5VTUVSQVRFRF90b19CTihhaSwgYm4pOworICAg ICBlbHNlCistICAgICAgICBibiA9IEFTTjFfSU5URUdFUl90b19CTihhaSwgTlVMTCk7CisrICAg ICAgICBibiA9IEFTTjFfSU5URUdFUl90b19CTihhaSwgYm4pOworIAorICAgICBpZiAoIWJuKQor ICAgICAgICAgb3NzbF9yYWlzZShlT1NTTEVycm9yLCBOVUxMKTsKKy0gICAgbnVtID0gb3NzbF9i bl9uZXcoYm4pOworLSAgICBCTl9mcmVlKGJuKTsKKyAKKyAgICAgcmV0dXJuIG51bTsKKyB9CitA QCAtMjI2LDcgKzIyOCw3IEBAIG9ial90b19hc24xaW50KFZBTFVFIG9iaikKKyB9CisgCisgc3Rh dGljIEFTTjFfQklUX1NUUklORyoKKy1vYmpfdG9fYXNuMWJzdHIoVkFMVUUgb2JqLCBsb25nIHVu dXNlZF9iaXRzKQorK29ial90b19hc24xYnN0cihWQUxVRSBvYmosIGludCB1bnVzZWRfYml0cykK KyB7CisgICAgIEFTTjFfQklUX1NUUklORyAqYnN0cjsKKyAKK0BAIC0yMzQsMTEgKzIzNiwxMSBA QCBvYmpfdG9fYXNuMWJzdHIoVkFMVUUgb2JqLCBsb25nIHVudXNlZF9iaXRzKQorICAgICAgICAg b3NzbF9yYWlzZShlQVNOMUVycm9yLCAidW51c2VkX2JpdHMgZm9yIGEgYml0c3RyaW5nIHZhbHVl IG11c3QgYmUgaW4gIlwKKyAgICAgICAgICAgICAgICAgICAgInRoZSByYW5nZSAwIHRvIDciKTsK KyAgICAgU3RyaW5nVmFsdWUob2JqKTsKKy0gICAgaWYoIShic3RyID0gQVNOMV9CSVRfU1RSSU5H X25ldygpKSkKKy0gICAgICAgIG9zc2xfcmFpc2UoZUFTTjFFcnJvciwgTlVMTCk7CistICAgIEFT TjFfQklUX1NUUklOR19zZXQoYnN0ciwgKHVuc2lnbmVkIGNoYXIgKilSU1RSSU5HX1BUUihvYmop LCBSU1RSSU5HX0xFTklOVChvYmopKTsKKy0gICAgYnN0ci0+ZmxhZ3MgJj0gfihBU04xX1NUUklO R19GTEFHX0JJVFNfTEVGVHwweDA3KTsgLyogY2xlYXIgKi8KKy0gICAgYnN0ci0+ZmxhZ3MgfD0g QVNOMV9TVFJJTkdfRkxBR19CSVRTX0xFRlQgfCB1bnVzZWRfYml0czsKKysgICAgaWYgKCEoYnN0 ciA9IEFTTjFfQklUX1NUUklOR19uZXcoKSkpCisrICAgICAgICBvc3NsX3JhaXNlKGVBU04xRXJy b3IsICJBU04xX0JJVF9TVFJJTkdfbmV3Iik7CisrICAgIGlmICghQVNOMV9CSVRfU1RSSU5HX3Nl dDEoYnN0ciwgKHVpbnQ4X3QgKilSU1RSSU5HX1BUUihvYmopLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJTVFJJTkdfTEVOKG9iaiksIHVudXNlZF9iaXRzKSkKKysgICAgICAgIG9z c2xfcmFpc2UoZUFTTjFFcnJvciwgIkFTTjFfQklUX1NUUklOR19zZXQxIik7CisgCisgICAgIHJl dHVybiBic3RyOworIH0KK0BAIC0zNjIsMjIgKzM2NCwyNSBAQCBkZWNvZGVfaW50KHVuc2lnbmVk IGNoYXIqIGRlciwgbG9uZyBsZW5ndGgpCisgfQorIAorIHN0YXRpYyBWQUxVRQorLWRlY29kZV9i c3RyKHVuc2lnbmVkIGNoYXIqIGRlciwgbG9uZyBsZW5ndGgsIGxvbmcgKnVudXNlZF9iaXRzKQor K2RlY29kZV9ic3RyKHVuc2lnbmVkIGNoYXIqIGRlciwgbG9uZyBsZW5ndGgsIGludCAqdW51c2Vk X2JpdHMpCisgeworICAgICBBU04xX0JJVF9TVFJJTkcgKmJzdHI7CisgICAgIGNvbnN0IHVuc2ln bmVkIGNoYXIgKnA7CistICAgIGxvbmcgbGVuOworKyAgICBzaXplX3QgbGVuOworICAgICBWQUxV RSByZXQ7CisrICAgIGludCBzdGF0ZTsKKyAKKyAgICAgcCA9IGRlcjsKKy0gICAgaWYoIShic3Ry ID0gZDJpX0FTTjFfQklUX1NUUklORyhOVUxMLCAmcCwgbGVuZ3RoKSkpCistICAgICAgICBvc3Ns X3JhaXNlKGVBU04xRXJyb3IsIE5VTEwpOworLSAgICBsZW4gPSBic3RyLT5sZW5ndGg7CistICAg ICp1bnVzZWRfYml0cyA9IDA7CistICAgIGlmKGJzdHItPmZsYWdzICYgQVNOMV9TVFJJTkdfRkxB R19CSVRTX0xFRlQpCistICAgICAgICAqdW51c2VkX2JpdHMgPSBic3RyLT5mbGFncyAmIDB4MDc7 CistICAgIHJldCA9IHJiX3N0cl9uZXcoKGNvbnN0IGNoYXIgKilic3RyLT5kYXRhLCBsZW4pOwor KyAgICBpZiAoIShic3RyID0gZDJpX0FTTjFfQklUX1NUUklORyhOVUxMLCAmcCwgbGVuZ3RoKSkp CisrICAgICAgICBvc3NsX3JhaXNlKGVBU04xRXJyb3IsICJkMmlfQVNOMV9CSVRfU1RSSU5HIik7 CisrICAgIGlmICghQVNOMV9CSVRfU1RSSU5HX2dldF9sZW5ndGgoYnN0ciwgJmxlbiwgdW51c2Vk X2JpdHMpKSB7CisrICAgICAgICBBU04xX0JJVF9TVFJJTkdfZnJlZShic3RyKTsKKysgICAgICAg IG9zc2xfcmFpc2UoZUFTTjFFcnJvciwgIkFTTjFfQklUX1NUUklOR19nZXRfbGVuZ3RoIik7Cisr ICAgIH0KKysgICAgcmV0ID0gb3NzbF9zdHJfbmV3KChjb25zdCBjaGFyICopQVNOMV9TVFJJTkdf Z2V0MF9kYXRhKGJzdHIpLCBsZW4sICZzdGF0ZSk7CisgICAgIEFTTjFfQklUX1NUUklOR19mcmVl KGJzdHIpOworKyAgICBpZiAoc3RhdGUpCisrICAgICAgICByYl9qdW1wX3RhZyhzdGF0ZSk7Cisg CisgICAgIHJldHVybiByZXQ7CisgfQorQEAgLTc2MSw3ICs3NjYsNyBAQCBpbnRfb3NzbF9hc24x X2RlY29kZTBfcHJpbSh1bnNpZ25lZCBjaGFyICoqcHAsIGxvbmcgbGVuZ3RoLCBsb25nIGhsZW4s IGludCB0YWcsCisgeworICAgICBWQUxVRSB2YWx1ZSwgYXNuMWRhdGE7CisgICAgIHVuc2lnbmVk IGNoYXIgKnA7CistICAgIGxvbmcgZmxhZyA9IDA7CisrICAgIGludCBmbGFnID0gMDsKKyAKKyAg ICAgcCA9ICpwcDsKKyAKK0BAIC04MTgsNyArODIzLDcgQEAgaW50X29zc2xfYXNuMV9kZWNvZGUw X3ByaW0odW5zaWduZWQgY2hhciAqKnBwLCBsb25nIGxlbmd0aCwgbG9uZyBobGVuLCBpbnQgdGFn LAorICAgICAgICAgYXNuMWRhdGEgPSByYl9vYmpfYWxsb2Moa2xhc3MpOworICAgICAgICAgb3Nz bF9hc24xX2luaXRpYWxpemUoNCwgYXJncywgYXNuMWRhdGEpOworICAgICAgICAgaWYodGFnID09 IFZfQVNOMV9CSVRfU1RSSU5HKXsKKy0gICAgICAgICAgICByYl9pdmFyX3NldChhc24xZGF0YSwg c2l2VU5VU0VEX0JJVFMsIExPTkcyTlVNKGZsYWcpKTsKKysgICAgICAgICAgICByYl9pdmFyX3Nl dChhc24xZGF0YSwgc2l2VU5VU0VEX0JJVFMsIElOVDJOVU0oZmxhZykpOworICAgICAgICAgfQor ICAgICB9CisgICAgIGVsc2UgeworZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29zc2xfYmlvLmMg Yi9leHQvb3BlbnNzbC9vc3NsX2Jpby5jCitpbmRleCA0ZWRkZTUwOTFkMDkzMy4uY2MwM2M1ZDVm NzIwZWIgMTAwNjQ0CistLS0gYS9leHQvb3BlbnNzbC9vc3NsX2Jpby5jCisrKysgYi9leHQvb3Bl bnNzbC9vc3NsX2Jpby5jCitAQCAtMzIsNyArMzIsMTEgQEAgb3NzbF9tZW1iaW8yc3RyKEJJTyAq YmlvKQorICAgICBpbnQgc3RhdGU7CisgICAgIEJVRl9NRU0gKmJ1ZjsKKyAKKy0gICAgQklPX2dl dF9tZW1fcHRyKGJpbywgJmJ1Zik7CisrICAgIGlmIChCSU9fZ2V0X21lbV9wdHIoYmlvLCAmYnVm KSA8PSAwKSB7CisrICAgICAgICBCSU9fZnJlZShiaW8pOworKyAgICAgICAgb3NzbF9yYWlzZShl T1NTTEVycm9yLCAiQklPX2dldF9tZW1fcHRyIik7CisrICAgIH0KKysKKyAgICAgcmV0ID0gb3Nz bF9zdHJfbmV3KGJ1Zi0+ZGF0YSwgYnVmLT5sZW5ndGgsICZzdGF0ZSk7CisgICAgIEJJT19mcmVl KGJpbyk7CisgICAgIGlmIChzdGF0ZSkKK2RpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX29j c3AuYyBiL2V4dC9vcGVuc3NsL29zc2xfb2NzcC5jCitpbmRleCBkZGI2N2ZjZjA3YTdjZS4uOWRk NGI0NjZkMjg0NDMgMTAwNjQ0CistLS0gYS9leHQvb3BlbnNzbC9vc3NsX29jc3AuYworKysrIGIv ZXh0L29wZW5zc2wvb3NzbF9vY3NwLmMKK0BAIC05MjIsNyArOTIyLDcgQEAgb3NzbF9vY3NwYnJl c19nZXRfc3RhdHVzKFZBTFVFIHNlbGYpCisgICAgICAgICBWQUxVRSBleHQgPSByYl9hcnlfbmV3 KCk7CisgICAgICAgICBpbnQgZXh0X2NvdW50ID0gT0NTUF9TSU5HTEVSRVNQX2dldF9leHRfY291 bnQoc2luZ2xlKTsKKyAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZXh0X2NvdW50OyBqKysp IHsKKy0gICAgICAgICAgICBYNTA5X0VYVEVOU0lPTiAqeDUwOWV4dCA9IE9DU1BfU0lOR0xFUkVT UF9nZXRfZXh0KHNpbmdsZSwgaik7CisrICAgICAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04g Kng1MDlleHQgPSBPQ1NQX1NJTkdMRVJFU1BfZ2V0X2V4dChzaW5nbGUsIGopOworICAgICAgICAg ICAgIHJiX2FyeV9wdXNoKGV4dCwgb3NzbF94NTA5ZXh0X25ldyh4NTA5ZXh0KSk7CisgICAgICAg ICB9CisgICAgICAgICByYl9hcnlfcHVzaChhcnksIGV4dCk7CitAQCAtMTM0MSw3ICsxMzQxLDYg QEAgc3RhdGljIFZBTFVFCisgb3NzbF9vY3Nwc3Jlc19nZXRfZXh0ZW5zaW9ucyhWQUxVRSBzZWxm KQorIHsKKyAgICAgT0NTUF9TSU5HTEVSRVNQICpzcmVzOworLSAgICBYNTA5X0VYVEVOU0lPTiAq ZXh0OworICAgICBpbnQgY291bnQsIGk7CisgICAgIFZBTFVFIGFyeTsKKyAKK0BAIC0xMzUwLDcg KzEzNDksNyBAQCBvc3NsX29jc3BzcmVzX2dldF9leHRlbnNpb25zKFZBTFVFIHNlbGYpCisgICAg IGNvdW50ID0gT0NTUF9TSU5HTEVSRVNQX2dldF9leHRfY291bnQoc3Jlcyk7CisgICAgIGFyeSA9 IHJiX2FyeV9uZXcyKGNvdW50KTsKKyAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsK Ky0gICAgICAgIGV4dCA9IE9DU1BfU0lOR0xFUkVTUF9nZXRfZXh0KHNyZXMsIGkpOworKyAgICAg ICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4dCA9IE9DU1BfU0lOR0xFUkVTUF9nZXRfZXh0KHNy ZXMsIGkpOworICAgICAgICAgcmJfYXJ5X3B1c2goYXJ5LCBvc3NsX3g1MDlleHRfbmV3KGV4dCkp OyAvKiB3aWxsIGR1cCAqLworICAgICB9CisgCitkaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvb3Nz bF9wa2V5LmggYi9leHQvb3BlbnNzbC9vc3NsX3BrZXkuaAoraW5kZXggMDIzMzYxYjkwZjIzMDYu LmVmYmEzM2I3NTI5MzczIDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3NzbF9wa2V5LmgKKysr KyBiL2V4dC9vcGVuc3NsL29zc2xfcGtleS5oCitAQCAtNzEsNyArNzEsNiBAQCB2b2lkIEluaXRf b3NzbF9kaCh2b2lkKTsKKyAgKiBFQworICAqLworIGV4dGVybiBWQUxVRSBjRUM7CistVkFMVUUg b3NzbF9lY19uZXcoRVZQX1BLRVkgKik7Cisgdm9pZCBJbml0X29zc2xfZWModm9pZCk7CisgCisg I2RlZmluZSBPU1NMX1BLRVlfQk5fREVGX0dFVFRFUjAoX2tleXR5cGUsIF90eXBlLCBfbmFtZSwg X2dldCkgICAgICAgICAgXAorZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29zc2xfdHMuYyBiL2V4 dC9vcGVuc3NsL29zc2xfdHMuYworaW5kZXggYjMxYTg1NGE2M2U5YWMuLjM5M2UwOGFjZmYwYzFl IDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3NzbF90cy5jCisrKysgYi9leHQvb3BlbnNzbC9v c3NsX3RzLmMKK0BAIC03MDYsNyArNzA2LDcgQEAgb3NzbF90c19yZXNwX2dldF90c2FfY2VydGlm aWNhdGUoVkFMVUUgc2VsZikKKyAgICAgVFNfUkVTUCAqcmVzcDsKKyAgICAgUEtDUzcgKnA3Owor ICAgICBQS0NTN19TSUdORVJfSU5GTyAqdHNfaW5mbzsKKy0gICAgWDUwOSAqY2VydDsKKysgICAg Y29uc3QgWDUwOSAqY2VydDsKKyAKKyAgICAgR2V0VFNSZXNwb25zZShzZWxmLCByZXNwKTsKKyAg ICAgaWYgKCEocDcgPSBUU19SRVNQX2dldF90b2tlbihyZXNwKSkpCitkaWZmIC0tZ2l0IGEvZXh0 L29wZW5zc2wvb3NzbF94NTA5LmggYi9leHQvb3BlbnNzbC9vc3NsX3g1MDkuaAoraW5kZXggZDI1 MTY3ZWU3YjA4NjguLjcxOTMyZWYxYTlhNjQ3IDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3Nz bF94NTA5LmgKKysrKyBiL2V4dC9vcGVuc3NsL29zc2xfeDUwOS5oCitAQCAtMjksNyArMjksNyBA QCB2b2lkIEluaXRfb3NzbF94NTA5KHZvaWQpOworICAqLworIGV4dGVybiBWQUxVRSBjWDUwOUF0 dHI7CisgCistVkFMVUUgb3NzbF94NTA5YXR0cl9uZXcoWDUwOV9BVFRSSUJVVEUgKik7CisrVkFM VUUgb3NzbF94NTA5YXR0cl9uZXcoY29uc3QgWDUwOV9BVFRSSUJVVEUgKik7CisgWDUwOV9BVFRS SUJVVEUgKkdldFg1MDlBdHRyUHRyKFZBTFVFKTsKKyB2b2lkIEluaXRfb3NzbF94NTA5YXR0cih2 b2lkKTsKKyAKK0BAIC0zOCw3ICszOCw3IEBAIHZvaWQgSW5pdF9vc3NsX3g1MDlhdHRyKHZvaWQp OworICAqLworIGV4dGVybiBWQUxVRSBjWDUwOUNlcnQ7CisgCistVkFMVUUgb3NzbF94NTA5X25l dyhYNTA5ICopOworK1ZBTFVFIG9zc2xfeDUwOV9uZXcoY29uc3QgWDUwOSAqKTsKKyBYNTA5ICpH ZXRYNTA5Q2VydFB0cihWQUxVRSk7CisgWDUwOSAqRHVwWDUwOUNlcnRQdHIoVkFMVUUpOworIHZv aWQgSW5pdF9vc3NsX3g1MDljZXJ0KHZvaWQpOworQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBJbml0 X29zc2xfeDUwOWNlcnQodm9pZCk7CisgLyoKKyAgKiBYNTA5Q1JMCisgICovCistVkFMVUUgb3Nz bF94NTA5Y3JsX25ldyhYNTA5X0NSTCAqKTsKKytWQUxVRSBvc3NsX3g1MDljcmxfbmV3KGNvbnN0 IFg1MDlfQ1JMICopOworIFg1MDlfQ1JMICpHZXRYNTA5Q1JMUHRyKFZBTFVFKTsKKyB2b2lkIElu aXRfb3NzbF94NTA5Y3JsKHZvaWQpOworIAorQEAgLTU1LDE0ICs1NSwxNCBAQCB2b2lkIEluaXRf b3NzbF94NTA5Y3JsKHZvaWQpOworICAqLworIGV4dGVybiBWQUxVRSBjWDUwOUV4dDsKKyAKKy1W QUxVRSBvc3NsX3g1MDlleHRfbmV3KFg1MDlfRVhURU5TSU9OICopOworK1ZBTFVFIG9zc2xfeDUw OWV4dF9uZXcoY29uc3QgWDUwOV9FWFRFTlNJT04gKik7CisgWDUwOV9FWFRFTlNJT04gKkdldFg1 MDlFeHRQdHIoVkFMVUUpOworIHZvaWQgSW5pdF9vc3NsX3g1MDlleHQodm9pZCk7CisgCisgLyoK KyAgKiBYNTA5TmFtZQorICAqLworLVZBTFVFIG9zc2xfeDUwOW5hbWVfbmV3KFg1MDlfTkFNRSAq KTsKKytWQUxVRSBvc3NsX3g1MDluYW1lX25ldyhjb25zdCBYNTA5X05BTUUgKik7CisgWDUwOV9O QU1FICpHZXRYNTA5TmFtZVB0cihWQUxVRSk7Cisgdm9pZCBJbml0X29zc2xfeDUwOW5hbWUodm9p ZCk7CisgCitAQCAtNzcsNyArNzcsNyBAQCB2b2lkIEluaXRfb3NzbF94NTA5cmVxKHZvaWQpOwor ICAqLworIGV4dGVybiBWQUxVRSBjWDUwOVJldjsKKyAKKy1WQUxVRSBvc3NsX3g1MDlyZXZva2Vk X25ldyhYNTA5X1JFVk9LRUQgKik7CisrVkFMVUUgb3NzbF94NTA5cmV2b2tlZF9uZXcoY29uc3Qg WDUwOV9SRVZPS0VEICopOworIFg1MDlfUkVWT0tFRCAqRHVwWDUwOVJldm9rZWRQdHIoVkFMVUUp OworIHZvaWQgSW5pdF9vc3NsX3g1MDlyZXZva2VkKHZvaWQpOworIAorZGlmZiAtLWdpdCBhL2V4 dC9vcGVuc3NsL29zc2xfeDUwOWF0dHIuYyBiL2V4dC9vcGVuc3NsL29zc2xfeDUwOWF0dHIuYwor aW5kZXggNDc2OWU1NmUxZTg1MDEuLmIwNzczZTdhN2RjYTI4IDEwMDY0NAorLS0tIGEvZXh0L29w ZW5zc2wvb3NzbF94NTA5YXR0ci5jCisrKysgYi9leHQvb3BlbnNzbC9vc3NsX3g1MDlhdHRyLmMK K0BAIC00OCwxMyArNDgsMTQgQEAgc3RhdGljIGNvbnN0IHJiX2RhdGFfdHlwZV90IG9zc2xfeDUw OWF0dHJfdHlwZSA9IHsKKyAgKiBQdWJsaWMKKyAgKi8KKyBWQUxVRQorLW9zc2xfeDUwOWF0dHJf bmV3KFg1MDlfQVRUUklCVVRFICphdHRyKQorK29zc2xfeDUwOWF0dHJfbmV3KGNvbnN0IFg1MDlf QVRUUklCVVRFICphdHRyKQorIHsKKyAgICAgWDUwOV9BVFRSSUJVVEUgKm5ldzsKKyAgICAgVkFM VUUgb2JqOworIAorICAgICBvYmogPSBOZXdYNTA5QXR0cihjWDUwOUF0dHIpOworLSAgICBuZXcg PSBYNTA5X0FUVFJJQlVURV9kdXAoYXR0cik7CisrICAgIC8qIE9wZW5TU0wgMS4xLjEgdGFrZXMg YSBub24tY29uc3QgcG9pbnRlciAqLworKyAgICBuZXcgPSBYNTA5X0FUVFJJQlVURV9kdXAoKFg1 MDlfQVRUUklCVVRFICopYXR0cik7CisgICAgIGlmICghbmV3KQorICAgICAgICAgb3NzbF9yYWlz ZShlWDUwOUF0dHJFcnJvciwgIlg1MDlfQVRUUklCVVRFX2R1cCIpOworICAgICBTZXRYNTA5QXR0 cihvYmosIG5ldyk7CitAQCAtMTk2LDcgKzE5Nyw3IEBAIG9zc2xfeDUwOWF0dHJfc2V0X3ZhbHVl KFZBTFVFIHNlbGYsIFZBTFVFIHZhbHVlKQorICAgICAgICAgb3NzbF9yYWlzZShlWDUwOUF0dHJF cnJvciwgImF0dHJpYnV0ZSB2YWx1ZSBtdXN0IGJlIEFTTjE6OlNldCIpOworIAorICAgICBpZiAo WDUwOV9BVFRSSUJVVEVfY291bnQoYXR0cikpIHsgLyogcG9wdWxhdGVkLCByZXNldCBmaXJzdCAq LworLSAgICAgICAgQVNOMV9PQkpFQ1QgKm9iaiA9IFg1MDlfQVRUUklCVVRFX2dldDBfb2JqZWN0 KGF0dHIpOworKyAgICAgICAgY29uc3QgQVNOMV9PQkpFQ1QgKm9iaiA9IFg1MDlfQVRUUklCVVRF X2dldDBfb2JqZWN0KGF0dHIpOworICAgICAgICAgWDUwOV9BVFRSSUJVVEUgKm5ld19hdHRyID0g WDUwOV9BVFRSSUJVVEVfY3JlYXRlX2J5X09CSihOVUxMLCBvYmosIDAsIE5VTEwsIC0xKTsKKyAg ICAgICAgIGlmICghbmV3X2F0dHIpIHsKKyAgICAgICAgICAgICBza19BU04xX1RZUEVfcG9wX2Zy ZWUoc2ssIEFTTjFfVFlQRV9mcmVlKTsKK0BAIC0yNDAsNyArMjQxLDcgQEAgb3NzbF94NTA5YXR0 cl9nZXRfdmFsdWUoVkFMVUUgc2VsZikKKyAKKyAgICAgY291bnQgPSBYNTA5X0FUVFJJQlVURV9j b3VudChhdHRyKTsKKyAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCistICAgICAgICBz a19BU04xX1RZUEVfcHVzaChzaywgWDUwOV9BVFRSSUJVVEVfZ2V0MF90eXBlKGF0dHIsIGkpKTsK KysgICAgICAgIHNrX0FTTjFfVFlQRV9wdXNoKHNrLCAoQVNOMV9UWVBFICopWDUwOV9BVFRSSUJV VEVfZ2V0MF90eXBlKGF0dHIsIGkpKTsKKyAKKyAgICAgaWYgKChsZW4gPSBpMmRfQVNOMV9TRVRf QU5ZKHNrLCBOVUxMKSkgPD0gMCkgeworICAgICAgICAgc2tfQVNOMV9UWVBFX2ZyZWUoc2spOwor ZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29zc2xfeDUwOWNlcnQuYyBiL2V4dC9vcGVuc3NsL29z c2xfeDUwOWNlcnQuYworaW5kZXggOTU2NzljN2QyNGVhNzIuLmRlMjQ2NzU5YWI3YWYzIDEwMDY0 NAorLS0tIGEvZXh0L29wZW5zc2wvb3NzbF94NTA5Y2VydC5jCisrKysgYi9leHQvb3BlbnNzbC9v c3NsX3g1MDljZXJ0LmMKK0BAIC00OCwxMyArNDgsMTQgQEAgc3RhdGljIGNvbnN0IHJiX2RhdGFf dHlwZV90IG9zc2xfeDUwOV90eXBlID0geworICAqIFB1YmxpYworICAqLworIFZBTFVFCistb3Nz bF94NTA5X25ldyhYNTA5ICp4NTA5KQorK29zc2xfeDUwOV9uZXcoY29uc3QgWDUwOSAqeDUwOSkK KyB7CisgICAgIFg1MDkgKm5ldzsKKyAgICAgVkFMVUUgb2JqOworIAorICAgICBvYmogPSBOZXdY NTA5KGNYNTA5Q2VydCk7CistICAgIG5ldyA9IFg1MDlfZHVwKHg1MDkpOworKyAgICAvKiBPcGVu U1NMIDEuMS4xIHRha2VzIGEgbm9uLWNvbnN0IHBvaW50ZXIgKi8KKysgICAgbmV3ID0gWDUwOV9k dXAoKFg1MDkgKil4NTA5KTsKKyAgICAgaWYgKCFuZXcpCisgICAgICAgICBvc3NsX3JhaXNlKGVY NTA5Q2VydEVycm9yLCAiWDUwOV9kdXAiKTsKKyAgICAgU2V0WDUwOShvYmosIG5ldyk7CitAQCAt MzQ1LDcgKzM0Niw3IEBAIHN0YXRpYyBWQUxVRQorIG9zc2xfeDUwOV9nZXRfc3ViamVjdChWQUxV RSBzZWxmKQorIHsKKyAgICAgWDUwOSAqeDUwOTsKKy0gICAgWDUwOV9OQU1FICpuYW1lOworKyAg ICBjb25zdCBYNTA5X05BTUUgKm5hbWU7CisgCisgICAgIEdldFg1MDkoc2VsZiwgeDUwOSk7Cisg ICAgIGlmICghKG5hbWUgPSBYNTA5X2dldF9zdWJqZWN0X25hbWUoeDUwOSkpKSB7IC8qIE5PIERV UCAtIGRvbid0IGZyZWUhICovCitAQCAtMzgwLDcgKzM4MSw3IEBAIHN0YXRpYyBWQUxVRQorIG9z c2xfeDUwOV9nZXRfaXNzdWVyKFZBTFVFIHNlbGYpCisgeworICAgICBYNTA5ICp4NTA5OworLSAg ICBYNTA5X05BTUUgKm5hbWU7CisrICAgIGNvbnN0IFg1MDlfTkFNRSAqbmFtZTsKKyAKKyAgICAg R2V0WDUwOShzZWxmLCB4NTA5KTsKKyAgICAgaWYoIShuYW1lID0gWDUwOV9nZXRfaXNzdWVyX25h bWUoeDUwOSkpKSB7IC8qIE5PIERVUCAtIGRvbid0IGZyZWUhICovCitAQCAtNjAzLDE0ICs2MDQs MTMgQEAgb3NzbF94NTA5X2dldF9leHRlbnNpb25zKFZBTFVFIHNlbGYpCisgeworICAgICBYNTA5 ICp4NTA5OworICAgICBpbnQgY291bnQsIGk7CistICAgIFg1MDlfRVhURU5TSU9OICpleHQ7Cisg ICAgIFZBTFVFIGFyeTsKKyAKKyAgICAgR2V0WDUwOShzZWxmLCB4NTA5KTsKKyAgICAgY291bnQg PSBYNTA5X2dldF9leHRfY291bnQoeDUwOSk7CisgICAgIGFyeSA9IHJiX2FyeV9uZXdfY2FwYShj b3VudCk7CisgICAgIGZvciAoaT0wOyBpPGNvdW50OyBpKyspIHsKKy0gICAgICAgIGV4dCA9IFg1 MDlfZ2V0X2V4dCh4NTA5LCBpKTsgLyogTk8gRFVQIC0gZG9uJ3QgZnJlZSEgKi8KKysgICAgICAg IGNvbnN0IFg1MDlfRVhURU5TSU9OICpleHQgPSBYNTA5X2dldF9leHQoeDUwOSwgaSk7CisgICAg ICAgICByYl9hcnlfcHVzaChhcnksIG9zc2xfeDUwOWV4dF9uZXcoZXh0KSk7CisgICAgIH0KKyAK K2RpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX3g1MDljcmwuYyBiL2V4dC9vcGVuc3NsL29z c2xfeDUwOWNybC5jCitpbmRleCBhMjIxNDI5YzM0N2Q1ZS4uOWI1OWJkYTllMmE4YWQgMTAwNjQ0 CistLS0gYS9leHQvb3BlbnNzbC9vc3NsX3g1MDljcmwuYworKysrIGIvZXh0L29wZW5zc2wvb3Nz bF94NTA5Y3JsLmMKK0BAIC01OCwxMyArNTgsMTQgQEAgR2V0WDUwOUNSTFB0cihWQUxVRSBvYmop CisgfQorIAorIFZBTFVFCistb3NzbF94NTA5Y3JsX25ldyhYNTA5X0NSTCAqY3JsKQorK29zc2xf eDUwOWNybF9uZXcoY29uc3QgWDUwOV9DUkwgKmNybCkKKyB7CisgICAgIFg1MDlfQ1JMICp0bXA7 CisgICAgIFZBTFVFIG9iajsKKyAKKyAgICAgb2JqID0gTmV3WDUwOUNSTChjWDUwOUNSTCk7Cist ICAgIHRtcCA9IFg1MDlfQ1JMX2R1cChjcmwpOworKyAgICAvKiBPcGVuU1NMIDEuMS4xIHRha2Vz IGEgbm9uLWNvbnN0IHBvaW50ZXIgKi8KKysgICAgdG1wID0gWDUwOV9DUkxfZHVwKChYNTA5X0NS TCAqKWNybCk7CisgICAgIGlmICghdG1wKQorICAgICAgICAgb3NzbF9yYWlzZShlWDUwOUNSTEVy cm9yLCAiWDUwOV9DUkxfZHVwIik7CisgICAgIFNldFg1MDlDUkwob2JqLCB0bXApOworQEAgLTI4 OSw3ICsyOTAsNyBAQCBvc3NsX3g1MDljcmxfZ2V0X3Jldm9rZWQoVkFMVUUgc2VsZikKKyAgICAg bnVtID0gc2tfWDUwOV9SRVZPS0VEX251bShzayk7CisgICAgIGFyeSA9IHJiX2FyeV9uZXdfY2Fw YShudW0pOworICAgICBmb3IoaT0wOyBpPG51bTsgaSsrKSB7CistICAgICAgICBYNTA5X1JFVk9L RUQgKnJldiA9IHNrX1g1MDlfUkVWT0tFRF92YWx1ZShzaywgaSk7CisrICAgICAgICBjb25zdCBY NTA5X1JFVk9LRUQgKnJldiA9IHNrX1g1MDlfUkVWT0tFRF92YWx1ZShzaywgaSk7CisgICAgICAg ICByYl9hcnlfcHVzaChhcnksIG9zc2xfeDUwOXJldm9rZWRfbmV3KHJldikpOworICAgICB9Cisg CitAQCAtNDQzLDE0ICs0NDQsMTMgQEAgb3NzbF94NTA5Y3JsX2dldF9leHRlbnNpb25zKFZBTFVF IHNlbGYpCisgeworICAgICBYNTA5X0NSTCAqY3JsOworICAgICBpbnQgY291bnQsIGk7CistICAg IFg1MDlfRVhURU5TSU9OICpleHQ7CisgICAgIFZBTFVFIGFyeTsKKyAKKyAgICAgR2V0WDUwOUNS TChzZWxmLCBjcmwpOworICAgICBjb3VudCA9IFg1MDlfQ1JMX2dldF9leHRfY291bnQoY3JsKTsK KyAgICAgYXJ5ID0gcmJfYXJ5X25ld19jYXBhKGNvdW50KTsKKyAgICAgZm9yIChpPTA7IGk8Y291 bnQ7IGkrKykgeworLSAgICAgICAgZXh0ID0gWDUwOV9DUkxfZ2V0X2V4dChjcmwsIGkpOyAvKiBO TyBEVVAgLSBkb24ndCBmcmVlISAqLworKyAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4 dCA9IFg1MDlfQ1JMX2dldF9leHQoY3JsLCBpKTsKKyAgICAgICAgIHJiX2FyeV9wdXNoKGFyeSwg b3NzbF94NTA5ZXh0X25ldyhleHQpKTsKKyAgICAgfQorIAorZGlmZiAtLWdpdCBhL2V4dC9vcGVu c3NsL29zc2xfeDUwOWV4dC5jIGIvZXh0L29wZW5zc2wvb3NzbF94NTA5ZXh0LmMKK2luZGV4IGVm NjZlY2MzZmU4MzkwLi4xZmU3MjdkM2YxZDJlYSAxMDA2NDQKKy0tLSBhL2V4dC9vcGVuc3NsL29z c2xfeDUwOWV4dC5jCisrKysgYi9leHQvb3BlbnNzbC9vc3NsX3g1MDlleHQuYworQEAgLTYyLDEz ICs2MiwxNCBAQCBzdGF0aWMgY29uc3QgcmJfZGF0YV90eXBlX3Qgb3NzbF94NTA5ZXh0X3R5cGUg PSB7CisgICogUHVibGljCisgICovCisgVkFMVUUKKy1vc3NsX3g1MDlleHRfbmV3KFg1MDlfRVhU RU5TSU9OICpleHQpCisrb3NzbF94NTA5ZXh0X25ldyhjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXh0 KQorIHsKKyAgICAgWDUwOV9FWFRFTlNJT04gKm5ldzsKKyAgICAgVkFMVUUgb2JqOworIAorICAg ICBvYmogPSBOZXdYNTA5RXh0KGNYNTA5RXh0KTsKKy0gICAgbmV3ID0gWDUwOV9FWFRFTlNJT05f ZHVwKGV4dCk7CisrICAgIC8qIE9wZW5TU0wgMS4xLjEgdGFrZXMgYSBub24tY29uc3QgcG9pbnRl ciAqLworKyAgICBuZXcgPSBYNTA5X0VYVEVOU0lPTl9kdXAoKFg1MDlfRVhURU5TSU9OICopZXh0 KTsKKyAgICAgaWYgKCFuZXcpCisgICAgICAgICBvc3NsX3JhaXNlKGVYNTA5RXh0RXJyb3IsICJY NTA5X0VYVEVOU0lPTl9kdXAiKTsKKyAgICAgU2V0WDUwOUV4dChvYmosIG5ldyk7CitAQCAtMzM4 LDEyICszMzksMjAgQEAgb3NzbF94NTA5ZXh0X3NldF92YWx1ZShWQUxVRSBzZWxmLCBWQUxVRSBk YXRhKQorICAgICBHZXRYNTA5RXh0KHNlbGYsIGV4dCk7CisgICAgIGRhdGEgPSBvc3NsX3RvX2Rl cl9pZl9wb3NzaWJsZShkYXRhKTsKKyAgICAgU3RyaW5nVmFsdWUoZGF0YSk7CistICAgIGFzbjFz ID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KTsKKyAKKysgICAgYXNuMXMgPSBBU04xX09D VEVUX1NUUklOR19uZXcoKTsKKysgICAgaWYgKCFhc24xcykKKysgICAgICAgIG9zc2xfcmFpc2Uo ZVg1MDlFeHRFcnJvciwgIkFTTjFfT0NURVRfU1RSSU5HX25ldyIpOworICAgICBpZiAoIUFTTjFf T0NURVRfU1RSSU5HX3NldChhc24xcywgKHVuc2lnbmVkIGNoYXIgKilSU1RSSU5HX1BUUihkYXRh KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlNUUklOR19MRU5JTlQoZGF0YSkp KSB7CisrICAgICAgICBBU04xX09DVEVUX1NUUklOR19mcmVlKGFzbjFzKTsKKyAgICAgICAgIG9z c2xfcmFpc2UoZVg1MDlFeHRFcnJvciwgIkFTTjFfT0NURVRfU1RSSU5HX3NldCIpOworICAgICB9 CisrICAgIGlmICghWDUwOV9FWFRFTlNJT05fc2V0X2RhdGEoZXh0LCBhc24xcykpIHsKKysgICAg ICAgIEFTTjFfT0NURVRfU1RSSU5HX2ZyZWUoYXNuMXMpOworKyAgICAgICAgb3NzbF9yYWlzZShl WDUwOUV4dEVycm9yLCAiWDUwOV9FWFRFTlNJT05fc2V0X2RhdGEiKTsKKysgICAgfQorKyAgICBB U04xX09DVEVUX1NUUklOR19mcmVlKGFzbjFzKTsKKyAKKyAgICAgcmV0dXJuIGRhdGE7CisgfQor QEAgLTM4Niw3ICszOTUsNyBAQCBvc3NsX3g1MDlleHRfZ2V0X3ZhbHVlKFZBTFVFIG9iaikKKyAg ICAgaWYgKCEob3V0ID0gQklPX25ldyhCSU9fc19tZW0oKSkpKQorICAgICAgICAgb3NzbF9yYWlz ZShlWDUwOUV4dEVycm9yLCBOVUxMKTsKKyAgICAgaWYgKCFYNTA5VjNfRVhUX3ByaW50KG91dCwg ZXh0LCAwLCAwKSkKKy0gICAgICAgIEFTTjFfU1RSSU5HX3ByaW50KG91dCwgKEFTTjFfU1RSSU5H ICopWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KSk7CisrICAgICAgICBBU04xX1NUUklOR19w cmludChvdXQsIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCkpOworICAgICByZXQgPSBvc3Ns X21lbWJpbzJzdHIob3V0KTsKKyAKKyAgICAgcmV0dXJuIHJldDsKK0BAIC0zOTYsNyArNDA1LDcg QEAgc3RhdGljIFZBTFVFCisgb3NzbF94NTA5ZXh0X2dldF92YWx1ZV9kZXIoVkFMVUUgb2JqKQor IHsKKyAgICAgWDUwOV9FWFRFTlNJT04gKmV4dDsKKy0gICAgQVNOMV9PQ1RFVF9TVFJJTkcgKnZh bHVlOworKyAgICBjb25zdCBBU04xX09DVEVUX1NUUklORyAqdmFsdWU7CisgCisgICAgIEdldFg1 MDlFeHQob2JqLCBleHQpOworICAgICBpZiAoKHZhbHVlID0gWDUwOV9FWFRFTlNJT05fZ2V0X2Rh dGEoZXh0KSkgPT0gTlVMTCkKK2RpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX3g1MDluYW1l LmMgYi9leHQvb3BlbnNzbC9vc3NsX3g1MDluYW1lLmMKK2luZGV4IDViM2MzZjcyNjFkYzI2Li4y YjY2YTRhMDk3YzI5ZSAxMDA2NDQKKy0tLSBhL2V4dC9vcGVuc3NsL29zc2xfeDUwOW5hbWUuYwor KysrIGIvZXh0L29wZW5zc2wvb3NzbF94NTA5bmFtZS5jCitAQCAtNTMsMTMgKzUzLDE0IEBAIHN0 YXRpYyBjb25zdCByYl9kYXRhX3R5cGVfdCBvc3NsX3g1MDluYW1lX3R5cGUgPSB7CisgICogUHVi bGljCisgICovCisgVkFMVUUKKy1vc3NsX3g1MDluYW1lX25ldyhYNTA5X05BTUUgKm5hbWUpCisr b3NzbF94NTA5bmFtZV9uZXcoY29uc3QgWDUwOV9OQU1FICpuYW1lKQorIHsKKyAgICAgWDUwOV9O QU1FICpuZXc7CisgICAgIFZBTFVFIG9iajsKKyAKKyAgICAgb2JqID0gTmV3WDUwOU5hbWUoY1g1 MDlOYW1lKTsKKy0gICAgbmV3ID0gWDUwOV9OQU1FX2R1cChuYW1lKTsKKysgICAgLyogT3BlblNT TCAxLjEuMSB0YWtlcyBhIG5vbi1jb25zdCBwb2ludGVyICovCisrICAgIG5ldyA9IFg1MDlfTkFN RV9kdXAoKFg1MDlfTkFNRSAqKW5hbWUpOworICAgICBpZiAoIW5ldykKKyAgICAgICAgIG9zc2xf cmFpc2UoZVg1MDlOYW1lRXJyb3IsICJYNTA5X05BTUVfZHVwIik7CisgICAgIFNldFg1MDlOYW1l KG9iaiwgbmV3KTsKK2RpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX3g1MDlyZXEuYyBiL2V4 dC9vcGVuc3NsL29zc2xfeDUwOXJlcS5jCitpbmRleCA0MzNjYzQ2MWE5OTMzYi4uYWQ1ZGQwODAz MzIwMzUgMTAwNjQ0CistLS0gYS9leHQvb3BlbnNzbC9vc3NsX3g1MDlyZXEuYworKysrIGIvZXh0 L29wZW5zc2wvb3NzbF94NTA5cmVxLmMKK0BAIC0yMzEsNyArMjMxLDcgQEAgc3RhdGljIFZBTFVF Cisgb3NzbF94NTA5cmVxX2dldF9zdWJqZWN0KFZBTFVFIHNlbGYpCisgeworICAgICBYNTA5X1JF USAqcmVxOworLSAgICBYNTA5X05BTUUgKm5hbWU7CisrICAgIGNvbnN0IFg1MDlfTkFNRSAqbmFt ZTsKKyAKKyAgICAgR2V0WDUwOVJlcShzZWxmLCByZXEpOworICAgICBpZiAoIShuYW1lID0gWDUw OV9SRVFfZ2V0X3N1YmplY3RfbmFtZShyZXEpKSkgeyAvKiBOTyBEVVAgLSBkb24ndCBmcmVlICov CitAQCAtMzUxLDcgKzM1MSw3IEBAIG9zc2xfeDUwOXJlcV9nZXRfYXR0cmlidXRlcyhWQUxVRSBz ZWxmKQorIHsKKyAgICAgWDUwOV9SRVEgKnJlcTsKKyAgICAgaW50IGNvdW50LCBpOworLSAgICBY NTA5X0FUVFJJQlVURSAqYXR0cjsKKysgICAgY29uc3QgWDUwOV9BVFRSSUJVVEUgKmF0dHI7Cisg ICAgIFZBTFVFIGFyeTsKKyAKKyAgICAgR2V0WDUwOVJlcShzZWxmLCByZXEpOworZGlmZiAtLWdp dCBhL2V4dC9vcGVuc3NsL29zc2xfeDUwOXJldm9rZWQuYyBiL2V4dC9vcGVuc3NsL29zc2xfeDUw OXJldm9rZWQuYworaW5kZXggYjg4YzM5MGM3MjY0MWUuLjAxNTE5NjFlOWY2Yjg1IDEwMDY0NAor LS0tIGEvZXh0L29wZW5zc2wvb3NzbF94NTA5cmV2b2tlZC5jCisrKysgYi9leHQvb3BlbnNzbC9v c3NsX3g1MDlyZXZva2VkLmMKK0BAIC00OCwxMyArNDgsMTQgQEAgc3RhdGljIGNvbnN0IHJiX2Rh dGFfdHlwZV90IG9zc2xfeDUwOXJldl90eXBlID0geworICAqIFBVQkxJQworICAqLworIFZBTFVF Cistb3NzbF94NTA5cmV2b2tlZF9uZXcoWDUwOV9SRVZPS0VEICpyZXYpCisrb3NzbF94NTA5cmV2 b2tlZF9uZXcoY29uc3QgWDUwOV9SRVZPS0VEICpyZXYpCisgeworICAgICBYNTA5X1JFVk9LRUQg Km5ldzsKKyAgICAgVkFMVUUgb2JqOworIAorICAgICBvYmogPSBOZXdYNTA5UmV2KGNYNTA5UmV2 KTsKKy0gICAgbmV3ID0gWDUwOV9SRVZPS0VEX2R1cChyZXYpOworKyAgICAvKiBPcGVuU1NMIDEu MS4xIHRha2VzIGEgbm9uLWNvbnN0IHBvaW50ZXIgKi8KKysgICAgbmV3ID0gWDUwOV9SRVZPS0VE X2R1cCgoWDUwOV9SRVZPS0VEICopcmV2KTsKKyAgICAgaWYgKCFuZXcpCisgICAgICAgICBvc3Ns X3JhaXNlKGVYNTA5UmV2RXJyb3IsICJYNTA5X1JFVk9LRURfZHVwIik7CisgICAgIFNldFg1MDlS ZXYob2JqLCBuZXcpOworQEAgLTE4NSw3ICsxODYsNyBAQCBvc3NsX3g1MDlyZXZva2VkX2dldF9l eHRlbnNpb25zKFZBTFVFIHNlbGYpCisgeworICAgICBYNTA5X1JFVk9LRUQgKnJldjsKKyAgICAg aW50IGNvdW50LCBpOworLSAgICBYNTA5X0VYVEVOU0lPTiAqZXh0OworKyAgICBjb25zdCBYNTA5 X0VYVEVOU0lPTiAqZXh0OworICAgICBWQUxVRSBhcnk7CisgCisgICAgIEdldFg1MDlSZXYoc2Vs ZiwgcmV2KTsKK2RpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX3g1MDlzdG9yZS5jIGIvZXh0 L29wZW5zc2wvb3NzbF94NTA5c3RvcmUuYworaW5kZXggYmUxNDU4Y2VjNWQ3MjEuLjQwOGUxOGM2 YzQxOGZmIDEwMDY0NAorLS0tIGEvZXh0L29wZW5zc2wvb3NzbF94NTA5c3RvcmUuYworKysrIGIv ZXh0L29wZW5zc2wvb3NzbF94NTA5c3RvcmUuYworQEAgLTUxMiwxMCArNTEyLDggQEAgc3RhdGlj IHZvaWQKKyBvc3NsX3g1MDlzdGN0eF9mcmVlKHZvaWQgKnB0cikKKyB7CisgICAgIFg1MDlfU1RP UkVfQ1RYICpjdHggPSBwdHI7CistICAgIGlmIChYNTA5X1NUT1JFX0NUWF9nZXQwX3VudHJ1c3Rl ZChjdHgpKQorLSAgICAgICAgc2tfWDUwOV9wb3BfZnJlZShYNTA5X1NUT1JFX0NUWF9nZXQwX3Vu dHJ1c3RlZChjdHgpLCBYNTA5X2ZyZWUpOworLSAgICBpZiAoWDUwOV9TVE9SRV9DVFhfZ2V0MF9j ZXJ0KGN0eCkpCistICAgICAgICBYNTA5X2ZyZWUoWDUwOV9TVE9SRV9DVFhfZ2V0MF9jZXJ0KGN0 eCkpOworKyAgICBza19YNTA5X3BvcF9mcmVlKFg1MDlfU1RPUkVfQ1RYX2dldDBfdW50cnVzdGVk KGN0eCksIFg1MDlfZnJlZSk7CisrICAgIFg1MDlfZnJlZSgoWDUwOSAqKVg1MDlfU1RPUkVfQ1RY X2dldDBfY2VydChjdHgpKTsKKyAgICAgWDUwOV9TVE9SRV9DVFhfZnJlZShjdHgpOworIH0KKyAK K0BAIC03MzYsNyArNzM0LDcgQEAgc3RhdGljIFZBTFVFCisgb3NzbF94NTA5c3RjdHhfZ2V0X2N1 cnJfY2VydChWQUxVRSBzZWxmKQorIHsKKyAgICAgWDUwOV9TVE9SRV9DVFggKmN0eDsKKy0gICAg WDUwOSAqeDUwOTsKKysgICAgY29uc3QgWDUwOSAqeDUwOTsKKyAKKyAgICAgR2V0WDUwOVN0Q3R4 KHNlbGYsIGN0eCk7CisgICAgIHg1MDkgPSBYNTA5X1NUT1JFX0NUWF9nZXRfY3VycmVudF9jZXJ0 KGN0eCk7CitAQCAtNzU4LDcgKzc1Niw3IEBAIHN0YXRpYyBWQUxVRQorIG9zc2xfeDUwOXN0Y3R4 X2dldF9jdXJyX2NybChWQUxVRSBzZWxmKQorIHsKKyAgICAgWDUwOV9TVE9SRV9DVFggKmN0eDsK Ky0gICAgWDUwOV9DUkwgKmNybDsKKysgICAgY29uc3QgWDUwOV9DUkwgKmNybDsKKyAKKyAgICAg R2V0WDUwOVN0Q3R4KHNlbGYsIGN0eCk7CisgICAgIGNybCA9IFg1MDlfU1RPUkVfQ1RYX2dldDBf Y3VycmVudF9jcmwoY3R4KTsKK2RpZmYgLS1naXQgYS90ZXN0L29wZW5zc2wvdGVzdF9vc3NsLnJi IGIvdGVzdC9vcGVuc3NsL3Rlc3Rfb3NzbC5yYgoraW5kZXggNTEyNjI5ODVmNTY1NWUuLjFiOWJk ZTUzZWY3MmQzIDEwMDY0NAorLS0tIGEvdGVzdC9vcGVuc3NsL3Rlc3Rfb3NzbC5yYgorKysrIGIv dGVzdC9vcGVuc3NsL3Rlc3Rfb3NzbC5yYgorQEAgLTI0LDYgKzI0LDE2IEBAIGRlZiB0ZXN0X2Zp eGVkX2xlbmd0aF9zZWN1cmVfY29tcGFyZQorICAgICBhc3NlcnRfcmFpc2UoQXJndW1lbnRFcnJv cikgeyBPcGVuU1NMLmZpeGVkX2xlbmd0aF9zZWN1cmVfY29tcGFyZSgiYWFhIiwgImJiYmIiKSB9 CisgICBlbmQKKyAKKysgIGRlZiB0ZXN0X2ZpeGVkX2xlbmd0aF9zZWN1cmVfY29tcGFyZV91YWYK KysgICAgc3RyMSA9ICJBIiAqIDEwMDAwMDAKKysgICAgZXZpbF9vYmogPSBPYmplY3QubmV3Cisr ICAgIGV2aWxfb2JqLmRlZmluZV9zaW5nbGV0b25fbWV0aG9kKDp0b19zdHIpIGRvCisrICAgICAg c3RyMS5yZXBsYWNlKCJDIiAqIDEwMDAwMDApCisrICAgICAgIkIiICogMTAwMDAwMAorKyAgICBl bmQKKysgICAgYXNzZXJ0X2ZhbHNlKE9wZW5TU0wuZml4ZWRfbGVuZ3RoX3NlY3VyZV9jb21wYXJl KHN0cjEsIGV2aWxfb2JqKSkKKysgIGVuZAorKworICAgZGVmIHRlc3Rfc2VjdXJlX2NvbXBhcmUK KyAgICAgYXNzZXJ0X2ZhbHNlKE9wZW5TU0wuc2VjdXJlX2NvbXBhcmUoImFhYSIsICJhIikpCisg ICAgIGFzc2VydF9mYWxzZShPcGVuU1NMLnNlY3VyZV9jb21wYXJlKCJhYWEiLCAiYWEiKSkKK2Rp ZmYgLS1naXQgYS90ZXN0L29wZW5zc2wvdGVzdF9wa2V5X3JzYS5yYiBiL3Rlc3Qvb3BlbnNzbC90 ZXN0X3BrZXlfcnNhLnJiCitpbmRleCA4NmY1MWNmNDM4NWEwMS4uMTcxNmFlZjM4MDdhZjkgMTAw NjQ0CistLS0gYS90ZXN0L29wZW5zc2wvdGVzdF9wa2V5X3JzYS5yYgorKysrIGIvdGVzdC9vcGVu c3NsL3Rlc3RfcGtleV9yc2EucmIKK0BAIC00NjIsNTQgKzQ2Miw1NCBAQCBkZWYgdGVzdF9wcml2 YXRlX2VuY29kaW5nCisgCisgICBkZWYgdGVzdF9wcml2YXRlX2VuY29kaW5nX2VuY3J5cHRlZAor ICAgICByc2EgPSBGaXh0dXJlcy5wa2V5KCJyc2EyMDQ4IikKKy0gICAgZW5jb2RlZCA9IHJzYS5w cml2YXRlX3RvX2RlcigiYWVzLTEyOC1jYmMiLCAiYWJjZGVmIikKKysgICAgZW5jb2RlZCA9IHJz YS5wcml2YXRlX3RvX2RlcigiYWVzLTEyOC1jYmMiLCAiYWJjZGVmZ2giKQorICAgICBhc24xID0g T3BlblNTTDo6QVNOMS5kZWNvZGUoZW5jb2RlZCkgIyBQS0NTICM4IEVuY3J5cHRlZFByaXZhdGVL ZXlJbmZvCisgICAgIGFzc2VydF9raW5kX29mIE9wZW5TU0w6OkFTTjE6OlNlcXVlbmNlLCBhc24x CisgICAgIGFzc2VydF9lcXVhbCAyLCBhc24xLnZhbHVlLnNpemUKKyAgICAgYXNzZXJ0X25vdF9l cXVhbCByc2EucHJpdmF0ZV90b19kZXIsIGVuY29kZWQKKy0gICAgYXNzZXJ0X3NhbWVfcnNhIHJz YSwgT3BlblNTTDo6UEtleS5yZWFkKGVuY29kZWQsICJhYmNkZWYiKQorLSAgICBhc3NlcnRfc2Ft ZV9yc2EgcnNhLCBPcGVuU1NMOjpQS2V5LnJlYWQoZW5jb2RlZCkgeyAiYWJjZGVmIiB9CisrICAg IGFzc2VydF9zYW1lX3JzYSByc2EsIE9wZW5TU0w6OlBLZXkucmVhZChlbmNvZGVkLCAiYWJjZGVm Z2giKQorKyAgICBhc3NlcnRfc2FtZV9yc2EgcnNhLCBPcGVuU1NMOjpQS2V5LnJlYWQoZW5jb2Rl ZCkgeyAiYWJjZGVmZ2giIH0KKyAgICAgYXNzZXJ0X3JhaXNlKE9wZW5TU0w6OlBLZXk6OlBLZXlF cnJvcikgeyBPcGVuU1NMOjpQS2V5LnJlYWQoZW5jb2RlZCwgImFiY3h5eiIpIH0KKyAKKy0gICAg ZW5jb2RlZCA9IHJzYS5wcml2YXRlX3RvX3BlbSgiYWVzLTEyOC1jYmMiLCAiYWJjZGVmIikKKysg ICAgZW5jb2RlZCA9IHJzYS5wcml2YXRlX3RvX3BlbSgiYWVzLTEyOC1jYmMiLCAiYWJjZGVmZ2gi KQorICAgICBhc3NlcnRfbWF0Y2ggKC9CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVkvKSwgZW5j b2RlZC5saW5lc1swXQorLSAgICBhc3NlcnRfc2FtZV9yc2EgcnNhLCBPcGVuU1NMOjpQS2V5LnJl YWQoZW5jb2RlZCwgImFiY2RlZiIpCisrICAgIGFzc2VydF9zYW1lX3JzYSByc2EsIE9wZW5TU0w6 OlBLZXkucmVhZChlbmNvZGVkLCAiYWJjZGVmZ2giKQorIAorICAgICAjIFVzZSBvcGVuc3NsIGlu c3RlYWQgb2YgY2VydHRvb2wgZHVlIHRvIGh0dHBzOi8vZ2l0bGFiLmNvbS9nbnV0bHMvZ251dGxz Ly0vaXNzdWVzLzE2MzIKKy0gICAgIyBvcGVuc3NsIHBrY3M4IC1pbiB0ZXN0L29wZW5zc2wvZml4 dHVyZXMvcGtleS9yc2EyMDQ4LnBlbSAtdG9wazggLXYyIGFlcy0xMjgtY2JjIC1wYXNzb3V0IHBh c3M6YWJjZGVmCisrICAgICMgb3BlbnNzbCBwa2NzOCAtaW4gdGVzdC9vcGVuc3NsL2ZpeHR1cmVz L3BrZXkvcnNhMjA0OC5wZW0gLXRvcGs4IC12MiBhZXMtMTI4LWNiYyAtcGFzc291dCBwYXNzOmFi Y2RlZmdoCisgICAgIHBlbSA9IDw8fkVPRgorLSAgICAtLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklW QVRFIEtFWS0tLS0tCistICAgIE1JSUZMVEJYQmdrcWhraUc5dzBCQlEwd1NqQXBCZ2txaGtpRzl3 MEJCUXd3SEFRSWF5NVY4Q0RRaTVvQ0FnZ0EKKy0gICAgTUF3R0NDcUdTSWIzRFFJSkJRQXdIUVlK WUlaSUFXVURCQUVDQkJCNmV5YWdjYnN2ZFFsTTFrUGNIN2tpQklJRQorLSAgICAwTmcxYXBJeW9Q QVo0QmZDNGtNTmVTbWVBdjNYc3B4cVlpM3VXelhpTnlUY29FNjM5MHN3cndNNld2ZHBYdkxJCist ICAgIC9uL1YwNmtyeFBaOVg0ZkJHMmtMVXpYdDVmMDlsRXZtUVUxSFcxd0pHVTVTcTNiTmVYQnJs SkY0RHpKRTRXV2QKKy0gICAgd2hWVnZOTW00NGdoZHpOL2pHU3czeis2ZDcxN04rd2FhN3ZycEJE c0hqaHNQTnd4cHl6VXZjRlBGeXNUYXp4eAorLSAgICBrTi9kemlJQkY2U1JLaTZ3OFZhSkVNUThj ekd1NVQzak9jMmUvMXAzL0FZaEhMUFM0TkhoTFI1T1VoMFRLcUxLCistICAgIHRBTkFxSTlZcUNB amhxY1lDbU4zbU1RWFk1MlZmT3FHOWhsWDF4OVpReXFpSDdsMTAyRVdiUHFvdWs2YkNCTFEKKy0g ICAgd0hlcFBnNHVLOTlXc2RoNjVxRXJ5Tm5YUTVabU82YUdiNlQzVEZFTkNhTkttaThOaCsvNWRy N0o3WWZoSXdwbworLSAgICBGcUh2azBoclo4cjNFUWxyOC90ZDBZYjEvSUt6ZVEzNDYzOHVYZjlV eEs3QzZvK2lsc21KRFI0UEhKVWZaTDIzCistICAgIFliOXFXSjBHRXpkNUFNc0k3eDZLdVV4U3VI OW5Lbml2NVR6eXR5M1htYjRGd1hVeUFEV0UxOWNWdWFUK0hyRnoKKy0gICAgR3JhS25BM1VYYkVn V0FVNDgvbDRLMkhjQUh5SEREMkticDhrK28xelVrSDBmV1VkZkU2T1VHdHgxOUZ2NDRKaAorLSAg ICBCN3hEbmdLOEs0OEM2bnJqMDYvRFNZZlhsYjJYN1dRaWFwZUc0anQ2VTU3dExIMlhBakhDa3Z1 MElCWisvLytQCistICAgIHlJV2R1RUhRM3c4RkJSY0lzVE5KbzVDamtHazU4MFRWUUIvT0JMV2ZY NDhBeTNvRjl6Z25vbURJbFZqbDlEMG4KKy0gICAgbEt4dy9LTUNMa3ZCNzhyVWVHYnIxS3dqMzZG aEdwVEJ3M0ZnY1lHYTVvV0ZaVGxjT2dNVFhMcWxiYjlKbkRsQQorLSAgICBaczdUdTBXVHlPVFYv RG5lOW5FbTM5RHp1NndSb2ppSXBteWdURDRGSTdybU95M0NZTnZMM1hQdjdYUWowaG55CistICAg IEVlL2ZMeHVnWWxRbndQWlNxT1ZFUVkySHNHN0FtRUhSc3Z5NGJJV0lHdCt5ekFQWml4dDlNVWRK aDkxdHRSdDcKKy0gICAgUUEvOEoxcEFzR3FFdVFwRjZVVUlOWm9wM0o3dHdmaE80eldZTi9OTlE1 MmVXTlgyS0xmamZHUmhydmF0em1aMAorLSAgICBCdUNzQ0k5aHdFZUU2UFRsaGJYMVJzMTc3TXJE YzN2bHF6MlYzUG8wT3JGalhBeWc5RFIvT0M0aUs1d09HMlpECistICAgIDdTdFZTUDhiendRWHN6 M2ZKMGFyZEtYZ25VMllEQVA2Vnlramd0K25GSTA5SFYvUzJmYU9jMmcvVUs0WTJraGwKKy0gICAg SjkzdS9HSE16L0tyM2JLV0dZMS82blBkSWRGaGVRanNpTmhkNWdJNHRXaWsyQjNRd1U5bUVUVG9a MkxTdkRIVQorLSAgICBqWUN5czU3NnhKTGtkTU02bkpkcTcyejR0Q29FUzlJeHlIVnM0dUxqSEtJ by9adEtyKzh4RG84SUw0YXgzVTgrCistICAgIE5NaHMvbHdSZUhtUEdhaG0xZnU5ekxSYk5DVkw3 ZTB6ck9xYmp2S2NTRWZ0T2JwVi9MTGNQWVh0RW0rbFpjY2sKKy0gICAgL1BNdzQ5SFNFMzY0YW5L RVhDSDFjeVZXSndkWlJwRlVIdlJwTElycEhydTcvY3RoaGlFTWRMZ0sxL3g4c0xvYgorLSAgICBE aXlpZUx4SDFEUGVYVDRYK3o5NEVSNEl1UFZPY1Y1QVhjL29tZ2hpc3BFWDZETlVubjVqQzRlM1d5 YWJqVWJ3CistICAgIE11TzlsVkg5V2kyL3luRXhDcVZtUWtkYlRYdUx3am5pMWZKMjdRNXpiMGFD bWhPOGVxNlA4NjlOQ2poSnVpVWoKKy0gICAgTkk5WHRHTFA1MFlWV0Uwa0w4S0VKcW55RnVka3k4 S2h6azQvZHlpeFFGcWluNUdmVDR2ZXRyTHVuR0h5N2xSQgorLSAgICAzTHBuRnJwTU9yKzB4cjFS VzFrOXZsbWpSc0pTaW9qSmZSZVlPN2dIM0I1c3dpd3cyYXpvZ29MKzRqaEYxSnhoCistICAgIE9Z TFdka0toUDJqU1ZHcXRJRHRueTBPNGxCbTIraExwV2ppSTBtSlE3d2RBCistICAgIC0tLS0tRU5E IEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCisrLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFU RSBLRVktLS0tLQorK01JSUZOVEJmQmdrcWhraUc5dzBCQlEwd1VqQXhCZ2txaGtpRzl3MEJCUXd3 SkFRUStTZzkySGd5OEVnVlBmN3QKKytIZW4xcXdJQ0NBQXdEQVlJS29aSWh2Y05BZ2tGQURBZEJn bGdoa2dCWlFNRUFRSUVFQjVVWDJ4ZERPOC9BS0E4CisrK1k1Q1p5VUVnZ1RRa0FyaDRtTVBwbkFl M3hPY0RLTXo4S0NuNWxyTGIvNkRsYTdScDlMSEtHa1VmeUkxMUVadAorK20rT0lyaXd5OW9EUXF1 S3lWdUxRVkdBeFhLayszcHl4TXFMQjBpM2hMWWFtVDN2em9QY3R5VndqdVJ1S29VM0UKKytDYkYw WWhDb3h2V012akhzb2x3WXp4MDBEYkxYb3VFNEJHS3ZQam5odzVod3Rkb1o5UHgwWm5DWEN4Vlhp OHovCisrbWx3N2EycHRLRWlIUVZqdVBQYnR0cStkQStlejdwYldvbldWb2Q1VE1hUHR5RVp1NVhm UEQrMHBNYm9jZUhaZworK0g4ZWhnVWhWM216RUppaXNGR2cxcTloais0QmFGbDVtNHR2cXA0M2lu Q0NkU2hFNzhDTm5PUHpKN1dDaktKcWkKKytqR3ZIamVNb1Z4M3JaWEhjWkRBemZJWnZEaWdwOXVB ZnpqUkpqcFJHOHNnNXNEUVZDN3ZkVWhRRGU1VG9yS1QyCisrVmIwdGRWWXhvRXBNSjNkaFU2RHM1 SnhNUjZHVExqc2pUcU9rQWw2ZGIzSHh1bHdmRXByN1lqT3BmT0RSK3R0QQorK0JlSWNVY01Mc0RI YXlJYVFhTUxJZnRIeE9rZlg3VXhvRlc5Q01HNVVNUWYvbTNlRWdWVXdnSy9FNXNVSlJVVG8KKyt5 aFJ6SjROQVA0ZmdjNFlIOXRienZVcmhmZENYQ0JFT242SWxEUUw2NlNacjhNbStHZ3U0SWo0VG5L V1hMclhMCisrblNURERhNDJrUE92dGVkS3F4Qy91WEU3cnJmaCt1eXc2SjZPalNsNnU4NlRJZWJu ZEx1RG81RFRkV0toOHJzZworK2Z2Wlo2MzMyZGZNcDhKQzkvNFluWUlKZEk3YWNJblNveUhwNTJP QisyK2RnWUNyNU9yWkZqaktTN25FTFZmbzcKKytPeEd5NnVIM05IRjlxeVVFZjNNTjE3VFJISTdq UDN6S2JYY0RUUFN5eExRa1dlL0NVNUIyNTFDVG1vVFNpZFNXCisrRWhLblBsR1pZYnBWUUo0S0dF TDVVZVk4VzlQWFFvNERsN1RtWEJHdnVQcU5GOGtNQjNYclBJcGg3R21paG1YMAorK25sSnFMazll aVJGbVVFVFMwSWRBeUtKcm00UjlIZjZyallDYlhsYUFweWx5VlVkU1oyQnhnZW9UWTlCQTZLZ2YK KyszeGxnTXYwMU1vVWtYTXgyK09MSWM5TXpoQnV0UWlEeGgzbWZTMDEyQ2pLcVVGckpoUlNhOERP cFVmVmdtWHBxCisrL0hQNGRyV2FtTFdZSlI4RnNtSlMxMVpZYzFFSy9jdEpUU3BxZmV3dm9VR09T SG9taGg3elhuMUFjYjYrOS8zcAorK2Jjckpqb1I1SzhKZzZObEc0ZFNOa3BZL3g5Mkk3YkZMWEZx RUxJSDV0dGVEcmxRZW41ZUFTamFpeVBQQW9PdzgKKytJR2ZPbUZTNFZVUGgxVlA2ZzhKdG41SHIy cVhCM0RvUW9JNkV2VVpoSjZHSmZpNjdteDVWS3V4Nkc5TXpKa2l4CisrR1UxY0w0V3pXSzJEVTBs MzlVeFhqUys0VG1PWWJycUxWblZNanVzWDBmd2I4TGtEQy9mVm9oYmhMd2hITnd1NgorK25TVFNF cFM5elNEcnYxSlhGdEF0UHY2WENTRnM2c3NQV0pNd0dTZFRobjdFZlYwR0VoRzJtQ3pUeVZod3h4 UW8KKys2VS9TdXFxNG9NWm9yYWNQVUNaeDBFNHUvYmI0S0JvRkEvZUJOUEpFTlRSMThJaVYrRDd3 QXhseGF1TzNOMXQ0CisraUp4d3JydlNnUVBtT0d1eHJoNUxWRDQxVVhZVVdMdG5kemFibnBCeXBw Rm4yTWJtdnJxSmdvbjBNU3M4NGNUQQorKzdzY25iUHUxVjNQcEt5L3Q2N2d0Vnc5VWU4aExqcnNr V0IxSlBGWXI3dlJXdkp6WWpmYmZseXJvRitRRUozVEEKKys2clRmVUM5K2VQY2k2VCtpOWpGNHhj bXpxWXpSdG5HdHA1blJVaXRKR3cwdXdCVER3emZJMldENmx0dnZ1N2xjCisrcEh1enZZNXpFYXB1 dTFKaGpITFVkK09FOHJWVk05OTlEVVhvL0lETHNXeVJDcGhDaVlmVlhKTm9nZDlyQjBUYQorKzVB aFZncFJoeGthckJVUlp5TFRZajdOUnhDc2JIcTdYRXhKTnJJZFJHL0tsQlFmeUV5SXpaN0U9Cisr LS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KKyAgICAgRU9GCistICAgIGFzc2Vy dF9zYW1lX3JzYSByc2EsIE9wZW5TU0w6OlBLZXkucmVhZChwZW0sICJhYmNkZWYiKQorKyAgICBh c3NlcnRfc2FtZV9yc2EgcnNhLCBPcGVuU1NMOjpQS2V5LnJlYWQocGVtLCAiYWJjZGVmZ2giKQor ICAgZW5kCisgCisgICBkZWYgdGVzdF9wYXJhbXMKK2RpZmYgLS1naXQgYS90ZXN0L29wZW5zc2wv dGVzdF9zc2wucmIgYi90ZXN0L29wZW5zc2wvdGVzdF9zc2wucmIKK2luZGV4IGNlMWIyYzFlOTY2 ZmQwLi5lNGZkNTgxMDc5YzRkZCAxMDA2NDQKKy0tLSBhL3Rlc3Qvb3BlbnNzbC90ZXN0X3NzbC5y YgorKysrIGIvdGVzdC9vcGVuc3NsL3Rlc3Rfc3NsLnJiCitAQCAtMTkwOSw3ICsxOTA5LDkgQEAg ZGVmIHRlc3RfdG1wX2RoX2NhbGxiYWNrCisgICAgICAgfQorICAgICB9CisgICAgIHN0YXJ0X3Nl cnZlcihjdHhfcHJvYzogY3R4X3Byb2MpIGRvIHxwb3J0fAorLSAgICAgIHNlcnZlcl9jb25uZWN0 KHBvcnQpIHsgfHNzbHwKKysgICAgICBjdHggPSBPcGVuU1NMOjpTU0w6OlNTTENvbnRleHQubmV3 CisrICAgICAgY3R4Lmdyb3VwcyA9ICJQLTI1NiIgIyBFeGNsdWRlIFJGQyA3OTE5IGdyb3Vwcwor KyAgICAgIHNlcnZlcl9jb25uZWN0KHBvcnQsIGN0eCkgeyB8c3NsfAorICAgICAgICAgYXNzZXJ0 IGNhbGxlZCwgImRoIGNhbGxiYWNrIHNob3VsZCBiZSBjYWxsZWQiCisgICAgICAgICBhc3NlcnRf ZXF1YWwgZGgudG9fZGVyLCBzc2wudG1wX2tleS50b19kZXIKKyAgICAgICB9CitAQCAtMjE3Miw3 ICsyMTc0LDkgQEAgZGVmIHRlc3RfdG1wX2RoCisgICAgICAgY3R4LnRtcF9kaCA9IGRoCisgICAg IH0KKyAgICAgc3RhcnRfc2VydmVyKGN0eF9wcm9jOiBjdHhfcHJvYykgZG8gfHBvcnR8CistICAg ICAgc2VydmVyX2Nvbm5lY3QocG9ydCkgeyB8c3NsfAorKyAgICAgIGN0eCA9IE9wZW5TU0w6OlNT TDo6U1NMQ29udGV4dC5uZXcKKysgICAgICBjdHguZ3JvdXBzID0gIlAtMjU2IiAjIEV4Y2x1ZGUg UkZDIDc5MTkgZ3JvdXBzCisrICAgICAgc2VydmVyX2Nvbm5lY3QocG9ydCwgY3R4KSB7IHxzc2x8 CisgICAgICAgICBhc3NlcnRfZXF1YWwgZGgudG9fZGVyLCBzc2wudG1wX2tleS50b19kZXIKKyAg ICAgICB9CisgICAgIGVuZAoKZGlmZiAtLWdpdCBhL3J1Ynkuc3BlYyBiL3J1Ynkuc3BlYwppbmRl eCA4ZGVjZDAyLi5mNmY3NGYyIDEwMDY0NAotLS0gYS9ydWJ5LnNwZWMKKysrIGIvcnVieS5zcGVj CkBAIC03OSw3ICs3OSw3IEBACiAlZ2xvYmFsIG5ldF9wcm90b2NvbF92ZXJzaW9uIDAuMi4yCiAl Z2xvYmFsIG9wZW5fdXJpX3ZlcnNpb24gMC41LjAKICVnbG9iYWwgb3BlbjNfdmVyc2lvbiAwLjIu MQotJWdsb2JhbCBvcGVuc3NsX3ZlcnNpb24gNC4wLjAKKyVnbG9iYWwgb3BlbnNzbF92ZXJzaW9u IDQuMC4yCiAlZ2xvYmFsIG9wdHBhcnNlX3ZlcnNpb24gMC44LjEKICVnbG9iYWwgcHBfdmVyc2lv biAwLjYuMwogJWdsb2JhbCBwcmV0dHlwcmludF92ZXJzaW9uIDAuMi4wCkBAIC0xOTAsNyArMTkw LDcgQEAKIFN1bW1hcnk6IEFuIGludGVycHJldGVyIG9mIG9iamVjdC1vcmllbnRlZCBzY3JpcHRp bmcgbGFuZ3VhZ2UKIE5hbWU6IHJ1YnkKIFZlcnNpb246ICV7cnVieV92ZXJzaW9ufSV7P2RldmVs b3BtZW50X3JlbGVhc2V9Ci1SZWxlYXNlOiAzNCV7P2Rpc3R9CitSZWxlYXNlOiAzNSV7P2Rpc3R9 CiAjIExpY2Vuc2VzLCB3aGljaCBhcmUgbGlrZWx5IG5vdCBpbmNsdWRlZCBpbiBiaW5hcnkgUlBN czoKICMgQXBhY2hlLTIuMDoKICMgICBiZW5jaG1hcmsvZ2MvcmVkYmxhY2sucmIKQEAgLTI5OSw2 ICsyOTksMTAgQEAgUGF0Y2g4OiBydWJ5LTQuMC4xLVN1cHBvcnQtY3VzdG9taXphYmxlLXJ1c3Rj X2ZsYWdzLWZvci1ydXN0Yy1idWlsZHMucGF0Y2gKICMgRml4IGVycm9yIHdpdGggYGdlbSBpbnN0 YWxsIC0tZG9jdW1lbnQ9cmRvYyxyaWAKICMgRml4ZWQgaW4gcmRvYyA3LjEuMCBidXQgbm90IGlu IDcuMC40CiBQYXRjaDk6IHJkb2MtcHIxNTMxLWZpeC1tdXRpbHBsZS1kb2N1bWVudC1pbnN0YWxs YXRpb24ucGF0Y2gKKyMgaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIyMDY5Cisj IGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8xNjk0NworIyBCYWNrcG9ydCBydWJ5 L29wZW5zc2wgNC4wLjIgZnJvbSBydWJ5IDQuMCBicmFuY2ggdG8gc3VwcG9ydCBvcGVuc3NsIDQu MAorUGF0Y2gxMDogcnVieS1wcjE2OTQ3LW9wZW5zc2wtNF8wXzItZnJvbS1ydWJ5XzRfMC5wYXRj aAogCiBSZXF1aXJlczogJXtuYW1lfS1saWJzJXs/X2lzYX0gPSAle3ZlcnNpb259LSV7cmVsZWFz ZX0KICV7P3dpdGhfcnVieXBpY2s6U3VnZ2VzdHM6IHJ1YnlwaWNrfQpAQCAtODExLDYgKzgxNSw3 IEBAIHBvcGQKICVwYXRjaCA2IC1wMQogJXBhdGNoIDcgLXAxCiAlcGF0Y2ggOCAtcDEKKyVwYXRj aCAxMCAtcDEKIAogIyBQcm92aWRlIGFuIGV4YW1wbGUgb2YgdXNhZ2Ugb2YgdGhlIHRhcHNldDoK IGNwIC1hICV7U09VUkNFM30gLgpAQCAtMTk1OSw2ICsxOTY0LDkgQEAgbWFrZSAtQyAle192cGF0 aF9idWlsZGRpcn0gcnVucnVieSBURVNUUlVOX1NDUklQVD0iIFwKIAogCiAlY2hhbmdlbG9nCisq IFN1biBKdW4gMTQgMjAyNiBNYW1vcnUgVEFTQUtBIDxtdGFzYWthQGZlZG9yYXByb2plY3Qub3Jn PiAtIDQuMC41LTM1CistIEJhY2twb3J0IHJ1Ynkvb3BlbnNzbCA0LjAuMiBmcm9tIHJ1YnkgNC4w IGJyYW5jaCB0byBzdXBwb3J0IG9wZW5zc2wgNC4wCisKICogRnJpIEp1biAxMiAyMDI2IFlhYWtv diBTZWxrb3dpdHogPHlzZWxrb3dpQHJlZGhhdC5jb20+CiAtIFJlYnVpbHQgZm9yIG9wZW5zc2wg NC4wCiAK