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 1vNkgU-00DF9H-1k for pgsql-docs@arkaria.postgresql.org; Tue, 25 Nov 2025 04:29:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vNkfR-006FdA-2e for pgsql-docs@arkaria.postgresql.org; Tue, 25 Nov 2025 04:28:42 +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 1vNkfR-006Fd2-1S for pgsql-docs@lists.postgresql.org; Tue, 25 Nov 2025 04:28:41 +0000 Received: from mail-yw1-x1132.google.com ([2607:f8b0:4864:20::1132]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vNkfP-001LwT-1W for pgsql-docs@lists.postgresql.org; Tue, 25 Nov 2025 04:28:41 +0000 Received: by mail-yw1-x1132.google.com with SMTP id 00721157ae682-789524e6719so67350187b3.1 for ; Mon, 24 Nov 2025 20:28:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xzilla-net.20230601.gappssmtp.com; s=20230601; t=1764044917; x=1764649717; 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=sE2TmFTc1yUwE4tjkJkDjjs7caTMLjO+L2bt+K9xHXw=; b=esYe+BY8eFvSKSGj8fp5GjHzj35DBfxf5ZZp1JDhmjAJmQxLrZLDD3/Q89Zhvx140u MoidNT72vJr1iMCtP1bDOlOaOnlf0ZulSr+Z2JeNlZMLQA9RaqaFQME7Nv9zlvWyOFHX 0BbA6U/v/PJ0ArcnAaWktoooo5B83usc1ch9dbeKeLqxkG3beUtRodRAvwfAjlG+6Luc S8RDVDS/cSBr5WhpDbFE0qf9adssmpHHXxddq8kobSpEmUjne0Z7/FwwNW7c0cj8N9FP DaG+jotntTzxjGrS1U6I6+ILovBZKaAJRkxxUqfOmNBkvsKz7jMeLKiZgjAQGsd5FTs9 u31Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764044917; x=1764649717; 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=sE2TmFTc1yUwE4tjkJkDjjs7caTMLjO+L2bt+K9xHXw=; b=sOcEPOJChPvxN6Y9TB2H3K78mw6UzQPgLGYX/NcV1vwH1cIr9RSC9T+9sDt7Y/STWU AsbFPLZEtzALzj1jpEoGJH8A0N/H7bMPsQeoI7/wqXz4eu6SsdSD47ZbFxEZkxeFdYwJ Out6Hr20t6X+5X5/XoA+1IAWJBAq42Wyt6DaOVqHeSZe/0kdNmkVJX22AuRydKpTzOtI EyQG/ob5gaxW4NHuVcW2CopMs99+wtHGydLgt2N3OVG/rub8F0OH6Rvn9gckGNKI1yzP 9qeyZQa3IQf6LGJCLDoSp2BIeeR8bGjMSdRbv+pITHlM1qixMG1M5JAYrO+Up/bkOEWg DthQ== X-Gm-Message-State: AOJu0YzjtdmHSNUHIgEGZ1CrIK2nvd7Dj3UJKXkQ99rnu8FL2mNGJeDs V5ts1DqIWiQLlt9ZuDhdJBbCqKm+7omiFPtmnQ27kaH4Qovhyscr3ZNRNKMlY4Lxm3iL5XCx9He R3DmxQ9XLqQdECFj1fhJrniC5p8m0VtrwszpYKYUO5g== X-Gm-Gg: ASbGncukFEGdEYDZzZqfhtupnak6Ncld3gPjdB/rBOFcL4eKIHAzp+96tOuL8HqzE4J zaidFE48g978R2v9thttU5LqdeMe1HSLuNWcch5cZ336D/ebuA5ua0xpYCoRkbyS0YCE79KxxoN 3ZVdT8Q+Zw6jgSPCWY3NsZGisP5BgNgYupbaNoa6fFWGiGfIbBQ7unLwjjJtXd1VfZ9WmQW/xsp xBIx+d+u+lhEi4W+pOxnFpc4MOk6JWbZAllDZXxhwpsdvveVVjYt0FQyxTJeZcTXImrF8c= X-Google-Smtp-Source: AGHT+IH/ai2A9rgAUnoIbQS1Nfs0WuSA1gKEqQ6KKfejJa1/+lRDHwhGwbicrbXY4gv/hMYtEVCBnTcwDb/BKzsCB18= X-Received: by 2002:a05:690c:6e03:b0:786:4949:b18d with SMTP id 00721157ae682-78a7b9ba83cmr146935987b3.4.1764044915058; Mon, 24 Nov 2025 20:28:35 -0800 (PST) MIME-Version: 1.0 References: <2c392993640661b817c5c779f6aaf44c103510bf.camel@cybertec.at> In-Reply-To: From: Robert Treat Date: Mon, 24 Nov 2025 23:28:22 -0500 X-Gm-Features: AWmQ_blIXZu92MFi7kJl3SO7XeKwpjVvbB5kjX4C9ly9G-yv0NHdztlTLWuZNtM 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="00000000000087f2c2064463b645" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000087f2c2064463b645 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Feb 19, 2025 at 11:15=E2=80=AFPM Robert Treat wrot= e: > On Wed, Feb 19, 2025 at 10:07=E2=80=AFPM Bruce Momjian = 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 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) i= s >> > > only supported on replication slots used over the streaming >> > > replication interface," I took it to mean synchronous replication on= ly >> > > 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 docume= ntation >> > that speak of physical vs. logical replication, while most places use = the >> > term "streaming replication" for physical replication. I myself conse= quently >> > speak of "streaming replication" vs. "logical replication", even thoug= h both >> > stream data. The protocol section of the documentation describes the >> > "streaming replication protocol" and the "logical streaming replicatio= n 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. But= adding >> > some clarity is a good thing, so +1. >> > > The attached patch expands on Paul's original patch, further consolidatin= g around the terms "streaming physical replication" and "streaming logical = replication" in places where it makes sense. I would note that there are pl= aces where "streaming replication" makes sense (when it applies to both typ= es) and potentially when "physical replication" might make sense when we co= uld 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 cor= rect, and I *think* > it gets the slot distinctions correct as well, but to the degree there mi= ght be some issue there, I think it could be addressed separately. > Hey Bruce, Your recent commit on this topic [1] reminded me of the patch from earlier this year meant to address some other areas where we are blurry about using streaming vs physical vs logical replication. I think (I might possibly still be jet lagged) I have updated the previous version of that patch against HEAD, attached, and bumping it up for review. [1] https://git.postgresql.org/gitweb/?p=3Dpostgresql.git;a=3Dcommitdiff;h= =3Da5b69e30731fb623715ecf4c8073c0f2dee41678;hp=3Dacbc9beaaed6ee88416e1dcef5= df77fd5baba0be) Robert Treat https://xzilla.net --00000000000087f2c2064463b645 Content-Type: application/octet-stream; name="v3-0001-Clarify-usage-of-the-term-streaming-replication.patch" Content-Disposition: attachment; filename="v3-0001-Clarify-usage-of-the-term-streaming-replication.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mie2s6c20 RnJvbSBiMzJjNmYxOTBjM2U1YmYwNjZmMTcyYjQyYmViM2I2ODk0MDJhNGZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnQgVHJlYXQgPHJvYkB4emlsbGEubmV0PgpEYXRlOiBN b24sIDI0IE5vdiAyMDI1IDIxOjA5OjI2IC0wNTAwClN1YmplY3Q6IFtQQVRDSCB2M10gQ2xhcmlm eSB1c2FnZSBvZiB0aGUgdGVybSBzdHJlYW1pbmcgcmVwbGljYXRpb24uCkNvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiCgpUaGUgZG9jdW1lbnRhdGlvbiB1c2VzIHRoaXMg dGVybSB3aGVyZSBpdCBpcyBtZWFudCB0byByZWZlciBzcGVjaWZpY2FsbHkgdG8KcGh5c2ljYWwg cmVwbGljYXRpb24gcmF0aGVyIHRoYW4gbG9naWNhbCByZXBsaWNhdGlvbiwgd2hpY2ggc2V0cyB1 cCBhIGZhbHNlCmRpY2hvdG9teSBiZXR3ZWVuIGxvZ2ljYWwgYW5kIHN0cmVhbWluZyByZXBsaWNh dGlvbi4gT3JpZ2luYWwgcGF0Y2ggYnkKUGF1bCBBLiBKdW5nd2lydGgsIHdpdGggYWRkaXRpb25h bCBjaGFuZ2VzIGFuZCB1cGRhdGluZyBieSBtZS4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwgICAgICAgICAgICAgIHwgMjkgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBkb2Mvc3Jj L3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCAgIHwgMTIgKysrKysrKysrLS0KIGRvYy9zcmMv c2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgfCAgNiArKystLS0KIGRvYy9zcmMvc2dtbC9s b2dpY2FsZGVjb2Rpbmcuc2dtbCAgICAgfCAgNiArKystLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzEg aW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDAyM2IzZjAzYmE5 Li5lOWRjYTM0ZmZlZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMjA2OSw3ICsyMDY5LDcgQEAgaW5jbHVkZV9k aXIgJ2NvbmYuZCcKICAgICAgICA8cGFyYT4KICAgICAgICAgU3BlY2lmaWVzIHRoZSBtYXhpbXVt IGFtb3VudCBvZiBtZW1vcnkgdG8gYmUgdXNlZCBieSBsb2dpY2FsIGRlY29kaW5nLAogICAgICAg ICBiZWZvcmUgc29tZSBvZiB0aGUgZGVjb2RlZCBjaGFuZ2VzIGFyZSB3cml0dGVuIHRvIGxvY2Fs IGRpc2suIFRoaXMKLSAgICAgICAgbGltaXRzIHRoZSBhbW91bnQgb2YgbWVtb3J5IHVzZWQgYnkg bG9naWNhbCBzdHJlYW1pbmcgcmVwbGljYXRpb24KKyAgICAgICAgbGltaXRzIHRoZSBhbW91bnQg b2YgbWVtb3J5IHVzZWQgYnkgc3RyZWFtaW5nIGxvZ2ljYWwgcmVwbGljYXRpb24KICAgICAgICAg Y29ubmVjdGlvbnMuIEl0IGRlZmF1bHRzIHRvIDY0IG1lZ2FieXRlcyAoPGxpdGVyYWw+NjRNQjwv bGl0ZXJhbD4pLgogICAgICAgICBTaW5jZSBlYWNoIHJlcGxpY2F0aW9uIGNvbm5lY3Rpb24gb25s eSB1c2VzIGEgc2luZ2xlIGJ1ZmZlciBvZiB0aGlzIHNpemUsCiAgICAgICAgIGFuZCBhbiBpbnN0 YWxsYXRpb24gbm9ybWFsbHkgZG9lc24ndCBoYXZlIG1hbnkgc3VjaCBjb25uZWN0aW9ucwpAQCAt Mzc5NCw3ICszNzk0LDcgQEAgaW5jbHVkZV9kaXIgJ2NvbmYuZCcKICAgICAgICAgZGlmZmVyZW5j ZSBiZXR3ZWVuIHRoZSB0d28gbW9kZXMsIGJ1dCB3aGVuIHNldCB0byA8bGl0ZXJhbD5hbHdheXM8 L2xpdGVyYWw+CiAgICAgICAgIHRoZSBXQUwgYXJjaGl2ZXIgaXMgZW5hYmxlZCBhbHNvIGR1cmlu ZyBhcmNoaXZlIHJlY292ZXJ5IG9yIHN0YW5kYnkKICAgICAgICAgbW9kZS4gSW4gPGxpdGVyYWw+ YWx3YXlzPC9saXRlcmFsPiBtb2RlLCBhbGwgZmlsZXMgcmVzdG9yZWQgZnJvbSB0aGUgYXJjaGl2 ZQotICAgICAgICBvciBzdHJlYW1lZCB3aXRoIHN0cmVhbWluZyByZXBsaWNhdGlvbiB3aWxsIGJl IGFyY2hpdmVkIChhZ2FpbikuIFNlZQorICAgICAgICBvciBzdHJlYW1lZCB3aXRoIHN0cmVhbWlu ZyBwaHlzaWNhbCByZXBsaWNhdGlvbiB3aWxsIGJlIGFyY2hpdmVkIChhZ2FpbikuIFNlZQogICAg ICAgICA8eHJlZiBsaW5rZW5kPSJjb250aW51b3VzLWFyY2hpdmluZy1pbi1zdGFuZGJ5Ii8+IGZv ciBkZXRhaWxzLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KQEAgLTM5MDAsNyArMzkw MCw3IEBAIGluY2x1ZGVfZGlyICdjb25mLmQnCiAgICAgICAgIGZ1bGwgZmlsZXMuICBUaGVyZWZv cmUsIGl0IGlzIHVud2lzZSB0byB1c2UgYSB2ZXJ5IHNob3J0CiAgICAgICAgIDx2YXJuYW1lPmFy Y2hpdmVfdGltZW91dDwvdmFybmFtZT4gJm1kYXNoOyBpdCB3aWxsIGJsb2F0IHlvdXIgYXJjaGl2 ZQogICAgICAgICBzdG9yYWdlLiAgPHZhcm5hbWU+YXJjaGl2ZV90aW1lb3V0PC92YXJuYW1lPiBz ZXR0aW5ncyBvZiBhIG1pbnV0ZSBvciBzbyBhcmUKLSAgICAgICAgdXN1YWxseSByZWFzb25hYmxl LiAgWW91IHNob3VsZCBjb25zaWRlciB1c2luZyBzdHJlYW1pbmcgcmVwbGljYXRpb24sCisgICAg ICAgIHVzdWFsbHkgcmVhc29uYWJsZS4gIFlvdSBzaG91bGQgY29uc2lkZXIgdXNpbmcgc3RyZWFt aW5nIHBoeXNpY2FsIHJlcGxpY2F0aW9uLAogICAgICAgICBpbnN0ZWFkIG9mIGFyY2hpdmluZywg aWYgeW91IHdhbnQgZGF0YSB0byBiZSBjb3BpZWQgb2ZmIHRoZSBwcmltYXJ5CiAgICAgICAgIHNl cnZlciBtb3JlIHF1aWNrbHkgdGhhbiB0aGF0LgogICAgICAgICBJZiB0aGlzIHZhbHVlIGlzIHNw ZWNpZmllZCB3aXRob3V0IHVuaXRzLCBpdCBpcyB0YWtlbiBhcyBzZWNvbmRzLgpAQCAtMzkyNSw3 ICszOTI1LDcgQEAgaW5jbHVkZV9kaXIgJ2NvbmYuZCcKIAogICAgIDxwYXJhPgogICAgICBUaGlz IHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBzZXR0aW5ncyB0aGF0IGFwcGx5IHRvIHJlY292ZXJ5IGlu IGdlbmVyYWwsCi0gICAgIGFmZmVjdGluZyBjcmFzaCByZWNvdmVyeSwgc3RyZWFtaW5nIHJlcGxp Y2F0aW9uIGFuZCBhcmNoaXZlLWJhc2VkCisgICAgIGFmZmVjdGluZyBjcmFzaCByZWNvdmVyeSwg c3RyZWFtaW5nIHBoeXNpY2FsIHJlcGxpY2F0aW9uIGFuZCBhcmNoaXZlLWJhc2VkCiAgICAgIHJl cGxpY2F0aW9uLgogICAgIDwvcGFyYT4KIApAQCAtNDAzNiw3ICs0MDM2LDcgQEAgaW5jbHVkZV9k aXIgJ2NvbmYuZCcKICAgICAgICA8cGFyYT4KICAgICAgICAgVGhlIGxvY2FsIHNoZWxsIGNvbW1h bmQgdG8gZXhlY3V0ZSB0byByZXRyaWV2ZSBhbiBhcmNoaXZlZCBzZWdtZW50IG9mCiAgICAgICAg IHRoZSBXQUwgZmlsZSBzZXJpZXMuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIGZvciBhcmNo aXZlIHJlY292ZXJ5LAotICAgICAgICBidXQgb3B0aW9uYWwgZm9yIHN0cmVhbWluZyByZXBsaWNh dGlvbi4KKyAgICAgICAgYnV0IG9wdGlvbmFsIGZvciBzdHJlYW1pbmcgcGh5c2ljYWwgcmVwbGlj YXRpb24uCiAgICAgICAgIEFueSA8bGl0ZXJhbD4lZjwvbGl0ZXJhbD4gaW4gdGhlIHN0cmluZyBp cwogICAgICAgICByZXBsYWNlZCBieSB0aGUgbmFtZSBvZiB0aGUgZmlsZSB0byByZXRyaWV2ZSBm cm9tIHRoZSBhcmNoaXZlLAogICAgICAgICBhbmQgYW55IDxsaXRlcmFsPiVwPC9saXRlcmFsPiBp cyByZXBsYWNlZCBieSB0aGUgY29weSBkZXN0aW5hdGlvbiBwYXRoIG5hbWUKQEAgLTQ0NjIsMTUg KzQ0NjIsMTYgQEAgcmVzdG9yZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVk aXJcXCVmIiAiJXAiJyAgIyBXaW5kb3dzCiAgICAgPHRpdGxlPlJlcGxpY2F0aW9uPC90aXRsZT4K IAogICAgIDxwYXJhPgotICAgICBUaGVzZSBzZXR0aW5ncyBjb250cm9sIHRoZSBiZWhhdmlvciBv ZiB0aGUgYnVpbHQtaW4KLSAgICAgPGZpcnN0dGVybT5zdHJlYW1pbmcgcmVwbGljYXRpb248L2Zp cnN0dGVybT4gZmVhdHVyZSAoc2VlCi0gICAgIDx4cmVmIGxpbmtlbmQ9InN0cmVhbWluZy1yZXBs aWNhdGlvbiIvPiksIGFuZCB0aGUgYnVpbHQtaW4KLSAgICAgPGZpcnN0dGVybT5sb2dpY2FsIHJl cGxpY2F0aW9uPC9maXJzdHRlcm0+IGZlYXR1cmUgKHNlZQorICAgICBUaGVzZSBzZXR0aW5ncyBj b250cm9sIHRoZSBiZWhhdmlvciBvZgorICAgICA8Zmlyc3R0ZXJtPnN0cmVhbWluZyByZXBsaWNh dGlvbjwvZmlyc3R0ZXJtPiwKKyAgICAgYm90aCA8Zmlyc3R0ZXJtPnBoeXNpY2FsIHJlcGxpY2F0 aW9uPC9maXJzdHRlcm0+CisgICAgIChzZWUgPHhyZWYgbGlua2VuZD0ic3RyZWFtaW5nLXJlcGxp Y2F0aW9uIi8+KSBhbmQKKyAgICAgPGZpcnN0dGVybT5sb2dpY2FsIHJlcGxpY2F0aW9uPC9maXJz dHRlcm0+IChzZWUKICAgICAgPHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNhdGlvbiIvPiku CiAgICAgPC9wYXJhPgogCiAgICAgPHBhcmE+Ci0gICAgIEZvciA8ZW1waGFzaXM+c3RyZWFtaW5n IHJlcGxpY2F0aW9uPC9lbXBoYXNpcz4sIHNlcnZlcnMgd2lsbCBiZSBlaXRoZXIgYQorICAgICBG b3IgPGVtcGhhc2lzPnBoeXNpY2FsIHJlcGxpY2F0aW9uPC9lbXBoYXNpcz4sIHNlcnZlcnMgd2ls bCBiZSBlaXRoZXIgYQogICAgICBwcmltYXJ5IG9yIGEgc3RhbmRieSBzZXJ2ZXIuICBQcmltYXJp ZXMgY2FuIHNlbmQgZGF0YSwgd2hpbGUgc3RhbmRieXMKICAgICAgYXJlIGFsd2F5cyByZWNlaXZl cnMgb2YgcmVwbGljYXRlZCBkYXRhLiAgV2hlbiBjYXNjYWRpbmcgcmVwbGljYXRpb24KICAgICAg KHNlZSA8eHJlZiBsaW5rZW5kPSJjYXNjYWRpbmctcmVwbGljYXRpb24iLz4pIGlzIHVzZWQsIHN0 YW5kYnkgc2VydmVycwpAQCAtNDkwMSw3ICs0OTAyLDcgQEAgQU5ZIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5udW1fc3luYzwvcmVwbGFjZWFibGU+ICggPHJlcGxhY2VhYmxlIGNsYXNz PSIKICAgICAgIFRoZXNlIHNldHRpbmdzIGNvbnRyb2wgdGhlIGJlaGF2aW9yIG9mIGEKICAgICAg IDxsaW5rIGxpbmtlbmQ9InN0YW5kYnktc2VydmVyLW9wZXJhdGlvbiI+c3RhbmRieSBzZXJ2ZXI8 L2xpbms+CiAgICAgICB0aGF0IGlzCi0gICAgICB0byByZWNlaXZlIHJlcGxpY2F0aW9uIGRhdGEu ICBUaGVpciB2YWx1ZXMgb24gdGhlIHByaW1hcnkgc2VydmVyCisgICAgICB0byByZWNlaXZlIHBo eXNpY2FsIHJlcGxpY2F0aW9uIGRhdGEuICBUaGVpciB2YWx1ZXMgb24gdGhlIHByaW1hcnkgc2Vy dmVyCiAgICAgICBhcmUgaXJyZWxldmFudC4KICAgICAgPC9wYXJhPgogCkBAIC01MDQxLDcgKzUw NDIsNyBAQCBBTlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bV9zeW5jPC9yZXBs YWNlYWJsZT4gKCA8cmVwbGFjZWFibGUgY2xhc3M9IgogICAgICAgICBjb25mbGljdCB3aXRoIGFi b3V0LXRvLWJlLWFwcGxpZWQgV0FMIGVudHJpZXMsIGFzIGRlc2NyaWJlZCBpbgogICAgICAgICA8 eHJlZiBsaW5rZW5kPSJob3Qtc3RhbmRieS1jb25mbGljdCIvPi4KICAgICAgICAgPHZhcm5hbWU+ bWF4X3N0YW5kYnlfc3RyZWFtaW5nX2RlbGF5PC92YXJuYW1lPiBhcHBsaWVzIHdoZW4gV0FMIGRh dGEgaXMKLSAgICAgICAgYmVpbmcgcmVjZWl2ZWQgdmlhIHN0cmVhbWluZyByZXBsaWNhdGlvbi4K KyAgICAgICAgYmVpbmcgcmVjZWl2ZWQgdmlhIHN0cmVhbWluZyBwaHlzaWNhbCByZXBsaWNhdGlv bi4KICAgICAgICAgSWYgdGhpcyB2YWx1ZSBpcyBzcGVjaWZpZWQgd2l0aG91dCB1bml0cywgaXQg aXMgdGFrZW4gYXMgbWlsbGlzZWNvbmRzLgogICAgICAgICBUaGUgZGVmYXVsdCBpcyAzMCBzZWNv bmRzLgogICAgICAgICBBIHZhbHVlIG9mIC0xIGFsbG93cyB0aGUgc3RhbmRieSB0byB3YWl0IGZv cmV2ZXIgZm9yIGNvbmZsaWN0aW5nCkBAIC01MTc3LDcgKzUxNzgsNyBAQCBBTlkgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bV9zeW5jPC9yZXBsYWNlYWJsZT4gKCA8cmVwbGFjZWFi bGUgY2xhc3M9IgogICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgogICAgICAgICBTcGVj aWZpZXMgaG93IGxvbmcgdGhlIHN0YW5kYnkgc2VydmVyIHNob3VsZCB3YWl0IHdoZW4gV0FMIGRh dGEgaXMgbm90Ci0gICAgICAgIGF2YWlsYWJsZSBmcm9tIGFueSBzb3VyY2VzIChzdHJlYW1pbmcg cmVwbGljYXRpb24sCisgICAgICAgIGF2YWlsYWJsZSBmcm9tIGFueSBzb3VyY2VzIChzdHJlYW1p bmcgcGh5c2ljYWwgcmVwbGljYXRpb24sCiAgICAgICAgIGxvY2FsIDxmaWxlbmFtZT5wZ193YWw8 L2ZpbGVuYW1lPiBvciBXQUwgYXJjaGl2ZSkgYmVmb3JlIHRyeWluZwogICAgICAgICBhZ2FpbiB0 byByZXRyaWV2ZSBXQUwgZGF0YS4KICAgICAgICAgSWYgdGhpcyB2YWx1ZSBpcyBzcGVjaWZpZWQg d2l0aG91dCB1bml0cywgaXQgaXMgdGFrZW4gYXMgbWlsbGlzZWNvbmRzLgpAQCAtNTI1NCw3ICs1 MjU1LDcgQEAgQU5ZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1fc3luYzwvcmVw bGFjZWFibGU+ICggPHJlcGxhY2VhYmxlIGNsYXNzPSIKICAgICAgICAgPGZpbGVuYW1lPnBnX3dh bDwvZmlsZW5hbWU+IGRpcmVjdG9yeS4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+Ci0g ICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGludGVuZGVkIGZvciB1c2Ugd2l0aCBzdHJlYW1pbmcg cmVwbGljYXRpb24gZGVwbG95bWVudHM7CisgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGludGVu ZGVkIGZvciB1c2Ugd2l0aCBzdHJlYW1pbmcgcGh5c2ljYWwgcmVwbGljYXRpb24gZGVwbG95bWVu dHM7CiAgICAgICAgIGhvd2V2ZXIsIGlmIHRoZSBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIGl0IHdp bGwgYmUgaG9ub3JlZCBpbiBhbGwgY2FzZXMKICAgICAgICAgZXhjZXB0IGNyYXNoIHJlY292ZXJ5 LgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCmluZGV4IDgxZWVhZGQ2YzQ3Li4zM2Nh M2YwMjg2YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2hpZ2gtYXZhaWxhYmlsaXR5LnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2hpZ2gtYXZhaWxhYmlsaXR5LnNnbWwKQEAgLTE1MSw3ICsxNTEs NyBAQCBwcm90b2NvbCB0byBtYWtlIG5vZGVzIGFncmVlIG9uIGEgc2VyaWFsaXphYmxlIHRyYW5z YWN0aW9uYWwgb3JkZXIuCiAgICAgPC9wYXJhPgogICAgIDxwYXJhPgogICAgICBBIHN0YW5kYnkg c2VydmVyIGNhbiBiZSBpbXBsZW1lbnRlZCB1c2luZyBmaWxlLWJhc2VkIGxvZyBzaGlwcGluZwot ICAgICAoPHhyZWYgbGlua2VuZD0id2FybS1zdGFuZGJ5Ii8+KSBvciBzdHJlYW1pbmcgcmVwbGlj YXRpb24gKHNlZQorICAgICAoPHhyZWYgbGlua2VuZD0id2FybS1zdGFuZGJ5Ii8+KSBvciBzdHJl YW1pbmcgcGh5c2ljYWwgcmVwbGljYXRpb24gKHNlZQogICAgICA8eHJlZiBsaW5rZW5kPSJzdHJl YW1pbmctcmVwbGljYXRpb24iLz4pLCBvciBhIGNvbWJpbmF0aW9uIG9mIGJvdGguIEZvcgogICAg ICBpbmZvcm1hdGlvbiBvbiBob3Qgc3RhbmRieSwgc2VlIDx4cmVmIGxpbmtlbmQ9ImhvdC1zdGFu ZGJ5Ii8+LgogICAgIDwvcGFyYT4KQEAgLTYyOCw3ICs2MjgsNyBAQCBwcm90b2NvbCB0byBtYWtl IG5vZGVzIGFncmVlIG9uIGEgc2VyaWFsaXphYmxlIHRyYW5zYWN0aW9uYWwgb3JkZXIuCiAgICAg SW4gc3RhbmRieSBtb2RlLCB0aGUgc2VydmVyIGNvbnRpbnVvdXNseSBhcHBsaWVzIFdBTCByZWNl aXZlZCBmcm9tIHRoZQogICAgIHByaW1hcnkgc2VydmVyLiBUaGUgc3RhbmRieSBzZXJ2ZXIgY2Fu IHJlYWQgV0FMIGZyb20gYSBXQUwgYXJjaGl2ZQogICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZ3Vj LXJlc3RvcmUtY29tbWFuZCIvPikgb3IgZGlyZWN0bHkgZnJvbSB0aGUgcHJpbWFyeQotICAgIG92 ZXIgYSBUQ1AgY29ubmVjdGlvbiAoc3RyZWFtaW5nIHJlcGxpY2F0aW9uKS4gVGhlIHN0YW5kYnkg c2VydmVyIHdpbGwKKyAgICBvdmVyIGEgVENQIGNvbm5lY3Rpb24gKHN0cmVhbWluZyBwaHlzaWNh bCByZXBsaWNhdGlvbikuIFRoZSBzdGFuZGJ5IHNlcnZlciB3aWxsCiAgICAgYWxzbyBhdHRlbXB0 IHRvIHJlc3RvcmUgYW55IFdBTCBmb3VuZCBpbiB0aGUgc3RhbmRieSBjbHVzdGVyJ3MKICAgICA8 ZmlsZW5hbWU+cGdfd2FsPC9maWxlbmFtZT4gZGlyZWN0b3J5LiBUaGF0IHR5cGljYWxseSBoYXBw ZW5zIGFmdGVyIGEgc2VydmVyCiAgICAgcmVzdGFydCwgd2hlbiB0aGUgc3RhbmRieSByZXBsYXlz IGFnYWluIFdBTCB0aGF0IHdhcyBzdHJlYW1lZCBmcm9tIHRoZQpAQCAtNzcyLDYgKzc3MiwxNCBA QCBhcmNoaXZlX2NsZWFudXBfY29tbWFuZCA9ICdwZ19hcmNoaXZlY2xlYW51cCAvcGF0aC90by9h cmNoaXZlICIlciInCiAgICAgZ2VuZXJhdGVkLCB3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSBXQUwg ZmlsZSB0byBiZSBmaWxsZWQuCiAgICA8L3BhcmE+CiAKKyAgIDxub3RlPgorICAgIDxwYXJhPgor ICAgICBUaGlzIGRpc2N1c3Npb24gb2Ygc3RyZWFtaW5nIHJlcGxpY2F0aW9uIGFzc3VtZXMgcGh5 c2ljYWwgcmVwbGljYXRpb24uCisgICAgIEFsdGhvdWdoIHlvdSBjb3VsZCB0cmVhdCBhIGxvZ2lj YWwgcmVwbGljYXRpb24gc3Vic2NyaWJlciBhcyBhIHdhcm0gc3RhbmRieSwKKyAgICAgaXQgd291 bGQgcmVxdWlyZSBzb21lIGRpZmZlcmVuY2VzIHRvIHdoYXQgaXMgZGVzY3JpYmVkIGhlcmUuCisg ICAgPC9wYXJhPgorICAgPC9ub3RlPgorCiAgICA8cGFyYT4KICAgICBTdHJlYW1pbmcgcmVwbGlj YXRpb24gaXMgYXN5bmNocm9ub3VzIGJ5IGRlZmF1bHQKICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9 InN5bmNocm9ub3VzLXJlcGxpY2F0aW9uIi8+KSwgaW4gd2hpY2ggY2FzZSB0aGVyZSBpcwpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9zcmMv c2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggYWEwMTNmMzQ4ZDQuLmIzZmFhYTY3 NWVmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTYsNyArNiw3IEBA CiAgPHBhcmE+CiAgIExvZ2ljYWwgcmVwbGljYXRpb24gaXMgYSBtZXRob2Qgb2YgcmVwbGljYXRp bmcgZGF0YSBvYmplY3RzIGFuZCB0aGVpcgogICBjaGFuZ2VzLCBiYXNlZCB1cG9uIHRoZWlyIHJl cGxpY2F0aW9uIGlkZW50aXR5ICh1c3VhbGx5IGEgcHJpbWFyeSBrZXkpLiAgV2UKLSAgdXNlIHRo ZSB0ZXJtIGxvZ2ljYWwgaW4gY29udHJhc3QgdG8gcGh5c2ljYWwgcmVwbGljYXRpb24sIHdoaWNo IHVzZXMgZXhhY3QKKyAgdXNlIHRoZSB0ZXJtIGxvZ2ljYWwgcmVwbGljYXRpb24gaW4gY29udHJh c3QgdG8gcGh5c2ljYWwgcmVwbGljYXRpb24sIHdoaWNoIHVzZXMgZXhhY3QKICAgYmxvY2sgYWRk cmVzc2VzIGFuZCBieXRlLWJ5LWJ5dGUgcmVwbGljYXRpb24uICBQb3N0Z3JlU1FMIHN1cHBvcnRz IGJvdGgKICAgbWVjaGFuaXNtcyBjb25jdXJyZW50bHksIHNlZSA8eHJlZiBsaW5rZW5kPSJoaWdo LWF2YWlsYWJpbGl0eSIvPi4gIExvZ2ljYWwKICAgcmVwbGljYXRpb24gYWxsb3dzIGZpbmUtZ3Jh aW5lZCBjb250cm9sIG92ZXIgYm90aCBkYXRhIHJlcGxpY2F0aW9uIGFuZApAQCAtMjQ5Niw4ICsy NDk2LDggQEAgQ09OVEVYVDogIHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9u IG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5TRVIKICAgPHRpdGxlPk1vbml0b3Jpbmc8L3Rp dGxlPgogCiAgIDxwYXJhPgotICAgQmVjYXVzZSBsb2dpY2FsIHJlcGxpY2F0aW9uIGlzIGJhc2Vk IG9uIGEgc2ltaWxhciBhcmNoaXRlY3R1cmUgYXMKLSAgIDxsaW5rIGxpbmtlbmQ9InN0cmVhbWlu Zy1yZXBsaWNhdGlvbiI+cGh5c2ljYWwgc3RyZWFtaW5nIHJlcGxpY2F0aW9uPC9saW5rPiwKKyAg IEJlY2F1c2Ugc3RyZWFtaW5nIGxvZ2ljYWwgcmVwbGljYXRpb24gaXMgYmFzZWQgb24gYSBzaW1p bGFyIGFyY2hpdGVjdHVyZSBhcworICAgPGxpbmsgbGlua2VuZD0ic3RyZWFtaW5nLXJlcGxpY2F0 aW9uIj5zdHJlYW1pbmcgcGh5c2ljYWwgcmVwbGljYXRpb248L2xpbms+LAogICAgdGhlIG1vbml0 b3Jpbmcgb24gYSBwdWJsaWNhdGlvbiBub2RlIGlzIHNpbWlsYXIgdG8gbW9uaXRvcmluZyBvZiBh CiAgICBwaHlzaWNhbCByZXBsaWNhdGlvbiBwcmltYXJ5CiAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9 InN0cmVhbWluZy1yZXBsaWNhdGlvbi1tb25pdG9yaW5nIi8+KS4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rp bmcuc2dtbAppbmRleCBkNWE1ZTIyZmUyYy4uOTAyZjhjZTk3MDIgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRl Y29kaW5nLnNnbWwKQEAgLTI3NSw5ICsyNzUsOSBAQCBwb3N0Z3Jlcz0jIFNFTEVDVCAqIGZyb20g cGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBOVQog ICAgIDwvcGFyYT4KIAogICAgIDxub3RlPgotICAgICA8cGFyYT48cHJvZHVjdG5hbWU+UG9zdGdy ZVNRTDwvcHJvZHVjdG5hbWU+IGFsc28gaGFzIHN0cmVhbWluZyByZXBsaWNhdGlvbiBzbG90cwot ICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9InN0cmVhbWluZy1yZXBsaWNhdGlvbiIvPiksIGJ1dCB0 aGV5IGFyZSB1c2VkIHNvbWV3aGF0Ci0gICAgIGRpZmZlcmVudGx5IHRoZXJlLgorICAgICA8cGFy YT48cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGNhbiBhbHNvIHVzZSBzdHJl YW1pbmcgcmVwbGljYXRpb24gc2xvdHMKKyAgICAgdG8gbWFpbnRhaW4gYSBzdGFuZGJ5IHNlcnZl ciAoc2VlIDx4cmVmIGxpbmtlbmQ9InN0cmVhbWluZy1yZXBsaWNhdGlvbiIvPiksIGJ1dAorICAg ICB0eXBpY2FsbHkgdGhvc2UgdXNlIHBoeXNpY2FsIHJlcGxpY2F0aW9uLCBub3QgbG9naWNhbC4K ICAgICAgPC9wYXJhPgogICAgIDwvbm90ZT4KIAotLSAKMi4yNC4zIChBcHBsZSBHaXQtMTI4KQoK --00000000000087f2c2064463b645--