<?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>226343</bug_id>
          
          <creation_ts>2021-05-27 10:16:14 -0700</creation_ts>
          <short_desc>Add stub implementation of CA separated portal bits for GraphicsLayer</short_desc>
          <delta_ts>2021-05-28 11:55:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1764386</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-27 10:16:14 -0700</bug_when>
    <thetext>Add stub implementation of CA seperated portal bits for GraphicsLayer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764387</commentid>
    <comment_count>1</comment_count>
      <attachid>429895</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-27 10:20:49 -0700</bug_when>
    <thetext>Created attachment 429895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764394</commentid>
    <comment_count>2</comment_count>
      <attachid>429895</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-27 10:27:45 -0700</bug_when>
    <thetext>Comment on attachment 429895
Patch

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

&gt; Source/WTF/ChangeLog:3
&gt; +        Add stub implementation of CA seperated portal bits for GraphicsLayer

separated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764408</commentid>
    <comment_count>3</comment_count>
      <attachid>429902</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-27 10:50:32 -0700</bug_when>
    <thetext>Created attachment 429902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764420</commentid>
    <comment_count>4</comment_count>
      <attachid>429902</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-27 11:15:48 -0700</bug_when>
    <thetext>Comment on attachment 429902
Patch

Seems OK. Not sure about the -is prefix on the getters, and would be good for smfr to peek.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764421</commentid>
    <comment_count>5</comment_count>
      <attachid>429902</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-27 11:17:05 -0700</bug_when>
    <thetext>Comment on attachment 429902
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Plumbs isSeparatedPortal and isDescendentOfSeparatedPortal bits through GraphicsLayer.

Plumbs

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:406
&gt; +    virtual void setIsDescendentOfSeparatedPortal(bool b) { m_isDescendentOfSeparatedPortal = b; }

Does this need to be exposed? We can compute this internally in GraphicsLayer while flushing.

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:744
&gt; +    bool m_isSeparatedPortal : 1;

There&apos;s some ambiguity here. Does m_isSeparatedPortal being true imply that m_isSeparated is also true?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764454</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-27 12:28:49 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #5)
&gt; Comment on attachment 429902 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429902&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Plumbs isSeparatedPortal and isDescendentOfSeparatedPortal bits through GraphicsLayer.
&gt; 
&gt; Plumbs
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsLayer.h:406
&gt; &gt; +    virtual void setIsDescendentOfSeparatedPortal(bool b) { m_isDescendentOfSeparatedPortal = b; }
&gt; 
&gt; Does this need to be exposed? We can compute this internally in
&gt; GraphicsLayer while flushing.

You are right, probably not.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsLayer.h:744
&gt; &gt; +    bool m_isSeparatedPortal : 1;
&gt; 
&gt; There&apos;s some ambiguity here. Does m_isSeparatedPortal being true imply that
&gt; m_isSeparated is also true?

It&apos;s currently meant only to be valid when m_isSeparated is true. I don&apos;t want to merge it into an enum yet though, as depending on where things go, this may become non-separated requiring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764500</commentid>
    <comment_count>7</comment_count>
      <attachid>429927</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-27 14:18:31 -0700</bug_when>
    <thetext>Created attachment 429927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764868</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-28 11:54:36 -0700</bug_when>
    <thetext>Committed r278217 (238256@main): &lt;https://commits.webkit.org/238256@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429927.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764869</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-28 11:55:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/78627003&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429895</attachid>
            <date>2021-05-27 10:20:49 -0700</date>
            <delta_ts>2021-05-27 10:50:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226343-20210527102048.patch</filename>
            <type>text/plain</type>
            <size>28937</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzgxNjQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA1LTI3ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBDQSBzZXBl
