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 1rUv3q-00Dnvz-BW for pgsql-docs@arkaria.postgresql.org; Tue, 30 Jan 2024 20:50:27 +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 1rUv3o-009Z1c-4W for pgsql-docs@arkaria.postgresql.org; Tue, 30 Jan 2024 20:50:24 +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 1rUv3n-009Z1S-J2 for pgsql-docs@lists.postgresql.org; Tue, 30 Jan 2024 20:50:23 +0000 Received: from mail-oo1-xc2f.google.com ([2607:f8b0:4864:20::c2f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rUv3j-004D4h-SM for pgsql-docs@postgresql.org; Tue, 30 Jan 2024 20:50:22 +0000 Received: by mail-oo1-xc2f.google.com with SMTP id 006d021491bc7-59505514213so121848eaf.0 for ; Tue, 30 Jan 2024 12:50:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706647819; x=1707252619; 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=9cq9suNk2NA8RmW74DyAi/08S1TvaqvvF4EBsaX9N0c=; b=dsuUQb+6563DlkQfxSbaZsVmJGlAhHQZxTCiiP7nMdtuGir770D2R87XHM1BPEc7IB JM+bgyeKDQFPq101zzPzbNJhmCwZHKCY05BghtQzeH4p+NkEn/wJ1RsLb+ooEs/aIcug MytZbe6WdxgzIcS4Mf0I126nBiMkuaVyxu+Ehb+3EuDdLof+/mczdO89gTj1zDlr302c s+7w3UxnG4HwxLkjNJHMU8XumXZuaPNF+S9Sc9ytbqRo5Ck7DveaBUOjvHwY2RLA4As1 3m8b8U5TulXVjUjEhTqSvzEgiy0y4ERk0tNPxt2OX5cuw+ibLdRaAGzL72d2wlNQtsO5 MTEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706647819; x=1707252619; 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=9cq9suNk2NA8RmW74DyAi/08S1TvaqvvF4EBsaX9N0c=; b=XUGIlhbB6ap477FWvLtSLbA0H304RUbsle+9F66XnEXTnfd4qmnmE/13+CrLItgPYB Wm+Kgorbio1jT4TXnn2h8POff4EMHhCy8KN5xQvnHpnrDqj0WOfwZiS8EyN4J1YOlqPr dKkHlBZktSQalp3NzpvUtnrAUhwc2GfeWizfdv9DzWcsPDD8kIDJnUFpwKGHeG+aNVza ZHwcZDmV++LcS0I4nzH3H7/sK7z3LQh4o+bcnHmHUbA//lFnbiE95DQHYgmzo89JiRk9 2N2OCBpbkBXnI5ufZotqnfvVadR8iOMAIym9D9stn+7vsZPSZHAyMpAwZ896rxt2bYzh O0LQ== X-Gm-Message-State: AOJu0YzR+9KYg9E48dAUlcLmI0VojN5Bw92JKDfu7qOI18RVq0vbsSXN qXiepc2RG28+A1hSJXcJt3lbBCtGfBjg/cTyJf7XZrCgMZ3MYdaNFy+qalUEQgNG8NsrOwvpYSU AuoVf3Ej/8Y1zzMXj4oLUZBE1lc0= X-Google-Smtp-Source: AGHT+IE0mQYDsM7vTb3gkXwjRH3Wj2kazxAgfQUUhoo9rBqm7058kRGm7pLThxATwtU97XYX7rEj/0XI0akFCYn4AQ8= X-Received: by 2002:a05:6820:1010:b0:59a:28b4:e429 with SMTP id v16-20020a056820101000b0059a28b4e429mr788638oor.1.1706647819161; Tue, 30 Jan 2024 12:50:19 -0800 (PST) MIME-Version: 1.0 References: <8e1b78c8ad45febf2e530e1f7508ee01c68bf2ef.camel@cybertec.at> In-Reply-To: From: "David G. Johnston" Date: Tue, 30 Jan 2024 13:49:42 -0700 Message-ID: Subject: Re: CREATE ROLE inheritance details To: Bruce Momjian Cc: Laurenz Albe , PostgreSQL-documentation , Robert Haas Content-Type: multipart/mixed; boundary="00000000000005039306102fe9cd" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000005039306102fe9cd Content-Type: multipart/alternative; boundary="00000000000005039006102fe9cb" --00000000000005039006102fe9cb Content-Type: text/plain; charset="UTF-8" Almost there I think. The comment regarding seeing GRANT really applies to IN ROLE, ROLE, and ADMIN. Repeating it seemed a poor choice and upon thinking further it really makes sense to consider how this command and GRANT work together part of the description of create role. So I moved that commentary to a new description paragraph. diff --git a/doc/src/sgml/ref/create_role.sgml b/doc/src/sgml/ref/create_role.sgml index d0d3d7ed64..f3b89e7239 100644 --- a/doc/src/sgml/ref/create_role.sgml +++ b/doc/src/sgml/ref/create_role.sgml @@ -66,6 +66,17 @@ in sync when changing the above synopsis! Note that roles are defined at the database cluster level, and so are valid in all databases in the cluster. + + + During role creation it is possible to immediately assign the newly created + role to be a member of an existing role, and also assign existing roles + to be members of the newly created role. The rules for which initial + role membership options are enabled are described below in the + IN ROLE, ROLE, and + ADMIN clauses. Alternatively, the + command has fine-grained option control during membership creation, + and also the ability to modify these options after the new role is created. + @@ -285,10 +296,7 @@ in sync when changing the above synopsis! roles. The new membership will have the SET option enabled and the ADMIN option disabled. The INHERIT option will be enabled unless the - NOINHERIT option is specified. See the command, which has additional option - control during membership creation and to modify these options - after the new role is created. + NOINHERIT option is specified. And then fixed up one last instance of attribute/option specification. I left the term " membership inheritance status" alone in the attribute description since that really does refer to the concept and neither the specific attribute here nor the membership option. All of the other references seemed better of being specific to the feature and not the behavior. @@ -301,9 +309,9 @@ in sync when changing the above synopsis! existing roles to be automatically added as members, with the SET option enabled. This in effect makes the new role a group. Roles named in this clause - with role-level INHERIT options will have - INHERIT enabled in the new membership. New - memberships will have the ADMIN option disabled. + with role-level the INHERIT attribute will have + the INHERIT option enabled in the new membership. + New memberships will have the ADMIN option disabled. The omission of an option during membership modification results in no change, not applying the default, applies to all three, not just inherit. Again, instead of documenting all three with this it seemed preferable to add it once somewhere - in this case the paragraph that talks about the option mode values seems appropriate. diff --git a/doc/src/sgml/ref/grant.sgml b/doc/src/sgml/ref/grant.sgml index ee53871713..9d27b7fcde 100644 --- a/doc/src/sgml/ref/grant.sgml +++ b/doc/src/sgml/ref/grant.sgml @@ -266,7 +266,9 @@ GRANT role_name [, ...] TO TRUE or FALSE. The keyword OPTION is accepted as a synonym for TRUE, so that WITH ADMIN OPTION - is a synonym for WITH ADMIN TRUE. + is a synonym for WITH ADMIN TRUE. When altering + an existing membership the omission of an option results in the current + value being retained. And some final touch-ups; including removing the now redundant omission sentence for inherit. @@ -280,14 +282,13 @@ GRANT role_name [, ...] TO - The INHERIT attribute controls the inheritance status + The INHERIT option controls the inheritance status of the new membership; see for details on inheritance. If it is set to TRUE, it causes the new member to inherit from the granted role. If set to FALSE, the new member does not inherit. - If unspecified, new role membership defaults to the inheritance status - of the role being added. If an existing membership, the inheritance - option is unchanged. + If unspecified when creating a new role membership this defaults to + the inheritance attribute of the role being added. I've attached a revised role.diff patch as well as just the changes from the original. David J. --00000000000005039006102fe9cb Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
A= lmost there I think.=C2=A0 The comment regarding seeing GRANT really applie= s to IN ROLE, ROLE, and ADMIN.=C2=A0 Repeating it seemed a poor choice and = upon thinking further it really makes sense to consider how this command an= d GRANT work together part of the description of create role.=C2=A0 So I mo= ved that commentary to a new description paragraph.

diff --git a/doc/src/sgml/ref/create_role.sgml b/doc/src/sgml/ref/cre= ate_role.sgml
index d0d3d7ed64..f3b89e7239 100644
--- a/doc/src= /sgml/ref/create_role.sgml
+++ b/doc/src/sgml/ref/create_role.sgml
@@= -66,6 +66,17 @@ in sync when changing the above synopsis!
=C2=A0 =C2=A0= Note that roles are defined at the database cluster
=C2=A0 =C2=A0 level= , and so are valid in all databases in the cluster.
=C2=A0 =C2=A0</pa= ra>
+
+ =C2=A0<para>
+ =C2=A0 During role creation it is = possible to immediately assign the newly created
+ =C2=A0 role to be a m= ember of an existing role, and also assign existing roles
+ =C2=A0 to be= members of the newly created role.=C2=A0 The rules for which initial
+ = =C2=A0 role membership options are enabled are=C2=A0described be= low in the
+ =C2=A0 <literal>IN ROLE</literal>, <literal&= gt;ROLE</literal>, and
+ =C2=A0 <literal>ADMIN</literal&g= t; clauses. =C2=A0Alternatively, the <xref linkend=3D"sq= l-grant"/>
+ =C2=A0 command has fine-grained option control duri= ng membership creation,
+ =C2=A0 and also=C2=A0the ability to= modify these options after the new role is created.
+ =C2=A0</para&g= t;
=C2=A0 </refsect1>

=C2=A0 <refsect1>
@@ -285,10= +296,7 @@ in sync when changing the above synopsis!
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0roles. The new membership will have the <literal>SET= </literal>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0option enabled and th= e <literal>ADMIN</literal> option disabled.
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0The <literal>INHERIT</literal> option will = be enabled unless the
- =C2=A0 =C2=A0 =C2=A0 =C2=A0<literal>NOINHE= RIT</literal> option is specified.=C2=A0 See the <xref
- =C2=A0= =C2=A0 =C2=A0 =C2=A0linkend=3D"sql-grant"/> command, which ha= s additional option
- =C2=A0 =C2=A0 =C2=A0 =C2=A0control during membersh= ip creation and to modify these options
- =C2=A0 =C2=A0 =C2=A0 =C2=A0aft= er the new role is created.
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0<literal>= NOINHERIT</literal> option is specified.
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 </para>
=C2=A0 =C2=A0 =C2=A0 =C2=A0</listitem>
=C2=A0= =C2=A0 =C2=A0 </varlistentry>

And then fixed up one last instance of at= tribute/option specification.=C2=A0 I left the term "=C2=A0=C2=A0membe= rship inheritance status" alone in the attribute description since tha= t really does refer to the concept and neither the specific attribute here = nor the membership option.=C2=A0 All of the other references seemed better = of being specific to the feature and not the behavior.


@@ -301,9 +309,9 @@ in sync when changing the abo= ve synopsis!
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0existing roles to be auto= matically added as members, with the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&= lt;literal>SET</literal> option enabled. This in effect makes the<= br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0new role a <quote>group</quot= e>.=C2=A0 Roles named in this clause
- =C2=A0 =C2=A0 =C2=A0 =C2=A0wit= h role-level <literal>INHERIT</literal> options will have
- = =C2=A0 =C2=A0 =C2=A0 =C2=A0<literal>INHERIT</literal> enabled i= n the new membership.=C2=A0 New
- =C2=A0 =C2=A0 =C2=A0 =C2=A0memberships= will have the <literal>ADMIN</literal> option disabled.
+ = =C2=A0 =C2=A0 =C2=A0 =C2=A0with role-level the <literal>INHERIT</l= iteral> attribute will have
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0the <lite= ral>INHERIT</literal> option enabled in the new membership.
+ = =C2=A0 =C2=A0 =C2=A0 =C2=A0New memberships will have the <literal>ADM= IN</literal> option disabled.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 </par= a>
=C2=A0 =C2=A0 =C2=A0 =C2=A0</listitem>
=C2=A0 =C2=A0 =C2= =A0 </varlistentry>

The omission of an option during membership modifica= tion results in no change, not applying the default, applies to all three, = not just inherit.=C2=A0 Again, instead of documenting all three with this i= t seemed preferable to add it once somewhere - in this case the paragraph t= hat talks about the option mode values seems appropriate.

diff --git a/doc/src/sgml/ref/grant.sgml b/doc/src= /sgml/ref/grant.sgml
index ee53871713..9d27b7fcde 100644
--- a/doc/sr= c/sgml/ref/grant.sgml
+++ b/doc/src/sgml/ref/grant.sgml
@@ -266,7 +26= 6,9 @@ GRANT <replaceable class=3D"parameter">role_name<= /replaceable> [, ...] TO <replace
=C2=A0 =C2=A0 <literal>TRU= E</literal> or <literal>FALSE</literal>. The keyword
= =C2=A0 =C2=A0 <literal>OPTION</literal> is accepted as a synony= m for
=C2=A0 =C2=A0 <literal>TRUE</literal>, so that <lit= eral>WITH ADMIN OPTION</literal>
- =C2=A0 is a synonym for <= literal>WITH ADMIN TRUE</literal>.
+ =C2=A0 is a synonym for &l= t;literal>WITH ADMIN TRUE</literal>.=C2=A0 When altering
+ =C2= =A0 an existing membership the omission of an option results in the current=
+ =C2=A0 value being retained.
=C2=A0 =C2=A0</para>

=C2= =A0 =C2=A0<para>

And some final touch-ups; including removing the now re= dundant omission sentence for inherit.

@@ -280,14 +282,13= @@ GRANT <replaceable class=3D"parameter">role_name</re= placeable> [, ...] TO <replace
=C2=A0 =C2=A0</para>

= =C2=A0 =C2=A0<para>
- =C2=A0 The <literal>INHERIT</litera= l> attribute controls the inheritance status
+ =C2=A0 The <literal= >INHERIT</literal> option controls the inheritance status
=C2= =A0 =C2=A0 of the new membership; =C2=A0see <xref linkend=3D"role-m= embership"/> for
=C2=A0 =C2=A0 details on inheritance.=C2=A0 If = it is set to <literal>TRUE</literal>,
=C2=A0 =C2=A0 it cause= s the new member to inherit from the granted role. If
=C2=A0 =C2=A0 set = to <literal>FALSE</literal>, the new member does not inherit.- =C2=A0 If unspecified, new role membership defaults to the inheritance = status
- =C2=A0 of the role being added.=C2=A0 If an existing membership= , the inheritance
- =C2=A0 option is unchanged.
+ =C2=A0 If unspecifi= ed when creating=C2=A0a new role membership this defaults to
= + =C2=A0 the inheritance attribute of the role being added.
=C2=A0 =C2= =A0</para>

=C2=A0 =C2=A0<para>


I've attached a revised role.diff patch as well as just th= e changes from the original.

D= avid J.


--00000000000005039006102fe9cb-- --00000000000005039306102fe9cd Content-Type: text/x-patch; charset="US-ASCII"; name="0001-base-rev.patch" Content-Disposition: attachment; filename="0001-base-rev.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ls0tz9xw0 RnJvbSAxYzQ4Mzg1NmM2ZTk4YTlmNmJiZDYyN2JmMTNhOTUwYWIzZTk1ODcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgRy4gSm9obnN0b24iIDxkYXZpZC5nLmpvaG5zdG9u QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAzMCBKYW4gMjAyNCAxMzoxNzo0NyAtMDcwMApTdWJqZWN0 OiBbUEFUQ0hdIGJhc2UgcmV2CgpkZXNjcmlwdGlvbiBhZGRpdGlvbiBhbmQgdHdlYWtzCgpncmFu dCB0d2Vha3MKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9yb2xlLnNnbWwgfCA4NyArKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwg ICAgICAgfCAyOSArKysrKystLS0tLQogZG9jL3NyYy9zZ21sL3VzZXItbWFuYWcuc2dtbCAgICAg IHwgIDggKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3JvbGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3JvbGUuc2dtbAppbmRleCA4ZGQyYTYzOTVjLi5mM2I4OWU3 MjM5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9yb2xlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcm9sZS5zZ21sCkBAIC02Niw2ICs2NiwxNyBAQCBpbiBz eW5jIHdoZW4gY2hhbmdpbmcgdGhlIGFib3ZlIHN5bm9wc2lzIQogICAgTm90ZSB0aGF0IHJvbGVz IGFyZSBkZWZpbmVkIGF0IHRoZSBkYXRhYmFzZSBjbHVzdGVyCiAgICBsZXZlbCwgYW5kIHNvIGFy ZSB2YWxpZCBpbiBhbGwgZGF0YWJhc2VzIGluIHRoZSBjbHVzdGVyLgogICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBEdXJpbmcgcm9sZSBjcmVhdGlvbiBpdCBpcyBwb3NzaWJsZSB0byBpbW1lZGlh dGVseSBhc3NpZ24gdGhlIG5ld2x5IGNyZWF0ZWQKKyAgIHJvbGUgdG8gYmUgYSBtZW1iZXIgb2Yg YW4gZXhpc3Rpbmcgcm9sZSwgYW5kIGFsc28gYXNzaWduIGV4aXN0aW5nIHJvbGVzCisgICB0byBi ZSBtZW1iZXJzIG9mIHRoZSBuZXdseSBjcmVhdGVkIHJvbGUuICBUaGUgcnVsZXMgZm9yIHdoaWNo IGluaXRpYWwKKyAgIHJvbGUgbWVtYmVyc2hpcCBvcHRpb25zIGFyZSBlbmFibGVkIGRlc2NyaWJl ZCBiZWxvdyBpbiB0aGUKKyAgIDxsaXRlcmFsPklOIFJPTEU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5S T0xFPC9saXRlcmFsPiwgYW5kCisgICA8bGl0ZXJhbD5BRE1JTjwvbGl0ZXJhbD4gY2xhdXNlcy4g IFRoZSA8eHJlZiBsaW5rZW5kPSJzcWwtZ3JhbnQiLz4KKyAgIGNvbW1hbmQgaGFzIGZpbmUtZ3Jh aW5lZCBvcHRpb24gY29udHJvbCBkdXJpbmcgbWVtYmVyc2hpcCBjcmVhdGlvbiwKKyAgIGFuZCB0 aGUgYWJpbGl0eSB0byBtb2RpZnkgdGhlc2Ugb3B0aW9ucyBhZnRlciB0aGUgbmV3IHJvbGUgaXMg Y3JlYXRlZC4KKyAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CiAKICA8cmVmc2VjdDE+CkBAIC0xMzMs MjQgKzE0NCwyMSBAQCBpbiBzeW5jIHdoZW4gY2hhbmdpbmcgdGhlIGFib3ZlIHN5bm9wc2lzIQog ICAgICAgPHRlcm0+PGxpdGVyYWw+Tk9JTkhFUklUPC9saXRlcmFsPjwvdGVybT4KICAgICAgIDxs aXN0aXRlbT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgV2hlbiB0aGUgPGxpdGVyYWw+R1JBTlQ8 L2xpdGVyYWw+IHN0YXRlbWVudCBpcyB1c2VkIHRvIGNvbmZlcgotICAgICAgICBtZW1iZXJzaGlw IGluIG9uZSByb2xlIHRvIGFub3RoZXIgcm9sZSwgdGhlIDxsaXRlcmFsPkdSQU5UPC9saXRlcmFs PgotICAgICAgICBtYXkgdXNlIHRoZSA8bGl0ZXJhbD5XSVRIIElOSEVSSVQ8L2xpdGVyYWw+IGNs YXVzZSB0byBzcGVjaWZ5IHdoZXRoZXIKLSAgICAgICAgdGhlIHByaXZpbGVnZXMgb2YgdGhlIGdy YW50ZWQgcm9sZSBzaG91bGQgYmUgPHF1b3RlPmluaGVyaXRlZDwvcXVvdGU+Ci0gICAgICAgIGJ5 IHRoZSBuZXcgbWVtYmVyLiBJZiB0aGUgPGxpdGVyYWw+R1JBTlQ8L2xpdGVyYWw+IHN0YXRlbWVu dCBkb2VzIG5vdAotICAgICAgICBzcGVjaWZ5IGVpdGhlciBpbmhlcml0YW5jZSBiZWhhdmlvciwg dGhlIG5ldyA8bGl0ZXJhbD5HUkFOVDwvbGl0ZXJhbD4KLSAgICAgICAgd2lsbCBiZSBjcmVhdGVk IDxsaXRlcmFsPldJVEggSU5IRVJJVCBUUlVFPC9saXRlcmFsPiBpZiB0aGUgbWVtYmVyCi0gICAg ICAgIHJvbGUgaXMgc2V0IHRvIDxsaXRlcmFsPklOSEVSSVQ8L2xpdGVyYWw+IGFuZCB0bwotICAg ICAgICA8bGl0ZXJhbD5XSVRIIElOSEVSSVQgRkFMU0U8L2xpdGVyYWw+IGlmIGl0IGlzIHNldCB0 bwotICAgICAgICA8bGl0ZXJhbD5OT0lOSEVSSVQ8L2xpdGVyYWw+LgorICAgICAgICBUaGlzIGFm ZmVjdHMgdGhlIG1lbWJlcnNoaXAgaW5oZXJpdGFuY2Ugc3RhdHVzIHdoZW4gdGhpcworICAgICAg ICByb2xlIGlzIGFkZGVkIGFzIGEgbWVtYmVyIG9mIGFub3RoZXIgcm9sZSwgYm90aCBpbiB0aGlz IGFuZAorICAgICAgICBmdXR1cmUgY29tbWFuZHMuICBTcGVjaWZpY2FsbHksIGl0IGNvbnRyb2xz IHRoZSBpbmhlcml0YW5jZQorICAgICAgICBzdGF0dXMgb2YgbWVtYmVyc2hpcHMgYWRkZWQgd2l0 aCB0aGlzIGNvbW1hbmQgdXNpbmcgdGhlCisgICAgICAgIDxsaXRlcmFsPklOIFJPTEU8L2xpdGVy YWw+IGNsYXVzZSwgYW5kIGluIGxhdGVyIGNvbW1hbmRzIHVzaW5nCisgICAgICAgIHRoZSA8bGl0 ZXJhbD5ST0xFPC9saXRlcmFsPiBjbGF1c2UuICBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlCisgICAg ICAgIGRlZmF1bHQgaW5oZXJpdGFuY2Ugc3RhdHVzIHdoZW4gYWRkaW5nIHRoaXMgcm9sZSBhcyBh IG1lbWJlcgorICAgICAgICB1c2luZyB0aGUgPGxpdGVyYWw+R1JBTlQ8L2xpdGVyYWw+IGNvbW1h bmQuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICA8bGl0ZXJhbD5JTkhFUklUPC9saXRlcmFs PiBpcyB0aGUgZGVmYXVsdC4KICAgICAgICA8L3BhcmE+CiAKICAgICAgICA8cGFyYT4KICAgICAg ICAgSW4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiB2ZXJzaW9ucyBiZWZv cmUgMTYsCi0gICAgICAgIHRoZSA8bGl0ZXJhbD5HUkFOVDwvbGl0ZXJhbD4gc3RhdGVtZW50IGRp ZCBub3Qgc3VwcG9ydAotICAgICAgICA8bGl0ZXJhbD5XSVRIIElOSEVSSVQ8L2xpdGVyYWw+LiBU aGVyZWZvcmUsIGNoYW5naW5nIHRoaXMgcm9sZS1sZXZlbAotICAgICAgICBwcm9wZXJ0eSB3b3Vs ZCBhbHNvIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgYWxyZWFkeS1leGlzdGluZyBncmFudHMuCi0g ICAgICAgIFRoaXMgaXMgbm8gbG9uZ2VyIHRoZSBjYXNlLgorICAgICAgICBpbmhlcml0YW5jZSB3 YXMgYSByb2xlLWxldmVsIGF0dHJpYnV0ZSB0aGF0IGNvbnRyb2xsZWQgYWxsIHJ1bnRpbWUKKyAg ICAgICAgbWVtYmVyc2hpcCBjaGVja3MgZm9yIHRoYXQgcm9sZS4KICAgICAgICA8L3BhcmE+CiAg ICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTI4NSw5ICsyOTMsMTAg QEAgaW4gc3luYyB3aGVuIGNoYW5naW5nIHRoZSBhYm92ZSBzeW5vcHNpcyEKICAgICAgICA8cGFy YT4KICAgICAgICAgVGhlIDxsaXRlcmFsPklOIFJPTEU8L2xpdGVyYWw+IGNsYXVzZSBjYXVzZXMg dGhlIG5ldyByb2xlIHRvCiAgICAgICAgIGJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgYXMgYSBtZW1i ZXIgb2YgdGhlIHNwZWNpZmllZCBleGlzdGluZwotICAgICAgICByb2xlcy4gKE5vdGUgdGhhdCB0 aGVyZSBpcyBubyBvcHRpb24gdG8gYWRkIHRoZSBuZXcgcm9sZSBhcyBhbgotICAgICAgICBhZG1p bmlzdHJhdG9yOyB1c2UgYSBzZXBhcmF0ZSA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gY29tbWFu ZAotICAgICAgICB0byBkbyB0aGF0LikKKyAgICAgICAgcm9sZXMuIFRoZSBuZXcgbWVtYmVyc2hp cCB3aWxsIGhhdmUgdGhlIDxsaXRlcmFsPlNFVDwvbGl0ZXJhbD4KKyAgICAgICAgb3B0aW9uIGVu YWJsZWQgYW5kIHRoZSA8bGl0ZXJhbD5BRE1JTjwvbGl0ZXJhbD4gb3B0aW9uIGRpc2FibGVkLgor ICAgICAgICBUaGUgPGxpdGVyYWw+SU5IRVJJVDwvbGl0ZXJhbD4gb3B0aW9uIHdpbGwgYmUgZW5h YmxlZCB1bmxlc3MgdGhlCisgICAgICAgIDxsaXRlcmFsPk5PSU5IRVJJVDwvbGl0ZXJhbD4gb3B0 aW9uIGlzIHNwZWNpZmllZC4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAg ICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTI5Nyw4ICszMDYsMTIgQEAgaW4gc3luYyB3aGVuIGNoYW5n aW5nIHRoZSBhYm92ZSBzeW5vcHNpcyEKICAgICAgIDxsaXN0aXRlbT4KICAgICAgICA8cGFyYT4K ICAgICAgICAgVGhlIDxsaXRlcmFsPlJPTEU8L2xpdGVyYWw+IGNsYXVzZSBjYXVzZXMgb25lIG9y IG1vcmUgc3BlY2lmaWVkCi0gICAgICAgIGV4aXN0aW5nIHJvbGVzIHRvIGJlIGF1dG9tYXRpY2Fs bHkgYWRkZWQgYXMgbWVtYmVycyBvZiB0aGUgbmV3Ci0gICAgICAgIHJvbGUuICBUaGlzIGluIGVm ZmVjdCBtYWtlcyB0aGUgbmV3IHJvbGUgYSA8cXVvdGU+Z3JvdXA8L3F1b3RlPi4KKyAgICAgICAg ZXhpc3Rpbmcgcm9sZXMgdG8gYmUgYXV0b21hdGljYWxseSBhZGRlZCBhcyBtZW1iZXJzLCB3aXRo IHRoZQorICAgICAgICA8bGl0ZXJhbD5TRVQ8L2xpdGVyYWw+IG9wdGlvbiBlbmFibGVkLiBUaGlz IGluIGVmZmVjdCBtYWtlcyB0aGUKKyAgICAgICAgbmV3IHJvbGUgYSA8cXVvdGU+Z3JvdXA8L3F1 b3RlPi4gIFJvbGVzIG5hbWVkIGluIHRoaXMgY2xhdXNlCisgICAgICAgIHdpdGggcm9sZS1sZXZl bCB0aGUgPGxpdGVyYWw+SU5IRVJJVDwvbGl0ZXJhbD4gYXR0cmlidXRlIHdpbGwgaGF2ZQorICAg ICAgICB0aGUgPGxpdGVyYWw+SU5IRVJJVDwvbGl0ZXJhbD4gb3B0aW9uIGVuYWJsZWQgaW4gdGhl IG5ldyBtZW1iZXJzaGlwLgorICAgICAgICBOZXcgbWVtYmVyc2hpcHMgd2lsbCBoYXZlIHRoZSA8 bGl0ZXJhbD5BRE1JTjwvbGl0ZXJhbD4gb3B0aW9uIGRpc2FibGVkLgogICAgICAgIDwvcGFyYT4K ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMzA3LDEwICszMjAs MTAgQEAgaW4gc3luYyB3aGVuIGNoYW5naW5nIHRoZSBhYm92ZSBzeW5vcHNpcyEKICAgICAgIDx0 ZXJtPjxsaXRlcmFsPkFETUlOPC9saXRlcmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CiAgICAg ICAgPHBhcmE+Ci0gICAgICAgIFRoZSA8bGl0ZXJhbD5BRE1JTjwvbGl0ZXJhbD4gY2xhdXNlIGlz IGxpa2UgPGxpdGVyYWw+Uk9MRTwvbGl0ZXJhbD4sCi0gICAgICAgIGJ1dCB0aGUgbmFtZWQgcm9s ZXMgYXJlIGFkZGVkIHRvIHRoZSBuZXcgcm9sZSA8bGl0ZXJhbD5XSVRIIEFETUlOCi0gICAgICAg IE9QVElPTjwvbGl0ZXJhbD4sIGdpdmluZyB0aGVtIHRoZSByaWdodCB0byBncmFudCBtZW1iZXJz aGlwIGluIHRoaXMgcm9sZQotICAgICAgICB0byBvdGhlcnMuCisgICAgICAgIFRoZSA8bGl0ZXJh bD5BRE1JTjwvbGl0ZXJhbD4gY2xhdXNlIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMKKyAgICAgICAg PGxpdGVyYWw+Uk9MRTwvbGl0ZXJhbD4sIGJ1dCB0aGUgbmFtZWQgcm9sZXMgYXJlIGFkZGVkIGFz IG1lbWJlcnMKKyAgICAgICAgb2YgdGhlIG5ldyByb2xlIHdpdGggPGxpdGVyYWw+QURNSU48L2xp dGVyYWw+IGVuYWJsZWQsIGdpdmluZworICAgICAgICB0aGVtIHRoZSByaWdodCB0byBncmFudCBt ZW1iZXJzaGlwIGluIHRoZSBuZXcgcm9sZSB0byBvdGhlcnMuCiAgICAgICAgPC9wYXJhPgogICAg ICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0zNTMsMTUgKzM2NiwxOSBA QCBpbiBzeW5jIHdoZW4gY2hhbmdpbmcgdGhlIGFib3ZlIHN5bm9wc2lzIQogICA8L3BhcmE+CiAK ICAgPHBhcmE+Ci0gICBUaGUgPGxpdGVyYWw+SU5IRVJJVDwvbGl0ZXJhbD4gYXR0cmlidXRlIGdv dmVybnMgaW5oZXJpdGFuY2Ugb2YgZ3JhbnRhYmxlCi0gICBwcml2aWxlZ2VzICh0aGF0IGlzLCBh Y2Nlc3MgcHJpdmlsZWdlcyBmb3IgZGF0YWJhc2Ugb2JqZWN0cyBhbmQgcm9sZQotICAgbWVtYmVy c2hpcHMpLiAgSXQgZG9lcyBub3QgYXBwbHkgdG8gdGhlIHNwZWNpYWwgcm9sZSBhdHRyaWJ1dGVz IHNldCBieQotICAgPGNvbW1hbmQ+Q1JFQVRFIFJPTEU8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5B TFRFUiBST0xFPC9jb21tYW5kPi4gIEZvciBleGFtcGxlLCBiZWluZwotICAgYSBtZW1iZXIgb2Yg YSByb2xlIHdpdGggPGxpdGVyYWw+Q1JFQVRFREI8L2xpdGVyYWw+IHByaXZpbGVnZSBkb2VzIG5v dCBpbW1lZGlhdGVseQotICAgZ3JhbnQgdGhlIGFiaWxpdHkgdG8gY3JlYXRlIGRhdGFiYXNlcywg ZXZlbiBpZiA8bGl0ZXJhbD5JTkhFUklUPC9saXRlcmFsPiBpcyBzZXQ7Ci0gICBpdCB3b3VsZCBi ZSBuZWNlc3NhcnkgdG8gYmVjb21lIHRoYXQgcm9sZSB2aWEKLSAgIDxsaW5rIGxpbmtlbmQ9InNx bC1zZXQtcm9sZSI+PGNvbW1hbmQ+U0VUIFJPTEU8L2NvbW1hbmQ+PC9saW5rPiBiZWZvcmUKLSAg IGNyZWF0aW5nIGEgZGF0YWJhc2UuCisgICBUaGUgcm9sZSBhdHRyaWJ1dGVzIGRlZmluZWQgaGVy ZSBhcmUgbm9uLWluaGVyaXRhYmxlLCBpLmUuLCBiZWluZyBhCisgICBtZW1iZXIgb2YgYSByb2xl IHdpdGgsIGUuZy4sIDxsaXRlcmFsPkNSRUFURURCPC9saXRlcmFsPiB3aWxsIG5vdAorICAgYWxs b3cgdGhlIG1lbWJlciB0byBjcmVhdGUgbmV3IGRhdGFiYXNlcyBldmVuIGlmIHRoZSBtZW1iZXJz aGlwIGdyYW50CisgICBoYXMgdGhlIDxsaXRlcmFsPklOSEVSSVQ8L2xpdGVyYWw+IG9wdGlvbi4g IE9mIGNvdXJzZSwgaWYgdGhlIG1lbWJlcnNoaXAKKyAgIGdyYW50IGhhcyB0aGUgPGxpdGVyYWw+ U0VUPC9saXRlcmFsPiBvcHRpb24gdGhlIG1lbWJlciByb2xlIHdvdWxkIGJlIGFibGUgdG8KKyAg IDxsaW5rIGxpbmtlbmQ9InNxbC1zZXQtcm9sZSI+PGNvbW1hbmQ+U0VUIFJPTEU8L2NvbW1hbmQ+ PC9saW5rPiB0byB0aGUKKyAgIGNyZWF0ZWRiIHJvbGUgYW5kIHRoZW4gY3JlYXRlIGEgbmV3IGRh dGFiYXNlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgbWVtYmVyc2hpcCBncmFudHMg Y3JlYXRlZCBieSB0aGUKKyAgIDxsaXRlcmFsPklOIFJPTEU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5S T0xFPC9saXRlcmFsPiwgYW5kIDxsaXRlcmFsPkFETUlOPC9saXRlcmFsPgorICAgY2xhdXNlcyBo YXZlIHRoZSByb2xlIGV4ZWN1dGluZyB0aGlzIGNvbW1hbmQgYXMgdGhlIGdyYW50ZWUuCiAgIDwv cGFyYT4KIAogICA8cGFyYT4KQEAgLTQ2MCw4ICs0NzcsMTAgQEAgQ1JFQVRFIFJPTEUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIFdJVEggQURNSU4g PHJlcGwKIAogICA8cGFyYT4KICAgIFRoZSBiZWhhdmlvciBzcGVjaWZpZWQgYnkgdGhlIFNRTCBz dGFuZGFyZCBpcyBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVkCi0gICBieSBnaXZpbmcgdXNlcnMg dGhlIDxsaXRlcmFsPk5PSU5IRVJJVDwvbGl0ZXJhbD4gYXR0cmlidXRlLCB3aGlsZSByb2xlcyBh cmUKLSAgIGdpdmVuIHRoZSA8bGl0ZXJhbD5JTkhFUklUPC9saXRlcmFsPiBhdHRyaWJ1dGUuCisg ICBjcmVhdGluZyBTUUwtc3RhbmRhcmQgdXNlcnMgYXMgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8 L3Byb2R1Y3RuYW1lPgorICAgcm9sZXMgd2l0aCB0aGUgPGxpdGVyYWw+Tk9JTkhFUklUPC9saXRl cmFsPiBvcHRpb24sIGFuZCBTUUwtc3RhbmRhcmQKKyAgIHJvbGVzIGFzIDxwcm9kdWN0bmFtZT5Q b3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gcm9sZXMgd2l0aCB0aGUKKyAgIDxsaXRlcmFsPklOSEVS SVQ8L2xpdGVyYWw+IG9wdGlvbi4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21s CmluZGV4IDFhZTU3NzBmYmIuLjlkMjdiN2ZjZGUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvZ3JhbnQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKQEAgLTI0OSwx MSArMjQ5LDE2IEBAIEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25h bWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAKICAgPHBhcmE+CiAgICBUaGlz IHZhcmlhbnQgb2YgdGhlIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBjb21tYW5kIGdyYW50cyBt ZW1iZXJzaGlwCi0gICBpbiBhIHJvbGUgdG8gb25lIG9yIG1vcmUgb3RoZXIgcm9sZXMuICBNZW1i ZXJzaGlwIGluIGEgcm9sZSBpcyBzaWduaWZpY2FudAorICAgaW4gYSByb2xlIHRvIG9uZSBvciBt b3JlIG90aGVyIHJvbGVzLCBhbmQgdGhlIG1vZGlmaWNhdGlvbiBvZgorICAgbWVtYmVyc2hpcCBv cHRpb25zIDxsaXRlcmFsPlNFVDwvbGl0ZXJhbD4sIDxsaXRlcmFsPklOSEVSSVQ8L2xpdGVyYWw+ LAorICAgYW5kIDxsaXRlcmFsPkFETUlOPC9saXRlcmFsPjsgIHNlZSA8eHJlZiBsaW5rZW5kPSJy b2xlLW1lbWJlcnNoaXAiLz4KKyAgIGZvciBkZXRhaWxzLiAgTWVtYmVyc2hpcCBpbiBhIHJvbGUg aXMgc2lnbmlmaWNhbnQKICAgIGJlY2F1c2UgaXQgcG90ZW50aWFsbHkgYWxsb3dzIGFjY2VzcyB0 byB0aGUgcHJpdmlsZWdlcyBncmFudGVkIHRvIGEgcm9sZQogICAgdG8gZWFjaCBvZiBpdHMgbWVt YmVycywgYW5kIHBvdGVudGlhbGx5IGFsc28gdGhlIGFiaWxpdHkgdG8gbWFrZSBjaGFuZ2VzCiAg ICB0byB0aGUgcm9sZSBpdHNlbGYuIEhvd2V2ZXIsIHRoZSBhY3R1YWwgcGVybWlzc2lvbnMgY29u ZmVycmVkIGRlcGVuZCBvbgotICAgdGhlIG9wdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncmFu dC4KKyAgIHRoZSBvcHRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JhbnQuICBUbyBtb2RpZnkg dGhhdCBvcHRpb25zIG9mCisgICBhbiBleGlzdGluZyBtZW1iZXJzaGlwLCBzaW1wbHkgc3BlY2lm eSB0aGUgbWVtYmVyc2hpcCB3aXRoIHVwZGF0ZWQKKyAgIG9wdGlvbiB2YWx1ZXMuCiAgIDwvcGFy YT4KIAogICA8cGFyYT4KQEAgLTI2MSw3ICsyNjYsOSBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFj ZQogICAgPGxpdGVyYWw+VFJVRTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+RkFMU0U8L2xpdGVyYWw+ LiBUaGUga2V5d29yZAogICAgPGxpdGVyYWw+T1BUSU9OPC9saXRlcmFsPiBpcyBhY2NlcHRlZCBh cyBhIHN5bm9ueW0gZm9yCiAgICA8bGl0ZXJhbD5UUlVFPC9saXRlcmFsPiwgc28gdGhhdCA8bGl0 ZXJhbD5XSVRIIEFETUlOIE9QVElPTjwvbGl0ZXJhbD4KLSAgIGlzIGEgc3lub255bSBmb3IgPGxp dGVyYWw+V0lUSCBBRE1JTiBUUlVFPC9saXRlcmFsPi4KKyAgIGlzIGEgc3lub255bSBmb3IgPGxp dGVyYWw+V0lUSCBBRE1JTiBUUlVFPC9saXRlcmFsPi4gIFdoZW4gYWx0ZXJpbmcKKyAgIGFuIGV4 aXN0aW5nIG1lbWJlcnNoaXAgdGhlIG9taXNzaW9uIG9mIGFuIG9wdGlvbiByZXN1bHRzIGluIHRo ZSBjdXJyZW50CisgICB2YWx1ZSBiZWluZyByZXRhaW5lZC4KICAgPC9wYXJhPgogCiAgIDxwYXJh PgpAQCAtMjc1LDE1ICsyODIsMTMgQEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAgPC9wYXJh PgogCiAgIDxwYXJhPgotICAgVGhlIDxsaXRlcmFsPklOSEVSSVQ8L2xpdGVyYWw+IG9wdGlvbiwg aWYgaXQgaXMgc2V0IHRvCi0gICA8bGl0ZXJhbD5UUlVFPC9saXRlcmFsPiwgY2F1c2VzIHRoZSBt ZW1iZXIgdG8gaW5oZXJpdCB0aGUgcHJpdmlsZWdlcyBvZgotICAgdGhlIGdyYW50ZWQgcm9sZS4g VGhhdCBpcywgaXQgY2FuIGF1dG9tYXRpY2FsbHkgdXNlIHdoYXRldmVyIGRhdGFiYXNlCi0gICBw cml2aWxlZ2VzIGhhdmUgYmVlbiBncmFudGVkIHRvIHRoYXQgcm9sZS4gSWYgc2V0IHRvCi0gICA8 bGl0ZXJhbD5GQUxTRTwvbGl0ZXJhbD4sIHRoZSBtZW1iZXIgZG9lcyBub3QgaW5oZXJpdCB0aGUg cHJpdmlsZWdlcwotICAgb2YgdGhlIGdyYW50ZWQgcm9sZS4gSWYgdGhpcyBjbGF1c2UgaXMgbm90 IHNwZWNpZmllZCwgaXQgZGVmYXVsdHMgdG8KLSAgIHRydWUgaWYgdGhlIG1lbWJlciByb2xlIGlz IHNldCB0byA8bGl0ZXJhbD5JTkhFUklUPC9saXRlcmFsPiBhbmQgdG8gZmFsc2UKLSAgIGlmIHRo ZSBtZW1iZXIgcm9sZSBpcyBzZXQgdG8gPGxpdGVyYWw+Tk9JTkhFUklUPC9saXRlcmFsPi4KLSAg IFNlZSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcm9sZSI+PGNvbW1hbmQ+Q1JFQVRFIFJPTEU8 L2NvbW1hbmQ+PC9saW5rPi4KKyAgIFRoZSA8bGl0ZXJhbD5JTkhFUklUPC9saXRlcmFsPiBvcHRp b24gY29udHJvbHMgdGhlIGluaGVyaXRhbmNlIHN0YXR1cworICAgb2YgdGhlIG5ldyBtZW1iZXJz aGlwOyAgc2VlIDx4cmVmIGxpbmtlbmQ9InJvbGUtbWVtYmVyc2hpcCIvPiBmb3IKKyAgIGRldGFp bHMgb24gaW5oZXJpdGFuY2UuICBJZiBpdCBpcyBzZXQgdG8gPGxpdGVyYWw+VFJVRTwvbGl0ZXJh bD4sCisgICBpdCBjYXVzZXMgdGhlIG5ldyBtZW1iZXIgdG8gaW5oZXJpdCBmcm9tIHRoZSBncmFu dGVkIHJvbGUuIElmCisgICBzZXQgdG8gPGxpdGVyYWw+RkFMU0U8L2xpdGVyYWw+LCB0aGUgbmV3 IG1lbWJlciBkb2VzIG5vdCBpbmhlcml0LgorICAgSWYgdW5zcGVjaWZpZWQgd2hlbiBjcmVhdGUg YSBuZXcgcm9sZSBtZW1iZXJzaGlwIHRoaXMgZGVmYXVsdHMgdG8KKyAgIHRoZSBpbmhlcml0YW5j ZSBhdHRyaWJ1dGUgb2YgdGhlIHJvbGUgYmVpbmcgYWRkZWQuCiAgIDwvcGFyYT4KIAogICA8cGFy YT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC91c2VyLW1hbmFnLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvdXNlci1tYW5hZy5zZ21sCmluZGV4IDFjMDExYWM2MmIuLmUwMjZhNGUyNzEgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC91c2VyLW1hbmFnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3VzZXIt bWFuYWcuc2dtbApAQCAtNDA5LDEwICs0MDksMTAgQEAgUkVWT0tFIDxyZXBsYWNlYWJsZT5ncm91 cF9yb2xlPC9yZXBsYWNlYWJsZT4gRlJPTSA8cmVwbGFjZWFibGU+cm9sZTE8L3JlcGxhY2VhYmwK ICAgIHRoYW4gdGhlIG9yaWdpbmFsIGxvZ2luIHJvbGUsIGFuZCBhbnkgZGF0YWJhc2Ugb2JqZWN0 cyBjcmVhdGVkIGFyZQogICAgY29uc2lkZXJlZCBvd25lZCBieSB0aGUgZ3JvdXAgcm9sZSBub3Qg dGhlIGxvZ2luIHJvbGUuICBTZWNvbmQsIG1lbWJlcgogICAgcm9sZXMgdGhhdCBoYXZlIGJlZW4g Z3JhbnRlZCBtZW1iZXJzaGlwIHdpdGggdGhlCi0gICA8bGl0ZXJhbD5JTkhFUklUPC9saXRlcmFs PiBvcHRpb24gYXV0b21hdGljYWxseSBoYXZlIHVzZQotICAgb2YgdGhlIHByaXZpbGVnZXMgb2Yg dGhvc2Ugcm9sZXMsIGluY2x1ZGluZyBhbnkKLSAgIHByaXZpbGVnZXMgaW5oZXJpdGVkIGJ5IHRo b3NlIHJvbGVzLgotICAgQXMgYW4gZXhhbXBsZSwgc3VwcG9zZSB3ZSBoYXZlIGRvbmU6CisgICA8 bGl0ZXJhbD5JTkhFUklUPC9saXRlcmFsPiBvcHRpb24gYXV0b21hdGljYWxseSBoYXZlIHVzZSBv ZiB0aGUKKyAgIHByaXZpbGVnZXMgb2YgdGhvc2UgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBhIG1l bWJlciBvZiwgdGhvdWdoIHRoZQorICAgY2hhaW4gc3RvcHMgYXQgbWVtYmVyc2hpcHMgbGFja2lu ZyB0aGUgaW5oZXJpdCBvcHRpb24uICBBcyBhbiBleGFtcGxlLAorICAgc3VwcG9zZSB3ZSBoYXZl IGRvbmU6CiA8cHJvZ3JhbWxpc3Rpbmc+CiBDUkVBVEUgUk9MRSBqb2UgTE9HSU47CiBDUkVBVEUg Uk9MRSBhZG1pbjsKLS0gCjIuMzQuMQoK --00000000000005039306102fe9cd Content-Type: text/x-patch; charset="US-ASCII"; name="0001-description-addition-and-tweaks.patch" Content-Disposition: attachment; filename="0001-description-addition-and-tweaks.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ls0tz9y41 RnJvbSBiNmQxMDQwM2VmMTkxNDk5ZjE1MWRkNWRlYzRmYjM3YjI1OTc4MTQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgRy4gSm9obnN0b24iIDxkYXZpZC5nLmpvaG5zdG9u QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAzMCBKYW4gMjAyNCAxMzoyMToyOSAtMDcwMApTdWJqZWN0 OiBbUEFUQ0hdIGRlc2NyaXB0aW9uIGFkZGl0aW9uIGFuZCB0d2Vha3MKCmdyYW50IHR3ZWFrcwot LS0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3JvbGUuc2dtbCB8IDIyICsrKysrKysrKysrKysr Ky0tLS0tLS0KIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICB8IDExICsrKysrKy0t LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3JvbGUuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3JvbGUuc2dtbAppbmRleCBkMGQzZDdlZDY0Li5mM2I4OWU3MjM5IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9yb2xlLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfcm9sZS5zZ21sCkBAIC02Niw2ICs2NiwxNyBAQCBpbiBzeW5jIHdo ZW4gY2hhbmdpbmcgdGhlIGFib3ZlIHN5bm9wc2lzIQogICAgTm90ZSB0aGF0IHJvbGVzIGFyZSBk ZWZpbmVkIGF0IHRoZSBkYXRhYmFzZSBjbHVzdGVyCiAgICBsZXZlbCwgYW5kIHNvIGFyZSB2YWxp ZCBpbiBhbGwgZGF0YWJhc2VzIGluIHRoZSBjbHVzdGVyLgogICA8L3BhcmE+CisKKyAgPHBhcmE+ CisgICBEdXJpbmcgcm9sZSBjcmVhdGlvbiBpdCBpcyBwb3NzaWJsZSB0byBpbW1lZGlhdGVseSBh c3NpZ24gdGhlIG5ld2x5IGNyZWF0ZWQKKyAgIHJvbGUgdG8gYmUgYSBtZW1iZXIgb2YgYW4gZXhp c3Rpbmcgcm9sZSwgYW5kIGFsc28gYXNzaWduIGV4aXN0aW5nIHJvbGVzCisgICB0byBiZSBtZW1i ZXJzIG9mIHRoZSBuZXdseSBjcmVhdGVkIHJvbGUuICBUaGUgcnVsZXMgZm9yIHdoaWNoIGluaXRp YWwKKyAgIHJvbGUgbWVtYmVyc2hpcCBvcHRpb25zIGFyZSBlbmFibGVkIGRlc2NyaWJlZCBiZWxv dyBpbiB0aGUKKyAgIDxsaXRlcmFsPklOIFJPTEU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5ST0xFPC9s aXRlcmFsPiwgYW5kCisgICA8bGl0ZXJhbD5BRE1JTjwvbGl0ZXJhbD4gY2xhdXNlcy4gIFRoZSA8 eHJlZiBsaW5rZW5kPSJzcWwtZ3JhbnQiLz4KKyAgIGNvbW1hbmQgaGFzIGZpbmUtZ3JhaW5lZCBv cHRpb24gY29udHJvbCBkdXJpbmcgbWVtYmVyc2hpcCBjcmVhdGlvbiwKKyAgIGFuZCB0aGUgYWJp bGl0eSB0byBtb2RpZnkgdGhlc2Ugb3B0aW9ucyBhZnRlciB0aGUgbmV3IHJvbGUgaXMgY3JlYXRl ZC4KKyAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CiAKICA8cmVmc2VjdDE+CkBAIC0yODUsMTAgKzI5 Niw3IEBAIGluIHN5bmMgd2hlbiBjaGFuZ2luZyB0aGUgYWJvdmUgc3lub3BzaXMhCiAgICAgICAg IHJvbGVzLiBUaGUgbmV3IG1lbWJlcnNoaXAgd2lsbCBoYXZlIHRoZSA8bGl0ZXJhbD5TRVQ8L2xp dGVyYWw+CiAgICAgICAgIG9wdGlvbiBlbmFibGVkIGFuZCB0aGUgPGxpdGVyYWw+QURNSU48L2xp dGVyYWw+IG9wdGlvbiBkaXNhYmxlZC4KICAgICAgICAgVGhlIDxsaXRlcmFsPklOSEVSSVQ8L2xp dGVyYWw+IG9wdGlvbiB3aWxsIGJlIGVuYWJsZWQgdW5sZXNzIHRoZQotICAgICAgICA8bGl0ZXJh bD5OT0lOSEVSSVQ8L2xpdGVyYWw+IG9wdGlvbiBpcyBzcGVjaWZpZWQuICBTZWUgdGhlIDx4cmVm Ci0gICAgICAgIGxpbmtlbmQ9InNxbC1ncmFudCIvPiBjb21tYW5kLCB3aGljaCBoYXMgYWRkaXRp b25hbCBvcHRpb24KLSAgICAgICAgY29udHJvbCBkdXJpbmcgbWVtYmVyc2hpcCBjcmVhdGlvbiBh bmQgdG8gbW9kaWZ5IHRoZXNlIG9wdGlvbnMKLSAgICAgICAgYWZ0ZXIgdGhlIG5ldyByb2xlIGlz IGNyZWF0ZWQuCisgICAgICAgIDxsaXRlcmFsPk5PSU5IRVJJVDwvbGl0ZXJhbD4gb3B0aW9uIGlz IHNwZWNpZmllZC4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zh cmxpc3RlbnRyeT4KQEAgLTMwMSw5ICszMDksOSBAQCBpbiBzeW5jIHdoZW4gY2hhbmdpbmcgdGhl IGFib3ZlIHN5bm9wc2lzIQogICAgICAgICBleGlzdGluZyByb2xlcyB0byBiZSBhdXRvbWF0aWNh bGx5IGFkZGVkIGFzIG1lbWJlcnMsIHdpdGggdGhlCiAgICAgICAgIDxsaXRlcmFsPlNFVDwvbGl0 ZXJhbD4gb3B0aW9uIGVuYWJsZWQuIFRoaXMgaW4gZWZmZWN0IG1ha2VzIHRoZQogICAgICAgICBu ZXcgcm9sZSBhIDxxdW90ZT5ncm91cDwvcXVvdGU+LiAgUm9sZXMgbmFtZWQgaW4gdGhpcyBjbGF1 c2UKLSAgICAgICAgd2l0aCByb2xlLWxldmVsIDxsaXRlcmFsPklOSEVSSVQ8L2xpdGVyYWw+IG9w dGlvbnMgd2lsbCBoYXZlCi0gICAgICAgIDxsaXRlcmFsPklOSEVSSVQ8L2xpdGVyYWw+IGVuYWJs ZWQgaW4gdGhlIG5ldyBtZW1iZXJzaGlwLiAgTmV3Ci0gICAgICAgIG1lbWJlcnNoaXBzIHdpbGwg aGF2ZSB0aGUgPGxpdGVyYWw+QURNSU48L2xpdGVyYWw+IG9wdGlvbiBkaXNhYmxlZC4KKyAgICAg ICAgd2l0aCByb2xlLWxldmVsIHRoZSA8bGl0ZXJhbD5JTkhFUklUPC9saXRlcmFsPiBhdHRyaWJ1 dGUgd2lsbCBoYXZlCisgICAgICAgIHRoZSA8bGl0ZXJhbD5JTkhFUklUPC9saXRlcmFsPiBvcHRp b24gZW5hYmxlZCBpbiB0aGUgbmV3IG1lbWJlcnNoaXAuCisgICAgICAgIE5ldyBtZW1iZXJzaGlw cyB3aWxsIGhhdmUgdGhlIDxsaXRlcmFsPkFETUlOPC9saXRlcmFsPiBvcHRpb24gZGlzYWJsZWQu CiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2dyYW50LnNnbWwKaW5kZXggZWU1Mzg3MTcxMy4uOWQyN2I3ZmNkZSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQu c2dtbApAQCAtMjY2LDcgKzI2Niw5IEBAIEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAgICA8bGl0 ZXJhbD5UUlVFPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5GQUxTRTwvbGl0ZXJhbD4uIFRoZSBrZXl3 b3JkCiAgICA8bGl0ZXJhbD5PUFRJT048L2xpdGVyYWw+IGlzIGFjY2VwdGVkIGFzIGEgc3lub255 bSBmb3IKICAgIDxsaXRlcmFsPlRSVUU8L2xpdGVyYWw+LCBzbyB0aGF0IDxsaXRlcmFsPldJVEgg QURNSU4gT1BUSU9OPC9saXRlcmFsPgotICAgaXMgYSBzeW5vbnltIGZvciA8bGl0ZXJhbD5XSVRI IEFETUlOIFRSVUU8L2xpdGVyYWw+LgorICAgaXMgYSBzeW5vbnltIGZvciA8bGl0ZXJhbD5XSVRI IEFETUlOIFRSVUU8L2xpdGVyYWw+LiAgV2hlbiBhbHRlcmluZworICAgYW4gZXhpc3RpbmcgbWVt YmVyc2hpcCB0aGUgb21pc3Npb24gb2YgYW4gb3B0aW9uIHJlc3VsdHMgaW4gdGhlIGN1cnJlbnQK KyAgIHZhbHVlIGJlaW5nIHJldGFpbmVkLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0yODAs MTQgKzI4MiwxMyBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9u YW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICA8L3BhcmE+CiAKICAgPHBh cmE+Ci0gICBUaGUgPGxpdGVyYWw+SU5IRVJJVDwvbGl0ZXJhbD4gYXR0cmlidXRlIGNvbnRyb2xz IHRoZSBpbmhlcml0YW5jZSBzdGF0dXMKKyAgIFRoZSA8bGl0ZXJhbD5JTkhFUklUPC9saXRlcmFs PiBvcHRpb24gY29udHJvbHMgdGhlIGluaGVyaXRhbmNlIHN0YXR1cwogICAgb2YgdGhlIG5ldyBt ZW1iZXJzaGlwOyAgc2VlIDx4cmVmIGxpbmtlbmQ9InJvbGUtbWVtYmVyc2hpcCIvPiBmb3IKICAg IGRldGFpbHMgb24gaW5oZXJpdGFuY2UuICBJZiBpdCBpcyBzZXQgdG8gPGxpdGVyYWw+VFJVRTwv bGl0ZXJhbD4sCiAgICBpdCBjYXVzZXMgdGhlIG5ldyBtZW1iZXIgdG8gaW5oZXJpdCBmcm9tIHRo ZSBncmFudGVkIHJvbGUuIElmCiAgICBzZXQgdG8gPGxpdGVyYWw+RkFMU0U8L2xpdGVyYWw+LCB0 aGUgbmV3IG1lbWJlciBkb2VzIG5vdCBpbmhlcml0LgotICAgSWYgdW5zcGVjaWZpZWQsIG5ldyBy b2xlIG1lbWJlcnNoaXAgZGVmYXVsdHMgdG8gdGhlIGluaGVyaXRhbmNlIHN0YXR1cwotICAgb2Yg dGhlIHJvbGUgYmVpbmcgYWRkZWQuICBJZiBhbiBleGlzdGluZyBtZW1iZXJzaGlwLCB0aGUgaW5o ZXJpdGFuY2UKLSAgIG9wdGlvbiBpcyB1bmNoYW5nZWQuCisgICBJZiB1bnNwZWNpZmllZCB3aGVu IGNyZWF0ZSBhIG5ldyByb2xlIG1lbWJlcnNoaXAgdGhpcyBkZWZhdWx0cyB0bworICAgdGhlIGlu aGVyaXRhbmNlIGF0dHJpYnV0ZSBvZiB0aGUgcm9sZSBiZWluZyBhZGRlZC4KICAgPC9wYXJhPgog CiAgIDxwYXJhPgotLSAKMi4zNC4xCgo= --00000000000005039306102fe9cd--