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 1tzNWy-001HNg-ND for pgsql-hackers@arkaria.postgresql.org; Mon, 31 Mar 2025 22:22:56 +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 1tzNWx-00DTQa-Dg for pgsql-hackers@arkaria.postgresql.org; Mon, 31 Mar 2025 22:22:55 +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.94.2) (envelope-from ) id 1tzNWw-00DTQR-RK for pgsql-hackers@lists.postgresql.org; Mon, 31 Mar 2025 22:22:55 +0000 Received: from mail-oa1-x2b.google.com ([2001:4860:4864:20::2b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tzNWu-002DfF-0l for pgsql-hackers@postgresql.org; Mon, 31 Mar 2025 22:22:53 +0000 Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-2c769da02b0so3063795fac.3 for ; Mon, 31 Mar 2025 15:22:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743459771; x=1744064571; 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=mKFmvk5hdsp4xIDGiVnOQVjhuEjSHZFw0/VOxrZ8S3o=; b=Oc2Y7XScB/5vlD1YbmB5CLF3/Qi0N6IoVew5rE591ahAsLWP3d6QcHeEyFcHKFSV2O sZmxwHNF9Ntib2Eo5OjRU0osFI6VfHCqbHFWns71iz5MY0N2YEy/0m7Oy8EdFdalx0oV ChTsiDadvbCcC3GrLAO3cPPzBxr4C1qS7ayy6aQ/cQ8jCR4NCKiWnMNPF60jz+nLi5ES sK5FKqhs2qqH8SsuTGlHRgAsvC53VEMSUohHbPD3biWXf7fsev0/K8mezqMAl5pzSAWs Qz4PZ41Cio9R5rj22jUrVRTtjDge6mJ/JxC+BTsZpej5BSWTRayNcgVI2eGNrMS+zoO1 Sa/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743459771; x=1744064571; 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=mKFmvk5hdsp4xIDGiVnOQVjhuEjSHZFw0/VOxrZ8S3o=; b=e+NdEybfHsyZnRE9/mdgWEckY7vqGsAKWqlZfed3T2alJ86w29OfYbWQprNFPob0br u5HYALEWPfVL9gAdGVUnfZcy8H/OmTRXvw2ZX5qX3hZlrkkBX3mGVzz+bE5z4XRwXXo9 PUI5aZwlAd+Uw7oV7CNXajAnB9H7RfgPx9/Q0EkZaxVfR9HzKTWFG9nsbw21ZPEwzS7x oL1YVz4/zgYlKz2V0AVgWAelKQL1S2/h6lbFQx9jCTNq5mr2kz6GKFlThfT9KlxQyF2C eEdq89k2bMObWN1KPS+OuQF1j3LfSDJdcnM9acEEb7Cm016+uVX2X/Z7HqHTaW5Chj/I PbbQ== X-Gm-Message-State: AOJu0Yw91GAVkTCNidpkmq8qltmM/MZYA2dVCCILfX50rCnnkdhaI2jp h7lBDtrSa+jevLpKgIiJOQbyetN/p2hIZjxi1zZ3yriPbAy93U3qxZcQnPWM2eLfcweWfFoXutn yVxXyoHUidRSOZuuMvwupq+jmCiY= X-Gm-Gg: ASbGncujHdW0dn4++fJUGvNPJ/5Uhyjxz5r/ovS8b3YkLUTXms02KWhhMKOA23KR1W4 ffTcGOXgvrw/F0i2uv/6fjcKW5bfugldwzN9L1FXEjulubfjNOFj3HLgd4yatD0zvnTqqbT3dXT 4OlxkEAnNHV156dl6FyY8TNQ== X-Google-Smtp-Source: AGHT+IG33NxhOOwImd/N8lMoOhRIzwcuf0j0aQId77MGjmnBXZ1zL5wyWjEycoJEiS9ALmbTkfLcT3Y926GAVYZoK0I= X-Received: by 2002:a05:6871:5ce:b0:29e:630d:bab8 with SMTP id 586e51a60fabf-2cbcf51fda8mr6239537fac.17.1743459771127; Mon, 31 Mar 2025 15:22:51 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: "David G. Johnston" Date: Mon, 31 Mar 2025 15:22:14 -0700 X-Gm-Features: AQ5f1JrPLWenhyyb5bwXWz89BPJWM8xOlPVcwySghmtSoNJC6C_H7rrXQLV5O0Y Message-ID: Subject: Re: add function argument name to substring and substr To: jian he Cc: PostgreSQL-development Content-Type: multipart/mixed; boundary="00000000000056bf790631aadc57" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000056bf790631aadc57 Content-Type: multipart/alternative; boundary="00000000000056bf770631aadc55" --00000000000056bf770631aadc55 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 18, 2025 at 9:04=E2=80=AFPM jian he wrote: > > new patch attached. > > I've done v4 with a delta patch. Decided to standardize on calling the SQL Similar To regular expression escape replaceable "escape" everywhere. Instead of fully documenting the obsolete syntax I added a note explaining the keyword choice difference. Removed mention of it completely from the Pattern Matching portion of the documentation - that section has enough going on. I also add "Same as" references for the two pairs of entries. Not married to them but they do seem warranted; having Pattern Matching be required reading to make that connection seems undesirable. David J. --00000000000056bf770631aadc55 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Tue, Mar 18, 2025 at 9:04=E2=80=AFPM jian he <jian.universality@gmail.com>= ; wrote:

new patch attached.


I've done v4 = with a delta patch.

Decided to standardize on calling = the SQL Similar To regular expression escape replaceable "escape"= everywhere.

Instead of fully documenting the obsolete= syntax I added a note explaining the keyword choice difference.=C2=A0 Remo= ved mention of it completely from the Pattern Matching portion of the docum= entation - that section has enough going on.

I also= =C2=A0add "Same as" references for the two pairs of entries.=C2= =A0 Not married to them but they do seem warranted; having Pattern Matching= be required reading to make that connection seems undesirable.
David J.


--00000000000056bf770631aadc55-- --00000000000056bf790631aadc57 Content-Type: text/x-patch; charset="US-ASCII"; name="v4-0001-v3-0001-substring.patch" Content-Disposition: attachment; filename="v4-0001-v3-0001-substring.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m8xmqimr0 RnJvbSBiMmY2NDYxNWRhOTUyMjQyN2EyZTI2NjJiMWQwNjBmZmVkOTcwODhjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgRy4gSm9obnN0b24iIDxEYXZpZC5HLkpvaG5zdG9u QEdtYWlsLmNvbT4KRGF0ZTogTW9uLCAzMSBNYXIgMjAyNSAxNDozMjoxMiAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMS8yXSB2MyAwMDAxIHN1YnN0cmluZwoKLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy5z Z21sICAgICAgICAgICAgICAgICAgIHwgMTE1ICsrKysrKysrKysrKysrKysrKysrKy0tCiBzcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsIHwgICAyICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgIHwgIDEyICsrKwogMyBmaWxlcyBjaGFuZ2Vk LCAxMjAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRleCBjNjQyZjFlYTRl Li5lNGM5NWYxZTg4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9mdW5jLnNnbWwKQEAgLTI4NTAsOSArMjg1MCw5IEBAIFNFTEVDVCBOT1QoUk9X KHRhYmxlLiopIElTIE5PVCBOVUxMKSBGUk9NIFRBQkxFOyAtLSBkZXRlY3QgYXQgbGVhc3Qgb25l IG51bGwgaW4KICAgICAgICAgPGZ1bmN0aW9uPnN1YnN0cmluZzwvZnVuY3Rpb24+ICggPHBhcmFt ZXRlcj5zdHJpbmc8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gPGxpdGVyYWw+U0lNSUxB UjwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5wYXR0ZXJuPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5 cGU+IDxsaXRlcmFsPkVTQ0FQRTwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5lc2NhcGU8L3BhcmFtZXRl cj4gPHR5cGU+dGV4dDwvdHlwZT4gKQogICAgICAgICA8cmV0dXJudmFsdWU+dGV4dDwvcmV0dXJu dmFsdWU+CiAgICAgICAgPC9wYXJhPgotICAgICAgIDxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJl Ij4KKyAgICAgICA8cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+PHM+CiAgICAgICAgIDxmdW5j dGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c3RyaW5nPC9wYXJhbWV0ZXI+ IDx0eXBlPnRleHQ8L3R5cGU+IDxsaXRlcmFsPkZST008L2xpdGVyYWw+IDxwYXJhbWV0ZXI+cGF0 dGVybjwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiA8bGl0ZXJhbD5GT1I8L2xpdGVyYWw+ IDxwYXJhbWV0ZXI+ZXNjYXBlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKLSAgICAg ICAgPHJldHVybnZhbHVlPnRleHQ8L3JldHVybnZhbHVlPgorICAgICAgICA8cmV0dXJudmFsdWU+ dGV4dDwvcmV0dXJudmFsdWU+PC9zPgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAg ICAgICAgRXh0cmFjdHMgdGhlIGZpcnN0IHN1YnN0cmluZyBtYXRjaGluZyA8YWNyb255bT5TUUw8 L2Fjcm9ueW0+IHJlZ3VsYXIgZXhwcmVzc2lvbjsKQEAgLTM4MDYsNiArMzgwNiw1OCBAQCBTRUxF Q1QgTk9UKFJPVyh0YWJsZS4qKSBJUyBOT1QgTlVMTCkgRlJPTSBUQUJMRTsgLS0gZGV0ZWN0IGF0 IGxlYXN0IG9uZSBudWxsIGluCiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4K IAorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxmdW5jdGlvbj5zdWJzdHJpbmc8 L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c3RyaW5nPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5 cGU+LCA8cGFyYW1ldGVyPnBhdHRlcm48L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gKQor ICAgICAgICA8cmV0dXJudmFsdWU+dGV4dDwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgor ICAgICAgIDxwYXJhPgorICAgICAgICBFeHRyYWN0cyB0aGUgZmlyc3Qgc3Vic3RyaW5nIG1hdGNo aW5nIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbjsgc2VlCisgICAgICAgIDx4cmVmIGxpbmtlbmQ9 ImZ1bmN0aW9ucy1wb3NpeC1yZWdleHAiLz4uCisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJh PgorICAgICAgICA8bGl0ZXJhbD5zdWJzdHJpbmcoJ1Rob21hcycsICcuLi4kJyk8L2xpdGVyYWw+ CisgICAgICAgIDxyZXR1cm52YWx1ZT5tYXM8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9 ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAg PGZ1bmN0aW9uPnN1YnN0cmluZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zdHJpbmc8L3BhcmFt ZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4sIDxwYXJhbWV0ZXI+cGF0dGVybjwvcGFyYW1ldGVyPiA8 dHlwZT50ZXh0PC90eXBlPiwgPHBhcmFtZXRlcj5lc2NhcGVfY2hhcmFjdGVyIDwvcGFyYW1ldGVy PiA8dHlwZT50ZXh0PC90eXBlPikKKyAgICAgICAgPHJldHVybnZhbHVlPnRleHQ8L3JldHVybnZh bHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRXh0cmFjdHMgdGhl IGZpcnN0IHN1YnN0cmluZyBtYXRjaGluZyA8YWNyb255bT5TUUw8L2Fjcm9ueW0+IHJlZ3VsYXIg ZXhwcmVzc2lvbjsKKyAgICAgICAgc2VlIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9ucy1zaW1pbGFy dG8tcmVnZXhwIi8+LgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgPGxp dGVyYWw+c3Vic3RyaW5nKCdUaG9tYXMnLCAnJSMib19hIyJfJywgJyMnKTwvbGl0ZXJhbD4KKyAg ICAgICAgPHJldHVybnZhbHVlPm9tYTwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVu Y190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5k ZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+c3Vic3RyaW5nPC9wcmltYXJ5PgorICAgICAgICA8 L2luZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPnN1YnN0cmluZzwvZnVuY3Rpb24+ICggPHBh cmFtZXRlcj5zdHJpbmc8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4sIDxwYXJhbWV0ZXI+ c3RhcnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4gPG9wdGlvbmFsPiwgPHBhcmFt ZXRlcj5jb3VudDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlvbmFsPiAp CisgICAgICAgIDxyZXR1cm52YWx1ZT50ZXh0PC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+ CisgICAgICAgPHBhcmE+CisgICAgICAgIEV4dHJhY3RzIHRoZSBzdWJzdHJpbmcgb2YgPHBhcmFt ZXRlcj5zdHJpbmc8L3BhcmFtZXRlcj4gc3RhcnRpbmcgYXQKKyAgICAgICAgdGhlIDxwYXJhbWV0 ZXI+c3RhcnQ8L3BhcmFtZXRlcj4ndGggY2hhcmFjdGVyLAorICAgICAgICBhbmQgc3RvcHBpbmcg YWZ0ZXIgPHBhcmFtZXRlcj5jb3VudDwvcGFyYW1ldGVyPiBjaGFyYWN0ZXJzIGlmIHRoYXQgaXMK KyAgICAgICAgc3BlY2lmaWVkLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAg ICAgICA8bGl0ZXJhbD5zdWJzdHJpbmcoJ1Rob21hcycsIDIsIDMpPC9saXRlcmFsPgorICAgICAg ICA8cmV0dXJudmFsdWU+aG9tPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgIDwvcm93PgorCiAgICAgICA8cm93PgogICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CiAgICAgICAgIDxpbmRleHRl cm0+CkBAIC00ODExLDYgKzQ4NjMsMjcgQEAgU0VMRUNUIGZvcm1hdCgnVGVzdGluZyAlMyRzLCAl MiRzLCAlcycsICdvbmUnLCAndHdvJywgJ3RocmVlJyk7CiAgICAgICAgIDxyZXR1cm52YWx1ZT5c eDU2Nzg8L3JldHVybnZhbHVlPgogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+ CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAg IDxwcmltYXJ5PnN1YnN0cmluZzwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAg ICAgIDxmdW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+Ynl0ZXM8L3Bh cmFtZXRlcj4gPHR5cGU+Ynl0ZWE8L3R5cGU+LCA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+ IDx0eXBlPmludGVnZXI8L3R5cGU+IDxvcHRpb25hbD4sIDxwYXJhbWV0ZXI+Y291bnQ8L3BhcmFt ZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4gPC9vcHRpb25hbD4gKQorICAgICAgICA8cmV0dXJu dmFsdWU+Ynl0ZWE8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgRXh0cmFjdHMgdGhlIHN1YnN0cmluZyBvZiA8cGFyYW1ldGVyPmJ5dGVzPC9wYXJh bWV0ZXI+IHN0YXJ0aW5nIGF0CisgICAgICAgIHRoZSA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0 ZXI+J3RoIGJ5dGUsCisgICAgICAgIGFuZCBzdG9wcGluZyBhZnRlciA8cGFyYW1ldGVyPmNvdW50 PC9wYXJhbWV0ZXI+IGJ5dGVzIGlmIHRoYXQgaXMKKyAgICAgICAgc3BlY2lmaWVkLgorICAgICAg IDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgPGxpdGVyYWw+c3Vic3RyaW5nKCdceDEy MzQ1Njc4OTAnOjpieXRlYSwgMywgMik8L2xpdGVyYWw+CisgICAgICAgIDxyZXR1cm52YWx1ZT5c eDU2Nzg8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+ CisKICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC01MzUzLDYgKzU0 MjYsMjYgQEAgY2FzdCgtMTIzNCBhcyBieXRlYSkgICAgICAgICAgIDxsaW5lYW5ub3RhdGlvbj5c eGZmZmZmYjJlPC9saW5lYW5ub3RhdGlvbj4KICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAg IDwvcm93PgogCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxpbmRleHRlcm0+Cisg ICAgICAgICA8cHJpbWFyeT5zdWJzdHJpbmc8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJt PgorICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPmJp dHM8L3BhcmFtZXRlcj4gPHR5cGU+Yml0PC90eXBlPiwgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1l dGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPmNvdW50PC9w YXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+IDwvb3B0aW9uYWw+ICkKKyAgICAgICAgPHJl dHVybnZhbHVlPmJpdDwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJh PgorICAgICAgICBFeHRyYWN0cyB0aGUgc3Vic3RyaW5nIG9mIDxwYXJhbWV0ZXI+Yml0czwvcGFy YW1ldGVyPiBzdGFydGluZyBhdAorICAgICAgICB0aGUgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1l dGVyPid0aCBiaXQsCisgICAgICAgIGFuZCBzdG9wcGluZyBhZnRlciA8cGFyYW1ldGVyPmNvdW50 PC9wYXJhbWV0ZXI+IGJpdHMgaWYgdGhhdCBpcworICAgICAgICBzcGVjaWZpZWQuCisgICAgICAg PC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICA8bGl0ZXJhbD5zdWJzdHJpbmcoQicxMTAw MTAxMTExMTEnLCAzLCAyKTwvbGl0ZXJhbD4KKyAgICAgICAgPHJldHVybnZhbHVlPjAwPC9yZXR1 cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8 cm93PgogICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJm dW5jX3NpZ25hdHVyZSI+CiAgICAgICAgIDxpbmRleHRlcm0+CkBAIC01ODE2LDcgKzU5MDksNyBA QCBzdWJzdHJpbmcoPHJlcGxhY2VhYmxlPnN0cmluZzwvcmVwbGFjZWFibGU+IGZyb20gPHJlcGxh Y2VhYmxlPnBhdHRlcm48L3JlcGxhY2VhYgogPC9zeW5vcHNpcz4KICAgICBvciBhcyBhIHBsYWlu IHRocmVlLWFyZ3VtZW50IGZ1bmN0aW9uOgogPHN5bm9wc2lzPgotc3Vic3RyaW5nKDxyZXBsYWNl YWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlPnBhdHRlcm48L3JlcGxhY2Vh YmxlPiwgPHJlcGxhY2VhYmxlPmVzY2FwZS1jaGFyYWN0ZXI8L3JlcGxhY2VhYmxlPikKK3N1YnN0 cmluZyg8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZT5wYXR0 ZXJuPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZT5lc2NhcGVfY2hhcmFjdGVyPC9yZXBsYWNl YWJsZT4pCiA8L3N5bm9wc2lzPgogICAgIEFzIHdpdGggPGxpdGVyYWw+U0lNSUxBUiBUTzwvbGl0 ZXJhbD4sIHRoZQogICAgIHNwZWNpZmllZCBwYXR0ZXJuIG11c3QgbWF0Y2ggdGhlIGVudGlyZSBk YXRhIHN0cmluZywgb3IgZWxzZSB0aGUKQEAgLTYwMjAsMTEgKzYxMTMsMTcgQEAgc3Vic3RyaW5n KCdmb29iYXInIHNpbWlsYXIgJyMib19iIyIlJyBlc2NhcGUgJyMnKSAgICA8bGluZWFubm90YXRp b24+TlVMTDwvbGluZWEKICAgICA8L3BhcmE+CiAKICAgICA8cGFyYT4KLSAgICAgVGhlIDxmdW5j dGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiBmdW5jdGlvbiB3aXRoIHR3byBwYXJhbWV0ZXJzLAot ICAgICA8ZnVuY3Rpb24+c3Vic3RyaW5nKDxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxl PiBmcm9tCi0gICAgIDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4pPC9mdW5jdGlv bj4sIHByb3ZpZGVzIGV4dHJhY3Rpb24gb2YgYQotICAgICBzdWJzdHJpbmcKLSAgICAgdGhhdCBt YXRjaGVzIGEgUE9TSVggcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4uICBJdCByZXR1cm5zIG51 bGwgaWYKKyAgICAgVGhlIDxmdW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiBmdW5jdGlvbiB3 aXRoIHR3byBwYXJhbWV0ZXJzIHByb3ZpZGVzIGV4dHJhY3Rpb24gb2YgYQorICAgICBzdWJzdHJp bmcgdGhhdCBtYXRjaGVzIGEgUE9TSVggcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4uCisgICAg IEl0IGhhcyBzeW50YXg6Cis8c3lub3BzaXM+CitzdWJzdHJpbmcoPHJlcGxhY2VhYmxlPnN0cmlu ZzwvcmVwbGFjZWFibGU+IGZyb20gPHJlcGxhY2VhYmxlPnBhdHRlcm48L3JlcGxhY2VhYmxlPikK Kzwvc3lub3BzaXM+CisgICAgIEl0IGNhbiBhbHNvIHdyaXR0ZW4gYXMgYSBwbGFpbiB0d28tYXJn dW1lbnQgZnVuY3Rpb246Cis8c3lub3BzaXM+CitzdWJzdHJpbmcoPHJlcGxhY2VhYmxlPnN0cmlu ZzwvcmVwbGFjZWFibGU+LCA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+KQorPC9z eW5vcHNpcz4KKyAgICAgSXQgcmV0dXJucyBudWxsIGlmCiAgICAgIHRoZXJlIGlzIG5vIG1hdGNo LCBvdGhlcndpc2UgdGhlIGZpcnN0IHBvcnRpb24gb2YgdGhlIHRleHQgdGhhdCBtYXRjaGVkIHRo ZQogICAgICBwYXR0ZXJuLiAgQnV0IGlmIHRoZSBwYXR0ZXJuIGNvbnRhaW5zIGFueSBwYXJlbnRo ZXNlcywgdGhlIHBvcnRpb24KICAgICAgb2YgdGhlIHRleHQgdGhhdCBtYXRjaGVkIHRoZSBmaXJz dCBwYXJlbnRoZXNpemVkIHN1YmV4cHJlc3Npb24gKHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX2Z1bmN0aW9ucy5zcWwKaW5kZXggNTY2ZjMwOGU0NC4uNWVhOWQ3ODZiNiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbAorKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCkBAIC00Miw3ICs0Miw3IEBAIENSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHJwYWQodGV4dCwgaW50ZWdlcikKICBJTU1VVEFCTEUgUEFS QUxMRUwgU0FGRSBTVFJJQ1QgQ09TVCAxCiBSRVRVUk4gcnBhZCgkMSwgJDIsICcgJyk7CiAKLUNS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OICJzdWJzdHJpbmciKHRleHQsIHRleHQsIHRleHQpCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiAic3Vic3RyaW5nIihzdHJpbmcgdGV4dCwgcGF0dGVy biB0ZXh0LCBlc2NhcGVfY2hhcmFjdGVyIHRleHQpCiAgUkVUVVJOUyB0ZXh0CiAgTEFOR1VBR0Ug c3FsCiAgSU1NVVRBQkxFIFBBUkFMTEVMIFNBRkUgU1RSSUNUIENPU1QgMQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKaW5kZXggMDczN2ViNzNjOS4uODdlMzAwNmZlZiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0CkBAIC0zNjY4LDYgKzM2NjgsNyBAQAogICBwcm9zcmMgPT4gJ3J0cmltJyB9LAogeyBv aWQgPT4gJzg3NycsIGRlc2NyID0+ICdleHRyYWN0IHBvcnRpb24gb2Ygc3RyaW5nJywKICAgcHJv bmFtZSA9PiAnc3Vic3RyJywgcHJvcmV0dHlwZSA9PiAndGV4dCcsIHByb2FyZ3R5cGVzID0+ICd0 ZXh0IGludDQgaW50NCcsCisgIHByb2FyZ25hbWVzID0+ICd7c3RyaW5nLCBzdGFydCwgY291bnR9 JywKICAgcHJvc3JjID0+ICd0ZXh0X3N1YnN0cicgfSwKIHsgb2lkID0+ICc4NzgnLCBkZXNjciA9 PiAnbWFwIGEgc2V0IG9mIGNoYXJhY3RlcnMgYXBwZWFyaW5nIGluIHN0cmluZycsCiAgIHByb25h bWUgPT4gJ3RyYW5zbGF0ZScsIHByb3JldHR5cGUgPT4gJ3RleHQnLCBwcm9hcmd0eXBlcyA9PiAn dGV4dCB0ZXh0IHRleHQnLApAQCAtMzY4Niw2ICszNjg3LDcgQEAKICAgcHJvc3JjID0+ICdydHJp bTEnIH0sCiB7IG9pZCA9PiAnODgzJywgZGVzY3IgPT4gJ2V4dHJhY3QgcG9ydGlvbiBvZiBzdHJp bmcnLAogICBwcm9uYW1lID0+ICdzdWJzdHInLCBwcm9yZXR0eXBlID0+ICd0ZXh0JywgcHJvYXJn dHlwZXMgPT4gJ3RleHQgaW50NCcsCisgIHByb2FyZ25hbWVzID0+ICd7c3RyaW5nLCBzdGFydH0n LAogICBwcm9zcmMgPT4gJ3RleHRfc3Vic3RyX25vX2xlbicgfSwKIHsgb2lkID0+ICc4ODQnLCBk ZXNjciA9PiAndHJpbSBzZWxlY3RlZCBjaGFyYWN0ZXJzIGZyb20gYm90aCBlbmRzIG9mIHN0cmlu ZycsCiAgIHByb25hbWUgPT4gJ2J0cmltJywgcHJvcmV0dHlwZSA9PiAndGV4dCcsIHByb2FyZ3R5 cGVzID0+ICd0ZXh0IHRleHQnLApAQCAtMzY5Niw5ICszNjk4LDExIEBACiAKIHsgb2lkID0+ICc5 MzYnLCBkZXNjciA9PiAnZXh0cmFjdCBwb3J0aW9uIG9mIHN0cmluZycsCiAgIHByb25hbWUgPT4g J3N1YnN0cmluZycsIHByb3JldHR5cGUgPT4gJ3RleHQnLCBwcm9hcmd0eXBlcyA9PiAndGV4dCBp bnQ0IGludDQnLAorICBwcm9hcmduYW1lcyA9PiAne3N0cmluZywgc3RhcnQsIGNvdW50fScsCiAg IHByb3NyYyA9PiAndGV4dF9zdWJzdHInIH0sCiB7IG9pZCA9PiAnOTM3JywgZGVzY3IgPT4gJ2V4 dHJhY3QgcG9ydGlvbiBvZiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICdzdWJzdHJpbmcnLCBwcm9y ZXR0eXBlID0+ICd0ZXh0JywgcHJvYXJndHlwZXMgPT4gJ3RleHQgaW50NCcsCisgIHByb2FyZ25h bWVzID0+ICd7c3RyaW5nLCBzdGFydH0nLAogICBwcm9zcmMgPT4gJ3RleHRfc3Vic3RyX25vX2xl bicgfSwKIHsgb2lkID0+ICcyMDg3JywKICAgZGVzY3IgPT4gJ3JlcGxhY2UgYWxsIG9jY3VycmVu Y2VzIGluIHN0cmluZyBvZiBvbGRfc3Vic3RyIHdpdGggbmV3X3N1YnN0cicsCkBAIC00MTE2LDYg KzQxMjAsNyBAQAogICBwcm9zcmMgPT4gJ2JpdGNhdCcgfSwKIHsgb2lkID0+ICcxNjgwJywgZGVz Y3IgPT4gJ2V4dHJhY3QgcG9ydGlvbiBvZiBiaXRzdHJpbmcnLAogICBwcm9uYW1lID0+ICdzdWJz dHJpbmcnLCBwcm9yZXR0eXBlID0+ICdiaXQnLCBwcm9hcmd0eXBlcyA9PiAnYml0IGludDQgaW50 NCcsCisgIHByb2FyZ25hbWVzID0+ICd7Yml0cywgc3RhcnQsIGNvdW50fScsCiAgIHByb3NyYyA9 PiAnYml0c3Vic3RyJyB9LAogeyBvaWQgPT4gJzE2ODEnLCBkZXNjciA9PiAnYml0c3RyaW5nIGxl bmd0aCcsCiAgIHByb25hbWUgPT4gJ2xlbmd0aCcsIHByb3JldHR5cGUgPT4gJ2ludDQnLCBwcm9h cmd0eXBlcyA9PiAnYml0JywKQEAgLTQxNDUsNiArNDE1MCw3IEBACiAgIHByb3NyYyA9PiAnYml0 cG9zaXRpb24nIH0sCiB7IG9pZCA9PiAnMTY5OScsIGRlc2NyID0+ICdleHRyYWN0IHBvcnRpb24g b2YgYml0c3RyaW5nJywKICAgcHJvbmFtZSA9PiAnc3Vic3RyaW5nJywgcHJvcmV0dHlwZSA9PiAn Yml0JywgcHJvYXJndHlwZXMgPT4gJ2JpdCBpbnQ0JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tiaXRz LCBzdGFydH0nLAogICBwcm9zcmMgPT4gJ2JpdHN1YnN0cl9ub19sZW4nIH0sCiAKIHsgb2lkID0+ ICczMDMwJywgZGVzY3IgPT4gJ3N1YnN0aXR1dGUgcG9ydGlvbiBvZiBiaXRzdHJpbmcnLApAQCAt NjIzOSwxNSArNjI0NSwxOSBAQAogICBwcm9zcmMgPT4gJ2J5dGVhY2F0JyB9LAogeyBvaWQgPT4g JzIwMTInLCBkZXNjciA9PiAnZXh0cmFjdCBwb3J0aW9uIG9mIHN0cmluZycsCiAgIHByb25hbWUg PT4gJ3N1YnN0cmluZycsIHByb3JldHR5cGUgPT4gJ2J5dGVhJywKKyAgcHJvYXJnbmFtZXMgPT4g J3tieXRlcywgc3RhcnQsIGNvdW50fScsCiAgIHByb2FyZ3R5cGVzID0+ICdieXRlYSBpbnQ0IGlu dDQnLCBwcm9zcmMgPT4gJ2J5dGVhX3N1YnN0cicgfSwKIHsgb2lkID0+ICcyMDEzJywgZGVzY3Ig PT4gJ2V4dHJhY3QgcG9ydGlvbiBvZiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICdzdWJzdHJpbmcn LCBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ICdieXRlYSBpbnQ0JywKKyAg cHJvYXJnbmFtZXMgPT4gJ3tieXRlcywgc3RhcnR9JywKICAgcHJvc3JjID0+ICdieXRlYV9zdWJz dHJfbm9fbGVuJyB9LAogeyBvaWQgPT4gJzIwODUnLCBkZXNjciA9PiAnZXh0cmFjdCBwb3J0aW9u IG9mIHN0cmluZycsCiAgIHByb25hbWUgPT4gJ3N1YnN0cicsIHByb3JldHR5cGUgPT4gJ2J5dGVh JywgcHJvYXJndHlwZXMgPT4gJ2J5dGVhIGludDQgaW50NCcsCisgIHByb2FyZ25hbWVzID0+ICd7 Ynl0ZXMsIHN0YXJ0LCBjb3VudH0nLAogICBwcm9zcmMgPT4gJ2J5dGVhX3N1YnN0cicgfSwKIHsg b2lkID0+ICcyMDg2JywgZGVzY3IgPT4gJ2V4dHJhY3QgcG9ydGlvbiBvZiBzdHJpbmcnLAogICBw cm9uYW1lID0+ICdzdWJzdHInLCBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ ICdieXRlYSBpbnQ0JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tieXRlcywgc3RhcnR9JywKICAgcHJv c3JjID0+ICdieXRlYV9zdWJzdHJfbm9fbGVuJyB9LAogeyBvaWQgPT4gJzIwMTQnLCBkZXNjciA9 PiAncG9zaXRpb24gb2Ygc3Vic3RyaW5nJywKICAgcHJvbmFtZSA9PiAncG9zaXRpb24nLCBwcm9y ZXR0eXBlID0+ICdpbnQ0JywgcHJvYXJndHlwZXMgPT4gJ2J5dGVhIGJ5dGVhJywKQEAgLTY0MzYs OSArNjQ0NiwxMSBAQAogCiB7IG9pZCA9PiAnMjA3MycsIGRlc2NyID0+ICdleHRyYWN0IHRleHQg bWF0Y2hpbmcgcmVndWxhciBleHByZXNzaW9uJywKICAgcHJvbmFtZSA9PiAnc3Vic3RyaW5nJywg cHJvcmV0dHlwZSA9PiAndGV4dCcsIHByb2FyZ3R5cGVzID0+ICd0ZXh0IHRleHQnLAorICBwcm9h cmduYW1lcyA9PiAne3N0cmluZywgcGF0dGVybn0nLAogICBwcm9zcmMgPT4gJ3RleHRyZWdleHN1 YnN0cicgfSwKIHsgb2lkID0+ICcyMDc0JywgZGVzY3IgPT4gJ2V4dHJhY3QgdGV4dCBtYXRjaGlu ZyBTUUwgcmVndWxhciBleHByZXNzaW9uJywKICAgcHJvbmFtZSA9PiAnc3Vic3RyaW5nJywgcHJv bGFuZyA9PiAnc3FsJywgcHJvcmV0dHlwZSA9PiAndGV4dCcsCisgIHByb2FyZ25hbWVzID0+ICd7 c3RyaW5nLCBwYXR0ZXJuLCBlc2NhcGVfY2hhcmFjdGVyfScsCiAgIHByb2FyZ3R5cGVzID0+ICd0 ZXh0IHRleHQgdGV4dCcsIHByb3NyYyA9PiAnc2VlIHN5c3RlbV9mdW5jdGlvbnMuc3FsJyB9LAog CiB7IG9pZCA9PiAnMjA3NScsIGRlc2NyID0+ICdjb252ZXJ0IGludDggdG8gYml0c3RyaW5nJywK LS0gCjIuMzQuMQoK --00000000000056bf790631aadc57 Content-Type: text/x-patch; charset="US-ASCII"; name="v4-0002-v3-0002-delta.patch" Content-Disposition: attachment; filename="v4-0002-v3-0002-delta.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m8xmqmav1 RnJvbSAxODJmMGI0NDdkNzg2MGZlNWRiNjI4NjNkYTBkN2Y1ODJhMGFiZmI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgRy4gSm9obnN0b24iIDxEYXZpZC5HLkpvaG5zdG9u QEdtYWlsLmNvbT4KRGF0ZTogTW9uLCAzMSBNYXIgMjAyNSAxNToxMDoyOCAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMi8yXSB2MyAwMDAyIGRlbHRhCgotLS0KIGRvYy9zcmMvc2dtbC9mdW5jLnNnbWwg ICAgICAgICAgICAgICAgICAgfCA0OSArKysrKysrKysrKystLS0tLS0tLS0tLS0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9ucy5zcWwgfCAgMiArLQogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICB8ICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDI2IGlu c2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9m dW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4IGU0Yzk1ZjFlODguLmI1ZTMx NWMxN2IgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2Z1bmMuc2dtbApAQCAtMjgzNyw3ICsyODM3LDggQEAgU0VMRUNUIE5PVChST1codGFibGUu KikgSVMgTk9UIE5VTEwpIEZST00gVEFCTEU7IC0tIGRldGVjdCBhdCBsZWFzdCBvbmUgbnVsbCBp bgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgRXh0cmFjdHMgdGhlIGZp cnN0IHN1YnN0cmluZyBtYXRjaGluZyBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb247IHNlZQotICAg ICAgICA8eHJlZiBsaW5rZW5kPSJmdW5jdGlvbnMtcG9zaXgtcmVnZXhwIi8+LgorICAgICAgICA8 eHJlZiBsaW5rZW5kPSJmdW5jdGlvbnMtcG9zaXgtcmVnZXhwIi8+LiAgKFNhbWUgYXMKKyAgICAg ICAgPGxpdGVyYWw+c3Vic3RyaW5nKHN0cmluZyB0ZXh0LCBwYXR0ZXJuIHRleHQpPC9saXRlcmFs Pi4pCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICA8bGl0ZXJhbD5zdWJz dHJpbmcoJ1Rob21hcycgZnJvbSAnLi4uJCcpPC9saXRlcmFsPgpAQCAtMjg1MCwyMCArMjg1MSwy MCBAQCBTRUxFQ1QgTk9UKFJPVyh0YWJsZS4qKSBJUyBOT1QgTlVMTCkgRlJPTSBUQUJMRTsgLS0g ZGV0ZWN0IGF0IGxlYXN0IG9uZSBudWxsIGluCiAgICAgICAgIDxmdW5jdGlvbj5zdWJzdHJpbmc8 L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c3RyaW5nPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5 cGU+IDxsaXRlcmFsPlNJTUlMQVI8L2xpdGVyYWw+IDxwYXJhbWV0ZXI+cGF0dGVybjwvcGFyYW1l dGVyPiA8dHlwZT50ZXh0PC90eXBlPiA8bGl0ZXJhbD5FU0NBUEU8L2xpdGVyYWw+IDxwYXJhbWV0 ZXI+ZXNjYXBlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKICAgICAgICAgPHJldHVy bnZhbHVlPnRleHQ8L3JldHVybnZhbHVlPgogICAgICAgIDwvcGFyYT4KLSAgICAgICA8cGFyYSBy b2xlPSJmdW5jX3NpZ25hdHVyZSI+PHM+Ci0gICAgICAgIDxmdW5jdGlvbj5zdWJzdHJpbmc8L2Z1 bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c3RyaW5nPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ IDxsaXRlcmFsPkZST008L2xpdGVyYWw+IDxwYXJhbWV0ZXI+cGF0dGVybjwvcGFyYW1ldGVyPiA8 dHlwZT50ZXh0PC90eXBlPiA8bGl0ZXJhbD5GT1I8L2xpdGVyYWw+IDxwYXJhbWV0ZXI+ZXNjYXBl PC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKLSAgICAgICAgPHJldHVybnZhbHVlPnRl eHQ8L3JldHVybnZhbHVlPjwvcz4KLSAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAg ICAgIEV4dHJhY3RzIHRoZSBmaXJzdCBzdWJzdHJpbmcgbWF0Y2hpbmcgPGFjcm9ueW0+U1FMPC9h Y3JvbnltPiByZWd1bGFyIGV4cHJlc3Npb247Ci0gICAgICAgIHNlZSA8eHJlZiBsaW5rZW5kPSJm dW5jdGlvbnMtc2ltaWxhcnRvLXJlZ2V4cCIvPi4gIFRoZSBmaXJzdCBmb3JtIGhhcwotICAgICAg ICBiZWVuIHNwZWNpZmllZCBzaW5jZSBTUUw6MjAwMzsgdGhlIHNlY29uZCBmb3JtIHdhcyBvbmx5 IGluIFNRTDoxOTk5Ci0gICAgICAgIGFuZCBzaG91bGQgYmUgY29uc2lkZXJlZCBvYnNvbGV0ZS4K KyAgICAgICAgc2VlIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9ucy1zaW1pbGFydG8tcmVnZXhwIi8+ LiAgKFNhbWUgYXMKKyAgICAgICAgPGxpdGVyYWw+c3Vic3RyaW5nKHN0cmluZyB0ZXh0LCBwYXR0 ZXJuIHRleHQsIGVzY2FwZSB0ZXh0KTwvbGl0ZXJhbD4uKQogICAgICAgIDwvcGFyYT4KICAgICAg ICA8cGFyYT4KICAgICAgICAgPGxpdGVyYWw+c3Vic3RyaW5nKCdUaG9tYXMnIHNpbWlsYXIgJyUj Im9fYSMiXycgZXNjYXBlICcjJyk8L2xpdGVyYWw+CiAgICAgICAgIDxyZXR1cm52YWx1ZT5vbWE8 L3JldHVybnZhbHVlPgotICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgIDwvcGFyYT4KKyAg ICAgICA8cGFyYT4KKyAgICAgICAgT2Jzb2xlc2NlbmNlIG5vdGU6IFNRTDoxOTk5IGludHJvZHVj ZWQgdGhpcyBmdW5jdGlvbiB3aXRoIDxsaXRlcmFsPkZST008L2xpdGVyYWw+CisgICAgICAgIGFu ZCA8bGl0ZXJhbD5GT1I8L2xpdGVyYWw+IGFzIHRoZSBrZXl3b3JkcyBidXQgc3dpdGNoZWQgdG8g dGhpcyBpbiBTUUw6MjAwMy4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPC9lbnRyeT4KICAgICAg IDwvcm93PgogCiAgICAgICA8cm93PgpAQCAtMzgxNCw3ICszODE1LDggQEAgU0VMRUNUIE5PVChS T1codGFibGUuKikgSVMgTk9UIE5VTEwpIEZST00gVEFCTEU7IC0tIGRldGVjdCBhdCBsZWFzdCBv bmUgbnVsbCBpbgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgRXh0cmFj dHMgdGhlIGZpcnN0IHN1YnN0cmluZyBtYXRjaGluZyBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb247 IHNlZQotICAgICAgICA8eHJlZiBsaW5rZW5kPSJmdW5jdGlvbnMtcG9zaXgtcmVnZXhwIi8+Lgor ICAgICAgICA8eHJlZiBsaW5rZW5kPSJmdW5jdGlvbnMtcG9zaXgtcmVnZXhwIi8+LiAgKFNhbWUg YXMKKyAgICAgICAgPGxpdGVyYWw+c3Vic3RyaW5nKHN0cmluZyB0ZXh0IEZST00gcGF0dGVybiB0 ZXh0KTwvbGl0ZXJhbD4uKQogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAg PGxpdGVyYWw+c3Vic3RyaW5nKCdUaG9tYXMnLCAnLi4uJCcpPC9saXRlcmFsPgpAQCAtMzgyNCwx MiArMzgyNiwxMyBAQCBTRUxFQ1QgTk9UKFJPVyh0YWJsZS4qKSBJUyBOT1QgTlVMTCkgRlJPTSBU QUJMRTsgLS0gZGV0ZWN0IGF0IGxlYXN0IG9uZSBudWxsIGluCiAKICAgICAgIDxyb3c+CiAgICAg ICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0 dXJlIj4KLSAgICAgICAgPGZ1bmN0aW9uPnN1YnN0cmluZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRl cj5zdHJpbmc8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4sIDxwYXJhbWV0ZXI+cGF0dGVy bjwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiwgPHBhcmFtZXRlcj5lc2NhcGVfY2hhcmFj dGVyIDwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPikKKyAgICAgICAgPGZ1bmN0aW9uPnN1 YnN0cmluZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zdHJpbmc8L3BhcmFtZXRlcj4gPHR5cGU+ dGV4dDwvdHlwZT4sIDxwYXJhbWV0ZXI+cGF0dGVybjwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90 eXBlPiwgPHBhcmFtZXRlcj5lc2NhcGUgPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+KQog ICAgICAgICA8cmV0dXJudmFsdWU+dGV4dDwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJhPgog ICAgICAgIDxwYXJhPgogICAgICAgICBFeHRyYWN0cyB0aGUgZmlyc3Qgc3Vic3RyaW5nIG1hdGNo aW5nIDxhY3JvbnltPlNRTDwvYWNyb255bT4gcmVndWxhciBleHByZXNzaW9uOwotICAgICAgICBz ZWUgPHhyZWYgbGlua2VuZD0iZnVuY3Rpb25zLXNpbWlsYXJ0by1yZWdleHAiLz4uCisgICAgICAg IHNlZSA8eHJlZiBsaW5rZW5kPSJmdW5jdGlvbnMtc2ltaWxhcnRvLXJlZ2V4cCIvPi4gIChTYW1l IGFzCisgICAgICAgIDxsaXRlcmFsPnN1YnN0cmluZyhzdHJpbmcgdGV4dCBTSU1JTEFSIHBhdHRl cm4gdGV4dCBFU0NBUEUgZXNjYXBlIHRleHQpPC9saXRlcmFsPi4pCiAgICAgICAgPC9wYXJhPgog ICAgICAgIDxwYXJhPgogICAgICAgICA8bGl0ZXJhbD5zdWJzdHJpbmcoJ1Rob21hcycsICclIyJv X2EjIl8nLCAnIycpPC9saXRlcmFsPgpAQCAtNTU5Myw4ICs1NTk2LDggQEAgY2FzdCgtNDQgYXMg Yml0KDEyKSkgICAgICAgICAgIDxsaW5lYW5ub3RhdGlvbj4xMTExMTEwMTAxMDA8L2xpbmVhbm5v dGF0aW9uPgogICAgPC9pbmRleHRlcm0+CiAKIDxzeW5vcHNpcz4KLTxyZXBsYWNlYWJsZT5zdHJp bmc8L3JlcGxhY2VhYmxlPiBMSUtFIDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4g PG9wdGlvbmFsPkVTQ0FQRSA8cmVwbGFjZWFibGU+ZXNjYXBlLWNoYXJhY3RlcjwvcmVwbGFjZWFi bGU+PC9vcHRpb25hbD4KLTxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiBOT1QgTElL RSA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD5FU0NBUEUgPHJl cGxhY2VhYmxlPmVzY2FwZS1jaGFyYWN0ZXI8L3JlcGxhY2VhYmxlPjwvb3B0aW9uYWw+Cis8cmVw bGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4gTElLRSA8cmVwbGFjZWFibGU+cGF0dGVybjwv cmVwbGFjZWFibGU+IDxvcHRpb25hbD5FU0NBUEUgPHJlcGxhY2VhYmxlPmVzY2FwZTwvcmVwbGFj ZWFibGU+PC9vcHRpb25hbD4KKzxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiBOT1Qg TElLRSA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD5FU0NBUEUg PHJlcGxhY2VhYmxlPmVzY2FwZTwvcmVwbGFjZWFibGU+PC9vcHRpb25hbD4KIDwvc3lub3BzaXM+ CiAKICAgICA8cGFyYT4KQEAgLTU3NjYsOCArNTc2OSw4IEBAIGNhc3QoLTQ0IGFzIGJpdCgxMikp ICAgICAgICAgICA8bGluZWFubm90YXRpb24+MTExMTExMDEwMTAwPC9saW5lYW5ub3RhdGlvbj4K ICAgIDwvaW5kZXh0ZXJtPgogCiA8c3lub3BzaXM+Ci08cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBs YWNlYWJsZT4gU0lNSUxBUiBUTyA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+IDxv cHRpb25hbD5FU0NBUEUgPHJlcGxhY2VhYmxlPmVzY2FwZS1jaGFyYWN0ZXI8L3JlcGxhY2VhYmxl Pjwvb3B0aW9uYWw+Ci08cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4gTk9UIFNJTUlM QVIgVE8gPHJlcGxhY2VhYmxlPnBhdHRlcm48L3JlcGxhY2VhYmxlPiA8b3B0aW9uYWw+RVNDQVBF IDxyZXBsYWNlYWJsZT5lc2NhcGUtY2hhcmFjdGVyPC9yZXBsYWNlYWJsZT48L29wdGlvbmFsPgor PHJlcGxhY2VhYmxlPnN0cmluZzwvcmVwbGFjZWFibGU+IFNJTUlMQVIgVE8gPHJlcGxhY2VhYmxl PnBhdHRlcm48L3JlcGxhY2VhYmxlPiA8b3B0aW9uYWw+RVNDQVBFIDxyZXBsYWNlYWJsZT5lc2Nh cGU8L3JlcGxhY2VhYmxlPjwvb3B0aW9uYWw+Cis8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNl YWJsZT4gTk9UIFNJTUlMQVIgVE8gPHJlcGxhY2VhYmxlPnBhdHRlcm48L3JlcGxhY2VhYmxlPiA8 b3B0aW9uYWw+RVNDQVBFIDxyZXBsYWNlYWJsZT5lc2NhcGU8L3JlcGxhY2VhYmxlPjwvb3B0aW9u YWw+CiA8L3N5bm9wc2lzPgogCiAgICA8cGFyYT4KQEAgLTU5MDEsMTUgKzU5MDQsMTEgQEAgY2Fz dCgtNDQgYXMgYml0KDEyKSkgICAgICAgICAgIDxsaW5lYW5ub3RhdGlvbj4xMTExMTEwMTAxMDA8 L2xpbmVhbm5vdGF0aW9uPgogICAgIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuLiAgVGhlIGZ1 bmN0aW9uIGNhbiBiZSB3cml0dGVuIGFjY29yZGluZwogICAgIHRvIHN0YW5kYXJkIFNRTCBzeW50 YXg6CiA8c3lub3BzaXM+Ci1zdWJzdHJpbmcoPHJlcGxhY2VhYmxlPnN0cmluZzwvcmVwbGFjZWFi bGU+IHNpbWlsYXIgPHJlcGxhY2VhYmxlPnBhdHRlcm48L3JlcGxhY2VhYmxlPiBlc2NhcGUgPHJl cGxhY2VhYmxlPmVzY2FwZS1jaGFyYWN0ZXI8L3JlcGxhY2VhYmxlPikKLTwvc3lub3BzaXM+Ci0g ICAgb3IgdXNpbmcgdGhlIG5vdyBvYnNvbGV0ZSBTUUw6MTk5OSBzeW50YXg6Ci08c3lub3BzaXM+ Ci1zdWJzdHJpbmcoPHJlcGxhY2VhYmxlPnN0cmluZzwvcmVwbGFjZWFibGU+IGZyb20gPHJlcGxh Y2VhYmxlPnBhdHRlcm48L3JlcGxhY2VhYmxlPiBmb3IgPHJlcGxhY2VhYmxlPmVzY2FwZS1jaGFy YWN0ZXI8L3JlcGxhY2VhYmxlPikKK3N1YnN0cmluZyg8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBs YWNlYWJsZT4gU0lNSUxBUiA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+IEVTQ0FQ RSA8cmVwbGFjZWFibGU+ZXNjYXBlPC9yZXBsYWNlYWJsZT4pCiA8L3N5bm9wc2lzPgotICAgIG9y IGFzIGEgcGxhaW4gdGhyZWUtYXJndW1lbnQgZnVuY3Rpb246CisgICAgSXQgY2FuIGFsc28gd3Jp dHRlbiBhcyBhIHBsYWluIHRocmVlLWFyZ3VtZW50IGZ1bmN0aW9uOgogPHN5bm9wc2lzPgotc3Vi c3RyaW5nKDxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlPnBh dHRlcm48L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlPmVzY2FwZV9jaGFyYWN0ZXI8L3JlcGxh Y2VhYmxlPikKK3N1YnN0cmluZyg8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4sIDxy ZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZT5lc2NhcGU8L3Jl cGxhY2VhYmxlPikKIDwvc3lub3BzaXM+CiAgICAgQXMgd2l0aCA8bGl0ZXJhbD5TSU1JTEFSIFRP PC9saXRlcmFsPiwgdGhlCiAgICAgc3BlY2lmaWVkIHBhdHRlcm4gbXVzdCBtYXRjaCB0aGUgZW50 aXJlIGRhdGEgc3RyaW5nLCBvciBlbHNlIHRoZQpAQCAtNjExNSw5ICs2MTE0LDkgQEAgc3Vic3Ry aW5nKCdmb29iYXInIHNpbWlsYXIgJyMib19iIyIlJyBlc2NhcGUgJyMnKSAgICA8bGluZWFubm90 YXRpb24+TlVMTDwvbGluZWEKICAgICA8cGFyYT4KICAgICAgVGhlIDxmdW5jdGlvbj5zdWJzdHJp bmc8L2Z1bmN0aW9uPiBmdW5jdGlvbiB3aXRoIHR3byBwYXJhbWV0ZXJzIHByb3ZpZGVzIGV4dHJh Y3Rpb24gb2YgYQogICAgICBzdWJzdHJpbmcgdGhhdCBtYXRjaGVzIGEgUE9TSVggcmVndWxhciBl eHByZXNzaW9uIHBhdHRlcm4uCi0gICAgIEl0IGhhcyBzeW50YXg6CisgICAgIFRoZSBmdW5jdGlv biBjYW4gYmUgd3JpdHRlbiBhY2NvcmRpbmcgdG8gc3RhbmRhcmQgU1FMIHN5bnRheDoKIDxzeW5v cHNpcz4KLXN1YnN0cmluZyg8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4gZnJvbSA8 cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+KQorc3Vic3RyaW5nKDxyZXBsYWNlYWJs ZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiBGUk9NIDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNl YWJsZT4pCiA8L3N5bm9wc2lzPgogICAgICBJdCBjYW4gYWxzbyB3cml0dGVuIGFzIGEgcGxhaW4g dHdvLWFyZ3VtZW50IGZ1bmN0aW9uOgogPHN5bm9wc2lzPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX2Z1bmN0aW9ucy5zcWwKaW5kZXggNWVhOWQ3ODZiNi4uNTQ0YjU0OWFlNyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbAorKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCkBAIC00Miw3ICs0Miw3IEBAIENSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHJwYWQodGV4dCwgaW50ZWdlcikKICBJTU1VVEFCTEUgUEFS QUxMRUwgU0FGRSBTVFJJQ1QgQ09TVCAxCiBSRVRVUk4gcnBhZCgkMSwgJDIsICcgJyk7CiAKLUNS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OICJzdWJzdHJpbmciKHN0cmluZyB0ZXh0LCBwYXR0ZXJu IHRleHQsIGVzY2FwZV9jaGFyYWN0ZXIgdGV4dCkKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O ICJzdWJzdHJpbmciKHN0cmluZyB0ZXh0LCBwYXR0ZXJuIHRleHQsIGVzY2FwZSB0ZXh0KQogIFJF VFVSTlMgdGV4dAogIExBTkdVQUdFIHNxbAogIElNTVVUQUJMRSBQQVJBTExFTCBTQUZFIFNUUklD VCBDT1NUIDEKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDg3ZTMwMDZmZWYuLjUyNjdmMDZh ZWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNjQ1MCw3ICs2NDUwLDcgQEAKICAgcHJv c3JjID0+ICd0ZXh0cmVnZXhzdWJzdHInIH0sCiB7IG9pZCA9PiAnMjA3NCcsIGRlc2NyID0+ICdl eHRyYWN0IHRleHQgbWF0Y2hpbmcgU1FMIHJlZ3VsYXIgZXhwcmVzc2lvbicsCiAgIHByb25hbWUg PT4gJ3N1YnN0cmluZycsIHByb2xhbmcgPT4gJ3NxbCcsIHByb3JldHR5cGUgPT4gJ3RleHQnLAot ICBwcm9hcmduYW1lcyA9PiAne3N0cmluZywgcGF0dGVybiwgZXNjYXBlX2NoYXJhY3Rlcn0nLAor ICBwcm9hcmduYW1lcyA9PiAne3N0cmluZywgcGF0dGVybiwgZXNjYXBlfScsCiAgIHByb2FyZ3R5 cGVzID0+ICd0ZXh0IHRleHQgdGV4dCcsIHByb3NyYyA9PiAnc2VlIHN5c3RlbV9mdW5jdGlvbnMu c3FsJyB9LAogCiB7IG9pZCA9PiAnMjA3NScsIGRlc2NyID0+ICdjb252ZXJ0IGludDggdG8gYml0 c3RyaW5nJywKLS0gCjIuMzQuMQoK --00000000000056bf790631aadc57--