<?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>212099</bug_id>
          
          <creation_ts>2020-05-19 12:04:47 -0700</creation_ts>
          <short_desc>[WebXR] Implement XRSession::requestAnimationFrame()</short_desc>
          <delta_ts>2020-05-27 02:37: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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>208988</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1654119</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-19 12:04:47 -0700</bug_when>
    <thetext>[WebXR] Implement XRSession::requestAnimationFrame()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654133</commentid>
    <comment_count>1</comment_count>
      <attachid>399760</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-19 12:33:52 -0700</bug_when>
    <thetext>Created attachment 399760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655332</commentid>
    <comment_count>2</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-22 08:52:44 -0700</bug_when>
    <thetext>Gentle ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655808</commentid>
    <comment_count>3</comment_count>
      <attachid>399760</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-25 01:47:37 -0700</bug_when>
    <thetext>Comment on attachment 399760
Patch

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

&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:124
&gt; +int WebXRSession::requestAnimationFrame(Ref&lt;XRFrameRequestCallback&gt;&amp;&amp; callback)

Why do we return a signed integer, should we return an unsigned?

&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:135
&gt; +    scheduleAnimation();

scheduleAnimation() is only called there right now. In the future, it will be called more?
How is it supposed to be hooked, a repeat timer?

&gt; Source/WebCore/Modules/webxr/XRFrameRequestCallback.h:44
&gt; +    int callbackId() { return m_id; }

const

&gt; Source/WebCore/Modules/webxr/XRFrameRequestCallback.h:45
&gt; +    void setCallbackId(int id) { m_id = id; }

I guess we should assert that m_id is zero if we initialise it to zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655916</commentid>
    <comment_count>4</comment_count>
      <attachid>399760</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-25 12:35:53 -0700</bug_when>
    <thetext>Comment on attachment 399760
Patch

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

&gt;&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:124
&gt;&gt; +int WebXRSession::requestAnimationFrame(Ref&lt;XRFrameRequestCallback&gt;&amp;&amp; callback)
&gt; 
&gt; Why do we return a signed integer, should we return an unsigned?

I thought the same but the IDL specifies a  &quot;long&quot; which is a signed integer. I might raise an issue to the WG because I don&apos;t think it makes much sense either.

&gt;&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:135
&gt;&gt; +    scheduleAnimation();
&gt; 
&gt; scheduleAnimation() is only called there right now. In the future, it will be called more?
&gt; How is it supposed to be hooked, a repeat timer?

Authors need to call requestAnimationFrame() in their callbacks to get the next frame.

Note that we aren&apos;t returning pose information yet. The retrieval of pose information from devices will be done independently of the existence of requests or not. We should generate XRFrame&apos;s as we get data from devices, and pass it to the author in the callbacks of requestAnimationFrame() if any.

&gt;&gt; Source/WebCore/Modules/webxr/XRFrameRequestCallback.h:44
&gt;&gt; +    int callbackId() { return m_id; }
&gt; 
&gt; const

OK.

&gt;&gt; Source/WebCore/Modules/webxr/XRFrameRequestCallback.h:45
&gt;&gt; +    void setCallbackId(int id) { m_id = id; }
&gt; 
&gt; I guess we should assert that m_id is zero if we initialise it to zero.

Good point although the thing is that id is a signed integer to in theory we could overflow positive integers and then reach 0 again after passing by all the negative ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655998</commentid>
    <comment_count>5</comment_count>
      <attachid>399760</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-26 03:29:44 -0700</bug_when>
    <thetext>Comment on attachment 399760
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:124
&gt;&gt;&gt; +int WebXRSession::requestAnimationFrame(Ref&lt;XRFrameRequestCallback&gt;&amp;&amp; callback)
&gt;&gt; 
&gt;&gt; Why do we return a signed integer, should we return an unsigned?
&gt; 
&gt; I thought the same but the IDL specifies a  &quot;long&quot; which is a signed integer. I might raise an issue to the WG because I don&apos;t think it makes much sense either.

An issue sounds good.

&gt;&gt;&gt; Source/WebCore/Modules/webxr/XRFrameRequestCallback.h:45
&gt;&gt;&gt; +    void setCallbackId(int id) { m_id = id; }
&gt;&gt; 
&gt;&gt; I guess we should assert that m_id is zero if we initialise it to zero.
&gt; 
&gt; Good point although the thing is that id is a signed integer to in theory we could overflow positive integers and then reach 0 again after passing by all the negative ones.

Sure, but still that might capture the issue of overwriting the id, which would not be great.
We should also probably add an assert to the getter that it is not zero.
Or maybe we should have a class taking a Ref&lt;XRFrameRequestCallback&gt; and an ID in constructor, plus a settable boolean m_cancelled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656069</commentid>
    <comment_count>6</comment_count>
      <attachid>400255</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-26 09:45:22 -0700</bug_when>
    <thetext>Created attachment 400255
Patch

Added ASSERTs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656070</commentid>
    <comment_count>7</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-26 09:53:01 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; Comment on attachment 399760 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399760&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:124
&gt; &gt;&gt;&gt; +int WebXRSession::requestAnimationFrame(Ref&lt;XRFrameRequestCallback&gt;&amp;&amp; callback)
&gt; &gt;&gt; 
&gt; &gt;&gt; Why do we return a signed integer, should we return an unsigned?
&gt; &gt; 
&gt; &gt; I thought the same but the IDL specifies a  &quot;long&quot; which is a signed integer. I might raise an issue to the WG because I don&apos;t think it makes much sense either.
&gt; 
&gt; An issue sounds good.

JFTR https://github.com/immersive-web/webxr/pull/1062

It looks like it will be approved, it&apos;s sensible and it also matches window&apos;s rAF (consistency yay!). I&apos;ll likely replace it before landing or after the next review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656107</commentid>
    <comment_count>8</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-26 11:16:20 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #7)
