<?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>227821</bug_id>
          
          <creation_ts>2021-07-08 16:13:15 -0700</creation_ts>
          <short_desc>Revoking Blob URL after calling XMLHttpRequest::open() causes the XHR to fail</short_desc>
          <delta_ts>2021-08-09 14:06:05 -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>Page Loading</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=228923</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1775852</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-08 16:13:15 -0700</bug_when>
    <thetext>Revoking Blob URL after calling XMLHttpRequest::open() causes the XHR to fail. This doesn&apos;t match the behavior of other browsers and is causing WebKit to fail one of the subtests on:
- http://wpt.live/FileAPI/url/url-with-xhr.any.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775853</commentid>
    <comment_count>1</comment_count>
      <attachid>433182</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-08 16:20:37 -0700</bug_when>
    <thetext>Created attachment 433182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776069</commentid>
    <comment_count>2</comment_count>
      <attachid>433182</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-07-09 13:38:55 -0700</bug_when>
    <thetext>Comment on attachment 433182
Patch

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

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:121
&gt; +    , m_url(makeUniqueRef&lt;BlobURLLifeTimeExtender&gt;())

We are doing an allocation for no good reason here.
I think it would look better if we had a separate BlobURLLifeTimeExtender that can happen to be null if URL is not a blob.
Also, we could probably try to nullify the blob life time extender as soon as we do not need it, maybe when clearing the request for instance.

&gt; Source/WebCore/xml/XMLHttpRequest.h:219
&gt; +    UniqueRef&lt;BlobURLLifeTimeExtender&gt; m_url;

It is a bit odd for BlobURLLifeTimeExtender to be called m_url.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776071</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-09 13:41:27 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; Comment on attachment 433182 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=433182&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/xml/XMLHttpRequest.cpp:121
&gt; &gt; +    , m_url(makeUniqueRef&lt;BlobURLLifeTimeExtender&gt;())
&gt; 
&gt; We are doing an allocation for no good reason here.
&gt; I think it would look better if we had a separate BlobURLLifeTimeExtender
&gt; that can happen to be null if URL is not a blob.
&gt; Also, we could probably try to nullify the blob life time extender as soon
&gt; as we do not need it, maybe when clearing the request for instance.

I initially had a separate data member to extend the lifetime of the blob URL. However, this is error prone and we need to make sure we update it whenever m_url gets updated.

&gt; &gt; Source/WebCore/xml/XMLHttpRequest.h:219
&gt; &gt; +    UniqueRef&lt;BlobURLLifeTimeExtender&gt; m_url;
&gt; 
&gt; It is a bit odd for BlobURLLifeTimeExtender to be called m_url.

