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.94.2) (envelope-from ) id 1tkxyf-008Cv8-CG for pgsql-docs@arkaria.postgresql.org; Thu, 20 Feb 2025 04:15:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tkxyd-000RPp-BJ for pgsql-docs@arkaria.postgresql.org; Thu, 20 Feb 2025 04:15:55 +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.94.2) (envelope-from ) id 1tkxyc-000RPh-SV for pgsql-docs@lists.postgresql.org; Thu, 20 Feb 2025 04:15:55 +0000 Received: from mail-yw1-x1131.google.com ([2607:f8b0:4864:20::1131]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tkxya-001tSg-0h for pgsql-docs@lists.postgresql.org; Thu, 20 Feb 2025 04:15:54 +0000 Received: by mail-yw1-x1131.google.com with SMTP id 00721157ae682-6f4b266d333so3224967b3.2 for ; Wed, 19 Feb 2025 20:15:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xzilla-net.20230601.gappssmtp.com; s=20230601; t=1740024950; x=1740629750; 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=6IGEtqXTKgBDCIZDHs95DoB/0QjASHacdp07tPgcMLE=; b=CXOrqaSX9hEF3LL3xXnugb8Tq4znpzWBc8nzDvJAUrRuPInad6ZMfeQREyArT0MGy9 IzQlPijwhHzE9N4u0Wo5bHeW6xt/vEvAbo/3kKN6+rZYmttBzfDM7ADiMSa4kM/qtIrQ nXkTS5/KiRpz73ULybdqCUsKuKRKu8ICtVUNq+6DqMRFKYVdb+yzCbQLzcDpuVkYC7tv /zhkuk/oU3lSUekEjFfE+t06n9rjoXms1I4wBv5JXdL8FUDxFrd1WVGP+u8x/NDkYXMY 8KH4s26HYqkWKbtuFaKkbD+mAvkQDjneM7uVpDt+yMyovn/3qkIl9qcP8Hb9coR3i7UE r15g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740024950; x=1740629750; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6IGEtqXTKgBDCIZDHs95DoB/0QjASHacdp07tPgcMLE=; b=Ine7llnlH1LzlwBY/oePQHToCt3SWN/lY1665r1+ijN/4NI/3MJJmr9DZryegBrNwu zwZ4z5v41zUhnXBTZf/a2tcL4LcHs90nQj1LQQd11AlNYTqSRie9zJET2soo60suVu8h l4jAN+Skx9xD01za5ibhkwWE5duHrLfpFf9wAlJXxQYWX++STZ/91E+D07zyB1zN7z/d /QLgm/9E6A5NtM6Zw88xYBRGPqoK/18mYIcvFObH+CEKA6MELD3eHUCXi2eEiI0moxsv CYgxklvyjCPFAskdpEFdh75ifyrubmPbAj0YlEyfGatKgsPJZGHWNutTrcVFU9Ih371Y igaQ== X-Gm-Message-State: AOJu0Yz0VfaawqAyvyXKU5xauVdIHziH30J6u9TmYpmu7ZrNnCSUcZ0K lLyvesYtrVWaGfaI2rEsz82p2WGTQE7mZh6OqhEstu8RJvotoKZ5RbqeirTVY42vR0enyn1cQMq vjU4A5epgaZ44V0MCEFunie7FcQ/jG0VSQnTzgA== X-Gm-Gg: ASbGncvuGcq7l05HESP0TVdNSQCHoXqs5TcZ9ssbdrtl0n0CohMUOcrx63eguensobc c0OaQjW3T4/hkojWIf5+VACSbdAorMDQyj12KQMeQMsEFwFSj7W9FWjfdllTunn1VKpHbMrFm X-Google-Smtp-Source: AGHT+IFKz1rI+Yu30/Apmpmj3zA4woizYh5ldFH0IiICnnR+4sFJJLoXQ++jUOjf1sSuuBXFGsf2q9k2V8WJR38EWlo= X-Received: by 2002:a05:690c:6283:b0:6f9:48c6:6a17 with SMTP id 00721157ae682-6fb58365f6fmr182626907b3.26.1740024949907; Wed, 19 Feb 2025 20:15:49 -0800 (PST) MIME-Version: 1.0 References: <2c392993640661b817c5c779f6aaf44c103510bf.camel@cybertec.at> In-Reply-To: From: Robert Treat Date: Wed, 19 Feb 2025 23:15:38 -0500 X-Gm-Features: AWEUYZnjFCDynTwunubGyL-E-NsKeytYm9INr7VBcyLdYISfrRgL8ueCQvooFxM Message-ID: Subject: Re: Streaming Replication vs Logical To: Bruce Momjian , Paul A Jungwirth , Laurenz Albe Cc: pgsql-docs@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000000a8652062e8b212e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000a8652062e8b212e Content-Type: multipart/alternative; boundary="0000000000000a8651062e8b212c" --0000000000000a8651062e8b212c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Feb 19, 2025 at 10:07=E2=80=AFPM Bruce Momjian w= rote: > On Sat, Oct 12, 2024 at 07:01:31AM +0200, Laurenz Albe wrote: > > On Fri, 2024-10-11 at 15:53 -0700, Paul A Jungwirth wrote: > > > Our docs seem to contrast "streaming replication" to logical, but > > > these are not really opposites. Sometimes when they say "streaming" > > > they mean "physical". > > > > > > Probably this is historical: at first physical replication was the > > > only kind of streaming we had. > > > > > > Personally this has caused me a lot of confusion. For example, > > > recently when I read "Synchronous replication (see Section 26.2.8) is > > > only supported on replication slots used over the streaming > > > replication interface," I took it to mean synchronous replication onl= y > > > worked for physical replication, not logical. > > > > What you are saying makes a lot of sense, and improving some of this > > is a good thing. > > > > Our current trminology is a mess. There are some places in the > documentation > > that speak of physical vs. logical replication, while most places use t= he > > term "streaming replication" for physical replication. I myself > consequently > > speak of "streaming replication" vs. "logical replication", even though > both > > stream data. The protocol section of the documentation describes the > > "streaming replication protocol" and the "logical streaming replication > protocol". > > > > This is confusing, and I am also sometimes confused in the way you > described > > above. > > > > I think the mess is too well established to be really cleaned up. But > adding > > some clarity is a good thing, so +1. > > The attached patch expands on Paul's original patch, further consolidating around the terms "streaming physical replication" and "streaming logical replication" in places where it makes sense. I would note that there are places where "streaming replication" makes sense (when it applies to both types) and potentially when "physical replication" might make sense when we could be talking about either streaming or wal shipping, so I don't think we can completely eliminate that, but hopefully this improves what we have. > I don't think our current setup is sustainable so I think it does need > to be cleaned up. Also, physical/logical replication slots also needs > help, I think. > > I took a look through some of the replication slot stuff and ISTM that it basically gets the streaming logical/physical replication distinctions correct, and I *think* it gets the slot distinctions correct as well, but to the degree there might be some issue there, I think it could be addressed separately. Robert Treat https://xzilla.net --0000000000000a8651062e8b212c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Wed, Feb 19, 2025 at 10:07=E2=80=AFPM = Bruce Momjian <bruce@momjian.us&= gt; wrote:
On Sat, Oct 12, 2024 at 07:01:31AM +0200, Laurenz Albe wrote: > On Fri, 2024-10-11 at 15:53 -0700, Paul A Jungwirth wrote:
> > Our docs seem to contrast "streaming replication" to lo= gical, but
> > these are not really opposites. Sometimes when they say "str= eaming"
> > they mean "physical".
> >
> > Probably this is historical: at first physical replication was th= e
> > only kind of streaming we had.
> >
> > Personally this has caused me a lot of confusion. For example, > > recently when I read "Synchronous replication (see Section 2= 6.2.8) is
> > only supported on replication slots used over the streaming
> > replication interface," I took it to mean synchronous replic= ation only
> > worked for physical replication, not logical.
>
> What you are saying makes a lot of sense, and improving some of this > is a good thing.
>
> Our current trminology is a mess.=C2=A0 There are some places in the d= ocumentation
> that speak of physical vs. logical replication, while most places use = the
> term "streaming replication" for physical replication.=C2=A0= I myself consequently
> speak of "streaming replication" vs. "logical replicati= on", even though both
> stream data.=C2=A0 The protocol section of the documentation describes= the
> "streaming replication protocol" and the "logical strea= ming replication protocol".
>
> This is confusing, and I am also sometimes confused in the way you des= cribed
> above.
>
> I think the mess is too well established to be really cleaned up.=C2= =A0 But adding
> some clarity is a good thing, so +1.


The attached patch expands on Paul'= ;s original patch, further consolidating=C2=A0around the terms "stream= ing physical replication" and "streaming logical replication"= ; in places where it makes sense. I would note that there are places where = "streaming replication" makes sense (when it applies to both type= s) and potentially when "physical replication" might make sense w= hen we could be talking about either streaming or wal shipping, so I don= 9;t think we can completely eliminate that, but hopefully this improves wha= t we have.=C2=A0
=C2=A0
I don't think our current setup is sustainable so I think it does need<= br> to be cleaned up.=C2=A0 Also, physical/logical replication slots also needs=
help, I think.


I took a look throug= h some of the replication slot stuff and ISTM that it basically gets the st= reaming logical/physical replication distinctions correct, and I *think*
it gets the slot distinctions correct as well, but to the degree th= ere might be some issue there, I think it could be addressed separately.

Robert Treat
--0000000000000a8651062e8b212c-- --0000000000000a8652062e8b212e Content-Type: application/octet-stream; name="v2-0001-Distinguish-between-streaming-replication-and-phy.patch" Content-Disposition: attachment; filename="v2-0001-Distinguish-between-streaming-replication-and-phy.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7ctvfy60 RnJvbSA4ZTgwZmQ2YTg4OTU0NDc1Njg2M2E5NjQxYjIzZWFlODQ4NGViYjRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnQgVHJlYXQgPHJvYkB4emlsbGEubmV0PgpEYXRlOiBG cmksIDI0IEphbiAyMDI1IDAwOjEyOjQ1IC0wNTAwClN1YmplY3Q6IFtQQVRDSCB2Ml0gRGlzdGlu Z3Vpc2ggYmV0d2VlbiBzdHJlYW1pbmcgcmVwbGljYXRpb24gYW5kIHBoeXNpY2FsCkNvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiCgpPdXIgZG9jcyBzdGlsbCB1c2UgdGhl IHRlcm0gInN0cmVhbWluZyByZXBsaWNhdGlvbiIgaW4gcGxhY2VzIHdoZXJlIHRoZXkKcmVhbGx5 IG1lYW4gcGh5c2ljYWwgcmVwbGljYXRpb24uIFRoZXNlIGNoYW5nZXMgdHJ5IHRvIGNsYXJpZnkg dGhlCmxhbmd1YWdlIGFyb3VuZCBzdHJlYW1pbmcgcmVwbGljYXRpb24sIHBoeXNpY2FsIHJlcGxp Y2F0aW9uLCBhbmQgbG9naWNhbApyZXBsaWNhdGlvbi4gSW4gcGFydGljdWxhciB3ZSBzaG91bGQg YXZvaWQgc3VnZ2VzdGluZyB0aGF0ICJzdHJlYW1pbmciCmFuZCAibG9naWNhbCIgYXJlIG9wcG9z aXRlcyBvciBhbHRlcm5hdGl2ZXMuCi0tLQogZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAg ICAgICAgICB8IDI5ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogZG9jL3NyYy9zZ21sL2hp Z2gtYXZhaWxhYmlsaXR5LnNnbWwgICB8IDEyICsrKysrKysrKy0tCiBkb2Mvc3JjL3NnbWwvbG9n aWNhbC1yZXBsaWNhdGlvbi5zZ21sIHwgIDYgKysrLS0tCiBkb2Mvc3JjL3NnbWwvbG9naWNhbGRl Y29kaW5nLnNnbWwgICAgIHwgIDYgKysrLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlv bnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcu c2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCBhNzgyZjEwOTk4Li5jNGNjZWI4 NDY2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2NvbmZpZy5zZ21sCkBAIC0yMDI2LDcgKzIwMjYsNyBAQCBpbmNsdWRlX2RpciAnY29uZi5k JwogICAgICAgIDxwYXJhPgogICAgICAgICBTcGVjaWZpZXMgdGhlIG1heGltdW0gYW1vdW50IG9m IG1lbW9yeSB0byBiZSB1c2VkIGJ5IGxvZ2ljYWwgZGVjb2RpbmcsCiAgICAgICAgIGJlZm9yZSBz b21lIG9mIHRoZSBkZWNvZGVkIGNoYW5nZXMgYXJlIHdyaXR0ZW4gdG8gbG9jYWwgZGlzay4gVGhp cwotICAgICAgICBsaW1pdHMgdGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBieSBsb2dpY2FsIHN0 cmVhbWluZyByZXBsaWNhdGlvbgorICAgICAgICBsaW1pdHMgdGhlIGFtb3VudCBvZiBtZW1vcnkg dXNlZCBieSBzdHJlYW1pbmcgbG9naWNhbCByZXBsaWNhdGlvbgogICAgICAgICBjb25uZWN0aW9u cy4gSXQgZGVmYXVsdHMgdG8gNjQgbWVnYWJ5dGVzICg8bGl0ZXJhbD42NE1CPC9saXRlcmFsPiku CiAgICAgICAgIFNpbmNlIGVhY2ggcmVwbGljYXRpb24gY29ubmVjdGlvbiBvbmx5IHVzZXMgYSBz aW5nbGUgYnVmZmVyIG9mIHRoaXMgc2l6ZSwKICAgICAgICAgYW5kIGFuIGluc3RhbGxhdGlvbiBu b3JtYWxseSBkb2Vzbid0IGhhdmUgbWFueSBzdWNoIGNvbm5lY3Rpb25zCkBAIC0zNTkyLDcgKzM1 OTIsNyBAQCBpbmNsdWRlX2RpciAnY29uZi5kJwogICAgICAgICBkaWZmZXJlbmNlIGJldHdlZW4g dGhlIHR3byBtb2RlcywgYnV0IHdoZW4gc2V0IHRvIDxsaXRlcmFsPmFsd2F5czwvbGl0ZXJhbD4K ICAgICAgICAgdGhlIFdBTCBhcmNoaXZlciBpcyBlbmFibGVkIGFsc28gZHVyaW5nIGFyY2hpdmUg cmVjb3Zlcnkgb3Igc3RhbmRieQogICAgICAgICBtb2RlLiBJbiA8bGl0ZXJhbD5hbHdheXM8L2xp dGVyYWw+IG1vZGUsIGFsbCBmaWxlcyByZXN0b3JlZCBmcm9tIHRoZSBhcmNoaXZlCi0gICAgICAg IG9yIHN0cmVhbWVkIHdpdGggc3RyZWFtaW5nIHJlcGxpY2F0aW9uIHdpbGwgYmUgYXJjaGl2ZWQg KGFnYWluKS4gU2VlCisgICAgICAgIG9yIHN0cmVhbWVkIHdpdGggc3RyZWFtaW5nIHBoeXNpY2Fs IHJlcGxpY2F0aW9uIHdpbGwgYmUgYXJjaGl2ZWQgKGFnYWluKS4gU2VlCiAgICAgICAgIDx4cmVm IGxpbmtlbmQ9ImNvbnRpbnVvdXMtYXJjaGl2aW5nLWluLXN0YW5kYnkiLz4gZm9yIGRldGFpbHMu CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgpAQCAtMzY5OCw3ICszNjk4LDcgQEAgaW5j bHVkZV9kaXIgJ2NvbmYuZCcKICAgICAgICAgZnVsbCBmaWxlcy4gIFRoZXJlZm9yZSwgaXQgaXMg dW53aXNlIHRvIHVzZSBhIHZlcnkgc2hvcnQKICAgICAgICAgPHZhcm5hbWU+YXJjaGl2ZV90aW1l b3V0PC92YXJuYW1lPiAmbWRhc2g7IGl0IHdpbGwgYmxvYXQgeW91ciBhcmNoaXZlCiAgICAgICAg IHN0b3JhZ2UuICA8dmFybmFtZT5hcmNoaXZlX3RpbWVvdXQ8L3Zhcm5hbWU+IHNldHRpbmdzIG9m IGEgbWludXRlIG9yIHNvIGFyZQotICAgICAgICB1c3VhbGx5IHJlYXNvbmFibGUuICBZb3Ugc2hv dWxkIGNvbnNpZGVyIHVzaW5nIHN0cmVhbWluZyByZXBsaWNhdGlvbiwKKyAgICAgICAgdXN1YWxs eSByZWFzb25hYmxlLiAgWW91IHNob3VsZCBjb25zaWRlciB1c2luZyBzdHJlYW1pbmcgcGh5c2lj YWwgcmVwbGljYXRpb24sCiAgICAgICAgIGluc3RlYWQgb2YgYXJjaGl2aW5nLCBpZiB5b3Ugd2Fu dCBkYXRhIHRvIGJlIGNvcGllZCBvZmYgdGhlIHByaW1hcnkKICAgICAgICAgc2VydmVyIG1vcmUg cXVpY2tseSB0aGFuIHRoYXQuCiAgICAgICAgIElmIHRoaXMgdmFsdWUgaXMgc3BlY2lmaWVkIHdp dGhvdXQgdW5pdHMsIGl0IGlzIHRha2VuIGFzIHNlY29uZHMuCkBAIC0zNzIzLDcgKzM3MjMsNyBA QCBpbmNsdWRlX2RpciAnY29uZi5kJwogCiAgICAgPHBhcmE+CiAgICAgIFRoaXMgc2VjdGlvbiBk ZXNjcmliZXMgdGhlIHNldHRpbmdzIHRoYXQgYXBwbHkgdG8gcmVjb3ZlcnkgaW4gZ2VuZXJhbCwK LSAgICAgYWZmZWN0aW5nIGNyYXNoIHJlY292ZXJ5LCBzdHJlYW1pbmcgcmVwbGljYXRpb24gYW5k IGFyY2hpdmUtYmFzZWQKKyAgICAgYWZmZWN0aW5nIGNyYXNoIHJlY292ZXJ5LCBzdHJlYW1pbmcg cGh5c2ljYWwgcmVwbGljYXRpb24gYW5kIGFyY2hpdmUtYmFzZWQKICAgICAgcmVwbGljYXRpb24u CiAgICAgPC9wYXJhPgogCkBAIC0zODMzLDcgKzM4MzMsNyBAQCBpbmNsdWRlX2RpciAnY29uZi5k JwogICAgICAgIDxwYXJhPgogICAgICAgICBUaGUgbG9jYWwgc2hlbGwgY29tbWFuZCB0byBleGVj dXRlIHRvIHJldHJpZXZlIGFuIGFyY2hpdmVkIHNlZ21lbnQgb2YKICAgICAgICAgdGhlIFdBTCBm aWxlIHNlcmllcy4gVGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgZm9yIGFyY2hpdmUgcmVjb3Zl cnksCi0gICAgICAgIGJ1dCBvcHRpb25hbCBmb3Igc3RyZWFtaW5nIHJlcGxpY2F0aW9uLgorICAg ICAgICBidXQgb3B0aW9uYWwgZm9yIHN0cmVhbWluZyBwaHlzaWNhbCByZXBsaWNhdGlvbi4KICAg ICAgICAgQW55IDxsaXRlcmFsPiVmPC9saXRlcmFsPiBpbiB0aGUgc3RyaW5nIGlzCiAgICAgICAg IHJlcGxhY2VkIGJ5IHRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvIHJldHJpZXZlIGZyb20gdGhlIGFy Y2hpdmUsCiAgICAgICAgIGFuZCBhbnkgPGxpdGVyYWw+JXA8L2xpdGVyYWw+IGlzIHJlcGxhY2Vk IGJ5IHRoZSBjb3B5IGRlc3RpbmF0aW9uIHBhdGggbmFtZQpAQCAtNDI1OSwxNSArNDI1OSwxNiBA QCByZXN0b3JlX2NvbW1hbmQgPSAnY29weSAiQzpcXHNlcnZlclxcYXJjaGl2ZWRpclxcJWYiICIl cCInICAjIFdpbmRvd3MKICAgICA8dGl0bGU+UmVwbGljYXRpb248L3RpdGxlPgogCiAgICAgPHBh cmE+Ci0gICAgIFRoZXNlIHNldHRpbmdzIGNvbnRyb2wgdGhlIGJlaGF2aW9yIG9mIHRoZSBidWls dC1pbgotICAgICA8Zmlyc3R0ZXJtPnN0cmVhbWluZyByZXBsaWNhdGlvbjwvZmlyc3R0ZXJtPiBm ZWF0dXJlIChzZWUKLSAgICAgPHhyZWYgbGlua2VuZD0ic3RyZWFtaW5nLXJlcGxpY2F0aW9uIi8+ KSwgYW5kIHRoZSBidWlsdC1pbgotICAgICA8Zmlyc3R0ZXJtPmxvZ2ljYWwgcmVwbGljYXRpb248 L2ZpcnN0dGVybT4gZmVhdHVyZSAoc2VlCisgICAgIFRoZXNlIHNldHRpbmdzIGNvbnRyb2wgdGhl IGJlaGF2aW9yIG9mCisgICAgIDxmaXJzdHRlcm0+c3RyZWFtaW5nIHJlcGxpY2F0aW9uPC9maXJz dHRlcm0+LAorICAgICBib3RoIDxmaXJzdHRlcm0+cGh5c2ljYWwgcmVwbGljYXRpb248L2ZpcnN0 dGVybT4KKyAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJzdHJlYW1pbmctcmVwbGljYXRpb24iLz4p IGFuZAorICAgICA8Zmlyc3R0ZXJtPmxvZ2ljYWwgcmVwbGljYXRpb248L2ZpcnN0dGVybT4gKHNl ZQogICAgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uIi8+KS4KICAgICA8L3Bh cmE+CiAKICAgICA8cGFyYT4KLSAgICAgRm9yIDxlbXBoYXNpcz5zdHJlYW1pbmcgcmVwbGljYXRp b248L2VtcGhhc2lzPiwgc2VydmVycyB3aWxsIGJlIGVpdGhlciBhCisgICAgIEZvciA8ZW1waGFz aXM+cGh5c2ljYWwgcmVwbGljYXRpb248L2VtcGhhc2lzPiwgc2VydmVycyB3aWxsIGJlIGVpdGhl ciBhCiAgICAgIHByaW1hcnkgb3IgYSBzdGFuZGJ5IHNlcnZlci4gIFByaW1hcmllcyBjYW4gc2Vu ZCBkYXRhLCB3aGlsZSBzdGFuZGJ5cwogICAgICBhcmUgYWx3YXlzIHJlY2VpdmVycyBvZiByZXBs aWNhdGVkIGRhdGEuICBXaGVuIGNhc2NhZGluZyByZXBsaWNhdGlvbgogICAgICAoc2VlIDx4cmVm IGxpbmtlbmQ9ImNhc2NhZGluZy1yZXBsaWNhdGlvbiIvPikgaXMgdXNlZCwgc3RhbmRieSBzZXJ2 ZXJzCkBAIC00NjY0LDcgKzQ2NjUsNyBAQCBBTlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm51bV9zeW5jPC9yZXBsYWNlYWJsZT4gKCA8cmVwbGFjZWFibGUgY2xhc3M9IgogICAgICAg VGhlc2Ugc2V0dGluZ3MgY29udHJvbCB0aGUgYmVoYXZpb3Igb2YgYQogICAgICAgPGxpbmsgbGlu a2VuZD0ic3RhbmRieS1zZXJ2ZXItb3BlcmF0aW9uIj5zdGFuZGJ5IHNlcnZlcjwvbGluaz4KICAg ICAgIHRoYXQgaXMKLSAgICAgIHRvIHJlY2VpdmUgcmVwbGljYXRpb24gZGF0YS4gIFRoZWlyIHZh bHVlcyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIKKyAgICAgIHRvIHJlY2VpdmUgcGh5c2ljYWwgcmVw bGljYXRpb24gZGF0YS4gIFRoZWlyIHZhbHVlcyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIKICAgICAg IGFyZSBpcnJlbGV2YW50LgogICAgICA8L3BhcmE+CiAKQEAgLTQ4MDIsNyArNDgwMyw3IEBAIEFO WSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtX3N5bmM8L3JlcGxhY2VhYmxlPiAo IDxyZXBsYWNlYWJsZSBjbGFzcz0iCiAgICAgICAgIGNvbmZsaWN0IHdpdGggYWJvdXQtdG8tYmUt YXBwbGllZCBXQUwgZW50cmllcywgYXMgZGVzY3JpYmVkIGluCiAgICAgICAgIDx4cmVmIGxpbmtl bmQ9ImhvdC1zdGFuZGJ5LWNvbmZsaWN0Ii8+LgogICAgICAgICA8dmFybmFtZT5tYXhfc3RhbmRi eV9zdHJlYW1pbmdfZGVsYXk8L3Zhcm5hbWU+IGFwcGxpZXMgd2hlbiBXQUwgZGF0YSBpcwotICAg ICAgICBiZWluZyByZWNlaXZlZCB2aWEgc3RyZWFtaW5nIHJlcGxpY2F0aW9uLgorICAgICAgICBi ZWluZyByZWNlaXZlZCB2aWEgc3RyZWFtaW5nIHBoeXNpY2FsIHJlcGxpY2F0aW9uLgogICAgICAg ICBJZiB0aGlzIHZhbHVlIGlzIHNwZWNpZmllZCB3aXRob3V0IHVuaXRzLCBpdCBpcyB0YWtlbiBh cyBtaWxsaXNlY29uZHMuCiAgICAgICAgIFRoZSBkZWZhdWx0IGlzIDMwIHNlY29uZHMuCiAgICAg ICAgIEEgdmFsdWUgb2YgLTEgYWxsb3dzIHRoZSBzdGFuZGJ5IHRvIHdhaXQgZm9yZXZlciBmb3Ig Y29uZmxpY3RpbmcKQEAgLTQ5MzEsNyArNDkzMiw3IEBAIEFOWSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bnVtX3N5bmM8L3JlcGxhY2VhYmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i CiAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFNwZWNpZmllcyBob3cg bG9uZyB0aGUgc3RhbmRieSBzZXJ2ZXIgc2hvdWxkIHdhaXQgd2hlbiBXQUwgZGF0YSBpcyBub3QK LSAgICAgICAgYXZhaWxhYmxlIGZyb20gYW55IHNvdXJjZXMgKHN0cmVhbWluZyByZXBsaWNhdGlv biwKKyAgICAgICAgYXZhaWxhYmxlIGZyb20gYW55IHNvdXJjZXMgKHN0cmVhbWluZyBwaHlzaWNh bCByZXBsaWNhdGlvbiwKICAgICAgICAgbG9jYWwgPGZpbGVuYW1lPnBnX3dhbDwvZmlsZW5hbWU+ IG9yIFdBTCBhcmNoaXZlKSBiZWZvcmUgdHJ5aW5nCiAgICAgICAgIGFnYWluIHRvIHJldHJpZXZl IFdBTCBkYXRhLgogICAgICAgICBJZiB0aGlzIHZhbHVlIGlzIHNwZWNpZmllZCB3aXRob3V0IHVu aXRzLCBpdCBpcyB0YWtlbiBhcyBtaWxsaXNlY29uZHMuCkBAIC01MDA4LDcgKzUwMDksNyBAQCBB TlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bV9zeW5jPC9yZXBsYWNlYWJsZT4g KCA8cmVwbGFjZWFibGUgY2xhc3M9IgogICAgICAgICA8ZmlsZW5hbWU+cGdfd2FsPC9maWxlbmFt ZT4gZGlyZWN0b3J5LgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgVGhp cyBwYXJhbWV0ZXIgaXMgaW50ZW5kZWQgZm9yIHVzZSB3aXRoIHN0cmVhbWluZyByZXBsaWNhdGlv biBkZXBsb3ltZW50czsKKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaW50ZW5kZWQgZm9yIHVz ZSB3aXRoIHN0cmVhbWluZyBwaHlzaWNhbCByZXBsaWNhdGlvbiBkZXBsb3ltZW50czsKICAgICAg ICAgaG93ZXZlciwgaWYgdGhlIHBhcmFtZXRlciBpcyBzcGVjaWZpZWQgaXQgd2lsbCBiZSBob25v cmVkIGluIGFsbCBjYXNlcwogICAgICAgICBleGNlcHQgY3Jhc2ggcmVjb3ZlcnkuCiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sIGIvZG9jL3NyYy9zZ21s L2hpZ2gtYXZhaWxhYmlsaXR5LnNnbWwKaW5kZXggYWNmM2FjMDYwMS4uMzMxZjkwZTQ1MiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2hpZ2gtYXZhaWxhYmlsaXR5LnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2hpZ2gtYXZhaWxhYmlsaXR5LnNnbWwKQEAgLTE1MSw3ICsxNTEsNyBAQCBwcm90b2Nv bCB0byBtYWtlIG5vZGVzIGFncmVlIG9uIGEgc2VyaWFsaXphYmxlIHRyYW5zYWN0aW9uYWwgb3Jk ZXIuCiAgICAgPC9wYXJhPgogICAgIDxwYXJhPgogICAgICBBIHN0YW5kYnkgc2VydmVyIGNhbiBi ZSBpbXBsZW1lbnRlZCB1c2luZyBmaWxlLWJhc2VkIGxvZyBzaGlwcGluZwotICAgICAoPHhyZWYg bGlua2VuZD0id2FybS1zdGFuZGJ5Ii8+KSBvciBzdHJlYW1pbmcgcmVwbGljYXRpb24gKHNlZQor ICAgICAoPHhyZWYgbGlua2VuZD0id2FybS1zdGFuZGJ5Ii8+KSBvciBzdHJlYW1pbmcgcGh5c2lj YWwgcmVwbGljYXRpb24gKHNlZQogICAgICA8eHJlZiBsaW5rZW5kPSJzdHJlYW1pbmctcmVwbGlj YXRpb24iLz4pLCBvciBhIGNvbWJpbmF0aW9uIG9mIGJvdGguIEZvcgogICAgICBpbmZvcm1hdGlv biBvbiBob3Qgc3RhbmRieSwgc2VlIDx4cmVmIGxpbmtlbmQ9ImhvdC1zdGFuZGJ5Ii8+LgogICAg IDwvcGFyYT4KQEAgLTYyOCw3ICs2MjgsNyBAQCBwcm90b2NvbCB0byBtYWtlIG5vZGVzIGFncmVl IG9uIGEgc2VyaWFsaXphYmxlIHRyYW5zYWN0aW9uYWwgb3JkZXIuCiAgICAgSW4gc3RhbmRieSBt b2RlLCB0aGUgc2VydmVyIGNvbnRpbnVvdXNseSBhcHBsaWVzIFdBTCByZWNlaXZlZCBmcm9tIHRo ZQogICAgIHByaW1hcnkgc2VydmVyLiBUaGUgc3RhbmRieSBzZXJ2ZXIgY2FuIHJlYWQgV0FMIGZy b20gYSBXQUwgYXJjaGl2ZQogICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZ3VjLXJlc3RvcmUtY29t bWFuZCIvPikgb3IgZGlyZWN0bHkgZnJvbSB0aGUgcHJpbWFyeQotICAgIG92ZXIgYSBUQ1AgY29u bmVjdGlvbiAoc3RyZWFtaW5nIHJlcGxpY2F0aW9uKS4gVGhlIHN0YW5kYnkgc2VydmVyIHdpbGwK KyAgICBvdmVyIGEgVENQIGNvbm5lY3Rpb24gKHN0cmVhbWluZyBwaHlzaWNhbCByZXBsaWNhdGlv bikuIFRoZSBzdGFuZGJ5IHNlcnZlciB3aWxsCiAgICAgYWxzbyBhdHRlbXB0IHRvIHJlc3RvcmUg YW55IFdBTCBmb3VuZCBpbiB0aGUgc3RhbmRieSBjbHVzdGVyJ3MKICAgICA8ZmlsZW5hbWU+cGdf d2FsPC9maWxlbmFtZT4gZGlyZWN0b3J5LiBUaGF0IHR5cGljYWxseSBoYXBwZW5zIGFmdGVyIGEg c2VydmVyCiAgICAgcmVzdGFydCwgd2hlbiB0aGUgc3RhbmRieSByZXBsYXlzIGFnYWluIFdBTCB0 aGF0IHdhcyBzdHJlYW1lZCBmcm9tIHRoZQpAQCAtNzcyLDYgKzc3MiwxNCBAQCBhcmNoaXZlX2Ns ZWFudXBfY29tbWFuZCA9ICdwZ19hcmNoaXZlY2xlYW51cCAvcGF0aC90by9hcmNoaXZlICVyJwog ICAgIGdlbmVyYXRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgV0FMIGZpbGUgdG8gYmUgZmls bGVkLgogICAgPC9wYXJhPgogCisgICA8bm90ZT4KKyAgICA8cGFyYT4KKyAgICAgVGhpcyBkaXNj dXNzaW9uIG9mIHN0cmVhbWluZyByZXBsaWNhdGlvbiBhc3N1bWVzIHBoeXNpY2FsIHJlcGxpY2F0 aW9uLgorICAgICBBbHRob3VnaCB5b3UgY291bGQgdHJlYXQgYSBsb2dpY2FsIHJlcGxpY2F0aW9u IHN1YnNjcmliZXIgYXMgYSB3YXJtIHN0YW5kYnksCisgICAgIGl0IHdvdWxkIHJlcXVpcmUgc29t ZSBkaWZmZXJlbmNlcyB0byB3aGF0IGlzIGRlc2NyaWJlZCBoZXJlLgorICAgIDwvcGFyYT4KKyAg IDwvbm90ZT4KKwogICAgPHBhcmE+CiAgICAgU3RyZWFtaW5nIHJlcGxpY2F0aW9uIGlzIGFzeW5j aHJvbm91cyBieSBkZWZhdWx0CiAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJzeW5jaHJvbm91cy1y ZXBsaWNhdGlvbiIvPiksIGluIHdoaWNoIGNhc2UgdGhlcmUgaXMKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1y ZXBsaWNhdGlvbi5zZ21sCmluZGV4IGFiNjgzY2YxMTEuLmIwMzYxZmMwNjEgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtNiw3ICs2LDcgQEAKICA8cGFyYT4KICAgTG9n aWNhbCByZXBsaWNhdGlvbiBpcyBhIG1ldGhvZCBvZiByZXBsaWNhdGluZyBkYXRhIG9iamVjdHMg YW5kIHRoZWlyCiAgIGNoYW5nZXMsIGJhc2VkIHVwb24gdGhlaXIgcmVwbGljYXRpb24gaWRlbnRp dHkgKHVzdWFsbHkgYSBwcmltYXJ5IGtleSkuICBXZQotICB1c2UgdGhlIHRlcm0gbG9naWNhbCBp biBjb250cmFzdCB0byBwaHlzaWNhbCByZXBsaWNhdGlvbiwgd2hpY2ggdXNlcyBleGFjdAorICB1 c2UgdGhlIHRlcm0gbG9naWNhbCByZXBsaWNhdGlvbiBpbiBjb250cmFzdCB0byBwaHlzaWNhbCBy ZXBsaWNhdGlvbiwgd2hpY2ggdXNlcyBleGFjdAogICBibG9jayBhZGRyZXNzZXMgYW5kIGJ5dGUt YnktYnl0ZSByZXBsaWNhdGlvbi4gIFBvc3RncmVTUUwgc3VwcG9ydHMgYm90aAogICBtZWNoYW5p c21zIGNvbmN1cnJlbnRseSwgc2VlIDx4cmVmIGxpbmtlbmQ9ImhpZ2gtYXZhaWxhYmlsaXR5Ii8+ LiAgTG9naWNhbAogICByZXBsaWNhdGlvbiBhbGxvd3MgZmluZS1ncmFpbmVkIGNvbnRyb2wgb3Zl ciBib3RoIGRhdGEgcmVwbGljYXRpb24gYW5kCkBAIC0yMDU3LDggKzIwNTcsOCBAQCBDT05URVhU OiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3IgcmVwbGljYXRpb24gb3JpZ2luICJwZ18xNjM5 NSIgZHVyaW5nICJJTlNFUgogICA8dGl0bGU+TW9uaXRvcmluZzwvdGl0bGU+CiAKICAgPHBhcmE+ Ci0gICBCZWNhdXNlIGxvZ2ljYWwgcmVwbGljYXRpb24gaXMgYmFzZWQgb24gYSBzaW1pbGFyIGFy Y2hpdGVjdHVyZSBhcwotICAgPGxpbmsgbGlua2VuZD0ic3RyZWFtaW5nLXJlcGxpY2F0aW9uIj5w aHlzaWNhbCBzdHJlYW1pbmcgcmVwbGljYXRpb248L2xpbms+LAorICAgQmVjYXVzZSBzdHJlYW1p bmcgbG9naWNhbCByZXBsaWNhdGlvbiBpcyBiYXNlZCBvbiBhIHNpbWlsYXIgYXJjaGl0ZWN0dXJl IGFzCisgICA8bGluayBsaW5rZW5kPSJzdHJlYW1pbmctcmVwbGljYXRpb24iPnN0cmVhbWluZyBw aHlzaWNhbCByZXBsaWNhdGlvbjwvbGluaz4sCiAgICB0aGUgbW9uaXRvcmluZyBvbiBhIHB1Ymxp Y2F0aW9uIG5vZGUgaXMgc2ltaWxhciB0byBtb25pdG9yaW5nIG9mIGEKICAgIHBoeXNpY2FsIHJl cGxpY2F0aW9uIHByaW1hcnkKICAgIChzZWUgPHhyZWYgbGlua2VuZD0ic3RyZWFtaW5nLXJlcGxp Y2F0aW9uLW1vbml0b3JpbmciLz4pLgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWxk ZWNvZGluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sCmluZGV4IDFj NGFlMzhmMWIuLjcwNmYwZWE2ZmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVj b2Rpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwKQEAgLTI3 NSw5ICsyNzUsOSBAQCBwb3N0Z3Jlcz0jIHNlbGVjdCAqIGZyb20gcGdfbG9naWNhbF9zbG90X2dl dF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBOVQogICAgIDwvcGFyYT4KIAogICAg IDxub3RlPgotICAgICA8cGFyYT48cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ IGFsc28gaGFzIHN0cmVhbWluZyByZXBsaWNhdGlvbiBzbG90cwotICAgICAoc2VlIDx4cmVmIGxp bmtlbmQ9InN0cmVhbWluZy1yZXBsaWNhdGlvbiIvPiksIGJ1dCB0aGV5IGFyZSB1c2VkIHNvbWV3 aGF0Ci0gICAgIGRpZmZlcmVudGx5IHRoZXJlLgorICAgICA8cGFyYT48cHJvZHVjdG5hbWU+UG9z dGdyZVNRTDwvcHJvZHVjdG5hbWU+IGNhbiBhbHNvIHVzZSBzdHJlYW1pbmcgcmVwbGljYXRpb24g c2xvdHMKKyAgICAgdG8gbWFpbnRhaW4gYSBzdGFuZGJ5IHNlcnZlciAoc2VlIDx4cmVmIGxpbmtl bmQ9InN0cmVhbWluZy1yZXBsaWNhdGlvbiIvPiksIGJ1dAorICAgICB0eXBpY2FsbHkgdGhvc2Ug dXNlIHBoeXNpY2FsIHJlcGxpY2F0aW9uLCBub3QgbG9naWNhbC4KICAgICAgPC9wYXJhPgogICAg IDwvbm90ZT4KIAotLSAKMi4yNC4zIChBcHBsZSBHaXQtMTI4KQoK --0000000000000a8652062e8b212e--