<?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>230907</bug_id>
          
          <creation_ts>2021-09-28 11:53:57 -0700</creation_ts>
          <short_desc>Add support for sending Expected&lt;void, E&gt; in IPC messages</short_desc>
          <delta_ts>2021-09-29 08:40:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230580</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1797980</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-28 11:53:57 -0700</bug_when>
    <thetext>While developing WebInspectorUIExtensionController it became apparent that Expected&lt;void, Inspector::ExtensionError&gt; does not work as expected. The first of many compilation errors looks something like:

In file included from /Users/bburg/repos/webkit/OpenSource/WebKitBuild/Release/DerivedSources/WebKit2/WebInspectorUIExtensionControllerMessageReceiver.cpp:29:
/Users/bburg/repos/webkit/OpenSource/Source/WebKit/Platform/IPC/ArgumentCoders.h:658:38: note: in instantiation of template class &apos;std::optional&lt;void&gt;&apos; requested here
            std::optional&lt;ValueType&gt; value;
In file included from /Users/bburg/repos/webkit/OpenSource/WebKitBuild/Release/DerivedSources/WebKit2/WebInspectorUIExtensionControllerMessageReceiver.cpp:27:
In file included from /Users/bburg/repos/webkit/OpenSource/Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.h:30:
In file included from /Users/bburg/repos/webkit/OpenSource/Source/WebKit/Platform/IPC/Connection.h:31:
/Users/bburg/repos/webkit/OpenSource/Source/WebKit/Platform/IPC/Decoder.h:114:23: note: in instantiation of member function &apos;IPC::ArgumentCoder&lt;std::experimental::expected&lt;void, Inspector::ExtensionError&gt;&gt;::decode&apos; requested here
            t = Impl::decode(*this);
/Users/bburg/repos/webkit/OpenSource/WebKitBuild/Release/DerivedSources/WebKit2/WebInspectorUIExtensionControllerMessageReceiver.cpp:180:13: note: in instantiation of function template specialization &apos;IPC::Decoder::operator&gt;&gt;&lt;std::experimental::expected&lt;void, Inspector::ExtensionError&gt;&gt;&apos; requested here
    decoder &gt;&gt; result;


I believe this can be fixed with a special-cased implementation in wtf/persistence/PersistentCoders.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798013</commentid>
    <comment_count>1</comment_count>
      <attachid>439513</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-09-28 13:32:27 -0700</bug_when>
    <thetext>Created attachment 439513
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798015</commentid>
    <comment_count>2</comment_count>
      <attachid>439513</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-28 13:34:52 -0700</bug_when>
    <thetext>Comment on attachment 439513
Patch

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

&gt; Source/WTF/ChangeLog:3
&gt; +        Add support for sending Expected&lt;void, E&gt; in IPC messages

This says IPC

&gt; Source/WTF/ChangeLog:8
&gt; +        * wtf/persistence/PersistentCoders.h:

But it updates persistent coders that are used for serializing to disk.

Which one is right? Hard to say given that it is unused in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798018</commentid>
    <comment_count>3</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-09-28 13:40:28 -0700</bug_when>
    <thetext>oh whoops I put this in the wrong spot

good catch @Chris Dumez!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798019</commentid>
    <comment_count>4</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-09-28 13:43:10 -0700</bug_when>
    <thetext>ill just wait for the related patch to land and then move this to the right spot :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798023</commentid>
    <comment_count>5</comment_count>
      <attachid>439513</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-28 13:49:35 -0700</bug_when>
    <thetext>Comment on attachment 439513
Patch

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

&gt; Source/WTF/wtf/persistence/PersistentCoders.h:121
&gt; +            return std::optional&lt;Expected&lt;T, E&gt;&gt; { Unexpected&lt;E&gt; { WTFMove(*error) } };

Same comment as below.

&gt; Source/WTF/wtf/persistence/PersistentCoders.h:128
&gt; +        return std::optional&lt;Expected&lt;T, E&gt;&gt; { Expected&lt;T, E&gt; { WTFMove(*value) } };

Same comment as below.

&gt; Source/WTF/wtf/persistence/PersistentCoders.h:156
&gt; +            return std::optional&lt;Expected&lt;void, E&gt;&gt; { Unexpected&lt;E&gt; { WTFMove(*error) } };

I believe the following should work:
return Expected&lt;void, E&gt; { Unexpected&lt;E&gt; { WTFMove(*error) } };

&gt; Source/WTF/wtf/persistence/PersistentCoders.h:159
&gt; +        return std::optional&lt;Expected&lt;void, E&gt;&gt; { Expected&lt;void, E&gt; { } };

We probably don&apos;t see `std::optional&lt;Expected&lt;void, E&gt;&gt; { }`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798128</commentid>
    <comment_count>6</comment_count>
      <attachid>439551</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-09-28 18:03:34 -0700</bug_when>
    <thetext>Created attachment 439551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798189</commentid>
    <comment_count>7</comment_count>
      <attachid>439551</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-09-28 22:52:21 -0700</bug_when>
    <thetext>Comment on attachment 439551
