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: Steve Cossette To: git-commits@fedoraproject.org Subject: [rpms/qca] f45: 2.3.12 Date: Sat, 29 Aug 2026 01:56:23 GMT Message-ID: <178796858313.1.5605992890911616478.rpms-qca-adaf4d2ad511@fedoraproject.org> List-ID: X-Git-Repo: rpms/qca X-Git-Branch: f45 X-Git-Rev: adaf4d2ad5117823cb81519ba51458209b993837 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcWNhCkJyYW5jaCA6 IGY0NQpDb21taXQgOiBhZGFmNGQyYWQ1MTE3ODIzY2I4MTUxOWJhNTE0NTgyMDliOTkzODM3CkF1 dGhvciA6IFN0ZXZlIENvc3NldHRlIDxmYXJjaG9yZEBnbWFpbC5jb20+CkRhdGUgICA6IDIwMjYt MDgtMjhUMTg6NDk6NDMtMDQ6MDAKU3RhdHMgIDogKzcvLTQyNyBpbiA0IGZpbGUocykKVVJMICAg IDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9xY2EvYy9hZGFmNGQyYWQ1MTE3 ODIzY2I4MTUxOWJhNTE0NTgyMDliOTkzODM3P2JyYW5jaD1mNDUKCkxvZzoKMi4zLjEyCgotLS0K ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDM3MmRmZmYuLjk0OWFl YmEgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMTMsMyArMTMs NCBAQAogL3FjYS0yLjMuNy50YXIueHoKIC9xY2EtMi4zLjgudGFyLnh6CiAvcWNhLTIuMy4xMC50 YXIueHoKKy9xY2EtMi4zLjEyLnRhci54egoKZGlmZiAtLWdpdCBhLzZhN2RkZDc2YWE1NGVjYzE0 ZDEzMTUxY2NhMDA4MTM3YjBhYTI1ZDgucGF0Y2ggYi82YTdkZGQ3NmFhNTRlY2MxNGQxMzE1MWNj YTAwODEzN2IwYWEyNWQ4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjMz MDBlLi4wMDAwMDAwCi0tLSBhLzZhN2RkZDc2YWE1NGVjYzE0ZDEzMTUxY2NhMDA4MTM3YjBhYTI1 ZDgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MjAgKzAsMCBAQAotRnJvbSA2YTdkZGQ3NmFh NTRlY2MxNGQxMzE1MWNjYTAwODEzN2IwYWEyNWQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogQWxiZXJ0IEFzdGFscyBDaWQgPGFhY2lkQGtkZS5vcmc+Ci1EYXRlOiBTdW4sIDIxIEp1 biAyMDI2IDEyOjQ0OjA4ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIENvbXBpbGUgd2l0aCBvcGVu c3NsNAotCi0tLS0KLSBwbHVnaW5zL3FjYS1vc3NsL3FjYS1vc3NsLmNwcCB8IDE1OCArKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDk2IGluc2VydGlv bnMoKyksIDYyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcGx1Z2lucy9xY2Etb3NzbC9x Y2Etb3NzbC5jcHAgYi9wbHVnaW5zL3FjYS1vc3NsL3FjYS1vc3NsLmNwcAotaW5kZXggZjQxZmNi YjUuLjdhYjFiNDdkIDEwMDY0NAotLS0tIGEvcGx1Z2lucy9xY2Etb3NzbC9xY2Etb3NzbC5jcHAK LSsrKyBiL3BsdWdpbnMvcWNhLW9zc2wvcWNhLW9zc2wuY3BwCi1AQCAtMjgxLDYgKzI4MSwzMCBA QCBzdGF0aWMgQ29uc3RyYWludHMgZXh0X29ubHkoY29uc3QgQ29uc3RyYWludHMgJmxpc3QpCi0g ICAgIHJldHVybiBjb25zdHJhaW50czsKLSB9Ki8KLSAKLSsvLyBXZSBuZWVkIHRoaXMgdG8gc3Vw cG9ydCBvcGVuc3NsMyAoY291bGQgYmUgcmVtb3ZlZCBvbmNlIHdlIG9ubHkgc3VwcG9ydCA+PSA0 IGlmIHRoYXQgZXZlciBoYXBwZW5zKQotK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB2b2lk ICpvdXJfWDUwOVYzX0VYVF9kMmkoVCAqZXh0KQotK3sKLSsgICAgdXNpbmcgTm9uQ29uc3RUeXBl ID0gc3RkOjpyZW1vdmVfY29uc3RfdDxUPjsKLSsKLSsgICAgcmV0dXJuIFg1MDlWM19FWFRfZDJp KGNvbnN0X2Nhc3Q8Tm9uQ29uc3RUeXBlICo+KGV4dCkpOwotK30KLSsKLSsvLyBXZSBuZWVkIHRo aXMgdG8gc3VwcG9ydCBvcGVuc3NsMSAoY291bGQgYmUgcmVtb3ZlZCBvbmNlIHdlIG9ubHkgc3Vw cG9ydCA+PSAzIGlmIHRoYXQgZXZlciBoYXBwZW5zKQotK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0 YXRpYyBpbnQgb3VyX1g1MDlfTkFNRV9nZXRfaW5kZXhfYnlfTklEKFQgKm5hbWUsIGludCBuaWQs IGludCBsYXN0cG9zKQotK3sKLSsgICAgdXNpbmcgTm9uQ29uc3RUeXBlID0gc3RkOjpyZW1vdmVf Y29uc3RfdDxUPjsKLSsKLSsgICAgcmV0dXJuIFg1MDlfTkFNRV9nZXRfaW5kZXhfYnlfTklEKGNv bnN0X2Nhc3Q8Tm9uQ29uc3RUeXBlICo+KG5hbWUpLCBuaWQsIGxhc3Rwb3MpOwotK30KLSsKLSsv LyBXZSBuZWVkIHRoaXMgdG8gc3VwcG9ydCBvcGVuc3NsMSAoY291bGQgYmUgcmVtb3ZlZCBvbmNl IHdlIG9ubHkgc3VwcG9ydCA+PSAzIGlmIHRoYXQgZXZlciBoYXBwZW5zKQotK3RlbXBsYXRlPHR5 cGVuYW1lIFQ+IHN0YXRpYyBpbnQgb3VyX1g1MDlfTkFNRV9nZXRfaW5kZXhfYnlfT0JKKFQgKm5h bWUsIGNvbnN0IEFTTjFfT0JKRUNUICpvYmosIGludCBsYXN0cG9zKQotK3sKLSsgICAgdXNpbmcg Tm9uQ29uc3RUeXBlID0gc3RkOjpyZW1vdmVfY29uc3RfdDxUPjsKLSsKLSsgICAgcmV0dXJuIFg1 MDlfTkFNRV9nZXRfaW5kZXhfYnlfT0JKKGNvbnN0X2Nhc3Q8Tm9uQ29uc3RUeXBlICo+KG5hbWUp LCBvYmosIGxhc3Rwb3MpOwotK30KLSsKLSBzdGF0aWMgdm9pZCB0cnlfYWRkX25hbWVfaXRlbShY NTA5X05BTUUgKipuYW1lLCBpbnQgbmlkLCBjb25zdCBRU3RyaW5nICZ2YWwpCi0gewotICAgICBp ZiAodmFsLmlzRW1wdHkoKSkKLUBAIC0zMDQsMjAgKzMyOCwyMiBAQCBzdGF0aWMgWDUwOV9OQU1F ICpuZXdfY2VydF9uYW1lKGNvbnN0IENlcnRpZmljYXRlSW5mbyAmaW5mbykKLSAgICAgcmV0dXJu IG5hbWU7Ci0gfQotIAotLXN0YXRpYyB2b2lkIHRyeV9nZXRfbmFtZV9pdGVtKFg1MDlfTkFNRSAq bmFtZSwgaW50IG5pZCwgY29uc3QgQ2VydGlmaWNhdGVJbmZvVHlwZSAmdCwgQ2VydGlmaWNhdGVJ bmZvICppbmZvKQotK3N0YXRpYyB2b2lkIHRyeV9nZXRfbmFtZV9pdGVtKGNvbnN0IFg1MDlfTkFN RSAqbmFtZSwgaW50IG5pZCwgY29uc3QgQ2VydGlmaWNhdGVJbmZvVHlwZSAmdCwgQ2VydGlmaWNh dGVJbmZvICppbmZvKQotIHsKLSAgICAgaW50IGxvYzsKLSAgICAgbG9jID0gLTE7Ci0tICAgIHdo aWxlICgobG9jID0gWDUwOV9OQU1FX2dldF9pbmRleF9ieV9OSUQobmFtZSwgbmlkLCBsb2MpKSAh PSAtMSkgewotLSAgICAgICAgWDUwOV9OQU1FX0VOVFJZICpuZSAgID0gWDUwOV9OQU1FX2dldF9l bnRyeShuYW1lLCBsb2MpOwotLSAgICAgICAgQVNOMV9TVFJJTkcgICAgICpkYXRhID0gWDUwOV9O QU1FX0VOVFJZX2dldF9kYXRhKG5lKTsKLS0gICAgICAgIFFCeXRlQXJyYXkgICAgICAgY3MoKGNv bnN0IGNoYXIgKilkYXRhLT5kYXRhLCBkYXRhLT5sZW5ndGgpOwotKyAgICB3aGlsZSAoKGxvYyA9 IG91cl9YNTA5X05BTUVfZ2V0X2luZGV4X2J5X05JRChuYW1lLCBuaWQsIGxvYykpICE9IC0xKSB7 Ci0rICAgICAgICBjb25zdCBYNTA5X05BTUVfRU5UUlkgKm5lICAgPSBYNTA5X05BTUVfZ2V0X2Vu dHJ5KG5hbWUsIGxvYyk7Ci0rICAgICAgICBjb25zdCBBU04xX1NUUklORyAgICAgKmRhdGEgPSBY NTA5X05BTUVfRU5UUllfZ2V0X2RhdGEobmUpOwotKyAgICAgICAgUUJ5dGVBcnJheSAgICAgICAg ICAgICBjcygoY29uc3QgY2hhciAqKUFTTjFfU1RSSU5HX2dldDBfZGF0YShkYXRhKSwgQVNOMV9T VFJJTkdfbGVuZ3RoKGRhdGEpKTsKLSAgICAgICAgIGluZm8tPmluc2VydCh0LCBRU3RyaW5nOjpm cm9tTGF0aW4xKGNzKSk7Ci0gICAgIH0KLSB9Ci0gCi0tc3RhdGljIHZvaWQKLS10cnlfZ2V0X25h bWVfaXRlbV9ieV9vaWQoWDUwOV9OQU1FICpuYW1lLCBjb25zdCBRU3RyaW5nICZvaWRUZXh0LCBj b25zdCBDZXJ0aWZpY2F0ZUluZm9UeXBlICZ0LCBDZXJ0aWZpY2F0ZUluZm8gKmluZm8pCi0rc3Rh dGljIHZvaWQgdHJ5X2dldF9uYW1lX2l0ZW1fYnlfb2lkKGNvbnN0IFg1MDlfTkFNRSAgICAgICAg ICAgKm5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFT dHJpbmcgICAgICAgICAgICAgJm9pZFRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IENlcnRpZmljYXRlSW5mb1R5cGUgJnQsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENlcnRpZmljYXRlSW5mbyAgICAgICAgICAgKmluZm8pCi0g ewotICAgICBBU04xX09CSkVDVCAqb2lkID0gT0JKX3R4dDJvYmoob2lkVGV4dC50b0xhdGluMSgp LmRhdGEoKSwgMSk7IC8vIDEgPSBvbmx5IGFjY2VwdCBkb3R0ZWQgaW5wdXQKLSAgICAgaWYgKCFv aWQpCi1AQCAtMzI1LDE3ICszNTEsMTcgQEAgdHJ5X2dldF9uYW1lX2l0ZW1fYnlfb2lkKFg1MDlf TkFNRSAqbmFtZSwgY29uc3QgUVN0cmluZyAmb2lkVGV4dCwgY29uc3QgQ2VydGlmaWMKLSAKLSAg ICAgaW50IGxvYzsKLSAgICAgbG9jID0gLTE7Ci0tICAgIHdoaWxlICgobG9jID0gWDUwOV9OQU1F X2dldF9pbmRleF9ieV9PQkoobmFtZSwgb2lkLCBsb2MpKSAhPSAtMSkgewotLSAgICAgICAgWDUw OV9OQU1FX0VOVFJZICpuZSAgID0gWDUwOV9OQU1FX2dldF9lbnRyeShuYW1lLCBsb2MpOwotLSAg ICAgICAgQVNOMV9TVFJJTkcgICAgICpkYXRhID0gWDUwOV9OQU1FX0VOVFJZX2dldF9kYXRhKG5l KTsKLS0gICAgICAgIFFCeXRlQXJyYXkgICAgICAgY3MoKGNvbnN0IGNoYXIgKilkYXRhLT5kYXRh LCBkYXRhLT5sZW5ndGgpOwotKyAgICB3aGlsZSAoKGxvYyA9IG91cl9YNTA5X05BTUVfZ2V0X2lu ZGV4X2J5X09CSihuYW1lLCBvaWQsIGxvYykpICE9IC0xKSB7Ci0rICAgICAgICBjb25zdCBYNTA5 X05BTUVfRU5UUlkgKm5lICAgPSBYNTA5X05BTUVfZ2V0X2VudHJ5KG5hbWUsIGxvYyk7Ci0rICAg ICAgICBjb25zdCBBU04xX1NUUklORyAgICAgKmRhdGEgPSBYNTA5X05BTUVfRU5UUllfZ2V0X2Rh dGEobmUpOwotKyAgICAgICAgUUJ5dGVBcnJheSAgICAgICAgICAgICBjcygoY29uc3QgY2hhciAq KUFTTjFfU1RSSU5HX2dldDBfZGF0YShkYXRhKSwgQVNOMV9TVFJJTkdfbGVuZ3RoKGRhdGEpKTsK LSAgICAgICAgIGluZm8tPmluc2VydCh0LCBRU3RyaW5nOjpmcm9tTGF0aW4xKGNzKSk7Ci0gICAg ICAgICBxRGVidWcoKSA8PCAib2lkOiAiIDw8IG9pZFRleHQgPDwgIiwgIHJlc3VsdDogIiA8PCBj czsKLSAgICAgfQotICAgICBBU04xX09CSkVDVF9mcmVlKG9pZCk7Ci0gfQotIAotLXN0YXRpYyBD ZXJ0aWZpY2F0ZUluZm8gZ2V0X2NlcnRfbmFtZShYNTA5X05BTUUgKm5hbWUpCi0rc3RhdGljIENl cnRpZmljYXRlSW5mbyBnZXRfY2VydF9uYW1lKGNvbnN0IFg1MDlfTkFNRSAqbmFtZSkKLSB7Ci0g ICAgIENlcnRpZmljYXRlSW5mbyBpbmZvOwotICAgICB0cnlfZ2V0X25hbWVfaXRlbShuYW1lLCBO SURfY29tbW9uTmFtZSwgQ29tbW9uTmFtZSwgJmluZm8pOwotQEAgLTM4OSw5ICs0MTUsOSBAQCBz dGF0aWMgWDUwOV9FWFRFTlNJT04gKm5ld19iYXNpY19jb25zdHJhaW50cyhib29sIGNhLCBpbnQg cGF0aGxlbikKLSAgICAgcmV0dXJuIGV4OwotIH0KLSAKLS1zdGF0aWMgdm9pZCBnZXRfYmFzaWNf Y29uc3RyYWludHMoWDUwOV9FWFRFTlNJT04gKmV4LCBib29sICpjYSwgaW50ICpwYXRobGVuKQot K3N0YXRpYyB2b2lkIGdldF9iYXNpY19jb25zdHJhaW50cyhjb25zdCBYNTA5X0VYVEVOU0lPTiAq ZXgsIGJvb2wgKmNhLCBpbnQgKnBhdGhsZW4pCi0gewotLSAgICBCQVNJQ19DT05TVFJBSU5UUyAq YnMgPSAoQkFTSUNfQ09OU1RSQUlOVFMgKilYNTA5VjNfRVhUX2QyaShleCk7Ci0rICAgIEJBU0lD X0NPTlNUUkFJTlRTICpicyA9IChCQVNJQ19DT05TVFJBSU5UUyAqKW91cl9YNTA5VjNfRVhUX2Qy aShleCk7Ci0gICAgICpjYSAgICAgICAgICAgICAgICAgICA9IChicy0+Y2EgPyB0cnVlIDogZmFs c2UpOwotICAgICBpZiAoYnMtPnBhdGhsZW4pCi0gICAgICAgICAqcGF0aGxlbiA9IEFTTjFfSU5U RUdFUl9nZXQoYnMtPnBhdGhsZW4pOwotQEAgLTY0MSwxMCArNjY3LDEwIEBAIHN0YXRpYyB2b2lk IHRyeV9nZXRfZ2VuZXJhbF9uYW1lKEdFTkVSQUxfTkFNRVMgKm5hbWVzLCBjb25zdCBDZXJ0aWZp Y2F0ZUluZm9UeXBlCi0gICAgIH0KLSB9Ci0gCi0tc3RhdGljIENlcnRpZmljYXRlSW5mbyBnZXRf Y2VydF9hbHRfbmFtZShYNTA5X0VYVEVOU0lPTiAqZXgpCi0rc3RhdGljIENlcnRpZmljYXRlSW5m byBnZXRfY2VydF9hbHRfbmFtZShjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXgpCi0gewotICAgICBD ZXJ0aWZpY2F0ZUluZm8gaW5mbzsKLS0gICAgR0VORVJBTF9OQU1FUyAgKmduID0gKEdFTkVSQUxf TkFNRVMgKilYNTA5VjNfRVhUX2QyaShleCk7Ci0rICAgIEdFTkVSQUxfTkFNRVMgICpnbiA9IChH RU5FUkFMX05BTUVTICopb3VyX1g1MDlWM19FWFRfZDJpKGV4KTsKLSAgICAgdHJ5X2dldF9nZW5l cmFsX25hbWUoZ24sIEVtYWlsLCAmaW5mbyk7Ci0gICAgIHRyeV9nZXRfZ2VuZXJhbF9uYW1lKGdu LCBVUkksICZpbmZvKTsKLSAgICAgdHJ5X2dldF9nZW5lcmFsX25hbWUoZ24sIEROUywgJmluZm8p OwotQEAgLTcwNCw3ICs3MzAsNyBAQCBzdGF0aWMgWDUwOV9FWFRFTlNJT04gKm5ld19jZXJ0X2tl eV91c2FnZShjb25zdCBDb25zdHJhaW50cyAmY29uc3RyYWludHMpCi0gICAgIHJldHVybiBleDsK LSB9Ci0gCi0tc3RhdGljIENvbnN0cmFpbnRzIGdldF9jZXJ0X2tleV91c2FnZShYNTA5X0VYVEVO U0lPTiAqZXgpCi0rc3RhdGljIENvbnN0cmFpbnRzIGdldF9jZXJ0X2tleV91c2FnZShjb25zdCBY NTA5X0VYVEVOU0lPTiAqZXgpCi0gewotICAgICBDb25zdHJhaW50cyBjb25zdHJhaW50czsKLSAg ICAgaW50ICAgICAgICAgYml0X3RhYmxlWzldID0ge0RpZ2l0YWxTaWduYXR1cmUsCi1AQCAtNzE3 LDcgKzc0Myw3IEBAIHN0YXRpYyBDb25zdHJhaW50cyBnZXRfY2VydF9rZXlfdXNhZ2UoWDUwOV9F WFRFTlNJT04gKmV4KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5jaXBoZXJP bmx5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaXBoZXJPbmx5fTsKLSAK LS0gICAgQVNOMV9CSVRfU1RSSU5HICprZXl1c2FnZSA9IChBU04xX0JJVF9TVFJJTkcgKilYNTA5 VjNfRVhUX2QyaShleCk7Ci0rICAgIEFTTjFfQklUX1NUUklORyAqa2V5dXNhZ2UgPSAoQVNOMV9C SVRfU1RSSU5HICopb3VyX1g1MDlWM19FWFRfZDJpKGV4KTsKLSAgICAgZm9yIChpbnQgbiA9IDA7 IG4gPCA5OyArK24pIHsKLSAgICAgICAgIGlmIChBU04xX0JJVF9TVFJJTkdfZ2V0X2JpdChrZXl1 c2FnZSwgbikpCi0gICAgICAgICAgICAgY29uc3RyYWludHMgKz0gQ29uc3RyYWludFR5cGUoKENv bnN0cmFpbnRUeXBlS25vd24pYml0X3RhYmxlW25dKTsKLUBAIC03NzgsMTEgKzgwNCwxMSBAQCBz dGF0aWMgWDUwOV9FWFRFTlNJT04gKm5ld19jZXJ0X2V4dF9rZXlfdXNhZ2UoY29uc3QgQ29uc3Ry YWludHMgJmNvbnN0cmFpbnRzKQotICAgICByZXR1cm4gZXg7Ci0gfQotIAotLXN0YXRpYyBDb25z dHJhaW50cyBnZXRfY2VydF9leHRfa2V5X3VzYWdlKFg1MDlfRVhURU5TSU9OICpleCkKLStzdGF0 aWMgQ29uc3RyYWludHMgZ2V0X2NlcnRfZXh0X2tleV91c2FnZShjb25zdCBYNTA5X0VYVEVOU0lP TiAqZXgpCi0gewotICAgICBDb25zdHJhaW50cyBjb25zdHJhaW50czsKLSAKLS0gICAgRVhURU5E RURfS0VZX1VTQUdFICpleHRrZXl1c2FnZSA9IChFWFRFTkRFRF9LRVlfVVNBR0UgKilYNTA5VjNf RVhUX2QyaShleCk7Ci0rICAgIEVYVEVOREVEX0tFWV9VU0FHRSAqZXh0a2V5dXNhZ2UgPSAoRVhU RU5ERURfS0VZX1VTQUdFICopb3VyX1g1MDlWM19FWFRfZDJpKGV4KTsKLSAgICAgZm9yIChpbnQg biA9IDA7IG4gPCBza19BU04xX09CSkVDVF9udW0oZXh0a2V5dXNhZ2UpOyArK24pIHsKLSAgICAg ICAgIEFTTjFfT0JKRUNUICpvYmogPSBza19BU04xX09CSkVDVF92YWx1ZShleHRrZXl1c2FnZSwg bik7Ci0gICAgICAgICBpbnQgICAgICAgICAgbmlkID0gT0JKX29iajJuaWQob2JqKTsKLUBAIC04 NTIsMTAgKzg3OCwxMCBAQCBzdGF0aWMgWDUwOV9FWFRFTlNJT04gKm5ld19jZXJ0X3BvbGljaWVz KGNvbnN0IFFTdHJpbmdMaXN0ICZwb2xpY2llcykKLSAgICAgcmV0dXJuIGV4OwotIH0KLSAKLS1z dGF0aWMgUVN0cmluZ0xpc3QgZ2V0X2NlcnRfcG9saWNpZXMoWDUwOV9FWFRFTlNJT04gKmV4KQot K3N0YXRpYyBRU3RyaW5nTGlzdCBnZXRfY2VydF9wb2xpY2llcyhjb25zdCBYNTA5X0VYVEVOU0lP TiAqZXgpCi0gewotICAgICBRU3RyaW5nTGlzdCBvdXQ7Ci0tICAgIFNUQUNLX09GKFBPTElDWUlO Rk8pICpwb2xzID0gKFNUQUNLX09GKFBPTElDWUlORk8pICopWDUwOVYzX0VYVF9kMmkoZXgpOwot KyAgICBTVEFDS19PRihQT0xJQ1lJTkZPKSAqcG9scyA9IChTVEFDS19PRihQT0xJQ1lJTkZPKSAq KW91cl9YNTA5VjNfRVhUX2QyaShleCk7Ci0gICAgIGZvciAoaW50IG4gPSAwOyBuIDwgc2tfUE9M SUNZSU5GT19udW0ocG9scyk7ICsrbikgewotICAgICAgICAgUE9MSUNZSU5GTyAqcG9sID0gc2tf UE9MSUNZSU5GT192YWx1ZShwb2xzLCBuKTsKLSAgICAgICAgIFFCeXRlQXJyYXkgIGJ1ZigxMjgs IDApOwotQEAgLTg2Nyw5ICs4OTMsOSBAQCBzdGF0aWMgUVN0cmluZ0xpc3QgZ2V0X2NlcnRfcG9s aWNpZXMoWDUwOV9FWFRFTlNJT04gKmV4KQotICAgICByZXR1cm4gb3V0OwotIH0KLSAKLS1zdGF0 aWMgUUJ5dGVBcnJheSBnZXRfY2VydF9zdWJqZWN0X2tleV9pZChYNTA5X0VYVEVOU0lPTiAqZXgp Ci0rc3RhdGljIFFCeXRlQXJyYXkgZ2V0X2NlcnRfc3ViamVjdF9rZXlfaWQoY29uc3QgWDUwOV9F WFRFTlNJT04gKmV4KQotIHsKLS0gICAgQVNOMV9PQ1RFVF9TVFJJTkcgKnNraWQgPSAoQVNOMV9P Q1RFVF9TVFJJTkcgKilYNTA5VjNfRVhUX2QyaShleCk7Ci0rICAgIEFTTjFfT0NURVRfU1RSSU5H ICpza2lkID0gKEFTTjFfT0NURVRfU1RSSU5HICopb3VyX1g1MDlWM19FWFRfZDJpKGV4KTsKLSAg ICAgY29uc3QgUUJ5dGVBcnJheSAgIG91dCAgPSBxY2FfQVNOMV9TVFJJTkdfdG9CeXRlQXJyYXko c2tpZCk7Ci0gICAgIEFTTjFfT0NURVRfU1RSSU5HX2ZyZWUoc2tpZCk7Ci0gICAgIHJldHVybiBv dXQ7Ci1AQCAtODc3LDkgKzkwMyw5IEBAIHN0YXRpYyBRQnl0ZUFycmF5IGdldF9jZXJ0X3N1Ympl Y3Rfa2V5X2lkKFg1MDlfRVhURU5TSU9OICpleCkKLSAKLSAvLyBJZiB5b3UgZ2V0IGFueSBtb3Jl IGNyYXNoZXMgaW4gdGhpcyBjb2RlLCBwbGVhc2UgcHJvdmlkZSBhIGNvcHkKLSAvLyBvZiB0aGUg Y2VydCB0byBicmFkaCBBVCBmcm9nbW91dGgubmV0Ci0tc3RhdGljIFFCeXRlQXJyYXkgZ2V0X2Nl cnRfaXNzdWVyX2tleV9pZChYNTA5X0VYVEVOU0lPTiAqZXgpCi0rc3RhdGljIFFCeXRlQXJyYXkg Z2V0X2NlcnRfaXNzdWVyX2tleV9pZChjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXgpCi0gewotLSAg ICBBVVRIT1JJVFlfS0VZSUQgKmFraWQgPSAoQVVUSE9SSVRZX0tFWUlEICopWDUwOVYzX0VYVF9k MmkoZXgpOwotKyAgICBBVVRIT1JJVFlfS0VZSUQgKmFraWQgPSAoQVVUSE9SSVRZX0tFWUlEICop b3VyX1g1MDlWM19FWFRfZDJpKGV4KTsKLSAgICAgUUJ5dGVBcnJheSAgICAgICBvdXQ7Ci0gICAg IGlmIChha2lkLT5rZXlpZCkKLSAgICAgICAgIG91dCA9IHFjYV9BU04xX1NUUklOR190b0J5dGVB cnJheShha2lkLT5rZXlpZCk7Ci1AQCAtMzMzNCwxNiArMzM2MCwxNiBAQCBwdWJsaWM6Ci0gLy8g YnkgRXJpYyBZb3VuZwotIFFEYXRlVGltZSBBU04xX1VUQ1RJTUVfUURhdGVUaW1lKGNvbnN0IEFT TjFfVVRDVElNRSAqdG0sIGludCAqaXNHbXQpCi0gewotLSAgICBRRGF0ZVRpbWUgcWR0OwotLSAg ICBjaGFyICAgICAqdjsKLS0gICAgaW50ICAgICAgIGdtdCA9IDA7Ci0tICAgIGludCAgICAgICBp OwotLSAgICBpbnQgICAgICAgeSA9IDAsIE0gPSAwLCBkID0gMCwgaCA9IDAsIG0gPSAwLCBzID0g MDsKLS0gICAgUURhdGUgICAgIHFkYXRlOwotLSAgICBRVGltZSAgICAgcXRpbWU7Ci0rICAgIFFE YXRlVGltZSAgIHFkdDsKLSsgICAgY29uc3QgY2hhciAqdjsKLSsgICAgaW50ICAgICAgICAgZ210 ID0gMDsKLSsgICAgaW50ICAgICAgICAgaTsKLSsgICAgaW50ICAgICAgICAgeSA9IDAsIE0gPSAw LCBkID0gMCwgaCA9IDAsIG0gPSAwLCBzID0gMDsKLSsgICAgUURhdGUgICAgICAgcWRhdGU7Ci0r ICAgIFFUaW1lICAgICAgIHF0aW1lOwotIAotLSAgICBpID0gdG0tPmxlbmd0aDsKLS0gICAgdiA9 IChjaGFyICopdG0tPmRhdGE7Ci0rICAgIGkgPSBBU04xX1NUUklOR19sZW5ndGgoKGNvbnN0IEFT TjFfU1RSSU5HICopdG0pOwotKyAgICB2ID0gKGNvbnN0IGNoYXIgKilBU04xX1NUUklOR19nZXQw X2RhdGEoKGNvbnN0IEFTTjFfU1RSSU5HICopdG0pOwotIAotICAgICBpZiAoaSA8IDEwKQotICAg ICAgICAgZ290byBhdXFfZXJyOwotQEAgLTM2NzIsNDIgKzM2OTgsNDIgQEAgcHVibGljOgotICAg ICAgICAgcC5wYXRoTGltaXQgPSAwOwotICAgICAgICAgaW50IHBvcyAgICAgPSBYNTA5X2dldF9l eHRfYnlfTklEKHgsIE5JRF9iYXNpY19jb25zdHJhaW50cywgLTEpOwotICAgICAgICAgaWYgKHBv cyAhPSAtMSkgewotLSAgICAgICAgICAgIFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDlfZ2V0X2V4 dCh4LCBwb3MpOwotKyAgICAgICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDlf Z2V0X2V4dCh4LCBwb3MpOwotICAgICAgICAgICAgIGlmIChleCkKLSAgICAgICAgICAgICAgICAg Z2V0X2Jhc2ljX2NvbnN0cmFpbnRzKGV4LCAmcC5pc0NBLCAmcC5wYXRoTGltaXQpOwotICAgICAg ICAgfQotIAotICAgICAgICAgcG9zID0gWDUwOV9nZXRfZXh0X2J5X05JRCh4LCBOSURfc3ViamVj dF9hbHRfbmFtZSwgLTEpOwotICAgICAgICAgaWYgKHBvcyAhPSAtMSkgewotLSAgICAgICAgICAg IFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDlfZ2V0X2V4dCh4LCBwb3MpOwotKyAgICAgICAgICAg IGNvbnN0IFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDlfZ2V0X2V4dCh4LCBwb3MpOwotICAgICAg ICAgICAgIGlmIChleCkKLSAgICAgICAgICAgICAgICAgc3ViamVjdC51bml0ZShnZXRfY2VydF9h bHRfbmFtZShleCkpOwotICAgICAgICAgfQotIAotICAgICAgICAgcG9zID0gWDUwOV9nZXRfZXh0 X2J5X05JRCh4LCBOSURfaXNzdWVyX2FsdF9uYW1lLCAtMSk7Ci0gICAgICAgICBpZiAocG9zICE9 IC0xKSB7Ci0tICAgICAgICAgICAgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9nZXRfZXh0KHgs IHBvcyk7Ci0rICAgICAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9nZXRf ZXh0KHgsIHBvcyk7Ci0gICAgICAgICAgICAgaWYgKGV4KQotICAgICAgICAgICAgICAgICBpc3N1 ZXIudW5pdGUoZ2V0X2NlcnRfYWx0X25hbWUoZXgpKTsKLSAgICAgICAgIH0KLSAKLSAgICAgICAg IHBvcyA9IFg1MDlfZ2V0X2V4dF9ieV9OSUQoeCwgTklEX2tleV91c2FnZSwgLTEpOwotICAgICAg ICAgaWYgKHBvcyAhPSAtMSkgewotLSAgICAgICAgICAgIFg1MDlfRVhURU5TSU9OICpleCA9IFg1 MDlfZ2V0X2V4dCh4LCBwb3MpOwotKyAgICAgICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpl eCA9IFg1MDlfZ2V0X2V4dCh4LCBwb3MpOwotICAgICAgICAgICAgIGlmIChleCkKLSAgICAgICAg ICAgICAgICAgcC5jb25zdHJhaW50cyA9IGdldF9jZXJ0X2tleV91c2FnZShleCk7Ci0gICAgICAg ICB9Ci0gCi0gICAgICAgICBwb3MgPSBYNTA5X2dldF9leHRfYnlfTklEKHgsIE5JRF9leHRfa2V5 X3VzYWdlLCAtMSk7Ci0gICAgICAgICBpZiAocG9zICE9IC0xKSB7Ci0tICAgICAgICAgICAgWDUw OV9FWFRFTlNJT04gKmV4ID0gWDUwOV9nZXRfZXh0KHgsIHBvcyk7Ci0rICAgICAgICAgICAgY29u c3QgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9nZXRfZXh0KHgsIHBvcyk7Ci0gICAgICAgICAg ICAgaWYgKGV4KQotICAgICAgICAgICAgICAgICBwLmNvbnN0cmFpbnRzICs9IGdldF9jZXJ0X2V4 dF9rZXlfdXNhZ2UoZXgpOwotICAgICAgICAgfQotIAotICAgICAgICAgcG9zID0gWDUwOV9nZXRf ZXh0X2J5X05JRCh4LCBOSURfY2VydGlmaWNhdGVfcG9saWNpZXMsIC0xKTsKLSAgICAgICAgIGlm IChwb3MgIT0gLTEpIHsKLS0gICAgICAgICAgICBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5X2dl dF9leHQoeCwgcG9zKTsKLSsgICAgICAgICAgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXggPSBY NTA5X2dldF9leHQoeCwgcG9zKTsKLSAgICAgICAgICAgICBpZiAoZXgpCi0gICAgICAgICAgICAg ICAgIHAucG9saWNpZXMgPSBnZXRfY2VydF9wb2xpY2llcyhleCk7Ci0gICAgICAgICB9Ci1AQCAt MzcxNiw5ICszNzQyLDEwIEBAIHB1YmxpYzoKLSAKLSAgICAgICAgIFg1MDlfZ2V0MF9zaWduYXR1 cmUoJnNpZ25hdHVyZSwgbnVsbHB0ciwgeCk7Ci0gICAgICAgICBpZiAoc2lnbmF0dXJlKSB7Ci0t ICAgICAgICAgICAgcC5zaWcgPSBRQnl0ZUFycmF5KHNpZ25hdHVyZS0+bGVuZ3RoLCAwKTsKLS0g ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpZ25hdHVyZS0+bGVuZ3RoOyBpKyspCi0t ICAgICAgICAgICAgICAgIHAuc2lnW2ldID0gc2lnbmF0dXJlLT5kYXRhW2ldOwotKyAgICAgICAg ICAgIGNvbnN0IGludCBieXRlX2xlbiA9IEFTTjFfU1RSSU5HX2xlbmd0aCgoY29uc3QgQVNOMV9T VFJJTkcgKilzaWduYXR1cmUpOwotKyAgICAgICAgICAgIHAuc2lnICAgICAgICAgICAgICA9IFFC eXRlQXJyYXkoYnl0ZV9sZW4sIDApOwotKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwg Ynl0ZV9sZW47IGkrKykKLSsgICAgICAgICAgICAgICAgcC5zaWdbaV0gPSBBU04xX0JJVF9TVFJJ TkdfZ2V0X2JpdChzaWduYXR1cmUsIGkpOwotICAgICAgICAgfQotIAotICAgICAgICAgc3dpdGNo IChYNTA5X2dldF9zaWduYXR1cmVfbmlkKHgpKSB7Ci1AQCAtMzc1OCwxNCArMzc4NSwxNCBAQCBw dWJsaWM6Ci0gCi0gICAgICAgICBwb3MgPSBYNTA5X2dldF9leHRfYnlfTklEKHgsIE5JRF9zdWJq ZWN0X2tleV9pZGVudGlmaWVyLCAtMSk7Ci0gICAgICAgICBpZiAocG9zICE9IC0xKSB7Ci0tICAg ICAgICAgICAgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9nZXRfZXh0KHgsIHBvcyk7Ci0rICAg ICAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9nZXRfZXh0KHgsIHBvcyk7 Ci0gICAgICAgICAgICAgaWYgKGV4KQotICAgICAgICAgICAgICAgICBwLnN1YmplY3RJZCArPSBn ZXRfY2VydF9zdWJqZWN0X2tleV9pZChleCk7Ci0gICAgICAgICB9Ci0gCi0gICAgICAgICBwb3Mg PSBYNTA5X2dldF9leHRfYnlfTklEKHgsIE5JRF9hdXRob3JpdHlfa2V5X2lkZW50aWZpZXIsIC0x KTsKLSAgICAgICAgIGlmIChwb3MgIT0gLTEpIHsKLS0gICAgICAgICAgICBYNTA5X0VYVEVOU0lP TiAqZXggPSBYNTA5X2dldF9leHQoeCwgcG9zKTsKLSsgICAgICAgICAgICBjb25zdCBYNTA5X0VY VEVOU0lPTiAqZXggPSBYNTA5X2dldF9leHQoeCwgcG9zKTsKLSAgICAgICAgICAgICBpZiAoZXgp Ci0gICAgICAgICAgICAgICAgIHAuaXNzdWVySWQgKz0gZ2V0X2NlcnRfaXNzdWVyX2tleV9pZChl eCk7Ci0gICAgICAgICB9Ci1AQCAtNDE3NSwzNSArNDIwMiwzNSBAQCBwdWJsaWM6Ci0gICAgICAg ICBwLnBhdGhMaW1pdCA9IDA7Ci0gICAgICAgICBpbnQgcG9zICAgICA9IFg1MDl2M19nZXRfZXh0 X2J5X05JRChleHRzLCBOSURfYmFzaWNfY29uc3RyYWludHMsIC0xKTsKLSAgICAgICAgIGlmIChw b3MgIT0gLTEpIHsKLS0gICAgICAgICAgICBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5djNfZ2V0 X2V4dChleHRzLCBwb3MpOwotKyAgICAgICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleCA9 IFg1MDl2M19nZXRfZXh0KGV4dHMsIHBvcyk7Ci0gICAgICAgICAgICAgaWYgKGV4KQotICAgICAg ICAgICAgICAgICBnZXRfYmFzaWNfY29uc3RyYWludHMoZXgsICZwLmlzQ0EsICZwLnBhdGhMaW1p dCk7Ci0gICAgICAgICB9Ci0gCi0gICAgICAgICBwb3MgPSBYNTA5djNfZ2V0X2V4dF9ieV9OSUQo ZXh0cywgTklEX3N1YmplY3RfYWx0X25hbWUsIC0xKTsKLSAgICAgICAgIGlmIChwb3MgIT0gLTEp IHsKLS0gICAgICAgICAgICBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5djNfZ2V0X2V4dChleHRz LCBwb3MpOwotKyAgICAgICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDl2M19n ZXRfZXh0KGV4dHMsIHBvcyk7Ci0gICAgICAgICAgICAgaWYgKGV4KQotICAgICAgICAgICAgICAg ICBzdWJqZWN0LnVuaXRlKGdldF9jZXJ0X2FsdF9uYW1lKGV4KSk7Ci0gICAgICAgICB9Ci0gCi0g ICAgICAgICBwb3MgPSBYNTA5djNfZ2V0X2V4dF9ieV9OSUQoZXh0cywgTklEX2tleV91c2FnZSwg LTEpOwotICAgICAgICAgaWYgKHBvcyAhPSAtMSkgewotLSAgICAgICAgICAgIFg1MDlfRVhURU5T SU9OICpleCA9IFg1MDl2M19nZXRfZXh0KGV4dHMsIHBvcyk7Ci0rICAgICAgICAgICAgY29uc3Qg WDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOXYzX2dldF9leHQoZXh0cywgcG9zKTsKLSAgICAgICAg ICAgICBpZiAoZXgpCi0gICAgICAgICAgICAgICAgIHAuY29uc3RyYWludHMgPSBnZXRfY2VydF9r ZXlfdXNhZ2UoZXgpOwotICAgICAgICAgfQotIAotICAgICAgICAgcG9zID0gWDUwOXYzX2dldF9l eHRfYnlfTklEKGV4dHMsIE5JRF9leHRfa2V5X3VzYWdlLCAtMSk7Ci0gICAgICAgICBpZiAocG9z ICE9IC0xKSB7Ci0tICAgICAgICAgICAgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOXYzX2dldF9l eHQoZXh0cywgcG9zKTsKLSsgICAgICAgICAgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXggPSBY NTA5djNfZ2V0X2V4dChleHRzLCBwb3MpOwotICAgICAgICAgICAgIGlmIChleCkKLSAgICAgICAg ICAgICAgICAgcC5jb25zdHJhaW50cyArPSBnZXRfY2VydF9leHRfa2V5X3VzYWdlKGV4KTsKLSAg ICAgICAgIH0KLSAKLSAgICAgICAgIHBvcyA9IFg1MDl2M19nZXRfZXh0X2J5X05JRChleHRzLCBO SURfY2VydGlmaWNhdGVfcG9saWNpZXMsIC0xKTsKLSAgICAgICAgIGlmIChwb3MgIT0gLTEpIHsK LS0gICAgICAgICAgICBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5djNfZ2V0X2V4dChleHRzLCBw b3MpOwotKyAgICAgICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDl2M19nZXRf ZXh0KGV4dHMsIHBvcyk7Ci0gICAgICAgICAgICAgaWYgKGV4KQotICAgICAgICAgICAgICAgICBw LnBvbGljaWVzID0gZ2V0X2NlcnRfcG9saWNpZXMoZXgpOwotICAgICAgICAgfQotQEAgLTQyMTQs OSArNDI0MSwxMCBAQCBwdWJsaWM6Ci0gCi0gICAgICAgICBYNTA5X1JFUV9nZXQwX3NpZ25hdHVy ZSh4LCAmc2lnbmF0dXJlLCBudWxscHRyKTsKLSAgICAgICAgIGlmIChzaWduYXR1cmUpIHsKLS0g ICAgICAgICAgICBwLnNpZyA9IFFCeXRlQXJyYXkoc2lnbmF0dXJlLT5sZW5ndGgsIDApOwotLSAg ICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2lnbmF0dXJlLT5sZW5ndGg7IGkrKykKLS0g ICAgICAgICAgICAgICAgcC5zaWdbaV0gPSBzaWduYXR1cmUtPmRhdGFbaV07Ci0rICAgICAgICAg ICAgY29uc3QgaW50IGJ5dGVfbGVuID0gQVNOMV9TVFJJTkdfbGVuZ3RoKChjb25zdCBBU04xX1NU UklORyAqKXNpZ25hdHVyZSk7Ci0rICAgICAgICAgICAgcC5zaWcgICAgICAgICAgICAgID0gUUJ5 dGVBcnJheShieXRlX2xlbiwgMCk7Ci0rICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBi eXRlX2xlbjsgaSsrKQotKyAgICAgICAgICAgICAgICBwLnNpZ1tpXSA9IEFTTjFfQklUX1NUUklO R19nZXRfYml0KHNpZ25hdHVyZSwgaSk7Ci0gICAgICAgICB9Ci0gCi0gICAgICAgICBzd2l0Y2gg KFg1MDlfUkVRX2dldF9zaWduYXR1cmVfbmlkKHgpKSB7Ci1AQCAtNDM2Myw5ICs0MzkxLDkgQEAg cHVibGljOgotICAgICAgICAgICAgIFFDQTo6Q1JMRW50cnk6OlJlYXNvbiByZWFzb24gPSBRQ0E6 OkNSTEVudHJ5OjpVbnNwZWNpZmllZDsKLSAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAg ICAgcG9zICAgID0gWDUwOV9SRVZPS0VEX2dldF9leHRfYnlfTklEKHJldiwgTklEX2NybF9yZWFz b24sIC0xKTsKLSAgICAgICAgICAgICBpZiAocG9zICE9IC0xKSB7Ci0tICAgICAgICAgICAgICAg IFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDlfUkVWT0tFRF9nZXRfZXh0KHJldiwgcG9zKTsKLSsg ICAgICAgICAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9SRVZPS0VEX2dl dF9leHQocmV2LCBwb3MpOwotICAgICAgICAgICAgICAgICBpZiAoZXgpIHsKLS0gICAgICAgICAg ICAgICAgICAgIEFTTjFfRU5VTUVSQVRFRCAqcmVzdWx0ID0gKEFTTjFfRU5VTUVSQVRFRCAqKVg1 MDlWM19FWFRfZDJpKGV4KTsKLSsgICAgICAgICAgICAgICAgICAgIEFTTjFfRU5VTUVSQVRFRCAq cmVzdWx0ID0gKEFTTjFfRU5VTUVSQVRFRCAqKW91cl9YNTA5VjNfRVhUX2QyaShleCk7Ci0gICAg ICAgICAgICAgICAgICAgICBzd2l0Y2ggKEFTTjFfRU5VTUVSQVRFRF9nZXQocmVzdWx0KSkgewot ICAgICAgICAgICAgICAgICAgICAgY2FzZSBDUkxfUkVBU09OX1VOU1BFQ0lGSUVEOgotICAgICAg ICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9IFFDQTo6Q1JMRW50cnk6OlVuc3BlY2lmaWVkOwot QEAgLTQ0MTIsOSArNDQ0MCwxMCBAQCBwdWJsaWM6Ci0gCi0gICAgICAgICBYNTA5X0NSTF9nZXQw X3NpZ25hdHVyZSh4LCAmc2lnbmF0dXJlLCBudWxscHRyKTsKLSAgICAgICAgIGlmIChzaWduYXR1 cmUpIHsKLS0gICAgICAgICAgICBwLnNpZyA9IFFCeXRlQXJyYXkoc2lnbmF0dXJlLT5sZW5ndGgs IDApOwotLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2lnbmF0dXJlLT5sZW5ndGg7 IGkrKykKLS0gICAgICAgICAgICAgICAgcC5zaWdbaV0gPSBzaWduYXR1cmUtPmRhdGFbaV07Ci0r ICAgICAgICAgICAgY29uc3QgaW50IGJ5dGVfbGVuID0gQVNOMV9TVFJJTkdfbGVuZ3RoKChjb25z dCBBU04xX1NUUklORyAqKXNpZ25hdHVyZSk7Ci0rICAgICAgICAgICAgcC5zaWcgICAgICAgICAg ICAgID0gUUJ5dGVBcnJheShieXRlX2xlbiwgMCk7Ci0rICAgICAgICAgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBieXRlX2xlbjsgaSsrKQotKyAgICAgICAgICAgICAgICBwLnNpZ1tpXSA9IEFTTjFf QklUX1NUUklOR19nZXRfYml0KHNpZ25hdHVyZSwgaSk7Ci0gICAgICAgICB9Ci0gCi0gICAgICAg ICBzd2l0Y2ggKFg1MDlfQ1JMX2dldF9zaWduYXR1cmVfbmlkKHgpKSB7Ci1AQCAtNDQ1NCw3ICs0 NDgzLDcgQEAgcHVibGljOgotIAotICAgICAgICAgaW50IHBvcyA9IFg1MDlfQ1JMX2dldF9leHRf YnlfTklEKHgsIE5JRF9hdXRob3JpdHlfa2V5X2lkZW50aWZpZXIsIC0xKTsKLSAgICAgICAgIGlm IChwb3MgIT0gLTEpIHsKLS0gICAgICAgICAgICBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5X0NS TF9nZXRfZXh0KHgsIHBvcyk7Ci0rICAgICAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4 ID0gWDUwOV9DUkxfZ2V0X2V4dCh4LCBwb3MpOwotICAgICAgICAgICAgIGlmIChleCkKLSAgICAg ICAgICAgICAgICAgcC5pc3N1ZXJJZCArPSBnZXRfY2VydF9pc3N1ZXJfa2V5X2lkKGV4KTsKLSAg ICAgICAgIH0KLUBAIC00NDYyLDkgKzQ0OTEsOSBAQCBwdWJsaWM6Ci0gICAgICAgICBwLm51bWJl ciA9IC0xOwotICAgICAgICAgcG9zICAgICAgPSBYNTA5X0NSTF9nZXRfZXh0X2J5X05JRCh4LCBO SURfY3JsX251bWJlciwgLTEpOwotICAgICAgICAgaWYgKHBvcyAhPSAtMSkgewotLSAgICAgICAg ICAgIFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDlfQ1JMX2dldF9leHQoeCwgcG9zKTsKLSsgICAg ICAgICAgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5X0NSTF9nZXRfZXh0KHgsIHBv cyk7Ci0gICAgICAgICAgICAgaWYgKGV4KSB7Ci0tICAgICAgICAgICAgICAgIEFTTjFfSU5URUdF UiAqcmVzdWx0ID0gKEFTTjFfSU5URUdFUiAqKVg1MDlWM19FWFRfZDJpKGV4KTsKLSsgICAgICAg ICAgICAgICAgQVNOMV9JTlRFR0VSICpyZXN1bHQgPSAoQVNOMV9JTlRFR0VSICopb3VyX1g1MDlW M19FWFRfZDJpKGV4KTsKLSAgICAgICAgICAgICAgICAgcC5udW1iZXIgICAgICAgICAgICAgPSBB U04xX0lOVEVHRVJfZ2V0KHJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgIEFTTjFfSU5URUdFUl9m cmVlKHJlc3VsdCk7Ci0gICAgICAgICAgICAgfQotQEAgLTQ5OTQsMTIgKzUwMjMsMTcgQEAgcHVi bGljOgotICAgICAgICAgc3dpdGNoICh2ZXJzaW9uKSB7Ci0gI2lmbmRlZiBPUEVOU1NMX05PX1NT TDNfTUVUSE9ECi0gICAgICAgICBjYXNlIFRMUzo6U1NMX3YzOgotKyNpZiAoT1BFTlNTTF9WRVJT SU9OX05VTUJFUiA+PSAweDQwMDAwMDAwTCkKLSsgICAgICAgICAgICAvLyBUaGVyZSBpcyBubyBz c2wzIGluIG9wZW5zc2w0Ci0rICAgICAgICAgICAgcmV0dXJuIHt9OwotKyNlbHNlCi0gICAgICAg ICAgICAgLy8gSGVyZSBzaG91bGQgYmUgdXNlZCBUTFNfY2xpZW50X21ldGhvZCgpIGJ1dCBvbiBG ZWRvcmEKLSAgICAgICAgICAgICAvLyBpdCBkb2Vzbid0IHJldHVybiBhbnkgU1NMIGNpcGhlcnMu Ci0gICAgICAgICAgICAgY3R4ID0gU1NMX0NUWF9uZXcoU1NMdjNfY2xpZW50X21ldGhvZCgpKTsK LSAgICAgICAgICAgICBTU0xfQ1RYX3NldF9taW5fcHJvdG9fdmVyc2lvbihjdHgsIFNTTDNfVkVS U0lPTik7Ci0gICAgICAgICAgICAgU1NMX0NUWF9zZXRfbWF4X3Byb3RvX3ZlcnNpb24oY3R4LCBT U0wzX1ZFUlNJT04pOwotICAgICAgICAgICAgIGJyZWFrOwotKyNlbmRpZgotICNlbmRpZgotICAg ICAgICAgY2FzZSBUTFM6OlRMU192MToKLSAgICAgICAgICAgICBjdHggPSBTU0xfQ1RYX25ldyhU TFNfY2xpZW50X21ldGhvZCgpKTsKLS0tIAotR2l0TGFiCi0KCmRpZmYgLS1naXQgYS9xY2Euc3Bl YyBiL3FjYS5zcGVjCmluZGV4IDNhY2RjYTEuLjRmZWFhZmUgMTAwNjQ0Ci0tLSBhL3FjYS5zcGVj CisrKyBiL3FjYS5zcGVjCkBAIC0xMCw4ICsxMCw4IEBACiAKIE5hbWU6ICAgIHFjYQogU3VtbWFy eTogUXQgQ3J5cHRvZ3JhcGhpYyBBcmNoaXRlY3R1cmUKLVZlcnNpb246IDIuMy4xMAotUmVsZWFz ZTogNiV7P2Rpc3R9CitWZXJzaW9uOiAyLjMuMTIKK1JlbGVhc2U6IDElez9kaXN0fQogCiBMaWNl bnNlOiBMR1BMLTIuMS1vbmx5CiBVUkw6ICAgICBodHRwczovL3VzZXJiYXNlLmtkZS5vcmcvUUNB CkBAIC0yMCwxMCArMjAsNiBAQCBTb3VyY2UwOiBodHRwOi8vZG93bmxvYWQua2RlLm9yZy9zdGFi bGUvcWNhLyV7dmVyc2lvbn0vcWNhLSV7dmVyc2lvbn0udGFyLnh6CiBQYXRjaDA6ICBxY2EtcXQ2 LXBrZ2NvbmZpZy5wYXRjaAogIyMgdXBzdHJlYW0gcGF0Y2hlcwogCi0jIEJ1aWxkIGZvciBvcGVu c3NsNAotIyBodHRwczovL2ludmVudC5rZGUub3JnL2xpYnJhcmllcy9xY2EvLS9jb21taXQvNmE3 ZGRkNzZhYTU0ZWNjMTRkMTMxNTFjY2EwMDgxMzdiMGFhMjVkOAotUGF0Y2gxMDogNmE3ZGRkNzZh YTU0ZWNjMTRkMTMxNTFjY2EwMDgxMzdiMGFhMjVkOC5wYXRjaAotCiAjIyB1cHN0cmVhbWFibGUg cGF0Y2hlcwogCiBCdWlsZFJlcXVpcmVzOiBjbWFrZSA+PSAyLjguMTIKQEAgLTQzMiw2ICs0Mjgs OSBAQCB0ZXN0ICIkKHBrZy1jb25maWcgLS1tb2R2ZXJzaW9uIHFjYTItcXQ2KSIgPSAiJXt2ZXJz aW9ufSIKICVlbmRpZgogCiAlY2hhbmdlbG9nCisqIEZyaSBBdWcgMjggMjAyNiBTdGV2ZSBDb3Nz ZXR0ZSA8ZmFyY2hvcmRAZ21haWwuY29tPiAtIDIuMy4xMi0xCistIDIuMy4xMgorCiAqIFRodSBK dWwgMTYgMjAyNiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2pl Y3Qub3JnPiAtIDIuMy4xMC02CiAtIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5v cmcvd2lraS9GZWRvcmFfNDVfTWFzc19SZWJ1aWxkCiAKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIv c291cmNlcwppbmRleCBhYTg3YWI4Li43OGIzYWJmIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBi L3NvdXJjZXMKQEAgLTEgKzEgQEAKLVNIQTUxMiAocWNhLTIuMy4xMC50YXIueHopID0gNmIyMjk1 YWMxN2RlMWQ4NmI5NmFlOGY4ZjExZjk2YjlmOWMzZjcxMjJjZTUxODc5YTMyNjhjMGRmMGFkOGU3 NjQ3ZDE5M2RiZDEyYzEyMTVjMWE2NDY3MDY2ZjRlZWQxOGI4NWQxYzA5MzEzYjVlZTA2ZWU1Nzgy ZDBhZDdkZTQKK1NIQTUxMiAocWNhLTIuMy4xMi50YXIueHopID0gNzViZmM0ZjIwZjg0NWU5NWUz NTNjNmMzZTlkMGMzMGI4ZTNlODNjMzI4OTdjNjQ5ZWM5Yjc5NjA3YzAyNzc4YmE5OTBjYmI0MjUz NDYxYzAxYWViNTRhNDI3N2I2NmY4OTJhMTM4Mjg1ZWZmZjA1YWIxMDIwMmUzNGZjMTljYzYK