&gt; (In reply to youenn fablet from comment #5)
&gt; &gt; Comment on attachment 399760 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=399760&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:124
&gt; &gt; &gt;&gt;&gt; +int WebXRSession::requestAnimationFrame(Ref&lt;XRFrameRequestCallback&gt;&amp;&amp; callback)
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; Why do we return a signed integer, should we return an unsigned?
&gt; &gt; &gt; 
&gt; &gt; &gt; I thought the same but the IDL specifies a  &quot;long&quot; which is a signed integer. I might raise an issue to the WG because I don&apos;t think it makes much sense either.
&gt; &gt; 
&gt; &gt; An issue sounds good.
&gt; 
&gt; JFTR https://github.com/immersive-web/webxr/pull/1062
&gt; 
&gt; It looks like it will be approved, it&apos;s sensible and it also matches
&gt; window&apos;s rAF (consistency yay!). I&apos;ll likely replace it before landing or
&gt; after the next review.

Oh I didn&apos;t notice that you had r+&apos;ed the previous patch and uploaded a new version. I guess you&apos;re fine with me landing this one too. I&apos;ll wait a bit for the WG resolution though as I just need one more approval to land the spec change (already got one).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656317</commentid>
    <comment_count>9</comment_count>
      <attachid>400315</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-27 01:23:17 -0700</bug_when>
    <thetext>Created attachment 400315
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656323</commentid>
    <comment_count>10</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-27 02:36:56 -0700</bug_when>
    <thetext>Committed r262188: &lt;https://trac.webkit.org/changeset/262188&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656324</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-27 02:37:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/63667956&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399760</attachid>
            <date>2020-05-19 12:33:52 -0700</date>
            <delta_ts>2020-05-26 09:45:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212099-20200519213350.patch</filename>
            <type>text/plain</type>
            <size>15995</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRkNWZjNWZjNDQ1YjY0
Njc4ZDc2NzQxNGY1MDIyZWE4MDhhMDFjMC4uNzdkZTkxM2NmNmRmYTYxZjU2ZDFhOWNlMjU3Yzk2
MzQwNTQ0NWM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA1LTE5ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
SW1wbGVtZW50IFhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjA5OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBXZWJYUiBzcGVjIGRlZmlu
ZXMgYSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBtZWNoYW5pc20gdG8gcHJvdmlkZQorICAgICAg
ICBpbmZvcm1hdGlvbiBhYm91dCBYUiB0cmFja2luZyBkZXZpY2VzIHVzaW5nIGNhbGxiYWNrcy4g
SXQncyBwcmV0dHkKKyAgICAgICAgc2ltaWxhciB0byB0aGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KCkgZXhwb3NlZCBieSBXaW5kb3cgYnV0IG9ubHkgdXNlZAorICAgICAgICB0byB1cGRhdGUgV2Vi
WFIgY29udGVudC4gV2UncmUgYWRkaW5nIGEgYmFzaWMgaW1wbGVtZW50YXRpb24gb2YgdGhpcwor
ICAgICAgICBtZWNoYW5pc20gYXMgbG9uZyBhcyBjYW5jZWxsYXRpb24gc3VwcG9ydC4gSXQgcmVx
dWlyZXMgc29tZSBwbGF0Zm9ybQorICAgICAgICBjb2RlIHRoYXQgd2lsbCBiZSBhZGRlZCBpbiBm
b2xsb3cgdXAgcGF0Y2hlcy4gVGhhdCBwbGF0Zm9ybSBjb2RlIHdpbGwKKyAgICAgICAgcHJvdmlk
ZSBpbmZvcm1hdGlvbiBsaWtlIGRldmljZXMnIHJlZnJlc2ggcmF0ZXMsIHBvc2UgKHBvc2l0aW9u
ICYKKyAgICAgICAgb3JpZW50YXRpb24pLCBkaXNwbGF5IHJlc29sdXRpb24sIGV0Yy4uLgorCisg
ICAgICAgIEFwYXJ0IGZyb20gdGhhdCB3ZSdyZSBhZGRpbmcgYSBtaXNzaW5nIGFkb3B0UmVmKCkg
aW4gdGhlIHRlc3RpbmcgY29kZQorICAgICAgICB0aGF0IHdhcyBjYXVzaW5nIGFzc2VydGlvbnMg
aW4gc29tZSBvZiB0aGUgdGVzdHMgdGhhdCBhcmUgYmVpbmcKKyAgICAgICAgdW5za2lwcGVkIGFz
IHBhcnQgb2YgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vz
c2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OldlYlhSU2Vzc2lvbik6
CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OmFuaW1hdGlvblRpbWVyRmlyZWQpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU2Vzc2lvbjo6c2NoZWR1bGVBbmltYXRpb24p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlv
bkZyYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OmNhbmNlbEFu
aW1hdGlvbkZyYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oOgorICAgICAg
ICAoV2ViQ29yZTo6WFJGcmFtZVJlcXVlc3RDYWxsYmFjazo6Y2FsbGJhY2tJZCk6CisgICAgICAg
IChXZWJDb3JlOjpYUkZyYW1lUmVxdWVzdENhbGxiYWNrOjpzZXRDYWxsYmFja0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2s6OmNhbmNlbCk6CisgICAgICAgIChX
ZWJDb3JlOjpYUkZyYW1lUmVxdWVzdENhbGxiYWNrOjppc0NhbmNlbGxlZCBjb25zdCk6CisgICAg
ICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
RmFrZVhSRGV2aWNlOjpzaW11bGF0ZUlucHV0U291cmNlQ29ubmVjdGlvbik6CisgICAgICAgICog
dGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaDoKKyAgICAgICAgKiB0ZXN0aW5nL1dlYkZha2VYUklu
cHV0Q29udHJvbGxlci5oOgorCiAyMDIwLTA1LTE5ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3Zp
bGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXZWJYUl0gSW1wbGVtZW50IHJlcXVlc3RTZXNz
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmNwcApp
bmRleCBhMTNhY2MwNTVlMTVlYzhjNjUwM2IzNzU1ODAzZGVhYjAzMTUxZWRlLi42OGIxYzhmMDg1
ZGYxNDg1Y2Q5NGE5OTRiNDAzNzVmNTE3NTY1ZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uY3BwCkBAIC0yOCw3ICsyOCw5IEBACiAKICNpZiBFTkFC
TEUoV0VCWFIpCiAKKyNpbmNsdWRlICJXZWJYUkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViWFJTeXN0
ZW0uaCIKKyNpbmNsdWRlICJYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsOSArNDgs
MTAgQEAgV2ViWFJTZXNzaW9uOjpXZWJYUlNlc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJY
UlN5c3RlbSYgc3lzdGVtLCBYUlNlc3Npb25Nb2QKICAgICAsIG1fbW9kZShtb2RlKQogICAgICwg
bV9kZXZpY2UobWFrZVdlYWtQdHIoZGV2aWNlKSkKICAgICAsIG1fYWN0aXZlUmVuZGVyU3RhdGUo
V2ViWFJSZW5kZXJTdGF0ZTo6Y3JlYXRlKG1vZGUpKQorICAgICwgbV9hbmltYXRpb25UaW1lcigq
dGhpcywgJldlYlhSU2Vzc2lvbjo6YW5pbWF0aW9uVGltZXJGaXJlZCkKIHsKICAgICAvLyBUT0RP
OiBJZiBubyBvdGhlciBmZWF0dXJlcyBvZiB0aGUgdXNlciBhZ2VudCBoYXZlIGRvbmUgc28gYWxy
ZWFkeSwKLSAgICAvLyBwZXJmb3JtIHRoZSBuZWNlc3NhcnkgcGxhdGZvcm0tc3BlY2lmaWMgc3Rl
cHMgdG8gaW5pdGlhbGl6ZSB0aGUgZGV2aWNl4oCZcworICAgIC8vIHBlcmZvcm0gdGhlIG5lY2Vz
c2FyeSBwbGF0Zm9ybS1zcGVjaWZpYyBzdGVwcyB0byBpbml0aWFsaXplIHRoZSBkZXZpY2Uncwog
ICAgIC8vIHRyYWNraW5nIGFuZCByZW5kZXJpbmcgY2FwYWJpbGl0aWVzLCBpbmNsdWRpbmcgc2hv
d2luZyBhbnkgbmVjZXNzYXJ5CiAgICAgLy8gaW5zdHJ1Y3Rpb25zIHRvIHRoZSB1c2VyLgogfQpA
QCAtODMsMTMgKzg2LDgyIEBAIHZvaWQgV2ViWFJTZXNzaW9uOjpyZXF1ZXN0UmVmZXJlbmNlU3Bh
Y2UoY29uc3QgWFJSZWZlcmVuY2VTcGFjZVR5cGUmLCBSZXF1ZXN0UmVmCiB7CiB9CiAKLWludCBX
ZWJYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25GcmFtZShSZWY8WFJGcmFtZVJlcXVlc3RDYWxs
YmFjaz4mJikKK3ZvaWQgV2ViWFJTZXNzaW9uOjphbmltYXRpb25UaW1lckZpcmVkKCkKIHsKLSAg
ICByZXR1cm4gMDsKKyAgICBtX2xhc3RBbmltYXRpb25GcmFtZVRpbWVzdGFtcCA9IE1vbm90b25p
Y1RpbWU6Om5vdygpOworCisgICAgaWYgKG1fY2FsbGJhY2tzLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gVE9ETzogcmV0cmlldmUgZnJhbWUgZnJvbSBwbGF0Zm9ybS4KKyAg
ICBhdXRvIGZyYW1lID0gV2ViWFJGcmFtZTo6Y3JlYXRlKCp0aGlzKTsKKworICAgIG1fcnVubmlu
Z0NhbGxiYWNrcy5zd2FwKG1fY2FsbGJhY2tzKTsKKyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDog
bV9ydW5uaW5nQ2FsbGJhY2tzKSB7CisgICAgICAgIGlmIChjYWxsYmFjay0+aXNDYW5jZWxsZWQo
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQo
bV9sYXN0QW5pbWF0aW9uRnJhbWVUaW1lc3RhbXAuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNl
Y29uZHMoKSwgZnJhbWUuZ2V0KCkpOworICAgIH0KKworICAgIG1fcnVubmluZ0NhbGxiYWNrcy5j
bGVhcigpOworfQorCit2b2lkIFdlYlhSU2Vzc2lvbjo6c2NoZWR1bGVBbmltYXRpb24oKQorewor
ICAgIGlmIChtX2FuaW1hdGlvblRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChtX2VuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBUT0RPOiB1c2UgZGV2
aWNlJ3MgcmVmcmVzaCByYXRlLiBMZXQncyBzdGFydCB3aXRoIDYwZnBzLgorICAgIFNlY29uZHMg
YW5pbWF0aW9uSW50ZXJ2YWwgPSAxNV9tczsKKyAgICBTZWNvbmRzIHNjaGVkdWxlRGVsYXkgPSBz
dGQ6Om1heChhbmltYXRpb25JbnRlcnZhbCAtIChNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fbGFz
dEFuaW1hdGlvbkZyYW1lVGltZXN0YW1wKSwgMF9zKTsKKyAgICBtX2FuaW1hdGlvblRpbWVyLnN0
YXJ0T25lU2hvdChzY2hlZHVsZURlbGF5KTsKK30KKworLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2Vi
LmdpdGh1Yi5pby93ZWJ4ci8jZG9tLXhyc2Vzc2lvbi1yZXF1ZXN0YW5pbWF0aW9uZnJhbWUKK2lu
dCBXZWJYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25GcmFtZShSZWY8WFJGcmFtZVJlcXVlc3RD
YWxsYmFjaz4mJiBjYWxsYmFjaykKK3sKKyAgICAvLyAxLiBMZXQgc2Vzc2lvbiBiZSB0aGUgdGFy
Z2V0IFhSU2Vzc2lvbiBvYmplY3QuCisgICAgLy8gMi4gSW5jcmVtZW50IHNlc3Npb24ncyBhbmlt
YXRpb24gZnJhbWUgY2FsbGJhY2sgaWRlbnRpZmllciBieSBvbmUuCisgICAgQ2FsbGJhY2tJZCBu
ZXdJZCA9ICsrbV9uZXh0Q2FsbGJhY2tJZDsKKworICAgIC8vIDMuIEFwcGVuZCBjYWxsYmFjayB0
byBzZXNzaW9uJ3MgbGlzdCBvZiBhbmltYXRpb24gZnJhbWUgY2FsbGJhY2tzLCBhc3NvY2lhdGVk
IHdpdGggc2Vzc2lvbidzCisgICAgLy8gYW5pbWF0aW9uIGZyYW1lIGNhbGxiYWNrIGlkZW50aWZp
ZXIncyBjdXJyZW50IHZhbHVlLgorICAgIGNhbGxiYWNrLT5zZXRDYWxsYmFja0lkKG5ld0lkKTsK
KyAgICBtX2NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgc2NoZWR1
bGVBbmltYXRpb24oKTsKKworICAgIC8vIDQuIFJldHVybiBzZXNzaW9uJ3MgYW5pbWF0aW9uIGZy
YW1lIGNhbGxiYWNrIGlkZW50aWZpZXIncyBjdXJyZW50IHZhbHVlLgorICAgIHJldHVybiBuZXdJ
ZDsKIH0KIAotdm9pZCBXZWJYUlNlc3Npb246OmNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCkKKy8v
IGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI2RvbS14cnNlc3Npb24tY2Fu
Y2VsYW5pbWF0aW9uZnJhbWUKK3ZvaWQgV2ViWFJTZXNzaW9uOjpjYW5jZWxBbmltYXRpb25GcmFt
ZShpbnQgY2FsbGJhY2tJZCkKIHsKKyAgICAvLyAxLiBMZXQgc2Vzc2lvbiBiZSB0aGUgdGFyZ2V0
IFhSU2Vzc2lvbiBvYmplY3QuCisgICAgLy8gMi4gRmluZCB0aGUgZW50cnkgaW4gc2Vzc2lvbidz
IGxpc3Qgb2YgYW5pbWF0aW9uIGZyYW1lIGNhbGxiYWNrcyBvciBzZXNzaW9uJ3MgbGlzdCBvZgor
ICAgIC8vICAgIGN1cnJlbnRseSBydW5uaW5nIGFuaW1hdGlvbiBmcmFtZSBjYWxsYmFja3MgdGhh
dCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHZhbHVlIGhhbmRsZS4KKyAgICAvLyAzLiBJZiB0aGVy
ZSBpcyBzdWNoIGFuIGVudHJ5LCBzZXQgaXRzIGNhbmNlbGxlZCBib29sZWFuIHRvIHRydWUgYW5k
IHJlbW92ZSBpdCBmcm9tCisgICAgLy8gICAgc2Vzc2lvbidzIGxpc3Qgb2YgYW5pbWF0aW9uIGZy
YW1lIGNhbGxiYWNrcy4KKyAgICBzaXplX3QgcG9zaXRpb24gPSBtX2NhbGxiYWNrcy5maW5kTWF0
Y2hpbmcoW2NhbGxiYWNrSWRdIChhdXRvJiBpdGVtKSB7CisgICAgICAgIHJldHVybiBpdGVtLT5j
YWxsYmFja0lkKCkgPT0gY2FsbGJhY2tJZDsKKyAgICB9KTsKKworICAgIGlmIChwb3NpdGlvbiAh
PSBub3RGb3VuZCkgeworICAgICAgICBtX2NhbGxiYWNrc1twb3NpdGlvbl0tPmNhbmNlbCgpOwor
ICAgICAgICBtX2NhbGxiYWNrcy5yZW1vdmUocG9zaXRpb24pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgcG9zaXRpb24gPSBtX3J1bm5pbmdDYWxsYmFja3MuZmluZE1hdGNoaW5nKFtj
YWxsYmFja0lkXSAoYXV0byYgaXRlbSkgeworICAgICAgICByZXR1cm4gaXRlbS0+Y2FsbGJhY2tJ
ZCgpID09IGNhbGxiYWNrSWQ7CisgICAgfSk7CisKKyAgICBpZiAocG9zaXRpb24gIT0gbm90Rm91
bmQpCisgICAgICAgIG1fcnVubmluZ0NhbGxiYWNrc1twb3NpdGlvbl0tPmNhbmNlbCgpOwogfQog
CiAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyNzaHV0LWRvd24tdGhl
LXNlc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oCmlu
ZGV4IGM0NDVjYzI5ZWEwZmIzODYzMTliZjI4NTBjMjVmNTQwZTMyMzQ2MDQuLjNkZjZlODk4MDA4
NWNjMTUyMzg3ZmU0OGY2Yjk0NTM1YjA0YzA5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUlNlc3Npb24uaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSlNET01Q
cm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldlYlhSSW5w
dXRTb3VyY2VBcnJheS5oIgogI2luY2x1ZGUgIldlYlhSUmVuZGVyU3RhdGUuaCIKICNpbmNsdWRl
ICJXZWJYUlNwYWNlLmgiCkBAIC0zNyw2ICszOCw3IEBACiAjaW5jbHVkZSAiWFJSZWZlcmVuY2VT
cGFjZVR5cGUuaCIKICNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCiAjaW5jbHVkZSAiWFJWaXNp
YmlsaXR5U3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KQEAgLTkxLDYgKzkzLDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2h1dGRvd24o
KTsKIAorICAgIHZvaWQgYW5pbWF0aW9uVGltZXJGaXJlZCgpOworICAgIHZvaWQgc2NoZWR1bGVB
bmltYXRpb24oKTsKKwogICAgIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgbV9lbnZpcm9ubWVudEJs
ZW5kTW9kZTsKICAgICBYUlZpc2liaWxpdHlTdGF0ZSBtX3Zpc2liaWxpdHlTdGF0ZTsKICAgICBS
ZWZQdHI8V2ViWFJJbnB1dFNvdXJjZUFycmF5PiBtX2lucHV0U291cmNlczsKQEAgLTEwMSw2ICsx
MDYsMTQgQEAgcHJpdmF0ZToKICAgICBXZWFrUHRyPFBsYXRmb3JtWFI6OkRldmljZT4gbV9kZXZp
Y2U7CiAgICAgUmVmUHRyPFdlYlhSUmVuZGVyU3RhdGU+IG1fYWN0aXZlUmVuZGVyU3RhdGU7CiAg
ICAgUmVmUHRyPFdlYlhSUmVuZGVyU3RhdGU+IG1fcGVuZGluZ1JlbmRlclN0YXRlOworCisgICAg
dXNpbmcgQ2FsbGJhY2tJZCA9IGludDsKKyAgICBDYWxsYmFja0lkIG1fbmV4dENhbGxiYWNrSWQg
eyAwIH07CisgICAgVmVjdG9yPFJlZjxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPj4gbV9jYWxsYmFj
a3M7CisgICAgVmVjdG9yPFJlZjxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPj4gbV9ydW5uaW5nQ2Fs
bGJhY2tzOworCisgICAgVGltZXIgbV9hbmltYXRpb25UaW1lcjsKKyAgICBNb25vdG9uaWNUaW1l
IG1fbGFzdEFuaW1hdGlvbkZyYW1lVGltZXN0YW1wOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVx
dWVzdENhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaAppbmRleCAxODUwNDk3Njg4NGVjMThlZWYzODFlZGFjYzJhNTM1NGYxY2Yy
ODMyLi5hOTBkNTdlMmE4MzE1ZmYzZDU3NjQ3NDFkZjkxYTg1YjIyZmViM2ZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2su
aApAQCAtNDAsNiArNDAsMTUgQEAgcHVibGljOgogICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNr
OjpBY3RpdmVET01DYWxsYmFjazsKIAogICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4g
aGFuZGxlRXZlbnQoZG91YmxlIGhpZ2hSZXNUaW1lTXMsIFdlYlhSRnJhbWUmKSA9IDA7CisKKyAg
ICBpbnQgY2FsbGJhY2tJZCgpIHsgcmV0dXJuIG1faWQ7IH0KKyAgICB2b2lkIHNldENhbGxiYWNr
SWQoaW50IGlkKSB7IG1faWQgPSBpZDsgfQorICAgIHZvaWQgY2FuY2VsKCkgeyBtX2NhbmNlbGxl
ZCA9IHRydWU7IH0KKyAgICBib29sIGlzQ2FuY2VsbGVkKCkgY29uc3QgeyByZXR1cm4gbV9jYW5j
ZWxsZWQ7IH0KKworcHJpdmF0ZToKKyAgICBpbnQgbV9pZDsKKyAgICBib29sIG1fY2FuY2VsbGVk
IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcAppbmRleCBmMzFhMzM1NDNhYjllYTQ0MDk5MjE2
Y2RlZjY3Yzc4YTgwNTE5YjZiLi4yZmFkZjM5MzI1MDVkYTU0YWJlMTdkMTkxMmU0MDExOTIxYTQ5
NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwCkBAIC0x
MDQsOSArMTA0LDkgQEAgdm9pZCBXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlUmVzZXRQb3NlKCkK
IHsKIH0KIAotV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyIFdlYkZha2VYUkRldmljZTo6c2ltdWxh
dGVJbnB1dFNvdXJjZUNvbm5lY3Rpb24oRmFrZVhSSW5wdXRTb3VyY2VJbml0KQorUmVmPFdlYkZh
a2VYUklucHV0Q29udHJvbGxlcj4gV2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZUlucHV0U291cmNl
Q29ubmVjdGlvbihGYWtlWFJJbnB1dFNvdXJjZUluaXQpCiB7Ci0gICAgcmV0dXJuIFdlYkZha2VY
UklucHV0Q29udHJvbGxlcigpOworICAgIHJldHVybiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6
OmNyZWF0ZSgpOwogfQogCiBFeGNlcHRpb25PcjxSZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4+IFdl
YkZha2VYUkRldmljZTo6cGFyc2VSaWdpZFRyYW5zZm9ybShjb25zdCBGYWtlWFJSaWdpZFRyYW5z
Zm9ybUluaXQmIGluaXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZh
a2VYUkRldmljZS5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaApp
bmRleCA3YTg3YmFhMWM1ZjM5YmE0YzFiNWE3OGRlZTk1ODgyYWRjNmY0NzEyLi5iNGM1ODRkNTRj
YWYzZGViNWU4YjcwYmYxMWQ4Y2QzYzM3MGM5M2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
V2ViRmFrZVhSRGV2aWNlLmgKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
aW11bGF0ZVJlc2V0UG9zZSgpOwogCi0gICAgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyIHNpbXVs
YXRlSW5wdXRTb3VyY2VDb25uZWN0aW9uKEZha2VYUklucHV0U291cmNlSW5pdCk7CisgICAgUmVm
PFdlYkZha2VYUklucHV0Q29udHJvbGxlcj4gc2ltdWxhdGVJbnB1dFNvdXJjZUNvbm5lY3Rpb24o
RmFrZVhSSW5wdXRTb3VyY2VJbml0KTsKIAogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8RmFr
ZVhSVmlldz4+IHBhcnNlVmlldyhjb25zdCBGYWtlWFJWaWV3SW5pdCYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaAppbmRleCA5Mjdl
MzVmMGZlZTczODkxMzBlNjFlOWZhNTk0MWY3YWFiNDA3NzQxLi5kMjhjZWE0Zjg2ZWE5Y2E0NjU2
ZWJkZjhjNTI1MWVmNGI5MjQ5OWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1dlYkZha2VYUklucHV0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmgKQEAgLTM4LDYgKzM4LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMg
UmVmQ291bnRlZDxXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI+IHsKIHB1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFdlYkZha2VYUklucHV0Q29udHJvbGxlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIpOyB9CisKICAgICB2b2lkIHNldEhhbmRl
ZG5lc3MoWFJIYW5kZWRuZXNzKTsKIAogICAgIHZvaWQgc2V0VGFyZ2V0UmF5TW9kZShYUlRhcmdl
dFJheU1vZGUpOwpAQCAtNjMsNiArNjUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdXBwb3J0
ZWRCdXR0b25zKFZlY3RvcjxGYWtlWFJCdXR0b25TdGF0ZUluaXQ+KTsKIAogICAgIHZvaWQgdXBk
YXRlQnV0dG9uU3RhdGUoRmFrZVhSQnV0dG9uU3RhdGVJbml0KTsKKworcHJpdmF0ZToKKyAgICBX
ZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYWY3NjBjOTM5ZjEyYTA3ZWM4ODAyYzE4YTI5ZGUyNGJlZDNmMzk5
OS4uNmFhMWQ4ZDc5MjZmYzkzZmM0ZWJlZTQ0MzAxNDE4NWUwZjljN2FiNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDIwLTA1LTE5ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSW1wbGVtZW50IFhSU2Vzc2lvbjo6cmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMjA5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcHBlZCBzZXZlcmFs
IHRlc3RzIHRoYXQgYXJlIG5vdyBwYXNzaW5nLgorCiAyMDIwLTA1LTE0ICBTZXJnaW8gVmlsbGFy
IFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXZWJYUl0gSW1wbGVtZW50
IHJlcXVlc3RTZXNzaW9uKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDllZTE3
NDgzNTFhMzUxYzJmYTQ5NDE5NDYxMTA4MjY3ZmUxYzFiMjIuLjAzNDQ1ZjAwMzMxZDk3NzAwMTU2
OTU1NTcxYjgxNjczMTA3MjA0ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIwLTA1LTE5ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSW1wbGVtZW50IFhSU2Vzc2lvbjo6cmVxdWVz
dEFuaW1hdGlvbkZyYW1lKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxMjA5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9jYW5jZWxBbmlt
YXRpb25GcmFtZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJ4ci94clNlc3Npb25fY2FuY2VsQW5pbWF0aW9uRnJhbWVfaW52YWxpZGhh
bmRsZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJ4ci94clNlc3Npb25fcmVxdWVzdEFuaW1hdGlvbkZyYW1lX2NhbGxiYWNrX2NhbGxz
Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMjAtMDUtMTQgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBJbXBsZW1lbnQg
cmVxdWVzdFNlc3Npb24oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94clNlc3Npb25fY2FuY2VsQW5pbWF0aW9uRnJhbWUuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJ4ci94clNlc3Npb25fY2FuY2VsQW5pbWF0aW9uRnJhbWUuaHR0cHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdkYzkwMGQwZDM3Y2Y4ZGZmN2M4MWUyNWEzYWM3ZGVhNzViYzlhMDYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9jYW5jZWxBbmltYXRpb25GcmFtZS5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgWFJTZXNzaW9uIHJlcXVlc3RBbmltYXRpb25G
cmFtZSBjYWxsYmFja3MgY2FuIGJlIHVucmVnaXN0ZXJlZCB3aXRoIGNhbmNlbEFuaW1hdGlvbkZy
YW1lIGZvciBpbW1lcnNpdmUgc2Vzc2lvbnMgCitQQVNTIFhSU2Vzc2lvbiByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgY2FsbGJhY2tzIGNhbiBiZSB1bnJlZ2lzdGVyZWQgd2l0aCBjYW5jZWxBbmltYXRp
b25GcmFtZSBmb3Igbm9uLWltbWVyc2l2ZSBzZXNzaW9ucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94clNlc3Npb25fY2Fu
Y2VsQW5pbWF0aW9uRnJhbWVfaW52YWxpZGhhbmRsZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9j
YW5jZWxBbmltYXRpb25GcmFtZV9pbnZhbGlkaGFuZGxlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNThhNWY1YTI2NTc4MTEyODY4MWI0NTQyMWIyMTEwOThlNDVkNmNjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJ4ci94clNlc3Npb25fY2FuY2VsQW5pbWF0aW9uRnJhbWVfaW52YWxpZGhhbmRsZS5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgWFJTZXNzaW9uIGNhbmNlbEFuaW1h
dGlvbkZyYW1lIGRvZXMgbm90IGhhdmUgdW5leHBlY3RlZCBiZWhhdmlvciB3aGVuIGdpdmVuIGlu
dmFsaWQgaGFuZGxlcyBvbiBpbW1lcnNpdmUgdGVzdFNlc3Npb24gCitQQVNTIFhSU2Vzc2lvbiBj
YW5jZWxBbmltYXRpb25GcmFtZSBkb2VzIG5vdCBoYXZlIHVuZXhwZWN0ZWQgYmVoYXZpb3Igd2hl
biBnaXZlbiBpbnZhbGlkIGhhbmRsZXMgb24gbm9uLWltbWVyc2l2ZSB0ZXN0U2Vzc2lvbiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJ4ci94clNlc3Npb25fcmVxdWVzdEFuaW1hdGlvbkZyYW1lX2NhbGxiYWNrX2NhbGxzLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VieHIveHJTZXNzaW9uX3JlcXVlc3RBbmltYXRpb25GcmFtZV9jYWxsYmFja19jYWxscy5o
dHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ5Y2U0ODUwZGFlODhmNDBkMDQ2MjI2YmU3
MmM4YmQ5ZmRjMDQyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJTZXNzaW9uX3JlcXVlc3RBbmltYXRpb25GcmFt
ZV9jYWxsYmFja19jYWxscy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BB
U1MgWFJTZXNzaW9uIHJlcXVlc3RBbmltYXRpb25GcmFtZSBjYWxscyB0aGUgcHJvdmlkZWQgY2Fs
bGJhY2sgZm9yIGFuIGltbWVyc2l2ZSBzZXNzaW9uIAorUEFTUyBYUlNlc3Npb24gcmVxdWVzdEFu
aW1hdGlvbkZyYW1lIGNhbGxzIHRoZSBwcm92aWRlZCBjYWxsYmFjayBhIG5vbi1pbW1lcnNpdmUg
c2Vzc2lvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAzNDYwMWRiMjc0ODQ1MTljZTkzYTAzYjM4ZGMxYjI5ZGY4ODVlZTEzLi44MjQ0NWUyZDU4NzRl
NmE5MTM3YTNlOGQ5MmYxYzViNmY3YTI4MTNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTAyMyw3ICsxMDIzLDEwIEBAIHdlYmtpdC5vcmcvYi8yMDk4
NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94ckRldmljZV9yZXF1ZXN0
U2Vzc2lvCiB3ZWJraXQub3JnL2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VieHIveHJEZXZpY2VfcmVxdWVzdFNlc3Npb25fbm9uX2ltbWVyc2l2ZV9ub19nZXN0dXJl
Lmh0dHBzLmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94ckRldmljZV9yZXF1ZXN0U2Vzc2lvbl9vcHRpb25hbEZl
YXR1cmVzLmh0dHBzLmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMDk4NTkgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94ckRldmljZV9yZXF1ZXN0U2Vzc2lvbl9yZXF1
aXJlZEZlYXR1cmVzX3Vua25vd24uaHR0cHMuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzIw
OTg1OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9jYW5j
ZWxBbmltYXRpb25GcmFtZS5odHRwcy5odG1sIFsgUGFzcyBdCit3ZWJraXQub3JnL2IvMjA5ODU5
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJTZXNzaW9uX2NhbmNlbEFu
aW1hdGlvbkZyYW1lX2ludmFsaWRoYW5kbGUuaHR0cHMuaHRtbCBbIFBhc3MgXQogd2Via2l0Lm9y
Zy9iLzIwOTg1OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lv
bl9mZWF0dXJlc19kZXZpY2VTdXBwb3J0Lmh0dHBzLmh0bWwgWyBQYXNzIF0KK3dlYmtpdC5vcmcv
Yi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94clNlc3Npb25f
cmVxdWVzdEFuaW1hdGlvbkZyYW1lX2NhbGxiYWNrX2NhbGxzLmh0dHBzLmh0bWwgWyBQYXNzIF0K
IAogIyBQYXNzaW5nIHNpbmNlIHIyNTkwMDYuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZ3JpZC9hbGlnbm1lbnQvc2VsZi1iYXNlbGluZS9ncmlkLXNlbGYtYmFzZWxp
bmUtY2hhbmdlcy1ncmlkLWFyZWEtc2l6ZS0wMTAuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400255</attachid>
            <date>2020-05-26 09:45:22 -0700</date>
            <delta_ts>2020-05-27 01:23:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212099-20200526184520.patch</filename>
            <type>text/plain</type>
            <size>16058</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYyM2JmMGIyM2NhZDE4
YzcxNWQyOWJlMzI3MTBiZDU3ZmFlYjdiMS4uOGViNzU4ZWZmMGI0M2JmZmNiODE0MmIyZmUzMzBi
NWJlNjk2YWI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA1LTE5ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
SW1wbGVtZW50IFhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjA5OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBXZWJYUiBzcGVjIGRlZmlu
ZXMgYSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBtZWNoYW5pc20gdG8gcHJvdmlkZQorICAgICAg
ICBpbmZvcm1hdGlvbiBhYm91dCBYUiB0cmFja2luZyBkZXZpY2VzIHVzaW5nIGNhbGxiYWNrcy4g
SXQncyBwcmV0dHkKKyAgICAgICAgc2ltaWxhciB0byB0aGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KCkgZXhwb3NlZCBieSBXaW5kb3cgYnV0IG9ubHkgdXNlZAorICAgICAgICB0byB1cGRhdGUgV2Vi
WFIgY29udGVudC4gV2UncmUgYWRkaW5nIGEgYmFzaWMgaW1wbGVtZW50YXRpb24gb2YgdGhpcwor
ICAgICAgICBtZWNoYW5pc20gYXMgbG9uZyBhcyBjYW5jZWxsYXRpb24gc3VwcG9ydC4gSXQgcmVx
dWlyZXMgc29tZSBwbGF0Zm9ybQorICAgICAgICBjb2RlIHRoYXQgd2lsbCBiZSBhZGRlZCBpbiBm
b2xsb3cgdXAgcGF0Y2hlcy4gVGhhdCBwbGF0Zm9ybSBjb2RlIHdpbGwKKyAgICAgICAgcHJvdmlk
ZSBpbmZvcm1hdGlvbiBsaWtlIGRldmljZXMnIHJlZnJlc2ggcmF0ZXMsIHBvc2UgKHBvc2l0aW9u
ICYKKyAgICAgICAgb3JpZW50YXRpb24pLCBkaXNwbGF5IHJlc29sdXRpb24sIGV0Yy4uLgorCisg
ICAgICAgIEFwYXJ0IGZyb20gdGhhdCB3ZSdyZSBhZGRpbmcgYSBtaXNzaW5nIGFkb3B0UmVmKCkg
aW4gdGhlIHRlc3RpbmcgY29kZQorICAgICAgICB0aGF0IHdhcyBjYXVzaW5nIGFzc2VydGlvbnMg
aW4gc29tZSBvZiB0aGUgdGVzdHMgdGhhdCBhcmUgYmVpbmcKKyAgICAgICAgdW5za2lwcGVkIGFz
IHBhcnQgb2YgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vz
c2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OldlYlhSU2Vzc2lvbik6
CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OmFuaW1hdGlvblRpbWVyRmlyZWQpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU2Vzc2lvbjo6c2NoZWR1bGVBbmltYXRpb24p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlv
bkZyYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OmNhbmNlbEFu
aW1hdGlvbkZyYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oOgorICAgICAg
ICAoV2ViQ29yZTo6WFJGcmFtZVJlcXVlc3RDYWxsYmFjazo6Y2FsbGJhY2tJZCk6CisgICAgICAg
IChXZWJDb3JlOjpYUkZyYW1lUmVxdWVzdENhbGxiYWNrOjpzZXRDYWxsYmFja0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2s6OmNhbmNlbCk6CisgICAgICAgIChX
ZWJDb3JlOjpYUkZyYW1lUmVxdWVzdENhbGxiYWNrOjppc0NhbmNlbGxlZCBjb25zdCk6CisgICAg
ICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
RmFrZVhSRGV2aWNlOjpzaW11bGF0ZUlucHV0U291cmNlQ29ubmVjdGlvbik6CisgICAgICAgICog
dGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaDoKKyAgICAgICAgKiB0ZXN0aW5nL1dlYkZha2VYUklu
cHV0Q29udHJvbGxlci5oOgorCiAyMDIwLTA1LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLNF0gVXNlIHNjcmVlbiBmb250IG9wdGlv
bnMgYXMgZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUlNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Np
b24uY3BwCmluZGV4IGExM2FjYzA1NWUxNWVjOGM2NTAzYjM3NTU4MDNkZWFiMDMxNTFlZGUuLjY4
YjFjOGYwODVkZjE0ODVjZDk0YTk5NGI0MDM3NWY1MTc1NjVmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAKQEAgLTI4LDcgKzI4LDkgQEAKIAog
I2lmIEVOQUJMRShXRUJYUikKIAorI2luY2x1ZGUgIldlYlhSRnJhbWUuaCIKICNpbmNsdWRlICJX
ZWJYUlN5c3RlbS5oIgorI2luY2x1ZGUgIlhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
Niw5ICs0OCwxMCBAQCBXZWJYUlNlc3Npb246OldlYlhSU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1l
bnQsIFdlYlhSU3lzdGVtJiBzeXN0ZW0sIFhSU2Vzc2lvbk1vZAogICAgICwgbV9tb2RlKG1vZGUp
CiAgICAgLCBtX2RldmljZShtYWtlV2Vha1B0cihkZXZpY2UpKQogICAgICwgbV9hY3RpdmVSZW5k
ZXJTdGF0ZShXZWJYUlJlbmRlclN0YXRlOjpjcmVhdGUobW9kZSkpCisgICAgLCBtX2FuaW1hdGlv
blRpbWVyKCp0aGlzLCAmV2ViWFJTZXNzaW9uOjphbmltYXRpb25UaW1lckZpcmVkKQogewogICAg
IC8vIFRPRE86IElmIG5vIG90aGVyIGZlYXR1cmVzIG9mIHRoZSB1c2VyIGFnZW50IGhhdmUgZG9u
ZSBzbyBhbHJlYWR5LAotICAgIC8vIHBlcmZvcm0gdGhlIG5lY2Vzc2FyeSBwbGF0Zm9ybS1zcGVj
aWZpYyBzdGVwcyB0byBpbml0aWFsaXplIHRoZSBkZXZpY2XigJlzCisgICAgLy8gcGVyZm9ybSB0
aGUgbmVjZXNzYXJ5IHBsYXRmb3JtLXNwZWNpZmljIHN0ZXBzIHRvIGluaXRpYWxpemUgdGhlIGRl
dmljZSdzCiAgICAgLy8gdHJhY2tpbmcgYW5kIHJlbmRlcmluZyBjYXBhYmlsaXRpZXMsIGluY2x1
ZGluZyBzaG93aW5nIGFueSBuZWNlc3NhcnkKICAgICAvLyBpbnN0cnVjdGlvbnMgdG8gdGhlIHVz
ZXIuCiB9CkBAIC04MywxMyArODYsODIgQEAgdm9pZCBXZWJYUlNlc3Npb246OnJlcXVlc3RSZWZl
cmVuY2VTcGFjZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlVHlwZSYsIFJlcXVlc3RSZWYKIHsKIH0K
IAotaW50IFdlYlhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFJlZjxYUkZyYW1lUmVx
dWVzdENhbGxiYWNrPiYmKQordm9pZCBXZWJYUlNlc3Npb246OmFuaW1hdGlvblRpbWVyRmlyZWQo
KQogewotICAgIHJldHVybiAwOworICAgIG1fbGFzdEFuaW1hdGlvbkZyYW1lVGltZXN0YW1wID0g
TW9ub3RvbmljVGltZTo6bm93KCk7CisKKyAgICBpZiAobV9jYWxsYmFja3MuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyBUT0RPOiByZXRyaWV2ZSBmcmFtZSBmcm9tIHBsYXRm
b3JtLgorICAgIGF1dG8gZnJhbWUgPSBXZWJYUkZyYW1lOjpjcmVhdGUoKnRoaXMpOworCisgICAg
bV9ydW5uaW5nQ2FsbGJhY2tzLnN3YXAobV9jYWxsYmFja3MpOworICAgIGZvciAoYXV0byYgY2Fs
bGJhY2sgOiBtX3J1bm5pbmdDYWxsYmFja3MpIHsKKyAgICAgICAgaWYgKGNhbGxiYWNrLT5pc0Nh
bmNlbGxlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNhbGxiYWNrLT5oYW5k
bGVFdmVudChtX2xhc3RBbmltYXRpb25GcmFtZVRpbWVzdGFtcC5zZWNvbmRzU2luY2VFcG9jaCgp
Lm1pbGxpc2Vjb25kcygpLCBmcmFtZS5nZXQoKSk7CisgICAgfQorCisgICAgbV9ydW5uaW5nQ2Fs
bGJhY2tzLmNsZWFyKCk7Cit9CisKK3ZvaWQgV2ViWFJTZXNzaW9uOjpzY2hlZHVsZUFuaW1hdGlv
bigpCit7CisgICAgaWYgKG1fYW5pbWF0aW9uVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKG1fZW5kZWQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFRPRE86
IHVzZSBkZXZpY2UncyByZWZyZXNoIHJhdGUuIExldCdzIHN0YXJ0IHdpdGggNjBmcHMuCisgICAg
U2Vjb25kcyBhbmltYXRpb25JbnRlcnZhbCA9IDE1X21zOworICAgIFNlY29uZHMgc2NoZWR1bGVE
ZWxheSA9IHN0ZDo6bWF4KGFuaW1hdGlvbkludGVydmFsIC0gKE1vbm90b25pY1RpbWU6Om5vdygp
IC0gbV9sYXN0QW5pbWF0aW9uRnJhbWVUaW1lc3RhbXApLCAwX3MpOworICAgIG1fYW5pbWF0aW9u
VGltZXIuc3RhcnRPbmVTaG90KHNjaGVkdWxlRGVsYXkpOworfQorCisvLyBodHRwczovL2ltbWVy
c2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyNkb20teHJzZXNzaW9uLXJlcXVlc3RhbmltYXRpb25m
cmFtZQoraW50IFdlYlhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFJlZjxYUkZyYW1l
UmVxdWVzdENhbGxiYWNrPiYmIGNhbGxiYWNrKQoreworICAgIC8vIDEuIExldCBzZXNzaW9uIGJl
IHRoZSB0YXJnZXQgWFJTZXNzaW9uIG9iamVjdC4KKyAgICAvLyAyLiBJbmNyZW1lbnQgc2Vzc2lv
bidzIGFuaW1hdGlvbiBmcmFtZSBjYWxsYmFjayBpZGVudGlmaWVyIGJ5IG9uZS4KKyAgICBDYWxs
YmFja0lkIG5ld0lkID0gKyttX25leHRDYWxsYmFja0lkOworCisgICAgLy8gMy4gQXBwZW5kIGNh
bGxiYWNrIHRvIHNlc3Npb24ncyBsaXN0IG9mIGFuaW1hdGlvbiBmcmFtZSBjYWxsYmFja3MsIGFz
c29jaWF0ZWQgd2l0aCBzZXNzaW9uJ3MKKyAgICAvLyBhbmltYXRpb24gZnJhbWUgY2FsbGJhY2sg
aWRlbnRpZmllcidzIGN1cnJlbnQgdmFsdWUuCisgICAgY2FsbGJhY2stPnNldENhbGxiYWNrSWQo
bmV3SWQpOworICAgIG1fY2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAg
ICBzY2hlZHVsZUFuaW1hdGlvbigpOworCisgICAgLy8gNC4gUmV0dXJuIHNlc3Npb24ncyBhbmlt
YXRpb24gZnJhbWUgY2FsbGJhY2sgaWRlbnRpZmllcidzIGN1cnJlbnQgdmFsdWUuCisgICAgcmV0
dXJuIG5ld0lkOwogfQogCi12b2lkIFdlYlhSU2Vzc2lvbjo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUo
aW50KQorLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jZG9tLXhyc2Vz
c2lvbi1jYW5jZWxhbmltYXRpb25mcmFtZQordm9pZCBXZWJYUlNlc3Npb246OmNhbmNlbEFuaW1h
dGlvbkZyYW1lKGludCBjYWxsYmFja0lkKQogeworICAgIC8vIDEuIExldCBzZXNzaW9uIGJlIHRo
ZSB0YXJnZXQgWFJTZXNzaW9uIG9iamVjdC4KKyAgICAvLyAyLiBGaW5kIHRoZSBlbnRyeSBpbiBz
ZXNzaW9uJ3MgbGlzdCBvZiBhbmltYXRpb24gZnJhbWUgY2FsbGJhY2tzIG9yIHNlc3Npb24ncyBs
aXN0IG9mCisgICAgLy8gICAgY3VycmVudGx5IHJ1bm5pbmcgYW5pbWF0aW9uIGZyYW1lIGNhbGxi
YWNrcyB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFsdWUgaGFuZGxlLgorICAgIC8vIDMu
IElmIHRoZXJlIGlzIHN1Y2ggYW4gZW50cnksIHNldCBpdHMgY2FuY2VsbGVkIGJvb2xlYW4gdG8g
dHJ1ZSBhbmQgcmVtb3ZlIGl0IGZyb20KKyAgICAvLyAgICBzZXNzaW9uJ3MgbGlzdCBvZiBhbmlt
YXRpb24gZnJhbWUgY2FsbGJhY2tzLgorICAgIHNpemVfdCBwb3NpdGlvbiA9IG1fY2FsbGJhY2tz
LmZpbmRNYXRjaGluZyhbY2FsbGJhY2tJZF0gKGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJu
IGl0ZW0tPmNhbGxiYWNrSWQoKSA9PSBjYWxsYmFja0lkOworICAgIH0pOworCisgICAgaWYgKHBv
c2l0aW9uICE9IG5vdEZvdW5kKSB7CisgICAgICAgIG1fY2FsbGJhY2tzW3Bvc2l0aW9uXS0+Y2Fu
Y2VsKCk7CisgICAgICAgIG1fY2FsbGJhY2tzLnJlbW92ZShwb3NpdGlvbik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBwb3NpdGlvbiA9IG1fcnVubmluZ0NhbGxiYWNrcy5maW5kTWF0
Y2hpbmcoW2NhbGxiYWNrSWRdIChhdXRvJiBpdGVtKSB7CisgICAgICAgIHJldHVybiBpdGVtLT5j
YWxsYmFja0lkKCkgPT0gY2FsbGJhY2tJZDsKKyAgICB9KTsKKworICAgIGlmIChwb3NpdGlvbiAh
PSBub3RGb3VuZCkKKyAgICAgICAgbV9ydW5uaW5nQ2FsbGJhY2tzW3Bvc2l0aW9uXS0+Y2FuY2Vs
KCk7CiB9CiAKIC8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI3NodXQt
ZG93bi10aGUtc2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUlNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNz
aW9uLmgKaW5kZXggYzQ0NWNjMjllYTBmYjM4NjMxOWJmMjg1MGMyNWY1NDBlMzIzNDYwNC4uM2Rm
NmU4OTgwMDg1Y2MxNTIzODdmZTQ4ZjZiOTQ1MzViMDRjMDlkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRl
ICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAi
V2ViWFJJbnB1dFNvdXJjZUFycmF5LmgiCiAjaW5jbHVkZSAiV2ViWFJSZW5kZXJTdGF0ZS5oIgog
I2luY2x1ZGUgIldlYlhSU3BhY2UuaCIKQEAgLTM3LDYgKzM4LDcgQEAKICNpbmNsdWRlICJYUlJl
ZmVyZW5jZVNwYWNlVHlwZS5oIgogI2luY2x1ZGUgIlhSU2Vzc2lvbk1vZGUuaCIKICNpbmNsdWRl
ICJYUlZpc2liaWxpdHlTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgpAQCAtOTEsNiArOTMsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBz
aHV0ZG93bigpOwogCisgICAgdm9pZCBhbmltYXRpb25UaW1lckZpcmVkKCk7CisgICAgdm9pZCBz
Y2hlZHVsZUFuaW1hdGlvbigpOworCiAgICAgWFJFbnZpcm9ubWVudEJsZW5kTW9kZSBtX2Vudmly
b25tZW50QmxlbmRNb2RlOwogICAgIFhSVmlzaWJpbGl0eVN0YXRlIG1fdmlzaWJpbGl0eVN0YXRl
OwogICAgIFJlZlB0cjxXZWJYUklucHV0U291cmNlQXJyYXk+IG1faW5wdXRTb3VyY2VzOwpAQCAt
MTAxLDYgKzEwNiwxNCBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8UGxhdGZvcm1YUjo6RGV2aWNl
PiBtX2RldmljZTsKICAgICBSZWZQdHI8V2ViWFJSZW5kZXJTdGF0ZT4gbV9hY3RpdmVSZW5kZXJT
dGF0ZTsKICAgICBSZWZQdHI8V2ViWFJSZW5kZXJTdGF0ZT4gbV9wZW5kaW5nUmVuZGVyU3RhdGU7
CisKKyAgICB1c2luZyBDYWxsYmFja0lkID0gaW50OworICAgIENhbGxiYWNrSWQgbV9uZXh0Q2Fs
bGJhY2tJZCB7IDAgfTsKKyAgICBWZWN0b3I8UmVmPFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+PiBt
X2NhbGxiYWNrczsKKyAgICBWZWN0b3I8UmVmPFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+PiBtX3J1
bm5pbmdDYWxsYmFja3M7CisKKyAgICBUaW1lciBtX2FuaW1hdGlvblRpbWVyOworICAgIE1vbm90
b25pY1RpbWUgbV9sYXN0QW5pbWF0aW9uRnJhbWVUaW1lc3RhbXA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
RnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJG
cmFtZVJlcXVlc3RDYWxsYmFjay5oCmluZGV4IDE4NTA0OTc2ODg0ZWMxOGVlZjM4MWVkYWNjMmE1
MzU0ZjFjZjI4MzIuLjhhODk2Nzc3ZTY5Y2JkZTE3YmYwY2M4NDI1ODcwYzUzZDFmYTIxNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxs
YmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RD
YWxsYmFjay5oCkBAIC00MCw2ICs0MCwxNSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZlRE9N
Q2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOwogCiAgICAgdmlydHVhbCBDYWxsYmFja1Jlc3Vs
dDx2b2lkPiBoYW5kbGVFdmVudChkb3VibGUgaGlnaFJlc1RpbWVNcywgV2ViWFJGcmFtZSYpID0g
MDsKKworICAgIGludCBjYWxsYmFja0lkKCkgeyBBU1NFUlQobV9pZCk7IHJldHVybiBtX2lkOyB9
CisgICAgdm9pZCBzZXRDYWxsYmFja0lkKGludCBpZCkgeyBBU1NFUlQoIW1faWQpOyBtX2lkID0g
aWQ7IH0KKyAgICB2b2lkIGNhbmNlbCgpIHsgbV9jYW5jZWxsZWQgPSB0cnVlOyB9CisgICAgYm9v
bCBpc0NhbmNlbGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FuY2VsbGVkOyB9CisKK3ByaXZhdGU6
CisgICAgaW50IG1faWQ7CisgICAgYm9vbCBtX2NhbmNlbGxlZCB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1dlYkZha2VYUkRldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRl
dmljZS5jcHAKaW5kZXggZjMxYTMzNTQzYWI5ZWE0NDA5OTIxNmNkZWY2N2M3OGE4MDUxOWI2Yi4u
MmZhZGYzOTMyNTA1ZGE1NGFiZTE3ZDE5MTJlNDAxMTkyMWE0OTU3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcApAQCAtMTA0LDkgKzEwNCw5IEBAIHZvaWQg
V2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZVJlc2V0UG9zZSgpCiB7CiB9CiAKLVdlYkZha2VYUklu
cHV0Q29udHJvbGxlciBXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlSW5wdXRTb3VyY2VDb25uZWN0
aW9uKEZha2VYUklucHV0U291cmNlSW5pdCkKK1JlZjxXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI+
IFdlYkZha2VYUkRldmljZTo6c2ltdWxhdGVJbnB1dFNvdXJjZUNvbm5lY3Rpb24oRmFrZVhSSW5w
dXRTb3VyY2VJbml0KQogewotICAgIHJldHVybiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIoKTsK
KyAgICByZXR1cm4gV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpjcmVhdGUoKTsKIH0KIAogRXhj
ZXB0aW9uT3I8UmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+PiBXZWJGYWtlWFJEZXZpY2U6OnBhcnNl
UmlnaWRUcmFuc2Zvcm0oY29uc3QgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0JiBpbml0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmgKaW5kZXggN2E4N2JhYTFjNWYzOWJh
NGMxYjVhNzhkZWU5NTg4MmFkYzZmNDcxMi4uYjRjNTg0ZDU0Y2FmM2RlYjVlOGI3MGJmMTFkOGNk
M2MzNzBjOTNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJE
ZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5oCkBA
IC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2ltdWxhdGVSZXNldFBvc2UoKTsK
IAotICAgIFdlYkZha2VYUklucHV0Q29udHJvbGxlciBzaW11bGF0ZUlucHV0U291cmNlQ29ubmVj
dGlvbihGYWtlWFJJbnB1dFNvdXJjZUluaXQpOworICAgIFJlZjxXZWJGYWtlWFJJbnB1dENvbnRy
b2xsZXI+IHNpbXVsYXRlSW5wdXRTb3VyY2VDb25uZWN0aW9uKEZha2VYUklucHV0U291cmNlSW5p
dCk7CiAKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEZha2VYUlZpZXc+PiBwYXJzZVZpZXco
Y29uc3QgRmFrZVhSVmlld0luaXQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmgKaW5kZXggOTI3ZTM1ZjBmZWU3Mzg5MTMwZTYxZTlm
YTU5NDFmN2FhYjQwNzc0MS4uZDI4Y2VhNGY4NmVhOWNhNDY1NmViZGY4YzUyNTFlZjRiOTI0OTlj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJv
bGxlci5oCkBAIC0zOCw2ICszOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViRmFrZVhS
SW5wdXRDb250cm9sbGVyPiB7CiBwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJGYWtlWFJJbnB1
dENvbnRyb2xsZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViRmFrZVhSSW5w
dXRDb250cm9sbGVyKTsgfQorCiAgICAgdm9pZCBzZXRIYW5kZWRuZXNzKFhSSGFuZGVkbmVzcyk7
CiAKICAgICB2b2lkIHNldFRhcmdldFJheU1vZGUoWFJUYXJnZXRSYXlNb2RlKTsKQEAgLTYzLDYg
KzY1LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3VwcG9ydGVkQnV0dG9ucyhWZWN0b3I8RmFr
ZVhSQnV0dG9uU3RhdGVJbml0Pik7CiAKICAgICB2b2lkIHVwZGF0ZUJ1dHRvblN0YXRlKEZha2VY
UkJ1dHRvblN0YXRlSW5pdCk7CisKK3ByaXZhdGU6CisgICAgV2ViRmFrZVhSSW5wdXRDb250cm9s
bGVyKCkgPSBkZWZhdWx0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc0
NDdmNmVmNTNkYTlkOTNjZWFkYzQ4MzkxMDcxZmJmZDAyM2MwY2IuLjBmYmNiODM3MzhhYmRjNWUw
N2M4ZDJmMjE2Mjk1OTZhZTAwZGJjZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNS0x
OSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBb
V2ViWFJdIEltcGxlbWVudCBYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25GcmFtZSgpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIwOTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL3dw
ZS9UZXN0RXhwZWN0YXRpb25zOiBVbnNraXBwZWQgc2V2ZXJhbCB0ZXN0cyB0aGF0IGFyZSBub3cg
cGFzc2luZy4KKwogMjAyMC0wNS0yNiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtXUEVdIEdhcmRlbmluZywgdXBkYXRlIHBlbmRpbmcgYmFzZWxpbmVz
IGFmdGVyIHIyNjIxMjcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDAzNjk2NjE4
ZTJkYzdkMjJlMmQ5Nzc4NmExMmExYWEzNjg1MGEwZjAuLjM3MjdjMmQ5NmFiN2ZiYzYzOWNmZGZm
MTY3ZjczOTA0ZWEzMTljYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIwLTA1LTE5ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSW1wbGVtZW50IFhSU2Vzc2lvbjo6cmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMjA5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9jYW5jZWxBbmltYXRp
b25GcmFtZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJ4ci94clNlc3Npb25fY2FuY2VsQW5pbWF0aW9uRnJhbWVfaW52YWxpZGhhbmRs
ZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJ4ci94clNlc3Npb25fcmVxdWVzdEFuaW1hdGlvbkZyYW1lX2NhbGxiYWNrX2NhbGxzLmh0
dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMjAtMDUtMjUgIENhcmxvcyBBbGJlcnRvIExv
cGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1mbGV4Ym94XSBX
UFQgVGVzdCBjc3MvY3NzLWZsZXhib3gvZmxleC1saW5lcy9tdWx0aS1saW5lLXdyYXAtcmV2ZXJz
ZS1jb2x1bW4tcmV2ZXJzZS5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9jYW5jZWxBbmltYXRp
b25GcmFtZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9jYW5jZWxBbmltYXRpb25GcmFtZS5odHRw
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RjOTAwZDBkMzdjZjhkZmY3YzgxZTI1YTNhYzdk
ZWE3NWJjOWEwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJTZXNzaW9uX2NhbmNlbEFuaW1hdGlvbkZyYW1lLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBYUlNlc3Npb24gcmVxdWVz
dEFuaW1hdGlvbkZyYW1lIGNhbGxiYWNrcyBjYW4gYmUgdW5yZWdpc3RlcmVkIHdpdGggY2FuY2Vs
QW5pbWF0aW9uRnJhbWUgZm9yIGltbWVyc2l2ZSBzZXNzaW9ucyAKK1BBU1MgWFJTZXNzaW9uIHJl
cXVlc3RBbmltYXRpb25GcmFtZSBjYWxsYmFja3MgY2FuIGJlIHVucmVnaXN0ZXJlZCB3aXRoIGNh
bmNlbEFuaW1hdGlvbkZyYW1lIGZvciBub24taW1tZXJzaXZlIHNlc3Npb25zIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hy
U2Vzc2lvbl9jYW5jZWxBbmltYXRpb25GcmFtZV9pbnZhbGlkaGFuZGxlLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIv
eHJTZXNzaW9uX2NhbmNlbEFuaW1hdGlvbkZyYW1lX2ludmFsaWRoYW5kbGUuaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI1OGE1ZjVhMjY1NzgxMTI4NjgxYjQ1NDIxYjIxMTA5OGU0NWQ2
Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9jYW5jZWxBbmltYXRpb25GcmFtZV9pbnZhbGlkaGFu
ZGxlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBYUlNlc3Npb24g
Y2FuY2VsQW5pbWF0aW9uRnJhbWUgZG9lcyBub3QgaGF2ZSB1bmV4cGVjdGVkIGJlaGF2aW9yIHdo
ZW4gZ2l2ZW4gaW52YWxpZCBoYW5kbGVzIG9uIGltbWVyc2l2ZSB0ZXN0U2Vzc2lvbiAKK1BBU1Mg
WFJTZXNzaW9uIGNhbmNlbEFuaW1hdGlvbkZyYW1lIGRvZXMgbm90IGhhdmUgdW5leHBlY3RlZCBi
ZWhhdmlvciB3aGVuIGdpdmVuIGludmFsaWQgaGFuZGxlcyBvbiBub24taW1tZXJzaXZlIHRlc3RT
ZXNzaW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVfY2FsbGJhY2tf
Y2FsbHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJ4ci94clNlc3Npb25fcmVxdWVzdEFuaW1hdGlvbkZyYW1lX2NhbGxi
YWNrX2NhbGxzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDljZTQ4NTBkYWU4OGY0
MGQwNDYyMjZiZTcyYzhiZDlmZGMwNDI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94clNlc3Npb25fcmVxdWVzdEFu
aW1hdGlvbkZyYW1lX2NhbGxiYWNrX2NhbGxzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDQgQEAKKworUEFTUyBYUlNlc3Npb24gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGNhbGxzIHRoZSBw
cm92aWRlZCBjYWxsYmFjayBmb3IgYW4gaW1tZXJzaXZlIHNlc3Npb24gCitQQVNTIFhSU2Vzc2lv
biByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbHMgdGhlIHByb3ZpZGVkIGNhbGxiYWNrIGEgbm9u
LWltbWVyc2l2ZSBzZXNzaW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
cGUvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDg5M2NmMDk2MzlhZDYxNGNjMmFkMWE2MmJhZGQwOTU0NjNkNTZmYzIuLjVk
Y2E2YmMzYTFlN2QzMDk3YjdiODgzZmNmOTgzY2QyNTI3OWYwOWQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC05NzcsNyArOTc3LDEwIEBAIHdlYmtpdC5v
cmcvYi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94ckRldmlj
ZV9yZXF1ZXN0U2Vzc2lvCiB3ZWJraXQub3JnL2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VieHIveHJEZXZpY2VfcmVxdWVzdFNlc3Npb25fbm9uX2ltbWVyc2l2ZV9u
b19nZXN0dXJlLmh0dHBzLmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMDk4NTkgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94ckRldmljZV9yZXF1ZXN0U2Vzc2lvbl9v
cHRpb25hbEZlYXR1cmVzLmh0dHBzLmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMDk4NTkg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94ckRldmljZV9yZXF1ZXN0U2Vz
c2lvbl9yZXF1aXJlZEZlYXR1cmVzX3Vua25vd24uaHR0cHMuaHRtbCBbIFBhc3MgXQord2Via2l0
Lm9yZy9iLzIwOTg1OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vz
c2lvbl9jYW5jZWxBbmltYXRpb25GcmFtZS5odHRwcy5odG1sIFsgUGFzcyBdCit3ZWJraXQub3Jn
L2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJTZXNzaW9u
X2NhbmNlbEFuaW1hdGlvbkZyYW1lX2ludmFsaWRoYW5kbGUuaHR0cHMuaHRtbCBbIFBhc3MgXQog
d2Via2l0Lm9yZy9iLzIwOTg1OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhy
L3hyU2Vzc2lvbl9mZWF0dXJlc19kZXZpY2VTdXBwb3J0Lmh0dHBzLmh0bWwgWyBQYXNzIF0KK3dl
YmtpdC5vcmcvYi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94
clNlc3Npb25fcmVxdWVzdEFuaW1hdGlvbkZyYW1lX2NhbGxiYWNrX2NhbGxzLmh0dHBzLmh0bWwg
WyBQYXNzIF0KIAogIyBQYXNzaW5nIHNpbmNlIHIyNTk1MzIuCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWkvb3V0bGluZS0wMTkuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400315</attachid>
            <date>2020-05-27 01:23:17 -0700</date>
            <delta_ts>2020-05-27 01:23:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212099-20200527102312.patch</filename>
            <type>text/plain</type>
            <size>17523</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYyMjY4ODlhYTAyZmFi
MzA1OTRjNGRhNTUzYWIxYTRmMzdiODFlNS4uY2E4NjJhNDM5MWYzMjc4OTcwOTU5YzlmN2ViODM0
OGU3MWU0ZDgyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA1LTE5ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
SW1wbGVtZW50IFhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjA5OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgVGhlIFdlYlhSIHNwZWMgZGVmaW5l
cyBhIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIG1lY2hhbmlzbSB0byBwcm92aWRlIGluZm9ybWF0
aW9uIGFib3V0IFhSIHRyYWNraW5nIGRldmljZXMKKyAgICAgICAgdXNpbmcgY2FsbGJhY2tzLiBJ
dCdzIHByZXR0eSBzaW1pbGFyIHRvIHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBleHBvc2Vk
IGJ5IFdpbmRvdyBidXQgb25seSB1c2VkCisgICAgICAgIHRvIHVwZGF0ZSBXZWJYUiBjb250ZW50
LiBXZSdyZSBhZGRpbmcgYSBiYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1lY2hhbmlzbSBh
cyBsb25nIGFzIGNhbmNlbGxhdGlvbgorICAgICAgICBzdXBwb3J0LiBJdCByZXF1aXJlcyBzb21l
IHBsYXRmb3JtIGNvZGUgdGhhdCB3aWxsIGJlIGFkZGVkIGluIGZvbGxvdyB1cCBwYXRjaGVzLiBU
aGF0IHBsYXRmb3JtIGNvZGUgd2lsbAorICAgICAgICBwcm92aWRlIGluZm9ybWF0aW9uIGxpa2Ug
ZGV2aWNlcycgcmVmcmVzaCByYXRlcywgcG9zZSAocG9zaXRpb24gJiBvcmllbnRhdGlvbiksIGRp
c3BsYXkgcmVzb2x1dGlvbiwgZXRjLi4uCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIHJlcGxh
Y2VzIHRoZSB0eXBlIG9mIHRoZSBjYWxsYmFjayBpZCBmcm9tIGludCB0byB1bnNpZ25lZCBpbnQg
YXMgcGVyIHRoZSBmb2xsb3dpbmcgY2hhbmdlCisgICAgICAgIGluIHNwZWNzIGh0dHBzOi8vZ2l0
aHViLmNvbS9pbW1lcnNpdmUtd2ViL3dlYnhyL3B1bGwvMTA2Mi4KKworICAgICAgICBBcGFydCBm
cm9tIHRoYXQgd2UncmUgYWRkaW5nIGEgbWlzc2luZyBhZG9wdFJlZigpIGluIHRoZSB0ZXN0aW5n
IGNvZGUgdGhhdCB3YXMgY2F1c2luZyBhc3NlcnRpb25zIGluIHNvbWUKKyAgICAgICAgb2YgdGhl
IHRlc3RzIHRoYXQgYXJlIGJlaW5nIHVuc2tpcHBlZCBhcyBwYXJ0IG9mIHRoaXMgY2hhbmdlLgor
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJTZXNzaW9uOjpXZWJYUlNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJTZXNzaW9uOjphbmltYXRpb25UaW1lckZpcmVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUlNlc3Npb246OnNjaGVkdWxlQW5pbWF0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpXZWJYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25GcmFtZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9uOjpjYW5jZWxBbmltYXRpb25GcmFtZSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlhSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2s6OmNhbGxiYWNrSWQpOgorICAgICAgICAoV2ViQ29yZTo6WFJGcmFtZVJlcXVl
c3RDYWxsYmFjazo6c2V0Q2FsbGJhY2tJZCk6CisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lUmVx
dWVzdENhbGxiYWNrOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6WFJGcmFtZVJlcXVlc3RD
YWxsYmFjazo6aXNDYW5jZWxsZWQgY29uc3QpOgorICAgICAgICAqIHRlc3RpbmcvV2ViRmFrZVhS
RGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6c2ltdWxhdGVJ
bnB1dFNvdXJjZUNvbm5lY3Rpb24pOgorICAgICAgICAqIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNl
Lmg6CisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaDoKKwogMjAy
MC0wNS0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUSzRdIE1ha2UgUG9pbnRlckxvY2sgd29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uY3BwCmluZGV4IGExM2FjYzA1NWUxNWVjOGM2NTAzYjM3
NTU4MDNkZWFiMDMxNTFlZGUuLjQzMjQ2MTk1MTFhYjcwYTJmNDM3YTMwNmQzNjc2OTNhMGQ3OGU0
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAK
QEAgLTI4LDcgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShXRUJYUikKIAorI2luY2x1ZGUgIldlYlhS
RnJhbWUuaCIKICNpbmNsdWRlICJXZWJYUlN5c3RlbS5oIgorI2luY2x1ZGUgIlhSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00Niw5ICs0OCwxMCBAQCBXZWJYUlNlc3Npb246OldlYlhSU2Vz
c2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlhSU3lzdGVtJiBzeXN0ZW0sIFhSU2Vzc2lvbk1v
ZAogICAgICwgbV9tb2RlKG1vZGUpCiAgICAgLCBtX2RldmljZShtYWtlV2Vha1B0cihkZXZpY2Up
KQogICAgICwgbV9hY3RpdmVSZW5kZXJTdGF0ZShXZWJYUlJlbmRlclN0YXRlOjpjcmVhdGUobW9k
ZSkpCisgICAgLCBtX2FuaW1hdGlvblRpbWVyKCp0aGlzLCAmV2ViWFJTZXNzaW9uOjphbmltYXRp
b25UaW1lckZpcmVkKQogewogICAgIC8vIFRPRE86IElmIG5vIG90aGVyIGZlYXR1cmVzIG9mIHRo
ZSB1c2VyIGFnZW50IGhhdmUgZG9uZSBzbyBhbHJlYWR5LAotICAgIC8vIHBlcmZvcm0gdGhlIG5l
Y2Vzc2FyeSBwbGF0Zm9ybS1zcGVjaWZpYyBzdGVwcyB0byBpbml0aWFsaXplIHRoZSBkZXZpY2Xi
gJlzCisgICAgLy8gcGVyZm9ybSB0aGUgbmVjZXNzYXJ5IHBsYXRmb3JtLXNwZWNpZmljIHN0ZXBz
IHRvIGluaXRpYWxpemUgdGhlIGRldmljZSdzCiAgICAgLy8gdHJhY2tpbmcgYW5kIHJlbmRlcmlu
ZyBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBzaG93aW5nIGFueSBuZWNlc3NhcnkKICAgICAvLyBp
bnN0cnVjdGlvbnMgdG8gdGhlIHVzZXIuCiB9CkBAIC04MywxMyArODYsODIgQEAgdm9pZCBXZWJY
UlNlc3Npb246OnJlcXVlc3RSZWZlcmVuY2VTcGFjZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlVHlw
ZSYsIFJlcXVlc3RSZWYKIHsKIH0KIAotaW50IFdlYlhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlv
bkZyYW1lKFJlZjxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKQordm9pZCBXZWJYUlNlc3Npb246
OmFuaW1hdGlvblRpbWVyRmlyZWQoKQogewotICAgIHJldHVybiAwOworICAgIG1fbGFzdEFuaW1h
dGlvbkZyYW1lVGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisKKyAgICBpZiAobV9j
YWxsYmFja3MuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBUT0RPOiByZXRy
aWV2ZSBmcmFtZSBmcm9tIHBsYXRmb3JtLgorICAgIGF1dG8gZnJhbWUgPSBXZWJYUkZyYW1lOjpj
cmVhdGUoKnRoaXMpOworCisgICAgbV9ydW5uaW5nQ2FsbGJhY2tzLnN3YXAobV9jYWxsYmFja3Mp
OworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBtX3J1bm5pbmdDYWxsYmFja3MpIHsKKyAgICAg
ICAgaWYgKGNhbGxiYWNrLT5pc0NhbmNlbGxlZCgpKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudChtX2xhc3RBbmltYXRpb25GcmFtZVRpbWVzdGFt
cC5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpLCBmcmFtZS5nZXQoKSk7CisgICAg
fQorCisgICAgbV9ydW5uaW5nQ2FsbGJhY2tzLmNsZWFyKCk7Cit9CisKK3ZvaWQgV2ViWFJTZXNz
aW9uOjpzY2hlZHVsZUFuaW1hdGlvbigpCit7CisgICAgaWYgKG1fYW5pbWF0aW9uVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fZW5kZWQpCisgICAgICAgIHJl
dHVybjsKKworICAgIC8vIFRPRE86IHVzZSBkZXZpY2UncyByZWZyZXNoIHJhdGUuIExldCdzIHN0
YXJ0IHdpdGggNjBmcHMuCisgICAgU2Vjb25kcyBhbmltYXRpb25JbnRlcnZhbCA9IDE1X21zOwor
ICAgIFNlY29uZHMgc2NoZWR1bGVEZWxheSA9IHN0ZDo6bWF4KGFuaW1hdGlvbkludGVydmFsIC0g
KE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9sYXN0QW5pbWF0aW9uRnJhbWVUaW1lc3RhbXApLCAw
X3MpOworICAgIG1fYW5pbWF0aW9uVGltZXIuc3RhcnRPbmVTaG90KHNjaGVkdWxlRGVsYXkpOwor
fQorCisvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyNkb20teHJzZXNz
aW9uLXJlcXVlc3RhbmltYXRpb25mcmFtZQorWFJGcmFtZVJlcXVlc3RDYWxsYmFjazo6SWQgV2Vi
WFJTZXNzaW9uOjpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVmPFhSRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2s+JiYgY2FsbGJhY2spCit7CisgICAgLy8gMS4gTGV0IHNlc3Npb24gYmUgdGhlIHRhcmdldCBY
UlNlc3Npb24gb2JqZWN0LgorICAgIC8vIDIuIEluY3JlbWVudCBzZXNzaW9uJ3MgYW5pbWF0aW9u
IGZyYW1lIGNhbGxiYWNrIGlkZW50aWZpZXIgYnkgb25lLgorICAgIFhSRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2s6OklkIG5ld0lkID0gKyttX25leHRDYWxsYmFja0lkOworCisgICAgLy8gMy4gQXBwZW5k
IGNhbGxiYWNrIHRvIHNlc3Npb24ncyBsaXN0IG9mIGFuaW1hdGlvbiBmcmFtZSBjYWxsYmFja3Ms
IGFzc29jaWF0ZWQgd2l0aCBzZXNzaW9uJ3MKKyAgICAvLyBhbmltYXRpb24gZnJhbWUgY2FsbGJh
Y2sgaWRlbnRpZmllcidzIGN1cnJlbnQgdmFsdWUuCisgICAgY2FsbGJhY2stPnNldENhbGxiYWNr
SWQobmV3SWQpOworICAgIG1fY2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7CisK
KyAgICBzY2hlZHVsZUFuaW1hdGlvbigpOworCisgICAgLy8gNC4gUmV0dXJuIHNlc3Npb24ncyBh
bmltYXRpb24gZnJhbWUgY2FsbGJhY2sgaWRlbnRpZmllcidzIGN1cnJlbnQgdmFsdWUuCisgICAg
cmV0dXJuIG5ld0lkOwogfQogCi12b2lkIFdlYlhSU2Vzc2lvbjo6Y2FuY2VsQW5pbWF0aW9uRnJh
bWUoaW50KQorLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jZG9tLXhy
c2Vzc2lvbi1jYW5jZWxhbmltYXRpb25mcmFtZQordm9pZCBXZWJYUlNlc3Npb246OmNhbmNlbEFu
aW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkKQogeworICAgIC8vIDEuIExldCBzZXNzaW9uIGJl
IHRoZSB0YXJnZXQgWFJTZXNzaW9uIG9iamVjdC4KKyAgICAvLyAyLiBGaW5kIHRoZSBlbnRyeSBp
biBzZXNzaW9uJ3MgbGlzdCBvZiBhbmltYXRpb24gZnJhbWUgY2FsbGJhY2tzIG9yIHNlc3Npb24n
cyBsaXN0IG9mCisgICAgLy8gICAgY3VycmVudGx5IHJ1bm5pbmcgYW5pbWF0aW9uIGZyYW1lIGNh
bGxiYWNrcyB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFsdWUgaGFuZGxlLgorICAgIC8v
IDMuIElmIHRoZXJlIGlzIHN1Y2ggYW4gZW50cnksIHNldCBpdHMgY2FuY2VsbGVkIGJvb2xlYW4g
dG8gdHJ1ZSBhbmQgcmVtb3ZlIGl0IGZyb20KKyAgICAvLyAgICBzZXNzaW9uJ3MgbGlzdCBvZiBh
bmltYXRpb24gZnJhbWUgY2FsbGJhY2tzLgorICAgIHNpemVfdCBwb3NpdGlvbiA9IG1fY2FsbGJh
Y2tzLmZpbmRNYXRjaGluZyhbY2FsbGJhY2tJZF0gKGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgcmV0
dXJuIGl0ZW0tPmNhbGxiYWNrSWQoKSA9PSBjYWxsYmFja0lkOworICAgIH0pOworCisgICAgaWYg
KHBvc2l0aW9uICE9IG5vdEZvdW5kKSB7CisgICAgICAgIG1fY2FsbGJhY2tzW3Bvc2l0aW9uXS0+
Y2FuY2VsKCk7CisgICAgICAgIG1fY2FsbGJhY2tzLnJlbW92ZShwb3NpdGlvbik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBwb3NpdGlvbiA9IG1fcnVubmluZ0NhbGxiYWNrcy5maW5k
TWF0Y2hpbmcoW2NhbGxiYWNrSWRdIChhdXRvJiBpdGVtKSB7CisgICAgICAgIHJldHVybiBpdGVt
LT5jYWxsYmFja0lkKCkgPT0gY2FsbGJhY2tJZDsKKyAgICB9KTsKKworICAgIGlmIChwb3NpdGlv
biAhPSBub3RGb3VuZCkKKyAgICAgICAgbV9ydW5uaW5nQ2FsbGJhY2tzW3Bvc2l0aW9uXS0+Y2Fu
Y2VsKCk7CiB9CiAKIC8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI3No
dXQtZG93bi10aGUtc2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUlNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJT
ZXNzaW9uLmgKaW5kZXggYzQ0NWNjMjllYTBmYjM4NjMxOWJmMjg1MGMyNWY1NDBlMzIzNDYwNC4u
OWFkNjZmNTgxNjY2NTk2YmUxMzdmYzBmYTY1MjQ5MGJlNjIwNmM1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oCkBAIC0zMCwxMyArMzAsMTYgQEAKICNp
bmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2lu
Y2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlICJXZWJYUklucHV0U291cmNlQXJyYXkuaCIKICNpbmNsdWRlICJXZWJYUlJlbmRlclN0YXRl
LmgiCiAjaW5jbHVkZSAiV2ViWFJTcGFjZS5oIgogI2luY2x1ZGUgIlhSRW52aXJvbm1lbnRCbGVu
ZE1vZGUuaCIKKyNpbmNsdWRlICJYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmgiCiAjaW5jbHVkZSAi
WFJSZWZlcmVuY2VTcGFjZVR5cGUuaCIKICNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCiAjaW5j
bHVkZSAiWFJWaXNpYmlsaXR5U3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTQ0LDcgKzQ3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBYUkZyYW1lUmVxdWVzdENhbGxiYWNrOwogY2xhc3MgV2ViWFJSZWZlcmVu
Y2VTcGFjZTsKIGNsYXNzIFdlYlhSU3lzdGVtOwogc3RydWN0IFhSUmVuZGVyU3RhdGVJbml0OwpA
QCAtNjksNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVSZW5kZXJTdGF0ZShjb25z
dCBYUlJlbmRlclN0YXRlSW5pdCYpOwogICAgIHZvaWQgcmVxdWVzdFJlZmVyZW5jZVNwYWNlKGNv
bnN0IFhSUmVmZXJlbmNlU3BhY2VUeXBlJiwgUmVxdWVzdFJlZmVyZW5jZVNwYWNlUHJvbWlzZSYm
KTsKIAotICAgIGludCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVmPFhSRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2s+JiYpOworICAgIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2s6OklkIHJlcXVlc3RBbmltYXRp
b25GcmFtZShSZWY8WFJGcmFtZVJlcXVlc3RDYWxsYmFjaz4mJik7CiAgICAgdm9pZCBjYW5jZWxB
bmltYXRpb25GcmFtZShpbnQgaGFuZGxlKTsKIAogICAgIHZvaWQgZW5kKEVuZFByb21pc2UmJik7
CkBAIC05MSw2ICs5Myw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNodXRkb3duKCk7CiAKKyAg
ICB2b2lkIGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKKyAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9u
KCk7CisKICAgICBYUkVudmlyb25tZW50QmxlbmRNb2RlIG1fZW52aXJvbm1lbnRCbGVuZE1vZGU7
CiAgICAgWFJWaXNpYmlsaXR5U3RhdGUgbV92aXNpYmlsaXR5U3RhdGU7CiAgICAgUmVmUHRyPFdl
YlhSSW5wdXRTb3VyY2VBcnJheT4gbV9pbnB1dFNvdXJjZXM7CkBAIC0xMDEsNiArMTA2LDEzIEBA
IHByaXZhdGU6CiAgICAgV2Vha1B0cjxQbGF0Zm9ybVhSOjpEZXZpY2U+IG1fZGV2aWNlOwogICAg
IFJlZlB0cjxXZWJYUlJlbmRlclN0YXRlPiBtX2FjdGl2ZVJlbmRlclN0YXRlOwogICAgIFJlZlB0
cjxXZWJYUlJlbmRlclN0YXRlPiBtX3BlbmRpbmdSZW5kZXJTdGF0ZTsKKworICAgIFhSRnJhbWVS
ZXF1ZXN0Q2FsbGJhY2s6OklkIG1fbmV4dENhbGxiYWNrSWQgeyAwIH07CisgICAgVmVjdG9yPFJl
ZjxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPj4gbV9jYWxsYmFja3M7CisgICAgVmVjdG9yPFJlZjxY
UkZyYW1lUmVxdWVzdENhbGxiYWNrPj4gbV9ydW5uaW5nQ2FsbGJhY2tzOworCisgICAgVGltZXIg
bV9hbmltYXRpb25UaW1lcjsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdEFuaW1hdGlvbkZyYW1l
VGltZXN0YW1wOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uaWRsCmluZGV4IDM5ZjNlYWI2ZmY1YjY3NmU2
NGNkMzM4OGZkMTYyNjFhOTA0MzEwNjkuLjQwMjMyYzZiYTk5YzFkNjk5MjU4MTQyZjQ3NGJkNGE0
NGM0NGFiYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJT
ZXNzaW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lv
bi5pZGwKQEAgLTQxLDcgKzQxLDcgQEAKICAgICB2b2lkIHVwZGF0ZVJlbmRlclN0YXRlKG9wdGlv
bmFsIFhSUmVuZGVyU3RhdGVJbml0IHN0YXRlSW5pdCk7CiAgICAgW05ld09iamVjdF0gUHJvbWlz
ZTxXZWJYUlJlZmVyZW5jZVNwYWNlPiByZXF1ZXN0UmVmZXJlbmNlU3BhY2UoWFJSZWZlcmVuY2VT
cGFjZVR5cGUgdHlwZSk7CiAKLSAgICBsb25nIHJlcXVlc3RBbmltYXRpb25GcmFtZShYUkZyYW1l
UmVxdWVzdENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICB1bnNpZ25lZCBsb25nIHJlcXVlc3RBbmlt
YXRpb25GcmFtZShYUkZyYW1lUmVxdWVzdENhbGxiYWNrIGNhbGxiYWNrKTsKICAgICB2b2lkIGNh
bmNlbEFuaW1hdGlvbkZyYW1lKGxvbmcgaGFuZGxlKTsKIAogICAgIFByb21pc2U8dm9pZD4gZW5k
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVl
c3RDYWxsYmFjay5oCmluZGV4IDE4NTA0OTc2ODg0ZWMxOGVlZjM4MWVkYWNjMmE1MzU0ZjFjZjI4
MzIuLjllYTc0YjdlNzg4ODI4ODE3MjRlYWZhMDg5ZGU4YjdiZTczNDVjYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5o
CkBAIC00MCw2ICs0MCwxNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6
OkFjdGl2ZURPTUNhbGxiYWNrOwogCiAgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBo
YW5kbGVFdmVudChkb3VibGUgaGlnaFJlc1RpbWVNcywgV2ViWFJGcmFtZSYpID0gMDsKKworICAg
IHVzaW5nIElkID0gdW5zaWduZWQgbG9uZzsKKyAgICBJZCBjYWxsYmFja0lkKCkgeyBBU1NFUlQo
bV9pZCk7IHJldHVybiBtX2lkOyB9CisgICAgdm9pZCBzZXRDYWxsYmFja0lkKElkIGlkKSB7IEFT
U0VSVCghbV9pZCk7IG1faWQgPSBpZDsgfQorICAgIHZvaWQgY2FuY2VsKCkgeyBtX2NhbmNlbGxl
ZCA9IHRydWU7IH0KKyAgICBib29sIGlzQ2FuY2VsbGVkKCkgY29uc3QgeyByZXR1cm4gbV9jYW5j
ZWxsZWQ7IH0KKworcHJpdmF0ZToKKyAgICBJZCBtX2lkIHsgMCB9OworICAgIGJvb2wgbV9jYW5j
ZWxsZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwCmluZGV4IGYzMWEzMzU0M2FiOWVhNDQw
OTkyMTZjZGVmNjdjNzhhODA1MTliNmIuLjJmYWRmMzkzMjUwNWRhNTRhYmUxN2QxOTEyZTQwMTE5
MjFhNDk1NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2
aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAK
QEAgLTEwNCw5ICsxMDQsOSBAQCB2b2lkIFdlYkZha2VYUkRldmljZTo6c2ltdWxhdGVSZXNldFBv
c2UoKQogewogfQogCi1XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgV2ViRmFrZVhSRGV2aWNlOjpz
aW11bGF0ZUlucHV0U291cmNlQ29ubmVjdGlvbihGYWtlWFJJbnB1dFNvdXJjZUluaXQpCitSZWY8
V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyPiBXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlSW5wdXRT
b3VyY2VDb25uZWN0aW9uKEZha2VYUklucHV0U291cmNlSW5pdCkKIHsKLSAgICByZXR1cm4gV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyKCk7CisgICAgcmV0dXJuIFdlYkZha2VYUklucHV0Q29udHJv
bGxlcjo6Y3JlYXRlKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3Jt
Pj4gV2ViRmFrZVhSRGV2aWNlOjpwYXJzZVJpZ2lkVHJhbnNmb3JtKGNvbnN0IEZha2VYUlJpZ2lk
VHJhbnNmb3JtSW5pdCYgaW5pdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
V2ViRmFrZVhSRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmlj
ZS5oCmluZGV4IDdhODdiYWExYzVmMzliYTRjMWI1YTc4ZGVlOTU4ODJhZGM2ZjQ3MTIuLmI0YzU4
NGQ1NGNhZjNkZWI1ZThiNzBiZjExZDhjZDNjMzcwYzkzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9XZWJGYWtlWFJEZXZpY2UuaApAQCAtOTksNyArOTksNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNpbXVsYXRlUmVzZXRQb3NlKCk7CiAKLSAgICBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIg
c2ltdWxhdGVJbnB1dFNvdXJjZUNvbm5lY3Rpb24oRmFrZVhSSW5wdXRTb3VyY2VJbml0KTsKKyAg
ICBSZWY8V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyPiBzaW11bGF0ZUlucHV0U291cmNlQ29ubmVj
dGlvbihGYWtlWFJJbnB1dFNvdXJjZUluaXQpOwogCiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJl
ZjxGYWtlWFJWaWV3Pj4gcGFyc2VWaWV3KGNvbnN0IEZha2VYUlZpZXdJbml0Jik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5oCmluZGV4
IDkyN2UzNWYwZmVlNzM4OTEzMGU2MWU5ZmE1OTQxZjdhYWI0MDc3NDEuLmQyOGNlYTRmODZlYTlj
YTQ2NTZlYmRmOGM1MjUxZWY0YjkyNDk5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaApAQCAtMzgsNiArMzgsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkZha2VYUklucHV0Q29udHJvbGxlciBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYkZha2VYUklucHV0Q29udHJvbGxlcj4gewogcHVibGljOgorICAg
IHN0YXRpYyBSZWY8V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYkZha2VYUklucHV0Q29udHJvbGxlcik7IH0KKwogICAgIHZvaWQgc2V0
SGFuZGVkbmVzcyhYUkhhbmRlZG5lc3MpOwogCiAgICAgdm9pZCBzZXRUYXJnZXRSYXlNb2RlKFhS
VGFyZ2V0UmF5TW9kZSk7CkBAIC02Myw2ICs2NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN1
cHBvcnRlZEJ1dHRvbnMoVmVjdG9yPEZha2VYUkJ1dHRvblN0YXRlSW5pdD4pOwogCiAgICAgdm9p
ZCB1cGRhdGVCdXR0b25TdGF0ZShGYWtlWFJCdXR0b25TdGF0ZUluaXQpOworCitwcml2YXRlOgor
ICAgIFdlYkZha2VYUklucHV0Q29udHJvbGxlcigpID0gZGVmYXVsdDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZjEyNDFlYjI3MTc4YzZkNmNiMDZjN2M2YmM2Mzc5MzYy
ZDE2MDYwLi42YzFlZWMxNDIwZjczM2Q1OWJhNDVkNmIxMTlmMGJkY2MyYTQzNTVhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMjAtMDUtMTkgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFy
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJbXBsZW1lbnQgWFJTZXNzaW9uOjpyZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEyMDk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4K
KworICAgICAgICAqIHBsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zOiBVbnNraXBwZWQgc2V2
ZXJhbCB0ZXN0cyB0aGF0IGFyZSBub3cgcGFzc2luZy4KKwogMjAyMC0wNS0yNyAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1RSXSBF
dmVudFNlbmRlcjogc3RvcCB1c2luZyBHZGtFdmVudCBBUEkgaW4gcHJlcGFyYXRpb24gZm9yIEdU
SzQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGQyYzc2OWZjMjBmN2QwYjgzMzNh
MzBlMDM3ODA4NjYwODRlNDdmM2EuLmY1NTg1ODk5ZWVhZDBjZjM5ZGIxMWFjMGYwZDFkODY4MmZl
YTc0MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDIwLTA1LTE5ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtXZWJYUl0gSW1wbGVtZW50IFhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1l
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjA5
OQorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VieHIveHJTZXNzaW9uX2NhbmNlbEFuaW1hdGlvbkZyYW1lLmh0dHBz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhy
L3hyU2Vzc2lvbl9jYW5jZWxBbmltYXRpb25GcmFtZV9pbnZhbGlkaGFuZGxlLmh0dHBzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vz
c2lvbl9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVfY2FsbGJhY2tfY2FsbHMuaHR0cHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKwogMjAyMC0wNS0yNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBDYW4ndCBzY3J1YiB2aWRlbyBvbiBodHRwczovL3d3dy5qdWRpY2lhcnku
c2VuYXRlLmdvdgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJ4ci94clNlc3Npb25fY2FuY2VsQW5pbWF0aW9uRnJhbWUuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJ4ci94clNlc3Npb25fY2FuY2VsQW5pbWF0aW9uRnJhbWUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdkYzkwMGQwZDM3Y2Y4ZGZmN2M4MWUyNWEzYWM3ZGVhNzViYzlhMDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnhyL3hyU2Vzc2lvbl9jYW5jZWxBbmltYXRpb25GcmFtZS5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACisKK1BBU1MgWFJTZXNzaW9uIHJlcXVlc3RBbmltYXRpb25GcmFtZSBj
YWxsYmFja3MgY2FuIGJlIHVucmVnaXN0ZXJlZCB3aXRoIGNhbmNlbEFuaW1hdGlvbkZyYW1lIGZv
ciBpbW1lcnNpdmUgc2Vzc2lvbnMgCitQQVNTIFhSU2Vzc2lvbiByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUgY2FsbGJhY2tzIGNhbiBiZSB1bnJlZ2lzdGVyZWQgd2l0aCBjYW5jZWxBbmltYXRpb25GcmFt
ZSBmb3Igbm9uLWltbWVyc2l2ZSBzZXNzaW9ucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94clNlc3Npb25fY2FuY2VsQW5p
bWF0aW9uRnJhbWVfaW52YWxpZGhhbmRsZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9jYW5jZWxB
bmltYXRpb25GcmFtZV9pbnZhbGlkaGFuZGxlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNThhNWY1YTI2NTc4MTEyODY4MWI0NTQyMWIyMTEwOThlNDVkNmNjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94
clNlc3Npb25fY2FuY2VsQW5pbWF0aW9uRnJhbWVfaW52YWxpZGhhbmRsZS5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgWFJTZXNzaW9uIGNhbmNlbEFuaW1hdGlvbkZy
YW1lIGRvZXMgbm90IGhhdmUgdW5leHBlY3RlZCBiZWhhdmlvciB3aGVuIGdpdmVuIGludmFsaWQg
aGFuZGxlcyBvbiBpbW1lcnNpdmUgdGVzdFNlc3Npb24gCitQQVNTIFhSU2Vzc2lvbiBjYW5jZWxB
bmltYXRpb25GcmFtZSBkb2VzIG5vdCBoYXZlIHVuZXhwZWN0ZWQgYmVoYXZpb3Igd2hlbiBnaXZl
biBpbnZhbGlkIGhhbmRsZXMgb24gbm9uLWltbWVyc2l2ZSB0ZXN0U2Vzc2lvbiAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94
clNlc3Npb25fcmVxdWVzdEFuaW1hdGlvbkZyYW1lX2NhbGxiYWNrX2NhbGxzLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
eHIveHJTZXNzaW9uX3JlcXVlc3RBbmltYXRpb25GcmFtZV9jYWxsYmFja19jYWxscy5odHRwcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ5Y2U0ODUwZGFlODhmNDBkMDQ2MjI2YmU3MmM4YmQ5
ZmRjMDQyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VieHIveHJTZXNzaW9uX3JlcXVlc3RBbmltYXRpb25GcmFtZV9jYWxs
YmFja19jYWxscy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgWFJT
ZXNzaW9uIHJlcXVlc3RBbmltYXRpb25GcmFtZSBjYWxscyB0aGUgcHJvdmlkZWQgY2FsbGJhY2sg
Zm9yIGFuIGltbWVyc2l2ZSBzZXNzaW9uIAorUEFTUyBYUlNlc3Npb24gcmVxdWVzdEFuaW1hdGlv
bkZyYW1lIGNhbGxzIHRoZSBwcm92aWRlZCBjYWxsYmFjayBhIG5vbi1pbW1lcnNpdmUgc2Vzc2lv
biAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4OTNj
ZjA5NjM5YWQ2MTRjYzJhZDFhNjJiYWRkMDk1NDYzZDU2ZmMyLi41ZGNhNmJjM2ExZTdkMzA5N2I3
Yjg4M2ZjZjk4M2NkMjUyNzlmMDlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtOTc3LDcgKzk3NywxMCBAQCB3ZWJraXQub3JnL2IvMjA5ODU5IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJEZXZpY2VfcmVxdWVzdFNlc3Npbwog
d2Via2l0Lm9yZy9iLzIwOTg1OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhy
L3hyRGV2aWNlX3JlcXVlc3RTZXNzaW9uX25vbl9pbW1lcnNpdmVfbm9fZ2VzdHVyZS5odHRwcy5o
dG1sIFsgUGFzcyBdCiB3ZWJraXQub3JnL2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VieHIveHJEZXZpY2VfcmVxdWVzdFNlc3Npb25fb3B0aW9uYWxGZWF0dXJlcy5o
dHRwcy5odG1sIFsgUGFzcyBdCiB3ZWJraXQub3JnL2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VieHIveHJEZXZpY2VfcmVxdWVzdFNlc3Npb25fcmVxdWlyZWRGZWF0
dXJlc191bmtub3duLmh0dHBzLmh0bWwgWyBQYXNzIF0KK3dlYmtpdC5vcmcvYi8yMDk4NTkgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94clNlc3Npb25fY2FuY2VsQW5pbWF0
aW9uRnJhbWUuaHR0cHMuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzIwOTg1OSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9jYW5jZWxBbmltYXRpb25G
cmFtZV9pbnZhbGlkaGFuZGxlLmh0dHBzLmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMDk4
NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94clNlc3Npb25fZmVhdHVy
ZXNfZGV2aWNlU3VwcG9ydC5odHRwcy5odG1sIFsgUGFzcyBdCit3ZWJraXQub3JnL2IvMjA5ODU5
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJTZXNzaW9uX3JlcXVlc3RB
bmltYXRpb25GcmFtZV9jYWxsYmFja19jYWxscy5odHRwcy5odG1sIFsgUGFzcyBdCiAKICMgUGFz
c2luZyBzaW5jZSByMjU5NTMyLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXVpL291dGxpbmUtMDE5Lmh0bWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>