Patch

Web Inspector-related changes look good to me. r+ if Chris is OK with the ArgumentCoder changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798352</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-29 08:39:33 -0700</bug_when>
    <thetext>Committed r283220 (242262@main): &lt;https://commits.webkit.org/242262@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439551.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798353</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-29 08:40:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/83672326&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439513</attachid>
            <date>2021-09-28 13:32:27 -0700</date>
            <delta_ts>2021-09-28 18:03:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230907-20210928133226.patch</filename>
            <type>text/plain</type>
            <size>3309</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYTVlMmVjZGI0NTVjYTY1ZTYwNmQ5YzVmYjMyM2I1YWY1N2MwNzIxYS4uYTcwZDg0NDAy
NWU0ZGUwN2JkNzQ2ODVjYWRmYTMxM2M4MmNhMWEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAy
MS0wOS0yOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHNlbmRpbmcgRXhwZWN0ZWQ8dm9pZCwgRT4gaW4gSVBDIG1lc3NhZ2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA5MDcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9wZXJz
aXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmg6CisKIDIwMjEtMDktMjcgIEplYW4tWXZlcyBBdmVu
YXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBWb3JiaXMgZGVjb2RlciBjYW4ndCBiZSBp
bnN0YW50aWF0ZWQgLSBSZW1vdmUgd29ya2Fyb3VuZCBhZGRlZCBpbiBidWcgMjI4MTM5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmggYi9T
b3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmgKaW5kZXggMjYwOGU3
MWViMzg3ZmU2YzY4ZjBkNGVjNjkxOTA0NTVlZDExODBhMi4uNjQ0NzhiODE0NTI2NzExYTRmZTk4
MzY4ZjkyMDg3NDA5MjFiMDkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvcGVyc2lzdGVu
Y2UvUGVyc2lzdGVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1Bl
cnNpc3RlbnRDb2RlcnMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSA8dXRpbGl0eT4K
ICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KKyNpbmNsdWRlIDx3dGYvRXhwZWN0
ZWQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTkyLDYgKzkzLDczIEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBDb2RlcjxzdGQ6Om9wdGlvbmFsPFQ+PiB7CiAgICAgfQogfTsKIAor
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRT4gc3RydWN0IENvZGVyPEV4cGVjdGVkPFQs
IEU+PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEV4
cGVjdGVkPFQsIEU+JiBleHBlY3RlZCkKKyAgICB7CisgICAgICAgIGlmICghZXhwZWN0ZWQpIHsK
KyAgICAgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7CisgICAgICAgICAgICBlbmNvZGVyIDw8IGV4
cGVjdGVkLmVycm9yKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIGVuY29kZXIgPDwgdHJ1ZTsKKyAgICAgICAgZW5jb2RlciA8PCBleHBlY3RlZC52
YWx1ZSgpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxU
LCBFPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlv
bmFsPGJvb2w+IGhhc1ZhbHVlOworICAgICAgICBkZWNvZGVyID4+IGhhc1ZhbHVlOworICAgICAg
ICBpZiAoIWhhc1ZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICBpZiAoISpoYXNWYWx1ZSkgeworICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxFPiBlcnJv
cjsKKyAgICAgICAgICAgIGRlY29kZXIgPj4gZXJyb3I7CisgICAgICAgICAgICBpZiAoIWVycm9y
KQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxULCBFPj4geyBVbmV4cGVjdGVkPEU+IHsgV1RGTW92
ZSgqZXJyb3IpIH0gfTsKKyAgICAgICAgfQorCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VD4gdmFs
dWU7CisgICAgICAgIGRlY29kZXIgPj4gdmFsdWU7CisgICAgICAgIGlmICghdmFsdWUpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25h
bDxFeHBlY3RlZDxULCBFPj4geyBFeHBlY3RlZDxULCBFPiB7IFdURk1vdmUoKnZhbHVlKSB9IH07
CisgICAgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgRT4gc3RydWN0IENvZGVyPEV4cGVjdGVk
PHZvaWQsIEU+PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEV4cGVjdGVkPHZvaWQsIEU+JiBleHBlY3RlZCkKKyAgICB7CisgICAgICAgIGlmICghZXhw
ZWN0ZWQpIHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7CisgICAgICAgICAgICBlbmNv
ZGVyIDw8IGV4cGVjdGVkLmVycm9yKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBlbmNvZGVyIDw8IHRydWU7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEV4cGVjdGVkPHZvaWQsIEU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaGFzVmFsdWU7CisgICAgICAgIGRlY29k
ZXIgPj4gaGFzVmFsdWU7CisgICAgICAgIGlmICghaGFzVmFsdWUpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIGlmICghKmhhc1ZhbHVlKSB7CisgICAgICAgICAg
ICBzdGQ6Om9wdGlvbmFsPEU+IGVycm9yOworICAgICAgICAgICAgZGVjb2RlciA+PiBlcnJvcjsK
KyAgICAgICAgICAgIGlmICghZXJyb3IpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPHZvaWQsIEU+
PiB7IFVuZXhwZWN0ZWQ8RT4geyBXVEZNb3ZlKCplcnJvcikgfSB9OworICAgICAgICB9CisKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8dm9pZCwgRT4+IHsgRXhwZWN0ZWQ8
dm9pZCwgRT4geyB9IH07CisgICAgfQorfTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgS2V5VHlwZSwg
dHlwZW5hbWUgVmFsdWVUeXBlPiBzdHJ1Y3QgQ29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlw
ZSwgVmFsdWVUeXBlPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+JiBwYWlyKQogICAg
IHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439551</attachid>
            <date>2021-09-28 18:03:34 -0700</date>
            <delta_ts>2021-09-29 08:39:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230907-20210928180333.patch</filename>
            <type>text/plain</type>
            <size>21404</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMTczZjRjZTIwYzE3OTU0Nzk1NWMwMWVmYmIzMThhM2FjYzJiM2M2NC4uMGIy
