<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>164504</bug_id>
          
          <creation_ts>2016-11-07 21:49:06 -0800</creation_ts>
          <short_desc>IndexedDB 2.0: Encapsulate cursor iteration parameters for easy future expansion</short_desc>
          <delta_ts>2016-11-09 14:45:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>160306</blocked>
    
    <blocked>164404</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1248965</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-07 21:49:06 -0800</bug_when>
    <thetext>IndexedDB 2.0: Encapsulate cursor iteration parameters for easy future expansion

This is needed to support https://bugs.webkit.org/show_bug.cgi?id=164404</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248971</commentid>
    <comment_count>1</comment_count>
      <attachid>294136</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-07 22:12:25 -0800</bug_when>
    <thetext>Created attachment 294136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248979</commentid>
    <comment_count>2</comment_count>
      <attachid>294136</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-07 22:48:43 -0800</bug_when>
    <thetext>Comment on attachment 294136
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=294136&amp;action=review

&gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:31
&gt; +#include &lt;wtf/Optional.h&gt;

No need for this include. Optional is not used in this file.

&gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:35
&gt; +struct IDBIterateCursorData {

Where does this name come from? The phrase &quot;iterate cursor data&quot; seems grammatically peculiar, since &quot;iterate&quot; is a verb. I guess it’s &quot;&apos;iterate cursor&apos; function data&quot;? Some places you called it &quot;cursor iteration data&quot;. Is there a phrase in more colloquial normal language that describes what this is?

&gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:37
&gt; +    unsigned long count;

In WebKit we use &quot;unsigned&quot; for this type, not &quot;unsigned long&quot;. My guess is someone was working with IDL, and in IDL, the type is &quot;unsigned long&quot;, and so that’s why this type is used.

&gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:42
&gt; +    template&lt;class Encoder&gt; void encode(Encoder&amp;) const;
&gt; +    template&lt;class Decoder&gt; static bool decode(Decoder&amp;, IDBIterateCursorData&amp;);

Do these need to be members? Is that the usual Encoder/Decoder convention?

&gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:48
&gt; +    encoder &lt;&lt; keyData &lt;&lt; static_cast&lt;uint64_t&gt;(count);

Why uint64_t instead of uint32_t?

&gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:64
&gt; +    uint64_t count;
&gt; +    if (!decoder.decode(count))
&gt; +        return false;
&gt; +
&gt; +    if (count &gt; std::numeric_limits&lt;unsigned long&gt;::max())
&gt; +        return false;
&gt; +
&gt; +    iteratorCursorData.count = static_cast&lt;unsigned long&gt;(count);

This seems like an unnecessarily complicated way to encode/decode a 32-bit integer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248984</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-07 23:00:38 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 294136 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=294136&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:31
&gt; &gt; +#include &lt;wtf/Optional.h&gt;
&gt; 
&gt; No need for this include. Optional is not used in this file.

Done.

&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:35
&gt; &gt; +struct IDBIterateCursorData {
&gt; 
&gt; Where does this name come from? The phrase &quot;iterate cursor data&quot; seems
&gt; grammatically peculiar, since &quot;iterate&quot; is a verb. I guess it’s &quot;&apos;iterate
&gt; cursor&apos; function data&quot;? Some places you called it &quot;cursor iteration data&quot;.
&gt; Is there a phrase in more colloquial normal language that describes what
&gt; this is?

This is a convention used with other examples such as &quot;GetRecordData&quot; and &quot;GetAllRecordsData&quot;, meaning &quot;data for GetRecord&quot; and &quot;data for GetAllRecords&quot;, as you figured with &quot;data for IterateCursor&quot;

I only happened to call it &quot;cursor iteration parameters&quot; in the bugzilla title (And therefore the changelog)

I&apos;m not sure that&apos;s better...?

&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:37
&gt; &gt; +    unsigned long count;
&gt; 
&gt; In WebKit we use &quot;unsigned&quot; for this type, not &quot;unsigned long&quot;. My guess is
&gt; someone was working with IDL, and in IDL, the type is &quot;unsigned long&quot;, and
&gt; so that’s why this type is used.

True.

&gt; &gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:42
&gt; &gt; +    template&lt;class Encoder&gt; void encode(Encoder&amp;) const;
&gt; &gt; +    template&lt;class Decoder&gt; static bool decode(Decoder&amp;, IDBIterateCursorData&amp;);
&gt; 
&gt; Do these need to be members? Is that the usual Encoder/Decoder convention?

It is the usual convention of how we expose WK2&apos;s encoder/decoder functionality to WebCore.

They do need to be members to support all of the automatic template magic behind ArgumentEncoder/Decoder as they fallback to calling ::encode and ::decode on the object they&apos;re trying to work with.

&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:48
&gt; &gt; +    encoder &lt;&lt; keyData &lt;&lt; static_cast&lt;uint64_t&gt;(count);
&gt; 
&gt; Why uint64_t instead of uint32_t?

The same encoder/decoder template magic mentioned above only &quot;automatically&quot; knows how to encode explicitly 64-bit integers.

I&apos;m not *sure* why this is, but suspect it&apos;s related to the magic to automatically encode/decode enum types, and preventing that from causing specialization ambiguity.

But, again, not sure - I just know I&apos;m used to jumping through this hoop because, without doing so, I get compiler errors with it trying to call &quot;::encode&quot; on the type unsigned.

&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/shared/IDBIterateCursorData.h:64
&gt; &gt; +    uint64_t count;
&gt; &gt; +    if (!decoder.decode(count))
&gt; &gt; +        return false;
&gt; &gt; +
&gt; &gt; +    if (count &gt; std::numeric_limits&lt;unsigned long&gt;::max())
&gt; &gt; +        return false;
&gt; &gt; +
&gt; &gt; +    iteratorCursorData.count = static_cast&lt;unsigned long&gt;(count);
&gt; 
&gt; This seems like an unnecessarily complicated way to encode/decode a 32-bit
&gt; integer.

Agreed, ditto to the above but with ::decode on the integer type.

I&apos;ll look in to other options before landing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249518</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-09 14:45:17 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/208486

I&apos;m open to renaming the new object (and the other IDB objects with similar naming schemes) in a followup if we come up with good names!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294136</attachid>
            <date>2016-11-07 22:12:25 -0800</date>
            <delta_ts>2016-11-07 22:48:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164504-20161107220816.patch</filename>
            <type>text/plain</type>
            <size>67364</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTIzN2Y5YTg3ZDg0N2Nj
NDFmMTI1ZjBkYzljZThjOGQ3M2NmMmZmNy4uZDIxMDUwMGMzMzllNmMzNGIyZDhmYTI1YjZjOWNl
NDVhODJmMzI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE2LTExLTA3ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBJbmRleGVkREIgMi4wOiBF
bmNhcHN1bGF0ZSBjdXJzb3IgaXRlcmF0aW9uIHBhcmFtZXRlcnMgZm9yIGVhc3kgZnV0dXJlIGV4
cGFuc2lvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NDUwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyAoUmVmYWN0b3IsIG5vIGJlaGF2aW9yIGNoYW5nZSkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBsaXRlcmFsbHkganVzdCB0YWtlcyB0aGUgImtleSIgYW5kICJjb3VudCIgYXJn
dW1lbnRzIGFuZCBlbmNhcHN1bGF0ZXMgdGhlbSBpbiBhIHN0cnVjdC4KKyAgICAgICAgVGhhdCBz
dHJ1Y3Qgd2lsbCB0aGVuIGJlIGVhc2lseSBleHBhbmRhYmxlIGluIHRoZSBmdXR1cmUgKGUuZy4g
YnVnIDE2NDQwNCkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjp1bmNoZWNrZWRJdGVyYXRlQ3Vyc29yKToK
KyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Oml0ZXJhdGVDdXJzb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Oml0ZXJhdGVDdXJzb3JPblNlcnZlcik6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgCisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6aXRlcmF0
ZUN1cnNvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Qcm94eS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6
SURCQ29ubmVjdGlvblRvU2VydmVyOjppdGVyYXRlQ3Vyc29yKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmg6Cisg
ICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3Rv
cmUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6aXRlcmF0
ZUN1cnNvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5o
OgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURC
QmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURC
QmFja2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgIAorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6Oml0ZXJhdGVDdXJz
b3IpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5n
U3RvcmUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVl
SURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUl0ZXJhdGVDdXJzb3IpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAgICAKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNl
VHJhbnNhY3Rpb246Oml0ZXJhdGVDdXJzb3IpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmg6CisgICAgICAgIAorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJdGVyYXRlQ3Vyc29yRGF0YS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCSXRlcmF0ZUN1cnNvckRhdGE6Omlzb2xhdGVkQ29w
eSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkl0ZXJhdGVDdXJzb3JE
YXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCSXRlcmF0ZUN1cnNvckRhdGE6OmVu
Y29kZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJJdGVyYXRlQ3Vyc29yRGF0YTo6ZGVjb2RlKToK
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVyOjppdGVyYXRlQ3Vyc29y
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVy
Lmg6CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTEtMDQgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBXVEY6OlBhcmtpbmdMb3Qgc2hvdWxkIHN0b3AgdXNpbmcg
c3RkOjpjaHJvbm8gYmVjYXVzZSBzdGQ6OmNocm9ubzo6ZHVyYXRpb24gY2FzdHMgYXJlIHByb25l
IHRvIG92ZXJmbG93cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI4OWFiOTQxMmNiMWFlMmFiYWRhOWEzODg1ZDY3
ZGRiN2NlYTJkMDYuLjE2YTRlYjc0MGUzMzAyYjBjZTkxNzQwM2QwYjk0OWI1NTkyNDZlNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNi0xMS0wNyAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5kZXhlZERCIDIuMDogRW5jYXBzdWxhdGUgY3Vy
c29yIGl0ZXJhdGlvbiBwYXJhbWV0ZXJzIGZvciBlYXN5IGZ1dHVyZSBleHBhbnNpb24uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ1MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjppdGVyYXRlQ3Vyc29yKToKKyAgICAgICAg
KiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oOgor
ICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50Lm1lc3NhZ2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6aXRlcmF0ZUN1cnNvcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorCiAyMDE2
LTExLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgV1RGOjpQ
YXJraW5nTG90IHNob3VsZCBzdG9wIHVzaW5nIHN0ZDo6Y2hyb25vIGJlY2F1c2Ugc3RkOjpjaHJv
bm86OmR1cmF0aW9uIGNhc3RzIGFyZSBwcm9uZSB0byBvdmVyZmxvd3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggM2NkNTg5YzQ1NGZjNTFkNDZhMTI0NjEyMGYxOGZiYjVkNzFlMzYxNi4uMGUzMWYx
ZTc1ODIyYzlkMGM2NGZmZmZjODk5N2JmZThhYTJlMWYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTg2MSw2ICs4NjEsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkdldEFsbFJlY29yZHNEYXRhLmNwcAogICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJJbmRleEluZm8uY3BwCisgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkl0
ZXJhdGVDdXJzb3JEYXRhLmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmpl
Y3RTdG9yZUluZm8uY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlcXVlc3RE
YXRhLmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXNvdXJjZUlkZW50aWZp
ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNw
cAppbmRleCAxOTVhMTgyMGYxYTM1MjBmYzY0ZjVkZjJmMmVhOTYyYjQzM2YxZjg2Li4yYzA1ZDgy
ZmRhNmRjZDkxMzVhNTA5ZDFmODgwMDljZjFkYjhiNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIklEQkdldFJlc3VsdC5oIgog
I2luY2x1ZGUgIklEQkluZGV4LmgiCisjaW5jbHVkZSAiSURCSXRlcmF0ZUN1cnNvckRhdGEuaCIK
ICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNp
bmNsdWRlICJJREJUcmFuc2FjdGlvbi5oIgpAQCAtMjkyLDcgKzI5Myw3IEBAIHZvaWQgSURCQ3Vy
c29yOjp1bmNoZWNrZWRJdGVyYXRlQ3Vyc29yKGNvbnN0IElEQktleURhdGEmIGtleSwgdW5zaWdu
ZWQgY291bnQpCiAgICAgKyttX291dHN0YW5kaW5nUmVxdWVzdENvdW50OwogCiAgICAgbV9yZXF1
ZXN0LT53aWxsSXRlcmF0ZUN1cnNvcigqdGhpcyk7Ci0gICAgdHJhbnNhY3Rpb24oKS5pdGVyYXRl
Q3Vyc29yKCp0aGlzLCBrZXksIGNvdW50KTsKKyAgICB0cmFuc2FjdGlvbigpLml0ZXJhdGVDdXJz
b3IoKnRoaXMsIHsga2V5LCBjb3VudCB9KTsKIH0KIAogRXhjZXB0aW9uT3I8UmVmPFdlYkNvcmU6
OklEQlJlcXVlc3Q+PiBJREJDdXJzb3I6OmRlbGV0ZUZ1bmN0aW9uKEV4ZWNTdGF0ZSYgc3RhdGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHAKaW5kZXggMmQ4MTE5MjI5N2E4NDVkZjUyMmFkOWY1NTBkMThkN2Q2YmE4NzJlMy4uOGNm
MmI1MjBkZjAzNDBiYjllNDk4MzgwOGU3MGM2OTUzN2YyYzJmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtNDEsNiAr
NDEsNyBAQAogI2luY2x1ZGUgIklEQkV2ZW50RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIklEQkdl
dFJlY29yZERhdGEuaCIKICNpbmNsdWRlICJJREJJbmRleC5oIgorI2luY2x1ZGUgIklEQkl0ZXJh
dGVDdXJzb3JEYXRhLmgiCiAjaW5jbHVkZSAiSURCS2V5RGF0YS5oIgogI2luY2x1ZGUgIklEQktl
eVJhbmdlRGF0YS5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCkBAIC03MDEsNyArNzAy
LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZGlkT3BlbkN1cnNvck9uU2VydmVyKElEQlJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IElEQlJlc3VsdEQKICAgICByZXF1ZXN0LmRpZE9wZW5Pckl0ZXJh
dGVDdXJzb3IocmVzdWx0RGF0YSk7CiB9CiAKLXZvaWQgSURCVHJhbnNhY3Rpb246Oml0ZXJhdGVD
dXJzb3IoSURCQ3Vyc29yJiBjdXJzb3IsIGNvbnN0IElEQktleURhdGEmIGtleSwgdW5zaWduZWQg
bG9uZyBjb3VudCkKK3ZvaWQgSURCVHJhbnNhY3Rpb246Oml0ZXJhdGVDdXJzb3IoSURCQ3Vyc29y
JiBjdXJzb3IsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJiBkYXRhKQogewogICAgIExPRyhJ
bmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6aXRlcmF0ZUN1cnNvciIpOwogICAgIEFTU0VSVChp
c0FjdGl2ZSgpKTsKQEAgLTcxMCwxNSArNzExLDE2IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246Oml0
ZXJhdGVDdXJzb3IoSURCQ3Vyc29yJiBjdXJzb3IsIGNvbnN0IElEQktleURhdGEmIGtleSwgdW5z
CiAKICAgICBhZGRSZXF1ZXN0KCpjdXJzb3IucmVxdWVzdCgpKTsKIAotICAgIHNjaGVkdWxlT3Bl
cmF0aW9uKElEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsICpjdXJz
b3IucmVxdWVzdCgpLCAmSURCVHJhbnNhY3Rpb246OmRpZEl0ZXJhdGVDdXJzb3JPblNlcnZlciwg
JklEQlRyYW5zYWN0aW9uOjppdGVyYXRlQ3Vyc29yT25TZXJ2ZXIsIGtleSwgY291bnQpKTsKKyAg
ICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9u
KCp0aGlzLCAqY3Vyc29yLnJlcXVlc3QoKSwgJklEQlRyYW5zYWN0aW9uOjpkaWRJdGVyYXRlQ3Vy
c29yT25TZXJ2ZXIsICZJREJUcmFuc2FjdGlvbjo6aXRlcmF0ZUN1cnNvck9uU2VydmVyLCBkYXRh
KSk7CiB9CiAKLXZvaWQgSURCVHJhbnNhY3Rpb246Oml0ZXJhdGVDdXJzb3JPblNlcnZlcihJREJD
bGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQktleURhdGEm
IGtleSwgY29uc3QgdW5zaWduZWQgbG9uZyYgY291bnQpCisvLyBGSVhNRTogY2hhbmdlcyBoZXJl
Cit2b2lkIElEQlRyYW5zYWN0aW9uOjppdGVyYXRlQ3Vyc29yT25TZXJ2ZXIoSURCQ2xpZW50OjpU
cmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJJdGVyYXRlQ3Vyc29yRGF0
YSYgZGF0YSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246Oml0ZXJhdGVD
dXJzb3JPblNlcnZlciIpOwogICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9kYXRhYmFz
ZS0+b3JpZ2luVGhyZWFkSUQoKSk7CiAKLSAgICBtX2RhdGFiYXNlLT5jb25uZWN0aW9uUHJveHko
KS5pdGVyYXRlQ3Vyc29yKG9wZXJhdGlvbiwga2V5LCBjb3VudCk7CisgICAgbV9kYXRhYmFzZS0+
Y29ubmVjdGlvblByb3h5KCkuaXRlcmF0ZUN1cnNvcihvcGVyYXRpb24sIGRhdGEpOwogfQogCiB2
b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRJdGVyYXRlQ3Vyc29yT25TZXJ2ZXIoSURCUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDg2YmFiYjE2
MDJiNDhmZWE3MWY3MzUzZWJmY2Q0NDQ3MDZhNmZlMDIuLjQwNjI3MzMwZDhiNGZhOWZmZTBiNWQ1
Y2Q4YWE2ZWE0ODBkOWY3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBJREJPYmplY3RT
dG9yZUluZm87CiBjbGFzcyBJREJSZXN1bHREYXRhOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZh
bHVlOwogCitzdHJ1Y3QgSURCSXRlcmF0ZUN1cnNvckRhdGE7CiBzdHJ1Y3QgSURCS2V5UmFuZ2VE
YXRhOwogCiBuYW1lc3BhY2UgSURCQ2xpZW50IHsKQEAgLTEyNCw3ICsxMjUsNyBAQCBwdWJsaWM6
CiAgICAgUmVmPElEQlJlcXVlc3Q+IHJlcXVlc3RHZXRLZXkoSlNDOjpFeGVjU3RhdGUmLCBJREJJ
bmRleCYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwogICAgIFJlZjxJREJSZXF1ZXN0PiByZXF1
ZXN0T3BlbkN1cnNvcihKU0M6OkV4ZWNTdGF0ZSYsIElEQk9iamVjdFN0b3JlJiwgY29uc3QgSURC
Q3Vyc29ySW5mbyYpOwogICAgIFJlZjxJREJSZXF1ZXN0PiByZXF1ZXN0T3BlbkN1cnNvcihKU0M6
OkV4ZWNTdGF0ZSYsIElEQkluZGV4JiwgY29uc3QgSURCQ3Vyc29ySW5mbyYpOwotICAgIHZvaWQg
aXRlcmF0ZUN1cnNvcihJREJDdXJzb3ImLCBjb25zdCBJREJLZXlEYXRhJiwgdW5zaWduZWQgbG9u
ZyBjb3VudCk7CisgICAgdm9pZCBpdGVyYXRlQ3Vyc29yKElEQkN1cnNvciYsIGNvbnN0IElEQkl0
ZXJhdGVDdXJzb3JEYXRhJik7CiAKICAgICB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0
cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKICAgICB2b2lkIGRlbGV0ZUluZGV4KHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpOwpAQCAtMjA3LDcg
KzIwOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBvcGVuQ3Vyc29yT25TZXJ2ZXIoSURCQ2xpZW50
OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0IElEQkN1cnNvckluZm8mKTsKICAgICB2b2lk
IGRpZE9wZW5DdXJzb3JPblNlcnZlcihJREJSZXF1ZXN0JiwgY29uc3QgSURCUmVzdWx0RGF0YSYp
OwogCi0gICAgdm9pZCBpdGVyYXRlQ3Vyc29yT25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlv
bk9wZXJhdGlvbiYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCB1bnNpZ25lZCBsb25nJiBjb3Vu
dCk7CisgICAgdm9pZCBpdGVyYXRlQ3Vyc29yT25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlv
bk9wZXJhdGlvbiYsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJik7CiAgICAgdm9pZCBkaWRJ
dGVyYXRlQ3Vyc29yT25TZXJ2ZXIoSURCUmVxdWVzdCYsIGNvbnN0IElEQlJlc3VsdERhdGEmKTsK
IAogICAgIHZvaWQgdHJhbnNpdGlvbmVkVG9GaW5pc2hpbmcoSW5kZXhlZERCOjpUcmFuc2FjdGlv
blN0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKaW5kZXggY2U1ODYwN2Y0Njk2Njk3
MjY4N2ZkODI1ZGY5MDU2MzM4ODk1Yzk0ZS4uY2FmZmQ1ZjEzNGI2NWFhZjk5YzFkN2IwYjJjN2Rj
YzVjYTE2MDMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJJREJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIK
ICNpbmNsdWRlICJJREJHZXRSZWNvcmREYXRhLmgiCisjaW5jbHVkZSAiSURCSXRlcmF0ZUN1cnNv
ckRhdGEuaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZURhdGEuaCIKICNpbmNsdWRlICJJREJPcGVu
REJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSURCUmVxdWVzdERhdGEuaCIKQEAgLTIyMSwxMiArMjIy
LDEyIEBAIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpvcGVuQ3Vyc29yKFRyYW5zYWN0aW9uT3Bl
cmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQkN1CiAgICAgY2FsbENvbm5lY3Rpb25Pbk1haW5U
aHJlYWQoJklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6b3BlbkN1cnNvciwgcmVxdWVzdERhdGEsIGlu
Zm8pOwogfQogCi12b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6aXRlcmF0ZUN1cnNvcihUcmFuc2Fj
dGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJLZXlEYXRhJiBrZXksIHVuc2lnbmVk
IGxvbmcgY291bnQpCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6aXRlcmF0ZUN1cnNvcihUcmFu
c2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYg
ZGF0YSkKIHsKICAgICBjb25zdCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSB7IG9wZXJhdGlv
biB9OwogICAgIHNhdmVPcGVyYXRpb24ob3BlcmF0aW9uKTsKIAotICAgIGNhbGxDb25uZWN0aW9u
T25NYWluVGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Oml0ZXJhdGVDdXJzb3IsIHJlcXVl
c3REYXRhLCBrZXksIGNvdW50KTsKKyAgICBjYWxsQ29ubmVjdGlvbk9uTWFpblRocmVhZCgmSURC
Q29ubmVjdGlvblRvU2VydmVyOjppdGVyYXRlQ3Vyc29yLCByZXF1ZXN0RGF0YSwgZGF0YSk7CiB9
CiAKIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpzYXZlT3BlcmF0aW9uKFRyYW5zYWN0aW9uT3Bl
cmF0aW9uJiBvcGVyYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKaW5kZXggODA2MTA2MmVj
MGYyMTg0NTA3NTQ3ZmVmZGJjNmFlMmU0NmNjMDVkZC4uZGQ5NTRlYWEyYTlkMDAyNjE4N2EzODli
NDhlNTgwNDVmNDE3OWEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaApAQCAtNTEsNiArNTEs
NyBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47
CiAKIHN0cnVjdCBJREJHZXRSZWNvcmREYXRhOworc3RydWN0IElEQkl0ZXJhdGVDdXJzb3JEYXRh
OwogCiBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIApAQCAtNzcsNyArNzgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBnZXRDb3VudChUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0IElEQktleVJhbmdl
RGF0YSYpOwogICAgIHZvaWQgZGVsZXRlUmVjb3JkKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgY29u
c3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgdm9pZCBvcGVuQ3Vyc29yKFRyYW5zYWN0aW9uT3Bl
cmF0aW9uJiwgY29uc3QgSURCQ3Vyc29ySW5mbyYpOwotICAgIHZvaWQgaXRlcmF0ZUN1cnNvcihU
cmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0IElEQktleURhdGEmLCB1bnNpZ25lZCBsb25nIGNv
dW50KTsKKyAgICB2b2lkIGl0ZXJhdGVDdXJzb3IoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCBjb25z
dCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYpOwogICAgIHZvaWQgcmVuYW1lT2JqZWN0U3RvcmUoVHJh
bnNhY3Rpb25PcGVyYXRpb24mLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmV3TmFtZSk7CiAgICAgdm9pZCByZW5hbWVJbmRleChUcmFuc2FjdGlvbk9wZXJh
dGlvbiYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuY3BwCmluZGV4IGNjMzYxMjAwOTExNDJlNmYxZTVmNzNhZGMyZjk4NmQ3ZmMzMTk1YjYu
LjNhMDc2ZmI3NjU1ZDRjMWI2NDlhZWMxZjU5MTU2MTJmNmQ3NTQ2NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC0yNzMsMTIgKzI3MywxMiBAQCB2b2lkIElEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGlkT3BlbkN1cnNvcihjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHRE
YXRhKQogICAgIG1fcHJveHktPmNvbXBsZXRlT3BlcmF0aW9uKHJlc3VsdERhdGEpOwogfQogCi12
b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1ZXN0
RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleURhdGEmIGtleSwgdW5zaWduZWQgbG9uZyBj
b3VudCkKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElE
QlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCSXRlcmF0ZUN1cnNvckRhdGEmIGRh
dGEpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6aXRlcmF0
ZUN1cnNvciIpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBtX2RlbGVnYXRl
LT5pdGVyYXRlQ3Vyc29yKHJlcXVlc3REYXRhLCBrZXksIGNvdW50KTsKKyAgICBtX2RlbGVnYXRl
LT5pdGVyYXRlQ3Vyc29yKHJlcXVlc3REYXRhLCBkYXRhKTsKIH0KIAogdm9pZCBJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6OmRpZEl0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0
RGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCBlODViNGFhOGUzMzliZDhk
MDk1ZjM5ZTFkZTA3NDY2NzI1NzdmOGU2Li5jODk4ZmQ0ODVhZTFiMTc4MjZkY2EzZGVhNjA5YjA1
MmI2ZmU4NWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCkBAIC00Niw2ICs0Niw3
IEBAIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogCiBzdHJ1Y3QgSURCR2V0QWxsUmVjb3Jkc0RhdGE7
CiBzdHJ1Y3QgSURCR2V0UmVjb3JkRGF0YTsKK3N0cnVjdCBJREJJdGVyYXRlQ3Vyc29yRGF0YTsK
IAogbmFtZXNwYWNlIElEQkNsaWVudCB7CiAKQEAgLTEwMiw3ICsxMDMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBvcGVuQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCQ3Vyc29y
SW5mbyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkT3BlbkN1cnNvcihjb25zdCBJREJS
ZXN1bHREYXRhJik7CiAKLSAgICB2b2lkIGl0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVzdERh
dGEmLCBjb25zdCBJREJLZXlEYXRhJiwgdW5zaWduZWQgbG9uZyBjb3VudCk7CisgICAgdm9pZCBp
dGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCSXRlcmF0ZUN1cnNv
ckRhdGEmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEl0ZXJhdGVDdXJzb3IoY29uc3Qg
SURCUmVzdWx0RGF0YSYpOwogCiAgICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2Vy
dmVyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCmluZGV4IGQ5ZmM3NzE5ZDc5YWRhZTg0NTVi
YmE2YWRmNDI0MDFiZTliYzgxNjAuLmM0YTY2NzUwZTRkMTgzODVlNjkyNThjYjgyMWYyZTA2Mjdk
OTk4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCkBA
IC00Miw2ICs0Miw3IEBAIGNsYXNzIElEQlZhbHVlOwogCiBzdHJ1Y3QgSURCR2V0QWxsUmVjb3Jk
c0RhdGE7CiBzdHJ1Y3QgSURCR2V0UmVjb3JkRGF0YTsKK3N0cnVjdCBJREJJdGVyYXRlQ3Vyc29y
RGF0YTsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIG5hbWVzcGFjZSBJbmRleGVkREIg
ewpAQCAtNzUsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldENvdW50KGNv
bnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJL
ZXlSYW5nZURhdGEmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoY29uc3QgSURC
UmVxdWVzdERhdGEmLCBjb25zdCBJREJDdXJzb3JJbmZvJikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5RGF0YSYs
IHVuc2lnbmVkIGxvbmcgY291bnQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaXRlcmF0ZUN1cnNv
cihjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJikgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIGVzdGFibGlzaFRyYW5zYWN0aW9uKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAppbmRleCA2Njc4
NmYxM2VkZDhhNjJjMzlkOWM2ZDIzNTA2Mjg4Nzk2NjRkYWQ0Li5iNTgwMGE5MGU4YWZkMGQ5ZDI2
OTE3OTZhYjU4YjBjNjNiM2M5NjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCkBAIC00NSw2ICs0NSw3
IEBAIGNsYXNzIElEQlZhbHVlOwogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZmZXI7CiAKIHN0cnVj
dCBJREJHZXRBbGxSZWNvcmRzRGF0YTsKK3N0cnVjdCBJREJJdGVyYXRlQ3Vyc29yRGF0YTsKIHN0
cnVjdCBJREJLZXlSYW5nZURhdGE7CiAKIG5hbWVzcGFjZSBJbmRleGVkREIgewpAQCAtODgsNyAr
ODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJFcnJvciByZXZlcnRHZW5lcmF0ZWRLZXlO
dW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3Qga2V5TnVtYmVyKSA9IDA7
CiAgICAgdmlydHVhbCBJREJFcnJvciBtYXliZVVwZGF0ZUtleUdlbmVyYXRvck51bWJlcihjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCBkb3VibGUgbmV3S2V5TnVtYmVyKSA9IDA7CiAgICAgdmly
dHVhbCBJREJFcnJvciBvcGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJiwgSURCR2V0UmVzdWx0JiBv
dXRSZXN1bHQpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGl0ZXJhdGVDdXJzb3IoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYsIHVp
bnQzMl90IGNvdW50LCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCkgPSAwOworICAgIHZpcnR1YWwg
SURCRXJyb3IgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBjdXJzb3JJZGVu
dGlmaWVyLCBjb25zdCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYsIElEQkdldFJlc3VsdCYgb3V0UmVz
dWx0KSA9IDA7CiAKICAgICB2aXJ0dWFsIElEQk9iamVjdFN0b3JlSW5mbyogaW5mb0Zvck9iamVj
dFN0b3JlKHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVCYWNraW5nU3RvcmUoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IGRmYTdkYzVmYWYz
ODhmYzJjZjdlODM4ZmJjNmUxZWZiOWRmMTM5ODIuLjNjZDJjNGI4YWQ5NzRjMGMwODZkZGViMmUy
ZDkxZjdlMDI5NmIyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC0zMzgsNyArMzM4LDcgQEAgdm9pZCBJREJT
ZXJ2ZXI6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25z
dCBJREJDdXJzb3JJbmYKICAgICB0cmFuc2FjdGlvbi0+b3BlbkN1cnNvcihyZXF1ZXN0RGF0YSwg
aW5mbyk7CiB9CiAKLXZvaWQgSURCU2VydmVyOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVl
c3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5RGF0YSYga2V5LCB1bnNpZ25lZCBsb25n
IGNvdW50KQordm9pZCBJREJTZXJ2ZXI6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVzdERh
dGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYgZGF0YSkKIHsKICAg
ICBMT0coSW5kZXhlZERCLCAiSURCU2VydmVyOjppdGVyYXRlQ3Vyc29yIik7CiAKQEAgLTM0Niw3
ICszNDYsNyBAQCB2b2lkIElEQlNlcnZlcjo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1ZXN0
RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleURhdAogICAgIGlmICghdHJhbnNhY3Rpb24p
CiAgICAgICAgIHJldHVybjsKIAotICAgIHRyYW5zYWN0aW9uLT5pdGVyYXRlQ3Vyc29yKHJlcXVl
c3REYXRhLCBrZXksIGNvdW50KTsKKyAgICB0cmFuc2FjdGlvbi0+aXRlcmF0ZUN1cnNvcihyZXF1
ZXN0RGF0YSwgZGF0YSk7CiB9CiAKIHZvaWQgSURCU2VydmVyOjplc3RhYmxpc2hUcmFuc2FjdGlv
bih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2Fj
dGlvbkluZm8mIGluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyLmgKaW5kZXggMmU2YWE5MjMyNTUzNWM5NWYwMzI1N2U0ODdiYmI0
OTAxNDBhNmIwMi4uMWUxYjQ3YzUzNDMyZWJkYmY0MmFmMDg3ZDkwMWJmMjIxNTkyZDBjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBn
ZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRh
JiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBvcGVu
Q3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCQ3Vyc29ySW5mbyYpOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYs
IGNvbnN0IElEQktleURhdGEmLCB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGl0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJJ
dGVyYXRlQ3Vyc29yRGF0YSYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlc3RhYmxpc2hU
cmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJUcmFuc2FjdGlvbkluZm8mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRhdGFiYXNlQ29u
bmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJ
REJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggYzlhYmM2ZGVkMmM5MTcwNWFhZGFl
NjIyMjAxNThjY2EyZjZkYWVjMi4uYjhlMWE4YWQ2M2E0NzA2ZGJiZDg4ODE4NGEzOTQ4NTE3Y2Ni
M2VjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJJREJHZXRBbGxSZWNvcmRzRGF0YS5oIgogI2luY2x1ZGUgIklEQkdldFJl
c3VsdC5oIgogI2luY2x1ZGUgIklEQkluZGV4SW5mby5oIgorI2luY2x1ZGUgIklEQkl0ZXJhdGVD
dXJzb3JEYXRhLmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2VEYXRhLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIk1lbW9yeUluZGV4Q3Vyc29yLmgiCkBAIC01MjYsNyArNTI3LDcg
QEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3QKICAgICByZXR1cm4geyB9OwogfQogCi1JREJFcnJv
ciBNZW1vcnlJREJCYWNraW5nU3RvcmU6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYga2V5LCB1aW50MzJfdCBj
b3VudCwgSURCR2V0UmVzdWx0JiBvdXREYXRhKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0
b3JlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1cnNvcklkZW50aWZp
ZXIsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJiBkYXRhLCBJREJHZXRSZXN1bHQmIG91dERh
dGEpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6aXRlcmF0
ZUN1cnNvciIpOwogCkBAIC01MzcsNyArNTM4LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnMK
ICAgICBpZiAoIWN1cnNvcikKICAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246
OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJObyBiYWNraW5nIHN0b3JlIGN1cnNvciBmb3Vu
ZCBpbiB3aGljaCB0byBpdGVyYXRlIGN1cnNvciIpIH07CiAKLSAgICBjdXJzb3ItPml0ZXJhdGUo
a2V5LCBjb3VudCwgb3V0RGF0YSk7CisgICAgY3Vyc29yLT5pdGVyYXRlKGRhdGEua2V5RGF0YSwg
ZGF0YS5jb3VudCwgb3V0RGF0YSk7CiAKICAgICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlE
QkJhY2tpbmdTdG9yZS5oCmluZGV4IDhhMDU2MDZkYzc1NWFhMWIyYmNlNDRlZGJmNzQwM2RjZDMw
ZTM3ZDMuLjU2YjM1ODFkNjIyNGE1MzM3OGQ1NmQ3ZmNhMWY4MzY3OTdmZDU4ZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNr
aW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5SURCQmFja2luZ1N0b3JlLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIElE
QkVycm9yIHJldmVydEdlbmVyYXRlZEtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCB1aW50NjRfdCBrZXlOdW1iZXIpIGZpbmFsOwogICAgIElEQkVycm9yIG1heWJlVXBkYXRlS2V5
R2VuZXJhdG9yTnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGRvdWJsZSBuZXdLZXlO
dW1iZXIpIGZpbmFsOwogICAgIElEQkVycm9yIG9wZW5DdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkN1cnNvckluZm8mLCBJ
REJHZXRSZXN1bHQmIG91dFJlc3VsdCkgZmluYWw7Ci0gICAgSURCRXJyb3IgaXRlcmF0ZUN1cnNv
cihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25zdCBJREJLZXlE
YXRhJiwgdWludDMyX3QgY291bnQsIElEQkdldFJlc3VsdCYgb3V0UmVzdWx0KSBmaW5hbDsKKyAg
ICBJREJFcnJvciBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1cnNvcklk
ZW50aWZpZXIsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJiwgSURCR2V0UmVzdWx0JiBvdXRS
ZXN1bHQpIGZpbmFsOwogCiAgICAgSURCT2JqZWN0U3RvcmVJbmZvKiBpbmZvRm9yT2JqZWN0U3Rv
cmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGRlbGV0
ZUJhY2tpbmdTdG9yZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcApp
bmRleCAzMjY1OGFjOWI3OTVlMjc3ZTc2YmI4NDVlMjQwM2Y0ZDgzZmNjZjVkLi43OGRjNTBiYzhj
ZWE3M2NmYTgwOGViZWNjMjc0ZTcxNDQ0YWZlZDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2lu
Z1N0b3JlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIklEQkdldEFsbFJlY29yZHNE
YXRhLmgiCiAjaW5jbHVkZSAiSURCR2V0QWxsUmVzdWx0LmgiCiAjaW5jbHVkZSAiSURCR2V0UmVz
dWx0LmgiCisjaW5jbHVkZSAiSURCSXRlcmF0ZUN1cnNvckRhdGEuaCIKICNpbmNsdWRlICJJREJL
ZXlEYXRhLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVJbmZvLmgiCiAjaW5jbHVkZSAiSURC
U2VyaWFsaXphdGlvbi5oIgpAQCAtMjI2OCw3ICsyMjY5LDcgQEAgSURCRXJyb3IgU1FMaXRlSURC
QmFja2luZ1N0b3JlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3QKICAgICByZXR1cm4geyB9OwogfQogCi1JREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmll
ciwgY29uc3QgSURCS2V5RGF0YSYga2V5LCB1aW50MzJfdCBjb3VudCwgSURCR2V0UmVzdWx0JiBy
ZXN1bHQpCitJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6Oml0ZXJhdGVDdXJzb3IoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCSXRlcmF0ZUN1
cnNvckRhdGEmIGRhdGEsIElEQkdldFJlc3VsdCYgcmVzdWx0KQogewogICAgIExPRyhJbmRleGVk
REIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6Oml0ZXJhdGVDdXJzb3IiKTsKIApAQCAtMjI4OCw2
ICsyMjg5LDkgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29y
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnMKICAgICAgICAgcmV0dXJuIHsgSURC
RGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRv
IGl0ZXJhdGUgYSBjdXJzb3Igd2l0aG91dCBhbiBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbiIpIH07
CiAgICAgfQogCisgICAgYXV0byBrZXkgPSBkYXRhLmtleURhdGE7CisgICAgYXV0byBjb3VudCA9
IGRhdGEuY291bnQ7CisKICAgICBpZiAoa2V5LmlzVmFsaWQoKSkgewogICAgICAgICBpZiAoIWN1
cnNvci0+aXRlcmF0ZShrZXkpKSB7CiAgICAgICAgICAgICBMT0dfRVJST1IoIkF0dGVtcHQgdG8g
aXRlcmF0ZSBjdXJzb3IgZmFpbGVkIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKaW5k
ZXggYWMyMjY1NWI2NzRkZWNiYmIwYjZjZDM0M2I0ZDU5ZmRhOGQ1MmE1Ny4uMjE3ZGYzMDJkMDEz
NmJhOTFhODhlYjM4MmRhZGIyYTVmOTFhY2EzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3Rv
cmUuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgSURCRXJyb3IgcmV2ZXJ0R2VuZXJh
dGVkS2V5TnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGtleU51bWJl
cikgZmluYWw7CiAgICAgSURCRXJyb3IgbWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JOdW1iZXIoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgZG91YmxlIG5ld0tleU51bWJlcikgZmluYWw7CiAgICAg
SURCRXJyb3Igb3BlbkN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCQ3Vyc29ySW5mbyYsIElEQkdldFJlc3VsdCYgb3V0UmVz
dWx0KSBmaW5hbDsKLSAgICBJREJFcnJvciBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCB1aW50MzJfdCBjb3Vu
dCwgSURCR2V0UmVzdWx0JiBvdXRSZXN1bHQpIGZpbmFsOworICAgIElEQkVycm9yIGl0ZXJhdGVD
dXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURC
SXRlcmF0ZUN1cnNvckRhdGEmLCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCkgZmluYWw7CiAKICAg
ICBJREJPYmplY3RTdG9yZUluZm8qIGluZm9Gb3JPYmplY3RTdG9yZSh1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZGVsZXRlQmFja2luZ1N0b3JlKCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA0ZWY2OWRhN2EwZDdlNzdmODAxMThk
NjUyM2RlMGFlYTkyMmIwMzMzLi4xMjcwOGU2OTBjMDc1N2I2MzA4MGFiYTQzMTAwMTFjNGY2YTRj
MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJJREJHZXRBbGxSZWNvcmRzRGF0YS5oIgogI2luY2x1ZGUgIklEQkdldEFsbFJlc3VsdC5o
IgogI2luY2x1ZGUgIklEQkdldFJlY29yZERhdGEuaCIKKyNpbmNsdWRlICJJREJJdGVyYXRlQ3Vy
c29yRGF0YS5oIgogI2luY2x1ZGUgIklEQktleVJhbmdlRGF0YS5oIgogI2luY2x1ZGUgIklEQlJl
c3VsdERhdGEuaCIKICNpbmNsdWRlICJJREJTZXJ2ZXIuaCIKQEAgLTEyMDMsNyArMTIwNCw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1PcGVuQ3Vyc29yKHVpbnQ2NF90IGNh
bGxiYWNrSWRlbnRpZmllciwgY29uc3QKICAgICBwZXJmb3JtR2V0UmVzdWx0Q2FsbGJhY2soY2Fs
bGJhY2tJZGVudGlmaWVyLCBlcnJvciwgcmVzdWx0KTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNv
bnN0IElEQktleURhdGEmIGtleSwgdW5zaWduZWQgbG9uZyBjb3VudCwgR2V0UmVzdWx0Q2FsbGJh
Y2sgY2FsbGJhY2spCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yKGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCSXRlcmF0ZUN1cnNvckRhdGEm
IGRhdGEsIEdldFJlc3VsdENhbGxiYWNrIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6
aXRlcmF0ZUN1cnNvciIpOwpAQCAtMTIxMSwxNiArMTIxMiwxNiBAQCB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwg
Y29uc3QgSQogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJy
b3IoY2FsbGJhY2spOwogICAgIGlmICghY2FsbGJhY2tJRCkKICAgICAgICAgcmV0dXJuOwotICAg
IHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURC
RGF0YWJhc2U6OnBlcmZvcm1JdGVyYXRlQ3Vyc29yLCBjYWxsYmFja0lELCByZXF1ZXN0RGF0YS50
cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEuY3Vyc29ySWRlbnRpZmllcigpLCBr
ZXksIGNvdW50KSk7CisgICAgcG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2so
KnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUl0ZXJhdGVDdXJzb3IsIGNhbGxiYWNr
SUQsIHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCByZXF1ZXN0RGF0YS5jdXJz
b3JJZGVudGlmaWVyKCksIGRhdGEpKTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVy
Zm9ybUl0ZXJhdGVDdXJzb3IodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXksIHVu
c2lnbmVkIGxvbmcgY291bnQpCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtSXRlcmF0
ZUN1cnNvcih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJiBkYXRhKQog
ewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIsICIoZGIp
IFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtSXRlcmF0ZUN1cnNvciIpOwogCiAgICAgSURCR2V0
UmVzdWx0IHJlc3VsdDsKLSAgICBJREJFcnJvciBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5pdGVy
YXRlQ3Vyc29yKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY3Vyc29ySWRlbnRpZmllciwga2V5LCBj
b3VudCwgcmVzdWx0KTsKKyAgICBJREJFcnJvciBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5pdGVy
YXRlQ3Vyc29yKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY3Vyc29ySWRlbnRpZmllciwgZGF0YSwg
cmVzdWx0KTsKIAogICAgIHBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRh
c2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUl0ZXJhdGVDdXJzb3IsIGNh
bGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIHJlc3VsdCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2Uu
aAppbmRleCAwNWY0NTgyY2NhY2ZmYjZjYmZmZmRhNGJjZjk3NTk4ODM4YmU2MTdjLi45Yzk5NWEz
ZWVlMWUxNjk0NDBlZjdjZTkwODY5MjFhY2FmYzA0MGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2Uu
aApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldENvdW50KGNvbnN0IElE
QlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgQ291bnRDYWxsYmFjayk7CiAg
ICAgdm9pZCBkZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlS
YW5nZURhdGEmLCBFcnJvckNhbGxiYWNrKTsKICAgICB2b2lkIG9wZW5DdXJzb3IoY29uc3QgSURC
UmVxdWVzdERhdGEmLCBjb25zdCBJREJDdXJzb3JJbmZvJiwgR2V0UmVzdWx0Q2FsbGJhY2spOwot
ICAgIHZvaWQgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktl
eURhdGEmLCB1bnNpZ25lZCBsb25nIGNvdW50LCBHZXRSZXN1bHRDYWxsYmFjayk7CisgICAgdm9p
ZCBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCSXRlcmF0ZUN1
cnNvckRhdGEmLCBHZXRSZXN1bHRDYWxsYmFjayk7CiAgICAgdm9pZCBjb21taXRUcmFuc2FjdGlv
bihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgRXJyb3JDYWxsYmFjayk7CiAgICAgdm9p
ZCBhYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBFcnJvckNh
bGxiYWNrKTsKICAgICB2b2lkIGRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZShVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllcik7CkBAIC0xNjEsNyArMTYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHBlcmZvcm1HZXRDb3VudCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFu
Z2VEYXRhJik7CiAgICAgdm9pZCBwZXJmb3JtRGVsZXRlUmVjb3JkKHVpbnQ2NF90IGNhbGxiYWNr
SWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VE
YXRhJik7CiAgICAgdm9pZCBwZXJmb3JtT3BlbkN1cnNvcih1aW50NjRfdCBjYWxsYmFja0lkZW50
aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBJREJDdXJzb3JJbmZvJik7Ci0gICAgdm9pZCBwZXJmb3JtSXRlcmF0ZUN1cnNvcih1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1cnNv
cklkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAg
ICB2b2lkIHBlcmZvcm1JdGVyYXRlQ3Vyc29yKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwg
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCSXRlcmF0
ZUN1cnNvckRhdGEmKTsKICAgICB2b2lkIHBlcmZvcm1BY3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNr
aW5nU3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlv
bkluZm8mKTsKICAgICB2b2lkIHBlcmZvcm1VbmNvbmRpdGlvbmFsRGVsZXRlQmFja2luZ1N0b3Jl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcAppbmRl
eCA2NDEyMjM2MTdlOWU0NzM3NmZhNGU5OGM0OWFmMmU0MjIzMjgxZjVmLi4yMTRmOGMyMzhhMTI2
MjliNzU2YTUxZGFhMDZhYmM4MGQ3N2JhZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb24uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJFcnJvci5oIgorI2luY2x1ZGUgIklEQkl0ZXJh
dGVDdXJzb3JEYXRhLmgiCiAjaW5jbHVkZSAiSURCUmVzdWx0RGF0YS5oIgogI2luY2x1ZGUgIklE
QlNlcnZlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTMyNSwxNCArMzI2LDE0IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6b3BlbkN1cnNvcihjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsCiAgICAgfSk7CiB9CiAKLXZvaWQgVW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbjo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVz
dERhdGEsIGNvbnN0IElEQktleURhdGEmIGtleSwgdW5zaWduZWQgbG9uZyBjb3VudCkKK3ZvaWQg
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJiBkYXRhKQog
ewogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjppdGVy
YXRlQ3Vyc29yIik7CiAKICAgICBBU1NFUlQobV90cmFuc2FjdGlvbkluZm8uaWRlbnRpZmllcigp
ID09IHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpKTsKIAogICAgIFJlZlB0cjxV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOwotICAgIG1f
ZGF0YWJhc2VDb25uZWN0aW9uLT5kYXRhYmFzZSgpLml0ZXJhdGVDdXJzb3IocmVxdWVzdERhdGEs
IGtleSwgY291bnQsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzLCByZXF1ZXN0RGF0YV0oY29uc3QgSURC
RXJyb3ImIGVycm9yLCBjb25zdCBJREJHZXRSZXN1bHQmIHJlc3VsdCkgeworICAgIG1fZGF0YWJh
c2VDb25uZWN0aW9uLT5kYXRhYmFzZSgpLml0ZXJhdGVDdXJzb3IocmVxdWVzdERhdGEsIGRhdGEs
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzLCByZXF1ZXN0RGF0YV0oY29uc3QgSURCRXJyb3ImIGVycm9y
LCBjb25zdCBJREJHZXRSZXN1bHQmIHJlc3VsdCkgewogICAgICAgICBMT0coSW5kZXhlZERCLCAi
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6aXRlcmF0ZUN1cnNvciAoY2FsbGJhY2spIik7
CiAKICAgICAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uLmgKaW5kZXggYmUzYjZjN2NkYjYwMDkzMGUyZjFhMGNiMjBhYjU3ZWFj
NGJjNGY5OC4uNTExZDU3MTI0MWRjYmUyMTRkZjdhNzFiYTNhYTI1MGVhNjcwODQwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oCkBAIC00NSw2ICs0NSw3IEBA
IGNsYXNzIElEQlZhbHVlOwogCiBzdHJ1Y3QgSURCR2V0QWxsUmVjb3Jkc0RhdGE7CiBzdHJ1Y3Qg
SURCR2V0UmVjb3JkRGF0YTsKK3N0cnVjdCBJREJJdGVyYXRlQ3Vyc29yRGF0YTsKIHN0cnVjdCBJ
REJLZXlSYW5nZURhdGE7CiAKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewpAQCAtODEsNyArODIsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBnZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0
IElEQktleVJhbmdlRGF0YSYpOwogICAgIHZvaWQgZGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVl
c3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgdm9pZCBvcGVuQ3Vyc29yKGNv
bnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCQ3Vyc29ySW5mbyYpOwotICAgIHZvaWQgaXRl
cmF0ZUN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCB1bnNp
Z25lZCBsb25nIGNvdW50KTsKKyAgICB2b2lkIGl0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVz
dERhdGEmLCBjb25zdCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYpOwogCiAgICAgdm9pZCBkaWRBY3Rp
dmF0ZUluQmFja2luZ1N0b3JlKGNvbnN0IElEQkVycm9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJdGVyYXRlQ3Vyc29yRGF0YS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSXRlcmF0ZUN1
cnNvckRhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmMjRjZjA3ZDkwNzg4NDkyNGFkNjZmZDhkY2I4Y2Q4
ZGUwZjZiMGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCSXRlcmF0ZUN1cnNvckRhdGEuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCSXRlcmF0ZUN1cnNv
ckRhdGEuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0lEQkl0ZXJhdGVDdXJzb3JEYXRhIElEQkl0ZXJhdGVDdXJzb3JEYXRhOjppc29s
YXRlZENvcHkoKSBjb25zdAoreworICAgIHJldHVybiB7IGtleURhdGEuaXNvbGF0ZWRDb3B5KCks
IGNvdW50IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQkl0ZXJhdGVDdXJzb3JEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSXRlcmF0ZUN1cnNvckRhdGEuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wMTNjZmMxZGM0MzkzMTk2NDBhM2I4MjNlY2ZjNjRhOWM3ZGYzYmU0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkl0ZXJhdGVD
dXJzb3JEYXRhLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJLZXlSYW5nZURh
dGEuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgSURCSXRlcmF0ZUN1cnNvckRhdGEgeworICAgIElEQktleURhdGEga2V5RGF0YTsK
KyAgICB1bnNpZ25lZCBsb25nIGNvdW50OworCisgICAgSURCSXRlcmF0ZUN1cnNvckRhdGEgaXNv
bGF0ZWRDb3B5KCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYpOworfTsKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCSXRlcmF0ZUN1cnNvckRhdGE6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwga2V5RGF0YSA8PCBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oY291bnQpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgor
Ym9vbCBJREJJdGVyYXRlQ3Vyc29yRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQkl0
ZXJhdGVDdXJzb3JEYXRhJiBpdGVyYXRvckN1cnNvckRhdGEpCit7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShpdGVyYXRvckN1cnNvckRhdGEua2V5RGF0YSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHVpbnQ2NF90IGNvdW50OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY291bnQp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoY291bnQgPiBzdGQ6Om51bWVyaWNf
bGltaXRzPHVuc2lnbmVkIGxvbmc+OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaXRlcmF0b3JDdXJzb3JEYXRhLmNvdW50ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4o
Y291bnQpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2Vy
dmVyLmNwcAppbmRleCA3ODExYWVlNjMzZjdmODIzYzVmNDlkYzZiNWZjZjBiY2FiOTg5MWUzLi5i
OWFmZDJmMDFjZTEzY2U1MzViNDk0YWVmMjY0MGY3MDhiNDkxNTNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNz
SURCU2VydmVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25U
b1NlcnZlci5oIgogI2luY2x1ZGUgIklEQkN1cnNvckluZm8uaCIKICNpbmNsdWRlICJJREJHZXRS
ZWNvcmREYXRhLmgiCisjaW5jbHVkZSAiSURCSXRlcmF0ZUN1cnNvckRhdGEuaCIKICNpbmNsdWRl
ICJJREJLZXlSYW5nZURhdGEuaCIKICNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiSURCUmVxdWVzdERhdGEuaCIKQEAgLTM0MiwxMCArMzQzLDEwIEBAIHZvaWQgSW5Qcm9j
ZXNzSURCU2VydmVyOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0
YSwgY29uc3QgSURCCiAgICAgfSk7CiB9CiAKLXZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjppdGVy
YXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5
RGF0YSYga2V5LCB1bnNpZ25lZCBsb25nIGNvdW50KQordm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6
Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJ
REJJdGVyYXRlQ3Vyc29yRGF0YSYgZGF0YSkKIHsKLSAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlz
cGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdERhdGEs
IGtleSwgY291bnRdIHsKLSAgICAgICAgbV9zZXJ2ZXItPml0ZXJhdGVDdXJzb3IocmVxdWVzdERh
dGEsIGtleSwgY291bnQpOworICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0RGF0YSwgZGF0YV0geworICAg
ICAgICBtX3NlcnZlci0+aXRlcmF0ZUN1cnNvcihyZXF1ZXN0RGF0YSwgZGF0YSk7CiAgICAgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JblByb2Nlc3NJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaAppbmRleCBiNTc2MzFhNTMyMmJkNTI4YzMyZTVl
ODliMzc3N2QyYjM1ODM0NGFjLi4xNzQwNmMyNTdmMWI4ODY5ZTlhNjAzZDhlZTFhOTQxMjkzMDk4
NDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SW5Qcm9jZXNzSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGdldENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFu
Z2VEYXRhJikgZmluYWw7CiAgICAgdm9pZCBkZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERh
dGEmLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKSBmaW5hbDsKICAgICB2b2lkIG9wZW5DdXJzb3Io
Y29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJDdXJzb3JJbmZvJikgZmluYWw7Ci0gICAg
dm9pZCBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5RGF0
YSYsIHVuc2lnbmVkIGxvbmcgY291bnQpIGZpbmFsOworICAgIHZvaWQgaXRlcmF0ZUN1cnNvcihj
b25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhJikgZmluYWw7
CiAgICAgdm9pZCBlc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKSBmaW5hbDsKICAgICB2b2lk
IGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRjYWI2MmU1NWI2YmI4NDU5
ZmNiOWU4MzIyNzk0N2EwZjQ5NjM3NTYuLmFlY2U4MDQwNTk0OGI1MDMzODJmMWU3ZjAzYzVkN2Uz
ZWZjYWM4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE1NjQsMTAgKzE1NjQsMTAgQEAKIAkJNDE2MkE0NTcxMDExNDY0NzAw
REZGM0VEIC8qIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2MkE0NTUxMDExNDY0NzAwREZGM0VE
IC8qIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwICovOyB9OwogCQk0MTYyQTQ1ODEw
MTE0NjQ3MDBERkYzRUQgLyogSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2MkE0NTYxMDExNDY0NzAw
REZGM0VEIC8qIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCAqLzsgfTsKIAkJNDE2RTI5
QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTZFMjlBNTEwMkZBOTYyMDA3RkMx
NEUgLyogV29ya2VyUmVwb3J0aW5nUHJveHkuaCAqLzsgfTsKKwkJNDE2RTZGRTgxQkJEMTJERjAw
MEEzRjY0IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzExMEQwMEI3NjRE
OSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE2RTZGRTgxQkJEMTJERjAwMEE2MDIz
IC8qIEZldGNoSW50ZXJuYWxzQnVpbHRpbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzExMEQwMEI3NjRCOSAvKiBGZXRjaEludGVy
bmFsc0J1aWx0aW5zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDE2RTZGRTgxQkJEMTJERjAwMEE2MDMzIC8qIFN0cmVhbUludGVybmFsc0J1aWx0
aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAz
RDgwNjFCQjMxMTBEMDBCNzY0QzkgLyogU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk0MTZFNkZFODFCQkQx
MkRGMDAwQTNGNjQgLyogUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzEx
MEQwMEI3NjREOSAvKiBSZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQxNkU2RkU4MUJC
RDEyREYwMDBBNjA0MyAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBE
MDBCNzNGNjQgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxNkU2RkU4MUJCRDEyREYw
MDBBNjA0MyAvKiBSZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDYxQkIzMTEwRDAw
QjczRjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE2RTZGRTgxQkJEMTJE
RjAwMEE2MDUzIC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzExMEQwMEI3
NjRFOSAvKiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2
MDQzIC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzExMEQwMEI3NjREOCAvKiBSZWFkYWJs
ZVN0cmVhbUJ1aWx0aW5zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDUzIC8qIFdyaXRhYmxlU3RyZWFtQnVp
bHRpbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
MDNEODA2MUJCMzExMEQwMEI3NjRFOCAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIwMjgsNiArMjAy
OCw4IEBACiAJCTUxMkREOEZCMEQ5MUU2QUYwMDBGODlFRSAvKiBBcmNoaXZlUmVzb3VyY2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyREQ4RjEw
RDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVSZXNvdXJjZS5jcHAgKi87IH07CiAJCTUxMkREOEZD
MEQ5MUU2QUYwMDBGODlFRSAvKiBBcmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkREOEYyMEQ5MUU2QUYwMDBGODlFRSAvKiBB
cmNoaXZlUmVzb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MTJERDhGRDBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZUZhY3RvcnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkREOEYzMEQ5
MUU2QUYwMDBGODlFRSAvKiBBcmNoaXZlRmFjdG9yeS5oICovOyB9OworCQk1MTJERjI1MjFERDE5
ODc3MDA2Njc3QTQgLyogSURCSXRlcmF0ZUN1cnNvckRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyREYyNTAxREQxOTdEODAwNjY3N0E0IC8q
IElEQkl0ZXJhdGVDdXJzb3JEYXRhLmNwcCAqLzsgfTsKKwkJNTEyREYyNTMxREQxOTg3RTAwNjY3
N0E0IC8qIElEQkl0ZXJhdGVDdXJzb3JEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJERjI1MTFERDE5N0Q4MDA2Njc3QTQgLyogSURCSXRlcmF0
ZUN1cnNvckRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MTJGMUE3ODFDMDdFQjY2MDA5MDgyMzkgLyogSURCR2V0UmVzdWx0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkYxQTc3MUMwN0VB
MEQwMDkwODIzOSAvKiBJREJHZXRSZXN1bHQuY3BwICovOyB9OwogCQk1MTMyN0Q2MDExQTMzQTJC
MDA0RjlENjUgLyogU2lua0RvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTMyN0Q1RTExQTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3VtZW50
LmggKi87IH07CiAJCTUxMzI3RDYxMTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzMjdENUYx
MUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5jcHAgKi87IH07CkBAIC0yNTkwLDggKzI1
OTIsOCBAQAogCQk2QjY5M0EyRTFDNTFBODJFMDBCMDNCRUYgLyogUmVzb3VyY2VMb2FkT2JzZXJ2
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCNjkz
QTJEMUM1MUE4MkUwMEIwM0JFRiAvKiBSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCNjkzQTM0MUM1MUE5NUQw
MEIwM0JFRiAvKiBSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjY5M0EzMzFDNTFBOTVEMDBCMDNCRUYgLyogUmVz
b3VyY2VMb2FkT2JzZXJ2ZXIuY3BwICovOyB9OwogCQk2QzRDOTZERTFBRDQ0ODM1MDAzNjNGNjQg
LyogSlNSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNEM5NkRBMUFENDQ4MzUwMDM2M0Y2NCAvKiBK
U1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuY3BwICovOyB9OwotCQk2QzRDOTZERjFBRDQ0
ODM1MDAzNjNGNjQgLyogSlNSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZEQjFBRDQ0ODM1MDAz
NjNGNjQgLyogSlNSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmggKi87IH07CiAJCTZDNEM5
NkRFMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2
REExQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5j
cHAgKi87IH07CisJCTZDNEM5NkRGMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxlQnl0ZVN0
cmVhbUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZDNEM5NkRCMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxlQnl0ZVN0cmVhbUNv
bnRyb2xsZXIuaCAqLzsgfTsKIAkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlci5oICovOyB9OwogCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0
NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8q
IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CkBAIC05MTYxLDYgKzkxNjMs
OCBAQAogCQk1MTJERDhGMTBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJlc291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFyY2hpdmVSZXNvdXJjZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkREOEYyMEQ5MUU2QUYwMDBGODlFRSAv
KiBBcmNoaXZlUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJj
aGl2ZVJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkREOEYzMEQ5
MUU2QUYwMDBGODlFRSAvKiBBcmNoaXZlRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBcmNoaXZlRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MTJERjI1MDFERDE5N0Q4MDA2Njc3QTQgLyogSURCSXRlcmF0ZUN1cnNvckRhdGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCSXRlcmF0ZUN1cnNvckRhdGEu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJERjI1MTFERDE5N0Q4MDA2Njc3
QTQgLyogSURCSXRlcmF0ZUN1cnNvckRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSURCSXRlcmF0ZUN1cnNvckRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEyRjFBNzcxQzA3RUEwRDAwOTA4MjM5IC8qIElEQkdldFJlc3VsdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJHZXRSZXN1bHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTMyN0Q1RTExQTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3Vt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbmtEb2N1bWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTMyN0Q1RjExQTMzQTJCMDA0RjlENjUgLyog
U2lua0RvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNp
bmtEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NzgyLDggKzk3
ODYsOCBAQAogCQk2QjY5M0EyRDFDNTFBODJFMDBCMDNCRUYgLyogUmVzb3VyY2VMb2FkT2JzZXJ2
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkT2JzZXJ2
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI2OTNBMzMxQzUxQTk1RDAwQjAz
QkVGIC8qIFJlc291cmNlTG9hZE9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZE9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNkM0Qzk2REExQUQ0NDgzNTAwMzYzRjY0IC8qIEpTUmVhZGFibGVCeXRlU3Ry
ZWFtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFkYWJsZUJ5dGVTdHJlYW1D
b250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVC
eXRlU3RyZWFtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzRD
OTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVTdHJl
YW1EZWZhdWx0Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZD
NEM5NkRCMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZUJ5dGVTdHJlYW1D
b250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNEM5NkRCMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNjM4ODkzQTk2Q0NFRTUwQzhD
OTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBD
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMTc1LDggKzExMTc5LDggQEAKIAkJOTkwOEIw
RjAxQkNBQ0Y5MTAwRUQzRjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJsZUJ5dGVTdHJlYW1D
b250cm9sbGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGMTFCQ0FD
RjkxMDBFRDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5q
YXZhc2NyaXB0OyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1JbnRl
cm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJs
ZVN0cmVhbUludGVybmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIw
RjExQkNBQ0Y5MTAwRUQzRjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUludGVybmFscy5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFJlYWRhYmxlQnl0ZVN0cmVhbUlu
dGVybmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjExQkNBQ0Y5
MTAwRUQwRjc1IC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBwYXRoID0gV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhCMEYxMUJDQUNGOTEwMEVEM0Y2NCAvKiBSZWFk
YWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IHBhdGggPSBSZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHMuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5MDhCMEYyMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVh
bURlZmF1bHRSZWFkZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGgg
PSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk5MDhCMEYzMUJDQUNGRkUwMEVEMEY2NSAvKiBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0
ZWd5QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnl0
ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTkwOEIwRjUxQkNBRDA3RDAwRUQwRjY1IC8qIEJ5dGVMZW5ndGhRdWV1aW5nU3Ry
YXRlZ3lCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlTGVu
Z3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTExMTg0LDE1ICsxMTE4OCwxMyBAQAogCQk5OTA4QjBGNzFCQ0FEMDdEMDBFRDBGNjUgLyog
Q291bnRRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDb3VudFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk5MDhCMEY5MUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUJ1
aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxl
U3RyZWFtQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBG
OTFCQ0FEMDdEMDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW1CdWlsdGlucy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRkExQkNBRDA3RDAwRUQzRjY0IC8q
IFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyQnVpbHRp
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGQjFCQ0FEMDdEMDBF
RDNGNjQgLyogUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckJ1aWx0aW5zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJCdWls
dGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGQTFCQ0FEMDdEMDBF
RDBGNjUgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckJ1aWx0aW5zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtRGVmYXVsdENv
bnRyb2xsZXJCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhC
MEZCMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyQnVp
bHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1E
ZWZhdWx0Q29udHJvbGxlckJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk5MDhCMEZEMUJDQUQwN0QwMEVEMEY0NSAvKiBGZXRjaEludGVybmFsc0J1aWx0aW5zLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZldGNoSW50ZXJuYWxzQnVpbHRp
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGRDFCQ0FEMDdEMDBF
RDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGRDFCQ0FEMDdEMDBFRDNGNjQgLyogUmVhZGFibGVC
eXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGRDFCQ0FEMDdEMDBFRDBGNjUgLyogUmVh
ZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkQxQkNBRDA3RDAwRUQwRjc1IC8qIFdyaXRh
YmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhCMEZEMUJDQUQwN0QwMEVEM0Y2NCAvKiBSZWFkYWJs
ZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZFMUJDQUQwN0QwMEVEMEY2NSAvKiBS
ZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJCdWlsdGlucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZGMUJDQUQwN0QwMEVEMEY2
NSAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJCdWlsdGlucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJCdWlsdGlucy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTIwMzk4MDE4Qjk1QkM2MDBCMzlBRjkg
LyogVXNlcklucHV0QnJpZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFVzZXJJbnB1dEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MTIzMCwxMCArMTEyMzIsMTAgQEAKIAkJOUE1MjhFODIxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0
aW5nT2JqZWN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdGluZ09i
amVjdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUFCMUYzN0UxOEUyNDg5QTAw
NTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5QUIxRjM3RjE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUIwM0Q4MDYxQkIzMTEwRDAwQjczRjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUludGVybmFs
c0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlQnl0
ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCMDNEODA2MUJCMzExMEQwMEI3NjRCOSAvKiBGZXRjaEludGVybmFsc0J1aWx0aW5zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZldGNoSW50ZXJuYWxzQnVpbHRpbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEM5IC8q
IFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUIwM0Q4MDYxQkIzMTEwRDAwQjczRjY0
IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlQnl0ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3NjREOSAv
KiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEU4IC8qIFdyaXRhYmxl
U3RyZWFtQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGFi
bGVTdHJlYW1CdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgw
NjFCQjMxMTBEMDBCNzY0RTkgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1
aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjg3OSw2ICsxNjg4MSw4
IEBACiAJCQkJNTEwNUYwNjgxRDRCQTU0MTAwRkI4MEJDIC8qIElEQkdldFJlY29yZERhdGEuaCAq
LywKIAkJCQk1MUY3OThFQjFCRTg4MEQzMDA4QUU0OTEgLyogSURCSW5kZXhJbmZvLmNwcCAqLywK
IAkJCQk1MUY3OThFQzFCRTg4MEQzMDA4QUU0OTEgLyogSURCSW5kZXhJbmZvLmggKi8sCisJCQkJ
NTEyREYyNTAxREQxOTdEODAwNjY3N0E0IC8qIElEQkl0ZXJhdGVDdXJzb3JEYXRhLmNwcCAqLywK
KwkJCQk1MTJERjI1MTFERDE5N0Q4MDA2Njc3QTQgLyogSURCSXRlcmF0ZUN1cnNvckRhdGEuaCAq
LywKIAkJCQk1MTYwNzEyQzFCRDgzMDcyMDBEQkM0RjIgLyogSURCT2JqZWN0U3RvcmVJbmZvLmNw
cCAqLywKIAkJCQk1MTYwNzEyRDFCRDgzMDcyMDBEQkM0RjIgLyogSURCT2JqZWN0U3RvcmVJbmZv
LmggKi8sCiAJCQkJNTEwQTU4RjUxQkFDQzRBNTAwQzE5MjgyIC8qIElEQlJlcXVlc3REYXRhLmNw
cCAqLywKQEAgLTE3MzMzLDggKzE3MzM3LDYgQEAKIAkJCQk0NEEyOEFBRTEyREZCOEJGMDBBRTky
M0IgLyogTWF0aE1MTmFtZXMuaCAqLywKIAkJCQk3MUUyMTgzODE3MzU5RkI4MDA2RTZFNEQgLyog
UGx1Z0luc1Jlc291cmNlcy5oICovLAogCQkJCTcxRTIxODM5MTczNTlGQjgwMDZFNkU0RCAvKiBQ
bHVnSW5zUmVzb3VyY2VzRGF0YS5jcHAgKi8sCi0JCQkJOTkwOEIwRkExQkNBRDA3RDAwNzYzRjY0
IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJCdWlsdGlucy5jcHAgKi8sCi0JCQkJOTkw
OEIwRkIxQkNBRDA3RDAwNzYzRjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJCdWls
dGlucy5oICovLAogCQkJCTk5MDhCMEZEMUJDQUQwN0QwMEVEM0Y2NCAvKiBSZWFkYWJsZUJ5dGVT
dHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8sCiAJCQkJOUIwM0Q4MDYxQkIzMTEwRDAwQjcz
RjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi8sCiAJCQkJOTkw
OEIwRjkxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwICovLApA
QCAtMjUwNzcsNyArMjUwNzksNiBAQAogCQkJCUJDMUJERjI1MTU2QzE4QzcwMDFDMTI0MyAvKiBE
T01FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8q
IERPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODE4NUYzQjA5NzY1NzY2MDA1ODI2
RDkgLyogRE9NSW1wbGVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCUUzNUNBMTRFMURC
QzNBNDIwMEY4MzUxNiAvKiBET01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMzE1MEVBNzFEQTcyMTkzMDAxOTQwMTIgLyogRE9NSklUSGVscGVycy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTlDNkU0RTQwRDc0NUUwNTAwNjQ0MkU5IC8qIERPTU1pbWVUeXBl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUM2RTRFODBENzQ1RTE4MDA2NDQyRTkgLyogRE9NTWlt
ZVR5cGVBcnJheS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTQ3MCw2ICsyNTQ3MSw3IEBACiAJCQkJ
QTgxMzY5RDYwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTlCQzZDMjFCMTNDQ0M5N0IwMDhFMDMzNyAvKiBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMwNTE5OTYxQkIwRjExMDAwRjM3NzJF
IC8qIEhUTUxUaW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEyREYyNTMxREQxOTg3
RTAwNjY3N0E0IC8qIElEQkl0ZXJhdGVDdXJzb3JEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
ODcxREMyODBBMTUyMDU3MDBCMTJBNjggLyogSFRNTFRpdGxlRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTc3QjM4NzgxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxUb2tlbml6ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3MDc1NjhDMTQyMjYyRDYwMDQxNDE2MSAvKiBIVE1MVHJhY2tFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NzkxLDkgKzI2NzkzLDkgQEAKIAkJCQlGNTVCM0RD
RTEyNTFGMTJEMDAzRUYyNjkgLyogUmFuZ2VJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZFODRFOUUxMTc2NjhCRjEwMDgxNUI2OCAvKiBSYXN0ZXJTaGFwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTg0RDgyN0MxMUQzMzNFRDAwOTcyOTkwIC8qIFJhd0RhdGFEb2N1bWVudFBhcnNlci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNDE2RTZGRTgxQkJEMTJERjAwMEEzRjY0IC8qIFJlYWRhYmxl
Qnl0ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTZFNkZF
ODFCQkQxMkRGMDAwQTNGNjQgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDQzIC8qIFJlYWRhYmxlU3Ry
ZWFtQnVpbHRpbnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxNkU2RkU4MUJCRDEyREYwMDBBNjA0
MyAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTZFNkZFODFCQkQxMkRGMDAwQTYwNDMgLyogUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxz
QnVpbHRpbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDNDMTJCMDI2NzYwMEMxQTM1OSAv
KiBSZWFsdGltZUFuYWx5c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTRGNjU3MTFBQTk5N0Yx
MDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0
RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMu
aCBpbiBIZWFkZXJzICovLApAQCAtMjg4MzQsNyArMjg4MzYsNiBAQAogCQkJCUJDMUJERjI0MTU2
QzE4ODMwMDFDMTI0MyAvKiBET01FcnJvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRUQ2MDlC
QzExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTgxODVGM0UwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUltcGxlbWVudGF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUUzNUNBMTREMURCQzNBM0YwMEY4MzUxNiAvKiBET01KSVRBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNEUzMEQ3NDVFMDUwMDY0
NDJFOSAvKiBET01NaW1lVHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUM2RTRFNzBENzQ1
RTE4MDA2NDQyRTkgLyogRE9NTWltZVR5cGVBcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MkI2QzlDMjE1RTNGNERGMDA2OTBCMDUgLyogRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI5MzAzLDYgKzI5MzA0LDcgQEAKIAkJCQk0QTlDQzgyMDE2QkY5QkI0
MDBFQzY0NUEgLyogSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3QUIwQjFDMDEyMTFBNjIyMDBBNzY5NDAgLyogSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0MUYwNjIxNTBGNUYxOTI2MDBBMDdFQUMgLyogSW5zcGVjdG9y
RGF0YWJhc2VSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTJERjI1MjFERDE5ODc3
MDA2Njc3QTQgLyogSURCSXRlcmF0ZUN1cnNvckRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0EyNDU4N0IxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUYzRDRDNDc4MTJFMDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBNzRFQ0JBMTAxODM5QTYwMEJGOTM5
RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggZGUzYzk5YzQ3NmQ2ZDljMGJi
OWI3YWM4ZDllNWMwZDI0OGFmNmRhZi4uY2VlOWFlZWI1MGY2ZTJmNDk3ODQ0MmI1NjJhMmY1YWE3
NTBmZWQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApAQCAt
MzIxLDkgKzMyMSw5IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpvcGVuQ3Vyc29y
KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCBjb25zdCBJCiAgICAgRGF0YWJhc2VQcm9j
ZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5vcGVuQ3Vyc29yKHJlcXVlc3QsIGluZm8pOwog
fQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6aXRlcmF0ZUN1cnNvcihjb25zdCBJ
REJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCB1bnNpZ25lZCBs
b25nIGNvdW50KQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Oml0ZXJhdGVDdXJzb3Io
Y29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQkl0ZXJhdGVDdXJzb3JEYXRh
JiBkYXRhKQogewotICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCku
aXRlcmF0ZUN1cnNvcihyZXF1ZXN0LCBrZXksIGNvdW50KTsKKyAgICBEYXRhYmFzZVByb2Nlc3M6
OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLml0ZXJhdGVDdXJzb3IocmVxdWVzdCwgZGF0YSk7CiB9
CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojplc3RhYmxpc2hUcmFuc2FjdGlvbih1
aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlv
bkluZm8mIGluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaAppbmRleCBl
NTRlZjkwNWQ3NWU1Y2IwY2EzNWE4NDM2MGZiNGZjMDE2YzU5NmFmLi45Yjc4ZmU4YTliMWM5NzZj
YjNkMjc4MTQyY2I3NDJjNTU2YTM4MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAgY2xhc3MgSURCVmFsdWU7CiBjbGFzcyBTZXJpYWxp
emVkU2NyaXB0VmFsdWU7CiBzdHJ1Y3QgSURCR2V0QWxsUmVjb3Jkc0RhdGE7CiBzdHJ1Y3QgSURC
R2V0UmVjb3JkRGF0YTsKK3N0cnVjdCBJREJJdGVyYXRlQ3Vyc29yRGF0YTsKIHN0cnVjdCBJREJL
ZXlSYW5nZURhdGE7CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogfQpAQCAtMTA3LDcgKzEw
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldENvdW50KGNvbnN0IFdlYkNvcmU6OklEQlJlcXVl
c3REYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJik7CiAgICAgdm9pZCBkZWxl
dGVSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJ
REJLZXlSYW5nZURhdGEmKTsKICAgICB2b2lkIG9wZW5DdXJzb3IoY29uc3QgV2ViQ29yZTo6SURC
UmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJDdXJzb3JJbmZvJik7Ci0gICAgdm9pZCBp
dGVyYXRlQ3Vyc29yKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgY29uc3QgV2ViQ29y
ZTo6SURCS2V5RGF0YSYsIHVuc2lnbmVkIGxvbmcgY291bnQpOworICAgIHZvaWQgaXRlcmF0ZUN1
cnNvcihjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQkl0
ZXJhdGVDdXJzb3JEYXRhJik7CiAKICAgICB2b2lkIGVzdGFibGlzaFRyYW5zYWN0aW9uKHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uSW5mbyYpOwogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbgppbmRleCBlMzM3MzFiYmJjZDcyNjJjMzQz
ZTE5NmE0YjNiNzg4OTZhODJiMjM2Li4xYTM3NmJjZDBlMGVhNzk4YjkwYTg1NzM0MjVmZDU5Yjdl
OTNjNmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5t
ZXNzYWdlcy5pbgpAQCAtNDEsNyArNDEsNyBAQCBtZXNzYWdlcyAtPiBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQgewogICAgIEdldENvdW50KFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3RE
YXRhLCBzdHJ1Y3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhIHJhbmdlKTsKICAgICBEZWxldGVS
ZWNvcmQoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEsIHN0cnVjdCBXZWJDb3Jl
OjpJREJLZXlSYW5nZURhdGEgcmFuZ2UpOwogICAgIE9wZW5DdXJzb3IoV2ViQ29yZTo6SURCUmVx
dWVzdERhdGEgcmVxdWVzdERhdGEsIFdlYkNvcmU6OklEQkN1cnNvckluZm8gaW5mbyk7Ci0gICAg
SXRlcmF0ZUN1cnNvcihXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwgV2ViQ29y
ZTo6SURCS2V5RGF0YSBrZXksIHVpbnQzMl90IGNvdW50KTsKKyAgICBJdGVyYXRlQ3Vyc29yKFdl
YkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBzdHJ1Y3QgV2ViQ29yZTo6SURCSXRl
cmF0ZUN1cnNvckRhdGEgZGF0YSk7CiAKICAgICBFc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbklu
Zm8gaW5mbyk7CiAgICAgRGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcAppbmRleCAyY2EzNTFiZDU4MmZjOTM3NjFiYjNlM2JhN2Y0NDQ1ZTY3
YjliNmFjLi5jNmM2YjRiZDBkMjA1M2RlOWQ3YjFiMGE5OWY5ZmEzZjViNDc3MzY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSURCRGF0YWJhc2VFeGNlcHRpb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0lEQkVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJJbmRleEluZm8u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0lEQkl0ZXJhdGVDdXJzb3JEYXRhLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9JREJLZXlSYW5nZURhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lEQk9iamVjdFN0
b3JlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCT3BlbkRCUmVxdWVzdC5oPgpAQCAtMTc0
LDkgKzE3NSw5IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpvcGVuQ3Vyc29yKGNv
bnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uCiAgICAgc2VuZChNZXNzYWdlczo6
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpPcGVuQ3Vyc29yKHJlcXVlc3REYXRhLCBpbmZvKSk7
CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjppdGVyYXRlQ3Vyc29yKGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5RGF0YSYga2V5LCB1bnNp
Z25lZCBsb25nIGNvdW50KQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Oml0ZXJhdGVD
dXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJJdGVyYXRl
Q3Vyc29yRGF0YSYgZGF0YSkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6Okl0ZXJhdGVDdXJzb3IocmVxdWVzdERhdGEsIGtleSwgY291bnQpKTsKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Okl0ZXJhdGVDdXJzb3IocmVx
dWVzdERhdGEsIGRhdGEpKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmVz
dGFibGlzaFRyYW5zYWN0aW9uKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCA4YjE3ODMxM2I5NDQwNDEzOTY1NTRjZWIxZGM2
MGZmOWY2Y2IwOGUwLi4zMDcxZTk5MTc5NThiYjc4ZTU4OTY0NzcwOTdhMWJhNzQwMzA1YzkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCkBAIC02NCw3
ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldENvdW50KGNvbnN0IFdlYkNvcmU6OklEQlJl
cXVlc3REYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJikgZmluYWw7CiAgICAg
dm9pZCBkZWxldGVSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBX
ZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmKSBmaW5hbDsKICAgICB2b2lkIG9wZW5DdXJzb3IoY29u
c3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJDdXJzb3JJbmZv
JikgZmluYWw7Ci0gICAgdm9pZCBpdGVyYXRlQ3Vyc29yKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVl
c3REYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIHVuc2lnbmVkIGxvbmcgY291bnQp
IGZpbmFsOworICAgIHZvaWQgaXRlcmF0ZUN1cnNvcihjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0
RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQkl0ZXJhdGVDdXJzb3JEYXRhJikgZmluYWw7CiAgICAg
dm9pZCBlc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm8mKSBmaW5hbDsKICAgICB2
b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpIGZpbmFsOwo=
</data>
<flag name="review"
          id="316883"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>