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 1vw8wu-005MUS-2E for pgsql-hackers@arkaria.postgresql.org; Sat, 28 Feb 2026 01:16:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vw8wt-008fn3-1c for pgsql-hackers@arkaria.postgresql.org; Sat, 28 Feb 2026 01:16:51 +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 1vw8ws-008fmg-2m for pgsql-hackers@lists.postgresql.org; Sat, 28 Feb 2026 01:16:51 +0000 Received: from mail-oo1-xc2d.google.com ([2607:f8b0:4864:20::c2d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vw8wp-00000001b4D-0kQF for pgsql-hackers@lists.postgresql.org; Sat, 28 Feb 2026 01:16:49 +0000 Received: by mail-oo1-xc2d.google.com with SMTP id 006d021491bc7-673ee2a98b1so1941189eaf.0 for ; Fri, 27 Feb 2026 17:16:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772241408; cv=none; d=google.com; s=arc-20240605; b=UlsCDkHefyrkPGFB/S12CE0lZRc+BDwFkR9ZA2sDaF9GCYhUfLuENLa0N2ZVFg8pO9 pciPw8zykEZXf+VUO4h9iMrN+hqGObwqay/WFrIyHw4azTEc2U1VaGZbqunMVPb2oneb Bp4lI3WrHg4MYdKwdkpeCnaST3xzKs0ZSXmObQK4YkmeRKcv6+63Cs4Z0yfAyZGUj3FD HiwOquS2vr0Xs2xrQ8GQSIS/ZGu6FZV8Bl40tAQX2EsGnVzbBywKlrV8s0KDVUUg2Tep WF0V1RYmiVHMw4ZcpIxMxX6OmTGoPkBmbxeM/dkprWRmtKiQKjClF9JTrt5KK4tyqu49 lcTw== 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=ufCPT8dvrP4MXOI2bmQzlJlmDWJ3OLKo9Iz6+Vc1IGA=; fh=ncTNwasm8kj0hNBtA70mRR1RSI7f5DRWPv73WOi9Z5Q=; b=PM4wnW52l0WTXu+soDrNoKsjSvx52MeKAeWSAVPA7B5rcLOhQUtaOQKqNfeOhl+UrW 0kZo2Zi/odqPbE9yTr6ombgzCcFyfORUmVF6e8lR8/nkISYsJlUOLK9mh682YRDywGsV BDgx5MJ2Xj/OiG0VcK5B8xZUJWni+FgXSeZq85r6u05WRVHQ3GJdkZROKjwm8DE+HNrt Afe8gfsQ04eConKfXOSqeE8rjxiNdNXiNnbif2joNX8dn/uVEi2pV1KO5s5w4w9jwPMG xp7C/84yUJcSEBC1avaXZ04bDxq68QxTcmkesgm0MC51FrnQ5c6UuRkswOb0fNCLa2mq JEcQ==; darn=lists.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=1772241408; x=1772846208; darn=lists.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=ufCPT8dvrP4MXOI2bmQzlJlmDWJ3OLKo9Iz6+Vc1IGA=; b=W97UC9gAyGGuTnjt65IwjdS+7Qk8KkOuJ6kBTOYGFxH9R/n+msFUa4DbWoSdZOVmaa 7YV05vtpkEW5Oj+ydsqeC4xx8NxcPh56P95Ej11In0NhaKSxpyGdh/iK3eeQajnM1u8O xaiZS2coLT7ihBog4jF7pbEPIqH9Mod0Dzh2YY9aprr+uH9iPeNozxHPTctTicOUc0bj /ID/8bPSS4hPPj+FxO6e0u09Yx8fGF+MLtZMDaGvw4NMTQokAzZaS8pDIcEY09Z3zGMh /25AKENumkToD48TX+jID27AfZkYm2IzFOb6QmwMMeAe6eaXtT5v7UqsffpVO34WtKOu fBIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772241408; x=1772846208; 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=ufCPT8dvrP4MXOI2bmQzlJlmDWJ3OLKo9Iz6+Vc1IGA=; b=SaOucy9oJmTe+U9RUFX21OC6EvfCkOmU5rvsc3tvjfs4LfTAofcqXNqp9aXj2eQb4A RW2+WwWU26HkHQVSV5kAAeLmZF5uMYmk6dFc8bv817gFOK4GwfP6iPRHoPda9P9Ruu6h TRUS2EoZHHWGAnvMGyB2XY+fFlLGFsF+AwrV1f/N4ehSJd0tp8XLJ3vPujpLcdzSqYJp WsLFYPvxShIiLqg2SrwJ9HQsgi4tjk/Kmz8PU7nCyKcQcm6JhhIwd8CoeGJ3qlJCNdQ1 aUhv+BzIsXuiYpexFvzXNbN1q/PBqiaebdTJT+W7PE20C3KPTNIxWpDdS9l5XVvNtGTZ sFFQ== X-Forwarded-Encrypted: i=1; AJvYcCXzMTkzTH0Lc62rPeFXtrXcBsKCf84PtHi7w7nc07XoeAJPamvf2qrpJ93fx+Z8Wbdo2Ygv9/0QUXiDQfre@lists.postgresql.org X-Gm-Message-State: AOJu0Yyx2l5gmlp2YLzfMCcZTqFfUD3fQ7oYTBCOhxuUCixl5cfhrLSO /BK3qs1oTUx1PeqaVHtCeIOikL0rCzZ+JGTqPuhR2QSBjNdjexTJC5ISZtoxH6+8F4tGDdw5kAB eils8eCMufpQ6XUnKkkEcWf8+CP/aXaQ= X-Gm-Gg: ATEYQzxVX1OK8s9OjfsZ/CBELFXPpfN+wmwFfUsuTVjN2J1ER9cZKZWkEO6BXamiHpZ 8rzc9onufo7RRjf7LK0KplmNToLkIz6ItQDXh7vf90uVKRWVd538XYT6ZqY7LvAELbuEPlckFDy 6+qIeHlhbgL+1OUosvDGhRCp7OwUX/y1qF6eOeFIHAuQ7B+Jzgo9j99Sxd55N4h0L1el9FFySs2 DBn9HNAp4bIsIJfEEpNhLwCEvc3wC6jnWf9KRPBe05+oGsOG+KxuIZ919XiN3L8P2hDHiNbneBt AZohNzg= X-Received: by 2002:a05:6820:3102:b0:679:f895:4c42 with SMTP id 006d021491bc7-679fae6ebbbmr3281216eaf.27.1772241407741; Fri, 27 Feb 2026 17:16:47 -0800 (PST) MIME-Version: 1.0 References: <1136161.1769654478@sss.pgh.pa.us> In-Reply-To: From: "David G. Johnston" Date: Fri, 27 Feb 2026 18:16:10 -0700 X-Gm-Features: AaiRm50ymOiSyVD_gfIHmz4PxFwdJ0rm5BgPRBlSqt_VgAaHSHr5h9qcWoUCMEQ Message-ID: Subject: Re: pg_plan_advice To: Robert Haas Cc: Alexandra Wang , Richard Guo , Lukas Fittl , Tom Lane , Jacob Champion , Dian Fay , Matheus Alcantara , Jakub Wartak , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000090b9e6064bd81b58" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000090b9e6064bd81b58 Content-Type: multipart/alternative; boundary="00000000000090b9e5064bd81b56" --00000000000090b9e5064bd81b56 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Feb 27, 2026 at 3:46=E2=80=AFPM Robert Haas = wrote: > On Thu, Feb 26, 2026 at 8:55=E2=80=AFAM Robert Haas wrote: > > Thanks, Alex, for the review. > > Here's v18. In addition to fixing the problems pointed out by Alex, > there are a couple of significant changes in this version. > > I have a mind to walk through the readmes and sgmls but its going to be in chunks. Here's one for the readme for pg_plan_advice with a couple of preliminary sgml changes. David J. --00000000000090b9e5064bd81b56 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Fri, Feb 27, 2026 at 3:46=E2=80=AFPM Robert Haas <robertmhaas@gmail.com> wrote:=
On Thu, Feb 26, 2026 at 8:55=E2= =80=AFAM Robert Haas <robertmhaas@gmail.com> wrote:
> Thanks, Alex, for the review.

Here's v18. In addition to fixing the problems pointed out by Alex,
there are a couple of significant changes in this version.


I have a mind to walk through the readmes and sgmls b= ut its going to be in chunks.=C2=A0 Here's one for the readme for pg_pl= an_advice with a couple of preliminary sgml changes.

D= avid J.
--00000000000090b9e5064bd81b56-- --00000000000090b9e6064bd81b58 Content-Type: text/x-patch; charset="US-ASCII"; name="nocfbot-v18-0003-Readme.diff" Content-Disposition: attachment; filename="nocfbot-v18-0003-Readme.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm5mo12s0 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvUkVBRE1FIGIvY29udHJpYi9wZ19w bGFuX2FkdmljZS9SRUFETUUKaW5kZXggMGI4ODhmZDgyZjIuLjkxNzhlMmU4YzNiIDEwMDY0NAot LS0gYS9jb250cmliL3BnX3BsYW5fYWR2aWNlL1JFQURNRQorKysgYi9jb250cmliL3BnX3BsYW5f YWR2aWNlL1JFQURNRQpAQCAtMjYsNiArMjYsOCBAQCBBZHZpY2UgdGFncyBjYW4gYWxzbyBiZSBh cHBsaWVkIHRvIGdyb3VwcyBvZiByZWxhdGlvbnM7IGZvciBleGFtcGxlLAogcmVsYXRpb24gaWRl bnRpZmllciAiYmF6IiBhcyB3ZWxsIGFzIHRvIHRoZSAyLWl0ZW0gbGlzdCBjb250YWluaW5nCiAi YmxldGNoIiBhbmQgInF1dXgiLgogCitYWFg6IHByb2JhYmx5IHNob3VsZCByZW1vdmUgInlvdSIs IHRoZSBkb2N1bWVudCBzZWVtcyB0byBwcmVmZXIgInRoZSB1c2VyIgorCiBDcml0aWNhbGx5LCB0 aGlzIG1vZHVsZSBrbm93cyBib3RoIGhvdyB0byBnZW5lcmF0ZSBwbGFuIGFkdmljZSBmcm9tIGFu CiBhbHJlYWR5LWV4aXN0aW5nIHBsYW4sIGFuZCBhbHNvIGhvdyB0byBlbmZvcmNlIGl0IGR1cmlu ZyBmdXR1cmUgcGxhbm5pbmcKIGN5Y2xlcy4gRXZlcnl0aGluZyBpdCBkb2VzIGlzIGludGVuZGVk IHRvIGJlICJyb3VuZC10cmlwIHNhZmUiOiBpZiB5b3UKQEAgLTM3LDE2ICszOSwxNyBAQCBsZWQg dG8gaXQgYmVpbmcgZ2VuZXJhdGVkIGluIHRoZSBmaXJzdCBwbGFjZS4gTm90ZSB0aGF0IHRoZXJl IGlzIG5vCiBpbnRlbnRpb24gdGhhdCB0aGVzZSBndWFyYW50ZWVzIGhvbGQgaW4gdGhlIHByZXNl bmNlIG9mIGludGVydmVuaW5nIERETDsKIGUuZy4gaWYgeW91IGNoYW5nZSB0aGUgcHJvcGVydGll cyBvZiBhIGZ1bmN0aW9uIHNvIHRoYXQgYSBzdWJxdWVyeSBpcyBubwogbG9uZ2VyIGlubGluZWQs IG9yIGlmIHlvdSBkcm9wIGFuIGluZGV4IG5hbWVkIGluIHRoZSBwbGFuIGFkdmljZSwgdGhlIGFk dmljZQotaXNuJ3QgZ29pbmcgdG8gd29yayBhbnkgbW9yZS4gVGhhdCdzIGV4cGVjdGVkLgoraXNu J3QgZ29pbmcgdG8gd29yayBhbnkgbW9yZS4gVGhhdCdzIGV4cGVjdGVkLiBJdCBzaG91bGQgYmUg cmVzaWxpZW50IHRvCitjaGFuZ2VzIGluIHRoZSBzdGF0aXN0aWNzLCBpbmNsdWRpbmcgYW55IENS RUFURSBTVEFUSVNUSUNTIHJlbGF0ZWQgY2hhbmdlcy4KIAogVGhpcyBtb2R1bGUgYWltcyB0byBm b3JjZSB0aGUgcGxhbm5lciB0byBmb2xsb3cgYW55IHByb3ZpZGVkIGFkdmljZSB3aXRob3V0Ci1y ZWdhcmQgdG8gd2hldGhlciBpdCBpcyBhcHBlYXJzIHRvIGJlIGdvb2QgYWR2aWNlIG9yIGJhZCBh ZHZpY2UuICBJZiB0aGUKLXVzZXIgcHJvdmlkZXMgYmFkIGFkdmljZSwgd2hldGhlciBkZXJpdmVk IGZyb20gYSBwcmV2aW91c2x5LWdlbmVyYXRlZCBwbGFuCi1vciBtYW51YWxseSB3cml0dGVuLCB0 aGV5IG1heSBnZXQgYSBiYWQgcGxhbi4gV2UgcmVnYXJkIHRoaXMgYXMgdXNlciBlcnJvciwKK3Jl Z2FyZCB0byB3aGV0aGVyIGl0IGFwcGVhcnMgdG8gYmUgZ29vZCBhZHZpY2Ugb3IgYmFkIGFkdmlj ZS4gSWYgeW91Citwcm92aWRlIGJhZCBhZHZpY2UsIHdoZXRoZXIgZGVyaXZlZCBmcm9tIGEgcHJl dmlvdXNseS1nZW5lcmF0ZWQgcGxhbgorb3IgbWFudWFsbHkgd3JpdHRlbiwgeW91IG1heSBnZXQg YSBiYWQgcGxhbi4gV2UgcmVnYXJkIHRoaXMgYXMgdXNlciBlcnJvciwKIG5vdCBhIGRlZmVjdCBp biB0aGlzIG1vZHVsZS4gSXQgc2VlbXMgbGlrZWx5IHRoYXQgYXBwbHlpbmcgYWR2aWNlCi1qdWRp Y2lvdXNseSBhbmQgb25seSB3aGVuIHRydWx5IHJlcXVpcmVkIHRvIGF2b2lkIHByb2JsZW1zIHdp bGwgYmUgYSBtb3JlCi1zdWNjZXNzZnVsIHN0cmF0ZWd5IHRoYW4gYXBwbHlpbmcgaXQgd2l0aCBh IGJyb2FkIGJydXNoLCBidXQgdXNlcnMgYXJlIGZyZWUKLXRvIGV4cGVyaW1lbnQgd2l0aCB3aGF0 ZXZlciBzdHJhdGVnaWVzIHRoZXkgdGhpbmsgYmVzdC4KK2NvbnNlcnZhdGl2ZWx5LCBvbmx5IHdo ZW4gdHJ1bHkgcmVxdWlyZWQgdG8gYXZvaWQgcHJvYmxlbXMsIHdpbGwgYmUgYSBtb3JlCitzdWNj ZXNzZnVsIHN0cmF0ZWd5IHRoYW4gYXBwbHlpbmcgaXQgd2l0aCBhIGJyb2FkIGJydXNoLCBidXQg eW91IGFyZSBmcmVlCit0byBleHBlcmltZW50IHdpdGggd2hhdGV2ZXIgc3RyYXRlZ2llcyB5b3Ug dGhpbmsgYmVzdC4KIAogUmVsYXRpb24gSWRlbnRpZmllcnMKID09PT09PT09PT09PT09PT09PT09 CkBAIC01NCw3ICs1Nyw3IEBAIFJlbGF0aW9uIElkZW50aWZpZXJzCiBVbmlxdWVseSBpZGVudGlm eWluZyB0aGUgcGFydCBvZiBhIHF1ZXJ5IHRvIHdoaWNoIGEgY2VydGFpbiBwaWVjZSBvZgogYWR2 aWNlIGFwcGxpZXMgaXMgaGFyZGVyIHRoYW4gaXQgc291bmRzLiBPdXIgYmFzaWMgYXBwcm9hY2gg aXMgdG8gdXNlCiByZWxhdGlvbiBhbGlhc2VzIGFzIGEgc3RhcnRpbmcgcG9pbnQsIGFuZCB0aGVu IGRpc2FtYmlndWF0ZS4gVGhlcmUgYXJlCi10aHJlZSB3YXlzIHRoYXQgc2FtZSByZWxhdGlvbiBh bGlhcyBjYW4gb2NjdXIgbXVsdGlwbGUgdGltZXM6Cit0aHJlZSB3YXlzIHRoYXQgdGhlIHNhbWUg cmVsYXRpb24gYWxpYXMgY2FuIG9jY3VyIG11bHRpcGxlIHRpbWVzOgogCiAxLiBJdCBjYW4gYXBw ZWFyIGluIG1vcmUgdGhhbiBvbmUgc3VicXVlcnkuCiAKQEAgLTc1LDEzICs3OCwxMyBAQCBwYXJ0 aXRpb25lZCB0YWJsZXMuICBXaGVuIHRoZSBnZW5lcmF0ZWQgb2NjdXJyZW5jZSBudW1iZXIgaXMg MSwgd2Ugb21pdAogdGhlIG9jY3VycmVuY2UgbnVtYmVyLiBUaGUgcGFydGl0aW9uIHNjaGVtYSBh bmQgcGFydGl0aW9uIG5hbWUgYXJlIGluY2x1ZGVkCiBvbmx5IGZvciBjaGlsZHJlbiBvZiBwYXJ0 aXRpb25lZCB0YWJsZXMuIEluIGdlbmVyYXRlZCBhZHZpY2UsIHRoZQogcGFydGl0aW9uX3NjaGVt YSBpcyBhbHdheXMgaW5jbHVkZWQgd2hlbmV2ZXIgdGhlcmUgaXMgYSBwYXJ0aXRpb25fbmFtZSwK LWJ1dCB1c2VyLXdyaXR0ZW4gYWR2aWNlIG1heSBtZW50aW9uIHRoZSBuYW1lIGFuZCBvbWl0IHRo ZSBzY2hlbWEuIFRoZQotcGxhbl9uYW1lIGlzIG9taXR0ZWQgZm9yIHRoZSB0b3AtbGV2ZWwgUGxh bm5lckluZm8uCitidXQgdXNlci13cml0dGVuIGFkdmljZSBtYXkgb21pdCB0aGUgc2NoZW1hLiBU aGUgcGxhbl9uYW1lIGlzIG9taXR0ZWQKK2ZvciB0aGUgdG9wLWxldmVsIFBsYW5uZXJJbmZvLgog CiBTY2FuIEFkdmljZQogPT09PT09PT09PT0KIAotRm9yIG1hbnkgdHlwZXMgb2Ygc2Nhbiwgbm8g YWR2aWNlIGlzIGdlbmVyYXRlZCBvciBwb3NzaWJsZTsgZm9yIGluc3RhbmNlLAorRm9yIG1hbnkg c2NhbiB0eXBlcywgbm8gYWR2aWNlIGlzIGdlbmVyYXRlZCBvciBwb3NzaWJsZTsgZm9yIGluc3Rh bmNlLAogYSBzdWJxdWVyeSBpcyBhbHdheXMgc2Nhbm5lZCB1c2luZyBhIHN1YnF1ZXJ5IHNjYW4u IFdoaWxlIHRoYXQgc2NhbiBtYXkgYmUKIGVsaWRlZCB2aWEgc2V0cmVmcyBwcm9jZXNzaW5nLCB0 aGlzIGRvZXNuJ3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQgb25seSBvbmUKIGJhc2ljIGFwcHJvYWNo IGV4aXN0cy4gSGVuY2UsIHNjYW4gYWR2aWNlIGFwcGxpZXMgbW9zdGx5IHRvIHJlbGF0aW9ucywg d2hpY2gKQEAgLTk0LDggKzk3LDggQEAgd2hpY2gsIGluIGVmZmVjdCwgaXMgYSBkZWdlbmVyYXRl IHNjYW4gb2YgZXZlcnkgcmVsYXRpb24gaW4gdGhlIGNvbGxhcHNlZAogcG9ydGlvbiBvZiB0aGUg am9pbiB0cmVlLiBTaW1pbGFybHksIGl0J3MgcG9zc2libGUgdG8gaW5qZWN0IGEgY3VzdG9tIHNj YW4KIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCByZXBsYWNlcyBhbiBlbnRpcmUgam9pbi4gSWYgd2Ug ZXZlciBlbWl0IGFkdmljZQogZm9yIHRoZXNlIGNhc2VzLCBpdCB3b3VsZCB0YXJnZXQgc2V0cyBv ZiByZWxhdGlvbiBpZGVudGlmaWVycyBzdXJyb3VuZGVkCi1ieSBwYXJlbnRoZXNlcywgZS5nLiBT T01FX1NPUlRfT0ZfU0NBTihmb28gKGJhciBiYXopKSB3b3VsZCBtZWFuIHRoYXQgdGhlCi10aGUg Z2l2ZW4gc2NhbiB0eXBlIHdvdWxkIGJlIHVzZWQgZm9yIGZvbyBhcyBhIHNpbmdsZSByZWxhdGlv biBhbmQgYWxzbyB0aGUKK2J5IHBhcmVudGhlc2VzLCBlLmcuLCBTT01FX1NPUlRfT0ZfU0NBTihm b28gKGJhciBiYXopKSB3b3VsZCBtZWFuIHRoYXQgdGhlCitnaXZlbiBzY2FuIHR5cGUgd291bGQg YmUgdXNlZCBmb3IgZm9vIGFzIGEgc2luZ2xlIHJlbGF0aW9uIGFuZCBhbHNvIHRoZQogY29tYmlu YXRpb24gb2YgYmFyIGFuZCBiYXogYXMgYSBqb2luIHByb2R1Y3QuIFdlIGhhdmUgbm8gc3VjaCBj YXNlcyBhdAogcHJlc2VudC4KIApAQCAtMTE1LDE0ICsxMTgsMTQgQEAgSm9pbiBPcmRlciBBZHZp Y2UKIFRoZSBKT0lOX09SREVSIHRhZyBzcGVjaWZpZXMgdGhlIG9yZGVyIGluIHdoaWNoIHNldmVy YWwgdGFibGVzIHRoYXQgYXJlCiBwYXJ0IG9mIHRoZSBzYW1lIGpvaW4gcHJvYmxlbSBzaG91bGQg YmUgam9pbmVkLiBFYWNoIHN1YnF1ZXJ5IChleGNlcHQgZm9yCiB0aG9zZSB0aGF0IGFyZSBpbmxp bmVkKSBpcyBhIHNlcGFyYXRlIGpvaW4gcHJvYmxlbS4gV2l0aGluIGEgc3VicXVlcnksCi1wYXJ0 aXRpb253aXNlIGpvaW5zIGNhbiBjcmVhdGUgYWRkaXRpb25hbCwgc2VwYXJhdGUgam9pbiBwcm9i bGVtcy4gSGVuY2UsCitwYXJ0aXRpb253aXNlIGpvaW5zIGNhbiBjcmVhdGUgaW5kZXBlbmRlbnQg am9pbiBwcm9ibGVtcy4gSGVuY2UsCiBxdWVyaWVzIGludm9sdmluZyBwYXJ0aXRpb253aXNlIGpv aW5zIG1heSB1c2UgSk9JTl9PUkRFUigpIG1hbnkgdGltZXMuCiAKIFdlIHRha2UgdGhlIGNhbm9u aWNhbCBqb2luIHN0cnVjdHVyZSB0byBiZSBhbiBvdXRlci1kZWVwIHRyZWUsIHNvCiBKT0lOX09S REVSKHQxIHQyIHQzKSBzYXlzIHRoYXQgdDEgaXMgdGhlIGRyaXZpbmcgdGFibGUgYW5kIHNob3Vs ZCBiZSBqb2luZWQKIGZpcnN0IHRvIHQyIGFuZCB0aGVuIHRvIHQzLiBJZiB0aGUgam9pbiBwcm9i bGVtIGludm9sdmVzIGFkZGl0aW9uYWwgdGFibGVzLAogdGhleSBjYW4gYmUgam9pbmVkIGluIGFu eSBvcmRlciBhZnRlciB0aGUgam9pbiBiZXR3ZWVuIHQxLCB0MiwgYW5kIHQzIGhhcwotYmVlbiBj b25zdHJ1Y3R1cmVkLiBHZW5lcmF0ZWQgam9pbiBhZHZpY2UgYWx3YXlzIG1lbnRpb25zIGFsbCB0 YWJsZXMKK2JlZW4gY29uc3RydWN0ZWQuIEdlbmVyYXRlZCBqb2luIGFkdmljZSBhbHdheXMgbWVu dGlvbnMgYWxsIHRhYmxlcwogaW4gdGhlIGpvaW4gcHJvYmxlbSwgYnV0IG1hbnVhbGx5IHdyaXR0 ZW4gam9pbiBhZHZpY2UgbmVlZCBub3QgZG8gc28uCiAKIEZvciB0cmVlcyB3aGljaCBhcmUgbm90 IG91dGVyLWRlZXAsIHBhcmVudGhlc2VzIGNhbiBiZSB1c2VkLiBGb3IgZXhhbXBsZSwKQEAgLTEz NSwxNyArMTM4LDE4IEBAIEZvciBleGFtcGxlLCBpZiB0MiBhbmQgdDMgYXJlIGJlaW5nIHNjYW5u ZWQgYnkgYSBzaW5nbGUgY3VzdG9tIHNjYW4gb3IgZm9yZWlnbgogc2Nhbiwgb3IgaWYgYSBwYXJ0 aXRpb253aXNlIGpvaW4gaXMgYmVpbmcgcGVyZm9ybWVkIGJldHdlZW4gdGhvc2UgdGFibGVzLCB0 aGVuCiBpdCdzIGltcG9zc2libGUgdG8gc2F5IHRoYXQgdDIgaXMgdGhlIG91dGVyIHRhYmxlIGFu ZCB0MyBpcyB0aGUgaW5uZXIgdGFibGUsCiBvciB0aGUgb3RoZXIgd2F5IGFyb3VuZDsgaXQncyBq dXN0IHVuZGVmaW5lZC4gSW4gc3VjaCBjYXNlcywgd2UgZ2VuZXJhdGUKLWpvaW4gYWR2aWNlIHRo YXQgdXNlcyBjdXJseSBicmFjZXMsIGludGVuZGluZyB0byBpbmRpY2F0ZSBhIGxhY2sgb2Ygb3Jk ZXJpbmc6Citqb2luIGFkdmljZSB0aGF0IHVzZXMgY3VybHkgYnJhY2VzLCBpbmRpY2F0aW5nIGFu IGFic2VuY2Ugb2Ygb3JkZXJpbmc6CiBKT0lOX09SREVSKHQxIHt0MiB0M30pIHNheXMgdGhhdCB0 aGUgdXBwZXJtb3N0IGpvaW4gc2hvdWxkIGhhdmUgdDEgb24gdGhlIG91dGVyCiBzaWRlIGFuZCBz b21lIGtpbmQgb2Ygam9pbiBiZXR3ZWVuIHQyIGFuZCB0MyBvbiB0aGUgaW5uZXIgc2lkZSwgYnV0 IHdpdGhvdXQKLXNheWluZyBob3cgdGhhdCBqb2luIG11c3QgYmUgcGVyZm9ybWVkIG9yIGFueXRo aW5nIGFib3V0IHdoaWNoIHJlbGF0aW9uIHNob3VsZAotYXBwZWFyIG9uIHdoaWNoIHNpZGUgb2Yg dGhlIGpvaW4sIG9yIGV2ZW4gd2hldGhlciB0aGlzIGtpbmQgb2Ygam9pbiBoYXMgc2lkZXMuCitz YXlpbmcgaG93IHRoYXQgam9pbiBtdXN0IGJlIHBlcmZvcm1lZCAoaW5jbHVkaW5nIHdoaWNoIHJl bGF0aW9uIHNob3VsZAorYXBwZWFyIG9uIHdoaWNoIHNpZGUgb2YgdGhlIGpvaW4sIG9yIGV2ZW4g d2hldGhlciB0aGlzIGtpbmQgb2Ygam9pbiBoYXMgc2lkZXMpLgogCiBKb2luIFN0cmF0ZWd5IEFk dmljZQogPT09PT09PT09PT09PT09PT09PT0KIAogVGFncyBzdWNoIGFzIE5FU1RFRF9MT09QX1BM QUlOIHNwZWNpZnkgdGhlIG1ldGhvZCB0aGF0IHNob3VsZCBiZSB1c2VkIHRvCi1wZXJmb3JtIGEg Y2VydGFpbiBqb2luLiBNb3JlIHNwZWNpZmljYWxseSwgTkVTVEVEX0xPT1BfUExBSU4oeCAoeSB6 KSkgc2F5cworcGVyZm9ybSBhIGNlcnRhaW4gam9pbiAtIHdpdGggdGhlIHRhcmdldCBhcHBlYXJp bmcgZGlyZWN0bHkgb24gdGhlIGlubmVyIHNpZGUKK29mIHRoZSBqb2luIGxpc3QgZmlyc3QuIFRo dXMsIE5FU1RFRF9MT09QX1BMQUlOKHggKHkgeikpIHNheXMKIHRoYXQgdGhlIHBsYW4gc2hvdWxk IHB1dCB0aGUgcmVsYXRpb24gd2hvc2UgaWRlbnRpZmllciBpcyAieCIgb24gdGhlIGlubmVyCiBz aWRlIG9mIGEgcGxhaW4gbmVzdGVkIGxvb3AgKG9uZSB3aXRob3V0IG1hdGVyaWFsaXphdGlvbiBv ciBtZW1vaXphdGlvbikKIGFuZCB0aGF0IGl0IHNob3VsZCBhbHNvIHB1dCBhIGpvaW4gYmV0d2Vl biB0aGUgcmVsYXRpb24gd2hvc2UgaWRlbnRpZmllciBpcwpAQCAtMTU3LDIyICsxNjEsMjEgQEAg dGFibGUgaW4gdGhlIGpvaW4gcHJvYmxlbS4KIENvbnNpZGVyaW5nIHRoYXQgd2UgaGF2ZSBib3Ro IGpvaW4gb3JkZXIgYWR2aWNlIGFuZCBqb2luIHN0cmF0ZWd5IGFkdmljZSwKIGl0IG1pZ2h0IHNl ZW0gbmF0dXJhbCB0byBzYXkgdGhhdCBORVNURURfTE9PUF9QTEFJTih4KSBzaG91bGQgYmUgcmVk ZWZpbmVkCiB0byBtZWFuIHRoYXQgeCBzaG91bGQgYXBwZWFyIGJ5IGl0c2VsZiBvbiBvbmUgc2lk ZSBvciB0aGUgb3RoZXIgb2YgYSBuZXN0ZWQKLWxvb3AsIHJhdGhlciB0aGFuIHNwZWNpZmljYWxs eSBvbiB0aGUgaW5uZXIgc2lkZSwgYnV0IHRoaXMgZGVmaW5pdGlvbiBhcHBlYXJzCi11c2VsZXNz IGluIHByYWN0aWNlLiBJdCBnaXZlcyB0aGUgcGxhbm5lciB0b28gbXVjaCBmcmVlZG9tIHRvIGRv IHRoaW5ncyB0aGF0Citsb29wLCByYXRoZXIgdGhhbiBzcGVjaWZpY2FsbHkgb24gdGhlIGlubmVy IHNpZGUsIGJ1dCB0aGlzIGRlZmluaXRpb24gaXMKK3Byb2JsZW1hdGljIGluIHByYWN0aWNlLiBJ dCBnaXZlcyB0aGUgcGxhbm5lciB0b28gbXVjaCBmcmVlZG9tIHRvIGRvIHRoaW5ncyB0aGF0CiBi ZWFyIGxpdHRsZSByZXNlbWJsYW5jZSB0byB3aGF0IHRoZSB1c2VyIHByb2JhYmx5IGhhZCBpbiBt aW5kLiBUaGlzIG1ha2VzCiBvbmx5IGEgbGltaXRlZCBhbW91bnQgb2YgcHJhY3RpY2FsIGRpZmZl cmVuY2UgaW4gdGhlIGNhc2Ugb2YgYSBtZXJnZSBqb2luIG9yCiB1bnBhcmFtZXRlcml6ZWQgbmVz dGVkIGxvb3AsIGJ1dCBmb3IgYSBwYXJhbWV0ZXJpemVkIG5lc3RlZCBsb29wIG9yIGEgaGFzaAot am9pbiwgdGhlIHR3byBzaWRlcyBhcmUgdHJlYXRlZCB2ZXJ5IGRpZmZlcmVudGx5IGFuZCBzYXlp bmcgdGhhdCBhIGNlcnRhaW4KK2pvaW4sIHRoZSB0d28gc2lkZXMgYXJlIHRyZWF0ZWQgdmVyeSBk aWZmZXJlbnRseSwgYW5kIHNheWluZyB0aGF0IGEgY2VydGFpbgogcmVsYXRpb24gc2hvdWxkIGJl IGludm9sdmVkIGluIG9uZSBvZiB0aG9zZSBvcGVyYXRpb25zIHdpdGhvdXQgc2F5aW5nIHdoaWNo CiByb2xlIGl0IHNob3VsZCB0YWtlIGlzbid0IHNheWluZyBtdWNoLgogCi1UaGlzIGNob2ljZSBv ZiBkZWZpbml0aW9uIGltcGxpZXMgdGhhdCBqb2luIHN0cmF0ZWd5IGFkdmljZSBhbHNvIGltcG9z ZXMgc29tZQorVGhpcyBkZWZpbml0aW9uIGNvbXBlbHMgam9pbiBzdHJhdGVneSBhZHZpY2UgdG8g YWxzbyBpbXBvc2UKIGpvaW4gb3JkZXIgY29uc3RyYWludHMuIEZvciBleGFtcGxlLCBnaXZlbiBh IGpvaW4gYmV0d2VlbiBmb28gYW5kIGJhciwKIEhBU0hfSk9JTihiYXIpIGltcGxpZXMgdGhhdCBm b28gaXMgdGhlIGRyaXZpbmcgdGFibGUuIE90aGVyd2lzZSwgaXQgd291bGQKLWJlIGltcG9zc2li bGUgdG8gcHV0IGJhciBiZW5lYXRoIHRoZSBpbm5lciBzaWRlIG9mIGEgSGFzaCBKb2luLgotCi1O b3RlIHRoYXQsIGdpdmVuIHRoaXMgZGVmaW5pdGlvbiwgaXQncyByZWFzb25hYmxlIHRvIGNvbnNp ZGVyIGRlbGV0aW5nIHRoZQotam9pbiBvcmRlciBhZHZpY2UgYnV0IGFwcGx5aW5nIHRoZSBqb2lu IHN0cmF0ZWd5IGFkdmljZS4gRm9yIGV4YW1wbGUsCitiZSBpbXBvc3NpYmxlIHRvIHB1dCBiYXIg YmVuZWF0aCB0aGUgaW5uZXIgc2lkZSBvZiBhIEhhc2ggSm9pbi4gVGh1cyBpdCdzCityZWFzb25h YmxlIHRvIGNvbnNpZGVyIGRlbGV0aW5nIHRoZQoram9pbiBvcmRlciBhZHZpY2UgYW5kIG9ubHkg YXBwbHkgdGhlIGpvaW4gc3RyYXRlZ3kgYWR2aWNlLiBGb3IgZXhhbXBsZSwKIGNvbnNpZGVyIGEg c3RhciBzY2hlbWEgd2l0aCB0YWJsZXMgZmFjdCwgZGltMSwgZGltMiwgZGltMywgZGltNCwgYW5k IGRpbTUuCiBUaGUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYWR2aWNlIG1pZ2h0IHNwZWNpZnkg Sk9JTl9PUkRFUihmYWN0IGRpbTEgZGltMwogZGltNCBkaW0yIGRpbTUpIEhBU0hfSk9JTihkaW0y IGRpbTQpIE5FU1RFRF9MT09QX1BMQUlOKGRpbTEgZGltMyBkaW01KS4KQEAgLTE4OCwxMSArMTkx LDkgQEAgQW4gZXNzZW50aWFsIGd1aWRpbmcgcHJpbmNpcGxlIGlzIHRoYXQgbm8gaW5mZXJlbmNl IG1heSBtYWRlIG9uIHRoZSBiYXNpcwogb2YgdGhlIGFic2VuY2Ugb2YgYWR2aWNlLiBUaGUgdXNl ciBpcyBlbnRpdGxlZCB0byByZW1vdmUgYW55IHBvcnRpb24gb2YgdGhlCiBnZW5lcmF0ZWQgYWR2 aWNlIHdoaWNoIHRoZXkgZGVlbSB1bnN1aXRhYmxlIG9yIGNvdW50ZXJwcm9kdWN0aXZlIGFuZCB0 aGUKIHJlc3VsdCBzaG91bGQgb25seSBiZSB0byBpbmNyZWFzZSB0aGUgZmxleGliaWxpdHkgYWZm b3JkZWQgdG8gdGhlIHBsYW5uZXIuCi1UaGlzIG1lYW5zIHRoYXQgaWYgYWR2aWNlIGNhbiBzYXkg dGhhdCBhIGNlcnRhaW4gb3B0aW1pemF0aW9uIG9yIHRlY2huaXF1ZQotc2hvdWxkIGJlIHVzZWQs IGl0IHNob3VsZCBhbHNvIGJlIGFibGUgdG8gc2F5IHRoYXQgdGhlIG9wdGltaXphdGlvbiBvcgot dGVjaG5pcXVlIHNob3VsZCBub3QgYmUgdXNlZC4gV2Ugc2hvdWxkIG5ldmVyIGFzc3VtZSB0aGF0 IHRoZSBhYnNlbmNlIG9mIGFuCi1pbnN0cnVjdGlvbiB0byBkbyBhIGNlcnRhaW4gdGhpbmcgbWVh bnMgdGhhdCBpdCBzaG91bGQgbm90IGJlIGRvbmU7IGFsbAotaW5zdHJ1Y3Rpb25zIG11c3QgYmUg ZXhwbGljaXQuCitJbiBvdGhlciB3b3JkcywgYWR2aWNlIHRhZ3MgbXVzdCBkZWZpbmUgd2hldGhl ciB0aGV5IGVuY291cmFnZSBvciBkaXNjb3VyYWdlCitjZXJ0YWluIG9wdGltaXphdGlvbnMgb3Ig dGVjaG5pcXVlcy4gKE5PX0dBVEhFUiBpcyBhbiBleGFtcGxlIG9mIHRoZSBsYXR0ZXIuCitUaGVy ZSBpcyBubyBnZW5lcmljICJOT1QiIHN5bnRheCwgZS5nLiwgTk9UKEhBU0hfSk9JTihkaW0yIGRp bTQpLikpCiAKIFNlbWlqb2luIFVuaXF1ZW5lc3MKID09PT09PT09PT09PT09PT09PT0KQEAgLTIz Niw3ICsyMzcsNyBAQCBGb3IgZXhhbXBsZSwgYSB1c2VyIHdobyBzcGVjaWZpZXMgSEFTSF9KT0lO KChmb28gYmFyKSkgaXMgZXhwbGljaXRseSBzYXlpbmcKIHRoYXQgdGhlcmUgc2hvdWxkIGJlIGEg aGFzaCBqb2luIHdpdGggZXhhY3RseSBmb28gYW5kIGJhciBvbiB0aGUgb3V0ZXIKIHNpZGUgb2Yg aXQsIGJ1dCB0aGF0IGFsc28gaW1wbGllcyB0aGF0IGZvbyBhbmQgYmFyIG11c3QgYmUgam9pbmVk IHRvCiBlYWNoIG90aGVyIGJlZm9yZSBlaXRoZXIgb2YgdGhlbSBpcyBqb2luZWQgdG8gYW55dGhp bmcgZWxzZS4gT3RoZXJ3aXNlLAotdGhlIGpvaW4gdGhlIHVzZXIgaXMgYXR0ZW1wdGluZyB0byBj b25zdHJhaW50IHdvbid0IGFjdHVhbGx5IG9jY3VyIGluIHRoZQordGhlIGpvaW4gdGhlIHVzZXIg aXMgYXR0ZW1wdGluZyB0byBjb25zdHJhaW4gd29uJ3QgYWN0dWFsbHkgb2NjdXIgaW4gdGhlCiBx dWVyeSwgd2hpY2ggZW5kcyB1cCBsb29raW5nIGxpa2UgdGhlIHN5c3RlbSBoYXMganVzdCBkZWNp ZGVkIHRvIGlnbm9yZQogdGhlIGFkdmljZSBhbHRvZ2V0aGVyLgogCkBAIC0yNTMsNyArMjU0LDcg QEAgcmF0aGVyIHRoYW4gbGF0ZXIuCiAKIFdlIGRvbid0IG9mZmVyIGFueSBjb250cm9sIG92ZXIg ZXN0aW1hdGVzLCBvbmx5IG91dGNvbWVzLiBJdCBzZWVtcyBsaWtlIGEKIGdvb2QgaWRlYSB0byBp bmNvcnBvcmF0ZSB0aGF0IGFiaWxpdHkgYXQgc29tZSBmdXR1cmUgcG9pbnQsIGFzIHBnX2hpbnRf cGxhbgotZG9lcy4gSG93ZXZlciwgc2luY2UgcHJpbWFyeSBnb2FsIG9mIHRoZSBpbml0aWFsIGRl dmVsb3BtZW50IHdvcmsgaXMgdG8gYmUKK2RvZXMuIEhvd2V2ZXIsIHNpbmNlIHRoZSBwcmltYXJ5 IGdvYWwgb2YgdGhlIGluaXRpYWwgZGV2ZWxvcG1lbnQgd29yayBpcyB0byBiZQogYWJsZSB0byBp bmR1Y2UgdGhlIHBsYW5uZXIgdG8gcmVjcmVhdGUgYSBkZXNpcmVkIHBsYW4gdGhhdCB3b3JrZWQg d2VsbCBpbgogdGhlIHBhc3QsIHRoaXMgaGFzIG5vdCBiZWVuIGluY2x1ZGVkIGluIHRoZSBpbml0 aWFsIGRldmVsb3BtZW50IGVmZm9ydC4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BncGxh bmFkdmljZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3BncGxhbmFkdmljZS5zZ21sCmluZGV4IDgxN2Jh ZmEyMWM2Li5jOTYyZTU2NWEzYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BncGxhbmFkdmlj ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wZ3BsYW5hZHZpY2Uuc2dtbApAQCAtMTAsNyArMTAs NyBAQAogIDxwYXJhPgogICBUaGUgPGZpbGVuYW1lPnBnX3BsYW5fYWR2aWNlPC9maWxlbmFtZT4g bW9kdWxlIGFsbG93cyBrZXkgcGxhbm5lciBkZWNpc2lvbnMKICAgdG8gYmUgZGVzY3JpYmVkLCBy ZXByb2R1Y2VkLCBhbmQgYWx0ZXJlZCB1c2luZyBhIHNwZWNpYWwtcHVycG9zZSAicGxhbgotICBh ZHZpY2UiIG1pbmktbGFuZ3VhZ2UuIEl0IGlzIGludGVuZGVkIHRvIGFsbG93IHN0YWJpbGl6YXRp b24gb2YgcGxhbiBjaG9pY2VzCisgIGFkdmljZSIgZG9tYWluIHNwZWNpZmljIGxhbmd1YWdlIChE U0wpLiBJdCBpcyBpbnRlbmRlZCB0byBhbGxvdyBzdGFiaWxpemF0aW9uIG9mIHBsYW4gY2hvaWNl cwogICB0aGF0IHRoZSB1c2VyIGJlbGlldmVzIHRvIGJlIGdvb2QsIGFzIHdlbGwgYXMgZXhwZXJp bWVudGF0aW9uIHdpdGggcGxhbnMgdGhhdAogICB0aGUgcGxhbm5lciBiZWxpZXZlcyB0byBiZSBu b24tb3B0aW1hbC4KICA8L3BhcmE+CkBAIC0xOCw5ICsxOCw5IEBACiAgPHBhcmE+CiAgIE5vdGUg dGhhdCwgc2luY2UgdGhlIHBsYW5uZXIgb2Z0ZW4gbWFrZXMgZ29vZCBkZWNpc2lvbnMsIG92ZXJy aWRpbmcgaXRzCiAgIGp1ZGdlbWVudCBjYW4gZWFzaWx5IGJhY2tmaXJlLiBGb3IgZXhhbXBsZSwg aWYgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUKLSAgdW5kZXJseWluZyBkYXRhIGNoYW5nZXMsIHRo ZSBwbGFubmVyIG5vcm1hbGx5IGhhcyB0aGUgb3B0aW9uIHRvIGFkanVzdCB0aGUKLSAgcGxhbiBp biBhbiBhdHRlbXB0IHRvIHByZXNlcnZlIGdvb2QgcGVyZm9ybWFuY2UuIElmIHRoZSBwbGFuIGFk dmljZSBwcmV2ZW50cwotICB0aGlzLCBhIHZlcnkgcG9vciBwbGFuIG1heSBiZSBjaG9zZW4uIEl0 IGlzIGltcG9ydGFudCB0byB1c2UgcGxhbiBhZHZpY2UKKyAgdW5kZXJseWluZyBkYXRhIGNoYW5n ZXMsIHRoZSBwbGFubmVyIHdpbGwgbWFrZSBkaWZmZXJlbnQgZGVjaXNpb25zIGluIG9yZGVyIHRv CisgIHByZXNlcnZlIGdvb2QgcGVyZm9ybWFuY2Ugd2l0aCB0aGUgbmV3IGRhdGEuIElmIHRoZSBw bGFuIGFkdmljZSBvdmVycmlkZXMKKyAgdGhlc2UgbmV3IGRlY2lzaW9ucywgYSB2ZXJ5IHBvb3Ig cGxhbiBtYXkgYmUgY2hvc2VuLiBJdCBpcyBpbXBvcnRhbnQgdG8gdXNlIHBsYW4gYWR2aWNlCiAg IG9ubHkgd2hlbiB0aGUgcmlza3Mgb2YgY29uc3RyYWluaW5nIHRoZSBwbGFubmVyJ3MgY2hvaWNl cyBhcmUgb3V0d2VpZ2hlZCBieQogICB0aGUgYmVuZWZpdHMuCiAgPC9wYXJhPgo= --00000000000090b9e6064bd81b58--