Sure, we can rename it but it does store a URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776074</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-09 14:00:11 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; (In reply to youenn fablet from comment #2)
&gt; &gt; Comment on attachment 433182 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=433182&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/xml/XMLHttpRequest.cpp:121
&gt; &gt; &gt; +    , m_url(makeUniqueRef&lt;BlobURLLifeTimeExtender&gt;())
&gt; &gt; 
&gt; &gt; We are doing an allocation for no good reason here.
&gt; &gt; I think it would look better if we had a separate BlobURLLifeTimeExtender
&gt; &gt; that can happen to be null if URL is not a blob.
&gt; &gt; Also, we could probably try to nullify the blob life time extender as soon
&gt; &gt; as we do not need it, maybe when clearing the request for instance.
&gt; 
&gt; I initially had a separate data member to extend the lifetime of the blob
&gt; URL. However, this is error prone and we need to make sure we update it
&gt; whenever m_url gets updated.
&gt; 
&gt; &gt; &gt; Source/WebCore/xml/XMLHttpRequest.h:219
&gt; &gt; &gt; +    UniqueRef&lt;BlobURLLifeTimeExtender&gt; m_url;
&gt; &gt; 
&gt; &gt; It is a bit odd for BlobURLLifeTimeExtender to be called m_url.
&gt; 
&gt; Sure, we can rename it but it does store a URL.

Maybe if I rename BlobURLLifeTimeExtender to URLWithBlobURLLifetimeExtension and add an assignment operator, then it will be clearer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776076</commentid>
    <comment_count>5</comment_count>
      <attachid>433239</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-09 14:23:08 -0700</bug_when>
    <thetext>Created attachment 433239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776079</commentid>
    <comment_count>6</comment_count>
      <attachid>433240</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-09 14:25:45 -0700</bug_when>
    <thetext>Created attachment 433240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776713</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-13 12:18:58 -0700</bug_when>
    <thetext>Committed r279881 (239633@main): &lt;https://commits.webkit.org/239633@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433240.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776714</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-13 12:19:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/80531744&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433182</attachid>
            <date>2021-07-08 16:20:37 -0700</date>
            <delta_ts>2021-07-09 14:23:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227821-20210708162037.patch</filename>
            <type>text/plain</type>
            <size>15364</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc3NGVkMTcwZWU1MjA3
OGFhMzkxMzE0MTZkZjFmZjJmYTk0ZDBiYS4uOTFlMTUyNDI5YjMzZmFiMDZlMzY3OWRiY2MxZDkx
M2RmNzE3ZGY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTA3LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2b2tpbmcgQmxvYiBVUkwg
YWZ0ZXIgY2FsbGluZyBYTUxIdHRwUmVxdWVzdDo6b3BlbigpIGNhdXNlcyB0aGUgWEhSIHRvIGZh
aWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgy
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldm9r
aW5nIEJsb2IgVVJMIGFmdGVyIGNhbGxpbmcgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oKSBjYXVzZXMg
dGhlIFhIUiB0byBmYWlsLiBUaGlzIGRvZXNuJ3QgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mCisgICAg
ICAgIG90aGVyIGJyb3dzZXJzIGFuZCBpcyBjYXVzaW5nIFdlYktpdCB0byBmYWlsIG9uZSBvZiB0
aGUgc3VidGVzdHMgb246CisgICAgICAgIC0gaHR0cDovL3dwdC5saXZlL0ZpbGVBUEkvdXJsL3Vy
bC13aXRoLXhoci5hbnkuaHRtbAorCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKCkgbm93
IGV4dGVuZHMgdGhlIGxpZmV0aW1lIG9mIHRoZSBCbG9iIFVSTCBhcyBuZWNlc3NhcnkgaW4gb3Jk
ZXIgdG8gY29tcGxldGUgdGhlIGxvYWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2Vs
aW5lZCBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGZpbGVhcGkvQmxvYlVSTC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpCbG9iVVJMTGlmZVRpbWVFeHRlbmRlcjo6QmxvYlVSTExpZmVUaW1l
RXh0ZW5kZXIpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlVSTExpZmVUaW1lRXh0ZW5kZXI6On5C
bG9iVVJMTGlmZVRpbWVFeHRlbmRlcik6CisgICAgICAgICogZmlsZWFwaS9CbG9iVVJMLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpCbG9iVVJMTGlmZVRpbWVFeHRlbmRlcjo6dXJsIGNvbnN0KToKKyAg
ICAgICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6ZXh0ZW5kQmxvYlVSTExpZmV0aW1lSWZOZWNlc3Nhcnkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6OmNo
ZWNrTmF2aWdhdGlvblBvbGljeSk6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuaDoK
KyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3Q6OlhNTEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpzZXRSZXNwb25zZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnByZXBhcmVUb1Nl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNlbmQpOgorICAgICAgICAo
V2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QpOgorICAgICAgICAqIHhtbC9Y
TUxIdHRwUmVxdWVzdC5oOgorCiAyMDIxLTA3LTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtMaXZlIFRleHRdIFNlbGVjdGlvbiBpcyBtaXNhbGln
bmVkIG9uIHNvbWUgaW1hZ2VzIG9uIHR3aXR0ZXIuY29tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0Jsb2JVUkwuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iVVJM
LmNwcAppbmRleCBiYmE5MGNiYjgwMGExNTZjZWU5OTJjNWZkZmJmZmFmZjcxYzU4MDYyLi5jZGRk
NGM1MjA1MTIxMWI2Njk1ZWI5NGRmYTRjNDJjMWY0MmQ0NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0Jsb2JVUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYlVSTC5jcHAKQEAgLTk2LDQgKzk2LDIxIEBAIFVSTCBCbG9iVVJMOjpjcmVhdGVCbG9iVVJM
KGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogICAgIHJldHVybiBVUkwoeyB9LCB1cmxTdHJp
bmcpOwogfQogCitCbG9iVVJMTGlmZVRpbWVFeHRlbmRlcjo6QmxvYlVSTExpZmVUaW1lRXh0ZW5k
ZXIoY29uc3QgVVJMJiB1cmwpCisgICAgOiBtX3VybCh1cmwpCit7CisgICAgaWYgKG1fdXJsLnBy
b3RvY29sSXNCbG9iKCkpIHsKKyAgICAgICAgYXV0byBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKEJsb2JVUkw6OmdldE9yaWdpblVSTChtX3VybCkpOworICAgICAgICBVUkwgdGVtcG9y
YXJ5QmxvYlVSTCA9IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VSTChvcmlnaW4ucHRyKCkpOworICAg
ICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwob3JpZ2luLnB0cigp
LCB0ZW1wb3JhcnlCbG9iVVJMLCBtX3VybCk7CisgICAgICAgIG1fdXJsID0gV1RGTW92ZSh0ZW1w
b3JhcnlCbG9iVVJMKTsKKyAgICB9Cit9CisKK0Jsb2JVUkxMaWZlVGltZUV4dGVuZGVyOjp+Qmxv
YlVSTExpZmVUaW1lRXh0ZW5kZXIoKQoreworICAgIGlmIChtX3VybC5wcm90b2NvbElzQmxvYigp
KQorICAgICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQmxvYlVSTChtX3Vy
bCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQmxvYlVSTC5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iVVJMLmgK
aW5kZXggZTFmNTg5Y2NmZjdlNjgzN2U0ZTc4MzFlZGEyZmI0ZjZkNDAxNWZhOC4uNDg1YjA0MGUx
ODhhZGJlYjkzNzZmZmJlZjEyZGI2ZDFkYjQ1MjU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9CbG9iVVJMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iVVJM
LmgKQEAgLTU4LDQgKzU4LDE3IEBAIHByaXZhdGU6CiAgICAgQmxvYlVSTCgpIHsgfQogfTsKIAor
Y2xhc3MgQmxvYlVSTExpZmVUaW1lRXh0ZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIEJsb2JVUkxMaWZlVGltZUV4dGVuZGVyKCkgPSBkZWZhdWx0Owor
ICAgIGV4cGxpY2l0IEJsb2JVUkxMaWZlVGltZUV4dGVuZGVyKGNvbnN0IFVSTCYpOworICAgIH5C
bG9iVVJMTGlmZVRpbWVFeHRlbmRlcigpOworCisgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7
IHJldHVybiBtX3VybDsgfQorCitwcml2YXRlOgorICAgIFVSTCBtX3VybDsKK307CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApp
bmRleCBjMDgyYTk4MTUyNmQ0MDQwOGM4NWJiMTY2ODNhYjE0ZWY2ZGQ2ZTg4Li5jNTI0NWE2MzQx
ZjBjOWJhNGM1ZWNhMDEwZDRkNDU0N2FhNGQ0ZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bv
bGljeUNoZWNrZXIuY3BwCkBAIC0xMDQsMjEgKzEwNCwxNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpQ
b2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgbmV3
UmVxdQogICAgIGNoZWNrTmF2aWdhdGlvblBvbGljeShXVEZNb3ZlKG5ld1JlcXVlc3QpLCByZWRp
cmVjdFJlc3BvbnNlLCBtX2ZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCksIHsg
fSwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCi1Db21wbGV0aW9uSGFuZGxlckNhbGxpbmdTY29w
ZSBGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6ZXh0ZW5kQmxvYlVSTExpZmV0aW1lSWZOZWNl
c3NhcnkoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBEb2N1bWVudExvYWRlciogbG9hZGVyKSBj
b25zdAorc3RkOjp1bmlxdWVfcHRyPEJsb2JVUkxMaWZlVGltZUV4dGVuZGVyPiBGcmFtZUxvYWRl
cjo6UG9saWN5Q2hlY2tlcjo6ZXh0ZW5kQmxvYlVSTExpZmV0aW1lSWZOZWNlc3NhcnkoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBQb2xpY3lEZWNpc2lv
bk1vZGUgbW9kZSkgY29uc3QKIHsKLSAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0Js
b2IoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIC8vIENyZWF0ZSBhIG5ldyB0ZW1wb3Jh
cnkgYmxvYlVSTCBpbiBjYXNlIHRoaXMgb25lIGdldHMgcmV2b2tlZCBkdXJpbmcgdGhlIGFzeW5j
aHJvbm91cyBuYXZpZ2F0aW9uIHBvbGljeSBkZWNpc2lvbi4KLSAgICBhdXRvIG9yaWdpbiA9IFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUoQmxvYlVSTDo6Z2V0T3JpZ2luVVJMKHJlcXVlc3QudXJsKCkp
KTsKLSAgICBVUkwgdGVtcG9yYXJ5QmxvYlVSTCA9IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VSTChv
cmlnaW4ucHRyKCkpOwotICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVS
TChvcmlnaW4ucHRyKCksIHRlbXBvcmFyeUJsb2JVUkwsIHJlcXVlc3QudXJsKCkpOwotICAgIHJl
cXVlc3Quc2V0VVJMKHRlbXBvcmFyeUJsb2JVUkwpOworICAgIGlmIChtb2RlICE9IFBvbGljeURl
Y2lzaW9uTW9kZTo6QXN5bmNocm9ub3VzIHx8ICFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNCbG9i
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBsaWZldGltZUV4dGVuc2lv
biA9IG1ha2VVbmlxdWU8QmxvYlVSTExpZmVUaW1lRXh0ZW5kZXI+KHJlcXVlc3QudXJsKCkpOwor
ICAgIHJlcXVlc3Quc2V0VVJMKGxpZmV0aW1lRXh0ZW5zaW9uLT51cmwoKSk7CiAgICAgaWYgKGxv
YWRlcikKLSAgICAgICAgbG9hZGVyLT5yZXF1ZXN0KCkuc2V0VVJMKHRlbXBvcmFyeUJsb2JVUkwp
OwotICAgIHJldHVybiBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+KFt0ZW1wb3JhcnlCbG9iVVJM
ID0gV1RGTW92ZSh0ZW1wb3JhcnlCbG9iVVJMKV0gewotICAgICAgICBUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5Ojp1bnJlZ2lzdGVyQmxvYlVSTCh0ZW1wb3JhcnlCbG9iVVJMKTsKLSAgICB9KTsKKyAg
ICAgICAgbG9hZGVyLT5yZXF1ZXN0KCkuc2V0VVJMKGxpZmV0aW1lRXh0ZW5zaW9uLT51cmwoKSk7
CisKKyAgICByZXR1cm4gbGlmZXRpbWVFeHRlbnNpb247CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6
OlBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBEb2N1bWVu
dExvYWRlciogbG9hZGVyLCBSZWZQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbiwgUG9saWN5RGVjaXNpb25Nb2RlIHBv
bGljeURlY2lzaW9uTW9kZSkKQEAgLTIwMSw3ICsxOTcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpQ
b2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdAogCiAgICAgbV9mcmFtZS5sb2FkZXIoKS5jbGVhclByb3Zpc2lvbmFsTG9hZEZvclBvbGlj
eUNoZWNrKCk7CiAKLSAgICBhdXRvIGJsb2JVUkxMaWZldGltZUV4dGVuc2lvbiA9IHBvbGljeURl
Y2lzaW9uTW9kZSA9PSBQb2xpY3lEZWNpc2lvbk1vZGU6OkFzeW5jaHJvbm91cyA/IGV4dGVuZEJs
b2JVUkxMaWZldGltZUlmTmVjZXNzYXJ5KHJlcXVlc3QsIGxvYWRlcikgOiBDb21wbGV0aW9uSGFu
ZGxlckNhbGxpbmdTY29wZSB7IH07CisgICAgYXV0byBibG9iVVJMTGlmZXRpbWVFeHRlbnNpb24g
PSBleHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5lY2Vzc2FyeShyZXF1ZXN0LCBsb2FkZXIsIHBvbGlj
eURlY2lzaW9uTW9kZSk7CiAKICAgICBib29sIGlzSW5pdGlhbEVtcHR5RG9jdW1lbnRMb2FkID0g
IW1fZnJhbWUubG9hZGVyKCkuc3RhdGVNYWNoaW5lKCkuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1l
bnRMb2FkKCkgJiYgcmVxdWVzdC51cmwoKS5wcm90b2NvbElzQWJvdXQoKSAmJiAhc3Vic3RpdHV0
ZURhdGEuaXNWYWxpZCgpOwogICAgIGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSBQb2xpY3lDaGVj
a0lkZW50aWZpZXI6OmNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BvbGljeUNoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmgK
aW5kZXggZGYyMjdiNmMxMDNhNTEzZmY1NGI2YWJhNTM2Zjk2NGI5NGJkMTIwNi4uNzJjZTNmNWM5
YTliNDQ4NzQxMGZjMTg5MTkzNWM3NjRiZDZlNzk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIENvbXBsZXRpb25IYW5kbGVyQ2Fs
bGluZ1Njb3BlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEJsb2JVUkxMaWZlVGlt
ZUV4dGVuZGVyOwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBGb3JtU3RhdGU7CiBjbGFz
cyBGcmFtZTsKQEAgLTg5LDcgKzkwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQg
aGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5KGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3BlIGV4dGVuZEJsb2JVUkxMaWZldGltZUlm
TmVjZXNzYXJ5KFJlc291cmNlUmVxdWVzdCYsIERvY3VtZW50TG9hZGVyKikgY29uc3Q7CisgICAg
c3RkOjp1bmlxdWVfcHRyPEJsb2JVUkxMaWZlVGltZUV4dGVuZGVyPiBleHRlbmRCbG9iVVJMTGlm
ZXRpbWVJZk5lY2Vzc2FyeShSZXNvdXJjZVJlcXVlc3QmLCBEb2N1bWVudExvYWRlciosIFBvbGlj
eURlY2lzaW9uTW9kZSA9IFBvbGljeURlY2lzaW9uTW9kZTo6QXN5bmNocm9ub3VzKSBjb25zdDsK
IAogICAgIEZyYW1lJiBtX2ZyYW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cAppbmRleCBhNTNhYmI1NzlkZGI1MzU2ZWY0ZWJiMDhmOGZjZDBkMGQ2NWM4MjZlLi4wY2E5Mzhm
MjNhNmJiNjIzZGE5YWY0YmNjMDE0NTM4NTVmZGM0MWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAKQEAgLTExOCw2ICsxMTgsNyBAQCBYTUxIdHRwUmVxdWVzdDo6WE1MSHR0
cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICAsIG1fcmVzcG9u
c2VDYWNoZUlzVmFsaWQoZmFsc2UpCiAgICAgLCBtX3JlYWR5U3RhdGUoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFVOU0VOVCkpCiAgICAgLCBtX3Jlc3BvbnNlVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVzcG9uc2VUeXBlOjpFbXB0eVN0cmluZykpCisgICAgLCBtX3VybChtYWtlVW5pcXVlUmVm
PEJsb2JVUkxMaWZlVGltZUV4dGVuZGVyPigpKQogICAgICwgbV9wcm9ncmVzc0V2ZW50VGhyb3R0
bGUoKnRoaXMpCiAgICAgLCBtX3RpbWVvdXRUaW1lcigqdGhpcywgJlhNTEh0dHBSZXF1ZXN0Ojp0
aW1lb3V0VGltZXJGaXJlZCkKIHsKQEAgLTI1MSw3ICsyNTIsNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBYTUxIdHRwUmVxdWVzdDo6c2V0UmVzcG9uc2VUeXBlKFJlc3BvbnNlVHlwZSB0eXBlKQogICAg
IC8vIGF0dGVtcHQgdG8gZGlzY291cmFnZSBzeW5jaHJvbm91cyBYSFIgdXNlLiByZXNwb25zZVR5
cGUgaXMgb25lIHN1Y2ggcGllY2Ugb2YgZnVuY3Rpb25hbGl0eS4KICAgICAvLyBXZSdsbCBvbmx5
IGRpc2FibGUgdGhpcyBmdW5jdGlvbmFsaXR5IGZvciBIVFRQKFMpIHJlcXVlc3RzIHNpbmNlIHN5
bmMgcmVxdWVzdHMgZm9yIGxvY2FsIHByb3RvY29scwogICAgIC8vIHN1Y2ggYXMgZmlsZTogYW5k
IGRhdGE6IHN0aWxsIG1ha2Ugc2Vuc2UgdG8gYWxsb3cuCi0gICAgaWYgKCFtX2FzeW5jICYmIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpICYmIG1fdXJsLnByb3RvY29sSXNJ
bkhUVFBGYW1pbHkoKSkgeworICAgIGlmICghbV9hc3luYyAmJiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmlzRG9jdW1lbnQoKSAmJiBtX3VybC0+dXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWls
eSgpKSB7CiAgICAgICAgIGxvZ0NvbnNvbGVFcnJvcihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
ICJYTUxIdHRwUmVxdWVzdC5yZXNwb25zZVR5cGUgY2Fubm90IGJlIGNoYW5nZWQgZm9yIHN5bmNo
cm9ub3VzIEhUVFAoUykgcmVxdWVzdHMgbWFkZSBmcm9tIHRoZSB3aW5kb3cgY29udGV4dC4iKTsK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogICAgIH0K
QEAgLTM4Miw4ICszODMsOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6b3Bl
bihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgVVJMJiB1cmwsIGJvbwogICAgIGNsZWFyUmVz
cG9uc2UoKTsKICAgICBjbGVhclJlcXVlc3QoKTsKIAotICAgIG1fdXJsID0gdXJsOwotICAgIGNv
bnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZO
ZWVkZWQobV91cmwsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6
TG9hZCk7CisgICAgYXV0byB1cGdyYWRlZFVSTCA9IHVybDsKKyAgICBjb250ZXh0LT5jb250ZW50
U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHVwZ3JhZGVk
VVJMLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQpOwor
ICAgIG1fdXJsID0gbWFrZVVuaXF1ZVJlZjxCbG9iVVJMTGlmZVRpbWVFeHRlbmRlcj4odXBncmFk
ZWRVUkwpOwogCiAgICAgbV9hc3luYyA9IGFzeW5jOwogCkBAIC00MTYsNyArNDE4LDcgQEAgc3Rk
OjpvcHRpb25hbDxFeGNlcHRpb25Pcjx2b2lkPj4gWE1MSHR0cFJlcXVlc3Q6OnByZXBhcmVUb1Nl
bmQoKQogICAgIGF1dG8mIGNvbnRleHQgPSAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogCiAg
ICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSAmJiBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4
dCkuc2hvdWxkSWdub3JlU3luY1hIUnMoKSkgewotICAgICAgICBsb2dDb25zb2xlRXJyb3Ioc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtYWtlU3RyaW5nKCJJZ25vcmluZyBYTUxIdHRwUmVxdWVz
dC5zZW5kKCkgY2FsbCBmb3IgJyIsIG1fdXJsLnN0cmluZygpLCAiJyBiZWNhdXNlIHRoZSBtYXhp
bXVtIG51bWJlciBvZiBzeW5jaHJvbm91cyBmYWlsdXJlcyB3YXMgcmVhY2hlZC4iKSk7CisgICAg
ICAgIGxvZ0NvbnNvbGVFcnJvcihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1ha2VTdHJpbmco
Iklnbm9yaW5nIFhNTEh0dHBSZXF1ZXN0LnNlbmQoKSBjYWxsIGZvciAnIiwgbV91cmwtPnVybCgp
LnN0cmluZygpLCAiJyBiZWNhdXNlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzeW5jaHJvbm91cyBm
YWlsdXJlcyB3YXMgcmVhY2hlZC4iKSk7CiAgICAgICAgIHJldHVybiBFeGNlcHRpb25Pcjx2b2lk
PiB7IH07CiAgICAgfQogCkBAIC00MjUsNyArNDI3LDcgQEAgc3RkOjpvcHRpb25hbDxFeGNlcHRp
b25Pcjx2b2lkPj4gWE1MSHR0cFJlcXVlc3Q6OnByZXBhcmVUb1NlbmQoKQogICAgIEFTU0VSVCgh
bV9sb2FkaW5nQWN0aXZpdHkpOwogCiAgICAgLy8gRklYTUU6IENvbnZlcnQgdGhpcyB0byBjaGVj
ayB0aGUgaXNvbGF0ZWQgd29ybGQncyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBvbmNlIHdlYmtp
dC5vcmcvYi8xMDQ1MjAgaXMgc29sdmVkLgotICAgIGlmICghY29udGV4dC5zaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSAmJiAhY29udGV4dC5jb250ZW50U2VjdXJp
dHlQb2xpY3koKS0+YWxsb3dDb25uZWN0VG9Tb3VyY2UobV91cmwpKSB7CisgICAgaWYgKCFjb250
ZXh0LnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpICYmICFjb250
ZXh0LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0Nvbm5lY3RUb1NvdXJjZShtX3VybC0+
dXJsKCkpKSB7CiAgICAgICAgIGlmICghbV9hc3luYykKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb25Pcjx2b2lkPiB7IEV4Y2VwdGlvbiB7IE5ldHdvcmtFcnJvciB9IH07CiAgICAgICAgIG1f
dGltZW91dFRpbWVyLnN0b3AoKTsKQEAgLTUxNSw3ICs1MTcsNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBYTUxIdHRwUmVxdWVzdDo6c2VuZChCbG9iJiBib2R5KQogICAgICAgICByZXR1cm4gV1RGTW92
ZShyZXN1bHQudmFsdWUoKSk7CiAKICAgICBpZiAobV9tZXRob2QgIT0gIkdFVCIgJiYgbV9tZXRo
b2QgIT0gIkhFQUQiKSB7Ci0gICAgICAgIGlmICghbV91cmwucHJvdG9jb2xJc0luSFRUUEZhbWls
eSgpKSB7CisgICAgICAgIGlmICghbV91cmwtPnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHko
KSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHdvdWxkIGxpa2UgdG8gc3VwcG9ydCBwb3N0
aW5nIEJsb2JzIHRvIG5vbi1odHRwIFVSTHMgKGUuZy4gY3VzdG9tIFVSTCBzY2hlbWVzKQogICAg
ICAgICAgICAgLy8gYnV0IGJlY2F1c2Ugb2YgdGhlIGFyY2hpdGVjdHVyZSBvZiBibG9iLWhhbmRs
aW5nIHRoYXQgd2lsbCByZXF1aXJlIGEgZmFpciBhbW91bnQgb2Ygd29yay4KICAgICAgICAgICAg
IApAQCAtNTg4LDEzICs1OTAsMTMgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6
OnNlbmRCeXRlc0RhdGEoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIEV4Y2VwdGlv
bk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KCkKIHsKICAgICAvLyBPbmx5
IEdFVCByZXF1ZXN0IGlzIHN1cHBvcnRlZCBmb3IgYmxvYiBVUkwuCi0gICAgaWYgKCFtX2FzeW5j
ICYmIG1fdXJsLnByb3RvY29sSXNCbG9iKCkgJiYgbV9tZXRob2QgIT0gIkdFVCIpCisgICAgaWYg
KCFtX2FzeW5jICYmIG1fdXJsLT51cmwoKS5wcm90b2NvbElzQmxvYigpICYmIG1fbWV0aG9kICE9
ICJHRVQiKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTmV0d29ya0Vycm9yIH07CiAKICAg
ICBpZiAobV9hc3luYyAmJiBtX3VwbG9hZCAmJiBtX3VwbG9hZC0+aGFzRXZlbnRMaXN0ZW5lcnMo
KSkKICAgICAgICAgbV91cGxvYWRMaXN0ZW5lckZsYWcgPSB0cnVlOwogCi0gICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QobV91cmwpOworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KG1fdXJs
LT51cmwoKSk7CiAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0ZXIoUmVzb3VyY2VSZXF1ZXN0OjpSZXF1
ZXN0ZXI6OlhIUik7CiAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3JJZGVudGlmaWVyKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+cmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllcigpKTsKICAgICByZXF1
ZXN0LnNldEhUVFBNZXRob2QobV9tZXRob2QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
aAppbmRleCBmZjlmOTkwZTU2ZDU5YzYyZjhjMGQ3NGNlNmE3MWNhMGY0YzFmN2ViLi42NjVjZDRl
ODdmY2U1YzUxNzg5NTUxYzhlM2ZjMDk2ZTAzNGQwYjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaApAQCAtMjIsNiArMjIsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJB
Y3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJCbG9iVVJMLmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKICNpbmNsdWRlICJGb3JtRGF0YS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9u
c2UuaCIKQEAgLTczLDcgKzc0LDcgQEAgcHVibGljOgogCiAgICAgdXNpbmcgU2VuZFR5cGVzID0g
VmFyaWFudDxSZWZQdHI8RG9jdW1lbnQ+LCBSZWZQdHI8QmxvYj4sIFJlZlB0cjxKU0M6OkFycmF5
QnVmZmVyVmlldz4sIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiwgUmVmUHRyPERPTUZvcm1EYXRh
PiwgU3RyaW5nLCBSZWZQdHI8VVJMU2VhcmNoUGFyYW1zPj47CiAKLSAgICBjb25zdCBVUkwmIHVy
bCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CisgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7
IHJldHVybiBtX3VybC0+dXJsKCk7IH0KICAgICBTdHJpbmcgc3RhdHVzVGV4dCgpIGNvbnN0Owog
ICAgIGludCBzdGF0dXMoKSBjb25zdDsKICAgICBTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CkBA
IC0yMTUsNyArMjE2LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxYTUxIdHRw
UmVxdWVzdFVwbG9hZD4gbV91cGxvYWQ7CiAKLSAgICBVUkwgbV91cmw7CisgICAgVW5pcXVlUmVm
PEJsb2JVUkxMaWZlVGltZUV4dGVuZGVyPiBtX3VybDsKICAgICBTdHJpbmcgbV9tZXRob2Q7CiAg
ICAgSFRUUEhlYWRlck1hcCBtX3JlcXVlc3RIZWFkZXJzOwogICAgIFJlZlB0cjxGb3JtRGF0YT4g
bV9yZXF1ZXN0RW50aXR5Qm9keTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGJl
NDgzY2E4YmE1YjhmNTNiYmU4YTcwYjliM2Y5NjhmMDU0ZWIxMWMuLjhkMmMxZTNkYTIyZjFkZTgx
ZjljYzExNGFmODBhYWViNjFkYWUyMWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIxLTA3LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgUmV2b2tpbmcgQmxvYiBVUkwgYWZ0ZXIgY2FsbGluZyBYTUxIdHRwUmVx
dWVzdDo6b3BlbigpIGNhdXNlcyB0aGUgWEhSIHRvIGZhaWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgyMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgV1BUIHRlc3RzIG5vdyB0aGF0
IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L0ZpbGVBUEkvdXJsL3VybC13aXRoLXhoci5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL3VybC91cmwtd2l0aC14aHIuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQ6CisKIDIwMjEtMDctMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIFVSTCB0ZXN0IGV4cGVjdGF0aW9u
IGZpbGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9GaWxlQVBJL3VybC91cmwtd2l0aC14aHIuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS91cmwvdXJsLXdp
dGgteGhyLmFueS1leHBlY3RlZC50eHQKaW5kZXggM2FiZmE4Y2I5OTI1YzE3ODg2ZDkxYTZlNDdl
YmE4MmU3MDFmYzYyMS4uMmVkZjZkY2Q5OGIyM2I2ZDY5YjczOTY4N2U0Y2UxNTk2ZjE1ZTZkOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9G
aWxlQVBJL3VybC91cmwtd2l0aC14aHIuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvdXJsL3VybC13aXRoLXho
ci5hbnktZXhwZWN0ZWQudHh0CkBAIC0xMiw1ICsxMiw1IEBAIFBBU1MgWEhSIHdpdGggbWV0aG9k
ICJPUFRJT05TIiBzaG91bGQgZmFpbAogUEFTUyBYSFIgd2l0aCBtZXRob2QgIlBVVCIgc2hvdWxk
IGZhaWwKIFBBU1MgWEhSIHdpdGggbWV0aG9kICJDVVNUT00iIHNob3VsZCBmYWlsCiBQQVNTIFhI
UiBzaG91bGQgcmV0dXJuIENvbnRlbnQtVHlwZSBmcm9tIEJsb2IKLUZBSUwgUmV2b2tlIGJsb2Ig
VVJMIGFmdGVyIG9wZW4oKSwgd2lsbCBmZXRjaCBhc3NlcnRfdW5yZWFjaGVkOiBHb3QgdW5leHBl
Y3RlZCBlcnJvciBldmVudCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgUmV2b2tlIGJs
b2IgVVJMIGFmdGVyIG9wZW4oKSwgd2lsbCBmZXRjaAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvdXJsL3VybC13aXRoLXho
ci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvRmlsZUFQSS91cmwvdXJsLXdpdGgteGhyLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CmluZGV4IDNhYmZhOGNiOTkyNWMxNzg4NmQ5MWE2ZTQ3ZWJhODJlNzAxZmM2MjEuLjJl
ZGY2ZGNkOThiMjNiNmQ2OWI3Mzk2ODdlNGNlMTU5NmYxNWU2ZDggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS91cmwvdXJsLXdp
dGgteGhyLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS91cmwvdXJsLXdpdGgteGhyLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0xMiw1ICsxMiw1IEBAIFBBU1MgWEhSIHdpdGggbWV0aG9kICJP
UFRJT05TIiBzaG91bGQgZmFpbAogUEFTUyBYSFIgd2l0aCBtZXRob2QgIlBVVCIgc2hvdWxkIGZh
aWwKIFBBU1MgWEhSIHdpdGggbWV0aG9kICJDVVNUT00iIHNob3VsZCBmYWlsCiBQQVNTIFhIUiBz
aG91bGQgcmV0dXJuIENvbnRlbnQtVHlwZSBmcm9tIEJsb2IKLUZBSUwgUmV2b2tlIGJsb2IgVVJM
IGFmdGVyIG9wZW4oKSwgd2lsbCBmZXRjaCBhc3NlcnRfdW5yZWFjaGVkOiBHb3QgdW5leHBlY3Rl
ZCBlcnJvciBldmVudCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgUmV2b2tlIGJsb2Ig
VVJMIGFmdGVyIG9wZW4oKSwgd2lsbCBmZXRjaAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433239</attachid>
            <date>2021-07-09 14:23:08 -0700</date>
            <delta_ts>2021-07-09 14:25:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227821-20210709142307.patch</filename>
            <type>text/plain</type>
            <size>15319</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5Nzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ4M2NmZDA4NzIyNDZj
ZDk0YzQ1MWUwMTMxNmY2MzE2ZjY3NmU4My4uZTg4OGJmYzI1ODFkMTE0MThiYWJmNTY2MzZiZjRl
NWJjNmVjZjA4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTA3LTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2b2tpbmcgQmxvYiBVUkwg
YWZ0ZXIgY2FsbGluZyBYTUxIdHRwUmVxdWVzdDo6b3BlbigpIGNhdXNlcyB0aGUgWEhSIHRvIGZh
aWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgy
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldm9r
aW5nIEJsb2IgVVJMIGFmdGVyIGNhbGxpbmcgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oKSBjYXVzZXMg
dGhlIFhIUiB0byBmYWlsLiBUaGlzIGRvZXNuJ3QgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mCisgICAg
ICAgIG90aGVyIGJyb3dzZXJzIGFuZCBpcyBjYXVzaW5nIFdlYktpdCB0byBmYWlsIG9uZSBvZiB0
aGUgc3VidGVzdHMgb246CisgICAgICAgIC0gaHR0cDovL3dwdC5saXZlL0ZpbGVBUEkvdXJsL3Vy
bC13aXRoLXhoci5hbnkuaHRtbAorCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKCkgbm93
IGV4dGVuZHMgdGhlIGxpZmV0aW1lIG9mIHRoZSBCbG9iIFVSTCBhcyBuZWNlc3NhcnkgaW4gb3Jk
ZXIgdG8gY29tcGxldGUgdGhlIGxvYWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2Vs
aW5lZCBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGZpbGVhcGkvQmxvYlVSTC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpVUkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uOjpVUkxXaXRo
QmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTFdpdGhCbG9i
VVJMTGlmZXRpbWVFeHRlbnNpb246On5VUkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uKToK
KyAgICAgICAgKiBmaWxlYXBpL0Jsb2JVUkwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JVUkxM
aWZlVGltZUV4dGVuZGVyOjp1cmwgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpl
eHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5lY2Vzc2FyeSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KToKKyAg
ICAgICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5oOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFJlc3BvbnNlVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Blbik6CisgICAgICAgIChXZWJD
b3JlOjpYTUxIdHRwUmVxdWVzdDo6cHJlcGFyZVRvU2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6
Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisKIDIwMjEt
MDctMDkgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAg
ICAgW0NhaXJvXVtXaW5dIFJlbW92ZSB1bm5lZWRlZCBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVBy
aXZhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYlVSTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2JVUkwuY3BwCmluZGV4IGJiYTkwY2JiODAwYTE1NmNl
ZTk5MmM1ZmRmYmZmYWZmNzFjNTgwNjIuLmYxNDQ5ODY0MzY2OTg2NTgyYjA2ZWIwZTVmZjA3ZGY0
NjdjZTQ1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYlVSTC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iVVJMLmNwcApAQCAtOTYsNCArOTYsNDYg
QEAgVVJMIEJsb2JVUkw6OmNyZWF0ZUJsb2JVUkwoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcp
CiAgICAgcmV0dXJuIFVSTCh7IH0sIHVybFN0cmluZyk7CiB9CiAKK1VSTFdpdGhCbG9iVVJMTGlm
ZXRpbWVFeHRlbnNpb246OlVSTFdpdGhCbG9iVVJMTGlmZXRpbWVFeHRlbnNpb24oY29uc3QgVVJM
JiB1cmwpCisgICAgOiBtX3VybCh1cmwpCit7CisgICAgZXh0ZW5kQmxvYlVSTExpZmV0aW1lSWZO
ZWNlc3NhcnkoKTsKK30KKworVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbjo6flVSTFdp
dGhCbG9iVVJMTGlmZXRpbWVFeHRlbnNpb24oKQoreworICAgIHVucmVnaXN0ZXJDdXJyZW50VVJM
SWZOZWNlc3NhcnkoKTsKK30KKwordm9pZCBVUkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9u
OjpleHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKG1fdXJsLnBy
b3RvY29sSXNCbG9iKCkpIHsKKyAgICAgICAgYXV0byBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKEJsb2JVUkw6OmdldE9yaWdpblVSTChtX3VybCkpOworICAgICAgICBVUkwgdGVtcG9y
YXJ5QmxvYlVSTCA9IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VSTChvcmlnaW4ucHRyKCkpOworICAg
ICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwob3JpZ2luLnB0cigp
LCB0ZW1wb3JhcnlCbG9iVVJMLCBtX3VybCk7CisgICAgICAgIG1fdXJsID0gV1RGTW92ZSh0ZW1w
b3JhcnlCbG9iVVJMKTsKKyAgICB9Cit9CisKK3ZvaWQgVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4
dGVuc2lvbjo6dW5yZWdpc3RlckN1cnJlbnRVUkxJZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKG1f
dXJsLnByb3RvY29sSXNCbG9iKCkpCisgICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnVu
cmVnaXN0ZXJCbG9iVVJMKG1fdXJsKTsKK30KKworVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVu
c2lvbiYgVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbjo6b3BlcmF0b3I9KFVSTFdpdGhC
bG9iVVJMTGlmZXRpbWVFeHRlbnNpb24mJiBvdGhlcikKK3sKKyAgICB1bnJlZ2lzdGVyQ3VycmVu
dFVSTElmTmVjZXNzYXJ5KCk7CisgICAgbV91cmwgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fdXJs
LCB7IH0pOworICAgIHJldHVybiAqdGhpczsKK30KKworVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4
dGVuc2lvbiYgVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbjo6b3BlcmF0b3I9KGNvbnN0
IFVSTCYgdXJsKQoreworICAgIHVucmVnaXN0ZXJDdXJyZW50VVJMSWZOZWNlc3NhcnkoKTsKKyAg
ICBtX3VybCA9IHVybDsKKyAgICBleHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5lY2Vzc2FyeSgpOwor
ICAgIHJldHVybiAqdGhpczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iVVJMLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0Jsb2JVUkwuaAppbmRleCBlMWY1ODljY2ZmN2U2ODM3ZTRlNzgzMWVkYTJmYjRmNmQ0MDE1
ZmE4Li5jYTcyYjdhZmMyNjE0Mjc0ODhhZmRiMzRlM2QzOTVlMGZmMjQzZDc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2JVUkwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0Jsb2JVUkwuaApAQCAtNTgsNCArNTgsMjkgQEAgcHJpdmF0ZToKICAgICBCbG9iVVJM
KCkgeyB9CiB9OwogCitjbGFzcyBVUkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVUkxX
aXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uKTsKK3B1YmxpYzoKKyAgICBVUkxXaXRoQmxvYlVS
TExpZmV0aW1lRXh0ZW5zaW9uKCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IFVSTFdpdGhCbG9i
VVJMTGlmZXRpbWVFeHRlbnNpb24oY29uc3QgVVJMJik7CisgICAgflVSTFdpdGhCbG9iVVJMTGlm
ZXRpbWVFeHRlbnNpb24oKTsKKworICAgIFVSTFdpdGhCbG9iVVJMTGlmZXRpbWVFeHRlbnNpb24o
VVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbiYmIG90aGVyKQorICAgICAgICA6IG1fdXJs
KHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV91cmwsIHsgfSkpCisgICAgeyB9CisKKyAgICBVUkxXaXRo
QmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uJiBvcGVyYXRvcj0oVVJMV2l0aEJsb2JVUkxMaWZldGlt
ZUV4dGVuc2lvbiYmKTsKKyAgICBVUkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uJiBvcGVy
YXRvcj0oY29uc3QgVVJMJik7CisKKyAgICBvcGVyYXRvciBjb25zdCBVUkwmKCkgY29uc3QgeyBy
ZXR1cm4gbV91cmw7IH0KKyAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJs
OyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCB1bnJlZ2lzdGVyQ3VycmVudFVSTElmTmVjZXNzYXJ5
KCk7CisgICAgdm9pZCBleHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5lY2Vzc2FyeSgpOworCisgICAg
VVJMIG1fdXJsOworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BvbGljeUNoZWNrZXIuY3BwCmluZGV4IGMwODJhOTgxNTI2ZDQwNDA4Yzg1YmIxNjY4M2Fi
MTRlZjZkZDZlODguLjQ3MTQ3NDk1ZmI0Y2Y4NGNkMGQyYTZiNjhmYzJmMzEwYmU3YzA5ZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKQEAgLTEwNCwyMSArMTA0LDE3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGlj
eShSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1CiAgICAgY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFdU
Rk1vdmUobmV3UmVxdWVzdCksIHJlZGlyZWN0UmVzcG9uc2UsIG1fZnJhbWUubG9hZGVyKCkuYWN0
aXZlRG9jdW1lbnRMb2FkZXIoKSwgeyB9LCBXVEZNb3ZlKGZ1bmN0aW9uKSk7CiB9CiAKLUNvbXBs
ZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3BlIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpleHRl
bmRCbG9iVVJMTGlmZXRpbWVJZk5lY2Vzc2FyeShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIpIGNvbnN0CitVUkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5z
aW9uIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpleHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5l
Y2Vzc2FyeShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIs
IFBvbGljeURlY2lzaW9uTW9kZSBtb2RlKSBjb25zdAogewotICAgIGlmICghcmVxdWVzdC51cmwo
KS5wcm90b2NvbElzQmxvYigpKQorICAgIGlmIChtb2RlICE9IFBvbGljeURlY2lzaW9uTW9kZTo6
QXN5bmNocm9ub3VzIHx8ICFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNCbG9iKCkpCiAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICAvLyBDcmVhdGUgYSBuZXcgdGVtcG9yYXJ5IGJsb2JVUkwgaW4g
Y2FzZSB0aGlzIG9uZSBnZXRzIHJldm9rZWQgZHVyaW5nIHRoZSBhc3luY2hyb25vdXMgbmF2aWdh
dGlvbiBwb2xpY3kgZGVjaXNpb24uCi0gICAgYXV0byBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKEJsb2JVUkw6OmdldE9yaWdpblVSTChyZXF1ZXN0LnVybCgpKSk7Ci0gICAgVVJMIHRl
bXBvcmFyeUJsb2JVUkwgPSBCbG9iVVJMOjpjcmVhdGVQdWJsaWNVUkwob3JpZ2luLnB0cigpKTsK
LSAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwob3JpZ2luLnB0cigp
LCB0ZW1wb3JhcnlCbG9iVVJMLCByZXF1ZXN0LnVybCgpKTsKLSAgICByZXF1ZXN0LnNldFVSTCh0
ZW1wb3JhcnlCbG9iVVJMKTsKKyAgICBVUkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uIHVy
bFdpdGhMaWZldGltZUV4dGVuc2lvbihyZXF1ZXN0LnVybCgpKTsKKyAgICByZXF1ZXN0LnNldFVS
TCh1cmxXaXRoTGlmZXRpbWVFeHRlbnNpb24pOwogICAgIGlmIChsb2FkZXIpCi0gICAgICAgIGxv
YWRlci0+cmVxdWVzdCgpLnNldFVSTCh0ZW1wb3JhcnlCbG9iVVJMKTsKLSAgICByZXR1cm4gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPihbdGVtcG9yYXJ5QmxvYlVSTCA9IFdURk1vdmUodGVtcG9y
YXJ5QmxvYlVSTCldIHsKLSAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6dW5yZWdpc3Rl
ckJsb2JVUkwodGVtcG9yYXJ5QmxvYlVSTCk7Ci0gICAgfSk7CisgICAgICAgIGxvYWRlci0+cmVx
dWVzdCgpLnNldFVSTCh1cmxXaXRoTGlmZXRpbWVFeHRlbnNpb24pOworCisgICAgcmV0dXJuIHVy
bFdpdGhMaWZldGltZUV4dGVuc2lvbjsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6UG9saWN5Q2hl
Y2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIERvY3VtZW50TG9hZGVyKiBs
b2FkZXIsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBOYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb25GdW5jdGlvbiYmIGZ1bmN0aW9uLCBQb2xpY3lEZWNpc2lvbk1vZGUgcG9saWN5RGVjaXNp
b25Nb2RlKQpAQCAtMjAxLDcgKzE5Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNr
ZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0CiAKICAg
ICBtX2ZyYW1lLmxvYWRlcigpLmNsZWFyUHJvdmlzaW9uYWxMb2FkRm9yUG9saWN5Q2hlY2soKTsK
IAotICAgIGF1dG8gYmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uID0gcG9saWN5RGVjaXNpb25Nb2Rl
ID09IFBvbGljeURlY2lzaW9uTW9kZTo6QXN5bmNocm9ub3VzID8gZXh0ZW5kQmxvYlVSTExpZmV0
aW1lSWZOZWNlc3NhcnkocmVxdWVzdCwgbG9hZGVyKSA6IENvbXBsZXRpb25IYW5kbGVyQ2FsbGlu
Z1Njb3BlIHsgfTsKKyAgICBhdXRvIGJsb2JVUkxMaWZldGltZUV4dGVuc2lvbiA9IGV4dGVuZEJs
b2JVUkxMaWZldGltZUlmTmVjZXNzYXJ5KHJlcXVlc3QsIGxvYWRlciwgcG9saWN5RGVjaXNpb25N
b2RlKTsKIAogICAgIGJvb2wgaXNJbml0aWFsRW1wdHlEb2N1bWVudExvYWQgPSAhbV9mcmFtZS5s
b2FkZXIoKS5zdGF0ZU1hY2hpbmUoKS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSAm
JiByZXF1ZXN0LnVybCgpLnByb3RvY29sSXNBYm91dCgpICYmICFzdWJzdGl0dXRlRGF0YS5pc1Zh
bGlkKCk7CiAgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRpZmll
cjo6Y3JlYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hl
Y2tlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAppbmRleCBkZjIy
N2I2YzEwM2E1MTNmZjU0YjZhYmE1MzZmOTY0Yjk0YmQxMjA2Li4zYzY2MjI4MzU2Mzc3YWY4OWQw
OWVhNTc0NWMxMTJlOTE0ZmI4MjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UG9saWN5Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2Vy
LmgKQEAgLTUxLDYgKzUxLDcgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9u
OwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBV
UkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uOwogCiBlbnVtIGNsYXNzIE5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbiA6IHVpbnQ4X3QgewogICAgIENvbnRpbnVlTG9hZCwKQEAgLTg5LDcgKzkw
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlVW5pbXBsZW1lbnRhYmxl
UG9saWN5KGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
Q2FsbGluZ1Njb3BlIGV4dGVuZEJsb2JVUkxMaWZldGltZUlmTmVjZXNzYXJ5KFJlc291cmNlUmVx
dWVzdCYsIERvY3VtZW50TG9hZGVyKikgY29uc3Q7CisgICAgVVJMV2l0aEJsb2JVUkxMaWZldGlt
ZUV4dGVuc2lvbiBleHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5lY2Vzc2FyeShSZXNvdXJjZVJlcXVl
c3QmLCBEb2N1bWVudExvYWRlciosIFBvbGljeURlY2lzaW9uTW9kZSA9IFBvbGljeURlY2lzaW9u
TW9kZTo6QXN5bmNocm9ub3VzKSBjb25zdDsKIAogICAgIEZyYW1lJiBtX2ZyYW1lOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBhNTNhYmI1NzlkZGI1MzU2ZWY0ZWJi
MDhmOGZjZDBkMGQ2NWM4MjZlLi5iZmJlNThlYWIzZTY0Y2ZiMTJlY2YxN2JmOTZmNGZjZTRkZDUw
YjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTI1MSw3ICsyNTEs
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6c2V0UmVzcG9uc2VUeXBlKFJl
c3BvbnNlVHlwZSB0eXBlKQogICAgIC8vIGF0dGVtcHQgdG8gZGlzY291cmFnZSBzeW5jaHJvbm91
cyBYSFIgdXNlLiByZXNwb25zZVR5cGUgaXMgb25lIHN1Y2ggcGllY2Ugb2YgZnVuY3Rpb25hbGl0
eS4KICAgICAvLyBXZSdsbCBvbmx5IGRpc2FibGUgdGhpcyBmdW5jdGlvbmFsaXR5IGZvciBIVFRQ
KFMpIHJlcXVlc3RzIHNpbmNlIHN5bmMgcmVxdWVzdHMgZm9yIGxvY2FsIHByb3RvY29scwogICAg
IC8vIHN1Y2ggYXMgZmlsZTogYW5kIGRhdGE6IHN0aWxsIG1ha2Ugc2Vuc2UgdG8gYWxsb3cuCi0g
ICAgaWYgKCFtX2FzeW5jICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgp
ICYmIG1fdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgeworICAgIGlmICghbV9hc3luYyAm
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSAmJiBtX3VybC51cmwoKS5w
cm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKICAgICAgICAgbG9nQ29uc29sZUVycm9yKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgIlhNTEh0dHBSZXF1ZXN0LnJlc3BvbnNlVHlwZSBjYW5ub3Qg
YmUgY2hhbmdlZCBmb3Igc3luY2hyb25vdXMgSFRUUChTKSByZXF1ZXN0cyBtYWRlIGZyb20gdGhl
IHdpbmRvdyBjb250ZXh0LiIpOwogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yIH07CiAgICAgfQpAQCAtMzgyLDggKzM4Miw5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVy
bCwgYm9vCiAgICAgY2xlYXJSZXNwb25zZSgpOwogICAgIGNsZWFyUmVxdWVzdCgpOwogCi0gICAg
bV91cmwgPSB1cmw7Ci0gICAgY29udGV4dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3Jh
ZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZChtX3VybCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpJ
bnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKKyAgICBhdXRvIHVwZ3JhZGVkVVJMID0gdXJsOwor
ICAgIGNvbnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1
ZXN0SWZOZWVkZWQodXBncmFkZWRVUkwsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVS
ZXF1ZXN0VHlwZTo6TG9hZCk7CisgICAgbV91cmwgPSBXVEZNb3ZlKHVwZ3JhZGVkVVJMKTsKIAog
ICAgIG1fYXN5bmMgPSBhc3luYzsKIApAQCAtNDE2LDcgKzQxNyw3IEBAIHN0ZDo6b3B0aW9uYWw8
RXhjZXB0aW9uT3I8dm9pZD4+IFhNTEh0dHBSZXF1ZXN0OjpwcmVwYXJlVG9TZW5kKCkKICAgICBh
dXRvJiBjb250ZXh0ID0gKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKIAogICAgIGlmIChpczxE
b2N1bWVudD4oY29udGV4dCkgJiYgZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnNob3VsZEln
bm9yZVN5bmNYSFJzKCkpIHsKLSAgICAgICAgbG9nQ29uc29sZUVycm9yKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgbWFrZVN0cmluZygiSWdub3JpbmcgWE1MSHR0cFJlcXVlc3Quc2VuZCgpIGNh
bGwgZm9yICciLCBtX3VybC5zdHJpbmcoKSwgIicgYmVjYXVzZSB0aGUgbWF4aW11bSBudW1iZXIg
b2Ygc3luY2hyb25vdXMgZmFpbHVyZXMgd2FzIHJlYWNoZWQuIikpOworICAgICAgICBsb2dDb25z
b2xlRXJyb3Ioc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtYWtlU3RyaW5nKCJJZ25vcmluZyBY
TUxIdHRwUmVxdWVzdC5zZW5kKCkgY2FsbCBmb3IgJyIsIG1fdXJsLnVybCgpLnN0cmluZygpLCAi
JyBiZWNhdXNlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzeW5jaHJvbm91cyBmYWlsdXJlcyB3YXMg
cmVhY2hlZC4iKSk7CiAgICAgICAgIHJldHVybiBFeGNlcHRpb25Pcjx2b2lkPiB7IH07CiAgICAg
fQogCkBAIC01MTUsNyArNTE2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6
OnNlbmQoQmxvYiYgYm9keSkKICAgICAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0LnZhbHVlKCkp
OwogCiAgICAgaWYgKG1fbWV0aG9kICE9ICJHRVQiICYmIG1fbWV0aG9kICE9ICJIRUFEIikgewot
ICAgICAgICBpZiAoIW1fdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgeworICAgICAgICBp
ZiAoIW1fdXJsLnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewogICAgICAgICAgICAg
Ly8gRklYTUU6IFdlIHdvdWxkIGxpa2UgdG8gc3VwcG9ydCBwb3N0aW5nIEJsb2JzIHRvIG5vbi1o
dHRwIFVSTHMgKGUuZy4gY3VzdG9tIFVSTCBzY2hlbWVzKQogICAgICAgICAgICAgLy8gYnV0IGJl
Y2F1c2Ugb2YgdGhlIGFyY2hpdGVjdHVyZSBvZiBibG9iLWhhbmRsaW5nIHRoYXQgd2lsbCByZXF1
aXJlIGEgZmFpciBhbW91bnQgb2Ygd29yay4KICAgICAgICAgICAgIApAQCAtNTg4LDcgKzU4OSw3
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpzZW5kQnl0ZXNEYXRhKGNvbnN0
IHZvaWQqIGRhdGEsIHNpemVfdCBsZW5ndGgpCiBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiB7CiAgICAgLy8gT25seSBHRVQgcmVxdWVzdCBpcyBzdXBw
b3J0ZWQgZm9yIGJsb2IgVVJMLgotICAgIGlmICghbV9hc3luYyAmJiBtX3VybC5wcm90b2NvbElz
QmxvYigpICYmIG1fbWV0aG9kICE9ICJHRVQiKQorICAgIGlmICghbV9hc3luYyAmJiBtX3VybC51
cmwoKS5wcm90b2NvbElzQmxvYigpICYmIG1fbWV0aG9kICE9ICJHRVQiKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTmV0d29ya0Vycm9yIH07CiAKICAgICBpZiAobV9hc3luYyAmJiBtX3Vw
bG9hZCAmJiBtX3VwbG9hZC0+aGFzRXZlbnRMaXN0ZW5lcnMoKSkKQEAgLTc0MCw2ICs3NDEsNyBA
QCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlcXVlc3QoKQogewogICAgIG1fcmVxdWVzdEhl
YWRlcnMuY2xlYXIoKTsKICAgICBtX3JlcXVlc3RFbnRpdHlCb2R5ID0gbnVsbHB0cjsKKyAgICBt
X3VybCA9IFVSTCB7IH07CiB9CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmdlbmVyaWNFcnJvcigp
CkBAIC05MzEsNiArOTMzLDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGlu
Zyh1bnNpZ25lZCBsb25nKQogICAgIG1fcmVzcG9uc2VCdWlsZGVyLnNocmlua1RvRml0KCk7CiAK
ICAgICBtX2xvYWRpbmdBY3Rpdml0eSA9IHN0ZDo6bnVsbG9wdDsKKyAgICBtX3VybCA9IFVSTCB7
IH07CiAKICAgICBtX3NlbmRGbGFnID0gZmFsc2U7CiAgICAgY2hhbmdlU3RhdGUoRE9ORSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IGZmOWY5OTBlNTZkNTljNjJmOGMwZDc0
Y2U2YTcxY2EwZjRjMWY3ZWIuLmI0OGUxYjkwZmFhYTUyZDZmZTljNTNhNmExZjIwOTkzNWM1M2Jl
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0yMiw2ICsyMiw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkJs
b2JVUkwuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpAQCAtMjE1LDcgKzIxNiw3IEBAIHByaXZh
dGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8WE1MSHR0cFJlcXVlc3RVcGxvYWQ+IG1fdXBsb2Fk
OwogCi0gICAgVVJMIG1fdXJsOworICAgIFVSTFdpdGhCbG9iVVJMTGlmZXRpbWVFeHRlbnNpb24g
bV91cmw7CiAgICAgU3RyaW5nIG1fbWV0aG9kOwogICAgIEhUVFBIZWFkZXJNYXAgbV9yZXF1ZXN0
SGVhZGVyczsKICAgICBSZWZQdHI8Rm9ybURhdGE+IG1fcmVxdWVzdEVudGl0eUJvZHk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA0MTYyZDI1NmViY2IzZmE2ZmE1NzZiMzczZDU0
MmI1ODVmOTlmNGI3Li5lZWI1ZDFhM2VjYmUxNmI2YWZjYjcyNDM2MDExNzQ5Y2JlMWIyZGU4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNy0w
OSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJldm9raW5nIEJs
b2IgVVJMIGFmdGVyIGNhbGxpbmcgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oKSBjYXVzZXMgdGhlIFhI
UiB0byBmYWlsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjc4MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZWJhc2VsaW5lIFdQVCB0ZXN0cyBub3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4K
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL3VybC91cmwtd2l0aC14aHIu
YW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS91
cmwvdXJsLXdpdGgteGhyLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA3LTA5ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkNyeXB0b10gZGVy
aXZlQml0cygpIGluY29ycmVjdGx5IHRocm93cyBmb3IgUEJLREYyIGFsZ29yaXRobSB3aGVuIHRo
ZSBwYXNzd29yZCBpcyBlbXB0eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL3VybC91cmwtd2l0aC14aHIuYW55LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQ
SS91cmwvdXJsLXdpdGgteGhyLmFueS1leHBlY3RlZC50eHQKaW5kZXggM2FiZmE4Y2I5OTI1YzE3
ODg2ZDkxYTZlNDdlYmE4MmU3MDFmYzYyMS4uMmVkZjZkY2Q5OGIyM2I2ZDY5YjczOTY4N2U0Y2Ux
NTk2ZjE1ZTZkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9GaWxlQVBJL3VybC91cmwtd2l0aC14aHIuYW55LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvdXJs
L3VybC13aXRoLXhoci5hbnktZXhwZWN0ZWQudHh0CkBAIC0xMiw1ICsxMiw1IEBAIFBBU1MgWEhS
IHdpdGggbWV0aG9kICJPUFRJT05TIiBzaG91bGQgZmFpbAogUEFTUyBYSFIgd2l0aCBtZXRob2Qg
IlBVVCIgc2hvdWxkIGZhaWwKIFBBU1MgWEhSIHdpdGggbWV0aG9kICJDVVNUT00iIHNob3VsZCBm
YWlsCiBQQVNTIFhIUiBzaG91bGQgcmV0dXJuIENvbnRlbnQtVHlwZSBmcm9tIEJsb2IKLUZBSUwg
UmV2b2tlIGJsb2IgVVJMIGFmdGVyIG9wZW4oKSwgd2lsbCBmZXRjaCBhc3NlcnRfdW5yZWFjaGVk
OiBHb3QgdW5leHBlY3RlZCBlcnJvciBldmVudCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BB
U1MgUmV2b2tlIGJsb2IgVVJMIGFmdGVyIG9wZW4oKSwgd2lsbCBmZXRjaAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvdXJs
L3VybC13aXRoLXhoci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS91cmwvdXJsLXdpdGgteGhyLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDNhYmZhOGNiOTkyNWMxNzg4NmQ5MWE2ZTQ3ZWJhODJl
NzAxZmM2MjEuLjJlZGY2ZGNkOThiMjNiNmQ2OWI3Mzk2ODdlNGNlMTU5NmYxNWU2ZDggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQ
SS91cmwvdXJsLXdpdGgteGhyLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS91cmwvdXJsLXdpdGgt
eGhyLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xMiw1ICsxMiw1IEBAIFBBU1MgWEhSIHdp
dGggbWV0aG9kICJPUFRJT05TIiBzaG91bGQgZmFpbAogUEFTUyBYSFIgd2l0aCBtZXRob2QgIlBV
VCIgc2hvdWxkIGZhaWwKIFBBU1MgWEhSIHdpdGggbWV0aG9kICJDVVNUT00iIHNob3VsZCBmYWls
CiBQQVNTIFhIUiBzaG91bGQgcmV0dXJuIENvbnRlbnQtVHlwZSBmcm9tIEJsb2IKLUZBSUwgUmV2
b2tlIGJsb2IgVVJMIGFmdGVyIG9wZW4oKSwgd2lsbCBmZXRjaCBhc3NlcnRfdW5yZWFjaGVkOiBH
b3QgdW5leHBlY3RlZCBlcnJvciBldmVudCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1Mg
UmV2b2tlIGJsb2IgVVJMIGFmdGVyIG9wZW4oKSwgd2lsbCBmZXRjaAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433240</attachid>
            <date>2021-07-09 14:25:45 -0700</date>
            <delta_ts>2021-07-13 12:18:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227821-20210709142544.patch</filename>
            <type>text/plain</type>
            <size>15318</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5Nzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ4M2NmZDA4NzIyNDZj
ZDk0YzQ1MWUwMTMxNmY2MzE2ZjY3NmU4My4uZTg4OGJmYzI1ODFkMTE0MThiYWJmNTY2MzZiZjRl
NWJjNmVjZjA4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTA3LTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2b2tpbmcgQmxvYiBVUkwg
YWZ0ZXIgY2FsbGluZyBYTUxIdHRwUmVxdWVzdDo6b3BlbigpIGNhdXNlcyB0aGUgWEhSIHRvIGZh
aWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgy
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldm9r
aW5nIEJsb2IgVVJMIGFmdGVyIGNhbGxpbmcgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oKSBjYXVzZXMg
dGhlIFhIUiB0byBmYWlsLiBUaGlzIGRvZXNuJ3QgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mCisgICAg
ICAgIG90aGVyIGJyb3dzZXJzIGFuZCBpcyBjYXVzaW5nIFdlYktpdCB0byBmYWlsIG9uZSBvZiB0
aGUgc3VidGVzdHMgb246CisgICAgICAgIC0gaHR0cDovL3dwdC5saXZlL0ZpbGVBUEkvdXJsL3Vy
bC13aXRoLXhoci5hbnkuaHRtbAorCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKCkgbm93
IGV4dGVuZHMgdGhlIGxpZmV0aW1lIG9mIHRoZSBCbG9iIFVSTCBhcyBuZWNlc3NhcnkgaW4gb3Jk
ZXIgdG8gY29tcGxldGUgdGhlIGxvYWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2Vs
aW5lZCBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGZpbGVhcGkvQmxvYlVSTC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpVUkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uOjpVUkxXaXRo
QmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTFdpdGhCbG9i
VVJMTGlmZXRpbWVFeHRlbnNpb246On5VUkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uKToK
KyAgICAgICAgKiBmaWxlYXBpL0Jsb2JVUkwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JVUkxM
aWZlVGltZUV4dGVuZGVyOjp1cmwgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lDaGVj
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpl
eHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5lY2Vzc2FyeSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KToKKyAg
ICAgICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5oOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFJlc3BvbnNlVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Blbik6CisgICAgICAgIChXZWJD
b3JlOjpYTUxIdHRwUmVxdWVzdDo6cHJlcGFyZVRvU2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6
Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisKIDIwMjEt
MDctMDkgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAg
ICAgW0NhaXJvXVtXaW5dIFJlbW92ZSB1bm5lZWRlZCBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVBy
aXZhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYlVSTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2JVUkwuY3BwCmluZGV4IGJiYTkwY2JiODAwYTE1NmNl
ZTk5MmM1ZmRmYmZmYWZmNzFjNTgwNjIuLmQwN2Y5ZGI4NWEyOTQ1YzkzZGIwY2FmMDgwYTI2OGQw
NWJmNDRhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYlVSTC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iVVJMLmNwcApAQCAtOTYsNCArOTYsNDYg
QEAgVVJMIEJsb2JVUkw6OmNyZWF0ZUJsb2JVUkwoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcp
CiAgICAgcmV0dXJuIFVSTCh7IH0sIHVybFN0cmluZyk7CiB9CiAKK1VSTFdpdGhCbG9iVVJMTGlm
ZXRpbWVFeHRlbnNpb246OlVSTFdpdGhCbG9iVVJMTGlmZXRpbWVFeHRlbnNpb24oY29uc3QgVVJM
JiB1cmwpCisgICAgOiBtX3VybCh1cmwpCit7CisgICAgZXh0ZW5kQmxvYlVSTExpZmV0aW1lSWZO
ZWNlc3NhcnkoKTsKK30KKworVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbjo6flVSTFdp
dGhCbG9iVVJMTGlmZXRpbWVFeHRlbnNpb24oKQoreworICAgIHVucmVnaXN0ZXJDdXJyZW50VVJM
SWZOZWNlc3NhcnkoKTsKK30KKwordm9pZCBVUkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9u
OjpleHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKG1fdXJsLnBy
b3RvY29sSXNCbG9iKCkpIHsKKyAgICAgICAgYXV0byBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKEJsb2JVUkw6OmdldE9yaWdpblVSTChtX3VybCkpOworICAgICAgICBVUkwgdGVtcG9y
YXJ5QmxvYlVSTCA9IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VSTChvcmlnaW4ucHRyKCkpOworICAg
ICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwob3JpZ2luLnB0cigp
LCB0ZW1wb3JhcnlCbG9iVVJMLCBtX3VybCk7CisgICAgICAgIG1fdXJsID0gV1RGTW92ZSh0ZW1w
b3JhcnlCbG9iVVJMKTsKKyAgICB9Cit9CisKK3ZvaWQgVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4
dGVuc2lvbjo6dW5yZWdpc3RlckN1cnJlbnRVUkxJZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKG1f
dXJsLnByb3RvY29sSXNCbG9iKCkpCisgICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnVu
cmVnaXN0ZXJCbG9iVVJMKG1fdXJsKTsKK30KKworVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVu
c2lvbiYgVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbjo6b3BlcmF0b3I9KFVSTFdpdGhC
bG9iVVJMTGlmZXRpbWVFeHRlbnNpb24mJiBvdGhlcikKK3sKKyAgICB1bnJlZ2lzdGVyQ3VycmVu
dFVSTElmTmVjZXNzYXJ5KCk7CisgICAgbV91cmwgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fdXJs
LCB7IH0pOworICAgIHJldHVybiAqdGhpczsKK30KKworVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4
dGVuc2lvbiYgVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbjo6b3BlcmF0b3I9KFVSTCYm
IHVybCkKK3sKKyAgICB1bnJlZ2lzdGVyQ3VycmVudFVSTElmTmVjZXNzYXJ5KCk7CisgICAgbV91
cmwgPSBXVEZNb3ZlKHVybCk7CisgICAgZXh0ZW5kQmxvYlVSTExpZmV0aW1lSWZOZWNlc3Nhcnko
KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYlVSTC5oIGIvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9CbG9iVVJMLmgKaW5kZXggZTFmNTg5Y2NmZjdlNjgzN2U0ZTc4MzFlZGEyZmI0ZjZk
NDAxNWZhOC4uODMxZjQyY2M4Mjg1YWJkN2EwZmUxNTNkNGRhZThkYWEyZGU2MDY3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iVVJMLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9CbG9iVVJMLmgKQEAgLTU4LDQgKzU4LDI5IEBAIHByaXZhdGU6CiAgICAgQmxv
YlVSTCgpIHsgfQogfTsKIAorY2xhc3MgVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbiB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
VVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbik7CitwdWJsaWM6CisgICAgVVJMV2l0aEJs
b2JVUkxMaWZldGltZUV4dGVuc2lvbigpID0gZGVmYXVsdDsKKyAgICBleHBsaWNpdCBVUkxXaXRo
QmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uKGNvbnN0IFVSTCYpOworICAgIH5VUkxXaXRoQmxvYlVS
TExpZmV0aW1lRXh0ZW5zaW9uKCk7CisKKyAgICBVUkxXaXRoQmxvYlVSTExpZmV0aW1lRXh0ZW5z
aW9uKFVSTFdpdGhCbG9iVVJMTGlmZXRpbWVFeHRlbnNpb24mJiBvdGhlcikKKyAgICAgICAgOiBt
X3VybChzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fdXJsLCB7IH0pKQorICAgIHsgfQorCisgICAgVVJM
V2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbiYgb3BlcmF0b3I9KFVSTFdpdGhCbG9iVVJMTGlm
ZXRpbWVFeHRlbnNpb24mJik7CisgICAgVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbiYg
b3BlcmF0b3I9KFVSTCYmKTsKKworICAgIG9wZXJhdG9yIGNvbnN0IFVSTCYoKSBjb25zdCB7IHJl
dHVybiBtX3VybDsgfQorICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7
IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHVucmVnaXN0ZXJDdXJyZW50VVJMSWZOZWNlc3Nhcnko
KTsKKyAgICB2b2lkIGV4dGVuZEJsb2JVUkxMaWZldGltZUlmTmVjZXNzYXJ5KCk7CisKKyAgICBV
UkwgbV91cmw7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5kZXggYzA4MmE5ODE1MjZkNDA0MDhjODViYjE2NjgzYWIx
NGVmNmRkNmU4OC4uNDcxNDc0OTVmYjRjZjg0Y2QwZDJhNmI2OGZjMmYzMTBiZTdjMDllMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApAQCAtMTA0LDIxICsxMDQsMTcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5
KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXUKICAgICBjaGVja05hdmlnYXRpb25Qb2xpY3koV1RG
TW92ZShuZXdSZXF1ZXN0KSwgcmVkaXJlY3RSZXNwb25zZSwgbV9mcmFtZS5sb2FkZXIoKS5hY3Rp
dmVEb2N1bWVudExvYWRlcigpLCB7IH0sIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAotQ29tcGxl
dGlvbkhhbmRsZXJDYWxsaW5nU2NvcGUgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6OmV4dGVu
ZEJsb2JVUkxMaWZldGltZUlmTmVjZXNzYXJ5KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG9j
dW1lbnRMb2FkZXIqIGxvYWRlcikgY29uc3QKK1VSTFdpdGhCbG9iVVJMTGlmZXRpbWVFeHRlbnNp
b24gRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6OmV4dGVuZEJsb2JVUkxMaWZldGltZUlmTmVj
ZXNzYXJ5KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwg
UG9saWN5RGVjaXNpb25Nb2RlIG1vZGUpIGNvbnN0CiB7Ci0gICAgaWYgKCFyZXF1ZXN0LnVybCgp
LnByb3RvY29sSXNCbG9iKCkpCisgICAgaWYgKG1vZGUgIT0gUG9saWN5RGVjaXNpb25Nb2RlOjpB
c3luY2hyb25vdXMgfHwgIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0Jsb2IoKSkKICAgICAgICAg
cmV0dXJuIHsgfTsKIAotICAgIC8vIENyZWF0ZSBhIG5ldyB0ZW1wb3JhcnkgYmxvYlVSTCBpbiBj
YXNlIHRoaXMgb25lIGdldHMgcmV2b2tlZCBkdXJpbmcgdGhlIGFzeW5jaHJvbm91cyBuYXZpZ2F0
aW9uIHBvbGljeSBkZWNpc2lvbi4KLSAgICBhdXRvIG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGUoQmxvYlVSTDo6Z2V0T3JpZ2luVVJMKHJlcXVlc3QudXJsKCkpKTsKLSAgICBVUkwgdGVt
cG9yYXJ5QmxvYlVSTCA9IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VSTChvcmlnaW4ucHRyKCkpOwot
ICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChvcmlnaW4ucHRyKCks
IHRlbXBvcmFyeUJsb2JVUkwsIHJlcXVlc3QudXJsKCkpOwotICAgIHJlcXVlc3Quc2V0VVJMKHRl
bXBvcmFyeUJsb2JVUkwpOworICAgIFVSTFdpdGhCbG9iVVJMTGlmZXRpbWVFeHRlbnNpb24gdXJs
V2l0aExpZmV0aW1lRXh0ZW5zaW9uKHJlcXVlc3QudXJsKCkpOworICAgIHJlcXVlc3Quc2V0VVJM
KHVybFdpdGhMaWZldGltZUV4dGVuc2lvbik7CiAgICAgaWYgKGxvYWRlcikKLSAgICAgICAgbG9h
ZGVyLT5yZXF1ZXN0KCkuc2V0VVJMKHRlbXBvcmFyeUJsb2JVUkwpOwotICAgIHJldHVybiBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+KFt0ZW1wb3JhcnlCbG9iVVJMID0gV1RGTW92ZSh0ZW1wb3Jh
cnlCbG9iVVJMKV0gewotICAgICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Ojp1bnJlZ2lzdGVy
QmxvYlVSTCh0ZW1wb3JhcnlCbG9iVVJMKTsKLSAgICB9KTsKKyAgICAgICAgbG9hZGVyLT5yZXF1
ZXN0KCkuc2V0VVJMKHVybFdpdGhMaWZldGltZUV4dGVuc2lvbik7CisKKyAgICByZXR1cm4gdXJs
V2l0aExpZmV0aW1lRXh0ZW5zaW9uOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRG9jdW1lbnRMb2FkZXIqIGxv
YWRlciwgUmVmUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24sIFBvbGljeURlY2lzaW9uTW9kZSBwb2xpY3lEZWNpc2lv
bk1vZGUpCkBAIC0yMDEsNyArMTk3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tl
cjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QKIAogICAg
IG1fZnJhbWUubG9hZGVyKCkuY2xlYXJQcm92aXNpb25hbExvYWRGb3JQb2xpY3lDaGVjaygpOwog
Ci0gICAgYXV0byBibG9iVVJMTGlmZXRpbWVFeHRlbnNpb24gPSBwb2xpY3lEZWNpc2lvbk1vZGUg
PT0gUG9saWN5RGVjaXNpb25Nb2RlOjpBc3luY2hyb25vdXMgPyBleHRlbmRCbG9iVVJMTGlmZXRp
bWVJZk5lY2Vzc2FyeShyZXF1ZXN0LCBsb2FkZXIpIDogQ29tcGxldGlvbkhhbmRsZXJDYWxsaW5n
U2NvcGUgeyB9OworICAgIGF1dG8gYmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uID0gZXh0ZW5kQmxv
YlVSTExpZmV0aW1lSWZOZWNlc3NhcnkocmVxdWVzdCwgbG9hZGVyLCBwb2xpY3lEZWNpc2lvbk1v
ZGUpOwogCiAgICAgYm9vbCBpc0luaXRpYWxFbXB0eURvY3VtZW50TG9hZCA9ICFtX2ZyYW1lLmxv
YWRlcigpLnN0YXRlTWFjaGluZSgpLmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpICYm
IHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0Fib3V0KCkgJiYgIXN1YnN0aXR1dGVEYXRhLmlzVmFs
aWQoKTsKICAgICBhdXRvIHJlcXVlc3RJZGVudGlmaWVyID0gUG9saWN5Q2hlY2tJZGVudGlmaWVy
OjpjcmVhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVj
a2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCmluZGV4IGRmMjI3
YjZjMTAzYTUxM2ZmNTRiNmFiYTUzNmY5NjRiOTRiZDEyMDYuLjNjNjYyMjgzNTYzNzdhZjg5ZDA5
ZWE1NzQ1YzExMmU5MTRmYjgyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
b2xpY3lDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIu
aApAQCAtNTEsNiArNTEsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247
CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFVS
TFdpdGhCbG9iVVJMTGlmZXRpbWVFeHRlbnNpb247CiAKIGVudW0gY2xhc3MgTmF2aWdhdGlvblBv
bGljeURlY2lzaW9uIDogdWludDhfdCB7CiAgICAgQ29udGludWVMb2FkLApAQCAtODksNyArOTAs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVVbmltcGxlbWVudGFibGVQ
b2xpY3koY29uc3QgUmVzb3VyY2VFcnJvciYpOwotICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXJD
YWxsaW5nU2NvcGUgZXh0ZW5kQmxvYlVSTExpZmV0aW1lSWZOZWNlc3NhcnkoUmVzb3VyY2VSZXF1
ZXN0JiwgRG9jdW1lbnRMb2FkZXIqKSBjb25zdDsKKyAgICBVUkxXaXRoQmxvYlVSTExpZmV0aW1l
RXh0ZW5zaW9uIGV4dGVuZEJsb2JVUkxMaWZldGltZUlmTmVjZXNzYXJ5KFJlc291cmNlUmVxdWVz
dCYsIERvY3VtZW50TG9hZGVyKiwgUG9saWN5RGVjaXNpb25Nb2RlID0gUG9saWN5RGVjaXNpb25N
b2RlOjpBc3luY2hyb25vdXMpIGNvbnN0OwogCiAgICAgRnJhbWUmIG1fZnJhbWU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGE1M2FiYjU3OWRkYjUzNTZlZjRlYmIw
OGY4ZmNkMGQwZDY1YzgyNmUuLmJmYmU1OGVhYjNlNjRjZmIxMmVjZjE3YmY5NmY0ZmNlNGRkNTBi
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMjUxLDcgKzI1MSw3
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpzZXRSZXNwb25zZVR5cGUoUmVz
cG9uc2VUeXBlIHR5cGUpCiAgICAgLy8gYXR0ZW1wdCB0byBkaXNjb3VyYWdlIHN5bmNocm9ub3Vz
IFhIUiB1c2UuIHJlc3BvbnNlVHlwZSBpcyBvbmUgc3VjaCBwaWVjZSBvZiBmdW5jdGlvbmFsaXR5
LgogICAgIC8vIFdlJ2xsIG9ubHkgZGlzYWJsZSB0aGlzIGZ1bmN0aW9uYWxpdHkgZm9yIEhUVFAo
UykgcmVxdWVzdHMgc2luY2Ugc3luYyByZXF1ZXN0cyBmb3IgbG9jYWwgcHJvdG9jb2xzCiAgICAg
Ly8gc3VjaCBhcyBmaWxlOiBhbmQgZGF0YTogc3RpbGwgbWFrZSBzZW5zZSB0byBhbGxvdy4KLSAg
ICBpZiAoIW1fYXN5bmMgJiYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkg
JiYgbV91cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CisgICAgaWYgKCFtX2FzeW5jICYm
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpICYmIG1fdXJsLnVybCgpLnBy
b3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewogICAgICAgICBsb2dDb25zb2xlRXJyb3Ioc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCAiWE1MSHR0cFJlcXVlc3QucmVzcG9uc2VUeXBlIGNhbm5vdCBi
ZSBjaGFuZ2VkIGZvciBzeW5jaHJvbm91cyBIVFRQKFMpIHJlcXVlc3RzIG1hZGUgZnJvbSB0aGUg
d2luZG93IGNvbnRleHQuIik7CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IgfTsKICAgICB9CkBAIC0zODIsOCArMzgyLDkgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
WE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IFVSTCYgdXJs
LCBib28KICAgICBjbGVhclJlc3BvbnNlKCk7CiAgICAgY2xlYXJSZXF1ZXN0KCk7CiAKLSAgICBt
X3VybCA9IHVybDsKLSAgICBjb250ZXh0LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFk
ZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKG1fdXJsLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Oklu
c2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQpOworICAgIGF1dG8gdXBncmFkZWRVUkwgPSB1cmw7Cisg
ICAgY29udGV4dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVl
c3RJZk5lZWRlZCh1cGdyYWRlZFVSTCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJl
cXVlc3RUeXBlOjpMb2FkKTsKKyAgICBtX3VybCA9IFdURk1vdmUodXBncmFkZWRVUkwpOwogCiAg
ICAgbV9hc3luYyA9IGFzeW5jOwogCkBAIC00MTYsNyArNDE3LDcgQEAgc3RkOjpvcHRpb25hbDxF
eGNlcHRpb25Pcjx2b2lkPj4gWE1MSHR0cFJlcXVlc3Q6OnByZXBhcmVUb1NlbmQoKQogICAgIGF1
dG8mIGNvbnRleHQgPSAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogCiAgICAgaWYgKGlzPERv
Y3VtZW50Pihjb250ZXh0KSAmJiBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuc2hvdWxkSWdu
b3JlU3luY1hIUnMoKSkgewotICAgICAgICBsb2dDb25zb2xlRXJyb3Ioc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCBtYWtlU3RyaW5nKCJJZ25vcmluZyBYTUxIdHRwUmVxdWVzdC5zZW5kKCkgY2Fs
bCBmb3IgJyIsIG1fdXJsLnN0cmluZygpLCAiJyBiZWNhdXNlIHRoZSBtYXhpbXVtIG51bWJlciBv
ZiBzeW5jaHJvbm91cyBmYWlsdXJlcyB3YXMgcmVhY2hlZC4iKSk7CisgICAgICAgIGxvZ0NvbnNv
bGVFcnJvcihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1ha2VTdHJpbmcoIklnbm9yaW5nIFhN
TEh0dHBSZXF1ZXN0LnNlbmQoKSBjYWxsIGZvciAnIiwgbV91cmwudXJsKCkuc3RyaW5nKCksICIn
IGJlY2F1c2UgdGhlIG1heGltdW0gbnVtYmVyIG9mIHN5bmNocm9ub3VzIGZhaWx1cmVzIHdhcyBy
ZWFjaGVkLiIpKTsKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbk9yPHZvaWQ+IHsgfTsKICAgICB9
CiAKQEAgLTUxNSw3ICs1MTYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6
c2VuZChCbG9iJiBib2R5KQogICAgICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQudmFsdWUoKSk7
CiAKICAgICBpZiAobV9tZXRob2QgIT0gIkdFVCIgJiYgbV9tZXRob2QgIT0gIkhFQUQiKSB7Ci0g
ICAgICAgIGlmICghbV91cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CisgICAgICAgIGlm
ICghbV91cmwudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CiAgICAgICAgICAgICAv
LyBGSVhNRTogV2Ugd291bGQgbGlrZSB0byBzdXBwb3J0IHBvc3RpbmcgQmxvYnMgdG8gbm9uLWh0
dHAgVVJMcyAoZS5nLiBjdXN0b20gVVJMIHNjaGVtZXMpCiAgICAgICAgICAgICAvLyBidXQgYmVj
YXVzZSBvZiB0aGUgYXJjaGl0ZWN0dXJlIG9mIGJsb2ItaGFuZGxpbmcgdGhhdCB3aWxsIHJlcXVp
cmUgYSBmYWlyIGFtb3VudCBvZiB3b3JrLgogICAgICAgICAgICAgCkBAIC01ODgsNyArNTg5LDcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OnNlbmRCeXRlc0RhdGEoY29uc3Qg
dm9pZCogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1
ZXN0OjpjcmVhdGVSZXF1ZXN0KCkKIHsKICAgICAvLyBPbmx5IEdFVCByZXF1ZXN0IGlzIHN1cHBv
cnRlZCBmb3IgYmxvYiBVUkwuCi0gICAgaWYgKCFtX2FzeW5jICYmIG1fdXJsLnByb3RvY29sSXNC
bG9iKCkgJiYgbV9tZXRob2QgIT0gIkdFVCIpCisgICAgaWYgKCFtX2FzeW5jICYmIG1fdXJsLnVy
bCgpLnByb3RvY29sSXNCbG9iKCkgJiYgbV9tZXRob2QgIT0gIkdFVCIpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfTsKIAogICAgIGlmIChtX2FzeW5jICYmIG1fdXBs
b2FkICYmIG1fdXBsb2FkLT5oYXNFdmVudExpc3RlbmVycygpKQpAQCAtNzQwLDYgKzc0MSw3IEBA
IHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVxdWVzdCgpCiB7CiAgICAgbV9yZXF1ZXN0SGVh
ZGVycy5jbGVhcigpOwogICAgIG1fcmVxdWVzdEVudGl0eUJvZHkgPSBudWxscHRyOworICAgIG1f
dXJsID0gVVJMIHsgfTsKIH0KIAogdm9pZCBYTUxIdHRwUmVxdWVzdDo6Z2VuZXJpY0Vycm9yKCkK
QEAgLTkzMSw2ICs5MzMsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5n
KHVuc2lnbmVkIGxvbmcpCiAgICAgbV9yZXNwb25zZUJ1aWxkZXIuc2hyaW5rVG9GaXQoKTsKIAog
ICAgIG1fbG9hZGluZ0FjdGl2aXR5ID0gc3RkOjpudWxsb3B0OworICAgIG1fdXJsID0gVVJMIHsg
fTsKIAogICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKICAgICBjaGFuZ2VTdGF0ZShET05FKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKaW5kZXggZmY5Zjk5MGU1NmQ1OWM2MmY4YzBkNzRj
ZTZhNzFjYTBmNGMxZjdlYi4uYjQ4ZTFiOTBmYWFhNTJkNmZlOWM1M2E2YTFmMjA5OTM1YzUzYmU4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTIyLDYgKzIyLDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiQmxv
YlVSTC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiRm9ybURhdGEuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCkBAIC0yMTUsNyArMjE2LDcgQEAgcHJpdmF0
ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxYTUxIdHRwUmVxdWVzdFVwbG9hZD4gbV91cGxvYWQ7
CiAKLSAgICBVUkwgbV91cmw7CisgICAgVVJMV2l0aEJsb2JVUkxMaWZldGltZUV4dGVuc2lvbiBt
X3VybDsKICAgICBTdHJpbmcgbV9tZXRob2Q7CiAgICAgSFRUUEhlYWRlck1hcCBtX3JlcXVlc3RI
ZWFkZXJzOwogICAgIFJlZlB0cjxGb3JtRGF0YT4gbV9yZXF1ZXN0RW50aXR5Qm9keTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDQxNjJkMjU2ZWJjYjNmYTZmYTU3NmIzNzNkNTQy
YjU4NWY5OWY0YjcuLmVlYjVkMWEzZWNiZTE2YjZhZmNiNzI0MzYwMTE3NDljYmUxYjJkZTggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA3LTA5
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2b2tpbmcgQmxv
YiBVUkwgYWZ0ZXIgY2FsbGluZyBYTUxIdHRwUmVxdWVzdDo6b3BlbigpIGNhdXNlcyB0aGUgWEhS
IHRvIGZhaWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNzgyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlYmFzZWxpbmUgV1BUIHRlc3RzIG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvdXJsL3VybC13aXRoLXhoci5h
bnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL3Vy
bC91cmwtd2l0aC14aHIuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDctMDkgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQ3J5cHRvXSBkZXJp
dmVCaXRzKCkgaW5jb3JyZWN0bHkgdGhyb3dzIGZvciBQQktERjIgYWxnb3JpdGhtIHdoZW4gdGhl
IHBhc3N3b3JkIGlzIGVtcHR5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvdXJsL3VybC13aXRoLXhoci5hbnktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJ
L3VybC91cmwtd2l0aC14aHIuYW55LWV4cGVjdGVkLnR4dAppbmRleCAzYWJmYThjYjk5MjVjMTc4
ODZkOTFhNmU0N2ViYTgyZTcwMWZjNjIxLi4yZWRmNmRjZDk4YjIzYjZkNjliNzM5Njg3ZTRjZTE1
OTZmMTVlNmQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0ZpbGVBUEkvdXJsL3VybC13aXRoLXhoci5hbnktZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS91cmwv
dXJsLXdpdGgteGhyLmFueS1leHBlY3RlZC50eHQKQEAgLTEyLDUgKzEyLDUgQEAgUEFTUyBYSFIg
d2l0aCBtZXRob2QgIk9QVElPTlMiIHNob3VsZCBmYWlsCiBQQVNTIFhIUiB3aXRoIG1ldGhvZCAi
UFVUIiBzaG91bGQgZmFpbAogUEFTUyBYSFIgd2l0aCBtZXRob2QgIkNVU1RPTSIgc2hvdWxkIGZh
aWwKIFBBU1MgWEhSIHNob3VsZCByZXR1cm4gQ29udGVudC1UeXBlIGZyb20gQmxvYgotRkFJTCBS
ZXZva2UgYmxvYiBVUkwgYWZ0ZXIgb3BlbigpLCB3aWxsIGZldGNoIGFzc2VydF91bnJlYWNoZWQ6
IEdvdCB1bmV4cGVjdGVkIGVycm9yIGV2ZW50IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFT
UyBSZXZva2UgYmxvYiBVUkwgYWZ0ZXIgb3BlbigpLCB3aWxsIGZldGNoCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS91cmwv
dXJsLXdpdGgteGhyLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL3VybC91cmwtd2l0aC14aHIuYW55Lndv
cmtlci1leHBlY3RlZC50eHQKaW5kZXggM2FiZmE4Y2I5OTI1YzE3ODg2ZDkxYTZlNDdlYmE4MmU3
MDFmYzYyMS4uMmVkZjZkY2Q5OGIyM2I2ZDY5YjczOTY4N2U0Y2UxNTk2ZjE1ZTZkOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJ
L3VybC91cmwtd2l0aC14aHIuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL3VybC91cmwtd2l0aC14
aHIuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEyLDUgKzEyLDUgQEAgUEFTUyBYSFIgd2l0
aCBtZXRob2QgIk9QVElPTlMiIHNob3VsZCBmYWlsCiBQQVNTIFhIUiB3aXRoIG1ldGhvZCAiUFVU
IiBzaG91bGQgZmFpbAogUEFTUyBYSFIgd2l0aCBtZXRob2QgIkNVU1RPTSIgc2hvdWxkIGZhaWwK
IFBBU1MgWEhSIHNob3VsZCByZXR1cm4gQ29udGVudC1UeXBlIGZyb20gQmxvYgotRkFJTCBSZXZv
a2UgYmxvYiBVUkwgYWZ0ZXIgb3BlbigpLCB3aWxsIGZldGNoIGFzc2VydF91bnJlYWNoZWQ6IEdv
dCB1bmV4cGVjdGVkIGVycm9yIGV2ZW50IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBS
ZXZva2UgYmxvYiBVUkwgYWZ0ZXIgb3BlbigpLCB3aWxsIGZldGNoCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>