cmF0ZWQgcG9ydGFsIGJpdHMgZm9yIEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM0MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOiBBZGQgSEFW
RV9DT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUy4KKwogMjAyMS0wNS0yNiAgQ2FtZXJv
biBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFByZXZlbnQgc2JpeCBn
bHlwaHMgZnJvbSBiZWluZyByZW5kZXJlZCBpbiB0aGUgR1BVIHByb2Nlc3MKSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSGF2ZS5oCShyZXZpc2lvbiAyNzgxNjQpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaAkod29ya2luZyBjb3B5KQpAQCAtODk5LDYgKzg5OSw3IEBACiAgICAgfHwgKChQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKQogI2lmICFkZWZpbmVkKEhBVkVfQ09SRV9BTklNQVRJ
T05fU0VQQVJBVEVEX0xBWUVSUykKICNkZWZpbmUgSEFWRV9DT1JFX0FOSU1BVElPTl9TRVBBUkFU
RURfTEFZRVJTIDEKKyNkZWZpbmUgSEFWRV9DT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFM
UyAxCiAjZW5kaWYKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzgxNjQpCisr
KyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MCBA
QAorMjAyMS0wNS0yNyAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgQ0Egc2VwZXJhdGVkIHBvcnRhbCBiaXRzIGZvciBH
cmFwaGljc0xheWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjYzNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQbHVtYnMgaXNTZXBhcmF0ZWRQb3J0YWwgYW5kIGlzRGVzY2VuZGVudE9mU2VwYXJhdGVk
UG9ydGFsIGJpdHMgdGhyb3VnaCBHcmFwaGljc0xheWVyLgorICAgICAgICBSZW5hbWVzIHNldFNl
cGFyYXRlZCB0byBzZXRJc1NlcGFyYXRlZCBmb3IgY29uc2lzdGVuY3kuCisKKyAgICAgICAgQ3Vy
cmVudGx5IHVudXNlZCwgYnV0IGdldHRpbmcgdGhlIGJpdHMgaW4gaXMgYmlnIGVub3VnaCB0aGF0
IGl0cyBoZWxwZnVsCisgICAgICAgIHRvIGxhbmQgb24gaXRzIG93bi4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6aXNJc1Nl
cGFyYXRlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRJc1Nl
cGFyYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjppc1NlcGFyYXRlZFBv
cnRhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRJc1NlcGFy
YXRlZFBvcnRhbCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjppc0Rlc2NlbmRl
bnRPZlNlcGFyYXRlZFBvcnRhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyOjppc1NlcGFyYXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRTZXBhcmF0ZWQpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldElzU2VwYXJhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJDQTo6c2V0SXNTZXBhcmF0ZWRQb3J0YWwpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNBOjpzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9y
ZVN1YmxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUlz
U2VwYXJhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlSXNT
ZXBhcmF0ZWRQb3J0YWwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRh
dGVJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ0E6OnNldFNlcGFyYXRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ0E6OnVwZGF0ZVNlcGFyYXRlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtQ0FMYXllckNvY29hOjpzZXRJc1NlcGFyYXRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6aXNTZXBhcmF0ZWRQb3J0YWwgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ29jb2E6OnNldElzU2VwYXJhdGVkUG9ydGFs
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNvY29hOjppc0Rlc2NlbmRlbnRP
ZlNlcGFyYXRlZFBvcnRhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5
ZXJDb2NvYTo6c2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyQ29jb2E6OnNldFNlcGFyYXRlZCk6IERlbGV0ZWQuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KToKKwogMjAyMS0wNS0yNyAgQWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI0NDQz
NCkgRGlzcGF0Y2ggaW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdlZCBvbiB0aGUgbWFpbiBmcmFt
ZSBvbmx5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcAkocmV2aXNpb24gMjc4MTY0KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw3
ICsxNTAsMTEgQEAgR3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcihUeXBlIHR5cGUsIAogICAg
ICwgbV91c2VySW50ZXJhY3Rpb25FbmFibGVkKHRydWUpCiAgICAgLCBtX2NhbkRldGFjaEJhY2tp
bmdTdG9yZSh0cnVlKQogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykK
LSAgICAsIG1fc2VwYXJhdGVkKGZhbHNlKQorICAgICwgbV9pc1NlcGFyYXRlZChmYWxzZSkKKyNp
ZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgICwgbV9pc1NlcGFy
YXRlZFBvcnRhbChmYWxzZSkKKyAgICAsIG1faXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwo
ZmFsc2UpCisjZW5kaWYKICNlbmRpZgogewogI2lmbmRlZiBOREVCVUcKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgJKHJldmlzaW9u
IDI3ODE2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzk1LDggKzM5NSwxNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldFVzZXNEaXNwbGF5TGlzdERyYXdpbmcoYm9vbCBiKSB7IG1fdXNlc0Rpc3Bs
YXlMaXN0RHJhd2luZyA9IGI7IH0KIAogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVE
X0xBWUVSUykKLSAgICBib29sIGlzU2VwYXJhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9zZXBhcmF0
ZWQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2VwYXJhdGVkKGJvb2wgYikgeyBtX3NlcGFyYXRl
ZCA9IGI7IH0KKyAgICBib29sIGlzSXNTZXBhcmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU2Vw
YXJhdGVkOyB9CisgICAgdmlydHVhbCB2b2lkIHNldElzU2VwYXJhdGVkKGJvb2wgYikgeyBtX2lz
U2VwYXJhdGVkID0gYjsgfQorCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9S
VEFMUykKKyAgICBib29sIGlzU2VwYXJhdGVkUG9ydGFsKCkgY29uc3QgeyByZXR1cm4gbV9pc1Nl
cGFyYXRlZFBvcnRhbDsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRJc1NlcGFyYXRlZFBvcnRhbChi
b29sIGIpIHsgbV9pc1NlcGFyYXRlZFBvcnRhbCA9IGI7IH0KKworICAgIGJvb2wgaXNEZXNjZW5k
ZW50T2ZTZXBhcmF0ZWRQb3J0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRGVzY2VuZGVudE9mU2Vw
YXJhdGVkUG9ydGFsOyB9CisgICAgdmlydHVhbCB2b2lkIHNldElzRGVzY2VuZGVudE9mU2VwYXJh
dGVkUG9ydGFsKGJvb2wgYikgeyBtX2lzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsID0gYjsg
fQorI2VuZGlmCiAjZW5kaWYKIAogICAgIGJvb2wgbmVlZHNCYWNrZHJvcCgpIGNvbnN0IHsgcmV0
dXJuICFtX2JhY2tkcm9wRmlsdGVycy5pc0VtcHR5KCk7IH0KQEAgLTczMSw3ICs3MzksMTEgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgbV91c2VySW50ZXJhY3Rpb25FbmFibGVkIDogMTsKICAgICBi
b29sIG1fY2FuRGV0YWNoQmFja2luZ1N0b3JlIDogMTsKICNpZiBIQVZFKENPUkVfQU5JTUFUSU9O
X1NFUEFSQVRFRF9MQVlFUlMpCi0gICAgYm9vbCBtX3NlcGFyYXRlZCA6IDE7CisgICAgYm9vbCBt
X2lzU2VwYXJhdGVkIDogMTsKKyNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JU
QUxTKQorICAgIGJvb2wgbV9pc1NlcGFyYXRlZFBvcnRhbCA6IDE7CisgICAgYm9vbCBtX2lzRGVz
Y2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsIDogMTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICBpbnQg
bV9yZXBhaW50Q291bnQgeyAwIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAJKHJldmlzaW9uIDI3ODE2
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4MiwxNCArNzgyLDM1IEBAIHZvaWQgR3JhcGhpY3NM
YXllckNBOjpzZXRVc2VzRGlzcGxheUxpc3QKIH0KIAogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05f
U0VQQVJBVEVEX0xBWUVSUykKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRTZXBhcmF0ZWQoYm9v
bCBzZXBhcmF0ZWQpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0SXNTZXBhcmF0ZWQoYm9vbCBp
c1NlcGFyYXRlZCkKIHsKLSAgICBpZiAoc2VwYXJhdGVkID09IG1fc2VwYXJhdGVkKQorICAgIGlm
IChpc1NlcGFyYXRlZCA9PSBtX2lzU2VwYXJhdGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBH
cmFwaGljc0xheWVyOjpzZXRTZXBhcmF0ZWQoc2VwYXJhdGVkKTsKKyAgICBHcmFwaGljc0xheWVy
OjpzZXRJc1NlcGFyYXRlZChpc1NlcGFyYXRlZCk7CiAgICAgbm90ZUxheWVyUHJvcGVydHlDaGFu
Z2VkKFNlcGFyYXRlZENoYW5nZWQpOwogfQorCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBB
UkFURURfUE9SVEFMUykKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRJc1NlcGFyYXRlZFBvcnRh
bChib29sIGlzU2VwYXJhdGVkUG9ydGFsKQoreworICAgIGlmIChpc1NlcGFyYXRlZFBvcnRhbCA9
PSBtX2lzU2VwYXJhdGVkUG9ydGFsKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xh
eWVyOjpzZXRJc1NlcGFyYXRlZFBvcnRhbChpc1NlcGFyYXRlZFBvcnRhbCk7CisgICAgbm90ZUxh
eWVyUHJvcGVydHlDaGFuZ2VkKFNlcGFyYXRlZFBvcnRhbENoYW5nZWQpOworCit9CisKK3ZvaWQg
R3JhcGhpY3NMYXllckNBOjpzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbChib29sIGlz
RGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKQoreworICAgIGlmIChpc0Rlc2NlbmRlbnRPZlNl
cGFyYXRlZFBvcnRhbCA9PSBtX2lzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKQorICAgICAg
ICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRl
ZFBvcnRhbChpc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCk7CisgICAgbm90ZUxheWVyUHJv
cGVydHlDaGFuZ2VkKERlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbENoYW5nZWQpOworfQorI2Vu
ZGlmCiAjZW5kaWYKIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldEJhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYgY29sb3IpCkBAIC0xOTg1LDcgKzIwMDYsMTUgQEAgdm9pZCBHcmFwaGljc0xh
eWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlcwogCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBB
UkFURURfTEFZRVJTKQogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIFNlcGFyYXRlZENo
YW5nZWQpCi0gICAgICAgIHVwZGF0ZVNlcGFyYXRlZCgpOworICAgICAgICB1cGRhdGVJc1NlcGFy
YXRlZCgpOworCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKKyAg
ICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBTZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKQorICAg
ICAgICB1cGRhdGVJc1NlcGFyYXRlZFBvcnRhbCgpOworCisgICAgaWYgKG1fdW5jb21taXR0ZWRD
aGFuZ2VzICYgRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCkKKyAgICAgICAgdXBk
YXRlSXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoKTsKKyNlbmRpZgogI2VuZGlmCiAKICAg
ICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDaGlsZHJlbkNoYW5nZWQpIHsKQEAgLTI0MzIs
MTAgKzI0NjEsMjIgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZVdpbmRSdWxlKCkKIH0K
IAogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykKLXZvaWQgR3JhcGhp
Y3NMYXllckNBOjp1cGRhdGVTZXBhcmF0ZWQoKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUlzU2VwYXJhdGVkKCkKIHsKLSAgICBtX2xheWVyLT5zZXRTZXBhcmF0ZWQobV9zZXBhcmF0ZWQp
OworICAgIG1fbGF5ZXItPnNldElzU2VwYXJhdGVkKG1faXNTZXBhcmF0ZWQpOwogfQorCisjaWYg
SEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKK3ZvaWQgR3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVJc1NlcGFyYXRlZFBvcnRhbCgpCit7CisgICAgbV9sYXllci0+c2V0SXNTZXBh
cmF0ZWRQb3J0YWwobV9pc1NlcGFyYXRlZFBvcnRhbCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCgpCit7CisgICAgbV9sYXll
ci0+c2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwobV9pc0Rlc2NlbmRlbnRPZlNlcGFy
YXRlZFBvcnRhbCk7Cit9CisjZW5kaWYKICNlbmRpZgogCiBib29sIEdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlU3RydWN0dXJhbExheWVyKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCShyZXZpc2lvbiAyNzgxNjQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aAkod29ya2luZyBjb3B5KQpAQCAtOTYsNyArOTYsMTEgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0VXNlc0Rpc3BsYXlMaXN0RHJhd2luZyhib29sKSBvdmVycmlkZTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFVzZXJJbnRlcmFjdGlvbkVuYWJsZWQoYm9vbCkgb3Zl
cnJpZGU7CiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VwYXJhdGVkKGJvb2wpIG92ZXJyaWRlOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0SXNTZXBhcmF0ZWQoYm9vbCkgb3ZlcnJpZGU7CisjaWYgSEFWRShD
T1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldElzU2VwYXJhdGVkUG9ydGFsKGJvb2wpIG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoYm9vbCkgb3ZlcnJpZGU7Cisj
ZW5kaWYKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRCYWNrZ3JvdW5kQ29s
b3IoY29uc3QgQ29sb3ImKSBvdmVycmlkZTsKQEAgLTQ1MCw3ICs0NTQsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHVwZGF0ZVdpbmRSdWxlKCk7CiAKICNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NF
UEFSQVRFRF9MQVlFUlMpCi0gICAgdm9pZCB1cGRhdGVTZXBhcmF0ZWQoKTsKKyAgICB2b2lkIHVw
ZGF0ZUlzU2VwYXJhdGVkKCk7CisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9S
VEFMUykKKyAgICB2b2lkIHVwZGF0ZUlzU2VwYXJhdGVkUG9ydGFsKCk7CisgICAgdm9pZCB1cGRh
dGVJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCgpOworI2VuZGlmCiAjZW5kaWYKIAogICAg
IGVudW0gU3RydWN0dXJhbExheWVyUHVycG9zZSB7CkBAIC01NjEsNiArNTY5LDEwIEBAIHByaXZh
dGU6CiAjZW5kaWYKICNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9MQVlFUlMpCiAg
ICAgICAgIFNlcGFyYXRlZENoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICA9IDFMTFUgPDwg
NDIsCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKKyAgICAgICAg
U2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCA0MywKKyAg
ICAgICAgRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCAgICAgID0gMUxMVSA8PCA0
NCwKKyNlbmRpZgogI2VuZGlmCiAgICAgfTsKICAgICB0eXBlZGVmIHVpbnQ2NF90IExheWVyQ2hh
bmdlRmxhZ3M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0
Zm9ybUNBTGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAkocmV2aXNpb24gMjc4MTY0KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI1Miw3ICsyNTIsMTUgQEAgcHVibGljOgogCiAjaWYgSEFWRShDT1JFX0FOSU1BVElP
Tl9TRVBBUkFURURfTEFZRVJTKQogICAgIHZpcnR1YWwgYm9vbCBpc1NlcGFyYXRlZCgpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2VwYXJhdGVkKGJvb2wpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0SXNTZXBhcmF0ZWQoYm9vbCkgPSAwOworICAgIAorI2lmIEhBVkUoQ09SRV9B
TklNQVRJT05fU0VQQVJBVEVEX1BPUlRBTFMpCisgICAgdmlydHVhbCBib29sIGlzU2VwYXJhdGVk
UG9ydGFsKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRJc1NlcGFyYXRlZFBvcnRh
bChib29sKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQ
b3J0YWwoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldElzRGVzY2VuZGVudE9mU2Vw
YXJhdGVkUG9ydGFsKGJvb2wpID0gMDsKKyNlbmRpZgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIFRp
bGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNB
TGF5ZXJDb2NvYS5oCShyZXZpc2lvbiAyNzgxNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzksNyArMTc5LDE1IEBAIHB1YmxpYzoKIAogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05f
U0VQQVJBVEVEX0xBWUVSUykKICAgICBib29sIGlzU2VwYXJhdGVkKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBzZXRTZXBhcmF0ZWQoYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRJc1Nl
cGFyYXRlZChib29sKSBvdmVycmlkZTsKKworI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJB
VEVEX1BPUlRBTFMpCisgICAgYm9vbCBpc1NlcGFyYXRlZFBvcnRhbCgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZvaWQgc2V0SXNTZXBhcmF0ZWRQb3J0YWwoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICBi
b29sIGlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dm9pZCBzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbChib29sKSBvdmVycmlkZTsKKyNl
bmRpZgogI2VuZGlmCiAKICAgICBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIG92ZXJyaWRl
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZv
cm1DQUxheWVyQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0JKHJldmlzaW9uIDI3ODE2
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3Jt
Q0FMYXllckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcyLDEyICsxMDcyLDM2IEBAIGJv
b2wgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmlzU2VwYXJhdGVkKCkKICAgICByZXR1cm4gbV9sYXll
ci5nZXQoKS5pc1NlcGFyYXRlZDsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6c2V0
U2VwYXJhdGVkKGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FMYXllckNvY29hOjpzZXRJc1Nl
cGFyYXRlZChib29sIHZhbHVlKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
ICAgIFttX2xheWVyIHNldFNlcGFyYXRlZDp2YWx1ZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogfQorCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykK
K2Jvb2wgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmlzU2VwYXJhdGVkUG9ydGFsKCkgY29uc3QKK3sK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
UGxhdGZvcm1DQUxheWVyQ29jb2E6OnNldElzU2VwYXJhdGVkUG9ydGFsKGJvb2wpCit7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK2Jvb2wgUGxhdGZvcm1DQUxheWVyQ29jb2E6Omlz
RGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKCkgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUxheWVyQ29j
b2E6OnNldElzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKGJvb2wpCit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKICNlbmRpZgogCiBzdGF0aWMgTlNTdHJpbmcgKmxh
eWVyQ29udGVudHNGb3JtYXQoYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcsIGJvb2wgd2FudHNEZWVw
Q29sb3IsIGJvb2wgc3VwcG9ydHNTdWJwaXhlbEFudGlhbGlhc2VkRm9udHMpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkocmV2aXNp
b24gMjc4MTY0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMjAsNyArMTMyMCw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSgKIAogI2lmIEVOQUJMRShDU1NfVFJBTlNGT1JNX1NU
WUxFX09QVElNSVpFRF8zRCkKICAgICAvLyBGSVhNRTogVGFrZSBhbmNlc3RyeSBpbnRvIGFjY291
bnQgYW5kIHJlbW92ZSB1bm5lY2Vzc2FyeSBzdHJ1Y3R1cmFsIGxheWVycy4KLSAgICBtX2dyYXBo
aWNzTGF5ZXItPnNldFNlcGFyYXRlZChzdHlsZS50cmFuc2Zvcm1TdHlsZTNEKCkgPT0gVHJhbnNm
b3JtU3R5bGUzRDo6T3B0aW1pemVkM0QpOworICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0SXNTZXBh
cmF0ZWQoc3R5bGUudHJhbnNmb3JtU3R5bGUzRCgpID09IFRyYW5zZm9ybVN0eWxlM0Q6Ok9wdGlt
aXplZDNEKTsKICNlbmRpZgogCiAgICAgLy8gQ29tcHV0ZSByZW5kZXJlciBvZmZzZXQgZnJvbSBw
cmltYXJ5IGdyYXBoaWNzIGxheWVyLiBOb3RlIHRoYXQgcHJpbWFyeUdyYXBoaWNzTGF5ZXJSZWN0
IGlzIGluIHBhcmVudEdyYXBoaWNzTGF5ZXIncyBjb29yZGluYXRlIHN5c3RlbSB3aGljaCBpcyBu
b3QgbmVjZXNzYXJpbHkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzgxNjYpCisrKyBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA1
LTI3ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YiBp
bXBsZW1lbnRhdGlvbiBvZiBDQSBzZXBlcmF0ZWQgcG9ydGFsIGJpdHMgZm9yIEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdW1i
cyBpc1NlcGFyYXRlZFBvcnRhbCBhbmQgaXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwgYml0
cyB0aHJvdWdoIEdyYXBoaWNzTGF5ZXIuCisgICAgICAgIFJlbmFtZXMgc2V0U2VwYXJhdGVkIHRv
IHNldElzU2VwYXJhdGVkIGZvciBjb25zaXN0ZW5jeS4KKworICAgICAgICBDdXJyZW50bHkgdW51
c2VkLCBidXQgZ2V0dGluZyB0aGUgYml0cyBpbiBpcyBiaWcgZW5vdWdoIHRoYXQgaXRzIGhlbHBm
dWwKKyAgICAgICAgdG8gbGFuZCBvbiBpdHMgb3duLgorCisgICAgICAgICogU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW06CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzVG9M
YXllcik6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OkxheWVyUHJvcGVydGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpM
YXllclByb3BlcnRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXBDaGFuZ2VkTGF5
ZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246On5SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGU6OnNldElzU2VwYXJhdGVkKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVt
b3RlOjppc1NlcGFyYXRlZFBvcnRhbCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6c2V0SXNTZXBhcmF0ZWRQb3J0YWwpOgorICAgICAgICAoV2ViS2l0OjpQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRJc0Rlc2NlbmRl
bnRPZlNlcGFyYXRlZFBvcnRhbCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6c2V0U2VwYXJhdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oOgorCiAyMDIxLTA1LTI3
ICBBbGV4YW5kZXIgTWlraGF5bGVua28gIDxhbGV4bUBnbm9tZS5vcmc+CiAKICAgICAgICAgW0dU
SzRdIE5hdmlnYXRpb24gc3dpcGUgc25hcHNob3QgYWx3YXlzIHRpbWVzIG91dApJbmRleDogU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5
QXBwbGllci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCShyZXZpc2lvbiAyNzgxNjQp
CisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
UHJvcGVydHlBcHBsaWVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yODAsNiArMjgwLDE2IEBAIHZv
aWQgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHAKICAgICAgICAgaWYgKHByb3Bl
cnRpZXMuaXNTZXBhcmF0ZWQpCiAgICAgICAgICAgICBjb25maWd1cmVTZXBhcmF0ZWRMYXllcihs
YXllcik7CiAgICAgfQorCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFM
UykKKyAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpTZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKSB7CisgICAgICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZC4KKyAgICB9CisKKyAgICBpZiAocHJv
cGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpE
ZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKSB7CisgICAgICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZC4KKyAgICB9CisjZW5k
aWYKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAko
cmV2aXNpb24gMjc4MTY0KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDQ2ICs1
Niw1MCBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZW51bSBMYXllckNoYW5nZSB7Ci0gICAgICAg
IE5hbWVDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDEsCi0gICAgICAgIENo
aWxkcmVuQ2hhbmdlZCAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDIsCi0gICAgICAgIFBvc2l0
aW9uQ2hhbmdlZCAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDMsCi0gICAgICAgIEJvdW5kc0No
YW5nZWQgICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDQsCi0gICAgICAgIEJhY2tncm91bmRD
b2xvckNoYW5nZWQgICAgICAgICAgPSAxTExVIDw8IDUsCi0gICAgICAgIEFuY2hvclBvaW50Q2hh
bmdlZCAgICAgICAgICAgICAgPSAxTExVIDw8IDYsCi0gICAgICAgIEJvcmRlcldpZHRoQ2hhbmdl
ZCAgICAgICAgICAgICAgPSAxTExVIDw8IDcsCi0gICAgICAgIEJvcmRlckNvbG9yQ2hhbmdlZCAg
ICAgICAgICAgICAgPSAxTExVIDw8IDgsCi0gICAgICAgIE9wYWNpdHlDaGFuZ2VkICAgICAgICAg
ICAgICAgICAgPSAxTExVIDw8IDksCi0gICAgICAgIFRyYW5zZm9ybUNoYW5nZWQgICAgICAgICAg
ICAgICAgPSAxTExVIDw8IDEwLAotICAgICAgICBTdWJsYXllclRyYW5zZm9ybUNoYW5nZWQgICAg
ICAgID0gMUxMVSA8PCAxMSwKLSAgICAgICAgSGlkZGVuQ2hhbmdlZCAgICAgICAgICAgICAgICAg
ICA9IDFMTFUgPDwgMTIsCi0gICAgICAgIEdlb21ldHJ5RmxpcHBlZENoYW5nZWQgICAgICAgICAg
PSAxTExVIDw8IDEzLAotICAgICAgICBEb3VibGVTaWRlZENoYW5nZWQgICAgICAgICAgICAgID0g
MUxMVSA8PCAxNCwKLSAgICAgICAgTWFza3NUb0JvdW5kc0NoYW5nZWQgICAgICAgICAgICA9IDFM
TFUgPDwgMTUsCi0gICAgICAgIE9wYXF1ZUNoYW5nZWQgICAgICAgICAgICAgICAgICAgPSAxTExV
IDw8IDE2LAotICAgICAgICBDb250ZW50c0hpZGRlbkNoYW5nZWQgICAgICAgICAgID0gMUxMVSA8
PCAxNywKLSAgICAgICAgTWFza0xheWVyQ2hhbmdlZCAgICAgICAgICAgICAgICA9IDFMTFUgPDwg
MTgsCi0gICAgICAgIENsb25lZENvbnRlbnRzQ2hhbmdlZCAgICAgICAgICAgPSAxTExVIDw8IDE5
LAotICAgICAgICBDb250ZW50c1JlY3RDaGFuZ2VkICAgICAgICAgICAgID0gMUxMVSA8PCAyMCwK
LSAgICAgICAgQ29udGVudHNTY2FsZUNoYW5nZWQgICAgICAgICAgICA9IDFMTFUgPDwgMjEsCi0g
ICAgICAgIENvcm5lclJhZGl1c0NoYW5nZWQgICAgICAgICAgICAgPSAxTExVIDw8IDIyLAotICAg
ICAgICBTaGFwZVJvdW5kZWRSZWN0Q2hhbmdlZCAgICAgICAgID0gMUxMVSA8PCAyMywKLSAgICAg
ICAgU2hhcGVQYXRoQ2hhbmdlZCAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMjQsCi0gICAgICAg
IE1pbmlmaWNhdGlvbkZpbHRlckNoYW5nZWQgICAgICAgPSAxTExVIDw8IDI1LAotICAgICAgICBN
YWduaWZpY2F0aW9uRmlsdGVyQ2hhbmdlZCAgICAgID0gMUxMVSA8PCAyNiwKLSAgICAgICAgQmxl
bmRNb2RlQ2hhbmdlZCAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMjcsCi0gICAgICAgIFdpbmRS
dWxlQ2hhbmdlZCAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDI4LAotICAgICAgICBTcGVlZENo
YW5nZWQgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAyOSwKLSAgICAgICAgVGltZU9mZnNl
dENoYW5nZWQgICAgICAgICAgICAgICA9IDFMTFUgPDwgMzAsCi0gICAgICAgIEJhY2tpbmdTdG9y
ZUNoYW5nZWQgICAgICAgICAgICAgPSAxTExVIDw8IDMxLAotICAgICAgICBCYWNraW5nU3RvcmVB
dHRhY2htZW50Q2hhbmdlZCAgID0gMUxMVSA8PCAzMiwKLSAgICAgICAgRmlsdGVyc0NoYW5nZWQg
ICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMzMsCi0gICAgICAgIEFuaW1hdGlvbnNDaGFuZ2Vk
ICAgICAgICAgICAgICAgPSAxTExVIDw8IDM0LAotICAgICAgICBFZGdlQW50aWFsaWFzaW5nTWFz
a0NoYW5nZWQgICAgID0gMUxMVSA8PCAzNSwKLSAgICAgICAgQ3VzdG9tQXBwZWFyYW5jZUNoYW5n
ZWQgICAgICAgICA9IDFMTFUgPDwgMzYsCi0gICAgICAgIFVzZXJJbnRlcmFjdGlvbkVuYWJsZWRD
aGFuZ2VkICAgPSAxTExVIDw8IDM3LAotICAgICAgICBFdmVudFJlZ2lvbkNoYW5nZWQgICAgICAg
ICAgICAgID0gMUxMVSA8PCAzOCwKKyAgICAgICAgTmFtZUNoYW5nZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxTExVIDw8IDEsCisgICAgICAgIENoaWxkcmVuQ2hhbmdlZCAgICAgICAgICAg
ICAgICAgICAgID0gMUxMVSA8PCAyLAorICAgICAgICBQb3NpdGlvbkNoYW5nZWQgICAgICAgICAg
ICAgICAgICAgICA9IDFMTFUgPDwgMywKKyAgICAgICAgQm91bmRzQ2hhbmdlZCAgICAgICAgICAg
ICAgICAgICAgICAgPSAxTExVIDw8IDQsCisgICAgICAgIEJhY2tncm91bmRDb2xvckNoYW5nZWQg
ICAgICAgICAgICAgID0gMUxMVSA8PCA1LAorICAgICAgICBBbmNob3JQb2ludENoYW5nZWQgICAg
ICAgICAgICAgICAgICA9IDFMTFUgPDwgNiwKKyAgICAgICAgQm9yZGVyV2lkdGhDaGFuZ2VkICAg
ICAgICAgICAgICAgICAgPSAxTExVIDw8IDcsCisgICAgICAgIEJvcmRlckNvbG9yQ2hhbmdlZCAg
ICAgICAgICAgICAgICAgID0gMUxMVSA8PCA4LAorICAgICAgICBPcGFjaXR5Q2hhbmdlZCAgICAg
ICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgOSwKKyAgICAgICAgVHJhbnNmb3JtQ2hhbmdlZCAg
ICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDEwLAorICAgICAgICBTdWJsYXllclRyYW5zZm9y
bUNoYW5nZWQgICAgICAgICAgICA9IDFMTFUgPDwgMTEsCisgICAgICAgIEhpZGRlbkNoYW5nZWQg
ICAgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAxMiwKKyAgICAgICAgR2VvbWV0cnlGbGlw
cGVkQ2hhbmdlZCAgICAgICAgICAgICAgPSAxTExVIDw8IDEzLAorICAgICAgICBEb3VibGVTaWRl
ZENoYW5nZWQgICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMTQsCisgICAgICAgIE1hc2tzVG9C
b3VuZHNDaGFuZ2VkICAgICAgICAgICAgICAgID0gMUxMVSA8PCAxNSwKKyAgICAgICAgT3BhcXVl
Q2hhbmdlZCAgICAgICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDE2LAorICAgICAgICBDb250
ZW50c0hpZGRlbkNoYW5nZWQgICAgICAgICAgICAgICA9IDFMTFUgPDwgMTcsCisgICAgICAgIE1h
c2tMYXllckNoYW5nZWQgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAxOCwKKyAgICAgICAg
Q2xvbmVkQ29udGVudHNDaGFuZ2VkICAgICAgICAgICAgICAgPSAxTExVIDw8IDE5LAorICAgICAg
ICBDb250ZW50c1JlY3RDaGFuZ2VkICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMjAsCisgICAg
ICAgIENvbnRlbnRzU2NhbGVDaGFuZ2VkICAgICAgICAgICAgICAgID0gMUxMVSA8PCAyMSwKKyAg
ICAgICAgQ29ybmVyUmFkaXVzQ2hhbmdlZCAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDIyLAor
ICAgICAgICBTaGFwZVJvdW5kZWRSZWN0Q2hhbmdlZCAgICAgICAgICAgICA9IDFMTFUgPDwgMjMs
CisgICAgICAgIFNoYXBlUGF0aENoYW5nZWQgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAy
NCwKKyAgICAgICAgTWluaWZpY2F0aW9uRmlsdGVyQ2hhbmdlZCAgICAgICAgICAgPSAxTExVIDw8
IDI1LAorICAgICAgICBNYWduaWZpY2F0aW9uRmlsdGVyQ2hhbmdlZCAgICAgICAgICA9IDFMTFUg
PDwgMjYsCisgICAgICAgIEJsZW5kTW9kZUNoYW5nZWQgICAgICAgICAgICAgICAgICAgID0gMUxM
VSA8PCAyNywKKyAgICAgICAgV2luZFJ1bGVDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAx
TExVIDw8IDI4LAorICAgICAgICBTcGVlZENoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICA9
IDFMTFUgPDwgMjksCisgICAgICAgIFRpbWVPZmZzZXRDaGFuZ2VkICAgICAgICAgICAgICAgICAg
ID0gMUxMVSA8PCAzMCwKKyAgICAgICAgQmFja2luZ1N0b3JlQ2hhbmdlZCAgICAgICAgICAgICAg
ICAgPSAxTExVIDw8IDMxLAorICAgICAgICBCYWNraW5nU3RvcmVBdHRhY2htZW50Q2hhbmdlZCAg
ICAgICA9IDFMTFUgPDwgMzIsCisgICAgICAgIEZpbHRlcnNDaGFuZ2VkICAgICAgICAgICAgICAg
ICAgICAgID0gMUxMVSA8PCAzMywKKyAgICAgICAgQW5pbWF0aW9uc0NoYW5nZWQgICAgICAgICAg
ICAgICAgICAgPSAxTExVIDw8IDM0LAorICAgICAgICBFZGdlQW50aWFsaWFzaW5nTWFza0NoYW5n
ZWQgICAgICAgICA9IDFMTFUgPDwgMzUsCisgICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2Vk
ICAgICAgICAgICAgID0gMUxMVSA8PCAzNiwKKyAgICAgICAgVXNlckludGVyYWN0aW9uRW5hYmxl
ZENoYW5nZWQgICAgICAgPSAxTExVIDw8IDM3LAorICAgICAgICBFdmVudFJlZ2lvbkNoYW5nZWQg
ICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMzgsCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9T
RVBBUkFURURfTEFZRVJTKQotICAgICAgICBTZXBhcmF0ZWRDaGFuZ2VkICAgICAgICAgICAgICAg
ID0gMUxMVSA8PCAzOSwKKyAgICAgICAgU2VwYXJhdGVkQ2hhbmdlZCAgICAgICAgICAgICAgICAg
ICAgPSAxTExVIDw8IDM5LAorI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRB
TFMpCisgICAgICAgIFNlcGFyYXRlZFBvcnRhbENoYW5nZWQgICAgICAgICAgICAgID0gMUxMVSA8
PCA0MCwKKyAgICAgICAgRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCAgPSAxTExV
IDw8IDQxLAorI2VuZGlmCiAjZW5kaWYKICAgICB9OwogCkBAIC0xODMsNiArMTg3LDEwIEBAIHB1
YmxpYzoKICAgICAgICAgV2ViQ29yZTo6RXZlbnRSZWdpb24gZXZlbnRSZWdpb247CiAjaWYgSEFW
RShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQogICAgICAgICBib29sIGlzU2VwYXJh
dGVkOworI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRBTFMpCisgICAgICAg
IGJvb2wgaXNTZXBhcmF0ZWRQb3J0YWw7CisgICAgICAgIGJvb2wgaXNEZXNjZW5kZW50T2ZTZXBh
cmF0ZWRQb3J0YWw7CisjZW5kaWYKICNlbmRpZgogICAgIH07CiAKQEAgLTM4OCw2ICszOTYsMTAg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OlJlbQogICAgICAgICBXZWJL
aXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNoYW5nZTo6RXZlbnRSZWdpb25D
aGFuZ2VkCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQogICAgICAg
ICAsIFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ2hhbmdlOjpTZXBh
cmF0ZWRDaGFuZ2VkCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykK
KyAgICAgICAgLCBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNoYW5n
ZTo6U2VwYXJhdGVkUG9ydGFsQ2hhbmdlZAorICAgICAgICAsIFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyQ2hhbmdlOjpEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWxD
aGFuZ2VkCisjZW5kaWYKICNlbmRpZgogICAgID47CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbi5tbQkocmV2aXNpb24gMjc4MTY0KQorKysgU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDEwIEBAIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpMYXllclByb3BlcnQKICAgICAsIHVzZXJJbnRlcmFjdGlvbkVuYWJsZWQodHJ1ZSkKICNpZiBI
QVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9MQVlFUlMpCiAgICAgLCBpc1NlcGFyYXRlZChm
YWxzZSkKKyNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgICwg
aXNTZXBhcmF0ZWRQb3J0YWwoZmFsc2UpCisgICAgLCBpc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBv
cnRhbChmYWxzZSkKKyNlbmRpZgogI2VuZGlmCiB7CiB9CkBAIC0xNzEsNiArMTc1LDEwIEBAIFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnQKICAgICAsIGV2ZW50UmVnaW9u
KG90aGVyLmV2ZW50UmVnaW9uKQogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xB
WUVSUykKICAgICAsIGlzU2VwYXJhdGVkKG90aGVyLmlzU2VwYXJhdGVkKQorI2lmIEhBVkUoQ09S
RV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRBTFMpCisgICAgLCBpc1NlcGFyYXRlZFBvcnRhbChv
dGhlci5pc1NlcGFyYXRlZFBvcnRhbCkKKyAgICAsIGlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9y
dGFsKG90aGVyLmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKQorI2VuZGlmCiAjZW5kaWYK
IHsKICAgICAvLyBGSVhNRTogTGF5ZXJQcm9wZXJ0aWVzIHNob3VsZCByZWZlcmVuY2UgYmFja2lu
ZyBzdG9yZSBieSBJRCwgc28gdGhhdCB0d28gbGF5ZXJzIGNhbiBoYXZlIHRoZSBzYW1lIGJhY2tp
bmcgc3RvcmUgKGZvciBjbG9uZXMpLgpAQCAtMzEzLDYgKzMyMSwxNCBAQCB2b2lkIFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBB
UkFURURfTEFZRVJTKQogICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIFNlcGFyYXRlZENoYW5n
ZWQpCiAgICAgICAgIGVuY29kZXIgPDwgaXNTZXBhcmF0ZWQ7CisKKyNpZiBIQVZFKENPUkVfQU5J
TUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIFNl
cGFyYXRlZFBvcnRhbENoYW5nZWQpCisgICAgICAgIGVuY29kZXIgPDwgaXNTZXBhcmF0ZWRQb3J0
YWw7CisKKyAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQ
b3J0YWxDaGFuZ2VkKQorICAgICAgICBlbmNvZGVyIDw8IGlzRGVzY2VuZGVudE9mU2VwYXJhdGVk
UG9ydGFsOworI2VuZGlmCiAjZW5kaWYKIH0KIApAQCAtNTUwLDE4ICs1NjYsMjUgQEAgYm9vbCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcgogICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5pc1NlcGFyYXRlZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQorCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKKyAgICBp
ZiAocmVzdWx0LmNoYW5nZWRQcm9wZXJ0aWVzICYgU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCkgewor
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc1NlcGFyYXRlZFBvcnRhbCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKHJlc3VsdC5jaGFuZ2Vk
UHJvcGVydGllcyAmIERlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbENoYW5nZWQpIHsKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0
YWwpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyNlbmRpZgogI2VuZGlmCiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uKCkKLXsKLX0KLQotUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246On5SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbigpCi17Ci19CitSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24oKSA9IGRlZmF1bHQ7CitSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6flJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uKCkgPSBk
ZWZhdWx0OwogCiB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewpAQCAtOTUyLDYgKzk3NSwxNCBAQCBzdGF0aWMgdm9p
ZCBkdW1wQ2hhbmdlZExheWVycyhUZXh0U3RyZWFtCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9T
RVBBUkFURURfTEFZRVJTKQogICAgICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVzLmNoYW5nZWRQcm9w
ZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlNlcGFyYXRlZENoYW5nZWQpCiAg
ICAgICAgICAgICB0cy5kdW1wUHJvcGVydHkoImlzU2VwYXJhdGVkIiwgbGF5ZXJQcm9wZXJ0aWVz
LmlzU2VwYXJhdGVkKTsKKworI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRB
TFMpCisgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6U2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCkKKyAgICAgICAg
ICAgIHRzLmR1bXBQcm9wZXJ0eSgiaXNTZXBhcmF0ZWRQb3J0YWwiLCBsYXllclByb3BlcnRpZXMu
aXNTZXBhcmF0ZWRQb3J0YWwpOworCisgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdl
ZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6RGVzY2VuZGVudE9mU2Vw
YXJhdGVkUG9ydGFsQ2hhbmdlZCkKKyAgICAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgiaXNEZXNj
ZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwiLCBsYXllclByb3BlcnRpZXMuaXNEZXNjZW5kZW50T2ZT
ZXBhcmF0ZWRQb3J0YWwpOworI2VuZGlmCiAjZW5kaWYKICAgICB9CiB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVy
UmVtb3RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAkocmV2aXNpb24gMjc4
MTY0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5Myw3ICs4OTMs
NyBAQCBib29sIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aXNTZXBhcmF0ZWQoCiAgICAgcmV0dXJu
IG1fcHJvcGVydGllcy5pc1NlcGFyYXRlZDsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGU6OnNldFNlcGFyYXRlZChib29sIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OnNldElzU2VwYXJhdGVkKGJvb2wgdmFsdWUpCiB7CiAgICAgaWYgKG1fcHJvcGVydGllcy5pc1Nl
cGFyYXRlZCA9PSB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTAxLDYgKzkwMSwzNiBAQCB2
b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0U2VwYXJhdGVkCiAgICAgbV9wcm9wZXJ0aWVz
LmlzU2VwYXJhdGVkID0gdmFsdWU7CiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hh
bmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6U2VwYXJhdGVkQ2hhbmdlZCk7CiB9CisK
KyNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorYm9vbCBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGU6OmlzU2VwYXJhdGVkUG9ydGFsKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9wcm9wZXJ0aWVzLmlzU2VwYXJhdGVkUG9ydGFsOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6c2V0SXNTZXBhcmF0ZWRQb3J0YWwoYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAobV9w
cm9wZXJ0aWVzLmlzU2VwYXJhdGVkUG9ydGFsID09IHZhbHVlKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3Byb3BlcnRpZXMuaXNTZXBhcmF0ZWRQb3J0YWwgPSB2YWx1ZTsKKyAgICBtX3Byb3Bl
cnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpT
ZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKTsKK30KKworYm9vbCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9w
cm9wZXJ0aWVzLmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsOworfQorCit2b2lkIFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6c2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoYm9vbCB2
YWx1ZSkKK3sKKyAgICBpZiAobV9wcm9wZXJ0aWVzLmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9y
dGFsID09IHZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMuaXNEZXNj
ZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwgPSB2YWx1ZTsKKyAgICBtX3Byb3BlcnRpZXMubm90ZVBy
b3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpEZXNjZW5kZW50T2ZT
ZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKTsKK30KKyNlbmRpZgogI2VuZGlmCiAKIFJlZjxQbGF0Zm9y
bUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlQ29tcGF0aWJsZUxheWVyKFBs
YXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50
KiBjbGllbnQpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FM
YXllclJlbW90ZS5oCShyZXZpc2lvbiAyNzgxNjQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTE4MSw3ICsxODEsMTUgQEAgcHVibGljOgogCiAjaWYgSEFWRShDT1JFX0FO
SU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQogICAgIGJvb2wgaXNTZXBhcmF0ZWQoKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2b2lkIHNldFNlcGFyYXRlZChib29sKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldElzU2VwYXJhdGVkKGJvb2wpIG92ZXJyaWRlOworCisjaWYgSEFWRShDT1JFX0FOSU1BVElP
Tl9TRVBBUkFURURfUE9SVEFMUykKKyAgICBib29sIGlzU2VwYXJhdGVkUG9ydGFsKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBzZXRJc1NlcGFyYXRlZFBvcnRhbChib29sKSBvdmVycmlkZTsK
KworICAgIGJvb2wgaXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldElzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKGJvb2wpIG92ZXJy
aWRlOworI2VuZGlmCiAjZW5kaWYKIAogICAgIFdlYkNvcmU6OlRpbGVkQmFja2luZyogdGlsZWRC
YWNraW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429902</attachid>
            <date>2021-05-27 10:50:32 -0700</date>
            <delta_ts>2021-05-27 14:18:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226343-20210527102048.patch</filename>
            <type>text/plain</type>
            <size>28937</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzgxNjQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA1LTI3ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBDQSBzZXBh
