From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Subject: [PATCH xf86-video-ati 13/21] Replace 'foo == NULL' with '!foo' Date: Wed, 11 Jul 2018 19:27:58 +0200 Message-ID: <20180711172806.22849-14-michel@daenzer.net> References: <20180711172806.22849-1-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180711172806.22849-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org RnJvbTogTWljaGVsIETDpG56ZXIgPG1pY2hlbC5kYWVuemVyQGFtZC5jb20+CgpTaG9ydGVyIGFu ZCBzd2VldGVyLiA6KQoKKFBvcnRlZCBmcm9tIGFtZGdwdSBjb21taXQgZThlNjg4ZjM4NTJmYjA2 YjBjMzRlZDViY2U0N2M5NDkzYmNkMTYxMykKClNpZ25lZC1vZmYtYnk6IE1pY2hlbCBEw6RuemVy IDxtaWNoZWwuZGFlbnplckBhbWQuY29tPgotLS0KIHNyYy9hdGkuYyAgICAgICAgICAgICAgICAg ICAgfCAgNCArKy0tCiBzcmMvZHJtbW9kZV9kaXNwbGF5LmMgICAgICAgIHwgIDggKysrKy0tLS0K IHNyYy9ldmVyZ3JlZW5fZXhhLmMgICAgICAgICAgfCAxMCArKysrKy0tLS0tCiBzcmMvcjYwMF9l eGEuYyAgICAgICAgICAgICAgIHwgMTAgKysrKystLS0tLQogc3JjL3JhZGVvbi5oICAgICAgICAg ICAgICAgICB8ICAyICstCiBzcmMvcmFkZW9uX2RyaTIuYyAgICAgICAgICAgIHwgMTIgKysrKysr LS0tLS0tCiBzcmMvcmFkZW9uX2V4YS5jICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9yYWRlb25f ZXhhX2Z1bmNzLmMgICAgICAgfCAgOCArKysrLS0tLQogc3JjL3JhZGVvbl9leGFfcmVuZGVyLmMg ICAgICB8ICA2ICsrKy0tLQogc3JjL3JhZGVvbl9nbGFtb3IuYyAgICAgICAgICB8ICAyICstCiBz cmMvcmFkZW9uX2dsYW1vcl93cmFwcGVycy5jIHwgIDQgKystLQogc3JjL3JhZGVvbl9rbXMuYyAg ICAgICAgICAgICB8IDI1ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIHNyYy9yYWRlb25fdGV4 dHVyZWRfdmlkZW8uYyAgfCAxMCArKysrKy0tLS0tCiBzcmMvcmFkZW9uX3ZpZGVvLmMgICAgICAg ICAgIHwgIDYgKysrLS0tCiAxNCBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA1NSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYXRpLmMgYi9zcmMvYXRpLmMKaW5kZXggNmZk MjE1Njc5Li44MzdiMDA5NDIgMTAwNjQ0Ci0tLSBhL3NyYy9hdGkuYworKysgYi9zcmMvYXRpLmMK QEAgLTEwOSw3ICsxMDksNyBAQCBhdGlfZGV2aWNlX2dldF9wcmltYXJ5KHZvaWQpCiAKICAgICBk ZXZpY2VfaXRlciA9IHBjaV9zbG90X21hdGNoX2l0ZXJhdG9yX2NyZWF0ZShOVUxMKTsKIAotICAg IHdoaWxlICgoZGV2aWNlID0gcGNpX2RldmljZV9uZXh0KGRldmljZV9pdGVyKSkgIT0gTlVMTCkg eworICAgIHdoaWxlICgoZGV2aWNlID0gcGNpX2RldmljZV9uZXh0KGRldmljZV9pdGVyKSkpIHsK ICAgICAgICAgaWYgKHhmODZJc1ByaW1hcnlQY2koZGV2aWNlKSkKICAgICAgICAgICAgIGJyZWFr OwogICAgIH0KQEAgLTEyOCw3ICsxMjgsNyBAQCBhdGlfZGV2aWNlX2dldF9pbmRleGVkKGludCBp bmRleCkKIAogICAgIGRldmljZV9pdGVyID0gcGNpX3Nsb3RfbWF0Y2hfaXRlcmF0b3JfY3JlYXRl KE5VTEwpOwogCi0gICAgd2hpbGUgKChkZXZpY2UgPSBwY2lfZGV2aWNlX25leHQoZGV2aWNlX2l0 ZXIpKSAhPSBOVUxMKSB7CisgICAgd2hpbGUgKChkZXZpY2UgPSBwY2lfZGV2aWNlX25leHQoZGV2 aWNlX2l0ZXIpKSkgewogICAgICAgICBpZiAoZGV2aWNlLT52ZW5kb3JfaWQgPT0gUENJX1ZFTkRP Ul9BVEkpIHsKICAgICAgICAgICAgIGlmIChjb3VudCA9PSBpbmRleCkKICAgICAgICAgICAgICAg ICByZXR1cm4gZGV2aWNlOwpkaWZmIC0tZ2l0IGEvc3JjL2RybW1vZGVfZGlzcGxheS5jIGIvc3Jj L2RybW1vZGVfZGlzcGxheS5jCmluZGV4IDAwM2ZlNTFlZi4uMzExN2I4ZjE4IDEwMDY0NAotLS0g YS9zcmMvZHJtbW9kZV9kaXNwbGF5LmMKKysrIGIvc3JjL2RybW1vZGVfZGlzcGxheS5jCkBAIC0z ODYsNyArMzg2LDcgQEAgY3JlYXRlX3BpeG1hcF9mb3JfZmJjb24oZHJtbW9kZV9wdHIgZHJtbW9k ZSwKIAkgICAgcmV0dXJuIHBpeG1hcDsKIAogCWZiY29uID0gZHJtTW9kZUdldEZCKHBSQURFT05F bnQtPmZkLCBmYmNvbl9pZCk7Ci0JaWYgKGZiY29uID09IE5VTEwpCisJaWYgKCFmYmNvbikKIAkJ cmV0dXJuIE5VTEw7CiAKIAlpZiAoZmJjb24tPmRlcHRoICE9IHBTY3JuLT5kZXB0aCB8fApAQCAt NDEwLDcgKzQxMCw3IEBAIGNyZWF0ZV9waXhtYXBfZm9yX2ZiY29uKGRybW1vZGVfcHRyIGRybW1v ZGUsCiAJYm8tPnJlZl9jb3VudCA9IDE7CiAKIAliby0+Ym8ucmFkZW9uID0gcmFkZW9uX2JvX29w ZW4oZHJtbW9kZS0+YnVmbWdyLCBmbGluay5uYW1lLCAwLCAwLCAwLCAwKTsKLQlpZiAoYm8gPT0g TlVMTCkgeworCWlmICghYm8pIHsKIAkJeGY4NkRydk1zZyhwU2Nybi0+c2NybkluZGV4LCBYX0VS Uk9SLAogCQkJICAgIkNvdWxkbid0IG9wZW4gQk8gZm9yIGZiY29uIGhhbmRsZVxuIik7CiAJCWdv dG8gb3V0X2ZyZWVfZmI7CkBAIC0xMzY1LDcgKzEzNjUsNyBAQCBkcm1tb2RlX2NydGNfaW5pdChT Y3JuSW5mb1B0ciBwU2NybiwgZHJtbW9kZV9wdHIgZHJtbW9kZSwgZHJtTW9kZVJlc1B0ciBtb2Rl X3JlcwogCVJBREVPTkluZm9QdHIgaW5mbyA9IFJBREVPTlBUUihwU2Nybik7CiAKIAljcnRjID0g eGY4NkNydGNDcmVhdGUocFNjcm4sICZpbmZvLT5kcm1tb2RlX2NydGNfZnVuY3MpOwotCWlmIChj cnRjID09IE5VTEwpCisJaWYgKCFjcnRjKQogCQlyZXR1cm4gMDsKIAogCWRybW1vZGVfY3J0YyA9 IHhuZmNhbGxvYyhzaXplb2YoZHJtbW9kZV9jcnRjX3ByaXZhdGVfcmVjKSwgMSk7CkBAIC0yMzE3 LDcgKzIzMTcsNyBAQCBkcm1tb2RlX3hmODZjcnRjX3Jlc2l6ZSAoU2NybkluZm9QdHIgc2Nybiwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogCQlpZiAocmFkZW9uX2JvX21hcChpbmZvLT5mcm9udF9i dWZmZXItPmJvLnJhZGVvbiwgMSkpCiAJCQlnb3RvIGZhaWw7CiAJCWZiX3NoYWRvdyA9IGNhbGxv YygxLCBwaXRjaCAqIHNjcm4tPnZpcnR1YWxZKTsKLQkJaWYgKGZiX3NoYWRvdyA9PSBOVUxMKQor CQlpZiAoIWZiX3NoYWRvdykKIAkJCWdvdG8gZmFpbDsKIAkJZnJlZShpbmZvLT5mYl9zaGFkb3cp OwogCQlpbmZvLT5mYl9zaGFkb3cgPSBmYl9zaGFkb3c7CmRpZmYgLS1naXQgYS9zcmMvZXZlcmdy ZWVuX2V4YS5jIGIvc3JjL2V2ZXJncmVlbl9leGEuYwppbmRleCBkYWU4YjZhMTUuLjQ0N2VkMjE3 YyAxMDA2NDQKLS0tIGEvc3JjL2V2ZXJncmVlbl9leGEuYworKysgYi9zcmMvZXZlcmdyZWVuX2V4 YS5jCkBAIC01MTEsNyArNTExLDcgQEAgRVZFUkdSRUVOUHJlcGFyZUNvcHkoUGl4bWFwUHRyIHBT cmMsICAgUGl4bWFwUHRyIHBEc3QsCiAJYWNjZWxfc3RhdGUtPmNvcHlfYXJlYV9ibyA9IHJhZGVv bl9ib19vcGVuKGluZm8tPmJ1Zm1nciwgMCwgc2l6ZSwgMCwKIAkJCQkJCSAgIFJBREVPTl9HRU1f RE9NQUlOX1ZSQU0sCiAJCQkJCQkgICAwKTsKLQlpZiAoYWNjZWxfc3RhdGUtPmNvcHlfYXJlYV9i byA9PSBOVUxMKQorCWlmICghYWNjZWxfc3RhdGUtPmNvcHlfYXJlYV9ibykKIAkgICAgUkFERU9O X0ZBTExCQUNLKCgidGVtcCBjb3B5IHN1cmZhY2UgYWxsb2MgZmFpbGVkXG4iKSk7CiAKIAlyYWRl b25fY3Nfc3BhY2VfYWRkX3BlcnNpc3RlbnRfYm8oaW5mby0+Y3MsIGFjY2VsX3N0YXRlLT5jb3B5 X2FyZWFfYm8sCkBAIC0xNjkzLDcgKzE2OTMsNyBAQCBFVkVSR1JFRU5VcGxvYWRUb1NjcmVlbihQ aXhtYXBQdHIgcERzdCwgaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgsCiAgICAgYmFzZV9hbGln biA9IGRybW1vZGVfZ2V0X2Jhc2VfYWxpZ24ocFNjcm4sIChicHAgLyA4KSwgMCk7CiAgICAgc2l6 ZSA9IHNjcmF0Y2hfcGl0Y2ggKiBoZWlnaHQgKiAoYnBwIC8gOCk7CiAgICAgc2NyYXRjaCA9IHJh ZGVvbl9ib19vcGVuKGluZm8tPmJ1Zm1nciwgMCwgc2l6ZSwgYmFzZV9hbGlnbiwgUkFERU9OX0dF TV9ET01BSU5fR1RULCAwKTsKLSAgICBpZiAoc2NyYXRjaCA9PSBOVUxMKSB7CisgICAgaWYgKCFz Y3JhdGNoKSB7CiAJZ290byBjb3B5OwogICAgIH0KIApAQCAtMTgyMSw3ICsxODIxLDcgQEAgRVZF UkdSRUVORG93bmxvYWRGcm9tU2NyZWVuKFBpeG1hcFB0ciBwU3JjLCBpbnQgeCwgaW50IHksIGlu dCB3LAogICAgIGJhc2VfYWxpZ24gPSBkcm1tb2RlX2dldF9iYXNlX2FsaWduKHBTY3JuLCAoYnBw IC8gOCksIDApOwogICAgIHNpemUgPSBzY3JhdGNoX3BpdGNoICogaGVpZ2h0ICogKGJwcCAvIDgp OwogICAgIHNjcmF0Y2ggPSByYWRlb25fYm9fb3BlbihpbmZvLT5idWZtZ3IsIDAsIHNpemUsIGJh c2VfYWxpZ24sIFJBREVPTl9HRU1fRE9NQUlOX0dUVCwgMCk7Ci0gICAgaWYgKHNjcmF0Y2ggPT0g TlVMTCkgeworICAgIGlmICghc2NyYXRjaCkgewogCWdvdG8gY29weTsKICAgICB9CiAgICAgcmFk ZW9uX2NzX3NwYWNlX3Jlc2V0X2JvcyhpbmZvLT5jcyk7CkBAIC0xOTI3LDcgKzE5MjcsNyBAQCBF VkVSR1JFRU5BbGxvY1NoYWRlcnMoU2NybkluZm9QdHIgcFNjcm4sIFNjcmVlblB0ciBwU2NyZWVu KQogCiAgICAgYWNjZWxfc3RhdGUtPnNoYWRlcnNfYm8gPSByYWRlb25fYm9fb3BlbihpbmZvLT5i dWZtZ3IsIDAsIHNpemUsIDAsCiAJCQkJCSAgICAgUkFERU9OX0dFTV9ET01BSU5fVlJBTSwgMCk7 Ci0gICAgaWYgKGFjY2VsX3N0YXRlLT5zaGFkZXJzX2JvID09IE5VTEwpIHsKKyAgICBpZiAoIWFj Y2VsX3N0YXRlLT5zaGFkZXJzX2JvKSB7CiAJRXJyb3JGKCJBbGxvY2F0aW5nIHNoYWRlciBmYWls ZWRcbiIpOwogCXJldHVybiBGQUxTRTsKICAgICB9CkBAIC0yMDQ2LDcgKzIwNDYsNyBAQCBFVkVS R1JFRU5EcmF3SW5pdChTY3JlZW5QdHIgcFNjcmVlbikKICAgICBTY3JuSW5mb1B0ciBwU2NybiA9 ICB4Zjg2U2NyZWVuVG9TY3JuKHBTY3JlZW4pOwogICAgIFJBREVPTkluZm9QdHIgaW5mbyAgID0g UkFERU9OUFRSKHBTY3JuKTsKIAotICAgIGlmIChpbmZvLT5hY2NlbF9zdGF0ZS0+ZXhhID09IE5V TEwpIHsKKyAgICBpZiAoIWluZm8tPmFjY2VsX3N0YXRlLT5leGEpIHsKIAl4Zjg2RHJ2TXNnKHBT Y3JlZW4tPm15TnVtLCBYX0VSUk9SLCAiTWVtb3J5IG1hcCBub3Qgc2V0IHVwXG4iKTsKIAlyZXR1 cm4gRkFMU0U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvc3JjL3I2MDBfZXhhLmMgYi9zcmMvcjYwMF9l eGEuYwppbmRleCBiZDgyNGM4NzcuLjk5ZGIwYzQwYiAxMDA2NDQKLS0tIGEvc3JjL3I2MDBfZXhh LmMKKysrIGIvc3JjL3I2MDBfZXhhLmMKQEAgLTU3NSw3ICs1NzUsNyBAQCBSNjAwUHJlcGFyZUNv cHkoUGl4bWFwUHRyIHBTcmMsICAgUGl4bWFwUHRyIHBEc3QsCiAJYWNjZWxfc3RhdGUtPmNvcHlf YXJlYV9ibyA9IHJhZGVvbl9ib19vcGVuKGluZm8tPmJ1Zm1nciwgMCwgc2l6ZSwgYWxpZ24sCiAJ CQkJCQkgICBSQURFT05fR0VNX0RPTUFJTl9WUkFNLAogCQkJCQkJICAgMCk7Ci0JaWYgKGFjY2Vs X3N0YXRlLT5jb3B5X2FyZWFfYm8gPT0gTlVMTCkKKwlpZiAoIWFjY2VsX3N0YXRlLT5jb3B5X2Fy ZWFfYm8pCiAJICAgIFJBREVPTl9GQUxMQkFDSygoInRlbXAgY29weSBzdXJmYWNlIGFsbG9jIGZh aWxlZFxuIikpOwogCQogCXJhZGVvbl9jc19zcGFjZV9hZGRfcGVyc2lzdGVudF9ibyhpbmZvLT5j cywgYWNjZWxfc3RhdGUtPmNvcHlfYXJlYV9ibywKQEAgLTE3MjMsNyArMTcyMyw3IEBAIFI2MDBV cGxvYWRUb1NjcmVlbkNTKFBpeG1hcFB0ciBwRHN0LCBpbnQgeCwgaW50IHksIGludCB3LCBpbnQg aCwKICAgICBiYXNlX2FsaWduID0gZHJtbW9kZV9nZXRfYmFzZV9hbGlnbihwU2NybiwgKGJwcCAv IDgpLCAwKTsKICAgICBzaXplID0gc2NyYXRjaF9waXRjaCAqIGhlaWdodCAqIChicHAgLyA4KTsK ICAgICBzY3JhdGNoID0gcmFkZW9uX2JvX29wZW4oaW5mby0+YnVmbWdyLCAwLCBzaXplLCBiYXNl X2FsaWduLCBSQURFT05fR0VNX0RPTUFJTl9HVFQsIDApOwotICAgIGlmIChzY3JhdGNoID09IE5V TEwpIHsKKyAgICBpZiAoIXNjcmF0Y2gpIHsKIAlnb3RvIGNvcHk7CiAgICAgfQogCkBAIC0xODQ3 LDcgKzE4NDcsNyBAQCBSNjAwRG93bmxvYWRGcm9tU2NyZWVuQ1MoUGl4bWFwUHRyIHBTcmMsIGlu dCB4LCBpbnQgeSwgaW50IHcsCiAgICAgYmFzZV9hbGlnbiA9IGRybW1vZGVfZ2V0X2Jhc2VfYWxp Z24ocFNjcm4sIChicHAgLyA4KSwgMCk7CiAgICAgc2l6ZSA9IHNjcmF0Y2hfcGl0Y2ggKiBoZWln aHQgKiAoYnBwIC8gOCk7CiAgICAgc2NyYXRjaCA9IHJhZGVvbl9ib19vcGVuKGluZm8tPmJ1Zm1n ciwgMCwgc2l6ZSwgYmFzZV9hbGlnbiwgUkFERU9OX0dFTV9ET01BSU5fR1RULCAwKTsKLSAgICBp ZiAoc2NyYXRjaCA9PSBOVUxMKSB7CisgICAgaWYgKCFzY3JhdGNoKSB7CiAJZ290byBjb3B5Owog ICAgIH0KICAgICByYWRlb25fY3Nfc3BhY2VfcmVzZXRfYm9zKGluZm8tPmNzKTsKQEAgLTE5NjAs NyArMTk2MCw3IEBAIFI2MDBBbGxvY1NoYWRlcnMoU2NybkluZm9QdHIgcFNjcm4sIFNjcmVlblB0 ciBwU2NyZWVuKQogCiAgICAgYWNjZWxfc3RhdGUtPnNoYWRlcnNfYm8gPSByYWRlb25fYm9fb3Bl bihpbmZvLT5idWZtZ3IsIDAsIHNpemUsIDAsCiAJCQkJCSAgICAgUkFERU9OX0dFTV9ET01BSU5f VlJBTSwgMCk7Ci0gICAgaWYgKGFjY2VsX3N0YXRlLT5zaGFkZXJzX2JvID09IE5VTEwpIHsKKyAg ICBpZiAoIWFjY2VsX3N0YXRlLT5zaGFkZXJzX2JvKSB7CiAgICAgICAgIEVycm9yRigiQWxsb2Nh dGluZyBzaGFkZXIgZmFpbGVkXG4iKTsKIAlyZXR1cm4gRkFMU0U7CiAgICAgfQpAQCAtMjAyNSw3 ICsyMDI1LDcgQEAgUjYwMERyYXdJbml0KFNjcmVlblB0ciBwU2NyZWVuKQogICAgIFNjcm5JbmZv UHRyIHBTY3JuID0gIHhmODZTY3JlZW5Ub1Njcm4ocFNjcmVlbik7CiAgICAgUkFERU9OSW5mb1B0 ciBpbmZvICAgPSBSQURFT05QVFIocFNjcm4pOwogCi0gICAgaWYgKGluZm8tPmFjY2VsX3N0YXRl LT5leGEgPT0gTlVMTCkgeworICAgIGlmICghaW5mby0+YWNjZWxfc3RhdGUtPmV4YSkgewogCXhm ODZEcnZNc2cocFNjcmVlbi0+bXlOdW0sIFhfRVJST1IsICJNZW1vcnkgbWFwIG5vdCBzZXQgdXBc biIpOwogCXJldHVybiBGQUxTRTsKICAgICB9CmRpZmYgLS1naXQgYS9zcmMvcmFkZW9uLmggYi9z cmMvcmFkZW9uLmgKaW5kZXggMmJjZmE0MWIxLi40NTBjNjlhYTggMTAwNjQ0Ci0tLSBhL3NyYy9y YWRlb24uaAorKysgYi9zcmMvcmFkZW9uLmgKQEAgLTcyNiw3ICs3MjYsNyBAQCBzdGF0aWMgaW5s aW5lIEJvb2wgcmFkZW9uX3NldF9waXhtYXBfYm8oUGl4bWFwUHRyIHBQaXgsIHN0cnVjdCByYWRl b25fYnVmZmVyICpibwogCXN0cnVjdCByYWRlb25fcGl4bWFwICpwcml2OwogCiAJcHJpdiA9IHJh ZGVvbl9nZXRfcGl4bWFwX3ByaXZhdGUocFBpeCk7Ci0JaWYgKHByaXYgPT0gTlVMTCAmJiBibyA9 PSBOVUxMKQorCWlmICghcHJpdiAmJiAhYm8pCiAJICAgIHJldHVybiBUUlVFOwogCiAJaWYgKHBy aXYpIHsKZGlmZiAtLWdpdCBhL3NyYy9yYWRlb25fZHJpMi5jIGIvc3JjL3JhZGVvbl9kcmkyLmMK aW5kZXggNzBhZDFkOTJhLi5jMzZlMDZmMjIgMTAwNjQ0Ci0tLSBhL3NyYy9yYWRlb25fZHJpMi5j CisrKyBiL3NyYy9yYWRlb25fZHJpMi5jCkBAIC0yMzgsMTQgKzIzOCwxNCBAQCByYWRlb25fZHJp Ml9jcmVhdGVfYnVmZmVyMihTY3JlZW5QdHIgcFNjcmVlbiwKIAlyZXR1cm4gTlVMTDsKIAogICAg IGJ1ZmZlcnMgPSBjYWxsb2MoMSwgc2l6ZW9mICpidWZmZXJzKTsKLSAgICBpZiAoYnVmZmVycyA9 PSBOVUxMKQorICAgIGlmICghYnVmZmVycykKICAgICAgICAgZ290byBlcnJvcjsKIAogICAgIGlm ICghaW5mby0+dXNlX2dsYW1vcikgewogCWluZm8tPmV4YV9mb3JjZV9jcmVhdGUgPSBUUlVFOwog CWV4YU1vdmVJblBpeG1hcChwaXhtYXApOwogCWluZm8tPmV4YV9mb3JjZV9jcmVhdGUgPSBGQUxT RTsKLQlpZiAoZXhhR2V0UGl4bWFwRHJpdmVyUHJpdmF0ZShwaXhtYXApID09IE5VTEwpIHsKKwlp ZiAoIWV4YUdldFBpeG1hcERyaXZlclByaXZhdGUocGl4bWFwKSkgewogCSAgICAvKiB0aGlzIGhh cHBlbiBpZiBwaXhtYXAgaXMgbm9uIGFjY2VsZXJhYmxlICovCiAJICAgIGdvdG8gZXJyb3I7CiAJ fQpAQCAtMjU4LDcgKzI1OCw3IEBAIHJhZGVvbl9kcmkyX2NyZWF0ZV9idWZmZXIyKFNjcmVlblB0 ciBwU2NyZWVuLAogCWdvdG8gZXJyb3I7CiAKICAgICBwcml2YXRlcyA9IGNhbGxvYygxLCBzaXpl b2Yoc3RydWN0IGRyaTJfYnVmZmVyX3ByaXYpKTsKLSAgICBpZiAocHJpdmF0ZXMgPT0gTlVMTCkK KyAgICBpZiAoIXByaXZhdGVzKQogICAgICAgICBnb3RvIGVycm9yOwogCiAgICAgYnVmZmVycy0+ YXR0YWNobWVudCA9IGF0dGFjaG1lbnQ7CkBAIC05MjMsNyArOTIzLDcgQEAgc3RhdGljIGludCBy YWRlb25fZHJpMl9nZXRfbXNjKERyYXdhYmxlUHRyIGRyYXcsIENBUkQ2NCAqdXN0LCBDQVJENjQg Km1zYykKICAgICB4Zjg2Q3J0Y1B0ciBjcnRjID0gcmFkZW9uX2RyaTJfZHJhd2FibGVfY3J0Yyhk cmF3LCBUUlVFKTsKIAogICAgIC8qIERyYXdhYmxlIG5vdCBkaXNwbGF5ZWQsIG1ha2UgdXAgYSB2 YWx1ZSAqLwotICAgIGlmIChjcnRjID09IE5VTEwpIHsKKyAgICBpZiAoIWNydGMpIHsKICAgICAg ICAgKnVzdCA9IDA7CiAgICAgICAgICptc2MgPSAwOwogICAgICAgICByZXR1cm4gVFJVRTsKQEAg LTEwMzQsNyArMTAzNCw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2RyaTJfc2NoZWR1bGVfd2FpdF9t c2MoQ2xpZW50UHRyIGNsaWVudCwgRHJhd2FibGVQdHIgZHJhdywKICAgICByZW1haW5kZXIgJj0g MHhmZmZmZmZmZjsKIAogICAgIC8qIERyYXdhYmxlIG5vdCB2aXNpYmxlLCByZXR1cm4gaW1tZWRp YXRlbHkgKi8KLSAgICBpZiAoY3J0YyA9PSBOVUxMKQorICAgIGlmICghY3J0YykKICAgICAgICAg Z290byBvdXRfY29tcGxldGU7CiAKICAgICBtc2NfZGVsdGEgPSByYWRlb25fZ2V0X21zY19kZWx0 YShkcmF3LCBjcnRjKTsKQEAgLTExOTMsNyArMTE5Myw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2Ry aTJfc2NoZWR1bGVfc3dhcChDbGllbnRQdHIgY2xpZW50LCBEcmF3YWJsZVB0ciBkcmF3LAogICAg IHJhZGVvbl9kcmkyX3JlZl9idWZmZXIoYmFjayk7CiAKICAgICAvKiBlaXRoZXIgb2ZmLXNjcmVl biBvciBDUlRDIG5vdCB1c2FibGUuLi4ganVzdCBjb21wbGV0ZSB0aGUgc3dhcCAqLwotICAgIGlm IChjcnRjID09IE5VTEwpCisgICAgaWYgKCFjcnRjKQogICAgICAgICBnb3RvIGJsaXRfZmFsbGJh Y2s7CiAKICAgICBtc2NfZGVsdGEgPSByYWRlb25fZ2V0X21zY19kZWx0YShkcmF3LCBjcnRjKTsK ZGlmZiAtLWdpdCBhL3NyYy9yYWRlb25fZXhhLmMgYi9zcmMvcmFkZW9uX2V4YS5jCmluZGV4IDkw ZDkyZDdiOC4uOTNjMmYwNTZjIDEwMDY0NAotLS0gYS9zcmMvcmFkZW9uX2V4YS5jCisrKyBiL3Ny Yy9yYWRlb25fZXhhLmMKQEAgLTE1MCw3ICsxNTAsNyBAQCBCb29sIFJBREVPTkdldFBpeG1hcE9m ZnNldFBpdGNoKFBpeG1hcFB0ciBwUGl4LCB1aW50MzJfdCAqcGl0Y2hfb2Zmc2V0KQogICovCiBC b29sIHJhZGVvbl90cmFuc2Zvcm1faXNfYWZmaW5lX29yX3NjYWxlZChQaWN0VHJhbnNmb3JtUHRy IHQpCiB7Ci0JaWYgKHQgPT0gTlVMTCkKKwlpZiAoIXQpCiAJCXJldHVybiBUUlVFOwogCS8qIHRo ZSBzaGFkZXJzIGRvbid0IGhhbmRsZSBzY2FsaW5nIGVpdGhlciAqLwogCXJldHVybiB0LT5tYXRy aXhbMl1bMF0gPT0gMCAmJiB0LT5tYXRyaXhbMl1bMV0gPT0gMCAmJiB0LT5tYXRyaXhbMl1bMl0g PT0gSW50VG94Rml4ZWQoMSk7CmRpZmYgLS1naXQgYS9zcmMvcmFkZW9uX2V4YV9mdW5jcy5jIGIv c3JjL3JhZGVvbl9leGFfZnVuY3MuYwppbmRleCA4MTliNDI1ODAuLmIzMjAwY2M5NyAxMDA2NDQK LS0tIGEvc3JjL3JhZGVvbl9leGFfZnVuY3MuYworKysgYi9zcmMvcmFkZW9uX2V4YV9mdW5jcy5j CkBAIC0zMzEsNyArMzMxLDcgQEAgUkFERU9OQmxpdENodW5rKFNjcm5JbmZvUHRyIHBTY3JuLCBz dHJ1Y3QgcmFkZW9uX2JvICpzcmNfYm8sCiAKICAgICBpZiAoc3JjX2JvICYmIGRzdF9ibykgewog ICAgICAgICBCRUdJTl9BQ0NFTF9SRUxPQyg2LCAyKTsKLSAgICB9IGVsc2UgaWYgKHNyY19ibyAm JiBkc3RfYm8gPT0gTlVMTCkgeworICAgIH0gZWxzZSBpZiAoc3JjX2JvICYmICFkc3RfYm8pIHsK ICAgICAgICAgQkVHSU5fQUNDRUxfUkVMT0MoNiwgMSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg QkVHSU5fUklORygyKjYpOwpAQCAtNDIzLDcgKzQyMyw3IEBAIFJBREVPTlVwbG9hZFRvU2NyZWVu Q1MoUGl4bWFwUHRyIHBEc3QsIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoLAogCiAgICAgc2l6 ZSA9IHNjcmF0Y2hfcGl0Y2ggKiBoOwogICAgIHNjcmF0Y2ggPSByYWRlb25fYm9fb3BlbihpbmZv LT5idWZtZ3IsIDAsIHNpemUsIDAsIFJBREVPTl9HRU1fRE9NQUlOX0dUVCwgMCk7Ci0gICAgaWYg KHNjcmF0Y2ggPT0gTlVMTCkgeworICAgIGlmICghc2NyYXRjaCkgewogCWdvdG8gY29weTsKICAg ICB9CiAgICAgcmFkZW9uX2NzX3NwYWNlX3Jlc2V0X2JvcyhpbmZvLT5jcyk7CkBAIC01MzEsNyAr NTMxLDcgQEAgUkFERU9ORG93bmxvYWRGcm9tU2NyZWVuQ1MoUGl4bWFwUHRyIHBTcmMsIGludCB4 LCBpbnQgeSwgaW50IHcsCiAgICAgfQogICAgIHNpemUgPSBzY3JhdGNoX3BpdGNoICogaDsKICAg ICBzY3JhdGNoID0gcmFkZW9uX2JvX29wZW4oaW5mby0+YnVmbWdyLCAwLCBzaXplLCAwLCBSQURF T05fR0VNX0RPTUFJTl9HVFQsIDApOwotICAgIGlmIChzY3JhdGNoID09IE5VTEwpIHsKKyAgICBp ZiAoIXNjcmF0Y2gpIHsKIAlnb3RvIGNvcHk7CiAgICAgfQogICAgIHJhZGVvbl9jc19zcGFjZV9y ZXNldF9ib3MoaW5mby0+Y3MpOwpAQCAtNTg0LDcgKzU4NCw3IEBAIEJvb2wgUkFERU9ORHJhd0lu aXQoU2NyZWVuUHRyIHBTY3JlZW4pCiB7CiAgICAgUklORk9fRlJPTV9TQ1JFRU4ocFNjcmVlbik7 CiAKLSAgICBpZiAoaW5mby0+YWNjZWxfc3RhdGUtPmV4YSA9PSBOVUxMKSB7CisgICAgaWYgKCFp bmZvLT5hY2NlbF9zdGF0ZS0+ZXhhKSB7CiAJeGY4NkRydk1zZyhwU2NyZWVuLT5teU51bSwgWF9F UlJPUiwgIk1lbW9yeSBtYXAgbm90IHNldCB1cFxuIik7CiAJcmV0dXJuIEZBTFNFOwogICAgIH0K ZGlmZiAtLWdpdCBhL3NyYy9yYWRlb25fZXhhX3JlbmRlci5jIGIvc3JjL3JhZGVvbl9leGFfcmVu ZGVyLmMKaW5kZXggOTUxMGY3ZjQxLi5jNjFkODNmNGIgMTAwNjQ0Ci0tLSBhL3NyYy9yYWRlb25f ZXhhX3JlbmRlci5jCisrKyBiL3NyYy9yYWRlb25fZXhhX3JlbmRlci5jCkBAIC02MzAsNyArNjMw LDcgQEAgc3RhdGljIEJvb2wgUjEwMFByZXBhcmVDb21wb3NpdGUoaW50IG9wLAogCXJldHVybiBG QUxTRTsKICAgICBwcF9jbnRsID0gUkFERU9OX1RFWF8wX0VOQUJMRSB8IFJBREVPTl9URVhfQkxF TkRfMF9FTkFCTEU7CiAKLSAgICBpZiAocE1hc2sgIT0gTlVMTCkgeworICAgIGlmIChwTWFzaykg ewogCWlmICghUjEwMFRleHR1cmVTZXR1cChwTWFza1BpY3R1cmUsIHBNYXNrLCAxKSkKIAkgICAg cmV0dXJuIEZBTFNFOwogCXBwX2NudGwgfD0gUkFERU9OX1RFWF8xX0VOQUJMRTsKQEAgLTk5Miw3 ICs5OTIsNyBAQCBzdGF0aWMgQm9vbCBSMjAwUHJlcGFyZUNvbXBvc2l0ZShpbnQgb3AsIFBpY3R1 cmVQdHIgcFNyY1BpY3R1cmUsCiAJcmV0dXJuIEZBTFNFOwogICAgIHBwX2NudGwgPSBSQURFT05f VEVYXzBfRU5BQkxFIHwgUkFERU9OX1RFWF9CTEVORF8wX0VOQUJMRTsKIAotICAgIGlmIChwTWFz ayAhPSBOVUxMKSB7CisgICAgaWYgKHBNYXNrKSB7CiAJaWYgKCFSMjAwVGV4dHVyZVNldHVwKHBN YXNrUGljdHVyZSwgcE1hc2ssIDEpKQogCSAgICByZXR1cm4gRkFMU0U7CiAJcHBfY250bCB8PSBS QURFT05fVEVYXzFfRU5BQkxFOwpAQCAtMTQ4NCw3ICsxNDg0LDcgQEAgc3RhdGljIEJvb2wgUjMw MFByZXBhcmVDb21wb3NpdGUoaW50IG9wLCBQaWN0dXJlUHRyIHBTcmNQaWN0dXJlLAogCXJldHVy biBGQUxTRTsKICAgICB0eGVuYWJsZSA9IFIzMDBfVEVYXzBfRU5BQkxFOwogCi0gICAgaWYgKHBN YXNrICE9IE5VTEwpIHsKKyAgICBpZiAocE1hc2spIHsKIAlpZiAoIVIzMDBUZXh0dXJlU2V0dXAo cE1hc2tQaWN0dXJlLCBwTWFzaywgMSkpCiAJICAgIHJldHVybiBGQUxTRTsKIAl0eGVuYWJsZSB8 PSBSMzAwX1RFWF8xX0VOQUJMRTsKZGlmZiAtLWdpdCBhL3NyYy9yYWRlb25fZ2xhbW9yLmMgYi9z cmMvcmFkZW9uX2dsYW1vci5jCmluZGV4IGZhNjM0OTQ3Mi4uYjY0OWJkMThkIDEwMDY0NAotLS0g YS9zcmMvcmFkZW9uX2dsYW1vci5jCisrKyBiL3NyYy9yYWRlb25fZ2xhbW9yLmMKQEAgLTI2MSw3 ICsyNjEsNyBAQCByYWRlb25fZ2xhbW9yX2NyZWF0ZV9waXhtYXAoU2NyZWVuUHRyIHNjcmVlbiwg aW50IHcsIGludCBoLCBpbnQgZGVwdGgsCiAJCWludCBzdHJpZGU7CiAKIAkJcHJpdiA9IGNhbGxv YygxLCBzaXplb2YgKHN0cnVjdCByYWRlb25fcGl4bWFwKSk7Ci0JCWlmIChwcml2ID09IE5VTEwp CisJCWlmICghcHJpdikKIAkJCWdvdG8gZmFsbGJhY2tfcGl4bWFwOwogCiAJCXByaXYtPmJvID0g cmFkZW9uX2FsbG9jX3BpeG1hcF9ibyhzY3JuLCB3LCBoLCBkZXB0aCwgdXNhZ2UsCmRpZmYgLS1n aXQgYS9zcmMvcmFkZW9uX2dsYW1vcl93cmFwcGVycy5jIGIvc3JjL3JhZGVvbl9nbGFtb3Jfd3Jh cHBlcnMuYwppbmRleCA3OWQ5OGNjNzcuLmVkZmZkOWFkYiAxMDA2NDQKLS0tIGEvc3JjL3JhZGVv bl9nbGFtb3Jfd3JhcHBlcnMuYworKysgYi9zcmMvcmFkZW9uX2dsYW1vcl93cmFwcGVycy5jCkBA IC0xMzIsNyArMTMyLDcgQEAgcmFkZW9uX2dsYW1vcl9maW5pc2hfYWNjZXNzX2NwdShQaXhtYXBQ dHIgcGl4bWFwKQogc3RhdGljIEJvb2wKIHJhZGVvbl9nbGFtb3JfcHJlcGFyZV9hY2Nlc3NfZ3B1 KHN0cnVjdCByYWRlb25fcGl4bWFwICpwcml2KQogewotCXJldHVybiBwcml2ICE9IE5VTEw7CisJ cmV0dXJuICEhcHJpdjsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTIwMSw3ICsyMDEsNyBAQCByYWRl b25fZ2xhbW9yX3BpY3R1cmVfcHJlcGFyZV9hY2Nlc3NfY3B1X3JvKFNjcm5JbmZvUHRyIHNjcm4s CiAJUGl4bWFwUHRyIHBpeG1hcDsKIAlzdHJ1Y3QgcmFkZW9uX3BpeG1hcCAqcHJpdjsKIAotCWlm IChwaWN0dXJlLT5wRHJhd2FibGUgPT0gTlVMTCkKKwlpZiAoIXBpY3R1cmUtPnBEcmF3YWJsZSkK IAkJcmV0dXJuIFRSVUU7CiAKIAlwaXhtYXAgPSBnZXRfZHJhd2FibGVfcGl4bWFwKHBpY3R1cmUt PnBEcmF3YWJsZSk7CmRpZmYgLS1naXQgYS9zcmMvcmFkZW9uX2ttcy5jIGIvc3JjL3JhZGVvbl9r bXMuYwppbmRleCAxNWRjYTBkZTQuLjM2ODQwYWQzNiAxMDA2NDQKLS0tIGEvc3JjL3JhZGVvbl9r bXMuYworKysgYi9zcmMvcmFkZW9uX2ttcy5jCkBAIC02MzksNyArNjM5LDcgQEAgbWFzdGVyX2hh c19zeW5jX3NoYXJlZF9waXhtYXAoU2NybkluZm9QdHIgc2NybiwgUGl4bWFwRGlydHlVcGRhdGVQ dHIgZGlydHkpCiB7CiAgICAgU2NyZWVuUHRyIG1hc3Rlcl9zY3JlZW4gPSByYWRlb25fZGlydHlf bWFzdGVyKGRpcnR5KTsKIAotICAgIHJldHVybiBtYXN0ZXJfc2NyZWVuLT5TeW5jU2hhcmVkUGl4 bWFwICE9IE5VTEw7CisgICAgcmV0dXJuICEhbWFzdGVyX3NjcmVlbi0+U3luY1NoYXJlZFBpeG1h cDsKIH0KIAogc3RhdGljIEJvb2wKQEAgLTY0Nyw3ICs2NDcsNyBAQCBzbGF2ZV9oYXNfc3luY19z aGFyZWRfcGl4bWFwKFNjcm5JbmZvUHRyIHNjcm4sIFBpeG1hcERpcnR5VXBkYXRlUHRyIGRpcnR5 KQogewogICAgIFNjcmVlblB0ciBzbGF2ZV9zY3JlZW4gPSBkaXJ0eS0+c2xhdmVfZHN0LT5kcmF3 YWJsZS5wU2NyZWVuOwogCi0gICAgcmV0dXJuIHNsYXZlX3NjcmVlbi0+U3luY1NoYXJlZFBpeG1h cCAhPSBOVUxMOworICAgIHJldHVybiAhIXNsYXZlX3NjcmVlbi0+U3luY1NoYXJlZFBpeG1hcDsK IH0KIAogc3RhdGljIHZvaWQKQEAgLTE3NjksNyArMTc2OSw3IEBAIEJvb2wgUkFERU9OUHJlSW5p dF9LTVMoU2NybkluZm9QdHIgcFNjcm4sIGludCBmbGFncykKICAgICBpbmZvLT5kcmkyLmF2YWls YWJsZSA9IEZBTFNFOwogICAgIGluZm8tPmRyaTIuZW5hYmxlZCA9IEZBTFNFOwogICAgIGluZm8t PmRyaTIucEtlcm5lbERSTVZlcnNpb24gPSBkcm1HZXRWZXJzaW9uKHBSQURFT05FbnQtPmZkKTsK LSAgICBpZiAoaW5mby0+ZHJpMi5wS2VybmVsRFJNVmVyc2lvbiA9PSBOVUxMKSB7CisgICAgaWYg KCFpbmZvLT5kcmkyLnBLZXJuZWxEUk1WZXJzaW9uKSB7CiAJeGY4NkRydk1zZyhwU2Nybi0+c2Ny bkluZGV4LCBYX0VSUk9SLAogCQkgICAiUkFERU9ORFJJR2V0VmVyc2lvbiBmYWlsZWQgdG8gZ2V0 IHRoZSBEUk0gdmVyc2lvblxuIik7CiAJcmV0dXJuIEZBTFNFOwpAQCAtMTkyNCw3ICsxOTI0LDcg QEAgQm9vbCBSQURFT05QcmVJbml0X0tNUyhTY3JuSW5mb1B0ciBwU2NybiwgaW50IGZsYWdzKQog CSAgICB4Zjg2T3V0cHV0UHRyIG91dHB1dCA9IHhmODZfY29uZmlnLT5vdXRwdXRbaV07CiAKIAkg ICAgLyogWFhYOiBkb3VibGUgY2hlY2sgY3J0YyBtb2RlICovCi0JICAgIGlmICgob3V0cHV0LT5w cm9iZWRfbW9kZXMgIT0gTlVMTCkgJiYgKG91dHB1dC0+Y3J0YyA9PSBOVUxMKSkKKwkgICAgaWYg KG91dHB1dC0+cHJvYmVkX21vZGVzICYmICFvdXRwdXQtPmNydGMpCiAJCW91dHB1dC0+Y3J0YyA9 IHhmODZfY29uZmlnLT5jcnRjWzBdOwogCX0KICAgICB9CkBAIC0xOTg3LDcgKzE5ODcsNyBAQCBC b29sIFJBREVPTlByZUluaXRfS01TKFNjcm5JbmZvUHRyIHBTY3JuLCBpbnQgZmxhZ3MpCiAJaWYg KCF4Zjg2TG9hZFN1Yk1vZHVsZShwU2NybiwgInJhbWRhYyIpKSByZXR1cm4gRkFMU0U7CiAgICAg fQogCi0gICAgaWYgKHBTY3JuLT5tb2RlcyA9PSBOVUxMCisgICAgaWYgKCFwU2Nybi0+bW9kZXMK ICNpZmRlZiBYU0VSVkVSX1BMQVRGT1JNX0JVUwogICAgICAgICAmJiAhcFNjcm4tPmlzX2dwdQog I2VuZGlmCkBAIC0yMDk4LDcgKzIwOTgsNyBAQCBzdGF0aWMgQm9vbCBSQURFT05TYXZlU2NyZWVu X0tNUyhTY3JlZW5QdHIgcFNjcmVlbiwgaW50IG1vZGUpCiAgICAgdW5ibGFuayA9IHhmODZJc1Vu YmxhbmsobW9kZSk7CiAgICAgaWYgKHVuYmxhbmspIFNldFRpbWVTaW5jZUxhc3RJbnB1dEV2ZW50 KCk7CiAKLSAgICBpZiAoKHBTY3JuICE9IE5VTEwpICYmIHBTY3JuLT52dFNlbWEpIHsKKyAgICBp ZiAocFNjcm4gJiYgcFNjcm4tPnZ0U2VtYSkgewogCWlmICh1bmJsYW5rKQogCSAgICBSQURFT05V bmJsYW5rKHBTY3JuKTsKIAllbHNlCkBAIC0yMjg3LDcgKzIyODcsNyBAQCBCb29sIFJBREVPTlNj cmVlbkluaXRfS01TKFNjcmVlblB0ciBwU2NyZWVuLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJ aW5mby0+ZmJfc2hhZG93ID0gY2FsbG9jKDEsCiAJCQkJIHBTY3JuLT5kaXNwbGF5V2lkdGggKiBw U2Nybi0+dmlydHVhbFkgKgogCQkJCSAoKHBTY3JuLT5iaXRzUGVyUGl4ZWwgKyA3KSA+PiAzKSk7 Ci0JaWYgKGluZm8tPmZiX3NoYWRvdyA9PSBOVUxMKSB7CisJaWYgKCFpbmZvLT5mYl9zaGFkb3cp IHsKIAkgICAgeGY4NkRydk1zZyhwU2Nybi0+c2NybkluZGV4LCBYX0VSUk9SLAogICAgICAgICAg ICAgICAgICAgICAgICAiRmFpbGVkIHRvIGFsbG9jYXRlIHNoYWRvdyBmcmFtZWJ1ZmZlclxuIik7 CiAJICAgIHJldHVybiBGQUxTRTsKQEAgLTI2ODksMTMgKzI2ODksMTMgQEAgc3RhdGljIEJvb2wg cmFkZW9uX3NldHVwX2tlcm5lbF9tZW0oU2NyZWVuUHRyIHBTY3JlZW4pCiAgICAgaW50IHBpdGNo OwogICAgIHVpbnQzMl90IHRpbGluZ19mbGFncyA9IDA7CiAKLSAgICBpZiAoaW5mby0+YWNjZWxf c3RhdGUtPmV4YSAhPSBOVUxMKSB7CisgICAgaWYgKGluZm8tPmFjY2VsX3N0YXRlLT5leGEpIHsK IAl4Zjg2RHJ2TXNnKHBTY3JlZW4tPm15TnVtLCBYX0VSUk9SLCAiTWVtb3J5IG1hcCBhbHJlYWR5 IGluaXRpYWxpemVkXG4iKTsKIAlyZXR1cm4gRkFMU0U7CiAgICAgfQogICAgIGlmICghaW5mby0+ dXNlX2dsYW1vciAmJiBpbmZvLT5yNjAwX3NoYWRvd19mYiA9PSBGQUxTRSkgewogICAgICAgICBp bmZvLT5hY2NlbF9zdGF0ZS0+ZXhhID0gZXhhRHJpdmVyQWxsb2MoKTsKLSAgICAgICAgaWYgKGlu Zm8tPmFjY2VsX3N0YXRlLT5leGEgPT0gTlVMTCkgeworICAgICAgICBpZiAoIWluZm8tPmFjY2Vs X3N0YXRlLT5leGEpIHsKIAkgICAgeGY4NkRydk1zZyhwU2NyZWVuLT5teU51bSwgWF9FUlJPUiwg ImV4YURyaXZlckFsbG9jIGZhaWxlZFxuIik7CiAJICAgIHJldHVybiBGQUxTRTsKIAl9CkBAIC0y NzA5LDcgKzI3MDksNyBAQCBzdGF0aWMgQm9vbCByYWRlb25fc2V0dXBfa2VybmVsX21lbShTY3Jl ZW5QdHIgcFNjcmVlbikKIAljdXJzb3Jfc2l6ZSA9IFJBREVPTl9BTElHTihjdXJzb3Jfc2l6ZSwg UkFERU9OX0dQVV9QQUdFX1NJWkUpOwogCWZvciAoYyA9IDA7IGMgPCB4Zjg2X2NvbmZpZy0+bnVt X2NydGM7IGMrKykgewogCSAgICAvKiBjdXJzb3Igb2JqZWN0cyAqLwotICAgICAgICAgICAgaWYg KGluZm8tPmN1cnNvcl9ib1tjXSA9PSBOVUxMKSB7CisgICAgICAgICAgICBpZiAoIWluZm8tPmN1 cnNvcl9ib1tjXSkgewogICAgICAgICAgICAgICAgIGluZm8tPmN1cnNvcl9ib1tjXSA9IHJhZGVv bl9ib19vcGVuKGluZm8tPmJ1Zm1nciwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3Jfc2l6ZSwgMCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSQURFT05fR0VNX0RPTUFJTl9WUkFN LCAwKTsKQEAgLTI3MjcsNyArMjcyNyw3IEBAIHN0YXRpYyBCb29sIHJhZGVvbl9zZXR1cF9rZXJu ZWxfbWVtKFNjcmVlblB0ciBwU2NyZWVuKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKGlu Zm8tPmZyb250X2J1ZmZlciA9PSBOVUxMKSB7CisgICAgaWYgKCFpbmZvLT5mcm9udF9idWZmZXIp IHsKIAlpbnQgdXNhZ2UgPSBDUkVBVEVfUElYTUFQX1VTQUdFX0JBQ0tJTkdfUElYTUFQOwogCiAJ aWYgKGluZm8tPmFsbG93Q29sb3JUaWxpbmcgJiYgIWluZm8tPnNoYWRvd19wcmltYXJ5KSB7CkBA IC0yNzg3LDkgKzI3ODcsOCBAQCB2b2lkIHJhZGVvbl9rbXNfdXBkYXRlX3ZyYW1fbGltaXQoU2Ny bkluZm9QdHIgcFNjcm4sIHVpbnQzMl90IG5ld19mYl9zaXplKQogICAgIGludCBjOwogCiAgICAg Zm9yIChjID0gMDsgYyA8IHhmODZfY29uZmlnLT5udW1fY3J0YzsgYysrKSB7Ci0JaWYgKGluZm8t PmN1cnNvcl9ib1tjXSAhPSBOVUxMKSB7CisJaWYgKGluZm8tPmN1cnNvcl9ib1tjXSkKIAkgICAg bmV3X2ZiX3NpemUgKz0gKDY0ICogNCAqIDY0KTsKLQl9CiAgICAgfQogCiAgICAgcmVtYWluX3Np emVfYnl0ZXMgPSBpbmZvLT52cmFtX3NpemUgLSBuZXdfZmJfc2l6ZTsKZGlmZiAtLWdpdCBhL3Ny Yy9yYWRlb25fdGV4dHVyZWRfdmlkZW8uYyBiL3NyYy9yYWRlb25fdGV4dHVyZWRfdmlkZW8uYwpp bmRleCAyM2JkZmQxZGMuLmJlNzFlNDA4NiAxMDA2NDQKLS0tIGEvc3JjL3JhZGVvbl90ZXh0dXJl ZF92aWRlby5jCisrKyBiL3NyYy9yYWRlb25fdGV4dHVyZWRfdmlkZW8uYwpAQCAtMTUzLDcgKzE1 Myw3IEBAIHJhZGVvbl9hbGxvY2F0ZV92aWRlb19ibyhTY3JuSW5mb1B0ciBwU2NybiwKIHN0YXRp YyB2b2lkCiBSQURFT05GcmVlVmlkZW9NZW1vcnkoU2NybkluZm9QdHIgcFNjcm4sIFJBREVPTlBv cnRQcml2UHRyIHBQcml2KQogewotICAgIGlmIChwUHJpdi0+dmlkZW9fbWVtb3J5ICE9IE5VTEwp IHsKKyAgICBpZiAocFByaXYtPnZpZGVvX21lbW9yeSkgewogCXJhZGVvbl9ib191bnJlZihwUHJp di0+dmlkZW9fbWVtb3J5KTsKIAlwUHJpdi0+dmlkZW9fbWVtb3J5ID0gTlVMTDsKIApAQCAtMzEy LDcgKzMxMiw3IEBAIFJBREVPTlB1dEltYWdlVGV4dHVyZWQoU2NybkluZm9QdHIgcFNjcm4sCiAJ UkFERU9ORnJlZVZpZGVvTWVtb3J5KHBTY3JuLCBwUHJpdik7CiAgICAgfQogCi0gICAgaWYgKHBQ cml2LT52aWRlb19tZW1vcnkgPT0gTlVMTCkgeworICAgIGlmICghcFByaXYtPnZpZGVvX21lbW9y eSkgewogICAgICAgQm9vbCByZXQ7CiAgICAgICByZXQgPSByYWRlb25fYWxsb2NhdGVfdmlkZW9f Ym8ocFNjcm4sCiAJCQkJICAgICAmcFByaXYtPnZpZGVvX21lbW9yeSwKQEAgLTMyOSw3ICszMjks NyBAQCBSQURFT05QdXRJbWFnZVRleHR1cmVkKFNjcm5JbmZvUHRyIHBTY3JuLAogCiAgICAgLyog QmljdWJpYyBmaWx0ZXIgbG9hZGluZyAqLwogICAgIGlmIChwUHJpdi0+YmljdWJpY19lbmFibGVk KSB7Ci0JaWYgKGluZm8tPmJpY3ViaWNfYm8gPT0gTlVMTCkKKwlpZiAoIWluZm8tPmJpY3ViaWNf Ym8pCiAJICAgIHBQcml2LT5iaWN1YmljX2VuYWJsZWQgPSBGQUxTRTsKICAgICB9CiAKQEAgLTcy NSw3ICs3MjUsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fdW5sb2FkX2JpY3ViaWNfdGV4dHVyZShT Y3JuSW5mb1B0ciBwU2NybikKIHsKICAgICBSQURFT05JbmZvUHRyICAgIGluZm8gPSBSQURFT05Q VFIocFNjcm4pOwogCi0gICAgaWYgKGluZm8tPmJpY3ViaWNfbWVtb3J5ICE9IE5VTEwpIHsKKyAg ICBpZiAoaW5mby0+YmljdWJpY19tZW1vcnkpIHsKIAlyYWRlb25fYm9fdW5yZWYoaW5mby0+Ymlj dWJpY19tZW1vcnkpOwogCWluZm8tPmJpY3ViaWNfbWVtb3J5ID0gTlVMTDsKICAgICB9CkBAIC04 MjcsNyArODI3LDcgQEAgUkFERU9OU2V0dXBJbWFnZVRleHR1cmVkVmlkZW8oU2NyZWVuUHRyIHBT Y3JlZW4pCiAKICAgICBhZGFwdCA9IGNhbGxvYygxLCBzaXplb2YoWEY4NlZpZGVvQWRhcHRvclJl YykgKyBudW1fdGV4dHVyZV9wb3J0cyAqCiAJCSAgIChzaXplb2YoUkFERU9OUG9ydFByaXZSZWMp ICsgc2l6ZW9mKERldlVuaW9uKSkpOwotICAgIGlmIChhZGFwdCA9PSBOVUxMKQorICAgIGlmICgh YWRhcHQpCiAJcmV0dXJuIE5VTEw7CiAKICAgICB4dkJpY3ViaWMgICAgICAgICA9IE1BS0VfQVRP TSgiWFZfQklDVUJJQyIpOwpkaWZmIC0tZ2l0IGEvc3JjL3JhZGVvbl92aWRlby5jIGIvc3JjL3Jh ZGVvbl92aWRlby5jCmluZGV4IGUwOGQ4ZTAwNS4uZmMzMjExODQyIDEwMDY0NAotLS0gYS9zcmMv cmFkZW9uX3ZpZGVvLmMKKysrIGIvc3JjL3JhZGVvbl92aWRlby5jCkBAIC0xNDQsNyArMTQ0LDcg QEAgdm9pZCBSQURFT05Jbml0VmlkZW8oU2NyZWVuUHRyIHBTY3JlZW4pCiAKICAgICBudW1fYWRh cHRvcnMgPSB4Zjg2WFZMaXN0R2VuZXJpY0FkYXB0b3JzKHBTY3JuLCAmYWRhcHRvcnMpOwogICAg IG5ld0FkYXB0b3JzID0gbWFsbG9jKChudW1fYWRhcHRvcnMgKyAyKSAqIHNpemVvZigqbmV3QWRh cHRvcnMpKTsKLSAgICBpZiAobmV3QWRhcHRvcnMgPT0gTlVMTCkKKyAgICBpZiAoIW5ld0FkYXB0 b3JzKQogCXJldHVybjsKIAogICAgIG1lbWNweShuZXdBZGFwdG9ycywgYWRhcHRvcnMsIG51bV9h ZGFwdG9ycyAqIHNpemVvZihYRjg2VmlkZW9BZGFwdG9yUHRyKSk7CkBAIC0xNTIsNyArMTUyLDcg QEAgdm9pZCBSQURFT05Jbml0VmlkZW8oU2NyZWVuUHRyIHBTY3JlZW4pCiAKICAgICBpZiAoaW5m by0+dXNlX2dsYW1vcikgewogICAgICAgICB0ZXh0dXJlZEFkYXB0b3IgPSByYWRlb25fZ2xhbW9y X3h2X2luaXQocFNjcmVlbiwgMTYpOwotCWlmICh0ZXh0dXJlZEFkYXB0b3IgIT0gTlVMTCkgewor CWlmICh0ZXh0dXJlZEFkYXB0b3IpIHsKIAkgICAgYWRhcHRvcnNbbnVtX2FkYXB0b3JzKytdID0g dGV4dHVyZWRBZGFwdG9yOwogCSAgICB4Zjg2RHJ2TXNnKHBTY3JuLT5zY3JuSW5kZXgsIFhfSU5G TywgIlNldCB1cCB0ZXh0dXJlZCB2aWRlbyAoZ2xhbW9yKVxuIik7CiAJfSBlbHNlCkBAIC0xNjEs NyArMTYxLDcgQEAgdm9pZCBSQURFT05Jbml0VmlkZW8oU2NyZWVuUHRyIHBTY3JlZW4pCiAJfHwg KGluZm8tPmRpcmVjdFJlbmRlcmluZ0VuYWJsZWQpCiAJKSB7CiAJdGV4dHVyZWRBZGFwdG9yID0g UkFERU9OU2V0dXBJbWFnZVRleHR1cmVkVmlkZW8ocFNjcmVlbik7Ci0JaWYgKHRleHR1cmVkQWRh cHRvciAhPSBOVUxMKSB7CisJaWYgKHRleHR1cmVkQWRhcHRvcikgewogCSAgICBhZGFwdG9yc1tu dW1fYWRhcHRvcnMrK10gPSB0ZXh0dXJlZEFkYXB0b3I7CiAJICAgIHhmODZEcnZNc2cocFNjcm4t PnNjcm5JbmRleCwgWF9JTkZPLCAiU2V0IHVwIHRleHR1cmVkIHZpZGVvXG4iKTsKIAl9IGVsc2UK LS0gCjIuMTguMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==