Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vwPWx-0058A0-01 for pgsql-hackers@arkaria.postgresql.org; Sat, 28 Feb 2026 18:59:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vwPWv-00BFMb-2q for pgsql-hackers@arkaria.postgresql.org; Sat, 28 Feb 2026 18:59:09 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vwPWv-00BFMT-1Z for pgsql-hackers@lists.postgresql.org; Sat, 28 Feb 2026 18:59:09 +0000 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vwPWr-00000001lUu-3tRi for pgsql-hackers@postgresql.org; Sat, 28 Feb 2026 18:59:08 +0000 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-65faaa8b807so5805858a12.3 for ; Sat, 28 Feb 2026 10:59:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772305140; cv=none; d=google.com; s=arc-20240605; b=ebg9au9w0hTX6FTJscfKV4VTEKPe6ivIFejycMuw6ppDLb1/kDQ1uSDt8keHJSNT2S EWQvEhIfQ+VnTs5L+2N+p9rVXHuvXMPr9ORCG8HiYiXN4zlHhdyAnZ9WhZJWavmqueTJ RSpjnNZK/5OUaua7L51mE95k5S2sk2973xdCucBv7L2pVXzIdtml/wWYvNQkbM2T9x9i JlSCso8WgRkr0S96vPPUMrIrU69lFeU15Wb5bmuRcwoM0vzqo+K+jn6o7G2xgjPJF9ff +9IcZw3pqmPkBceQB2izDIwl4hQdDwo4JI2pNtalgkjdjjD661ovKOxzUrfmqnmaQepO lvBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=uTzAwgamR7W9gc0rkP2U2p2QLU7qmWeW++nxS2P6jJ8=; fh=wzlgcYwqtz3FOCA4tMgrrjO/eA/mCNxQNvLbWrsvVUw=; b=HuHLmYedLcO6DKq7qUi9j3pwgKRjwvb6l1UIOfAm2nvsHc4mQRgOjBrxx1o/l4dB3m 89gJ5SGjX8BdT5up6c8KMwPTYgaCQorhnu/8pv1uTVZDHpLanpphO/F9Id5pm8wNdOht 2xpeA43y1GPNOPp/XEYBXI5EDphI2LSJeDIiDNABwYf1sJQ9m9ZIxuOLGYk78gJjcVCT XF50vo6svvCg0xWjlmoL3kMEqHl/qB6eQ0Th109h/VuvNsACdUXQHpi5JguFY81NBG1T YtUgG1X/L7yYKslmjkJnfhhMrJ/bcnYfYtWrBf5MYj6Z4OZzHf2tZxH495LZs3yWF3Io oJmg==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772305140; x=1772909940; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=uTzAwgamR7W9gc0rkP2U2p2QLU7qmWeW++nxS2P6jJ8=; b=O5x3/BMu7fFgWXl+nlQUn7jLtehmPK7acu7lpGN85BIqrdfBv5b6oW9tp68JWlKh3z 9opm8ueLu9iUbqh9fI55HSfM5vrxudQ2unB2cvYovub/c+bcgIVLj74FQRh3NMbzXHB3 YdxuE+NPU6KMC/KDYr5uBs5mp1z+6O70BB0vZ3Tr9tEA3+R3dQUYLugicbUuLTiQGSzl D7jl6GbPcWfa+lrN6/3hPwYAhvdkOQ76s0+CHcOG+jfwTkulpOGCUYvanNx7j6I5WXqW I20e7LvooXpswsBFq2ORZS0Rl9JtF6+kyLEJEEyM7J+xidWXyLTrkXe4i7U/sZ01BYss LkSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772305140; x=1772909940; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=uTzAwgamR7W9gc0rkP2U2p2QLU7qmWeW++nxS2P6jJ8=; b=ZBMZAQnbRLAjd3kGN9J2VwLi3DC+0gFtdyN6ZLlCYNJt0/8TLp7nTJqsYJcTw0kqTF vNEvCQC8xMtI/3suDWnDCluo+oTtkqqnlQgVTtETj34cRvcV3O+b5fn7CfRIoWI9EvYE KI7SwXfWITV5lf1xfous8BAQ+jLjteMATuKu14TXTxUx1ll4tsIG3WhP+yy2YVHjoX8c InzmUTIVMy6e6rZmeO3fJFp1uib2mvLPNE1DA3rUPYUtCW6O1nr6MfqAgov4S30yMJvJ gniUOGjZGios/8TKwgo9K7vxNeEhA9UUlFUovhsV4i1ERhxjNyreUTTB9jtw3pcaLayS 8VgQ== X-Gm-Message-State: AOJu0Yyi9Yfd2Q1YOabEDhtZxF9vCimpyN2BouLyT1asxftP+h1TrJxP CYY8lxaxFgW5+iVCWifXZgAO3TI/pltka9IR7mL/v7BOUXjgitdQ0KOOIOHfSHUGIiAZtXyXM/P h+jwLflcfQ4zGF25UIVdBBfJWE3s40X8= X-Gm-Gg: ATEYQzyZGcKCQYhbwPBPasrodoPtDilCMeAryuOykV9fEKlsrwMPnJP+1a+4/p/SPkn biJlXVeJ1MPTWoTWIj5Dk80UpHpgZTcfqQtu6fv0HqG8523WxivhTb0fecmM4+4DBQCZ3mrEC62 jkFmknhfAK6d85XafWMRN2mgWM1MJgTzJWO+broMgMt4i2uFg8JlIQ24SffpCQXo1vYLRVjGvF7 sjD/N7wA1XcfKeYDA1l93Ukw9RPrDq947P09eNT94+UbxmHGLZtk1d/C1BMkXHsojuXJy66d0Co TDCsrH3UwKhSMoYNz/p63azcTR1FoOvgnMEnAqfYRSLWuVnZMx6W8Sn/qMIjjaZ4bGZtreNYdK4 8Pvcg+ruR X-Received: by 2002:a05:6402:4309:b0:65c:1f67:d8a2 with SMTP id 4fb4d7f45d1cf-65fdddeec4fmr4270857a12.22.1772305140270; Sat, 28 Feb 2026 10:59:00 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Melanie Plageman Date: Sat, 28 Feb 2026 13:58:48 -0500 X-Gm-Features: AaiRm53QBp6Xig8cts5z0B-TSNemWtT_Mv31M0_v4zbif24JvAeHDUbD4SLDi5A Message-ID: Subject: Re: Unlogged rel fake lsn vs GetVictimBuffer() To: Andres Freund Cc: pgsql-hackers@postgresql.org, Heikki Linnakangas , Peter Geoghegan Content-Type: multipart/mixed; boundary="00000000000051f9fc064be6f2a0" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000051f9fc064be6f2a0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Feb 28, 2026 at 1:09=E2=80=AFPM Andres Freund = wrote: > > I think we ought to fix it, even if it is currently harmless. It seems li= ke > it'd not be too hard for this to go wrong in the future, it'd e.g. make s= ense > for XLogNeedsFlush() to XLogCtl->LogwrtRqst.Write and wake up walwriter. = Which > would have bad consequences if it were done with a fake LSN. > > I also think it might be good for XLogNeedsFlush() to have an assertion > verifying that the LSN in the realm of the possible. It's too easy to fee= d it > something entirely bogus right now and never notice. I agree we should fix it. I noticed it while working on write combining. I wrote the attached patch to clean up. It's more than you were mentioning doing, but I think it makes the code nicer. You can of course also add assertions to XLogNeedsFlush() too. - Melanie --00000000000051f9fc064be6f2a0 Content-Type: text/x-patch; charset="US-ASCII"; name="buffer-rejection.patch" Content-Disposition: attachment; filename="buffer-rejection.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm6oow1s0 RnJvbSBkZDc1ZGYwZGY4MTg0ZmY4NzAzNGRmMzA5ODJmNzYzZmU0Y2QxNWM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDcgSmFuIDIwMjYgMTM6MzI6MTggLTA1MDAKU3ViamVjdDogW1BB VENIIHYwIDAzLzE1XSBTdHJlYW1saW5lIGJ1ZmZlciByZWplY3Rpb24gZm9yIGJ1bGtyZWFkcyBv ZgogdW5sb2dnZWQgdGFibGVzCgpCdWxrLXJlYWQgYnVmZmVyIGFjY2VzcyBzdHJhdGVnaWVzIHJl amVjdCByZXVzaW5nIGEgYnVmZmVyIGZyb20gdGhlCmJ1ZmZlciBhY2Nlc3Mgc3RyYXRlZ3kgcmlu ZyBpZiBkb2luZyBzbyB3b3VsZCByZXF1aXJlIGZsdXNoaW5nIFdBTC4KVW5sb2dnZWQgcmVsYXRp b25zIG5ldmVyIHJlcXVpcmUgV0FMIGZsdXNoZXMsIHNvIHRoaXMgY2hlY2sgY2FuIGJlCnNraXBw ZWQuIEl0IGNhbiBhbHNvIGJlIHNraXBwZWQgZm9yIGJ1ZmZlciBhY2Nlc3Mgc3RyYXRlZ2llcyBv dGhlciB0aGFuCmJ1bGtyZWFkLiBUaGlzIGF2b2lkcyB0YWtpbmcgdGhlIGJ1ZmZlciBoZWFkZXIg bG9jayB1bm5lY2Vzc2FyaWx5LgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxh Z2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWls LmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0LzAxOThEQkI5LTRBNzYt NDlFNC04N0Y4LTQzRDQ2REQwRkQ3NiU0MGdtYWlsLmNvbSMxZDg2NzdmYzc1ZGM4YjM5ZjBlYjVk ZDZiYmFmYjY1ZAotLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jICAgfCA2 MCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVy L2ZyZWVsaXN0LmMgfCAxMyArKysrKy0KIHNyYy9pbmNsdWRlL3N0b3JhZ2UvYnVmX2ludGVybmFs cy5oICAgfCAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5j IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKaW5kZXggMjg2NzQyZTY5Njgu LjBiNWFkYzllNGE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZt Z3IuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYwpAQCAtMjUyMCwy NSArMjUyMCwxNCBAQCBhZ2FpbjoKIAkJICogSWYgdXNpbmcgYSBub25kZWZhdWx0IHN0cmF0ZWd5 LCBhbmQgd3JpdGluZyB0aGUgYnVmZmVyIHdvdWxkCiAJCSAqIHJlcXVpcmUgYSBXQUwgZmx1c2gs IGxldCB0aGUgc3RyYXRlZ3kgZGVjaWRlIHdoZXRoZXIgdG8gZ28gYWhlYWQKIAkJICogYW5kIHdy aXRlL3JldXNlIHRoZSBidWZmZXIgb3IgdG8gY2hvb3NlIGFub3RoZXIgdmljdGltLiAgV2UgbmVl ZCBhCi0JCSAqIGxvY2sgdG8gaW5zcGVjdCB0aGUgcGFnZSBMU04sIHNvIHRoaXMgY2FuJ3QgYmUg ZG9uZSBpbnNpZGUKKwkJICogY29udGVudCBsb2NrIHRvIGluc3BlY3QgdGhlIHBhZ2UgTFNOLCBz byB0aGlzIGNhbid0IGJlIGRvbmUgaW5zaWRlCiAJCSAqIFN0cmF0ZWd5R2V0QnVmZmVyLgogCQkg Ki8KLQkJaWYgKHN0cmF0ZWd5ICE9IE5VTEwpCisJCWlmIChzdHJhdGVneSAmJiBTdHJhdGVneVJl amVjdEJ1ZmZlcihzdHJhdGVneSwgYnVmX2hkciwgZnJvbV9yaW5nKSkKIAkJewotCQkJWExvZ1Jl Y1B0cglsc247Ci0KLQkJCS8qIFJlYWQgdGhlIExTTiB3aGlsZSBob2xkaW5nIGJ1ZmZlciBoZWFk ZXIgbG9jayAqLwotCQkJYnVmX3N0YXRlID0gTG9ja0J1ZkhkcihidWZfaGRyKTsKLQkJCWxzbiA9 IEJ1ZmZlckdldExTTihidWZfaGRyKTsKLQkJCVVubG9ja0J1ZkhkcihidWZfaGRyKTsKLQotCQkJ aWYgKFhMb2dOZWVkc0ZsdXNoKGxzbikKLQkJCQkmJiBTdHJhdGVneVJlamVjdEJ1ZmZlcihzdHJh dGVneSwgYnVmX2hkciwgZnJvbV9yaW5nKSkKLQkJCXsKLQkJCQlMb2NrQnVmZmVyKGJ1ZiwgQlVG RkVSX0xPQ0tfVU5MT0NLKTsKLQkJCQlVbnBpbkJ1ZmZlcihidWZfaGRyKTsKLQkJCQlnb3RvIGFn YWluOwotCQkJfQorCQkJTG9ja0J1ZmZlcihidWYsIEJVRkZFUl9MT0NLX1VOTE9DSyk7CisJCQlV bnBpbkJ1ZmZlcihidWZfaGRyKTsKKwkJCWdvdG8gYWdhaW47CiAJCX0KIAogCQkvKiBPSywgZG8g dGhlIEkvTyAqLwpAQCAtMzQzOCw2ICszNDI3LDQ1IEBAIFRyYWNrTmV3QnVmZmVyUGluKEJ1ZmZl ciBidWYpCiAJCQkJCQkJICBCTENLU1opOwogfQogCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRo ZSBidWZmZXIgbmVlZHMgV0FMIGZsdXNoZWQgYmVmb3JlIGl0IGNhbiBiZSB3cml0dGVuIG91dC4K KyAqCisgKiBJZiB0aGUgcmVzdWx0IGlzIHJlcXVpcmVkIHRvIGJlIGNvcnJlY3QsIHRoZSBjYWxs ZXIgbXVzdCBob2xkIGEgYnVmZmVyCisgKiBjb250ZW50IGxvY2suIElmIHRoZXkgb25seSBob2xk IGEgc2hhcmVkIGNvbnRlbnQgbG9jaywgd2UnbGwgbmVlZCB0bworICogYWNxdWlyZSB0aGUgYnVm ZmVyIGhlYWRlciBzcGlubG9jaywgc28gdGhleSBtdXN0IG5vdCBhbHJlYWR5IGhvbGQgaXQuCisg Ki8KK2Jvb2wKK0J1ZmZlck5lZWRzV0FMRmx1c2goQnVmZmVyRGVzYyAqYnVmZGVzYywgYm9vbCBl eGNsdXNpdmVfbG9ja2VkKQoreworCXVpbnQzMgkJYnVmX3N0YXRlID0gcGdfYXRvbWljX3JlYWRf dTY0KCZidWZkZXNjLT5zdGF0ZSk7CisJQnVmZmVyCQlidWZmZXI7CisJY2hhcgkgICAqcGFnZTsK KwlYTG9nUmVjUHRyCWxzbjsKKworCS8qCisJICogVW5sb2dnZWQgYnVmZmVycyBjYW4ndCBuZWVk IFdBTCBmbHVzaC4gU2VlIEZsdXNoQnVmZmVyKCkgZm9yIG1vcmUKKwkgKiBkZXRhaWxzIG9uIHVu bG9nZ2VkIHJlbGF0aW9ucyB3aXRoIExTTnMuCisJICovCisJaWYgKCEoYnVmX3N0YXRlICYgQk1f UEVSTUFORU5UKSkKKwkJcmV0dXJuIGZhbHNlOworCisJYnVmZmVyID0gQnVmZmVyRGVzY3JpcHRv ckdldEJ1ZmZlcihidWZkZXNjKTsKKwlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOworCisJ aWYgKCFYTG9nSGludEJpdElzTmVlZGVkKCkgfHwgQnVmZmVySXNMb2NhbChidWZmZXIpIHx8IGV4 Y2x1c2l2ZV9sb2NrZWQpCisJCWxzbiA9IFBhZ2VHZXRMU04ocGFnZSk7CisJZWxzZQorCXsKKwkJ LyogQnVmZmVyIGlzIGVpdGhlciBzaGFyZSBsb2NrZWQgb3Igbm90IGxvY2tlZCAqLworCQlMb2Nr QnVmSGRyKGJ1ZmRlc2MpOworCQlsc24gPSBQYWdlR2V0TFNOKHBhZ2UpOworCQlVbmxvY2tCdWZI ZHIoYnVmZGVzYyk7CisJfQorCisJcmV0dXJuIFhMb2dOZWVkc0ZsdXNoKGxzbik7Cit9CisKKwog I2RlZmluZSBTVF9TT1JUIHNvcnRfY2hlY2twb2ludF9idWZmZXJpZHMKICNkZWZpbmUgU1RfRUxF TUVOVF9UWVBFIENrcHRTb3J0SXRlbQogI2RlZmluZSBTVF9DT01QQVJFKGEsIGIpIGNrcHRfYnVm b3JkZXJfY29tcGFyYXRvcihhLCBiKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9i dWZmZXIvZnJlZWxpc3QuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2ZyZWVsaXN0LmMK aW5kZXggYjc2ODc4MzYxODguLjM3Mzk4ODY1ZDE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9z dG9yYWdlL2J1ZmZlci9mcmVlbGlzdC5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVy L2ZyZWVsaXN0LmMKQEAgLTc4MCwxMiArNzgwLDE3IEBAIElPQ29udGV4dEZvclN0cmF0ZWd5KEJ1 ZmZlckFjY2Vzc1N0cmF0ZWd5IHN0cmF0ZWd5KQogICogYmUgd3JpdHRlbiBvdXQgYW5kIGRvaW5n IHNvIHdvdWxkIHJlcXVpcmUgZmx1c2hpbmcgV0FMIHRvby4gIFRoaXMgZ2l2ZXMgdXMKICAqIGEg Y2hhbmNlIHRvIGNob29zZSBhIGRpZmZlcmVudCB2aWN0aW0uCiAgKgorICogVGhlIGJ1ZmZlciBt dXN0IGJlIHBpbm5lZCBhbmQgY29udGVudCBsb2NrZWQgYW5kIHRoZSBidWZmZXIgaGVhZGVyIHNw aW5sb2NrCisgKiBtdXN0IG5vdCBiZSBoZWxkLgorICoKICAqIFJldHVybnMgdHJ1ZSBpZiBidWZm ZXIgbWFuYWdlciBzaG91bGQgYXNrIGZvciBhIG5ldyB2aWN0aW0sIGFuZCBmYWxzZQogICogaWYg dGhpcyBidWZmZXIgc2hvdWxkIGJlIHdyaXR0ZW4gYW5kIHJlLXVzZWQuCiAgKi8KIGJvb2wKIFN0 cmF0ZWd5UmVqZWN0QnVmZmVyKEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IHN0cmF0ZWd5LCBCdWZmZXJE ZXNjICpidWYsIGJvb2wgZnJvbV9yaW5nKQogeworCUFzc2VydChzdHJhdGVneSk7CisKIAkvKiBX ZSBvbmx5IGRvIHRoaXMgaW4gYnVsa3JlYWQgbW9kZSAqLwogCWlmIChzdHJhdGVneS0+YnR5cGUg IT0gQkFTX0JVTEtSRUFEKQogCQlyZXR1cm4gZmFsc2U7CkBAIC03OTUsOCArODAwLDE0IEBAIFN0 cmF0ZWd5UmVqZWN0QnVmZmVyKEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IHN0cmF0ZWd5LCBCdWZmZXJE ZXNjICpidWYsIGJvb2wgZnJvbV9yCiAJCXN0cmF0ZWd5LT5idWZmZXJzW3N0cmF0ZWd5LT5jdXJy ZW50XSAhPSBCdWZmZXJEZXNjcmlwdG9yR2V0QnVmZmVyKGJ1ZikpCiAJCXJldHVybiBmYWxzZTsK IAorCUFzc2VydChCdWZmZXJJc0xvY2tlZEJ5TWUoQnVmZmVyRGVzY3JpcHRvckdldEJ1ZmZlcihi dWYpKSk7CisJQXNzZXJ0KCEocGdfYXRvbWljX3JlYWRfdTY0KCZidWYtPnN0YXRlKSAmIEJNX0xP Q0tFRCkpOworCisJaWYgKCFCdWZmZXJOZWVkc1dBTEZsdXNoKGJ1ZiwgZmFsc2UpKQorCQlyZXR1 cm4gZmFsc2U7CisKIAkvKgotCSAqIFJlbW92ZSB0aGUgZGlydHkgYnVmZmVyIGZyb20gdGhlIHJp bmc7IG5lY2Vzc2FyeSB0byBwcmV2ZW50IGluZmluaXRlCisJICogUmVtb3ZlIHRoZSBkaXJ0eSBi dWZmZXIgZnJvbSB0aGUgcmluZzsgbmVjZXNzYXJ5IHRvIHByZXZlbnQgYW4gaW5maW5pdGUKIAkg KiBsb29wIGlmIGFsbCByaW5nIG1lbWJlcnMgYXJlIGRpcnR5LgogCSAqLwogCXN0cmF0ZWd5LT5i dWZmZXJzW3N0cmF0ZWd5LT5jdXJyZW50XSA9IEludmFsaWRCdWZmZXI7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9zdG9yYWdlL2J1Zl9pbnRlcm5hbHMuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uv YnVmX2ludGVybmFscy5oCmluZGV4IDIxNWYyZGVhOTVjLi4wODk5YmU4ZGE0OCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9idWZfaW50ZXJuYWxzLmgKKysrIGIvc3JjL2luY2x1ZGUv c3RvcmFnZS9idWZfaW50ZXJuYWxzLmgKQEAgLTU1Miw2ICs1NTIsNyBAQCBleHRlcm4gdm9pZCBX cml0ZWJhY2tDb250ZXh0SW5pdChXcml0ZWJhY2tDb250ZXh0ICpjb250ZXh0LCBpbnQgKm1heF9w ZW5kaW5nKTsKIGV4dGVybiB2b2lkIElzc3VlUGVuZGluZ1dyaXRlYmFja3MoV3JpdGViYWNrQ29u dGV4dCAqd2JfY29udGV4dCwgSU9Db250ZXh0IGlvX2NvbnRleHQpOwogCiBleHRlcm4gdm9pZCBU cmFja05ld0J1ZmZlclBpbihCdWZmZXIgYnVmKTsKK2V4dGVybiBib29sIEJ1ZmZlck5lZWRzV0FM Rmx1c2goQnVmZmVyRGVzYyAqYnVmZGVzYywgYm9vbCBleGNsdXNpdmVfbG9ja2VkKTsKIAogLyog c29sZWx5IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHdyaXRlIHRlc3RzICovCiBleHRlcm4gYm9vbCBT dGFydEJ1ZmZlcklPKEJ1ZmZlckRlc2MgKmJ1ZiwgYm9vbCBmb3JJbnB1dCwgYm9vbCBub3dhaXQp OwotLSAKMi40My4wCgo= --00000000000051f9fc064be6f2a0--