cmF0ZWQgcG9ydGFsIGJpdHMgZm9yIEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM0MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOiBBZGQgSEFW
RV9DT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUy4KKwogMjAyMS0wNS0yNiAgQ2FtZXJv
biBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFByZXZlbnQgc2JpeCBn
bHlwaHMgZnJvbSBiZWluZyByZW5kZXJlZCBpbiB0aGUgR1BVIHByb2Nlc3MKSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSGF2ZS5oCShyZXZpc2lvbiAyNzgxNjQpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaAkod29ya2luZyBjb3B5KQpAQCAtODk5LDYgKzg5OSw3IEBACiAgICAgfHwgKChQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKQogI2lmICFkZWZpbmVkKEhBVkVfQ09SRV9BTklNQVRJ
T05fU0VQQVJBVEVEX0xBWUVSUykKICNkZWZpbmUgSEFWRV9DT1JFX0FOSU1BVElPTl9TRVBBUkFU
RURfTEFZRVJTIDEKKyNkZWZpbmUgSEFWRV9DT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFM
UyAxCiAjZW5kaWYKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzgxNjQpCisr
KyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MCBA
QAorMjAyMS0wNS0yNyAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgQ0Egc2VwYXJhdGVkIHBvcnRhbCBiaXRzIGZvciBH
cmFwaGljc0xheWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjYzNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQbHVtYnMgaXNTZXBhcmF0ZWRQb3J0YWwgYW5kIGlzRGVzY2VuZGVudE9mU2VwYXJhdGVk
UG9ydGFsIGJpdHMgdGhyb3VnaCBHcmFwaGljc0xheWVyLgorICAgICAgICBSZW5hbWVzIHNldFNl
cGFyYXRlZCB0byBzZXRJc1NlcGFyYXRlZCBmb3IgY29uc2lzdGVuY3kuCisKKyAgICAgICAgQ3Vy
cmVudGx5IHVudXNlZCwgYnV0IGdldHRpbmcgdGhlIGJpdHMgaW4gaXMgYmlnIGVub3VnaCB0aGF0
IGl0cyBoZWxwZnVsCisgICAgICAgIHRvIGxhbmQgb24gaXRzIG93bi4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6aXNJc1Nl
cGFyYXRlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRJc1Nl
cGFyYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjppc1NlcGFyYXRlZFBv
cnRhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRJc1NlcGFy
YXRlZFBvcnRhbCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjppc0Rlc2NlbmRl
bnRPZlNlcGFyYXRlZFBvcnRhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyOjppc1NlcGFyYXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRTZXBhcmF0ZWQpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldElzU2VwYXJhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJDQTo6c2V0SXNTZXBhcmF0ZWRQb3J0YWwpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNBOjpzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9y
ZVN1YmxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUlz
U2VwYXJhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlSXNT
ZXBhcmF0ZWRQb3J0YWwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRh
dGVJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ0E6OnNldFNlcGFyYXRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ0E6OnVwZGF0ZVNlcGFyYXRlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtQ0FMYXllckNvY29hOjpzZXRJc1NlcGFyYXRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6aXNTZXBhcmF0ZWRQb3J0YWwgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ29jb2E6OnNldElzU2VwYXJhdGVkUG9ydGFs
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNvY29hOjppc0Rlc2NlbmRlbnRP
ZlNlcGFyYXRlZFBvcnRhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5
ZXJDb2NvYTo6c2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyQ29jb2E6OnNldFNlcGFyYXRlZCk6IERlbGV0ZWQuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KToKKwogMjAyMS0wNS0yNyAgQWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI0NDQz
NCkgRGlzcGF0Y2ggaW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdlZCBvbiB0aGUgbWFpbiBmcmFt
ZSBvbmx5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcAkocmV2aXNpb24gMjc4MTY0KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw3
ICsxNTAsMTEgQEAgR3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcihUeXBlIHR5cGUsIAogICAg
ICwgbV91c2VySW50ZXJhY3Rpb25FbmFibGVkKHRydWUpCiAgICAgLCBtX2NhbkRldGFjaEJhY2tp
bmdTdG9yZSh0cnVlKQogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykK
LSAgICAsIG1fc2VwYXJhdGVkKGZhbHNlKQorICAgICwgbV9pc1NlcGFyYXRlZChmYWxzZSkKKyNp
ZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgICwgbV9pc1NlcGFy
YXRlZFBvcnRhbChmYWxzZSkKKyAgICAsIG1faXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwo
ZmFsc2UpCisjZW5kaWYKICNlbmRpZgogewogI2lmbmRlZiBOREVCVUcKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgJKHJldmlzaW9u
IDI3ODE2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzk1LDggKzM5NSwxNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldFVzZXNEaXNwbGF5TGlzdERyYXdpbmcoYm9vbCBiKSB7IG1fdXNlc0Rpc3Bs
YXlMaXN0RHJhd2luZyA9IGI7IH0KIAogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVE
X0xBWUVSUykKLSAgICBib29sIGlzU2VwYXJhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9zZXBhcmF0
ZWQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2VwYXJhdGVkKGJvb2wgYikgeyBtX3NlcGFyYXRl
ZCA9IGI7IH0KKyAgICBib29sIGlzSXNTZXBhcmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU2Vw
YXJhdGVkOyB9CisgICAgdmlydHVhbCB2b2lkIHNldElzU2VwYXJhdGVkKGJvb2wgYikgeyBtX2lz
U2VwYXJhdGVkID0gYjsgfQorCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9S
VEFMUykKKyAgICBib29sIGlzU2VwYXJhdGVkUG9ydGFsKCkgY29uc3QgeyByZXR1cm4gbV9pc1Nl
cGFyYXRlZFBvcnRhbDsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRJc1NlcGFyYXRlZFBvcnRhbChi
b29sIGIpIHsgbV9pc1NlcGFyYXRlZFBvcnRhbCA9IGI7IH0KKworICAgIGJvb2wgaXNEZXNjZW5k
ZW50T2ZTZXBhcmF0ZWRQb3J0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRGVzY2VuZGVudE9mU2Vw
YXJhdGVkUG9ydGFsOyB9CisgICAgdmlydHVhbCB2b2lkIHNldElzRGVzY2VuZGVudE9mU2VwYXJh
dGVkUG9ydGFsKGJvb2wgYikgeyBtX2lzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsID0gYjsg
fQorI2VuZGlmCiAjZW5kaWYKIAogICAgIGJvb2wgbmVlZHNCYWNrZHJvcCgpIGNvbnN0IHsgcmV0
dXJuICFtX2JhY2tkcm9wRmlsdGVycy5pc0VtcHR5KCk7IH0KQEAgLTczMSw3ICs3MzksMTEgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgbV91c2VySW50ZXJhY3Rpb25FbmFibGVkIDogMTsKICAgICBi
b29sIG1fY2FuRGV0YWNoQmFja2luZ1N0b3JlIDogMTsKICNpZiBIQVZFKENPUkVfQU5JTUFUSU9O
X1NFUEFSQVRFRF9MQVlFUlMpCi0gICAgYm9vbCBtX3NlcGFyYXRlZCA6IDE7CisgICAgYm9vbCBt
X2lzU2VwYXJhdGVkIDogMTsKKyNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JU
QUxTKQorICAgIGJvb2wgbV9pc1NlcGFyYXRlZFBvcnRhbCA6IDE7CisgICAgYm9vbCBtX2lzRGVz
Y2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsIDogMTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICBpbnQg
bV9yZXBhaW50Q291bnQgeyAwIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAJKHJldmlzaW9uIDI3ODE2
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4MiwxNCArNzgyLDM1IEBAIHZvaWQgR3JhcGhpY3NM
YXllckNBOjpzZXRVc2VzRGlzcGxheUxpc3QKIH0KIAogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05f
U0VQQVJBVEVEX0xBWUVSUykKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRTZXBhcmF0ZWQoYm9v
bCBzZXBhcmF0ZWQpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0SXNTZXBhcmF0ZWQoYm9vbCBp
c1NlcGFyYXRlZCkKIHsKLSAgICBpZiAoc2VwYXJhdGVkID09IG1fc2VwYXJhdGVkKQorICAgIGlm
IChpc1NlcGFyYXRlZCA9PSBtX2lzU2VwYXJhdGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBH
cmFwaGljc0xheWVyOjpzZXRTZXBhcmF0ZWQoc2VwYXJhdGVkKTsKKyAgICBHcmFwaGljc0xheWVy
OjpzZXRJc1NlcGFyYXRlZChpc1NlcGFyYXRlZCk7CiAgICAgbm90ZUxheWVyUHJvcGVydHlDaGFu
Z2VkKFNlcGFyYXRlZENoYW5nZWQpOwogfQorCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBB
UkFURURfUE9SVEFMUykKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRJc1NlcGFyYXRlZFBvcnRh
bChib29sIGlzU2VwYXJhdGVkUG9ydGFsKQoreworICAgIGlmIChpc1NlcGFyYXRlZFBvcnRhbCA9
PSBtX2lzU2VwYXJhdGVkUG9ydGFsKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xh
eWVyOjpzZXRJc1NlcGFyYXRlZFBvcnRhbChpc1NlcGFyYXRlZFBvcnRhbCk7CisgICAgbm90ZUxh
eWVyUHJvcGVydHlDaGFuZ2VkKFNlcGFyYXRlZFBvcnRhbENoYW5nZWQpOworCit9CisKK3ZvaWQg
R3JhcGhpY3NMYXllckNBOjpzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbChib29sIGlz
RGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKQoreworICAgIGlmIChpc0Rlc2NlbmRlbnRPZlNl
cGFyYXRlZFBvcnRhbCA9PSBtX2lzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKQorICAgICAg
ICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRl
ZFBvcnRhbChpc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCk7CisgICAgbm90ZUxheWVyUHJv
cGVydHlDaGFuZ2VkKERlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbENoYW5nZWQpOworfQorI2Vu
ZGlmCiAjZW5kaWYKIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldEJhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYgY29sb3IpCkBAIC0xOTg1LDcgKzIwMDYsMTUgQEAgdm9pZCBHcmFwaGljc0xh
eWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlcwogCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBB
UkFURURfTEFZRVJTKQogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIFNlcGFyYXRlZENo
YW5nZWQpCi0gICAgICAgIHVwZGF0ZVNlcGFyYXRlZCgpOworICAgICAgICB1cGRhdGVJc1NlcGFy
YXRlZCgpOworCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKKyAg
ICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBTZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKQorICAg
ICAgICB1cGRhdGVJc1NlcGFyYXRlZFBvcnRhbCgpOworCisgICAgaWYgKG1fdW5jb21taXR0ZWRD
aGFuZ2VzICYgRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCkKKyAgICAgICAgdXBk
YXRlSXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoKTsKKyNlbmRpZgogI2VuZGlmCiAKICAg
ICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDaGlsZHJlbkNoYW5nZWQpIHsKQEAgLTI0MzIs
MTAgKzI0NjEsMjIgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZVdpbmRSdWxlKCkKIH0K
IAogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykKLXZvaWQgR3JhcGhp
Y3NMYXllckNBOjp1cGRhdGVTZXBhcmF0ZWQoKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUlzU2VwYXJhdGVkKCkKIHsKLSAgICBtX2xheWVyLT5zZXRTZXBhcmF0ZWQobV9zZXBhcmF0ZWQp
OworICAgIG1fbGF5ZXItPnNldElzU2VwYXJhdGVkKG1faXNTZXBhcmF0ZWQpOwogfQorCisjaWYg
SEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKK3ZvaWQgR3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVJc1NlcGFyYXRlZFBvcnRhbCgpCit7CisgICAgbV9sYXllci0+c2V0SXNTZXBh
cmF0ZWRQb3J0YWwobV9pc1NlcGFyYXRlZFBvcnRhbCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCgpCit7CisgICAgbV9sYXll
ci0+c2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwobV9pc0Rlc2NlbmRlbnRPZlNlcGFy
YXRlZFBvcnRhbCk7Cit9CisjZW5kaWYKICNlbmRpZgogCiBib29sIEdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlU3RydWN0dXJhbExheWVyKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCShyZXZpc2lvbiAyNzgxNjQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aAkod29ya2luZyBjb3B5KQpAQCAtOTYsNyArOTYsMTEgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0VXNlc0Rpc3BsYXlMaXN0RHJhd2luZyhib29sKSBvdmVycmlkZTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFVzZXJJbnRlcmFjdGlvbkVuYWJsZWQoYm9vbCkgb3Zl
cnJpZGU7CiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VwYXJhdGVkKGJvb2wpIG92ZXJyaWRlOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0SXNTZXBhcmF0ZWQoYm9vbCkgb3ZlcnJpZGU7CisjaWYgSEFWRShD
T1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldElzU2VwYXJhdGVkUG9ydGFsKGJvb2wpIG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoYm9vbCkgb3ZlcnJpZGU7Cisj
ZW5kaWYKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRCYWNrZ3JvdW5kQ29s
b3IoY29uc3QgQ29sb3ImKSBvdmVycmlkZTsKQEAgLTQ1MCw3ICs0NTQsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHVwZGF0ZVdpbmRSdWxlKCk7CiAKICNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NF
UEFSQVRFRF9MQVlFUlMpCi0gICAgdm9pZCB1cGRhdGVTZXBhcmF0ZWQoKTsKKyAgICB2b2lkIHVw
ZGF0ZUlzU2VwYXJhdGVkKCk7CisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9S
VEFMUykKKyAgICB2b2lkIHVwZGF0ZUlzU2VwYXJhdGVkUG9ydGFsKCk7CisgICAgdm9pZCB1cGRh
dGVJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCgpOworI2VuZGlmCiAjZW5kaWYKIAogICAg
IGVudW0gU3RydWN0dXJhbExheWVyUHVycG9zZSB7CkBAIC01NjEsNiArNTY5LDEwIEBAIHByaXZh
dGU6CiAjZW5kaWYKICNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9MQVlFUlMpCiAg
ICAgICAgIFNlcGFyYXRlZENoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICA9IDFMTFUgPDwg
NDIsCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKKyAgICAgICAg
U2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCA0MywKKyAg
ICAgICAgRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCAgICAgID0gMUxMVSA8PCA0
NCwKKyNlbmRpZgogI2VuZGlmCiAgICAgfTsKICAgICB0eXBlZGVmIHVpbnQ2NF90IExheWVyQ2hh
bmdlRmxhZ3M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0
Zm9ybUNBTGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAkocmV2aXNpb24gMjc4MTY0KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI1Miw3ICsyNTIsMTUgQEAgcHVibGljOgogCiAjaWYgSEFWRShDT1JFX0FOSU1BVElP
Tl9TRVBBUkFURURfTEFZRVJTKQogICAgIHZpcnR1YWwgYm9vbCBpc1NlcGFyYXRlZCgpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2VwYXJhdGVkKGJvb2wpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0SXNTZXBhcmF0ZWQoYm9vbCkgPSAwOworICAgIAorI2lmIEhBVkUoQ09SRV9B
TklNQVRJT05fU0VQQVJBVEVEX1BPUlRBTFMpCisgICAgdmlydHVhbCBib29sIGlzU2VwYXJhdGVk
UG9ydGFsKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRJc1NlcGFyYXRlZFBvcnRh
bChib29sKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQ
b3J0YWwoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldElzRGVzY2VuZGVudE9mU2Vw
YXJhdGVkUG9ydGFsKGJvb2wpID0gMDsKKyNlbmRpZgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIFRp
bGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNB
TGF5ZXJDb2NvYS5oCShyZXZpc2lvbiAyNzgxNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzksNyArMTc5LDE1IEBAIHB1YmxpYzoKIAogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05f
U0VQQVJBVEVEX0xBWUVSUykKICAgICBib29sIGlzU2VwYXJhdGVkKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBzZXRTZXBhcmF0ZWQoYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRJc1Nl
cGFyYXRlZChib29sKSBvdmVycmlkZTsKKworI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJB
VEVEX1BPUlRBTFMpCisgICAgYm9vbCBpc1NlcGFyYXRlZFBvcnRhbCgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZvaWQgc2V0SXNTZXBhcmF0ZWRQb3J0YWwoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICBi
b29sIGlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dm9pZCBzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbChib29sKSBvdmVycmlkZTsKKyNl
bmRpZgogI2VuZGlmCiAKICAgICBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIG92ZXJyaWRl
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZv
cm1DQUxheWVyQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0JKHJldmlzaW9uIDI3ODE2
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3Jt
Q0FMYXllckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcyLDEyICsxMDcyLDM2IEBAIGJv
b2wgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmlzU2VwYXJhdGVkKCkKICAgICByZXR1cm4gbV9sYXll
ci5nZXQoKS5pc1NlcGFyYXRlZDsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6c2V0
U2VwYXJhdGVkKGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FMYXllckNvY29hOjpzZXRJc1Nl
cGFyYXRlZChib29sIHZhbHVlKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
ICAgIFttX2xheWVyIHNldFNlcGFyYXRlZDp2YWx1ZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogfQorCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykK
K2Jvb2wgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmlzU2VwYXJhdGVkUG9ydGFsKCkgY29uc3QKK3sK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
UGxhdGZvcm1DQUxheWVyQ29jb2E6OnNldElzU2VwYXJhdGVkUG9ydGFsKGJvb2wpCit7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK2Jvb2wgUGxhdGZvcm1DQUxheWVyQ29jb2E6Omlz
RGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKCkgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUxheWVyQ29j
b2E6OnNldElzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKGJvb2wpCit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKICNlbmRpZgogCiBzdGF0aWMgTlNTdHJpbmcgKmxh
eWVyQ29udGVudHNGb3JtYXQoYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcsIGJvb2wgd2FudHNEZWVw
Q29sb3IsIGJvb2wgc3VwcG9ydHNTdWJwaXhlbEFudGlhbGlhc2VkRm9udHMpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkocmV2aXNp
b24gMjc4MTY0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMjAsNyArMTMyMCw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSgKIAogI2lmIEVOQUJMRShDU1NfVFJBTlNGT1JNX1NU
WUxFX09QVElNSVpFRF8zRCkKICAgICAvLyBGSVhNRTogVGFrZSBhbmNlc3RyeSBpbnRvIGFjY291
bnQgYW5kIHJlbW92ZSB1bm5lY2Vzc2FyeSBzdHJ1Y3R1cmFsIGxheWVycy4KLSAgICBtX2dyYXBo
aWNzTGF5ZXItPnNldFNlcGFyYXRlZChzdHlsZS50cmFuc2Zvcm1TdHlsZTNEKCkgPT0gVHJhbnNm
b3JtU3R5bGUzRDo6T3B0aW1pemVkM0QpOworICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0SXNTZXBh
cmF0ZWQoc3R5bGUudHJhbnNmb3JtU3R5bGUzRCgpID09IFRyYW5zZm9ybVN0eWxlM0Q6Ok9wdGlt
aXplZDNEKTsKICNlbmRpZgogCiAgICAgLy8gQ29tcHV0ZSByZW5kZXJlciBvZmZzZXQgZnJvbSBw
cmltYXJ5IGdyYXBoaWNzIGxheWVyLiBOb3RlIHRoYXQgcHJpbWFyeUdyYXBoaWNzTGF5ZXJSZWN0
IGlzIGluIHBhcmVudEdyYXBoaWNzTGF5ZXIncyBjb29yZGluYXRlIHN5c3RlbSB3aGljaCBpcyBu
b3QgbmVjZXNzYXJpbHkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzgxNjYpCisrKyBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA1
LTI3ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YiBp
bXBsZW1lbnRhdGlvbiBvZiBDQSBzZXBhcmF0ZWQgcG9ydGFsIGJpdHMgZm9yIEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdW1i
cyBpc1NlcGFyYXRlZFBvcnRhbCBhbmQgaXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwgYml0
cyB0aHJvdWdoIEdyYXBoaWNzTGF5ZXIuCisgICAgICAgIFJlbmFtZXMgc2V0U2VwYXJhdGVkIHRv
IHNldElzU2VwYXJhdGVkIGZvciBjb25zaXN0ZW5jeS4KKworICAgICAgICBDdXJyZW50bHkgdW51
c2VkLCBidXQgZ2V0dGluZyB0aGUgYml0cyBpbiBpcyBiaWcgZW5vdWdoIHRoYXQgaXRzIGhlbHBm
dWwKKyAgICAgICAgdG8gbGFuZCBvbiBpdHMgb3duLgorCisgICAgICAgICogU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW06CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzVG9M
YXllcik6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OkxheWVyUHJvcGVydGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpM
YXllclByb3BlcnRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXBDaGFuZ2VkTGF5
ZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246On5SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGU6OnNldElzU2VwYXJhdGVkKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVt
b3RlOjppc1NlcGFyYXRlZFBvcnRhbCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6c2V0SXNTZXBhcmF0ZWRQb3J0YWwpOgorICAgICAgICAoV2ViS2l0OjpQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRJc0Rlc2NlbmRl
bnRPZlNlcGFyYXRlZFBvcnRhbCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6c2V0U2VwYXJhdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oOgorCiAyMDIxLTA1LTI3
ICBBbGV4YW5kZXIgTWlraGF5bGVua28gIDxhbGV4bUBnbm9tZS5vcmc+CiAKICAgICAgICAgW0dU
SzRdIE5hdmlnYXRpb24gc3dpcGUgc25hcHNob3QgYWx3YXlzIHRpbWVzIG91dApJbmRleDogU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5
QXBwbGllci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCShyZXZpc2lvbiAyNzgxNjQp
CisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
UHJvcGVydHlBcHBsaWVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yODAsNiArMjgwLDE2IEBAIHZv
aWQgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHAKICAgICAgICAgaWYgKHByb3Bl
cnRpZXMuaXNTZXBhcmF0ZWQpCiAgICAgICAgICAgICBjb25maWd1cmVTZXBhcmF0ZWRMYXllcihs
YXllcik7CiAgICAgfQorCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFM
UykKKyAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpTZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKSB7CisgICAgICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZC4KKyAgICB9CisKKyAgICBpZiAocHJv
cGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpE
ZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKSB7CisgICAgICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZC4KKyAgICB9CisjZW5k
aWYKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAko
cmV2aXNpb24gMjc4MTY0KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDQ2ICs1
Niw1MCBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZW51bSBMYXllckNoYW5nZSB7Ci0gICAgICAg
IE5hbWVDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDEsCi0gICAgICAgIENo
aWxkcmVuQ2hhbmdlZCAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDIsCi0gICAgICAgIFBvc2l0
aW9uQ2hhbmdlZCAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDMsCi0gICAgICAgIEJvdW5kc0No
YW5nZWQgICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDQsCi0gICAgICAgIEJhY2tncm91bmRD
b2xvckNoYW5nZWQgICAgICAgICAgPSAxTExVIDw8IDUsCi0gICAgICAgIEFuY2hvclBvaW50Q2hh
bmdlZCAgICAgICAgICAgICAgPSAxTExVIDw8IDYsCi0gICAgICAgIEJvcmRlcldpZHRoQ2hhbmdl
ZCAgICAgICAgICAgICAgPSAxTExVIDw8IDcsCi0gICAgICAgIEJvcmRlckNvbG9yQ2hhbmdlZCAg
ICAgICAgICAgICAgPSAxTExVIDw8IDgsCi0gICAgICAgIE9wYWNpdHlDaGFuZ2VkICAgICAgICAg
ICAgICAgICAgPSAxTExVIDw8IDksCi0gICAgICAgIFRyYW5zZm9ybUNoYW5nZWQgICAgICAgICAg
ICAgICAgPSAxTExVIDw8IDEwLAotICAgICAgICBTdWJsYXllclRyYW5zZm9ybUNoYW5nZWQgICAg
ICAgID0gMUxMVSA8PCAxMSwKLSAgICAgICAgSGlkZGVuQ2hhbmdlZCAgICAgICAgICAgICAgICAg
ICA9IDFMTFUgPDwgMTIsCi0gICAgICAgIEdlb21ldHJ5RmxpcHBlZENoYW5nZWQgICAgICAgICAg
PSAxTExVIDw8IDEzLAotICAgICAgICBEb3VibGVTaWRlZENoYW5nZWQgICAgICAgICAgICAgID0g
MUxMVSA8PCAxNCwKLSAgICAgICAgTWFza3NUb0JvdW5kc0NoYW5nZWQgICAgICAgICAgICA9IDFM
TFUgPDwgMTUsCi0gICAgICAgIE9wYXF1ZUNoYW5nZWQgICAgICAgICAgICAgICAgICAgPSAxTExV
IDw8IDE2LAotICAgICAgICBDb250ZW50c0hpZGRlbkNoYW5nZWQgICAgICAgICAgID0gMUxMVSA8
PCAxNywKLSAgICAgICAgTWFza0xheWVyQ2hhbmdlZCAgICAgICAgICAgICAgICA9IDFMTFUgPDwg
MTgsCi0gICAgICAgIENsb25lZENvbnRlbnRzQ2hhbmdlZCAgICAgICAgICAgPSAxTExVIDw8IDE5
LAotICAgICAgICBDb250ZW50c1JlY3RDaGFuZ2VkICAgICAgICAgICAgID0gMUxMVSA8PCAyMCwK
LSAgICAgICAgQ29udGVudHNTY2FsZUNoYW5nZWQgICAgICAgICAgICA9IDFMTFUgPDwgMjEsCi0g
ICAgICAgIENvcm5lclJhZGl1c0NoYW5nZWQgICAgICAgICAgICAgPSAxTExVIDw8IDIyLAotICAg
ICAgICBTaGFwZVJvdW5kZWRSZWN0Q2hhbmdlZCAgICAgICAgID0gMUxMVSA8PCAyMywKLSAgICAg
ICAgU2hhcGVQYXRoQ2hhbmdlZCAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMjQsCi0gICAgICAg
IE1pbmlmaWNhdGlvbkZpbHRlckNoYW5nZWQgICAgICAgPSAxTExVIDw8IDI1LAotICAgICAgICBN
YWduaWZpY2F0aW9uRmlsdGVyQ2hhbmdlZCAgICAgID0gMUxMVSA8PCAyNiwKLSAgICAgICAgQmxl
bmRNb2RlQ2hhbmdlZCAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMjcsCi0gICAgICAgIFdpbmRS
dWxlQ2hhbmdlZCAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDI4LAotICAgICAgICBTcGVlZENo
YW5nZWQgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAyOSwKLSAgICAgICAgVGltZU9mZnNl
dENoYW5nZWQgICAgICAgICAgICAgICA9IDFMTFUgPDwgMzAsCi0gICAgICAgIEJhY2tpbmdTdG9y
ZUNoYW5nZWQgICAgICAgICAgICAgPSAxTExVIDw8IDMxLAotICAgICAgICBCYWNraW5nU3RvcmVB
dHRhY2htZW50Q2hhbmdlZCAgID0gMUxMVSA8PCAzMiwKLSAgICAgICAgRmlsdGVyc0NoYW5nZWQg
ICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMzMsCi0gICAgICAgIEFuaW1hdGlvbnNDaGFuZ2Vk
ICAgICAgICAgICAgICAgPSAxTExVIDw8IDM0LAotICAgICAgICBFZGdlQW50aWFsaWFzaW5nTWFz
a0NoYW5nZWQgICAgID0gMUxMVSA8PCAzNSwKLSAgICAgICAgQ3VzdG9tQXBwZWFyYW5jZUNoYW5n
ZWQgICAgICAgICA9IDFMTFUgPDwgMzYsCi0gICAgICAgIFVzZXJJbnRlcmFjdGlvbkVuYWJsZWRD
aGFuZ2VkICAgPSAxTExVIDw8IDM3LAotICAgICAgICBFdmVudFJlZ2lvbkNoYW5nZWQgICAgICAg
ICAgICAgID0gMUxMVSA8PCAzOCwKKyAgICAgICAgTmFtZUNoYW5nZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxTExVIDw8IDEsCisgICAgICAgIENoaWxkcmVuQ2hhbmdlZCAgICAgICAgICAg
ICAgICAgICAgID0gMUxMVSA8PCAyLAorICAgICAgICBQb3NpdGlvbkNoYW5nZWQgICAgICAgICAg
ICAgICAgICAgICA9IDFMTFUgPDwgMywKKyAgICAgICAgQm91bmRzQ2hhbmdlZCAgICAgICAgICAg
ICAgICAgICAgICAgPSAxTExVIDw8IDQsCisgICAgICAgIEJhY2tncm91bmRDb2xvckNoYW5nZWQg
ICAgICAgICAgICAgID0gMUxMVSA8PCA1LAorICAgICAgICBBbmNob3JQb2ludENoYW5nZWQgICAg
ICAgICAgICAgICAgICA9IDFMTFUgPDwgNiwKKyAgICAgICAgQm9yZGVyV2lkdGhDaGFuZ2VkICAg
ICAgICAgICAgICAgICAgPSAxTExVIDw8IDcsCisgICAgICAgIEJvcmRlckNvbG9yQ2hhbmdlZCAg
ICAgICAgICAgICAgICAgID0gMUxMVSA8PCA4LAorICAgICAgICBPcGFjaXR5Q2hhbmdlZCAgICAg
ICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgOSwKKyAgICAgICAgVHJhbnNmb3JtQ2hhbmdlZCAg
ICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDEwLAorICAgICAgICBTdWJsYXllclRyYW5zZm9y
bUNoYW5nZWQgICAgICAgICAgICA9IDFMTFUgPDwgMTEsCisgICAgICAgIEhpZGRlbkNoYW5nZWQg
ICAgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAxMiwKKyAgICAgICAgR2VvbWV0cnlGbGlw
cGVkQ2hhbmdlZCAgICAgICAgICAgICAgPSAxTExVIDw8IDEzLAorICAgICAgICBEb3VibGVTaWRl
ZENoYW5nZWQgICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMTQsCisgICAgICAgIE1hc2tzVG9C
b3VuZHNDaGFuZ2VkICAgICAgICAgICAgICAgID0gMUxMVSA8PCAxNSwKKyAgICAgICAgT3BhcXVl
Q2hhbmdlZCAgICAgICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDE2LAorICAgICAgICBDb250
ZW50c0hpZGRlbkNoYW5nZWQgICAgICAgICAgICAgICA9IDFMTFUgPDwgMTcsCisgICAgICAgIE1h
c2tMYXllckNoYW5nZWQgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAxOCwKKyAgICAgICAg
Q2xvbmVkQ29udGVudHNDaGFuZ2VkICAgICAgICAgICAgICAgPSAxTExVIDw8IDE5LAorICAgICAg
ICBDb250ZW50c1JlY3RDaGFuZ2VkICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMjAsCisgICAg
ICAgIENvbnRlbnRzU2NhbGVDaGFuZ2VkICAgICAgICAgICAgICAgID0gMUxMVSA8PCAyMSwKKyAg
ICAgICAgQ29ybmVyUmFkaXVzQ2hhbmdlZCAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDIyLAor
ICAgICAgICBTaGFwZVJvdW5kZWRSZWN0Q2hhbmdlZCAgICAgICAgICAgICA9IDFMTFUgPDwgMjMs
CisgICAgICAgIFNoYXBlUGF0aENoYW5nZWQgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAy
NCwKKyAgICAgICAgTWluaWZpY2F0aW9uRmlsdGVyQ2hhbmdlZCAgICAgICAgICAgPSAxTExVIDw8
IDI1LAorICAgICAgICBNYWduaWZpY2F0aW9uRmlsdGVyQ2hhbmdlZCAgICAgICAgICA9IDFMTFUg
PDwgMjYsCisgICAgICAgIEJsZW5kTW9kZUNoYW5nZWQgICAgICAgICAgICAgICAgICAgID0gMUxM
VSA8PCAyNywKKyAgICAgICAgV2luZFJ1bGVDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAx
TExVIDw8IDI4LAorICAgICAgICBTcGVlZENoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICA9
IDFMTFUgPDwgMjksCisgICAgICAgIFRpbWVPZmZzZXRDaGFuZ2VkICAgICAgICAgICAgICAgICAg
ID0gMUxMVSA8PCAzMCwKKyAgICAgICAgQmFja2luZ1N0b3JlQ2hhbmdlZCAgICAgICAgICAgICAg
ICAgPSAxTExVIDw8IDMxLAorICAgICAgICBCYWNraW5nU3RvcmVBdHRhY2htZW50Q2hhbmdlZCAg
ICAgICA9IDFMTFUgPDwgMzIsCisgICAgICAgIEZpbHRlcnNDaGFuZ2VkICAgICAgICAgICAgICAg
ICAgICAgID0gMUxMVSA8PCAzMywKKyAgICAgICAgQW5pbWF0aW9uc0NoYW5nZWQgICAgICAgICAg
ICAgICAgICAgPSAxTExVIDw8IDM0LAorICAgICAgICBFZGdlQW50aWFsaWFzaW5nTWFza0NoYW5n
ZWQgICAgICAgICA9IDFMTFUgPDwgMzUsCisgICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2Vk
ICAgICAgICAgICAgID0gMUxMVSA8PCAzNiwKKyAgICAgICAgVXNlckludGVyYWN0aW9uRW5hYmxl
ZENoYW5nZWQgICAgICAgPSAxTExVIDw8IDM3LAorICAgICAgICBFdmVudFJlZ2lvbkNoYW5nZWQg
ICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMzgsCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9T
RVBBUkFURURfTEFZRVJTKQotICAgICAgICBTZXBhcmF0ZWRDaGFuZ2VkICAgICAgICAgICAgICAg
ID0gMUxMVSA8PCAzOSwKKyAgICAgICAgU2VwYXJhdGVkQ2hhbmdlZCAgICAgICAgICAgICAgICAg
ICAgPSAxTExVIDw8IDM5LAorI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRB
TFMpCisgICAgICAgIFNlcGFyYXRlZFBvcnRhbENoYW5nZWQgICAgICAgICAgICAgID0gMUxMVSA8
PCA0MCwKKyAgICAgICAgRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCAgPSAxTExV
IDw8IDQxLAorI2VuZGlmCiAjZW5kaWYKICAgICB9OwogCkBAIC0xODMsNiArMTg3LDEwIEBAIHB1
YmxpYzoKICAgICAgICAgV2ViQ29yZTo6RXZlbnRSZWdpb24gZXZlbnRSZWdpb247CiAjaWYgSEFW
RShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQogICAgICAgICBib29sIGlzU2VwYXJh
dGVkOworI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRBTFMpCisgICAgICAg
IGJvb2wgaXNTZXBhcmF0ZWRQb3J0YWw7CisgICAgICAgIGJvb2wgaXNEZXNjZW5kZW50T2ZTZXBh
cmF0ZWRQb3J0YWw7CisjZW5kaWYKICNlbmRpZgogICAgIH07CiAKQEAgLTM4OCw2ICszOTYsMTAg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OlJlbQogICAgICAgICBXZWJL
aXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNoYW5nZTo6RXZlbnRSZWdpb25D
aGFuZ2VkCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQogICAgICAg
ICAsIFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ2hhbmdlOjpTZXBh
cmF0ZWRDaGFuZ2VkCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykK
KyAgICAgICAgLCBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNoYW5n
ZTo6U2VwYXJhdGVkUG9ydGFsQ2hhbmdlZAorICAgICAgICAsIFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyQ2hhbmdlOjpEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWxD
aGFuZ2VkCisjZW5kaWYKICNlbmRpZgogICAgID47CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbi5tbQkocmV2aXNpb24gMjc4MTY0KQorKysgU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDEwIEBAIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpMYXllclByb3BlcnQKICAgICAsIHVzZXJJbnRlcmFjdGlvbkVuYWJsZWQodHJ1ZSkKICNpZiBI
QVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9MQVlFUlMpCiAgICAgLCBpc1NlcGFyYXRlZChm
YWxzZSkKKyNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgICwg
aXNTZXBhcmF0ZWRQb3J0YWwoZmFsc2UpCisgICAgLCBpc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBv
cnRhbChmYWxzZSkKKyNlbmRpZgogI2VuZGlmCiB7CiB9CkBAIC0xNzEsNiArMTc1LDEwIEBAIFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnQKICAgICAsIGV2ZW50UmVnaW9u
KG90aGVyLmV2ZW50UmVnaW9uKQogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xB
WUVSUykKICAgICAsIGlzU2VwYXJhdGVkKG90aGVyLmlzU2VwYXJhdGVkKQorI2lmIEhBVkUoQ09S
RV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRBTFMpCisgICAgLCBpc1NlcGFyYXRlZFBvcnRhbChv
dGhlci5pc1NlcGFyYXRlZFBvcnRhbCkKKyAgICAsIGlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9y
dGFsKG90aGVyLmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKQorI2VuZGlmCiAjZW5kaWYK
IHsKICAgICAvLyBGSVhNRTogTGF5ZXJQcm9wZXJ0aWVzIHNob3VsZCByZWZlcmVuY2UgYmFja2lu
ZyBzdG9yZSBieSBJRCwgc28gdGhhdCB0d28gbGF5ZXJzIGNhbiBoYXZlIHRoZSBzYW1lIGJhY2tp
bmcgc3RvcmUgKGZvciBjbG9uZXMpLgpAQCAtMzEzLDYgKzMyMSwxNCBAQCB2b2lkIFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBB
UkFURURfTEFZRVJTKQogICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIFNlcGFyYXRlZENoYW5n
ZWQpCiAgICAgICAgIGVuY29kZXIgPDwgaXNTZXBhcmF0ZWQ7CisKKyNpZiBIQVZFKENPUkVfQU5J
TUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIFNl
cGFyYXRlZFBvcnRhbENoYW5nZWQpCisgICAgICAgIGVuY29kZXIgPDwgaXNTZXBhcmF0ZWRQb3J0
YWw7CisKKyAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQ
b3J0YWxDaGFuZ2VkKQorICAgICAgICBlbmNvZGVyIDw8IGlzRGVzY2VuZGVudE9mU2VwYXJhdGVk
UG9ydGFsOworI2VuZGlmCiAjZW5kaWYKIH0KIApAQCAtNTUwLDE4ICs1NjYsMjUgQEAgYm9vbCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcgogICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5pc1NlcGFyYXRlZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQorCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKKyAgICBp
ZiAocmVzdWx0LmNoYW5nZWRQcm9wZXJ0aWVzICYgU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCkgewor
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc1NlcGFyYXRlZFBvcnRhbCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKHJlc3VsdC5jaGFuZ2Vk
UHJvcGVydGllcyAmIERlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbENoYW5nZWQpIHsKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0
YWwpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyNlbmRpZgogI2VuZGlmCiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uKCkKLXsKLX0KLQotUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246On5SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbigpCi17Ci19CitSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24oKSA9IGRlZmF1bHQ7CitSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6flJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uKCkgPSBk
ZWZhdWx0OwogCiB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewpAQCAtOTUyLDYgKzk3NSwxNCBAQCBzdGF0aWMgdm9p
ZCBkdW1wQ2hhbmdlZExheWVycyhUZXh0U3RyZWFtCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9T
RVBBUkFURURfTEFZRVJTKQogICAgICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVzLmNoYW5nZWRQcm9w
ZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlNlcGFyYXRlZENoYW5nZWQpCiAg
ICAgICAgICAgICB0cy5kdW1wUHJvcGVydHkoImlzU2VwYXJhdGVkIiwgbGF5ZXJQcm9wZXJ0aWVz
LmlzU2VwYXJhdGVkKTsKKworI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRB
TFMpCisgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6U2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCkKKyAgICAgICAg
ICAgIHRzLmR1bXBQcm9wZXJ0eSgiaXNTZXBhcmF0ZWRQb3J0YWwiLCBsYXllclByb3BlcnRpZXMu
aXNTZXBhcmF0ZWRQb3J0YWwpOworCisgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdl
ZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6RGVzY2VuZGVudE9mU2Vw
YXJhdGVkUG9ydGFsQ2hhbmdlZCkKKyAgICAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgiaXNEZXNj
ZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwiLCBsYXllclByb3BlcnRpZXMuaXNEZXNjZW5kZW50T2ZT
ZXBhcmF0ZWRQb3J0YWwpOworI2VuZGlmCiAjZW5kaWYKICAgICB9CiB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVy
UmVtb3RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAkocmV2aXNpb24gMjc4
MTY0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5Myw3ICs4OTMs
NyBAQCBib29sIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aXNTZXBhcmF0ZWQoCiAgICAgcmV0dXJu
IG1fcHJvcGVydGllcy5pc1NlcGFyYXRlZDsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGU6OnNldFNlcGFyYXRlZChib29sIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OnNldElzU2VwYXJhdGVkKGJvb2wgdmFsdWUpCiB7CiAgICAgaWYgKG1fcHJvcGVydGllcy5pc1Nl
cGFyYXRlZCA9PSB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTAxLDYgKzkwMSwzNiBAQCB2
b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0U2VwYXJhdGVkCiAgICAgbV9wcm9wZXJ0aWVz
LmlzU2VwYXJhdGVkID0gdmFsdWU7CiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hh
bmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6U2VwYXJhdGVkQ2hhbmdlZCk7CiB9CisK
KyNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorYm9vbCBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGU6OmlzU2VwYXJhdGVkUG9ydGFsKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9wcm9wZXJ0aWVzLmlzU2VwYXJhdGVkUG9ydGFsOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6c2V0SXNTZXBhcmF0ZWRQb3J0YWwoYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAobV9w
cm9wZXJ0aWVzLmlzU2VwYXJhdGVkUG9ydGFsID09IHZhbHVlKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3Byb3BlcnRpZXMuaXNTZXBhcmF0ZWRQb3J0YWwgPSB2YWx1ZTsKKyAgICBtX3Byb3Bl
cnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpT
ZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKTsKK30KKworYm9vbCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9w
cm9wZXJ0aWVzLmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsOworfQorCit2b2lkIFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6c2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoYm9vbCB2
YWx1ZSkKK3sKKyAgICBpZiAobV9wcm9wZXJ0aWVzLmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9y
dGFsID09IHZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMuaXNEZXNj
ZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwgPSB2YWx1ZTsKKyAgICBtX3Byb3BlcnRpZXMubm90ZVBy
b3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpEZXNjZW5kZW50T2ZT
ZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKTsKK30KKyNlbmRpZgogI2VuZGlmCiAKIFJlZjxQbGF0Zm9y
bUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlQ29tcGF0aWJsZUxheWVyKFBs
YXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50
KiBjbGllbnQpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FM
YXllclJlbW90ZS5oCShyZXZpc2lvbiAyNzgxNjQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTE4MSw3ICsxODEsMTUgQEAgcHVibGljOgogCiAjaWYgSEFWRShDT1JFX0FO
SU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQogICAgIGJvb2wgaXNTZXBhcmF0ZWQoKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2b2lkIHNldFNlcGFyYXRlZChib29sKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldElzU2VwYXJhdGVkKGJvb2wpIG92ZXJyaWRlOworCisjaWYgSEFWRShDT1JFX0FOSU1BVElP
Tl9TRVBBUkFURURfUE9SVEFMUykKKyAgICBib29sIGlzU2VwYXJhdGVkUG9ydGFsKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBzZXRJc1NlcGFyYXRlZFBvcnRhbChib29sKSBvdmVycmlkZTsK
KworICAgIGJvb2wgaXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldElzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKGJvb2wpIG92ZXJy
aWRlOworI2VuZGlmCiAjZW5kaWYKIAogICAgIFdlYkNvcmU6OlRpbGVkQmFja2luZyogdGlsZWRC
YWNraW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429927</attachid>
            <date>2021-05-27 14:18:31 -0700</date>
            <delta_ts>2021-05-28 11:54:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226343-20210527141830.patch</filename>
            <type>text/plain</type>
            <size>29868</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzgxNzQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA1LTI3ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBDQSBzZXBh
cmF0ZWQgcG9ydGFsIGJpdHMgZm9yIEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM0MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOiBBZGQgSEFW
RV9DT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUy4KKwogMjAyMS0wNS0yNyAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGBOU0xvY2FsZWAgU1BJ
IGZvciBjb21wYXJpbmcgbGFuZ3VhZ2UgaWRlbnRpZmllcnMgaW5zdGVhZCBvZiBzdHJpbmcgY29t
cGFyaXNvbgpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgJKHJldmlzaW9uIDI3ODE2NCkKKysrIFNv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04OTksNiArODk5
LDcgQEAKICAgICB8fCAoKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpKSAm
JiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApCiAjaWYgIWRlZmlu
ZWQoSEFWRV9DT1JFX0FOSU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQogI2RlZmluZSBIQVZFX0NP
UkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9MQVlFUlMgMQorI2RlZmluZSBIQVZFX0NPUkVfQU5JTUFU
SU9OX1NFUEFSQVRFRF9QT1JUQUxTIDEKICNlbmRpZgogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI3ODE2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDIxLTA1LTI3ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBDQSBzZXBhcmF0
ZWQgcG9ydGFsIGJpdHMgZm9yIEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdW1icyBpc1NlcGFyYXRlZFBvcnRhbCBhbmQgaXNE
ZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwgYml0cyB0aHJvdWdoIEdyYXBoaWNzTGF5ZXIuCisg
ICAgICAgIFJlbmFtZXMgc2V0U2VwYXJhdGVkIHRvIHNldElzU2VwYXJhdGVkIGZvciBjb25zaXN0
ZW5jeS4KKworICAgICAgICBDdXJyZW50bHkgdW51c2VkLCBidXQgZ2V0dGluZyB0aGUgYml0cyBp
biBpcyBiaWcgZW5vdWdoIHRoYXQgaXRzIGhlbHBmdWwKKyAgICAgICAgdG8gbGFuZCBvbiBpdHMg
b3duLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjppc0lzU2VwYXJhdGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI6OnNldElzU2VwYXJhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI6OmlzU2VwYXJhdGVkUG9ydGFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnNldElzU2VwYXJhdGVkUG9ydGFsKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnNldElzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFs
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmlzU2VwYXJhdGVkIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnNldFNlcGFyYXRlZCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0SXNTZXBhcmF0ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRJc1NlcGFyYXRlZFBvcnRh
bCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldElzRGVzY2VuZGVudE9m
U2VwYXJhdGVkUG9ydGFsKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y29t
bWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDQTo6dXBkYXRlSXNTZXBhcmF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNBOjp1cGRhdGVJc1NlcGFyYXRlZFBvcnRhbCk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ0E6OnVwZGF0ZUlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2VwYXJhdGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlU2VwYXJhdGVkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29h
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ29jb2E6OnNldElzU2VwYXJh
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNvY29hOjppc1NlcGFyYXRl
ZFBvcnRhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6
c2V0SXNTZXBhcmF0ZWRQb3J0YWwpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVy
Q29jb2E6OmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtQ0FMYXllckNvY29hOjpzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBv
cnRhbCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDb2NvYTo6c2V0U2VwYXJh
dGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR2VvbWV0cnkp
OgorCiAyMDIxLTA1LTI3ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyMjQ0NDM0KSBEaXNwYXRjaCBpbnRyaW5zaWNDb250ZW50c1NpemVDaGFu
Z2VkIG9uIHRoZSBtYWluIGZyYW1lIG9ubHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCShyZXZpc2lvbiAyNzgxNjQpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTUwLDcgKzE1MCwxMSBAQCBHcmFwaGljc0xheWVyOjpHcmFwaGljc0xh
eWVyKFR5cGUgdHlwZSwgCiAgICAgLCBtX3VzZXJJbnRlcmFjdGlvbkVuYWJsZWQodHJ1ZSkKICAg
ICAsIG1fY2FuRGV0YWNoQmFja2luZ1N0b3JlKHRydWUpCiAjaWYgSEFWRShDT1JFX0FOSU1BVElP
Tl9TRVBBUkFURURfTEFZRVJTKQotICAgICwgbV9zZXBhcmF0ZWQoZmFsc2UpCisgICAgLCBtX2lz
U2VwYXJhdGVkKGZhbHNlKQorI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRB
TFMpCisgICAgLCBtX2lzU2VwYXJhdGVkUG9ydGFsKGZhbHNlKQorICAgICwgbV9pc0Rlc2NlbmRl
bnRPZlNlcGFyYXRlZFBvcnRhbChmYWxzZSkKKyNlbmRpZgogI2VuZGlmCiB7CiAjaWZuZGVmIE5E
RUJVRwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaAkocmV2aXNpb24gMjc4MTY0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOTUsOCArMzk1LDEz
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VXNlc0Rpc3BsYXlMaXN0RHJhd2luZyhi
b29sIGIpIHsgbV91c2VzRGlzcGxheUxpc3REcmF3aW5nID0gYjsgfQogCiAjaWYgSEFWRShDT1JF
X0FOSU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQotICAgIGJvb2wgaXNTZXBhcmF0ZWQoKSBjb25z
dCB7IHJldHVybiBtX3NlcGFyYXRlZDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRTZXBhcmF0ZWQo
Ym9vbCBiKSB7IG1fc2VwYXJhdGVkID0gYjsgfQorICAgIGJvb2wgaXNJc1NlcGFyYXRlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNTZXBhcmF0ZWQ7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXNTZXBh
cmF0ZWQoYm9vbCBiKSB7IG1faXNTZXBhcmF0ZWQgPSBiOyB9CisKKyNpZiBIQVZFKENPUkVfQU5J
TUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgIGJvb2wgaXNTZXBhcmF0ZWRQb3J0YWwoKSBj
b25zdCB7IHJldHVybiBtX2lzU2VwYXJhdGVkUG9ydGFsOyB9CisgICAgdmlydHVhbCB2b2lkIHNl
dElzU2VwYXJhdGVkUG9ydGFsKGJvb2wgYikgeyBtX2lzU2VwYXJhdGVkUG9ydGFsID0gYjsgfQor
I2VuZGlmCiAjZW5kaWYKIAogICAgIGJvb2wgbmVlZHNCYWNrZHJvcCgpIGNvbnN0IHsgcmV0dXJu
ICFtX2JhY2tkcm9wRmlsdGVycy5pc0VtcHR5KCk7IH0KQEAgLTY2NSw2ICs2NzAsMTQgQEAgcHJv
dGVjdGVkOgogICAgIEdyYXBoaWNzTGF5ZXIqIHJlcGxpY2F0ZWRMYXllcigpIGNvbnN0IHsgcmV0
dXJuIG1fcmVwbGljYXRlZExheWVyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFJlcGxpY2F0ZWRM
YXllcihHcmFwaGljc0xheWVyKiBsYXllcikgeyBtX3JlcGxpY2F0ZWRMYXllciA9IGxheWVyOyB9
CiAKKyNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9MQVlFUlMpCisjaWYgSEFWRShD
T1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKKyAgICBib29sIGlzRGVzY2VuZGVudE9m
U2VwYXJhdGVkUG9ydGFsKCkgY29uc3QgeyByZXR1cm4gbV9pc0Rlc2NlbmRlbnRPZlNlcGFyYXRl
ZFBvcnRhbDsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBv
cnRhbChib29sIGIpIHsgbV9pc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCA9IGI7IH0KKyNl
bmRpZgorI2VuZGlmCisKKwogICAgIHZvaWQgZHVtcFByb3BlcnRpZXMoV1RGOjpUZXh0U3RyZWFt
JiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBkdW1w
QWRkaXRpb25hbFByb3BlcnRpZXMoV1RGOjpUZXh0U3RyZWFtJiwgTGF5ZXJUcmVlQXNUZXh0QmVo
YXZpb3IpIGNvbnN0IHsgfQogCkBAIC03MzEsNyArNzQ0LDExIEBAIHByb3RlY3RlZDoKICAgICBi
b29sIG1fdXNlckludGVyYWN0aW9uRW5hYmxlZCA6IDE7CiAgICAgYm9vbCBtX2NhbkRldGFjaEJh
Y2tpbmdTdG9yZSA6IDE7CiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfTEFZRVJT
KQotICAgIGJvb2wgbV9zZXBhcmF0ZWQgOiAxOworICAgIGJvb2wgbV9pc1NlcGFyYXRlZCA6IDE7
CisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKKyAgICBib29sIG1f
aXNTZXBhcmF0ZWRQb3J0YWwgOiAxOworICAgIGJvb2wgbV9pc0Rlc2NlbmRlbnRPZlNlcGFyYXRl
ZFBvcnRhbCA6IDE7CisjZW5kaWYKICNlbmRpZgogCiAgICAgaW50IG1fcmVwYWludENvdW50IHsg
MCB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCShyZXZpc2lvbiAyNzgxNjQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03ODIsMTQgKzc4MiwzNSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VXNlc0Rp
c3BsYXlMaXN0CiB9CiAKICNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9MQVlFUlMp
Ci12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0U2VwYXJhdGVkKGJvb2wgc2VwYXJhdGVkKQordm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnNldElzU2VwYXJhdGVkKGJvb2wgaXNTZXBhcmF0ZWQpCiB7Ci0g
ICAgaWYgKHNlcGFyYXRlZCA9PSBtX3NlcGFyYXRlZCkKKyAgICBpZiAoaXNTZXBhcmF0ZWQgPT0g
bV9pc1NlcGFyYXRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgR3JhcGhpY3NMYXllcjo6c2V0
U2VwYXJhdGVkKHNlcGFyYXRlZCk7CisgICAgR3JhcGhpY3NMYXllcjo6c2V0SXNTZXBhcmF0ZWQo
aXNTZXBhcmF0ZWQpOwogICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChTZXBhcmF0ZWRDaGFu
Z2VkKTsKIH0KKworI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRBTFMpCit2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0SXNTZXBhcmF0ZWRQb3J0YWwoYm9vbCBpc1NlcGFyYXRl
ZFBvcnRhbCkKK3sKKyAgICBpZiAoaXNTZXBhcmF0ZWRQb3J0YWwgPT0gbV9pc1NlcGFyYXRlZFBv
cnRhbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0SXNTZXBhcmF0
ZWRQb3J0YWwoaXNTZXBhcmF0ZWRQb3J0YWwpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdl
ZChTZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKTsKKworfQorCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
c2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoYm9vbCBpc0Rlc2NlbmRlbnRPZlNlcGFy
YXRlZFBvcnRhbCkKK3sKKyAgICBpZiAoaXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwgPT0g
bV9pc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
R3JhcGhpY3NMYXllcjo6c2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoaXNEZXNjZW5k
ZW50T2ZTZXBhcmF0ZWRQb3J0YWwpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChEZXNj
ZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKTsKK30KKyNlbmRpZgogI2VuZGlmCiAKIHZv
aWQgR3JhcGhpY3NMYXllckNBOjpzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9y
KQpAQCAtMTk4NSw3ICsyMDA2LDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXll
ckNoYW5nZXMKIAogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykKICAg
ICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBTZXBhcmF0ZWRDaGFuZ2VkKQotICAgICAgICB1
cGRhdGVTZXBhcmF0ZWQoKTsKKyAgICAgICAgdXBkYXRlSXNTZXBhcmF0ZWQoKTsKKworI2lmIEhB
VkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRBTFMpCisgICAgaWYgKG1fdW5jb21taXR0
ZWRDaGFuZ2VzICYgU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCkKKyAgICAgICAgdXBkYXRlSXNTZXBh
cmF0ZWRQb3J0YWwoKTsKKworICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIERlc2NlbmRl
bnRPZlNlcGFyYXRlZFBvcnRhbENoYW5nZWQpCisgICAgICAgIHVwZGF0ZUlzRGVzY2VuZGVudE9m
U2VwYXJhdGVkUG9ydGFsKCk7CisjZW5kaWYKICNlbmRpZgogCiAgICAgaWYgKG1fdW5jb21taXR0
ZWRDaGFuZ2VzICYgQ2hpbGRyZW5DaGFuZ2VkKSB7CkBAIC0yNDMyLDEwICsyNDYxLDIyIEBAIHZv
aWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVXaW5kUnVsZSgpCiB9CiAKICNpZiBIQVZFKENPUkVf
QU5JTUFUSU9OX1NFUEFSQVRFRF9MQVlFUlMpCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRl
U2VwYXJhdGVkKCkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVJc1NlcGFyYXRlZCgpCiB7
Ci0gICAgbV9sYXllci0+c2V0U2VwYXJhdGVkKG1fc2VwYXJhdGVkKTsKKyAgICBtX2xheWVyLT5z
ZXRJc1NlcGFyYXRlZChtX2lzU2VwYXJhdGVkKTsKIH0KKworI2lmIEhBVkUoQ09SRV9BTklNQVRJ
T05fU0VQQVJBVEVEX1BPUlRBTFMpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlSXNTZXBh
cmF0ZWRQb3J0YWwoKQoreworICAgIG1fbGF5ZXItPnNldElzU2VwYXJhdGVkUG9ydGFsKG1faXNT
ZXBhcmF0ZWRQb3J0YWwpOworfQorCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlSXNEZXNj
ZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoKQoreworICAgIG1fbGF5ZXItPnNldElzRGVzY2VuZGVu
dE9mU2VwYXJhdGVkUG9ydGFsKG1faXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwpOworfQor
I2VuZGlmCiAjZW5kaWYKIAogYm9vbCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZVN0cnVjdHVyYWxM
YXllcigpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuaAkocmV2aXNpb24gMjc4MTY0KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgJKHdvcmtpbmcgY29weSkK
QEAgLTk2LDcgKzk2LDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFVz
ZXNEaXNwbGF5TGlzdERyYXdpbmcoYm9vbCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRVc2VySW50ZXJhY3Rpb25FbmFibGVkKGJvb2wpIG92ZXJyaWRlOwogI2lmIEhBVkUo
Q09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNlcGFyYXRlZChib29sKSBvdmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dElzU2VwYXJhdGVkKGJvb2wpIG92ZXJyaWRlOworI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQ
QVJBVEVEX1BPUlRBTFMpCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJc1NlcGFyYXRlZFBv
cnRhbChib29sKSBvdmVycmlkZTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYpIG92ZXJyaWRlOwpAQCAtMjI5
LDYgKzIzMiwxMCBAQCBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SXNUcmFj
a2luZ0Rpc3BsYXlMaXN0UmVwbGF5KGJvb2wpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyByZXBsYXlEaXNwbGF5TGlzdEFzVGV4dChEaXNwbGF5TGlzdDo6QXNUZXh0RmxhZ3Mp
IGNvbnN0IG92ZXJyaWRlOwogCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfTEFZ
RVJTKSAmJiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoYm9vbCkgb3Zl
cnJpZGU7CisjZW5kaWYKKwogICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBiYWNraW5nU3RvcmVN
ZW1vcnlFc3RpbWF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBzaG91bGRSZXBhaW50T25TaXplQ2hhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC00NTAsNyAr
NDU3LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVXaW5kUnVsZSgpOwogCiAjaWYgSEFW
RShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQotICAgIHZvaWQgdXBkYXRlU2VwYXJh
dGVkKCk7CisgICAgdm9pZCB1cGRhdGVJc1NlcGFyYXRlZCgpOworI2lmIEhBVkUoQ09SRV9BTklN
QVRJT05fU0VQQVJBVEVEX1BPUlRBTFMpCisgICAgdm9pZCB1cGRhdGVJc1NlcGFyYXRlZFBvcnRh
bCgpOworICAgIHZvaWQgdXBkYXRlSXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoKTsKKyNl
bmRpZgogI2VuZGlmCiAKICAgICBlbnVtIFN0cnVjdHVyYWxMYXllclB1cnBvc2UgewpAQCAtNTYx
LDYgKzU3MiwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9T
RVBBUkFURURfTEFZRVJTKQogICAgICAgICBTZXBhcmF0ZWRDaGFuZ2VkICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxTExVIDw8IDQyLAorI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVE
X1BPUlRBTFMpCisgICAgICAgIFNlcGFyYXRlZFBvcnRhbENoYW5nZWQgICAgICAgICAgICAgICAg
ICA9IDFMTFUgPDwgNDMsCisgICAgICAgIERlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbENoYW5n
ZWQgICAgICA9IDFMTFUgPDwgNDQsCisjZW5kaWYKICNlbmRpZgogICAgIH07CiAgICAgdHlwZWRl
ZiB1aW50NjRfdCBMYXllckNoYW5nZUZsYWdzOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgJKHJldmlzaW9uIDI3
ODE2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FM
YXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTIsNyArMjUyLDE1IEBAIHB1YmxpYzoKIAogI2lm
IEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykKICAgICB2aXJ0dWFsIGJvb2wg
aXNTZXBhcmF0ZWQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNlcGFyYXRlZChi
b29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldElzU2VwYXJhdGVkKGJvb2wpID0gMDsKKyAg
ICAKKyNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgIHZpcnR1
YWwgYm9vbCBpc1NlcGFyYXRlZFBvcnRhbCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0SXNTZXBhcmF0ZWRQb3J0YWwoYm9vbCkgPSAwOworCisgICAgdmlydHVhbCBib29sIGlzRGVz
Y2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbChib29sKSA9IDA7CisjZW5kaWYKICNlbmRp
ZgogCiAgICAgdmlydHVhbCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpID0gMDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXll
ckNvY29hLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EuaAkocmV2aXNpb24gMjc4MTY0KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29j
b2EuaAkod29ya2luZyBjb3B5KQpAQCAtMTc5LDcgKzE3OSwxNSBAQCBwdWJsaWM6CiAKICNpZiBI
QVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9MQVlFUlMpCiAgICAgYm9vbCBpc1NlcGFyYXRl
ZCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2VwYXJhdGVkKGJvb2wpIG92ZXJyaWRl
OworICAgIHZvaWQgc2V0SXNTZXBhcmF0ZWQoYm9vbCkgb3ZlcnJpZGU7CisKKyNpZiBIQVZFKENP
UkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgIGJvb2wgaXNTZXBhcmF0ZWRQb3J0
YWwoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHNldElzU2VwYXJhdGVkUG9ydGFsKGJvb2wp
IG92ZXJyaWRlOworCisgICAgYm9vbCBpc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwo
Ym9vbCkgb3ZlcnJpZGU7CisjZW5kaWYKICNlbmRpZgogCiAgICAgVGlsZWRCYWNraW5nKiB0aWxl
ZEJhY2tpbmcoKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29h
Lm1tCShyZXZpc2lvbiAyNzgxNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA3
MiwxMiArMTA3MiwzNiBAQCBib29sIFBsYXRmb3JtQ0FMYXllckNvY29hOjppc1NlcGFyYXRlZCgp
CiAgICAgcmV0dXJuIG1fbGF5ZXIuZ2V0KCkuaXNTZXBhcmF0ZWQ7CiB9CiAKLXZvaWQgUGxhdGZv
cm1DQUxheWVyQ29jb2E6OnNldFNlcGFyYXRlZChib29sIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNB
TGF5ZXJDb2NvYTo6c2V0SXNTZXBhcmF0ZWQoYm9vbCB2YWx1ZSkKIHsKICAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKICAgICBbbV9sYXllciBzZXRTZXBhcmF0ZWQ6dmFsdWVdOwogICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KKworI2lmIEhBVkUoQ09SRV9BTklNQVRJT05f
U0VQQVJBVEVEX1BPUlRBTFMpCitib29sIFBsYXRmb3JtQ0FMYXllckNvY29hOjppc1NlcGFyYXRl
ZFBvcnRhbCgpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllckNvY29hOjpzZXRJc1NlcGFyYXRlZFBv
cnRhbChib29sKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitib29sIFBsYXRm
b3JtQ0FMYXllckNvY29hOjppc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCgpIGNvbnN0Cit7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lk
IFBsYXRmb3JtQ0FMYXllckNvY29hOjpzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbChi
b29sKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorI2VuZGlmCiAjZW5kaWYKIAog
c3RhdGljIE5TU3RyaW5nICpsYXllckNvbnRlbnRzRm9ybWF0KGJvb2wgYWNjZWxlcmF0ZXNEcmF3
aW5nLCBib29sIHdhbnRzRGVlcENvbG9yLCBib29sIHN1cHBvcnRzU3VicGl4ZWxBbnRpYWxpYXNl
ZEZvbnRzKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAJKHJldmlzaW9uIDI3ODE2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIwLDcgKzEzMjAs
NyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR2VvbWV0cnkoCiAKICNpZiBFTkFC
TEUoQ1NTX1RSQU5TRk9STV9TVFlMRV9PUFRJTUlaRURfM0QpCiAgICAgLy8gRklYTUU6IFRha2Ug
YW5jZXN0cnkgaW50byBhY2NvdW50IGFuZCByZW1vdmUgdW5uZWNlc3Nhcnkgc3RydWN0dXJhbCBs
YXllcnMuCi0gICAgbV9ncmFwaGljc0xheWVyLT5zZXRTZXBhcmF0ZWQoc3R5bGUudHJhbnNmb3Jt
U3R5bGUzRCgpID09IFRyYW5zZm9ybVN0eWxlM0Q6Ok9wdGltaXplZDNEKTsKKyAgICBtX2dyYXBo
aWNzTGF5ZXItPnNldElzU2VwYXJhdGVkKHN0eWxlLnRyYW5zZm9ybVN0eWxlM0QoKSA9PSBUcmFu
c2Zvcm1TdHlsZTNEOjpPcHRpbWl6ZWQzRCk7CiAjZW5kaWYKIAogICAgIC8vIENvbXB1dGUgcmVu
ZGVyZXIgb2Zmc2V0IGZyb20gcHJpbWFyeSBncmFwaGljcyBsYXllci4gTm90ZSB0aGF0IHByaW1h
cnlHcmFwaGljc0xheWVyUmVjdCBpcyBpbiBwYXJlbnRHcmFwaGljc0xheWVyJ3MgY29vcmRpbmF0
ZSBzeXN0ZW0gd2hpY2ggaXMgbm90IG5lY2Vzc2FyaWx5CkluZGV4OiBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24g
Mjc4MTY2KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwzNSBAQAorMjAyMS0wNS0yNyAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgQ0Egc2VwYXJhdGVkIHBvcnRhbCBi
aXRzIGZvciBHcmFwaGljc0xheWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjYzNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQbHVtYnMgaXNTZXBhcmF0ZWRQb3J0YWwgYW5kIGlzRGVzY2VuZGVudE9m
U2VwYXJhdGVkUG9ydGFsIGJpdHMgdGhyb3VnaCBHcmFwaGljc0xheWVyLgorICAgICAgICBSZW5h
bWVzIHNldFNlcGFyYXRlZCB0byBzZXRJc1NlcGFyYXRlZCBmb3IgY29uc2lzdGVuY3kuCisKKyAg
ICAgICAgQ3VycmVudGx5IHVudXNlZCwgYnV0IGdldHRpbmcgdGhlIGJpdHMgaW4gaXMgYmlnIGVu
b3VnaCB0aGF0IGl0cyBoZWxwZnVsCisgICAgICAgIHRvIGxhbmQgb24gaXRzIG93bi4KKworICAg
ICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBs
aWVyLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6
OmFwcGx5UHJvcGVydGllc1RvTGF5ZXIpOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBTaGFyZWQvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpMYXllclByb3Bl
cnRpZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5
ZXJQcm9wZXJ0aWVzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpkdW1wQ2hhbmdlZExheWVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjp+UmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRJc1NlcGFyYXRlZCk6CisgICAgICAgIChXZWJLaXQ6
OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aXNTZXBhcmF0ZWRQb3J0YWwgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldElzU2VwYXJhdGVkUG9ydGFsKToK
KyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjppc0Rlc2NlbmRlbnRPZlNl
cGFyYXRlZFBvcnRhbCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6c2V0SXNEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwpOgorICAgICAgICAoV2ViS2l0
OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldFNlcGFyYXRlZCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUuaDoKKwogMjAyMS0wNS0yNyAgQWxleGFuZGVyIE1pa2hheWxlbmtvICA8YWxleG1AZ25vbWUu
b3JnPgogCiAgICAgICAgIFtHVEs0XSBOYXZpZ2F0aW9uIHN3aXBlIHNuYXBzaG90IGFsd2F5cyB0
aW1lcyBvdXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5t
bQkocmV2aXNpb24gMjc4MTY0KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjgwLDYgKzI4MCwxNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBw
CiAgICAgICAgIGlmIChwcm9wZXJ0aWVzLmlzU2VwYXJhdGVkKQogICAgICAgICAgICAgY29uZmln
dXJlU2VwYXJhdGVkTGF5ZXIobGF5ZXIpOwogICAgIH0KKworI2lmIEhBVkUoQ09SRV9BTklNQVRJ
T05fU0VQQVJBVEVEX1BPUlRBTFMpCisgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRp
ZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6U2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCkg
eworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IFNlcGFyYXRlZFBvcnRhbENoYW5nZWQuCisg
ICAgfQorCisgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6RGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCkgewor
ICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IERlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbENo
YW5nZWQuCisgICAgfQorI2VuZGlmCiAjZW5kaWYKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uLmgJKHJldmlzaW9uIDI3ODE2NCkKKysrIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw0NiArNTYsNTAgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGVudW0gTGF5
ZXJDaGFuZ2UgewotICAgICAgICBOYW1lQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gMUxM
VSA8PCAxLAotICAgICAgICBDaGlsZHJlbkNoYW5nZWQgICAgICAgICAgICAgICAgID0gMUxMVSA8
PCAyLAotICAgICAgICBQb3NpdGlvbkNoYW5nZWQgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAz
LAotICAgICAgICBCb3VuZHNDaGFuZ2VkICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCA0LAot
ICAgICAgICBCYWNrZ3JvdW5kQ29sb3JDaGFuZ2VkICAgICAgICAgID0gMUxMVSA8PCA1LAotICAg
ICAgICBBbmNob3JQb2ludENoYW5nZWQgICAgICAgICAgICAgID0gMUxMVSA8PCA2LAotICAgICAg
ICBCb3JkZXJXaWR0aENoYW5nZWQgICAgICAgICAgICAgID0gMUxMVSA8PCA3LAotICAgICAgICBC
b3JkZXJDb2xvckNoYW5nZWQgICAgICAgICAgICAgID0gMUxMVSA8PCA4LAotICAgICAgICBPcGFj
aXR5Q2hhbmdlZCAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCA5LAotICAgICAgICBUcmFuc2Zv
cm1DaGFuZ2VkICAgICAgICAgICAgICAgID0gMUxMVSA8PCAxMCwKLSAgICAgICAgU3VibGF5ZXJU
cmFuc2Zvcm1DaGFuZ2VkICAgICAgICA9IDFMTFUgPDwgMTEsCi0gICAgICAgIEhpZGRlbkNoYW5n
ZWQgICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDEyLAotICAgICAgICBHZW9tZXRyeUZsaXBw
ZWRDaGFuZ2VkICAgICAgICAgID0gMUxMVSA8PCAxMywKLSAgICAgICAgRG91YmxlU2lkZWRDaGFu
Z2VkICAgICAgICAgICAgICA9IDFMTFUgPDwgMTQsCi0gICAgICAgIE1hc2tzVG9Cb3VuZHNDaGFu
Z2VkICAgICAgICAgICAgPSAxTExVIDw8IDE1LAotICAgICAgICBPcGFxdWVDaGFuZ2VkICAgICAg
ICAgICAgICAgICAgID0gMUxMVSA8PCAxNiwKLSAgICAgICAgQ29udGVudHNIaWRkZW5DaGFuZ2Vk
ICAgICAgICAgICA9IDFMTFUgPDwgMTcsCi0gICAgICAgIE1hc2tMYXllckNoYW5nZWQgICAgICAg
ICAgICAgICAgPSAxTExVIDw8IDE4LAotICAgICAgICBDbG9uZWRDb250ZW50c0NoYW5nZWQgICAg
ICAgICAgID0gMUxMVSA8PCAxOSwKLSAgICAgICAgQ29udGVudHNSZWN0Q2hhbmdlZCAgICAgICAg
ICAgICA9IDFMTFUgPDwgMjAsCi0gICAgICAgIENvbnRlbnRzU2NhbGVDaGFuZ2VkICAgICAgICAg
ICAgPSAxTExVIDw8IDIxLAotICAgICAgICBDb3JuZXJSYWRpdXNDaGFuZ2VkICAgICAgICAgICAg
ID0gMUxMVSA8PCAyMiwKLSAgICAgICAgU2hhcGVSb3VuZGVkUmVjdENoYW5nZWQgICAgICAgICA9
IDFMTFUgPDwgMjMsCi0gICAgICAgIFNoYXBlUGF0aENoYW5nZWQgICAgICAgICAgICAgICAgPSAx
TExVIDw8IDI0LAotICAgICAgICBNaW5pZmljYXRpb25GaWx0ZXJDaGFuZ2VkICAgICAgID0gMUxM
VSA8PCAyNSwKLSAgICAgICAgTWFnbmlmaWNhdGlvbkZpbHRlckNoYW5nZWQgICAgICA9IDFMTFUg
PDwgMjYsCi0gICAgICAgIEJsZW5kTW9kZUNoYW5nZWQgICAgICAgICAgICAgICAgPSAxTExVIDw8
IDI3LAotICAgICAgICBXaW5kUnVsZUNoYW5nZWQgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAy
OCwKLSAgICAgICAgU3BlZWRDaGFuZ2VkICAgICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMjks
Ci0gICAgICAgIFRpbWVPZmZzZXRDaGFuZ2VkICAgICAgICAgICAgICAgPSAxTExVIDw8IDMwLAot
ICAgICAgICBCYWNraW5nU3RvcmVDaGFuZ2VkICAgICAgICAgICAgID0gMUxMVSA8PCAzMSwKLSAg
ICAgICAgQmFja2luZ1N0b3JlQXR0YWNobWVudENoYW5nZWQgICA9IDFMTFUgPDwgMzIsCi0gICAg
ICAgIEZpbHRlcnNDaGFuZ2VkICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDMzLAotICAgICAg
ICBBbmltYXRpb25zQ2hhbmdlZCAgICAgICAgICAgICAgID0gMUxMVSA8PCAzNCwKLSAgICAgICAg
RWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkICAgICA9IDFMTFUgPDwgMzUsCi0gICAgICAgIEN1
c3RvbUFwcGVhcmFuY2VDaGFuZ2VkICAgICAgICAgPSAxTExVIDw8IDM2LAotICAgICAgICBVc2Vy
SW50ZXJhY3Rpb25FbmFibGVkQ2hhbmdlZCAgID0gMUxMVSA8PCAzNywKLSAgICAgICAgRXZlbnRS
ZWdpb25DaGFuZ2VkICAgICAgICAgICAgICA9IDFMTFUgPDwgMzgsCisgICAgICAgIE5hbWVDaGFu
Z2VkICAgICAgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAxLAorICAgICAgICBDaGlsZHJl
bkNoYW5nZWQgICAgICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMiwKKyAgICAgICAgUG9zaXRp
b25DaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDMsCisgICAgICAgIEJvdW5k
c0NoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCA0LAorICAgICAgICBCYWNr
Z3JvdW5kQ29sb3JDaGFuZ2VkICAgICAgICAgICAgICA9IDFMTFUgPDwgNSwKKyAgICAgICAgQW5j
aG9yUG9pbnRDaGFuZ2VkICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDYsCisgICAgICAgIEJv
cmRlcldpZHRoQ2hhbmdlZCAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCA3LAorICAgICAgICBC
b3JkZXJDb2xvckNoYW5nZWQgICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgOCwKKyAgICAgICAg
T3BhY2l0eUNoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDksCisgICAgICAg
IFRyYW5zZm9ybUNoYW5nZWQgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAxMCwKKyAgICAg
ICAgU3VibGF5ZXJUcmFuc2Zvcm1DaGFuZ2VkICAgICAgICAgICAgPSAxTExVIDw8IDExLAorICAg
ICAgICBIaWRkZW5DaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMTIsCisg
ICAgICAgIEdlb21ldHJ5RmxpcHBlZENoYW5nZWQgICAgICAgICAgICAgID0gMUxMVSA8PCAxMywK
KyAgICAgICAgRG91YmxlU2lkZWRDaGFuZ2VkICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDE0
LAorICAgICAgICBNYXNrc1RvQm91bmRzQ2hhbmdlZCAgICAgICAgICAgICAgICA9IDFMTFUgPDwg
MTUsCisgICAgICAgIE9wYXF1ZUNoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8
PCAxNiwKKyAgICAgICAgQ29udGVudHNIaWRkZW5DaGFuZ2VkICAgICAgICAgICAgICAgPSAxTExV
IDw8IDE3LAorICAgICAgICBNYXNrTGF5ZXJDaGFuZ2VkICAgICAgICAgICAgICAgICAgICA9IDFM
TFUgPDwgMTgsCisgICAgICAgIENsb25lZENvbnRlbnRzQ2hhbmdlZCAgICAgICAgICAgICAgID0g
MUxMVSA8PCAxOSwKKyAgICAgICAgQ29udGVudHNSZWN0Q2hhbmdlZCAgICAgICAgICAgICAgICAg
PSAxTExVIDw8IDIwLAorICAgICAgICBDb250ZW50c1NjYWxlQ2hhbmdlZCAgICAgICAgICAgICAg
ICA9IDFMTFUgPDwgMjEsCisgICAgICAgIENvcm5lclJhZGl1c0NoYW5nZWQgICAgICAgICAgICAg
ICAgID0gMUxMVSA8PCAyMiwKKyAgICAgICAgU2hhcGVSb3VuZGVkUmVjdENoYW5nZWQgICAgICAg
ICAgICAgPSAxTExVIDw8IDIzLAorICAgICAgICBTaGFwZVBhdGhDaGFuZ2VkICAgICAgICAgICAg
ICAgICAgICA9IDFMTFUgPDwgMjQsCisgICAgICAgIE1pbmlmaWNhdGlvbkZpbHRlckNoYW5nZWQg
ICAgICAgICAgID0gMUxMVSA8PCAyNSwKKyAgICAgICAgTWFnbmlmaWNhdGlvbkZpbHRlckNoYW5n
ZWQgICAgICAgICAgPSAxTExVIDw8IDI2LAorICAgICAgICBCbGVuZE1vZGVDaGFuZ2VkICAgICAg
ICAgICAgICAgICAgICA9IDFMTFUgPDwgMjcsCisgICAgICAgIFdpbmRSdWxlQ2hhbmdlZCAgICAg
ICAgICAgICAgICAgICAgID0gMUxMVSA8PCAyOCwKKyAgICAgICAgU3BlZWRDaGFuZ2VkICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDI5LAorICAgICAgICBUaW1lT2Zmc2V0Q2hhbmdl
ZCAgICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMzAsCisgICAgICAgIEJhY2tpbmdTdG9yZUNo
YW5nZWQgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAzMSwKKyAgICAgICAgQmFja2luZ1N0b3Jl
QXR0YWNobWVudENoYW5nZWQgICAgICAgPSAxTExVIDw8IDMyLAorICAgICAgICBGaWx0ZXJzQ2hh
bmdlZCAgICAgICAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMzMsCisgICAgICAgIEFuaW1hdGlv
bnNDaGFuZ2VkICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAzNCwKKyAgICAgICAgRWRnZUFu
dGlhbGlhc2luZ01hc2tDaGFuZ2VkICAgICAgICAgPSAxTExVIDw8IDM1LAorICAgICAgICBDdXN0
b21BcHBlYXJhbmNlQ2hhbmdlZCAgICAgICAgICAgICA9IDFMTFUgPDwgMzYsCisgICAgICAgIFVz
ZXJJbnRlcmFjdGlvbkVuYWJsZWRDaGFuZ2VkICAgICAgID0gMUxMVSA8PCAzNywKKyAgICAgICAg
RXZlbnRSZWdpb25DaGFuZ2VkICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDM4LAogI2lmIEhB
VkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykKLSAgICAgICAgU2VwYXJhdGVkQ2hh
bmdlZCAgICAgICAgICAgICAgICA9IDFMTFUgPDwgMzksCisgICAgICAgIFNlcGFyYXRlZENoYW5n
ZWQgICAgICAgICAgICAgICAgICAgID0gMUxMVSA8PCAzOSwKKyNpZiBIQVZFKENPUkVfQU5JTUFU
SU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgICAgICBTZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkICAg
ICAgICAgICAgICA9IDFMTFUgPDwgNDAsCisgICAgICAgIERlc2NlbmRlbnRPZlNlcGFyYXRlZFBv
cnRhbENoYW5nZWQgID0gMUxMVSA8PCA0MSwKKyNlbmRpZgogI2VuZGlmCiAgICAgfTsKIApAQCAt
MTgzLDYgKzE4NywxMCBAQCBwdWJsaWM6CiAgICAgICAgIFdlYkNvcmU6OkV2ZW50UmVnaW9uIGV2
ZW50UmVnaW9uOwogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykKICAg
ICAgICAgYm9vbCBpc1NlcGFyYXRlZDsKKyNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRF
RF9QT1JUQUxTKQorICAgICAgICBib29sIGlzU2VwYXJhdGVkUG9ydGFsOworICAgICAgICBib29s
IGlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsOworI2VuZGlmCiAjZW5kaWYKICAgICB9Owog
CkBAIC0zODgsNiArMzk2LDEwIEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0
OjpSZW0KICAgICAgICAgV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJD
aGFuZ2U6OkV2ZW50UmVnaW9uQ2hhbmdlZAogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJB
VEVEX0xBWUVSUykKICAgICAgICAgLCBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpMYXllckNoYW5nZTo6U2VwYXJhdGVkQ2hhbmdlZAorI2lmIEhBVkUoQ09SRV9BTklNQVRJT05f
U0VQQVJBVEVEX1BPUlRBTFMpCisgICAgICAgICwgV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6TGF5ZXJDaGFuZ2U6OlNlcGFyYXRlZFBvcnRhbENoYW5nZWQKKyAgICAgICAgLCBX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNoYW5nZTo6RGVzY2VuZGVu
dE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZAorI2VuZGlmCiAjZW5kaWYKICAgICA+OwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0JKHJldmlzaW9uIDI3ODE2NCkK
KysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSwxMCBAQCBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0CiAgICAgLCB1c2VySW50ZXJhY3Rpb25F
bmFibGVkKHRydWUpCiAjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfTEFZRVJTKQog
ICAgICwgaXNTZXBhcmF0ZWQoZmFsc2UpCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFU
RURfUE9SVEFMUykKKyAgICAsIGlzU2VwYXJhdGVkUG9ydGFsKGZhbHNlKQorICAgICwgaXNEZXNj
ZW5kZW50T2ZTZXBhcmF0ZWRQb3J0YWwoZmFsc2UpCisjZW5kaWYKICNlbmRpZgogewogfQpAQCAt
MTcxLDYgKzE3NSwxMCBAQCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0
CiAgICAgLCBldmVudFJlZ2lvbihvdGhlci5ldmVudFJlZ2lvbikKICNpZiBIQVZFKENPUkVfQU5J
TUFUSU9OX1NFUEFSQVRFRF9MQVlFUlMpCiAgICAgLCBpc1NlcGFyYXRlZChvdGhlci5pc1NlcGFy
YXRlZCkKKyNpZiBIQVZFKENPUkVfQU5JTUFUSU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgICwg
aXNTZXBhcmF0ZWRQb3J0YWwob3RoZXIuaXNTZXBhcmF0ZWRQb3J0YWwpCisgICAgLCBpc0Rlc2Nl
bmRlbnRPZlNlcGFyYXRlZFBvcnRhbChvdGhlci5pc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRh
bCkKKyNlbmRpZgogI2VuZGlmCiB7CiAgICAgLy8gRklYTUU6IExheWVyUHJvcGVydGllcyBzaG91
bGQgcmVmZXJlbmNlIGJhY2tpbmcgc3RvcmUgYnkgSUQsIHNvIHRoYXQgdHdvIGxheWVycyBjYW4g
aGF2ZSB0aGUgc2FtZSBiYWNraW5nIHN0b3JlIChmb3IgY2xvbmVzKS4KQEAgLTMxMyw2ICszMjEs
MTQgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcgogI2lmIEhBVkUo
Q09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykKICAgICBpZiAoY2hhbmdlZFByb3BlcnRp
ZXMgJiBTZXBhcmF0ZWRDaGFuZ2VkKQogICAgICAgICBlbmNvZGVyIDw8IGlzU2VwYXJhdGVkOwor
CisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9SVEFMUykKKyAgICBpZiAoY2hh
bmdlZFByb3BlcnRpZXMgJiBTZXBhcmF0ZWRQb3J0YWxDaGFuZ2VkKQorICAgICAgICBlbmNvZGVy
IDw8IGlzU2VwYXJhdGVkUG9ydGFsOworCisgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzICYgRGVz
Y2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCkKKyAgICAgICAgZW5jb2RlciA8PCBpc0Rl
c2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbDsKKyNlbmRpZgogI2VuZGlmCiB9CiAKQEAgLTU1MCwx
OCArNTY2LDI1IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHIKICAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNTZXBhcmF0ZWQpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKworI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJB
VEVEX1BPUlRBTFMpCisgICAgaWYgKHJlc3VsdC5jaGFuZ2VkUHJvcGVydGllcyAmIFNlcGFyYXRl
ZFBvcnRhbENoYW5nZWQpIHsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNT
ZXBhcmF0ZWRQb3J0YWwpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IGlmIChyZXN1bHQuY2hhbmdlZFByb3BlcnRpZXMgJiBEZXNjZW5kZW50T2ZTZXBhcmF0ZWRQb3J0
YWxDaGFuZ2VkKSB7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzRGVzY2Vu
ZGVudE9mU2VwYXJhdGVkUG9ydGFsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisjZW5kaWYKICNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbigpCi17Ci19Ci0KLVJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjp+UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24oKQotewot
fQorUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
KCkgPSBkZWZhdWx0OworUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246On5SZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbigpID0gZGVmYXVsdDsKIAogdm9pZCBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKQEAgLTk1Miw2ICs5
NzUsMTQgQEAgc3RhdGljIHZvaWQgZHVtcENoYW5nZWRMYXllcnMoVGV4dFN0cmVhbQogI2lmIEhB
VkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykKICAgICAgICAgaWYgKGxheWVyUHJv
cGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpT
ZXBhcmF0ZWRDaGFuZ2VkKQogICAgICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJpc1NlcGFyYXRl
ZCIsIGxheWVyUHJvcGVydGllcy5pc1NlcGFyYXRlZCk7CisKKyNpZiBIQVZFKENPUkVfQU5JTUFU
SU9OX1NFUEFSQVRFRF9QT1JUQUxTKQorICAgICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVzLmNoYW5n
ZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlNlcGFyYXRlZFBvcnRh
bENoYW5nZWQpCisgICAgICAgICAgICB0cy5kdW1wUHJvcGVydHkoImlzU2VwYXJhdGVkUG9ydGFs
IiwgbGF5ZXJQcm9wZXJ0aWVzLmlzU2VwYXJhdGVkUG9ydGFsKTsKKworICAgICAgICBpZiAobGF5
ZXJQcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OkRlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbENoYW5nZWQpCisgICAgICAgICAgICB0cy5k
dW1wUHJvcGVydHkoImlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsIiwgbGF5ZXJQcm9wZXJ0
aWVzLmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsKTsKKyNlbmRpZgogI2VuZGlmCiAgICAg
fQogfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90
ZS5jcHAJKHJldmlzaW9uIDI3ODE2NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC04OTMsNyArODkzLDcgQEAgYm9vbCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmlzU2Vw
YXJhdGVkKAogICAgIHJldHVybiBtX3Byb3BlcnRpZXMuaXNTZXBhcmF0ZWQ7CiB9CiAKLXZvaWQg
UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRTZXBhcmF0ZWQoYm9vbCB2YWx1ZSkKK3ZvaWQgUGxh
dGZvcm1DQUxheWVyUmVtb3RlOjpzZXRJc1NlcGFyYXRlZChib29sIHZhbHVlKQogewogICAgIGlm
IChtX3Byb3BlcnRpZXMuaXNTZXBhcmF0ZWQgPT0gdmFsdWUpCiAgICAgICAgIHJldHVybjsKQEAg
LTkwMSw2ICs5MDEsMzYgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldFNlcGFyYXRl
ZAogICAgIG1fcHJvcGVydGllcy5pc1NlcGFyYXRlZCA9IHZhbHVlOwogICAgIG1fcHJvcGVydGll
cy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlNlcGFy
YXRlZENoYW5nZWQpOwogfQorCisjaWYgSEFWRShDT1JFX0FOSU1BVElPTl9TRVBBUkFURURfUE9S
VEFMUykKK2Jvb2wgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjppc1NlcGFyYXRlZFBvcnRhbCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5pc1NlcGFyYXRlZFBvcnRhbDsKK30KKwor
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldElzU2VwYXJhdGVkUG9ydGFsKGJvb2wgdmFs
dWUpCit7CisgICAgaWYgKG1fcHJvcGVydGllcy5pc1NlcGFyYXRlZFBvcnRhbCA9PSB2YWx1ZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9wZXJ0aWVzLmlzU2VwYXJhdGVkUG9ydGFsID0g
dmFsdWU7CisgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6U2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCk7Cit9CisKK2Jvb2wgUGxh
dGZvcm1DQUxheWVyUmVtb3RlOjppc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRhbCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5pc0Rlc2NlbmRlbnRPZlNlcGFyYXRlZFBvcnRh
bDsKK30KKwordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldElzRGVzY2VuZGVudE9mU2Vw
YXJhdGVkUG9ydGFsKGJvb2wgdmFsdWUpCit7CisgICAgaWYgKG1fcHJvcGVydGllcy5pc0Rlc2Nl
bmRlbnRPZlNlcGFyYXRlZFBvcnRhbCA9PSB2YWx1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9wcm9wZXJ0aWVzLmlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsID0gdmFsdWU7CisgICAg
bV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6RGVzY2VuZGVudE9mU2VwYXJhdGVkUG9ydGFsQ2hhbmdlZCk7Cit9CisjZW5kaWYKICNl
bmRpZgogCiBSZWY8UGxhdGZvcm1DQUxheWVyPiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNyZWF0
ZUNvbXBhdGlibGVMYXllcihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBsYXllclR5cGUsIFBs
YXRmb3JtQ0FMYXllckNsaWVudCogY2xpZW50KSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAkocmV2aXNpb24gMjc4MTY0KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FM
YXllclJlbW90ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODEsNyArMTgxLDE1IEBAIHB1YmxpYzoK
IAogI2lmIEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX0xBWUVSUykKICAgICBib29sIGlz
U2VwYXJhdGVkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTZXBhcmF0ZWQoYm9vbCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBzZXRJc1NlcGFyYXRlZChib29sKSBvdmVycmlkZTsKKworI2lm
IEhBVkUoQ09SRV9BTklNQVRJT05fU0VQQVJBVEVEX1BPUlRBTFMpCisgICAgYm9vbCBpc1NlcGFy
YXRlZFBvcnRhbCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0SXNTZXBhcmF0ZWRQb3J0
YWwoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICBib29sIGlzRGVzY2VuZGVudE9mU2VwYXJhdGVkUG9y
dGFsKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRJc0Rlc2NlbmRlbnRPZlNlcGFyYXRl
ZFBvcnRhbChib29sKSBvdmVycmlkZTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICBXZWJDb3JlOjpU
aWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>