NTQyNmI4ZDU4Zjg5NGQ5YzQ0NzBlZjNlYWYwYzVmMWY2MzBkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMiBAQAorMjAyMS0wOS0yOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNlbmRpbmcgRXhwZWN0ZWQ8dm9pZCwgRT4gaW4gSVBD
IG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzA5MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6cmVnaXN0ZXJFeHRlbnNpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OnVucmVnaXN0ZXJFeHRlbnNp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6
OnNob3dFeHRlbnNpb25UYWIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OnJl
Z2lzdGVyRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyUHJveHk6OnVucmVnaXN0ZXJFeHRlbnNpb24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6c2hvd0V4dGVuc2lvblRh
Yik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW06CisgICAg
ICAgICgtW19XS0luc3BlY3RvciB1bnJlZ2lzdGVyRXh0ZW5zaW9uOmNvbXBsZXRpb25IYW5kbGVy
Ol0pOgorICAgICAgICAoLVtfV0tJbnNwZWN0b3Igc2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlm
aWVyOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW19XS1Jl
bW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyIHVucmVnaXN0ZXJFeHRlbnNpb246Y29tcGxl
dGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250
cm9sbGVyIHNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRpZmllcjpjb21wbGV0aW9uSGFuZGxlcjpd
KToKKyAgICAgICAgUmVwbGFjZSBgRXhwZWN0ZWQ8Ym9vbCwgLi4uPmAgd2l0aCBgRXhwZWN0ZWQ8
dm9pZCwgLi4uPmAgbm93IHRoYXQgaXQgY2FuIGJlIHNlbnQgb3ZlciBJUEMuCisgICAgICAgIE5v
IGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5IGFzIHRoZSBgYm9vbGAgd2FzIG5ldmVyIGFjdHVhbGx5
IHVzZWQgKGl0IHdhcyBhIGhhcmRjb2RlZCBgdHJ1ZWApLgorCiAyMDIxLTA5LTI4ICBCSiBCdXJn
ICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRkIFNQSSB0byBzZWxlY3Qg
YSB0YWIgY3JlYXRlZCBieSBfV0tJbnNwZWN0b3JFeHRlbnNpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGE4Yzg5M2YwYzUyNDBhODg4OWMzNDUx
NGY5ZmIxZWZlZTBkNjI3MGEuLjQ3OWRiNjBlZGMyNzE2ZDU1NjA2ZjY1MmYyNDMxYWQzNjlmNjU3
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8d3RmL0JveC5oPgog
I2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgorI2luY2x1ZGUgPHd0Zi9FeHBlY3Rl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1Rp
bWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CkBAIC02NzEsNiArNjcyLDM2IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAgfQogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgRXJy
b3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDx2b2lkLCBFcnJvclR5cGU+PiB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEV4cGVjdGVkPHZvaWQsIEVycm9yVHlwZT4mIGV4cGVjdGVkKQor
ICAgIHsKKyAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFsdWUoKSkgeworICAgICAgICAgICAg
ZW5jb2RlciA8PCBmYWxzZTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQuZXJyb3Io
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGVuY29kZXIgPDwg
dHJ1ZTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8dm9pZCwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwor
ICAgICAgICBkZWNvZGVyID4+IGhhc1ZhbHVlOworICAgICAgICBpZiAoIWhhc1ZhbHVlKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBpZiAoKmhhc1ZhbHVlKQor
ICAgICAgICAgICAgcmV0dXJuIHt7IH19OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8RXJyb3JU
eXBlPiBlcnJvcjsKKyAgICAgICAgZGVjb2RlciA+PiBlcnJvcjsKKyAgICAgICAgaWYgKCFlcnJv
cikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IG1h
a2VVbmV4cGVjdGVkKFdURk1vdmUoKmVycm9yKSkgfTsKKyAgICB9Cit9OworCiB0ZW1wbGF0ZTxz
aXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlciB7CiAg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFu
dDxUeXBlcy4uLj4mIHZhcmlhbnQsIHVuc2lnbmVkIGkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQppbmRleCBmZDU1OTY5ZTdhZWY3Yzg2
MzRlMTU5OWJkZWQ2MmI1ZTA2MzYyZWEzLi41Y2JlMGQyNzVlZTYzNDY0M2JjZjkzYzY2MTBhMDU3
YWI2ZGZkOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLSW5zcGVjdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tJbnNwZWN0b3IubW0KQEAgLTI1Nyw3ICsyNTcsNyBAQCAtICh2b2lkKXVucmVnaXN0ZXJFeHRl
bnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVuc2lvbiBjb21wbGV0aW9uSGFuZGxl
cgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgX2luc3BlY3Rvci0+ZXh0ZW5zaW9uQ29u
dHJvbGxlcigpLT51bnJlZ2lzdGVyRXh0ZW5zaW9uKGV4dGVuc2lvbi5leHRlbnNpb25JRCwgW3By
b3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZiksIGNhcHR1cmVkQmxvY2sgPSBtYWtlQmxvY2tQ
dHIoY29tcGxldGlvbkhhbmRsZXIpXSAoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpFeHRlbnNp
b25FcnJvcj4gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBfaW5zcGVjdG9yLT5leHRlbnNpb25Db250
cm9sbGVyKCktPnVucmVnaXN0ZXJFeHRlbnNpb24oZXh0ZW5zaW9uLmV4dGVuc2lvbklELCBbcHJv
dGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgY2FwdHVyZWRCbG9jayA9IG1ha2VCbG9ja1B0
cihjb21wbGV0aW9uSGFuZGxlcildIChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4dGVuc2lv
bkVycm9yPiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkgewogICAgICAg
ICAgICAgY2FwdHVyZWRCbG9jayhbTlNFcnJvciBlcnJvcldpdGhEb21haW46V0tFcnJvckRvbWFp
biBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOkB7IE5TTG9jYWxpemVkRmFpbHVyZVJlYXNv
bkVycm9yS2V5OiBJbnNwZWN0b3I6OmV4dGVuc2lvbkVycm9yVG9TdHJpbmcocmVzdWx0LmVycm9y
KCkpfV0pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjc5LDcgKzI3OSw3IEBAIC0gKHZvaWQp
c2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWV4dGVuc2lvblRhYklk
ZW50aWZpZXIgY29tcGxlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBfaW5zcGVjdG9y
LT5leHRlbnNpb25Db250cm9sbGVyKCktPnNob3dFeHRlbnNpb25UYWIoZXh0ZW5zaW9uVGFiSWRl
bnRpZmllciwgW3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZiksIGNhcHR1cmVkQmxvY2sg
PSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVj
dG9yOjpFeHRlbnNpb25FcnJvcj4mJiByZXN1bHQpIG11dGFibGUgeworICAgIF9pbnNwZWN0b3It
PmV4dGVuc2lvbkNvbnRyb2xsZXIoKS0+c2hvd0V4dGVuc2lvblRhYihleHRlbnNpb25UYWJJZGVu
dGlmaWVyLCBbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgY2FwdHVyZWRCbG9jayA9
IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0
b3I6OkV4dGVuc2lvbkVycm9yPiYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVz
dWx0KSB7CiAgICAgICAgICAgICBjYXB0dXJlZEJsb2NrKFtOU0Vycm9yIGVycm9yV2l0aERvbWFp
bjpXS0Vycm9yRG9tYWluIGNvZGU6V0tFcnJvclVua25vd24gdXNlckluZm86QHsgTlNMb2NhbGl6
ZWRGYWlsdXJlUmVhc29uRXJyb3JLZXk6IEluc3BlY3Rvcjo6ZXh0ZW5zaW9uRXJyb3JUb1N0cmlu
ZyhyZXN1bHQuZXJyb3IoKSl9XSk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVt
b3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggNmZjNTUzYjZiZGRlMDY2MWMw
NjE1MTMyYjc1YTAwOTMxZjVlMjEzMS4uMTE0Zjc0OWQ0NjYyNDM5M2ZjMjFkMTk4YzJhMjljNDk5
OWRkN2UzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5t
bQpAQCAtMTk0LDcgKzE5NCw3IEBAIC0gKHZvaWQpdW5yZWdpc3RlckV4dGVuc2lvbjooX1dLSW5z
cGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGNvbXBsZXRpb25IYW5kbGVyCiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNv
ZGU6V0tFcnJvclVua25vd24gdXNlckluZm86QHsgTlNMb2NhbGl6ZWRGYWlsdXJlUmVhc29uRXJy
b3JLZXk6IEluc3BlY3Rvcjo6ZXh0ZW5zaW9uRXJyb3JUb1N0cmluZyhJbnNwZWN0b3I6OkV4dGVu
c2lvbkVycm9yOjpJbnZhbGlkUmVxdWVzdCkgfV0pOwogICAgICAgICByZXR1cm47CiAgICAgfQot
ICAgIG1fcmVtb3RlSW5zcGVjdG9yUHJveHktPmV4dGVuc2lvbkNvbnRyb2xsZXIoKS0+dW5yZWdp
c3RlckV4dGVuc2lvbihleHRlbnNpb24uZXh0ZW5zaW9uSUQsIFtwcm90ZWN0ZWRTZWxmID0gcmV0
YWluUHRyKHNlbGYpLCBjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5k
bGVyKV0gKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgbV9yZW1vdGVJbnNwZWN0b3JQcm94eS0+ZXh0ZW5zaW9uQ29udHJvbGxl
cigpLT51bnJlZ2lzdGVyRXh0ZW5zaW9uKGV4dGVuc2lvbi5leHRlbnNpb25JRCwgW3Byb3RlY3Rl
ZFNlbGYgPSByZXRhaW5QdHIoc2VsZiksIGNhcHR1cmVkQmxvY2sgPSBtYWtlQmxvY2tQdHIoY29t
cGxldGlvbkhhbmRsZXIpXSAoRXhwZWN0ZWQ8dm9pZCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJv
cj4gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgICAg
IGNhcHR1cmVkQmxvY2soW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29k
ZTpXS0Vycm9yVW5rbm93biB1c2VySW5mbzpAeyBOU0xvY2FsaXplZEZhaWx1cmVSZWFzb25FcnJv
cktleTogSW5zcGVjdG9yOjpleHRlbnNpb25FcnJvclRvU3RyaW5nKHJlc3VsdC5lcnJvcigpKSB9
XSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMjYsNyArMjI2LDcgQEAgLSAodm9pZClzaG93
RXh0ZW5zaW9uVGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopZXh0ZW5zaW9uVGFiSWRlbnRp
ZmllciBjb21wbGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcmVtb3RlSW5zcGVj
dG9yUHJveHktPmV4dGVuc2lvbkNvbnRyb2xsZXIoKS0+c2hvd0V4dGVuc2lvblRhYihleHRlbnNp
b25UYWJJZGVudGlmaWVyLCBbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgY2FwdHVy
ZWRCbG9jayA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIChFeHBlY3RlZDxib29s
LCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgbV9y
ZW1vdGVJbnNwZWN0b3JQcm94eS0+ZXh0ZW5zaW9uQ29udHJvbGxlcigpLT5zaG93RXh0ZW5zaW9u
VGFiKGV4dGVuc2lvblRhYklkZW50aWZpZXIsIFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNl
bGYpLCBjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gKEV4
cGVjdGVkPHZvaWQsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+JiYgcmVzdWx0KSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgICAgIGNhcHR1cmVkQmxvY2soW05T
RXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpXS0Vycm9yVW5rbm93biB1
c2VySW5mbzpAeyBOU0xvY2FsaXplZEZhaWx1cmVSZWFzb25FcnJvcktleTogSW5zcGVjdG9yOjpl
eHRlbnNpb25FcnJvclRvU3RyaW5nKHJlc3VsdC5lcnJvcigpKX1dKTsKICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHku
Y3BwCmluZGV4IDc0MmFhMjdiMWVhYzM1OGFmMDViNDc2MTI0NGVjMjFmZDMwMGEzMmQuLjZhYjk1
YzQwNDYxYTMyYWVhZjIzMTBiYTI5Yjc2ZTZkNjdmOWNjOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcApAQCAtOTcsNyArOTcsNyBAQCB2
b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpyZWdpc3RlckV4dGVu
c2lvbihjb25zdCBJbnNwZWN0b3I6OgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
LSAgICAgICAgd2Vha1RoaXMtPm1faW5zcGVjdG9yUGFnZS0+c2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OlJlZ2lzdGVyRXh0ZW5z
aW9uIHsgZXh0ZW5zaW9uSUQsIGRpc3BsYXlOYW1lIH0sIFtzdHJvbmdUaGlzID0gUmVmIHsgKndl
YWtUaGlzLmdldCgpIH0sIGV4dGVuc2lvbklELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVy
cm9yPiByZXN1bHQpIG11dGFibGUgeworICAgICAgICB3ZWFrVGhpcy0+bV9pbnNwZWN0b3JQYWdl
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlcjo6UmVnaXN0ZXJFeHRlbnNpb24geyBleHRlbnNpb25JRCwgZGlzcGxheU5hbWUgfSwg
W3N0cm9uZ1RoaXMgPSBSZWYgeyAqd2Vha1RoaXMuZ2V0KCkgfSwgZXh0ZW5zaW9uSUQsIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKEV4cGVjdGVkPHZvaWQs
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBpZiAoIXJlc3VsdCkgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VV
bmV4cGVjdGVkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OlJlZ2lzdHJhdGlvbkZhaWxlZCkp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIFdlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpyZWdpc3RlckV4dGVuc2lvbihjb25z
dCBJbnNwZWN0b3I6OgogICAgIH0pOwogfQogCi12b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlclByb3h5Ojp1bnJlZ2lzdGVyRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0
ZW5zaW9uSUQmIGV4dGVuc2lvbklELCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6dW5yZWdpc3Rl
ckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHZvaWQsIEluc3BlY3Rvcjo6RXh0ZW5z
aW9uRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICB3aGVuRnJvbnRlbmRIYXNM
b2FkZWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGV4dGVuc2lvbklELCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RoaXMtPm1faW5zcGVjdG9yUGFnZSkgewpAQCAt
MTE5LDcgKzExOSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJv
eHk6OnVucmVnaXN0ZXJFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICB3ZWFrVGhpcy0+bV9pbnNwZWN0b3JQYWdlLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
cjo6VW5yZWdpc3RlckV4dGVuc2lvbiB7IGV4dGVuc2lvbklEIH0sIFtzdHJvbmdUaGlzID0gUmVm
IHsgKndlYWtUaGlzLmdldCgpIH0sIGV4dGVuc2lvbklELCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVu
c2lvbkVycm9yPiByZXN1bHQpIG11dGFibGUgeworICAgICAgICB3ZWFrVGhpcy0+bV9pbnNwZWN0
b3JQYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlcjo6VW5yZWdpc3RlckV4dGVuc2lvbiB7IGV4dGVuc2lvbklEIH0sIFtzdHJv
bmdUaGlzID0gUmVmIHsgKndlYWtUaGlzLmdldCgpIH0sIGV4dGVuc2lvbklELCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShFeHBlY3RlZDx2b2lkLCBJbnNw
ZWN0b3I6OkV4dGVuc2lvbkVycm9yPiByZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAgaWYg
KCFyZXN1bHQpIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBl
Y3RlZChJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yOjpJbnZhbGlkUmVxdWVzdCkpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpyZWxvYWRGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVj
dG9yOgogICAgIH0pOwogfQogCi12b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5OjpzaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQm
IGV4dGVuc2lvblRhYklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8
Ym9vbCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6c2hvd0V4dGVuc2lv
blRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHZvaWQsIEluc3BlY3Rvcjo6RXh0
ZW5zaW9uRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICB3aGVuRnJvbnRlbmRI
YXNMb2FkZWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGV4dGVuc2lvblRhYklkZW50
aWZpZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgp
IG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVGhpcy0+bV9pbnNwZWN0
b3JQYWdlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94
eS5oCmluZGV4IGNhMjNlYzdhZmIyZTFlYmNmOTg1NzRmZTc5ZTk0MGQ4NDZhMzMxN2EuLjlhYTY3
MTQ2MzAwNDk0ZDM4M2JjMjNmNGFmOWMxZDgwNzcwNzQzYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCkBAIC01NiwxMSArNTYsMTEgQEAgcHVi
bGljOgogCiAgICAgLy8gQVBJLgogICAgIHZvaWQgcmVnaXN0ZXJFeHRlbnNpb24oY29uc3QgSW5z
cGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIFdURjo6Q29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxSZWZQdHI8QVBJOjpJbnNwZWN0b3JFeHRlbnNp
b24+LCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYpOwotICAgIHZvaWQgdW5yZWdpc3Rl
ckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2wsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4m
Jik7CisgICAgdm9pZCB1bnJlZ2lzdGVyRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5z
aW9uSUQmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dm9pZCwgSW5zcGVj
dG9yOjpFeHRlbnNpb25FcnJvcj4pPiYmKTsKICAgICB2b2lkIGNyZWF0ZVRhYkZvckV4dGVuc2lv
bihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgU3RyaW5nJiB0YWJOYW1lLCBj
b25zdCBVUkwmIHRhYkljb25VUkwsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBXVEY6OkNvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8SW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCwgSW5zcGVj
dG9yOjpFeHRlbnNpb25FcnJvcj4pPiYmKTsKICAgICB2b2lkIGV2YWx1YXRlU2NyaXB0Rm9yRXh0
ZW5zaW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBTdHJpbmcmIHNjcmlw
dFNvdXJjZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxVUkw+JiBmcmFtZVVSTCwgY29uc3Qgc3RkOjpv
cHRpb25hbDxVUkw+JiBjb250ZXh0U2VjdXJpdHlPcmlnaW4sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
Ym9vbD4mIHVzZUNvbnRlbnRTY3JpcHRDb250ZXh0LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSW5zcGVjdG9yOjpFeHRlbnNpb25FdmFsdWF0aW9uUmVzdWx0KT4mJik7CiAgICAgdm9pZCBy
ZWxvYWRGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8Ym9vbD4mIGlnbm9yZUNhY2hlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4mIHVzZXJBZ2VudCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTdHJpbmc+JiBpbmplY3RlZFNjcmlw
dCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXZhbHVh
dGlvblJlc3VsdCk+JiYpOwotICAgIHZvaWQgc2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvblRhYklEJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29s
LCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYpOworICAgIHZvaWQgc2hvd0V4dGVuc2lv
blRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYpOwogCiAg
ICAgLy8gV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkgSVBDIG1lc3NhZ2Vz
LgogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lv
bklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDkwOTBiMTZhNzk1OGU0YmM4MTJl
MDJkMDJjZDk0NTA5M2NkNWY1MjQuLmM3YjM3ODhlMTY1MDQ3MWMyYjQwMmE5MzU4Y2ZlMTFiNmFk
YzM1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAK
QEAgLTEwOSw3ICsxMDksNyBAQCBzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJy
b3I+IFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6cGFycwogCiAvLyBXZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIgSVBDIG1lc3NhZ2VzLgogCi12b2lkIFdlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6cmVnaXN0ZXJFeHRlbnNpb24oY29uc3QgSW5zcGVj
dG9yOjpFeHRlbnNpb25JRCYgZXh0ZW5zaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpFeHRlbnNp
b25FcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXI6OnJlZ2lzdGVyRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5z
aW9uSUQmIGV4dGVuc2lvbklELCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPHZvaWQsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1fZnJvbnRlbmRDbGllbnQpIHsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoSW5zcGVjdG9yOjpFeHRlbnNp
b25FcnJvcjo6SW52YWxpZFJlcXVlc3QpKTsKQEAgLTEzMSwxMSArMTMxLDExIEBAIHZvaWQgV2Vi
SW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpyZWdpc3RlckV4dGVuc2lvbihjb25zdCBJ
bnNwZWN0b3I6OkV4dGVuCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9
KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6
OnVucmVnaXN0ZXJFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYgZXh0ZW5z
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpF
eHRlbnNpb25FcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXI6OnVucmVnaXN0ZXJFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25JRCYgZXh0ZW5zaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8dm9pZCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGlmICghbV9mcm9udGVuZENsaWVudCkgewogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yOjpJbnZhbGlkUmVx
dWVzdCkpOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyOjp1bnJlZ2lzdGVyRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih0
cnVlKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICB9KTsKIH0KIApAQCAt
MzI2LDcgKzMyNiw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpy
ZWxvYWRGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlCiAgICAgfSk7CiB9CiAKLXZv
aWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpzaG93RXh0ZW5zaW9uVGFiKGNv
bnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmIGV4dGVuc2lvblRhYklkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpFeHRlbnNpb25F
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXI6OnNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25U
YWJJRCYgZXh0ZW5zaW9uVGFiSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBl
Y3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKCFtX2Zyb250ZW5kQ2xpZW50KSB7CiAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKG1ha2VVbmV4cGVjdGVkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkludmFsaWRS
ZXF1ZXN0KSk7CkBAIC0zNTUsNyArMzU1LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXI6OnNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnMKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KHRydWUpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwogICAgIH0pOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaAppbmRleCBjMzYxMmFkZDAw
NTlkNzRlYjQ3YTkxZTVkZTM0NTc0MTI0OGQwZjQxLi43NGE3YjdjMzcxODgxOGM1ODAzMjI5NTc3
YTlhOGQ1NWQ4OWJlYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyLmgKQEAgLTYzLDEyICs2MywxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogICAgIC8v
IFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlciBJUEMgbWVzc2FnZXMuCi0gICAgdm9p
ZCByZWdpc3RlckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3Qg
U3RyaW5nJiBkaXNwbGF5TmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29s
LCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYpOwotICAgIHZvaWQgdW5yZWdpc3RlckV4
dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDxib29sLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYpOworICAg
IHZvaWQgcmVnaXN0ZXJFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNv
bnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8
dm9pZCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4pPiYmKTsKKyAgICB2b2lkIHVucmVnaXN0
ZXJFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhwZWN0ZWQ8dm9pZCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4pPiYmKTsK
ICAgICB2b2lkIGNyZWF0ZVRhYkZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lv
bklEJiwgY29uc3QgU3RyaW5nJiB0YWJOYW1lLCBjb25zdCBVUkwmIHRhYkljb25VUkwsIGNvbnN0
IFVSTCYgc291cmNlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEluc3BlY3Rv
cjo6RXh0ZW5zaW9uVGFiSUQsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4mJik7CiAgICAg
dm9pZCBldmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lv
bklEJiwgY29uc3QgU3RyaW5nJiBzY3JpcHRTb3VyY2UsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VVJM
PiYgZnJhbWVVUkwsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VVJMPiYgY29udGV4dFNlY3VyaXR5T3Jp
Z2luLCBjb25zdCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiB1c2VDb250ZW50U2NyaXB0Q29udGV4dCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHM+JiwgY29uc3Qgc3RkOjpvcHRp
b25hbDxJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiYpPiYmKTsKICAgICB2b2lkIHJlbG9hZEZv
ckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3Qgc3RkOjpvcHRp
b25hbDxib29sPiYgaWdub3JlQ2FjaGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiYgdXNl
ckFnZW50LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIGluamVjdGVkU2NyaXB0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IHN0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpFeHRlbnNp
b25FcnJvcj4mKT4mJik7Ci0gICAgdm9pZCBzaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rv
cjo6RXh0ZW5zaW9uVGFiSUQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2ws
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4mJik7CisgICAgdm9pZCBzaG93RXh0ZW5zaW9u
VGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPHZvaWQsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4mJik7CiAKICAg
ICAvLyBDYWxsYmFja3MgZnJvbSB0aGUgZnJvbnRlbmQuCiAgICAgdm9pZCBkaWRTaG93RXh0ZW5z
aW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4
dGVuc2lvblRhYklEJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyLm1lc3NhZ2VzLmluCmluZGV4IDRlZWYzMTlmNmQ1OTNmNWJhMGQ3MjgyZGM3NjM1
MDkwYWYzMWNmMDAuLmJiY2M1OTJiZTc5ZjM2ZDFiNmIwMDhkYjc5NjM3ZjhiYjg5YjE2MmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3Nh
Z2VzLmluCkBAIC0yMiwxOCArMjIsMTQgQEAKIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfRVhURU5T
SU9OUykKIAotLy8gRklYTUU6IHNvbWUgY29tcGxldGlvbiBoYW5kbGVycyB3aXRoIGEgcGFyYW1l
dGVyIHR5cGUgb2YgRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4KLS8v
IHNob3VsZCBhY3R1YWxseSBiZSBFeHBlY3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVy
cm9yPiwgYnV0IHRoaXMgZG9lcyBub3QgY29tcGlsZSBhcy1pcyB3aXRob3V0Ci0vLyBjaGFuZ2Vz
IHRvIGFyZ3VtZW50IGNvZGVycy4gVGhpcyBjbGVhbnVwIGlzIHRyYWNrZWQgYnkgPGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL2IvMjMwOTA3Pi4KLQogbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yVUlF
eHRlbnNpb25Db250cm9sbGVyIE5vdFJlZkNvdW50ZWQgewotICAgIFJlZ2lzdGVyRXh0ZW5zaW9u
KFN0cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIGRpc3BsYXlOYW1lKSAtPiAoRXhwZWN0ZWQ8Ym9v
bCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIFVucmVnaXN0
ZXJFeHRlbnNpb24oU3RyaW5nIGV4dGVuc2lvbklEKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgSW5zcGVj
dG9yOjpFeHRlbnNpb25FcnJvcj4gcmVzdWx0KSBBc3luYworICAgIFJlZ2lzdGVyRXh0ZW5zaW9u
KFN0cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIGRpc3BsYXlOYW1lKSAtPiAoRXhwZWN0ZWQ8dm9p
ZCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gcmVzdWx0KSBBc3luYworICAgIFVucmVnaXN0
ZXJFeHRlbnNpb24oU3RyaW5nIGV4dGVuc2lvbklEKSAtPiAoRXhwZWN0ZWQ8dm9pZCwgSW5zcGVj
dG9yOjpFeHRlbnNpb25FcnJvcj4gcmVzdWx0KSBBc3luYwogCiAgICAgQ3JlYXRlVGFiRm9yRXh0
ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIHRhYk5hbWUsIFVSTCB0YWJJY29uVVJM
LCBVUkwgc291cmNlVVJMKSAtPiAoRXhwZWN0ZWQ8U3RyaW5nLCBJbnNwZWN0b3I6OkV4dGVuc2lv
bkVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgRXZhbHVhdGVTY3JpcHRGb3JFeHRlbnNpb24oU3Ry
aW5nIGV4dGVuc2lvbklELCBTdHJpbmcgc2NyaXB0U291cmNlLCBzdGQ6Om9wdGlvbmFsPFVSTD4g
ZnJhbWVVUkwsIHN0ZDo6b3B0aW9uYWw8VVJMPiBjb250ZXh0U2VjdXJpdHlPcmlnaW4sIHN0ZDo6
b3B0aW9uYWw8Ym9vbD4gdXNlQ29udGVudFNjcmlwdENvbnRleHQpIC0+IChJUEM6OkRhdGFSZWZl
cmVuY2UgcmVzdWx0RGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxz
PiBkZXRhaWxzLCBzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IGVycm9y
KSBBc3luYwogICAgIFJlbG9hZEZvckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQsIHN0ZDo6
b3B0aW9uYWw8Ym9vbD4gaWdub3JlQ2FjaGUsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiB1c2VyQWdl
bnQsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBpbmplY3RlZFNjcmlwdCkgLT4gKHN0ZDo6b3B0aW9u
YWw8SW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gZXJyb3IpIEFzeW5jCi0gICAgU2hvd0V4dGVu
c2lvblRhYihTdHJpbmcgZXh0ZW5zaW9uVGFiSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJvb2ws
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBTaG93RXh0ZW5z
aW9uVGFiKFN0cmluZyBleHRlbnNpb25UYWJJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dm9pZCwg
SW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gcmVzdWx0KSBBc3luYwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>