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 1w1KsV-000DFb-2I for pgsql-hackers@arkaria.postgresql.org; Sat, 14 Mar 2026 09:01:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w1KsU-001Ldc-1e for pgsql-hackers@arkaria.postgresql.org; Sat, 14 Mar 2026 09:01:47 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w1KsT-001LdU-37 for pgsql-hackers@lists.postgresql.org; Sat, 14 Mar 2026 09:01:46 +0000 Received: from mail-yw1-x1135.google.com ([2607:f8b0:4864:20::1135]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w1KsS-000000005H8-39oU for pgsql-hackers@postgresql.org; Sat, 14 Mar 2026 09:01:45 +0000 Received: by mail-yw1-x1135.google.com with SMTP id 00721157ae682-798578e2918so29109827b3.2 for ; Sat, 14 Mar 2026 02:01:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773478904; cv=none; d=google.com; s=arc-20240605; b=IKqDkwQWztdloLp4JMdGdYuAgvftLXiUyYrF9QHPFs9U6OlynDS6q0PdCzYsKzTbnZ e2CTrDN55CRvcsOlkD+o2mAPwKekAtjiipReGVHOy4864nvua+gdwRCUhd088nRcTduK OuszNRSWrDo+3q39JUfq6dnquUA1ZTkP1N382dnA92vUAPuutPorpjIutuYUghlLfTtw xBv1OESL/62Q9h4OeqAanma0tiEzhEs+pQcZvtt8/drigY9W/IOsDgarXK0o3yLEpYID dzlswfdbMkAGzDf3E9lKHu56/B7YfkC815AlTaHjmLNO7j6lT827YmEv5pvcDRjLTHYx w7Pg== 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=P217CXGwTBa9ZfptI4pXrbMdNGw1u5CddbqQck3I36o=; fh=q5BdpoKzvmS1Baz0zMRB6QHChFotjbipFCXoYmXdnys=; b=l27cq3/EN2SmotGj8in6xkSZ49CJ+DdJHy8b4ZAVoV2zK5NphPEGrei2khjInWDQ6q cvG9LV/nGEH5sb6t0t7jvL8cUEJHoj9Tr+g5PSTwLkGmtlU3lnE/5bPd2WoXOVaT8zMZ RvfHSFTBv2BFvGQ9UDJXENzjj9aVeod+7Y7Pyb0gXY//6njf59bmxHzgb6kYDHgYu8Lr eZQuvSEZNJYvaOxIVMBaoOHjOSHn/LFMTJHlTo/2z/EYDntOoUmO4sD69x2Nk3UXo37L fyALQNbSijtpa3PVDEgLgrmUglYBtP/KFJH3YcGS+jtUZkLE2MRJUqs/PzqAeOEWmnSv fOtw==; 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=1773478904; x=1774083704; 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=P217CXGwTBa9ZfptI4pXrbMdNGw1u5CddbqQck3I36o=; b=iaQpR2kisv0OJx51LbjoeDikCXxdLribszDN6XsilMSWFwWUIUcHqq2gzxG3v7wSHO GUp7qewjPR1T6naHdJaVnJOP/64ausj9YlbLE/IgsXWMx9NnXKLyKz4mprjIuQ0swfQF YEIio/eW7aVpFErAYKBQ1VHEZpc5NZSbtNNkgT9OffAIviUFKMZZXPlgV/eer/DkVg5g oEWsj1hX/CgMtWh7Pj3whtpMmPCUYtNb6A3bdmhA2TYexxVzbDB2kD6Il/9cDGgAmXtb I7TzCnOmUPYqxP7ZbHIyfmqF7yHZoPSP/q/F6Pyxv+9nlPEj0kL1+IdAsP7n2F+1+GVd uzqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773478904; x=1774083704; 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=P217CXGwTBa9ZfptI4pXrbMdNGw1u5CddbqQck3I36o=; b=T2sVHBaxdla5ZQDogGYfjNM3u5oZu+U133ybByLEf6MxCYCRSFfTsfgBsPfw0KnVhR bNggiwxpotahgwP+29tB+XXXADGwz1wNMKpjKyEKi0m8Q/TVtR3HTWrNtlMcCpgo9XLn Tisbg0NaciFkHE2qucBmQyN/dDtLjU0ZN4viYW8O1f6ddjz7D1JKbClr9IacOThtIRxN t6dZT/OfxjhBcKCAxI6jlCFhx37ETMoLCjzO6NNhn/HB3PeXrJJVL8377xeWzhEw32Q2 cTigHJb+2WdrflFC5v7GykjenXkDOK0hNXP4S8yb5FqEWe7tpWADbe2FivYXNWhJtht6 pqhA== X-Forwarded-Encrypted: i=1; AJvYcCUfgr1UZjliIOYU9Z4RBGyW9mnd+szcLDXk8Sh4RKFyrk25qF5XCLNMsAdmt2nBtvyEnNRBViivXHAbaT6o@postgresql.org X-Gm-Message-State: AOJu0YwyNIb2h/sgajcn+e9WNwjrdAvCztNEU+HtmJHAOeesQ+JjPcpN BuJEfMo7Pq2t5rjcpq5nB79iWA2WY6o048xO8h+69Mad4Z/ml3GTVVPQ0ngl0B3seRD2hJdNcje PjUmeYQU/iLnnIkXt7kzZUFyM1Ytmm8c= X-Gm-Gg: ATEYQzzyRyXNdkcrAajJRvky4nIsRSPZc8q1UB50lKlab9TIi/rPjsUDzu2rBHsa+GQ 6zyYtb28PIiorN8SWlTYx8oAa8PPQ2Sx4AcBSTuBbOyDdEw4Kn+IYXGyApF8zZGNbx4udmMvB4K TJWE8Fj+eHe1KxMxRooDz+8WwbIDEhgi5Msz+yX/BO5dz+Sx8Oln9miL8sgdrq3uujKwYobeg0F +2ZwI8bH6tIY9/el3obZxnlYHsUHgPjnO6wj22z2Y9NG63eQvVbPlcGGgp6JV332QPpIk2yuhEi iHlt8Q== X-Received: by 2002:a05:690c:6283:b0:798:13:e53a with SMTP id 00721157ae682-79a1c1c0e3amr61329817b3.48.1773478904375; Sat, 14 Mar 2026 02:01:44 -0700 (PDT) MIME-Version: 1.0 References: <8a2e78c3-2f63-455f-80a9-cbd9eebaa245@eisentraut.org> In-Reply-To: From: Ayush Tiwari Date: Sat, 14 Mar 2026 14:31:32 +0530 X-Gm-Features: AaiRm52B4PSQlm23EjsLqwQ6YgzMgPA6-5q32UVcXI4Zgl28oIuT68gG02Lm3lI Message-ID: Subject: Re: tid_blockno() and tid_offset() accessor functions To: Andres Freund Cc: Matthias van de Meent , Peter Eisentraut , Masahiko Sawada , pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="0000000000001cf54e064cf83c4d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001cf54e064cf83c4d Content-Type: multipart/alternative; boundary="0000000000001cf54c064cf83c4b" --0000000000001cf54c064cf83c4b Content-Type: text/plain; charset="UTF-8" Hi, Thanks for the review! Attaching a patch with all document changes, removed the cross-reference to datatype-oid entirely. I've moved the &func-tid; entry in func.sgml to directly follow &func-textsearch;, which fits better alphabetically, and reworded the introductory paragraph to be much more concise, directly pointing to the table. Regards, Ayush On Fri, 13 Mar 2026 at 23:24, Andres Freund wrote: > Hi, > > On 2026-03-13 18:08:04 +0100, Matthias van de Meent wrote: > > As for naming; I'd personally prefer to have 'heap' included in the > > names here (e.g. heaptid_blkno(tid) or heap_blkno[_of](tid)), because > > not all AMs may map tid.blkno exactly to a block number in the main > > fork. While PostgreSQL (in core) currently only knows about the heap > > AM, we should probably keep clear of pretending that all tableAMs > > produce TIDs that behave exactly like heap's do. > > Meh. As long as tids themselves are split like they are, without any > variability of the amount of space dedicated for either component, I don't > see > any advantage in that. > > Greetings, > > Andres Freund > --0000000000001cf54c064cf83c4b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Thanks for the review!

Attaching a patch= with all document changes, removed the cross-reference to datatype-oid ent= irely.=C2=A0I've moved the &func-tid; entry in func.sgml to directl= y follow &func-textsearch;, which fits better alphabetically, and rewor= ded the introductory paragraph to be much more concise, directly pointing t= o the table.

Regards,
Ayush

On Fri, 13 Mar 2= 026 at 23:24, Andres Freund <andre= s@anarazel.de> wrote:
Hi,

On 2026-03-13 18:08:04 +0100, Matthias van de Meent wrote:
> As for naming; I'd personally prefer to have 'heap' includ= ed in the
> names here (e.g. heaptid_blkno(tid) or heap_blkno[_of](tid)), because<= br> > not all AMs may map tid.blkno exactly to a block number in the main > fork. While PostgreSQL (in core) currently only knows about the heap > AM, we should probably keep clear of pretending that all tableAMs
> produce TIDs that behave exactly like heap's do.

Meh. As long as tids themselves are split like they are, without any
variability of the amount of space dedicated for either component, I don= 9;t see
any advantage in that.

Greetings,

Andres Freund
--0000000000001cf54c064cf83c4b-- --0000000000001cf54e064cf83c4d Content-Type: application/octet-stream; name="v3-0001-Add-tid_block-and-tid_offset-accessor-functions.patch" Content-Disposition: attachment; filename="v3-0001-Add-tid_block-and-tid_offset-accessor-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmq3iwas0 RnJvbSA5YWRmYmY2ZDM2MzIwYThiZWJjZWY5YjFjNTM4M2YxMzg3ODAyNWI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBeXVzaCBUaXdhcmkgPGF5dXNodGl3YXJpLnNsZzAxQGdtYWls LmNvbT4KRGF0ZTogU2F0LCAxNCBNYXIgMjAyNiAwODo1MToyNSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjNdIEFkZCB0aWRfYmxvY2soKSBhbmQgdGlkX29mZnNldCgpIGFjY2Vzc29yIGZ1bmN0aW9u cwoKQWRkIHR3byBuZXcgYnVpbHQtaW4gU1FMIGZ1bmN0aW9ucyB0byBleHRyYWN0IHRoZSBjb21w b25lbnRzIG9mIGEgdGlkCih0dXBsZSBpZGVudGlmaWVyKSB2YWx1ZToKCiAgdGlkX2Jsb2NrKHRp ZCkgLT4gYmlnaW50ICAgLS0gZXh0cmFjdCBibG9jayBudW1iZXIKICB0aWRfb2Zmc2V0KHRpZCkg IC0+IGludGVnZXIgIC0tIGV4dHJhY3Qgb2Zmc2V0IG51bWJlcgoKVGhlc2UgcHJvdmlkZSBhIGNs ZWFuLCBlZmZpY2llbnQgYWx0ZXJuYXRpdmUgdG8gdGhlIGNvbW1vbiB3b3JrYXJvdW5kCm9mIGN0 aWQ6OnRleHQ6OnBvaW50IGZvciBkZWNvbXBvc2luZyBUSUQgdmFsdWVzLiBUaGUgdGV4dC1iYXNl ZCBoYWNrCmlzIGZyYWdpbGUsIGluZWZmaWNpZW50LCBhbmQgdW5hdmFpbGFibGUgb3V0c2lkZSBv ZiBTUUwgY29udGV4dHMuCgp0aWRfYmxvY2soKSByZXR1cm5zIGludDggKGJpZ2ludCkgYmVjYXVz ZSBCbG9ja051bWJlciBpcyB1aW50MzIsCndoaWNoIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGludDQu IHRpZF9vZmZzZXQoKSByZXR1cm5zIGludDQgKGludGVnZXIpCmJlY2F1c2UgT2Zmc2V0TnVtYmVy IGlzIHVpbnQxNiwgd2hpY2ggZml0cyBzYWZlbHkgaW4gaW50NC4KCkJvdGggZnVuY3Rpb25zIHVz ZSB0aGUgTm9DaGVjayBhY2Nlc3NvciB2YXJpYW50cyBmcm9tIGl0ZW1wdHIuaCwKYXJlIG1hcmtl ZCBsZWFrcHJvb2YsIGFuZCBpbmNsdWRlIHJlZ3Jlc3Npb24gdGVzdHMgY292ZXJpbmcgdHlwaWNh bAp2YWx1ZXMsIGJvdW5kYXJ5IGNvbmRpdGlvbnMsIE5VTEwgaGFuZGxpbmcsIGFuZCByb3VuZC10 cmlwIGlkZW50aXR5LgotLS0KIGRvYy9zcmMvc2dtbC9mdW5jL2FsbGZpbGVzLnNnbWwgICAgICAg ICAgfCAgMSArCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXRpZC5zZ21sICAgICAgICAgIHwgNzAg KysrKysrKysrKysrKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLnNnbWwgICAg ICAgICAgICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpZC5jICAgICAgICAgICAg ICB8IDMxICsrKysrKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAg ICAgIHwgIDYgKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgfCAg MiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RpZC5vdXQgICAgICAgIHwgNjYgKysrKysr KysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGlkLnNxbCAgICAgICAgICAg ICB8IDIxICsrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgMTk4IGluc2VydGlvbnMoKykKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXRpZC5zZ21sCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2Z1bmMvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jL2Fs bGZpbGVzLnNnbWwKaW5kZXggY2UxMWVmMWQ1ZDguLmY1ZTNmMDA4NTM3IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZnVuYy9hbGxmaWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5jL2Fs bGZpbGVzLnNnbWwKQEAgLTE3LDYgKzE3LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dt bCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBmdW5jLWZvcm1hdHRp bmcgICAgICAgICAgICBTWVNURU0gImZ1bmMtZm9ybWF0dGluZy5zZ21sIj4KIDwhRU5USVRZIGZ1 bmMtZGF0ZXRpbWUgICAgICAgICAgICAgIFNZU1RFTSAiZnVuYy1kYXRldGltZS5zZ21sIj4KIDwh RU5USVRZIGZ1bmMtZW51bSAgICAgICAgICAgICAgICAgIFNZU1RFTSAiZnVuYy1lbnVtLnNnbWwi PgorPCFFTlRJVFkgZnVuYy10aWQgICAgICAgICAgICAgICAgICAgU1lTVEVNICJmdW5jLXRpZC5z Z21sIj4KIDwhRU5USVRZIGZ1bmMtZ2VvbWV0cnkgICAgICAgICAgICAgIFNZU1RFTSAiZnVuYy1n ZW9tZXRyeS5zZ21sIj4KIDwhRU5USVRZIGZ1bmMtbmV0ICAgICAgICAgICAgICAgICAgIFNZU1RF TSAiZnVuYy1uZXQuc2dtbCI+CiA8IUVOVElUWSBmdW5jLXRleHRzZWFyY2ggICAgICAgICAgICBT WVNURU0gImZ1bmMtdGV4dHNlYXJjaC5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9m dW5jL2Z1bmMtdGlkLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXRpZC5zZ21sCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iY2QzMDYwMDg3ZQotLS0gL2Rldi9u dWxsCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtdGlkLnNnbWwKQEAgLTAsMCArMSw3MCBA QAorIDxzZWN0MSBpZD0iZnVuY3Rpb25zLXRpZCI+CisgIDx0aXRsZT5USUQgRnVuY3Rpb25zPC90 aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImZ1bmN0aW9ucy10aWQiPgorICAgPHByaW1hcnk+ VElEPC9wcmltYXJ5PgorICAgPHNlY29uZGFyeT5mdW5jdGlvbnM8L3NlY29uZGFyeT4KKyAgPC9p bmRleHRlcm0+CisKKyAgPGluZGV4dGVybT4KKyAgIDxwcmltYXJ5PnRpZF9ibG9jazwvcHJpbWFy eT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPGluZGV4dGVybT4KKyAgIDxwcmltYXJ5PnRpZF9vZmZz ZXQ8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgPHhyZWYgbGlua2Vu ZD0iZnVuY3Rpb25zLXRpZC10YWJsZSIvPiBsaXN0cyBmdW5jdGlvbnMgZm9yCisgICB0aGUgPHR5 cGU+dGlkPC90eXBlPiBkYXRhIHR5cGUgKHR1cGxlIGlkZW50aWZpZXIpLgorICA8L3BhcmE+CisK KyAgPHRhYmxlIGlkPSJmdW5jdGlvbnMtdGlkLXRhYmxlIj4KKyAgIDx0aXRsZT48dHlwZT5USUQ8 L3R5cGU+IEZ1bmN0aW9uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVh ZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgRnVuY3Rpb24KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBFeGFtcGxlKHMpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+Cisg ICAgICAgPGZ1bmN0aW9uPnRpZF9ibG9jazwvZnVuY3Rpb24+ICggPHR5cGU+dGlkPC90eXBlPiAp CisgICAgICAgPHJldHVybnZhbHVlPmJpZ2ludDwvcmV0dXJudmFsdWU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBFeHRyYWN0cyB0aGUgYmxvY2sgbnVtYmVyIGZyb20gYSB0 dXBsZSBpZGVudGlmaWVyLgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgPGxp dGVyYWw+dGlkX2Jsb2NrKCcoNDIsNyknOjp0aWQpPC9saXRlcmFsPgorICAgICAgIDxyZXR1cm52 YWx1ZT40MjwvcmV0dXJudmFsdWU+CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgPGZ1bmN0aW9uPnRpZF9vZmZzZXQ8L2Z1 bmN0aW9uPiAoIDx0eXBlPnRpZDwvdHlwZT4gKQorICAgICAgIDxyZXR1cm52YWx1ZT5pbnRlZ2Vy PC9yZXR1cm52YWx1ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEV4dHJh Y3RzIHRoZSB0dXBsZSBvZmZzZXQgd2l0aGluIHRoZSBibG9jayBmcm9tIGEgdHVwbGUgaWRlbnRp Zmllci4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxsaXRlcmFsPnRpZF9v ZmZzZXQoJyg0Miw3KSc6OnRpZCk8L2xpdGVyYWw+CisgICAgICAgPHJldHVybnZhbHVlPjc8L3Jl dHVybnZhbHVlPgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJv ZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9mdW5jL2Z1bmMuc2dtbAppbmRleCBmMzUxZWY1M2Y2My4uYzljMjMxZGQxOTAg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvZnVuYy9mdW5jLnNnbWwKQEAgLTYyLDYgKzYyLDcgQEAgcmVwZWF0KCdQZycsIDQpIDxyZXR1 cm52YWx1ZT5QZ1BnUGdQZzwvcmV0dXJudmFsdWU+CiAmZnVuYy1nZW9tZXRyeTsKICZmdW5jLW5l dDsKICZmdW5jLXRleHRzZWFyY2g7CismZnVuYy10aWQ7CiAmZnVuYy11dWlkOwogJmZ1bmMteG1s OwogJmZ1bmMtanNvbjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aWQuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aWQuYwppbmRleCAwNzI0OGI2OWU1Ny4uZDEzYzdjYmU0 MTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aWQuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvdGlkLmMKQEAgLTI4MCw2ICsyODAsMzcgQEAgaGFzaHRpZGV4dGVuZGVk KFBHX0ZVTkNUSU9OX0FSR1MpCiB9CiAKIAorLyoKKyAqCVRJRCBhY2Nlc3NvciBmdW5jdGlvbnMK KyAqLworCisvKgorICogdGlkX2Jsb2NrIC0gZXh0cmFjdCB0aGUgYmxvY2sgbnVtYmVyIGZyb20g YSBUSUQKKyAqCisgKiBSZXR1cm5zIGludDggYmVjYXVzZSBCbG9ja051bWJlciBpcyB1aW50MzIs IHdoaWNoIGV4Y2VlZHMgdGhlIHJhbmdlIG9mIGludDQuCisgKi8KK0RhdHVtCit0aWRfYmxvY2so UEdfRlVOQ1RJT05fQVJHUykKK3sKKwlJdGVtUG9pbnRlciB0aWQgPSBQR19HRVRBUkdfSVRFTVBP SU5URVIoMCk7CisKKwlQR19SRVRVUk5fSU5UNjQoKGludDY0KSBJdGVtUG9pbnRlckdldEJsb2Nr TnVtYmVyTm9DaGVjayh0aWQpKTsKK30KKworLyoKKyAqIHRpZF9vZmZzZXQgLSBleHRyYWN0IHRo ZSBvZmZzZXQgbnVtYmVyIGZyb20gYSBUSUQKKyAqCisgKiBSZXR1cm5zIGludDQgYmVjYXVzZSBP ZmZzZXROdW1iZXIgaXMgdWludDE2LCB3aGljaCBmaXRzIGluIGludDQuCisgKi8KK0RhdHVtCit0 aWRfb2Zmc2V0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJSXRlbVBvaW50ZXIgdGlkID0gUEdfR0VU QVJHX0lURU1QT0lOVEVSKDApOworCisJUEdfUkVUVVJOX0lOVDMyKChpbnQzMikgSXRlbVBvaW50 ZXJHZXRPZmZzZXROdW1iZXJOb0NoZWNrKHRpZCkpOworfQorCisKIC8qCiAgKglGdW5jdGlvbnMg dG8gZ2V0IGxhdGVzdCB0aWQgb2YgYSBzcGVjaWZpZWQgdHVwbGUuCiAgKgpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKaW5kZXggMzYxZTJjZmZmZWIuLjA4MjY3ZGQ0ZjgxIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKQEAgLTI3NTAsNiArMjc1MCwxMiBAQAogeyBvaWQgPT4gJzI3OTYnLCBkZXNjciA9 PiAnc21hbGxlciBvZiB0d28nLAogICBwcm9uYW1lID0+ICd0aWRzbWFsbGVyJywgcHJvcmV0dHlw ZSA9PiAndGlkJywgcHJvYXJndHlwZXMgPT4gJ3RpZCB0aWQnLAogICBwcm9zcmMgPT4gJ3RpZHNt YWxsZXInIH0sCit7IG9pZCA9PiAnOTk1MScsIGRlc2NyID0+ICdleHRyYWN0IGJsb2NrIG51bWJl ciBmcm9tIHRpZCcsCisgIHByb25hbWUgPT4gJ3RpZF9ibG9jaycsIHByb2xlYWtwcm9vZiA9PiAn dCcsIHByb3JldHR5cGUgPT4gJ2ludDgnLAorICBwcm9hcmd0eXBlcyA9PiAndGlkJywgcHJvc3Jj ID0+ICd0aWRfYmxvY2snIH0sCit7IG9pZCA9PiAnOTk1MicsIGRlc2NyID0+ICdleHRyYWN0IG9m ZnNldCBudW1iZXIgZnJvbSB0aWQnLAorICBwcm9uYW1lID0+ICd0aWRfb2Zmc2V0JywgcHJvbGVh a3Byb29mID0+ICd0JywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCisgIHByb2FyZ3R5cGVzID0+ICd0 aWQnLCBwcm9zcmMgPT4gJ3RpZF9vZmZzZXQnIH0sCiB7IG9pZCA9PiAnMjIzMycsIGRlc2NyID0+ ICdoYXNoJywKICAgcHJvbmFtZSA9PiAnaGFzaHRpZCcsIHByb3JldHR5cGUgPT4gJ2ludDQnLCBw cm9hcmd0eXBlcyA9PiAndGlkJywKICAgcHJvc3JjID0+ICdoYXNodGlkJyB9LApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggNmZmNGQ3ZWU5MDEuLmNmZGM2YjFh MTdhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTg4Nyw2 ICs4ODcsOCBAQCBvaWQ4bGUob2lkOCxvaWQ4KQogb2lkOGd0KG9pZDgsb2lkOCkKIG9pZDhnZShv aWQ4LG9pZDgpCiBidG9pZDhjbXAob2lkOCxvaWQ4KQordGlkX2Jsb2NrKHRpZCkKK3RpZF9vZmZz ZXQodGlkKQogLS0gQ2hlY2sgdGhhdCBmdW5jdGlvbnMgd2l0aG91dCBhcmd1bWVudCBhcmUgbm90 IG1hcmtlZCBhcyBsZWFrcHJvb2YuCiBTRUxFQ1QgcDEub2lkOjpyZWdwcm9jZWR1cmUKIEZST00g cGdfcHJvYyBwMSBKT0lOIHBnX25hbWVzcGFjZSBwbgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC90aWQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90aWQub3V0 CmluZGV4IDA4M2M4M2ExZTFiLi4zNDk3YTc3Njg4YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC90aWQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGlk Lm91dApAQCAtNDIsNiArNDIsNTcgQEAgU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZv KCcoMCwtMSknLCAndGlkJyk7CiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgdGlkOiAi KDAsLTEpIiB8ICAgICAgICB8ICAgICAgfCAyMlAwMgogKDEgcm93KQogCistLSB0ZXN0cyBmb3Ig dGlkX2Jsb2NrKCkgYW5kIHRpZF9vZmZzZXQoKQorU0VMRUNUIHRpZF9ibG9jaygnKDAsMCknOjp0 aWQpLCB0aWRfb2Zmc2V0KCcoMCwwKSc6OnRpZCk7CisgdGlkX2Jsb2NrIHwgdGlkX29mZnNldCAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgMCB8ICAgICAgICAgIDAKKygxIHJv dykKKworU0VMRUNUIHRpZF9ibG9jaygnKDAsMSknOjp0aWQpLCB0aWRfb2Zmc2V0KCcoMCwxKSc6 OnRpZCk7CisgdGlkX2Jsb2NrIHwgdGlkX29mZnNldCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorICAgICAgICAgMCB8ICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIHRpZF9ibG9jaygn KDQyLDcpJzo6dGlkKSwgdGlkX29mZnNldCgnKDQyLDcpJzo6dGlkKTsKKyB0aWRfYmxvY2sgfCB0 aWRfb2Zmc2V0IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgIDQyIHwgICAgICAg ICAgNworKDEgcm93KQorCistLSBtYXggdmFsdWVzOiBibG9ja25vIHVpbnQzMiBtYXgsIG9mZnNl dCB1aW50MTYgbWF4CitTRUxFQ1QgdGlkX2Jsb2NrKCcoNDI5NDk2NzI5NSw2NTUzNSknOjp0aWQp LCB0aWRfb2Zmc2V0KCcoNDI5NDk2NzI5NSw2NTUzNSknOjp0aWQpOworIHRpZF9ibG9jayAgfCB0 aWRfb2Zmc2V0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIDQyOTQ5NjcyOTUgfCAgICAg IDY1NTM1CisoMSByb3cpCisKKy0tICgtMSwwKSB3cmFwcyB0byBibG9ja25vIDQyOTQ5NjcyOTUK K1NFTEVDVCB0aWRfYmxvY2soJygtMSwwKSc6OnRpZCk7CisgdGlkX2Jsb2NrICAKKy0tLS0tLS0t LS0tLQorIDQyOTQ5NjcyOTUKKygxIHJvdykKKworLS0gTlVMTCBoYW5kbGluZyAoc3RyaWN0IGZ1 bmN0aW9ucykKK1NFTEVDVCB0aWRfYmxvY2soTlVMTDo6dGlkKSwgdGlkX29mZnNldChOVUxMOjp0 aWQpOworIHRpZF9ibG9jayB8IHRpZF9vZmZzZXQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyAgICAgICAgICAgfCAgICAgICAgICAgCisoMSByb3cpCisKKy0tIHJvdW5kLXRyaXA6IGJsb2Nr bm8gKyBvZmZzZXQgcmVjb25zdHJ1Y3QgdGhlIG9yaWdpbmFsIFRJRAorU0VMRUNUIHQsIHRpZF9i bG9jayh0KSwgdGlkX29mZnNldCh0KSwKKyAgICAgICBmb3JtYXQoJyglcywlcyknLCB0aWRfYmxv Y2sodCksIHRpZF9vZmZzZXQodCkpOjp0aWQgPSB0IEFTIHJvdW5kdHJpcF9vaworRlJPTSAoVkFM VUVTICgnKDAsMCknOjp0aWQpLCAoJygxLDQyKSc6OnRpZCksICgnKDQyOTQ5NjcyOTUsNjU1MzUp Jzo6dGlkKSkgQVMgdih0KTsKKyAgICAgICAgIHQgICAgICAgICAgfCB0aWRfYmxvY2sgIHwgdGlk X29mZnNldCB8IHJvdW5kdHJpcF9vayAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyAoMCwwKSAgICAgICAgICAgICAgfCAgICAg ICAgICAwIHwgICAgICAgICAgMCB8IHQKKyAoMSw0MikgICAgICAgICAgICAgfCAgICAgICAgICAx IHwgICAgICAgICA0MiB8IHQKKyAoNDI5NDk2NzI5NSw2NTUzNSkgfCA0Mjk0OTY3Mjk1IHwgICAg ICA2NTUzNSB8IHQKKygzIHJvd3MpCisKIC0tIHRlc3RzIGZvciBmdW5jdGlvbnMgcmVsYXRlZCB0 byBUSUQgaGFuZGxpbmcKIENSRUFURSBUQUJMRSB0aWRfdGFiIChhIGludCk7CiAtLSBtaW4oKSBh bmQgbWF4KCkgZm9yIFRJRHMKQEAgLTU4LDYgKzEwOSwyMSBAQCBTRUxFQ1QgbWF4KGN0aWQpIEZS T00gdGlkX3RhYjsKICAoMCwyKQogKDEgcm93KQogCistLSB0aWRfYmxvY2soKSBhbmQgdGlkX29m ZnNldCgpIHdpdGggcmVhbCB0YWJsZSBjdGlkCitTRUxFQ1QgY3RpZCwgdGlkX2Jsb2NrKGN0aWQp LCB0aWRfb2Zmc2V0KGN0aWQpIEZST00gdGlkX3RhYjsKKyBjdGlkICB8IHRpZF9ibG9jayB8IHRp ZF9vZmZzZXQgCistLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICgwLDEpIHwgICAg ICAgICAwIHwgICAgICAgICAgMQorICgwLDIpIHwgICAgICAgICAwIHwgICAgICAgICAgMgorKDIg cm93cykKKworLS0gdXNlIGluIFdIRVJFIGNsYXVzZQorU0VMRUNUIGN0aWQgRlJPTSB0aWRfdGFi IFdIRVJFIHRpZF9ibG9jayhjdGlkKSA9IDAgQU5EIHRpZF9vZmZzZXQoY3RpZCkgPSAxOworIGN0 aWQgIAorLS0tLS0tLQorICgwLDEpCisoMSByb3cpCisKIFRSVU5DQVRFIHRpZF90YWI7CiAtLSBU ZXN0cyBmb3IgY3VycnRpZDIoKSB3aXRoIHZhcmlvdXMgcmVsYXRpb24ga2luZHMKIC0tIE1hdGVy aWFsaXplZCB2aWV3CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90aWQuc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvdGlkLnNxbAppbmRleCAyNjAyZTIwZWI1YS4uYzBhNzBiZTVj YmQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpZC5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvdGlkLnNxbApAQCAtMTYsNiArMTYsMjIgQEAgU0VMRUNUIHBnX2lucHV0 X2lzX3ZhbGlkKCcoMCwtMSknLCAndGlkJyk7CiBTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9y X2luZm8oJygwLC0xKScsICd0aWQnKTsKIAogCistLSB0ZXN0cyBmb3IgdGlkX2Jsb2NrKCkgYW5k IHRpZF9vZmZzZXQoKQorU0VMRUNUIHRpZF9ibG9jaygnKDAsMCknOjp0aWQpLCB0aWRfb2Zmc2V0 KCcoMCwwKSc6OnRpZCk7CitTRUxFQ1QgdGlkX2Jsb2NrKCcoMCwxKSc6OnRpZCksIHRpZF9vZmZz ZXQoJygwLDEpJzo6dGlkKTsKK1NFTEVDVCB0aWRfYmxvY2soJyg0Miw3KSc6OnRpZCksIHRpZF9v ZmZzZXQoJyg0Miw3KSc6OnRpZCk7CistLSBtYXggdmFsdWVzOiBibG9ja25vIHVpbnQzMiBtYXgs IG9mZnNldCB1aW50MTYgbWF4CitTRUxFQ1QgdGlkX2Jsb2NrKCcoNDI5NDk2NzI5NSw2NTUzNSkn Ojp0aWQpLCB0aWRfb2Zmc2V0KCcoNDI5NDk2NzI5NSw2NTUzNSknOjp0aWQpOworLS0gKC0xLDAp IHdyYXBzIHRvIGJsb2Nrbm8gNDI5NDk2NzI5NQorU0VMRUNUIHRpZF9ibG9jaygnKC0xLDApJzo6 dGlkKTsKKy0tIE5VTEwgaGFuZGxpbmcgKHN0cmljdCBmdW5jdGlvbnMpCitTRUxFQ1QgdGlkX2Js b2NrKE5VTEw6OnRpZCksIHRpZF9vZmZzZXQoTlVMTDo6dGlkKTsKKy0tIHJvdW5kLXRyaXA6IGJs b2Nrbm8gKyBvZmZzZXQgcmVjb25zdHJ1Y3QgdGhlIG9yaWdpbmFsIFRJRAorU0VMRUNUIHQsIHRp ZF9ibG9jayh0KSwgdGlkX29mZnNldCh0KSwKKyAgICAgICBmb3JtYXQoJyglcywlcyknLCB0aWRf YmxvY2sodCksIHRpZF9vZmZzZXQodCkpOjp0aWQgPSB0IEFTIHJvdW5kdHJpcF9vaworRlJPTSAo VkFMVUVTICgnKDAsMCknOjp0aWQpLCAoJygxLDQyKSc6OnRpZCksICgnKDQyOTQ5NjcyOTUsNjU1 MzUpJzo6dGlkKSkgQVMgdih0KTsKKworCiAtLSB0ZXN0cyBmb3IgZnVuY3Rpb25zIHJlbGF0ZWQg dG8gVElEIGhhbmRsaW5nCiAKIENSRUFURSBUQUJMRSB0aWRfdGFiIChhIGludCk7CkBAIC0yNCw2 ICs0MCwxMSBAQCBDUkVBVEUgVEFCTEUgdGlkX3RhYiAoYSBpbnQpOwogSU5TRVJUIElOVE8gdGlk X3RhYiBWQUxVRVMgKDEpLCAoMik7CiBTRUxFQ1QgbWluKGN0aWQpIEZST00gdGlkX3RhYjsKIFNF TEVDVCBtYXgoY3RpZCkgRlJPTSB0aWRfdGFiOworCistLSB0aWRfYmxvY2soKSBhbmQgdGlkX29m ZnNldCgpIHdpdGggcmVhbCB0YWJsZSBjdGlkCitTRUxFQ1QgY3RpZCwgdGlkX2Jsb2NrKGN0aWQp LCB0aWRfb2Zmc2V0KGN0aWQpIEZST00gdGlkX3RhYjsKKy0tIHVzZSBpbiBXSEVSRSBjbGF1c2UK K1NFTEVDVCBjdGlkIEZST00gdGlkX3RhYiBXSEVSRSB0aWRfYmxvY2soY3RpZCkgPSAwIEFORCB0 aWRfb2Zmc2V0KGN0aWQpID0gMTsKIFRSVU5DQVRFIHRpZF90YWI7CiAKIC0tIFRlc3RzIGZvciBj dXJydGlkMigpIHdpdGggdmFyaW91cyByZWxhdGlvbiBraW5kcwotLSAKMi40My4wCgo= --0000000000001cf54e064cf83c4d--