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: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/nordugrid-arc] rawhide: Update to version 7.2.0 Date: Mon, 07 Sep 2026 08:38:33 GMT Message-ID: <178877031394.1.17393150050601976186.rpms-nordugrid-arc-3a38dd8f5b91@fedoraproject.org> List-ID: X-Git-Repo: rpms/nordugrid-arc X-Git-Branch: rawhide X-Git-Rev: 3a38dd8f5b91c7c32e2793ae32ace7a2f9426038 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvbm9yZHVncmlkLWFy YwpCcmFuY2ggOiByYXdoaWRlCkNvbW1pdCA6IDNhMzhkZDhmNWI5MWM3YzMyZTI3OTNhZTMyYWNl N2EyZjk0MjYwMzgKQXV0aG9yIDogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNp Y3MudXUuc2U+CkRhdGUgICA6IDIwMjYtMDktMDdUMTA6MjY6NTUrMDI6MDAKU3RhdHMgIDogKzgv LTc5MyBpbiA2IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcv cnBtcy9ub3JkdWdyaWQtYXJjL2MvM2EzOGRkOGY1YjkxYzdjMzJlMjc5M2FlMzJhY2U3YTJmOTQy NjAzOD9icmFuY2g9cmF3aGlkZQoKTG9nOgpVcGRhdGUgdG8gdmVyc2lvbiA3LjIuMAoKLS0tCmRp ZmYgLS1naXQgYS8wMDAxLUZpeC1jb21waWxhdGlvbi13aXRoLVB5dGhvbi0zLjE1LnBhdGNoIGIv MDAwMS1GaXgtY29tcGlsYXRpb24td2l0aC1QeXRob24tMy4xNS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggY2M5OTdiOC4uMDAwMDAwMAotLS0gYS8wMDAxLUZpeC1jb21waWxh dGlvbi13aXRoLVB5dGhvbi0zLjE1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBA QAotRnJvbSBjY2RlMjU2MzE3ODEwNmQyMzBiMzI1ODVjMzU2MThjYmU5Mjc1NTFhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBo eXNpY3MudXUuc2U+Ci1EYXRlOiBXZWQsIDEyIE5vdiAyMDI1IDA4OjQyOjUxICswMTAwCi1TdWJq ZWN0OiBbUEFUQ0hdIEZpeCBjb21waWxhdGlvbiB3aXRoIFB5dGhvbiAzLjE1Ci0KLWh0dHBzOi8v YnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MjQxMjUxMgotaHR0cHM6Ly9kb2Nz LnB5dGhvbi5vcmcvZGV2L3doYXRzbmV3LzMuMTUuaHRtbCNyZW1vdmVkLWMtYXBpcwotLS0tCi0g cHl0aG9uL2FyY19pbml0LmNwcCB8IDE0ICsrKysrKysrKysrKystCi0gMSBmaWxlIGNoYW5nZWQs IDEzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3B5dGhvbi9h cmNfaW5pdC5jcHAgYi9weXRob24vYXJjX2luaXQuY3BwCi1pbmRleCA4NDU5Yzg0ZjIuLjAyYTYz MTUyNCAxMDA2NDQKLS0tLSBhL3B5dGhvbi9hcmNfaW5pdC5jcHAKLSsrKyBiL3B5dGhvbi9hcmNf aW5pdC5jcHAKLUBAIC00Niw3ICs0NiwxOSBAQCBOb3RlOiBpdCBzZWVtcyBsaWtlIFB5dGhvbiBp cyBoaWRpbmcgc2l0ZS1wYWNrYWdlcyBwYXJ0IG9mIHBhdGguIE1heWJlIGl0Ci0gaXMgaGFyZGNv ZGVkIGluc2lkZSBQeXRob24gc29tZXdoZXJlLiBCdXQgYXQgbGVhc3QgcGFydCB0aWxsIHNpdGUt cGFja2FnZXMKLSBzZWVtcyB0byBiZSBwcmVzZW50LgotICovCi0tI2lmIFBZX01BSk9SX1ZFUlNJ T04gPj0gMwotKyNpZiBQWV9WRVJTSU9OX0hFWCA+PSAweDAzMEUwMDAwCi0rICBzdGQ6OnN0cmlu ZyBweXRob25wYXRoOwotKyAgUHlPYmplY3QgKnBhdGhzID0gUHlDb25maWdfR2V0KCJtb2R1bGVf c2VhcmNoX3BhdGhzIik7Ci0rICBQeV9zc2l6ZV90IHN6ID0gUHlTZXF1ZW5jZV9TaXplKHBhdGhz KTsKLSsgIGZvciAoUHlfc3NpemVfdCBpID0gMDsgaSA8IHN6OyArK2kpIHsKLSsgICAgUHlPYmpl Y3QgKml0ZW0gPSBQeVNlcXVlbmNlX0dldEl0ZW0ocGF0aHMsIGkpOwotKyAgICBzdGQ6OnN0cmlu ZyBwYXRoID0gUHlVbmljb2RlX0FzVVRGOChpdGVtKTsKLSsgICAgUHlfREVDUkVGKGl0ZW0pOwot KyAgICBpZiAoaSA+IDApIHB5dGhvbnBhdGggKz0gJzonOwotKyAgICBweXRob25wYXRoICs9IHBh dGg7Ci0rICB9Ci0rICBQeV9ERUNSRUYocGF0aHMpOwotKyNlbGlmIFBZX01BSk9SX1ZFUlNJT04g Pj0gMwotICAgc3RkOjp3c3RyaW5nIHB5dGhvbndwYXRoID0gUHlfR2V0UGF0aCgpOwotICAgc3Rk OjpzdHJpbmcgcHl0aG9ucGF0aChweXRob253cGF0aC5iZWdpbigpLCBweXRob253cGF0aC5lbmQo KSk7Ci0gI2Vsc2UKLS0tIAotMi41MS4xCi0KCmRpZmYgLS1naXQgYS8wMDAxLUhhbmRsZS1QeXRo b24tbXVsdGktcGhhc2UtaW5pdGlhbGl6YXRpb24tc3VwcG9ydC1pbi0ucGF0Y2ggYi8wMDAxLUhh bmRsZS1QeXRob24tbXVsdGktcGhhc2UtaW5pdGlhbGl6YXRpb24tc3VwcG9ydC1pbi0ucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiOTk0MTQuLjAwMDAwMDAKLS0tIGEvMDAw MS1IYW5kbGUtUHl0aG9uLW11bHRpLXBoYXNlLWluaXRpYWxpemF0aW9uLXN1cHBvcnQtaW4tLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotRnJvbSA4NzM4ZWRmODYxOTY1NDNm ODYwYTY4NzhhNTczYTM2YzNlYWFlMjQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog V2lsbGlhbSBTIEZ1bHRvbiA8d3NmQGZ1bHRvbmRlc2lnbnMuY28udWs+Ci1EYXRlOiBTdW4sIDE5 IE9jdCAyMDI1IDE1OjQ5OjMxICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEhhbmRsZSBQeXRob24g bXVsdGktcGhhc2UgaW5pdGlhbGl6YXRpb24gc3VwcG9ydCBpbgotIHN3aWctNC40LjAKLQotRml4 ZXMgcHJvYmxlbSByZXBvcnRlZCBpbiBodHRwczovL2dpdGh1Yi5jb20vc3dpZy9zd2lnL2lzc3Vl cy8zMjY2LgotCi1GaXggaXMgaW1wbGVtZW50ZWQgdG8gc3VwcG9ydCBvcmlnaW5hbCBQeXRob24g c2luZ2xlLXBoYXNlIG1vZHVsZQotaW5pdGlhbGl6YXRpb24gdGhhdCBzd2lnLTQuMy4xIGFuZCBl YXJsaWVyIGdlbmVyYXRlZCBhcyB3ZWxsIGFzIHRoZQotbmV3IG11bHRpLXBoYXNlIG1vZHVsZSBp bml0aWFsaXphdGlvbiB0aGF0IHN3aWctNC4wLjAgZ2VuZXJhdGVzLgotQXJjIHN1YnZlcnRzIHRo ZSBub3JtYWwgbW9kdWxlIGluaXRpYWxpemF0aW9uIGJ5IG1hbnVhbGx5IGluaXRpYWxpemluZwot b3RoZXIgbW9kdWxlcyAoY29tbW9uLCBsb2FkZXIgbWVzc2FnZSwgY29tbXVuaWNhdGlvbiwgZXRj KSwgZHVyaW5nIHRoZQotaW5pdGlhbGl6YXRpb24gb2YgYXJjLiBUaGVzZSBvdGhlciBtb2R1bGVz IGFyZSBhbHNvIGdlbmVyYXRlZCBieSBTV0lHCi1mb3IgbXVsdGktcGhhc2UgaW5pdGlhbGl6YXRp b24gYnkgdGhlIFB5dGhvbiBpbnRlcnByZXRlci4gVGhlIG1hbnVhbAotaW5pdGlhbGl6YXRpb24g YnkgYXJjIGJyZWFrcyBhbmQgaXMgd29ya2VkIGFyb3VuZCBieSBpbXBsZW1lbnRpbmcgdGhlCi0n bGVnYWN5IGluaXRpYWxpemF0aW9uJyBhcHByb2FjaCBkb2N1bWVudGVkIGluIFBFUC00ODkKLWh0 dHBzOi8vcGVwcy5weXRob24ub3JnL3BlcC0wNDg5Ly4gVGhpcyBpcyBub3QgcmVhbGx5IHN0YW5k YXJkIGFzIHRoZQotbGVnYWN5IHNpbmdsZS1waGFzZSBpbml0aWFsaXphdGlvbiBpcyBpbXBsZW1l bnRlZCBldmVuIHRob3VnaCBTV0lHCi1oYXMgYWxyZWFkeSBzdGFydGVkIHRoZSBtdWx0aS1waGFz ZSBpbml0aWFsaXphdGlvbi4gVGhpcyBpcyBhY2hpZXZlZAotYnkgc2V0dGluZyBtX3Nsb3RzIGlu IFB5TW9kdWxlRGVmIHRvIE5VTEwgYW5kIG1hbnVhbGx5IGNhbGxpbmcgdGhlCi1QeV9tb2RfZXhl YyBmdW5jdGlvbiBpbiB0aGUgc2xvdCB0byBjb21wbGV0ZSB0aGUgc2Vjb25kIHBoYXNlIG9mIHRo ZQotaW5pdGlhbGl6YXRpb24uCi0KLVdoaWxlIHRoaXMgbWlnaHQgd29yayBmb3Igbm93LCBhIGZ1 dHVyZSBwcm9vZiBhcHByb2FjaCB3b3VsZCBiZQotZm9yIGVhY2ggb2YgdGhlIG1vZHVsZXMgdG8g YmUgaW5pdGlhbGl6ZWQgYnkgdGhlIFB5dGhvbiBpbnRlcnByZXRlcgotaW4gdGhlIHN0YW5kYXJk IHdheSBieSB1c2luZyBwcm9wZXIgc3ViLW1vZHVsZXMgdW5kZXIgYSB0b3AgbGV2ZWwgYXJjCi1t b2R1bGUvcGFja2FnZS4KLS0tLQotIHB5dGhvbi9zd2lnbW9kdWxlc2luaXRfd3JhcC5jcHAgfCAz OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMzcg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3B5dGhvbi9zd2ln bW9kdWxlc2luaXRfd3JhcC5jcHAgYi9weXRob24vc3dpZ21vZHVsZXNpbml0X3dyYXAuY3BwCi1p bmRleCBhYzExMGFmMmIuLjFlNDhkMmQyNiAxMDA2NDQKLS0tLSBhL3B5dGhvbi9zd2lnbW9kdWxl c2luaXRfd3JhcC5jcHAKLSsrKyBiL3B5dGhvbi9zd2lnbW9kdWxlc2luaXRfd3JhcC5jcHAKLUBA IC0yOSwxOCArMjksNTMgQEAgUHlNT0RJTklUX0ZVTkMgU1dJR19pbml0KGRhdGEpKHZvaWQpOwot IFB5TU9ESU5JVF9GVU5DIFNXSUdfaW5pdChkZWxlZ2F0aW9uKSh2b2lkKTsKLSBQeU1PRElOSVRf RlVOQyBTV0lHX2luaXQoc2VjdXJpdHkpKHZvaWQpOwotIAotKy8qIExlZ2FjeSBpbml0IGJhc2Vk IG9uIGh0dHBzOi8vcGVwcy5weXRob24ub3JnL3BlcC0wNDg5LyAqLwotK3N0YXRpYyBQeU9iamVj dCAqbW9kdWxlX2xlZ2FjeV9pbml0KFB5TW9kdWxlRGVmICpkZWYpIHsKLSsgIFB5TW9kdWxlRGVm X1Nsb3QgKnNsb3RzID0gZGVmLT5tX3Nsb3RzOwotKyAgZGVmLT5tX3Nsb3RzID0gTlVMTDsKLSsg IFB5T2JqZWN0ICptb2QgPSBQeU1vZHVsZV9DcmVhdGUoZGVmKTsKLSsgIHdoaWxlIChtb2QgJiYg c2xvdHMtPnNsb3QpIHsKLSsgICAgaWYgKHNsb3RzLT5zbG90ID09IFB5X21vZF9leGVjKSB7Ci0r ICAgICAgaW50ICgqbW9kX2V4ZWMpKFB5T2JqZWN0ICopID0gKGludCAoKikoUHlPYmplY3QgKikp c2xvdHMtPnZhbHVlOwotKyAgICAgIGlmIChtb2RfZXhlYyhtb2QpICE9IDApIHsKLSsgICAgICAg IFB5X0RFQ1JFRihtb2QpOwotKyAgICAgICAgbW9kID0gTlVMTDsKLSsgICAgICB9Ci0rICAgIH0K LSsgICAgKytzbG90czsKLSsgIH0KLSsgIHJldHVybiBtb2Q7Ci0rfQotKwotIHN0YXRpYyBQeU1P RFZBTCBpbml0X2V4dGVuc2lvbl9tb2R1bGUoUHlPYmplY3QqIHBhY2thZ2UsIGNvbnN0IGNoYXIg Km1vZHVsZW5hbWUsCi0gUHlNT0RWQUwgKCppbml0ZnVuY3Rpb24pKHZvaWQpKSB7Ci0gI2lmIFBZ X01BSk9SX1ZFUlNJT04gPj0gMwotLSAgUHlPYmplY3QgKm1vZHVsZSA9IGluaXRmdW5jdGlvbigp OwotKyAgLy8gc3dpZy00LjQuMCBpbXBsZW1lbnRzIFBFUC00ODkgbXVsdGktcGhhc2UgaW5pdGlh bGl6YXRpb24uCi0rICAvLyBIYW5kbGUgYm90aCBvbGQgc2luZ2xlLXBoYXNlIGFuZCBuZXcgbXVs dGktcGhhc2UgaW5pdGlhbGl6YXRpb24uCi0rICAvLyBNb2R1bGVzIHRoYXQgdXNlIG11bHRpLXBo YXNlIGluaXRpYWxpemF0aW9uIHdpbGwgcmV0dXJuIGEgUHlNb2R1bGVEZWYsIHNvIHRoZW4gd2Ug Zm9yY2UgYSBsZWdhY3kgc2luZ2xlLXBoYXNlIGluaXRpYWxpemF0aW9uLgotKyAgUHlPYmplY3Qg Km1vZHVsZV9vcl9tb2R1bGVfZGVmID0gaW5pdGZ1bmN0aW9uKCk7Ci0rICBpZiAoIW1vZHVsZV9v cl9tb2R1bGVfZGVmKSB7Ci0rICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIGZpcnN0IHBoYXNl IGluaXRpYWxpemluZyBQeXRob24gbW9kdWxlICclcycsIHRocm91Z2ggUHl0aG9uIEMgQVBJXG4i LCBtb2R1bGVuYW1lKTsKLSsgICAgUHlNT0RfUkVUVVJOKE5VTEwpOwotKyAgfQotKyAgUHlPYmpl Y3QgKm1vZHVsZSA9IE5VTEw7Ci0rICBpZiAoUHlPYmplY3RfVHlwZUNoZWNrKG1vZHVsZV9vcl9t b2R1bGVfZGVmLCAmUHlNb2R1bGVEZWZfVHlwZSkpIHsKLSsgICAgbW9kdWxlID0gbW9kdWxlX2xl Z2FjeV9pbml0KChQeU1vZHVsZURlZiAqKW1vZHVsZV9vcl9tb2R1bGVfZGVmKTsKLSsgICAgaWYg KCFtb2R1bGUpIHsKLSsgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCBzZWNvbmQgcGhhc2Ug aW5pdGlhbGl6aW5nIFB5dGhvbiBtb2R1bGUgJyVzJywgdGhyb3VnaCBQeXRob24gQyBBUElcbiIs IG1vZHVsZW5hbWUpOwotKyAgICAgIFB5TU9EX1JFVFVSTihOVUxMKTsKLSsgICAgfQotKyAgfSBl bHNlIHsKLSsgICAgbW9kdWxlID0gbW9kdWxlX29yX21vZHVsZV9kZWY7Ci0rICB9Ci0gI2Vsc2UK LSAgIGluaXRmdW5jdGlvbigpOwotICAgUHlPYmplY3QgKm1vZHVsZSA9IFB5SW1wb3J0X0FkZE1v ZHVsZSgoY2hhciAqKW1vZHVsZW5hbWUpOwotLSNlbmRpZgotICAgaWYoIW1vZHVsZSkgewotICAg ICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCBpbml0aWFsaXNpbmcgUHl0aG9uIG1vZHVsZSAnJXMn LCB0aHJvdWdoIFB5dGhvbiBDIEFQSVxuIiwgbW9kdWxlbmFtZSk7Ci0gICAgIFB5TU9EX1JFVFVS TihOVUxMKTsKLSAgIH0KLSsjZW5kaWYKLSAgIGlmKFB5TW9kdWxlX0FkZE9iamVjdChwYWNrYWdl LCAoY2hhciAqKW1vZHVsZW5hbWUsIG1vZHVsZSkpIHsKLSAgICAgZnByaW50ZihzdGRlcnIsICJG YWlsaWVkIGFkZGluZyBQeXRob24gbW9kdWxlICclcycgdG8gcGFja2FnZSAnYXJjJywgdGhyb3Vn aCBQeXRob24gQyBBUElcbiIsIG1vZHVsZW5hbWUpOwotICAgICBQeU1PRF9SRVRVUk4oTlVMTCk7 Ci0tLSAKLTIuNTEuMAotCgpkaWZmIC0tZ2l0IGEvMDAwMS1TdXBwb3J0LU9wZW5TU0wtNC5wYXRj aCBiLzAwMDEtU3VwcG9ydC1PcGVuU1NMLTQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDUxMjg5ZjcuLjAwMDAwMDAKLS0tIGEvMDAwMS1TdXBwb3J0LU9wZW5TU0wtNC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDU0NyArMCwwIEBACi1Gcm9tIDIxYjcxNDVkM2YxYTk0MDhj YzZmYzhmNGYyNWMzZDAwNjQ3OGEyNzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBN YXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2ljcy51dS5zZT4KLURhdGU6IFRodSwg MTggSnVuIDIwMjYgMTg6NTY6MjkgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gU3VwcG9ydCBPcGVu U1NMIDQKLQotLS0tCi0gc3JjL2NsaWVudHMvY29tcHV0ZS9hcmN0ZXN0LmNwcCAgICAgICAgICAg ICAgIHwgIDQgKysKLSBzcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9DZXJ0VXRpbC5jcHAgICAgICAg ICAgfCAyOCArKysrKy0tLQotIHNyYy9oZWQvbGlicy9jcmVkZW50aWFsL0NyZWRlbnRpYWwuY3Bw ICAgICAgICB8IDY2ICsrKysrKysrKystLS0tLS0tLS0KLSBzcmMvaGVkL2xpYnMvY3JlZGVudGlh bC9Qcm94eWNlcnRpbmZvLmNwcCAgICAgfCAgNiArLQotIHNyYy9oZWQvbGlicy9jcmVkZW50aWFs L1ZPTVNVdGlsLmNwcCAgICAgICAgICB8IDQwICsrKysrKy0tLS0tCi0gLi4uL2xpYnMvZGVsZWdh dGlvbi9EZWxlZ2F0aW9uSW50ZXJmYWNlLmNwcCAgIHwgMTUgKysrLS0KLSBzcmMvaGVkL21jYy90 bHMvRGVsZWdhdGlvbkNvbGxlY3Rvci5jcHAgICAgICAgfCAgNCArLQotIHNyYy9oZWQvbWNjL3Rs cy9QYXlsb2FkVExTTUNDLmNwcCAgICAgICAgICAgICB8ICA2ICstCi0gOCBmaWxlcyBjaGFuZ2Vk LCA5NiBpbnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9j bGllbnRzL2NvbXB1dGUvYXJjdGVzdC5jcHAgYi9zcmMvY2xpZW50cy9jb21wdXRlL2FyY3Rlc3Qu Y3BwCi1pbmRleCAxODRiN2U1MTguLjAyNGEwMzM4YSAxMDA2NDQKLS0tLSBhL3NyYy9jbGllbnRz L2NvbXB1dGUvYXJjdGVzdC5jcHAKLSsrKyBiL3NyYy9jbGllbnRzL2NvbXB1dGUvYXJjdGVzdC5j cHAKLUBAIC0zMzcsNyArMzM3LDExIEBAIGludCBkdW1wam9iZGVzY3JpcHRpb25fYXJjdGVzdF9s ZWdhY3koY29uc3QgQXJjOjpVc2VyQ29uZmlnJiB1c2VyY2ZnLCBBcmM6OkV4ZWN1Ci0gc3RhdGlj IGJvb2wgZ2V0X2hhc2hfdmFsdWUoY29uc3QgQXJjOjpDcmVkZW50aWFsJiBjLCBzdGQ6OnN0cmlu ZyYgaGFzaF9zdHIpIHsKLSAgIFg1MDkqIGNlcnQgPSBjLkdldENlcnQoKTsKLSAgIGlmKCFjZXJ0 KSByZXR1cm4gZmFsc2U7Ci0rI2lmIChPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgzMDAwMDAw MEwpCi0gICBYNTA5X05BTUUqIGNlcnRfbmFtZSA9IFg1MDlfZ2V0X3N1YmplY3RfbmFtZShjZXJ0 KTsKLSsjZWxzZQotKyAgY29uc3QgWDUwOV9OQU1FKiBjZXJ0X25hbWUgPSBYNTA5X2dldF9zdWJq ZWN0X25hbWUoY2VydCk7Ci0rI2VuZGlmCi0gICBpZighY2VydF9uYW1lKSByZXR1cm4gZmFsc2U7 Ci0gCi0gICBjaGFyIGhhc2hbMzJdOwotZGlmZiAtLWdpdCBhL3NyYy9oZWQvbGlicy9jcmVkZW50 aWFsL0NlcnRVdGlsLmNwcCBiL3NyYy9oZWQvbGlicy9jcmVkZW50aWFsL0NlcnRVdGlsLmNwcAot aW5kZXggMDc3NmVlNzE2Li41NTIxN2VjNWMgMTAwNjQ0Ci0tLS0gYS9zcmMvaGVkL2xpYnMvY3Jl ZGVudGlhbC9DZXJ0VXRpbC5jcHAKLSsrKyBiL3NyYy9oZWQvbGlicy9jcmVkZW50aWFsL0NlcnRV dGlsLmNwcAotQEAgLTMwNiw4ICszMDYsMTIgQEAgc3RhdGljIGludCB2ZXJpZnlfY2VydF9hZGRp dGlvbmFsKFg1MDkqIGNlcnQsIFg1MDlfU1RPUkVfQ1RYKiBzdG9yZV9jdHgsIHN0ZDo6c3QKLSAK LSBzdGF0aWMgYm9vbCBjb2xsZWN0X3Byb3h5X2luZm8oc3RkOjpzdHJpbmcmIHByb3h5X3BvbGlj eSwgWDUwOSogY2VydCkgewotICAgLyoqQ2hlY2sgdGhlIHByb3h5IGNlcnRpZmljYXRlIGluZm9t YXRpb24gZXh0ZW5zaW9uKi8KLSsjaWYgKE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAw MDAwTCkKLSAgIFg1MDlfRVhURU5TSU9OKiBleHQ7Ci0tICBBU04xX09CSkVDVCogZXh0ZW5zaW9u X29iajsKLSsjZWxzZQotKyAgY29uc3QgWDUwOV9FWFRFTlNJT04qIGV4dDsKLSsjZW5kaWYKLSsg IGNvbnN0IEFTTjFfT0JKRUNUKiBleHRlbnNpb25fb2JqOwotICAgaW50IGk7Ci0gICBmb3IgKGk9 MDtpPFg1MDlfZ2V0X2V4dF9jb3VudChjZXJ0KTtpKyspIHsKLSAgICAgZXh0ID0gKFg1MDlfRVhU RU5TSU9OICopIFg1MDlfZ2V0X2V4dChjZXJ0LGkpOwotQEAgLTM1OCwxMCArMzYyLDEwIEBAIHN0 YXRpYyBib29sIGNvbGxlY3RfcHJveHlfaW5mbyhzdGQ6OnN0cmluZyYgcHJveHlfcG9saWN5LCBY NTA5KiBjZXJ0KSB7Ci0gICAgICAgICAgICAgICBwcm94eV9wb2xpY3kuY2xlYXIoKTsKLSAgICAg ICAgICAgICAgIGlmKChwcm94eWNlcnRpbmZvLT5wcm94eVBvbGljeSkgJiYKLSAgICAgICAgICAg ICAgICAgIChwcm94eWNlcnRpbmZvLT5wcm94eVBvbGljeS0+cG9saWN5KSAmJgotLSAgICAgICAg ICAgICAgICAgKHByb3h5Y2VydGluZm8tPnByb3h5UG9saWN5LT5wb2xpY3ktPmRhdGEpKSB7Ci0r ICAgICAgICAgICAgICAgICBBU04xX1NUUklOR19nZXQwX2RhdGEocHJveHljZXJ0aW5mby0+cHJv eHlQb2xpY3ktPnBvbGljeSkpIHsKLSAgICAgICAgICAgICAgICAgcHJveHlfcG9saWN5LmFwcGVu ZCgKLS0gICAgICAgICAgICAgICAgICAgKGNoYXIgY29uc3QqKShwcm94eWNlcnRpbmZvLT5wcm94 eVBvbGljeS0+cG9saWN5LT5kYXRhKSwKLS0gICAgICAgICAgICAgICAgICAgcHJveHljZXJ0aW5m by0+cHJveHlQb2xpY3ktPnBvbGljeS0+bGVuZ3RoKTsKLSsgICAgICAgICAgICAgICAgICAgKGNo YXIgY29uc3QqKSBBU04xX1NUUklOR19nZXQwX2RhdGEocHJveHljZXJ0aW5mby0+cHJveHlQb2xp Y3ktPnBvbGljeSksCi0rICAgICAgICAgICAgICAgICAgIEFTTjFfU1RSSU5HX2xlbmd0aChwcm94 eWNlcnRpbmZvLT5wcm94eVBvbGljeS0+cG9saWN5KSk7Ci0gICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgICAvKiBVc2UgOiBhcyBzZXBhcmF0b3IgZm9yIHBvbGljaWVzIHBhcnNlZCBmcm9t IGRpZmZlcmVudCBwcm94eSBjZXJ0aWZpY2F0ZSovCi0gICAgICAgICAgICAgICAvKiAhISEhIFRh a2luZyBpbnQgYWNjb3VudCBwcmV2aW91cyBwcm94eV9wb2xpY3kuY2xlYXIoKSAhISEhCi1AQCAt Mzg3LDggKzM5MSwxMiBAQCBib29sIGNoZWNrX2NlcnRfdHlwZShYNTA5KiBjZXJ0LCBjZXJ0VHlw ZSYgdHlwZSkgewotICAgYm9vbCByZXQgPSBmYWxzZTsKLSAgIHR5cGUgPSBDRVJUX1RZUEVfRUVD OwotIAotLSAgQVNOMV9TVFJJTkcqIGRhdGE7Ci0rICBjb25zdCBBU04xX1NUUklORyogZGF0YTsK LSsjaWYgKE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTCkKLSAgIFg1MDlfRVhU RU5TSU9OKiBjZXJ0aW5mb19leHQ7Ci0rI2Vsc2UKLSsgIGNvbnN0IFg1MDlfRVhURU5TSU9OKiBj ZXJ0aW5mb19leHQ7Ci0rI2VuZGlmCi0gICBpbnQgcG9saWN5bmlkOwotICAgUFJPWFlfQ0VSVF9J TkZPX0VYVEVOU0lPTiogY2VydGluZm9fb3BlbnNzbCA9IE5VTEw7Ci0gCi1AQCAtNDA0LDggKzQx Miw4IEBAIGJvb2wgY2hlY2tfY2VydF90eXBlKFg1MDkqIGNlcnQsIGNlcnRUeXBlJiB0eXBlKSB7 Ci0gICB9Ci0gCi0gICBYNTA5X05BTUUqIGlzc3VlciA9IE5VTEw7Ci0tICBYNTA5X05BTUUqIHN1 YmplY3QgPSBYNTA5X2dldF9zdWJqZWN0X25hbWUoY2VydCk7Ci0tICBYNTA5X05BTUVfRU5UUlkg KiBuYW1lX2VudHJ5ID0gTlVMTDsKLSsgIGNvbnN0IFg1MDlfTkFNRSogc3ViamVjdCA9IFg1MDlf Z2V0X3N1YmplY3RfbmFtZShjZXJ0KTsKLSsgIGNvbnN0IFg1MDlfTkFNRV9FTlRSWSAqIG5hbWVf ZW50cnkgPSBOVUxMOwotICAgaWYoIXN1YmplY3QpIGdvdG8gZXJyOwotICAgbmFtZV9lbnRyeSA9 IFg1MDlfTkFNRV9nZXRfZW50cnkoc3ViamVjdCwgWDUwOV9OQU1FX2VudHJ5X2NvdW50KHN1Ympl Y3QpLTEpOwotICAgaWYoIW5hbWVfZW50cnkpIGdvdG8gZXJyOwotQEAgLTQxMyw4ICs0MjEsOCBA QCBib29sIGNoZWNrX2NlcnRfdHlwZShYNTA5KiBjZXJ0LCBjZXJ0VHlwZSYgdHlwZSkgewotICAg ICAvKiB0aGUgbmFtZSBlbnRyeSBpcyBvZiB0aGUgdHlwZTogY29tbW9uIG5hbWUgKi8KLSAgICAg ZGF0YSA9IFg1MDlfTkFNRV9FTlRSWV9nZXRfZGF0YShuYW1lX2VudHJ5KTsKLSAgICAgaWYoIWRh dGEpIGdvdG8gZXJyOwotLSAgICBpZiAoZGF0YS0+bGVuZ3RoID09IDUgJiYgIW1lbWNtcChkYXRh LT5kYXRhLCJwcm94eSIsNSkpIHsgdHlwZSA9IENFUlRfVFlQRV9HU0lfMl9QUk9YWTsgfQotLSAg ICBlbHNlIGlmKGRhdGEtPmxlbmd0aCA9PSAxMyAmJiAhbWVtY21wKGRhdGEtPmRhdGEsImxpbWl0 ZWQgcHJveHkiLDEzKSkgeyB0eXBlID0gQ0VSVF9UWVBFX0dTSV8yX0xJTUlURURfUFJPWFk7IH0K LSsgICAgaWYgKEFTTjFfU1RSSU5HX2xlbmd0aChkYXRhKSA9PSA1ICYmICFtZW1jbXAoQVNOMV9T VFJJTkdfZ2V0MF9kYXRhKGRhdGEpLCJwcm94eSIsNSkpIHsgdHlwZSA9IENFUlRfVFlQRV9HU0lf Ml9QUk9YWTsgfQotKyAgICBlbHNlIGlmKEFTTjFfU1RSSU5HX2xlbmd0aChkYXRhKSA9PSAxMyAm JiAhbWVtY21wKEFTTjFfU1RSSU5HX2dldDBfZGF0YShkYXRhKSwibGltaXRlZCBwcm94eSIsMTMp KSB7IHR5cGUgPSBDRVJUX1RZUEVfR1NJXzJfTElNSVRFRF9QUk9YWTsgfQotICAgICBlbHNlIGlm KChpbmRleCA9IFg1MDlfZ2V0X2V4dF9ieV9OSUQoY2VydCwgTklEX3Byb3h5Q2VydEluZm8sIC0x KSkgIT0gLTEpIHsKLSAgICAgICBjZXJ0aW5mb19leHQgPSBYNTA5X2dldF9leHQoY2VydCxpbmRl eCk7Ci0gICAgICAgaWYoWDUwOV9FWFRFTlNJT05fZ2V0X2NyaXRpY2FsKGNlcnRpbmZvX2V4dCkp IHsKLUBAIC00NTMsNyArNDYxLDcgQEAgYm9vbCBjaGVja19jZXJ0X3R5cGUoWDUwOSogY2VydCwg Y2VydFR5cGUmIHR5cGUpIHsKLSAgICAgWDUwOV9OQU1FX0VOVFJZKiBuZXdfbmFtZV9lbnRyeSA9 IE5VTEw7Ci0gICAgIGlmKHR5cGUgIT0gQ0VSVF9UWVBFX0VFQyAmJiB0eXBlICE9IENFUlRfVFlQ RV9DQSkgewotICAgICAgIGlzc3VlciA9IFg1MDlfTkFNRV9kdXAoWDUwOV9nZXRfaXNzdWVyX25h bWUoY2VydCkpOwotLSAgICAgIG5ld19uYW1lX2VudHJ5ID0gWDUwOV9OQU1FX0VOVFJZX2NyZWF0 ZV9ieV9OSUQoTlVMTCwgTklEX2NvbW1vbk5hbWUsIFZfQVNOMV9BUFBfQ0hPT1NFLCBkYXRhLT5k YXRhLCAtMSk7Ci0rICAgICAgbmV3X25hbWVfZW50cnkgPSBYNTA5X05BTUVfRU5UUllfY3JlYXRl X2J5X05JRChOVUxMLCBOSURfY29tbW9uTmFtZSwgVl9BU04xX0FQUF9DSE9PU0UsIEFTTjFfU1RS SU5HX2dldDBfZGF0YShkYXRhKSwgLTEpOwotICAgICAgIGlmKCFuZXdfbmFtZV9lbnRyeSkgZ290 byBlcnI7Ci0gICAgICAgWDUwOV9OQU1FX2FkZF9lbnRyeShpc3N1ZXIsbmV3X25hbWVfZW50cnks WDUwOV9OQU1FX2VudHJ5X2NvdW50KGlzc3VlciksMCk7Ci0gICAgICAgWDUwOV9OQU1FX0VOVFJZ X2ZyZWUobmV3X25hbWVfZW50cnkpOwotZGlmZiAtLWdpdCBhL3NyYy9oZWQvbGlicy9jcmVkZW50 aWFsL0NyZWRlbnRpYWwuY3BwIGIvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvQ3JlZGVudGlhbC5j cHAKLWluZGV4IDYwOWY5YTM0ZC4uNDM5NDk2ZWNhIDEwMDY0NAotLS0tIGEvc3JjL2hlZC9saWJz L2NyZWRlbnRpYWwvQ3JlZGVudGlhbC5jcHAKLSsrKyBiL3NyYy9oZWQvbGlicy9jcmVkZW50aWFs L0NyZWRlbnRpYWwuY3BwCi1AQCAtNzksMTUgKzc5LDE1IEBAIG5hbWVzcGFjZSBBcmMgewotICAg ICBFUlJfcHJpbnRfZXJyb3JzX2NiKCZzc2xfZXJyX2NiLCAmQ3JlZGVudGlhbExvZ2dlcik7Ci0g ICB9Ci0gCi0tICBUaW1lIGFzbjFfdG9fdXRjdGltZShjb25zdCBBU04xX1VUQ1RJTUUgKnMpIHsK LSsgIFRpbWUgYXNuMV90b191dGN0aW1lKGNvbnN0IEFTTjFfVElNRSAqcykgewotICAgICBpZihz ID09IE5VTEwpIHJldHVybiBUaW1lKCk7Ci0gICAgIHN0ZDo6c3RyaW5nIHRfc3RyOwotLSAgICBp ZihzLT50eXBlID09IFZfQVNOMV9VVENUSU1FKSB7Ci0rICAgIGlmKEFTTjFfU1RSSU5HX3R5cGUo cykgPT0gVl9BU04xX1VUQ1RJTUUpIHsKLSAgICAgICB0X3N0ci5hcHBlbmQoIjIwIik7Ci0tICAg ICAgdF9zdHIuYXBwZW5kKChjaGFyKikocy0+ZGF0YSkpOwotKyAgICAgIHRfc3RyLmFwcGVuZCgo Y29uc3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShzKSk7Ci0gICAgIH0KLSAgICAgZWxz ZSB7Ly9WX0FTTjFfR0VORVJBTElaRURUSU1FCi0tICAgICAgdF9zdHIuYXBwZW5kKChjaGFyKiko cy0+ZGF0YSkpOwotKyAgICAgIHRfc3RyLmFwcGVuZCgoY29uc3QgY2hhciopIEFTTjFfU1RSSU5H X2dldDBfZGF0YShzKSk7Ci0gICAgIH0KLSAgICAgcmV0dXJuIFRpbWUodF9zdHIpOwotICAgfQot QEAgLTEyNCw3ICsxMjQsNyBAQCBuYW1lc3BhY2UgQXJjIHsKLSAgIC8vR2V0IHRoZSBsaWZlIHRp bWUgb2YgdGhlIGNyZWRlbnRpYWwKLSAgIHZvaWQgQ3JlZGVudGlhbDo6R2V0TGlmZXRpbWUoU1RB Q0tfT0YoWDUwOSkgY29uc3QgKiBjZXJ0Y2hhaW4sIFg1MDkgY29uc3QgKiBjZXJ0LCBUaW1lJiBz dGFydCwgUGVyaW9kICZsaWZldGltZSkgewotICAgICBUaW1lIHN0YXJ0X3RpbWUoLTEpLCBlbmRf dGltZSgtMSk7Ci0tICAgIEFTTjFfVVRDVElNRSogYXRpbWUgPSBOVUxMOwotKyAgICBjb25zdCBB U04xX1VUQ1RJTUUqIGF0aW1lID0gTlVMTDsKLSAKLSAgICAgaWYoY2VydCA9PSBOVUxMKSB7Ci0g ICAgICAgc3RhcnQgPSBUaW1lKCk7Ci1AQCAtMTM1LDIwICsxMzUsMjAgQEAgbmFtZXNwYWNlIEFy YyB7Ci0gICAgIGlmKGNlcnRjaGFpbikgZm9yIChpbnQgbiA9IDA7IG4gPCBza19YNTA5X251bShj ZXJ0Y2hhaW4pOyBuKyspIHsKLSAgICAgICBYNTA5KiB0bXBfY2VydCA9IHNrX1g1MDlfdmFsdWUo Y2VydGNoYWluLCBuKTsKLSAKLS0gICAgICBhdGltZSA9IFg1MDlfZ2V0bV9ub3RBZnRlcih0bXBf Y2VydCk7Ci0rICAgICAgYXRpbWUgPSBYNTA5X2dldDBfbm90QWZ0ZXIodG1wX2NlcnQpOwotICAg ICAgIFRpbWUgZSA9IGFzbjFfdG9fdXRjdGltZShhdGltZSk7Ci0gICAgICAgaWYgKGVuZF90aW1l ID09IFRpbWUoLTEpIHx8IGUgPCBlbmRfdGltZSkgeyBlbmRfdGltZSA9IGU7IH0KLSAKLS0gICAg ICBhdGltZSA9IFg1MDlfZ2V0bV9ub3RCZWZvcmUodG1wX2NlcnQpOwotKyAgICAgIGF0aW1lID0g WDUwOV9nZXQwX25vdEJlZm9yZSh0bXBfY2VydCk7Ci0gICAgICAgVGltZSBzID0gYXNuMV90b191 dGN0aW1lKGF0aW1lKTsKLSAgICAgICBpZiAoc3RhcnRfdGltZSA9PSBUaW1lKC0xKSB8fCBzID4g c3RhcnRfdGltZSkgeyBzdGFydF90aW1lID0gczsgfQotICAgICB9Ci0gCi0tICAgIGF0aW1lID0g WDUwOV9nZXRtX25vdEFmdGVyKGNlcnQpOwotKyAgICBhdGltZSA9IFg1MDlfZ2V0MF9ub3RBZnRl cihjZXJ0KTsKLSAgICAgVGltZSBlID0gYXNuMV90b191dGN0aW1lKGF0aW1lKTsKLSAgICAgaWYg KGVuZF90aW1lID09IFRpbWUoLTEpIHx8IGUgPCBlbmRfdGltZSkgeyBlbmRfdGltZSA9IGU7IH0K LSAKLS0gICAgYXRpbWUgPSBYNTA5X2dldG1fbm90QmVmb3JlKGNlcnQpOwotKyAgICBhdGltZSA9 IFg1MDlfZ2V0MF9ub3RCZWZvcmUoY2VydCk7Ci0gICAgIFRpbWUgcyA9IGFzbjFfdG9fdXRjdGlt ZShhdGltZSk7Ci0gICAgIGlmIChzdGFydF90aW1lID09IFRpbWUoLTEpIHx8IHMgPiBzdGFydF90 aW1lKSB7IHN0YXJ0X3RpbWUgPSBzOyB9Ci0gCi1AQCAtMjQ5LDcgKzI0OSw3IEBAIG5hbWVzcGFj ZSBBcmMgewotICAgfQotIAotICAgc3RkOjpzdHJpbmcgQ3JlZGVudGlhbDo6R2V0RE4odm9pZCkg Y29uc3QgewotLSAgICBYNTA5X05BTUUgKnN1YmplY3QgPSBOVUxMOwotKyAgICBjb25zdCBYNTA5 X05BTUUgKnN1YmplY3QgPSBOVUxMOwotICAgICBpZighY2VydF8pIHJldHVybiAiIjsKLSAgICAg c3ViamVjdCA9IFg1MDlfZ2V0X3N1YmplY3RfbmFtZShjZXJ0Xyk7Ci0gICAgIHN0ZDo6c3RyaW5n IHN0cjsKLUBAIC0yNjksMTkgKzI2OSwxNyBAQCBuYW1lc3BhY2UgQXJjIHsKLSAgICAgaWYoIWNl cnRfKSByZXR1cm4gIiI7Ci0gICAgIHN1YmplY3QgPSBYNTA5X05BTUVfZHVwKFg1MDlfZ2V0X3N1 YmplY3RfbmFtZShjZXJ0XykpOwotIAotLSAgICBBU04xX1NUUklORyogZW50cnk7Ci0rICAgIGNv bnN0IEFTTjFfU1RSSU5HKiBlbnRyeTsKLSAgICAgc3RkOjpzdHJpbmcgZW50cnlfc3RyOwotICAg ICBmb3IoOzspIHsKLS0gICAgICBYNTA5X05BTUVfRU5UUlkgKm5lID0gWDUwOV9OQU1FX2dldF9l bnRyeShzdWJqZWN0LCBYNTA5X05BTUVfZW50cnlfY291bnQoc3ViamVjdCktMSk7Ci0rICAgICAg Y29uc3QgWDUwOV9OQU1FX0VOVFJZICpuZSA9IFg1MDlfTkFNRV9nZXRfZW50cnkoc3ViamVjdCwg WDUwOV9OQU1FX2VudHJ5X2NvdW50KHN1YmplY3QpLTEpOwotICAgICAgIGlmICghT0JKX2NtcChY NTA5X05BTUVfRU5UUllfZ2V0X29iamVjdChuZSksT0JKX25pZDJvYmooTklEX2NvbW1vbk5hbWUp KSkgewotICAgICAgICAgZW50cnkgPSBYNTA5X05BTUVfRU5UUllfZ2V0X2RhdGEobmUpOwotLSAg ICAgICAgZW50cnlfc3RyLmFzc2lnbigoY29uc3QgY2hhciopKGVudHJ5LT5kYXRhKSwgKHN0ZDo6 c2l6ZV90KShlbnRyeS0+bGVuZ3RoKSk7Ci0rICAgICAgICBlbnRyeV9zdHIuYXNzaWduKChjb25z dCBjaGFyKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGVudHJ5KSwgKHN0ZDo6c2l6ZV90KSBBU04x X1NUUklOR19sZW5ndGgoZW50cnkpKTsKLSAgICAgICAgIGlmKGVudHJ5X3N0ciA9PSAicHJveHki IHx8IGVudHJ5X3N0ciA9PSAibGltaXRlZCBwcm94eSIgfHwKLSAgICAgICAgICAgIGVudHJ5X3N0 ci5maW5kX2ZpcnN0X25vdF9vZigiMDEyMzQ1Njc4OSIpID09IHN0ZDo6c3RyaW5nOjpucG9zKSB7 Ci0gICAgICAgICAgIC8vRHJvcCB0aGUgbmFtZSBlbnRyeSAicHJveHkiLCAibGltaXRlZCBwcm94 eSIsIG9yIHRoZSByYW5kb20gZGlnaXRhbChSRkMpCi0tICAgICAgICAgIG5lID0gWDUwOV9OQU1F X2RlbGV0ZV9lbnRyeShzdWJqZWN0LCBYNTA5X05BTUVfZW50cnlfY291bnQoc3ViamVjdCktMSk7 Ci0tICAgICAgICAgIFg1MDlfTkFNRV9FTlRSWV9mcmVlKG5lKTsKLS0gICAgICAgICAgbmUgPSBO VUxMOwotKyAgICAgICAgICBYNTA5X05BTUVfRU5UUllfZnJlZShYNTA5X05BTUVfZGVsZXRlX2Vu dHJ5KHN1YmplY3QsIFg1MDlfTkFNRV9lbnRyeV9jb3VudChzdWJqZWN0KS0xKSk7Ci0gICAgICAg ICB9Ci0gICAgICAgICBlbHNlIGJyZWFrOwotICAgICAgIH0KLUBAIC0zMDUsNyArMzAzLDcgQEAg bmFtZXNwYWNlIEFyYyB7Ci0gICB9Ci0gCi0gICBzdGQ6OnN0cmluZyBDcmVkZW50aWFsOjpHZXRJ c3N1ZXJOYW1lKHZvaWQpIGNvbnN0IHsKLS0gICAgWDUwOV9OQU1FICppc3N1ZXIgPSBOVUxMOwot KyAgICBjb25zdCBYNTA5X05BTUUgKmlzc3VlciA9IE5VTEw7Ci0gICAgIGlmKCFjZXJ0XykgcmV0 dXJuICIiOwotICAgICBpc3N1ZXIgPSBYNTA5X2dldF9pc3N1ZXJfbmFtZShjZXJ0Xyk7Ci0gICAg IHN0ZDo6c3RyaW5nIHN0cjsKLUBAIC0zMjcsNyArMzI1LDcgQEAgbmFtZXNwYWNlIEFyYyB7Ci0g ICAgICAgLy8gVGhpcyB3b3JrcyBldmVuIGlmIGxhc3QgY2VydCBvbiBjaGFpbiBpcyBDQQotICAg ICAgIC8vIGl0c2VsZiBiZWNhdXNlIENBIGlzIHNlbGYtc2lnbmVkLgotICAgICAgIFg1MDkgKmNh Y2VydCA9IHNrX1g1MDlfdmFsdWUoY2VydF9jaGFpbl8sIG51bS0xKTsKLS0gICAgICBYNTA5X05B TUUgKmNhbmFtZSA9IFg1MDlfZ2V0X2lzc3Vlcl9uYW1lKGNhY2VydCk7Ci0rICAgICAgY29uc3Qg WDUwOV9OQU1FICpjYW5hbWUgPSBYNTA5X2dldF9pc3N1ZXJfbmFtZShjYWNlcnQpOwotICAgICAg IGlmKGNhbmFtZSE9TlVMTCkgewotICAgICAgICAgY2hhciogYnVmID0gWDUwOV9OQU1FX29uZWxp bmUoY2FuYW1lLE5VTEwsMCk7Ci0gICAgICAgICBpZihidWYpIHsKLUBAIC0xMTU4LDE2ICsxMTU2 LDEyIEBAIG5hbWVzcGFjZSBBcmMgewotICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0t ICAgIC8vQVNOMV9PQ1RFVF9TVFJJTkdfc2V0KGV4dF9vY3QsIGRhdGEuY19zdHIoKSwgZGF0YS5z aXplKCkpOwotLSAgICBleHRfb2N0LT5kYXRhID0gKHVuc2lnbmVkIGNoYXIqKSBtYWxsb2MoZGF0 YS5zaXplKCkpOwotLSAgICBpZighKGV4dF9vY3QtPmRhdGEpKSB7Ci0rICAgIGlmIChBU04xX09D VEVUX1NUUklOR19zZXQoZXh0X29jdCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgZGF0YS5jX3N0 cigpLCBkYXRhLnNpemUoKSkgPT0gMCkgewotICAgICAgIENyZWRlbnRpYWxMb2dnZXIubXNnKEVS Uk9SLCAiQ2FuIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGV4dGVuc2lvbiBmb3IgcHJveHkgY2Vy dGlmaWNhdGUiKTsKLSAgICAgICBpZihleHRfb2N0KSBBU04xX09DVEVUX1NUUklOR19mcmVlKGV4 dF9vY3QpOwotICAgICAgIGlmKGV4dF9vYmopIEFTTjFfT0JKRUNUX2ZyZWUoZXh0X29iaik7Ci0g ICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLS0gICAgbWVtY3B5KGV4dF9vY3QtPmRhdGEsIGRh dGEuY19zdHIoKSwgZGF0YS5zaXplKCkpOwotLSAgICBleHRfb2N0LT5sZW5ndGggPSBkYXRhLnNp emUoKTsKLSAKLSAgICAgWDUwOV9FWFRFTlNJT04qIGV4dCA9IE5VTEw7Ci0gICAgIGlmICghKGV4 dCA9IFg1MDlfRVhURU5TSU9OX2NyZWF0ZV9ieV9PQkooTlVMTCwgZXh0X29iaiwgY3JpdCwgZXh0 X29jdCkpKSB7Ci1AQCAtMTcwOCwxNCArMTcwMiwxNCBAQCBuYW1lc3BhY2UgQXJjIHsKLSAgICAg cmVxX2V4dGVuc2lvbnMgPSBYNTA5X1JFUV9nZXRfZXh0ZW5zaW9ucyhyZXFfKTsKLSAgICAgZm9y KGk9MDtpPHNrX1g1MDlfRVhURU5TSU9OX251bShyZXFfZXh0ZW5zaW9ucyk7aSsrKSB7Ci0gICAg ICAgWDUwOV9FWFRFTlNJT04qIGV4dCA9IHNrX1g1MDlfRVhURU5TSU9OX3ZhbHVlKHJlcV9leHRl bnNpb25zLGkpOwotLSAgICAgIEFTTjFfT0JKRUNUKiBleHRlbnNpb25fb2lkID0gWDUwOV9FWFRF TlNJT05fZ2V0X29iamVjdChleHQpOwotKyAgICAgIGNvbnN0IEFTTjFfT0JKRUNUKiBleHRlbnNp b25fb2lkID0gWDUwOV9FWFRFTlNJT05fZ2V0X29iamVjdChleHQpOwotICAgICAgIGludCBuaWQg PSBPQkpfb2JqMm5pZChleHRlbnNpb25fb2lkKTsKLSAgICAgICBpZihuaWQgPT0gTklEX3Byb3h5 Q2VydEluZm8pIHsKLSAgICAgICAgIGlmKHByb3h5X2NlcnRfaW5mb18pIHsKLSAgICAgICAgICAg UFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTl9mcmVlKHByb3h5X2NlcnRfaW5mb18pOwotICAgICAg ICAgICBwcm94eV9jZXJ0X2luZm9fID0gTlVMTDsKLSAgICAgICAgIH0KLS0gICAgICAgIEFTTjFf T0NURVRfU1RSSU5HKiBkYXRhID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KTsKLSsgICAg ICAgIGNvbnN0IEFTTjFfT0NURVRfU1RSSU5HKiBkYXRhID0gWDUwOV9FWFRFTlNJT05fZ2V0X2Rh dGEoZXh0KTsKLSAgICAgICAgIGlmKCFkYXRhKSB7Ci0gICAgICAgICAgICBDcmVkZW50aWFsTG9n Z2VyLm1zZyhFUlJPUiwgIk1pc3NpbmcgZGF0YSBpbiBERVIgZW5jb2RlZCBQUk9YWV9DRVJUX0lO Rk9fRVhURU5TSU9OIGV4dGVuc2lvbiIpOwotICAgICAgICAgICAgTG9nRXJyb3IoKTsgZ290byBl cnI7Ci1AQCAtMTk1NCw3ICsxOTQ4LDExIEBAIGVycjoKLSAgICAgaW50IG51bTsKLSAgICAgaWYg KChudW0gPSBYNTA5X2dldF9leHRfY291bnQoY2VydF8pKSA+IDApIHsKLSAgICAgICBmb3IgKGlu dCBpID0gMDsgaSA8IG51bTsgaSsrKSB7Ci0rI2lmIChPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwg MHg0MDAwMDAwMEwpCi0gICAgICAgICBYNTA5X0VYVEVOU0lPTiAqZXh0OwotKyNlbHNlCi0rICAg ICAgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXh0OwotKyNlbmRpZgotICAgICAgICAgY29uc3Qg Y2hhciAqZXh0bmFtZTsKLSAKLSAgICAgICAgIGV4dCA9IFg1MDlfZ2V0X2V4dChjZXJ0XywgaSk7 Ci1AQCAtMTk3MCwxOCArMTk2OCwxOCBAQCBlcnI6Ci0gICAgICAgICAgIC8vR2V0IHg1MDkgZXh0 ZW5zaW9uIG1ldGhvZCBzdHJ1Y3R1cmUKLSAgICAgICAgICAgaWYgKCEobWV0aG9kID0gKFg1MDlW M19FWFRfTUVUSE9EICopKFg1MDlWM19FWFRfZ2V0KGV4dCkpKSkgYnJlYWs7Ci0gCi0tICAgICAg ICAgIEFTTjFfT0NURVRfU1RSSU5HKiBleHR2YWx1ZSA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRh KGV4dCk7Ci0tICAgICAgICAgIGV4dF92YWx1ZV9kYXRhID0gZXh0dmFsdWUtPmRhdGE7Ci0rICAg ICAgICAgIGNvbnN0IEFTTjFfT0NURVRfU1RSSU5HKiBleHR2YWx1ZSA9IFg1MDlfRVhURU5TSU9O X2dldF9kYXRhKGV4dCk7Ci0rICAgICAgICAgIGV4dF92YWx1ZV9kYXRhID0gQVNOMV9TVFJJTkdf Z2V0MF9kYXRhKGV4dHZhbHVlKTsKLSAKLSAgICAgICAgICAgLy9EZWNvZGUgQVNOMSBpdGVtIGlu IGRhdGEKLSAgICAgICAgICAgaWYgKG1ldGhvZC0+aXQpIHsKLSAgICAgICAgICAgICAgICAvL05l dyBzdHlsZSBBU04xCi0tICAgICAgICAgICAgICAgZXh0c3RyID0gQVNOMV9pdGVtX2QyaShOVUxM LCAmZXh0X3ZhbHVlX2RhdGEsIGV4dHZhbHVlLT5sZW5ndGgsCi0rICAgICAgICAgICAgICAgZXh0 c3RyID0gQVNOMV9pdGVtX2QyaShOVUxMLCAmZXh0X3ZhbHVlX2RhdGEsIEFTTjFfU1RSSU5HX2xl bmd0aChleHR2YWx1ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB U04xX0lURU1fcHRyKG1ldGhvZC0+aXQpKTsKLSAgICAgICAgICAgfQotICAgICAgICAgICBlbHNl IHsKLSAgICAgICAgICAgICAgICAvL09sZCBzdHlsZSBBU04xCi0tICAgICAgICAgICAgICAgZXh0 c3RyID0gbWV0aG9kLT5kMmkoTlVMTCwgJmV4dF92YWx1ZV9kYXRhLCBleHR2YWx1ZS0+bGVuZ3Ro KTsKLSsgICAgICAgICAgICAgICBleHRzdHIgPSBtZXRob2QtPmQyaShOVUxMLCAmZXh0X3ZhbHVl X2RhdGEsIEFTTjFfU1RSSU5HX2xlbmd0aChleHR2YWx1ZSkpOwotICAgICAgICAgICB9Ci0gCi0g ICAgICAgICAgIHZhbCA9IG1ldGhvZC0+aTJ2KG1ldGhvZCwgZXh0c3RyLCBOVUxMKTsKLUBAIC0y MTAwLDEyICsyMDk4LDE2IEBAIGVycjoKLSAKLSAgICAgcG9zaXRpb24gPSBYNTA5X2dldF9leHRf YnlfTklEKGlzc3VlciwgTklEX2V4dF9rZXlfdXNhZ2UsIC0xKTsKLSAgICAgaWYocG9zaXRpb24g PiAtMSkgewotLSAgICAgIFg1MDlfRVhURU5TSU9OKiBleHQgPSBOVUxMOwotLSAgICAgIGlmKCEo ZXh0ID0gWDUwOV9nZXRfZXh0KGlzc3VlciwgcG9zaXRpb24pKSkgewotKyNpZiAoT1BFTlNTTF9W RVJTSU9OX05VTUJFUiA8IDB4MzAwMDAwMDBMKQotKyAgICAgIFg1MDlfRVhURU5TSU9OKiBleHQw OwotKyNlbHNlCi0rICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04qIGV4dDA7Ci0rI2VuZGlmCi0r ICAgICAgaWYoIShleHQwID0gWDUwOV9nZXRfZXh0KGlzc3VlciwgcG9zaXRpb24pKSkgewotICAg ICAgICAgQ3JlZGVudGlhbExvZ2dlci5tc2coRVJST1IsICJDYW4gbm90IGdldCBleHRlbmRlZCBL ZXlVc2FnZSBleHRlbnNpb24gZnJvbSBpc3N1ZXIgY2VydGlmaWNhdGUiKTsKLSAgICAgICAgIExv Z0Vycm9yKCk7IGdvdG8gZXJyOwotICAgICAgIH0KLS0gICAgICBleHQgPSBYNTA5X0VYVEVOU0lP Tl9kdXAoZXh0KTsKLSsgICAgICBYNTA5X0VYVEVOU0lPTiogZXh0ID0gWDUwOV9FWFRFTlNJT05f ZHVwKGV4dDApOwotICAgICAgIGlmKCFleHQpIHsKLSAgICAgICAgIENyZWRlbnRpYWxMb2dnZXIu bXNnKEVSUk9SLCAiQ2FuIG5vdCBjb3B5IGV4dGVuZGVkIEtleVVzYWdlIGV4dGVuc2lvbiIpOwot ICAgICAgICAgTG9nRXJyb3IoKTsgZ290byBlcnI7Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlZC9saWJz L2NyZWRlbnRpYWwvUHJveHljZXJ0aW5mby5jcHAgYi9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9Q cm94eWNlcnRpbmZvLmNwcAotaW5kZXggYWYyNGFmZDVlLi42ZjBmMjE0ZjcgMTAwNjQ0Ci0tLS0g YS9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9Qcm94eWNlcnRpbmZvLmNwcAotKysrIGIvc3JjL2hl ZC9saWJzL2NyZWRlbnRpYWwvUHJveHljZXJ0aW5mby5jcHAKLUBAIC01NCwxMiArNTQsMTIgQEAg aW50IFBST1hZX1BPTElDWV9zZXRfcG9saWN5KFBST1hZX1BPTElDWSAqIHByb3h5cG9saWN5LCB1 bnNpZ25lZCBjaGFyICogcG9saWN5LAotIHVuc2lnbmVkIGNoYXIgKiBQUk9YWV9QT0xJQ1lfZ2V0 X3BvbGljeShQUk9YWV9QT0xJQ1kgKiBwcm94eXBvbGljeSwgaW50ICogbGVuZ3RoKSB7Ci0gICAv KiBhc3N1cmUgZmllbGQgcG9saWN5IGlzIHNldCAqLwotICAgaWYocHJveHlwb2xpY3ktPnBvbGlj eSkgewotLSAgICAqbGVuZ3RoID0gcHJveHlwb2xpY3ktPnBvbGljeS0+bGVuZ3RoOwotKyAgICAq bGVuZ3RoID0gQVNOMV9TVFJJTkdfbGVuZ3RoKHByb3h5cG9saWN5LT5wb2xpY3kpOwotICAgICAv KiBhc3N1cmUgQVNOMV9PQ1RFVF9TVFJJTkcgaXMgZnVsbCAqLwotLSAgICBpZiAoKmxlbmd0aD4w ICYmIHByb3h5cG9saWN5LT5wb2xpY3ktPmRhdGEpIHsKLSsgICAgaWYgKCpsZW5ndGggPiAwICYm IEFTTjFfU1RSSU5HX2dldDBfZGF0YShwcm94eXBvbGljeS0+cG9saWN5KSkgewotICAgICAgIHVu c2lnbmVkIGNoYXIgKiBjb3B5ID0gKHVuc2lnbmVkIGNoYXIqKSBtYWxsb2MoKmxlbmd0aCk7Ci0g ICAgICAgaWYoY29weSkgewotLSAgICAgICAgbWVtY3B5KGNvcHksIHByb3h5cG9saWN5LT5wb2xp Y3ktPmRhdGEsICpsZW5ndGgpOwotKyAgICAgICAgbWVtY3B5KGNvcHksIEFTTjFfU1RSSU5HX2dl dDBfZGF0YShwcm94eXBvbGljeS0+cG9saWN5KSwgKmxlbmd0aCk7Ci0gICAgICAgICByZXR1cm4g Y29weTsKLSAgICAgICB9Ci0gICAgIH0KLWRpZmYgLS1naXQgYS9zcmMvaGVkL2xpYnMvY3JlZGVu dGlhbC9WT01TVXRpbC5jcHAgYi9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9WT01TVXRpbC5jcHAK LWluZGV4IDJiNGYxMzM1Zi4uOGE0YTU4ZWE4IDEwMDY0NAotLS0tIGEvc3JjL2hlZC9saWJzL2Ny ZWRlbnRpYWwvVk9NU1V0aWwuY3BwCi0rKysgYi9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9WT01T VXRpbC5jcHAKLUBAIC04MTgsNyArODE4LDcgQEAgZXJyOgotICAgICAgIC8vIGNvbnN0X2Nhc3Qg aGFjayBkdWUgdG8gbWlzc2luZyBzZXQgbWV0aG9kCi0gICAgICAgY29uc3QgQVNOMV9CSVRfU1RS SU5HKiBic3RyID0gWDUwOV9BQ0VSVF9nZXQwX2lzc3VlclVJRChhKTsKLSAgICAgICBpZihic3Ry KQotLSAgICAgICAgQVNOMV9CSVRfU1RSSU5HX3NldChjb25zdF9jYXN0PEFTTjFfQklUX1NUUklO Ryo+KGJzdHIpLCB1aWQtPmRhdGEsIHVpZC0+bGVuZ3RoKTsKLSsgICAgICAgIEFTTjFfQklUX1NU UklOR19zZXQoY29uc3RfY2FzdDxBU04xX0JJVF9TVFJJTkcqPihic3RyKSwgY29uc3RfY2FzdDx1 bnNpZ25lZCBjaGFyKj4oQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHVpZCkpLCBBU04xX1NUUklOR19s ZW5ndGgodWlkKSk7Ci0gICAgIH0KLSAKLSAgICAgaWYoYWxnMSkgewotQEAgLTE0NTUsNyArMTQ1 NSw3IEBAIGVycjoKLSAgICAgR0VORVJBTF9OQU1FICpkYXRhID0gc2tfR0VORVJBTF9OQU1FX3Zh bHVlKE9TU0xfSUVURl9BVFRSX1NZTlRBWF9nZXQwX3BvbGljeUF1dGhvcml0eShjYXBhdHRyKSwg MCk7Ci0gICAgIGlmIChkYXRhICYmIGRhdGEtPnR5cGUgPT0gR0VOX1VSSSkgewotICAgICAgIHN0 ZDo6c3RyaW5nIHZvbmFtZSgiL3ZvbmFtZT0iKTsKLS0gICAgICB2b25hbWUuYXBwZW5kKChjb25z dCBjaGFyKikoZGF0YS0+ZC5pYTUtPmRhdGEpLCBkYXRhLT5kLmlhNS0+bGVuZ3RoKTsKLSsgICAg ICB2b25hbWUuYXBwZW5kKChjb25zdCBjaGFyKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGRhdGEt PmQuaWE1KSwgQVNOMV9TVFJJTkdfbGVuZ3RoKGRhdGEtPmQuaWE1KSk7Ci0gICAgICAgc3RkOjpz dHJpbmc6OnNpemVfdHlwZSBwb3MgPSB2b25hbWUuZmluZCgiOi8vIik7Ci0gICAgICAgaWYocG9z ICE9IHN0ZDo6c3RyaW5nOjpucG9zKSB7Ci0gICAgICAgICB2b25hbWUucmVwbGFjZShwb3MsMywi L2hvc3RuYW1lPSIpOwotQEAgLTE0NzksNyArMTQ3OSw3IEBAIGVycjoKLSAgICAgICAgIHJldHVy biBmYWxzZTsKLSAgICAgICB9Ci0gCi0tICAgICAgc3RkOjpzdHJpbmcgZnFhbigoY29uc3QgY2hh ciopKGNhcG5hbWUtPmRhdGEpLCBjYXBuYW1lLT5sZW5ndGgpOwotKyAgICAgIHN0ZDo6c3RyaW5n IGZxYW4oKGNvbnN0IGNoYXIqKSBBU04xX1NUUklOR19nZXQwX2RhdGEoY2FwbmFtZSksIEFTTjFf U1RSSU5HX2xlbmd0aChjYXBuYW1lKSk7Ci0gCi0gICAgICAgLy8gaWYgdGhlIGF0dHJpYnV0ZSBp cyBsaWtlOiAva25vd2FyYy5ldS9Sb2xlPU5VTEwvQ2FwYWJpbGl0eT1OVUxMCi0gICAgICAgLy8g b3IgL2tub3dhcmMuZXUvUm9sZT10ZXN0ZXIvQ2FwYWJpbGl0eT1OVUxMCi1AQCAtMTUzMyw3ICsx NTMzLDcgQEAgZXJyOgotICAgICAgIFNUQUNLX09GKEFDX0FUVFJJQlVURSkgKmF0dHMgPSBob2xk ZXItPmF0dHJpYnV0ZXM7Ci0gCi0gICAgICAgZ24gPSBza19HRU5FUkFMX05BTUVfdmFsdWUoaG9s ZGVyLT5ncmFudG9yLCAwKTsKLS0gICAgICBncmFudG9yLmFzc2lnbigoY29uc3QgY2hhciopKGdu LT5kLmlhNS0+ZGF0YSksIGduLT5kLmlhNS0+bGVuZ3RoKTsKLSsgICAgICBncmFudG9yLmFzc2ln bigoY29uc3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShnbi0+ZC5pYTUpLCBBU04xX1NU UklOR19sZW5ndGgoZ24tPmQuaWE1KSk7Ci0gICAgICAgaWYoZ3JhbnRvci5lbXB0eSgpKSB7Ci0g ICAgICAgICBDcmVkZW50aWFsTG9nZ2VyLm1zZyhFUlJPUiwiVk9NUzogdGhlIGdyYW50b3IgYXR0 cmlidXRlIGlzIGVtcHR5Iik7Ci0gICAgICAgICBzdGF0dXMgfD0gVk9NU0FDSW5mbzo6SW50ZXJu YWxQYXJzaW5nRmFpbGVkOwotQEAgLTE1NTEsMTggKzE1NTEsMTggQEAgZXJyOgotICAgICAgICAg c3RkOjpzdHJpbmcgYXR0cmlidXRlOwotICAgICAgICAgQUNfQVRUUklCVVRFICphdCA9IHNrX0FD X0FUVFJJQlVURV92YWx1ZShhdHRzLCBqKTsKLSAKLS0gICAgICAgIG5hbWUuYXNzaWduKChjb25z dCBjaGFyKikoYXQtPm5hbWUtPmRhdGEpLCBhdC0+bmFtZS0+bGVuZ3RoKTsKLSsgICAgICAgIG5h bWUuYXNzaWduKChjb25zdCBjaGFyKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGF0LT5uYW1lKSwg QVNOMV9TVFJJTkdfbGVuZ3RoKGF0LT5uYW1lKSk7Ci0gICAgICAgICBpZihuYW1lLmVtcHR5KCkp IHsKLSAgICAgICAgICAgQ3JlZGVudGlhbExvZ2dlci5tc2coRVJST1IsIlZPTVM6IHRoZSBhdHRy aWJ1dGUgbmFtZSBpcyBlbXB0eSIpOwotICAgICAgICAgICBzdGF0dXMgfD0gVk9NU0FDSW5mbzo6 SW50ZXJuYWxQYXJzaW5nRmFpbGVkOwotICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg ICB9Ci0tICAgICAgICB2YWx1ZS5hc3NpZ24oKGNvbnN0IGNoYXIqKShhdC0+dmFsdWUtPmRhdGEp LCBhdC0+dmFsdWUtPmxlbmd0aCk7Ci0rICAgICAgICB2YWx1ZS5hc3NpZ24oKGNvbnN0IGNoYXIq KSBBU04xX1NUUklOR19nZXQwX2RhdGEoYXQtPnZhbHVlKSwgQVNOMV9TVFJJTkdfbGVuZ3RoKGF0 LT52YWx1ZSkpOwotICAgICAgICAgaWYodmFsdWUuZW1wdHkoKSkgewotICAgICAgICAgICBDcmVk ZW50aWFsTG9nZ2VyLm1zZyhXQVJOSU5HLCJWT01TOiB0aGUgYXR0cmlidXRlIHZhbHVlIGZvciAl cyBpcyBlbXB0eSIsIG5hbWUuY19zdHIoKSk7Ci0gICAgICAgICAgIC8vcmV0dXJuIGZhbHNlOwot ICAgICAgICAgfQotLSAgICAgICAgcXVhbGlmaWVyLmFzc2lnbigoY29uc3QgY2hhciopKGF0LT5x dWFsaWZpZXItPmRhdGEpLCBhdC0+cXVhbGlmaWVyLT5sZW5ndGgpOwotKyAgICAgICAgcXVhbGlm aWVyLmFzc2lnbigoY29uc3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShhdC0+cXVhbGlm aWVyKSwgQVNOMV9TVFJJTkdfbGVuZ3RoKGF0LT5xdWFsaWZpZXIpKTsKLSAgICAgICAgIGlmKHF1 YWxpZmllci5lbXB0eSgpKSB7Ci0gICAgICAgICAgIENyZWRlbnRpYWxMb2dnZXIubXNnKEVSUk9S LCJWT01TOiB0aGUgYXR0cmlidXRlIHF1YWxpZmllciBpcyBlbXB0eSIpOwotICAgICAgICAgICBz dGF0dXMgfD0gVk9NU0FDSW5mbzo6SW50ZXJuYWxQYXJzaW5nRmFpbGVkOwotQEAgLTE3OTQsMTQg KzE3OTQsMTQgQEAgZXJyOgotICAgICAgICAgaWYgKGlzcykgewotICAgICAgICAgICBpZiAoa2V5 LT5rZXlpZCkgewotICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaGFzaGVkWzIwXTsKLS0gICAg ICAgICAgICBBU04xX0JJVF9TVFJJTkcqIHBrZXlzdHIgPSBYNTA5X2dldDBfcHVia2V5X2JpdHN0 cihpc3MpOwotLSAgICAgICAgICAgIGlmICghU0hBMShwa2V5c3RyLT5kYXRhLAotLSAgICAgICAg ICAgICAgICAgICAgICBwa2V5c3RyLT5sZW5ndGgsCi0rICAgICAgICAgICAgY29uc3QgQVNOMV9C SVRfU1RSSU5HKiBwa2V5c3RyID0gWDUwOV9nZXQwX3B1YmtleV9iaXRzdHIoaXNzKTsKLSsgICAg ICAgICAgICBpZiAoIVNIQTEoQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHBrZXlzdHIpLAotKyAgICAg ICAgICAgICAgICAgICAgICBBU04xX1NUUklOR19sZW5ndGgocGtleXN0ciksCi0gICAgICAgICAg ICAgICAgICAgICAgIGhhc2hlZCkpCi0gICAgICAgICAgICAgICBrZXllcnIgPSB0cnVlOwotIAot LSAgICAgICAgICAgIGlmICgobWVtY21wKGtleS0+a2V5aWQtPmRhdGEsIGhhc2hlZCwgMjApICE9 IDApICYmCi0tICAgICAgICAgICAgICAgIChrZXktPmtleWlkLT5sZW5ndGggPT0gMjApKQotKyAg ICAgICAgICAgIGlmICgobWVtY21wKEFTTjFfU1RSSU5HX2dldDBfZGF0YShrZXktPmtleWlkKSwg aGFzaGVkLCAyMCkgIT0gMCkgJiYKLSsgICAgICAgICAgICAgICAgKEFTTjFfU1RSSU5HX2xlbmd0 aChrZXktPmtleWlkKSA9PSAyMCkpCi0gICAgICAgICAgICAgICBrZXllcnIgPSB0cnVlOwotICAg ICAgICAgICB9Ci0gICAgICAgICAgIGVsc2UgewotQEAgLTE4MzgsOCArMTgzOCw4IEBAIGVycjoK LSAgIH0KLSAKLSAgIHN0YXRpYyB0aW1lX3QgQVNOMV9HRU5FUkFMSVpFRFRJTUVfZ2V0KGNvbnN0 IEFTTjFfR0VORVJBTElaRURUSU1FKiBjb25zdCBzKSB7Ci0tICAgIGlmICgocyA9PSBOVUxMKSB8 fCAocy0+ZGF0YSA9PSBOVUxMKSB8fCAocy0+bGVuZ3RoID09IDApKSByZXR1cm4gQXJjOjpUaW1l OjpVTkRFRklORUQ7Ci0tICAgIHN0ZDo6c3RyaW5nIHN0cigoY2hhciBjb25zdCAqKShzLT5kYXRh KSwgcy0+bGVuZ3RoKTsKLSsgICAgaWYgKChzID09IE5VTEwpIHx8IChBU04xX1NUUklOR19nZXQw X2RhdGEocykgPT0gTlVMTCkgfHwgKEFTTjFfU1RSSU5HX2xlbmd0aChzKSA9PSAwKSkgcmV0dXJu IEFyYzo6VGltZTo6VU5ERUZJTkVEOwotKyAgICBzdGQ6OnN0cmluZyBzdHIoKGNoYXIgY29uc3Qg KikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHMpLCBBU04xX1NUUklOR19sZW5ndGgocykpOwotICAg ICBBcmM6OlRpbWUgdChzdHIpOwotICAgICByZXR1cm4gdC5HZXRUaW1lKCk7Ci0gICB9Ci1AQCAt MjA1MCw3ICsyMDUwLDcgQEAgZXJyOgotICAgICBjdGltZSArPSAzMDA7Ci0gICAgIGR0aW1lID0g Y3RpbWUtNjAwOwotIAotLSAgICBpZiAoKHN0YXJ0LT50eXBlICE9IFZfQVNOMV9HRU5FUkFMSVpF RFRJTUUpIHx8IChlbmQtPnR5cGUgIT0gVl9BU04xX0dFTkVSQUxJWkVEVElNRSkpIHsKLSsgICAg aWYgKChBU04xX1NUUklOR190eXBlKHN0YXJ0KSAhPSBWX0FTTjFfR0VORVJBTElaRURUSU1FKSB8 fCAoQVNOMV9TVFJJTkdfdHlwZShlbmQpICE9IFZfQVNOMV9HRU5FUkFMSVpFRFRJTUUpKSB7Ci0g ICAgICAgQ3JlZGVudGlhbExvZ2dlci5tc2coRVJST1IsIlZPTVM6IHVuc3VwcG9ydGVkIHRpbWUg Zm9ybWF0IGluIEFDIC0gZXhwZWN0aW5nIEdFTkVSQUxJWkVEIFRJTUUiKTsKLSAgICAgICBzdGF0 dXMgfD0gVk9NU0FDSW5mbzo6QUNQYXJzaW5nRmFpbGVkOwotICAgICAgIHJldHVybiBmYWxzZTsg Ly8gPwotQEAgLTIxODEsNyArMjE4MSw3IEBAIGVycjoKLSAgICAgICB9Ci0gICAgIH0KLSAKLS0g ICAgaWYgKFg1MDlfQUNFUlRfZ2V0MF9zZXJpYWxOdW1iZXIoYWMpLT5sZW5ndGggPiAyMCkgewot KyAgICBpZiAoQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfQUNFUlRfZ2V0MF9zZXJpYWxOdW1iZXIo YWMpKSA+IDIwKSB7Ci0gICAgICAgQ3JlZGVudGlhbExvZ2dlci5tc2coRVJST1IsIlZPTVM6IHRo ZSBzZXJpYWwgbnVtYmVyIG9mIEFDIElORk8gaXMgdG9vIGxvbmcgLSBleHBlY3Rpbmcgbm8gbW9y ZSB0aGFuIDIwIG9jdGV0cyIpOwotICAgICAgIHN0YXR1cyB8PSBWT01TQUNJbmZvOjpJbnRlcm5h bFBhcnNpbmdGYWlsZWQ7Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotQEAgLTIyNjEsNyArMjI2MSw3 IEBAIGVycjoKLSAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLSAKLS0gICAgc3RkOjpzdHJp bmcgdm9uYW1lKChjb25zdCBjaGFyICopbmFtZS0+ZC5pYTUtPmRhdGEsIDAsIG5hbWUtPmQuaWE1 LT5sZW5ndGgpOwotKyAgICBzdGQ6OnN0cmluZyB2b25hbWUoKGNvbnN0IGNoYXIgKikgQVNOMV9T VFJJTkdfZ2V0MF9kYXRhKG5hbWUtPmQuaWE1KSwgMCwgQVNOMV9TVFJJTkdfbGVuZ3RoKG5hbWUt PmQuaWE1KSk7Ci0gICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgY3BvcyA9IHZvbmFtZS5maW5k KCI6Ly8iKTsKLSAgICAgc3RkOjpzdHJpbmcgaG9zdG5hbWU7Ci0gICAgIGlmIChjcG9zICE9IHN0 ZDo6c3RyaW5nOjpucG9zKSB7Ci1AQCAtMjMxNCw3ICsyMzE0LDExIEBAIGVycjoKLSAgICAgaW50 IG5pZCA9IDA7Ci0gICAgIGludCBwb3NpdGlvbiA9IDA7Ci0gICAgIGJvb2wgY3JpdGljYWwgPSBm YWxzZTsKLSsjaWYgKE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTCkKLSAgICAg WDUwOV9FWFRFTlNJT04gKiBleHQ7Ci0rI2Vsc2UKLSsgICAgY29uc3QgWDUwOV9FWFRFTlNJT04g KiBleHQ7Ci0rI2VuZGlmCi0gICAgIEFDX1NFUSogYWNsaXN0ID0gTlVMTDsKLSAgICAgbmlkID0g T0JKX3R4dDJuaWQoYWNzZXFPSUQpOwotICAgICBwb3NpdGlvbiA9IFg1MDlfZ2V0X2V4dF9ieV9O SUQoaG9sZGVyLCBuaWQsIC0xKTsKLUBAIC0yNjc1LDcgKzI2NzksNyBAQCBlcnI6Ci0gICAgIGV4 dCA9IFg1MDlWM19FWFRfY29uZl9uaWQoTlVMTCwgTlVMTCwgT0JKX3R4dDJuaWQoYWNzZXFPSUQp LCAoY2hhciopKGFjX3NlcS5jX3N0cigpKSk7Ci0gICAgIGlmKGV4dCE9TlVMTCkgewotICAgICAg IGFzbjEuY2xlYXIoKTsKLS0gICAgICBhc24xLmFzc2lnbigoY29uc3QgY2hhciopKFg1MDlfRVhU RU5TSU9OX2dldF9kYXRhKGV4dCktPmRhdGEpLCBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQp LT5sZW5ndGgpOwotKyAgICAgIGFzbjEuYXNzaWduKChjb25zdCBjaGFyKikgQVNOMV9TVFJJTkdf Z2V0MF9kYXRhKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCkpLCBBU04xX1NUUklOR19sZW5n dGgoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KSkpOwotICAgICAgIHJldCA9IHRydWU7Ci0g ICAgICAgWDUwOV9FWFRFTlNJT05fZnJlZShleHQpOwotICAgICB9Ci1kaWZmIC0tZ2l0IGEvc3Jj L2hlZC9saWJzL2RlbGVnYXRpb24vRGVsZWdhdGlvbkludGVyZmFjZS5jcHAgYi9zcmMvaGVkL2xp YnMvZGVsZWdhdGlvbi9EZWxlZ2F0aW9uSW50ZXJmYWNlLmNwcAotaW5kZXggYWQ2MWU0MGQwLi5h OWRmODc5ZGIgMTAwNjQ0Ci0tLS0gYS9zcmMvaGVkL2xpYnMvZGVsZWdhdGlvbi9EZWxlZ2F0aW9u SW50ZXJmYWNlLmNwcAotKysrIGIvc3JjL2hlZC9saWJzL2RlbGVnYXRpb24vRGVsZWdhdGlvbklu dGVyZmFjZS5jcHAKLUBAIC0yMTQsOCArMjE0LDggQEAgZXJyOgotIAotIHN0YXRpYyBUaW1lIGFz bjFfdG9fdGltZShjb25zdCBBU04xX1VUQ1RJTUUgKnMpIHsKLSAgIGlmKHMgIT0gTlVMTCkgewot LSAgICBpZihzLT50eXBlID09IFZfQVNOMV9VVENUSU1FKSByZXR1cm4gVGltZShzdGQ6OnN0cmlu ZygiMjAiKSsoKGNoYXIqKShzLT5kYXRhKSkpOwotLSAgICBpZihzLT50eXBlID09IFZfQVNOMV9H RU5FUkFMSVpFRFRJTUUpIHJldHVybiBUaW1lKHN0ZDo6c3RyaW5nKChjaGFyKikocy0+ZGF0YSkp KTsKLSsgICAgaWYoQVNOMV9TVFJJTkdfdHlwZShzKSA9PSBWX0FTTjFfVVRDVElNRSkgcmV0dXJu IFRpbWUoc3RkOjpzdHJpbmcoIjIwIikrKChjb25zdCBjaGFyKikoQVNOMV9TVFJJTkdfZ2V0MF9k YXRhKHMpKSkpOwotKyAgICBpZihBU04xX1NUUklOR190eXBlKHMpID09IFZfQVNOMV9HRU5FUkFM SVpFRFRJTUUpIHJldHVybiBUaW1lKHN0ZDo6c3RyaW5nKChjb25zdCBjaGFyKikoQVNOMV9TVFJJ TkdfZ2V0MF9kYXRhKHMpKSkpOwotICAgfQotICAgcmV0dXJuIFRpbWUoVGltZTo6VU5ERUZJTkVE KTsKLSB9Ci1AQCAtNjQ4LDYgKzY0OCwxMSBAQCBzdGQ6OnN0cmluZyBEZWxlZ2F0aW9uUHJvdmlk ZXI6OkRlbGVnYXRlKGNvbnN0IHN0ZDo6c3RyaW5nJiByZXF1ZXN0LGNvbnN0IERlbGVnYQotICAg UFJPWFlfUE9MSUNZIHByb3h5X3BvbGljeTsKLSAgIGNvbnN0IEVWUF9NRCAqZGlnZXN0ID0gRVZQ X3NoYTI1NigpOwotICAgWDUwOV9OQU1FICpzdWJqZWN0ID0gTlVMTDsKLSsjaWYgKE9QRU5TU0xf VkVSU0lPTl9OVU1CRVIgPCAweDMwMDAwMDAwTCkKLSsgIFg1MDlfTkFNRSAqc3ViamVjdF9jID0g TlVMTDsKLSsjZWxzZQotKyAgY29uc3QgWDUwOV9OQU1FICpzdWJqZWN0X2MgPSBOVUxMOwotKyNl bmRpZgotICAgY29uc3QgY2hhciogbmVlZF9leHQgPSAiY3JpdGljYWwsZGlnaXRhbFNpZ25hdHVy ZSxrZXlFbmNpcGhlcm1lbnQiOwotICAgc3RkOjpzdHJpbmcgcHJveHlfY247Ci0gICBzdGQ6OnN0 cmluZyByZXM7Ci1AQCAtODE0LDkgKzgxOSw5IEBAIHN0ZDo6c3RyaW5nIERlbGVnYXRpb25Qcm92 aWRlcjo6RGVsZWdhdGUoY29uc3Qgc3RkOjpzdHJpbmcmIHJlcXVlc3QsY29uc3QgRGVsZWdhCi0g ICAgICAgICB9IFBST1hZX1BPTElDWTsKLSAgICovCi0gCi0tICBzdWJqZWN0PVg1MDlfZ2V0X3N1 YmplY3RfbmFtZSgoWDUwOSopY2VydF8pOwotLSAgaWYoIXN1YmplY3QpIGdvdG8gZXJyOwotLSAg c3ViamVjdD1YNTA5X05BTUVfZHVwKHN1YmplY3QpOwotKyAgc3ViamVjdF9jPVg1MDlfZ2V0X3N1 YmplY3RfbmFtZSgoWDUwOSopY2VydF8pOwotKyAgaWYoIXN1YmplY3RfYykgZ290byBlcnI7Ci0r ICBzdWJqZWN0PVg1MDlfTkFNRV9kdXAoc3ViamVjdF9jKTsKLSAgIGlmKCFzdWJqZWN0KSBnb3Rv IGVycjsKLSAgIGlmKCFYNTA5X3NldF9pc3N1ZXJfbmFtZShjZXJ0LHN1YmplY3QpKSBnb3RvIGVy cjsKLSAgIGlmKCFYNTA5X05BTUVfYWRkX2VudHJ5X2J5X05JRChzdWJqZWN0LE5JRF9jb21tb25O YW1lLE1CU1RSSU5HX0FTQywodW5zaWduZWQgY2hhciopKHByb3h5X2NuLmNfc3RyKCkpLHByb3h5 X2NuLmxlbmd0aCgpLC0xLDApKSBnb3RvIGVycjsKLWRpZmYgLS1naXQgYS9zcmMvaGVkL21jYy90 bHMvRGVsZWdhdGlvbkNvbGxlY3Rvci5jcHAgYi9zcmMvaGVkL21jYy90bHMvRGVsZWdhdGlvbkNv bGxlY3Rvci5jcHAKLWluZGV4IDVkOWMwNGRmYy4uMmRjYmI2NmI0IDEwMDY0NAotLS0tIGEvc3Jj L2hlZC9tY2MvdGxzL0RlbGVnYXRpb25Db2xsZWN0b3IuY3BwCi0rKysgYi9zcmMvaGVkL21jYy90 bHMvRGVsZWdhdGlvbkNvbGxlY3Rvci5jcHAKLUBAIC00NSw4ICs0NSw4IEBAIHN0YXRpYyBib29s IGdldF9wcm94eV9wb2xpY3koWDUwOSogY2VydCxEZWxlZ2F0aW9uTXVsdGlTZWNBdHRyKiBzYXR0 cikgewotICAgICB9OyBicmVhazsKLSAgICAgY2FzZSBOSURfaWRfcHBsX2FueUxhbmd1YWdlOiB7 IC8vIEhlcmUgd2Ugc3RvcmUgQVJDIHBvbGljeQotICAgICAgIC8vIEVpdGhlciB0aGlzIGlzIEFS QyBwb2xpY3kgaXMgZGV0ZXJtaW5lZCBieSBleGFtaW5pbmcgY29udGVudAotLSAgICAgIGNvbnN0 IGNoYXIqIHBvbGljeV9zdHIgPSAoY29uc3QgY2hhciAqKShwY2ktPnByb3h5UG9saWN5LT5wb2xp Y3ktPmRhdGEpOwotLSAgICAgIGludCBwb2xpY3lfbGVuZ3RoID0gcGNpLT5wcm94eVBvbGljeS0+ cG9saWN5LT5sZW5ndGg7Ci0rICAgICAgY29uc3QgY2hhciogcG9saWN5X3N0ciA9IChjb25zdCBj aGFyICopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShwY2ktPnByb3h5UG9saWN5LT5wb2xpY3kpOwot KyAgICAgIGludCBwb2xpY3lfbGVuZ3RoID0gQVNOMV9TVFJJTkdfbGVuZ3RoKHBjaS0+cHJveHlQ b2xpY3ktPnBvbGljeSk7Ci0gICAgICAgaWYoKHBvbGljeV9zdHIgPT0gTlVMTCkgfHwgKHBvbGlj eV9sZW5ndGggPD0gMCkpIHsKLSAgICAgICAgIGxvZ2dlci5tc2coREVCVUcsIlByb3h5IHdpdGgg ZW1wdHkgcG9saWN5ICAtIGZhaWwgb24gdW5yZWNvZ25pemVkIHBvbGljeSIpOwotICAgICAgICAg YnJlYWs7Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlZC9tY2MvdGxzL1BheWxvYWRUTFNNQ0MuY3BwIGIv c3JjL2hlZC9tY2MvdGxzL1BheWxvYWRUTFNNQ0MuY3BwCi1pbmRleCA4MWFkOWQ3MWYuLjM1OGZh Yzg0NCAxMDA2NDQKLS0tLSBhL3NyYy9oZWQvbWNjL3Rscy9QYXlsb2FkVExTTUNDLmNwcAotKysr IGIvc3JjL2hlZC9tY2MvdGxzL1BheWxvYWRUTFNNQ0MuY3BwCi1AQCAtMjAsMTIgKzIwLDEyIEBA IGludCBQYXlsb2FkVExTTUNDOjpleF9kYXRhX2luZGV4XyA9IC0xOwotIFRpbWUgYXNuMV90b191 dGN0aW1lKGNvbnN0IEFTTjFfVVRDVElNRSAqcykgewotICAgc3RkOjpzdHJpbmcgdF9zdHI7Ci0g ICBpZighcykgcmV0dXJuIFRpbWUoKTsKLS0gIGlmKHMtPnR5cGUgPT0gVl9BU04xX1VUQ1RJTUUp IHsKLSsgIGlmKEFTTjFfU1RSSU5HX3R5cGUocykgPT0gVl9BU04xX1VUQ1RJTUUpIHsKLSAgICAg dF9zdHIuYXBwZW5kKCIyMCIpOwotLSAgICB0X3N0ci5hcHBlbmQoKGNoYXIqKShzLT5kYXRhKSk7 Ci0rICAgIHRfc3RyLmFwcGVuZCgoY29uc3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShz KSk7Ci0gICB9Ci0gICBlbHNlIHsvL1ZfQVNOMV9HRU5FUkFMSVpFRFRJTUUKLS0gICAgdF9zdHIu YXBwZW5kKChjaGFyKikocy0+ZGF0YSkpOwotKyAgICB0X3N0ci5hcHBlbmQoKGNvbnN0IGNoYXIq KSBBU04xX1NUUklOR19nZXQwX2RhdGEocykpOwotICAgfQotICAgcmV0dXJuIFRpbWUodF9zdHIp OwotIH0KLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8wMDAxLVVzZS1QeXRob24tMy1BUEkt aW4tU1dJRy13cndwcGVycy5wYXRjaCBiLzAwMDEtVXNlLVB5dGhvbi0zLUFQSS1pbi1TV0lHLXdy d3BwZXJzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTExNTRhLi4wMDAw MDAwCi0tLSBhLzAwMDEtVXNlLVB5dGhvbi0zLUFQSS1pbi1TV0lHLXdyd3BwZXJzLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotRnJvbSAyZGJlZTNiNWEwMDNmZjljOGZiNWY5 ZWNiYWM5NjQwZWFlNmVhOWQ1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWF0dGlh cyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNpY3MudXUuc2U+Ci1EYXRlOiBUdWUsIDE4IEF1 ZyAyMDI2IDEwOjI2OjA4ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVzZSBQeXRob24gMyBBUEkg aW4gU1dJRyB3cndwcGVycwotCi1Eb24ndCByZWx5IG9uIFB5dGhvbiAyIGNvbXBhdGliaWxpdHkg bWFjcm9zIGluIHRoZSBTV0lHIGhlYWRlcnMuCi1UaGV5IHdlcmUgcmVtb3ZlZCBpbiBTV0lHIDQu NS4wLgotLS0tCi0gc3dpZy9BcmMuaSAgfCAxMCArKysrKysrKysrCi0gc3dpZy9kYXRhLmkgfCAx NiArKysrKysrKysrKystLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3dpZy9BcmMuaSBiL3N3aWcvQXJjLmkKLWlu ZGV4IDI4Y2UyMmM1OC4uYjU2NjdkZjIyIDEwMDY0NAotLS0tIGEvc3dpZy9BcmMuaQotKysrIGIv c3dpZy9BcmMuaQotQEAgLTkwLDcgKzkwLDkgQEAgY2xhc3MgU3RhdGljUHJvcGVydHlXcmFwcGVy KG9iamVjdCk6Ci0gJXR5cGVtYXAoaW4pIHRpbWVfdAotIHsKLSAgIGlmICAgICAgKFB5TG9uZ19D aGVjaygkaW5wdXQpKSAgJDEgPSAodGltZV90KSBQeUxvbmdfQXNMb25nKCRpbnB1dCk7Ci0rJSNp ZiBQWV9WRVJTSU9OX0hFWCA8IDB4MDMwMDAwMDAKLSAgIGVsc2UgaWYgKFB5SW50X0NoZWNrKCRp bnB1dCkpICAgJDEgPSAodGltZV90KSBQeUludF9Bc0xvbmcoJGlucHV0KTsKLSslI2VuZGlmCi0g ICBlbHNlIGlmIChQeUZsb2F0X0NoZWNrKCRpbnB1dCkpICQxID0gKHRpbWVfdCkgUHlGbG9hdF9B c0RvdWJsZSgkaW5wdXQpOwotICAgZWxzZSB7Ci0gICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19U eXBlRXJyb3IsIkV4cGVjdGVkIGEgbGFyZ2UgdHlwZSIpOwotQEAgLTEwNyw3ICsxMDksMTEgQEAg Y2xhc3MgU3RhdGljUHJvcGVydHlXcmFwcGVyKG9iamVjdCk6Ci0gCi0gJXR5cGVtYXAoaW4pIHVp bnQzMl90Ci0gewotKyUjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAzMDAwMDAwCi0gICBpZiAgICAg IChQeUludF9DaGVjaygkaW5wdXQpKSAgICQxID0gKHVpbnQzMl90KSBQeUludF9Bc0xvbmcoJGlu cHV0KTsKLSslI2Vsc2UKLSsgIGlmICAgICAgKFB5TG9uZ19DaGVjaygkaW5wdXQpKSAgJDEgPSAo dWludDMyX3QpIFB5TG9uZ19Bc0xvbmcoJGlucHV0KTsKLSslI2VuZGlmCi0gICBlbHNlIGlmIChQ eUZsb2F0X0NoZWNrKCRpbnB1dCkpICQxID0gKHVpbnQzMl90KSBQeUZsb2F0X0FzRG91YmxlKCRp bnB1dCk7Ci0gICBlbHNlIHsKLSAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwi VW5hYmxlIHRvIGNvbnZlcnQgdHlwZSB0byAzMmJpdCBudW1iZXIgKGludC9mbG9hdCkiKTsKLUBA IC0xMTgsNyArMTI0LDExIEBAIGNsYXNzIFN0YXRpY1Byb3BlcnR5V3JhcHBlcihvYmplY3QpOgot IAotICV0eXBlbWFwKG91dCkgdWludDMyX3QKLSB7Ci0rJSNpZiBQWV9WRVJTSU9OX0hFWCA8IDB4 MDMwMDAwMDAKLSAgICRyZXN1bHQgPSBQeUludF9Gcm9tTG9uZygoaW50KSQxKTsKLSslI2Vsc2UK LSsgICRyZXN1bHQgPSBQeUxvbmdfRnJvbUxvbmcoKGludCkkMSk7Ci0rJSNlbmRpZgotIH0KLSAj ZW5kaWYKLSAKLWRpZmYgLS1naXQgYS9zd2lnL2RhdGEuaSBiL3N3aWcvZGF0YS5pCi1pbmRleCA4 YTZkYmE2MTIuLjY2YThlZmVlNiAxMDA2NDQKLS0tLSBhL3N3aWcvZGF0YS5pCi0rKysgYi9zd2ln L2RhdGEuaQotQEAgLTEyMSwyMyArMTIxLDMxIEBAIHR5cGVkZWYgc3RydWN0IHsKLSAKLSAldHlw ZW1hcChvdXQpIEFyYzo6RGF0YUJ1ZmZlckZvcldyaXRlUmVzdWx0IHsKLSAgICRyZXN1bHQgPSBQ eVR1cGxlX05ldyg1KTsKLSslI2lmIFBZX1ZFUlNJT05fSEVYID49IDB4MDMwMDAwMDAKLSsgIFB5 VHVwbGVfU2V0SXRlbSgkcmVzdWx0LDAsUHlMb25nX0Zyb21Mb25nKCQxLnJlc3VsdCkpOwotKyAg UHlUdXBsZV9TZXRJdGVtKCRyZXN1bHQsMSxQeUxvbmdfRnJvbUxvbmcoJDEuaGFuZGxlKSk7Ci0r ICBQeVR1cGxlX1NldEl0ZW0oJHJlc3VsdCwyLFB5TG9uZ19Gcm9tTG9uZygkMS5zaXplKSk7Ci0r ICBQeVR1cGxlX1NldEl0ZW0oJHJlc3VsdCwzLFB5TG9uZ19Gcm9tTG9uZygkMS5vZmZzZXQpKTsK LSsgIFB5VHVwbGVfU2V0SXRlbSgkcmVzdWx0LDQsJDEuYnVmZmVyP1B5VW5pY29kZV9Gcm9tU3Ry aW5nQW5kU2l6ZSgkMS5idWZmZXIsJDEuc2l6ZSk6UHlfTm9uZSk7Ci0rJSNlbHNlCi0gICBQeVR1 cGxlX1NldEl0ZW0oJHJlc3VsdCwwLFB5SW50X0Zyb21Mb25nKCQxLnJlc3VsdCkpOwotICAgUHlU dXBsZV9TZXRJdGVtKCRyZXN1bHQsMSxQeUludF9Gcm9tTG9uZygkMS5oYW5kbGUpKTsKLSAgIFB5 VHVwbGVfU2V0SXRlbSgkcmVzdWx0LDIsUHlJbnRfRnJvbUxvbmcoJDEuc2l6ZSkpOwotICAgUHlU dXBsZV9TZXRJdGVtKCRyZXN1bHQsMyxQeUludF9Gcm9tTG9uZygkMS5vZmZzZXQpKTsKLS0lI2lm IFBZX1ZFUlNJT05fSEVYPj0weDAzMDAwMDAwCi0tICBQeVR1cGxlX1NldEl0ZW0oJHJlc3VsdCw0 LCQxLmJ1ZmZlcj9QeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUoJDEuYnVmZmVyLCQxLnNpemUp OlB5X05vbmUpOwotLSUjZWxzZQotICAgUHlUdXBsZV9TZXRJdGVtKCRyZXN1bHQsNCwkMS5idWZm ZXI/UHlTdHJpbmdfRnJvbVN0cmluZ0FuZFNpemUoJDEuYnVmZmVyLCQxLnNpemUpOlB5X05vbmUp OwotICUjZW5kaWYKLSB9Ci0gCi0gJXR5cGVtYXAob3V0KSBBcmM6OkRhdGFCdWZmZXJGb3JSZWFk UmVzdWx0IHsKLSslI2lmIFBZX1ZFUlNJT05fSEVYID49IDB4MDMwMDAwMDAKLSsgICRyZXN1bHQg PSBQeVR1cGxlX1BhY2soMywgUHlMb25nX0Zyb21Mb25nKCQxLnJlc3VsdCksIFB5TG9uZ19Gcm9t TG9uZygkMS5oYW5kbGUpLCBQeUxvbmdfRnJvbUxvbmcoJDEuc2l6ZSkpOwotKyUjZWxzZQotICAg JHJlc3VsdCA9IFB5VHVwbGVfUGFjaygzLCBQeUludF9Gcm9tTG9uZygkMS5yZXN1bHQpLCBQeUlu dF9Gcm9tTG9uZygkMS5oYW5kbGUpLCBQeUludF9Gcm9tTG9uZygkMS5zaXplKSk7Ci0rJSNlbmRp ZgotIH0KLSAKLSAldHlwZW1hcChpbikgKGNoYXIqIERhdGFCdWZmZXJJc1JlYWRCdWYsIHVuc2ln bmVkIGludCBEYXRhQnVmZmVySXNSZWFkU2l6ZSkgewotLSUjaWYgUFlfVkVSU0lPTl9IRVg+PTB4 MDMwMDAwMDAKLSslI2lmIFBZX1ZFUlNJT05fSEVYID49IDB4MDMwMDAwMDAKLSAgICRpbnB1dCA9 IFB5VW5pY29kZV9Bc1VURjhTdHJpbmcoJGlucHV0KTsKLSAgICQxID0gUHlCeXRlc19Bc1N0cmlu ZygkaW5wdXQpOwotICAgJDIgPSAoJDEpP1B5Qnl0ZXNfU2l6ZSgkaW5wdXQpOjA7Ci0tLSAKLTIu NTUuMAotCgpkaWZmIC0tZ2l0IGEvbm9yZHVncmlkLWFyYy5zcGVjIGIvbm9yZHVncmlkLWFyYy5z cGVjCmluZGV4IDQzOWZkYzcuLjg1MDA2MzQgMTAwNjQ0Ci0tLSBhL25vcmR1Z3JpZC1hcmMuc3Bl YworKysgYi9ub3JkdWdyaWQtYXJjLnNwZWMKQEAgLTIyLDI0ICsyMiwxNCBAQAogJWdsb2JhbCBf YmFzaGNvbXBkaXIgJShwa2ctY29uZmlnIC0tdmFyaWFibGU9Y29tcGxldGlvbnNkaXIgYmFzaC1j b21wbGV0aW9uIDI+L2Rldi9udWxsIHx8IGVjaG8gJXtfc3lzY29uZmRpcn0vYmFzaF9jb21wbGV0 aW9uLmQpCiAKIE5hbWU6CQlub3JkdWdyaWQtYXJjCi1WZXJzaW9uOgk3LjEuMgotUmVsZWFzZToJ OCV7P2Rpc3R9CitWZXJzaW9uOgk3LjIuMAorUmVsZWFzZToJMSV7P2Rpc3R9CiBTdW1tYXJ5OglB ZHZhbmNlZCBSZXNvdXJjZSBDb25uZWN0b3IgTWlkZGxld2FyZQogIwkJQXBhY2hlLTIuMDogbW9z dCBmaWxlcwogIwkJTUlUOiBzcmMvZXh0ZXJuYWwvY0pTT04vY0pTT04uYyBzcmMvZXh0ZXJuYWwv Y0pTT04vY0pTT04uaAogTGljZW5zZToJQXBhY2hlLTIuMCBBTkQgTUlUCiBVUkw6CQlodHRwczov L3d3dy5ub3JkdWdyaWQub3JnLwogU291cmNlOgkJaHR0cHM6Ly9kb3dubG9hZC5ub3JkdWdyaWQu b3JnL3BhY2thZ2VzLyV7bmFtZX0vcmVsZWFzZXMvJXt2ZXJzaW9ufS9zcmMvJXtuYW1lfS0le3Zl cnNpb259LnRhci5negotIwkJU3VwcG9ydCBTV0lHIDQuNC4wIChwYXRjaCBmcm9tIFdpbGxpYW0g UyBGdWx0b24pCi0jCQlodHRwczovL2dpdGh1Yi5jb20vbm9yZHVncmlkL2FyYy9wdWxsLzE1Ci0j CQlodHRwczovL3NvdXJjZS5jb2RlcmVmaW5lcnkub3JnL25vcmR1Z3JpZC9hcmMvLS9tZXJnZV9y ZXF1ZXN0cy8xOTY0Ci1QYXRjaDA6CQkwMDAxLUhhbmRsZS1QeXRob24tbXVsdGktcGhhc2UtaW5p dGlhbGl6YXRpb24tc3VwcG9ydC1pbi0ucGF0Y2gKLSMJCWh0dHBzOi8vc291cmNlLmNvZGVyZWZp bmVyeS5vcmcvbm9yZHVncmlkL2FyYy8tL21lcmdlX3JlcXVlc3RzLzE5NzEKLVBhdGNoMToJCTAw MDEtRml4LWNvbXBpbGF0aW9uLXdpdGgtUHl0aG9uLTMuMTUucGF0Y2gKLSMJCWh0dHBzOi8vc291 cmNlLmNvZGVyZWZpbmVyeS5vcmcvbm9yZHVncmlkL2FyYy8tL21lcmdlX3JlcXVlc3RzLzE5OTcK LVBhdGNoMjoJCTAwMDEtU3VwcG9ydC1PcGVuU1NMLTQucGF0Y2gKLSMJCWh0dHBzOi8vc291cmNl LmNvZGVyZWZpbmVyeS5vcmcvbm9yZHVncmlkL2FyYy8tL21lcmdlX3JlcXVlc3RzLzIwMTIKLVBh dGNoMzoJCTAwMDEtVXNlLVB5dGhvbi0zLUFQSS1pbi1TV0lHLXdyd3BwZXJzLnBhdGNoCiAKICMJ CVBhY2thZ2VzIGRyb3BwZWQgd2l0aG91dCByZXBsYWNlbWVudHMKIE9ic29sZXRlczoJJXtuYW1l fS1hcmNwcm94eWFsdCA8IDYuMC4wCkBAIC00ODQsNyArNDc0LDcgQEAgSGVhZGVyIGZpbGVzIGFu ZCBsaWJyYXJpZXMgbmVlZGVkIHRvIGRldmVsb3AgYXBwbGljYXRpb25zIHVzaW5nIEFSQy4KIAog JXBhY2thZ2UgLW4gcHl0aG9uMy0le25hbWV9CiBTdW1tYXJ5OglBUkMgUHl0aG9uIDMgd3JhcHBl cgotJXs/cHl0aG9uX3Byb3ZpZGU6JXB5dGhvbl9wcm92aWRlIHB5dGhvbjMtJXtuYW1lfX0KKyVw eV9wcm92aWRlcwlweXRob24zLSV7bmFtZX0KIFJlcXVpcmVzOgkle25hbWV9ID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9CiAKICVkZXNjcmlwdGlvbiAtbiBweXRob24zLSV7bmFtZX0KQEAgLTUzNiw3 ICs1MjYsNyBAQCBtYW5hZ2VtZW50IGZlYXR1cmVzIG9uIHRoZSB3b3JrZXIgbm9kZXMgKFdOKS4K IAogJXBhY2thZ2UgLW4gcHl0aG9uMy1hcmNyZXN0CiBTdW1tYXJ5OglBUkMgUkVTVCBjbGllbnQK LSV7P3B5dGhvbl9wcm92aWRlOiVweXRob25fcHJvdmlkZSBweXRob24zLWFyY3Jlc3R9CislcHlf cHJvdmlkZXMJcHl0aG9uMy1hcmNyZXN0CiBCdWlsZEFyY2g6CW5vYXJjaAogCiAlZGVzY3JpcHRp b24gLW4gcHl0aG9uMy1hcmNyZXN0CkBAIC01NjEsMTAgKzU1MSw2IEBAIHB1Ymxpc2hlcyBtZXRy aWNzIGFib3V0IGpvYnMgYW5kIGRhdGFzdGFnaW5nIG9uIHRoZSBBUkMtQ0UuCiAKICVwcmVwCiAl c2V0dXAgLXEKLSVwYXRjaCAtUDAgLXAxCi0lcGF0Y2ggLVAxIC1wMQotJXBhdGNoIC1QMiAtcDEK LSVwYXRjaCAtUDMgLXAxCiAKICVidWlsZAogYXV0b3JlY29uZiAtdiAtZiAtaQpAQCAtMTE0Myw2 ICsxMTI5LDkgQEAgc2VtYW5hZ2UgZmNvbnRleHQgLWEgLXQgc2xhcGRfdmFyX3J1bl90ICIvdmFy L3J1bi9hcmMvYmRpaS9kYigvLiopPyIgMj4vZGV2L251bGwKICV7X3NiaW5kaXJ9L2FyYy1leHBv cnRlcgogCiAlY2hhbmdlbG9nCisqIFR1ZSBTZXAgMDEgMjAyNiBNYXR0aWFzIEVsbGVydCA8bWF0 dGlhcy5lbGxlcnRAcGh5c2ljcy51dS5zZT4gLSA3LjIuMC0xCistIFVwZGF0ZSB0byB2ZXJzaW9u IDcuMi4wCisKICogVHVlIEF1ZyAxOCAyMDI2IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVy dEBwaHlzaWNzLnV1LnNlPiAtIDcuMS4yLTgKIC0gVXNlIHVwc3RyZWFtJ3MgcGF0Y2ggZm9yIFNX SUcgNC41LjAgc3VwcG9ydAogCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXgg Mjk0OTdlOC4uMzY2YzRhNiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0x ICsxIEBACi1TSEE1MTIgKG5vcmR1Z3JpZC1hcmMtNy4xLjIudGFyLmd6KSA9IDVjZmEzNzc4MTk3 Zjg3ZmRjNGQ5OTlmYmE1NjE1MzI1N2FhMDk5MTY4MTM3Mzg3ZGVkNTUyMGQ1ODBiZGJmMDQ2ZjQ4 ZDk0ZGNjYjIyNmQ0MzU2ZjM2OTc5ZDVhMTI4ZDI4MjhjMGZhNDdhOTZjNjQzMDViOWM5MjM0MGJl ZjgzCitTSEE1MTIgKG5vcmR1Z3JpZC1hcmMtNy4yLjAudGFyLmd6KSA9IDhiOWYwZDhmNjMzN2Fi NjFhOWZjODNiZjJmYjMxNjhhNmM2NDMwYWJiMTJkNjAzYTNiMzlhOGRhNzhhNTQwNWIyNGJhNmJh NjA4OWE0NzNmMDIyZmIzMzQwMWE2N2EzN2I1MjUxNWYyMzJlN2M3NWQ4NzUxNTBjOGZiYTEwNWIx Cg==