From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id D64883857706 for ; Mon, 13 Nov 2023 21:01:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D64883857706 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D64883857706 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.220.29 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699909320; cv=none; b=xiUgTfoqaTUSGNr+LA4t2Rg7Ty10nJWJCaDoWJczUk2Y5AaRBhJw3K4u+PEAKsi31K1pImc355NW94tnlFvBdrFwtU1Zq6TJiw1YlOLjMivP+O/ojWO3xW/HPSRuLBz7wXPY1At8sEqhnxCDe8xvd5TzjLgyesY7073AnwxKjMM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699909320; c=relaxed/simple; bh=tB1lv/UhhTUyEZqoKs9DLmtCMqyQkjf62ZwAF6m7DNI=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:MIME-Version: Subject:To:From; b=JPFszhOPKljW4T5HarQmSb2thXzKPGeurOZkSik/QdJqsh7D9SzoCLwPNA/wb+Zo67GmowYqDk5kz8jw90av+krTFr73UN57oCwgfDBzlBwU0S4ARshsKsyaNc6JgC4C3f2lG1ZeLn1K5wpj7Ly+rE1ioHFFgA8svMCOECvVpW0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id DF5F41F854; Mon, 13 Nov 2023 21:01:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1699909317; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=e5VlB2DkzlC0OPjRUOn28T3gn/phACBOr3evkdRTxLk=; b=zYAmPw001EHp82+gtzZZxqZpobIwJw9Z8mSrHaQ64KehDqbLiMl94ppoITwv4rIg/O/zml o4uIK/UvmeRX80Mm7qiix+KsTSEmxLkoTmaSROXYoFF5CZwNtKMIrzy/0k0K1iL9MmNnYJ sBvBfLHjRuokuolM+JVMGXv56SFLQjI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1699909317; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=e5VlB2DkzlC0OPjRUOn28T3gn/phACBOr3evkdRTxLk=; b=iXzhkRKKMYXmoLhIvjFe4OI9aaAAYmVUm5vOiGmuLrhY0vMMeKUBriwX78KPmMqRoEyMcF oDl1+G21EXTsdCBA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C9AC513398; Mon, 13 Nov 2023 21:01:57 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id WjgbMMWOUmWnZgAAMHmgww (envelope-from ); Mon, 13 Nov 2023 21:01:57 +0000 Content-Type: multipart/mixed; boundary="------------HK0KW00KEIpf4cC6TQneP3Q7" Message-ID: Date: Mon, 13 Nov 2023 22:03:33 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] [gdb/tui] Factor out tui_noscroll_window et al Content-Language: en-US To: Tom Tromey Cc: gdb-patches@sourceware.org References: <20231112150601.25484-1-tdevries@suse.de> <87r0kttwba.fsf@tromey.com> From: Tom de Vries In-Reply-To: <87r0kttwba.fsf@tromey.com> X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------HK0KW00KEIpf4cC6TQneP3Q7 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/13/23 18:08, Tom Tromey wrote: >>>>>> "Tom" == Tom de Vries writes: > > Tom> +/* A TUI window that doesn't scroll. */ > Tom> + > Tom> +struct tui_noscroll_window : public virtual tui_win_info { > > The "{" should be on the next line. > Done. > Tom> +/* A TUI window that occupies a single line. */ > Tom> + > Tom> +struct tui_oneline_window : public virtual tui_win_info { > > Some of these only have a single use. That seems like overkill to me, > unless we're introducing another use someday. > I understand that position, but I prefer this, even if there's one use (so, I've left it as is for now, if you object I'll drop the single use ones). In particular, I like how much shorter some window declaration are, it makes them easier to read imo. I think this style moves the boiler plate code out of the way and makes the window declaration more focused on the specifics of what it's trying to achieve. > Tom> +#define TUI_SRC_WIN \ > Tom> + (dynamic_cast (tui_win_list[SRC_WIN])) > Tom> +#define TUI_DISASM_WIN \ > Tom> + (dynamic_cast (tui_win_list[DISASSEM_WIN])) > > I think these should use gdb::checked_static_cast. Done. Thanks, - Tom --------------HK0KW00KEIpf4cC6TQneP3Q7 Content-Type: text/x-patch; charset=UTF-8; name="0001-gdb-tui-Factor-out-tui_noscroll_window-et-al.patch" Content-Disposition: attachment; filename="0001-gdb-tui-Factor-out-tui_noscroll_window-et-al.patch" Content-Transfer-Encoding: base64 RnJvbSBjNWIwODI1YWEzODk0ZDcxYzcwNmU5ODkwMThiNWZmNWIxYWEyNmRhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gZGUgVnJpZXMgPHRkZXZyaWVzQHN1c2UuZGU+ CkRhdGU6IFN1biwgMTIgTm92IDIwMjMgMTE6MTA6MjIgKzAxMDAKU3ViamVjdDogW1BBVENI XSBbZ2RiL3R1aV0gRmFjdG9yIG91dCB0dWlfbm9zY3JvbGxfd2luZG93IGV0IGFsCgpJIG5v dGljZWQgdGhhdCB0dWlfbG9jYXRvcl93aW5kb3cgaGFzIGFuIGVtcHR5IGRvX3Njcm9sbF92 ZXJ0aWNhbCBhbmQKZG9fc2Nyb2xsX2hvcml6b250YWwsIGxpa2UgdHVpX2NtZF93aW5kb3cs IGJ1dCB1bmxpa2UgdHVpX2NtZF93aW5kb3cgZG9lc24ndApoYXZlOgouLi4KICBib29sIGNh bl9zY3JvbGwgKCkgY29uc3Qgb3ZlcnJpZGUKICB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQou Li4KCkkgc3VzcGVjdCB0aGF0IGl0IHByb2JhYmx5IGRvZXNuJ3QgbWF0dGVyLCBidXQgcmVn YXJkbGVzcyBpdCdzIGdvb2QgdG8gaGF2ZQp0aGUgc2FtZSBpbXBsZW1lbnRhdGlvbnMgb2Yg YmFzaWMgcHJvcGVydGllcyBpbiBhbGwgd2luZG93cy4KCkVuc3VyZSB0aGlzIGJ5IGFkZGlu ZyBhIGNsYXNzIHR1aV9ub3Njcm9sbF93aW5kb3csIHRoYXQgaGFzOgotIGFuIGVtcHR5IGRv X3Njcm9sbF92ZXJ0aWNhbCBhbmQgZG9fc2Nyb2xsX2hvcml6b250YWwsIGFuZAotIGEgY2Fu X3Njcm9sbCByZXR1cm5pbmcgZmFsc2UKd2hpY2ggYm90aCB0dWlfbG9jYXRvcl93aW5kb3cg YW5kIHR1aV9jbWRfd2luZG93IGluaGVyaXQuCgpNYWtlIGFsbCBtZXRob2RzIGZpbmFsIHRv IGVuc3VyZSBubyBhY2NpZGVudGFsIG92ZXJyaWRlcyBhcmUgbGVmdCBpbiB0aGUKaW5oZXJp dGluZyBjbGFzc2VzLgoKTGlrZXdpc2UgYWRkIG5ldyBjbGFzc2VzIHJlcHJlc2VudGluZyBi YXNpYyB3aW5kb3cgcHJvcGVydGllczoKLSB0dWlfbm9mb2N1c193aW5kb3csCi0gdHVpX29u ZWxpbmVfd2luZG93LAotIHR1aV9ub2JveF93aW5kb3csCi0gdHVpX25vcmVmcmVzaF93aW5k b3csIGFuZAotIHR1aV9hbHdheXNfdmlzaWJsZV93aW5kb3cuCgpUaGUgY2hhbmdlcyBhcmUg b25seSBhIHJlZmFjdG9yaW5nLCBhcGFydCBmcm9tIGFkZGluZyB0aGUgImZpbmFsIiwgd2hp Y2ggZG9lcwpsaW1pdCB0aGUgcmFuZ2Ugb2YgYmVoYXZpb3VycyBmb3Igc3ViY2xhc3Nlcy4K ClRlc3RlZCBvbiB4ODZfNjQtbGludXguCi0tLQogZ2RiL3R1aS90dWktY29tbWFuZC5oIHwg MzMgKystLS0tLS0tLS0tLS0tLQogZ2RiL3R1aS90dWktZGF0YS5oICAgIHwgOTIgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogZ2RiL3R1aS90dWktc3Rh Y2suaCAgIHwgMzQgKystLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNl cnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nZGIvdHVpL3R1aS1j b21tYW5kLmggYi9nZGIvdHVpL3R1aS1jb21tYW5kLmgKaW5kZXggZjY4NDI4ODBiYjIuLmQ3 NDNkZDg3YTFiIDEwMDY0NAotLS0gYS9nZGIvdHVpL3R1aS1jb21tYW5kLmgKKysrIGIvZ2Ri L3R1aS90dWktY29tbWFuZC5oCkBAIC0yNSw0OSArMjUsMjIgQEAKICNpbmNsdWRlICJ0dWkv dHVpLWRhdGEuaCIKIAogLyogVGhlIFRVSSBjb21tYW5kIHdpbmRvdy4gICovCi1zdHJ1Y3Qg dHVpX2NtZF93aW5kb3cgOiBwdWJsaWMgdHVpX3dpbl9pbmZvCitzdHJ1Y3QgdHVpX2NtZF93 aW5kb3cKKyAgOiBwdWJsaWMgdHVpX25vc2Nyb2xsX3dpbmRvdywgdHVpX25vYm94X3dpbmRv dywgdHVpX25vcmVmcmVzaF93aW5kb3csCisgICAgdHVpX2Fsd2F5c192aXNpYmxlX3dpbmRv dwogewogICB0dWlfY21kX3dpbmRvdyAoKSA9IGRlZmF1bHQ7CiAKICAgRElTQUJMRV9DT1BZ X0FORF9BU1NJR04gKHR1aV9jbWRfd2luZG93KTsKIAotICB2b2lkIHJlZnJlc2hfd2luZG93 ICgpIG92ZXJyaWRlCi0gIHsKLSAgfQotCiAgIGNvbnN0IGNoYXIgKm5hbWUgKCkgY29uc3Qg b3ZlcnJpZGUKICAgewogICAgIHJldHVybiBDTURfTkFNRTsKICAgfQogCi0gIGJvb2wgY2Fu X3Njcm9sbCAoKSBjb25zdCBvdmVycmlkZQotICB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9 Ci0KLSAgYm9vbCBjYW5fYm94ICgpIGNvbnN0IG92ZXJyaWRlCi0gIHsKLSAgICByZXR1cm4g ZmFsc2U7Ci0gIH0KLQogICB2b2lkIHJlc2l6ZSAoaW50IGhlaWdodCwgaW50IHdpZHRoLCBp bnQgb3JpZ2luX3gsIGludCBvcmlnaW5feSkgb3ZlcnJpZGU7CiAKLSAgdm9pZCBtYWtlX3Zp c2libGUgKGJvb2wgdmlzaWJsZSkgb3ZlcnJpZGUKLSAgewotICAgIC8qIFRoZSBjb21tYW5k IHdpbmRvdyBjYW4ndCBiZSBtYWRlIGludmlzaWJsZS4gICovCi0gIH0KLQogICBpbnQgc3Rh cnRfbGluZSA9IDA7Ci0KLXByb3RlY3RlZDoKLQotICB2b2lkIGRvX3Njcm9sbF92ZXJ0aWNh bCAoaW50IG51bV90b19zY3JvbGwpIG92ZXJyaWRlCi0gIHsKLSAgfQotCi0gIHZvaWQgZG9f c2Nyb2xsX2hvcml6b250YWwgKGludCBudW1fdG9fc2Nyb2xsKSBvdmVycmlkZQotICB7Ci0g IH0KIH07CiAKIC8qIFJlZnJlc2ggdGhlIGNvbW1hbmQgd2luZG93LiAgKi8KZGlmZiAtLWdp dCBhL2dkYi90dWkvdHVpLWRhdGEuaCBiL2dkYi90dWkvdHVpLWRhdGEuaAppbmRleCA1YmI1 ZWY5ZDk0MS4uODIzNDBlNTk0ZWUgMTAwNjQ0Ci0tLSBhL2dkYi90dWkvdHVpLWRhdGEuaAor KysgYi9nZGIvdHVpL3R1aS1kYXRhLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJ0 dWkvdHVpLmgiCiAjaW5jbHVkZSAiZ2RiX2N1cnNlcy5oIgogI2luY2x1ZGUgIm9ic2VydmFi bGUuaCIKKyNpbmNsdWRlICJnZGJzdXBwb3J0L2dkYi1jaGVja2VkLXN0YXRpYy1jYXN0Lmgi CiAKIC8qIEEgZGVsZXRlciB0aGF0IGNhbGxzIGRlbHdpbi4gICovCiBzdHJ1Y3QgY3Vyc2Vz X2RlbGV0ZXIKQEAgLTE5NCw2ICsxOTUsODIgQEAgc3RydWN0IHR1aV93aW5faW5mbwogICBz dGQ6OnN0cmluZyBtX3RpdGxlOwogfTsKIAorLyogQSBUVUkgd2luZG93IHRoYXQgZG9lc24n dCBzY3JvbGwuICAqLworCitzdHJ1Y3QgdHVpX25vc2Nyb2xsX3dpbmRvdyA6IHB1YmxpYyB2 aXJ0dWFsIHR1aV93aW5faW5mbworeworcHVibGljOgorICB2aXJ0dWFsIGJvb2wgY2FuX3Nj cm9sbCAoKSBjb25zdCBmaW5hbCBvdmVycmlkZQorICB7CisgICAgcmV0dXJuIGZhbHNlOwor ICB9CisKK3Byb3RlY3RlZDoKKyAgdmlydHVhbCB2b2lkIGRvX3Njcm9sbF92ZXJ0aWNhbCAo aW50IG51bV90b19zY3JvbGwpIGZpbmFsIG92ZXJyaWRlCisgIHsKKyAgfQorCisgIC8qIFNj cm9sbCB0aGUgY29udGVudHMgaG9yaXpvbnRhbGx5LiAgVGhpcyBpcyBvbmx5IGNhbGxlZCB2 aWEKKyAgICAgbGVmdF9zY3JvbGwgYW5kIHJpZ2h0X3Njcm9sbC4gICovCisgIHZpcnR1YWwg dm9pZCBkb19zY3JvbGxfaG9yaXpvbnRhbCAoaW50IG51bV90b19zY3JvbGwpIGZpbmFsIG92 ZXJyaWRlCisgIHsKKyAgfQorfTsKKworLyogQSBUVUkgd2luZG93IHRoYXQgY2Fubm90IGhh dmUgZm9jdXMuICAqLworCitzdHJ1Y3QgdHVpX25vZm9jdXNfd2luZG93IDogcHVibGljIHZp cnR1YWwgdHVpX3dpbl9pbmZvCit7CitwdWJsaWM6CisgIHZpcnR1YWwgYm9vbCBjYW5fZm9j dXMgKCkgY29uc3QgZmluYWwgb3ZlcnJpZGUKKyAgeworICAgIHJldHVybiBmYWxzZTsKKyAg fQorfTsKKworLyogQSBUVUkgd2luZG93IHRoYXQgb2NjdXBpZXMgYSBzaW5nbGUgbGluZS4g ICovCisKK3N0cnVjdCB0dWlfb25lbGluZV93aW5kb3cgOiBwdWJsaWMgdmlydHVhbCB0dWlf d2luX2luZm8KK3sKKyAgaW50IG1heF9oZWlnaHQgKCkgY29uc3QgZmluYWwgb3ZlcnJpZGUK KyAgeworICAgIHJldHVybiAxOworICB9CisKKyAgaW50IG1pbl9oZWlnaHQgKCkgY29uc3Qg ZmluYWwgb3ZlcnJpZGUKKyAgeworICAgIHJldHVybiAxOworICB9Cit9OworCisvKiBBIFRV SSB3aW5kb3cgdGhhdCBoYXMgbm8gYm9yZGVyLiAgKi8KKworc3RydWN0IHR1aV9ub2JveF93 aW5kb3cgOiBwdWJsaWMgdmlydHVhbCB0dWlfd2luX2luZm8KK3sKKyAgYm9vbCBjYW5fYm94 ICgpIGNvbnN0IGZpbmFsIG92ZXJyaWRlCisgIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0K K307CisKKy8qIEEgVFVJIHdpbmRvdyB0aGF0IGlzIG5vdCByZWZyZXNoZWQuICAqLworCitz dHJ1Y3QgdHVpX25vcmVmcmVzaF93aW5kb3cgOiBwdWJsaWMgdmlydHVhbCB0dWlfd2luX2lu Zm8KK3sKKyAgdmlydHVhbCB2b2lkIHJlZnJlc2hfd2luZG93ICgpIGZpbmFsIG92ZXJyaWRl CisgIHsKKyAgfQorfTsKKworLyogQSBUVUkgd2luZG93IHRoYXQgaXMgYWx3YXlzIHZpc2li bGUuICAqLworCitzdHJ1Y3QgdHVpX2Fsd2F5c192aXNpYmxlX3dpbmRvdyA6IHB1YmxpYyB2 aXJ0dWFsIHR1aV93aW5faW5mbworeworICB2aXJ0dWFsIHZvaWQgbWFrZV92aXNpYmxlIChi b29sIHZpc2libGUpIGZpbmFsIG92ZXJyaWRlCisgIHsKKyAgfQorfTsKKwogLyogQ29uc3Rh bnQgZGVmaW5pdGlvbnMuICAqLwogI2RlZmluZSBTUkNfTkFNRSAgICAgICAgICAgICAgICAi c3JjIgogI2RlZmluZSBDTURfTkFNRSAgICAgICAgICAgICAgICAiY21kIgpAQCAtMjA0LDEx ICsyODEsMTYgQEAgc3RydWN0IHR1aV93aW5faW5mbwogLyogR2xvYmFsIERhdGEuICAqLwog ZXh0ZXJuIHN0cnVjdCB0dWlfd2luX2luZm8gKnR1aV93aW5fbGlzdFtNQVhfTUFKT1JfV0lO RE9XU107CiAKLSNkZWZpbmUgVFVJX1NSQ19XSU4gICAgICgodHVpX3NvdXJjZV93aW5kb3cg KikgdHVpX3dpbl9saXN0W1NSQ19XSU5dKQotI2RlZmluZSBUVUlfRElTQVNNX1dJTgkoKHR1 aV9kaXNhc21fd2luZG93ICopIHR1aV93aW5fbGlzdFtESVNBU1NFTV9XSU5dKQotI2RlZmlu ZSBUVUlfREFUQV9XSU4gICAgKCh0dWlfZGF0YV93aW5kb3cgKikgdHVpX3dpbl9saXN0W0RB VEFfV0lOXSkKLSNkZWZpbmUgVFVJX0NNRF9XSU4gICAgICgodHVpX2NtZF93aW5kb3cgKikg dHVpX3dpbl9saXN0W0NNRF9XSU5dKQotI2RlZmluZSBUVUlfU1RBVFVTX1dJTiAgKCh0dWlf bG9jYXRvcl93aW5kb3cgKikgdHVpX3dpbl9saXN0W1NUQVRVU19XSU5dKQorI2RlZmluZSBU VUlfU1JDX1dJTiBcCisgIChnZGI6OmNoZWNrZWRfc3RhdGljX2Nhc3Q8dHVpX3NvdXJjZV93 aW5kb3cgKj4gKHR1aV93aW5fbGlzdFtTUkNfV0lOXSkpCisjZGVmaW5lIFRVSV9ESVNBU01f V0lOIFwKKyAgKGdkYjo6Y2hlY2tlZF9zdGF0aWNfY2FzdDx0dWlfZGlzYXNtX3dpbmRvdyAq PiAodHVpX3dpbl9saXN0W0RJU0FTU0VNX1dJTl0pKQorI2RlZmluZSBUVUlfREFUQV9XSU4g XAorICAoZ2RiOjpjaGVja2VkX3N0YXRpY19jYXN0PHR1aV9kYXRhX3dpbmRvdyAqPiAodHVp X3dpbl9saXN0W0RBVEFfV0lOXSkpCisjZGVmaW5lIFRVSV9DTURfV0lOIFwKKyAgKGdkYjo6 Y2hlY2tlZF9zdGF0aWNfY2FzdDx0dWlfY21kX3dpbmRvdyAqPiAodHVpX3dpbl9saXN0W0NN RF9XSU5dKSkKKyNkZWZpbmUgVFVJX1NUQVRVU19XSU4gXAorICAoZ2RiOjpjaGVja2VkX3N0 YXRpY19jYXN0PHR1aV9sb2NhdG9yX3dpbmRvdyAqPiAodHVpX3dpbl9saXN0W1NUQVRVU19X SU5dKSkKIAogLyogQWxsIHRoZSB3aW5kb3dzIHRoYXQgYXJlIGN1cnJlbnRseSBpbnN0YW50 aWF0ZWQsIGluIGxheW91dAogICAgb3JkZXIuICAqLwpkaWZmIC0tZ2l0IGEvZ2RiL3R1aS90 dWktc3RhY2suaCBiL2dkYi90dWkvdHVpLXN0YWNrLmgKaW5kZXggZDU0MmYyMTU3NzEuLmNh OTViMmJmNzhhIDEwMDY0NAotLS0gYS9nZGIvdHVpL3R1aS1zdGFjay5oCisrKyBiL2dkYi90 dWkvdHVpLXN0YWNrLmgKQEAgLTI4LDcgKzI4LDkgQEAgY2xhc3MgZnJhbWVfaW5mb19wdHI7 CiAKIC8qIExvY2F0b3Igd2luZG93IGNsYXNzLiAgKi8KIAotc3RydWN0IHR1aV9sb2NhdG9y X3dpbmRvdyA6IHB1YmxpYyB0dWlfd2luX2luZm8KK3N0cnVjdCB0dWlfbG9jYXRvcl93aW5k b3cKKyAgOiBwdWJsaWMgdHVpX25vZm9jdXNfd2luZG93LCB0dWlfbm9zY3JvbGxfd2luZG93 LCB0dWlfb25lbGluZV93aW5kb3csCisgICAgdHVpX25vYm94X3dpbmRvdwogewogICB0dWlf bG9jYXRvcl93aW5kb3cgKCkgPSBkZWZhdWx0OwogCkBAIC0zNywzOCArMzksOCBAQCBzdHJ1 Y3QgdHVpX2xvY2F0b3Jfd2luZG93IDogcHVibGljIHR1aV93aW5faW5mbwogICAgIHJldHVy biBTVEFUVVNfTkFNRTsKICAgfQogCi0gIGludCBtYXhfaGVpZ2h0ICgpIGNvbnN0IG92ZXJy aWRlCi0gIHsKLSAgICByZXR1cm4gMTsKLSAgfQotCi0gIGludCBtaW5faGVpZ2h0ICgpIGNv bnN0IG92ZXJyaWRlCi0gIHsKLSAgICByZXR1cm4gMTsKLSAgfQotCi0gIGJvb2wgY2FuX2Jv eCAoKSBjb25zdCBvdmVycmlkZQotICB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAg Ym9vbCBjYW5fZm9jdXMgKCkgY29uc3Qgb3ZlcnJpZGUKLSAgewotICAgIHJldHVybiBmYWxz ZTsKLSAgfQotCiAgIHZvaWQgcmVyZW5kZXIgKCkgb3ZlcnJpZGU7CiAKLXByb3RlY3RlZDoK LQotICB2b2lkIGRvX3Njcm9sbF92ZXJ0aWNhbCAoaW50IG4pIG92ZXJyaWRlCi0gIHsKLSAg fQotCi0gIHZvaWQgZG9fc2Nyb2xsX2hvcml6b250YWwgKGludCBuKSBvdmVycmlkZQotICB7 Ci0gIH0KLQogcHJpdmF0ZToKIAogICAvKiBDcmVhdGUgdGhlIHN0YXR1cyBsaW5lIHRvIGRp c3BsYXkgYXMgbXVjaCBpbmZvcm1hdGlvbiBhcyB3ZSBjYW4KCmJhc2UtY29tbWl0OiA1ZmE4 NzFmNWQ5M2JmMjg1NzUzZjIxOWNmNTgzZDA3NjNkYzBjZDMzCi0tIAoyLjM1LjMKCg== --------------HK0KW00KEIpf4cC6TQneP3Q7--