From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id A787E8935C for ; Tue, 16 Apr 2019 23:26:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5125430832CD for ; Tue, 16 Apr 2019 23:26:00 +0000 (UTC) From: Lyude Date: Tue, 16 Apr 2019 19:25:43 -0400 Message-Id: <20190416232548.13755-4-lyude@redhat.com> In-Reply-To: <20190416232548.13755-1-lyude@redhat.com> References: <20190416232548.13755-1-lyude@redhat.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 3/8] lib: Stop using assert() for runtime checks List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: RnJvbTogTHl1ZGUgUGF1bCA8bHl1ZGVAcmVkaGF0LmNvbT4KCkluIHRoZSBwcm9jZXNzIG9mIHRy eWluZyB0byBnZXQgYW4gdXAgdG8gZGF0ZSB2ZXJzaW9uIG9mIGlndCBwYWNrYWdlZApmb3IgRmVk b3JhIEkgZGlzY292ZXJlZCB0aGF0IGlmIGlndCB3YXMgYnVpbHQgd2l0aCAtRGJfbmRlYnVnPXRy dWUsIGEKc2lnbmlmaWNhbnQgcG9ydGlvbiBvZiB0aGUgdGVzdCBpbmZyYXN0cnVjdHVyZSB1bml0 IHRlc3RzIHdvdWxkIHN0YXJ0CmZhaWxpbmc6CgogIDEvMjY1IGxpYjogaWd0X2Fzc2VydCAgICAg ICAgICAgICAgICAgICAgICAgICBPSyAgICAgICAwLjExIHMKICAyLzI2NSBsaWI6IGlndF9jYW5f ZmFpbCAgICAgICAgICAgICAgICAgICAgICAgT0sgICAgICAgMC4wOCBzCiAgMy8yNjUgbGliOiBp Z3RfY2FuX2ZhaWxfc2ltcGxlICAgICAgICAgICAgICAgIE9LICAgICAgIDAuMDggcwogIDQvMjY1 IGxpYjogaWd0X2V4aXRfaGFuZGxlciAgICAgICAgICAgICAgICAgICBPSyAgICAgICAwLjA1IHMK ICA1LzI2NSBsaWI6IGlndF9mb3JrICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAg MC4wNSBzIChraWxsZWQgYnkgc2lnbmFsIDkgU0lHS0lMTCkKICA2LzI2NSBsaWI6IGlndF9mb3Jr X2hlbHBlciAgICAgICAgICAgICAgICAgICAgT0sgICAgICAgMC40MiBzCiAgNy8yNjUgbGliOiBp Z3RfaGRtaV9pbmplY3QgICAgICAgICAgICAgICAgICAgIE9LICAgICAgIDAuMDUgcwogIDgvMjY1 IGxpYjogaWd0X2xpc3Rfb25seSAgICAgICAgICAgICAgICAgICAgICBPSyAgICAgICAwLjAxIHMK ICA5LzI2NSBsaWI6IGlndF9pbnZhbGlkX3N1YnRlc3RfbmFtZSAgICAgICAgICAgT0sgICAgICAg MC4wNSBzCiAxMC8yNjUgbGliOiBpZ3Rfbm9fZXhpdCAgICAgICAgICAgICAgICAgICAgICAgIE9L ICAgICAgIDAuMDQgcwogMTEvMjY1IGxpYjogaWd0X3NlZ2ZhdWx0ICAgICAgICAgICAgICAgICAg ICAgICBPSyAgICAgICAwLjM4IHMKIDEyLzI2NSBsaWI6IGlndF9zaW11bGF0aW9uICAgICAgICAg ICAgICAgICAgICAgT0sgICAgICAgMC4wMiBzCiAxMy8yNjUgbGliOiBpZ3Rfc3RhdHMgICAgICAg ICAgICAgICAgICAgICAgICAgIE9LICAgICAgIDAuMDQgcwogMTQvMjY1IGxpYjogaWd0X3N1YnRl c3RfZ3JvdXAgICAgICAgICAgICAgICAgICBPSyAgICAgICAwLjAzIHMKIDE1LzI2NSBsaWI6IGln dF9ub19zdWJ0ZXN0ICAgICAgICAgICAgICAgICAgICAgU0tJUCAgICAgMC4wMiBzCiAxNi8yNjUg bGliOiBpZ3Rfc2ltcGxlX3Rlc3Rfc3VidGVzdHMgICAgICAgICAgIFVORVhQRUNURURQQVNTIDAu MDIgcwogMTcvMjY1IGxpYjogaWd0X3RpbWVvdXQgICAgICAgICAgICAgICAgICAgICAgICBFWFBF Q1RFREZBSUwgMS4wMiBzCgpXaGljaCBhcHBlYXJlZCB0byBzdGVtIGZyb20gdGhlIGZhY3QgdGhh dCAtRGJfbmRlYnVnPXRydWUgd291bGQgc3RyaXAKYXNzZXJ0KCkgY2FsbHMuIFdoaWxlIG9uIGEg Zmlyc3QgZ2xhbmNlIG9mIGxpYi90ZXN0cy9pZ3RfdGVzdHNfY29tbW9uLmgKb25lIHdvdWxkIGFz c3VtZSB0aGF0IHRoZSBvbmx5IHVzZXIgb2YgYXNzZXJ0KCkgd2FzIHRoZSB0ZXN0CmluZnJhc3Ry dWN0dXJlIHVuaXQgdGVzdHMgdGhlbXNlbHZlcywgaXQgdHVybnMgb3V0IHdlJ3ZlIGFjdHVhbGx5 IGJlZW4KdXNpbmcgdGhpcyBpbiBtdWx0aXBsZSBzcG90cyB0aGF0IHNlZW0gdG8gZXhwZWN0IGFu IHVuY29uZGl0aW9uYWwKcnVudGltZSBjaGVjay4KClNvIGluIG9yZGVyIHRvIGZpeCB0aGlzLCB3 ZSBpbnRyb2R1Y2UgaWd0X2ludGVybmFsX2Fzc2VydCgpLiBUaGUgcHVycG9zZQpvZiB0aGlzIGZ1 bmN0aW9uIGlzIHRvIHByb3ZpZGUgc2ltcGxlIHJ1bnRpbWUgZXJyb3ItY2hlY2tpbmcgZm9yCmNv bmRpdGlvbnMgdGhhdCB3YXJyYW50IGFib3J0KClpbmcgSUdUIHVuZGVyIGFueSBjaXJjdW1zdGFu Y2VzLCBhbmQgdG8KcHJvdmlkZSBhIGludGVybmFsX2Fzc2VydCgpIHJlcGxhY2VtZW50IGZvciBv dXIgdGVzdCBpbmZyYXN0cnVjdHVyZQp0ZXN0cyB0byB1c2UuIFRoZW4sIHJlbW92ZSBhbGwgb2Yg dGhlIGFzc2VydCgpIHVzYWdlcyBpbiBsaWIvdGVzdHMvKgphbG9uZyB3aXRoIGFueSBvZiB0aGUg YXNzZXJ0KCkgY2FsbHMgaW4gbGliL2lndF9jb3JlLmMgdGhhdCBhZmZlY3QgdGVzdApiZWhhdmlv ci4KClNpZ25lZC1vZmYtYnk6IEx5dWRlIFBhdWwgPGx5dWRlQHJlZGhhdC5jb20+Ci0tLQogbGli L2lndF9jb3JlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMjQgKysrKystLS0tLS0KIGxpYi9p Z3RfY29yZS5oICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysrKwogbGliL3Rlc3Rz L2lndF9hc3NlcnQuYyAgICAgICAgICAgICAgIHwgIDIgKy0KIGxpYi90ZXN0cy9pZ3RfY2FuX2Zh aWwuYyAgICAgICAgICAgICB8IDEwICsrLS0tCiBsaWIvdGVzdHMvaWd0X2Nhbl9mYWlsX3NpbXBs ZS5jICAgICAgfCAgMiArLQogbGliL3Rlc3RzL2lndF9leGl0X2hhbmRsZXIuYyAgICAgICAgIHwg MTggKysrKy0tLS0tCiBsaWIvdGVzdHMvaWd0X2ZvcmsuYyAgICAgICAgICAgICAgICAgfCAgNCAr LQogbGliL3Rlc3RzL2lndF9pbnZhbGlkX3N1YnRlc3RfbmFtZS5jIHwgIDIgKy0KIGxpYi90ZXN0 cy9pZ3Rfbm9fZXhpdC5jICAgICAgICAgICAgICB8ICAyICstCiBsaWIvdGVzdHMvaWd0X3NlZ2Zh dWx0LmMgICAgICAgICAgICAgfCAgMiArLQogbGliL3Rlc3RzL2lndF9zaW11bGF0aW9uLmMgICAg ICAgICAgIHwgNjAgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogbGliL3Rlc3RzL2lndF9z dWJ0ZXN0X2dyb3VwLmMgICAgICAgIHwgMTYgKysrKy0tLS0KIGxpYi90ZXN0cy9pZ3RfdGVzdHNf Y29tbW9uLmggICAgICAgICB8IDE5ICsrKystLS0tLQogMTMgZmlsZXMgY2hhbmdlZCwgOTcgaW5z ZXJ0aW9ucygrKSwgODIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmMg Yi9saWIvaWd0X2NvcmUuYwppbmRleCBhZTAzZTkwOS4uYTYzN2I5NGUgMTAwNjQ0Ci0tLSBhL2xp Yi9pZ3RfY29yZS5jCisrKyBiL2xpYi9pZ3RfY29yZS5jCkBAIC01MjEsNyArNTIxLDcgQEAgc3Rh dGljIHZvaWQgY29tbW9uX2V4aXRfaGFuZGxlcihpbnQgc2lnKQogCiAJLyogV2hlbiBub3Qga2ls bGVkIGJ5IGEgc2lnbmFsIGNoZWNrIHRoYXQgaWd0X2V4aXQoKSBoYXMgYmVlbiBwcm9wZXJseQog CSAqIGNhbGxlZC4gKi8KLQlhc3NlcnQoc2lnICE9IDAgfHwgaWd0X2V4aXRfY2FsbGVkKTsKKwlp Z3RfaW50ZXJuYWxfYXNzZXJ0KHNpZyAhPSAwIHx8IGlndF9leGl0X2NhbGxlZCk7CiB9CiAKIHN0 YXRpYyB2b2lkIHByaW50X3Rlc3RfZGVzY3JpcHRpb24odm9pZCkKQEAgLTYxMSw3ICs2MTEsNyBA QCBzdGF0aWMgdm9pZCBjb21tb25faW5pdF9jb25maWcodm9pZCkKIAogCXJldCA9IGdfa2V5X2Zp bGVfZ2V0X2ludGVnZXIoaWd0X2tleV9maWxlLCAiRFVUIiwgIlN1c3BlbmRSZXN1bWVEZWxheSIs CiAJCQkJICAgICAmZXJyb3IpOwotCWFzc2VydCghZXJyb3IgfHwgZXJyb3ItPmNvZGUgIT0gR19L RVlfRklMRV9FUlJPUl9JTlZBTElEX1ZBTFVFKTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KCFlcnJv ciB8fCBlcnJvci0+Y29kZSAhPSBHX0tFWV9GSUxFX0VSUk9SX0lOVkFMSURfVkFMVUUpOwogCiAJ Z19jbGVhcl9lcnJvcigmZXJyb3IpOwogCkBAIC05MDMsOSArOTAzLDkgQEAgYm9vbCBfX2lndF9y dW5fc3VidGVzdChjb25zdCBjaGFyICpzdWJ0ZXN0X25hbWUpCiB7CiAJaW50IGk7CiAKLQlhc3Nl cnQoIWluX3N1YnRlc3QpOwotCWFzc2VydCghaW5fZml4dHVyZSk7Ci0JYXNzZXJ0KHRlc3Rfd2l0 aF9zdWJ0ZXN0cyk7CisJaWd0X2ludGVybmFsX2Fzc2VydCghaW5fc3VidGVzdCk7CisJaWd0X2lu dGVybmFsX2Fzc2VydCghaW5fZml4dHVyZSk7CisJaWd0X2ludGVybmFsX2Fzc2VydCh0ZXN0X3dp dGhfc3VidGVzdHMpOwogCiAJLyogY2hlY2sgdGhlIHN1YnRlc3QgbmFtZSBvbmx5IGNvbnRhaW5z IGEteiwgQS1aLCAwLTksICctJyBhbmQgJ18nICovCiAJZm9yIChpID0gMDsgc3VidGVzdF9uYW1l W2ldICE9ICdcMCc7IGkrKykKQEAgLTk3OCw3ICs5NzgsNyBAQCBib29sIGlndF9vbmx5X2xpc3Rf c3VidGVzdHModm9pZCkKIAogdm9pZCBfX2lndF9zdWJ0ZXN0X2dyb3VwX3NhdmUoaW50ICpzYXZl KQogewotCWFzc2VydCh0ZXN0X3dpdGhfc3VidGVzdHMpOworCWlndF9pbnRlcm5hbF9hc3NlcnQo dGVzdF93aXRoX3N1YnRlc3RzKTsKIAogCSpzYXZlID0gc2tpcF9zdWJ0ZXN0c19oZW5jZWZvcnRo OwogfQpAQCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBpZ3Rfc2tpcChjb25zdCBjaGFyICpmLCAu Li4pCiAJdmFfbGlzdCBhcmdzOwogCXNraXBwZWRfb25lID0gdHJ1ZTsKIAotCWFzc2VydCghdGVz dF9jaGlsZCk7CisJaWd0X2ludGVybmFsX2Fzc2VydCghdGVzdF9jaGlsZCk7CiAKIAlpZiAoIWln dF9vbmx5X2xpc3Rfc3VidGVzdHMoKSkgewogCQl2YV9zdGFydChhcmdzLCBmKTsKQEAgLTE1MTAs MTAgKzE1MTAsMTAgQEAgdm9pZCBpZ3RfZXhpdCh2b2lkKQogCQlleGl0KElHVF9FWElUX1NVQ0NF U1MpOwogCiAJLyogQ2FsbGluZyB0aGlzIHdpdGhvdXQgY2FsbGluZyBvbmUgb2YgdGhlIGFib3Zl IGlzIGEgZmFpbHVyZSAqLwotCWFzc2VydCghdGVzdF93aXRoX3N1YnRlc3RzIHx8Ci0JICAgICAg IHNraXBwZWRfb25lIHx8Ci0JICAgICAgIHN1Y2NlZWRlZF9vbmUgfHwKLQkgICAgICAgZmFpbGVk X29uZSk7CisJaWd0X2ludGVybmFsX2Fzc2VydCghdGVzdF93aXRoX3N1YnRlc3RzIHx8CisJCQkg ICAgc2tpcHBlZF9vbmUgfHwKKwkJCSAgICBzdWNjZWVkZWRfb25lIHx8CisJCQkgICAgZmFpbGVk X29uZSk7CiAKIAlpZiAodGVzdF93aXRoX3N1YnRlc3RzICYmICFmYWlsZWRfb25lKSB7CiAJCWlm IChzdWNjZWVkZWRfb25lKQpAQCAtMTUzMSw3ICsxNTMxLDcgQEAgdm9pZCBpZ3RfZXhpdCh2b2lk KQogCQlraWxsKHRlc3RfY2hpbGRyZW5bY10sIFNJR0tJTEwpOwogCWFzc2VydCghbnVtX3Rlc3Rf Y2hpbGRyZW4pOwogCi0JYXNzZXJ0KHdhaXRwaWQoLTEsICZ0bXAsIFdOT0hBTkcpID09IC0xICYm IGVycm5vID09IEVDSElMRCk7CisJaWd0X2ludGVybmFsX2Fzc2VydCh3YWl0cGlkKC0xLCAmdG1w LCBXTk9IQU5HKSA9PSAtMSAmJiBlcnJubyA9PSBFQ0hJTEQpOwogCiAJaWYgKCF0ZXN0X3dpdGhf c3VidGVzdHMpIHsKIAkJc3RydWN0IHRpbWVzcGVjIG5vdzsKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf Y29yZS5oIGIvbGliL2lndF9jb3JlLmgKaW5kZXggNDdmZmQ5ZTcuLmVlZDM5YmJmIDEwMDY0NAot LS0gYS9saWIvaWd0X2NvcmUuaAorKysgYi9saWIvaWd0X2NvcmUuaApAQCAtNzQ3LDYgKzc0Nywy NCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaWd0X2lnbm9yZV93YXJuKGJvb2wgdmFsdWUpCiAJZWxz ZSBpZ3RfZGVidWcoIlRlc3QgcmVxdWlyZW1lbnQgcGFzc2VkOiAhKCVzKVxuIiwgI2V4cHIpOyBc CiB9IHdoaWxlICgwKQogCisvKioKKyAqIGlndF9pbnRlcm5hbF9hc3NlcnQ6CisgKiBAZXhwcjog Y29uZGl0aW9uIHRvIHRlc3QKKyAqCisgKiBJZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBmYWlscywg cHJpbnQgYW4gZXJyb3IgdG8gc3RkZXJyIGFuZCBhYm9ydCgpCisgKiBpbW1lZGlhdGVseS4gVGhp cyBpcyBpbnRlbmRlZCBmb3IgdXNlIG9ubHkgYnkgdGhlIGlndCBoZWxwZXJzIGluIG9yZGVyIHRv CisgKiBjaGVjayBmb3IgaW5jb3JyZWN0IHVzYWdlcyBvZiB0aGUgaGVscGVycyBvciBvdGhlciBl eHRyYW9yZGluYXJ5IGNvbmRpdGlvbnMuCisgKgorICogVGhpcyBzaG91bGQgbmV2ZXIgYmUgdXNl ZCB3aXRoaW4gYSBub3JtYWwgdGVzdC4gRG9pbmcgc28gd2lsbCBhbGVydAorICogdmVsb2NpcmFw dG9ycyB0byB5b3VyIGxvY2F0aW9uLgorICovCisjZGVmaW5lIGlndF9pbnRlcm5hbF9hc3NlcnQo ZXhwcikgZG8geyBcCisJaWYgKCEoZXhwcikpIHsgXAorCQlpZ3RfY3JpdGljYWwoIkludGVybmFs IGFzc2VydGlvbiBmYWlsZWQ6IGAlc2BcbiIsICNleHByKTsgXAorCQlhYm9ydCgpOyBcCisJfSBc Cit9IHdoaWxlICgwKQorCiAvKiBmb3JrIHN1cHBvcnQgY29kZSAqLwogYm9vbCBfX2lndF9mb3Jr KHZvaWQpOwogCmRpZmYgLS1naXQgYS9saWIvdGVzdHMvaWd0X2Fzc2VydC5jIGIvbGliL3Rlc3Rz L2lndF9hc3NlcnQuYwppbmRleCAxY2FmNWQ4OC4uYThjYTFhMzEgMTAwNjQ0Ci0tLSBhL2xpYi90 ZXN0cy9pZ3RfYXNzZXJ0LmMKKysrIGIvbGliL3Rlc3RzL2lndF9hc3NlcnQuYwpAQCAtNjIsNyAr NjIsNyBAQCBzdGF0aWMgaW50IGRvX2Zvcmsodm9pZCkKIAogCXN3aXRjaCAocGlkID0gZm9yaygp KSB7CiAJY2FzZSAtMToKLQkJaW50ZXJuYWxfYXNzZXJ0KDApOworCQlpZ3RfaW50ZXJuYWxfYXNz ZXJ0KDApOwogCWNhc2UgMDoKIAkJYXJnYyA9IEFSUkFZX1NJWkUoYXJndl9ydW4pOwogCQlpZ3Rf c2ltcGxlX2luaXQoYXJnYywgYXJndl9ydW4pOwpkaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL2lndF9j YW5fZmFpbC5jIGIvbGliL3Rlc3RzL2lndF9jYW5fZmFpbC5jCmluZGV4IDFlM2Q5NTU4Li5hZTU0 NjY0NCAxMDA2NDQKLS0tIGEvbGliL3Rlc3RzL2lndF9jYW5fZmFpbC5jCisrKyBiL2xpYi90ZXN0 cy9pZ3RfY2FuX2ZhaWwuYwpAQCAtMjgsMTcgKzI4LDE3IEBACiAKIGlndF9tYWluCiB7Ci0JaW50 ZXJuYWxfYXNzZXJ0KGlndF9jYW5fZmFpbCgpID09IGZhbHNlKTsKKwlpZ3RfaW50ZXJuYWxfYXNz ZXJ0KGlndF9jYW5fZmFpbCgpID09IGZhbHNlKTsKIAogCWlndF9maXh0dXJlIHsKLQkJaW50ZXJu YWxfYXNzZXJ0KGlndF9jYW5fZmFpbCgpKTsKKwkJaWd0X2ludGVybmFsX2Fzc2VydChpZ3RfY2Fu X2ZhaWwoKSk7CiAJfQogCi0JaW50ZXJuYWxfYXNzZXJ0KGlndF9jYW5fZmFpbCgpID09IGZhbHNl KTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KGlndF9jYW5fZmFpbCgpID09IGZhbHNlKTsKIAogCWln dF9zdWJ0ZXN0KCJzdWJ0ZXN0IikgewotCQlpbnRlcm5hbF9hc3NlcnQoaWd0X2Nhbl9mYWlsKCkp OworCQlpZ3RfaW50ZXJuYWxfYXNzZXJ0KGlndF9jYW5fZmFpbCgpKTsKIAl9CiAKLQlpbnRlcm5h bF9hc3NlcnQoaWd0X2Nhbl9mYWlsKCkgPT0gZmFsc2UpOworCWlndF9pbnRlcm5hbF9hc3NlcnQo aWd0X2Nhbl9mYWlsKCkgPT0gZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL2lndF9j YW5fZmFpbF9zaW1wbGUuYyBiL2xpYi90ZXN0cy9pZ3RfY2FuX2ZhaWxfc2ltcGxlLmMKaW5kZXgg OGZmNDNkMTUuLjRmMmU0YTc4IDEwMDY0NAotLS0gYS9saWIvdGVzdHMvaWd0X2Nhbl9mYWlsX3Np bXBsZS5jCisrKyBiL2xpYi90ZXN0cy9pZ3RfY2FuX2ZhaWxfc2ltcGxlLmMKQEAgLTI4LDUgKzI4 LDUgQEAKIAogaWd0X3NpbXBsZV9tYWluCiB7Ci0JaW50ZXJuYWxfYXNzZXJ0KGlndF9jYW5fZmFp bCgpKTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KGlndF9jYW5fZmFpbCgpKTsKIH0KZGlmZiAtLWdp dCBhL2xpYi90ZXN0cy9pZ3RfZXhpdF9oYW5kbGVyLmMgYi9saWIvdGVzdHMvaWd0X2V4aXRfaGFu ZGxlci5jCmluZGV4IDg5MmE3ZjE0Li4yMjBjOTA4NSAxMDA2NDQKLS0tIGEvbGliL3Rlc3RzL2ln dF9leGl0X2hhbmRsZXIuYworKysgYi9saWIvdGVzdHMvaWd0X2V4aXRfaGFuZGxlci5jCkBAIC0z NSw3ICszNSw3IEBAIGludCBwaXBlc1syXTsKIAogc3RhdGljIHZvaWQgZXhpdF9oYW5kbGVyMShp bnQgc2lnKQogewotCWludGVybmFsX2Fzc2VydCh0ZXN0ID09IDEpOworCWlndF9pbnRlcm5hbF9h c3NlcnQodGVzdCA9PSAxKTsKIAl0ZXN0Kys7CiB9CiAKQEAgLTQ0LDEyICs0NCwxMiBAQCBzdGF0 aWMgdm9pZCBleGl0X2hhbmRsZXIyKGludCBzaWcpCiAJY2hhciB0bXAgPSAxOwogCiAJLyogZW5z dXJlIGV4aXQgaGFuZGxlcnMgYXJlIGNhbGxlZCBpbiByZXZlcnNlICovCi0JaW50ZXJuYWxfYXNz ZXJ0KHRlc3QgPT0gMCk7CisJaWd0X2ludGVybmFsX2Fzc2VydCh0ZXN0ID09IDApOwogCXRlc3Qr KzsKIAogCS8qIHdlIG5lZWQgdG8gZ2V0IGEgc2lkZSBlZmZlY3QgdG8gdGhlIHBhcmVudCB0byBt YWtlIHN1cmUgZXhpdCBoYW5kbGVycwogCSAqIGFjdHVhbGx5IHJ1bi4gKi8KLQlpbnRlcm5hbF9h c3NlcnQod3JpdGUocGlwZXNbMV0sICZ0bXAsIDEpID09IDEpOworCWlndF9pbnRlcm5hbF9hc3Nl cnQod3JpdGUocGlwZXNbMV0sICZ0bXAsIDEpID09IDEpOwogfQogCiBlbnVtIHRlc3RfdHlwZSB7 CkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBpbnQgdGVzdGZ1bmMoZW51bSB0ZXN0X3R5cGUgdGVz dF90eXBlKQogCWludCBzdGF0dXM7CiAJY2hhciB0bXAgPSAwOwogCi0JaW50ZXJuYWxfYXNzZXJ0 KHBpcGUyKHBpcGVzLCBPX05PTkJMT0NLKSA9PSAwKTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KHBp cGUyKHBpcGVzLCBPX05PTkJMT0NLKSA9PSAwKTsKIAogCXBpZCA9IGZvcmsoKTsKIApAQCAtMTAy LDEwICsxMDIsMTAgQEAgc3RhdGljIGludCB0ZXN0ZnVuYyhlbnVtIHRlc3RfdHlwZSB0ZXN0X3R5 cGUpCiAJCWlndF9leGl0KCk7CiAJfQogCi0JaW50ZXJuYWxfYXNzZXJ0KHdhaXRwaWQocGlkLCAm c3RhdHVzLCAwKSAhPSAtMSk7CisJaWd0X2ludGVybmFsX2Fzc2VydCh3YWl0cGlkKHBpZCwgJnN0 YXR1cywgMCkgIT0gLTEpOwogCi0JaW50ZXJuYWxfYXNzZXJ0KHJlYWQocGlwZXNbMF0sICZ0bXAs IDEpID09IDEpOwotCWludGVybmFsX2Fzc2VydCh0bXAgPT0gMSk7CisJaWd0X2ludGVybmFsX2Fz c2VydChyZWFkKHBpcGVzWzBdLCAmdG1wLCAxKSA9PSAxKTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0 KHRtcCA9PSAxKTsKIAogCXJldHVybiBzdGF0dXM7CiB9CkBAIC0xMTQsOSArMTE0LDkgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBzdGF0dXM7CiAKLQlpbnRlcm5h bF9hc3NlcnQodGVzdGZ1bmMoU1VDKSA9PSAwKTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KHRlc3Rm dW5jKFNVQykgPT0gMCk7CiAKLQlpbnRlcm5hbF9hc3NlcnQodGVzdGZ1bmMoTk9STUFMKSA9PSAw KTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KHRlc3RmdW5jKE5PUk1BTCkgPT0gMCk7CiAKIAlzdGF0 dXMgPSB0ZXN0ZnVuYyhGQUlMKTsKIAlpbnRlcm5hbF9hc3NlcnRfd2V4aXRlZChzdGF0dXMsIDEp OwpkaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL2lndF9mb3JrLmMgYi9saWIvdGVzdHMvaWd0X2Zvcmsu YwppbmRleCA3ZThiNGY5Yi4uYjhlNDM3ZTAgMTAwNjQ0Ci0tLSBhL2xpYi90ZXN0cy9pZ3RfZm9y ay5jCisrKyBiL2xpYi90ZXN0cy9pZ3RfZm9yay5jCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyB2 b2lkIHBsYWluX2ZvcmtfbGVhayh2b2lkKQogCiAJc3dpdGNoIChwaWQgPSBmb3JrKCkpIHsKIAlj YXNlIC0xOgotCQlpbnRlcm5hbF9hc3NlcnQoMCk7CisJCWlndF9pbnRlcm5hbF9hc3NlcnQoMCk7 CiAJY2FzZSAwOgogCQlzbGVlcCgxKTsKIAlkZWZhdWx0OgpAQCAtOTIsNyArOTIsNyBAQCBzdGF0 aWMgaW50IGRvX2Zvcmsodm9pZCAoKnRlc3RfdG9fcnVuKSh2b2lkKSkKIAogCXN3aXRjaCAocGlk ID0gZm9yaygpKSB7CiAJY2FzZSAtMToKLQkJaW50ZXJuYWxfYXNzZXJ0KDApOworCQlpZ3RfaW50 ZXJuYWxfYXNzZXJ0KDApOwogCWNhc2UgMDoKIAkJYXJnYyA9IEFSUkFZX1NJWkUoYXJndl9ydW4p OwogCQlpZ3Rfc2ltcGxlX2luaXQoYXJnYywgYXJndl9ydW4pOwpkaWZmIC0tZ2l0IGEvbGliL3Rl c3RzL2lndF9pbnZhbGlkX3N1YnRlc3RfbmFtZS5jIGIvbGliL3Rlc3RzL2lndF9pbnZhbGlkX3N1 YnRlc3RfbmFtZS5jCmluZGV4IDkyZTc2N2FiLi42OTY2ODdmYyAxMDA2NDQKLS0tIGEvbGliL3Rl c3RzL2lndF9pbnZhbGlkX3N1YnRlc3RfbmFtZS5jCisrKyBiL2xpYi90ZXN0cy9pZ3RfaW52YWxp ZF9zdWJ0ZXN0X25hbWUuYwpAQCAtNjYsNyArNjYsNyBAQCBzdGF0aWMgaW50IGRvX2Zvcmsodm9p ZCAoKnRlc3RfdG9fcnVuKSh2b2lkKSkKIAogCXN3aXRjaCAocGlkID0gZm9yaygpKSB7CiAJY2Fz ZSAtMToKLQkJaW50ZXJuYWxfYXNzZXJ0KDApOworCQlpZ3RfaW50ZXJuYWxfYXNzZXJ0KDApOwog CWNhc2UgMDoKIAkJdGVzdF90b19ydW4oKTsKIAlkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvbGliL3Rl c3RzL2lndF9ub19leGl0LmMgYi9saWIvdGVzdHMvaWd0X25vX2V4aXQuYwppbmRleCA4MmYwMGI1 Mi4uM2VlZWY1YTQgMTAwNjQ0Ci0tLSBhL2xpYi90ZXN0cy9pZ3Rfbm9fZXhpdC5jCisrKyBiL2xp Yi90ZXN0cy9pZ3Rfbm9fZXhpdC5jCkBAIC02Miw3ICs2Miw3IEBAIHN0YXRpYyBpbnQgZG9fZm9y ayh2b2lkICgqdGVzdF90b19ydW4pKHZvaWQpKQogCiAJc3dpdGNoIChwaWQgPSBmb3JrKCkpIHsK IAljYXNlIC0xOgotCQlpbnRlcm5hbF9hc3NlcnQoMCk7CisJCWlndF9pbnRlcm5hbF9hc3NlcnQo MCk7CiAJY2FzZSAwOgogCQl0ZXN0X3RvX3J1bigpOwogCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9s aWIvdGVzdHMvaWd0X3NlZ2ZhdWx0LmMgYi9saWIvdGVzdHMvaWd0X3NlZ2ZhdWx0LmMKaW5kZXgg MGQ4NzJmNjcuLmI0YzViY2JkIDEwMDY0NAotLS0gYS9saWIvdGVzdHMvaWd0X3NlZ2ZhdWx0LmMK KysrIGIvbGliL3Rlc3RzL2lndF9zZWdmYXVsdC5jCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyBp bnQgZG9fZm9yayh2b2lkKQogCiAJc3dpdGNoIChwaWQgPSBmb3JrKCkpIHsKIAljYXNlIC0xOgot CQlpbnRlcm5hbF9hc3NlcnQoMCk7CisJCWlndF9pbnRlcm5hbF9hc3NlcnQoMCk7CiAJY2FzZSAw OgogCQlhcmdjID0gQVJSQVlfU0laRShhcmd2X3J1bik7CiAJCWlmIChzaW1wbGUpIHsKZGlmZiAt LWdpdCBhL2xpYi90ZXN0cy9pZ3Rfc2ltdWxhdGlvbi5jIGIvbGliL3Rlc3RzL2lndF9zaW11bGF0 aW9uLmMKaW5kZXggM2YzY2Q4OGYuLjg5OTY2NWQzIDEwMDY0NAotLS0gYS9saWIvdGVzdHMvaWd0 X3NpbXVsYXRpb24uYworKysgYi9saWIvdGVzdHMvaWd0X3NpbXVsYXRpb24uYwpAQCAtNTIsNyAr NTIsNyBAQCBzdGF0aWMgaW50IGRvX2Zvcmsodm9pZCkKIAogCXN3aXRjaCAocGlkID0gZm9yaygp KSB7CiAJY2FzZSAtMToKLQkJaW50ZXJuYWxfYXNzZXJ0KDApOworCQlpZ3RfaW50ZXJuYWxfYXNz ZXJ0KDApOwogCWNhc2UgMDoKIAkJaWYgKHNpbXBsZSkgewogCQkJYXJnYyA9IDE7CkBAIC05MCw3 ICs5MCw3IEBAIHN0YXRpYyBpbnQgZG9fZm9yayh2b2lkKQogCQkgICAgICAgZXJybm8gPT0gRUlO VFIpCiAJCQk7CiAKLQkJaW50ZXJuYWxfYXNzZXJ0KFdJRkVYSVRFRChzdGF0dXMpKTsKKwkJaWd0 X2ludGVybmFsX2Fzc2VydChXSUZFWElURUQoc3RhdHVzKSk7CiAKIAkJcmV0dXJuIHN0YXR1czsK IAl9CkBAIC0xMDAsNDAgKzEwMCw0MCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiB7CiAJLyogc2ltcGxlIHRlc3RzICovCiAJc2ltcGxlID0gdHJ1ZTsKLQlpbnRlcm5hbF9hc3Nl cnQoc2V0ZW52KCJJTlRFTF9TSU1VTEFUSU9OIiwgIjEiLCAxKSA9PSAwKTsKLQlpbnRlcm5hbF9h c3NlcnQoV0VYSVRTVEFUVVMoZG9fZm9yaygpKSA9PSBJR1RfRVhJVF9TS0lQKTsKKwlpZ3RfaW50 ZXJuYWxfYXNzZXJ0KHNldGVudigiSU5URUxfU0lNVUxBVElPTiIsICIxIiwgMSkgPT0gMCk7CisJ aWd0X2ludGVybmFsX2Fzc2VydChXRVhJVFNUQVRVUyhkb19mb3JrKCkpID09IElHVF9FWElUX1NL SVApOwogCi0JaW50ZXJuYWxfYXNzZXJ0KHNldGVudigiSU5URUxfU0lNVUxBVElPTiIsICIwIiwg MSkgPT0gMCk7Ci0JaW50ZXJuYWxfYXNzZXJ0KFdFWElUU1RBVFVTKGRvX2ZvcmsoKSkgPT0gSUdU X0VYSVRfU1VDQ0VTUyk7CisJaWd0X2ludGVybmFsX2Fzc2VydChzZXRlbnYoIklOVEVMX1NJTVVM QVRJT04iLCAiMCIsIDEpID09IDApOworCWlndF9pbnRlcm5hbF9hc3NlcnQoV0VYSVRTVEFUVVMo ZG9fZm9yaygpKSA9PSBJR1RfRVhJVF9TVUNDRVNTKTsKIAogCS8qIHN1YnRlc3RzLCBsaXN0IG1v ZGUgKi8KIAlzaW1wbGUgPSBmYWxzZTsKIAlsaXN0X3N1YnRlc3RzID0gdHJ1ZTsKIAogCWluX2Zp eHR1cmUgPSBmYWxzZTsKLQlpbnRlcm5hbF9hc3NlcnQoc2V0ZW52KCJJTlRFTF9TSU1VTEFUSU9O IiwgIjEiLCAxKSA9PSAwKTsKLQlpbnRlcm5hbF9hc3NlcnQoV0VYSVRTVEFUVVMoZG9fZm9yaygp KSA9PSBJR1RfRVhJVF9TVUNDRVNTKTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KHNldGVudigiSU5U RUxfU0lNVUxBVElPTiIsICIxIiwgMSkgPT0gMCk7CisJaWd0X2ludGVybmFsX2Fzc2VydChXRVhJ VFNUQVRVUyhkb19mb3JrKCkpID09IElHVF9FWElUX1NVQ0NFU1MpOwogCi0JaW50ZXJuYWxfYXNz ZXJ0KHNldGVudigiSU5URUxfU0lNVUxBVElPTiIsICIwIiwgMSkgPT0gMCk7Ci0JaW50ZXJuYWxf YXNzZXJ0KFdFWElUU1RBVFVTKGRvX2ZvcmsoKSkgPT0gSUdUX0VYSVRfU1VDQ0VTUyk7CisJaWd0 X2ludGVybmFsX2Fzc2VydChzZXRlbnYoIklOVEVMX1NJTVVMQVRJT04iLCAiMCIsIDEpID09IDAp OworCWlndF9pbnRlcm5hbF9hc3NlcnQoV0VYSVRTVEFUVVMoZG9fZm9yaygpKSA9PSBJR1RfRVhJ VF9TVUNDRVNTKTsKIAogCWluX2ZpeHR1cmUgPSB0cnVlOwotCWludGVybmFsX2Fzc2VydChzZXRl bnYoIklOVEVMX1NJTVVMQVRJT04iLCAiMSIsIDEpID09IDApOwotCWludGVybmFsX2Fzc2VydChX RVhJVFNUQVRVUyhkb19mb3JrKCkpID09IElHVF9FWElUX1NVQ0NFU1MpOworCWlndF9pbnRlcm5h bF9hc3NlcnQoc2V0ZW52KCJJTlRFTF9TSU1VTEFUSU9OIiwgIjEiLCAxKSA9PSAwKTsKKwlpZ3Rf aW50ZXJuYWxfYXNzZXJ0KFdFWElUU1RBVFVTKGRvX2ZvcmsoKSkgPT0gSUdUX0VYSVRfU1VDQ0VT Uyk7CiAKIAotCWludGVybmFsX2Fzc2VydChzZXRlbnYoIklOVEVMX1NJTVVMQVRJT04iLCAiMCIs IDEpID09IDApOwotCWludGVybmFsX2Fzc2VydChXRVhJVFNUQVRVUyhkb19mb3JrKCkpID09IElH VF9FWElUX1NVQ0NFU1MpOworCWlndF9pbnRlcm5hbF9hc3NlcnQoc2V0ZW52KCJJTlRFTF9TSU1V TEFUSU9OIiwgIjAiLCAxKSA9PSAwKTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KFdFWElUU1RBVFVT KGRvX2ZvcmsoKSkgPT0gSUdUX0VYSVRfU1VDQ0VTUyk7CiAKIAogCWluX2ZpeHR1cmUgPSBmYWxz ZTsKIAlpbl9zdWJ0ZXN0ID0gdHJ1ZTsKLQlpbnRlcm5hbF9hc3NlcnQoc2V0ZW52KCJJTlRFTF9T SU1VTEFUSU9OIiwgIjEiLCAxKSA9PSAwKTsKLQlpbnRlcm5hbF9hc3NlcnQoV0VYSVRTVEFUVVMo ZG9fZm9yaygpKSA9PSBJR1RfRVhJVF9TVUNDRVNTKTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KHNl dGVudigiSU5URUxfU0lNVUxBVElPTiIsICIxIiwgMSkgPT0gMCk7CisJaWd0X2ludGVybmFsX2Fz c2VydChXRVhJVFNUQVRVUyhkb19mb3JrKCkpID09IElHVF9FWElUX1NVQ0NFU1MpOwogCiAKLQlp bnRlcm5hbF9hc3NlcnQoc2V0ZW52KCJJTlRFTF9TSU1VTEFUSU9OIiwgIjAiLCAxKSA9PSAwKTsK LQlpbnRlcm5hbF9hc3NlcnQoV0VYSVRTVEFUVVMoZG9fZm9yaygpKSA9PSBJR1RfRVhJVF9TVUND RVNTKTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KHNldGVudigiSU5URUxfU0lNVUxBVElPTiIsICIw IiwgMSkgPT0gMCk7CisJaWd0X2ludGVybmFsX2Fzc2VydChXRVhJVFNUQVRVUyhkb19mb3JrKCkp ID09IElHVF9FWElUX1NVQ0NFU1MpOwogCiAKIAkvKiBzdWJ0ZXN0LCBydW4gbW9kZSAqLwpAQCAt MTQxLDMwICsxNDEsMzAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWxpc3Rf c3VidGVzdHMgPSBmYWxzZTsKIAogCWluX2ZpeHR1cmUgPSBmYWxzZTsKLQlpbnRlcm5hbF9hc3Nl cnQoc2V0ZW52KCJJTlRFTF9TSU1VTEFUSU9OIiwgIjEiLCAxKSA9PSAwKTsKLQlpbnRlcm5hbF9h c3NlcnQoV0VYSVRTVEFUVVMoZG9fZm9yaygpKSA9PSBJR1RfRVhJVF9TS0lQKTsKKwlpZ3RfaW50 ZXJuYWxfYXNzZXJ0KHNldGVudigiSU5URUxfU0lNVUxBVElPTiIsICIxIiwgMSkgPT0gMCk7CisJ aWd0X2ludGVybmFsX2Fzc2VydChXRVhJVFNUQVRVUyhkb19mb3JrKCkpID09IElHVF9FWElUX1NL SVApOwogCi0JaW50ZXJuYWxfYXNzZXJ0KHNldGVudigiSU5URUxfU0lNVUxBVElPTiIsICIwIiwg MSkgPT0gMCk7Ci0JaW50ZXJuYWxfYXNzZXJ0KFdFWElUU1RBVFVTKGRvX2ZvcmsoKSkgPT0gSUdU X0VYSVRfU1VDQ0VTUyk7CisJaWd0X2ludGVybmFsX2Fzc2VydChzZXRlbnYoIklOVEVMX1NJTVVM QVRJT04iLCAiMCIsIDEpID09IDApOworCWlndF9pbnRlcm5hbF9hc3NlcnQoV0VYSVRTVEFUVVMo ZG9fZm9yaygpKSA9PSBJR1RfRVhJVF9TVUNDRVNTKTsKIAogCiAJaW5fZml4dHVyZSA9IHRydWU7 Ci0JaW50ZXJuYWxfYXNzZXJ0KHNldGVudigiSU5URUxfU0lNVUxBVElPTiIsICIxIiwgMSkgPT0g MCk7Ci0JaW50ZXJuYWxfYXNzZXJ0KFdFWElUU1RBVFVTKGRvX2ZvcmsoKSkgPT0gSUdUX0VYSVRf U0tJUCk7CisJaWd0X2ludGVybmFsX2Fzc2VydChzZXRlbnYoIklOVEVMX1NJTVVMQVRJT04iLCAi MSIsIDEpID09IDApOworCWlndF9pbnRlcm5hbF9hc3NlcnQoV0VYSVRTVEFUVVMoZG9fZm9yaygp KSA9PSBJR1RfRVhJVF9TS0lQKTsKIAogCi0JaW50ZXJuYWxfYXNzZXJ0KHNldGVudigiSU5URUxf U0lNVUxBVElPTiIsICIwIiwgMSkgPT0gMCk7Ci0JaW50ZXJuYWxfYXNzZXJ0KFdFWElUU1RBVFVT KGRvX2ZvcmsoKSkgPT0gSUdUX0VYSVRfU1VDQ0VTUyk7CisJaWd0X2ludGVybmFsX2Fzc2VydChz ZXRlbnYoIklOVEVMX1NJTVVMQVRJT04iLCAiMCIsIDEpID09IDApOworCWlndF9pbnRlcm5hbF9h c3NlcnQoV0VYSVRTVEFUVVMoZG9fZm9yaygpKSA9PSBJR1RfRVhJVF9TVUNDRVNTKTsKIAogCiAJ aW5fZml4dHVyZSA9IGZhbHNlOwogCWluX3N1YnRlc3QgPSB0cnVlOwotCWludGVybmFsX2Fzc2Vy dChzZXRlbnYoIklOVEVMX1NJTVVMQVRJT04iLCAiMSIsIDEpID09IDApOwotCWludGVybmFsX2Fz c2VydChXRVhJVFNUQVRVUyhkb19mb3JrKCkpID09IElHVF9FWElUX1NLSVApOworCWlndF9pbnRl cm5hbF9hc3NlcnQoc2V0ZW52KCJJTlRFTF9TSU1VTEFUSU9OIiwgIjEiLCAxKSA9PSAwKTsKKwlp Z3RfaW50ZXJuYWxfYXNzZXJ0KFdFWElUU1RBVFVTKGRvX2ZvcmsoKSkgPT0gSUdUX0VYSVRfU0tJ UCk7CiAKIAotCWludGVybmFsX2Fzc2VydChzZXRlbnYoIklOVEVMX1NJTVVMQVRJT04iLCAiMCIs IDEpID09IDApOwotCWludGVybmFsX2Fzc2VydChXRVhJVFNUQVRVUyhkb19mb3JrKCkpID09IElH VF9FWElUX1NVQ0NFU1MpOworCWlndF9pbnRlcm5hbF9hc3NlcnQoc2V0ZW52KCJJTlRFTF9TSU1V TEFUSU9OIiwgIjAiLCAxKSA9PSAwKTsKKwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KFdFWElUU1RBVFVT KGRvX2ZvcmsoKSkgPT0gSUdUX0VYSVRfU1VDQ0VTUyk7CiAKIAogCXJldHVybiAwOwpkaWZmIC0t Z2l0IGEvbGliL3Rlc3RzL2lndF9zdWJ0ZXN0X2dyb3VwLmMgYi9saWIvdGVzdHMvaWd0X3N1YnRl c3RfZ3JvdXAuYwppbmRleCA3NzgzZDAyMS4uZDQxYWM1ZmIgMTAwNjQ0Ci0tLSBhL2xpYi90ZXN0 cy9pZ3Rfc3VidGVzdF9ncm91cC5jCisrKyBiL2xpYi90ZXN0cy9pZ3Rfc3VidGVzdF9ncm91cC5j CkBAIC00Miw3ICs0Miw3IEBAIGlndF9tYWluCiAJCQl9CiAKIAkJCWlndF9zdWJ0ZXN0KCJub3Qt cnVuIikgewotCQkJCWludGVybmFsX2Fzc2VydCgwKTsKKwkJCQlpZ3RfaW50ZXJuYWxfYXNzZXJ0 KDApOwogCQkJfQogCiAJCQlpZ3Rfc3VidGVzdF9ncm91cCB7CkBAIC01MCwzNSArNTAsMzUgQEAg aWd0X21haW4KIAkJCQkgKiByZXN0b3JlIHRvICJydW4gdGVzdGNhc2VzIiB3aGVuIGFuIG91dGVy CiAJCQkJICogZ3JvdXAgaXMgYWxyZWFkeSBpbiBTS0lQIHN0YXRlLiAqLwogCQkJCWlndF9zdWJ0 ZXN0KCJzdGlsbC1ub3QtcnVuIikgewotCQkJCQlpbnRlcm5hbF9hc3NlcnQoMCk7CisJCQkJCWln dF9pbnRlcm5hbF9hc3NlcnQoMCk7CiAJCQkJfQogCQkJfQogCQl9CiAKIAkJaWd0X3N1YnRlc3Qo InJ1biIpIHsKIAkJCXQxID0gdHJ1ZTsKLQkJCWludGVybmFsX2Fzc2VydCgxKTsKKwkJCWlndF9p bnRlcm5hbF9hc3NlcnQoMSk7CiAJCX0KIAl9CiAKIAlpZ3Rfc3VidGVzdF9ncm91cCB7CiAJCWln dF9maXh0dXJlIHsKLQkJCWludGVybmFsX2Fzc2VydCh0MiA9PSAwKTsKKwkJCWlndF9pbnRlcm5h bF9hc3NlcnQodDIgPT0gMCk7CiAJCQl0MiA9IDE7CiAJCX0KIAogCQlpZ3Rfc3VidGVzdCgicnVu LWFnYWluIikgewotCQkJaW50ZXJuYWxfYXNzZXJ0KHQyID09IDEpOworCQkJaWd0X2ludGVybmFs X2Fzc2VydCh0MiA9PSAxKTsKIAkJCXQyID0gMjsKIAkJfQogCiAJCWlndF9maXh0dXJlIHsKLQkJ CWludGVybmFsX2Fzc2VydCh0MiA9PSAyKTsKKwkJCWlndF9pbnRlcm5hbF9hc3NlcnQodDIgPT0g Mik7CiAJCQl0MiA9IDM7CiAKIAkJfQogCX0KIAotCWludGVybmFsX2Fzc2VydCh0MSk7Ci0JaW50 ZXJuYWxfYXNzZXJ0KHQyID09IDMpOworCWlndF9pbnRlcm5hbF9hc3NlcnQodDEpOworCWlndF9p bnRlcm5hbF9hc3NlcnQodDIgPT0gMyk7CiB9CmRpZmYgLS1naXQgYS9saWIvdGVzdHMvaWd0X3Rl c3RzX2NvbW1vbi5oIGIvbGliL3Rlc3RzL2lndF90ZXN0c19jb21tb24uaAppbmRleCBlNjZlZTM3 Yy4uYzQ0YmZjM2MgMTAwNjQ0Ci0tLSBhL2xpYi90ZXN0cy9pZ3RfdGVzdHNfY29tbW9uLmgKKysr IGIvbGliL3Rlc3RzL2lndF90ZXN0c19jb21tb24uaApAQCAtMjUsMjUgKzI1LDIyIEBACiAjaWZu ZGVmIElHVF9MSUJfVEVTVFNfQ09NTU9OX0gKICNkZWZpbmUgSUdUX0xJQl9URVNUU19DT01NT05f SAogCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSAiaWd0X2NvcmUuaCIKIAogLyoKLSAq IFdlIG5lZWQgdG8gaGlkZSBhc3NlcnQgZnJvbSB0aGUgY29jY2kgaWd0IHRlc3QgcmVmYWN0b3Ig c3BhdGNoLgotICoKLSAqIElNUE9SVEFOVDogVGVzdCBpbmZyYXN0cnVjdHVyZSB0ZXN0cyBhcmUg dGhlIG9ubHkgdmFsaWQgcGxhY2VzIHdoZXJlIHVzaW5nCi0gKiBhc3NlcnQgaXMgYWxsb3dlZC4K KyAqIElNUE9SVEFOVDogV2UgdXNlZCB0byBkZWZpbmUgYSB3cmFwcGVyIGFyb3VuZCBhc3NlcnQo KSBoZXJlLCBidXQgc2luY2UgdGhpcworICogYnJlYWtzIGFsbCBvZiBvdXIgdGVzdHMgaWYgZGVi dWcgYXNzZXJ0aW9ucyBhcmUgdHVybmVkIG9mZiB0aGlzIHR1cm5lZCBvdXQgdG8KKyAqIGJlIGEg cmVhbGx5IGJhZCBpZGVhLiBEb24ndCBhZGQgaXQgYmFjayEKICAqLwotI2RlZmluZSBpbnRlcm5h bF9hc3NlcnQgYXNzZXJ0Ci0KIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlcm5hbF9hc3NlcnRfd2V4 aXRlZChpbnQgd3N0YXR1cywgaW50IGV4aXRjb2RlKQogewotCWludGVybmFsX2Fzc2VydChXSUZF WElURUQod3N0YXR1cykgJiYKLQkJCVdFWElUU1RBVFVTKHdzdGF0dXMpID09IGV4aXRjb2RlKTsK KwlpZ3RfaW50ZXJuYWxfYXNzZXJ0KFdJRkVYSVRFRCh3c3RhdHVzKSAmJgorCQkJICAgIFdFWElU U1RBVFVTKHdzdGF0dXMpID09IGV4aXRjb2RlKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGlu dGVybmFsX2Fzc2VydF93c2lnbmFsZWQoaW50IHdzdGF0dXMsIGludCBzaWduYWwpCiB7Ci0JaW50 ZXJuYWxfYXNzZXJ0KFdJRlNJR05BTEVEKHdzdGF0dXMpICYmCi0JCQlXVEVSTVNJRyh3c3RhdHVz KSA9PSBzaWduYWwpOworCWlndF9pbnRlcm5hbF9hc3NlcnQoV0lGU0lHTkFMRUQod3N0YXR1cykg JiYKKwkJCSAgICBXVEVSTVNJRyh3c3RhdHVzKSA9PSBzaWduYWwpOwogfQogI2VuZGlmCi0tIAoy LjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmln dC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==