From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id 14C892A401 for ; Sun, 3 Mar 2024 06:02:34 +0100 (CET) Content-Type: multipart/mixed; boundary="===============0030451857600906585==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_xfce4-weather-plugin=3A_update_to_0=2E11=2E1=2E?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sun, 03 Mar 2024 06:02:34 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============0030451857600906585== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHNnbiBhZ2FpbnN0IG1hc3RlciBvbiB0aGUg dm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vc2duL3ZvaWQtcGFj a2FnZXMgeGZjZTQtd2VhdGhlci1wbHVnaW5zLW5vLWxpYnNvdXAtMy4wCmh0dHBzOi8vZ2l0aHVi LmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80OTA0OAoKeGZjZTQtd2VhdGhlci1w bHVnaW46IHVwZGF0ZSB0byAwLjExLjEuCkNhcnJ5IHBhdGNoZXMgZm9yIGxpYnNvdXAtMy4wIGJl Y2F1c2UgdXBzdHJlYW0gd2FudHMgdG8gd2FpdCB1bnRpbCAgWGZjZSA0LjIwIGlzIHJlbGVhc2Vk ICBvciAgbGF0ZSAyMDI0IC0gZWFybHkgMjAyNSwNCmh0dHBzOi8vZ2l0bGFiLnhmY2Uub3JnL3Bh bmVsLXBsdWdpbnMveGZjZTQtd2VhdGhlci1wbHVnaW4vLS9tZXJnZV9yZXF1ZXN0cy8yOA0KDQoj IyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQ UjogKipZRVMqKg0KDQo8IS0tDQojIyMjIE5ldyBwYWNrYWdlDQotIFRoaXMgbmV3IHBhY2thZ2Ug Y29uZm9ybXMgdG8gdGhlIFtwYWNrYWdlIHJlcXVpcmVtZW50c10oaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjcGFj a2FnZS1yZXF1aXJlbWVudHMpOiAqKllFUyoqfCoqTk8qKg0KLS0+DQoNCjwhLS0gTm90ZTogSWYg dGhlIGJ1aWxkIGlzIGxpa2VseSB0byB0YWtlIG1vcmUgdGhhbiAyIGhvdXJzLCBwbGVhc2UgYWRk IGNpIHNraXAgdGFnIGFzIGRlc2NyaWJlZCBpbg0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91cy1p bnRlZ3JhdGlvbg0KYW5kIHRlc3QgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1 cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBp ZiB0aGlzIFBSIGlzIG5vdCBza2lwcGluZyBDSS4NCi0tPg0KPCEtLQ0KIyMjIyBMb2NhbCBidWls ZCB0ZXN0aW5nDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJjaGl0 ZWN0dXJlLCAoQVJDSC1MSUJDKQ0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgdGhlc2Ug YXJjaGl0ZWN0dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRzKToNCiAgLSBhYXJj aDY0LW11c2wNCiAgLSBhcm12N2wNCiAgLSBhcm12NmwtbXVzbA0KLS0+DQoKCkEgcGF0Y2ggZmls ZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80 OTA0OC5wYXRjaCBpcyBhdHRhY2hlZA== --===============0030451857600906585== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-xfce4-weather-plugins-no-libsoup-3.0-49048.patch" RnJvbSBiN2FjN2E1MDlhYjY3YzlmZjc1MjgzOGE2NWMxMGQ1MDQxZWRhZGI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU3Vu LCAzIE1hciAyMDI0IDEyOjAwOjEwICswNzAwClN1YmplY3Q6IFtQQVRDSF0geGZjZTQtd2VhdGhl ci1wbHVnaW46IHVwZGF0ZSB0byAwLjExLjEuCgotLS0KIC4uLjAxLURvLW5vdC10cmFuc2xhdGUt d2FybmluZy1tZXNzYWdlcy5wYXRjaCB8ICAxNDQgKysrCiAuLi4vcGF0Y2hlcy8wMDAyLUZpeC1t b29uX3BoYXNlcy1hcnJheS5wYXRjaCAgfCAgIDIyICsKIC4uLi8wMDAzLUZpeC1yZW1vdmVfdGlt ZXpvbmVfb2Zmc2V0LnBhdGNoICAgICB8ICAgMjMgKwogLi4uLWxlc3MtdmVyYm9zZS1hYm91dC1u ZXR3b3JrLXJlcXVlc3RzLnBhdGNoIHwgICA3MyArKwogLi4uLzAwMDUtTWlncmF0aW9uLXRvLVN1 bnJpc2UtQVBJLTMuMC5wYXRjaCAgIHwgMTA2NCArKysrKysrKysrKysrKysrKwogLi4uLWxlYWtz LWFyb3VuZC1yZW1vdmVfdGltZXpvbmVfb2Zmc2V0LnBhdGNoIHwgICA2OCArKwogLi4ucy1HZW5l cmFsaXNlLWlucHV0LXRvLWFycmF5LW9mLWdjaGFyLnBhdGNoIHwgIDI2MSArKysrCiAuLi4vMDAw OC1saWJzb3VwLVBvcnQtdG8tbGlic291cC0zLjAucGF0Y2ggICAgfCAgNTU3ICsrKysrKysrKwog c3JjcGtncy94ZmNlNC13ZWF0aGVyLXBsdWdpbi90ZW1wbGF0ZSAgICAgICAgIHwgICAxMyArLQog OSBmaWxlcyBjaGFuZ2VkLCAyMjIxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy94ZmNlNC13ZWF0aGVyLXBsdWdpbi9wYXRjaGVzLzAwMDEt RG8tbm90LXRyYW5zbGF0ZS13YXJuaW5nLW1lc3NhZ2VzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy94ZmNlNC13ZWF0aGVyLXBsdWdpbi9wYXRjaGVzLzAwMDItRml4LW1vb25fcGhh c2VzLWFycmF5LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy94ZmNlNC13ZWF0aGVy LXBsdWdpbi9wYXRjaGVzLzAwMDMtRml4LXJlbW92ZV90aW1lem9uZV9vZmZzZXQucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3hmY2U0LXdlYXRoZXItcGx1Z2luL3BhdGNoZXMvMDAw NC1CZS1sZXNzLXZlcmJvc2UtYWJvdXQtbmV0d29yay1yZXF1ZXN0cy5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MveGZjZTQtd2VhdGhlci1wbHVnaW4vcGF0Y2hlcy8wMDA1LU1pZ3Jh dGlvbi10by1TdW5yaXNlLUFQSS0zLjAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3hmY2U0LXdlYXRoZXItcGx1Z2luL3BhdGNoZXMvMDAwNi1GaXgtbGVha3MtYXJvdW5kLXJlbW92 ZV90aW1lem9uZV9vZmZzZXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3hmY2U0 LXdlYXRoZXItcGx1Z2luL3BhdGNoZXMvMDAwNy1wYXJzZXJzLUdlbmVyYWxpc2UtaW5wdXQtdG8t YXJyYXktb2YtZ2NoYXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3hmY2U0LXdl YXRoZXItcGx1Z2luL3BhdGNoZXMvMDAwOC1saWJzb3VwLVBvcnQtdG8tbGlic291cC0zLjAucGF0 Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3hmY2U0LXdlYXRoZXItcGx1Z2luL3BhdGNoZXMvMDAw MS1Eby1ub3QtdHJhbnNsYXRlLXdhcm5pbmctbWVzc2FnZXMucGF0Y2ggYi9zcmNwa2dzL3hmY2U0 LXdlYXRoZXItcGx1Z2luL3BhdGNoZXMvMDAwMS1Eby1ub3QtdHJhbnNsYXRlLXdhcm5pbmctbWVz c2FnZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLmEw YjhlNWRmMDA5OTNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy94ZmNlNC13ZWF0aGVyLXBs dWdpbi9wYXRjaGVzLzAwMDEtRG8tbm90LXRyYW5zbGF0ZS13YXJuaW5nLW1lc3NhZ2VzLnBhdGNo CkBAIC0wLDAgKzEsMTQ0IEBACitGcm9tIGI0YjkxY2UwNTMxNzFiNzg4Y2VjMGVlMDQ2ZDY2NGRi M2E1OTk5ZTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBHYcOrbCBCb25pdGhvbiA8 Z2FlbEB4ZmNlLm9yZz4KK0RhdGU6IFRodSwgMjggU2VwIDIwMjMgMjA6MjU6MDcgKzAyMDAKK1N1 YmplY3Q6IFtQQVRDSCAxLzhdIERvIG5vdCB0cmFuc2xhdGUgd2FybmluZyBtZXNzYWdlcworCiso Y2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5N2NlMDdkYzBlMzJlNGQzMTQ4OWQxNDJmZGM0ZjBl NzM4NTdlOTI2KQorLS0tCisgcGFuZWwtcGx1Z2luL3dlYXRoZXItaWNvbi5jICAgIHwgIDIgKy0K KyBwYW5lbC1wbHVnaW4vd2VhdGhlci1zZWFyY2guYyAgfCAgNCArKy0tCisgcGFuZWwtcGx1Z2lu L3dlYXRoZXItc3VtbWFyeS5jIHwgIDYgKysrLS0tCisgcGFuZWwtcGx1Z2luL3dlYXRoZXIuYyAg ICAgICAgIHwgMjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tCisgNCBmaWxlcyBjaGFuZ2VkLCAx OCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3BhbmVsLXBs dWdpbi93ZWF0aGVyLWljb24uYyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLWljb24uYworaW5kZXgg MjQ3NDc0Mi4uNWUzOTA2OSAxMDA2NDQKKy0tLSBhL3BhbmVsLXBsdWdpbi93ZWF0aGVyLWljb24u YworKysrIGIvcGFuZWwtcGx1Z2luL3dlYXRoZXItaWNvbi5jCitAQCAtMTg2LDcgKzE4Niw3IEBA IGdldF9pY29uKGNvbnN0IGljb25fdGhlbWUgKnRoZW1lLAorIAorICAgICBnX2Fzc2VydCh0aGVt ZSAhPSBOVUxMKTsKKyAgICAgaWYgKEdfVU5MSUtFTFkoIXRoZW1lKSkgeworLSAgICAgICAgZ193 YXJuaW5nKF8oIk5vIGljb24gdGhlbWUhIikpOworKyAgICAgICAgZ193YXJuaW5nKCJObyBpY29u IHRoZW1lISIpOworICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgIH0KKyAKK2RpZmYgLS1naXQg YS9wYW5lbC1wbHVnaW4vd2VhdGhlci1zZWFyY2guYyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXNl YXJjaC5jCitpbmRleCBmMjFiYTRkLi4wZTY2ZTY3IDEwMDY0NAorLS0tIGEvcGFuZWwtcGx1Z2lu L3dlYXRoZXItc2VhcmNoLmMKKysrKyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXNlYXJjaC5jCitA QCAtMTY2LDcgKzE2Niw3IEBAIHNlYXJjaF9jYihHdGtXaWRnZXQgKndpZGdldCwKKyAgICAgZ19m cmVlKHNhbmVfc3RyKTsKKyAKKyAgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5fc2V0X3RpdGxlKGRp YWxvZy0+Y29sdW1uLCBfKCJTZWFyY2hpbmcuLi4iKSk7CistICAgIGdfbWVzc2FnZShfKCJnZXR0 aW5nICVzIiksIHVybCk7CisrICAgIGdfbWVzc2FnZSgiZ2V0dGluZyAlcyIsIHVybCk7CisgICAg IHdlYXRoZXJfaHR0cF9xdWV1ZV9yZXF1ZXN0KGRpYWxvZy0+c2Vzc2lvbiwgdXJsLCBjYl9zZWFy Y2hkb25lLCBkaWFsb2cpOworICAgICBnX2ZyZWUodXJsKTsKKyB9CitAQCAtNDM0LDYgKzQzNCw2 IEBAIHZvaWQgd2VhdGhlcl9zZWFyY2hfYnlfaXAoU291cFNlc3Npb24gKnNlc3Npb24sCisgICAg IGRhdGEtPmNiID0gZ3VpX2NiOworICAgICBkYXRhLT51c2VyX2RhdGEgPSB1c2VyX2RhdGE7Cisg CistICAgIGdfbWVzc2FnZShfKCJnZXR0aW5nICVzIiksIHVybCk7CisrICAgIGdfbWVzc2FnZSgi Z2V0dGluZyAlcyIsIHVybCk7CisgICAgIHdlYXRoZXJfaHR0cF9xdWV1ZV9yZXF1ZXN0KHNlc3Np b24sIHVybCwgY2JfZ2VvbG9jYXRpb24sIGRhdGEpOworIH0KK2RpZmYgLS1naXQgYS9wYW5lbC1w bHVnaW4vd2VhdGhlci1zdW1tYXJ5LmMgYi9wYW5lbC1wbHVnaW4vd2VhdGhlci1zdW1tYXJ5LmMK K2luZGV4IDY2YzA1MDYuLmY4Yzc3OTcgMTAwNjQ0CistLS0gYS9wYW5lbC1wbHVnaW4vd2VhdGhl ci1zdW1tYXJ5LmMKKysrKyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXN1bW1hcnkuYworQEAgLTI0 NSw5ICsyNDUsOSBAQCBsb2dvX2ZldGNoZWQoU291cFNlc3Npb24gKnNlc3Npb24sCisgICAgICAg ICBnaW50IHNjYWxlX2ZhY3RvcjsKKyAgICAgICAgIGlmICghZ19maWxlX3NldF9jb250ZW50cyhw YXRoLCBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGgsICZlcnJvcikpIHsKKy0gICAgICAg ICAgICBnX3dhcm5pbmcoXygiRXJyb3IgZG93bmxvYWRpbmcgbWV0Lm5vIGxvZ28gaW1hZ2UgdG8g JXMsICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAicmVhc29uOiAlc1xuIiksIHBhdGgsCist ICAgICAgICAgICAgICAgICAgICAgIGVycm9yID8gZXJyb3ItPm1lc3NhZ2UgOiBfKCJ1bmtub3du IikpOworKyAgICAgICAgICAgIGdfd2FybmluZygiRXJyb3IgZG93bmxvYWRpbmcgbWV0Lm5vIGxv Z28gaW1hZ2UgdG8gJXMsICIKKysgICAgICAgICAgICAgICAgICAgICAgInJlYXNvbjogJXNcbiIs IHBhdGgsCisrICAgICAgICAgICAgICAgICAgICAgIGVycm9yID8gZXJyb3ItPm1lc3NhZ2UgOiAi dW5rbm93biIpOworICAgICAgICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7CisgICAgICAgICAg ICAgZ19mcmVlKHBhdGgpOworICAgICAgICAgICAgIHJldHVybjsKK2RpZmYgLS1naXQgYS9wYW5l bC1wbHVnaW4vd2VhdGhlci5jIGIvcGFuZWwtcGx1Z2luL3dlYXRoZXIuYworaW5kZXggOTE5MDY0 ZS4uZDQ5ZGJmOCAxMDA2NDQKKy0tLSBhL3BhbmVsLXBsdWdpbi93ZWF0aGVyLmMKKysrKyBiL3Bh bmVsLXBsdWdpbi93ZWF0aGVyLmMKK0BAIC01MTUsMTAgKzUxNSwxMCBAQCBjYl9hc3Ryb191cGRh dGUoU291cFNlc3Npb24gKnNlc3Npb24sCisgICAgICAgICAgICAgeG1sRnJlZURvYyhkb2MpOwor ICAgICAgICAgfQorICAgICAgICAgaWYgKHBhcnNpbmdfZXJyb3IpCistICAgICAgICAgICAgZ193 YXJuaW5nKF8oIkVycm9yIHBhcnNpbmcgYXN0cm9ub21pY2FsIGRhdGEhIikpOworKyAgICAgICAg ICAgIGdfd2FybmluZygiRXJyb3IgcGFyc2luZyBhc3Ryb25vbWljYWwgZGF0YSEiKTsKKyAgICAg fSBlbHNlCistICAgICAgICBnX3dhcm5pbmcoXygiRG93bmxvYWQgb2YgYXN0cm9ub21pY2FsIGRh dGEgZmFpbGVkIHdpdGggIgorLSAgICAgICAgICAgICAgICAgICAgIkhUVFAgU3RhdHVzIENvZGUg JWQsIFJlYXNvbiBwaHJhc2U6ICVzIiksCisrICAgICAgICBnX3dhcm5pbmcoIkRvd25sb2FkIG9m IGFzdHJvbm9taWNhbCBkYXRhIGZhaWxlZCB3aXRoICIKKysgICAgICAgICAgICAgICAgICAgICJI VFRQIFN0YXR1cyBDb2RlICVkLCBSZWFzb24gcGhyYXNlOiAlcyIsCisgICAgICAgICAgICAgICAg ICAgbXNnLT5zdGF0dXNfY29kZSwgbXNnLT5yZWFzb25fcGhyYXNlKTsKKyAgICAgZGF0YS0+YXN0 cm9fdXBkYXRlLT5uZXh0ID0gY2FsY19uZXh0X2Rvd25sb2FkX3RpbWUoZGF0YS0+YXN0cm9fdXBk YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBub3dfdCk7CitAQCAtNTY4LDExICs1NjgsMTEgQEAgY2Jfd2VhdGhlcl91cGRhdGUoU291 cFNlc3Npb24gKnNlc3Npb24sCisgICAgICAgICAgICAgeG1sRnJlZURvYyhkb2MpOworICAgICAg ICAgfQorICAgICAgICAgaWYgKHBhcnNpbmdfZXJyb3IpCistICAgICAgICAgICAgZ193YXJuaW5n KF8oIkVycm9yIHBhcnNpbmcgd2VhdGhlciBkYXRhISIpKTsKKysgICAgICAgICAgICBnX3dhcm5p bmcoIkVycm9yIHBhcnNpbmcgd2VhdGhlciBkYXRhISIpOworICAgICB9IGVsc2UKKyAgICAgICAg IGdfd2FybmluZworLSAgICAgICAgICAgIChfKCJEb3dubG9hZCBvZiB3ZWF0aGVyIGRhdGEgZmFp bGVkIHdpdGggSFRUUCBTdGF0dXMgQ29kZSAlZCwgIgorLSAgICAgICAgICAgICAgICJSZWFzb24g cGhyYXNlOiAlcyIpLCBtc2ctPnN0YXR1c19jb2RlLCBtc2ctPnJlYXNvbl9waHJhc2UpOworKyAg ICAgICAgICAgICgiRG93bmxvYWQgb2Ygd2VhdGhlciBkYXRhIGZhaWxlZCB3aXRoIEhUVFAgU3Rh dHVzIENvZGUgJWQsICIKKysgICAgICAgICAgICAgIlJlYXNvbiBwaHJhc2U6ICVzIiwgbXNnLT5z dGF0dXNfY29kZSwgbXNnLT5yZWFzb25fcGhyYXNlKTsKKyAgICAgZGF0YS0+d2VhdGhlcl91cGRh dGUtPm5leHQgPSBjYWxjX25leHRfZG93bmxvYWRfdGltZShkYXRhLT53ZWF0aGVyX3VwZGF0ZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBub3dfdCk7CisgCitAQCAtNjQ0LDcgKzY0NCw3IEBAIHVwZGF0ZV9oYW5kbGVyKGdwb2ludGVy IHVzZXJfZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5mb3JlY2Fz dF9kYXlzKTsKKyAKKyAgICAgICAgIC8qIHN0YXJ0IHJlY2VpdmUgdGhyZWFkICovCistICAgICAg ICBnX21lc3NhZ2UoXygiZ2V0dGluZyAlcyIpLCB1cmwpOworKyAgICAgICAgZ19tZXNzYWdlKCJn ZXR0aW5nICVzIiwgdXJsKTsKKyAgICAgICAgIHdlYXRoZXJfaHR0cF9xdWV1ZV9yZXF1ZXN0KGRh dGEtPnNlc3Npb24sIHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNi X2FzdHJvX3VwZGF0ZSwgZGF0YSk7CisgICAgICAgICBnX2ZyZWUodXJsKTsKK0BAIC02NjUsNyAr NjY1LDcgQEAgdXBkYXRlX2hhbmRsZXIoZ3BvaW50ZXIgdXNlcl9kYXRhKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGEtPmxhdCwgZGF0YS0+bG9uLCBkYXRhLT5tc2wpOworIAor ICAgICAgICAgLyogc3RhcnQgcmVjZWl2ZSB0aHJlYWQgKi8KKy0gICAgICAgIGdfbWVzc2FnZShf KCJnZXR0aW5nICVzIiksIHVybCk7CisrICAgICAgICBnX21lc3NhZ2UoImdldHRpbmcgJXMiLCB1 cmwpOworICAgICAgICAgd2VhdGhlcl9odHRwX3F1ZXVlX3JlcXVlc3QoZGF0YS0+c2Vzc2lvbiwg dXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Jfd2VhdGhlcl91cGRh dGUsIGRhdGEpOworICAgICAgICAgZ19mcmVlKHVybCk7CitAQCAtMTE5Nyw3ICsxMTk3LDcgQEAg d3JpdGVfY2FjaGVfZmlsZShwbHVnaW5fZGF0YSAqZGF0YSkKKyAgICAgfQorIAorICAgICBpZiAo IWdfZmlsZV9zZXRfY29udGVudHMoZmlsZSwgb3V0LT5zdHIsIC0xLCBOVUxMKSkKKy0gICAgICAg IGdfd2FybmluZyhfKCJFcnJvciB3cml0aW5nIGNhY2hlIGZpbGUgJXMhIiksIGZpbGUpOworKyAg ICAgICAgZ193YXJuaW5nKCJFcnJvciB3cml0aW5nIGNhY2hlIGZpbGUgJXMhIiwgZmlsZSk7Cisg ICAgIGVsc2UKKyAgICAgICAgIHdlYXRoZXJfZGVidWcoIkNhY2hlIGZpbGUgJXMgaGFzIGJlZW4g d3JpdHRlbi4iLCBmaWxlKTsKKyAKK0BAIC0xNjU3LDcgKzE2NTcsNyBAQCB4ZmNld2VhdGhlcl9k aWFsb2dfcmVzcG9uc2UoR3RrV2lkZ2V0ICpkbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTFVHSU5fV0VCU0lURSwgTlVMTCk7CisgCisgICAgICAgICBp ZiAoR19VTkxJS0VMWShyZXN1bHQgPT0gRkFMU0UpKQorLSAgICAgICAgICAgIGdfd2FybmluZyhf KCJVbmFibGUgdG8gb3BlbiB0aGUgZm9sbG93aW5nIHVybDogJXMiKSwKKysgICAgICAgICAgICBn X3dhcm5pbmcoIlVuYWJsZSB0byBvcGVuIHRoZSBmb2xsb3dpbmcgdXJsOiAlcyIsCisgICAgICAg ICAgICAgICAgICAgICAgIFBMVUdJTl9XRUJTSVRFKTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICAg IC8qIGZyZWUgc3R1ZmYgdXNlZCBpbiBjb25maWcgZGlhbG9nICovCitAQCAtMTk2Miw4ICsxOTYy LDggQEAgeGZjZXdlYXRoZXJfY3JlYXRlX2NvbnRyb2woWGZjZVBhbmVsUGx1Z2luICpwbHVnaW4p CisgICAgICAgICBkYXRhLT5pY29uaW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21fc3VyZmFjZShp Y29uKTsKKyAgICAgICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShpY29uKTsKKyAgICAgfSBlbHNl CistICAgICAgICBnX3dhcm5pbmcoXygiTm8gZGVmYXVsdCBpY29uIHRoZW1lPyAiCistICAgICAg ICAgICAgICAgICAgICAiVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgcGx1Z2luIHdpbGwgY3Jhc2gh IikpOworKyAgICAgICAgZ193YXJuaW5nKCJObyBkZWZhdWx0IGljb24gdGhlbWU/ICIKKysgICAg ICAgICAgICAgICAgICAiVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgcGx1Z2luIHdpbGwgY3Jhc2gh Iik7CisgCisgICAgIGRhdGEtPmxhYmVscyA9IGdfYXJyYXlfbmV3KEZBTFNFLCBUUlVFLCBzaXpl b2YoZGF0YV90eXBlcykpOworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy94ZmNlNC13ZWF0aGVyLXBs dWdpbi9wYXRjaGVzLzAwMDItRml4LW1vb25fcGhhc2VzLWFycmF5LnBhdGNoIGIvc3JjcGtncy94 ZmNlNC13ZWF0aGVyLXBsdWdpbi9wYXRjaGVzLzAwMDItRml4LW1vb25fcGhhc2VzLWFycmF5LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi45YTg1ODQ2ODE1 YjQ2NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MveGZjZTQtd2VhdGhlci1wbHVnaW4vcGF0 Y2hlcy8wMDAyLUZpeC1tb29uX3BoYXNlcy1hcnJheS5wYXRjaApAQCAtMCwwICsxLDIyIEBACitG cm9tIDNiYzgzYThkNWNhNTQxMGU0ZjA2MWJkMWYxMjY1YzJhOGJjYzg2MGMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBHYcOrbCBCb25pdGhvbiA8Z2FlbEB4ZmNlLm9yZz4KK0RhdGU6 IFRodSwgMjggU2VwIDIwMjMgMjA6MjY6MjggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzhdIEZp eCBtb29uX3BoYXNlcyBhcnJheQorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAxODdlYTAx ZThkOThhZDI1M2M0NGYxZDFkYWUzMjg2NWUwYzg3YTZkKQorLS0tCisgcGFuZWwtcGx1Z2luL3dl YXRoZXItdHJhbnNsYXRlLmMgfCAxIC0KKyAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQor CitkaWZmIC0tZ2l0IGEvcGFuZWwtcGx1Z2luL3dlYXRoZXItdHJhbnNsYXRlLmMgYi9wYW5lbC1w bHVnaW4vd2VhdGhlci10cmFuc2xhdGUuYworaW5kZXggOWY0ZTFkZC4uMmZlMWY5NSAxMDA2NDQK Ky0tLSBhL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXRyYW5zbGF0ZS5jCisrKysgYi9wYW5lbC1wbHVn aW4vd2VhdGhlci10cmFuc2xhdGUuYworQEAgLTQyLDcgKzQyLDYgQEAgc3RhdGljIGNvbnN0IGdj aGFyICptb29uX3BoYXNlc1tdID0geworICAgICBOXygiV2FuaW5nIGdpYmJvdXMiKSwKKyAgICAg Tl8oIlRoaXJkIHF1YXJ0ZXIiKSwKKyAgICAgTl8oIldhbmluZyBjcmVzY2VudCIpLAorLSAgICBO VUxMCisgfTsKKyAjZGVmaW5lIE5VTV9NT09OX1BIQVNFUyAoc2l6ZW9mKG1vb25fcGhhc2VzKSAv IHNpemVvZihnY2hhciAqKSkKKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MveGZjZTQtd2VhdGhlci1w bHVnaW4vcGF0Y2hlcy8wMDAzLUZpeC1yZW1vdmVfdGltZXpvbmVfb2Zmc2V0LnBhdGNoIGIvc3Jj cGtncy94ZmNlNC13ZWF0aGVyLXBsdWdpbi9wYXRjaGVzLzAwMDMtRml4LXJlbW92ZV90aW1lem9u ZV9vZmZzZXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAu LmMxNGQ0NjU1YzliNjIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy94ZmNlNC13ZWF0aGVy LXBsdWdpbi9wYXRjaGVzLzAwMDMtRml4LXJlbW92ZV90aW1lem9uZV9vZmZzZXQucGF0Y2gKQEAg LTAsMCArMSwyMyBAQAorRnJvbSAwNjYwZDAzMTZhMmI5MzY2OTQ1NzQ0NDQ4MzAyMjFjMzEyZWFm NWZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogR2HDq2wgQm9uaXRob24gPGdhZWxA eGZjZS5vcmc+CitEYXRlOiBUaHUsIDI4IFNlcCAyMDIzIDIwOjQ0OjI2ICswMjAwCitTdWJqZWN0 OiBbUEFUQ0ggMy84XSBGaXggcmVtb3ZlX3RpbWV6b25lX29mZnNldCgpCisKKyhjaGVycnkgcGlj a2VkIGZyb20gY29tbWl0IDIyZTJkMjBjNjcxODIzNjgzZTVhODY1NmYxYTk2ZmFjODI4M2U1ZGQp CistLS0KKyBwYW5lbC1wbHVnaW4vd2VhdGhlci1wYXJzZXJzLmMgfCAyICstCisgMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9wYW5l bC1wbHVnaW4vd2VhdGhlci1wYXJzZXJzLmMgYi9wYW5lbC1wbHVnaW4vd2VhdGhlci1wYXJzZXJz LmMKK2luZGV4IGFkNWZiNjEuLjRhNDQzOTcgMTAwNjQ0CistLS0gYS9wYW5lbC1wbHVnaW4vd2Vh dGhlci1wYXJzZXJzLmMKKysrKyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXBhcnNlcnMuYworQEAg LTg5LDcgKzg5LDcgQEAgcmVtb3ZlX3RpbWV6b25lX29mZnNldChnY2hhciAqZGF0ZSkKKyAgICAg aWYgKHJlICE9IE5VTEwgJiYgZ19yZWdleF9tYXRjaChyZSwgZGF0ZSwgMCwgTlVMTCkpIHsKKyAg ICAgICAgIHJlcyA9IGdfcmVnZXhfcmVwbGFjZShyZSwgZGF0ZSwgLTEsIDAsICJaIiwgMCwgTlVM TCk7CisgICAgIH0gZWxzZSB7CistICAgICAgICByZXMgPSBkYXRlOworKyAgICAgICAgcmVzID0g Z19zdHJkdXAoZGF0ZSk7CisgICAgIH0KKyAgICAgZ19yZWdleF91bnJlZihyZSk7CisgICAgIHJl dHVybiByZXM7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3hmY2U0LXdlYXRoZXItcGx1Z2luL3BhdGNo ZXMvMDAwNC1CZS1sZXNzLXZlcmJvc2UtYWJvdXQtbmV0d29yay1yZXF1ZXN0cy5wYXRjaCBiL3Ny Y3BrZ3MveGZjZTQtd2VhdGhlci1wbHVnaW4vcGF0Y2hlcy8wMDA0LUJlLWxlc3MtdmVyYm9zZS1h Ym91dC1uZXR3b3JrLXJlcXVlc3RzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAwLi45NjhiODJkZWJlYjk1OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv eGZjZTQtd2VhdGhlci1wbHVnaW4vcGF0Y2hlcy8wMDA0LUJlLWxlc3MtdmVyYm9zZS1hYm91dC1u ZXR3b3JrLXJlcXVlc3RzLnBhdGNoCkBAIC0wLDAgKzEsNzMgQEAKK0Zyb20gNDdmODcyY2VkZjMz ODE1ZGVlZjFiYTYxN2Q4YzM4NTY0YzNmNThmZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEdhw6tsIEJvbml0aG9uIDxnYWVsQHhmY2Uub3JnPgorRGF0ZTogU3VuLCAxOCBGZWIgMjAy NCAxODozNzo1OSArMDEwMAorU3ViamVjdDogW1BBVENIIDQvOF0gQmUgbGVzcyB2ZXJib3NlIGFi b3V0IG5ldHdvcmsgcmVxdWVzdHMKKworKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMDFiYTcz NTA0YzBiNWI1ZDU4YTc0ZjEyNWJjNzc2N2YyOTcwM2NlNSkKKy0tLQorIHBhbmVsLXBsdWdpbi93 ZWF0aGVyLXNlYXJjaC5jIHwgIDQgKystLQorIHBhbmVsLXBsdWdpbi93ZWF0aGVyLmMgICAgICAg IHwgMTUgKysrKysrKysrKy0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCsp LCA3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvcGFuZWwtcGx1Z2luL3dlYXRoZXItc2Vh cmNoLmMgYi9wYW5lbC1wbHVnaW4vd2VhdGhlci1zZWFyY2guYworaW5kZXggMGU2NmU2Ny4uMGU3 NGU3ZSAxMDA2NDQKKy0tLSBhL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXNlYXJjaC5jCisrKysgYi9w YW5lbC1wbHVnaW4vd2VhdGhlci1zZWFyY2guYworQEAgLTE2Niw3ICsxNjYsNyBAQCBzZWFyY2hf Y2IoR3RrV2lkZ2V0ICp3aWRnZXQsCisgICAgIGdfZnJlZShzYW5lX3N0cik7CisgCisgICAgIGd0 a190cmVlX3ZpZXdfY29sdW1uX3NldF90aXRsZShkaWFsb2ctPmNvbHVtbiwgXygiU2VhcmNoaW5n Li4uIikpOworLSAgICBnX21lc3NhZ2UoImdldHRpbmcgJXMiLCB1cmwpOworKyAgICB3ZWF0aGVy X2RlYnVnKCJnZXR0aW5nICVzIiwgdXJsKTsKKyAgICAgd2VhdGhlcl9odHRwX3F1ZXVlX3JlcXVl c3QoZGlhbG9nLT5zZXNzaW9uLCB1cmwsIGNiX3NlYXJjaGRvbmUsIGRpYWxvZyk7CisgICAgIGdf ZnJlZSh1cmwpOworIH0KK0BAIC00MzQsNiArNDM0LDYgQEAgdm9pZCB3ZWF0aGVyX3NlYXJjaF9i eV9pcChTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwKKyAgICAgZGF0YS0+Y2IgPSBndWlfY2I7CisgICAg IGRhdGEtPnVzZXJfZGF0YSA9IHVzZXJfZGF0YTsKKyAKKy0gICAgZ19tZXNzYWdlKCJnZXR0aW5n ICVzIiwgdXJsKTsKKysgICAgd2VhdGhlcl9kZWJ1ZygiZ2V0dGluZyAlcyIsIHVybCk7CisgICAg IHdlYXRoZXJfaHR0cF9xdWV1ZV9yZXF1ZXN0KHNlc3Npb24sIHVybCwgY2JfZ2VvbG9jYXRpb24s IGRhdGEpOworIH0KK2RpZmYgLS1naXQgYS9wYW5lbC1wbHVnaW4vd2VhdGhlci5jIGIvcGFuZWwt cGx1Z2luL3dlYXRoZXIuYworaW5kZXggZDQ5ZGJmOC4uOWVhOGYxZiAxMDA2NDQKKy0tLSBhL3Bh bmVsLXBsdWdpbi93ZWF0aGVyLmMKKysrKyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLmMKK0BAIC01 MTYsMTAgKzUxNiwxNSBAQCBjYl9hc3Ryb191cGRhdGUoU291cFNlc3Npb24gKnNlc3Npb24sCisg ICAgICAgICB9CisgICAgICAgICBpZiAocGFyc2luZ19lcnJvcikKKyAgICAgICAgICAgICBnX3dh cm5pbmcoIkVycm9yIHBhcnNpbmcgYXN0cm9ub21pY2FsIGRhdGEhIik7CistICAgIH0gZWxzZQor LSAgICAgICAgZ193YXJuaW5nKCJEb3dubG9hZCBvZiBhc3Ryb25vbWljYWwgZGF0YSBmYWlsZWQg d2l0aCAiCistICAgICAgICAgICAgICAgICAgICAiSFRUUCBTdGF0dXMgQ29kZSAlZCwgUmVhc29u IHBocmFzZTogJXMiLAorKyAgICB9IGVsc2UgeworKyNpZiBHTElCX0NIRUNLX1ZFUlNJT04gKDIs IDY0LCAwKQorKyAgICAgICAgZ193YXJuaW5nX29uY2UoIkRvd25sb2FkIG9mIGFzdHJvbm9taWNh bCBkYXRhIGZhaWxlZCB3aXRoIEhUVFAgU3RhdHVzIENvZGUgJWQsIFJlYXNvbiBwaHJhc2U6ICVz IiwKKysgICAgICAgICAgICAgICAgICAgICAgIG1zZy0+c3RhdHVzX2NvZGUsIG1zZy0+cmVhc29u X3BocmFzZSk7CisrI2Vsc2UKKysgICAgICAgIGdfd2FybmluZygiRG93bmxvYWQgb2YgYXN0cm9u b21pY2FsIGRhdGEgZmFpbGVkIHdpdGggSFRUUCBTdGF0dXMgQ29kZSAlZCwgUmVhc29uIHBocmFz ZTogJXMiLAorICAgICAgICAgICAgICAgICAgIG1zZy0+c3RhdHVzX2NvZGUsIG1zZy0+cmVhc29u X3BocmFzZSk7CisrI2VuZGlmCisrICAgIH0KKyAgICAgZGF0YS0+YXN0cm9fdXBkYXRlLT5uZXh0 ID0gY2FsY19uZXh0X2Rvd25sb2FkX3RpbWUoZGF0YS0+YXN0cm9fdXBkYXRlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3dfdCk7Cisg CitAQCAtNjQ0LDcgKzY0OSw3IEBAIHVwZGF0ZV9oYW5kbGVyKGdwb2ludGVyIHVzZXJfZGF0YSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5mb3JlY2FzdF9kYXlzKTsKKyAK KyAgICAgICAgIC8qIHN0YXJ0IHJlY2VpdmUgdGhyZWFkICovCistICAgICAgICBnX21lc3NhZ2Uo ImdldHRpbmcgJXMiLCB1cmwpOworKyAgICAgICAgd2VhdGhlcl9kZWJ1ZygiZ2V0dGluZyAlcyIs IHVybCk7CisgICAgICAgICB3ZWF0aGVyX2h0dHBfcXVldWVfcmVxdWVzdChkYXRhLT5zZXNzaW9u LCB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYl9hc3Ryb191cGRh dGUsIGRhdGEpOworICAgICAgICAgZ19mcmVlKHVybCk7CitAQCAtNjY1LDcgKzY3MCw3IEBAIHVw ZGF0ZV9oYW5kbGVyKGdwb2ludGVyIHVzZXJfZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhLT5sYXQsIGRhdGEtPmxvbiwgZGF0YS0+bXNsKTsKKyAKKyAgICAgICAgIC8q IHN0YXJ0IHJlY2VpdmUgdGhyZWFkICovCistICAgICAgICBnX21lc3NhZ2UoImdldHRpbmcgJXMi LCB1cmwpOworKyAgICAgICAgd2VhdGhlcl9kZWJ1ZygiZ2V0dGluZyAlcyIsIHVybCk7CisgICAg ICAgICB3ZWF0aGVyX2h0dHBfcXVldWVfcmVxdWVzdChkYXRhLT5zZXNzaW9uLCB1cmwsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYl93ZWF0aGVyX3VwZGF0ZSwgZGF0YSk7 CisgICAgICAgICBnX2ZyZWUodXJsKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MveGZjZTQtd2VhdGhl ci1wbHVnaW4vcGF0Y2hlcy8wMDA1LU1pZ3JhdGlvbi10by1TdW5yaXNlLUFQSS0zLjAucGF0Y2gg Yi9zcmNwa2dzL3hmY2U0LXdlYXRoZXItcGx1Z2luL3BhdGNoZXMvMDAwNS1NaWdyYXRpb24tdG8t U3VucmlzZS1BUEktMy4wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAwLi43ZWNiNzIxZTE3MDA1NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MveGZjZTQt d2VhdGhlci1wbHVnaW4vcGF0Y2hlcy8wMDA1LU1pZ3JhdGlvbi10by1TdW5yaXNlLUFQSS0zLjAu cGF0Y2gKQEAgLTAsMCArMSwxMDY0IEBACitGcm9tIDM5MmJkMTc3ODQyZDA3ZWUwMzg4Yjc2MmY2 N2JjNjA4Yzk4OWRjNTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiByb2xhbmQzOTM5 IDxlYTMzOTNAZmVuLW5ldC5kZT4KK0RhdGU6IFRodSwgMjkgRmViIDIwMjQgMTY6MDM6NTAgKzAw MDAKK1N1YmplY3Q6IFtQQVRDSCA1LzhdIE1pZ3JhdGlvbiB0byBTdW5yaXNlIEFQSSAzLjAKKwor TWlncmF0aW9uIHRvIHRoZSBTdW5yaXNlIEFQSSAzLjAgKDMuMCBBUEkgb3V0cHV0cyBKU09OIGlu c3RlYWQgb2YgWE1MKS4KK1RoaXMgbWVyZ2UgcmVxdWVzdCBzdGlja3MgYXMgY2xvc2UgYXMgcG9z c2libGUgdG8gZmVhdHVyZXMgYW5kIGJlaGF2aW9yCitvZiB0aGUgd2VhdGhlciBwYW5lbC1wbHVn aW4ga25vd24gd2hlbiB1c2luZyBwcmV2aW91cyBBUEkgZm9yCithc3Ryb25vbWljYWwgZGF0YS4K KworRml4ZXM6ICM2NgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZTNkZGU5ZTFkNjVjNjNi ZmQ4OTliMmExZGVhZmYwNzlhOGZhYTgyZikKKy0tLQorIGNvbmZpZ3VyZS5hYy5pbiAgICAgICAg ICAgICAgICB8ICAgMSArCisgcGFuZWwtcGx1Z2luL01ha2VmaWxlLmFtICAgICAgIHwgICA0ICst CisgcGFuZWwtcGx1Z2luL3dlYXRoZXItZGF0YS5jICAgIHwgIDg3ICsrKysrKystLQorIHBhbmVs LXBsdWdpbi93ZWF0aGVyLWRhdGEuaCAgICB8ICAgMyArLQorIHBhbmVsLXBsdWdpbi93ZWF0aGVy LXBhcnNlcnMuYyB8IDMzOCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KKyBwYW5l bC1wbHVnaW4vd2VhdGhlci1wYXJzZXJzLmggfCAgMTAgKy0KKyBwYW5lbC1wbHVnaW4vd2VhdGhl ci5jICAgICAgICAgfCAyNTMgKysrKysrKysrKysrKysrKystLS0tLS0tCisgcGFuZWwtcGx1Z2lu L3dlYXRoZXIuaCAgICAgICAgIHwgIDE2ICsrCisgOCBmaWxlcyBjaGFuZ2VkLCA1MjkgaW5zZXJ0 aW9ucygrKSwgMTgzIGRlbGV0aW9ucygtKQorCistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2Nv bmZpZ3VyZS5hYworQEAgLTc3LDYgKzc3LDcgQEAgWERUX0NIRUNLX1BBQ0tBR0UoW0xJQlhGQ0U0 UEFORUxdLCBbbGlieAorIFhEVF9DSEVDS19QQUNLQUdFKFtYRkNPTkZdLCBbbGlieGZjb25mLTBd LCBbNC4xMi4wXSkKKyBYRFRfQ0hFQ0tfUEFDS0FHRShbTElCWE1MXSwgW2xpYnhtbC0yLjBdLCBb Mi40LjBdKQorIFhEVF9DSEVDS19QQUNLQUdFKFtTT1VQXSwgW2xpYnNvdXAtMi40XSwgWzIuNDIu MF0pCisrWERUX0NIRUNLX1BBQ0tBR0UoW0pTT05dLCBbanNvbi1jXSwgWzAuMTMuMV0pCisgWERU X0NIRUNLX09QVElPTkFMX1BBQ0tBR0UoW1VQT1dFUl9HTElCXSwgW3Vwb3dlci1nbGliXSwgWzAu OS4wXSwgW3Vwb3dlcl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Vwb3dlciBmb3Ig YWRhcHRpbmcgdXBkYXRlIGludGVydmFsIHRvIHBvd2VyIHN0YXRlXSkKKyAKKy0tLSBhL3BhbmVs LXBsdWdpbi9NYWtlZmlsZS5hbQorKysrIGIvcGFuZWwtcGx1Z2luL01ha2VmaWxlLmFtCitAQCAt NDAsNiArNDAsNyBAQCBsaWJ3ZWF0aGVyX2xhX0NGTEFHUyA9CQkJCQkJXAorIAkkKFhGQ09ORl9D RkxBR1MpCQkJCQkJCQlcCisgCSQoR1RLX0NGTEFHUykJCQkJCQkJXAorIAkkKFNPVVBfQ0ZMQUdT KQkJCQkJCQlcCisrCSQoSlNPTl9DRkxBR1MpCQkJCQkJCVwKKyAJJChVUE9XRVJfR0xJQl9DRkxB R1MpCQkJCQkJXAorIAkkKExJQlhNTF9DRkxBR1MpCVwKKyAJLURHVEtfRElTQUJMRV9TSU5HTEVf SU5DTFVERVMJXAorQEAgLTU1LDcgKzU2LDggQEAgbGlid2VhdGhlcl9sYV9MSUJBREQgPQkJCQkJ CVwKKyAJJChYRkNPTkZfTElCUykJCQkJCQkJXAorIAkkKEdUS19MSUJTKQkJCQkJCQlcCisgCSQo TElCWE1MX0xJQlMpCQkJCQkJCVwKKy0JJChTT1VQX0xJQlMpCisrCSQoU09VUF9MSUJTKQkJCQkJ CQlcCisrCSQoSlNPTl9MSUJTKQorIAorIGxpYndlYXRoZXJfbGFfTERGTEFHUyA9IFwKKyAJLWF2 b2lkLXZlcnNpb24gXAorLS0tIGEvcGFuZWwtcGx1Z2luL3dlYXRoZXItZGF0YS5jCisrKysgYi9w YW5lbC1wbHVnaW4vd2VhdGhlci1kYXRhLmMKK0BAIC01NjAsMzkgKzU2MCw3MiBAQCBnZXRfdW5p dChjb25zdCB1bml0c19jb25maWcgKnVuaXRzLAorICAqCisgICogRWl0aGVyIHVzZSB0aGUgZXhh Y3QgdGltZXMgZm9yIHN1bnJpc2UgYW5kIHN1bnNldCBpZgorICAqIGF2YWlsYWJsZSwgb3IgZmFs bGJhY2sgdG8gcmVhc29uYWJsZSBhcmJpdHJhcnkgdmFsdWVzLgorKyAqIFVzZSB0aW1lem9uZSBv ZmZzZXQgZm9yIHByb3BlciB0aW1lIG9mIGRheSAvIG5pZ2h0ICBjaGFuZ2UuCisgICovCisgZ2Jv b2xlYW4KKy1pc19uaWdodF90aW1lKGNvbnN0IHhtbF9hc3RybyAqYXN0cm8pCisraXNfbmlnaHRf dGltZShjb25zdCB4bWxfYXN0cm8gKmFzdHJvLAorKyAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg Km9mZnNldCkKKyB7CisgICAgIHRpbWVfdCBub3dfdDsKKy0gICAgc3RydWN0IHRtIG5vd190bTsK Ky0KKy0gICAgdGltZSgmbm93X3QpOworKyAgICBHRGF0ZVRpbWUgKmR0LCAqaW5pdGlhbF9kYXRl OworKyAgICBHVGltZVpvbmUgKnR6OworKyAgICBnYm9vbGVhbiByZXQ7CisrCisrICAgIGR0ID0g Z19kYXRlX3RpbWVfbmV3X25vd19sb2NhbCgpOworKyNpZiBHTElCX0NIRUNLX1ZFUlNJT04gKDIs IDY4LCAwKQorKyAgICB0eiA9IGdfdGltZV96b25lX25ld19pZGVudGlmaWVyKG9mZnNldCk7Cisr I2Vsc2UKKysgICAgdHogPSBnX3RpbWVfem9uZV9uZXcob2Zmc2V0KTsKKysjZW5kaWYKKysgICAg Z19hc3NlcnQodHogIT0gTlVMTCk7CisrICAgIGluaXRpYWxfZGF0ZSA9IGdfZGF0ZV90aW1lX25l dyh0eiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfZGF0ZV90aW1lX2dl dF95ZWFyKGR0KSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfZGF0ZV90 aW1lX2dldF9tb250aChkdCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn X2RhdGVfdGltZV9nZXRfZGF5X29mX21vbnRoIChkdCksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnX2RhdGVfdGltZV9nZXRfaG91cihkdCksCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnX2RhdGVfdGltZV9nZXRfbWludXRlKGR0KSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOyAvLyBzZWMKKysgICAgbm93X3QgPSAodGlt ZV90KWdfZGF0ZV90aW1lX3RvX3VuaXgoaW5pdGlhbF9kYXRlKTsgCisrICAgIHdlYXRoZXJfZGVi dWcoImlzX25pZ2h0X3RpbWUgPzogdGltZV9ub3coaW4gdGhlIHByb3BlciB0aW1lem9uZSk9JXNc biIsCisrICAgICAgICAgICAgICAgICAgZ19kYXRlX3RpbWVfZm9ybWF0X2lzbzg2MDEoaW5pdGlh bF9kYXRlKSk7IAorIAorICAgICBpZiAoR19MSUtFTFkoYXN0cm8pKSB7CisrICAgICAgICB3ZWF0 aGVyX2RlYnVnKCJDaGVja2luZyBkaWZmdGltZTogYXN0cm8gc3VucmlzZSAgbm93X3QgJWQgJWQu XG4iLAorKyAgICAgICAgICAgICAgICAgICAgICBhc3Ryby0+c3VucmlzZSwgbm93X3QpOworKyAg ICAgICAgd2VhdGhlcl9kZWJ1ZygiQ2hlY2tpbmcgZGlmZnRpbWU6IGFzdHJvIHN1bnNldCAgbm93 X3QgJWQgJWQuXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICBhc3Ryby0+c3Vuc2V0LCBub3df dCk7CisrCisgICAgICAgICBpZiAoYXN0cm8tPnN1bl9uZXZlcl9yaXNlcyB8fCBhc3Ryby0+c3Vu X25ldmVyX3NldHMpeworICAgICAgICAgICAgIC8qIFBvbGFyIG5pZ2h0ICovCisgICAgICAgICAg ICAgaWYgKGFzdHJvLT5zb2xhcm5vb25fZWxldmF0aW9uIDw9IDApCistICAgICAgICAgICAgICAg IHJldHVybiBUUlVFOworKyAgICAgICAgICAgICAgICByZXQgPSBUUlVFOworICAgICAgICAgICAg IC8qIFBvbGFyIGRheSAqLworICAgICAgICAgICAgIGlmIChhc3Ryby0+c29sYXJtaWRuaWdodF9l bGV2YXRpb24gPiAwKQorLSAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CisrICAgICAgICAg ICAgICAgIHJldCA9IEZBTFNFOworICAgICAgICAgfQorIAorICAgICAgICAgLyogU3VucmlzZSBh bmQgc3Vuc2V0IGFyZSBrbm93biAqLworLSAgICAgICAgaWYgKGRpZmZ0aW1lKGFzdHJvLT5zdW5y aXNlLCBub3dfdCkgPiAwKQorLSAgICAgICAgICAgIHJldHVybiBUUlVFOworLQorLSAgICAgICAg aWYgKGRpZmZ0aW1lKGFzdHJvLT5zdW5zZXQsIG5vd190KSA8PSAwKQorLSAgICAgICAgICAgIHJl dHVybiBUUlVFOworLQorLSAgICAgICAgcmV0dXJuIEZBTFNFOworKyAgICAgICAgZWxzZSBpZiAo ZGlmZnRpbWUoYXN0cm8tPnN1bnJpc2UsIG5vd190KSA+IDApIHsKKysgICAgICAgICAgICByZXQg PSBUUlVFOworKyAgICAgICAgfQorKyAgICAgICAgZWxzZSBpZiAoZGlmZnRpbWUoYXN0cm8tPnN1 bnNldCwgbm93X3QpIDw9IDApIHsKKysgICAgICAgICAgICByZXQgPSBUUlVFOworKyAgICAgICAg fQorKyAgICAgICAgZWxzZSB7CisrICAgICAgICAgICAgcmV0ID0gRkFMU0U7CisrICAgICAgICB9 CisgICAgIH0KKyAKKyAgICAgLyogbm8gYXN0cm9kYXRhIGF2YWlsYWJsZSwgdXNlIGZhbGxiYWNr IHZhbHVlcyAqLworLSAgICBub3dfdG0gPSAqbG9jYWx0aW1lKCZub3dfdCk7CistICAgIHJldHVy biAobm93X3RtLnRtX2hvdXIgPj0gTklHSFRfVElNRV9TVEFSVCB8fAorLSAgICAgICAgICAgIG5v d190bS50bV9ob3VyIDwgTklHSFRfVElNRV9FTkQpOworKyAgICBlbHNlCisrICAgICAgICByZXQg PSAoZ19kYXRlX3RpbWVfZ2V0X2hvdXIoaW5pdGlhbF9kYXRlKSA+PSBOSUdIVF9USU1FX1NUQVJU IHx8CisrICAgICAgICAgICAgICAgZ19kYXRlX3RpbWVfZ2V0X2hvdXIoaW5pdGlhbF9kYXRlKSA8 IE5JR0hUX1RJTUVfRU5EKTsKKysKKysgICAgZ19kYXRlX3RpbWVfdW5yZWYoZHQpOworKyAgICBn X2RhdGVfdGltZV91bnJlZihpbml0aWFsX2RhdGUpOworKyAgICBnX3RpbWVfem9uZV91bnJlZih0 eik7CisrICAgIHdlYXRoZXJfZGVidWcoIk5pZ2h0IHRpbWUgc3RhdHVzOiAlc1xuIiwgcmV0ID8g InRydWUiIDogImZhbHNlIik7CisrICAgIHJldHVybiByZXQ7CisgfQorIAorIAorQEAgLTgwMywx NSArODM2LDIyIEBAIG1lcmdlX2FzdHJvKEdBcnJheSAqYXN0cm9kYXRhLAorICAgICAvKiBjb3B5 IGFzdHJvLCBhcyBpdCBtYXkgYmUgZGVsZXRlZCBieSB0aGUgY2FsbGluZyBmdW5jdGlvbiAqLwor ICAgICBuZXdfYXN0cm8gPSB4bWxfYXN0cm9fY29weShhc3Rybyk7CisgCisrICAgIHdlYXRoZXJf ZGVidWcoIkN1cnJlbnQgYXN0cm9kYXRhIGVudHJpZXM6ICVkIiwgYXN0cm9kYXRhLT5sZW4pOwor KyAgICB3ZWF0aGVyX2RlYnVnKCJuZXdfYXN0cm8tPmRheT0lcyIsIGZvcm1hdF9kYXRlKG5ld19h c3Ryby0+ZGF5LCBOVUxMLFRSVUUpKTsKKysgICAgd2VhdGhlcl9kdW1wKHdlYXRoZXJfZHVtcF9h c3RybywgbmV3X2FzdHJvKTsKKysKKyAgICAgLyogY2hlY2sgZm9yIGFuZCByZXBsYWNlIGV4aXN0 aW5nIGFzdHJvZGF0YSBvZiB0aGUgc2FtZSBkYXRlICovCistICAgIGlmICgob2xkX2FzdHJvID0g Z2V0X2FzdHJvKGFzdHJvZGF0YSwgYXN0cm8tPmRheSwgJmluZGV4KSkpIHsKKysgICAgaWYgKChv bGRfYXN0cm8gPSBnZXRfYXN0cm8oYXN0cm9kYXRhLCBuZXdfYXN0cm8tPmRheSwgJmluZGV4KSkp IHsKKyAgICAgICAgIHhtbF9hc3Ryb19mcmVlKG9sZF9hc3Rybyk7CisgICAgICAgICBnX2FycmF5 X3JlbW92ZV9pbmRleChhc3Ryb2RhdGEsIGluZGV4KTsKKyAgICAgICAgIGdfYXJyYXlfaW5zZXJ0 X3ZhbChhc3Ryb2RhdGEsIGluZGV4LCBuZXdfYXN0cm8pOworICAgICAgICAgd2VhdGhlcl9kZWJ1 ZygiUmVwbGFjZWQgZXhpc3RpbmcgYXN0cm9kYXRhIGF0ICVkLiIsIGluZGV4KTsKKysgICAgICAg IHdlYXRoZXJfZHVtcCh3ZWF0aGVyX2R1bXBfYXN0cm9kYXRhLCBhc3Ryb2RhdGEpOworKyAgICAg ICAgd2VhdGhlcl9kZWJ1ZygiQ3VycmVudCBhc3Ryb2RhdGEgZW50cmllczogJWQiLCBhc3Ryb2Rh dGEtPmxlbik7CisgICAgIH0gZWxzZSB7CisgICAgICAgICBnX2FycmF5X2FwcGVuZF92YWwoYXN0 cm9kYXRhLCBuZXdfYXN0cm8pOworICAgICAgICAgd2VhdGhlcl9kZWJ1ZygiQXBwZW5kZWQgbmV3 IGFzdHJvZGF0YSB0byB0aGUgZXhpc3RpbmcgZGF0YS4iKTsKKysgICAgICAgIHdlYXRoZXJfZGVi dWcoIkN1cnJlbnQgYXN0cm9kYXRhIGVudHJpZXM6ICVkIiwgYXN0cm9kYXRhLT5sZW4pOworICAg ICB9CisgfQorIAorQEAgLTExNzksMTEgKzEyMTksMjIgQEAgZ2V0X2FzdHJvX2RhdGFfZm9yX2Rh eShjb25zdCBHQXJyYXkgKmFzdAorICAgICAgICAgcmV0dXJuIE5VTEw7CisgCisgICAgIGRheV90 ID0gZGF5X2F0X21pZG5pZ2h0KGRheV90LCBkYXkpOworKyAgICB3ZWF0aGVyX2RlYnVnKCJDaGVj a2luZyAlZCBhc3RybyBlbnRyaWVzIGZvciBkYXRhIHJlbGV2YW50IHRvIGRheSAlZC4iLAorKyAg ICAgICAgICAgICAgICAgIGFzdHJvZGF0YS0+bGVuLCBkYXkpOworIAorICAgICBmb3IgKGkgPSAw OyBpIDwgYXN0cm9kYXRhLT5sZW47IGkrKykgeworICAgICAgICAgYXN0cm8gPSBnX2FycmF5X2lu ZGV4KGFzdHJvZGF0YSwgeG1sX2FzdHJvICosIGkpOworLSAgICAgICAgaWYgKGFzdHJvICYmIChk aWZmdGltZShhc3Ryby0+ZGF5LCBkYXlfdCkgPT0gMCkpCisrICAgICAgICB3ZWF0aGVyX2RlYnVn KCJjaGVja2luZyBhc3RybyAlZCIsIGkpOworKyAgICAgICAgd2VhdGhlcl9kZWJ1ZygiYXN0cm8g ZGF0YSBmb3IgZGF5OiIpOworKyAgICAgICAgd2VhdGhlcl9kZWJ1ZygiJXMiLHdlYXRoZXJfZHVt cF9hc3Rybyhhc3RybykpOworKyAgICAgICAgd2VhdGhlcl9kZWJ1ZygiQ2hlY2tpbmcgZGlmZnRp bWU6IGFzdHJvX2RheSAgZGF5X3QgJWQgJWQuIiwKKysgICAgICAgICAgICAgICAgICAgICAgYXN0 cm8tPmRheSwgZGF5X3QpOworKworKyAgICAgICAgaWYgKGFzdHJvICYmIChkaWZmdGltZShhc3Ry by0+ZGF5LCBkYXlfdCkgPT0gMCkpIHsKKysgICAgICAgICAgICB3ZWF0aGVyX2RlYnVnKCJFcXVh bCBkaWZmdGltZTogYXN0cm9fZGF5ICBkYXlfdCAlZCAlZC4iLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgYXN0cm8tPmRheSwgZGF5X3QpOworICAgICAgICAgICAgIHJldHVybiBhc3RybzsK KysgICAgICAgIH0KKyAgICAgfQorIAorICAgICByZXR1cm4gTlVMTDsKKy0tLSBhL3BhbmVsLXBs dWdpbi93ZWF0aGVyLWRhdGEuaAorKysrIGIvcGFuZWwtcGx1Z2luL3dlYXRoZXItZGF0YS5oCitA QCAtMTE4LDcgKzExOCw4IEBAIGdjaGFyICpnZXRfZGF0YShjb25zdCB4bWxfdGltZSAqdGltZXNs aWMKKyBjb25zdCBnY2hhciAqZ2V0X3VuaXQoY29uc3QgdW5pdHNfY29uZmlnICp1bml0cywKKyAg ICAgICAgICAgICAgICAgICAgICAgZGF0YV90eXBlcyB0eXBlKTsKKyAKKy1nYm9vbGVhbiBpc19u aWdodF90aW1lKGNvbnN0IHhtbF9hc3RybyAqYXN0cm8pOworK2dib29sZWFuIGlzX25pZ2h0X3Rp bWUoY29uc3QgeG1sX2FzdHJvICphc3RybywKKysgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGdjaGFyICpvZmZzZXQpOworIAorIHRpbWVfdCB0aW1lX2NhbGMoc3RydWN0IHRtIHRpbWVfdG0s CisgICAgICAgICAgICAgICAgICBnaW50IHllYXIsCistLS0gYS9wYW5lbC1wbHVnaW4vd2VhdGhl ci1wYXJzZXJzLmMKKysrKyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXBhcnNlcnMuYworQEAgLTU3 LDE5ICs1NywxNyBAQCBzdGF0aWMgdGltZV90CisgbXlfdGltZWdtKHN0cnVjdCB0bSAqdG0pCisg eworICAgICB0aW1lX3QgcmV0OworLSAgICBjaGFyICp0ejsKKysgICAgR0RhdGVUaW1lICppbml0 aWFsX2RhdGU7CisrCisrICAgIGluaXRpYWxfZGF0ZSA9IGdfZGF0ZV90aW1lX25ld191dGModG0t PnRtX3llYXIgKyAxOTAwLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRtLT50bV9tb24gKyAxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRtLT50bV9tZGF5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRt LT50bV9ob3VyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtLT50 bV9taW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG0tPnRtX3Nl Yyk7CisrICAgIHJldCA9IGdfZGF0ZV90aW1lX3RvX3VuaXgoaW5pdGlhbF9kYXRlKTsKKysgICAg Z19kYXRlX3RpbWVfdW5yZWYoaW5pdGlhbF9kYXRlKTsKKyAKKy0gICAgdHogPSBnX3N0cmR1cChn X2dldGVudigiVFoiKSk7CistICAgIGdfc2V0ZW52KCJUWiIsICIiLCAxKTsKKy0gICAgdHpzZXQo KTsKKy0gICAgcmV0ID0gbWt0aW1lKHRtKTsKKy0gICAgaWYgKHR6KSB7CistICAgICAgICBnX3Nl dGVudigiVFoiLCB0eiwgMSk7CistICAgICAgICBnX2ZyZWUodHopOworLSAgICB9CistICAgIGVs c2UKKy0gICAgICAgIGdfdW5zZXRlbnYoIlRaIik7CistICAgIHR6c2V0KCk7CisgICAgIHJldHVy biByZXQ7CisgfQorIAorQEAgLTk2LDEzICs5NCw2IEBAIHJlbW92ZV90aW1lem9uZV9vZmZzZXQo Z2NoYXIgKmRhdGUpCisgfQorIAorIAorLXN0YXRpYyBnZG91YmxlCistZXh0cmFjdF9kb3VibGUo Z2NoYXIgKnN0cikKKy17CistICAgIHJldHVybiBnX2FzY2lpX3N0cnRvZCAoc3RyLCBOVUxMKTsK Ky19CistCistCisgeG1sX3RpbWUgKgorIGdldF90aW1lc2xpY2UoeG1sX3dlYXRoZXIgKndkLAor ICAgICAgICAgICAgICAgY29uc3QgdGltZV90IHN0YXJ0X3QsCitAQCAtMTQxLDggKzEzMiwxMCBA QCBnZXRfYXN0cm8oY29uc3QgR0FycmF5ICphc3Ryb2RhdGEsCisgICAgIGlmIChHX1VOTElLRUxZ KGFzdHJvZGF0YSA9PSBOVUxMKSkKKyAgICAgICAgIHJldHVybiBOVUxMOworIAorKyAgICB3ZWF0 aGVyX2RlYnVnKCJkYXlfdD0lcyIsIGZvcm1hdF9kYXRlKGRheV90LCBOVUxMLFRSVUUpKTsKKyAg ICAgZm9yIChpID0gMDsgaSA8IGFzdHJvZGF0YS0+bGVuOyBpKyspIHsKKyAgICAgICAgIGFzdHJv ID0gZ19hcnJheV9pbmRleChhc3Ryb2RhdGEsIHhtbF9hc3RybyAqLCBpKTsKKysgICAgICAgIHdl YXRoZXJfZGVidWcoImFzdHJvLT5kYXk9JXMiLCBmb3JtYXRfZGF0ZShhc3Ryby0+ZGF5LCBOVUxM LFRSVUUpKTsKKyAgICAgICAgIGlmIChhc3RybyAmJiBhc3Ryby0+ZGF5ID09IGRheV90KSB7Cisg ICAgICAgICAgICAgaWYgKGluZGV4ICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICppbmRleCA9 IGk7CitAQCAtMTg5LDcgKzE4Miw4IEBAIHBhcnNlX3RpbWVzdHJpbmcoY29uc3QgZ2NoYXIgKnRz LAorIAorIAorIHN0YXRpYyBjb25zdCBnY2hhciAqCistcGFyc2VfbW9vbnBvc2l0aW9uIChnZG91 YmxlIHBvcykgeworK3BhcnNlX21vb25wb3NpdGlvbiAoZ2RvdWJsZSBwb3NfaW4pIHsKKysgICAg Z2RvdWJsZSBwb3MgPSBwb3NfaW4gLyAzNjAuMCAqIDEwMC4wOworICAgICBpZiAocG9zIDwgMC4w IHx8IHBvcyA+IDEwMC4wKQorICAgICAgICAgcmV0dXJuICJVbmtub3duIjsKKyAgICAgaWYgKHBv cyA8PSAxMi41KQorQEAgLTQyMiwxMjIgKzQxNiwyNjUgQEAgcGFyc2Vfd2VhdGhlcih4bWxOb2Rl ICpjdXJfbm9kZSwKKyB9CisgCisgCistc3RhdGljIHhtbF9hc3RybyAqCistcGFyc2VfYXN0cm9f dGltZSh4bWxOb2RlICpjdXJfbm9kZSkKKysvKgorKyAqIExvb2sgYXQgaHR0cHM6Ly9kb2NzLmFw aS5tZXQubm8vZG9jL2Zvcm1hdHMvU3VucmlzZUpTT04gZm9yIGluZm9ybWF0aW9uCisrICogb2Yg ZWxlbWVudHMgYW5kIGF0dHJpYnV0ZXMgdG8gZXhwZWN0LgorKyAqLworK2dib29sZWFuCisrcGFy c2VfYXN0cm9kYXRhX3N1bihqc29uX29iamVjdCAqY3VyX25vZGUsCisrICAgICAgICAgICAgICAg ICAgICBHQXJyYXkgKmFzdHJvZGF0YSkKKyB7CistICAgIHhtbE5vZGUgKmNoaWxkX25vZGU7Cisg ICAgIHhtbF9hc3RybyAqYXN0cm87CistICAgIGdjaGFyICpkYXRlLCAqc3VucmlzZSwgKnN1bnNl dCwgKm1vb25yaXNlLCAqbW9vbnNldDsKKysgICAganNvbl9vYmplY3QgKmp3aGVuLCAqamludGVy dmFsLCAqanByb3BlcnRpZXMsICpqZGF0ZSwgKmpzdW5yaXNlLAorKyAgICAgICAgICAgICAgICAq anN1bnJpc2VfdGltZSwgKmpzdW5zZXQsICpqc3Vuc2V0X3RpbWUsCisrICAgICAgICAgICAgICAg ICpqc29sYXJub29uLCAqanNvbGFybWlkbmlnaHQsICpqZGlzY19jZW50cmVfZWxldmF0aW9uOwor KyAgICBjb25zdCBnY2hhciBkYXlfZm9ybWF0W109IiVZLSVtLSVkVCVIOiVNOiVTWiI7CisrICAg IGNvbnN0IGdjaGFyIHN1bl9mb3JtYXRbXT0iJVktJW0tJWRUJUg6JU1aIjsKKysgICAgY29uc3Qg Z2NoYXIgKmRhdGUsICp0aW1lOworICAgICBnYm9vbGVhbiBzdW5fcmlzZXMgPSBGQUxTRSwgc3Vu X3NldHMgPSBGQUxTRTsKKy0gICAgZ2Jvb2xlYW4gbW9vbl9yaXNlcyA9IEZBTFNFLCBtb29uX3Nl dHMgPSBGQUxTRTsKKy0gICAgZ2RvdWJsZSBtb29ucG9zaXRpb247CisgCisgICAgIGFzdHJvID0g Z19zbGljZV9uZXcwKHhtbF9hc3Rybyk7CisgICAgIGlmIChHX1VOTElLRUxZKGFzdHJvID09IE5V TEwpKQorLSAgICAgICAgcmV0dXJuIE5VTEw7CisrICAgICAgICByZXR1cm4gRkFMU0U7CisgCist ICAgIGRhdGUgPSBQUk9QKGN1cl9ub2RlLCAiZGF0ZSIpOworLSAgICBhc3Ryby0+ZGF5ID0gcGFy c2VfdGltZXN0cmluZyhkYXRlLCAiJVktJW0tJWQiLCBUUlVFKTsKKy0gICAgeG1sRnJlZShkYXRl KTsKKysgICAgZ19hc3NlcnQoYXN0cm9kYXRhICE9IE5VTEwpOworKyAgICBpZiAoR19VTkxJS0VM WShhc3Ryb2RhdGEgPT0gTlVMTCkpCisrICAgICAgICByZXR1cm4gRkFMU0U7CisgCistICAgIGZv ciAoY2hpbGRfbm9kZSA9IGN1cl9ub2RlLT5jaGlsZHJlbjsgY2hpbGRfbm9kZTsKKy0gICAgICAg ICBjaGlsZF9ub2RlID0gY2hpbGRfbm9kZS0+bmV4dCkgeworLSAgICAgICAgaWYgKGNoaWxkX25v ZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworLSAgICAgICAgICAgIGlmIChOT0RFX0lT X1RZUEUoY2hpbGRfbm9kZSwgInN1bnJpc2UiKSkgeworLSAgICAgICAgICAgICAgICBzdW5yaXNl ID0gcmVtb3ZlX3RpbWV6b25lX29mZnNldChQUk9QKGNoaWxkX25vZGUsICJ0aW1lIikpOworLSAg ICAgICAgICAgICAgICBhc3Ryby0+c3VucmlzZSA9IHBhcnNlX3RpbWVzdHJpbmcoc3VucmlzZSwg TlVMTCwgVFJVRSk7CistICAgICAgICAgICAgICAgIHhtbEZyZWUoc3VucmlzZSk7CistICAgICAg ICAgICAgICAgIHN1bl9yaXNlcyA9IFRSVUU7CistICAgICAgICAgICAgfQorKyAgICBqd2hlbiA9 IGpzb25fb2JqZWN0X29iamVjdF9nZXQoY3VyX25vZGUsICJ3aGVuIik7CisrICAgIGlmIChHX1VO TElLRUxZKGp3aGVuID09IE5VTEwpKQorKyAgICAgICAgcmV0dXJuIEZBTFNFOworIAorLSAgICAg ICAgICAgIGlmIChOT0RFX0lTX1RZUEUoY2hpbGRfbm9kZSwgIm1vb25zZXQiKSkgeworLSAgICAg ICAgICAgICAgICBtb29uc2V0ID0gcmVtb3ZlX3RpbWV6b25lX29mZnNldChQUk9QKGNoaWxkX25v ZGUsICJ0aW1lIikpOworLSAgICAgICAgICAgICAgICBhc3Ryby0+bW9vbnNldCA9IHBhcnNlX3Rp bWVzdHJpbmcobW9vbnNldCwgTlVMTCwgVFJVRSk7CistICAgICAgICAgICAgICAgIHhtbEZyZWUo bW9vbnNldCk7CistICAgICAgICAgICAgICAgIG1vb25fc2V0cyA9IFRSVUU7CistICAgICAgICAg ICAgfQorKyAgICBqaW50ZXJ2YWwgPSBqc29uX29iamVjdF9vYmplY3RfZ2V0KGp3aGVuLCAiaW50 ZXJ2YWwiKTsKKysgICAgaWYgKEdfVU5MSUtFTFkoamludGVydmFsID09IE5VTEwpKQorKyAgICAg ICAgcmV0dXJuIEZBTFNFOworKyAgICBpZiAoR19VTkxJS0VMWShqc29uX29iamVjdF9hcnJheV9s ZW5ndGgoamludGVydmFsKSE9MikpCisrICAgICAgICByZXR1cm4gRkFMU0U7CisgCistICAgICAg ICAgICAgaWYgKE5PREVfSVNfVFlQRShjaGlsZF9ub2RlLCAic3Vuc2V0IikpIHsKKy0gICAgICAg ICAgICAgICAgc3Vuc2V0ID0gcmVtb3ZlX3RpbWV6b25lX29mZnNldChQUk9QKGNoaWxkX25vZGUs ICJ0aW1lIikpOworLSAgICAgICAgICAgICAgICBhc3Ryby0+c3Vuc2V0ID0gcGFyc2VfdGltZXN0 cmluZyhzdW5zZXQsIE5VTEwsIFRSVUUpOworLSAgICAgICAgICAgICAgICB4bWxGcmVlKHN1bnNl dCk7CistICAgICAgICAgICAgICAgIHN1bl9zZXRzID0gVFJVRTsKKy0gICAgICAgICAgICB9Cisr ICAgIGpkYXRlID0ganNvbl9vYmplY3RfYXJyYXlfZ2V0X2lkeChqaW50ZXJ2YWwsIDApOworKyAg ICBpZiAoR19VTkxJS0VMWShqZGF0ZSA9PSBOVUxMKSkKKysgICAgICAgIHJldHVybiBGQUxTRTsK KyAKKy0gICAgICAgICAgICBpZiAoTk9ERV9JU19UWVBFKGNoaWxkX25vZGUsICJtb29ucmlzZSIp KSB7CistICAgICAgICAgICAgICAgIG1vb25yaXNlID0gcmVtb3ZlX3RpbWV6b25lX29mZnNldChQ Uk9QKGNoaWxkX25vZGUsICJ0aW1lIikpOworLSAgICAgICAgICAgICAgICBhc3Ryby0+bW9vbnJp c2UgPSBwYXJzZV90aW1lc3RyaW5nKG1vb25yaXNlLCBOVUxMLCBUUlVFKTsKKy0gICAgICAgICAg ICAgICAgeG1sRnJlZShtb29ucmlzZSk7CistICAgICAgICAgICAgICAgIG1vb25fcmlzZXMgPSBU UlVFOworLSAgICAgICAgICAgIH0KKysgICAgZGF0ZSA9IGpzb25fb2JqZWN0X2dldF9zdHJpbmco amRhdGUpOworKyAgICBpZiAoR19VTkxJS0VMWShkYXRlID09IE5VTEwpKQorKyAgICAgICAgcmV0 dXJuIEZBTFNFOworIAorLSAgICAgICAgICAgIGlmIChOT0RFX0lTX1RZUEUoY2hpbGRfbm9kZSwg Im1vb25wb3NpdGlvbiIpKSB7CistICAgICAgICAgICAgICAgIG1vb25wb3NpdGlvbiA9IGV4dHJh Y3RfZG91YmxlKFBST1AoY2hpbGRfbm9kZSwgInBoYXNlIikpOworLSAgICAgICAgICAgICAgICBp ZiAoYXN0cm8tPm1vb25fcGhhc2UpIHsKKy0gICAgICAgICAgICAgICAgICAgIGdfZnJlZSAoYXN0 cm8tPm1vb25fcGhhc2UpOworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIGFz dHJvLT5tb29uX3BoYXNlID0gZ19zdHJkdXAocGFyc2VfbW9vbnBvc2l0aW9uKG1vb25wb3NpdGlv bikpOworLSAgICAgICAgICAgIH0KKysgICAgLyogdXNlIHRpbWUgaW5mbyBhdCBjZW50ZXIgb2Yg ZGF5IGludGVydmFsICovCisrICAgIGFzdHJvLT5kYXkgPSBkYXlfYXRfbWlkbmlnaHQocGFyc2Vf dGltZXN0cmluZyhkYXRlLCBkYXlfZm9ybWF0LCBGQUxTRSkgKyAxMiAqIDM2MDAsIDApOworKyAg ICB3ZWF0aGVyX2RlYnVnKCJzdW46IGFzdHJvLT5kYXk9JXNcbiIsCisrICAgICAgICAgICAgICAg ICAgZm9ybWF0X2RhdGUoYXN0cm8tPmRheSwgZGF5X2Zvcm1hdCxUUlVFKSk7IAorIAorLSAgICAg ICAgICAgIGlmIChOT0RFX0lTX1RZUEUoY2hpbGRfbm9kZSwgInNvbGFybm9vbiIpKSB7CistICAg ICAgICAgICAgICAgIGFzdHJvLT5zb2xhcm5vb25fZWxldmF0aW9uID0gZXh0cmFjdF9kb3VibGUo UFJPUChjaGlsZF9ub2RlLCAiZWxldmF0aW9uIikpOworLSAgICAgICAgICAgIH0KKysgICAganBy b3BlcnRpZXMgPSBqc29uX29iamVjdF9vYmplY3RfZ2V0KGN1cl9ub2RlLCAicHJvcGVydGllcyIp OworKyAgICBpZiAoR19VTkxJS0VMWShqcHJvcGVydGllcyA9PSBOVUxMKSkKKysgICAgICAgIHJl dHVybiBGQUxTRTsKKyAKKy0gICAgICAgICAgICBpZiAoTk9ERV9JU19UWVBFKGNoaWxkX25vZGUs ICJzb2xhcm1pZG5pZ2h0IikpIHsKKy0gICAgICAgICAgICAgICAgYXN0cm8tPnNvbGFybWlkbmln aHRfZWxldmF0aW9uID0gZXh0cmFjdF9kb3VibGUoUFJPUChjaGlsZF9ub2RlLCAiZWxldmF0aW9u IikpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKysgICAganN1bnJpc2UgPSBqc29uX29i amVjdF9vYmplY3RfZ2V0KGpwcm9wZXJ0aWVzLCAic3VucmlzZSIpOworKyAgICBpZiAoR19VTkxJ S0VMWShqc3VucmlzZSA9PSBOVUxMKSkKKysgICAgICAgIHJldHVybiBGQUxTRTsKKysKKysgICAg anN1bnJpc2VfdGltZSA9IGpzb25fb2JqZWN0X29iamVjdF9nZXQoanN1bnJpc2UsICJ0aW1lIik7 CisrICAgIGlmIChHX1VOTElLRUxZKGpzdW5yaXNlX3RpbWUgPT0gTlVMTCkpIHsKKysgICAgICAg IHdlYXRoZXJfZGVidWcoInN1bnJpc2UgdGltZSBub3QgZm91bmQiKTsKKysgICAgfSBlbHNlIHsK KysgICAgICAgIGRhdGUgPSBqc29uX29iamVjdF9nZXRfc3RyaW5nKGpzdW5yaXNlX3RpbWUpOwor KyAgICAgICAgaWYgKEdfVU5MSUtFTFkoZGF0ZSA9PSBOVUxMKSkKKysgICAgICAgICAgICByZXR1 cm4gRkFMU0U7CisrICAgICAgICB0aW1lID0gcmVtb3ZlX3RpbWV6b25lX29mZnNldChkYXRlKTsK KysgICAgICAgIGFzdHJvLT5zdW5yaXNlPSBwYXJzZV90aW1lc3RyaW5nKHRpbWUsIHN1bl9mb3Jt YXQsIFRSVUUpOworKyAgICAgICAgc3VuX3Jpc2VzID0gVFJVRTsKKysgICAgICAgIHdlYXRoZXJf ZGVidWcoImFzdHJvLT5zdW5yaXNlPSVzXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICBmb3Jt YXRfZGF0ZShhc3Ryby0+c3VucmlzZSwgTlVMTCxUUlVFKSk7CisgICAgIH0KKyAKKysgICAganN1 bnNldCA9IGpzb25fb2JqZWN0X29iamVjdF9nZXQoanByb3BlcnRpZXMsICJzdW5zZXQiKTsKKysg ICAgaWYgKEdfVU5MSUtFTFkoanN1bnNldCA9PSBOVUxMKSkKKysgICAgICAgIHJldHVybiBGQUxT RTsKKysKKysgICAganN1bnNldF90aW1lID0ganNvbl9vYmplY3Rfb2JqZWN0X2dldChqc3Vuc2V0 LCAidGltZSIpOworKyAgICBpZiAoR19VTkxJS0VMWShqc3Vuc2V0X3RpbWUgPT0gTlVMTCkpIHsK KysgICAgICAgIHdlYXRoZXJfZGVidWcoInN1bnNldCB0aW1lIG5vdCBmb3VuZCIpOworKyAgICB9 IGVsc2UgeworKyAgICAgICAgZGF0ZSA9IGpzb25fb2JqZWN0X2dldF9zdHJpbmcoanN1bnNldF90 aW1lKTsKKysgICAgICAgIGlmIChHX1VOTElLRUxZKGRhdGUgPT0gTlVMTCkpCisrICAgICAgICAg ICAgcmV0dXJuIEZBTFNFOworKyAgICAgICAgdGltZSA9IHJlbW92ZV90aW1lem9uZV9vZmZzZXQo ZGF0ZSk7CisrICAgICAgICBhc3Ryby0+c3Vuc2V0PSBwYXJzZV90aW1lc3RyaW5nKHRpbWUsIHN1 bl9mb3JtYXQsIFRSVUUpOworKyAgICAgICAgc3VuX3NldHMgPSBUUlVFOworKyAgICAgICAgd2Vh dGhlcl9kZWJ1ZygiYXN0cm8tPnN1bnNldD0lc1xuIiwKKysgICAgICAgICAgICAgICAgICAgICAg Zm9ybWF0X2RhdGUoYXN0cm8tPnN1bnNldCwgTlVMTCxUUlVFKSk7CisrICAgIH0KKysKKysgICAg anNvbGFybm9vbiA9IGpzb25fb2JqZWN0X29iamVjdF9nZXQoanByb3BlcnRpZXMsICJzb2xhcm5v b24iKTsKKysgICAgaWYgKEdfVU5MSUtFTFkoanNvbGFybm9vbiA9PSBOVUxMKSkKKysgICAgICAg IHJldHVybiBGQUxTRTsKKysKKysgICAgamRpc2NfY2VudHJlX2VsZXZhdGlvbiA9IGpzb25fb2Jq ZWN0X29iamVjdF9nZXQoanNvbGFybm9vbiwgImRpc2NfY2VudHJlX2VsZXZhdGlvbiIpOworKyAg ICBpZiAoR19VTkxJS0VMWShqZGlzY19jZW50cmVfZWxldmF0aW9uID09IE5VTEwpKQorKyAgICAg ICAgcmV0dXJuIEZBTFNFOworKworKyAgICBhc3Ryby0+c29sYXJub29uX2VsZXZhdGlvbiA9IGpz b25fb2JqZWN0X2dldF9kb3VibGUoamRpc2NfY2VudHJlX2VsZXZhdGlvbik7CisrICAgIHdlYXRo ZXJfZGVidWcoImFzdHJvLT5zb2xhcm5vb25fZWxldmF0aW9uPSVmXG4iLAorKyAgICAgICAgICAg ICAgICAgIGFzdHJvLT5zb2xhcm5vb25fZWxldmF0aW9uKTsKKysKKysgICAganNvbGFybWlkbmln aHQgPSBqc29uX29iamVjdF9vYmplY3RfZ2V0KGpwcm9wZXJ0aWVzLCAic29sYXJtaWRuaWdodCIp OworKyAgICBpZiAoR19VTkxJS0VMWShqc29sYXJtaWRuaWdodCA9PSBOVUxMKSkKKysgICAgICAg IHJldHVybiBGQUxTRTsKKysKKysgICAgamRpc2NfY2VudHJlX2VsZXZhdGlvbiA9IGpzb25fb2Jq ZWN0X29iamVjdF9nZXQoanNvbGFybWlkbmlnaHQsICJkaXNjX2NlbnRyZV9lbGV2YXRpb24iKTsK KysgICAgaWYgKEdfVU5MSUtFTFkoamRpc2NfY2VudHJlX2VsZXZhdGlvbiA9PSBOVUxMKSkKKysg ICAgICAgIHJldHVybiBGQUxTRTsKKysKKysgICAgYXN0cm8tPnNvbGFybWlkbmlnaHRfZWxldmF0 aW9uID0ganNvbl9vYmplY3RfZ2V0X2RvdWJsZShqZGlzY19jZW50cmVfZWxldmF0aW9uKTsKKysg ICAgd2VhdGhlcl9kZWJ1ZygiYXN0cm8tPnNvbGFybWlkbmlnaHRfZWxldmF0aW9uPSVmXG4iLAor KyAgICAgICAgICAgICAgICAgIGFzdHJvLT5zb2xhcm1pZG5pZ2h0X2VsZXZhdGlvbik7CisrCisg ICAgIGlmIChzdW5fcmlzZXMpCisgICAgICAgICBhc3Ryby0+c3VuX25ldmVyX3Jpc2VzID0gRkFM U0U7CisgICAgIGVsc2UKKyAgICAgICAgIGFzdHJvLT5zdW5fbmV2ZXJfcmlzZXMgPSBUUlVFOwor KworICAgICBpZiAoc3VuX3NldHMpCisgICAgICAgICBhc3Ryby0+c3VuX25ldmVyX3NldHMgPSBG QUxTRTsKKyAgICAgZWxzZQorICAgICAgICAgYXN0cm8tPnN1bl9uZXZlcl9zZXRzID0gVFJVRTsK KyAKKy0gICAgaWYgKG1vb25fcmlzZXMpCistICAgICAgICBhc3Ryby0+bW9vbl9uZXZlcl9yaXNl cyA9IEZBTFNFOworLSAgICBlbHNlCistICAgICAgICBhc3Ryby0+bW9vbl9uZXZlcl9yaXNlcyA9 IFRSVUU7CistICAgIGlmIChtb29uX3NldHMpCistICAgICAgICBhc3Ryby0+bW9vbl9uZXZlcl9z ZXRzID0gRkFMU0U7CistICAgIGVsc2UKKy0gICAgICAgIGFzdHJvLT5tb29uX25ldmVyX3NldHMg PSBUUlVFOworLSAgICByZXR1cm4gYXN0cm87CisrICAgIG1lcmdlX2FzdHJvKGFzdHJvZGF0YSwg YXN0cm8pOworKyAgICB4bWxfYXN0cm9fZnJlZShhc3Rybyk7CisrICAgIHJldHVybiBUUlVFOwor IH0KKyAKKyAKKyAvKgorLSAqIExvb2sgYXQgaHR0cHM6Ly9hcGkubWV0Lm5vL3dlYXRoZXJhcGkv c3VucmlzZS8yLjAvc2NoZW1hIGZvciBpbmZvcm1hdGlvbgorKyAqIExvb2sgYXQgaHR0cHM6Ly9k b2NzLmFwaS5tZXQubm8vZG9jL2Zvcm1hdHMvU3VucmlzZUpTT04gZm9yIGluZm9ybWF0aW9uCisg ICogb2YgZWxlbWVudHMgYW5kIGF0dHJpYnV0ZXMgdG8gZXhwZWN0LgorICAqLworIGdib29sZWFu CistcGFyc2VfYXN0cm9kYXRhKHhtbE5vZGUgKmN1cl9ub2RlLAorLSAgICAgICAgICAgICAgICBH QXJyYXkgKmFzdHJvZGF0YSkKKytwYXJzZV9hc3Ryb2RhdGFfbW9vbihqc29uX29iamVjdCAqY3Vy X25vZGUsCisrICAgICAgICAgICAgICAgICAgICAgR0FycmF5ICphc3Ryb2RhdGEpCisgeworLSAg ICB4bWxOb2RlICpjaGlsZF9ub2RlOworICAgICB4bWxfYXN0cm8gKmFzdHJvOworKyAgICBqc29u X29iamVjdCAqandoZW4sICpqaW50ZXJ2YWwsICpqcHJvcGVydGllcywgKmpkYXRlLCAqam1vb25y aXNlLAorKyAgICAgICAgICAgICAgICAqam1vb25yaXNlX3RpbWUsICpqbW9vbnNldCwgICpqbW9v bnNldF90aW1lLCAqam1vb25waGFzZTsKKysgICAgdGltZV90IGRheTsKKysgICAgZ3VpbnQgaW5k ZXg7CisrICAgIGNvbnN0IGdjaGFyIGRheV9mb3JtYXRbXT0iJVktJW0tJWRUJUg6JU06JVNaIjsK KysgICAgY29uc3QgZ2NoYXIgbW9vbl9mb3JtYXRbXT0iJVktJW0tJWRUJUg6JU1aIjsKKysgICAg Y29uc3QgZ2NoYXIgKmRhdGUsICp0aW1lOworKyAgICBnYm9vbGVhbiBtb29uX3Jpc2VzID0gRkFM U0UsIG1vb25fc2V0cyA9IEZBTFNFOworIAorICAgICBnX2Fzc2VydChhc3Ryb2RhdGEgIT0gTlVM TCk7CisgICAgIGlmIChHX1VOTElLRUxZKGFzdHJvZGF0YSA9PSBOVUxMKSkKKyAgICAgICAgIHJl dHVybiBGQUxTRTsKKyAKKy0gICAgZ19hc3NlcnQoY3VyX25vZGUgIT0gTlVMTCk7CistICAgIGlm IChHX1VOTElLRUxZKGN1cl9ub2RlID09IE5VTEwgfHwKKy0gICAgICAgICFOT0RFX0lTX1RZUEUo Y3VyX25vZGUsICJsb2NhdGlvbiIpKSkKKysgICAgandoZW4gPSBqc29uX29iamVjdF9vYmplY3Rf Z2V0KGN1cl9ub2RlLCAid2hlbiIpOworKyAgICBpZiAoR19VTkxJS0VMWShqd2hlbiA9PSBOVUxM KSkgeworKyAgICAgICAgd2VhdGhlcl9kZWJ1Zygid2hlbiBub3QgZm91bmQiICk7CisgICAgICAg ICByZXR1cm4gRkFMU0U7CisrICAgIH0KKyAKKy0gICAgZm9yIChjaGlsZF9ub2RlID0gY3VyX25v ZGUtPmNoaWxkcmVuOyBjaGlsZF9ub2RlOworLSAgICAgICAgIGNoaWxkX25vZGUgPSBjaGlsZF9u b2RlLT5uZXh0KQorLSAgICAgICAgaWYgKE5PREVfSVNfVFlQRShjaGlsZF9ub2RlLCAidGltZSIp KSB7CistICAgICAgICAgICAgaWYgKChhc3RybyA9IHBhcnNlX2FzdHJvX3RpbWUoY2hpbGRfbm9k ZSkpKSB7CistICAgICAgICAgICAgICAgIG1lcmdlX2FzdHJvKGFzdHJvZGF0YSwgYXN0cm8pOwor LSAgICAgICAgICAgICAgICB4bWxfYXN0cm9fZnJlZShhc3Rybyk7CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorKyAgICBqaW50ZXJ2YWwgPSBqc29uX29iamVjdF9vYmplY3RfZ2V0KGp3aGVu LCAiaW50ZXJ2YWwiKTsKKysgICAgaWYgKEdfVU5MSUtFTFkoamludGVydmFsID09IE5VTEwpKSB7 CisrICAgICAgICB3ZWF0aGVyX2RlYnVnKCJpbnRlcnZhbCBub3QgZm91bmQiICk7CisrICAgICAg ICByZXR1cm4gRkFMU0U7CisrICAgIH0KKysgICAgaWYgKEdfVU5MSUtFTFkoanNvbl9vYmplY3Rf YXJyYXlfbGVuZ3RoKGppbnRlcnZhbCkhPTIpKSB7CisrICAgICAgICB3ZWF0aGVyX2RlYnVnKCJp bnRlcnZhbCBsZW5ndGggaXMgJWQgaW5zdGVhZCBvZiAlZCIsCisrICAgICAgICAgICAgICAgICAg ICAgIGpzb25fb2JqZWN0X2FycmF5X2xlbmd0aChqaW50ZXJ2YWwpKTsKKysgICAgICAgIHJldHVy biBGQUxTRTsKKysgICAgfQorKworKyAgICBqZGF0ZSA9IGpzb25fb2JqZWN0X2FycmF5X2dldF9p ZHgoamludGVydmFsLCAwKTsKKysgICAgaWYgKEdfVU5MSUtFTFkoamRhdGUgPT0gTlVMTCkpIHsK KysgICAgICAgIHdlYXRoZXJfZGVidWcoImpkYXRlIGVtcHR5IiApOworKyAgICAgICAgcmV0dXJu IEZBTFNFOworKyAgICB9CisrCisrICAgIGRhdGUgPSBqc29uX29iamVjdF9nZXRfc3RyaW5nKGpk YXRlKTsKKysgICAgaWYgKEdfVU5MSUtFTFkoZGF0ZSA9PSBOVUxMKSkgeworKyAgICAgICAgd2Vh dGhlcl9kZWJ1ZygiZGF0ZSBub3QgZm91bmQiICk7CisrICAgICAgICByZXR1cm4gRkFMU0U7Cisr ICAgIH0KKysKKysgICAgLyogdXNlIHRpbWUgaW5mbyBhdCBjZW50ZXIgb2YgZGF5IGludGVydmFs ICovCisrICAgIGRheSA9IGRheV9hdF9taWRuaWdodChwYXJzZV90aW1lc3RyaW5nKGRhdGUsIGRh eV9mb3JtYXQsIEZBTFNFKSArIDEyICogMzYwMCwgMCk7CisrICAgIC8qIHRoaXMgZGF0YSBzZWVt cyB3ZWlyZCAqLworKyAgICBhc3RybyA9IGdldF9hc3Rybyhhc3Ryb2RhdGEsIGRheSwgJmluZGV4 KTsKKysgICAgaWYgKEdfVU5MSUtFTFkoYXN0cm8gPT0gTlVMTCkpIHsKKysgICAgICAgIHdlYXRo ZXJfZGVidWcoIm5vIHN1biBhc3Ryb2RhdGEgZm9yIGRheT0lc1xuIiwKKysgICAgICAgICAgICAg ICAgICAgICAgZm9ybWF0X2RhdGUoZGF5LCBkYXlfZm9ybWF0LEZBTFNFKSk7CisrICAgICAgICBy ZXR1cm4gRkFMU0U7CisrICAgIH0KKysKKysgICAgYXN0cm8tPmRheT1kYXk7CisrICAgIHdlYXRo ZXJfZGVidWcoIm1vb246IGFzdHJvLT5kYXk9JXNcbiIsIGZvcm1hdF9kYXRlKGFzdHJvLT5kYXks IGRheV9mb3JtYXQsVFJVRSkpOworKworKyAgICBqcHJvcGVydGllcyA9IGpzb25fb2JqZWN0X29i amVjdF9nZXQoY3VyX25vZGUsICJwcm9wZXJ0aWVzIik7CisrICAgIGlmIChHX1VOTElLRUxZKGpw cm9wZXJ0aWVzID09IE5VTEwpKSB7CisrICAgICAgICB3ZWF0aGVyX2RlYnVnKCJwcm9wZXJ0aWVz IG5vdCBmb3VuZCIgKTsKKysgICAgICAgIHJldHVybiBGQUxTRTsKKysgICAgfQorKworKyAgICBq bW9vbnJpc2UgPSBqc29uX29iamVjdF9vYmplY3RfZ2V0KGpwcm9wZXJ0aWVzLCAibW9vbnJpc2Ui KTsKKysgICAgaWYgKEdfVU5MSUtFTFkoam1vb25yaXNlID09IE5VTEwpKSB7CisrICAgICAgICB3 ZWF0aGVyX2RlYnVnKCJtb29ucmlzZSBub3QgZm91bmQiICk7CisrICAgICAgICByZXR1cm4gRkFM U0U7CisrICAgIH0KKysKKysgICAgam1vb25yaXNlX3RpbWUgPSBqc29uX29iamVjdF9vYmplY3Rf Z2V0KGptb29ucmlzZSwgInRpbWUiKTsKKysgICAgaWYgKEdfVU5MSUtFTFkoam1vb25yaXNlX3Rp bWUgPT0gTlVMTCkpIHsKKysgICAgICAgIHdlYXRoZXJfZGVidWcoIm1vb25yaXNlIHRpbWUgbm90 IGZvdW5kIiApOworKyAgICB9IGVsc2UgeworKyAgICAgICAgZGF0ZSA9IGpzb25fb2JqZWN0X2dl dF9zdHJpbmcoam1vb25yaXNlX3RpbWUpOworKyAgICAgICAgaWYgKEdfVU5MSUtFTFkoZGF0ZSA9 PSBOVUxMKSkgeworKyAgICAgICAgICAgIHdlYXRoZXJfZGVidWcoImptb29ucmlzZV90aW1lIGVt cHR5IiApOworKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKysgICAgICAgIH0KKysgICAgICAg IHRpbWUgPSByZW1vdmVfdGltZXpvbmVfb2Zmc2V0KGRhdGUpOworKyAgICAgICAgYXN0cm8tPm1v b25yaXNlPSBwYXJzZV90aW1lc3RyaW5nKHRpbWUsIG1vb25fZm9ybWF0LCBUUlVFKTsKKysgICAg ICAgIG1vb25fcmlzZXMgPSBUUlVFOworKyAgICAgICAgd2VhdGhlcl9kZWJ1ZygiYXN0cm8tPm1v b25yaXNlPSVzXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfZGF0ZShhc3Ryby0+ bW9vbnJpc2UsIE5VTEwsVFJVRSkpOworKyAgICB9CisrCisrICAgIGptb29uc2V0ID0ganNvbl9v YmplY3Rfb2JqZWN0X2dldChqcHJvcGVydGllcywgIm1vb25zZXQiKTsKKysgICAgaWYgKEdfVU5M SUtFTFkoam1vb25zZXQgPT0gTlVMTCkpIHsKKysgICAgICAgIHdlYXRoZXJfZGVidWcoIm1vb25z ZXQgbm90IGZvdW5kIiApOworKyAgICAgICAgcmV0dXJuIEZBTFNFOworKyAgICB9CisrICAgIGpt b29uc2V0X3RpbWUgPSBqc29uX29iamVjdF9vYmplY3RfZ2V0KGptb29uc2V0LCAidGltZSIpOwor KyAgICBpZiAoR19VTkxJS0VMWShqbW9vbnNldF90aW1lID09IE5VTEwpKSB7CisrICAgICAgICB3 ZWF0aGVyX2RlYnVnKCJtb29uc2V0IHRpbWUgbm90IGZvdW5kIiApOworKyAgICB9IGVsc2Ugewor KyAgICAgICAgZGF0ZSA9IGpzb25fb2JqZWN0X2dldF9zdHJpbmcoam1vb25zZXRfdGltZSk7Cisr ICAgICAgICBpZiAoR19VTkxJS0VMWShkYXRlID09IE5VTEwpKSB7CisrICAgICAgICAgICAgd2Vh dGhlcl9kZWJ1ZygibW9vbnNldCB0aW1lIGVtcHR5IiApOworKyAgICAgICAgICAgIHJldHVybiBG QUxTRTsKKysgICAgICAgIH0KKysgICAgICAgIHRpbWUgPSByZW1vdmVfdGltZXpvbmVfb2Zmc2V0 KGRhdGUpOworKyAgICAgICAgYXN0cm8tPm1vb25zZXQ9IHBhcnNlX3RpbWVzdHJpbmcodGltZSwg bW9vbl9mb3JtYXQsIFRSVUUpOworKyAgICAgICAgbW9vbl9zZXRzID0gVFJVRTsKKysgICAgICAg IHdlYXRoZXJfZGVidWcoImFzdHJvLT5tb29uc2V0PSVzXG4iLAorKyAgICAgICAgICAgICAgICAg ICAgICBmb3JtYXRfZGF0ZShhc3Ryby0+bW9vbnNldCwgTlVMTCxUUlVFKSk7CisrICAgIH0KKysK KysgICAgam1vb25waGFzZSA9IGpzb25fb2JqZWN0X29iamVjdF9nZXQoanByb3BlcnRpZXMsICJt b29ucGhhc2UiKTsKKysgICAgaWYgKEdfVU5MSUtFTFkoam1vb25waGFzZSA9PSBOVUxMKSkgewor KyAgICAgICAgd2VhdGhlcl9kZWJ1ZygibW9vbnBoYXNlIG5vdCBmb3VuZCIgKTsKKysgICAgICAg IHJldHVybiBGQUxTRTsKKysgICAgfQorKyAgICBhc3Ryby0+bW9vbl9waGFzZSA9Z19zdHJkdXAo cGFyc2VfbW9vbnBvc2l0aW9uKCBqc29uX29iamVjdF9nZXRfZG91YmxlKGptb29ucGhhc2UpKSk7 CisrICAgIHdlYXRoZXJfZGVidWcoImFzdHJvLT5tb29ucGhhc2U9JXNcbiIsYXN0cm8tPm1vb25f cGhhc2UpOworKworKyAgICBpZiAobW9vbl9yaXNlcykKKysgICAgICAgIGFzdHJvLT5tb29uX25l dmVyX3Jpc2VzID0gRkFMU0U7CisrICAgIGVsc2UKKysgICAgICAgIGFzdHJvLT5tb29uX25ldmVy X3Jpc2VzID0gVFJVRTsKKysgICAgaWYgKG1vb25fc2V0cykKKysgICAgICAgIGFzdHJvLT5tb29u X25ldmVyX3NldHMgPSBGQUxTRTsKKysgICAgZWxzZQorKyAgICAgICAgYXN0cm8tPm1vb25fbmV2 ZXJfc2V0cyA9IFRSVUU7CisrCisrICAgIG1lcmdlX2FzdHJvKGFzdHJvZGF0YSwgYXN0cm8pOwor ICAgICByZXR1cm4gVFJVRTsKKyB9CisgCitAQCAtNjY0LDYgKzgwMSwxOSBAQCBnZXRfeG1sX2Rv Y3VtZW50KFNvdXBNZXNzYWdlICptc2cpCisgICAgIHJldHVybiBOVUxMOworIH0KKyAKKytqc29u X29iamVjdCAqCisrZ2V0X2pzb25fdHJlZShTb3VwTWVzc2FnZSAqbXNnKQorK3sKKysgICAganNv bl9vYmplY3QgKnJlcz1OVUxMOworKyAgICBlbnVtIGpzb25fdG9rZW5lcl9lcnJvciBlcnI7Cisr CisrICAgIGlmIChHX0xJS0VMWShtc2cgJiYgbXNnLT5yZXNwb25zZV9ib2R5ICYmIG1zZy0+cmVz cG9uc2VfYm9keS0+ZGF0YSkpIHsKKysgICAgICAgIHJlcyA9ICBqc29uX3Rva2VuZXJfcGFyc2Vf dmVyYm9zZShtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEsICZlcnIpOworKyAgICAgICAgaWYgKGVy ciAhPSBqc29uX3Rva2VuZXJfc3VjY2VzcykKKysgICAgICAgICAgICBnX3dhcm5pbmcoImdldF9q c29uX3RyZWU6IGVycm9yID0lZCIsZXJyKTsKKysgICAgfQorKyAgICByZXR1cm4gcmVzOworK30K KyAKKyBncG9pbnRlcgorIHBhcnNlX3htbF9kb2N1bWVudChTb3VwTWVzc2FnZSAqbXNnLAorLS0t IGEvcGFuZWwtcGx1Z2luL3dlYXRoZXItcGFyc2Vycy5oCisrKysgYi9wYW5lbC1wbHVnaW4vd2Vh dGhlci1wYXJzZXJzLmgKK0BAIC0yMyw2ICsyMyw3IEBACisgI2luY2x1ZGUgPGd0ay9ndGsuaD4K KyAjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4K KysjaW5jbHVkZSA8anNvbi1jL2pzb25fdG9rZW5lci5oPgorIAorICNkZWZpbmUgREFUQV9FWFBJ UllfVElNRSAoMjQgKiAzNjAwKQorIAorQEAgLTEzMywxMCArMTM0LDExIEBAIHRpbWVfdCBwYXJz ZV90aW1lc3RyaW5nKGNvbnN0IGdjaGFyICp0cywKKyBnYm9vbGVhbiBwYXJzZV93ZWF0aGVyKHht bE5vZGUgKmN1cl9ub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sX3dlYXRoZXIgKndk KTsKKyAKKy14bWxfYXN0cm8gKnBhcnNlX2FzdHJvKHhtbE5vZGUgKmN1cl9ub2RlKTsKKytnYm9v bGVhbiBwYXJzZV9hc3Ryb2RhdGFfc3VuKGpzb25fb2JqZWN0ICpjdXJfbm9kZSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdBcnJheSAqYXN0cm9kYXRhKTsKKyAKKy1nYm9vbGVhbiBw YXJzZV9hc3Ryb2RhdGEoeG1sTm9kZSAqY3VyX25vZGUsCistICAgICAgICAgICAgICAgICAgICAg ICAgIEdBcnJheSAqYXN0cm9kYXRhKTsKKytnYm9vbGVhbiBwYXJzZV9hc3Ryb2RhdGFfbW9vbihq c29uX29iamVjdCAqY3VyX25vZGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Fy cmF5ICphc3Ryb2RhdGEpOworIAorIHhtbF9nZW9sb2NhdGlvbiAqcGFyc2VfZ2VvbG9jYXRpb24o eG1sTm9kZSAqY3VyX25vZGUpOworIAorQEAgLTE1Nyw2ICsxNTksOCBAQCB4bWxfYXN0cm8gKmdl dF9hc3Rybyhjb25zdCBHQXJyYXkgKmFzdHJvCisgCisgeG1sRG9jICpnZXRfeG1sX2RvY3VtZW50 KFNvdXBNZXNzYWdlICptc2cpOworIAorK2pzb25fb2JqZWN0ICpnZXRfanNvbl90cmVlKFNvdXBN ZXNzYWdlICptc2cpOworKworIGdwb2ludGVyIHBhcnNlX3htbF9kb2N1bWVudChTb3VwTWVzc2Fn ZSAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYbWxQYXJzZUZ1bmMgcGFyc2Vf ZnVuYyk7CisgCistLS0gYS9wYW5lbC1wbHVnaW4vd2VhdGhlci5jCisrKysgYi9wYW5lbC1wbHVn aW4vd2VhdGhlci5jCitAQCAtMjksNiArMjksNyBAQAorIAorICNpbmNsdWRlIDxsaWJ4bWwvcGFy c2VyLmg+CisgI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisrI2luY2x1ZGUgPGpzb24tYy9qc29u X3Rva2VuZXIuaD4KKyAKKyAjaW5jbHVkZSAid2VhdGhlci1wYXJzZXJzLmgiCisgI2luY2x1ZGUg IndlYXRoZXItZGF0YS5oIgorQEAgLTM5Nyw4ICszOTgsMTAgQEAgdXBkYXRlX2N1cnJlbnRfYXN0 cm9kYXRhKHBsdWdpbl9kYXRhICpkYQorICAgICAgICAgZGF0YS0+Y3VycmVudF9hc3RybyA9IGdl dF9hc3Ryb19kYXRhX2Zvcl9kYXkoZGF0YS0+YXN0cm9kYXRhLCAwKTsKKyAgICAgICAgIGlmIChH X1VOTElLRUxZKGRhdGEtPmN1cnJlbnRfYXN0cm8gPT0gTlVMTCkpCisgICAgICAgICAgICAgd2Vh dGhlcl9kZWJ1ZygiTm8gY3VycmVudCBhc3Ryb2RhdGEgYXZhaWxhYmxlLiIpOworLSAgICAgICAg ZWxzZQorKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgd2VhdGhlcl9kZWJ1ZygiVXBkYXRl ZCBjdXJyZW50IGFzdHJvZGF0YS4iKTsKKysgICAgICAgICAgICB3ZWF0aGVyX2RlYnVnKCIlcyIs d2VhdGhlcl9kdW1wX2FzdHJvKGRhdGEtPmN1cnJlbnRfYXN0cm8pKTsKKysgICAgICAgIH0KKyAg ICAgfQorIH0KKyAKK0BAIC00MzUsNyArNDM4LDcgQEAgdXBkYXRlX2N1cnJlbnRfY29uZGl0aW9u cyhwbHVnaW5fZGF0YSAqZAorIAorICAgICAvKiB1cGRhdGUgY3VycmVudCBhc3Ryb2RhdGEgKi8K KyAgICAgdXBkYXRlX2N1cnJlbnRfYXN0cm9kYXRhKGRhdGEpOworLSAgICBkYXRhLT5uaWdodF90 aW1lID0gaXNfbmlnaHRfdGltZShkYXRhLT5jdXJyZW50X2FzdHJvKTsKKysgICAgZGF0YS0+bmln aHRfdGltZSA9IGlzX25pZ2h0X3RpbWUoZGF0YS0+Y3VycmVudF9hc3RybywgZGF0YS0+b2Zmc2V0 KTsKKyAKKyAgICAgLyogdXBkYXRlIHdpZGdldHMgKi8KKyAgICAgdXBkYXRlX2ljb24oZGF0YSk7 CitAQCAtNDc0LDcxICs0NzcsMTM0IEBAIGNhbGNfbmV4dF9kb3dubG9hZF90aW1lKGNvbnN0IHVw ZGF0ZV9pbmYKKyAgICAgICAgICAgICBpbnRlcnZhbCA9IHVwaS0+Y2hlY2tfaW50ZXJ2YWw7Cisg ICAgIH0KKyAKKysgICAgd2VhdGhlcl9kZWJ1ZygiaW50ZXJ2YWw9JWQiLCBpbnRlcnZhbCk7Cisr CisgICAgIHJldHVybiB0aW1lX2NhbGMocmV0cnlfdG0sIDAsIDAsIDAsIDAsIDAsIGludGVydmFs KTsKKyB9CisgCistCisgLyoKKy0gKiBQcm9jZXNzIGRvd25sb2FkZWQgYXN0cm8gZGF0YSBhbmQg c2NoZWR1bGUgbmV4dCBhc3RybyB1cGRhdGUuCisrICogUHJvY2VzcyBkb3dubG9hZGVkIHN1biBh c3RybyBkYXRhIGFuZCBzY2hlZHVsZSBuZXh0IGFzdHJvIHVwZGF0ZS4KKyAgKi8KKyBzdGF0aWMg dm9pZAorLWNiX2FzdHJvX3VwZGF0ZShTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwKKy0gICAgICAgICAg ICAgICAgU291cE1lc3NhZ2UgKm1zZywKKy0gICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9k YXRhKQorK2NiX2FzdHJvX3VwZGF0ZV9zdW4oU291cFNlc3Npb24gKnNlc3Npb24sCisrICAgICAg ICAgICAgICAgICAgICBTb3VwTWVzc2FnZSAqbXNnLAorKyAgICAgICAgICAgICAgICAgICAgZ3Bv aW50ZXIgdXNlcl9kYXRhKQorIHsKKyAgICAgcGx1Z2luX2RhdGEgKmRhdGEgPSB1c2VyX2RhdGE7 CistICAgIHhtbERvYyAqZG9jOworLSAgICB4bWxOb2RlICpyb290X25vZGUsICpjaGlsZF9ub2Rl OworKyAgICBqc29uX29iamVjdCAqanNvbl90cmVlOworICAgICB0aW1lX3Qgbm93X3Q7CistICAg IGdib29sZWFuIHBhcnNpbmdfZXJyb3IgPSBUUlVFOworIAorLSAgICB0aW1lKCZub3dfdCk7Cist ICAgIGRhdGEtPmFzdHJvX3VwZGF0ZS0+YXR0ZW1wdCsrOworKyAgICBkYXRhLT5tc2dfcGFyc2Ut PnN1bl9tc2dfcHJvY2Vzc2VkKys7CisgICAgIGRhdGEtPmFzdHJvX3VwZGF0ZS0+aHR0cF9zdGF0 dXNfY29kZSA9IG1zZy0+c3RhdHVzX2NvZGU7CisgICAgIGlmICgobXNnLT5zdGF0dXNfY29kZSA9 PSAyMDAgfHwgbXNnLT5zdGF0dXNfY29kZSA9PSAyMDMpKSB7CistICAgICAgICBkb2MgPSBnZXRf eG1sX2RvY3VtZW50KG1zZyk7CistICAgICAgICBpZiAoR19MSUtFTFkoZG9jKSkgeworLSAgICAg ICAgICAgIHJvb3Rfbm9kZSA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CistICAgICAgICAg ICAgaWYgKEdfTElLRUxZKHJvb3Rfbm9kZSkpIHsKKy0gICAgICAgICAgICAgICAgZm9yIChjaGls ZF9ub2RlID0gcm9vdF9ub2RlLT5jaGlsZHJlbjsgY2hpbGRfbm9kZTsKKy0gICAgICAgICAgICAg ICAgICAgICBjaGlsZF9ub2RlID0gY2hpbGRfbm9kZS0+bmV4dCkgeworLSAgICAgICAgICAgICAg ICAgICAgaWYgKGNoaWxkX25vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZV9hc3Ryb2RhdGEoY2hpbGRfbm9kZSwgZGF0YS0+ YXN0cm9kYXRhKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzY2hlZHVsZSBu ZXh0IHVwZGF0ZSAqLworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5hc3Ryb191 cGRhdGUtPmF0dGVtcHQgPSAwOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5h c3Ryb191cGRhdGUtPmxhc3QgPSBub3dfdDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg cGFyc2luZ19lcnJvciA9IEZBTFNFOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorKyAgICAgICAganNvbl90cmVl ID0gZ2V0X2pzb25fdHJlZShtc2cpOworKyAgICAgICAgaWYgKEdfTElLRUxZKGpzb25fdHJlZSkp IHsKKysgICAgICAgICAgICBpZiAoIXBhcnNlX2FzdHJvZGF0YV9zdW4oanNvbl90cmVlLCBkYXRh LT5hc3Ryb2RhdGEpKSAgeworKyAgICAgICAgICAgICAgICBkYXRhLT5tc2dfcGFyc2UtPnN1bl9t c2dfcGFyc2VfZXJyb3IrKzsKKysgICAgICAgICAgICAgICAgZ193YXJuaW5nKCJFcnJvciBwYXJz aW5nIHN1biBhc3Ryb25vbWljYWwgZGF0YSEiKTsKKysgICAgICAgICAgICAgICAgd2VhdGhlcl9k ZWJ1ZygiZGF0YS0+YXN0cm9kYXRhOiVzIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB3ZWF0aGVyX2R1bXBfYXN0cm9kYXRhKGRhdGEtPmFzdHJvZGF0YSkpOworKyAgICAgICAgICAg IH0gZWxzZSB7CisrICAgICAgICAgICAgICAgIHdlYXRoZXJfZHVtcCh3ZWF0aGVyX2R1bXBfYXN0 cm9kYXRhLCBkYXRhLT5hc3Ryb2RhdGEpOworICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB4 bWxGcmVlRG9jKGRvYyk7CisrICAgICAgICAgICAgZ19hc3NlcnQoanNvbl9vYmplY3RfcHV0KGpz b25fdHJlZSkgPT0xKTsKKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgZ193YXJuaW5n KF8oIkVycm9yIHBhcnNpbmcgc3VuIGFzdHJvbm9taWNhbCBkYXRhISIpKTsKKysgICAgICAgICAg ICB3ZWF0aGVyX2RlYnVnKCJObyBqc29uX3RyZWUiKTsKKyAgICAgICAgIH0KKy0gICAgICAgIGlm IChwYXJzaW5nX2Vycm9yKQorLSAgICAgICAgICAgIGdfd2FybmluZygiRXJyb3IgcGFyc2luZyBh c3Ryb25vbWljYWwgZGF0YSEiKTsKKyAgICAgfSBlbHNlIHsKKysgICAgICAgIGRhdGEtPm1zZ19w YXJzZS0+aHR0cF9tc2dfZmFpbCA9IFRSVUU7CisgI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwg NjQsIDApCistICAgICAgICBnX3dhcm5pbmdfb25jZSgiRG93bmxvYWQgb2YgYXN0cm9ub21pY2Fs IGRhdGEgZmFpbGVkIHdpdGggSFRUUCBTdGF0dXMgQ29kZSAlZCwgUmVhc29uIHBocmFzZTogJXMi LAorKyAgICAgICAgZ193YXJuaW5nX29uY2UoIkRvd25sb2FkIG9mIHN1biBhc3Ryb25vbWljYWwg ZGF0YSBmYWlsZWQgd2l0aCBIVFRQIFN0YXR1cyBDb2RlICVkLCBSZWFzb24gcGhyYXNlOiAlcyIs CisgICAgICAgICAgICAgICAgICAgICAgICBtc2ctPnN0YXR1c19jb2RlLCBtc2ctPnJlYXNvbl9w aHJhc2UpOworICNlbHNlCistICAgICAgICBnX3dhcm5pbmcoIkRvd25sb2FkIG9mIGFzdHJvbm9t aWNhbCBkYXRhIGZhaWxlZCB3aXRoIEhUVFAgU3RhdHVzIENvZGUgJWQsIFJlYXNvbiBwaHJhc2U6 ICVzIiwKKysgICAgICAgIGdfd2FybmluZygiRG93bmxvYWQgb2Ygc3VuIGFzdHJvbm9taWNhbCBk YXRhIGZhaWxlZCB3aXRoIEhUVFAgU3RhdHVzIENvZGUgJWQsIFJlYXNvbiBwaHJhc2U6ICVzIiwK KyAgICAgICAgICAgICAgICAgICBtc2ctPnN0YXR1c19jb2RlLCBtc2ctPnJlYXNvbl9waHJhc2Up OworICNlbmRpZgorICAgICB9CistICAgIGRhdGEtPmFzdHJvX3VwZGF0ZS0+bmV4dCA9IGNhbGNf bmV4dF9kb3dubG9hZF90aW1lKGRhdGEtPmFzdHJvX3VwZGF0ZSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm93X3QpOworIAorLSAgICBh c3Ryb2RhdGFfY2xlYW4oZGF0YS0+YXN0cm9kYXRhKTsKKy0gICAgZ19hcnJheV9zb3J0KGRhdGEt PmFzdHJvZGF0YSwgKEdDb21wYXJlRnVuYykgeG1sX2FzdHJvX2NvbXBhcmUpOworLSAgICB1cGRh dGVfY3VycmVudF9hc3Ryb2RhdGEoZGF0YSk7CistICAgIGlmICghIHBhcnNpbmdfZXJyb3IpCist ICAgICAgICB3ZWF0aGVyX2R1bXAod2VhdGhlcl9kdW1wX2FzdHJvZGF0YSwgZGF0YS0+YXN0cm9k YXRhKTsKKysgICAgaWYgKGRhdGEtPm1zZ19wYXJzZS0+c3VuX21zZ19wcm9jZXNzZWQgPT0gQVNU Uk9fRk9SRUNBU1RfREFZUykgeworKyAgICAgICAgaWYgKEdfTElLRUxZKGRhdGEtPm1zZ19wYXJz ZS0+c3VuX21zZ19wYXJzZV9lcnJvciA9PSAwICYmICFkYXRhLT5tc2dfcGFyc2UtPmh0dHBfbXNn X2ZhaWwpKSB7CisrICAgICAgICAgICAgZGF0YS0+bXNnX3BhcnNlLT5hc3Ryb19kd25sZF9zdGF0 ZSA9IEFTVFJPX0RXTkxEX01PT047CisrICAgICAgICAgICAgdGltZSgmbm93X3QpOworKyAgICAg ICAgICAgIC8qIHNjaGVkdWxlIGFzdHJvIG1vb24gZGF0YSBkb3dubG9hZHMgaW1tZWRpYXRlbHkg Ki8KKysgICAgICAgICAgICBkYXRhLT5hc3Ryb191cGRhdGUtPm5leHQgPSBub3dfdDsKKysgICAg ICAgICAgICB3ZWF0aGVyX2RlYnVnKCAiYXN0cm8gbW9vbiBkYXRhIHVwZGF0ZSBzY2hlZHVsZWQh IFxuIik7CisrICAgICAgICAgICAgc2NoZWR1bGVfbmV4dF93YWtldXAoZGF0YSk7CisrICAgICAg ICB9IGVsc2UgeworKyAgICAgICAgICAgIGRhdGEtPm1zZ19wYXJzZS0+YXN0cm9fZHdubGRfc3Rh dGUgPSBBU1RST19EV05MRF9TVU47CisrICAgICAgICAgICAgd2VhdGhlcl9kZWJ1ZyggImFzdHJv IHN1biBkYXRhIHVwZGF0ZSBmYWlsZWQhIFxuIik7CisrICAgICAgICAgICAgdGltZSgmbm93X3Qp OworKyAgICAgICAgICAgIGRhdGEtPmFzdHJvX3VwZGF0ZS0+bmV4dCA9IGNhbGNfbmV4dF9kb3du bG9hZF90aW1lKGRhdGEtPmFzdHJvX3VwZGF0ZSxub3dfdCk7CisrICAgICAgICB9CisrICAgIH0K Kyt9CisgCistICAgIC8qIHVwZGF0ZSBpY29uICovCistICAgIGRhdGEtPm5pZ2h0X3RpbWUgPSBp c19uaWdodF90aW1lKGRhdGEtPmN1cnJlbnRfYXN0cm8pOworLSAgICB1cGRhdGVfaWNvbihkYXRh KTsKKyAKKy0gICAgZGF0YS0+YXN0cm9fdXBkYXRlLT5maW5pc2hlZCA9IFRSVUU7CisrLyoKKysg KiBQcm9jZXNzIGRvd25sb2FkZWQgbW9vbiBhc3RybyBkYXRhIGFuZCBzY2hlZHVsZSBuZXh0IGFz dHJvIHVwZGF0ZS4KKysgKi8KKytzdGF0aWMgdm9pZAorK2NiX2FzdHJvX3VwZGF0ZV9tb29uKFNv dXBTZXNzaW9uICpzZXNzaW9uLAorKyAgICAgICAgICAgICAgICAgICAgIFNvdXBNZXNzYWdlICpt c2csCisrICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKQorK3sKKysgICAg cGx1Z2luX2RhdGEgKmRhdGEgPSB1c2VyX2RhdGE7CisrICAgIGpzb25fb2JqZWN0ICpqc29uX3Ry ZWU7CisrICAgIHRpbWVfdCBub3dfdDsKKysKKysgICAgZGF0YS0+bXNnX3BhcnNlLT5tb29uX21z Z19wcm9jZXNzZWQrKzsKKysgICAgZGF0YS0+YXN0cm9fdXBkYXRlLT5odHRwX3N0YXR1c19jb2Rl ID0gbXNnLT5zdGF0dXNfY29kZTsKKysgICAgaWYgKChtc2ctPnN0YXR1c19jb2RlID09IDIwMCB8 fCBtc2ctPnN0YXR1c19jb2RlID09IDIwMykpIHsKKysgICAgICAgIGpzb25fdHJlZSA9IGdldF9q c29uX3RyZWUobXNnKTsKKysgICAgICAgIGlmIChHX0xJS0VMWShqc29uX3RyZWUpKSB7CisrICAg ICAgICAgICAgaWYgKCFwYXJzZV9hc3Ryb2RhdGFfbW9vbihqc29uX3RyZWUsIGRhdGEtPmFzdHJv ZGF0YSkpICB7CisrICAgICAgICAgICAgICAgIGRhdGEtPm1zZ19wYXJzZS0+bW9vbl9tc2dfcGFy c2VfZXJyb3IrKzsKKysgICAgICAgICAgICAgICAgZ193YXJuaW5nKF8oIkVycm9yIHBhcnNpbmcg bW9vbiBhc3Ryb25vbWljYWwgZGF0YSIpKTsKKysgICAgICAgICAgICAgICAgd2VhdGhlcl9kZWJ1 ZygiZGF0YS0+YXN0cm9kYXRhOiVzIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3 ZWF0aGVyX2R1bXBfYXN0cm9kYXRhKGRhdGEtPmFzdHJvZGF0YSkpOworKyAgICAgICAgICAgIH0g ZWxzZSB7CisrICAgICAgICAgICAgICAgIHdlYXRoZXJfZHVtcCh3ZWF0aGVyX2R1bXBfYXN0cm9k YXRhLCBkYXRhLT5hc3Ryb2RhdGEpOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBnX2Fz c2VydChqc29uX29iamVjdF9wdXQoanNvbl90cmVlKSA9PTEpOworKyAgICAgICAgfSBlbHNlIHsK KysgICAgICAgICAgICBnX3dhcm5pbmcoXygiRXJyb3IgcGFyc2luZyBtb29uIGFzdHJvbm9taWNh bCBkYXRhIikpOworKyAgICAgICAgICAgIHdlYXRoZXJfZGVidWcoIk5vIGpzb25fdHJlZSIpOwor KyAgICAgICAgfQorKyAgICB9IGVsc2UgeworKyAgICAgICAgZGF0YS0+bXNnX3BhcnNlLT5odHRw X21zZ19mYWlsID0gVFJVRTsKKysjaWYgR0xJQl9DSEVDS19WRVJTSU9OICgyLCA2NCwgMCkKKysg ICAgICAgIGdfd2FybmluZ19vbmNlKCJEb3dubG9hZCBvZiBtb29uIGFzdHJvbm9taWNhbCBkYXRh IGZhaWxlZCB3aXRoIEhUVFAgU3RhdHVzIENvZGUgJWQsIFJlYXNvbiBwaHJhc2U6ICVzIiwKKysg ICAgICAgICAgICAgICAgICAgICAgIG1zZy0+c3RhdHVzX2NvZGUsIG1zZy0+cmVhc29uX3BocmFz ZSk7CisrI2Vsc2UKKysgICAgICAgIGdfd2FybmluZygiRG93bmxvYWQgb2YgbW9vbiBhc3Ryb25v bWljYWwgZGF0YSBmYWlsZWQgd2l0aCBIVFRQIFN0YXR1cyBDb2RlICVkLCBSZWFzb24gcGhyYXNl OiAlcyIsCisrICAgICAgICAgICAgICAgICAgbXNnLT5zdGF0dXNfY29kZSwgbXNnLT5yZWFzb25f cGhyYXNlKTsKKysjZW5kaWYKKysgICAgfQorKworKyAgICBpZiAoZGF0YS0+bXNnX3BhcnNlLT5z dW5fbXNnX3Byb2Nlc3NlZCA9PSBBU1RST19GT1JFQ0FTVF9EQVlTICYmIGRhdGEtPm1zZ19wYXJz ZS0+bW9vbl9tc2dfcHJvY2Vzc2VkID09IEFTVFJPX0ZPUkVDQVNUX0RBWVMpIHsKKysgICAgICAg IGlmIChHX0xJS0VMWShkYXRhLT5tc2dfcGFyc2UtPm1vb25fbXNnX3BhcnNlX2Vycm9yID09IDAg JiYgIWRhdGEtPm1zZ19wYXJzZS0+aHR0cF9tc2dfZmFpbCkpIHsKKysgICAgICAgICAgICBhc3Ry b2RhdGFfY2xlYW4oZGF0YS0+YXN0cm9kYXRhKTsKKysgICAgICAgICAgICBnX2FycmF5X3NvcnQo ZGF0YS0+YXN0cm9kYXRhLCAoR0NvbXBhcmVGdW5jKSB4bWxfYXN0cm9fY29tcGFyZSk7CisrICAg ICAgICAgICAgZGF0YS0+YXN0cm9fdXBkYXRlLT5hdHRlbXB0ID0gMDsKKysgICAgICAgICAgICB3 ZWF0aGVyX2RlYnVnKCAiYXN0cm8gc3VuIGRhdGEgdXBkYXRlIHNjaGVkdWxlZCEgXG4iKTsKKysg ICAgICAgICAgICB0aW1lKCZub3dfdCk7CisrICAgICAgICAgICAgZGF0YS0+YXN0cm9fdXBkYXRl LT5sYXN0ID0gbm93X3Q7CisrICAgICAgICAgICAgZGF0YS0+YXN0cm9fdXBkYXRlLT5uZXh0ID0g Y2FsY19uZXh0X2Rvd25sb2FkX3RpbWUoZGF0YS0+YXN0cm9fdXBkYXRlLG5vd190KTsKKysgICAg ICAgICAgICB1cGRhdGVfY3VycmVudF9hc3Ryb2RhdGEoZGF0YSk7CisrICAgICAgICAgICAgLyog dXBkYXRlIGljb24gKi8KKysgICAgICAgICAgICBkYXRhLT5uaWdodF90aW1lID0gaXNfbmlnaHRf dGltZShkYXRhLT5jdXJyZW50X2FzdHJvLCBkYXRhLT5vZmZzZXQpOworKyAgICAgICAgICAgIHVw ZGF0ZV9pY29uKGRhdGEpOworKyAgICAgICAgICAgIGRhdGEtPmFzdHJvX3VwZGF0ZS0+ZmluaXNo ZWQgPSBUUlVFOworKyAgICAgICAgICAgIGRhdGEtPm1zZ19wYXJzZS0+YXN0cm9fZHdubGRfc3Rh dGUgPSBBU1RST19EV05MRF9TVU47CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIGRh dGEtPm1zZ19wYXJzZS0+YXN0cm9fZHdubGRfc3RhdGUgPSBBU1RST19EV05MRF9NT09OOworKyAg ICAgICAgICAgIHdlYXRoZXJfZGVidWcoICJhc3RybyBtb29uIGRhdGEgdXBkYXRlIGZhaWxlZCEg XG4iKTsKKysgICAgICAgICAgICB0aW1lKCZub3dfdCk7CisrICAgICAgICAgICAgZGF0YS0+YXN0 cm9fdXBkYXRlLT5uZXh0ID0gY2FsY19uZXh0X2Rvd25sb2FkX3RpbWUoZGF0YS0+YXN0cm9fdXBk YXRlLG5vd190KTsKKysgICAgICAgICAgICBkYXRhLT5hc3Ryb191cGRhdGUtPmF0dGVtcHQrKzsK KysgICAgICAgIH0KKysgICAgfQorIH0KKyAKKyAKK0BAIC02MDAsOCArNjY2LDEwIEBAIHVwZGF0 ZV9oYW5kbGVyKGdwb2ludGVyIHVzZXJfZGF0YSkKKyAgICAgZ2NoYXIgKmFwaV92ZXJzaW9uID0g Rk9SRUNBU1RfQVBJOworICAgICBnY2hhciAqdXJsOworICAgICBnYm9vbGVhbiBuaWdodF90aW1l OworLSAgICB0aW1lX3Qgbm93X3Q7CisrICAgIHRpbWVfdCBub3dfdCwgZGF5X3Q7CisgICAgIHN0 cnVjdCB0bSBub3dfdG07CisrICAgIGd1aW50IGRheTsKKysgICAgZHdubGRfc3RhdGUgYXN0cm9f ZHdubGRfc3RhdGUgPSBkYXRhLT5tc2dfcGFyc2UtPmFzdHJvX2R3bmxkX3N0YXRlOworIAorICAg ICBnX2Fzc2VydChkYXRhICE9IE5VTEwpOworICAgICBpZiAoR19VTkxJS0VMWShkYXRhID09IE5V TEwpKQorQEAgLTYzMywyNiArNzAxLDY0IEBAIHVwZGF0ZV9oYW5kbGVyKGdwb2ludGVyIHVzZXJf ZGF0YSkKKyAgICAgaWYgKGRpZmZ0aW1lKGRhdGEtPmFzdHJvX3VwZGF0ZS0+bmV4dCwgbm93X3Qp IDw9IDApIHsKKyAgICAgICAgIC8qIHJlYWwgbmV4dCB1cGRhdGUgdGltZSB3aWxsIGJlIGNhbGN1 bGF0ZWQgd2hlbiB1cGRhdGUgaXMgZmluaXNoZWQsCisgICAgICAgICAgICB0aGlzIGlzIHRvIHBy ZXZlbnQgc3Bhd25pbmcgbXVsdGlwbGUgdXBkYXRlcyBpbiBhIHJvdyAqLworLSAgICAgICAgZGF0 YS0+YXN0cm9fdXBkYXRlLT5uZXh0ID0gdGltZV9jYWxjX2hvdXIobm93X3RtLCAxKTsKKy0gICAg ICAgIGRhdGEtPmFzdHJvX3VwZGF0ZS0+c3RhcnRlZCA9IFRSVUU7CistCistICAgICAgICAvKiBi dWlsZCB1cmwgKi8KKy0gICAgICAgIHVybCA9IGdfc3RyZHVwX3ByaW50ZigiaHR0cHM6Ly9hcGku bWV0Lm5vL3dlYXRoZXJhcGkiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9zdW5y aXNlLzIuMC8/bGF0PSVzJmxvbj0lcyYiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImRhdGU9JTA0ZC0lMDJkLSUwMmQmIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJv ZmZzZXQ9JXMmZGF5cz0ldSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+ bGF0LCBkYXRhLT5sb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm93X3RtLnRt X3llYXIgKyAxOTAwLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vd190bS50bV9t b24gKyAxLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vd190bS50bV9tZGF5LAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm9mZnNldCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhLT5mb3JlY2FzdF9kYXlzKTsKKysgICAgICAgIHdlYXRo ZXJfZGVidWcoIkZldGNoaW5nIGFzdHJvbm9taWNhbCBkYXRhLiBTdGF0ZTogJXMuXG4iLCAoaW50 KWFzdHJvX2R3bmxkX3N0YXRlID8gIkFTVFJPX0RXTkxEX01PT04iIDogIkFTVFJPX0RXTkxEX1NV TiIpOworKyAgICAgICAgc3dpdGNoIChhc3Ryb19kd25sZF9zdGF0ZSkgeworKyAgICAgICAgY2Fz ZSBBU1RST19EV05MRF9TVU46CisrICAgICAgICAgICAgZGF0YS0+YXN0cm9fdXBkYXRlLT5uZXh0 ID0gdGltZV9jYWxjX2hvdXIobm93X3RtLCAxKTsKKysgICAgICAgICAgICBkYXRhLT5hc3Ryb191 cGRhdGUtPnN0YXJ0ZWQgPSBUUlVFOworKyAgICAgICAgICAgIGRhdGEtPmFzdHJvX3VwZGF0ZS0+ YXR0ZW1wdCsrOworKyAgICAgICAgICAgIGRhdGEtPm1zZ19wYXJzZS0+c3VuX21zZ19wcm9jZXNz ZWQgPSAwOworKyAgICAgICAgICAgIGRhdGEtPm1zZ19wYXJzZS0+bW9vbl9tc2dfcHJvY2Vzc2Vk ID0gMDsKKysgICAgICAgICAgICBkYXRhLT5tc2dfcGFyc2UtPm1vb25fbXNnX3BhcnNlX2Vycm9y ID0gMDsKKysgICAgICAgICAgICBkYXRhLT5tc2dfcGFyc2UtPnN1bl9tc2dfcGFyc2VfZXJyb3Ig PSAwOworKyAgICAgICAgICAgIGRhdGEtPm1zZ19wYXJzZS0+aHR0cF9tc2dfZmFpbCA9IEZBTFNF OworKyAgICAgICAgICAgIC8qIGZvcmVjYXN0IGFzdHJvbm9taWNhbCBkYXRhIG9uZSBkYXkgaW4g YWR2YW5jZSAqLworKyAgICAgICAgICAgIGZvciAoZGF5ID0gMDsgZGF5IDwgQVNUUk9fRk9SRUNB U1RfREFZUzsgZGF5KyspIHsKKysgICAgICAgICAgICAgICAgZGF5X3QgPSBkYXlfYXRfbWlkbmln aHQobm93X3QsIGRheSk7CisrICAgICAgICAgICAgICAgIG5vd190bSA9ICpsb2NhbHRpbWUoJmRh eV90KTsKKysgICAgICAgICAgICAgICAgLyogYnVpbGQgdXJsICovCisrICAgICAgICAgICAgICAg IHVybCA9IGdfc3RyZHVwX3ByaW50ZigiaHR0cHM6Ly9hcGkubWV0Lm5vL3dlYXRoZXJhcGkiCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3N1bnJpc2UvMy4wL3N1bj9s YXQ9JXMmbG9uPSVzJiIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJk YXRlPSUwNGQtJTAyZC0lMDJkJiIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJvZmZzZXQ9JXMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YS0+bGF0LCBkYXRhLT5sb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBub3dfdG0udG1feWVhciArIDE5MDAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBub3dfdG0udG1fbW9uICsgMSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5vd190bS50bV9tZGF5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YS0+b2Zmc2V0CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7CisrICAgICAgICAgICAgICAgIC8qIHN0YXJ0IHJlY2VpdmUgdGhyZWFkICovCisr ICAgICAgICAgICAgICAgIHdlYXRoZXJfZGVidWcoImdldHRpbmcgc3VuIGRhdGE6JXMiLCB1cmwp OworKyAgICAgICAgICAgICAgICB3ZWF0aGVyX2h0dHBfcXVldWVfcmVxdWVzdChkYXRhLT5zZXNz aW9uLCB1cmwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNi X2FzdHJvX3VwZGF0ZV9zdW4sIGRhdGEpOworKyAgICAgICAgICAgICAgICBnX2ZyZWUodXJsKTsK KysgICAgICAgICAgICB9CisrICAgICAgICAgICAgYnJlYWs7CisgCistICAgICAgICAvKiBzdGFy dCByZWNlaXZlIHRocmVhZCAqLworLSAgICAgICAgd2VhdGhlcl9kZWJ1ZygiZ2V0dGluZyAlcyIs IHVybCk7CistICAgICAgICB3ZWF0aGVyX2h0dHBfcXVldWVfcmVxdWVzdChkYXRhLT5zZXNzaW9u LCB1cmwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYl9hc3Ryb191cGRh dGUsIGRhdGEpOworLSAgICAgICAgZ19mcmVlKHVybCk7CisrICAgICAgICBjYXNlIEFTVFJPX0RX TkxEX01PT046CisrICAgICAgICAgICAgZGF0YS0+bXNnX3BhcnNlLT5odHRwX21zZ19mYWlsID0g RkFMU0U7CisrICAgICAgICAgICAgZGF0YS0+YXN0cm9fdXBkYXRlLT5uZXh0ID0gdGltZV9jYWxj X2hvdXIobm93X3RtLCAxKTsKKysgICAgICAgICAgICBmb3IgKGRheSA9IDA7IGRheSA8IEFTVFJP X0ZPUkVDQVNUX0RBWVM7IGRheSsrKSB7CisrICAgICAgICAgICAgICAgIGRheV90ID0gZGF5X2F0 X21pZG5pZ2h0KG5vd190LCBkYXkpOworKyAgICAgICAgICAgICAgICBub3dfdG0gPSAqbG9jYWx0 aW1lKCZkYXlfdCk7CisrICAgICAgICAgICAgICAgIHVybCA9IGdfc3RyZHVwX3ByaW50ZigiaHR0 cHM6Ly9hcGkubWV0Lm5vL3dlYXRoZXJhcGkiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiL3N1bnJpc2UvMy4wL21vb24/bGF0PSVzJmxvbj0lcyYiCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGF0ZT0lMDRkLSUwMmQtJTAyZCYiCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2Zmc2V0PSVzIiwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPmxhdCwgZGF0YS0+bG9uLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm93X3RtLnRtX3llYXIgKyAxOTAw LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm93X3RtLnRtX21vbiAr IDEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3dfdG0udG1fbWRh eSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm9mZnNldAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKysgICAgICAgICAgICAg ICAgLyogc3RhcnQgcmVjZWl2ZSB0aHJlYWQgKi8KKysgICAgICAgICAgICAgICAgd2VhdGhlcl9k ZWJ1ZygiZ2V0dGluZyBtb29uIGRhdGE6ICVzIiwgdXJsKTsKKysgICAgICAgICAgICAgICAgd2Vh dGhlcl9odHRwX3F1ZXVlX3JlcXVlc3QoZGF0YS0+c2Vzc2lvbiwgdXJsLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYl9hc3Ryb191cGRhdGVfbW9vbiwgZGF0 YSk7CisrICAgICAgICAgICAgICAgIGdfZnJlZSh1cmwpOworKyAgICAgICAgICAgIH0KKysgICAg ICAgICAgICBicmVhazsKKysgICAgICAgIH0KKyAgICAgfQorIAorICAgICAvKiBmZXRjaCB3ZWF0 aGVyIGRhdGEgKi8KK0BAIC02OTQsNyArODAwLDcgQEAgdXBkYXRlX2hhbmRsZXIoZ3BvaW50ZXIg dXNlcl9kYXRhKQorIAorICAgICAvKiB1cGRhdGUgbmlnaHQgdGltZSBzdGF0dXMgYW5kIGljb24g Ki8KKyAgICAgdXBkYXRlX2N1cnJlbnRfYXN0cm9kYXRhKGRhdGEpOworLSAgICBuaWdodF90aW1l ID0gaXNfbmlnaHRfdGltZShkYXRhLT5jdXJyZW50X2FzdHJvKTsKKysgICAgbmlnaHRfdGltZSA9 IGlzX25pZ2h0X3RpbWUoZGF0YS0+Y3VycmVudF9hc3RybywgZGF0YS0+b2Zmc2V0KTsKKyAgICAg aWYgKGRhdGEtPm5pZ2h0X3RpbWUgIT0gbmlnaHRfdGltZSkgeworICAgICAgICAgd2VhdGhlcl9k ZWJ1ZygiTmlnaHQgdGltZSBzdGF0dXMgY2hhbmdlZCwgdXBkYXRpbmcgaWNvbi4iKTsKKyAgICAg ICAgIGRhdGEtPm5pZ2h0X3RpbWUgPSBuaWdodF90aW1lOworQEAgLTEzMDYsOCArMTQxMiw2IEBA IHJlYWRfY2FjaGVfZmlsZShwbHVnaW5fZGF0YSAqZGF0YSkKKyAgICAgaSA9IDA7CisgICAgIGdy b3VwID0gZ19zdHJkdXBfcHJpbnRmKCJhc3Ryb2RhdGElZCIsIGkpOworICAgICB3aGlsZSAoZ19r ZXlfZmlsZV9oYXNfZ3JvdXAoa2V5ZmlsZSwgZ3JvdXApKSB7CistICAgICAgICBpZiAoaSA9PSAw KQorLSAgICAgICAgICAgIHdlYXRoZXJfZGVidWcoIlJldXNpbmcgY2FjaGVkIGFzdHJvZGF0YSBp bnN0ZWFkIG9mIGRvd25sb2FkaW5nIGl0LiIpOworIAorICAgICAgICAgYXN0cm8gPSBnX3NsaWNl X25ldzAoeG1sX2FzdHJvKTsKKyAgICAgICAgIGlmIChHX1VOTElLRUxZKGFzdHJvID09IE5VTEwp KQorQEAgLTEzMTUsNiArMTQxOSw4IEBAIHJlYWRfY2FjaGVfZmlsZShwbHVnaW5fZGF0YSAqZGF0 YSkKKyAKKyAgICAgICAgIENBQ0hFX1JFQURfU1RSSU5HKHRpbWVzdHJpbmcsICJkYXkiKTsKKyAg ICAgICAgIGFzdHJvLT5kYXkgPSBwYXJzZV90aW1lc3RyaW5nKHRpbWVzdHJpbmcsICIlWS0lbS0l ZCIsIFRSVUUpOworKyAgICAgICAgd2VhdGhlcl9kZWJ1ZygiY2FjaGVkIGFzdHJvZGF0YSBmb3Ig ZGF5PSVzXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfZGF0ZShhc3Ryby0+ZGF5 LCBOVUxMLCBUUlVFKSk7CisgICAgICAgICBnX2ZyZWUodGltZXN0cmluZyk7CisgICAgICAgICBD QUNIRV9SRUFEX1NUUklORyh0aW1lc3RyaW5nLCAic3VucmlzZSIpOworICAgICAgICAgYXN0cm8t PnN1bnJpc2UgPSBwYXJzZV90aW1lc3RyaW5nKHRpbWVzdHJpbmcsIE5VTEwsIFRSVUUpOworQEAg LTEzNDksNiArMTQ1NSwxNiBAQCByZWFkX2NhY2hlX2ZpbGUocGx1Z2luX2RhdGEgKmRhdGEpCisg ICAgICAgICBnX2ZyZWUoZ3JvdXApOworICAgICAgICAgZ3JvdXAgPSBnX3N0cmR1cF9wcmludGYo ImFzdHJvZGF0YSVkIiwgKytpKTsKKyAgICAgfQorKworKyAgICAvKiBkb3dubG9hZHMgdGhlIGFz dHJvZGF0YSBvZiB0aGUgZGF5IGlmIG5lY2Vzc2FyeSAqLworKyAgICBpZiAoR19MSUtFTFkoZ2V0 X2FzdHJvX2RhdGFfZm9yX2RheShkYXRhLT5hc3Ryb2RhdGEsIERFRkFVTFRfRk9SRUNBU1RfREFZ UykpKQorKyAgICAgICAgd2VhdGhlcl9kZWJ1ZygiUmV1c2luZyBjYWNoZWQgYXN0cm9kYXRhIGlu c3RlYWQgb2YgZG93bmxvYWRpbmcgaXQuIik7CisrICAgIGVsc2UgeworKyAgICAgICAgd2VhdGhl cl9kZWJ1ZygiQXN0cm9kYXRhIG9mIHRoZSBkYXkgbm90IGluIGNhY2hlLiBEb3dubG9hZGluZyBz Y2hlZHVsZWQgaW4gMzBzLiIpOworKyAgICAgICAgZGF0YS0+YXN0cm9fdXBkYXRlLT5hdHRlbXB0 ID0gMDsKKysgICAgICAgIGRhdGEtPmFzdHJvX3VwZGF0ZS0+bmV4dCA9IG5vd190ICs9IDMwOwor KyAgICAgICAgc2NoZWR1bGVfbmV4dF93YWtldXAoZGF0YSk7CisrICAgIH0KKyAgICAgZ19mcmVl KGdyb3VwKTsKKyAgICAgZ3JvdXAgPSBOVUxMOworIAorQEAgLTE5MjYsNiArMjA0MiwxMSBAQCB4 ZmNld2VhdGhlcl9jcmVhdGVfY29udHJvbChYZmNlUGFuZWxQbHVnCisgICAgIGRhdGEtPnNpbmds ZV9yb3cgPSBUUlVFOworICAgICBkYXRhLT5wb3dlcl9zYXZpbmcgPSBUUlVFOworIAorKyAgICAv KiBTZXR1cCBNZXNzYWdlIHBhcnNlIGluZm9zICovCisrICAgIGlmIChkYXRhLT5tc2dfcGFyc2Up CisrICAgICAgICBnX3NsaWNlX2ZyZWUocGFyc2VfaW5mbywgZGF0YS0+bXNnX3BhcnNlKTsKKysg ICAgZGF0YS0+bXNnX3BhcnNlID0gZ19zbGljZV9uZXcwKHBhcnNlX2luZm8pOworKyAKKyAgICAg LyogU2V0dXAgdXBkYXRlIGluZm9zICovCisgICAgIGluaXRfdXBkYXRlX2luZm9zKGRhdGEpOwor ICAgICBkYXRhLT5uZXh0X3dha2V1cCA9IHRpbWUoTlVMTCk7CistLS0gYS9wYW5lbC1wbHVnaW4v d2VhdGhlci5oCisrKysgYi9wYW5lbC1wbHVnaW4vd2VhdGhlci5oCitAQCAtMzEsNiArMzEsNyBA QAorICNkZWZpbmUgUExVR0lOX1dFQlNJVEUgImh0dHBzOi8vZG9jcy54ZmNlLm9yZy9wYW5lbC1w bHVnaW5zL3hmY2U0LXdlYXRoZXItcGx1Z2luIgorICNkZWZpbmUgTUFYX0ZPUkVDQVNUX0RBWVMg MTAKKyAjZGVmaW5lIERFRkFVTFRfRk9SRUNBU1RfREFZUyA1CisrI2RlZmluZSBBU1RST19GT1JF Q0FTVF9EQVlTIChERUZBVUxUX0ZPUkVDQVNUX0RBWVMgKyAxKQorICNkZWZpbmUgTUFYX1NDUk9M TEJPWF9MSU5FUyAxMAorICNkZWZpbmUgRk9SRUNBU1RfQVBJICIyLjAiCisgCitAQCAtOTMsNiAr OTQsMjAgQEAgdHlwZWRlZiBzdHJ1Y3QgeworICAgICBndWludCBodHRwX3N0YXR1c19jb2RlOwor IH0gdXBkYXRlX2luZm87CisgCisrdHlwZWRlZiBlbnVtIHsKKysgICAgQVNUUk9fRFdOTERfU1VO ID0gMCwKKysgICAgQVNUUk9fRFdOTERfTU9PTgorK30gZHdubGRfc3RhdGU7CisrCisrdHlwZWRl ZiBzdHJ1Y3QgeworKyAgICBndWludCBzdW5fbXNnX3Byb2Nlc3NlZDsKKysgICAgZ3VpbnQgbW9v bl9tc2dfcHJvY2Vzc2VkOworKyAgICBndWludCBzdW5fbXNnX3BhcnNlX2Vycm9yOworKyAgICBn dWludCBtb29uX21zZ19wYXJzZV9lcnJvcjsKKysgICAgZHdubGRfc3RhdGUgYXN0cm9fZHdubGRf c3RhdGU7CisrICAgIGdib29sZWFuIGh0dHBfbXNnX2ZhaWw7CisrfSBwYXJzZV9pbmZvOworKwor IHR5cGVkZWYgc3RydWN0IHsKKyAgICAgWGZjZVBhbmVsUGx1Z2luICpwbHVnaW47CisgICAgIFhm Y29uZkNoYW5uZWwgKmNoYW5uZWw7CitAQCAtMTMwLDYgKzE0NSw3IEBAIHR5cGVkZWYgc3RydWN0 IHsKKyAgICAgdXBkYXRlX2luZm8gKmFzdHJvX3VwZGF0ZTsKKyAgICAgdXBkYXRlX2luZm8gKndl YXRoZXJfdXBkYXRlOworICAgICB1cGRhdGVfaW5mbyAqY29uZGl0aW9uc191cGRhdGU7CisrICAg IHBhcnNlX2luZm8gKm1zZ19wYXJzZTsKKyAgICAgdGltZV90IG5leHRfd2FrZXVwOworICAgICBn Y2hhciAqbmV4dF93YWtldXBfcmVhc29uOworICAgICBndWludCB1cGRhdGVfdGltZXI7CmRpZmYg LS1naXQgYS9zcmNwa2dzL3hmY2U0LXdlYXRoZXItcGx1Z2luL3BhdGNoZXMvMDAwNi1GaXgtbGVh a3MtYXJvdW5kLXJlbW92ZV90aW1lem9uZV9vZmZzZXQucGF0Y2ggYi9zcmNwa2dzL3hmY2U0LXdl YXRoZXItcGx1Z2luL3BhdGNoZXMvMDAwNi1GaXgtbGVha3MtYXJvdW5kLXJlbW92ZV90aW1lem9u ZV9vZmZzZXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAu LjY5MDJiYmE5YWNiNjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy94ZmNlNC13ZWF0aGVy LXBsdWdpbi9wYXRjaGVzLzAwMDYtRml4LWxlYWtzLWFyb3VuZC1yZW1vdmVfdGltZXpvbmVfb2Zm c2V0LnBhdGNoCkBAIC0wLDAgKzEsNjggQEAKK0Zyb20gYTg2YjEyOTM3NzJhNmQ2MmU1ZTM0YmM1 NjU1MWIzZWRiOGY5MzFiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEdhw6tsIEJv bml0aG9uIDxnYWVsQHhmY2Uub3JnPgorRGF0ZTogVGh1LCAyOSBGZWIgMjAyNCAxNzoyMToxMCAr MDEwMAorU3ViamVjdDogW1BBVENIIDYvOF0gRml4IGxlYWtzIGFyb3VuZCByZW1vdmVfdGltZXpv bmVfb2Zmc2V0KCkKKworU3BvdHRlZCBhdCB0aGUgdGltZSBvZiAhMjQgYW5kIG5vdyBmaXhlZCBh ZnRlciAhMjcuCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDU1NzM0YjRlOTc4YzIyYTc0 N2ZiY2RjZGExZmFhMDM3ZTJjZDAyYTQpCistLS0KKyBwYW5lbC1wbHVnaW4vd2VhdGhlci1wYXJz ZXJzLmMgfCAxMCArKysrKysrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXBhcnNl cnMuYyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXBhcnNlcnMuYworaW5kZXggMTEyMWFjYS4uMGVh NTc3NCAxMDA2NDQKKy0tLSBhL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXBhcnNlcnMuYworKysrIGIv cGFuZWwtcGx1Z2luL3dlYXRoZXItcGFyc2Vycy5jCitAQCAtNDMwLDcgKzQzMCw4IEBAIHBhcnNl X2FzdHJvZGF0YV9zdW4oanNvbl9vYmplY3QgKmN1cl9ub2RlLAorICAgICAgICAgICAgICAgICAq anNvbGFybm9vbiwgKmpzb2xhcm1pZG5pZ2h0LCAqamRpc2NfY2VudHJlX2VsZXZhdGlvbjsKKyAg ICAgY29uc3QgZ2NoYXIgZGF5X2Zvcm1hdFtdPSIlWS0lbS0lZFQlSDolTTolU1oiOworICAgICBj b25zdCBnY2hhciBzdW5fZm9ybWF0W109IiVZLSVtLSVkVCVIOiVNWiI7CistICAgIGNvbnN0IGdj aGFyICpkYXRlLCAqdGltZTsKKysgICAgY29uc3QgZ2NoYXIgKmRhdGU7CisrICAgIGdjaGFyICp0 aW1lOworICAgICBnYm9vbGVhbiBzdW5fcmlzZXMgPSBGQUxTRSwgc3VuX3NldHMgPSBGQUxTRTsK KyAKKyAgICAgYXN0cm8gPSBnX3NsaWNlX25ldzAoeG1sX2FzdHJvKTsKK0BAIC00ODQsNiArNDg1 LDcgQEAgcGFyc2VfYXN0cm9kYXRhX3N1bihqc29uX29iamVjdCAqY3VyX25vZGUsCisgICAgICAg ICBzdW5fcmlzZXMgPSBUUlVFOworICAgICAgICAgd2VhdGhlcl9kZWJ1ZygiYXN0cm8tPnN1bnJp c2U9JXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9kYXRlKGFzdHJvLT5zdW5y aXNlLCBOVUxMLFRSVUUpKTsKKysgICAgICAgIGdfZnJlZSh0aW1lKTsKKyAgICAgfQorIAorICAg ICBqc3Vuc2V0ID0ganNvbl9vYmplY3Rfb2JqZWN0X2dldChqcHJvcGVydGllcywgInN1bnNldCIp OworQEAgLTUwMiw2ICs1MDQsNyBAQCBwYXJzZV9hc3Ryb2RhdGFfc3VuKGpzb25fb2JqZWN0ICpj dXJfbm9kZSwKKyAgICAgICAgIHN1bl9zZXRzID0gVFJVRTsKKyAgICAgICAgIHdlYXRoZXJfZGVi dWcoImFzdHJvLT5zdW5zZXQ9JXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9k YXRlKGFzdHJvLT5zdW5zZXQsIE5VTEwsVFJVRSkpOworKyAgICAgICAgZ19mcmVlKHRpbWUpOwor ICAgICB9CisgCisgICAgIGpzb2xhcm5vb24gPSBqc29uX29iamVjdF9vYmplY3RfZ2V0KGpwcm9w ZXJ0aWVzLCAic29sYXJub29uIik7CitAQCAtNTU5LDcgKzU2Miw4IEBAIHBhcnNlX2FzdHJvZGF0 YV9tb29uKGpzb25fb2JqZWN0ICpjdXJfbm9kZSwKKyAgICAgZ3VpbnQgaW5kZXg7CisgICAgIGNv bnN0IGdjaGFyIGRheV9mb3JtYXRbXT0iJVktJW0tJWRUJUg6JU06JVNaIjsKKyAgICAgY29uc3Qg Z2NoYXIgbW9vbl9mb3JtYXRbXT0iJVktJW0tJWRUJUg6JU1aIjsKKy0gICAgY29uc3QgZ2NoYXIg KmRhdGUsICp0aW1lOworKyAgICBjb25zdCBnY2hhciAqZGF0ZTsKKysgICAgZ2NoYXIgKnRpbWU7 CisgICAgIGdib29sZWFuIG1vb25fcmlzZXMgPSBGQUxTRSwgbW9vbl9zZXRzID0gRkFMU0U7Cisg CisgICAgIGdfYXNzZXJ0KGFzdHJvZGF0YSAhPSBOVUxMKTsKK0BAIC02MzQsNiArNjM4LDcgQEAg cGFyc2VfYXN0cm9kYXRhX21vb24oanNvbl9vYmplY3QgKmN1cl9ub2RlLAorICAgICAgICAgbW9v bl9yaXNlcyA9IFRSVUU7CisgICAgICAgICB3ZWF0aGVyX2RlYnVnKCJhc3Ryby0+bW9vbnJpc2U9 JXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9kYXRlKGFzdHJvLT5tb29ucmlz ZSwgTlVMTCxUUlVFKSk7CisrICAgICAgICBnX2ZyZWUodGltZSk7CisgICAgIH0KKyAKKyAgICAg am1vb25zZXQgPSBqc29uX29iamVjdF9vYmplY3RfZ2V0KGpwcm9wZXJ0aWVzLCAibW9vbnNldCIp OworQEAgLTY1NSw2ICs2NjAsNyBAQCBwYXJzZV9hc3Ryb2RhdGFfbW9vbihqc29uX29iamVjdCAq Y3VyX25vZGUsCisgICAgICAgICBtb29uX3NldHMgPSBUUlVFOworICAgICAgICAgd2VhdGhlcl9k ZWJ1ZygiYXN0cm8tPm1vb25zZXQ9JXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGZvcm1h dF9kYXRlKGFzdHJvLT5tb29uc2V0LCBOVUxMLFRSVUUpKTsKKysgICAgICAgIGdfZnJlZSh0aW1l KTsKKyAgICAgfQorIAorICAgICBqbW9vbnBoYXNlID0ganNvbl9vYmplY3Rfb2JqZWN0X2dldChq cHJvcGVydGllcywgIm1vb25waGFzZSIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy94ZmNlNC13ZWF0 aGVyLXBsdWdpbi9wYXRjaGVzLzAwMDctcGFyc2Vycy1HZW5lcmFsaXNlLWlucHV0LXRvLWFycmF5 LW9mLWdjaGFyLnBhdGNoIGIvc3JjcGtncy94ZmNlNC13ZWF0aGVyLXBsdWdpbi9wYXRjaGVzLzAw MDctcGFyc2Vycy1HZW5lcmFsaXNlLWlucHV0LXRvLWFycmF5LW9mLWdjaGFyLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi45NDhmOGU4OTY1OGM3NwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MveGZjZTQtd2VhdGhlci1wbHVnaW4vcGF0Y2hlcy8wMDA3 LXBhcnNlcnMtR2VuZXJhbGlzZS1pbnB1dC10by1hcnJheS1vZi1nY2hhci5wYXRjaApAQCAtMCww ICsxLDI2MSBAQAorRnJvbSBiNTI4N2IwY2M3MzhjNTM4NDZmMDc1MmRiZDc2NjE4MTc3NzMzMjQ2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogxJBvw6BuIFRy4bqnbiBDw7RuZyBEYW5o IDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMSBNYXIgMjAyNCAyMTo1NjozNCAr MDcwMAorU3ViamVjdDogW1BBVENIIDcvOF0gcGFyc2VyczogR2VuZXJhbGlzZSBpbnB1dCB0byBh cnJheSBvZiBnY2hhcgorCitJbiBhIGxhdGVyIGNoYW5nZSwgd2Ugd2lsbCBtb3ZlIHRvIGxpYnNv dXAtMy4wLCB3aGljaCBkb2Vzbid0IGV4cG9zZQorYHJlc3BvbnNlX2JvZHknIGluIFNvdXBNZXNz YWdlLgorCitQcmVwYXJlIGZvciB0aGF0IG1vdmUuCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29t bWl0IGVhYTU0Y2M3MzA1ZmEwYmRlZWVkMzZmNzI0YmM3Y2Q5MDc1YmYzN2QpCistLS0KKyBwYW5l bC1wbHVnaW4vd2VhdGhlci1jb25maWcuYyAgfCAxOCArKysrKysrKysrKysrKysrLS0KKyBwYW5l bC1wbHVnaW4vd2VhdGhlci1wYXJzZXJzLmMgfCAyNiArKysrKysrKysrKystLS0tLS0tLS0tLS0t LQorIHBhbmVsLXBsdWdpbi93ZWF0aGVyLXBhcnNlcnMuaCB8ICA3ICsrKy0tLS0KKyBwYW5lbC1w bHVnaW4vd2VhdGhlci1zZWFyY2guYyAgfCAxOCArKysrKysrKysrKysrKysrLS0KKyBwYW5lbC1w bHVnaW4vd2VhdGhlci5jICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysrKysrKysrLS0tLQor IDUgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9wYW5lbC1wbHVnaW4vd2VhdGhlci1jb25maWcuYyBiL3BhbmVsLXBsdWdpbi93 ZWF0aGVyLWNvbmZpZy5jCitpbmRleCBkZTQxMjNlLi5mMjZjZTc3IDEwMDY0NAorLS0tIGEvcGFu ZWwtcGx1Z2luL3dlYXRoZXItY29uZmlnLmMKKysrKyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLWNv bmZpZy5jCitAQCAtMjQxLDkgKzI0MSwxNiBAQCBjYl9sb29rdXBfYWx0aXR1ZGUoU291cFNlc3Np b24gKnNlc3Npb24sCisgICAgIHhmY2V3ZWF0aGVyX2RpYWxvZyAqZGlhbG9nID0gKHhmY2V3ZWF0 aGVyX2RpYWxvZyAqKSB1c2VyX2RhdGE7CisgICAgIHhtbF9hbHRpdHVkZSAqYWx0aXR1ZGU7Cisg ICAgIGdkb3VibGUgYWx0ID0gMDsKKysgICAgY29uc3QgZ2NoYXIgKmJvZHkgPSBOVUxMOworKyAg ICBnc2l6ZSBsZW4gPSAwOworKworKyAgICBpZiAoR19MSUtFTFkobXNnLT5yZXNwb25zZV9ib2R5 ICYmIG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSkpIHsKKysgICAgICAgIGJvZHkgPSBtc2ctPnJl c3BvbnNlX2JvZHktPmRhdGE7CisrICAgICAgICBsZW4gPSBtc2ctPnJlc3BvbnNlX2JvZHktPmxl bmd0aDsKKysgICAgfQorIAorICAgICBhbHRpdHVkZSA9ICh4bWxfYWx0aXR1ZGUgKikKKy0gICAg ICAgIHBhcnNlX3htbF9kb2N1bWVudChtc2csIChYbWxQYXJzZUZ1bmMpIHBhcnNlX2FsdGl0dWRl KTsKKysgICAgICAgIHBhcnNlX3htbF9kb2N1bWVudChib2R5LCBsZW4sIChYbWxQYXJzZUZ1bmMp IHBhcnNlX2FsdGl0dWRlKTsKKyAKKyAgICAgaWYgKGFsdGl0dWRlKSB7CisgICAgICAgICBhbHQg PSBzdHJpbmdfdG9fZG91YmxlKGFsdGl0dWRlLT5hbHRpdHVkZSwgLTk5OTkpOworQEAgLTI2NSw5 ICsyNzIsMTYgQEAgY2JfbG9va3VwX3RpbWV6b25lKFNvdXBTZXNzaW9uICpzZXNzaW9uLAorIHsK KyAgICAgeGZjZXdlYXRoZXJfZGlhbG9nICpkaWFsb2cgPSAoeGZjZXdlYXRoZXJfZGlhbG9nICop IHVzZXJfZGF0YTsKKyAgICAgeG1sX3RpbWV6b25lICp4bWxfdHo7CisrICAgIGNvbnN0IGdjaGFy ICpib2R5ID0gTlVMTDsKKysgICAgZ3NpemUgbGVuID0gMDsKKysKKysgICAgaWYgKEdfTElLRUxZ KG1zZy0+cmVzcG9uc2VfYm9keSAmJiBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEpKSB7CisrICAg ICAgICBib2R5ID0gbXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhOworKyAgICAgICAgbGVuID0gbXNn LT5yZXNwb25zZV9ib2R5LT5sZW5ndGg7CisrICAgIH0KKyAKKyAgICAgeG1sX3R6ID0gKHhtbF90 aW1lem9uZSAqKQorLSAgICAgICAgcGFyc2VfeG1sX2RvY3VtZW50KG1zZywgKFhtbFBhcnNlRnVu YykgcGFyc2VfdGltZXpvbmUpOworKyAgICAgICAgcGFyc2VfeG1sX2RvY3VtZW50KGJvZHksIGxl biwgKFhtbFBhcnNlRnVuYykgcGFyc2VfdGltZXpvbmUpOworICAgICB3ZWF0aGVyX2R1bXAod2Vh dGhlcl9kdW1wX3RpbWV6b25lLCB4bWxfdHopOworIAorICAgICBpZiAoeG1sX3R6KSB7CitkaWZm IC0tZ2l0IGEvcGFuZWwtcGx1Z2luL3dlYXRoZXItcGFyc2Vycy5jIGIvcGFuZWwtcGx1Z2luL3dl YXRoZXItcGFyc2Vycy5jCitpbmRleCAwZWE1Nzc0Li40MjJkNjRlIDEwMDY0NAorLS0tIGEvcGFu ZWwtcGx1Z2luL3dlYXRoZXItcGFyc2Vycy5jCisrKysgYi9wYW5lbC1wbHVnaW4vd2VhdGhlci1w YXJzZXJzLmMKK0BAIC03OTEsMzAgKzc5MSwyOCBAQCBwYXJzZV90aW1lem9uZSh4bWxOb2RlICpj dXJfbm9kZSkKKyAKKyAKKyB4bWxEb2MgKgorLWdldF94bWxfZG9jdW1lbnQoU291cE1lc3NhZ2Ug Km1zZykKKytnZXRfeG1sX2RvY3VtZW50KGNvbnN0IGdjaGFyICpkYXRhLCBnc2l6ZSBsZW4pCisg eworLSAgICBpZiAoR19MSUtFTFkobXNnICYmIG1zZy0+cmVzcG9uc2VfYm9keSAmJiBtc2ctPnJl c3BvbnNlX2JvZHktPmRhdGEpKSB7CistICAgICAgICBpZiAoZ191dGY4X3ZhbGlkYXRlKG1zZy0+ cmVzcG9uc2VfYm9keS0+ZGF0YSwgLTEsIE5VTEwpKSB7CisrICAgIGlmIChHX0xJS0VMWShkYXRh ICYmIGxlbikpIHsKKysgICAgICAgIGlmIChnX3V0ZjhfdmFsaWRhdGUoZGF0YSwgbGVuLCBOVUxM KSkgeworICAgICAgICAgICAgIC8qIGZvcmNlIHBhcnNpbmcgYXMgVVRGLTgsIHRoZSBYTUwgZW5j b2RpbmcgaGVhZGVyIG1heSBsaWUgKi8KKy0gICAgICAgICAgICByZXR1cm4geG1sUmVhZE1lbW9y eShtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RybGVuKG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSksCisrICAgICAgICAgICAgcmV0 dXJuIHhtbFJlYWRNZW1vcnkoZGF0YSwgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5VTEwsICJVVEYtOCIsIDApOworICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAg ICByZXR1cm4geG1sUGFyc2VNZW1vcnkobXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4obXNnLT5yZXNwb25zZV9ib2R5LT5k YXRhKSk7CisrICAgICAgICAgICAgcmV0dXJuIHhtbFBhcnNlTWVtb3J5KGRhdGEsIGxlbik7Cisg ICAgICAgICB9CisgICAgIH0KKyAgICAgcmV0dXJuIE5VTEw7CisgfQorIAorIGpzb25fb2JqZWN0 ICoKKy1nZXRfanNvbl90cmVlKFNvdXBNZXNzYWdlICptc2cpCisrZ2V0X2pzb25fdHJlZShjb25z dCBnY2hhciAqZGF0YSwgZ3NpemUgbGVuKQorIHsKKyAgICAganNvbl9vYmplY3QgKnJlcz1OVUxM OworICAgICBlbnVtIGpzb25fdG9rZW5lcl9lcnJvciBlcnI7CisgCistICAgIGlmIChHX0xJS0VM WShtc2cgJiYgbXNnLT5yZXNwb25zZV9ib2R5ICYmIG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSkp IHsKKy0gICAgICAgIHJlcyA9ICBqc29uX3Rva2VuZXJfcGFyc2VfdmVyYm9zZShtc2ctPnJlc3Bv bnNlX2JvZHktPmRhdGEsICZlcnIpOworKyAgICBpZiAoR19MSUtFTFkoZGF0YSAmJiBsZW4pKSB7 CisrICAgICAgICByZXMgPSAganNvbl90b2tlbmVyX3BhcnNlX3ZlcmJvc2UoZGF0YSwgJmVycik7 CisgICAgICAgICBpZiAoZXJyICE9IGpzb25fdG9rZW5lcl9zdWNjZXNzKQorICAgICAgICAgICAg IGdfd2FybmluZygiZ2V0X2pzb25fdHJlZTogZXJyb3IgPSVkIixlcnIpOworICAgICB9CitAQCAt ODIyLDE4ICs4MjAsMTggQEAgZ2V0X2pzb25fdHJlZShTb3VwTWVzc2FnZSAqbXNnKQorIH0KKyAK KyBncG9pbnRlcgorLXBhcnNlX3htbF9kb2N1bWVudChTb3VwTWVzc2FnZSAqbXNnLAorK3BhcnNl X3htbF9kb2N1bWVudChjb25zdCBnY2hhciAqZGF0YSwgZ3NpemUgbGVuLAorICAgICAgICAgICAg ICAgICAgICBYbWxQYXJzZUZ1bmMgcGFyc2VfZnVuYykKKyB7CisgICAgIHhtbERvYyAqZG9jOwor ICAgICB4bWxOb2RlICpyb290X25vZGU7CisgICAgIGdwb2ludGVyIHVzZXJfZGF0YSA9IE5VTEw7 CisgCistICAgIGdfYXNzZXJ0KG1zZyAhPSBOVUxMKTsKKy0gICAgaWYgKEdfVU5MSUtFTFkobXNn ID09IE5VTEwpKQorKyAgICBnX2Fzc2VydChkYXRhICE9IE5VTEwpOworKyAgICBpZiAoR19VTkxJ S0VMWShkYXRhID09IE5VTEwgfHwgbGVuID09IDApKQorICAgICAgICAgcmV0dXJuIE5VTEw7Cisg CistICAgIGRvYyA9IGdldF94bWxfZG9jdW1lbnQobXNnKTsKKysgICAgZG9jID0gZ2V0X3htbF9k b2N1bWVudChkYXRhLCBsZW4pOworICAgICBpZiAoR19MSUtFTFkoZG9jKSkgeworICAgICAgICAg cm9vdF9ub2RlID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICAgICAgIGlmIChHX0xJ S0VMWShyb290X25vZGUpKQorZGlmZiAtLWdpdCBhL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXBhcnNl cnMuaCBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXBhcnNlcnMuaAoraW5kZXggMzM2MDRmMi4uZTI3 NGIwNCAxMDA2NDQKKy0tLSBhL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXBhcnNlcnMuaAorKysrIGIv cGFuZWwtcGx1Z2luL3dlYXRoZXItcGFyc2Vycy5oCitAQCAtMjIsNyArMjIsNiBAQAorICNpbmNs dWRlIDxnbGliLmg+CisgI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyAjaW5jbHVkZSA8bGlieG1sL3Bh cnNlci5oPgorLSNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyAjaW5jbHVkZSA8anNvbi1jL2pz b25fdG9rZW5lci5oPgorIAorICNkZWZpbmUgREFUQV9FWFBJUllfVElNRSAoMjQgKiAzNjAwKQor QEAgLTE1NywxMSArMTU2LDExIEBAIHhtbF9hc3RybyAqZ2V0X2FzdHJvKGNvbnN0IEdBcnJheSAq YXN0cm9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVfdCBkYXlfdCwKKyAg ICAgICAgICAgICAgICAgICAgICBndWludCAqaW5kZXgpOworIAorLXhtbERvYyAqZ2V0X3htbF9k b2N1bWVudChTb3VwTWVzc2FnZSAqbXNnKTsKKyt4bWxEb2MgKmdldF94bWxfZG9jdW1lbnQoY29u c3QgZ2NoYXIgKmRhdGEsIGdzaXplIGxlbik7CisgCistanNvbl9vYmplY3QgKmdldF9qc29uX3Ry ZWUoU291cE1lc3NhZ2UgKm1zZyk7CisranNvbl9vYmplY3QgKmdldF9qc29uX3RyZWUoY29uc3Qg Z2NoYXIgKmRhdGEsIGdzaXplIGxlbik7CisgCistZ3BvaW50ZXIgcGFyc2VfeG1sX2RvY3VtZW50 KFNvdXBNZXNzYWdlICptc2csCisrZ3BvaW50ZXIgcGFyc2VfeG1sX2RvY3VtZW50KGNvbnN0IGdj aGFyICpkYXRhLCBnc2l6ZSBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhtbFBh cnNlRnVuYyBwYXJzZV9mdW5jKTsKKyAKKyB4bWxfYXN0cm8gKnhtbF9hc3Ryb19jb3B5KGNvbnN0 IHhtbF9hc3RybyAqc3JjKTsKK2RpZmYgLS1naXQgYS9wYW5lbC1wbHVnaW4vd2VhdGhlci1zZWFy Y2guYyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXNlYXJjaC5jCitpbmRleCAwZTc0ZTdlLi4wYjAy ZWJlIDEwMDY0NAorLS0tIGEvcGFuZWwtcGx1Z2luL3dlYXRoZXItc2VhcmNoLmMKKysrKyBiL3Bh bmVsLXBsdWdpbi93ZWF0aGVyLXNlYXJjaC5jCitAQCAtODcsMTAgKzg3LDE3IEBAIGNiX3NlYXJj aGRvbmUoU291cFNlc3Npb24gKnNlc3Npb24sCisgICAgIGdpbnQgZm91bmQgPSAwOworICAgICBH dGtUcmVlSXRlciBpdGVyOworICAgICBHdGtUcmVlU2VsZWN0aW9uICpzZWxlY3Rpb247CisrICAg IGNvbnN0IGdjaGFyICpib2R5ID0gTlVMTDsKKysgICAgZ3NpemUgbGVuID0gMDsKKysKKysgICAg aWYgKEdfTElLRUxZKG1zZy0+cmVzcG9uc2VfYm9keSAmJiBtc2ctPnJlc3BvbnNlX2JvZHktPmRh dGEpKSB7CisrICAgICAgICBib2R5ID0gbXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhOworKyAgICAg ICAgbGVuID0gbXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGg7CisrICAgIH0KKyAKKyAgICAgZ3Rr X3dpZGdldF9zZXRfc2Vuc2l0aXZlKGRpYWxvZy0+ZmluZF9idXR0b24sIFRSVUUpOworIAorLSAg ICBkb2MgPSBnZXRfeG1sX2RvY3VtZW50KG1zZyk7CisrICAgIGRvYyA9IGdldF94bWxfZG9jdW1l bnQoYm9keSwgbGVuKTsKKyAgICAgaWYgKCFkb2MpCisgICAgICAgICByZXR1cm47CisgCitAQCAt Mzc1LDkgKzM4MiwxNiBAQCBjYl9nZW9sb2NhdGlvbihTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwKKyAg ICAgeG1sX2dlb2xvY2F0aW9uICpnZW87CisgICAgIGdjaGFyICpmdWxsX2xvYzsKKyAgICAgdW5p dHNfY29uZmlnICp1bml0czsKKysgICAgY29uc3QgZ2NoYXIgKmJvZHkgPSBOVUxMOworKyAgICBn c2l6ZSBsZW4gPSAwOworKworKyAgICBpZiAoR19MSUtFTFkobXNnLT5yZXNwb25zZV9ib2R5ICYm IG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSkpIHsKKysgICAgICAgIGJvZHkgPSBtc2ctPnJlc3Bv bnNlX2JvZHktPmRhdGE7CisrICAgICAgICBsZW4gPSBtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0 aDsKKysgICAgfQorIAorICAgICBnZW8gPSAoeG1sX2dlb2xvY2F0aW9uICopCistICAgICAgICBw YXJzZV94bWxfZG9jdW1lbnQobXNnLCAoWG1sUGFyc2VGdW5jKSBwYXJzZV9nZW9sb2NhdGlvbik7 CisrICAgICAgICBwYXJzZV94bWxfZG9jdW1lbnQoYm9keSwgbGVuLCAoWG1sUGFyc2VGdW5jKSBw YXJzZV9nZW9sb2NhdGlvbik7CisgICAgIHdlYXRoZXJfZHVtcCh3ZWF0aGVyX2R1bXBfZ2VvbG9j YXRpb24sIGdlbyk7CisgCisgICAgIGlmICghZ2VvKSB7CitkaWZmIC0tZ2l0IGEvcGFuZWwtcGx1 Z2luL3dlYXRoZXIuYyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLmMKK2luZGV4IDBhNDgzZmEuLmNm NzgzZjYgMTAwNjQ0CistLS0gYS9wYW5lbC1wbHVnaW4vd2VhdGhlci5jCisrKysgYi9wYW5lbC1w bHVnaW4vd2VhdGhlci5jCitAQCAtNDkzLDExICs0OTMsMTcgQEAgY2JfYXN0cm9fdXBkYXRlX3N1 bihTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwKKyAgICAgcGx1Z2luX2RhdGEgKmRhdGEgPSB1c2VyX2Rh dGE7CisgICAgIGpzb25fb2JqZWN0ICpqc29uX3RyZWU7CisgICAgIHRpbWVfdCBub3dfdDsKKysg ICAgY29uc3QgZ2NoYXIgKmJvZHkgPSBOVUxMOworKyAgICBnc2l6ZSBsZW4gPSAwOworIAorICAg ICBkYXRhLT5tc2dfcGFyc2UtPnN1bl9tc2dfcHJvY2Vzc2VkKys7CisgICAgIGRhdGEtPmFzdHJv X3VwZGF0ZS0+aHR0cF9zdGF0dXNfY29kZSA9IG1zZy0+c3RhdHVzX2NvZGU7CisgICAgIGlmICgo bXNnLT5zdGF0dXNfY29kZSA9PSAyMDAgfHwgbXNnLT5zdGF0dXNfY29kZSA9PSAyMDMpKSB7Cist ICAgICAgICBqc29uX3RyZWUgPSBnZXRfanNvbl90cmVlKG1zZyk7CisrICAgICAgICBpZiAoR19M SUtFTFkobXNnLT5yZXNwb25zZV9ib2R5ICYmIG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSkpIHsK KysgICAgICAgICAgICBib2R5ID0gbXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhOworKyAgICAgICAg ICAgIGxlbiA9IG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoOworKyAgICAgICAgfQorKyAgICAg ICAganNvbl90cmVlID0gZ2V0X2pzb25fdHJlZShib2R5LCBsZW4pOworICAgICAgICAgaWYgKEdf TElLRUxZKGpzb25fdHJlZSkpIHsKKyAgICAgICAgICAgICBpZiAoIXBhcnNlX2FzdHJvZGF0YV9z dW4oanNvbl90cmVlLCBkYXRhLT5hc3Ryb2RhdGEpKSAgeworICAgICAgICAgICAgICAgICBkYXRh LT5tc2dfcGFyc2UtPnN1bl9tc2dfcGFyc2VfZXJyb3IrKzsKK0BAIC01NTIsMTEgKzU1OCwxNyBA QCBjYl9hc3Ryb191cGRhdGVfbW9vbihTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwKKyAgICAgcGx1Z2lu X2RhdGEgKmRhdGEgPSB1c2VyX2RhdGE7CisgICAgIGpzb25fb2JqZWN0ICpqc29uX3RyZWU7Cisg ICAgIHRpbWVfdCBub3dfdDsKKysgICAgY29uc3QgZ2NoYXIgKmJvZHkgPSBOVUxMOworKyAgICBn c2l6ZSBsZW4gPSAwOworIAorICAgICBkYXRhLT5tc2dfcGFyc2UtPm1vb25fbXNnX3Byb2Nlc3Nl ZCsrOworICAgICBkYXRhLT5hc3Ryb191cGRhdGUtPmh0dHBfc3RhdHVzX2NvZGUgPSBtc2ctPnN0 YXR1c19jb2RlOworICAgICBpZiAoKG1zZy0+c3RhdHVzX2NvZGUgPT0gMjAwIHx8IG1zZy0+c3Rh dHVzX2NvZGUgPT0gMjAzKSkgeworLSAgICAgICAganNvbl90cmVlID0gZ2V0X2pzb25fdHJlZSht c2cpOworKyAgICAgICAgaWYgKEdfTElLRUxZKG1zZy0+cmVzcG9uc2VfYm9keSAmJiBtc2ctPnJl c3BvbnNlX2JvZHktPmRhdGEpKSB7CisrICAgICAgICAgICAgYm9keSA9IG1zZy0+cmVzcG9uc2Vf Ym9keS0+ZGF0YTsKKysgICAgICAgICAgICBsZW4gPSBtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0 aDsKKysgICAgICAgIH0KKysgICAgICAgIGpzb25fdHJlZSA9IGdldF9qc29uX3RyZWUoYm9keSwg bGVuKTsKKyAgICAgICAgIGlmIChHX0xJS0VMWShqc29uX3RyZWUpKSB7CisgICAgICAgICAgICAg aWYgKCFwYXJzZV9hc3Ryb2RhdGFfbW9vbihqc29uX3RyZWUsIGRhdGEtPmFzdHJvZGF0YSkpICB7 CisgICAgICAgICAgICAgICAgIGRhdGEtPm1zZ19wYXJzZS0+bW9vbl9tc2dfcGFyc2VfZXJyb3Ir KzsKK0BAIC02MTcsMTcgKzYyOSwyMyBAQCBjYl93ZWF0aGVyX3VwZGF0ZShTb3VwU2Vzc2lvbiAq c2Vzc2lvbiwKKyAgICAgICAgICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEpCisgeworICAg ICBwbHVnaW5fZGF0YSAqZGF0YSA9IHVzZXJfZGF0YTsKKy0gICAgeG1sRG9jICpkb2M7CisrICAg IHhtbERvYyAqZG9jID0gTlVMTDsKKyAgICAgeG1sTm9kZSAqcm9vdF9ub2RlOworICAgICB0aW1l X3Qgbm93X3Q7CisgICAgIGdib29sZWFuIHBhcnNpbmdfZXJyb3IgPSBUUlVFOworKyAgICBjb25z dCBnY2hhciAqYm9keSA9IE5VTEw7CisrICAgIGdzaXplIGxlbiA9IDA7CisgCisgICAgIHdlYXRo ZXJfZGVidWcoIlByb2Nlc3NpbmcgZG93bmxvYWRlZCB3ZWF0aGVyIGRhdGEuIik7CisgICAgIHRp bWUoJm5vd190KTsKKyAgICAgZGF0YS0+d2VhdGhlcl91cGRhdGUtPmF0dGVtcHQrKzsKKyAgICAg ZGF0YS0+d2VhdGhlcl91cGRhdGUtPmh0dHBfc3RhdHVzX2NvZGUgPSBtc2ctPnN0YXR1c19jb2Rl OworICAgICBpZiAobXNnLT5zdGF0dXNfY29kZSA9PSAyMDAgfHwgbXNnLT5zdGF0dXNfY29kZSA9 PSAyMDMpIHsKKy0gICAgICAgIGRvYyA9IGdldF94bWxfZG9jdW1lbnQobXNnKTsKKysgICAgICAg IGlmIChHX0xJS0VMWShtc2ctPnJlc3BvbnNlX2JvZHkgJiYgbXNnLT5yZXNwb25zZV9ib2R5LT5k YXRhKSkgeworKyAgICAgICAgICAgIGJvZHkgPSBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGE7Cisr ICAgICAgICAgICAgbGVuID0gbXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGg7CisrICAgICAgICB9 CisrICAgICAgICBkb2MgPSBnZXRfeG1sX2RvY3VtZW50KGJvZHksIGxlbik7CisgICAgICAgICBp ZiAoR19MSUtFTFkoZG9jKSkgeworICAgICAgICAgICAgIHJvb3Rfbm9kZSA9IHhtbERvY0dldFJv b3RFbGVtZW50KGRvYyk7CisgICAgICAgICAgICAgaWYgKEdfTElLRUxZKHJvb3Rfbm9kZSkpCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3hmY2U0LXdlYXRoZXItcGx1Z2luL3BhdGNoZXMvMDAwOC1saWJz b3VwLVBvcnQtdG8tbGlic291cC0zLjAucGF0Y2ggYi9zcmNwa2dzL3hmY2U0LXdlYXRoZXItcGx1 Z2luL3BhdGNoZXMvMDAwOC1saWJzb3VwLVBvcnQtdG8tbGlic291cC0zLjAucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLjBjZGU2MGVhNzBjYzZlCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy94ZmNlNC13ZWF0aGVyLXBsdWdpbi9wYXRjaGVzLzAwMDgt bGlic291cC1Qb3J0LXRvLWxpYnNvdXAtMy4wLnBhdGNoCkBAIC0wLDAgKzEsNTU3IEBACitGcm9t IGUyMTQ2M2ExNDc2MjI4MDNhZWQ1ZmFhOTgwNTMzMWI4OWEyNTUwMzggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiDEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21h aWwuY29tPgorRGF0ZTogRnJpLCAxIE1hciAyMDI0IDIxOjU2OjM0ICswNzAwCitTdWJqZWN0OiBb UEFUQ0ggOC84XSBsaWJzb3VwOiBQb3J0IHRvIGxpYnNvdXAtMy4wCisKKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IGVkYWIxMjQ3Yzg0YzZkMjgyNGQxNWFmNjU4M2Y0ZGE1OTdiMDM2YzMpCist LS0KKyBSRUFETUUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KKyBjb25maWd1cmUu YWMuaW4gICAgICAgICAgICAgICAgfCAgIDIgKy0KKyBwYW5lbC1wbHVnaW4vd2VhdGhlci1jb25m aWcuYyAgfCAgMzIgKysrKy0tLQorIHBhbmVsLXBsdWdpbi93ZWF0aGVyLXNlYXJjaC5jICB8ICAz NyArKysrKy0tLQorIHBhbmVsLXBsdWdpbi93ZWF0aGVyLXN1bW1hcnkuYyB8ICAyMyArKystLQor IHBhbmVsLXBsdWdpbi93ZWF0aGVyLmMgICAgICAgICB8IDE1NyArKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0KKyBwYW5lbC1wbHVnaW4vd2VhdGhlci5oICAgICAgICAgfCAgIDIgKy0K KyA3IGZpbGVzIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspLCAxMjUgZGVsZXRpb25zKC0pCisK Ky0tLSBhL1JFQURNRQorKysrIGIvUkVBRE1FCitAQCAtMTUyLDEwICsxNTIsMTAgQEAgdXNpbmcg Z2RiIG9yIGFueSBvdGhlciBkZWJ1Z2dlciBzaG91bGQgdAorIEJVSUxEIFJFUVVJUkVNRU5UUyBB TkQgREVQRU5ERU5DSUVTCisgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyBUbyBiZSBhYmxlIHRvIGJ1aWxk IHRoZSBwbHVnaW4sIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzIGhhdmUgdG8gYmUKKy1tZXQg aW4gYWRkaXRpb24gdG8gdGhvc2Ugb2YgWEZDRS00LjE0OgorK21ldCBpbiBhZGRpdGlvbiB0byB0 aG9zZSBvZiBYRkNFLTQuMTY6CisgCisgKiA+PWxpYnhtbC0yLjQuMAorLSogPj1saWJzb3VwLTIu NDIuMAorKyogPj1saWJzb3VwLTMuMC4wCisgKiA+PXVwb3dlci0wLjkuMCAob3B0aW9uYWwpCisg CisgWW91IG1pZ2h0IGFsc28gbmVlZCBkZXZlbG9wZXIgbGlicmFyaWVzIG5lY2Vzc2FyeSBmb3Ig YnVpbGRpbmcgb3RoZXIKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitA QCAtNzYsNyArNzYsNyBAQCBYRFRfQ0hFQ0tfUEFDS0FHRShbTElCWEZDRTRVSV0sIFtsaWJ4ZmNl CisgWERUX0NIRUNLX1BBQ0tBR0UoW0xJQlhGQ0U0UEFORUxdLCBbbGlieGZjZTRwYW5lbC0yLjBd LCBbNC4xMi4wXSkKKyBYRFRfQ0hFQ0tfUEFDS0FHRShbWEZDT05GXSwgW2xpYnhmY29uZi0wXSwg WzQuMTIuMF0pCisgWERUX0NIRUNLX1BBQ0tBR0UoW0xJQlhNTF0sIFtsaWJ4bWwtMi4wXSwgWzIu NC4wXSkKKy1YRFRfQ0hFQ0tfUEFDS0FHRShbU09VUF0sIFtsaWJzb3VwLTIuNF0sIFsyLjQyLjBd KQorK1hEVF9DSEVDS19QQUNLQUdFKFtTT1VQXSwgW2xpYnNvdXAtMy4wXSwgWzMuMC4wXSkKKyBY RFRfQ0hFQ0tfUEFDS0FHRShbSlNPTl0sIFtqc29uLWNdLCBbMC4xMy4xXSkKKyBYRFRfQ0hFQ0tf T1BUSU9OQUxfUEFDS0FHRShbVVBPV0VSX0dMSUJdLCBbdXBvd2VyLWdsaWJdLCBbMC45LjBdLCBb dXBvd2VyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXBvd2VyIGZvciBhZGFwdGlu ZyB1cGRhdGUgaW50ZXJ2YWwgdG8gcG93ZXIgc3RhdGVdKQorLS0tIGEvcGFuZWwtcGx1Z2luL3dl YXRoZXItY29uZmlnLmMKKysrKyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLWNvbmZpZy5jCitAQCAt MjM0LDggKzIzNCw4IEBAIHNhbml0aXplX2xvY2F0aW9uX25hbWUoY29uc3QgZ2NoYXIgKmxvY2EK KyAKKyAKKyBzdGF0aWMgdm9pZAorLWNiX2xvb2t1cF9hbHRpdHVkZShTb3VwU2Vzc2lvbiAqc2Vz c2lvbiwKKy0gICAgICAgICAgICAgICAgICAgU291cE1lc3NhZ2UgKm1zZywKKytjYl9sb29rdXBf YWx0aXR1ZGUoR09iamVjdCAqc291cmNlLAorKyAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1 bHQgKnJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKQorIHsK KyAgICAgeGZjZXdlYXRoZXJfZGlhbG9nICpkaWFsb2cgPSAoeGZjZXdlYXRoZXJfZGlhbG9nICop IHVzZXJfZGF0YTsKK0BAIC0yNDMsMTEgKzI0MywxNCBAQCBjYl9sb29rdXBfYWx0aXR1ZGUoU291 cFNlc3Npb24gKnNlc3Npb24sCisgICAgIGdkb3VibGUgYWx0ID0gMDsKKyAgICAgY29uc3QgZ2No YXIgKmJvZHkgPSBOVUxMOworICAgICBnc2l6ZSBsZW4gPSAwOworLQorLSAgICBpZiAoR19MSUtF TFkobXNnLT5yZXNwb25zZV9ib2R5ICYmIG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSkpIHsKKy0g ICAgICAgIGJvZHkgPSBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGE7CistICAgICAgICBsZW4gPSBt c2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aDsKKy0gICAgfQorKyAgICBHRXJyb3IgKmVycm9yID0g TlVMTDsKKysgICAgR0J5dGVzICpyZXNwb25zZSA9CisrICAgICAgICBzb3VwX3Nlc3Npb25fc2Vu ZF9hbmRfcmVhZF9maW5pc2goU09VUF9TRVNTSU9OKHNvdXJjZSksIHJlc3VsdCwgJmVycm9yKTsK KysKKysgICAgaWYgKEdfVU5MSUtFTFkoZXJyb3IpKQorKyAgICAgICAgZ19lcnJvcl9mcmVlKGVy cm9yKTsKKysgICAgZWxzZQorKyAgICAgICAgYm9keSA9IGdfYnl0ZXNfZ2V0X2RhdGEocmVzcG9u c2UsICZsZW4pOworIAorICAgICBhbHRpdHVkZSA9ICh4bWxfYWx0aXR1ZGUgKikKKyAgICAgICAg IHBhcnNlX3htbF9kb2N1bWVudChib2R5LCBsZW4sIChYbWxQYXJzZUZ1bmMpIHBhcnNlX2FsdGl0 dWRlKTsKK0BAIC0yNjIsMjMgKzI2NSwyNyBAQCBjYl9sb29rdXBfYWx0aXR1ZGUoU291cFNlc3Np b24gKnNlc3Npb24sCisgICAgIGVsc2UgaWYgKGRpYWxvZy0+cGQtPnVuaXRzLT5hbHRpdHVkZSA9 PSBGRUVUKQorICAgICAgICAgYWx0IC89IDAuMzA0ODsKKyAgICAgZ3RrX3NwaW5fYnV0dG9uX3Nl dF92YWx1ZShHVEtfU1BJTl9CVVRUT04oZGlhbG9nLT5zcGluX2FsdCksIGFsdCk7CisrICAgIGdf Ynl0ZXNfdW5yZWYocmVzcG9uc2UpOworIH0KKyAKKyAKKyBzdGF0aWMgdm9pZAorLWNiX2xvb2t1 cF90aW1lem9uZShTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwKKy0gICAgICAgICAgICAgICAgICAgU291 cE1lc3NhZ2UgKm1zZywKKytjYl9sb29rdXBfdGltZXpvbmUoR09iamVjdCAqc291cmNlLAorKyAg ICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgKnJlc3VsdCwKKyAgICAgICAgICAgICAgICAg ICAgZ3BvaW50ZXIgdXNlcl9kYXRhKQorIHsKKyAgICAgeGZjZXdlYXRoZXJfZGlhbG9nICpkaWFs b2cgPSAoeGZjZXdlYXRoZXJfZGlhbG9nICopIHVzZXJfZGF0YTsKKyAgICAgeG1sX3RpbWV6b25l ICp4bWxfdHo7CisgICAgIGNvbnN0IGdjaGFyICpib2R5ID0gTlVMTDsKKyAgICAgZ3NpemUgbGVu ID0gMDsKKy0KKy0gICAgaWYgKEdfTElLRUxZKG1zZy0+cmVzcG9uc2VfYm9keSAmJiBtc2ctPnJl c3BvbnNlX2JvZHktPmRhdGEpKSB7CistICAgICAgICBib2R5ID0gbXNnLT5yZXNwb25zZV9ib2R5 LT5kYXRhOworLSAgICAgICAgbGVuID0gbXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGg7CistICAg IH0KKysgICAgR0Vycm9yICplcnJvciA9IE5VTEw7CisrICAgIEdCeXRlcyAqcmVzcG9uc2UgPQor KyAgICAgICAgc291cF9zZXNzaW9uX3NlbmRfYW5kX3JlYWRfZmluaXNoKFNPVVBfU0VTU0lPTihz b3VyY2UpLCByZXN1bHQsICZlcnJvcik7CisrCisrICAgIGlmIChHX1VOTElLRUxZKGVycm9yKSkK KysgICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7CisrICAgIGVsc2UKKysgICAgICAgIGJvZHkg PSBnX2J5dGVzX2dldF9kYXRhKHJlc3BvbnNlLCAmbGVuKTsKKyAKKyAgICAgeG1sX3R6ID0gKHht bF90aW1lem9uZSAqKQorICAgICAgICAgcGFyc2VfeG1sX2RvY3VtZW50KGJvZHksIGxlbiwgKFht bFBhcnNlRnVuYykgcGFyc2VfdGltZXpvbmUpOworQEAgLTI5MCw2ICsyOTcsNyBAQCBjYl9sb29r dXBfdGltZXpvbmUoU291cFNlc3Npb24gKnNlc3Npb24sCisgICAgICAgICB4bWxfdGltZXpvbmVf ZnJlZSh4bWxfdHopOworICAgICB9IGVsc2UKKyAgICAgICAgIGd0a19lbnRyeV9zZXRfdGV4dChH VEtfRU5UUlkoZGlhbG9nLT50ZXh0X3RpbWV6b25lKSwgIiIpOworKyAgICBnX2J5dGVzX3VucmVm KHJlc3BvbnNlKTsKKyB9CisgCisgCistLS0gYS9wYW5lbC1wbHVnaW4vd2VhdGhlci1zZWFyY2gu YworKysrIGIvcGFuZWwtcGx1Z2luL3dlYXRoZXItc2VhcmNoLmMKK0BAIC03Niw4ICs3Niw4IEBA IHNhbml0aXplX3N0cihjb25zdCBnY2hhciAqc3RyKQorIAorIAorIHN0YXRpYyB2b2lkCistY2Jf c2VhcmNoZG9uZShTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwKKy0gICAgICAgICAgICAgIFNvdXBNZXNz YWdlICptc2csCisrY2Jfc2VhcmNoZG9uZShHT2JqZWN0ICpzb3VyY2UsCisrICAgICAgICAgICAg ICBHQXN5bmNSZXN1bHQgKnJlc3VsdCwKKyAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0 YSkKKyB7CisgICAgIHNlYXJjaF9kaWFsb2cgKmRpYWxvZyA9IChzZWFyY2hfZGlhbG9nICopIHVz ZXJfZGF0YTsKK0BAIC04OSwxNyArODksMjIgQEAgY2Jfc2VhcmNoZG9uZShTb3VwU2Vzc2lvbiAq c2Vzc2lvbiwKKyAgICAgR3RrVHJlZVNlbGVjdGlvbiAqc2VsZWN0aW9uOworICAgICBjb25zdCBn Y2hhciAqYm9keSA9IE5VTEw7CisgICAgIGdzaXplIGxlbiA9IDA7CistCistICAgIGlmIChHX0xJ S0VMWShtc2ctPnJlc3BvbnNlX2JvZHkgJiYgbXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhKSkgewor LSAgICAgICAgYm9keSA9IG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YTsKKy0gICAgICAgIGxlbiA9 IG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoOworLSAgICB9CisrICAgIEdFcnJvciAqZXJyb3Ig PSBOVUxMOworKyAgICBHQnl0ZXMgKnJlc3BvbnNlID0KKysgICAgICAgIHNvdXBfc2Vzc2lvbl9z ZW5kX2FuZF9yZWFkX2ZpbmlzaChTT1VQX1NFU1NJT04oc291cmNlKSwgcmVzdWx0LCAmZXJyb3Ip OworKworKyAgICBpZiAoR19VTkxJS0VMWShlcnJvcikpCisrICAgICAgICBnX2Vycm9yX2ZyZWUo ZXJyb3IpOworKyAgICBlbHNlCisrICAgICAgICBib2R5ID0gZ19ieXRlc19nZXRfZGF0YShyZXNw b25zZSwgJmxlbik7CisgCisgICAgIGd0a193aWRnZXRfc2V0X3NlbnNpdGl2ZShkaWFsb2ctPmZp bmRfYnV0dG9uLCBUUlVFKTsKKyAKKyAgICAgZG9jID0gZ2V0X3htbF9kb2N1bWVudChib2R5LCBs ZW4pOworLSAgICBpZiAoIWRvYykKKysgICAgaWYgKCFkb2MpIHsKKysgICAgICAgIGdfYnl0ZXNf dW5yZWYocmVzcG9uc2UpOworICAgICAgICAgcmV0dXJuOworKyAgICB9CisgCisgICAgIGN1cl9u b2RlID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICAgaWYgKGN1cl9ub2RlKSB7CitA QCAtMTMzLDYgKzEzOCw3IEBAIGNiX3NlYXJjaGRvbmUoU291cFNlc3Npb24gKnNlc3Npb24sCisg ICAgICAgICB9CisgCisgICAgIGd0a190cmVlX3ZpZXdfY29sdW1uX3NldF90aXRsZShkaWFsb2ct PmNvbHVtbiwgXygiUmVzdWx0cyIpKTsKKysgICAgZ19ieXRlc191bnJlZihyZXNwb25zZSk7Cisg fQorIAorIAorQEAgLTM3NCw4ICszODAsOCBAQCBnZXRfcHJlZmVycmVkX3VuaXRzKGNvbnN0IGdj aGFyICpjb3VudHJ5CisgCisgCisgc3RhdGljIHZvaWQKKy1jYl9nZW9sb2NhdGlvbihTb3VwU2Vz c2lvbiAqc2Vzc2lvbiwKKy0gICAgICAgICAgICAgICBTb3VwTWVzc2FnZSAqbXNnLAorK2NiX2dl b2xvY2F0aW9uKEdPYmplY3QgKnNvdXJjZSwKKysgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQg KnJlc3VsdCwKKyAgICAgICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEpCisgeworICAgICBn ZW9sb2NhdGlvbl9kYXRhICpkYXRhID0gKGdlb2xvY2F0aW9uX2RhdGEgKikgdXNlcl9kYXRhOwor QEAgLTM4NCwxMSArMzkwLDE0IEBAIGNiX2dlb2xvY2F0aW9uKFNvdXBTZXNzaW9uICpzZXNzaW9u LAorICAgICB1bml0c19jb25maWcgKnVuaXRzOworICAgICBjb25zdCBnY2hhciAqYm9keSA9IE5V TEw7CisgICAgIGdzaXplIGxlbiA9IDA7CistCistICAgIGlmIChHX0xJS0VMWShtc2ctPnJlc3Bv bnNlX2JvZHkgJiYgbXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhKSkgeworLSAgICAgICAgYm9keSA9 IG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YTsKKy0gICAgICAgIGxlbiA9IG1zZy0+cmVzcG9uc2Vf Ym9keS0+bGVuZ3RoOworLSAgICB9CisrICAgIEdFcnJvciAqZXJyb3IgPSBOVUxMOworKyAgICBH Qnl0ZXMgKnJlc3BvbnNlID0KKysgICAgICAgIHNvdXBfc2Vzc2lvbl9zZW5kX2FuZF9yZWFkX2Zp bmlzaChTT1VQX1NFU1NJT04oc291cmNlKSwgcmVzdWx0LCAmZXJyb3IpOworKworKyAgICBpZiAo R19VTkxJS0VMWShlcnJvcikpCisrICAgICAgICBnX2Vycm9yX2ZyZWUoZXJyb3IpOworKyAgICBl bHNlCisrICAgICAgICBib2R5ID0gZ19ieXRlc19nZXRfZGF0YShyZXNwb25zZSwgJmxlbik7Cisg CisgICAgIGdlbyA9ICh4bWxfZ2VvbG9jYXRpb24gKikKKyAgICAgICAgIHBhcnNlX3htbF9kb2N1 bWVudChib2R5LCBsZW4sIChYbWxQYXJzZUZ1bmMpIHBhcnNlX2dlb2xvY2F0aW9uKTsKK0BAIC0z OTYsNiArNDA1LDcgQEAgY2JfZ2VvbG9jYXRpb24oU291cFNlc3Npb24gKnNlc3Npb24sCisgCisg ICAgIGlmICghZ2VvKSB7CisgICAgICAgICBkYXRhLT5jYihOVUxMLCBOVUxMLCBOVUxMLCBOVUxM LCBkYXRhLT51c2VyX2RhdGEpOworKyAgICAgICAgZ19ieXRlc191bnJlZihyZXNwb25zZSk7Cisg ICAgICAgICBnX2ZyZWUoZGF0YSk7CisgICAgICAgICByZXR1cm47CisgICAgIH0KK0BAIC00MjYs NiArNDM2LDcgQEAgY2JfZ2VvbG9jYXRpb24oU291cFNlc3Npb24gKnNlc3Npb24sCisgICAgIGdf c2xpY2VfZnJlZSh1bml0c19jb25maWcsIHVuaXRzKTsKKyAgICAgeG1sX2dlb2xvY2F0aW9uX2Zy ZWUoZ2VvKTsKKyAgICAgZ19mcmVlKGZ1bGxfbG9jKTsKKysgICAgZ19ieXRlc191bnJlZihyZXNw b25zZSk7CisgICAgIGdfZnJlZShkYXRhKTsKKyB9CisgCistLS0gYS9wYW5lbC1wbHVnaW4vd2Vh dGhlci1zdW1tYXJ5LmMKKysrKyBiL3BhbmVsLXBsdWdpbi93ZWF0aGVyLXN1bW1hcnkuYworQEAg LTIzNCwyMiArMjM0LDI5IEBAIGdldF9sb2dvX3BhdGgodm9pZCkKKyAKKyAKKyBzdGF0aWMgdm9p ZAorLWxvZ29fZmV0Y2hlZChTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwKKy0gICAgICAgICAgICAgU291 cE1lc3NhZ2UgKm1zZywKKytsb2dvX2ZldGNoZWQoR09iamVjdCAqc291cmNlLAorKyAgICAgICAg ICAgICBHQXN5bmNSZXN1bHQgKnJlc3VsdCwKKyAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9k YXRhKQorIHsKKy0gICAgaWYgKG1zZyAmJiBtc2ctPnJlc3BvbnNlX2JvZHkgJiYgbXNnLT5yZXNw b25zZV9ib2R5LT5sZW5ndGggPiAwKSB7CisrICAgIEdFcnJvciAqZXJyb3IgPSBOVUxMOworKyAg ICBHQnl0ZXMgKnJlc3BvbnNlID0KKysgICAgICAgIHNvdXBfc2Vzc2lvbl9zZW5kX2FuZF9yZWFk X2ZpbmlzaChTT1VQX1NFU1NJT04oc291cmNlKSwgcmVzdWx0LCAmZXJyb3IpOworKworKyAgICBp ZiAoR19MSUtFTFkoZXJyb3IgPT0gTlVMTCkpIHsKKysgICAgICAgIGdzaXplIGxlbiA9IDA7Cisr ICAgICAgICBjb25zdCBnY2hhciAqYm9keSA9IGdfYnl0ZXNfZ2V0X2RhdGEocmVzcG9uc2UsICZs ZW4pOworICAgICAgICAgZ2NoYXIgKnBhdGggPSBnZXRfbG9nb19wYXRoKCk7CistICAgICAgICBH RXJyb3IgKmVycm9yID0gTlVMTDsKKyAgICAgICAgIEdka1BpeGJ1ZiAqcGl4YnVmID0gTlVMTDsK KyAgICAgICAgIGdpbnQgc2NhbGVfZmFjdG9yOworLSAgICAgICAgaWYgKCFnX2ZpbGVfc2V0X2Nv bnRlbnRzKHBhdGgsIG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCwgJmVycm9yKSkgewor KyAgICAgICAgZ19maWxlX3NldF9jb250ZW50cyhwYXRoLCBib2R5LCBsZW4sICZlcnJvcik7Cisr ICAgICAgICBnX2J5dGVzX3VucmVmKHJlc3BvbnNlKTsKKysgICAgICAgIGlmIChlcnJvcikgewor ICAgICAgICAgICAgIGdfd2FybmluZygiRXJyb3IgZG93bmxvYWRpbmcgbWV0Lm5vIGxvZ28gaW1h Z2UgdG8gJXMsICIKKyAgICAgICAgICAgICAgICAgICAgICAgInJlYXNvbjogJXNcbiIsIHBhdGgs CisgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID8gZXJyb3ItPm1lc3NhZ2UgOiAidW5rbm93 biIpOworICAgICAgICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7CisgICAgICAgICAgICAgZ19m cmVlKHBhdGgpOworKyAgICAgICAgICAgIGdfYnl0ZXNfdW5yZWYocmVzcG9uc2UpOworICAgICAg ICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAgICAgICAgIHNjYWxlX2ZhY3RvciA9IGd0a193 aWRnZXRfZ2V0X3NjYWxlX2ZhY3Rvcih1c2VyX2RhdGEpOworQEAgLTI2MSw3ICsyNjgsOSBAQCBs b2dvX2ZldGNoZWQoU291cFNlc3Npb24gKnNlc3Npb24sCisgICAgICAgICAgICAgY2Fpcm9fc3Vy ZmFjZV9kZXN0cm95KHN1cmZhY2UpOworICAgICAgICAgICAgIGdfb2JqZWN0X3VucmVmKHBpeGJ1 Zik7CisgICAgICAgICB9CistICAgIH0KKysgICAgICAgIGdfYnl0ZXNfdW5yZWYocmVzcG9uc2Up OworKyAgICB9IGVsc2UKKysgICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7CisgfQorIAorIAor LS0tIGEvcGFuZWwtcGx1Z2luL3dlYXRoZXIuYworKysrIGIvcGFuZWwtcGx1Z2luL3dlYXRoZXIu YworQEAgLTIzLDYgKzIzLDggQEAKKyAjaW5jbHVkZSA8c3RyaW5nLmg+CisgI2luY2x1ZGUgPHN5 cy9zdGF0Lmg+CisgCisrI2luY2x1ZGUgPGdsaWIuaD4KKysKKyAjaW5jbHVkZSA8bGlieGZjZTR1 dGlsL2xpYnhmY2U0dXRpbC5oPgorICNpbmNsdWRlIDxsaWJ4ZmNlNHVpL2xpYnhmY2U0dWkuaD4K KyAjaW5jbHVkZSA8eGZjb25mL3hmY29uZi5oPgorQEAgLTEwNiwxMyArMTA4LDE0IEBAIHN0YXRp YyB2b2lkIHNjaGVkdWxlX25leHRfd2FrZXVwKHBsdWdpbl8KKyB2b2lkCisgd2VhdGhlcl9odHRw X3F1ZXVlX3JlcXVlc3QoU291cFNlc3Npb24gKnNlc3Npb24sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgZ2NoYXIgKnVyaSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICBT b3VwU2Vzc2lvbkNhbGxiYWNrIGNhbGxiYWNrX2Z1bmMsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgR0FzeW5jUmVhZHlDYWxsYmFjayBjYWxsYmFja19mdW5jLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7CisgICAgIFNvdXBNZXNzYWdlICpt c2c7CisgCisgICAgIG1zZyA9IHNvdXBfbWVzc2FnZV9uZXcoIkdFVCIsIHVyaSk7CistICAgIHNv dXBfc2Vzc2lvbl9xdWV1ZV9tZXNzYWdlKHNlc3Npb24sIG1zZywgY2FsbGJhY2tfZnVuYywgdXNl cl9kYXRhKTsKKysgICAgc291cF9zZXNzaW9uX3NlbmRfYW5kX3JlYWRfYXN5bmMoc2Vzc2lvbiwg bXNnLCBHX1BSSU9SSVRZX0RFRkFVTFQsIE5VTEwsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNhbGxiYWNrX2Z1bmMsIHVzZXJfZGF0YSk7CisgfQorIAorIAorQEAgLTQ4 Niw4ICs0ODksOCBAQCBjYWxjX25leHRfZG93bmxvYWRfdGltZShjb25zdCB1cGRhdGVfaW5mCisg ICogUHJvY2VzcyBkb3dubG9hZGVkIHN1biBhc3RybyBkYXRhIGFuZCBzY2hlZHVsZSBuZXh0IGFz dHJvIHVwZGF0ZS4KKyAgKi8KKyBzdGF0aWMgdm9pZAorLWNiX2FzdHJvX3VwZGF0ZV9zdW4oU291 cFNlc3Npb24gKnNlc3Npb24sCistICAgICAgICAgICAgICAgICAgICBTb3VwTWVzc2FnZSAqbXNn LAorK2NiX2FzdHJvX3VwZGF0ZV9zdW4oR09iamVjdCAqc291cmNlLAorKyAgICAgICAgICAgICAg ICAgICAgR0FzeW5jUmVzdWx0ICpyZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICBncG9pbnRl ciB1c2VyX2RhdGEpCisgeworICAgICBwbHVnaW5fZGF0YSAqZGF0YSA9IHVzZXJfZGF0YTsKK0BA IC00OTUsMTQgKzQ5OCwxNyBAQCBjYl9hc3Ryb191cGRhdGVfc3VuKFNvdXBTZXNzaW9uICpzZXNz aW9uCisgICAgIHRpbWVfdCBub3dfdDsKKyAgICAgY29uc3QgZ2NoYXIgKmJvZHkgPSBOVUxMOwor ICAgICBnc2l6ZSBsZW4gPSAwOworKyAgICBTb3VwTWVzc2FnZSAqbXNnOworKyAgICBHRXJyb3Ig KmVycm9yID0gTlVMTDsKKysgICAgR0J5dGVzICpyZXNwb25zZTsKKyAKKysgICAgbXNnID0gc291 cF9zZXNzaW9uX2dldF9hc3luY19yZXN1bHRfbWVzc2FnZShTT1VQX1NFU1NJT04oc291cmNlKSwg cmVzdWx0KTsKKyAgICAgZGF0YS0+bXNnX3BhcnNlLT5zdW5fbXNnX3Byb2Nlc3NlZCsrOworLSAg ICBkYXRhLT5hc3Ryb191cGRhdGUtPmh0dHBfc3RhdHVzX2NvZGUgPSBtc2ctPnN0YXR1c19jb2Rl OworLSAgICBpZiAoKG1zZy0+c3RhdHVzX2NvZGUgPT0gMjAwIHx8IG1zZy0+c3RhdHVzX2NvZGUg PT0gMjAzKSkgeworLSAgICAgICAgaWYgKEdfTElLRUxZKG1zZy0+cmVzcG9uc2VfYm9keSAmJiBt c2ctPnJlc3BvbnNlX2JvZHktPmRhdGEpKSB7CistICAgICAgICAgICAgYm9keSA9IG1zZy0+cmVz cG9uc2VfYm9keS0+ZGF0YTsKKy0gICAgICAgICAgICBsZW4gPSBtc2ctPnJlc3BvbnNlX2JvZHkt Pmxlbmd0aDsKKy0gICAgICAgIH0KKysgICAgZGF0YS0+YXN0cm9fdXBkYXRlLT5odHRwX3N0YXR1 c19jb2RlID0gc291cF9tZXNzYWdlX2dldF9zdGF0dXMobXNnKTsKKysgICAgcmVzcG9uc2UgPSBz b3VwX3Nlc3Npb25fc2VuZF9hbmRfcmVhZF9maW5pc2goU09VUF9TRVNTSU9OKHNvdXJjZSksCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwg JmVycm9yKTsKKysgICAgaWYgKEdfTElLRUxZKGVycm9yID09IE5VTEwpKSB7CisrICAgICAgICBi b2R5ID0gZ19ieXRlc19nZXRfZGF0YShyZXNwb25zZSwgJmxlbik7CisgICAgICAgICBqc29uX3Ry ZWUgPSBnZXRfanNvbl90cmVlKGJvZHksIGxlbik7CisgICAgICAgICBpZiAoR19MSUtFTFkoanNv bl90cmVlKSkgeworICAgICAgICAgICAgIGlmICghcGFyc2VfYXN0cm9kYXRhX3N1bihqc29uX3Ry ZWUsIGRhdGEtPmFzdHJvZGF0YSkpICB7CitAQCAtNTE4LDE1ICs1MjQsMTIgQEAgY2JfYXN0cm9f dXBkYXRlX3N1bihTb3VwU2Vzc2lvbiAqc2Vzc2lvbgorICAgICAgICAgICAgIGdfd2FybmluZyhf KCJFcnJvciBwYXJzaW5nIHN1biBhc3Ryb25vbWljYWwgZGF0YSEiKSk7CisgICAgICAgICAgICAg d2VhdGhlcl9kZWJ1ZygiTm8ganNvbl90cmVlIik7CisgICAgICAgICB9CisrICAgICAgICBnX2J5 dGVzX3VucmVmKHJlc3BvbnNlKTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICAgIGRhdGEtPm1zZ19w YXJzZS0+aHR0cF9tc2dfZmFpbCA9IFRSVUU7CistI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwg NjQsIDApCistICAgICAgICBnX3dhcm5pbmdfb25jZSgiRG93bmxvYWQgb2Ygc3VuIGFzdHJvbm9t aWNhbCBkYXRhIGZhaWxlZCB3aXRoIEhUVFAgU3RhdHVzIENvZGUgJWQsIFJlYXNvbiBwaHJhc2U6 ICVzIiwKKy0gICAgICAgICAgICAgICAgICAgICAgIG1zZy0+c3RhdHVzX2NvZGUsIG1zZy0+cmVh c29uX3BocmFzZSk7CistI2Vsc2UKKy0gICAgICAgIGdfd2FybmluZygiRG93bmxvYWQgb2Ygc3Vu IGFzdHJvbm9taWNhbCBkYXRhIGZhaWxlZCB3aXRoIEhUVFAgU3RhdHVzIENvZGUgJWQsIFJlYXNv biBwaHJhc2U6ICVzIiwKKy0gICAgICAgICAgICAgICAgICBtc2ctPnN0YXR1c19jb2RlLCBtc2ct PnJlYXNvbl9waHJhc2UpOworLSNlbmRpZgorKyAgICAgICAgZ193YXJuaW5nX29uY2UoIkRvd25s b2FkIG9mIHN1biBhc3Ryb25vbWljYWwgZGF0YSBmYWlsZWQ6ICVzIiwKKysgICAgICAgICAgICAg ICAgICAgICAgIGVycm9yLT5tZXNzYWdlKTsKKysgICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7 CisgICAgIH0KKyAKKyAgICAgaWYgKGRhdGEtPm1zZ19wYXJzZS0+c3VuX21zZ19wcm9jZXNzZWQg PT0gQVNUUk9fRk9SRUNBU1RfREFZUykgeworQEAgLTU1MSw4ICs1NTQsOCBAQCBjYl9hc3Ryb191 cGRhdGVfc3VuKFNvdXBTZXNzaW9uICpzZXNzaW9uCisgICogUHJvY2VzcyBkb3dubG9hZGVkIG1v b24gYXN0cm8gZGF0YSBhbmQgc2NoZWR1bGUgbmV4dCBhc3RybyB1cGRhdGUuCisgICovCisgc3Rh dGljIHZvaWQKKy1jYl9hc3Ryb191cGRhdGVfbW9vbihTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwKKy0g ICAgICAgICAgICAgICAgICAgICBTb3VwTWVzc2FnZSAqbXNnLAorK2NiX2FzdHJvX3VwZGF0ZV9t b29uKEdPYmplY3QgKnNvdXJjZSwKKysgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQg KnJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEpCisgewor ICAgICBwbHVnaW5fZGF0YSAqZGF0YSA9IHVzZXJfZGF0YTsKK0BAIC01NjAsMTQgKzU2MywxNyBA QCBjYl9hc3Ryb191cGRhdGVfbW9vbihTb3VwU2Vzc2lvbiAqc2Vzc2lvCisgICAgIHRpbWVfdCBu b3dfdDsKKyAgICAgY29uc3QgZ2NoYXIgKmJvZHkgPSBOVUxMOworICAgICBnc2l6ZSBsZW4gPSAw OworKyAgICBTb3VwTWVzc2FnZSAqbXNnOworKyAgICBHRXJyb3IgKmVycm9yID0gTlVMTDsKKysg ICAgR0J5dGVzICpyZXNwb25zZTsKKyAKKysgICAgbXNnID0gc291cF9zZXNzaW9uX2dldF9hc3lu Y19yZXN1bHRfbWVzc2FnZShTT1VQX1NFU1NJT04oc291cmNlKSwgcmVzdWx0KTsKKyAgICAgZGF0 YS0+bXNnX3BhcnNlLT5tb29uX21zZ19wcm9jZXNzZWQrKzsKKy0gICAgZGF0YS0+YXN0cm9fdXBk YXRlLT5odHRwX3N0YXR1c19jb2RlID0gbXNnLT5zdGF0dXNfY29kZTsKKy0gICAgaWYgKChtc2ct PnN0YXR1c19jb2RlID09IDIwMCB8fCBtc2ctPnN0YXR1c19jb2RlID09IDIwMykpIHsKKy0gICAg ICAgIGlmIChHX0xJS0VMWShtc2ctPnJlc3BvbnNlX2JvZHkgJiYgbXNnLT5yZXNwb25zZV9ib2R5 LT5kYXRhKSkgeworLSAgICAgICAgICAgIGJvZHkgPSBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGE7 CistICAgICAgICAgICAgbGVuID0gbXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGg7CistICAgICAg ICB9CisrICAgIGRhdGEtPmFzdHJvX3VwZGF0ZS0+aHR0cF9zdGF0dXNfY29kZSA9IHNvdXBfbWVz c2FnZV9nZXRfc3RhdHVzKG1zZyk7CisrICAgIHJlc3BvbnNlID0gc291cF9zZXNzaW9uX3NlbmRf YW5kX3JlYWRfZmluaXNoKFNPVVBfU0VTU0lPTihzb3VyY2UpLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsICZlcnJvcik7CisrICAgIGlm IChHX0xJS0VMWShlcnJvciA9PSBOVUxMKSkgeworKyAgICAgICAgYm9keSA9IGdfYnl0ZXNfZ2V0 X2RhdGEocmVzcG9uc2UsICZsZW4pOworICAgICAgICAganNvbl90cmVlID0gZ2V0X2pzb25fdHJl ZShib2R5LCBsZW4pOworICAgICAgICAgaWYgKEdfTElLRUxZKGpzb25fdHJlZSkpIHsKKyAgICAg ICAgICAgICBpZiAoIXBhcnNlX2FzdHJvZGF0YV9tb29uKGpzb25fdHJlZSwgZGF0YS0+YXN0cm9k YXRhKSkgIHsKK0BAIC01ODMsMTUgKzU4OSwxMiBAQCBjYl9hc3Ryb191cGRhdGVfbW9vbihTb3Vw U2Vzc2lvbiAqc2Vzc2lvCisgICAgICAgICAgICAgZ193YXJuaW5nKF8oIkVycm9yIHBhcnNpbmcg bW9vbiBhc3Ryb25vbWljYWwgZGF0YSIpKTsKKyAgICAgICAgICAgICB3ZWF0aGVyX2RlYnVnKCJO byBqc29uX3RyZWUiKTsKKyAgICAgICAgIH0KKysgICAgICAgIGdfYnl0ZXNfdW5yZWYocmVzcG9u c2UpOworICAgICB9IGVsc2UgeworICAgICAgICAgZGF0YS0+bXNnX3BhcnNlLT5odHRwX21zZ19m YWlsID0gVFJVRTsKKy0jaWYgR0xJQl9DSEVDS19WRVJTSU9OICgyLCA2NCwgMCkKKy0gICAgICAg IGdfd2FybmluZ19vbmNlKCJEb3dubG9hZCBvZiBtb29uIGFzdHJvbm9taWNhbCBkYXRhIGZhaWxl ZCB3aXRoIEhUVFAgU3RhdHVzIENvZGUgJWQsIFJlYXNvbiBwaHJhc2U6ICVzIiwKKy0gICAgICAg ICAgICAgICAgICAgICAgIG1zZy0+c3RhdHVzX2NvZGUsIG1zZy0+cmVhc29uX3BocmFzZSk7Cist I2Vsc2UKKy0gICAgICAgIGdfd2FybmluZygiRG93bmxvYWQgb2YgbW9vbiBhc3Ryb25vbWljYWwg ZGF0YSBmYWlsZWQgd2l0aCBIVFRQIFN0YXR1cyBDb2RlICVkLCBSZWFzb24gcGhyYXNlOiAlcyIs CistICAgICAgICAgICAgICAgICAgbXNnLT5zdGF0dXNfY29kZSwgbXNnLT5yZWFzb25fcGhyYXNl KTsKKy0jZW5kaWYKKysgICAgICAgIGdfd2FybmluZ19vbmNlKCJEb3dubG9hZCBvZiBtb29uIGFz dHJvbm9taWNhbCBkYXRhIGZhaWxlZDogJXMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgZXJy b3ItPm1lc3NhZ2UpOworKyAgICAgICAgZ19lcnJvcl9mcmVlKGVycm9yKTsKKyAgICAgfQorIAor ICAgICBpZiAoZGF0YS0+bXNnX3BhcnNlLT5zdW5fbXNnX3Byb2Nlc3NlZCA9PSBBU1RST19GT1JF Q0FTVF9EQVlTICYmIGRhdGEtPm1zZ19wYXJzZS0+bW9vbl9tc2dfcHJvY2Vzc2VkID09IEFTVFJP X0ZPUkVDQVNUX0RBWVMpIHsKK0BAIC02MjQsOCArNjI3LDggQEAgY2JfYXN0cm9fdXBkYXRlX21v b24oU291cFNlc3Npb24gKnNlc3NpbworICAqIFByb2Nlc3MgZG93bmxvYWRlZCB3ZWF0aGVyIGRh dGEgYW5kIHNjaGVkdWxlIG5leHQgd2VhdGhlciB1cGRhdGUuCisgICovCisgc3RhdGljIHZvaWQK Ky1jYl93ZWF0aGVyX3VwZGF0ZShTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwKKy0gICAgICAgICAgICAg ICAgICBTb3VwTWVzc2FnZSAqbXNnLAorK2NiX3dlYXRoZXJfdXBkYXRlKEdPYmplY3QgKnNvdXJj ZSwKKysgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgKnJlc3VsdCwKKyAgICAgICAgICAg ICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEpCisgeworICAgICBwbHVnaW5fZGF0YSAqZGF0YSA9 IHVzZXJfZGF0YTsKK0BAIC02MzUsMTYgKzYzOCwxOSBAQCBjYl93ZWF0aGVyX3VwZGF0ZShTb3Vw U2Vzc2lvbiAqc2Vzc2lvbiwKKyAgICAgZ2Jvb2xlYW4gcGFyc2luZ19lcnJvciA9IFRSVUU7Cisg ICAgIGNvbnN0IGdjaGFyICpib2R5ID0gTlVMTDsKKyAgICAgZ3NpemUgbGVuID0gMDsKKysgICAg U291cE1lc3NhZ2UgKm1zZzsKKysgICAgR0Vycm9yICplcnJvciA9IE5VTEw7CisrICAgIEdCeXRl cyAqcmVzcG9uc2UgPSBOVUxMOworIAorICAgICB3ZWF0aGVyX2RlYnVnKCJQcm9jZXNzaW5nIGRv d25sb2FkZWQgd2VhdGhlciBkYXRhLiIpOworKyAgICBtc2cgPSBzb3VwX3Nlc3Npb25fZ2V0X2Fz eW5jX3Jlc3VsdF9tZXNzYWdlKFNPVVBfU0VTU0lPTihzb3VyY2UpLCByZXN1bHQpOworICAgICB0 aW1lKCZub3dfdCk7CisgICAgIGRhdGEtPndlYXRoZXJfdXBkYXRlLT5hdHRlbXB0Kys7CistICAg IGRhdGEtPndlYXRoZXJfdXBkYXRlLT5odHRwX3N0YXR1c19jb2RlID0gbXNnLT5zdGF0dXNfY29k ZTsKKy0gICAgaWYgKG1zZy0+c3RhdHVzX2NvZGUgPT0gMjAwIHx8IG1zZy0+c3RhdHVzX2NvZGUg PT0gMjAzKSB7CistICAgICAgICBpZiAoR19MSUtFTFkobXNnLT5yZXNwb25zZV9ib2R5ICYmIG1z Zy0+cmVzcG9uc2VfYm9keS0+ZGF0YSkpIHsKKy0gICAgICAgICAgICBib2R5ID0gbXNnLT5yZXNw b25zZV9ib2R5LT5kYXRhOworLSAgICAgICAgICAgIGxlbiA9IG1zZy0+cmVzcG9uc2VfYm9keS0+ bGVuZ3RoOworLSAgICAgICAgfQorKyAgICBkYXRhLT53ZWF0aGVyX3VwZGF0ZS0+aHR0cF9zdGF0 dXNfY29kZSA9IHNvdXBfbWVzc2FnZV9nZXRfc3RhdHVzKG1zZyk7CisrICAgIHJlc3BvbnNlID0g c291cF9zZXNzaW9uX3NlbmRfYW5kX3JlYWRfZmluaXNoKFNPVVBfU0VTU0lPTihzb3VyY2UpLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQs ICZlcnJvcik7CisrICAgIGlmIChHX0xJS0VMWShlcnJvciA9PSBOVUxMKSkgeworKyAgICAgICAg Ym9keSA9IGdfYnl0ZXNfZ2V0X2RhdGEocmVzcG9uc2UsICZsZW4pOworICAgICAgICAgZG9jID0g Z2V0X3htbF9kb2N1bWVudChib2R5LCBsZW4pOworICAgICAgICAgaWYgKEdfTElLRUxZKGRvYykp IHsKKyAgICAgICAgICAgICByb290X25vZGUgPSB4bWxEb2NHZXRSb290RWxlbWVudChkb2MpOwor QEAgLTY1NiwxMiArNjYyLDEzIEBAIGNiX3dlYXRoZXJfdXBkYXRlKFNvdXBTZXNzaW9uICpzZXNz aW9uLAorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgeG1sRnJlZURvYyhkb2MpOwor ICAgICAgICAgfQorKyAgICAgICAgZ19ieXRlc191bnJlZihyZXNwb25zZSk7CisgICAgICAgICBp ZiAocGFyc2luZ19lcnJvcikKKyAgICAgICAgICAgICBnX3dhcm5pbmcoIkVycm9yIHBhcnNpbmcg d2VhdGhlciBkYXRhISIpOworLSAgICB9IGVsc2UKKy0gICAgICAgIGdfd2FybmluZworLSAgICAg ICAgICAgICgiRG93bmxvYWQgb2Ygd2VhdGhlciBkYXRhIGZhaWxlZCB3aXRoIEhUVFAgU3RhdHVz IENvZGUgJWQsICIKKy0gICAgICAgICAgICAgIlJlYXNvbiBwaHJhc2U6ICVzIiwgbXNnLT5zdGF0 dXNfY29kZSwgbXNnLT5yZWFzb25fcGhyYXNlKTsKKysgICAgfSBlbHNlIHsKKysgICAgICAgIHdl YXRoZXJfZGVidWcoIkRvd25sb2FkIG9mIHdlYXRoZXIgZGF0YSBmYWlsZWQ6ICVzIiwgZXJyb3It Pm1lc3NhZ2UpOworKyAgICAgICAgZ19lcnJvcl9mcmVlKGVycm9yKTsKKysgICAgfQorICAgICBk YXRhLT53ZWF0aGVyX3VwZGF0ZS0+bmV4dCA9IGNhbGNfbmV4dF9kb3dubG9hZF90aW1lKGRhdGEt PndlYXRoZXJfdXBkYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5vd190KTsKKyAKK0BAIC0xNzE5LDMyICsxNzI2LDYgQEAgbWlf Y2xpY2soR3RrV2lkZ2V0ICp3aWRnZXQsCisgICAgIHVwZGF0ZV93ZWF0aGVyZGF0YV93aXRoX3Jl c2V0KGRhdGEpOworIH0KKyAKKy1zdGF0aWMgdm9pZAorLXByb3h5X2F1dGgoU291cFNlc3Npb24g KnNlc3Npb24sCistICAgICAgICAgICBTb3VwTWVzc2FnZSAqbXNnLAorLSAgICAgICAgICAgU291 cEF1dGggKmF1dGgsCistICAgICAgICAgICBnYm9vbGVhbiByZXRyeWluZywKKy0gICAgICAgICAg IGdwb2ludGVyIHVzZXJfZGF0YSkKKy17CistICAgIFNvdXBVUkkgKnNvdXBfcHJveHlfdXJpOwor LSAgICBjb25zdCBnY2hhciAqcHJveHlfdXJpOworLQorLSAgICBpZiAoIXJldHJ5aW5nKSB7Cist ICAgICAgICBpZiAobXNnLT5zdGF0dXNfY29kZSA9PSBTT1VQX1NUQVRVU19QUk9YWV9BVVRIRU5U SUNBVElPTl9SRVFVSVJFRCkgeworLSAgICAgICAgICAgIHByb3h5X3VyaSA9IGdfZ2V0ZW52KCJI VFRQX1BST1hZIik7CistICAgICAgICAgICAgaWYgKCFwcm94eV91cmkpCistICAgICAgICAgICAg ICAgIHByb3h5X3VyaSA9IGdfZ2V0ZW52KCJodHRwX3Byb3h5Iik7CistICAgICAgICAgICAgaWYg KHByb3h5X3VyaSkgeworLSAgICAgICAgICAgICAgICBzb3VwX3Byb3h5X3VyaSA9IHNvdXBfdXJp X25ldyhwcm94eV91cmkpOworLSAgICAgICAgICAgICAgICBzb3VwX2F1dGhfYXV0aGVudGljYXRl KGF1dGgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cF91cmlf Z2V0X3VzZXIoc291cF9wcm94eV91cmkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNvdXBfdXJpX2dldF9wYXNzd29yZChzb3VwX3Byb3h5X3VyaSkpOworLSAgICAg ICAgICAgICAgICBzb3VwX3VyaV9mcmVlKHNvdXBfcHJveHlfdXJpKTsKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH0KKy19CistCisgCisgI2lmZGVmIEhBVkVfVVBPV0VSX0dMSUIK KyBzdGF0aWMgdm9pZAorQEAgLTIwMzEsOSArMjAxMiwxMCBAQCBzdGF0aWMgcGx1Z2luX2RhdGEg KgorIHhmY2V3ZWF0aGVyX2NyZWF0ZV9jb250cm9sKFhmY2VQYW5lbFBsdWdpbiAqcGx1Z2luKQor IHsKKyAgICAgcGx1Z2luX2RhdGEgKmRhdGEgPSBnX3NsaWNlX25ldzAocGx1Z2luX2RhdGEpOwor LSAgICBTb3VwVVJJICpzb3VwX3Byb3h5X3VyaTsKKysgICAgR1Byb3h5UmVzb2x2ZXIgKnByb3h5 X3Jlc29sdmVyOworICAgICBjb25zdCBnY2hhciAqcHJveHlfdXJpOworLSAgICBjb25zdCBnY2hh ciAqcHJveHlfdXNlcjsKKysgICAgY29uc3QgZ2NoYXIgKm5vX3Byb3h5OworKyAgICBnY2hhciAq Km5vX3Byb3h5X2xzdCA9IE5VTEw7CisgICAgIEd0a1dpZGdldCAqcmVmcmVzaDsKKyAgICAgY2Fp cm9fc3VyZmFjZV90ICppY29uID0gTlVMTDsKKyAgICAgZGF0YV90eXBlcyBsYmw7CitAQCAtMjA3 MSwyOSArMjA1MywyNiBAQCB4ZmNld2VhdGhlcl9jcmVhdGVfY29udHJvbChYZmNlUGFuZWxQbHVn CisgCisgICAgIC8qIFNldHVwIHNlc3Npb24gZm9yIEhUVFAgY29ubmVjdGlvbnMgKi8KKyAgICAg ZGF0YS0+c2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9uZXcoKTsKKy0gICAgZ19vYmplY3Rfc2V0KGRh dGEtPnNlc3Npb24sIFNPVVBfU0VTU0lPTl9VU0VSX0FHRU5ULAorLSAgICAgICAgICAgICAgICAg UEFDS0FHRV9OQU1FICItIiBQQUNLQUdFX1ZFUlNJT04sIE5VTEwpOworLSAgICBnX29iamVjdF9z ZXQoZGF0YS0+c2Vzc2lvbiwgU09VUF9TRVNTSU9OX1RJTUVPVVQsCistICAgICAgICAgICAgICAg ICBDT05OX1RJTUVPVVQsIE5VTEwpOworKyAgICBzb3VwX3Nlc3Npb25fc2V0X3VzZXJfYWdlbnQo ZGF0YS0+c2Vzc2lvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBQ0tBR0Vf TkFNRSAiLSIgUEFDS0FHRV9WRVJTSU9OKTsKKysgICAgc291cF9zZXNzaW9uX3NldF90aW1lb3V0 KGRhdGEtPnNlc3Npb24sIENPTk5fVElNRU9VVCk7CisgCisgICAgIC8qIFNldCB0aGUgcHJveHkg VVJJIGZyb20gZW52aXJvbm1lbnQgKi8KKyAgICAgcHJveHlfdXJpID0gZ19nZXRlbnYoIkhUVFBf UFJPWFkiKTsKKyAgICAgaWYgKCFwcm94eV91cmkpCisgICAgICAgICBwcm94eV91cmkgPSBnX2dl dGVudigiaHR0cF9wcm94eSIpOworICAgICBpZiAocHJveHlfdXJpKSB7CistICAgICAgICBzb3Vw X3Byb3h5X3VyaSA9IHNvdXBfdXJpX25ldyhwcm94eV91cmkpOworLSAgICAgICAgZ19vYmplY3Rf c2V0KGRhdGEtPnNlc3Npb24sIFNPVVBfU0VTU0lPTl9QUk9YWV9VUkksCistICAgICAgICAgICAg ICAgICAgICAgc291cF9wcm94eV91cmksIE5VTEwpOworLQorLSAgICAgICAgLyogY2hlY2sgaWYg dXJpIGNvbnRhaW5zIGF1dGhlbnRpY2F0aW9uIGluZm8gKi8KKy0gICAgICAgIHByb3h5X3VzZXIg PSBzb3VwX3VyaV9nZXRfdXNlcihzb3VwX3Byb3h5X3VyaSk7CistICAgICAgICBpZiAocHJveHlf dXNlciAmJiBzdHJsZW4ocHJveHlfdXNlcikgPiAwKSB7CistICAgICAgICAgICAgZ19zaWduYWxf Y29ubmVjdChHX09CSkVDVChkYXRhLT5zZXNzaW9uKSwgImF1dGhlbnRpY2F0ZSIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLKHByb3h5X2F1dGgpLCBOVUxMKTsKKy0g ICAgICAgIH0KKy0KKy0gICAgICAgIHNvdXBfdXJpX2ZyZWUoc291cF9wcm94eV91cmkpOworKyAg ICAgICAgbm9fcHJveHkgPSBnX2dldGVudigibm9fcHJveHkiKTsKKysgICAgICAgIGlmICghbm9f cHJveHkpCisrICAgICAgICAgICAgbm9fcHJveHkgPSBnX2dldGVudigiTk9fUFJPWFkiKTsKKysg ICAgICAgIGlmIChub19wcm94eSkKKysgICAgICAgICAgICBub19wcm94eV9sc3QgPSBnX3N0cnNw bGl0KG5vX3Byb3h5LCAiLCIsIC0xKTsKKysgICAgICAgIHByb3h5X3Jlc29sdmVyID0gZ19zaW1w bGVfcHJveHlfcmVzb2x2ZXJfbmV3KHByb3h5X3VyaSwgbm9fcHJveHlfbHN0KTsKKysgICAgICAg IGdfc3RyZnJlZXYobm9fcHJveHlfbHN0KTsKKysgICAgICAgIHNvdXBfc2Vzc2lvbl9zZXRfcHJv eHlfcmVzb2x2ZXIoZGF0YS0+c2Vzc2lvbiwgcHJveHlfcmVzb2x2ZXIpOworKyAgICAgICAgZ19v YmplY3RfdW5yZWYocHJveHlfcmVzb2x2ZXIpOworICAgICB9CisrICAgIC8qIE90aGVyd2lzZSwg Z19wcm94eV9yZXNvbHZlcl9nZXRfZGVmYXVsdCgpIHdpbGwgYmUgdXNlZCAqLworIAorICAgICBk YXRhLT5zY3JvbGxib3ggPSBndGtfc2Nyb2xsYm94X25ldygpOworIAorLS0tIGEvcGFuZWwtcGx1 Z2luL3dlYXRoZXIuaAorKysrIGIvcGFuZWwtcGx1Z2luL3dlYXRoZXIuaAorQEAgLTE4NCw3ICsx ODQsNyBAQCBleHRlcm4gZ2Jvb2xlYW4gZGVidWdfbW9kZTsKKyAKKyB2b2lkIHdlYXRoZXJfaHR0 cF9xdWV1ZV9yZXF1ZXN0KFNvdXBTZXNzaW9uICpzZXNzaW9uLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnVyaSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNvdXBTZXNzaW9uQ2FsbGJhY2sgY2FsbGJhY2tfZnVuYywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1JlYWR5Q2FsbGJhY2sgY2FsbGJhY2tfZnVuYywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSk7Cisg Cisgdm9pZCBzY3JvbGxib3hfc2V0X3Zpc2libGUocGx1Z2luX2RhdGEgKmRhdGEpOwpkaWZmIC0t Z2l0IGEvc3JjcGtncy94ZmNlNC13ZWF0aGVyLXBsdWdpbi90ZW1wbGF0ZSBiL3NyY3BrZ3MveGZj ZTQtd2VhdGhlci1wbHVnaW4vdGVtcGxhdGUKaW5kZXggZWY0N2YwZjYxNDNhYTUuLjVmMGQ0ZTQ1 NzcyYmM4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3hmY2U0LXdlYXRoZXItcGx1Z2luL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MveGZjZTQtd2VhdGhlci1wbHVnaW4vdGVtcGxhdGUKQEAgLTEsMTYgKzEs MjEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3hmY2U0LXdlYXRoZXItcGx1Z2luJwogcGtnbmFt ZT14ZmNlNC13ZWF0aGVyLXBsdWdpbgotdmVyc2lvbj0wLjExLjAKK3ZlcnNpb249MC4xMS4xCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS13 aXRoLWxvY2FsZXMtZGlyPS91c3Ivc2hhcmUvbG9jYWxlIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGludGx0b29sIgotbWFrZWRlcGVuZHM9ImxpYnhmY2U0dWktZGV2ZWwgeGZjZTQtcGFu ZWwtZGV2ZWwgbGlieG1sMi1kZXZlbCBsaWJzb3VwLWRldmVsIHVwb3dlci1kZXZlbCIKK2hvc3Rt YWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCB4ZmNlNC1kZXYtdG9vbHMgZ2V0dGV4dC1k ZXZlbCIKK21ha2VkZXBlbmRzPSJsaWJ4ZmNlNHVpLWRldmVsIHhmY2U0LXBhbmVsLWRldmVsIGxp YnhtbDItZGV2ZWwgbGlic291cDMtZGV2ZWwKKyBqc29uLWMtZGV2ZWwgdXBvd2VyLWRldmVsIgog ZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIgogc2hvcnRfZGVzYz0iWEZDRSBwYW5lbCBwbHVn aW4gdG8gc2hvdyB0ZW1wZXJhdHVyZSBhbmQgd2VhdGhlciIKIG1haW50YWluZXI9Ik9ycGhhbmVk IDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9wYW5lbC1wbHVnaW5zL3hm Y2U0LXdlYXRoZXItcGx1Z2luIgogZGlzdGZpbGVzPSJodHRwczovL2FyY2hpdmUueGZjZS5vcmcv c3JjL3BhbmVsLXBsdWdpbnMvJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIuYnoyIgotY2hlY2tzdW09ZTMyNDJlYTk1MWQ1MWJjMGZkZWQxZDAyYTRmMWY2 NjJiZWMxNmExZmIxMGM4NTVmNzFiZGE2NTQxYTExNTNmYworY2hlY2tzdW09YTQ1MTQ2ZjlhMGRj ZGM5NWQxOTFjMDljNjRhZDI3OWFlMjg5Y2Y4ZjgxMWM0NDMzZTA4ZTMxYTY1Njg0NTIzOQogbGli MzJkaXNhYmxlZD15ZXMKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwlhdXRvcmVjb25mIC1maQorfQo= --===============0030451857600906585==--