<?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>220667</bug_id>
          
          <creation_ts>2021-01-15 13:42:12 -0800</creation_ts>
          <short_desc>Update media state for active speech recognition as it uses audio capture</short_desc>
          <delta_ts>2021-01-19 20:34:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1719985</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-15 13:42:12 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720015</commentid>
    <comment_count>1</comment_count>
      <attachid>417737</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-15 14:15:03 -0800</bug_when>
    <thetext>Created attachment 417737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720365</commentid>
    <comment_count>2</comment_count>
      <attachid>417737</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-18 09:38:44 -0800</bug_when>
    <thetext>Comment on attachment 417737
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:112
&gt; +    auto&amp; document = downcast&lt;Document&gt;(*scriptExecutionContext());

What is the guarantee to have a valid scriptExecutionContext() here?
If we want to ensure that, we might want to remove SpeechRecognition from m_clientMap when being stopped.

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:142
&gt; +    document.setActiveSpeechRecognition(nullptr);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720463</commentid>
    <comment_count>3</comment_count>
      <attachid>417858</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-18 20:48:46 -0800</bug_when>
    <thetext>Created attachment 417858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720464</commentid>
    <comment_count>4</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-18 20:51:38 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; Comment on attachment 417737 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=417737&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:112
&gt; &gt; +    auto&amp; document = downcast&lt;Document&gt;(*scriptExecutionContext());
&gt; 
&gt; What is the guarantee to have a valid scriptExecutionContext() here?
&gt; If we want to ensure that, we might want to remove SpeechRecognition from
&gt; m_clientMap when being stopped.

Do you mean removing SpeechRecognition from m_clientMap when it is already stopped?

How about just checking if the context is null (like in the updated patch)?

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:142
&gt; &gt; +    document.setActiveSpeechRecognition(nullptr);
&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720494</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-19 02:03:09 -0800</bug_when>
    <thetext>(In reply to Sihui Liu from comment #4)
&gt; (In reply to youenn fablet from comment #2)
&gt; &gt; Comment on attachment 417737 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=417737&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:112
&gt; &gt; &gt; +    auto&amp; document = downcast&lt;Document&gt;(*scriptExecutionContext());
&gt; &gt; 
&gt; &gt; What is the guarantee to have a valid scriptExecutionContext() here?
&gt; &gt; If we want to ensure that, we might want to remove SpeechRecognition from
&gt; &gt; m_clientMap when being stopped.
&gt; 
&gt; Do you mean removing SpeechRecognition from m_clientMap when it is already
&gt; stopped?

Right, idea would be to remove it proactively in SpeechRecognition::stop (the ActiveDOMObject version). Currently, this is done lazily: m_clientMap could in theory grow without ever decreasing.

&gt; How about just checking if the context is null (like in the updated patch)?

Right, this would work as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720553</commentid>
    <comment_count>6</comment_count>
      <attachid>417882</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-19 09:48:32 -0800</bug_when>
    <thetext>Created attachment 417882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720557</commentid>
    <comment_count>7</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-19 10:00:33 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; (In reply to Sihui Liu from comment #4)
&gt; &gt; (In reply to youenn fablet from comment #2)
&gt; &gt; &gt; Comment on attachment 417737 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=417737&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:112
&gt; &gt; &gt; &gt; +    auto&amp; document = downcast&lt;Document&gt;(*scriptExecutionContext());
&gt; &gt; &gt; 
&gt; &gt; &gt; What is the guarantee to have a valid scriptExecutionContext() here?
&gt; &gt; &gt; If we want to ensure that, we might want to remove SpeechRecognition from
&gt; &gt; &gt; m_clientMap when being stopped.
&gt; &gt; 
&gt; &gt; Do you mean removing SpeechRecognition from m_clientMap when it is already
&gt; &gt; stopped?
&gt; 
&gt; Right, idea would be to remove it proactively in SpeechRecognition::stop
&gt; (the ActiveDOMObject version). Currently, this is done lazily: m_clientMap
&gt; could in theory grow without ever decreasing.

I see, updated.

&gt; 
&gt; &gt; How about just checking if the context is null (like in the updated patch)?
&gt; 
&gt; Right, this would work as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720619</commentid>
    <comment_count>8</comment_count>
      <attachid>417882</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-19 11:53:33 -0800</bug_when>
    <thetext>Comment on attachment 417882
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:75
&gt; +    auto&amp; document = downcast&lt;Document&gt;(*context);

I am not sure this change is needed, we will anyway get a nullptr crash below.

&gt; Source/WebCore/Modules/speech/SpeechRecognition.h:89
&gt;      void suspend(ReasonForSuspension);

final as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720799</commentid>
    <comment_count>9</comment_count>
      <attachid>417939</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-19 19:37:30 -0800</bug_when>
    <thetext>Created attachment 417939
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720800</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-19 20:33:17 -0800</bug_when>
    <thetext>Committed r271636: &lt;https://trac.webkit.org/changeset/271636&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417939.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720801</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-19 20:34:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/73387089&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417737</attachid>
            <date>2021-01-15 14:15:03 -0800</date>
            <delta_ts>2021-01-18 20:48:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220667-20210115141502.patch</filename>
            <type>text/plain</type>
            <size>12116</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE2MDg5NDE5MjllNDhj
NzFkOGU0OWM0NDg2OWRiZTUwOGQ2ZWNjOS4uZTEwZGYyYzZmNzU5Mzc0NGZkZTZkNjM2M2E5NTM0
ODE3ODY3ODM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTAxLTE1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgVXBkYXRlIG1lZGlhIHN0YXRl
IGZvciBhY3RpdmUgc3BlZWNoIHJlY29nbml0aW9uIGFzIGl0IHVzZXMgYXVkaW8gY2FwdHVyZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gbWFrZSBz
dXJlIHRoZSBtZWRpYSBjYXB0dXJlIHN0YXRlIGlzIGNvcnJlY3RseSBzZW50IHRvIGNsaWVudC4K
KworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Mi5TcGVlY2hSZWNvZ25pdGlvbk1lZGlhQ2FwdHVy
ZVN0YXRlQ2hhbmdlCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0
dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rv
cENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6CisgICAgICAgICogZG9t
L0RvY3VtZW50Lmg6CisKIDIwMjEtMDEtMTQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmVkIG1vc3QgdXNlcyBvZiBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAuLi4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKaW5kZXggMWQ0NDQ3M2ZkYWI5ZGFlNmE1
OGNjYmUxYjVlNDYwM2U4MTRiOWExNy4uYjRjNDU4ZTVkODE3MGViYjA0M2M1NTNlZjE2NGJmMWYw
ODgxYjdlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uLmNwcApAQCAtMTA5LDYgKzEwOSwxMCBAQCB2b2lkIFNwZWVjaFJlY29nbml0
aW9uOjpkaWRTdGFydCgpCiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVy
aW5nQXVkaW8oKQogeworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIGRvY3VtZW50LnNldEFjdGl2ZVNwZWVjaFJl
Y29nbml0aW9uKHRoaXMpOworICAgIGRvY3VtZW50LnVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CisK
ICAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6OlNwZWVjaCwg
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnVi
YmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKIH0KIApAQCAtMTM0LDYgKzEzOCwx
MCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQoKQogCiB2
b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQogeworICAgIGF1
dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOworICAgIGRvY3VtZW50LnNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKG51bGxwdHIpOwor
ICAgIGRvY3VtZW50LnVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CisKICAgICBxdWV1ZVRhc2tUb0Rp
c3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6OlNwZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuYXVkaW9lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0Nh
bmNlbGFibGU6Ok5vKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGQxZTdjMTE3
MzFmZWE4ZjRjNTAyZDYxMzZjZTFlZTllMDE3MGE3OTMuLjIwNjI3Njc2NWIwYjBjM2E5Mjk5MTE5
N2RiYjcxMDk1Mjc2MDg5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjA4LDYgKzIw
OCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAj
aW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbi5o
IgogI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgogI2luY2x1ZGUgIlN0cmluZ0NhbGxiYWNrLmgi
CiAjaW5jbHVkZSAiU3R5bGVBZGp1c3Rlci5oIgpAQCAtNDI0Nyw2ICs0MjQ4LDExIEBAIHZvaWQg
RG9jdW1lbnQ6OnJlbW92ZUF1ZGlvUHJvZHVjZXIoTWVkaWFQcm9kdWNlciYgYXVkaW9Qcm9kdWNl
cikKICAgICB1cGRhdGVJc1BsYXlpbmdNZWRpYSgpOwogfQogCit2b2lkIERvY3VtZW50OjpzZXRB
Y3RpdmVTcGVlY2hSZWNvZ25pdGlvbihTcGVlY2hSZWNvZ25pdGlvbiogc3BlZWNoUmVjb2duaXRp
b24pCit7CisgICAgbV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbiA9IG1ha2VXZWFrUHRyKHNwZWVj
aFJlY29nbml0aW9uKTsKK30KKwogdm9pZCBEb2N1bWVudDo6bm90ZVVzZXJJbnRlcmFjdGlvbldp
dGhNZWRpYUVsZW1lbnQoKQogewogICAgIGlmIChtX3VzZXJIYXNJbnRlcmFjdGVkV2l0aE1lZGlh
RWxlbWVudCkKQEAgLTQyNjgsNiArNDI3NCw4IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUlzUGxh
eWluZ01lZGlhKHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgc3RhdGUgfD0gTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKCp0aGlz
KTsKKyAgICBpZiAobV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbikKKyAgICAgICAgc3RhdGUgfD0g
TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOwogI2VuZGlmCiAKICAg
ICBpZiAobV91c2VySGFzSW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IDA4YzQwNTg0MzU4ZjRmNzdjNzIxNWU5MGRiNzEwMzI0YTg0NTkxNmYuLmMyMjAx
OTY3OWNjN2Q2MWIzNzIzZDYwNDViOGM4NGZhMTliMjAwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC0yMDgsNiArMjA4LDcgQEAgY2xhc3MgU2VsZWN0b3JRdWVyeTsKIGNsYXNzIFNlbGVjdG9y
UXVlcnlDYWNoZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNldHRpbmdz
OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb247CiBjbGFzcyBTdHJpbmdDYWxsYmFjazsKIGNsYXNz
IFN0eWxlU2hlZXQ7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CkBAIC0xMzgxLDYgKzEzODIs
NyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZEF1ZGlvUHJvZHVjZXIo
TWVkaWFQcm9kdWNlciYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQXVkaW9Qcm9k
dWNlcihNZWRpYVByb2R1Y2VyJik7CisgICAgdm9pZCBzZXRBY3RpdmVTcGVlY2hSZWNvZ25pdGlv
bihTcGVlY2hSZWNvZ25pdGlvbiopOwogICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBtZWRpYVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlOyB9CiAgICAgdm9pZCBu
b3RlVXNlckludGVyYWN0aW9uV2l0aE1lZGlhRWxlbWVudCgpOwogICAgIGJvb2wgaXNDYXB0dXJp
bmcoKSBjb25zdCB7IHJldHVybiBNZWRpYVByb2R1Y2VyOjppc0NhcHR1cmluZyhtX21lZGlhU3Rh
dGUpOyB9CkBAIC0xOTcxLDYgKzE5NzMsNyBAQCBwcml2YXRlOgogICAgIFJlZjxDU1NGb250U2Vs
ZWN0b3I+IG1fZm9udFNlbGVjdG9yOwogCiAgICAgV2Vha0hhc2hTZXQ8TWVkaWFQcm9kdWNlcj4g
bV9hdWRpb1Byb2R1Y2VyczsKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uPiBtX2FjdGl2
ZVNwZWVjaFJlY29nbml0aW9uOwogCiAgICAgSGFzaFNldDxTaGFkb3dSb290Kj4gbV9pbkRvY3Vt
ZW50U2hhZG93Um9vdHM7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBkZWI0MWFiMTg2ZTdkMmU0ZWNlMjgzMzRlMDZiNDI2ZGUxZTQyNmI0Li43
YzZjNWFmYzk5NzllMzEwYTVkNzM0NTA4ZmJmNTFkMWYzYWQwNzkxIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEt
MDEtMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBVcGRhdGUg
bWVkaWEgc3RhdGUgZm9yIGFjdGl2ZSBzcGVlY2ggcmVjb2duaXRpb24gYXMgaXQgdXNlcyBhdWRp
byBjYXB0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjA2NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW06
CisgICAgICAgICgtW1NwZWVjaFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBfd2ViVmlldzptZWRpYUNh
cHR1cmVTdGF0ZURpZENoYW5nZTpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAoLVtTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRlIF93ZWJWaWV3
OnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25Gb3JPcmlnaW46ZGVjaXNpb25IYW5k
bGVyOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25V
SURlbGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOmRlY2lz
aW9uSGFuZGxlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uVUlEZWxlZ2F0ZSBfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6
bWFpbkZyYW1lVVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQu
CisgICAgICAgICgtW1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblVJRGVsZWdhdGUgd2ViVmll
dzpjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246Zm9yTmF2aWdhdGlvbkFjdGlvbjp3aW5k
b3dGZWF0dXJlczpdKTogRGVsZXRlZC4KKwogMjAyMS0wMS0xNCAgQWFrYXNoIEphaW4gIDxhYWth
c2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRVdTIHNob3VsZCBjb3JyZWN0bHkgaWRlbnRp
ZnkgdGhlIE9TIGZvciBCaWcgU3VyIGRvdCByZWxlYXNlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0KaW5k
ZXggYzMxMmE5ZmY4MTg4NWU2OTUyMDU0YjY2YTUyNzIyYjhjOTI2YzM0Ni4uN2JiZTg3MjhjMTUz
YTBmNDRjYzZhMDdiNTdjMmZlYmY4OTA2ZTBiMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tCkBAIC0z
OCwxNyArMzgsMjAgQEAgc3RhdGljIGJvb2wgc2hvdWxkR3JhbnRQZXJtaXNzaW9uUmVxdWVzdCA9
IHRydWU7CiBzdGF0aWMgYm9vbCBwZXJtaXNzaW9uUmVxdWVzdGVkID0gZmFsc2U7CiBzdGF0aWMg
Ym9vbCByZWNlaXZlZFNjcmlwdE1lc3NhZ2U7CiBzdGF0aWMgYm9vbCBkaWRGaW5pc2hOYXZpZ2F0
aW9uOworc3RhdGljIGJvb2wgY2FwdHVyZVN0YXRlRGlkQ2hhbmdlOworc3RhdGljIGJvb2wgaXND
YXB0dXJpbmc7CiBzdGF0aWMgUmV0YWluUHRyPFdLU2NyaXB0TWVzc2FnZT4gbGFzdFNjcmlwdE1l
c3NhZ2U7CiBzdGF0aWMgUmV0YWluUHRyPFdLV2ViVmlldz4gY3JlYXRlZFdlYlZpZXc7CiAKLUBp
bnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+CitAaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uVUlEZWxl
Z2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZVByaXZhdGU+CiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25Gb3JP
cmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOiAoX1dLQ2FwdHVyZURldmlj
ZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxl
cjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZy
YW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNp
c2lvbkhhbmRsZXI7CiAtIChXS1dlYlZpZXcgKil3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAq
KWNvbmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICop
bmF2aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRv
d0ZlYXR1cmVzOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNh
cHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGU7CiBAZW5kCiAK
LUBpbXBsZW1lbnRhdGlvbiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRlCitA
aW1wbGVtZW50YXRpb24gU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlCiAtICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25Gb3JPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4gZGVjaXNpb25IYW5kbGVyOih2
b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBwZXJtaXNzaW9uUmVxdWVzdGVk
ID0gdHJ1ZTsKQEAgLTcwLDYgKzczLDEyIEBAIHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJWaWV3PiBj
cmVhdGVkV2ViVmlldzsKICAgICBjcmVhdGVkV2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgcmV0dXJuIGNyZWF0ZWRXZWJWaWV3LmdldCgpOwog
fQorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0
YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZQoreworICAgIGlzQ2FwdHVy
aW5nID0gc3RhdGUgPT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lOworICAg
IGNhcHR1cmVTdGF0ZURpZENoYW5nZSA9IHRydWU7Cit9CiBAZW5kCiAKIEBpbnRlcmZhY2UgU3Bl
ZWNoUmVjb2duaXRpb25NZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VI
YW5kbGVyPgpAQCAtMTExLDcgKzEyMCw3IEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNoUmVjb2duaXRp
b25Vc2VyUGVybWlzc2lvblBlcnNpc3RlbmNlKQogICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVy
ZURldmljZXNFbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVuY2VzLl9zcGVlY2hSZWNvZ25pdGlv
bkVuYWJsZWQgPSBZRVM7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlvblVJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKIAogICAgIHNob3VsZEdyYW50UGVybWlzc2lvblJlcXVlc3QgPSBmYWxzZTsKQEAgLTE1
NCw3ICsxNjMsNyBAQCBURVNUKFdlYktpdDIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JXaGVuU3Rh
cnRpbmdBdWRpb0NhcHR1cmVPbkRpZmZlcmVudFBhZ2UpCiAgICAgcHJlZmVyZW5jZXMuX21vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX3NwZWVjaFJlY29n
bml0aW9uRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWly
ZXNTZWN1cmVDb25uZWN0aW9uID0gTk87Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlvblVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKICAgICBhdXRvIGZpcnN0V2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMTAwLCAxMDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIFtmaXJzdFdlYlZpZXcgc2V0VUlE
ZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgYXV0byBzZWNvbmRXZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgxMDAsIDAs
IDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKQEAgLTIwNiw3
ICsyMTUsNyBAQCBURVNUKFdlYktpdDIsIFNwZWVjaFJlY29nbml0aW9uUGFnZUJlY29tZXNJbnZp
c2libGUpCiAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7
CiAgICAgcHJlZmVyZW5jZXMuX3NwZWVjaFJlY29nbml0aW9uRW5hYmxlZCA9IFlFUzsKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvblVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAg
IFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCiAgICAgLy8gUGFnZSBp
cyB2aXNpYmxlLgpAQCAtMjQxLDcgKzI1MCw3IEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNoUmVjb2du
aXRpb25QYWdlSXNEZXN0cm95ZWQpCiAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX3NwZWVjaFJlY29nbml0aW9uRW5hYmxl
ZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0
aWNhbGx5ID0gWUVTOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CiAgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRp
b25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBzaG91bGRHcmFudFBlcm1p
c3Npb25SZXF1ZXN0ID0gdHJ1ZTsKICAgICBjcmVhdGVkV2ViVmlldyA9IG51bGxwdHI7CkBAIC0y
NjgsNiArMjc3LDMxIEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNoUmVjb2duaXRpb25QYWdlSXNEZXN0
cm95ZWQpCiAgICAgRVhQRUNUX1RSVUUoISFjcmVhdGVkV2ViVmlldyk7CiB9CiAKK1RFU1QoV2Vi
S2l0MiwgU3BlZWNoUmVjb2duaXRpb25NZWRpYUNhcHR1cmVTdGF0ZUNoYW5nZSkKK3sKKyAgICBh
dXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlv
bk1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJD
b250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBu
YW1lOkAidGVzdEhhbmRsZXIiXTsKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdOworICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9zcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQgPSBZ
RVM7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlvblVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBzZXRVSURl
bGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBzaG91bGRHcmFudFBlcm1pc3Npb25SZXF1ZXN0
ID0gdHJ1ZTsKKworICAgIGNhcHR1cmVTdGF0ZURpZENoYW5nZSA9IGZhbHNlOworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAInNwZWVjaHJlY29nbml0aW9uLWJh
c2ljIl07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInN0YXJ0
KCkiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNhcHR1cmVTdGF0ZURpZENoYW5n
ZSk7CisgICAgRVhQRUNUX1RSVUUoaXNDYXB0dXJpbmcpOworCisgICAgY2FwdHVyZVN0YXRlRGlk
Q2hhbmdlID0gZmFsc2U7CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAInN0b3AoKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY2FwdHVyZVN0YXRl
RGlkQ2hhbmdlKTsKKyAgICBFWFBFQ1RfRkFMU0UoaXNDYXB0dXJpbmcpOworfQorCiAjZW5kaWYK
IAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417858</attachid>
            <date>2021-01-18 20:48:46 -0800</date>
            <delta_ts>2021-01-19 09:48:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220667-20210118204845.patch</filename>
            <type>text/plain</type>
            <size>12226</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE2MDg5NDE5MjllNDhj
NzFkOGU0OWM0NDg2OWRiZTUwOGQ2ZWNjOS4uYjFhMzU2ZWUzZjA1YzU3MDI0ODE3NTdmOWFhNTQ0
ZmExMzYxODk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTAxLTE4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgVXBkYXRlIG1lZGlhIHN0YXRl
IGZvciBhY3RpdmUgc3BlZWNoIHJlY29nbml0aW9uIGFzIGl0IHVzZXMgYXVkaW8gY2FwdHVyZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gbWFrZSBz
dXJlIHRoZSBtZWRpYSBjYXB0dXJlIHN0YXRlIGlzIGNvcnJlY3RseSBzZW50IHRvIGNsaWVudC4K
KworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Mi5TcGVlY2hSZWNvZ25pdGlvbk1lZGlhQ2FwdHVy
ZVN0YXRlQ2hhbmdlCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0
dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rv
cENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6CisgICAgICAgICogZG9t
L0RvY3VtZW50Lmg6CisKIDIwMjEtMDEtMTQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmVkIG1vc3QgdXNlcyBvZiBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAuLi4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKaW5kZXggMWQ0NDQ3M2ZkYWI5ZGFlNmE1
OGNjYmUxYjVlNDYwM2U4MTRiOWExNy4uYmJmMDU2YzY5N2NkNTM1YjdhNWUyMjIxYjIzZTI0ODM1
ZjJlODE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uLmNwcApAQCAtMTA5LDYgKzEwOSwxMiBAQCB2b2lkIFNwZWVjaFJlY29nbml0
aW9uOjpkaWRTdGFydCgpCiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVy
aW5nQXVkaW8oKQogeworICAgIGlmIChhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKSB7CisgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpj
b250ZXh0KTsKKyAgICAgICAgZG9jdW1lbnQuc2V0QWN0aXZlU3BlZWNoUmVjb2duaXRpb24odGhp
cyk7CisgICAgICAgIGRvY3VtZW50LnVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CisgICAgfQorCiAg
ICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJs
ZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiB9CiAKQEAgLTEzNCw2ICsxNDAsMTIg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkKIAogdm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkKIHsKKyAgICBpZiAo
YXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgeworICAgICAgICBhdXRv
JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCk7CisgICAgICAgIGRvY3Vt
ZW50LnNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKG51bGxwdHIpOworICAgICAgICBkb2N1bWVu
dC51cGRhdGVJc1BsYXlpbmdNZWRpYSgpOworICAgIH0KKwogICAgIHF1ZXVlVGFza1RvRGlzcGF0
Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6U3BlZWNoLCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5hdWRpb2VuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDFlN2MxMTczMWZl
YThmNGM1MDJkNjEzNmNlMWVlOWUwMTcwYTc5My4uMjA2Mjc2NzY1YjBiMGMzYTkyOTkxMTk3ZGJi
NzEwOTUyNzYwODk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMDgsNiArMjA4LDcg
QEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNs
dWRlICJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAj
aW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nQ2FsbGJhY2suaCIKICNp
bmNsdWRlICJTdHlsZUFkanVzdGVyLmgiCkBAIC00MjQ3LDYgKzQyNDgsMTEgQEAgdm9pZCBEb2N1
bWVudDo6cmVtb3ZlQXVkaW9Qcm9kdWNlcihNZWRpYVByb2R1Y2VyJiBhdWRpb1Byb2R1Y2VyKQog
ICAgIHVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OnNldEFjdGl2
ZVNwZWVjaFJlY29nbml0aW9uKFNwZWVjaFJlY29nbml0aW9uKiBzcGVlY2hSZWNvZ25pdGlvbikK
K3sKKyAgICBtX2FjdGl2ZVNwZWVjaFJlY29nbml0aW9uID0gbWFrZVdlYWtQdHIoc3BlZWNoUmVj
b2duaXRpb24pOworfQorCiB2b2lkIERvY3VtZW50Ojpub3RlVXNlckludGVyYWN0aW9uV2l0aE1l
ZGlhRWxlbWVudCgpCiB7CiAgICAgaWYgKG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFFbGVt
ZW50KQpAQCAtNDI2OCw2ICs0Mjc0LDggQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5n
TWVkaWEodWludDY0X3Qgc291cmNlRWxlbWVudElEKQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKICAgICBzdGF0ZSB8PSBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoKnRoaXMpOwor
ICAgIGlmIChtX2FjdGl2ZVNwZWVjaFJlY29nbml0aW9uKQorICAgICAgICBzdGF0ZSB8PSBNZWRp
YVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAjZW5kaWYKIAogICAgIGlm
IChtX3VzZXJIYXNJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggMDhjNDA1ODQzNThmNGY3N2M3MjE1ZTkwZGI3MTAzMjRhODQ1OTE2Zi4uYzIyMDE5Njc5
Y2M3ZDYxYjM3MjNkNjA0NWI4Yzg0ZmExOWIyMDA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTIwOCw2ICsyMDgsNyBAQCBjbGFzcyBTZWxlY3RvclF1ZXJ5OwogY2xhc3MgU2VsZWN0b3JRdWVy
eUNhY2hlOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2V0dGluZ3M7Citj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvbjsKIGNsYXNzIFN0cmluZ0NhbGxiYWNrOwogY2xhc3MgU3R5
bGVTaGVldDsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKQEAgLTEzODEsNiArMTM4Miw3IEBA
IHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQXVkaW9Qcm9kdWNlcihNZWRp
YVByb2R1Y2VyJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBdWRpb1Byb2R1Y2Vy
KE1lZGlhUHJvZHVjZXImKTsKKyAgICB2b2lkIHNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKFNw
ZWVjaFJlY29nbml0aW9uKik7CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1l
ZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KICAgICB2b2lkIG5vdGVV
c2VySW50ZXJhY3Rpb25XaXRoTWVkaWFFbGVtZW50KCk7CiAgICAgYm9vbCBpc0NhcHR1cmluZygp
IGNvbnN0IHsgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7
IH0KQEAgLTE5NzEsNiArMTk3Myw3IEBAIHByaXZhdGU6CiAgICAgUmVmPENTU0ZvbnRTZWxlY3Rv
cj4gbV9mb250U2VsZWN0b3I7CiAKICAgICBXZWFrSGFzaFNldDxNZWRpYVByb2R1Y2VyPiBtX2F1
ZGlvUHJvZHVjZXJzOworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb24+IG1fYWN0aXZlU3Bl
ZWNoUmVjb2duaXRpb247CiAKICAgICBIYXNoU2V0PFNoYWRvd1Jvb3QqPiBtX2luRG9jdW1lbnRT
aGFkb3dSb290czsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGRlYjQxYWIxODZlN2QyZTRlY2UyODMzNGUwNmI0MjZkZTFlNDI2YjQuLjhhZjc2
NGNjYWY1NTllNGZjOGVjMzlkMmU2MzdiMTE4OTc0M2JlMzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wMS0x
OCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBtZWRp
YSBzdGF0ZSBmb3IgYWN0aXZlIHNwZWVjaCByZWNvZ25pdGlvbiBhcyBpdCB1c2VzIGF1ZGlvIGNh
cHR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MDY2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbToKKyAg
ICAgICAgKC1bU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVy
ZVN0YXRlRGlkQ2hhbmdlOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICgtW1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblVJRGVsZWdhdGUgX3dlYlZpZXc6cmVx
dWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkZvck9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblVJRGVs
ZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246ZGVjaXNpb25I
YW5kbGVyOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25VSURlbGVnYXRlIF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWlu
RnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjpdKTogRGVsZXRlZC4KKyAg
ICAgICAgKC1bU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uVUlEZWxlZ2F0ZSB3ZWJWaWV3OmNy
ZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjpmb3JOYXZpZ2F0aW9uQWN0aW9uOndpbmRvd0Zl
YXR1cmVzOl0pOiBEZWxldGVkLgorCiAyMDIxLTAxLTE0ICBBYWthc2ggSmFpbiAgPGFha2FzaF9q
YWluQGFwcGxlLmNvbT4KIAogICAgICAgICBFV1Mgc2hvdWxkIGNvcnJlY3RseSBpZGVudGlmeSB0
aGUgT1MgZm9yIEJpZyBTdXIgZG90IHJlbGVhc2VzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQppbmRleCBj
MzEyYTlmZjgxODg1ZTY5NTIwNTRiNjZhNTI3MjJiOGM5MjZjMzQ2Li43YmJlODcyOGMxNTNhMGY0
NGNjNmEwN2I1N2MyZmViZjg5MDZlMGIzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0KQEAgLTM4LDE3
ICszOCwyMCBAQCBzdGF0aWMgYm9vbCBzaG91bGRHcmFudFBlcm1pc3Npb25SZXF1ZXN0ID0gdHJ1
ZTsKIHN0YXRpYyBib29sIHBlcm1pc3Npb25SZXF1ZXN0ZWQgPSBmYWxzZTsKIHN0YXRpYyBib29s
IHJlY2VpdmVkU2NyaXB0TWVzc2FnZTsKIHN0YXRpYyBib29sIGRpZEZpbmlzaE5hdmlnYXRpb247
CitzdGF0aWMgYm9vbCBjYXB0dXJlU3RhdGVEaWRDaGFuZ2U7CitzdGF0aWMgYm9vbCBpc0NhcHR1
cmluZzsKIHN0YXRpYyBSZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2Fn
ZTsKIHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJWaWV3PiBjcmVhdGVkV2ViVmlldzsKIAotQGludGVy
ZmFjZSBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRlIDogTlNPYmplY3Q8V0tV
SURlbGVnYXRlUHJpdmF0ZT4KK0BpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRl
IDogTlNPYmplY3Q8V0tVSURlbGVnYXRlUHJpdmF0ZT4KIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkZvck9yaWdp
bjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylk
ZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOwog
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVV
UkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9u
SGFuZGxlcjsKIC0gKFdLV2ViVmlldyAqKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY3Jl
YXRlV2ViVmlld1dpdGhDb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29u
ZmlndXJhdGlvbiBmb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZp
Z2F0aW9uQWN0aW9uIHdpbmRvd0ZlYXR1cmVzOihXS1dpbmRvd0ZlYXR1cmVzICopd2luZG93RmVh
dHVyZXM7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVy
ZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZTsKIEBlbmQKIAotQGlt
cGxlbWVudGF0aW9uIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblVJRGVsZWdhdGUKK0BpbXBs
ZW1lbnRhdGlvbiBTcGVlY2hSZWNvZ25pdGlvblVJRGVsZWdhdGUKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkZv
ck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgogewogICAgIHBlcm1pc3Npb25SZXF1ZXN0ZWQgPSB0
cnVlOwpAQCAtNzAsNiArNzMsMTIgQEAgc3RhdGljIFJldGFpblB0cjxXS1dlYlZpZXc+IGNyZWF0
ZWRXZWJWaWV3OwogICAgIGNyZWF0ZWRXZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICByZXR1cm4gY3JlYXRlZFdlYlZpZXcuZ2V0KCk7CiB9CisK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVE
aWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlCit7CisgICAgaXNDYXB0dXJpbmcg
PSBzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmU7CisgICAgY2Fw
dHVyZVN0YXRlRGlkQ2hhbmdlID0gdHJ1ZTsKK30KIEBlbmQKIAogQGludGVyZmFjZSBTcGVlY2hS
ZWNvZ25pdGlvbk1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRs
ZXI+CkBAIC0xMTEsNyArMTIwLDcgQEAgVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvblVz
ZXJQZXJtaXNzaW9uUGVyc2lzdGVuY2UpCiAgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2
aWNlc0VuYWJsZWQgPSBZRVM7CiAgICAgcHJlZmVyZW5jZXMuX3NwZWVjaFJlY29nbml0aW9uRW5h
YmxlZCA9IFlFUzsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCld
OwogCiAgICAgc2hvdWxkR3JhbnRQZXJtaXNzaW9uUmVxdWVzdCA9IGZhbHNlOwpAQCAtMTU0LDcg
KzE2Myw3IEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNoUmVjb2duaXRpb25FcnJvcldoZW5TdGFydGlu
Z0F1ZGlvQ2FwdHVyZU9uRGlmZmVyZW50UGFnZSkKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1
cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fc3BlZWNoUmVjb2duaXRp
b25FbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1Nl
Y3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvblVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwogICAgIGF1dG8gZmlyc3RXZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgW2ZpcnN0V2ViVmlldyBzZXRVSURlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBhdXRvIHNlY29uZFdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDEwMCwgMCwgMTAw
LCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwpAQCAtMjA2LDcgKzIx
NSw3IEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNoUmVjb2duaXRpb25QYWdlQmVjb21lc0ludmlzaWJs
ZSkKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAg
ICBwcmVmZXJlbmNlcy5fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gWUVTOwogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dl
YlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKICAgICAvLyBQYWdlIGlzIHZp
c2libGUuCkBAIC0yNDEsNyArMjUwLDcgQEAgVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlv
blBhZ2VJc0Rlc3Ryb3llZCkKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5h
YmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0g
WUVTOwogICAgIHByZWZlcmVuY2VzLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2Fs
bHkgPSBZRVM7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25VSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlvblVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAg
ICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlvbk5h
dmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIHNob3VsZEdyYW50UGVybWlzc2lv
blJlcXVlc3QgPSB0cnVlOwogICAgIGNyZWF0ZWRXZWJWaWV3ID0gbnVsbHB0cjsKQEAgLTI2OCw2
ICsyNzcsMzEgQEAgVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvblBhZ2VJc0Rlc3Ryb3ll
ZCkKICAgICBFWFBFQ1RfVFJVRSghIWNyZWF0ZWRXZWJWaWV3KTsKIH0KIAorVEVTVChXZWJLaXQy
LCBTcGVlY2hSZWNvZ25pdGlvbk1lZGlhQ2FwdHVyZVN0YXRlQ2hhbmdlKQoreworICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uTWVz
c2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6
QCJ0ZXN0SGFuZGxlciJdOworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQg
PSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX3NwZWVjaFJlY29nbml0aW9uRW5hYmxlZCA9IFlFUzsK
KyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIHNob3VsZEdyYW50UGVybWlzc2lvblJlcXVlc3QgPSB0
cnVlOworCisgICAgY2FwdHVyZVN0YXRlRGlkQ2hhbmdlID0gZmFsc2U7CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic3BlZWNocmVjb2duaXRpb24tYmFzaWMi
XTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic3RhcnQoKSJd
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY2FwdHVyZVN0YXRlRGlkQ2hhbmdlKTsK
KyAgICBFWFBFQ1RfVFJVRShpc0NhcHR1cmluZyk7CisKKyAgICBjYXB0dXJlU3RhdGVEaWRDaGFu
Z2UgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
c3RvcCgpIl07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjYXB0dXJlU3RhdGVEaWRD
aGFuZ2UpOworICAgIEVYUEVDVF9GQUxTRShpc0NhcHR1cmluZyk7Cit9CisKICNlbmRpZgogCiB9
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417882</attachid>
            <date>2021-01-19 09:48:32 -0800</date>
            <delta_ts>2021-01-19 19:37:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220667-20210119094831.patch</filename>
            <type>text/plain</type>
            <size>18811</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFhZjJjNDg5YWQ2YmMw
MzI3M2E3NzU2Y2VhODQ5OGM3MDQ1YzEzZC4uYjZlOTJjM2E0YThhN2NlMmUyZGQxMmVjNTdjYzZh
ZjYwZTA1NjMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAxLTE5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgVXBkYXRlIG1lZGlhIHN0YXRl
IGZvciBhY3RpdmUgc3BlZWNoIHJlY29nbml0aW9uIGFzIGl0IHVzZXMgYXVkaW8gY2FwdHVyZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gbWFrZSBz
dXJlIHRoZSBtZWRpYSBjYXB0dXJlIHN0YXRlIGlzIGNvcnJlY3RseSBzZW50IHRvIGNsaWVudC4K
KworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Mi5TcGVlY2hSZWNvZ25pdGlvbk1lZGlhQ2FwdHVy
ZVN0YXRlQ2hhbmdlCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25p
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1
ZGlvKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0
QWN0aXZlU3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVw
ZGF0ZUlzUGxheWluZ01lZGlhKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAg
KiBwYWdlL0R1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oOgorCiAyMDIxLTAxLTE4ICBB
bmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBsZSBN
YWlsIEFYLCBWb2ljZU92ZXI6IFdoZW4gY29tcG9zaW5nIGEgbmV3IGVtYWlsIG1lc3NhZ2UsIG1v
dmluZyBWTyBmb2N1cyB0byB0aGUgbWVzc2FnZSBib2R5IGZpZWxkIGRvZXMgbm90IGJyaW5nIGtl
eWJvYXJkIGZvY3VzIGFsb25nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNDZjOWVjYTc5OWRiN2UxYjIzNTlkOWUw
ZmNhYzU2MjVmOTBkZDYyLi4yOWRmZTY4MmI5NmM1MDdlNmFkYjlkYjA1ODljMmE4ZTQ0ZThiNGMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAxLTE5ICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgVXBkYXRlIG1lZGlhIHN0YXRlIGZvciBhY3RpdmUg
c3BlZWNoIHJlY29nbml0aW9uIGFzIGl0IHVzZXMgYXVkaW8gY2FwdHVyZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6dW5yZWdpc3RlckNsaWVudCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uaDoKKwogMjAyMS0wMS0xOCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJv
QGdub21lLm9yZz4KIAogICAgICAgICBbR1RLXSBNdWx0aWxpYiBjb25mbGljdHMgaW4gZ2lyIGZp
bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbi5jcHAKaW5kZXggMWQ0NDQ3M2ZkYWI5ZGFlNmE1OGNjYmUxYjVlNDYwM2U4MTRiOWExNy4u
MmM5N2ZmOGZjZTg5MGY0MzA3NjNlOTg0YjkyZDlhZWY3NGYzY2IxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcApAQCAtNzAs
NyArNzAsOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRSZWNv
Z25pdGlvbigpCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBVbmtub3duRXJyb3IsICJSZWNvZ25pdGlvbiBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgY29u
bmVjdGlvbiJfcyB9OwogCi0gICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4o
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBBU1NFUlQoY29udGV4dCk7CisgICAgYXV0byYgZG9jdW1l
bnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpOwogICAgIG1fY29ubmVjdGlvbi0+c3Rh
cnQoaWRlbnRpZmllcigpLCBtX2xhbmcsIG1fY29udGludW91cywgbV9pbnRlcmltUmVzdWx0cywg
bV9tYXhBbHRlcm5hdGl2ZXMsIENsaWVudE9yaWdpbiB7IGRvY3VtZW50LnRvcE9yaWdpbigpLmRh
dGEoKSwgZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkgfSk7CiAgICAgbV9zdGF0ZSA9
IFN0YXRlOjpTdGFydGluZzsKICAgICByZXR1cm4geyB9OwpAQCAtOTksNiArMTAxLDE1IEBAIGNv
bnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
ICAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0aW9uIjsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6c3RvcCgpCit7CisgICAgYWJvcnRSZWNvZ25pdGlvbigpOworICAgIG1fY29ubmVjdGlv
bi0+dW5yZWdpc3RlckNsaWVudCgqdGhpcyk7CisKKyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBkb2N1bWVudC5z
ZXRBY3RpdmVTcGVlY2hSZWNvZ25pdGlvbihudWxscHRyKTsKK30KKwogdm9pZCBTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnQoKQogewogICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpTdGFydGlu
ZykKQEAgLTEwOSw2ICsxMjAsOSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCgp
CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKQogewor
ICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpOworICAgIGRvY3VtZW50LnNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKHRoaXMp
OworCiAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVl
Y2gsIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvc3RhcnRFdmVudCwgRXZlbnQ6OkNh
bkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiB9CiAKQEAgLTEzNCw2ICsx
NDgsOSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQoKQog
CiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQogeworICAg
IGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOworICAgIGRvY3VtZW50LnNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKG51bGxwdHIp
OworCiAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVl
Y2gsIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5kRXZlbnQsIEV2ZW50OjpDYW5C
dWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAppbmRleCAyYThkNTlk
MjM0NTAyOWE3ODdlZjU3YjhhNGEyMjk5MTc4YTkyNjE2Li4yNmQ5ZGVhNmNhZGQ3ZGFmOTliNGU3
ZTY3YTg3ODI5NTc4YzE1YzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKQEAgLTg1LDggKzg1LDkgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZEVuZCgpIGZpbmFsOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgY29uc3Qg
Y2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0OworICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbik7CisgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAKICAgICAvLyBFdmVudFRhcmdl
dAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaAppbmRleCA2OWVlYmMyOTNkNWI3ZGUxZTM4Y2Vl
YWQyYTNlZTM4ZjAwZDFjYTUyLi4wNjkyNmMzYzMwMDA2YzJiYTg3M2I4NmU5MTMxMTZmNDdlMTZj
OTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMzcsNiArMzcsNyBAQCBjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3RpbwogcHVibGljOgogICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbigpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckNsaWVudChTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0
ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVz
dWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBDbGllbnRPcmlnaW4mJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllcikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
NDViNTMxZmYxNjJiYzViMmU1YzQ3OWYzZTU0YWNlNjZmNTRlYzc2NS4uYWIwM2I3ZTBlZTBjMjQ3
ZjY5MjAyYWVmYThiZTJjNTlhNWZjNGQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0y
MDgsNiArMjA4LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nQ2Fs
bGJhY2suaCIKICNpbmNsdWRlICJTdHlsZUFkanVzdGVyLmgiCkBAIC00MjUzLDYgKzQyNTQsMTUg
QEAgdm9pZCBEb2N1bWVudDo6cmVtb3ZlQXVkaW9Qcm9kdWNlcihNZWRpYVByb2R1Y2VyJiBhdWRp
b1Byb2R1Y2VyKQogICAgIHVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CiB9CiAKK3ZvaWQgRG9jdW1l
bnQ6OnNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKFNwZWVjaFJlY29nbml0aW9uKiBzcGVlY2hS
ZWNvZ25pdGlvbikKK3sKKyAgICBpZiAobV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbiA9PSBzcGVl
Y2hSZWNvZ25pdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9hY3RpdmVTcGVlY2hSZWNv
Z25pdGlvbiA9IG1ha2VXZWFrUHRyKHNwZWVjaFJlY29nbml0aW9uKTsKKyAgICB1cGRhdGVJc1Bs
YXlpbmdNZWRpYSgpOworfQorCiB2b2lkIERvY3VtZW50Ojpub3RlVXNlckludGVyYWN0aW9uV2l0
aE1lZGlhRWxlbWVudCgpCiB7CiAgICAgaWYgKG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFF
bGVtZW50KQpAQCAtNDI3NCw2ICs0Mjg0LDggQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSXNQbGF5
aW5nTWVkaWEodWludDY0X3Qgc291cmNlRWxlbWVudElEKQogCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICBzdGF0ZSB8PSBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoKnRoaXMp
OworICAgIGlmIChtX2FjdGl2ZVNwZWVjaFJlY29nbml0aW9uKQorICAgICAgICBzdGF0ZSB8PSBN
ZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAjZW5kaWYKIAogICAg
IGlmIChtX3VzZXJIYXNJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggZDk1N2JmOTc0MjZlODI4MmI3OGQ2YmU2ZWQ3NmU3NDEyMzcyNjg3NS4uNGExMTk0
NTE0NTkyOGEyODhmMzU1MDAzNzY2MmIyZmYxY2UwZTk0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
QEAgLTIwOCw2ICsyMDgsNyBAQCBjbGFzcyBTZWxlY3RvclF1ZXJ5OwogY2xhc3MgU2VsZWN0b3JR
dWVyeUNhY2hlOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2V0dGluZ3M7
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbjsKIGNsYXNzIFN0cmluZ0NhbGxiYWNrOwogY2xhc3Mg
U3R5bGVTaGVldDsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKQEAgLTEzODEsNiArMTM4Miw3
IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQXVkaW9Qcm9kdWNlcihN
ZWRpYVByb2R1Y2VyJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBdWRpb1Byb2R1
Y2VyKE1lZGlhUHJvZHVjZXImKTsKKyAgICB2b2lkIHNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9u
KFNwZWVjaFJlY29nbml0aW9uKik7CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KICAgICB2b2lkIG5v
dGVVc2VySW50ZXJhY3Rpb25XaXRoTWVkaWFFbGVtZW50KCk7CiAgICAgYm9vbCBpc0NhcHR1cmlu
ZygpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0
ZSk7IH0KQEAgLTE5NzEsNiArMTk3Myw3IEBAIHByaXZhdGU6CiAgICAgUmVmPENTU0ZvbnRTZWxl
Y3Rvcj4gbV9mb250U2VsZWN0b3I7CiAKICAgICBXZWFrSGFzaFNldDxNZWRpYVByb2R1Y2VyPiBt
X2F1ZGlvUHJvZHVjZXJzOworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb24+IG1fYWN0aXZl
U3BlZWNoUmVjb2duaXRpb247CiAKICAgICBIYXNoU2V0PFNoYWRvd1Jvb3QqPiBtX2luRG9jdW1l
bnRTaGFkb3dSb290czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EdW1teVNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHVtbXlTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKaW5kZXggMjQwYWEzZDQ4NGE5NzNiNDQxMTJhZWY2MWU4
ZWFhYTg0N2I1OGQxOC4uMzE0OTQ4ZWEyYzU2NTQwNzk1MTRlMDc2NzkxYTY1MzE0MmU2Nzk4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EdW1teVNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0R1bW15U3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlci5oCkBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkpOwogICAgICAg
ICB9CiAgICAgICAgIHZvaWQgcmVnaXN0ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50JikgZmluYWwgeyB9CisgICAgICAgIHZvaWQgdW5yZWdpc3RlckNsaWVudChTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQmKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBz
dGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmLCBib29sLCBib29sLCB1aW50NjRfdCwgQ2xpZW50T3JpZ2luJiYpIGZpbmFsIHsgfQog
ICAgICAgICB2b2lkIHN0b3AoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllcikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCmluZGV4IGUwZDJhNTk4NTU1Yjk4OTc4NTg1OGFi
NmM2NGE3NTRhZmRhMTEwOTMuLmMzY2M4Yjk5Mzg5MTMzOTIyOWE0MDk1NzVmM2EzNDc0OTNkYTBm
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3Bw
CkBAIC02Myw2ICs2MywxMSBAQCB2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
cmVnaXN0ZXJDbGllbnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbwogICAgIG1fY2xpZW50
TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihjbGllbnQpKTsKIH0KIAor
dm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAg
bV9jbGllbnRNYXAucmVtb3ZlKGNsaWVudC5pZGVudGlmaWVyKCkpOworfQorCiB2b2lkIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3Qg
bWF4QWx0ZXJuYXRpdmVzLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4pCiB7
CiAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlN0YXJ0KGNsaWVu
dElkZW50aWZpZXIsIGxhbmcsIGNvbnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5h
dGl2ZXMsIFdURk1vdmUoY2xpZW50T3JpZ2luKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oCmluZGV4IDQ0M2IwNGYxY2NhYWIwYTBlNmFhNTM4MzFlOTg1
ZDEwYTZhNTMzMjguLjU5NjZlM2ZkNzczMDUyYzM5MzI3MTQ0MGVkMTM3YjAxMDg1N2VlMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKQEAgLTU2LDYg
KzU2LDcgQEAgcHJpdmF0ZToKICAgICB+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7
CiAKICAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgdW5yZWdpc3RlckNsaWVudChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQmKSBmaW5hbDsKICAgICB2b2lkIGRp
ZFJlY2VpdmVVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUmJikgZmluYWw7
CiAgICAgdm9pZCBpbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZTEyNjRmODU2OTQ4NmQyZTZkMjgwZTNiNDQ4NDYzZmU2MmMzNmM5
OS4uOTRkZjZjMDg5ZjNiYjk4NzU3MWFhNWE1ZGM4ZGU5YzBiNGQ2ZjU1YSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDIxLTAxLTE5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgVXBk
YXRlIG1lZGlhIHN0YXRlIGZvciBhY3RpdmUgc3BlZWNoIHJlY29nbml0aW9uIGFzIGl0IHVzZXMg
YXVkaW8gY2FwdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIwNjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9u
Lm1tOgorICAgICAgICAoLVtTcGVlY2hSZWNvZ25pdGlvblVJRGVsZWdhdGUgX3dlYlZpZXc6bWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKC1bU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uVUlEZWxlZ2F0ZSBfd2Vi
VmlldzpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOmRlY2lzaW9u
SGFuZGxlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjpk
ZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1NwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvblVJRGVsZWdhdGUgX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
VVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRlIHdl
YlZpZXc6Y3JlYXRlV2ViVmlld1dpdGhDb25maWd1cmF0aW9uOmZvck5hdmlnYXRpb25BY3Rpb246
d2luZG93RmVhdHVyZXM6XSk6IERlbGV0ZWQuCisKIDIwMjEtMDEtMTggIEZ1amlpIEhpcm9ub3Jp
ICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbl1bRHVtcFJlbmRlclRy
ZWVdIEFTU0VSVCghbV9jaGFubmVsKSBmYWlsZWQgaW4gV2ViU29ja2V0Ojpjb250ZXh0RGVzdHJv
eWVkCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nw
ZWVjaFJlY29nbml0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TcGVlY2hSZWNvZ25pdGlvbi5tbQppbmRleCBjMzEyYTlmZjgxODg1ZTY5NTIwNTRiNjZhNTI3
MjJiOGM5MjZjMzQ2Li43YmJlODcyOGMxNTNhMGY0NGNjNmEwN2I1N2MyZmViZjg5MDZlMGIzIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJl
Y29nbml0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U3BlZWNoUmVjb2duaXRpb24ubW0KQEAgLTM4LDE3ICszOCwyMCBAQCBzdGF0aWMgYm9vbCBzaG91
bGRHcmFudFBlcm1pc3Npb25SZXF1ZXN0ID0gdHJ1ZTsKIHN0YXRpYyBib29sIHBlcm1pc3Npb25S
ZXF1ZXN0ZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZTsKIHN0
YXRpYyBib29sIGRpZEZpbmlzaE5hdmlnYXRpb247CitzdGF0aWMgYm9vbCBjYXB0dXJlU3RhdGVE
aWRDaGFuZ2U7CitzdGF0aWMgYm9vbCBpc0NhcHR1cmluZzsKIHN0YXRpYyBSZXRhaW5QdHI8V0tT
Y3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsKIHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJW
aWV3PiBjcmVhdGVkV2ViVmlldzsKIAotQGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25VSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlUHJpdmF0ZT4KK0BpbnRlcmZh
Y2UgU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlUHJp
dmF0ZT4KIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdp
biBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhv
cml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1h
aW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRl
Z2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpz
YWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKFdLV2ViVmlldyAqKXdl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY3JlYXRlV2ViVmlld1dpdGhDb25maWd1cmF0aW9u
OihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBmb3JOYXZpZ2F0aW9uQWN0
aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHdpbmRvd0ZlYXR1cmVz
OihXS1dpbmRvd0ZlYXR1cmVzICopd2luZG93RmVhdHVyZXM7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNh
cHR1cmVTdGF0ZSlzdGF0ZTsKIEBlbmQKIAotQGltcGxlbWVudGF0aW9uIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvblVJRGVsZWdhdGUKK0BpbXBsZW1lbnRhdGlvbiBTcGVlY2hSZWNvZ25pdGlv
blVJRGVsZWdhdGUKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAq
KW9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgog
ewogICAgIHBlcm1pc3Npb25SZXF1ZXN0ZWQgPSB0cnVlOwpAQCAtNzAsNiArNzMsMTIgQEAgc3Rh
dGljIFJldGFpblB0cjxXS1dlYlZpZXc+IGNyZWF0ZWRXZWJWaWV3OwogICAgIGNyZWF0ZWRXZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICByZXR1
cm4gY3JlYXRlZFdlYlZpZXcuZ2V0KCk7CiB9CisKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0
YXRlKXN0YXRlCit7CisgICAgaXNDYXB0dXJpbmcgPSBzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVT
dGF0ZUFjdGl2ZU1pY3JvcGhvbmU7CisgICAgY2FwdHVyZVN0YXRlRGlkQ2hhbmdlID0gdHJ1ZTsK
K30KIEBlbmQKIAogQGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbk1lc3NhZ2VIYW5kbGVyIDog
TlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CkBAIC0xMTEsNyArMTIwLDcgQEAgVEVT
VChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvblVzZXJQZXJtaXNzaW9uUGVyc2lzdGVuY2UpCiAg
ICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CiAgICAgcHJl
ZmVyZW5jZXMuX3NwZWVjaFJlY29nbml0aW9uRW5hYmxlZCA9IFlFUzsKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
LSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1NwZWVjaFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCiAgICAgc2hvdWxkR3JhbnRQZXJtaXNz
aW9uUmVxdWVzdCA9IGZhbHNlOwpAQCAtMTU0LDcgKzE2Myw3IEBAIFRFU1QoV2ViS2l0MiwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvcldoZW5TdGFydGluZ0F1ZGlvQ2FwdHVyZU9uRGlmZmVyZW50UGFn
ZSkKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAg
ICBwcmVmZXJlbmNlcy5fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gWUVTOwogICAgIHByZWZl
cmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVj
aFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gZmlyc3RXZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
TWFrZSgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7
CiAgICAgW2ZpcnN0V2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBh
dXRvIHNlY29uZFdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDEwMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKV0pOwpAQCAtMjA2LDcgKzIxNSw3IEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNo
UmVjb2duaXRpb25QYWdlQmVjb21lc0ludmlzaWJsZSkKICAgICBwcmVmZXJlbmNlcy5fbW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fc3BlZWNoUmVjb2du
aXRpb25FbmFibGVkID0gWUVTOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25VSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CiAKICAgICAvLyBQYWdlIGlzIHZpc2libGUuCkBAIC0yNDEsNyArMjUwLDcgQEAg
VEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvblBhZ2VJc0Rlc3Ryb3llZCkKICAgICBwcmVm
ZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNl
cy5fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVuY2VzLmphdmFT
Y3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7Ci0gICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlv
blVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwogICAgIHNob3VsZEdyYW50UGVybWlzc2lvblJlcXVlc3QgPSB0cnVlOwogICAgIGNyZWF0
ZWRXZWJWaWV3ID0gbnVsbHB0cjsKQEAgLTI2OCw2ICsyNzcsMzEgQEAgVEVTVChXZWJLaXQyLCBT
cGVlY2hSZWNvZ25pdGlvblBhZ2VJc0Rlc3Ryb3llZCkKICAgICBFWFBFQ1RfVFJVRSghIWNyZWF0
ZWRXZWJWaWV3KTsKIH0KIAorVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvbk1lZGlhQ2Fw
dHVyZVN0YXRlQ2hhbmdlKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBoYW5kbGVyID0g
YWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworICAgIGF1dG8g
cHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5j
ZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX3Nw
ZWVjaFJlY29nbml0aW9uRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1NwZWVjaFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIHNo
b3VsZEdyYW50UGVybWlzc2lvblJlcXVlc3QgPSB0cnVlOworCisgICAgY2FwdHVyZVN0YXRlRGlk
Q2hhbmdlID0gZmFsc2U7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5h
bWVkOkAic3BlZWNocmVjb2duaXRpb24tYmFzaWMiXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAic3RhcnQoKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmY2FwdHVyZVN0YXRlRGlkQ2hhbmdlKTsKKyAgICBFWFBFQ1RfVFJVRShpc0NhcHR1cmlu
Zyk7CisKKyAgICBjYXB0dXJlU3RhdGVEaWRDaGFuZ2UgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic3RvcCgpIl07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZjYXB0dXJlU3RhdGVEaWRDaGFuZ2UpOworICAgIEVYUEVDVF9GQUxTRShp
c0NhcHR1cmluZyk7Cit9CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417939</attachid>
            <date>2021-01-19 19:37:30 -0800</date>
            <delta_ts>2021-01-19 20:33:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-220667-20210119193730.patch</filename>
            <type>text/plain</type>
            <size>18241</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFhZjJjNDg5YWQ2YmMw
MzI3M2E3NzU2Y2VhODQ5OGM3MDQ1YzEzZC4uNDgyMTljZDVmYTI3ZjFkN2RkYTZhNGEzMDgyZmM1
Nzk4OWVhYmUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAxLTE5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgVXBkYXRlIG1lZGlhIHN0YXRl
IGZvciBhY3RpdmUgc3BlZWNoIHJlY29nbml0aW9uIGFzIGl0IHVzZXMgYXVkaW8gY2FwdHVyZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBUbyBtYWtlIHN1
cmUgdGhlIG1lZGlhIGNhcHR1cmUgc3RhdGUgaXMgY29ycmVjdGx5IHNlbnQgdG8gY2xpZW50Lgor
CisgICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQyLlNwZWVjaFJlY29nbml0aW9uTWVkaWFDYXB0dXJl
U3RhdGVDaGFuZ2UKKworICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVk
aW8pOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmg6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6CisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRB
Y3RpdmVTcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBk
YXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IHBhZ2UvRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6CisKIDIwMjEtMDEtMTggIEFu
ZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEFwcGxlIE1h
aWwgQVgsIFZvaWNlT3ZlcjogV2hlbiBjb21wb3NpbmcgYSBuZXcgZW1haWwgbWVzc2FnZSwgbW92
aW5nIFZPIGZvY3VzIHRvIHRoZSBtZXNzYWdlIGJvZHkgZmllbGQgZG9lcyBub3QgYnJpbmcga2V5
Ym9hcmQgZm9jdXMgYWxvbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0NmM5ZWNhNzk5ZGI3ZTFiMjM1OWQ5ZTBm
Y2FjNTYyNWY5MGRkNjIuLmI2MTA0OGIzMzcxZTI5NjFjYzA0ZjJkMTZlZGZmMmIxZmFhNGZhMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDEtMTkgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBlLmNvbT4KKworICAgICAgICBVcGRhdGUgbWVkaWEgc3RhdGUgZm9yIGFjdGl2ZSBz
cGVlY2ggcmVjb2duaXRpb24gYXMgaXQgdXNlcyBhdWRpbyBjYXB0dXJlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA2NjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmg6CisKIDIwMjEtMDEtMTggIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bn
bm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10gTXVsdGlsaWIgY29uZmxpY3RzIGluIGdpciBmaWxl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b24uY3BwCmluZGV4IDFkNDQ0NzNmZGFiOWRhZTZhNThjY2JlMWI1ZTQ2MDNlODE0YjlhMTcuLjAx
OGY5N2EzNzliNmI5YWE3OTEyOTcyOWNkYzY5YzZjYmFkZjQ3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKQEAgLTk5LDYg
Kzk5LDE1IEBAIGNvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QKICAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0aW9uIjsKIH0KIAordm9pZCBT
cGVlY2hSZWNvZ25pdGlvbjo6c3RvcCgpCit7CisgICAgYWJvcnRSZWNvZ25pdGlvbigpOworICAg
IG1fY29ubmVjdGlvbi0+dW5yZWdpc3RlckNsaWVudCgqdGhpcyk7CisKKyAgICBhdXRvJiBkb2N1
bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAg
ICBkb2N1bWVudC5zZXRBY3RpdmVTcGVlY2hSZWNvZ25pdGlvbihudWxscHRyKTsKK30KKwogdm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnQoKQogewogICAgIGlmIChtX3N0YXRlID09IFN0
YXRlOjpTdGFydGluZykKQEAgLTEwOSw2ICsxMTgsOSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpkaWRTdGFydCgpCiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5n
QXVkaW8oKQogeworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIGRvY3VtZW50LnNldEFjdGl2ZVNwZWVjaFJlY29n
bml0aW9uKHRoaXMpOworCiAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNr
U291cmNlOjpTcGVlY2gsIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvc3RhcnRFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiB9CiAK
QEAgLTEzNCw2ICsxNDYsOSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVy
aW5nU291bmQoKQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVk
aW8oKQogeworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOworICAgIGRvY3VtZW50LnNldEFjdGl2ZVNwZWVjaFJlY29nbml0
aW9uKG51bGxwdHIpOworCiAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNr
U291cmNlOjpTcGVlY2gsIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5kRXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaApp
bmRleCAyYThkNTlkMjM0NTAyOWE3ODdlZjU3YjhhNGEyMjk5MTc4YTkyNjE2Li4zNzkyMzJlYmM4
ZTRmODAxNGFhYjkyMWRjODQyNTQ5ZWFhNTE3MGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKQEAgLTg1LDggKzg1LDkgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZEVuZCgpIGZpbmFsOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0
Ci0gICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0OwotICAgIHZvaWQg
c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3Bl
bnNpb24pIGZpbmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogCiAgICAgLy8gRXZlbnRUYXJn
ZXQKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKaW5kZXggNjllZWJjMjkzZDViN2RlMWUzOGNl
ZWFkMmEzZWUzOGYwMGQxY2E1Mi4uMDY5MjZjM2MzMDAwNmMyYmE4NzNiODZlOTEzMTE2ZjQ3ZTE2
Yzk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKQEAgLTM3LDYgKzM3LDcgQEAgY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW8KIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24oKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJDbGllbnQoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lz
dGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJl
c3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcywgQ2xpZW50T3JpZ2luJiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IDQ1YjUzMWZmMTYyYmM1YjJlNWM0NzlmM2U1NGFjZTY2ZjU0ZWM3NjUuLmFiMDNiN2UwZWUwYzI0
N2Y2OTIwMmFlZmE4YmUyYzU5YTVmYzRkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
MjA4LDYgKzIwOCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dS
b290LmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbi5oIgogI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgogI2luY2x1ZGUgIlN0cmluZ0Nh
bGxiYWNrLmgiCiAjaW5jbHVkZSAiU3R5bGVBZGp1c3Rlci5oIgpAQCAtNDI1Myw2ICs0MjU0LDE1
IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZUF1ZGlvUHJvZHVjZXIoTWVkaWFQcm9kdWNlciYgYXVk
aW9Qcm9kdWNlcikKICAgICB1cGRhdGVJc1BsYXlpbmdNZWRpYSgpOwogfQogCit2b2lkIERvY3Vt
ZW50OjpzZXRBY3RpdmVTcGVlY2hSZWNvZ25pdGlvbihTcGVlY2hSZWNvZ25pdGlvbiogc3BlZWNo
UmVjb2duaXRpb24pCit7CisgICAgaWYgKG1fYWN0aXZlU3BlZWNoUmVjb2duaXRpb24gPT0gc3Bl
ZWNoUmVjb2duaXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fYWN0aXZlU3BlZWNoUmVj
b2duaXRpb24gPSBtYWtlV2Vha1B0cihzcGVlY2hSZWNvZ25pdGlvbik7CisgICAgdXBkYXRlSXNQ
bGF5aW5nTWVkaWEoKTsKK30KKwogdm9pZCBEb2N1bWVudDo6bm90ZVVzZXJJbnRlcmFjdGlvbldp
dGhNZWRpYUVsZW1lbnQoKQogewogICAgIGlmIChtX3VzZXJIYXNJbnRlcmFjdGVkV2l0aE1lZGlh
RWxlbWVudCkKQEAgLTQyNzQsNiArNDI4NCw4IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUlzUGxh
eWluZ01lZGlhKHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgc3RhdGUgfD0gTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKCp0aGlz
KTsKKyAgICBpZiAobV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbikKKyAgICAgICAgc3RhdGUgfD0g
TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOwogI2VuZGlmCiAKICAg
ICBpZiAobV91c2VySGFzSW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IGQ5NTdiZjk3NDI2ZTgyODJiNzhkNmJlNmVkNzZlNzQxMjM3MjY4NzUuLjRhMTE5
NDUxNDU5MjhhMjg4ZjM1NTAwMzc2NjJiMmZmMWNlMGU5NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC0yMDgsNiArMjA4LDcgQEAgY2xhc3MgU2VsZWN0b3JRdWVyeTsKIGNsYXNzIFNlbGVjdG9y
UXVlcnlDYWNoZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNldHRpbmdz
OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb247CiBjbGFzcyBTdHJpbmdDYWxsYmFjazsKIGNsYXNz
IFN0eWxlU2hlZXQ7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CkBAIC0xMzgxLDYgKzEzODIs
NyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZEF1ZGlvUHJvZHVjZXIo
TWVkaWFQcm9kdWNlciYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQXVkaW9Qcm9k
dWNlcihNZWRpYVByb2R1Y2VyJik7CisgICAgdm9pZCBzZXRBY3RpdmVTcGVlY2hSZWNvZ25pdGlv
bihTcGVlY2hSZWNvZ25pdGlvbiopOwogICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBtZWRpYVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlOyB9CiAgICAgdm9pZCBu
b3RlVXNlckludGVyYWN0aW9uV2l0aE1lZGlhRWxlbWVudCgpOwogICAgIGJvb2wgaXNDYXB0dXJp
bmcoKSBjb25zdCB7IHJldHVybiBNZWRpYVByb2R1Y2VyOjppc0NhcHR1cmluZyhtX21lZGlhU3Rh
dGUpOyB9CkBAIC0xOTcxLDYgKzE5NzMsNyBAQCBwcml2YXRlOgogICAgIFJlZjxDU1NGb250U2Vs
ZWN0b3I+IG1fZm9udFNlbGVjdG9yOwogCiAgICAgV2Vha0hhc2hTZXQ8TWVkaWFQcm9kdWNlcj4g
bV9hdWRpb1Byb2R1Y2VyczsKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uPiBtX2FjdGl2
ZVNwZWVjaFJlY29nbml0aW9uOwogCiAgICAgSGFzaFNldDxTaGFkb3dSb290Kj4gbV9pbkRvY3Vt
ZW50U2hhZG93Um9vdHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHVtbXlT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0R1bW15U3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCmluZGV4IDI0MGFhM2Q0ODRhOTczYjQ0MTEyYWVmNjFl
OGVhYWE4NDdiNThkMTguLjMxNDk0OGVhMmM1NjU0MDc5NTE0ZTA3Njc5MWE2NTMxNDJlNjc5OGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHVtbXlTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EdW1teVNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEdW1teVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpKTsKICAgICAg
ICAgfQogICAgICAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudCYpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIHVucmVnaXN0ZXJDbGllbnQoU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQg
c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiwgYm9vbCwgYm9vbCwgdWludDY0X3QsIENsaWVudE9yaWdpbiYmKSBmaW5hbCB7IH0K
ICAgICAgICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAppbmRleCBlMGQyYTU5ODU1NWI5ODk3ODU4NThh
YjZjNjRhNzU0YWZkYTExMDkzLi5jM2NjOGI5OTM4OTEzMzkyMjlhNDA5NTc1ZjNhMzQ3NDkzZGEw
ZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cApAQCAtNjMsNiArNjMsMTEgQEAgdm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ28KICAgICBtX2NsaWVu
dE1hcC5hZGQoY2xpZW50LmlkZW50aWZpZXIoKSwgbWFrZVdlYWtQdHIoY2xpZW50KSk7CiB9CiAK
K3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp1bnJlZ2lzdGVyQ2xpZW50KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYgY2xpZW50KQoreworICAg
IG1fY2xpZW50TWFwLnJlbW92ZShjbGllbnQuaWRlbnRpZmllcigpKTsKK30KKwogdm9pZCBXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90
IG1heEFsdGVybmF0aXZlcywgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luKQog
ewogICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTdGFydChjbGll
bnRJZGVudGlmaWVyLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJu
YXRpdmVzLCBXVEZNb3ZlKGNsaWVudE9yaWdpbikpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaAppbmRleCA0NDNiMDRmMWNjYWFiMGEwZTZhYTUzODMxZTk4
NWQxMGE2YTUzMzI4Li41OTY2ZTNmZDc3MzA1MmMzOTMyNzE0NDBlZDEzN2IwMTA4NTdlZTIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC01Niw2
ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgfldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigp
OwogCiAgICAgdm9pZCByZWdpc3RlckNsaWVudChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnQmKSBmaW5hbDsKKyAgICB2b2lkIHVucmVnaXN0ZXJDbGllbnQoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JikgZmluYWw7CiAgICAgdm9pZCBk
aWRSZWNlaXZlVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiYpIGZpbmFs
OwogICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGUxMjY0Zjg1Njk0ODZkMmU2ZDI4MGUzYjQ0ODQ2M2ZlNjJjMzZj
OTkuLjU1NjkxYWRiYTQ3ZjExZDA1Y2E0Y2U5YmJjZmIxNDljOTY5MWE0NzUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAyMS0wMS0xOSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGUuY29tPgorCisgICAgICAgIFVw
ZGF0ZSBtZWRpYSBzdGF0ZSBmb3IgYWN0aXZlIHNwZWVjaCByZWNvZ25pdGlvbiBhcyBpdCB1c2Vz
IGF1ZGlvIGNhcHR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMDY2NworCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9u
Lm1tOgorICAgICAgICAoLVtTcGVlY2hSZWNvZ25pdGlvblVJRGVsZWdhdGUgX3dlYlZpZXc6bWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKC1bU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uVUlEZWxlZ2F0ZSBfd2Vi
VmlldzpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOmRlY2lzaW9u
SGFuZGxlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjpk
ZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1NwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvblVJRGVsZWdhdGUgX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
VVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRlIHdl
YlZpZXc6Y3JlYXRlV2ViVmlld1dpdGhDb25maWd1cmF0aW9uOmZvck5hdmlnYXRpb25BY3Rpb246
d2luZG93RmVhdHVyZXM6XSk6IERlbGV0ZWQuCisKIDIwMjEtMDEtMTggIEZ1amlpIEhpcm9ub3Jp
ICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbl1bRHVtcFJlbmRlclRy
ZWVdIEFTU0VSVCghbV9jaGFubmVsKSBmYWlsZWQgaW4gV2ViU29ja2V0Ojpjb250ZXh0RGVzdHJv
eWVkCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nw
ZWVjaFJlY29nbml0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TcGVlY2hSZWNvZ25pdGlvbi5tbQppbmRleCBjMzEyYTlmZjgxODg1ZTY5NTIwNTRiNjZhNTI3
MjJiOGM5MjZjMzQ2Li43YmJlODcyOGMxNTNhMGY0NGNjNmEwN2I1N2MyZmViZjg5MDZlMGIzIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJl
Y29nbml0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U3BlZWNoUmVjb2duaXRpb24ubW0KQEAgLTM4LDE3ICszOCwyMCBAQCBzdGF0aWMgYm9vbCBzaG91
bGRHcmFudFBlcm1pc3Npb25SZXF1ZXN0ID0gdHJ1ZTsKIHN0YXRpYyBib29sIHBlcm1pc3Npb25S
ZXF1ZXN0ZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZTsKIHN0
YXRpYyBib29sIGRpZEZpbmlzaE5hdmlnYXRpb247CitzdGF0aWMgYm9vbCBjYXB0dXJlU3RhdGVE
aWRDaGFuZ2U7CitzdGF0aWMgYm9vbCBpc0NhcHR1cmluZzsKIHN0YXRpYyBSZXRhaW5QdHI8V0tT
Y3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsKIHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJW
aWV3PiBjcmVhdGVkV2ViVmlldzsKIAotQGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25VSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlUHJpdmF0ZT4KK0BpbnRlcmZh
Y2UgU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlUHJp
dmF0ZT4KIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdp
biBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhv
cml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1h
aW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRl
Z2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpz
YWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKIC0gKFdLV2ViVmlldyAqKXdl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY3JlYXRlV2ViVmlld1dpdGhDb25maWd1cmF0aW9u
OihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBmb3JOYXZpZ2F0aW9uQWN0
aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHdpbmRvd0ZlYXR1cmVz
OihXS1dpbmRvd0ZlYXR1cmVzICopd2luZG93RmVhdHVyZXM7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNh
cHR1cmVTdGF0ZSlzdGF0ZTsKIEBlbmQKIAotQGltcGxlbWVudGF0aW9uIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvblVJRGVsZWdhdGUKK0BpbXBsZW1lbnRhdGlvbiBTcGVlY2hSZWNvZ25pdGlv
blVJRGVsZWdhdGUKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAq
KW9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcgog
ewogICAgIHBlcm1pc3Npb25SZXF1ZXN0ZWQgPSB0cnVlOwpAQCAtNzAsNiArNzMsMTIgQEAgc3Rh
dGljIFJldGFpblB0cjxXS1dlYlZpZXc+IGNyZWF0ZWRXZWJWaWV3OwogICAgIGNyZWF0ZWRXZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICByZXR1
cm4gY3JlYXRlZFdlYlZpZXcuZ2V0KCk7CiB9CisKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0
YXRlKXN0YXRlCit7CisgICAgaXNDYXB0dXJpbmcgPSBzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVT
dGF0ZUFjdGl2ZU1pY3JvcGhvbmU7CisgICAgY2FwdHVyZVN0YXRlRGlkQ2hhbmdlID0gdHJ1ZTsK
K30KIEBlbmQKIAogQGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbk1lc3NhZ2VIYW5kbGVyIDog
TlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CkBAIC0xMTEsNyArMTIwLDcgQEAgVEVT
VChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvblVzZXJQZXJtaXNzaW9uUGVyc2lzdGVuY2UpCiAg
ICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CiAgICAgcHJl
ZmVyZW5jZXMuX3NwZWVjaFJlY29nbml0aW9uRW5hYmxlZCA9IFlFUzsKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
LSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1NwZWVjaFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCiAgICAgc2hvdWxkR3JhbnRQZXJtaXNz
aW9uUmVxdWVzdCA9IGZhbHNlOwpAQCAtMTU0LDcgKzE2Myw3IEBAIFRFU1QoV2ViS2l0MiwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvcldoZW5TdGFydGluZ0F1ZGlvQ2FwdHVyZU9uRGlmZmVyZW50UGFn
ZSkKICAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAg
ICBwcmVmZXJlbmNlcy5fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gWUVTOwogICAgIHByZWZl
cmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKLSAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NwZWVj
aFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gZmlyc3RXZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
TWFrZSgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7
CiAgICAgW2ZpcnN0V2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBh
dXRvIHNlY29uZFdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDEwMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKV0pOwpAQCAtMjA2LDcgKzIxNSw3IEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNo
UmVjb2duaXRpb25QYWdlQmVjb21lc0ludmlzaWJsZSkKICAgICBwcmVmZXJlbmNlcy5fbW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNlcy5fc3BlZWNoUmVjb2du
aXRpb25FbmFibGVkID0gWUVTOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25VSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CiAKICAgICAvLyBQYWdlIGlzIHZpc2libGUuCkBAIC0yNDEsNyArMjUwLDcgQEAg
VEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvblBhZ2VJc0Rlc3Ryb3llZCkKICAgICBwcmVm
ZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKICAgICBwcmVmZXJlbmNl
cy5fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gWUVTOwogICAgIHByZWZlcmVuY2VzLmphdmFT
Y3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7Ci0gICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlv
blVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tTcGVlY2hSZWNvZ25pdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwogICAgIHNob3VsZEdyYW50UGVybWlzc2lvblJlcXVlc3QgPSB0cnVlOwogICAgIGNyZWF0
ZWRXZWJWaWV3ID0gbnVsbHB0cjsKQEAgLTI2OCw2ICsyNzcsMzEgQEAgVEVTVChXZWJLaXQyLCBT
cGVlY2hSZWNvZ25pdGlvblBhZ2VJc0Rlc3Ryb3llZCkKICAgICBFWFBFQ1RfVFJVRSghIWNyZWF0
ZWRXZWJWaWV3KTsKIH0KIAorVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvbk1lZGlhQ2Fw
dHVyZVN0YXRlQ2hhbmdlKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBoYW5kbGVyID0g
YWRvcHROUyhbW1NwZWVjaFJlY29nbml0aW9uTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworICAgIGF1dG8g
cHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5j
ZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX3Nw
ZWVjaFJlY29nbml0aW9uRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1NwZWVjaFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIHNo
b3VsZEdyYW50UGVybWlzc2lvblJlcXVlc3QgPSB0cnVlOworCisgICAgY2FwdHVyZVN0YXRlRGlk
Q2hhbmdlID0gZmFsc2U7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5h
bWVkOkAic3BlZWNocmVjb2duaXRpb24tYmFzaWMiXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAic3RhcnQoKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmY2FwdHVyZVN0YXRlRGlkQ2hhbmdlKTsKKyAgICBFWFBFQ1RfVFJVRShpc0NhcHR1cmlu
Zyk7CisKKyAgICBjYXB0dXJlU3RhdGVEaWRDaGFuZ2UgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic3RvcCgpIl07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZjYXB0dXJlU3RhdGVEaWRDaGFuZ2UpOworICAgIEVYUEVDVF9GQUxTRShp
c0NhcHR1cmluZyk7Cit9CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>