<?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>226113</bug_id>
          
          <creation_ts>2021-05-21 14:33:57 -0700</creation_ts>
          <short_desc>Use CheckedCondition in more places</short_desc>
          <delta_ts>2021-05-21 18:54:18 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1762597</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 14:33:57 -0700</bug_when>
    <thetext>Use CheckedCondition in more places to benefit from Clang Thread Safety Analysis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762600</commentid>
    <comment_count>1</comment_count>
      <attachid>429343</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 14:40:29 -0700</bug_when>
    <thetext>Created attachment 429343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762601</commentid>
    <comment_count>2</comment_count>
      <attachid>429344</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 14:45:19 -0700</bug_when>
    <thetext>Created attachment 429344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762602</commentid>
    <comment_count>3</comment_count>
      <attachid>429345</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 14:51:32 -0700</bug_when>
    <thetext>Created attachment 429345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762611</commentid>
    <comment_count>4</comment_count>
      <attachid>429349</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 15:09:42 -0700</bug_when>
    <thetext>Created attachment 429349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762687</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-21 17:12:44 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 429349 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762688</commentid>
    <comment_count>6</comment_count>
      <attachid>429372</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 17:15:24 -0700</bug_when>
    <thetext>Created attachment 429372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762715</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-21 18:53:47 -0700</bug_when>
    <thetext>Committed r277904 (238037@main): &lt;https://commits.webkit.org/238037@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429372.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762716</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-21 18:54:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/78338633&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429343</attachid>
            <date>2021-05-21 14:40:29 -0700</date>
            <delta_ts>2021-05-21 14:49:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226113-20210521144029.patch</filename>
            <type>text/plain</type>
            <size>49553</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI1MTM5YmMwOTQwNmY5MDYxZjU1Zjkx
ZTRiNjE3Mzc0NzM2NzQ2MTguLjc1ODRjNjk3MWE1YTNmNjhiNmM2MWExYWM1ZDQwYThjZjUyYTNh
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBsYWNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTEz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIENo
ZWNrZWRDb25kaXRpb24gaW4gbW9yZSBwbGFjZXMgdG8gYmVuZWZpdCBmcm9tIENsYW5nIFRocmVh
ZCBTYWZldHkKKyAgICAgICAgQW5hbHlzaXMuCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5oOgor
ICAgICAgICAqIHd0Zi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmg6CisgICAgICAgICogd3RmL1dU
RlNlbWFwaG9yZS5oOgorICAgICAgICAqIHd0Zi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoV1RG
OjpXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseSk6CisgICAgICAgICogd3RmL2dlbmVyaWMvUnVu
TG9vcEdlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp+UnVuTG9vcCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OnBvcHVsYXRlVGFza3MpOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpydW5JbXBsKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6Ondha2VVcFdpdGhMb2NrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVw
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c2NoZWR1bGUpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpzY2hlZHVsZUFuZFdha2VVcFdpdGhMb2NrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjp+VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUgY29uc3QpOgorICAgICAg
ICAqIHd0Zi93aW4vUnVuTG9vcFdpbi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3Rh
cnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlIGNvbnN0KToKKwogMjAyMS0wNS0y
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gVW5h
YmxlIHRvIHVwbG9hZCBmaWxlcyB0aGF0IGFyZSBzdG9yZWQgaW4gdGhlIGNsb3VkICh3aXRob3V0
IGEgbG9jYWwgY29weSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYTZjOWI5MjA3YzJlMmZhODUyMTMyZjM4NTVj
OGY5ZDEwNTYzMzdlLi5mOTNhZjkyMDFjOGY2MjZiNTQyN2Y5YzdjOWQ0MGQyZjQ2ZThmNjFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBs
YWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2
MTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IENoZWNrZWRDb25kaXRpb24gaW4gbW9yZSBwbGFjZXMgdG8gYmVuZWZpdCBmcm9tIENsYW5nIFRo
cmVhZCBTYWZldHkKKyAgICAgICAgQW5hbHlzaXMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVGFzay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRhc2tT
eW5jaHJvbml6ZXI6OndhaXRGb3JUYXNrQ29tcGxldGlvbik6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OnRhc2tDb21wbGV0ZWQpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmg6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFz
ZVRhc2tTeW5jaHJvbml6ZXI6OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgICh3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckFuZFB1c2hGcmFtZXMpOgorICAgICAgICAo
d2ViS2l0V2ViQXVkaW9TcmNSZW5kZXJJdGVyYXRpb24pOgorICAgICAgICAod2ViS2l0V2ViQXVk
aW9TcmNDaGFuZ2VTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29k
ZXJHU3RyZWFtZXI6OnNldEhhc0VPUyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJH
U3RyZWFtZXI6Om5vdGlmeVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJH
U3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6aGFuZGxlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6cHJlcGFyZVBpcGVsaW5lKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckdTdHJlYW1lcjo6cHVzaEVuY29kZWREYXRh
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0
cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01haW5UaHJl
YWROb3RpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0Nv
bXBvc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpyZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6dHJpZ2dlclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpjYW5jZWxSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6cHVzaE5leHRIb2xlUHVuY2hCdWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp3YWl0Rm9yQ0RNQXR0YWNobWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3Rh
bmNlQXR0YWNoZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6V1RGX0dVQVJERURfQllfTE9DSyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvaG9sZXB1bmNoL01lZGlhUGxheWVyUHJpdmF0ZUhvbGVQdW5jaC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2g6OnB1c2hOZXh0SG9s
ZVB1bmNoQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29z
aWFJbWFnZUJ1ZmZlclBpcGUuY3BwOgorICAgICAgICAoTmljb3NpYTo6Tmljb3NpYUltYWdlQnVm
ZmVyUGlwZVNvdXJjZTo6aGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmNwcDoKKyAgICAgICAgKE5pY29zaWE6OkdDR0xM
YXllcjo6c3dhcEJ1ZmZlcnNJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6flRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eTo6YWN0aXZhdGVPbkNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6cmVsZWFzZVVudXNl
ZEJ1ZmZlcnNUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHk6OnN3YXBCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdU
ZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJv
eHk6OnNjaGVkdWxlVXBkYXRlT25Db21wb3NpdG9yVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmNvbXBvc2l0b3JUaHJlYWRVcGRhdGVU
aW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJQcm94eTo6V1RGX1JFVFVSTlNfTE9DSyk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjpXVEZfR1VBUkRFRF9CWV9MT0NLKToK
KwogMjAyMS0wNS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkb3B0IENoZWNrZWRMb2NrIGluIFNjcm9sbGluZ1RyZWUgYW5kIGZpeCB0aHJlYWRpbmcgYnVn
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9S
dW5Mb29wLmgKaW5kZXggYjg2MmZiYzMzNTg0YWI1ZGJjZjQ4MWJmMThmMmE0M2JlMmM3MjRkMS4u
ZTQzNmJmMjM5YWJjMjJmMTJlOGVkNDAzYjk5NWNmOGI4NmM1M2U4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAt
MjgsOCArMjgsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2lu
Y2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2Nr
Lmg+Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uRGlzcGF0Y2hl
ci5oPgpAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgUmVmPFJ1bkxvb3A+IG1f
cnVuTG9vcDsKIAogI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xPT1ApCi0gICAgICAgIGJvb2wgaXNB
Y3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdDsKKyAgICAgICAgYm9vbCBpc0FjdGl2
ZVdpdGhMb2NrKCkgY29uc3QgV1RGX1JFUVVJUkVTX0xPQ0sobV9ydW5Mb29wLT5tX2xvb3BMb2Nr
KTsKICAgICAgICAgdm9pZCB0aW1lckZpcmVkKCk7CiAgICAgICAgIE1vbm90b25pY1RpbWUgbV9u
ZXh0RmlyZURhdGU7CiAgICAgICAgIFNlY29uZHMgbV9pbnRlcnZhbDsKQEAgLTE1OSw4ICsxNTks
OCBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZyB7IGZhbHNlIH07CiAgICAg
ICAgIFNlY29uZHMgbV9pbnRlcnZhbCB7IDAgfTsKICNlbGlmIFVTRShHRU5FUklDX0VWRU5UX0xP
T1ApCi0gICAgICAgIGJvb2wgaXNBY3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdDsK
LSAgICAgICAgdm9pZCBzdG9wKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CisgICAgICAgIGJvb2wg
aXNBY3RpdmVXaXRoTG9jaygpIGNvbnN0IFdURl9SRVFVSVJFU19MT0NLKG1fcnVuTG9vcC0+bV9s
b29wTG9jayk7CisgICAgICAgIHZvaWQgc3RvcFdpdGhMb2NrKCkgV1RGX1JFUVVJUkVTX0xPQ0so
bV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKIAogICAgICAgICBjbGFzcyBTY2hlZHVsZWRUYXNrOwog
ICAgICAgICBSZWZQdHI8U2NoZWR1bGVkVGFzaz4gbV9zY2hlZHVsZWRUYXNrOwpAQCAtMjI4LDcg
KzIyOCw3IEBAIHByaXZhdGU6CiAgICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBt
ZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKICAgICBIV05EIG1fcnVuTG9v
cE1lc3NhZ2VXaW5kb3c7CiAKLSAgICBMb2NrIG1fbG9vcExvY2s7CisgICAgQ2hlY2tlZExvY2sg
bV9sb29wTG9jazsKICNlbGlmIFVTRShDT0NPQV9FVkVOVF9MT09QKQogICAgIHN0YXRpYyB2b2lk
IHBlcmZvcm1Xb3JrKHZvaWQqKTsKICAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wUmVmPiBtX3J1bkxv
b3A7CkBAIC0yNDMsOSArMjQzLDkgQEAgcHJpdmF0ZToKICAgICBXZWFrSGFzaFNldDxPYnNlcnZl
cj4gbV9vYnNlcnZlcnM7CiAjZWxpZiBVU0UoR0VORVJJQ19FVkVOVF9MT09QKQogICAgIHZvaWQg
c2NoZWR1bGUoUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJik7Ci0gICAgdm9pZCBzY2hl
ZHVsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+
JiYpOwotICAgIHZvaWQgd2FrZVVwKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0gICAgdm9pZCBz
Y2hlZHVsZUFuZFdha2VVcChjb25zdCBBYnN0cmFjdExvY2tlciYsIFJlZjxUaW1lckJhc2U6OlNj
aGVkdWxlZFRhc2s+JiYpOworICAgIHZvaWQgc2NoZWR1bGVXaXRoTG9jayhSZWY8VGltZXJCYXNl
OjpTY2hlZHVsZWRUYXNrPiYmKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2xvb3BMb2NrKTsKKyAgICB2
b2lkIHdha2VVcFdpdGhMb2NrKCkgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb29wTG9jayk7CisgICAg
dm9pZCBzY2hlZHVsZUFuZFdha2VVcFdpdGhMb2NrKFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRh
c2s+JiYpIFdURl9SRVFVSVJFU19MT0NLKG1fbG9vcExvY2spOwogCiAgICAgZW51bSBjbGFzcyBS
dW5Nb2RlIHsKICAgICAgICAgSXRlcmF0ZSwKQEAgLTI2MSw5ICsyNjEsOSBAQCBwcml2YXRlOgog
CiAgICAgZnJpZW5kIGNsYXNzIFRpbWVyQmFzZTsKIAotICAgIExvY2sgbV9sb29wTG9jazsKKyAg
ICBDaGVja2VkTG9jayBtX2xvb3BMb2NrOwogICAgIENvbmRpdGlvbiBtX3JlYWR5VG9SdW47Ci0g
ICAgQ29uZGl0aW9uIG1fc3RvcENvbmRpdGlvbjsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fc3Rv
cENvbmRpdGlvbjsKICAgICBWZWN0b3I8UmVmUHRyPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4+
IG1fc2NoZWR1bGVzOwogICAgIFZlY3RvcjxTdGF0dXMqPiBtX21haW5Mb29wczsKICAgICBib29s
IG1fc2h1dGRvd24geyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3luY2hy
b25pemVkRml4ZWRRdWV1ZS5oIGIvU291cmNlL1dURi93dGYvU3luY2hyb25pemVkRml4ZWRRdWV1
ZS5oCmluZGV4IDEwYWQ4NDZmZGE3MTdlYTU2NWQ0M2U3YTJjNTMyMTExZDVjNTk0ZjQuLmIzOTBk
ZTM5NGZkMmUyMzc0ZTU2NjQzMTMyMzk5YmU3MzU1MTY5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1N5bmNocm9uaXplZEZpeGVkUXVldWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TeW5j
aHJvbml6ZWRGaXhlZFF1ZXVlLmgKQEAgLTI1LDkgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBvcGVuKCkKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja0hvbGRlcihtX211
dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBpZiAobV9v
cGVuKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgY2xvc2UoKQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1f
bXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIGlmICgh
bV9vcGVuKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02NCwxNiArNjQsMTkgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc09wZW4oKQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9s
ZGVyKG1fbXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAg
IHJldHVybiBtX29wZW47CiAgICAgfQogCiAgICAgYm9vbCBlbnF1ZXVlKGNvbnN0IFQmIHZhbHVl
KQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1fbXV0ZXgpOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICAgICAgLy8gV2FpdCBmb3IgYW4gZW1w
dHkgcGxhY2UgdG8gYmUgYXZhaWxhYmxlIGluIHRoZSBxdWV1ZS4KLSAgICAgICAgbV9jb25kaXRp
b24ud2FpdChtX211dGV4LCBbdGhpc10oKSB7IHJldHVybiAhbV9vcGVuIHx8IG1fcXVldWUuc2l6
ZSgpIDwgQnVmZmVyU2l6ZTsgfSk7CisgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9sb2NrLCBb
dGhpc10geworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jayk7CisgICAgICAgICAgICBy
ZXR1cm4gIW1fb3BlbiB8fCBtX3F1ZXVlLnNpemUoKSA8IEJ1ZmZlclNpemU7CisgICAgICAgIH0p
OwogCiAgICAgICAgIC8vIFRoZSBxdWV1ZSBpcyBjbG9zaW5nLCBleGl0IGltbWVkaWF0ZWx5Lgog
ICAgICAgICBpZiAoIW1fb3BlbikKQEAgLTg5LDEwICs5MiwxMyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGRlcXVldWUoVCYgdmFsdWUpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tIb2xk
ZXIobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKIAogICAgICAg
ICAvLyBXYWl0IGZvciBhbiBpdGVtIHRvIGJlIGFkZGVkLgotICAgICAgICBtX2NvbmRpdGlvbi53
YWl0KG1fbXV0ZXgsIFt0aGlzXSgpIHsgcmV0dXJuICFtX29wZW4gfHwgbV9xdWV1ZS5zaXplKCk7
IH0pOworICAgICAgICBtX2NvbmRpdGlvbi53YWl0KG1fbG9jaywgW3RoaXNdIHsKKyAgICAgICAg
ICAgIGFzc2VydElzSGVsZChtX2xvY2spOworICAgICAgICAgICAgcmV0dXJuICFtX29wZW4gfHwg
bV9xdWV1ZS5zaXplKCk7CisgICAgICAgIH0pOwogCiAgICAgICAgIC8vIFRoZSBxdWV1ZSBpcyBj
bG9zaW5nLCBleGl0IGltbWVkaWF0ZWx5LgogICAgICAgICBpZiAoIW1fb3BlbikKQEAgLTExMywx
MSArMTE5LDExIEBAIHByaXZhdGU6CiAgICAgICAgIHN0YXRpY19hc3NlcnQoISgoQnVmZmVyU2l6
ZSAtIDEpICYgQnVmZmVyU2l6ZSksICJCdWZmZXJTaXplIG11c3QgYmUgcG93ZXIgb2YgMi4iKTsK
ICAgICB9CiAKLSAgICBMb2NrIG1fbXV0ZXg7Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwor
ICAgIENoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9u
OwogCi0gICAgYm9vbCBtX29wZW4geyB0cnVlIH07Ci0gICAgRGVxdWU8VCwgQnVmZmVyU2l6ZT4g
bV9xdWV1ZTsKKyAgICBib29sIG1fb3BlbiBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykgeyB0
cnVlIH07CisgICAgRGVxdWU8VCwgQnVmZmVyU2l6ZT4gbV9xdWV1ZSBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fbG9jayk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XVEZTZW1h
cGhvcmUuaCBiL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5oCmluZGV4IDhlYTViZWZmOWVm
NDgyZjZjZDY1OTEwYzUyYWM2NDFiNWJhMjJjNzUuLjVhOTgwZjZlNjQ2MmVkNTNlZGVmOWM2MTli
YTcyMDE2ZjY5MjE5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5oCkBAIC0yNSw4ICsyNSw4IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgotI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNw
YWNlIFdURiB7CkBAIC00MiwxOCArNDIsMTggQEAgcHVibGljOgogCiAgICAgdm9pZCBzaWduYWwo
KQogICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIG1fdmFsdWUrKzsKICAgICAgICAg
bV9jb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfQogCiAgICAgYm9vbCB3YWl0VW50aWwoY29u
c3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0KQogICAgIHsKLSAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwotICAgICAgICBib29sIHNhdGlzZmllZCA9IG1f
Y29uZGl0aW9uLndhaXRVbnRpbChtX2xvY2ssIHRpbWVvdXQsCi0gICAgICAgICAgICBbJl0gewot
ICAgICAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlOwotICAgICAgICAgICAgfSk7CisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKKyAgICAgICAgYm9vbCBzYXRpc2ZpZWQgPSBtX2Nv
bmRpdGlvbi53YWl0VW50aWwobV9sb2NrLCB0aW1lb3V0LCBbJl0geworICAgICAgICAgICAgYXNz
ZXJ0SXNIZWxkKG1fbG9jayk7CisgICAgICAgICAgICByZXR1cm4gbV92YWx1ZTsKKyAgICAgICAg
fSk7CiAgICAgICAgIGlmIChzYXRpc2ZpZWQpCiAgICAgICAgICAgICAtLW1fdmFsdWU7CiAgICAg
ICAgIHJldHVybiBzYXRpc2ZpZWQ7CkBAIC03MCw5ICs3MCw5IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgdW5zaWduZWQgbV92YWx1ZSB7IDAgfTsKLSAgICBMb2NrIG1fbG9jazsK
LSAgICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgdW5zaWduZWQgbV92YWx1ZSBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fbG9jaykgeyAwIH07CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAg
IENoZWNrZWRDb25kaXRpb24gbV9jb25kaXRpb247CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwCmlu
ZGV4IGRmN2QzN2E4ZWM2NDU1MmFlMDFjMmQ1OTBkMzVkZTAyZjU1MTE2NDUuLmM1MzQxNDdiODhk
ZjMzYmE2YTBiYTA5YTllMTgyYWI5NmMzNTRhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1dvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcApAQCAtMjgs
MTAgKzI4LDEwIEBACiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogCiAjaW5jbHVkZSA8bXV0
ZXg+Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29u
ZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZD
b3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTEwNSw4ICsxMDUsNyBAQCB2b2lkIFdv
cmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBXVEY6OkZ1bmN0aW9u
PHZvaWQgKHNpemVfdCBpbgogCiAgICAgICAgIHZvaWQgZGlzcGF0Y2goY29uc3QgV1RGOjpGdW5j
dGlvbjx2b2lkICgpPiogZnVuY3Rpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xk
ZXIgaG9sZGVyKG1fbG9jayk7Ci0KKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sg
fTsKICAgICAgICAgICAgIG1fcXVldWUuYXBwZW5kKGZ1bmN0aW9uKTsKICAgICAgICAgICAgIG1f
Y29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgICAgICB9CkBAIC0xMTgsOSArMTE3LDkgQEAgdm9p
ZCBXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywgV1RGOjpGdW5j
dGlvbjx2b2lkIChzaXplX3QgaW4KICAgICAgICAgICAgICAgICBjb25zdCBXVEY6OkZ1bmN0aW9u
PHZvaWQgKCk+KiBmdW5jdGlvbjsKIAogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgTG9ja0hvbGRlciBob2xkZXIobV9sb2NrKTsKLQorICAgICAgICAgICAgICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgICAgICAgICAgICAgIG1fY29uZGl0aW9u
LndhaXQobV9sb2NrLCBbdGhpc10geworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0SXNI
ZWxkKG1fbG9jayk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIW1fcXVldWUuaXNF
bXB0eSgpOwogICAgICAgICAgICAgICAgICAgICB9KTsKIApAQCAtMTMxLDkgKzEzMCw5IEBAIHZv
aWQgV29ya1F1ZXVlOjpjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVu
Y3Rpb248dm9pZCAoc2l6ZV90IGluCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAg
ICBMb2NrIG1fbG9jazsKLSAgICAgICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotICAgICAgICBE
ZXF1ZTxjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+Kj4gbV9xdWV1ZTsKKyAgICAgICAgQ2hl
Y2tlZExvY2sgbV9sb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwor
ICAgICAgICBEZXF1ZTxjb25zdCBGdW5jdGlvbjx2b2lkKCk+Kj4gbV9xdWV1ZSBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fbG9jayk7CiAKICAgICAgICAgVmVjdG9yPFJlZjxUaHJlYWQ+PiBtX3dvcmtl
cnM7CiAgICAgfTsKQEAgLTE1MCwxMCArMTQ5LDEwIEBAIHZvaWQgV29ya1F1ZXVlOjpjb25jdXJy
ZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZCAoc2l6ZV90IGlu
CiAgICAgc3RkOjphdG9taWM8c2l6ZV90PiBjdXJyZW50SW5kZXgoMCk7CiAgICAgc3RkOjphdG9t
aWM8c2l6ZV90PiBhY3RpdmVUaHJlYWRzKHdvcmtlckNvdW50ICsgMSk7CiAKLSAgICBDb25kaXRp
b24gY29uZGl0aW9uOwotICAgIExvY2sgbG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIGNvbmRp
dGlvbjsKKyAgICBDaGVja2VkTG9jayBsb2NrOwogCi0gICAgV1RGOjpGdW5jdGlvbjx2b2lkICgp
PiBhcHBsaWVyID0gWyYsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIHsKKyAgICBGdW5j
dGlvbjx2b2lkICgpPiBhcHBsaWVyID0gWyYsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbild
IHsKICAgICAgICAgc2l6ZV90IGluZGV4OwogCiAgICAgICAgIC8vIENhbGwgdGhlIGZ1bmN0aW9u
IGZvciBhcyBsb25nIGFzIHRoZXJlIGFyZSBpdGVyYXRpb25zIGxlZnQuCkBAIC0xNjIsNyArMTYx
LDcgQEAgdm9pZCBXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywg
V1RGOjpGdW5jdGlvbjx2b2lkIChzaXplX3QgaW4KIAogICAgICAgICAvLyBJZiB0aGVyZSBhcmUg
bm8gYWN0aXZlIHRocmVhZHMgbGVmdCwgc2lnbmFsIHRoZSBjYWxsZXIuCiAgICAgICAgIGlmICgh
LS1hY3RpdmVUaHJlYWRzKSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihsb2NrKTsK
KyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICAgICAgICAgIGNvbmRp
dGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgfQogICAgIH07CkBAIC0xNzEsNyArMTcwLDcgQEAg
dm9pZCBXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywgV1RGOjpG
dW5jdGlvbjx2b2lkIChzaXplX3QgaW4KICAgICAgICAgdGhyZWFkUG9vbC0+ZGlzcGF0Y2goJmFw
cGxpZXIpOwogICAgIGFwcGxpZXIoKTsKIAotICAgIExvY2tIb2xkZXIgaG9sZGVyKGxvY2spOwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBjb25kaXRpb24ud2FpdChsb2NrLCBb
Jl0geyByZXR1cm4gIWFjdGl2ZVRocmVhZHM7IH0pOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCmluZGV4IDEyYzhhOWQzMWU0NjM1Njk3OTk0NjVm
ZjcxNjgwZWYwYzhhMDVlNTguLmIyYjMyYzYyZTViZTZmMzMyYjY0MGVmYmQ1NGZmMzNmNzEwYTJh
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCkBAIC0xMDUs
NyArMTA1LDcgQEAgUnVuTG9vcDo6UnVuTG9vcCgpCiAKIFJ1bkxvb3A6On5SdW5Mb29wKCkKIHsK
LSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvb3BMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsg
bV9sb29wTG9jayB9OwogICAgIG1fc2h1dGRvd24gPSB0cnVlOwogICAgIG1fcmVhZHlUb1J1bi5u
b3RpZnlPbmUoKTsKIApAQCAtMTE2LDcgKzExNiw3IEBAIFJ1bkxvb3A6On5SdW5Mb29wKCkKIAog
aW5saW5lIGJvb2wgUnVuTG9vcDo6cG9wdWxhdGVUYXNrcyhSdW5Nb2RlIHJ1bk1vZGUsIFN0YXR1
cyYgc3RhdHVzT2ZUaGlzTG9vcCwgRGVxdWU8UmVmUHRyPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFz
az4+JiBmaXJlZFRpbWVycykKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvb3BMb2NrKTsK
KyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb29wTG9jayB9OwogCiAgICAgaWYgKHJ1bk1vZGUgPT0g
UnVuTW9kZTo6RHJhaW4pIHsKICAgICAgICAgTW9ub3RvbmljVGltZSBzbGVlcFVudGlsID0gTW9u
b3RvbmljVGltZTo6aW5maW5pdHkoKTsKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFJ1bkxvb3A6
OnJ1bkltcGwoUnVuTW9kZSBydW5Nb2RlKQogCiAgICAgU3RhdHVzIHN0YXR1c09mVGhpc0xvb3Ag
PSBTdGF0dXM6OkNsZWFyOwogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb29w
TG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvb3BMb2NrIH07CiAgICAgICAgIG1f
bWFpbkxvb3BzLmFwcGVuZCgmc3RhdHVzT2ZUaGlzTG9vcCk7CiAgICAgfQogCkBAIC0yMDIsNyAr
MjAyLDcgQEAgdm9pZCBSdW5Mb29wOjpzZXRXYWtlVXBDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiBmdW5jdGlvbikKIAogdm9pZCBSdW5Mb29wOjpzdG9wKCkKIHsKLSAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2xvb3BMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb29wTG9jayB9
OwogICAgIGlmIChtX21haW5Mb29wcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MjEzLDcgKzIxMyw3IEBAIHZvaWQgUnVuTG9vcDo6c3RvcCgpCiAgICAgfQogfQogCi12b2lkIFJ1
bkxvb3A6Ondha2VVcChjb25zdCBBYnN0cmFjdExvY2tlciYpCit2b2lkIFJ1bkxvb3A6Ondha2VV
cFdpdGhMb2NrKCkKIHsKICAgICBtX3BlbmRpbmdUYXNrcyA9IHRydWU7CiAgICAgbV9yZWFkeVRv
UnVuLm5vdGlmeU9uZSgpOwpAQCAtMjI0LDggKzIyNCw4IEBAIHZvaWQgUnVuTG9vcDo6d2FrZVVw
KGNvbnN0IEFic3RyYWN0TG9ja2VyJikKIAogdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQogewotICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOwotICAgIHdha2VVcChsb2NrZXIpOworICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvb3BMb2NrIH07CisgICAgd2FrZVVwV2l0aExvY2soKTsKIH0K
IAogUnVuTG9vcDo6Q3ljbGVSZXN1bHQgUnVuTG9vcDo6Y3ljbGUoUnVuTG9vcE1vZGUpCkBAIC0y
NDIsMTQgKzI0MiwxNCBAQCB2b2lkIFJ1bkxvb3A6OnNjaGVkdWxlKGNvbnN0IEFic3RyYWN0TG9j
a2VyJiwgUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJiB0YQogCiB2b2lkIFJ1bkxvb3A6
OnNjaGVkdWxlKFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+JiYgdGFzaykKIHsKLSAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2xvb3BMb2NrKTsKLSAgICBzY2hlZHVsZShsb2NrZXIsIFdURk1v
dmUodGFzaykpOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvb3BMb2NrIH07CisgICAgc2NoZWR1
bGVXaXRoTG9jayhXVEZNb3ZlKHRhc2spKTsKIH0KIAotdm9pZCBSdW5Mb29wOjpzY2hlZHVsZUFu
ZFdha2VVcChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBSZWY8VGltZXJCYXNlOjpTY2hl
ZHVsZWRUYXNrPiYmIHRhc2spCit2b2lkIFJ1bkxvb3A6OnNjaGVkdWxlQW5kV2FrZVVwV2l0aExv
Y2soUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJiB0YXNrKQogewotICAgIHNjaGVkdWxl
KGxvY2tlciwgV1RGTW92ZSh0YXNrKSk7Ci0gICAgd2FrZVVwKGxvY2tlcik7CisgICAgc2NoZWR1
bGVXaXRoTG9jayhXVEZNb3ZlKHRhc2spKTsKKyAgICB3YWtlVXBXaXRoTG9jaygpOwogfQogCiAv
LyBTaW5jZSBSdW5Mb29wIGRvZXMgbm90IG93biB0aGUgcmVnaXN0ZXJlZCBUaW1lckJhc2UsCkBA
IC0yNjIsMjEgKzI2MiwyMSBAQCBSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29w
JiBydW5Mb29wKQogCiBSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQogewotICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9jayk7Ci0gICAgc3RvcChsb2NrZXIp
OworICAgIExvY2tlciBsb2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAgICBzdG9w
V2l0aExvY2soKTsKIH0KIAogdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KFNlY29uZHMg
aW50ZXJ2YWwsIGJvb2wgcmVwZWF0aW5nKQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVu
TG9vcC0+bV9sb29wTG9jayk7Ci0gICAgc3RvcChsb2NrZXIpOworICAgIExvY2tlciBsb2NrZXIg
eyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAgICBzdG9wV2l0aExvY2soKTsKICAgICBtX3Nj
aGVkdWxlZFRhc2sgPSBTY2hlZHVsZWRUYXNrOjpjcmVhdGUoW3RoaXNdIHsKICAgICAgICAgZmly
ZWQoKTsKICAgICB9LCBpbnRlcnZhbCwgcmVwZWF0aW5nKTsKLSAgICBtX3J1bkxvb3AtPnNjaGVk
dWxlQW5kV2FrZVVwKGxvY2tlciwgKm1fc2NoZWR1bGVkVGFzayk7CisgICAgbV9ydW5Mb29wLT5z
Y2hlZHVsZUFuZFdha2VVcFdpdGhMb2NrKCptX3NjaGVkdWxlZFRhc2spOwogfQogCi12b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c3RvcChjb25zdCBBYnN0cmFjdExvY2tlciYpCit2b2lkIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6c3RvcFdpdGhMb2NrKCkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRUYXNr
KSB7CiAgICAgICAgIG1fc2NoZWR1bGVkVGFzay0+ZGVhY3RpdmF0ZSgpOwpAQCAtMjg2LDI1ICsy
ODYsMjUgQEAgdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoY29uc3QgQWJzdHJhY3RMb2Nr
ZXImKQogCiB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCiB7Ci0gICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKLSAgICBzdG9wKGxvY2tlcik7CisgICAg
TG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9OworICAgIHN0b3BXaXRoTG9j
aygpOwogfQogCiBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAogewot
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9jayk7Ci0gICAgcmV0dXJu
IGlzQWN0aXZlKGxvY2tlcik7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29w
TG9jayB9OworICAgIHJldHVybiBpc0FjdGl2ZVdpdGhMb2NrKCk7CiB9CiAKLWJvb2wgUnVuTG9v
cDo6VGltZXJCYXNlOjppc0FjdGl2ZShjb25zdCBBYnN0cmFjdExvY2tlciYpIGNvbnN0Citib29s
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmVXaXRoTG9jaygpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fc2NoZWR1bGVkVGFzayAmJiBtX3NjaGVkdWxlZFRhc2stPmlzQWN0aXZlKCk7CiB9CiAK
IFNlY29uZHMgUnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKIHsK
LSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fbG9vcExvY2spOwotICAgIGlmIChp
c0FjdGl2ZShsb2NrZXIpKQorICAgIExvY2tlciBsb2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExv
Y2sgfTsKKyAgICBpZiAoaXNBY3RpdmVXaXRoTG9jaygpKQogICAgICAgICByZXR1cm4gc3RkOjpt
YXg8U2Vjb25kcz4obV9zY2hlZHVsZWRUYXNrLT5zY2hlZHVsZWRUaW1lUG9pbnQoKSAtIE1vbm90
b25pY1RpbWU6Om5vdygpLCAwX3MpOwogICAgIHJldHVybiAwX3M7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVu
TG9vcFdpbi5jcHAKaW5kZXggYTRjNDdhNmQyYzM3YWQ3MmU2NTY3MzE2YWUxMmEwMjFjZWM3NTZk
OS4uNTMzMTQzOTVhMDE1YTgyZjkyODhmM2RkMGU4MGQxNDU2MmI1NmUyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dp
bi9SdW5Mb29wV2luLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIFJ1bkxvb3A6OkN5Y2xlUmVzdWx0
IFJ1bkxvb3A6OmN5Y2xlKFJ1bkxvb3BNb2RlKQogdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRp
bWVyRmlyZWQoKQogewogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29w
LT5tX2xvb3BMb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29w
TG9jayB9OwogCiAgICAgICAgIGlmICghbV9pc0FjdGl2ZSkKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTE3Niw3ICsxNzYsNyBAQCBSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQogCiB2
b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoU2Vjb25kcyBpbnRlcnZhbCwgYm9vbCByZXBl
YXQpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKKyAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9ydW5Mb29wLT5tX2xvb3BMb2NrIH07CiAgICAgbV9pc1JlcGVh
dGluZyA9IHJlcGVhdDsKICAgICBtX2lzQWN0aXZlID0gdHJ1ZTsKICAgICBtX2ludGVydmFsID0g
aW50ZXJ2YWw7CkBAIC0xODYsMjkgKzE4NiwyOSBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RhcnQoU2Vjb25kcyBpbnRlcnZhbCwgYm9vbCByZXBlYXQpCiAKIHZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzdG9wKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fbG9v
cExvY2spOwotICAgIGlmICghaXNBY3RpdmUobG9ja2VyKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsg
bV9ydW5Mb29wLT5tX2xvb3BMb2NrIH07CisgICAgaWYgKCFpc0FjdGl2ZVdpdGhMb2NrKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIG1faXNBY3RpdmUgPSBmYWxzZTsKICAgICA6OktpbGxUaW1l
cihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIGJpdHdpc2VfY2FzdDx1aW50cHRy
X3Q+KHRoaXMpKTsKIH0KIAotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKGNvbnN0
IEFic3RyYWN0TG9ja2VyJikgY29uc3QKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2
ZVdpdGhMb2NrKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pc0FjdGl2ZTsKIH0KIAogYm9vbCBS
dW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKIHsKLSAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3J1bkxvb3AtPm1fbG9vcExvY2spOwotICAgIHJldHVybiBpc0FjdGl2ZShsb2NrZXIp
OworICAgIExvY2tlciBsb2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAgICByZXR1
cm4gaXNBY3RpdmVXaXRoTG9jaygpOwogfQogCiBTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0CiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5M
b29wLT5tX2xvb3BMb2NrKTsKLSAgICBpZiAoaXNBY3RpdmUobG9ja2VyKSkKKyAgICBMb2NrZXIg
bG9ja2VyIHsgbV9ydW5Mb29wLT5tX2xvb3BMb2NrIH07CisgICAgaWYgKGlzQWN0aXZlV2l0aExv
Y2soKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+KG1fbmV4dEZpcmVEYXRlIC0g
TW9ub3RvbmljVGltZTo6bm93KCksIDBfcyk7CiAgICAgcmV0dXJuIDBfczsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAppbmRl
eCBkYjIyYWFjNGEzOGM0MTIyNzNlOTM3YWUyYjA2MTQ1ZmFlYzM1NmEyLi5iZWYwMzllMTVlODI1
NjUwNzBmMGUzN2Y5ZjMzOWY1YTRmYTEzNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCkBAIC00MSwxOCArNDEsMTYgQEAg
RGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjpEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIoKQogCiB2
b2lkIERhdGFiYXNlVGFza1N5bmNocm9uaXplcjo6d2FpdEZvclRhc2tDb21wbGV0aW9uKCkKIHsK
LSAgICBtX3N5bmNocm9ub3VzTXV0ZXgubG9jaygpOworICAgIExvY2tlciBsb2NrZXIgeyBtX3N5
bmNocm9ub3VzTG9jayB9OwogICAgIHdoaWxlICghbV90YXNrQ29tcGxldGVkKQotICAgICAgICBt
X3N5bmNocm9ub3VzQ29uZGl0aW9uLndhaXQobV9zeW5jaHJvbm91c011dGV4KTsKLSAgICBtX3N5
bmNocm9ub3VzTXV0ZXgudW5sb2NrKCk7CisgICAgICAgIG1fc3luY2hyb25vdXNDb25kaXRpb24u
d2FpdChtX3N5bmNocm9ub3VzTG9jayk7CiB9CiAKIHZvaWQgRGF0YWJhc2VUYXNrU3luY2hyb25p
emVyOjp0YXNrQ29tcGxldGVkKCkKIHsKLSAgICBtX3N5bmNocm9ub3VzTXV0ZXgubG9jaygpOwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX3N5bmNocm9ub3VzTG9jayB9OwogICAgIG1fdGFza0NvbXBs
ZXRlZCA9IHRydWU7CiAgICAgbV9zeW5jaHJvbm91c0NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAg
ICBtX3N5bmNocm9ub3VzTXV0ZXgudW5sb2NrKCk7CiB9CiAKIERhdGFiYXNlVGFzazo6RGF0YWJh
c2VUYXNrKERhdGFiYXNlJiBkYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBzeW5j
aHJvbml6ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlVGFzay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRhc2suaAppbmRleCA5MTZlOTE4OWE4ZmU3NzEwYjY0MzBmOTcxNjdhZWU5ZWE4MmU5NDg1
Li43ZDE2ZDU2N2NhYjEzMzdlMzI2MWRjN2RkMzM1NjVmNDMzNjljZDMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgKQEAgLTI5LDkg
KzI5LDkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNs
dWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4K
KyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgot
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTcsOSAr
NTcsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBib29sIG1fdGFza0NvbXBs
ZXRlZCB7IGZhbHNlIH07Ci0gICAgTG9jayBtX3N5bmNocm9ub3VzTXV0ZXg7Ci0gICAgQ29uZGl0
aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CisgICAgYm9vbCBtX3Rhc2tDb21wbGV0ZWQgV1RG
X0dVQVJERURfQllfTE9DSyhtX3N5bmNocm9ub3VzTG9jaykgeyBmYWxzZSB9OworICAgIENoZWNr
ZWRMb2NrIG1fc3luY2hyb25vdXNMb2NrOworICAgIENoZWNrZWRDb25kaXRpb24gbV9zeW5jaHJv
bm91c0NvbmRpdGlvbjsKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGJvb2wgbV9oYXNDaGVja2Vk
Rm9yVGVybWluYXRpb24geyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdl
YkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA4Y2ViMThjMTgxYzFjODEzYmNhYzc1ODI0
NTAyYTI5MDk5Zjk3NTgwLi5hNzg4OWY4NzI0NGI1NjdlNTg4MjE3NGVlODhkYmM2ZTZhZDI3ZWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2Vi
S2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAg
LTMxLDggKzMxLDggQEAKICNpbmNsdWRlIDxnc3QvYXBwL2dzdGFwcHNyYy5oPgogI2luY2x1ZGUg
PGdzdC9hdWRpby9hdWRpby1pbmZvLmg+CiAjaW5jbHVkZSA8Z3N0L3BidXRpbHMvbWlzc2luZy1w
bHVnaW5zLmg+Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hl
Y2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9H
VW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KQEAgLTg0LDkgKzg0
LDkgQEAgc3RydWN0IF9XZWJLaXRXZWJBdWRpb1NyY1ByaXZhdGUgewogICAgIExvY2sgZGlzcGF0
Y2hUb1JlbmRlclRocmVhZExvY2s7CiAgICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+
JiYpPiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb247CiAKLSAgICBib29sIGRpc3BhdGNo
RG9uZTsKLSAgICBMb2NrIGRpc3BhdGNoTG9jazsKLSAgICBDb25kaXRpb24gZGlzcGF0Y2hDb25k
aXRpb247CisgICAgYm9vbCBkaXNwYXRjaERvbmUgV1RGX0dVQVJERURfQllfTE9DSyhkaXNwYXRj
aExvY2spOworICAgIENoZWNrZWRMb2NrIGRpc3BhdGNoTG9jazsKKyAgICBDaGVja2VkQ29uZGl0
aW9uIGRpc3BhdGNoQ29uZGl0aW9uOwogCiAgICAgX1dlYktpdFdlYkF1ZGlvU3JjUHJpdmF0ZSgp
CiAgICAgewpAQCAtMzM5LDcgKzMzOSw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3Jj
UmVuZGVyQW5kUHVzaEZyYW1lcyhHUmVmUHRyPEdzdEVsZW1lbnQ+JiYgZWxlbWVudCwKICAgICBh
dXRvKiBwcml2ID0gc3JjLT5wcml2OwogCiAgICAgYXV0byBub3RpZnlEaXNwYXRjaE9uRXhpdCA9
IG1ha2VTY29wZUV4aXQoW3ByaXZdIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKHByaXYtPmRp
c3BhdGNoTG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcml2LT5kaXNwYXRjaExvY2sg
fTsKICAgICAgICAgcHJpdi0+ZGlzcGF0Y2hEb25lID0gdHJ1ZTsKICAgICAgICAgcHJpdi0+ZGlz
cGF0Y2hDb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfSk7CkBAIC00MDQsNyArNDA0LDcgQEAg
c3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNSZW5kZXJJdGVyYXRpb24oV2ViS2l0V2ViQXVk
aW9TcmMqIHNyYykKICAgICB9CiAKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhwcml2
LT5kaXNwYXRjaExvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJpdi0+ZGlzcGF0Y2hM
b2NrIH07CiAgICAgICAgIHByaXYtPmRpc3BhdGNoRG9uZSA9IGZhbHNlOwogICAgIH0KIApAQCAt
NDIxLDcgKzQyMSw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3JjUmVuZGVySXRlcmF0
aW9uKFdlYktpdFdlYkF1ZGlvU3JjKiBzcmMpCiAgICAgfQogCiAgICAgewotICAgICAgICBMb2Nr
SG9sZGVyIGxvY2socHJpdi0+ZGlzcGF0Y2hMb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7
IHByaXYtPmRpc3BhdGNoTG9jayB9OwogICAgICAgICBpZiAoIXByaXYtPmRpc3BhdGNoRG9uZSkK
ICAgICAgICAgICAgIHByaXYtPmRpc3BhdGNoQ29uZGl0aW9uLndhaXQocHJpdi0+ZGlzcGF0Y2hM
b2NrKTsKICAgICB9CkBAIC00NjgsNyArNDY4LDcgQEAgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0
dXJuIHdlYktpdFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwgR3MK
ICAgICB9CiAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BBVVNFRF9UT19SRUFEWToKICAgICAg
ICAgewotICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrKHByaXYtPmRpc3BhdGNoTG9jayk7Cisg
ICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJpdi0+ZGlzcGF0Y2hMb2NrIH07CiAgICAgICAg
ICAgICBwcml2LT5kaXNwYXRjaERvbmUgPSBmYWxzZTsKICAgICAgICAgICAgIHByaXYtPmRpc3Bh
dGNoQ29uZGl0aW9uLm5vdGlmeUFsbCgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURl
Y29kZXJHU3RyZWFtZXIuY3BwCmluZGV4IDJmOWMyODkwYjI0MTJlMzc2YjRhNGMzNjFmMjI5ZjMy
NjJiMmU0Y2EuLjM1MDM4YWY1OTgzYzFkMjNjYWM3YzQwZDcxMDdhYWEzMDBiMjAwMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURl
Y29kZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCkBAIC0yNzYsMjYgKzI3NiwyNiBA
QCB2b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6c2V0SGFzRU9TKCkKIHsKICAgICBHU1RfREVC
VUcoIkVPUyBvbiBkZWNvZGVyICVwIiwgdGhpcyk7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV9zYW1wbGVNdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3NhbXBsZUxv
Y2sgfTsKICAgICAgICAgbV9lb3MgPSB0cnVlOwogICAgICAgICBtX3NhbXBsZUNvbmRpdGlvbi5u
b3RpZnlPbmUoKTsKICAgICB9CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9oYW5k
bGVyTXV0ZXgpOwotICAgICAgICBtX2hhbmRsZXJDb25kaXRpb24ud2FpdChtX2hhbmRsZXJNdXRl
eCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2hhbmRsZXJMb2NrIH07CisgICAgICAgIG1f
aGFuZGxlckNvbmRpdGlvbi53YWl0KG1faGFuZGxlckxvY2spOwogICAgIH0KIH0KIAogdm9pZCBJ
bWFnZURlY29kZXJHU3RyZWFtZXI6Om5vdGlmeVNhbXBsZShHUmVmUHRyPEdzdFNhbXBsZT4mJiBz
YW1wbGUpCiB7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9zYW1wbGVNdXRleCk7
CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3NhbXBsZUxvY2sgfTsKICAgICAgICAgbV9zYW1w
bGUgPSBXVEZNb3ZlKHNhbXBsZSk7CiAgICAgICAgIG1fc2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9u
ZSgpOwogICAgIH0KICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX2hhbmRsZXJNdXRl
eCk7Ci0gICAgICAgIG1faGFuZGxlckNvbmRpdGlvbi53YWl0KG1faGFuZGxlck11dGV4KTsKKyAg
ICAgICAgTG9ja2VyIGxvY2tlciB7IG1faGFuZGxlckxvY2sgfTsKKyAgICAgICAgbV9oYW5kbGVy
Q29uZGl0aW9uLndhaXQobV9oYW5kbGVyTG9jayk7CiAgICAgfQogfQogCkBAIC0zMDYsNyArMzA2
LDcgQEAgdm9pZCBJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6aGFuZGxlTWVz
c2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIGF1dG8gc2NvcGVFeGl0ID0gbWFrZVNjb3Bl
RXhpdChbcHJvdGVjdGVkVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CiAgICAgICAgIGlmICgh
cHJvdGVjdGVkVGhpcykKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgTG9ja0hvbGRlciBs
b2NrKHByb3RlY3RlZFRoaXMtPm1fbWVzc2FnZUxvY2spOworICAgICAgICBMb2NrZXIgbG9ja2Vy
IHsgcHJvdGVjdGVkVGhpcy0+bV9tZXNzYWdlTG9jayB9OwogICAgICAgICBwcm90ZWN0ZWRUaGlz
LT5tX21lc3NhZ2VEaXNwYXRjaGVkID0gdHJ1ZTsKICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9t
ZXNzYWdlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0pOwpAQCAtMzY1LDcgKzM2NSw3IEBA
IHZvaWQgSW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpJbm5lckRlY29kZXI6OnByZXBhcmVQaXBlbGlu
ZSgpCiAgICAgICAgIGF1dG8mIGRlY29kZXIgPSAqc3RhdGljX2Nhc3Q8SW1hZ2VEZWNvZGVyR1N0
cmVhbWVyOjpJbm5lckRlY29kZXIqPih1c2VyRGF0YSk7CiAKICAgICAgICAgewotICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKGRlY29kZXIubV9tZXNzYWdlTG9jayk7CisgICAgICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgZGVjb2Rlci5tX21lc3NhZ2VMb2NrIH07CiAgICAgICAgICAgICBkZWNv
ZGVyLm1fbWVzc2FnZURpc3BhdGNoZWQgPSBmYWxzZTsKICAgICAgICAgICAgIGRlY29kZXIubV9t
ZXNzYWdlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgICAgICB9CkBAIC0zODAsNyArMzgwLDcg
QEAgdm9pZCBJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6cHJlcGFyZVBpcGVs
aW5lKCkKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgICAgIGlmICghZGVjb2Rlci5t
X21lc3NhZ2VEaXNwYXRjaGVkKSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2soZGVjb2Rl
ci5tX21lc3NhZ2VMb2NrKTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBkZWNvZGVyLm1f
bWVzc2FnZUxvY2sgfTsKICAgICAgICAgICAgIGRlY29kZXIubV9tZXNzYWdlQ29uZGl0aW9uLndh
aXQoZGVjb2Rlci5tX21lc3NhZ2VMb2NrKTsKICAgICAgICAgfQogICAgICAgICBnc3RfbWVzc2Fn
ZV91bnJlZihtZXNzYWdlKTsKQEAgLTQyNiwxMyArNDI2LDEzIEBAIHZvaWQgSW1hZ2VEZWNvZGVy
R1N0cmVhbWVyOjpwdXNoRW5jb2RlZERhdGEoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiAg
ICAgdGhyZWFkLT5kZXRhY2goKTsKICAgICBib29sIGlzRU9TID0gZmFsc2U7CiAgICAgewotICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV9zYW1wbGVNdXRleCk7CisgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBtX3NhbXBsZUxvY2sgfTsKICAgICAgICAgaXNFT1MgPSBtX2VvczsKICAgICB9CiAgICAg
d2hpbGUgKCFpc0VPUykgewogICAgICAgICB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9zYW1wbGVNdXRleCk7Ci0gICAgICAgICAgICBtX3NhbXBsZUNvbmRpdGlvbi53YWl0KG1fc2Ft
cGxlTXV0ZXgpOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fc2FtcGxlTG9jayB9Owor
ICAgICAgICAgICAgbV9zYW1wbGVDb25kaXRpb24ud2FpdChtX3NhbXBsZUxvY2spOwogICAgICAg
ICAgICAgaXNFT1MgPSBtX2VvczsKICAgICAgICAgICAgIGlmIChtX3NhbXBsZSkgewogICAgICAg
ICAgICAgICAgIGF1dG8qIGNhcHMgPSBnc3Rfc2FtcGxlX2dldF9jYXBzKG1fc2FtcGxlLmdldCgp
KTsKQEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6cHVzaEVu
Y29kZWREYXRhKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX2hhbmRsZXJN
dXRleCk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9oYW5kbGVyTG9jayB9OwogICAg
ICAgICAgICAgbV9oYW5kbGVyQ29uZGl0aW9uLm5vdGlmeUFsbCgpOwogICAgICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0ltYWdlRGVjb2RlckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5oCmluZGV4IDU5MThjODQ3Y2VkYjMy
YWIzMDgzMDdkZjYyODU5YTBjMWM0YzQ5YmUuLmYyNDc3MzQ4MTBhNTEyNDMxYjczZDM1NzVhZGZj
YTg1OTdlODNlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmgKQEAgLTI2
LDYgKzI2LDggQEAKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2Ft
cGxlTWFwLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL0NoZWNr
ZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KQEAgLTExNCw5ICsxMTYsOSBAQCBwcml2YXRlOgogICAgICAgICBHUmVmUHRyPEdz
dEVsZW1lbnQ+IG1fZGVjb2RlYmluOwogICAgICAgICBSdW5Mb29wJiBtX3J1bkxvb3A7CiAKLSAg
ICAgICAgQ29uZGl0aW9uIG1fbWVzc2FnZUNvbmRpdGlvbjsKLSAgICAgICAgTG9jayBtX21lc3Nh
Z2VMb2NrOwotICAgICAgICBib29sIG1fbWVzc2FnZURpc3BhdGNoZWQgeyBmYWxzZSB9OworICAg
ICAgICBDaGVja2VkQ29uZGl0aW9uIG1fbWVzc2FnZUNvbmRpdGlvbjsKKyAgICAgICAgQ2hlY2tl
ZExvY2sgbV9tZXNzYWdlTG9jazsKKyAgICAgICAgYm9vbCBtX21lc3NhZ2VEaXNwYXRjaGVkIFdU
Rl9HVUFSREVEX0JZX0xPQ0sobV9tZXNzYWdlTG9jaykgeyBmYWxzZSB9OwogICAgIH07CiAKICAg
ICB2b2lkIGhhbmRsZVNhbXBsZShHUmVmUHRyPEdzdFNhbXBsZT4mJik7CkBAIC0xMzIsMTEgKzEz
NCwxMSBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPEludFNpemU+IG1fc2l6ZTsKICAgICBTdHJp
bmcgbV9taW1lVHlwZTsKICAgICBSZWZQdHI8SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpJbm5lckRl
Y29kZXI+IG1faW5uZXJEZWNvZGVyOwotICAgIENvbmRpdGlvbiBtX3NhbXBsZUNvbmRpdGlvbjsK
LSAgICBMb2NrIG1fc2FtcGxlTXV0ZXg7Ci0gICAgR1JlZlB0cjxHc3RTYW1wbGU+IG1fc2FtcGxl
OwotICAgIENvbmRpdGlvbiBtX2hhbmRsZXJDb25kaXRpb247Ci0gICAgTG9jayBtX2hhbmRsZXJN
dXRleDsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fc2FtcGxlQ29uZGl0aW9uOworICAgIENoZWNr
ZWRMb2NrIG1fc2FtcGxlTG9jazsKKyAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbV9zYW1wbGUgV1RG
X0dVQVJERURfQllfTE9DSyhtX3NhbXBsZUxvY2spOworICAgIENoZWNrZWRDb25kaXRpb24gbV9o
YW5kbGVyQ29uZGl0aW9uOworICAgIENoZWNrZWRMb2NrIG1faGFuZGxlckxvY2s7CiB9OwogfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWFpblRocmVhZE5vdGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWFpblRocmVhZE5vdGlmaWVyLmgKaW5kZXggMzU0ODk4OTIxNmQ1NjVk
OWJiYmRlMDg1MGMxOTBkYWQwOTQ5ZjExNS4uYTg4NTkyODljODU1MzJkOWU2NjNkZTQ3MGI2MTMx
YmM5ZGIwOGZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01haW5UaHJlYWROb3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NYWluVGhyZWFkTm90aWZpZXIuaApAQCAtNjgsMTggKzY4
LDE4IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGPgogICAgIHZvaWQgbm90aWZ5
QW5kV2FpdChUIG5vdGlmaWNhdGlvblR5cGUsIEYmJiBjYWxsYmFja0Z1bmN0b3IpCiAgICAgewot
ICAgICAgICBMb2NrIG11dGV4OwotICAgICAgICBDb25kaXRpb24gY29uZGl0aW9uOworICAgICAg
ICBDaGVja2VkTG9jayBsb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIGNvbmRpdGlvbjsK
IAotICAgICAgICBub3RpZnkobm90aWZpY2F0aW9uVHlwZSwgW2Z1bmN0b3IgPSBXVEZNb3ZlKGNh
bGxiYWNrRnVuY3RvciksICZjb25kaXRpb24sICZtdXRleF0geworICAgICAgICBub3RpZnkobm90
aWZpY2F0aW9uVHlwZSwgW2Z1bmN0b3IgPSBXVEZNb3ZlKGNhbGxiYWNrRnVuY3RvciksICZjb25k
aXRpb24sICZsb2NrXSB7CiAgICAgICAgICAgICBmdW5jdG9yKCk7Ci0gICAgICAgICAgICBMb2Nr
SG9sZGVyIGhvbGRlcihtdXRleCk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbG9jayB9
OwogICAgICAgICAgICAgY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgICAgICB9KTsKIAogICAg
ICAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGhvbGRl
cihtdXRleCk7Ci0gICAgICAgICAgICBjb25kaXRpb24ud2FpdChtdXRleCk7CisgICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbG9jayB9OworICAgICAgICAgICAgY29uZGl0aW9uLndhaXQobG9j
ayk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMDdiM2Q5ZmJlODA0YzRmODAxMDA1NTFhZWYwMTIzNjJh
ZTIzODBlZi4uZTIxZDU0MzU3OTVjNDAwZTUyZDc3NDA5NDQxNDk3MDZmYjJkMjMxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI1Miw3
ICsyNTIsNyBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIoKQogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICB7Ci0gICAg
ICAgIExvY2tIb2xkZXIgbG9jayhtX2NkbUF0dGFjaG1lbnRNdXRleCk7CisgICAgICAgIExvY2tl
ciBjZG1BdHRhY2htZW50TG9ja2VyIHsgbV9jZG1BdHRhY2htZW50TG9jayB9OwogICAgICAgICBt
X2NkbUF0dGFjaG1lbnRDb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgfQogI2VuZGlmCkBAIC0y
OTIxLDcgKzI5MjEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRl
eHR1cmVUb0NvbXBvc2l0b3IoKQogICAgIGF1dG8gcHJveHlPcGVyYXRpb24gPQogICAgICAgICBb
dGhpcywgaW50ZXJuYWxDb21wb3NpdGluZ09wZXJhdGlvbl0oVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eSYgcHJveHkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xkZXIgaG9s
ZGVyKHByb3h5LmxvY2soKSk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJveHkubG9j
aygpIH07CiAKICAgICAgICAgICAgIGlmICghcHJveHkuaXNBY3RpdmUoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CkBAIC0yOTM5LDcgKzI5MzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IoKQogICAgIGF1dG8gcHJveHlPcGVy
YXRpb24gPQogICAgICAgICBbdGhpcywgaW50ZXJuYWxDb21wb3NpdGluZ09wZXJhdGlvbl0oVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSYgcHJveHkpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIExvY2tIb2xkZXIgaG9sZGVyKHByb3h5LmxvY2soKSk7CisgICAgICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgcHJveHkubG9jaygpIH07CiAKICAgICAgICAgICAgIGlmICghcHJveHkuaXNBY3Rp
dmUoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yOTY0LDcgKzI5NjQsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVwYWludCgpCiAKICAgICBtX3BsYXllci0+
cmVwYWludCgpOwogCi0gICAgTG9ja0hvbGRlciBsb2NrKG1fZHJhd011dGV4KTsKKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9kcmF3TG9jayB9OwogICAgIG1fZHJhd0NvbmRpdGlvbi5ub3RpZnlPbmUo
KTsKIH0KIApAQCAtMzEwMywxNyArMzEwMywxNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6dHJpZ2dlclJlcGFpbnQoR3N0U2FtcGxlKiBzYW1wbGUpCiAgICAgfQogCiAgICAg
aWYgKCFtX2NhblJlbmRlcmluZ0JlQWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9kcmF3TXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9kcmF3TG9jayB9
OwogICAgICAgICBpZiAobV9pc0JlaW5nRGVzdHJveWVkKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBtX2RyYXdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKLSAgICAgICAgbV9kcmF3Q29u
ZGl0aW9uLndhaXQobV9kcmF3TXV0ZXgpOworICAgICAgICBtX2RyYXdDb25kaXRpb24ud2FpdCht
X2RyYXdMb2NrKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFVTRShURVhUVVJFX01B
UFBFUl9HTCkKICAgICBpZiAobV9pc1VzaW5nRmFsbGJhY2tWaWRlb1NpbmspIHsKLSAgICAgICAg
TG9ja0hvbGRlciBsb2NrKG1fZHJhd011dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1f
ZHJhd0xvY2sgfTsKICAgICAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9CiAgICAgICAgICAgICBb
dGhpc10oVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSYgcHJveHkpCiAgICAgICAgICAg
ICB7CkBAIC0zMTI3LDcgKzMxMjcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6dHJpZ2dlclJlcGFpbnQoR3N0U2FtcGxlKiBzYW1wbGUpCiAgICAgICAgICAgICByZXR1cm47
CiAjZW5kaWYKICAgICAgICAgbV9kcmF3VGltZXIuc3RhcnRPbmVTaG90KDBfcyk7Ci0gICAgICAg
IG1fZHJhd0NvbmRpdGlvbi53YWl0KG1fZHJhd011dGV4KTsKKyAgICAgICAgbV9kcmF3Q29uZGl0
aW9uLndhaXQobV9kcmF3TG9jayk7CiAgICAgfSBlbHNlCiAgICAgICAgIHB1c2hUZXh0dXJlVG9D
b21wb3NpdG9yKCk7CiAjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpAQCAtMzE0OSw3
ICszMTQ5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNhbmNlbFJlcGFp
bnQoYm9vbCBkZXN0cm95aW5nKQogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyB1c2VkIHdo
ZW4gZGVzdHJveWluZyB0aGUgcGxheWVyIChkZXN0cm95aW5nIHBhcmFtZXRlciBpcyB0cnVlKSwg
dG8gcmVsZWFzZSB0aGUgZ3N0cmVhbWVyIHRocmVhZCBmcm9tCiAgICAgLy8gbV9kcmF3Q29uZGl0
aW9uIGFuZCB0byBlbnN1cmUgdGhhdCBuZXcgdHJpZ2dlclJlcGFpbnQgY2FsbHMgd29uJ3Qgd2Fp
dCBvbiBtX2RyYXdDb25kaXRpb24uCiAgICAgaWYgKCFtX2NhblJlbmRlcmluZ0JlQWNjZWxlcmF0
ZWQpIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kcmF3TXV0ZXgpOworICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9kcmF3TG9jayB9OwogICAgICAgICBtX2RyYXdUaW1lci5zdG9wKCk7
CiAgICAgICAgIG1faXNCZWluZ0Rlc3Ryb3llZCA9IGRlc3Ryb3lpbmc7CiAgICAgICAgIG1fZHJh
d0NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKQEAgLTM0MDcsNyArMzQwNyw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwdXNoTmV4dEhvbGVQdW5jaEJ1ZmZlcigpCiAgICAgYXV0
byBwcm94eU9wZXJhdGlvbiA9CiAgICAgICAgIFt0aGlzXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllclByb3h5JiBwcm94eSkKICAgICAgICAgewotICAgICAgICAgICAgTG9ja0hvbGRlciBob2xk
ZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcm94eS5sb2Nr
KCkgfTsKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllckJ1ZmZlcj4gbGF5ZXJCdWZmZXIgPSBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyQnVmZmVyPigwLCBtX3NpemUsIFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkTm90QmxlbmQs
IEdMX0RPTlRfQ0FSRSk7CiAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R1N0cmVhbWVySG9s
ZVB1bmNoQ2xpZW50PiBob2xlUHVuY2hDbGllbnQgPSBtYWtlVW5pcXVlPEdTdHJlYW1lckhvbGVQ
dW5jaENsaWVudD4obV92aWRlb1NpbmsuZ2V0KCkpOwogICAgICAgICAgICAgbGF5ZXJCdWZmZXIt
PnNldEhvbGVQdW5jaENsaWVudChXVEZNb3ZlKGhvbGVQdW5jaENsaWVudCkpOwpAQCAtMzU3Niw4
ICszNTc2LDkgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OndhaXRGb3JDRE1B
dHRhY2htZW50KCkKIAogICAgIGJvb2wgZGlkQ0RNQXR0YWNoID0gZmFsc2U7CiAgICAgewotICAg
ICAgICBhdXRvIGNkbUF0dGFjaG1lbnRMb2NrZXIgPSBob2xkTG9jayhtX2NkbUF0dGFjaG1lbnRN
dXRleCk7Ci0gICAgICAgIGRpZENETUF0dGFjaCA9IG1fY2RtQXR0YWNobWVudENvbmRpdGlvbi53
YWl0Rm9yKG1fY2RtQXR0YWNobWVudE11dGV4LCA0X3MsIFt0aGlzXSgpIHsKKyAgICAgICAgTG9j
a2VyIGNkbUF0dGFjaG1lbnRMb2NrZXIgeyBtX2NkbUF0dGFjaG1lbnRMb2NrIH07CisgICAgICAg
IGRpZENETUF0dGFjaCA9IG1fY2RtQXR0YWNobWVudENvbmRpdGlvbi53YWl0Rm9yKG1fY2RtQXR0
YWNobWVudExvY2ssIDRfcywgW3RoaXNdKCkgeworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1f
Y2RtQXR0YWNobWVudExvY2spOwogICAgICAgICAgICAgcmV0dXJuIGlzQ0RNQXR0YWNoZWQoKTsK
ICAgICAgICAgfSk7CiAgICAgfQpAQCAtMzYyNCw3ICszNjI1LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3RhbmNlQXR0YWNoZWQoQ0RNSW5zdGFuY2UmIGluc3Rh
bmNlKQogCiAgICAgR1NUX0RFQlVHX09CSkVDVChtX3BpcGVsaW5lLmdldCgpLCAiQ0RNIHByb3h5
IGluc3RhbmNlICVwIGRpc3BhdGNoZWQgYXMgY29udGV4dCIsIG1fY2RtSW5zdGFuY2UtPnByb3h5
KCkuZ2V0KCkpOwogCi0gICAgTG9ja0hvbGRlciBsb2NrKG1fY2RtQXR0YWNobWVudE11dGV4KTsK
KyAgICBMb2NrZXIgY2RtQXR0YWNobWVudExvY2tlciB7IG1fY2RtQXR0YWNobWVudExvY2sgfTsK
ICAgICAvLyBXZSBtdXN0IG5vdGlmeSBhbGwgd2FpdGVycywgc2luY2Ugc2V2ZXJhbCBkZW11eGVy
cyBjYW4gYmUgc2ltdWx0YW5lb3VzbHkgd2FpdGluZyBmb3IgYSBDRE0uCiAgICAgbV9jZG1BdHRh
Y2htZW50Q29uZGl0aW9uLm5vdGlmeUFsbCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDAyMWZiODIyNzUxNTM1NzhhOWE1NjZmMTdkMzdh
YzUzOTExZDY2ZDQuLjExMzU2MjZkYTEyMTZmOGM4NDgxOGU1MzhkZTM4YmFjYzM1YmYyMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTM4LDcg
KzM4LDggQEAKICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CiAjaW5jbHVkZSA8Z3N0L3BidXRpbHMvaW5z
dGFsbC1wbHVnaW5zLmg+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KLSNpbmNsdWRlIDx3dGYv
Q29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRl
IDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgpAQCAtMzYzLDcg
KzM2NCw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faXNVc2luZ0ZhbGxiYWNrVmlkZW9TaW5r
IHsgZmFsc2UgfTsKICAgICBib29sIG1fY2FuUmVuZGVyaW5nQmVBY2NlbGVyYXRlZCB7IGZhbHNl
IH07CiAKLSAgICBib29sIG1faXNCZWluZ0Rlc3Ryb3llZCB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2lzQmVpbmdEZXN0cm95ZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2RyYXdMb2NrKSB7IGZhbHNl
IH07CiAKICNpZiBVU0UoR1NUUkVBTUVSX0dMKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1Rl
eHR1cmVDb3BpZXJHU3RyZWFtZXI+IG1fdmlkZW9UZXh0dXJlQ29waWVyOwpAQCAtMzc1LDggKzM3
Niw4IEBAIHByb3RlY3RlZDoKICAgICBJbWFnZU9yaWVudGF0aW9uIG1fdmlkZW9Tb3VyY2VPcmll
bnRhdGlvbjsKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0gICAgTG9jayBtX2NkbUF0
dGFjaG1lbnRNdXRleDsKLSAgICBDb25kaXRpb24gbV9jZG1BdHRhY2htZW50Q29uZGl0aW9uOwor
ICAgIENoZWNrZWRMb2NrIG1fY2RtQXR0YWNobWVudExvY2s7CisgICAgQ2hlY2tlZENvbmRpdGlv
biBtX2NkbUF0dGFjaG1lbnRDb25kaXRpb247CiAgICAgUmVmUHRyPENETUluc3RhbmNlUHJveHk+
IG1fY2RtSW5zdGFuY2U7CiAKICAgICBMb2NrIG1fcHJvdGVjdGlvbk11dGV4OyAvLyBHdWFyZHMg
YWNjZXNzIHRvIG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHMuCkBAIC00NzQsOSArNDc1LDkgQEAg
cHJpdmF0ZToKICAgICBtdXRhYmxlIE1lZGlhVGltZSBtX21heFRpbWVMb2FkZWRBdExhc3REaWRM
b2FkaW5nUHJvZ3Jlc3M7CiAgICAgYm9vbCBtX2hhc1ZpZGVvIHsgZmFsc2UgfTsKICAgICBib29s
IG1faGFzQXVkaW8geyBmYWxzZSB9OwotICAgIENvbmRpdGlvbiBtX2RyYXdDb25kaXRpb247Ci0g
ICAgTG9jayBtX2RyYXdNdXRleDsKLSAgICBSdW5Mb29wOjpUaW1lcjxNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI+IG1fZHJhd1RpbWVyOworICAgIENoZWNrZWRDb25kaXRpb24gbV9kcmF3Q29u
ZGl0aW9uOworICAgIENoZWNrZWRMb2NrIG1fZHJhd0xvY2s7CisgICAgUnVuTG9vcDo6VGltZXI8
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBtX2RyYXdUaW1lciBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fZHJhd0xvY2spOwogICAgIFJ1bkxvb3A6OlRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcj4gbV9yZWFkeVRpbWVySGFuZGxlcjsKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wp
CiAjaWYgVVNFKE5JQ09TSUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ob2xlcHVuY2gvTWVkaWFQbGF5ZXJQcml2YXRlSG9sZVB1bmNoLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hvbGVwdW5jaC9NZWRpYVBsYXllclByaXZhdGVI
b2xlUHVuY2guY3BwCmluZGV4IDU2YzhiOTJkOTZkY2VjOGUwZjY5NTJlZjFiOTBmN2NkYTJmNzZl
NzQuLjkwMWQ1N2VmZDZmNDEzOWE5ZDNhMmM4YzExYmNjZWNhYmJjMTBjMDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hvbGVwdW5jaC9NZWRpYVBsYXllclBy
aXZhdGVIb2xlUHVuY2guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2hvbGVwdW5jaC9NZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2guY3BwCkBAIC03NSw3ICs3NSw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlSG9sZVB1bmNoOjpwdXNoTmV4dEhvbGVQdW5jaEJ1
ZmZlcigpCiAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9CiAgICAgICAgIFt0aGlzXShUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAgICAgICAgewotICAgICAgICAgICAg
TG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBwcm94eS5sb2NrKCkgfTsKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4gbGF5ZXJCdWZmZXIgPSBtYWtlVW5pcXVlPFRleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPigwLCBtX3NpemUsIFRleHR1cmVNYXBwZXJHTDo6
U2hvdWxkTm90QmxlbmQsIEdMX0RPTlRfQ0FSRSk7CiAgICAgICAgICAgICBwcm94eS5wdXNoTmV4
dEJ1ZmZlcihXVEZNb3ZlKGxheWVyQnVmZmVyKSk7CiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZl
clBpcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNv
c2lhSW1hZ2VCdWZmZXJQaXBlLmNwcAppbmRleCA5ZjExMjRmZWE3MDc2NmU2ZTFjNjRiZGI1Yzdj
NjNiMGFlOWE0NTk0Li44NjA1M2E1N2M5MDFjMzkzNTkxNmZjMDkyMTY1ZGZkNGNmZWRhM2VjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29z
aWFJbWFnZUJ1ZmZlclBpcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvTmljb3NpYUltYWdlQnVmZmVyUGlwZS5jcHAKQEAgLTk1LDcgKzk1LDcgQEAg
dm9pZCBOaWNvc2lhSW1hZ2VCdWZmZXJQaXBlU291cmNlOjpoYW5kbGUoUmVmUHRyPEltYWdlQnVm
ZmVyPiYmIGJ1ZmZlcikKICAgICAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9IFt0aGlzXSAoVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSYgcHJveHkpIG11dGFibGUgewogICAgICAgICAg
ICAgcmV0dXJuIHByb3h5LnNjaGVkdWxlVXBkYXRlT25Db21wb3NpdG9yVGhyZWFkKFt0aGlzXSAo
KSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBhdXRvJiBwcm94eSA9IGRvd25jYXN0PE5pY29z
aWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsPihtX25pY29zaWFMYXllci0+aW1wbCgp
KS5wcm94eSgpOwotICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKHByb3h5LmxvY2so
KSk7CisgICAgICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByb3h5LmxvY2soKSB9OwogCiAg
ICAgICAgICAgICAgICAgaWYgKCFwcm94eS5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCmluZGV4IGE0
NDYwZjkwNjMwNzQ3YThmODM3MmFhMDk4NDhlNDk2ZTZiNTQxMzkuLmJmOGNmZDQyZTRiYWZlMDgy
OTZkOTQ5ZmRlNDY2ZTYwZWI0NjY5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dM
TGF5ZXIuY3BwCkBAIC0xMDUsMTAgKzEwNSwxMCBAQCB2b2lkIEdDR0xMYXllcjo6c3dhcEJ1ZmZl
cnNJZk5lZWRlZCgpCiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbGF5ZXJCdWZmZXItPnRl
eHR1cmVHTCgpLnNldFBlbmRpbmdDb250ZW50cyhXVEZNb3ZlKGltYWdlKSk7CiAKLSAgICAgICAg
TG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7
IHByb3h5LmxvY2soKSB9OwogICAgICAgICBwcm94eS5wdXNoTmV4dEJ1ZmZlcihXVEZNb3ZlKGxh
eWVyQnVmZmVyKSk7CiAjZWxzZQotICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihwcm94eS5sb2Nr
KCkpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJveHkubG9jaygpIH07CiAgICAgICAgIHBy
b3h5LnB1c2hOZXh0QnVmZmVyKG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJC
dWZmZXI+KG1fY29udGV4dC5tX2NvbXBvc2l0b3JUZXh0dXJlLCB0ZXh0dXJlU2l6ZSwgZmxhZ3Ms
IG1fY29udGV4dC5tX2ludGVybmFsQ29sb3JGb3JtYXQpKTsKICNlbmRpZgogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyUGxhdGZvcm1MYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmNwcAppbmRleCBlMjg3
MWY3OTU2MmM1YjA1NTAzMmJhMDFjMTM0NzdiMDRhNDM5NTFiLi4wNDIyM2YyMDYzNDFjZjU1NTQ2
OWY5NWFiZTFmNzMxMDM3YzkyYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyUHJveHkuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHk6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkoKQogCiBUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojp+VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQ
cm94eSgpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgbV9sb2NrIH07CiAgICAgaWYgKG1fdGFyZ2V0TGF5ZXIpCiAgICAgICAgIG1fdGFyZ2V0
TGF5ZXItPnNldENvbnRlbnRzTGF5ZXIobnVsbHB0cik7CiB9CkBAIC02Nyw3ICs2Nyw3IEBAIHZv
aWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6YWN0aXZhdGVPbkNvbXBvc2l0aW5n
VGhyZWFkKENvbXBvc2l0b3IqIGNvCiAgICAgQVNTRVJUKHRhcmdldExheWVyKTsKICAgICBGdW5j
dGlvbjx2b2lkKCk+IHVwZGF0ZUZ1bmN0aW9uOwogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAg
ICBtX2NvbXBvc2l0b3IgPSBjb21wb3NpdG9yOwogICAgICAgICBtX3RhcmdldExheWVyID0gdGFy
Z2V0TGF5ZXI7CiAgICAgICAgIGlmIChtX3RhcmdldExheWVyICYmIG1fY3VycmVudEJ1ZmZlcikK
QEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpp
bnZhbGlkYXRlKCkKICAgICBBU1NFUlQobV9jb21wb3NpdG9yVGhyZWFkID09ICZUaHJlYWQ6OmN1
cnJlbnQoKSk7CiAgICAgRnVuY3Rpb248dm9pZCgpPiB1cGRhdGVGdW5jdGlvbjsKICAgICB7Ci0g
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBtX2xvY2sgfTsKICAgICAgICAgbV9jb21wb3NpdG9yID0gbnVsbHB0cjsKICAgICAgICAgbV90
YXJnZXRMYXllciA9IG51bGxwdHI7CiAKQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIFRleHR1cmVN
YXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnNjaGVkdWxlUmVsZWFzZVVudXNlZEJ1ZmZlcnMoKQog
CiB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnJlbGVhc2VVbnVzZWRCdWZm
ZXJzVGltZXJGaXJlZCgpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICBM
b2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgaWYgKG1fdXNlZEJ1ZmZlcnMuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm47CiAKQEAgLTE5MCw3ICsxOTAsNyBAQCB2b2lkIFRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyUHJveHk6OnJlbGVhc2VVbnVzZWRCdWZmZXJzVGltZXJGaXJlZCgpCiB2
b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnN3YXBCdWZmZXIoKQogewogICAg
IEFTU0VSVChtX2NvbXBvc2l0b3JUaHJlYWQgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKLSAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsK
ICAgICBpZiAoIW1fdGFyZ2V0TGF5ZXIgfHwgIW1fcGVuZGluZ0J1ZmZlcikKICAgICAgICAgcmV0
dXJuOwogCkBAIC0yMTgsMTEgKzIxOCwxMSBAQCB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyUHJveHk6OmRyb3BDdXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4dHVyZShibwogCiAg
ICAgbV9jb21wb3NpdG9yVGhyZWFkVXBkYXRlRnVuY3Rpb24gPQogICAgICAgICBbdGhpcywgc2hv
dWxkV2FpdF0gewotICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICAg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKIAogICAgICAgICAgICAgYXV0byBtYXli
ZU5vdGlmeVN5bmNocm9ub3VzT3BlcmF0aW9uID0gV1RGOjptYWtlU2NvcGVFeGl0KFt0aGlzLCBz
aG91bGRXYWl0XSgpIHsKICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkV2FpdCkgewotICAgICAg
ICAgICAgICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihtX3dhc0J1ZmZlckRyb3BwZWRMb2NrKTsK
KyAgICAgICAgICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fd2FzQnVmZmVyRHJvcHBlZExv
Y2sgfTsKICAgICAgICAgICAgICAgICAgICAgbV93YXNCdWZmZXJEcm9wcGVkID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICAgICAgbV93YXNCdWZmZXJEcm9wcGVkQ29uZGl0aW9uLm5vdGlmeUFsbCgp
OwogICAgICAgICAgICAgICAgIH0KQEAgLTI0MSwxNCArMjQxLDE1IEBAIHZvaWQgVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdU
ZXh0dXJlKGJvCiAgICAgICAgIH07CiAKICAgICBpZiAoc2hvdWxkV2FpdCkgewotICAgICAgICBM
b2NrSG9sZGVyIGhvbGRlcihtX3dhc0J1ZmZlckRyb3BwZWRMb2NrKTsKKyAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fd2FzQnVmZmVyRHJvcHBlZExvY2sgfTsKICAgICAgICAgbV93YXNCdWZmZXJE
cm9wcGVkID0gZmFsc2U7CiAgICAgfQogCiAgICAgbV9jb21wb3NpdG9yVGhyZWFkVXBkYXRlVGlt
ZXItPnN0YXJ0T25lU2hvdCgwX3MpOwogICAgIGlmIChzaG91bGRXYWl0KSB7Ci0gICAgICAgIExv
Y2tIb2xkZXIgaG9sZGVyKG1fd2FzQnVmZmVyRHJvcHBlZExvY2spOworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgbV93YXNCdWZmZXJEcm9wcGVkTG9jayB9OwogICAgICAgICBtX3dhc0J1ZmZlckRy
b3BwZWRDb25kaXRpb24ud2FpdChtX3dhc0J1ZmZlckRyb3BwZWRMb2NrLCBbdGhpc10geworICAg
ICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fd2FzQnVmZmVyRHJvcHBlZExvY2spOwogICAgICAgICAg
ICAgcmV0dXJuIG1fd2FzQnVmZmVyRHJvcHBlZDsKICAgICAgICAgfSk7CiAgICAgfQpAQCAtMjU2
LDcgKzI1Nyw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1
cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJlKGJvCiAKIGJvb2wgVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJQcm94eTo6c2NoZWR1bGVVcGRhdGVPbkNvbXBvc2l0b3JUaHJlYWQoRnVu
Y3Rpb248dm9pZCgpPiYmIHVwZGF0ZUZ1bmN0aW9uKQogewotICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIG1fY29tcG9zaXRv
clRocmVhZFVwZGF0ZUZ1bmN0aW9uID0gV1RGTW92ZSh1cGRhdGVGdW5jdGlvbik7CiAKICAgICBp
ZiAoIW1fY29tcG9zaXRvclRocmVhZFVwZGF0ZVRpbWVyKQpAQCAtMjcwLDcgKzI3MSw3IEBAIHZv
aWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6Y29tcG9zaXRvclRocmVhZFVwZGF0
ZVRpbWVyRmlyZWQoKQogewogICAgIEZ1bmN0aW9uPHZvaWQoKT4gdXBkYXRlRnVuY3Rpb247CiAg
ICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIGlmICghbV9jb21wb3NpdG9yVGhyZWFkVXBkYXRl
RnVuY3Rpb24pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHVwZGF0ZUZ1bmN0aW9uID0g
V1RGTW92ZShtX2NvbXBvc2l0b3JUaHJlYWRVcGRhdGVGdW5jdGlvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuaAppbmRleCBmODE0ZWE4ZTRiZmMzYWVl
Yzk2NTBhYzZjZmFlNjNkNjlkOWE3NDU2Li5jMDg5MTUwMTA3ZDY5MDI0MGFjMGNiMjVhMDQzZDRh
NTc4ZGUxOTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclBy
b3h5LmgKQEAgLTI4LDkgKzI4LDkgQEAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAK
ICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0xIZWFkZXJzLmgiCi0jaW5jbHVkZSA8d3RmL0NvbmRp
dGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3Rm
L0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3Rm
L0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTYwLDcgKzYwLDcg
QEAgcHVibGljOgogICAgIC8vIFRvIGF2b2lkIG11bHRpcGxlIGxvY2svcmVsZWFzZSBzaXR1YXRp
b24gdG8gdXBkYXRlIGEgc2luZ2xlIGZyYW1lLAogICAgIC8vIHRoZSBpbXBsZW1lbnRhdGlvbiBv
ZiBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5UHJvdmlkZXIgc2hvdWxkCiAgICAgLy8g
YXF1aXJlIC8gcmVsZWFzZSB0aGUgbG9jayBleHBsaWNpdGx5IHRvIHVzZSBiZWxvdyBtZXRob2Rz
LgotICAgIExvY2smIGxvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KKyAgICBDaGVja2VkTG9jayYg
bG9jaygpIFdURl9SRVRVUk5TX0xPQ0sobV9sb2NrKSB7IHJldHVybiBtX2xvY2s7IH0KICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+IGdldEF2YWls
YWJsZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgR0xpbnQgaW50ZXJuYWxGb3JtYXQpOwogICAgIHZv
aWQgcHVzaE5leHRCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyQnVmZmVyPiYmKTsKICAgICBib29sIGlzQWN0aXZlKCk7CkBAIC04NCwxMSArODQsMTEgQEAg
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJC
dWZmZXI+IG1fY3VycmVudEJ1ZmZlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXI+IG1fcGVuZGluZ0J1ZmZlcjsKIAotICAgIExvY2sgbV9sb2Nr
OworICAgIENoZWNrZWRMb2NrIG1fbG9jazsKIAotICAgIExvY2sgbV93YXNCdWZmZXJEcm9wcGVk
TG9jazsKLSAgICBDb25kaXRpb24gbV93YXNCdWZmZXJEcm9wcGVkQ29uZGl0aW9uOwotICAgIGJv
b2wgbV93YXNCdWZmZXJEcm9wcGVkIHsgZmFsc2UgfTsKKyAgICBDaGVja2VkTG9jayBtX3dhc0J1
ZmZlckRyb3BwZWRMb2NrOworICAgIENoZWNrZWRDb25kaXRpb24gbV93YXNCdWZmZXJEcm9wcGVk
Q29uZGl0aW9uOworICAgIGJvb2wgbV93YXNCdWZmZXJEcm9wcGVkIFdURl9HVUFSREVEX0JZX0xP
Q0sobV93YXNCdWZmZXJEcm9wcGVkTG9jaykgeyBmYWxzZSB9OwogCiAgICAgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4+IG1fdXNlZEJ1ZmZl
cnM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJ1bkxvb3A6OlRpbWVyPFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHk+PiBtX3JlbGVhc2VVbnVzZWRCdWZmZXJzVGltZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9z
aXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcApp
bmRleCA4MjhjYjEwNzVhNjBlM2NhMGFhOGMzZDMzOGVmYTIzYzllMWE0Y2FiLi5iMmE0ZmRkNmZm
YzZmZWUzMTM1MjZiZmFmNGY5YjJkZjU5MWY5ZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGlu
Z1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKQEAgLTg1LDEzICs4
NSwxMyBAQCB2b2lkIENvbXBvc2l0aW5nUnVuTG9vcDo6cGVyZm9ybVRhc2soRnVuY3Rpb248dm9p
ZCAoKT4mJiBmdW5jdGlvbikKIHZvaWQgQ29tcG9zaXRpbmdSdW5Mb29wOjpwZXJmb3JtVGFza1N5
bmMoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9u
TXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBtX2Rpc3BhdGNoU3luY0NvbmRpdGlvbkxvY2sg
fTsKICAgICBtX3J1bkxvb3AtPmRpc3BhdGNoKFt0aGlzLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVu
Y3Rpb24pXSB7CiAgICAgICAgIGZ1bmN0aW9uKCk7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
bV9kaXNwYXRjaFN5bmNDb25kaXRpb25Mb2NrIH07CiAgICAgICAgIG1fZGlzcGF0Y2hTeW5jQ29u
ZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0pOwotICAgIG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9u
LndhaXQobV9kaXNwYXRjaFN5bmNDb25kaXRpb25NdXRleCk7CisgICAgbV9kaXNwYXRjaFN5bmND
b25kaXRpb24ud2FpdChtX2Rpc3BhdGNoU3luY0NvbmRpdGlvbkxvY2spOwogfQogCiB2b2lkIENv
bXBvc2l0aW5nUnVuTG9vcDo6c3VzcGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1
bkxvb3AuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCmluZGV4IDU5NDAwY2I2MzA0YzQyOWQx
NGYzYTFjZmQwOGRjNmYwMDc5NDlmNGYuLjc3YzQ2N2JhMmZjMmVkNjEzMzU0ZjNlODFhN2Y0NzUx
YWU0YTBiZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0Nv
bXBvc2l0aW5nUnVuTG9vcC5oCkBAIC0yOCw3ICsyOCw4IEBACiAjaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTKQogCiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KLSNpbmNsdWRlIDx3dGYvQ29u
ZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtNzAs
OCArNzEsOCBAQCBwcml2YXRlOgogICAgIFJ1bkxvb3AqIG1fcnVuTG9vcCB7IG51bGxwdHIgfTsK
ICAgICBSdW5Mb29wOjpUaW1lcjxDb21wb3NpdGluZ1J1bkxvb3A+IG1fdXBkYXRlVGltZXI7CiAg
ICAgRnVuY3Rpb248dm9pZCAoKT4gbV91cGRhdGVGdW5jdGlvbjsKLSAgICBMb2NrIG1fZGlzcGF0
Y2hTeW5jQ29uZGl0aW9uTXV0ZXg7Ci0gICAgQ29uZGl0aW9uIG1fZGlzcGF0Y2hTeW5jQ29uZGl0
aW9uOworICAgIENoZWNrZWRMb2NrIG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uTG9jazsKKyAgICBD
aGVja2VkQ29uZGl0aW9uIG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uOwogCiAgICAgc3RydWN0IHsK
ICAgICAgICAgTG9jayBsb2NrOwo=
</data>
<flag name="commit-queue"
          id="450508"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429344</attachid>
            <date>2021-05-21 14:45:19 -0700</date>
            <delta_ts>2021-05-21 14:51:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226113-20210521144518.patch</filename>
            <type>text/plain</type>
            <size>49549</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI1MTM5YmMwOTQwNmY5MDYxZjU1Zjkx
ZTRiNjE3Mzc0NzM2NzQ2MTguLjc1ODRjNjk3MWE1YTNmNjhiNmM2MWExYWM1ZDQwYThjZjUyYTNh
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBsYWNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTEz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIENo
ZWNrZWRDb25kaXRpb24gaW4gbW9yZSBwbGFjZXMgdG8gYmVuZWZpdCBmcm9tIENsYW5nIFRocmVh
ZCBTYWZldHkKKyAgICAgICAgQW5hbHlzaXMuCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5oOgor
ICAgICAgICAqIHd0Zi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmg6CisgICAgICAgICogd3RmL1dU
RlNlbWFwaG9yZS5oOgorICAgICAgICAqIHd0Zi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoV1RG
OjpXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseSk6CisgICAgICAgICogd3RmL2dlbmVyaWMvUnVu
TG9vcEdlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp+UnVuTG9vcCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OnBvcHVsYXRlVGFza3MpOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpydW5JbXBsKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6Ondha2VVcFdpdGhMb2NrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVw
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c2NoZWR1bGUpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpzY2hlZHVsZUFuZFdha2VVcFdpdGhMb2NrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjp+VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUgY29uc3QpOgorICAgICAg
ICAqIHd0Zi93aW4vUnVuTG9vcFdpbi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3Rh
cnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlIGNvbnN0KToKKwogMjAyMS0wNS0y
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gVW5h
YmxlIHRvIHVwbG9hZCBmaWxlcyB0aGF0IGFyZSBzdG9yZWQgaW4gdGhlIGNsb3VkICh3aXRob3V0
IGEgbG9jYWwgY29weSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYTZjOWI5MjA3YzJlMmZhODUyMTMyZjM4NTVj
OGY5ZDEwNTYzMzdlLi5mOTNhZjkyMDFjOGY2MjZiNTQyN2Y5YzdjOWQ0MGQyZjQ2ZThmNjFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBs
YWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2
MTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IENoZWNrZWRDb25kaXRpb24gaW4gbW9yZSBwbGFjZXMgdG8gYmVuZWZpdCBmcm9tIENsYW5nIFRo
cmVhZCBTYWZldHkKKyAgICAgICAgQW5hbHlzaXMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVGFzay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRhc2tT
eW5jaHJvbml6ZXI6OndhaXRGb3JUYXNrQ29tcGxldGlvbik6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OnRhc2tDb21wbGV0ZWQpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmg6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFz
ZVRhc2tTeW5jaHJvbml6ZXI6OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgICh3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckFuZFB1c2hGcmFtZXMpOgorICAgICAgICAo
d2ViS2l0V2ViQXVkaW9TcmNSZW5kZXJJdGVyYXRpb24pOgorICAgICAgICAod2ViS2l0V2ViQXVk
aW9TcmNDaGFuZ2VTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29k
ZXJHU3RyZWFtZXI6OnNldEhhc0VPUyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJH
U3RyZWFtZXI6Om5vdGlmeVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJH
U3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6aGFuZGxlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6cHJlcGFyZVBpcGVsaW5lKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckdTdHJlYW1lcjo6cHVzaEVuY29kZWREYXRh
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0
cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01haW5UaHJl
YWROb3RpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0Nv
bXBvc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpyZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6dHJpZ2dlclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpjYW5jZWxSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6cHVzaE5leHRIb2xlUHVuY2hCdWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp3YWl0Rm9yQ0RNQXR0YWNobWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3Rh
bmNlQXR0YWNoZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6V1RGX0dVQVJERURfQllfTE9DSyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvaG9sZXB1bmNoL01lZGlhUGxheWVyUHJpdmF0ZUhvbGVQdW5jaC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2g6OnB1c2hOZXh0SG9s
ZVB1bmNoQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29z
aWFJbWFnZUJ1ZmZlclBpcGUuY3BwOgorICAgICAgICAoTmljb3NpYTo6Tmljb3NpYUltYWdlQnVm
ZmVyUGlwZVNvdXJjZTo6aGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmNwcDoKKyAgICAgICAgKE5pY29zaWE6OkdDR0xM
YXllcjo6c3dhcEJ1ZmZlcnNJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6flRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eTo6YWN0aXZhdGVPbkNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6cmVsZWFzZVVudXNl
ZEJ1ZmZlcnNUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHk6OnN3YXBCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdU
ZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJv
eHk6OnNjaGVkdWxlVXBkYXRlT25Db21wb3NpdG9yVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmNvbXBvc2l0b3JUaHJlYWRVcGRhdGVU
aW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJQcm94eTo6V1RGX1JFVFVSTlNfTE9DSyk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjpXVEZfR1VBUkRFRF9CWV9MT0NLKToK
KwogMjAyMS0wNS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkb3B0IENoZWNrZWRMb2NrIGluIFNjcm9sbGluZ1RyZWUgYW5kIGZpeCB0aHJlYWRpbmcgYnVn
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9S
dW5Mb29wLmgKaW5kZXggYjg2MmZiYzMzNTg0YWI1ZGJjZjQ4MWJmMThmMmE0M2JlMmM3MjRkMS4u
ZTQzNmJmMjM5YWJjMjJmMTJlOGVkNDAzYjk5NWNmOGI4NmM1M2U4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAt
MjgsOCArMjgsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2lu
Y2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2Nr
Lmg+Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uRGlzcGF0Y2hl
ci5oPgpAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgUmVmPFJ1bkxvb3A+IG1f
cnVuTG9vcDsKIAogI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xPT1ApCi0gICAgICAgIGJvb2wgaXNB
Y3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdDsKKyAgICAgICAgYm9vbCBpc0FjdGl2
ZVdpdGhMb2NrKCkgY29uc3QgV1RGX1JFUVVJUkVTX0xPQ0sobV9ydW5Mb29wLT5tX2xvb3BMb2Nr
KTsKICAgICAgICAgdm9pZCB0aW1lckZpcmVkKCk7CiAgICAgICAgIE1vbm90b25pY1RpbWUgbV9u
ZXh0RmlyZURhdGU7CiAgICAgICAgIFNlY29uZHMgbV9pbnRlcnZhbDsKQEAgLTE1OSw4ICsxNTks
OCBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZyB7IGZhbHNlIH07CiAgICAg
ICAgIFNlY29uZHMgbV9pbnRlcnZhbCB7IDAgfTsKICNlbGlmIFVTRShHRU5FUklDX0VWRU5UX0xP
T1ApCi0gICAgICAgIGJvb2wgaXNBY3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdDsK
LSAgICAgICAgdm9pZCBzdG9wKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CisgICAgICAgIGJvb2wg
aXNBY3RpdmVXaXRoTG9jaygpIGNvbnN0IFdURl9SRVFVSVJFU19MT0NLKG1fcnVuTG9vcC0+bV9s
b29wTG9jayk7CisgICAgICAgIHZvaWQgc3RvcFdpdGhMb2NrKCkgV1RGX1JFUVVJUkVTX0xPQ0so
bV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKIAogICAgICAgICBjbGFzcyBTY2hlZHVsZWRUYXNrOwog
ICAgICAgICBSZWZQdHI8U2NoZWR1bGVkVGFzaz4gbV9zY2hlZHVsZWRUYXNrOwpAQCAtMjI4LDcg
KzIyOCw3IEBAIHByaXZhdGU6CiAgICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBt
ZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKICAgICBIV05EIG1fcnVuTG9v
cE1lc3NhZ2VXaW5kb3c7CiAKLSAgICBMb2NrIG1fbG9vcExvY2s7CisgICAgQ2hlY2tlZExvY2sg
bV9sb29wTG9jazsKICNlbGlmIFVTRShDT0NPQV9FVkVOVF9MT09QKQogICAgIHN0YXRpYyB2b2lk
IHBlcmZvcm1Xb3JrKHZvaWQqKTsKICAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wUmVmPiBtX3J1bkxv
b3A7CkBAIC0yNDMsOSArMjQzLDkgQEAgcHJpdmF0ZToKICAgICBXZWFrSGFzaFNldDxPYnNlcnZl
cj4gbV9vYnNlcnZlcnM7CiAjZWxpZiBVU0UoR0VORVJJQ19FVkVOVF9MT09QKQogICAgIHZvaWQg
c2NoZWR1bGUoUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJik7Ci0gICAgdm9pZCBzY2hl
ZHVsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+
JiYpOwotICAgIHZvaWQgd2FrZVVwKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0gICAgdm9pZCBz
Y2hlZHVsZUFuZFdha2VVcChjb25zdCBBYnN0cmFjdExvY2tlciYsIFJlZjxUaW1lckJhc2U6OlNj
aGVkdWxlZFRhc2s+JiYpOworICAgIHZvaWQgc2NoZWR1bGVXaXRoTG9jayhSZWY8VGltZXJCYXNl
OjpTY2hlZHVsZWRUYXNrPiYmKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2xvb3BMb2NrKTsKKyAgICB2
b2lkIHdha2VVcFdpdGhMb2NrKCkgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb29wTG9jayk7CisgICAg
dm9pZCBzY2hlZHVsZUFuZFdha2VVcFdpdGhMb2NrKFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRh
c2s+JiYpIFdURl9SRVFVSVJFU19MT0NLKG1fbG9vcExvY2spOwogCiAgICAgZW51bSBjbGFzcyBS
dW5Nb2RlIHsKICAgICAgICAgSXRlcmF0ZSwKQEAgLTI2MSw5ICsyNjEsOSBAQCBwcml2YXRlOgog
CiAgICAgZnJpZW5kIGNsYXNzIFRpbWVyQmFzZTsKIAotICAgIExvY2sgbV9sb29wTG9jazsKKyAg
ICBDaGVja2VkTG9jayBtX2xvb3BMb2NrOwogICAgIENvbmRpdGlvbiBtX3JlYWR5VG9SdW47Ci0g
ICAgQ29uZGl0aW9uIG1fc3RvcENvbmRpdGlvbjsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fc3Rv
cENvbmRpdGlvbjsKICAgICBWZWN0b3I8UmVmUHRyPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4+
IG1fc2NoZWR1bGVzOwogICAgIFZlY3RvcjxTdGF0dXMqPiBtX21haW5Mb29wczsKICAgICBib29s
IG1fc2h1dGRvd24geyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3luY2hy
b25pemVkRml4ZWRRdWV1ZS5oIGIvU291cmNlL1dURi93dGYvU3luY2hyb25pemVkRml4ZWRRdWV1
ZS5oCmluZGV4IDEwYWQ4NDZmZGE3MTdlYTU2NWQ0M2U3YTJjNTMyMTExZDVjNTk0ZjQuLmIzOTBk
ZTM5NGZkMmUyMzc0ZTU2NjQzMTMyMzk5YmU3MzU1MTY5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1N5bmNocm9uaXplZEZpeGVkUXVldWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TeW5j
aHJvbml6ZWRGaXhlZFF1ZXVlLmgKQEAgLTI1LDkgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBvcGVuKCkKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja0hvbGRlcihtX211
dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBpZiAobV9v
cGVuKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgY2xvc2UoKQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1f
bXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIGlmICgh
bV9vcGVuKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02NCwxNiArNjQsMTkgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc09wZW4oKQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9s
ZGVyKG1fbXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAg
IHJldHVybiBtX29wZW47CiAgICAgfQogCiAgICAgYm9vbCBlbnF1ZXVlKGNvbnN0IFQmIHZhbHVl
KQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1fbXV0ZXgpOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICAgICAgLy8gV2FpdCBmb3IgYW4gZW1w
dHkgcGxhY2UgdG8gYmUgYXZhaWxhYmxlIGluIHRoZSBxdWV1ZS4KLSAgICAgICAgbV9jb25kaXRp
b24ud2FpdChtX211dGV4LCBbdGhpc10oKSB7IHJldHVybiAhbV9vcGVuIHx8IG1fcXVldWUuc2l6
ZSgpIDwgQnVmZmVyU2l6ZTsgfSk7CisgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9sb2NrLCBb
dGhpc10geworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jayk7CisgICAgICAgICAgICBy
ZXR1cm4gIW1fb3BlbiB8fCBtX3F1ZXVlLnNpemUoKSA8IEJ1ZmZlclNpemU7CisgICAgICAgIH0p
OwogCiAgICAgICAgIC8vIFRoZSBxdWV1ZSBpcyBjbG9zaW5nLCBleGl0IGltbWVkaWF0ZWx5Lgog
ICAgICAgICBpZiAoIW1fb3BlbikKQEAgLTg5LDEwICs5MiwxMyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGRlcXVldWUoVCYgdmFsdWUpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tIb2xk
ZXIobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKIAogICAgICAg
ICAvLyBXYWl0IGZvciBhbiBpdGVtIHRvIGJlIGFkZGVkLgotICAgICAgICBtX2NvbmRpdGlvbi53
YWl0KG1fbXV0ZXgsIFt0aGlzXSgpIHsgcmV0dXJuICFtX29wZW4gfHwgbV9xdWV1ZS5zaXplKCk7
IH0pOworICAgICAgICBtX2NvbmRpdGlvbi53YWl0KG1fbG9jaywgW3RoaXNdIHsKKyAgICAgICAg
ICAgIGFzc2VydElzSGVsZChtX2xvY2spOworICAgICAgICAgICAgcmV0dXJuICFtX29wZW4gfHwg
bV9xdWV1ZS5zaXplKCk7CisgICAgICAgIH0pOwogCiAgICAgICAgIC8vIFRoZSBxdWV1ZSBpcyBj
bG9zaW5nLCBleGl0IGltbWVkaWF0ZWx5LgogICAgICAgICBpZiAoIW1fb3BlbikKQEAgLTExMywx
MSArMTE5LDExIEBAIHByaXZhdGU6CiAgICAgICAgIHN0YXRpY19hc3NlcnQoISgoQnVmZmVyU2l6
ZSAtIDEpICYgQnVmZmVyU2l6ZSksICJCdWZmZXJTaXplIG11c3QgYmUgcG93ZXIgb2YgMi4iKTsK
ICAgICB9CiAKLSAgICBMb2NrIG1fbXV0ZXg7Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwor
ICAgIENoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9u
OwogCi0gICAgYm9vbCBtX29wZW4geyB0cnVlIH07Ci0gICAgRGVxdWU8VCwgQnVmZmVyU2l6ZT4g
bV9xdWV1ZTsKKyAgICBib29sIG1fb3BlbiBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykgeyB0
cnVlIH07CisgICAgRGVxdWU8VCwgQnVmZmVyU2l6ZT4gbV9xdWV1ZSBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fbG9jayk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XVEZTZW1h
cGhvcmUuaCBiL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5oCmluZGV4IDhlYTViZWZmOWVm
NDgyZjZjZDY1OTEwYzUyYWM2NDFiNWJhMjJjNzUuLjVhOTgwZjZlNjQ2MmVkNTNlZGVmOWM2MTli
YTcyMDE2ZjY5MjE5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5oCkBAIC0yNSw4ICsyNSw4IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgotI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNw
YWNlIFdURiB7CkBAIC00MiwxOCArNDIsMTggQEAgcHVibGljOgogCiAgICAgdm9pZCBzaWduYWwo
KQogICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIG1fdmFsdWUrKzsKICAgICAgICAg
bV9jb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfQogCiAgICAgYm9vbCB3YWl0VW50aWwoY29u
c3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0KQogICAgIHsKLSAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwotICAgICAgICBib29sIHNhdGlzZmllZCA9IG1f
Y29uZGl0aW9uLndhaXRVbnRpbChtX2xvY2ssIHRpbWVvdXQsCi0gICAgICAgICAgICBbJl0gewot
ICAgICAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlOwotICAgICAgICAgICAgfSk7CisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKKyAgICAgICAgYm9vbCBzYXRpc2ZpZWQgPSBtX2Nv
bmRpdGlvbi53YWl0VW50aWwobV9sb2NrLCB0aW1lb3V0LCBbJl0geworICAgICAgICAgICAgYXNz
ZXJ0SXNIZWxkKG1fbG9jayk7CisgICAgICAgICAgICByZXR1cm4gbV92YWx1ZTsKKyAgICAgICAg
fSk7CiAgICAgICAgIGlmIChzYXRpc2ZpZWQpCiAgICAgICAgICAgICAtLW1fdmFsdWU7CiAgICAg
ICAgIHJldHVybiBzYXRpc2ZpZWQ7CkBAIC03MCw5ICs3MCw5IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgdW5zaWduZWQgbV92YWx1ZSB7IDAgfTsKLSAgICBMb2NrIG1fbG9jazsK
LSAgICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgdW5zaWduZWQgbV92YWx1ZSBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fbG9jaykgeyAwIH07CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAg
IENoZWNrZWRDb25kaXRpb24gbV9jb25kaXRpb247CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwCmlu
ZGV4IGRmN2QzN2E4ZWM2NDU1MmFlMDFjMmQ1OTBkMzVkZTAyZjU1MTE2NDUuLmNjYWQ1YmU4NzVm
NDA4YjAzOTI5ZjZiMTcxYzEzZTA4NDg4MDhjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1dvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcApAQCAtMjgs
MTAgKzI4LDEwIEBACiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogCiAjaW5jbHVkZSA8bXV0
ZXg+Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29u
ZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZD
b3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTEwNSw4ICsxMDUsNyBAQCB2b2lkIFdv
cmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBXVEY6OkZ1bmN0aW9u
PHZvaWQgKHNpemVfdCBpbgogCiAgICAgICAgIHZvaWQgZGlzcGF0Y2goY29uc3QgV1RGOjpGdW5j
dGlvbjx2b2lkICgpPiogZnVuY3Rpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xk
ZXIgaG9sZGVyKG1fbG9jayk7Ci0KKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sg
fTsKICAgICAgICAgICAgIG1fcXVldWUuYXBwZW5kKGZ1bmN0aW9uKTsKICAgICAgICAgICAgIG1f
Y29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgICAgICB9CkBAIC0xMTgsOSArMTE3LDkgQEAgdm9p
ZCBXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywgV1RGOjpGdW5j
dGlvbjx2b2lkIChzaXplX3QgaW4KICAgICAgICAgICAgICAgICBjb25zdCBXVEY6OkZ1bmN0aW9u
PHZvaWQgKCk+KiBmdW5jdGlvbjsKIAogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgTG9ja0hvbGRlciBob2xkZXIobV9sb2NrKTsKLQorICAgICAgICAgICAgICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgICAgICAgICAgICAgIG1fY29uZGl0aW9u
LndhaXQobV9sb2NrLCBbdGhpc10geworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0SXNI
ZWxkKG1fbG9jayk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIW1fcXVldWUuaXNF
bXB0eSgpOwogICAgICAgICAgICAgICAgICAgICB9KTsKIApAQCAtMTMxLDkgKzEzMCw5IEBAIHZv
aWQgV29ya1F1ZXVlOjpjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVu
Y3Rpb248dm9pZCAoc2l6ZV90IGluCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAg
ICBMb2NrIG1fbG9jazsKLSAgICAgICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotICAgICAgICBE
ZXF1ZTxjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+Kj4gbV9xdWV1ZTsKKyAgICAgICAgQ2hl
Y2tlZExvY2sgbV9sb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwor
ICAgICAgICBEZXF1ZTxjb25zdCBGdW5jdGlvbjx2b2lkKCk+Kj4gbV9xdWV1ZSBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fbG9jayk7CiAKICAgICAgICAgVmVjdG9yPFJlZjxUaHJlYWQ+PiBtX3dvcmtl
cnM7CiAgICAgfTsKQEAgLTE1MCwxMCArMTQ5LDEwIEBAIHZvaWQgV29ya1F1ZXVlOjpjb25jdXJy
ZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZCAoc2l6ZV90IGlu
CiAgICAgc3RkOjphdG9taWM8c2l6ZV90PiBjdXJyZW50SW5kZXgoMCk7CiAgICAgc3RkOjphdG9t
aWM8c2l6ZV90PiBhY3RpdmVUaHJlYWRzKHdvcmtlckNvdW50ICsgMSk7CiAKLSAgICBDb25kaXRp
b24gY29uZGl0aW9uOwotICAgIExvY2sgbG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIGNvbmRp
dGlvbjsKKyAgICBDaGVja2VkTG9jayBsb2NrOwogCi0gICAgV1RGOjpGdW5jdGlvbjx2b2lkICgp
PiBhcHBsaWVyID0gWyYsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIHsKKyAgICBGdW5j
dGlvbjx2b2lkICgpPiBhcHBsaWVyID0gWyYsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbild
IHsKICAgICAgICAgc2l6ZV90IGluZGV4OwogCiAgICAgICAgIC8vIENhbGwgdGhlIGZ1bmN0aW9u
IGZvciBhcyBsb25nIGFzIHRoZXJlIGFyZSBpdGVyYXRpb25zIGxlZnQuCkBAIC0xNjIsNyArMTYx
LDcgQEAgdm9pZCBXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywg
V1RGOjpGdW5jdGlvbjx2b2lkIChzaXplX3QgaW4KIAogICAgICAgICAvLyBJZiB0aGVyZSBhcmUg
bm8gYWN0aXZlIHRocmVhZHMgbGVmdCwgc2lnbmFsIHRoZSBjYWxsZXIuCiAgICAgICAgIGlmICgh
LS1hY3RpdmVUaHJlYWRzKSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihsb2NrKTsK
KyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBsb2NrIH07CiAgICAgICAgICAgICBjb25kaXRp
b24ubm90aWZ5T25lKCk7CiAgICAgICAgIH0KICAgICB9OwpAQCAtMTcxLDcgKzE3MCw3IEBAIHZv
aWQgV29ya1F1ZXVlOjpjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVu
Y3Rpb248dm9pZCAoc2l6ZV90IGluCiAgICAgICAgIHRocmVhZFBvb2wtPmRpc3BhdGNoKCZhcHBs
aWVyKTsKICAgICBhcHBsaWVyKCk7CiAKLSAgICBMb2NrSG9sZGVyIGhvbGRlcihsb2NrKTsKKyAg
ICBMb2NrZXIgbG9ja2VyIHsgbG9jayB9OwogICAgIGNvbmRpdGlvbi53YWl0KGxvY2ssIFsmXSB7
IHJldHVybiAhYWN0aXZlVGhyZWFkczsgfSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvZ2Vu
ZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKaW5kZXggMTJjOGE5ZDMxZTQ2MzU2OTc5OTQ2NWZmNzE2
ODBlZjBjOGEwNWU1OC4uYjJiMzJjNjJlNWJlNmYzMzJiNjQwZWZiZDU0ZmYzM2Y3MTBhMmE1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKQEAgLTEwNSw3ICsx
MDUsNyBAQCBSdW5Mb29wOjpSdW5Mb29wKCkKIAogUnVuTG9vcDo6flJ1bkxvb3AoKQogewotICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xv
b3BMb2NrIH07CiAgICAgbV9zaHV0ZG93biA9IHRydWU7CiAgICAgbV9yZWFkeVRvUnVuLm5vdGlm
eU9uZSgpOwogCkBAIC0xMTYsNyArMTE2LDcgQEAgUnVuTG9vcDo6flJ1bkxvb3AoKQogCiBpbmxp
bmUgYm9vbCBSdW5Mb29wOjpwb3B1bGF0ZVRhc2tzKFJ1bk1vZGUgcnVuTW9kZSwgU3RhdHVzJiBz
dGF0dXNPZlRoaXNMb29wLCBEZXF1ZTxSZWZQdHI8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPj4m
IGZpcmVkVGltZXJzKQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOworICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvb3BMb2NrIH07CiAKICAgICBpZiAocnVuTW9kZSA9PSBSdW5N
b2RlOjpEcmFpbikgewogICAgICAgICBNb25vdG9uaWNUaW1lIHNsZWVwVW50aWwgPSBNb25vdG9u
aWNUaW1lOjppbmZpbml0eSgpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgUnVuTG9vcDo6cnVu
SW1wbChSdW5Nb2RlIHJ1bk1vZGUpCiAKICAgICBTdGF0dXMgc3RhdHVzT2ZUaGlzTG9vcCA9IFN0
YXR1czo6Q2xlYXI7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvb3BMb2Nr
KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9vcExvY2sgfTsKICAgICAgICAgbV9tYWlu
TG9vcHMuYXBwZW5kKCZzdGF0dXNPZlRoaXNMb29wKTsKICAgICB9CiAKQEAgLTIwMiw3ICsyMDIs
NyBAQCB2b2lkIFJ1bkxvb3A6OnNldFdha2VVcENhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmIGZ1bmN0aW9uKQogCiB2b2lkIFJ1bkxvb3A6OnN0b3AoKQogewotICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbG9vcExvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvb3BMb2NrIH07CiAg
ICAgaWYgKG1fbWFpbkxvb3BzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTMs
NyArMjEzLDcgQEAgdm9pZCBSdW5Mb29wOjpzdG9wKCkKICAgICB9CiB9CiAKLXZvaWQgUnVuTG9v
cDo6d2FrZVVwKGNvbnN0IEFic3RyYWN0TG9ja2VyJikKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwV2l0
aExvY2soKQogewogICAgIG1fcGVuZGluZ1Rhc2tzID0gdHJ1ZTsKICAgICBtX3JlYWR5VG9SdW4u
bm90aWZ5T25lKCk7CkBAIC0yMjQsOCArMjI0LDggQEAgdm9pZCBSdW5Mb29wOjp3YWtlVXAoY29u
c3QgQWJzdHJhY3RMb2NrZXImKQogCiB2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCiB7Ci0gICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb29wTG9jayk7Ci0gICAgd2FrZVVwKGxvY2tlcik7CisgICAgTG9j
a2VyIGxvY2tlciB7IG1fbG9vcExvY2sgfTsKKyAgICB3YWtlVXBXaXRoTG9jaygpOwogfQogCiBS
dW5Mb29wOjpDeWNsZVJlc3VsdCBSdW5Mb29wOjpjeWNsZShSdW5Mb29wTW9kZSkKQEAgLTI0Miwx
NCArMjQyLDE0IEBAIHZvaWQgUnVuTG9vcDo6c2NoZWR1bGUoY29uc3QgQWJzdHJhY3RMb2NrZXIm
LCBSZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPiYmIHRhCiAKIHZvaWQgUnVuTG9vcDo6c2No
ZWR1bGUoUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJiB0YXNrKQogewotICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOwotICAgIHNjaGVkdWxlKGxvY2tlciwgV1RGTW92ZSh0
YXNrKSk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9vcExvY2sgfTsKKyAgICBzY2hlZHVsZVdp
dGhMb2NrKFdURk1vdmUodGFzaykpOwogfQogCi12b2lkIFJ1bkxvb3A6OnNjaGVkdWxlQW5kV2Fr
ZVVwKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFJlZjxUaW1lckJhc2U6OlNjaGVkdWxl
ZFRhc2s+JiYgdGFzaykKK3ZvaWQgUnVuTG9vcDo6c2NoZWR1bGVBbmRXYWtlVXBXaXRoTG9jayhS
ZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPiYmIHRhc2spCiB7Ci0gICAgc2NoZWR1bGUobG9j
a2VyLCBXVEZNb3ZlKHRhc2spKTsKLSAgICB3YWtlVXAobG9ja2VyKTsKKyAgICBzY2hlZHVsZVdp
dGhMb2NrKFdURk1vdmUodGFzaykpOworICAgIHdha2VVcFdpdGhMb2NrKCk7CiB9CiAKIC8vIFNp
bmNlIFJ1bkxvb3AgZG9lcyBub3Qgb3duIHRoZSByZWdpc3RlcmVkIFRpbWVyQmFzZSwKQEAgLTI2
MiwyMSArMjYyLDIxIEBAIFJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AmIHJ1
bkxvb3ApCiAKIFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCiB7Ci0gICAgTG9ja0hv
bGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKLSAgICBzdG9wKGxvY2tlcik7Cisg
ICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9OworICAgIHN0b3BXaXRo
TG9jaygpOwogfQogCiB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoU2Vjb25kcyBpbnRl
cnZhbCwgYm9vbCByZXBlYXRpbmcpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29w
LT5tX2xvb3BMb2NrKTsKLSAgICBzdG9wKGxvY2tlcik7CisgICAgTG9ja2VyIGxvY2tlciB7IG1f
cnVuTG9vcC0+bV9sb29wTG9jayB9OworICAgIHN0b3BXaXRoTG9jaygpOwogICAgIG1fc2NoZWR1
bGVkVGFzayA9IFNjaGVkdWxlZFRhc2s6OmNyZWF0ZShbdGhpc10gewogICAgICAgICBmaXJlZCgp
OwogICAgIH0sIGludGVydmFsLCByZXBlYXRpbmcpOwotICAgIG1fcnVuTG9vcC0+c2NoZWR1bGVB
bmRXYWtlVXAobG9ja2VyLCAqbV9zY2hlZHVsZWRUYXNrKTsKKyAgICBtX3J1bkxvb3AtPnNjaGVk
dWxlQW5kV2FrZVVwV2l0aExvY2soKm1fc2NoZWR1bGVkVGFzayk7CiB9CiAKLXZvaWQgUnVuTG9v
cDo6VGltZXJCYXNlOjpzdG9wKGNvbnN0IEFic3RyYWN0TG9ja2VyJikKK3ZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjpzdG9wV2l0aExvY2soKQogewogICAgIGlmIChtX3NjaGVkdWxlZFRhc2spIHsK
ICAgICAgICAgbV9zY2hlZHVsZWRUYXNrLT5kZWFjdGl2YXRlKCk7CkBAIC0yODYsMjUgKzI4Niwy
NSBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcChjb25zdCBBYnN0cmFjdExvY2tlciYp
CiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3J1bkxvb3AtPm1fbG9vcExvY2spOwotICAgIHN0b3AobG9ja2VyKTsKKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9ydW5Mb29wLT5tX2xvb3BMb2NrIH07CisgICAgc3RvcFdpdGhMb2NrKCk7
CiB9CiAKIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0CiB7Ci0gICAg
TG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKLSAgICByZXR1cm4gaXNB
Y3RpdmUobG9ja2VyKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9ydW5Mb29wLT5tX2xvb3BMb2Nr
IH07CisgICAgcmV0dXJuIGlzQWN0aXZlV2l0aExvY2soKTsKIH0KIAotYm9vbCBSdW5Mb29wOjpU
aW1lckJhc2U6OmlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29uc3QKK2Jvb2wgUnVu
TG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZVdpdGhMb2NrKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9zY2hlZHVsZWRUYXNrICYmIG1fc2NoZWR1bGVkVGFzay0+aXNBY3RpdmUoKTsKIH0KIAogU2Vj
b25kcyBSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUoKSBjb25zdAogewotICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9jayk7Ci0gICAgaWYgKGlzQWN0
aXZlKGxvY2tlcikpCisgICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9
OworICAgIGlmIChpc0FjdGl2ZVdpdGhMb2NrKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om1heDxT
ZWNvbmRzPihtX3NjaGVkdWxlZFRhc2stPnNjaGVkdWxlZFRpbWVQb2ludCgpIC0gTW9ub3Rvbmlj
VGltZTo6bm93KCksIDBfcyk7CiAgICAgcmV0dXJuIDBfczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29w
V2luLmNwcAppbmRleCBhNGM0N2E2ZDJjMzdhZDcyZTY1NjczMTZhZTEyYTAyMWNlYzc1NmQ5Li41
MzMxNDM5NWEwMTVhODJmOTI4OGYzZGQwZTgwZDE0NTYyYjU2ZTIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL1J1
bkxvb3BXaW4uY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgUnVuTG9vcDo6Q3ljbGVSZXN1bHQgUnVu
TG9vcDo6Y3ljbGUoUnVuTG9vcE1vZGUpCiB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJG
aXJlZCgpCiB7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1f
bG9vcExvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9ydW5Mb29wLT5tX2xvb3BMb2Nr
IH07CiAKICAgICAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
MTc2LDcgKzE3Niw3IEBAIFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCiAKIHZvaWQg
UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChTZWNvbmRzIGludGVydmFsLCBib29sIHJlcGVhdCkK
IHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fbG9vcExvY2spOworICAgIExv
Y2tlciBsb2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKICAgICBtX2lzUmVwZWF0aW5n
ID0gcmVwZWF0OwogICAgIG1faXNBY3RpdmUgPSB0cnVlOwogICAgIG1faW50ZXJ2YWwgPSBpbnRl
cnZhbDsKQEAgLTE4NiwyOSArMTg2LDI5IEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFy
dChTZWNvbmRzIGludGVydmFsLCBib29sIHJlcGVhdCkKIAogdm9pZCBSdW5Mb29wOjpUaW1lckJh
c2U6OnN0b3AoKQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9j
ayk7Ci0gICAgaWYgKCFpc0FjdGl2ZShsb2NrZXIpKQorICAgIExvY2tlciBsb2NrZXIgeyBtX3J1
bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAgICBpZiAoIWlzQWN0aXZlV2l0aExvY2soKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgbV9pc0FjdGl2ZSA9IGZhbHNlOwogICAgIDo6S2lsbFRpbWVyKG1f
cnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4o
dGhpcykpOwogfQogCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoY29uc3QgQWJz
dHJhY3RMb2NrZXImKSBjb25zdAorYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlV2l0
aExvY2soKSBjb25zdAogewogICAgIHJldHVybiBtX2lzQWN0aXZlOwogfQogCiBib29sIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAogewotICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fcnVuTG9vcC0+bV9sb29wTG9jayk7Ci0gICAgcmV0dXJuIGlzQWN0aXZlKGxvY2tlcik7Cisg
ICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9OworICAgIHJldHVybiBp
c0FjdGl2ZVdpdGhMb2NrKCk7CiB9CiAKIFNlY29uZHMgUnVuTG9vcDo6VGltZXJCYXNlOjpzZWNv
bmRzVW50aWxGaXJlKCkgY29uc3QKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3At
Pm1fbG9vcExvY2spOwotICAgIGlmIChpc0FjdGl2ZShsb2NrZXIpKQorICAgIExvY2tlciBsb2Nr
ZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAgICBpZiAoaXNBY3RpdmVXaXRoTG9jaygp
KQogICAgICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4obV9uZXh0RmlyZURhdGUgLSBNb25v
dG9uaWNUaW1lOjpub3coKSwgMF9zKTsKICAgICByZXR1cm4gMF9zOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCmluZGV4IGRi
MjJhYWM0YTM4YzQxMjI3M2U5MzdhZTJiMDYxNDVmYWVjMzU2YTIuLmJlZjAzOWUxNWU4MjU2NTA3
MGYwZTM3ZjlmMzM5ZjVhNGZhMTM1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKQEAgLTQxLDE4ICs0MSwxNiBAQCBEYXRh
YmFzZVRhc2tTeW5jaHJvbml6ZXI6OkRhdGFiYXNlVGFza1N5bmNocm9uaXplcigpCiAKIHZvaWQg
RGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp3YWl0Rm9yVGFza0NvbXBsZXRpb24oKQogewotICAg
IG1fc3luY2hyb25vdXNNdXRleC5sb2NrKCk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fc3luY2hy
b25vdXNMb2NrIH07CiAgICAgd2hpbGUgKCFtX3Rhc2tDb21wbGV0ZWQpCi0gICAgICAgIG1fc3lu
Y2hyb25vdXNDb25kaXRpb24ud2FpdChtX3N5bmNocm9ub3VzTXV0ZXgpOwotICAgIG1fc3luY2hy
b25vdXNNdXRleC51bmxvY2soKTsKKyAgICAgICAgbV9zeW5jaHJvbm91c0NvbmRpdGlvbi53YWl0
KG1fc3luY2hyb25vdXNMb2NrKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6
OnRhc2tDb21wbGV0ZWQoKQogewotICAgIG1fc3luY2hyb25vdXNNdXRleC5sb2NrKCk7CisgICAg
TG9ja2VyIGxvY2tlciB7IG1fc3luY2hyb25vdXNMb2NrIH07CiAgICAgbV90YXNrQ29tcGxldGVk
ID0gdHJ1ZTsKICAgICBtX3N5bmNocm9ub3VzQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgIG1f
c3luY2hyb25vdXNNdXRleC51bmxvY2soKTsKIH0KIAogRGF0YWJhc2VUYXNrOjpEYXRhYmFzZVRh
c2soRGF0YWJhc2UmIGRhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqIHN5bmNocm9u
aXplcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUYXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VGFzay5oCmluZGV4IDkxNmU5MTg5YThmZTc3MTBiNjQzMGY5NzE2N2FlZTllYTgyZTk0ODUuLjdk
MTZkNTY3Y2FiMTMzN2UzMjYxZGM3ZGQzMzU2NWY0MzM2OWNkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suaApAQCAtMjksOSArMjks
OSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUg
PHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2lu
Y2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5j
bHVkZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Nyw5ICs1Nyw5
IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIGJvb2wgbV90YXNrQ29tcGxldGVk
IHsgZmFsc2UgfTsKLSAgICBMb2NrIG1fc3luY2hyb25vdXNNdXRleDsKLSAgICBDb25kaXRpb24g
bV9zeW5jaHJvbm91c0NvbmRpdGlvbjsKKyAgICBib29sIG1fdGFza0NvbXBsZXRlZCBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fc3luY2hyb25vdXNMb2NrKSB7IGZhbHNlIH07CisgICAgQ2hlY2tlZExv
Y2sgbV9zeW5jaHJvbm91c0xvY2s7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBtX3N5bmNocm9ub3Vz
Q29uZGl0aW9uOwogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgYm9vbCBtX2hhc0NoZWNrZWRGb3JU
ZXJtaW5hdGlvbiB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVk
aW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDhjZWIxOGMxODFjMWM4MTNiY2FjNzU4MjQ1MDJh
MjkwOTlmOTc1ODAuLmE3ODg5Zjg3MjQ0YjU2N2U1ODgyMTc0ZWU4OGRiYzZlNmFkMjdlZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRX
ZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMzEs
OCArMzEsOCBAQAogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CiAjaW5jbHVkZSA8Z3N0
L2F1ZGlvL2F1ZGlvLWluZm8uaD4KICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9taXNzaW5nLXBsdWdp
bnMuaD4KLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4K
KyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2Vk
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlx
dWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgpAQCAtODQsOSArODQsOSBA
QCBzdHJ1Y3QgX1dlYktpdFdlYkF1ZGlvU3JjUHJpdmF0ZSB7CiAgICAgTG9jayBkaXNwYXRjaFRv
UmVuZGVyVGhyZWFkTG9jazsKICAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+
IGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbjsKIAotICAgIGJvb2wgZGlzcGF0Y2hEb25l
OwotICAgIExvY2sgZGlzcGF0Y2hMb2NrOwotICAgIENvbmRpdGlvbiBkaXNwYXRjaENvbmRpdGlv
bjsKKyAgICBib29sIGRpc3BhdGNoRG9uZSBXVEZfR1VBUkRFRF9CWV9MT0NLKGRpc3BhdGNoTG9j
ayk7CisgICAgQ2hlY2tlZExvY2sgZGlzcGF0Y2hMb2NrOworICAgIENoZWNrZWRDb25kaXRpb24g
ZGlzcGF0Y2hDb25kaXRpb247CiAKICAgICBfV2ViS2l0V2ViQXVkaW9TcmNQcml2YXRlKCkKICAg
ICB7CkBAIC0zMzksNyArMzM5LDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNSZW5k
ZXJBbmRQdXNoRnJhbWVzKEdSZWZQdHI8R3N0RWxlbWVudD4mJiBlbGVtZW50LAogICAgIGF1dG8q
IHByaXYgPSBzcmMtPnByaXY7CiAKICAgICBhdXRvIG5vdGlmeURpc3BhdGNoT25FeGl0ID0gbWFr
ZVNjb3BlRXhpdChbcHJpdl0gewotICAgICAgICBMb2NrSG9sZGVyIGxvY2socHJpdi0+ZGlzcGF0
Y2hMb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByaXYtPmRpc3BhdGNoTG9jayB9Owog
ICAgICAgICBwcml2LT5kaXNwYXRjaERvbmUgPSB0cnVlOwogICAgICAgICBwcml2LT5kaXNwYXRj
aENvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICB9KTsKQEAgLTQwNCw3ICs0MDQsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbihXZWJLaXRXZWJBdWRpb1Ny
Yyogc3JjKQogICAgIH0KIAogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKHByaXYtPmRp
c3BhdGNoTG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcml2LT5kaXNwYXRjaExvY2sg
fTsKICAgICAgICAgcHJpdi0+ZGlzcGF0Y2hEb25lID0gZmFsc2U7CiAgICAgfQogCkBAIC00MjEs
NyArNDIxLDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNSZW5kZXJJdGVyYXRpb24o
V2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICB9CiAKICAgICB7Ci0gICAgICAgIExvY2tIb2xk
ZXIgbG9jayhwcml2LT5kaXNwYXRjaExvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJp
di0+ZGlzcGF0Y2hMb2NrIH07CiAgICAgICAgIGlmICghcHJpdi0+ZGlzcGF0Y2hEb25lKQogICAg
ICAgICAgICAgcHJpdi0+ZGlzcGF0Y2hDb25kaXRpb24ud2FpdChwcml2LT5kaXNwYXRjaExvY2sp
OwogICAgIH0KQEAgLTQ2OCw3ICs0NjgsNyBAQCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4g
d2ViS2l0V2ViQXVkaW9TcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LCBHcwogICAg
IH0KICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUEFVU0VEX1RPX1JFQURZOgogICAgICAgICB7
Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2socHJpdi0+ZGlzcGF0Y2hMb2NrKTsKKyAgICAg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBwcml2LT5kaXNwYXRjaExvY2sgfTsKICAgICAgICAgICAg
IHByaXYtPmRpc3BhdGNoRG9uZSA9IGZhbHNlOwogICAgICAgICAgICAgcHJpdi0+ZGlzcGF0Y2hD
b25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2Rl
ckdTdHJlYW1lci5jcHAKaW5kZXggMmY5YzI4OTBiMjQxMmUzNzZiNGE0YzM2MWYyMjlmMzI2MmIy
ZTRjYS4uMzUwMzhhZjU5ODNjMWQyM2NhYzdjNDBkNzEwN2FhYTMwMGIyMDAxNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2Rl
ckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHAKQEAgLTI3NiwyNiArMjc2LDI2IEBAIHZv
aWQgSW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpzZXRIYXNFT1MoKQogewogICAgIEdTVF9ERUJVRygi
RU9TIG9uIGRlY29kZXIgJXAiLCB0aGlzKTsKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9j
ayhtX3NhbXBsZU11dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fc2FtcGxlTG9jayB9
OwogICAgICAgICBtX2VvcyA9IHRydWU7CiAgICAgICAgIG1fc2FtcGxlQ29uZGl0aW9uLm5vdGlm
eU9uZSgpOwogICAgIH0KICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX2hhbmRsZXJN
dXRleCk7Ci0gICAgICAgIG1faGFuZGxlckNvbmRpdGlvbi53YWl0KG1faGFuZGxlck11dGV4KTsK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1faGFuZGxlckxvY2sgfTsKKyAgICAgICAgbV9oYW5k
bGVyQ29uZGl0aW9uLndhaXQobV9oYW5kbGVyTG9jayk7CiAgICAgfQogfQogCiB2b2lkIEltYWdl
RGVjb2RlckdTdHJlYW1lcjo6bm90aWZ5U2FtcGxlKEdSZWZQdHI8R3N0U2FtcGxlPiYmIHNhbXBs
ZSkKIHsKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKKyAg
ICAgICAgTG9ja2VyIGxvY2tlciB7IG1fc2FtcGxlTG9jayB9OwogICAgICAgICBtX3NhbXBsZSA9
IFdURk1vdmUoc2FtcGxlKTsKICAgICAgICAgbV9zYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7
CiAgICAgfQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1faGFuZGxlck11dGV4KTsK
LSAgICAgICAgbV9oYW5kbGVyQ29uZGl0aW9uLndhaXQobV9oYW5kbGVyTXV0ZXgpOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9oYW5kbGVyTG9jayB9OworICAgICAgICBtX2hhbmRsZXJDb25k
aXRpb24ud2FpdChtX2hhbmRsZXJMb2NrKTsKICAgICB9CiB9CiAKQEAgLTMwNiw3ICszMDYsNyBA
QCB2b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6SW5uZXJEZWNvZGVyOjpoYW5kbGVNZXNzYWdl
KEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgYXV0byBzY29wZUV4aXQgPSBtYWtlU2NvcGVFeGl0
KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAgICAgaWYgKCFwcm90
ZWN0ZWRUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBMb2NrSG9sZGVyIGxvY2so
cHJvdGVjdGVkVGhpcy0+bV9tZXNzYWdlTG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBw
cm90ZWN0ZWRUaGlzLT5tX21lc3NhZ2VMb2NrIH07CiAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1f
bWVzc2FnZURpc3BhdGNoZWQgPSB0cnVlOwogICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX21lc3Nh
Z2VDb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfSk7CkBAIC0zNjUsNyArMzY1LDcgQEAgdm9p
ZCBJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6cHJlcGFyZVBpcGVsaW5lKCkK
ICAgICAgICAgYXV0byYgZGVjb2RlciA9ICpzdGF0aWNfY2FzdDxJbWFnZURlY29kZXJHU3RyZWFt
ZXI6OklubmVyRGVjb2Rlcio+KHVzZXJEYXRhKTsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBM
b2NrSG9sZGVyIGxvY2soZGVjb2Rlci5tX21lc3NhZ2VMb2NrKTsKKyAgICAgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBkZWNvZGVyLm1fbWVzc2FnZUxvY2sgfTsKICAgICAgICAgICAgIGRlY29kZXIu
bV9tZXNzYWdlRGlzcGF0Y2hlZCA9IGZhbHNlOwogICAgICAgICAgICAgZGVjb2Rlci5tX21lc3Nh
Z2VDb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgICAgIH0KQEAgLTM4MCw3ICszODAsNyBAQCB2
b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6SW5uZXJEZWNvZGVyOjpwcmVwYXJlUGlwZWxpbmUo
KQogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFkZWNvZGVyLm1fbWVz
c2FnZURpc3BhdGNoZWQpIHsKLSAgICAgICAgICAgIExvY2tIb2xkZXIgbG9jayhkZWNvZGVyLm1f
bWVzc2FnZUxvY2spOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IGRlY29kZXIubV9tZXNz
YWdlTG9jayB9OwogICAgICAgICAgICAgZGVjb2Rlci5tX21lc3NhZ2VDb25kaXRpb24ud2FpdChk
ZWNvZGVyLm1fbWVzc2FnZUxvY2spOwogICAgICAgICB9CiAgICAgICAgIGdzdF9tZXNzYWdlX3Vu
cmVmKG1lc3NhZ2UpOwpAQCAtNDI2LDEzICs0MjYsMTMgQEAgdm9pZCBJbWFnZURlY29kZXJHU3Ry
ZWFtZXI6OnB1c2hFbmNvZGVkRGF0YShjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKICAgICB0
aHJlYWQtPmRldGFjaCgpOwogICAgIGJvb2wgaXNFT1MgPSBmYWxzZTsKICAgICB7Ci0gICAgICAg
IExvY2tIb2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7
IG1fc2FtcGxlTG9jayB9OwogICAgICAgICBpc0VPUyA9IG1fZW9zOwogICAgIH0KICAgICB3aGls
ZSAoIWlzRU9TKSB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3Nh
bXBsZU11dGV4KTsKLSAgICAgICAgICAgIG1fc2FtcGxlQ29uZGl0aW9uLndhaXQobV9zYW1wbGVN
dXRleCk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9zYW1wbGVMb2NrIH07CisgICAg
ICAgICAgICBtX3NhbXBsZUNvbmRpdGlvbi53YWl0KG1fc2FtcGxlTG9jayk7CiAgICAgICAgICAg
ICBpc0VPUyA9IG1fZW9zOwogICAgICAgICAgICAgaWYgKG1fc2FtcGxlKSB7CiAgICAgICAgICAg
ICAgICAgYXV0byogY2FwcyA9IGdzdF9zYW1wbGVfZ2V0X2NhcHMobV9zYW1wbGUuZ2V0KCkpOwpA
QCAtNDQ0LDcgKzQ0NCw3IEBAIHZvaWQgSW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpwdXNoRW5jb2Rl
ZERhdGEoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICAgICAgewotICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1faGFuZGxlck11dGV4
KTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2hhbmRsZXJMb2NrIH07CiAgICAgICAg
ICAgICBtX2hhbmRsZXJDb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgICAgIH0KICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1h
Z2VEZWNvZGVyR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmgKaW5kZXggNTkxOGM4NDdjZWRiMzJhYjMw
ODMwN2RmNjI4NTlhMGMxYzRjNDliZS4uZjI0NzczNDgxMGE1MTI0MzFiNzNkMzU3NWFkZmNhODU5
N2U4M2VjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuaApAQCAtMjYsNiAr
MjYsOCBAQAogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTYW1wbGVN
YXAuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENv
bmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgpAQCAtMTE0LDkgKzExNiw5IEBAIHByaXZhdGU6CiAgICAgICAgIEdSZWZQdHI8R3N0RWxl
bWVudD4gbV9kZWNvZGViaW47CiAgICAgICAgIFJ1bkxvb3AmIG1fcnVuTG9vcDsKIAotICAgICAg
ICBDb25kaXRpb24gbV9tZXNzYWdlQ29uZGl0aW9uOwotICAgICAgICBMb2NrIG1fbWVzc2FnZUxv
Y2s7Ci0gICAgICAgIGJvb2wgbV9tZXNzYWdlRGlzcGF0Y2hlZCB7IGZhbHNlIH07CisgICAgICAg
IENoZWNrZWRDb25kaXRpb24gbV9tZXNzYWdlQ29uZGl0aW9uOworICAgICAgICBDaGVja2VkTG9j
ayBtX21lc3NhZ2VMb2NrOworICAgICAgICBib29sIG1fbWVzc2FnZURpc3BhdGNoZWQgV1RGX0dV
QVJERURfQllfTE9DSyhtX21lc3NhZ2VMb2NrKSB7IGZhbHNlIH07CiAgICAgfTsKIAogICAgIHZv
aWQgaGFuZGxlU2FtcGxlKEdSZWZQdHI8R3N0U2FtcGxlPiYmKTsKQEAgLTEzMiwxMSArMTM0LDEx
IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8SW50U2l6ZT4gbV9zaXplOwogICAgIFN0cmluZyBt
X21pbWVUeXBlOwogICAgIFJlZlB0cjxJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rl
cj4gbV9pbm5lckRlY29kZXI7Ci0gICAgQ29uZGl0aW9uIG1fc2FtcGxlQ29uZGl0aW9uOwotICAg
IExvY2sgbV9zYW1wbGVNdXRleDsKLSAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbV9zYW1wbGU7Ci0g
ICAgQ29uZGl0aW9uIG1faGFuZGxlckNvbmRpdGlvbjsKLSAgICBMb2NrIG1faGFuZGxlck11dGV4
OworICAgIENoZWNrZWRDb25kaXRpb24gbV9zYW1wbGVDb25kaXRpb247CisgICAgQ2hlY2tlZExv
Y2sgbV9zYW1wbGVMb2NrOworICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBtX3NhbXBsZSBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fc2FtcGxlTG9jayk7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBtX2hhbmRs
ZXJDb25kaXRpb247CisgICAgQ2hlY2tlZExvY2sgbV9oYW5kbGVyTG9jazsKIH07CiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NYWluVGhyZWFkTm90aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NYWluVGhyZWFkTm90aWZpZXIuaAppbmRleCAzNTQ4OTg5MjE2ZDU2NWQ5YmJi
ZGUwODUwYzE5MGRhZDA5NDlmMTE1Li5hODg1OTI4OWM4NTUzMmQ5ZTY2M2RlNDcwYjYxMzFiYzlk
YjA4ZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWFpblRocmVhZE5vdGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01haW5UaHJlYWROb3RpZmllci5oCkBAIC02OCwxOCArNjgsMTgg
QEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEY+CiAgICAgdm9pZCBub3RpZnlBbmRX
YWl0KFQgbm90aWZpY2F0aW9uVHlwZSwgRiYmIGNhbGxiYWNrRnVuY3RvcikKICAgICB7Ci0gICAg
ICAgIExvY2sgbXV0ZXg7Ci0gICAgICAgIENvbmRpdGlvbiBjb25kaXRpb247CisgICAgICAgIENo
ZWNrZWRMb2NrIGxvY2s7CisgICAgICAgIENoZWNrZWRDb25kaXRpb24gY29uZGl0aW9uOwogCi0g
ICAgICAgIG5vdGlmeShub3RpZmljYXRpb25UeXBlLCBbZnVuY3RvciA9IFdURk1vdmUoY2FsbGJh
Y2tGdW5jdG9yKSwgJmNvbmRpdGlvbiwgJm11dGV4XSB7CisgICAgICAgIG5vdGlmeShub3RpZmlj
YXRpb25UeXBlLCBbZnVuY3RvciA9IFdURk1vdmUoY2FsbGJhY2tGdW5jdG9yKSwgJmNvbmRpdGlv
biwgJmxvY2tdIHsKICAgICAgICAgICAgIGZ1bmN0b3IoKTsKLSAgICAgICAgICAgIExvY2tIb2xk
ZXIgaG9sZGVyKG11dGV4KTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBsb2NrIH07CiAg
ICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IGlmICghaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKG11
dGV4KTsKLSAgICAgICAgICAgIGNvbmRpdGlvbi53YWl0KG11dGV4KTsKKyAgICAgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBsb2NrIH07CisgICAgICAgICAgICBjb25kaXRpb24ud2FpdChsb2NrKTsK
ICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAppbmRleCAwN2IzZDlmYmU4MDRjNGY4MDEwMDU1MWFlZjAxMjM2MmFlMjM4
MGVmLi5lMjFkNTQzNTc5NWM0MDBlNTJkNzc0MDk0NDE0OTcwNmZiMmQyMzE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjUyLDcgKzI1
Miw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcigpCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHsKLSAgICAgICAg
TG9ja0hvbGRlciBsb2NrKG1fY2RtQXR0YWNobWVudE11dGV4KTsKKyAgICAgICAgTG9ja2VyIGNk
bUF0dGFjaG1lbnRMb2NrZXIgeyBtX2NkbUF0dGFjaG1lbnRMb2NrIH07CiAgICAgICAgIG1fY2Rt
QXR0YWNobWVudENvbmRpdGlvbi5ub3RpZnlBbGwoKTsKICAgICB9CiAjZW5kaWYKQEAgLTI5MjEs
NyArMjkyMSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwdXNoVGV4dHVy
ZVRvQ29tcG9zaXRvcigpCiAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9CiAgICAgICAgIFt0aGlz
LCBpbnRlcm5hbENvbXBvc2l0aW5nT3BlcmF0aW9uXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
clByb3h5JiBwcm94eSkKICAgICAgICAgewotICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIo
cHJveHkubG9jaygpKTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcm94eS5sb2NrKCkg
fTsKIAogICAgICAgICAgICAgaWYgKCFwcm94eS5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgICAg
IHJldHVybjsKQEAgLTI5MzksNyArMjkzOSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpwdXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpCiAgICAgYXV0byBwcm94eU9wZXJhdGlv
biA9CiAgICAgICAgIFt0aGlzLCBpbnRlcm5hbENvbXBvc2l0aW5nT3BlcmF0aW9uXShUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAgICAgICAgewotICAgICAgICAgICAg
TG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBwcm94eS5sb2NrKCkgfTsKIAogICAgICAgICAgICAgaWYgKCFwcm94eS5pc0FjdGl2ZSgp
KQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTI5NjQsNyArMjk2NCw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyZXBhaW50KCkKIAogICAgIG1fcGxheWVyLT5yZXBh
aW50KCk7CiAKLSAgICBMb2NrSG9sZGVyIGxvY2sobV9kcmF3TXV0ZXgpOworICAgIExvY2tlciBs
b2NrZXIgeyBtX2RyYXdMb2NrIH07CiAgICAgbV9kcmF3Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwog
fQogCkBAIC0zMTAzLDE3ICszMTAzLDE3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjp0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqIHNhbXBsZSkKICAgICB9CiAKICAgICBpZiAo
IW1fY2FuUmVuZGVyaW5nQmVBY2NlbGVyYXRlZCkgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2RyYXdNdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2RyYXdMb2NrIH07CiAg
ICAgICAgIGlmIChtX2lzQmVpbmdEZXN0cm95ZWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIG1fZHJhd1RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwotICAgICAgICBtX2RyYXdDb25kaXRp
b24ud2FpdChtX2RyYXdNdXRleCk7CisgICAgICAgIG1fZHJhd0NvbmRpdGlvbi53YWl0KG1fZHJh
d0xvY2spOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKQogICAgIGlmIChtX2lzVXNpbmdGYWxsYmFja1ZpZGVvU2luaykgewotICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9kcmF3TXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9kcmF3
TG9jayB9OwogICAgICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0KICAgICAgICAgICAgIFt0aGlz
XShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAgICAgICAgICAgIHsK
QEAgLTMxMjcsNyArMzEyNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0
cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqIHNhbXBsZSkKICAgICAgICAgICAgIHJldHVybjsKICNl
bmRpZgogICAgICAgICBtX2RyYXdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKLSAgICAgICAgbV9k
cmF3Q29uZGl0aW9uLndhaXQobV9kcmF3TXV0ZXgpOworICAgICAgICBtX2RyYXdDb25kaXRpb24u
d2FpdChtX2RyYXdMb2NrKTsKICAgICB9IGVsc2UKICAgICAgICAgcHVzaFRleHR1cmVUb0NvbXBv
c2l0b3IoKTsKICNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCkBAIC0zMTQ5LDcgKzMx
NDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2FuY2VsUmVwYWludChi
b29sIGRlc3Ryb3lpbmcpCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBhbHNvIHVzZWQgd2hlbiBk
ZXN0cm95aW5nIHRoZSBwbGF5ZXIgKGRlc3Ryb3lpbmcgcGFyYW1ldGVyIGlzIHRydWUpLCB0byBy
ZWxlYXNlIHRoZSBnc3RyZWFtZXIgdGhyZWFkIGZyb20KICAgICAvLyBtX2RyYXdDb25kaXRpb24g
YW5kIHRvIGVuc3VyZSB0aGF0IG5ldyB0cmlnZ2VyUmVwYWludCBjYWxscyB3b24ndCB3YWl0IG9u
IG1fZHJhd0NvbmRpdGlvbi4KICAgICBpZiAoIW1fY2FuUmVuZGVyaW5nQmVBY2NlbGVyYXRlZCkg
ewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RyYXdNdXRleCk7CisgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBtX2RyYXdMb2NrIH07CiAgICAgICAgIG1fZHJhd1RpbWVyLnN0b3AoKTsKICAg
ICAgICAgbV9pc0JlaW5nRGVzdHJveWVkID0gZGVzdHJveWluZzsKICAgICAgICAgbV9kcmF3Q29u
ZGl0aW9uLm5vdGlmeU9uZSgpOwpAQCAtMzQwNyw3ICszNDA3LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnB1c2hOZXh0SG9sZVB1bmNoQnVmZmVyKCkKICAgICBhdXRvIHBy
b3h5T3BlcmF0aW9uID0KICAgICAgICAgW3RoaXNdKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
UHJveHkmIHByb3h5KQogICAgICAgICB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihw
cm94eS5sb2NrKCkpOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByb3h5LmxvY2soKSB9
OwogICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
QnVmZmVyPiBsYXllckJ1ZmZlciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJCdWZmZXI+KDAsIG1fc2l6ZSwgVGV4dHVyZU1hcHBlckdMOjpTaG91bGROb3RCbGVuZCwgR0xf
RE9OVF9DQVJFKTsKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHU3RyZWFtZXJIb2xlUHVu
Y2hDbGllbnQ+IGhvbGVQdW5jaENsaWVudCA9IG1ha2VVbmlxdWU8R1N0cmVhbWVySG9sZVB1bmNo
Q2xpZW50PihtX3ZpZGVvU2luay5nZXQoKSk7CiAgICAgICAgICAgICBsYXllckJ1ZmZlci0+c2V0
SG9sZVB1bmNoQ2xpZW50KFdURk1vdmUoaG9sZVB1bmNoQ2xpZW50KSk7CkBAIC0zNTc2LDggKzM1
NzYsOSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdEZvckNETUF0dGFj
aG1lbnQoKQogCiAgICAgYm9vbCBkaWRDRE1BdHRhY2ggPSBmYWxzZTsKICAgICB7Ci0gICAgICAg
IGF1dG8gY2RtQXR0YWNobWVudExvY2tlciA9IGhvbGRMb2NrKG1fY2RtQXR0YWNobWVudE11dGV4
KTsKLSAgICAgICAgZGlkQ0RNQXR0YWNoID0gbV9jZG1BdHRhY2htZW50Q29uZGl0aW9uLndhaXRG
b3IobV9jZG1BdHRhY2htZW50TXV0ZXgsIDRfcywgW3RoaXNdKCkgeworICAgICAgICBMb2NrZXIg
Y2RtQXR0YWNobWVudExvY2tlciB7IG1fY2RtQXR0YWNobWVudExvY2sgfTsKKyAgICAgICAgZGlk
Q0RNQXR0YWNoID0gbV9jZG1BdHRhY2htZW50Q29uZGl0aW9uLndhaXRGb3IobV9jZG1BdHRhY2ht
ZW50TG9jaywgNF9zLCBbdGhpc10oKSB7CisgICAgICAgICAgICBhc3NlcnRJc0hlbGQobV9jZG1B
dHRhY2htZW50TG9jayk7CiAgICAgICAgICAgICByZXR1cm4gaXNDRE1BdHRhY2hlZCgpOwogICAg
ICAgICB9KTsKICAgICB9CkBAIC0zNjI0LDcgKzM2MjUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYgaW5zdGFuY2Up
CiAKICAgICBHU1RfREVCVUdfT0JKRUNUKG1fcGlwZWxpbmUuZ2V0KCksICJDRE0gcHJveHkgaW5z
dGFuY2UgJXAgZGlzcGF0Y2hlZCBhcyBjb250ZXh0IiwgbV9jZG1JbnN0YW5jZS0+cHJveHkoKS5n
ZXQoKSk7CiAKLSAgICBMb2NrSG9sZGVyIGxvY2sobV9jZG1BdHRhY2htZW50TXV0ZXgpOworICAg
IExvY2tlciBjZG1BdHRhY2htZW50TG9ja2VyIHsgbV9jZG1BdHRhY2htZW50TG9jayB9OwogICAg
IC8vIFdlIG11c3Qgbm90aWZ5IGFsbCB3YWl0ZXJzLCBzaW5jZSBzZXZlcmFsIGRlbXV4ZXJzIGNh
biBiZSBzaW11bHRhbmVvdXNseSB3YWl0aW5nIGZvciBhIENETS4KICAgICBtX2NkbUF0dGFjaG1l
bnRDb25kaXRpb24ubm90aWZ5QWxsKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgKaW5kZXggMDIxZmI4MjI3NTE1MzU3OGE5YTU2NmYxN2QzN2FjNTM5
MTFkNjZkNC4uMTEzNTYyNmRhMTIxNmY4Yzg0ODE4ZTUzOGRlMzhiYWNjMzViZjIzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMzgsNyArMzgs
OCBAQAogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9pbnN0YWxs
LXBsdWdpbnMuaD4KICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgotI2luY2x1ZGUgPHd0Zi9Db25k
aXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0
Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBAIC0zNjMsNyArMzY0
LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc1VzaW5nRmFsbGJhY2tWaWRlb1NpbmsgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9jYW5SZW5kZXJpbmdCZUFjY2VsZXJhdGVkIHsgZmFsc2UgfTsK
IAotICAgIGJvb2wgbV9pc0JlaW5nRGVzdHJveWVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNC
ZWluZ0Rlc3Ryb3llZCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fZHJhd0xvY2spIHsgZmFsc2UgfTsK
IAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvVGV4dHVy
ZUNvcGllckdTdHJlYW1lcj4gbV92aWRlb1RleHR1cmVDb3BpZXI7CkBAIC0zNzUsOCArMzc2LDgg
QEAgcHJvdGVjdGVkOgogICAgIEltYWdlT3JpZW50YXRpb24gbV92aWRlb1NvdXJjZU9yaWVudGF0
aW9uOwogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICBMb2NrIG1fY2RtQXR0YWNo
bWVudE11dGV4OwotICAgIENvbmRpdGlvbiBtX2NkbUF0dGFjaG1lbnRDb25kaXRpb247CisgICAg
Q2hlY2tlZExvY2sgbV9jZG1BdHRhY2htZW50TG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1f
Y2RtQXR0YWNobWVudENvbmRpdGlvbjsKICAgICBSZWZQdHI8Q0RNSW5zdGFuY2VQcm94eT4gbV9j
ZG1JbnN0YW5jZTsKIAogICAgIExvY2sgbV9wcm90ZWN0aW9uTXV0ZXg7IC8vIEd1YXJkcyBhY2Nl
c3MgdG8gbV9oYW5kbGVkUHJvdGVjdGlvbkV2ZW50cy4KQEAgLTQ3NCw5ICs0NzUsOSBAQCBwcml2
YXRlOgogICAgIG11dGFibGUgTWVkaWFUaW1lIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRp
bmdQcm9ncmVzczsKICAgICBib29sIG1faGFzVmlkZW8geyBmYWxzZSB9OwogICAgIGJvb2wgbV9o
YXNBdWRpbyB7IGZhbHNlIH07Ci0gICAgQ29uZGl0aW9uIG1fZHJhd0NvbmRpdGlvbjsKLSAgICBM
b2NrIG1fZHJhd011dGV4OwotICAgIFJ1bkxvb3A6OlRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcj4gbV9kcmF3VGltZXI7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBtX2RyYXdDb25kaXRp
b247CisgICAgQ2hlY2tlZExvY2sgbV9kcmF3TG9jazsKKyAgICBSdW5Mb29wOjpUaW1lcjxNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI+IG1fZHJhd1RpbWVyIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9kcmF3TG9jayk7CiAgICAgUnVuTG9vcDo6VGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyPiBtX3JlYWR5VGltZXJIYW5kbGVyOwogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICNp
ZiBVU0UoTklDT1NJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2hvbGVwdW5jaC9NZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2guY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaG9sZXB1bmNoL01lZGlhUGxheWVyUHJpdmF0ZUhvbGVQ
dW5jaC5jcHAKaW5kZXggNTZjOGI5MmQ5NmRjZWM4ZTBmNjk1MmVmMWI5MGY3Y2RhMmY3NmU3NC4u
OTAxZDU3ZWZkNmY0MTM5YTlkM2EyYzhjMTFiY2NlY2FiYmMxMGMwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaG9sZXB1bmNoL01lZGlhUGxheWVyUHJpdmF0
ZUhvbGVQdW5jaC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaG9s
ZXB1bmNoL01lZGlhUGxheWVyUHJpdmF0ZUhvbGVQdW5jaC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2g6OnB1c2hOZXh0SG9sZVB1bmNoQnVmZmVy
KCkKICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0KICAgICAgICAgW3RoaXNdKFRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyUHJveHkmIHByb3h5KQogICAgICAgICB7Ci0gICAgICAgICAgICBMb2Nr
SG9sZGVyIGhvbGRlcihwcm94eS5sb2NrKCkpOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7
IHByb3h5LmxvY2soKSB9OwogICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyQnVmZmVyPiBsYXllckJ1ZmZlciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+KDAsIG1fc2l6ZSwgVGV4dHVyZU1hcHBlckdMOjpTaG91
bGROb3RCbGVuZCwgR0xfRE9OVF9DQVJFKTsKICAgICAgICAgICAgIHByb3h5LnB1c2hOZXh0QnVm
ZmVyKFdURk1vdmUobGF5ZXJCdWZmZXIpKTsKICAgICAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYUltYWdlQnVmZmVyUGlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFJ
bWFnZUJ1ZmZlclBpcGUuY3BwCmluZGV4IDlmMTEyNGZlYTcwNzY2ZTZlMWM2NGJkYjVjN2M2M2Iw
YWU5YTQ1OTQuLjg2MDUzYTU3YzkwMWMzOTM1OTE2ZmMwOTIxNjVkZmQ0Y2ZlZGEzZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYUlt
YWdlQnVmZmVyUGlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bmljb3NpYS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lk
IE5pY29zaWFJbWFnZUJ1ZmZlclBpcGVTb3VyY2U6OmhhbmRsZShSZWZQdHI8SW1hZ2VCdWZmZXI+
JiYgYnVmZmVyKQogICAgICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0gW3RoaXNdIChUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBy
ZXR1cm4gcHJveHkuc2NoZWR1bGVVcGRhdGVPbkNvbXBvc2l0b3JUaHJlYWQoW3RoaXNdICgpIG11
dGFibGUgewogICAgICAgICAgICAgICAgIGF1dG8mIHByb3h5ID0gZG93bmNhc3Q8Tmljb3NpYTo6
Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw+KG1fbmljb3NpYUxheWVyLT5pbXBsKCkpLnBy
b3h5KCk7Ci0gICAgICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsK
KyAgICAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJveHkubG9jaygpIH07CiAKICAgICAg
ICAgICAgICAgICBpZiAoIXByb3h5LmlzQWN0aXZlKCkpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAKaW5kZXggYTQ0NjBm
OTA2MzA3NDdhOGY4MzcyYWEwOTg0OGU0OTZlNmI1NDEzOS4uYmY4Y2ZkNDJlNGJhZmUwODI5NmQ5
NDlmZGU0NjZlNjBlYjQ2NjlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXll
ci5jcHAKQEAgLTEwNSwxMCArMTA1LDEwIEBAIHZvaWQgR0NHTExheWVyOjpzd2FwQnVmZmVyc0lm
TmVlZGVkKCkKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBsYXllckJ1ZmZlci0+dGV4dHVy
ZUdMKCkuc2V0UGVuZGluZ0NvbnRlbnRzKFdURk1vdmUoaW1hZ2UpKTsKIAotICAgICAgICBMb2Nr
SG9sZGVyIGhvbGRlcihwcm94eS5sb2NrKCkpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJv
eHkubG9jaygpIH07CiAgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKFdURk1vdmUobGF5ZXJC
dWZmZXIpKTsKICNlbHNlCi0gICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKHByb3h5LmxvY2soKSk7
CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcm94eS5sb2NrKCkgfTsKICAgICAgICAgcHJveHku
cHVzaE5leHRCdWZmZXIobWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZl
cj4obV9jb250ZXh0Lm1fY29tcG9zaXRvclRleHR1cmUsIHRleHR1cmVTaXplLCBmbGFncywgbV9j
b250ZXh0Lm1faW50ZXJuYWxDb2xvckZvcm1hdCkpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwCmluZGV4IGUyODcxZjc5
NTYyYzViMDU1MDMyYmEwMWMxMzQ3N2IwNGE0Mzk1MWIuLjA0MjIzZjIwNjM0MWNmNTU1NDY5Zjk1
YWJlMWY3MzEwMzdjOTJjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXJQcm94eS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSgpCiAKIFRleHR1cmVN
YXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6On5UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5
KCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIg
eyBtX2xvY2sgfTsKICAgICBpZiAobV90YXJnZXRMYXllcikKICAgICAgICAgbV90YXJnZXRMYXll
ci0+c2V0Q29udGVudHNMYXllcihudWxscHRyKTsKIH0KQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjphY3RpdmF0ZU9uQ29tcG9zaXRpbmdUaHJl
YWQoQ29tcG9zaXRvciogY28KICAgICBBU1NFUlQodGFyZ2V0TGF5ZXIpOwogICAgIEZ1bmN0aW9u
PHZvaWQoKT4gdXBkYXRlRnVuY3Rpb247CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2xvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIG1f
Y29tcG9zaXRvciA9IGNvbXBvc2l0b3I7CiAgICAgICAgIG1fdGFyZ2V0TGF5ZXIgPSB0YXJnZXRM
YXllcjsKICAgICAgICAgaWYgKG1fdGFyZ2V0TGF5ZXIgJiYgbV9jdXJyZW50QnVmZmVyKQpAQCAt
OTMsNyArOTMsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmludmFs
aWRhdGUoKQogICAgIEFTU0VSVChtX2NvbXBvc2l0b3JUaHJlYWQgPT0gJlRocmVhZDo6Y3VycmVu
dCgpKTsKICAgICBGdW5jdGlvbjx2b2lkKCk+IHVwZGF0ZUZ1bmN0aW9uOwogICAgIHsKLSAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1f
bG9jayB9OwogICAgICAgICBtX2NvbXBvc2l0b3IgPSBudWxscHRyOwogICAgICAgICBtX3Rhcmdl
dExheWVyID0gbnVsbHB0cjsKIApAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJQcm94eTo6c2NoZWR1bGVSZWxlYXNlVW51c2VkQnVmZmVycygpCiAKIHZv
aWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6cmVsZWFzZVVudXNlZEJ1ZmZlcnNU
aW1lckZpcmVkKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgIExvY2tl
ciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBpZiAobV91c2VkQnVmZmVycy5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJQcm94eTo6cmVsZWFzZVVudXNlZEJ1ZmZlcnNUaW1lckZpcmVkKCkKIHZvaWQg
VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6c3dhcEJ1ZmZlcigpCiB7CiAgICAgQVNT
RVJUKG1fY29tcG9zaXRvclRocmVhZCA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwotICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAg
IGlmICghbV90YXJnZXRMYXllciB8fCAhbV9wZW5kaW5nQnVmZmVyKQogICAgICAgICByZXR1cm47
CiAKQEAgLTIxOCwxMSArMjE4LDExIEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQ
cm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJlKGJvCiAKICAgICBt
X2NvbXBvc2l0b3JUaHJlYWRVcGRhdGVGdW5jdGlvbiA9CiAgICAgICAgIFt0aGlzLCBzaG91bGRX
YWl0XSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogCiAgICAgICAgICAgICBhdXRvIG1heWJlTm90
aWZ5U3luY2hyb25vdXNPcGVyYXRpb24gPSBXVEY6Om1ha2VTY29wZUV4aXQoW3RoaXMsIHNob3Vs
ZFdhaXRdKCkgewogICAgICAgICAgICAgICAgIGlmIChzaG91bGRXYWl0KSB7Ci0gICAgICAgICAg
ICAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKG1fd2FzQnVmZmVyRHJvcHBlZExvY2spOworICAg
ICAgICAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV93YXNCdWZmZXJEcm9wcGVkTG9jayB9
OwogICAgICAgICAgICAgICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWQgPSB0cnVlOwogICAgICAg
ICAgICAgICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWRDb25kaXRpb24ubm90aWZ5QWxsKCk7CiAg
ICAgICAgICAgICAgICAgfQpAQCAtMjQxLDE0ICsyNDEsMTUgQEAgdm9pZCBUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllclByb3h5Ojpkcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJlc2VydmluZ1RleHR1
cmUoYm8KICAgICAgICAgfTsKIAogICAgIGlmIChzaG91bGRXYWl0KSB7Ci0gICAgICAgIExvY2tI
b2xkZXIgaG9sZGVyKG1fd2FzQnVmZmVyRHJvcHBlZExvY2spOworICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgbV93YXNCdWZmZXJEcm9wcGVkTG9jayB9OwogICAgICAgICBtX3dhc0J1ZmZlckRyb3Bw
ZWQgPSBmYWxzZTsKICAgICB9CiAKICAgICBtX2NvbXBvc2l0b3JUaHJlYWRVcGRhdGVUaW1lci0+
c3RhcnRPbmVTaG90KDBfcyk7CiAgICAgaWYgKHNob3VsZFdhaXQpIHsKLSAgICAgICAgTG9ja0hv
bGRlciBob2xkZXIobV93YXNCdWZmZXJEcm9wcGVkTG9jayk7CisgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBtX3dhc0J1ZmZlckRyb3BwZWRMb2NrIH07CiAgICAgICAgIG1fd2FzQnVmZmVyRHJvcHBl
ZENvbmRpdGlvbi53YWl0KG1fd2FzQnVmZmVyRHJvcHBlZExvY2ssIFt0aGlzXSB7CisgICAgICAg
ICAgICBhc3NlcnRJc0hlbGQobV93YXNCdWZmZXJEcm9wcGVkTG9jayk7CiAgICAgICAgICAgICBy
ZXR1cm4gbV93YXNCdWZmZXJEcm9wcGVkOwogICAgICAgICB9KTsKICAgICB9CkBAIC0yNTYsNyAr
MjU3LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpkcm9wQ3VycmVu
dEJ1ZmZlcldoaWxlUHJlc2VydmluZ1RleHR1cmUoYm8KIAogYm9vbCBUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllclByb3h5OjpzY2hlZHVsZVVwZGF0ZU9uQ29tcG9zaXRvclRocmVhZChGdW5jdGlv
bjx2b2lkKCk+JiYgdXBkYXRlRnVuY3Rpb24pCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9s
b2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgbV9jb21wb3NpdG9yVGhy
ZWFkVXBkYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKHVwZGF0ZUZ1bmN0aW9uKTsKIAogICAgIGlmICgh
bV9jb21wb3NpdG9yVGhyZWFkVXBkYXRlVGltZXIpCkBAIC0yNzAsNyArMjcxLDcgQEAgdm9pZCBU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpjb21wb3NpdG9yVGhyZWFkVXBkYXRlVGlt
ZXJGaXJlZCgpCiB7CiAgICAgRnVuY3Rpb248dm9pZCgpPiB1cGRhdGVGdW5jdGlvbjsKICAgICB7
Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBtX2xvY2sgfTsKICAgICAgICAgaWYgKCFtX2NvbXBvc2l0b3JUaHJlYWRVcGRhdGVGdW5j
dGlvbikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdXBkYXRlRnVuY3Rpb24gPSBXVEZN
b3ZlKG1fY29tcG9zaXRvclRocmVhZFVwZGF0ZUZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllclByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oCmluZGV4IGY4MTRlYThlNGJmYzNhZWVjOTY1
MGFjNmNmYWU2M2Q2OWQ5YTc0NTYuLmMwODkxNTAxMDdkNjkwMjQwYWMwY2IyNWEwNDNkNGE1Nzhk
ZTE5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHku
aApAQCAtMjgsOSArMjgsOSBAQAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIAogI2lu
Y2x1ZGUgIlRleHR1cmVNYXBwZXJHTEhlYWRlcnMuaCIKLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9u
Lmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hl
Y2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjAsNyArNjAsNyBAQCBw
dWJsaWM6CiAgICAgLy8gVG8gYXZvaWQgbXVsdGlwbGUgbG9jay9yZWxlYXNlIHNpdHVhdGlvbiB0
byB1cGRhdGUgYSBzaW5nbGUgZnJhbWUsCiAgICAgLy8gdGhlIGltcGxlbWVudGF0aW9uIG9mIFRl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHlQcm92aWRlciBzaG91bGQKICAgICAvLyBhcXVp
cmUgLyByZWxlYXNlIHRoZSBsb2NrIGV4cGxpY2l0bHkgdG8gdXNlIGJlbG93IG1ldGhvZHMuCi0g
ICAgTG9jayYgbG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQorICAgIENoZWNrZWRMb2NrJiBsb2Nr
KCkgV1RGX1JFVFVSTlNfTE9DSyhtX2xvY2spIHsgcmV0dXJuIG1fbG9jazsgfQogICAgIHN0ZDo6
dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4gZ2V0QXZhaWxhYmxl
QnVmZmVyKGNvbnN0IEludFNpemUmLCBHTGludCBpbnRlcm5hbEZvcm1hdCk7CiAgICAgdm9pZCBw
dXNoTmV4dEJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJC
dWZmZXI+JiYpOwogICAgIGJvb2wgaXNBY3RpdmUoKTsKQEAgLTg0LDExICs4NCwxMSBAQCBwcml2
YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZl
cj4gbV9jdXJyZW50QnVmZmVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllckJ1ZmZlcj4gbV9wZW5kaW5nQnVmZmVyOwogCi0gICAgTG9jayBtX2xvY2s7Cisg
ICAgQ2hlY2tlZExvY2sgbV9sb2NrOwogCi0gICAgTG9jayBtX3dhc0J1ZmZlckRyb3BwZWRMb2Nr
OwotICAgIENvbmRpdGlvbiBtX3dhc0J1ZmZlckRyb3BwZWRDb25kaXRpb247Ci0gICAgYm9vbCBt
X3dhc0J1ZmZlckRyb3BwZWQgeyBmYWxzZSB9OworICAgIENoZWNrZWRMb2NrIG1fd2FzQnVmZmVy
RHJvcHBlZExvY2s7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBtX3dhc0J1ZmZlckRyb3BwZWRDb25k
aXRpb247CisgICAgYm9vbCBtX3dhc0J1ZmZlckRyb3BwZWQgV1RGX0dVQVJERURfQllfTE9DSyht
X3dhc0J1ZmZlckRyb3BwZWRMb2NrKSB7IGZhbHNlIH07CiAKICAgICBWZWN0b3I8c3RkOjp1bmlx
dWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPj4gbV91c2VkQnVmZmVyczsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcDo6VGltZXI8VGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eT4+IG1fcmVsZWFzZVVudXNlZEJ1ZmZlcnNUaW1lcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCmluZGV4
IDgyOGNiMTA3NWE2MGUzY2EwYWE4YzNkMzM4ZWZhMjNjOWUxYTRjYWIuLmIyYTRmZGQ2ZmZjNmZl
ZTMxMzUyNmJmYWY0ZjliMmRmNTkxZjlmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcApAQCAtODUsMTMgKzg1LDEz
IEBAIHZvaWQgQ29tcG9zaXRpbmdSdW5Mb29wOjpwZXJmb3JtVGFzayhGdW5jdGlvbjx2b2lkICgp
PiYmIGZ1bmN0aW9uKQogdm9pZCBDb21wb3NpdGluZ1J1bkxvb3A6OnBlcmZvcm1UYXNrU3luYyhG
dW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9kaXNwYXRjaFN5bmNDb25kaXRpb25NdXRl
eCk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uTG9jayB9Owog
ICAgIG1fcnVuTG9vcC0+ZGlzcGF0Y2goW3RoaXMsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlv
bildIHsKICAgICAgICAgZnVuY3Rpb24oKTsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9k
aXNwYXRjaFN5bmNDb25kaXRpb25NdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2Rp
c3BhdGNoU3luY0NvbmRpdGlvbkxvY2sgfTsKICAgICAgICAgbV9kaXNwYXRjaFN5bmNDb25kaXRp
b24ubm90aWZ5T25lKCk7CiAgICAgfSk7Ci0gICAgbV9kaXNwYXRjaFN5bmNDb25kaXRpb24ud2Fp
dChtX2Rpc3BhdGNoU3luY0NvbmRpdGlvbk11dGV4KTsKKyAgICBtX2Rpc3BhdGNoU3luY0NvbmRp
dGlvbi53YWl0KG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uTG9jayk7CiB9CiAKIHZvaWQgQ29tcG9z
aXRpbmdSdW5Mb29wOjpzdXNwZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9v
cC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNv
bXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKaW5kZXggNTk0MDBjYjYzMDRjNDI5ZDE0ZjNh
MWNmZDA4ZGM2ZjAwNzk0OWY0Zi4uNzdjNDY3YmEyZmMyZWQ2MTMzNTRmM2U4MWE3ZjQ3NTFhZTRh
MGJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9z
aXRpbmdSdW5Mb29wLmgKQEAgLTI4LDcgKzI4LDggQEAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCiAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgotI2luY2x1ZGUgPHd0Zi9Db25kaXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9D
aGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC03MCw4ICs3
MSw4IEBAIHByaXZhdGU6CiAgICAgUnVuTG9vcCogbV9ydW5Mb29wIHsgbnVsbHB0ciB9OwogICAg
IFJ1bkxvb3A6OlRpbWVyPENvbXBvc2l0aW5nUnVuTG9vcD4gbV91cGRhdGVUaW1lcjsKICAgICBG
dW5jdGlvbjx2b2lkICgpPiBtX3VwZGF0ZUZ1bmN0aW9uOwotICAgIExvY2sgbV9kaXNwYXRjaFN5
bmNDb25kaXRpb25NdXRleDsKLSAgICBDb25kaXRpb24gbV9kaXNwYXRjaFN5bmNDb25kaXRpb247
CisgICAgQ2hlY2tlZExvY2sgbV9kaXNwYXRjaFN5bmNDb25kaXRpb25Mb2NrOworICAgIENoZWNr
ZWRDb25kaXRpb24gbV9kaXNwYXRjaFN5bmNDb25kaXRpb247CiAKICAgICBzdHJ1Y3QgewogICAg
ICAgICBMb2NrIGxvY2s7Cg==
</data>
<flag name="commit-queue"
          id="450509"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429345</attachid>
            <date>2021-05-21 14:51:32 -0700</date>
            <delta_ts>2021-05-21 15:20:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226113-20210521145131.patch</filename>
            <type>text/plain</type>
            <size>49960</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI1MTM5YmMwOTQwNmY5MDYxZjU1Zjkx
ZTRiNjE3Mzc0NzM2NzQ2MTguLjc1ODRjNjk3MWE1YTNmNjhiNmM2MWExYWM1ZDQwYThjZjUyYTNh
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBsYWNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTEz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIENo
ZWNrZWRDb25kaXRpb24gaW4gbW9yZSBwbGFjZXMgdG8gYmVuZWZpdCBmcm9tIENsYW5nIFRocmVh
ZCBTYWZldHkKKyAgICAgICAgQW5hbHlzaXMuCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5oOgor
ICAgICAgICAqIHd0Zi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmg6CisgICAgICAgICogd3RmL1dU
RlNlbWFwaG9yZS5oOgorICAgICAgICAqIHd0Zi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoV1RG
OjpXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseSk6CisgICAgICAgICogd3RmL2dlbmVyaWMvUnVu
TG9vcEdlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp+UnVuTG9vcCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OnBvcHVsYXRlVGFza3MpOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpydW5JbXBsKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6Ondha2VVcFdpdGhMb2NrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVw
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c2NoZWR1bGUpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpzY2hlZHVsZUFuZFdha2VVcFdpdGhMb2NrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjp+VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUgY29uc3QpOgorICAgICAg
ICAqIHd0Zi93aW4vUnVuTG9vcFdpbi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3Rh
cnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlIGNvbnN0KToKKwogMjAyMS0wNS0y
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gVW5h
YmxlIHRvIHVwbG9hZCBmaWxlcyB0aGF0IGFyZSBzdG9yZWQgaW4gdGhlIGNsb3VkICh3aXRob3V0
IGEgbG9jYWwgY29weSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYTZjOWI5MjA3YzJlMmZhODUyMTMyZjM4NTVj
OGY5ZDEwNTYzMzdlLi5mOTNhZjkyMDFjOGY2MjZiNTQyN2Y5YzdjOWQ0MGQyZjQ2ZThmNjFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBs
YWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2
MTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IENoZWNrZWRDb25kaXRpb24gaW4gbW9yZSBwbGFjZXMgdG8gYmVuZWZpdCBmcm9tIENsYW5nIFRo
cmVhZCBTYWZldHkKKyAgICAgICAgQW5hbHlzaXMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVGFzay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRhc2tT
eW5jaHJvbml6ZXI6OndhaXRGb3JUYXNrQ29tcGxldGlvbik6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OnRhc2tDb21wbGV0ZWQpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmg6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFz
ZVRhc2tTeW5jaHJvbml6ZXI6OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgICh3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckFuZFB1c2hGcmFtZXMpOgorICAgICAgICAo
d2ViS2l0V2ViQXVkaW9TcmNSZW5kZXJJdGVyYXRpb24pOgorICAgICAgICAod2ViS2l0V2ViQXVk
aW9TcmNDaGFuZ2VTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29k
ZXJHU3RyZWFtZXI6OnNldEhhc0VPUyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJH
U3RyZWFtZXI6Om5vdGlmeVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJH
U3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6aGFuZGxlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6cHJlcGFyZVBpcGVsaW5lKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckdTdHJlYW1lcjo6cHVzaEVuY29kZWREYXRh
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0
cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01haW5UaHJl
YWROb3RpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0Nv
bXBvc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpyZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6dHJpZ2dlclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpjYW5jZWxSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6cHVzaE5leHRIb2xlUHVuY2hCdWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp3YWl0Rm9yQ0RNQXR0YWNobWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3Rh
bmNlQXR0YWNoZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6V1RGX0dVQVJERURfQllfTE9DSyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvaG9sZXB1bmNoL01lZGlhUGxheWVyUHJpdmF0ZUhvbGVQdW5jaC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2g6OnB1c2hOZXh0SG9s
ZVB1bmNoQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29z
aWFJbWFnZUJ1ZmZlclBpcGUuY3BwOgorICAgICAgICAoTmljb3NpYTo6Tmljb3NpYUltYWdlQnVm
ZmVyUGlwZVNvdXJjZTo6aGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmNwcDoKKyAgICAgICAgKE5pY29zaWE6OkdDR0xM
YXllcjo6c3dhcEJ1ZmZlcnNJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6flRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eTo6YWN0aXZhdGVPbkNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6cmVsZWFzZVVudXNl
ZEJ1ZmZlcnNUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHk6OnN3YXBCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdU
ZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJv
eHk6OnNjaGVkdWxlVXBkYXRlT25Db21wb3NpdG9yVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmNvbXBvc2l0b3JUaHJlYWRVcGRhdGVU
aW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJQcm94eTo6V1RGX1JFVFVSTlNfTE9DSyk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjpXVEZfR1VBUkRFRF9CWV9MT0NLKToK
KwogMjAyMS0wNS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkb3B0IENoZWNrZWRMb2NrIGluIFNjcm9sbGluZ1RyZWUgYW5kIGZpeCB0aHJlYWRpbmcgYnVn
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9S
dW5Mb29wLmgKaW5kZXggYjg2MmZiYzMzNTg0YWI1ZGJjZjQ4MWJmMThmMmE0M2JlMmM3MjRkMS4u
ZTQzNmJmMjM5YWJjMjJmMTJlOGVkNDAzYjk5NWNmOGI4NmM1M2U4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAt
MjgsOCArMjgsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2lu
Y2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2Nr
Lmg+Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uRGlzcGF0Y2hl
ci5oPgpAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgUmVmPFJ1bkxvb3A+IG1f
cnVuTG9vcDsKIAogI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xPT1ApCi0gICAgICAgIGJvb2wgaXNB
Y3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdDsKKyAgICAgICAgYm9vbCBpc0FjdGl2
ZVdpdGhMb2NrKCkgY29uc3QgV1RGX1JFUVVJUkVTX0xPQ0sobV9ydW5Mb29wLT5tX2xvb3BMb2Nr
KTsKICAgICAgICAgdm9pZCB0aW1lckZpcmVkKCk7CiAgICAgICAgIE1vbm90b25pY1RpbWUgbV9u
ZXh0RmlyZURhdGU7CiAgICAgICAgIFNlY29uZHMgbV9pbnRlcnZhbDsKQEAgLTE1OSw4ICsxNTks
OCBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZyB7IGZhbHNlIH07CiAgICAg
ICAgIFNlY29uZHMgbV9pbnRlcnZhbCB7IDAgfTsKICNlbGlmIFVTRShHRU5FUklDX0VWRU5UX0xP
T1ApCi0gICAgICAgIGJvb2wgaXNBY3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdDsK
LSAgICAgICAgdm9pZCBzdG9wKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CisgICAgICAgIGJvb2wg
aXNBY3RpdmVXaXRoTG9jaygpIGNvbnN0IFdURl9SRVFVSVJFU19MT0NLKG1fcnVuTG9vcC0+bV9s
b29wTG9jayk7CisgICAgICAgIHZvaWQgc3RvcFdpdGhMb2NrKCkgV1RGX1JFUVVJUkVTX0xPQ0so
bV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKIAogICAgICAgICBjbGFzcyBTY2hlZHVsZWRUYXNrOwog
ICAgICAgICBSZWZQdHI8U2NoZWR1bGVkVGFzaz4gbV9zY2hlZHVsZWRUYXNrOwpAQCAtMjI4LDcg
KzIyOCw3IEBAIHByaXZhdGU6CiAgICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBt
ZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKICAgICBIV05EIG1fcnVuTG9v
cE1lc3NhZ2VXaW5kb3c7CiAKLSAgICBMb2NrIG1fbG9vcExvY2s7CisgICAgQ2hlY2tlZExvY2sg
bV9sb29wTG9jazsKICNlbGlmIFVTRShDT0NPQV9FVkVOVF9MT09QKQogICAgIHN0YXRpYyB2b2lk
IHBlcmZvcm1Xb3JrKHZvaWQqKTsKICAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wUmVmPiBtX3J1bkxv
b3A7CkBAIC0yNDMsOSArMjQzLDkgQEAgcHJpdmF0ZToKICAgICBXZWFrSGFzaFNldDxPYnNlcnZl
cj4gbV9vYnNlcnZlcnM7CiAjZWxpZiBVU0UoR0VORVJJQ19FVkVOVF9MT09QKQogICAgIHZvaWQg
c2NoZWR1bGUoUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJik7Ci0gICAgdm9pZCBzY2hl
ZHVsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+
JiYpOwotICAgIHZvaWQgd2FrZVVwKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0gICAgdm9pZCBz
Y2hlZHVsZUFuZFdha2VVcChjb25zdCBBYnN0cmFjdExvY2tlciYsIFJlZjxUaW1lckJhc2U6OlNj
aGVkdWxlZFRhc2s+JiYpOworICAgIHZvaWQgc2NoZWR1bGVXaXRoTG9jayhSZWY8VGltZXJCYXNl
OjpTY2hlZHVsZWRUYXNrPiYmKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2xvb3BMb2NrKTsKKyAgICB2
b2lkIHdha2VVcFdpdGhMb2NrKCkgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb29wTG9jayk7CisgICAg
dm9pZCBzY2hlZHVsZUFuZFdha2VVcFdpdGhMb2NrKFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRh
c2s+JiYpIFdURl9SRVFVSVJFU19MT0NLKG1fbG9vcExvY2spOwogCiAgICAgZW51bSBjbGFzcyBS
dW5Nb2RlIHsKICAgICAgICAgSXRlcmF0ZSwKQEAgLTI2MSw5ICsyNjEsOSBAQCBwcml2YXRlOgog
CiAgICAgZnJpZW5kIGNsYXNzIFRpbWVyQmFzZTsKIAotICAgIExvY2sgbV9sb29wTG9jazsKKyAg
ICBDaGVja2VkTG9jayBtX2xvb3BMb2NrOwogICAgIENvbmRpdGlvbiBtX3JlYWR5VG9SdW47Ci0g
ICAgQ29uZGl0aW9uIG1fc3RvcENvbmRpdGlvbjsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fc3Rv
cENvbmRpdGlvbjsKICAgICBWZWN0b3I8UmVmUHRyPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4+
IG1fc2NoZWR1bGVzOwogICAgIFZlY3RvcjxTdGF0dXMqPiBtX21haW5Mb29wczsKICAgICBib29s
IG1fc2h1dGRvd24geyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3luY2hy
b25pemVkRml4ZWRRdWV1ZS5oIGIvU291cmNlL1dURi93dGYvU3luY2hyb25pemVkRml4ZWRRdWV1
ZS5oCmluZGV4IDEwYWQ4NDZmZGE3MTdlYTU2NWQ0M2U3YTJjNTMyMTExZDVjNTk0ZjQuLmIzOTBk
ZTM5NGZkMmUyMzc0ZTU2NjQzMTMyMzk5YmU3MzU1MTY5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1N5bmNocm9uaXplZEZpeGVkUXVldWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TeW5j
aHJvbml6ZWRGaXhlZFF1ZXVlLmgKQEAgLTI1LDkgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBvcGVuKCkKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja0hvbGRlcihtX211
dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBpZiAobV9v
cGVuKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgY2xvc2UoKQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1f
bXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIGlmICgh
bV9vcGVuKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02NCwxNiArNjQsMTkgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc09wZW4oKQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9s
ZGVyKG1fbXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAg
IHJldHVybiBtX29wZW47CiAgICAgfQogCiAgICAgYm9vbCBlbnF1ZXVlKGNvbnN0IFQmIHZhbHVl
KQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1fbXV0ZXgpOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICAgICAgLy8gV2FpdCBmb3IgYW4gZW1w
dHkgcGxhY2UgdG8gYmUgYXZhaWxhYmxlIGluIHRoZSBxdWV1ZS4KLSAgICAgICAgbV9jb25kaXRp
b24ud2FpdChtX211dGV4LCBbdGhpc10oKSB7IHJldHVybiAhbV9vcGVuIHx8IG1fcXVldWUuc2l6
ZSgpIDwgQnVmZmVyU2l6ZTsgfSk7CisgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9sb2NrLCBb
dGhpc10geworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jayk7CisgICAgICAgICAgICBy
ZXR1cm4gIW1fb3BlbiB8fCBtX3F1ZXVlLnNpemUoKSA8IEJ1ZmZlclNpemU7CisgICAgICAgIH0p
OwogCiAgICAgICAgIC8vIFRoZSBxdWV1ZSBpcyBjbG9zaW5nLCBleGl0IGltbWVkaWF0ZWx5Lgog
ICAgICAgICBpZiAoIW1fb3BlbikKQEAgLTg5LDEwICs5MiwxMyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGRlcXVldWUoVCYgdmFsdWUpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tIb2xk
ZXIobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKIAogICAgICAg
ICAvLyBXYWl0IGZvciBhbiBpdGVtIHRvIGJlIGFkZGVkLgotICAgICAgICBtX2NvbmRpdGlvbi53
YWl0KG1fbXV0ZXgsIFt0aGlzXSgpIHsgcmV0dXJuICFtX29wZW4gfHwgbV9xdWV1ZS5zaXplKCk7
IH0pOworICAgICAgICBtX2NvbmRpdGlvbi53YWl0KG1fbG9jaywgW3RoaXNdIHsKKyAgICAgICAg
ICAgIGFzc2VydElzSGVsZChtX2xvY2spOworICAgICAgICAgICAgcmV0dXJuICFtX29wZW4gfHwg
bV9xdWV1ZS5zaXplKCk7CisgICAgICAgIH0pOwogCiAgICAgICAgIC8vIFRoZSBxdWV1ZSBpcyBj
bG9zaW5nLCBleGl0IGltbWVkaWF0ZWx5LgogICAgICAgICBpZiAoIW1fb3BlbikKQEAgLTExMywx
MSArMTE5LDExIEBAIHByaXZhdGU6CiAgICAgICAgIHN0YXRpY19hc3NlcnQoISgoQnVmZmVyU2l6
ZSAtIDEpICYgQnVmZmVyU2l6ZSksICJCdWZmZXJTaXplIG11c3QgYmUgcG93ZXIgb2YgMi4iKTsK
ICAgICB9CiAKLSAgICBMb2NrIG1fbXV0ZXg7Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwor
ICAgIENoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9u
OwogCi0gICAgYm9vbCBtX29wZW4geyB0cnVlIH07Ci0gICAgRGVxdWU8VCwgQnVmZmVyU2l6ZT4g
bV9xdWV1ZTsKKyAgICBib29sIG1fb3BlbiBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykgeyB0
cnVlIH07CisgICAgRGVxdWU8VCwgQnVmZmVyU2l6ZT4gbV9xdWV1ZSBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fbG9jayk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XVEZTZW1h
cGhvcmUuaCBiL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5oCmluZGV4IDhlYTViZWZmOWVm
NDgyZjZjZDY1OTEwYzUyYWM2NDFiNWJhMjJjNzUuLjVhOTgwZjZlNjQ2MmVkNTNlZGVmOWM2MTli
YTcyMDE2ZjY5MjE5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5oCkBAIC0yNSw4ICsyNSw4IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgotI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNw
YWNlIFdURiB7CkBAIC00MiwxOCArNDIsMTggQEAgcHVibGljOgogCiAgICAgdm9pZCBzaWduYWwo
KQogICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIG1fdmFsdWUrKzsKICAgICAgICAg
bV9jb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfQogCiAgICAgYm9vbCB3YWl0VW50aWwoY29u
c3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0KQogICAgIHsKLSAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwotICAgICAgICBib29sIHNhdGlzZmllZCA9IG1f
Y29uZGl0aW9uLndhaXRVbnRpbChtX2xvY2ssIHRpbWVvdXQsCi0gICAgICAgICAgICBbJl0gewot
ICAgICAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlOwotICAgICAgICAgICAgfSk7CisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKKyAgICAgICAgYm9vbCBzYXRpc2ZpZWQgPSBtX2Nv
bmRpdGlvbi53YWl0VW50aWwobV9sb2NrLCB0aW1lb3V0LCBbJl0geworICAgICAgICAgICAgYXNz
ZXJ0SXNIZWxkKG1fbG9jayk7CisgICAgICAgICAgICByZXR1cm4gbV92YWx1ZTsKKyAgICAgICAg
fSk7CiAgICAgICAgIGlmIChzYXRpc2ZpZWQpCiAgICAgICAgICAgICAtLW1fdmFsdWU7CiAgICAg
ICAgIHJldHVybiBzYXRpc2ZpZWQ7CkBAIC03MCw5ICs3MCw5IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgdW5zaWduZWQgbV92YWx1ZSB7IDAgfTsKLSAgICBMb2NrIG1fbG9jazsK
LSAgICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgdW5zaWduZWQgbV92YWx1ZSBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fbG9jaykgeyAwIH07CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAg
IENoZWNrZWRDb25kaXRpb24gbV9jb25kaXRpb247CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwCmlu
ZGV4IGRmN2QzN2E4ZWM2NDU1MmFlMDFjMmQ1OTBkMzVkZTAyZjU1MTE2NDUuLmNjYWQ1YmU4NzVm
NDA4YjAzOTI5ZjZiMTcxYzEzZTA4NDg4MDhjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1dvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcApAQCAtMjgs
MTAgKzI4LDEwIEBACiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogCiAjaW5jbHVkZSA8bXV0
ZXg+Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29u
ZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZD
b3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTEwNSw4ICsxMDUsNyBAQCB2b2lkIFdv
cmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBXVEY6OkZ1bmN0aW9u
PHZvaWQgKHNpemVfdCBpbgogCiAgICAgICAgIHZvaWQgZGlzcGF0Y2goY29uc3QgV1RGOjpGdW5j
dGlvbjx2b2lkICgpPiogZnVuY3Rpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xk
ZXIgaG9sZGVyKG1fbG9jayk7Ci0KKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sg
fTsKICAgICAgICAgICAgIG1fcXVldWUuYXBwZW5kKGZ1bmN0aW9uKTsKICAgICAgICAgICAgIG1f
Y29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgICAgICB9CkBAIC0xMTgsOSArMTE3LDkgQEAgdm9p
ZCBXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywgV1RGOjpGdW5j
dGlvbjx2b2lkIChzaXplX3QgaW4KICAgICAgICAgICAgICAgICBjb25zdCBXVEY6OkZ1bmN0aW9u
PHZvaWQgKCk+KiBmdW5jdGlvbjsKIAogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgTG9ja0hvbGRlciBob2xkZXIobV9sb2NrKTsKLQorICAgICAgICAgICAgICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgICAgICAgICAgICAgIG1fY29uZGl0aW9u
LndhaXQobV9sb2NrLCBbdGhpc10geworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0SXNI
ZWxkKG1fbG9jayk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIW1fcXVldWUuaXNF
bXB0eSgpOwogICAgICAgICAgICAgICAgICAgICB9KTsKIApAQCAtMTMxLDkgKzEzMCw5IEBAIHZv
aWQgV29ya1F1ZXVlOjpjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVu
Y3Rpb248dm9pZCAoc2l6ZV90IGluCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAg
ICBMb2NrIG1fbG9jazsKLSAgICAgICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotICAgICAgICBE
ZXF1ZTxjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+Kj4gbV9xdWV1ZTsKKyAgICAgICAgQ2hl
Y2tlZExvY2sgbV9sb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwor
ICAgICAgICBEZXF1ZTxjb25zdCBGdW5jdGlvbjx2b2lkKCk+Kj4gbV9xdWV1ZSBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fbG9jayk7CiAKICAgICAgICAgVmVjdG9yPFJlZjxUaHJlYWQ+PiBtX3dvcmtl
cnM7CiAgICAgfTsKQEAgLTE1MCwxMCArMTQ5LDEwIEBAIHZvaWQgV29ya1F1ZXVlOjpjb25jdXJy
ZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZCAoc2l6ZV90IGlu
CiAgICAgc3RkOjphdG9taWM8c2l6ZV90PiBjdXJyZW50SW5kZXgoMCk7CiAgICAgc3RkOjphdG9t
aWM8c2l6ZV90PiBhY3RpdmVUaHJlYWRzKHdvcmtlckNvdW50ICsgMSk7CiAKLSAgICBDb25kaXRp
b24gY29uZGl0aW9uOwotICAgIExvY2sgbG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIGNvbmRp
dGlvbjsKKyAgICBDaGVja2VkTG9jayBsb2NrOwogCi0gICAgV1RGOjpGdW5jdGlvbjx2b2lkICgp
PiBhcHBsaWVyID0gWyYsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIHsKKyAgICBGdW5j
dGlvbjx2b2lkICgpPiBhcHBsaWVyID0gWyYsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbild
IHsKICAgICAgICAgc2l6ZV90IGluZGV4OwogCiAgICAgICAgIC8vIENhbGwgdGhlIGZ1bmN0aW9u
IGZvciBhcyBsb25nIGFzIHRoZXJlIGFyZSBpdGVyYXRpb25zIGxlZnQuCkBAIC0xNjIsNyArMTYx
LDcgQEAgdm9pZCBXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywg
V1RGOjpGdW5jdGlvbjx2b2lkIChzaXplX3QgaW4KIAogICAgICAgICAvLyBJZiB0aGVyZSBhcmUg
bm8gYWN0aXZlIHRocmVhZHMgbGVmdCwgc2lnbmFsIHRoZSBjYWxsZXIuCiAgICAgICAgIGlmICgh
LS1hY3RpdmVUaHJlYWRzKSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihsb2NrKTsK
KyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBsb2NrIH07CiAgICAgICAgICAgICBjb25kaXRp
b24ubm90aWZ5T25lKCk7CiAgICAgICAgIH0KICAgICB9OwpAQCAtMTcxLDcgKzE3MCw3IEBAIHZv
aWQgV29ya1F1ZXVlOjpjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVu
Y3Rpb248dm9pZCAoc2l6ZV90IGluCiAgICAgICAgIHRocmVhZFBvb2wtPmRpc3BhdGNoKCZhcHBs
aWVyKTsKICAgICBhcHBsaWVyKCk7CiAKLSAgICBMb2NrSG9sZGVyIGhvbGRlcihsb2NrKTsKKyAg
ICBMb2NrZXIgbG9ja2VyIHsgbG9jayB9OwogICAgIGNvbmRpdGlvbi53YWl0KGxvY2ssIFsmXSB7
IHJldHVybiAhYWN0aXZlVGhyZWFkczsgfSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvZ2Vu
ZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKaW5kZXggMTJjOGE5ZDMxZTQ2MzU2OTc5OTQ2NWZmNzE2
ODBlZjBjOGEwNWU1OC4uODQ4MWQyNjY5ZWZmYjYwNjFiODk0YTM0MTliMTE4MTBhZTI3N2ExZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKQEAgLTEwNSw3ICsx
MDUsNyBAQCBSdW5Mb29wOjpSdW5Mb29wKCkKIAogUnVuTG9vcDo6flJ1bkxvb3AoKQogewotICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xv
b3BMb2NrIH07CiAgICAgbV9zaHV0ZG93biA9IHRydWU7CiAgICAgbV9yZWFkeVRvUnVuLm5vdGlm
eU9uZSgpOwogCkBAIC0xMTYsNyArMTE2LDcgQEAgUnVuTG9vcDo6flJ1bkxvb3AoKQogCiBpbmxp
bmUgYm9vbCBSdW5Mb29wOjpwb3B1bGF0ZVRhc2tzKFJ1bk1vZGUgcnVuTW9kZSwgU3RhdHVzJiBz
dGF0dXNPZlRoaXNMb29wLCBEZXF1ZTxSZWZQdHI8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPj4m
IGZpcmVkVGltZXJzKQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOworICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvb3BMb2NrIH07CiAKICAgICBpZiAocnVuTW9kZSA9PSBSdW5N
b2RlOjpEcmFpbikgewogICAgICAgICBNb25vdG9uaWNUaW1lIHNsZWVwVW50aWwgPSBNb25vdG9u
aWNUaW1lOjppbmZpbml0eSgpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgUnVuTG9vcDo6cnVu
SW1wbChSdW5Nb2RlIHJ1bk1vZGUpCiAKICAgICBTdGF0dXMgc3RhdHVzT2ZUaGlzTG9vcCA9IFN0
YXR1czo6Q2xlYXI7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvb3BMb2Nr
KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9vcExvY2sgfTsKICAgICAgICAgbV9tYWlu
TG9vcHMuYXBwZW5kKCZzdGF0dXNPZlRoaXNMb29wKTsKICAgICB9CiAKQEAgLTIwMiw3ICsyMDIs
NyBAQCB2b2lkIFJ1bkxvb3A6OnNldFdha2VVcENhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmIGZ1bmN0aW9uKQogCiB2b2lkIFJ1bkxvb3A6OnN0b3AoKQogewotICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbG9vcExvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvb3BMb2NrIH07CiAg
ICAgaWYgKG1fbWFpbkxvb3BzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTMs
NyArMjEzLDcgQEAgdm9pZCBSdW5Mb29wOjpzdG9wKCkKICAgICB9CiB9CiAKLXZvaWQgUnVuTG9v
cDo6d2FrZVVwKGNvbnN0IEFic3RyYWN0TG9ja2VyJikKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwV2l0
aExvY2soKQogewogICAgIG1fcGVuZGluZ1Rhc2tzID0gdHJ1ZTsKICAgICBtX3JlYWR5VG9SdW4u
bm90aWZ5T25lKCk7CkBAIC0yMjQsOCArMjI0LDggQEAgdm9pZCBSdW5Mb29wOjp3YWtlVXAoY29u
c3QgQWJzdHJhY3RMb2NrZXImKQogCiB2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCiB7Ci0gICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb29wTG9jayk7Ci0gICAgd2FrZVVwKGxvY2tlcik7CisgICAgTG9j
a2VyIGxvY2tlciB7IG1fbG9vcExvY2sgfTsKKyAgICB3YWtlVXBXaXRoTG9jaygpOwogfQogCiBS
dW5Mb29wOjpDeWNsZVJlc3VsdCBSdW5Mb29wOjpjeWNsZShSdW5Mb29wTW9kZSkKQEAgLTIzNCw3
ICsyMzQsNyBAQCBSdW5Mb29wOjpDeWNsZVJlc3VsdCBSdW5Mb29wOjpjeWNsZShSdW5Mb29wTW9k
ZSkKICAgICByZXR1cm4gQ3ljbGVSZXN1bHQ6OkNvbnRpbnVlOwogfQogCi12b2lkIFJ1bkxvb3A6
OnNjaGVkdWxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVk
VGFzaz4mJiB0YXNrKQordm9pZCBSdW5Mb29wOjpzY2hlZHVsZVdpdGhMb2NrKFJlZjxUaW1lckJh
c2U6OlNjaGVkdWxlZFRhc2s+JiYgdGFzaykKIHsKICAgICBtX3NjaGVkdWxlcy5hcHBlbmQodGFz
ay5wdHIoKSk7CiAgICAgc3RkOjpwdXNoX2hlYXAobV9zY2hlZHVsZXMuYmVnaW4oKSwgbV9zY2hl
ZHVsZXMuZW5kKCksIFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzazo6RWFybGllc3RTY2hlZHVsZSgp
KTsKQEAgLTI0MiwxNCArMjQyLDE0IEBAIHZvaWQgUnVuTG9vcDo6c2NoZWR1bGUoY29uc3QgQWJz
dHJhY3RMb2NrZXImLCBSZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPiYmIHRhCiAKIHZvaWQg
UnVuTG9vcDo6c2NoZWR1bGUoUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJiB0YXNrKQog
ewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOwotICAgIHNjaGVkdWxlKGxvY2tl
ciwgV1RGTW92ZSh0YXNrKSk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9vcExvY2sgfTsKKyAg
ICBzY2hlZHVsZVdpdGhMb2NrKFdURk1vdmUodGFzaykpOwogfQogCi12b2lkIFJ1bkxvb3A6OnNj
aGVkdWxlQW5kV2FrZVVwKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFJlZjxUaW1lckJh
c2U6OlNjaGVkdWxlZFRhc2s+JiYgdGFzaykKK3ZvaWQgUnVuTG9vcDo6c2NoZWR1bGVBbmRXYWtl
VXBXaXRoTG9jayhSZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPiYmIHRhc2spCiB7Ci0gICAg
c2NoZWR1bGUobG9ja2VyLCBXVEZNb3ZlKHRhc2spKTsKLSAgICB3YWtlVXAobG9ja2VyKTsKKyAg
ICBzY2hlZHVsZVdpdGhMb2NrKFdURk1vdmUodGFzaykpOworICAgIHdha2VVcFdpdGhMb2NrKCk7
CiB9CiAKIC8vIFNpbmNlIFJ1bkxvb3AgZG9lcyBub3Qgb3duIHRoZSByZWdpc3RlcmVkIFRpbWVy
QmFzZSwKQEAgLTI2MiwyMSArMjYyLDIxIEBAIFJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNl
KFJ1bkxvb3AmIHJ1bkxvb3ApCiAKIFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCiB7
Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKLSAgICBzdG9w
KGxvY2tlcik7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9Owor
ICAgIHN0b3BXaXRoTG9jaygpOwogfQogCiB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQo
U2Vjb25kcyBpbnRlcnZhbCwgYm9vbCByZXBlYXRpbmcpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKLSAgICBzdG9wKGxvY2tlcik7CisgICAgTG9ja2Vy
IGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9OworICAgIHN0b3BXaXRoTG9jaygpOwog
ICAgIG1fc2NoZWR1bGVkVGFzayA9IFNjaGVkdWxlZFRhc2s6OmNyZWF0ZShbdGhpc10gewogICAg
ICAgICBmaXJlZCgpOwogICAgIH0sIGludGVydmFsLCByZXBlYXRpbmcpOwotICAgIG1fcnVuTG9v
cC0+c2NoZWR1bGVBbmRXYWtlVXAobG9ja2VyLCAqbV9zY2hlZHVsZWRUYXNrKTsKKyAgICBtX3J1
bkxvb3AtPnNjaGVkdWxlQW5kV2FrZVVwV2l0aExvY2soKm1fc2NoZWR1bGVkVGFzayk7CiB9CiAK
LXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKGNvbnN0IEFic3RyYWN0TG9ja2VyJikKK3Zv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wV2l0aExvY2soKQogewogICAgIGlmIChtX3NjaGVk
dWxlZFRhc2spIHsKICAgICAgICAgbV9zY2hlZHVsZWRUYXNrLT5kZWFjdGl2YXRlKCk7CkBAIC0y
ODYsMjUgKzI4NiwyNSBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcChjb25zdCBBYnN0
cmFjdExvY2tlciYpCiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKIHsKLSAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fbG9vcExvY2spOwotICAgIHN0b3AobG9ja2Vy
KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9ydW5Mb29wLT5tX2xvb3BMb2NrIH07CisgICAgc3Rv
cFdpdGhMb2NrKCk7CiB9CiAKIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNv
bnN0CiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKLSAg
ICByZXR1cm4gaXNBY3RpdmUobG9ja2VyKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9ydW5Mb29w
LT5tX2xvb3BMb2NrIH07CisgICAgcmV0dXJuIGlzQWN0aXZlV2l0aExvY2soKTsKIH0KIAotYm9v
bCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29u
c3QKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZVdpdGhMb2NrKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9zY2hlZHVsZWRUYXNrICYmIG1fc2NoZWR1bGVkVGFzay0+aXNBY3RpdmUo
KTsKIH0KIAogU2Vjb25kcyBSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUoKSBj
b25zdAogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9jayk7Ci0g
ICAgaWYgKGlzQWN0aXZlKGxvY2tlcikpCisgICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+
bV9sb29wTG9jayB9OworICAgIGlmIChpc0FjdGl2ZVdpdGhMb2NrKCkpCiAgICAgICAgIHJldHVy
biBzdGQ6Om1heDxTZWNvbmRzPihtX3NjaGVkdWxlZFRhc2stPnNjaGVkdWxlZFRpbWVQb2ludCgp
IC0gTW9ub3RvbmljVGltZTo6bm93KCksIDBfcyk7CiAgICAgcmV0dXJuIDBfczsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3dpbi9SdW5Mb29wV2luLmNwcAppbmRleCBhNGM0N2E2ZDJjMzdhZDcyZTY1NjczMTZhZTEyYTAy
MWNlYzc1NmQ5Li41MzMxNDM5NWEwMTVhODJmOTI4OGYzZGQwZTgwZDE0NTYyYjU2ZTIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvd2luL1J1bkxvb3BXaW4uY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgUnVuTG9vcDo6Q3lj
bGVSZXN1bHQgUnVuTG9vcDo6Y3ljbGUoUnVuTG9vcE1vZGUpCiB2b2lkIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCgpCiB7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3J1bkxvb3AtPm1fbG9vcExvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9ydW5Mb29w
LT5tX2xvb3BMb2NrIH07CiAKICAgICAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMTc2LDcgKzE3Niw3IEBAIFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFz
ZSgpCiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChTZWNvbmRzIGludGVydmFsLCBi
b29sIHJlcGVhdCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fbG9vcExv
Y2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKICAgICBt
X2lzUmVwZWF0aW5nID0gcmVwZWF0OwogICAgIG1faXNBY3RpdmUgPSB0cnVlOwogICAgIG1faW50
ZXJ2YWwgPSBpbnRlcnZhbDsKQEAgLTE4NiwyOSArMTg2LDI5IEBAIHZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzdGFydChTZWNvbmRzIGludGVydmFsLCBib29sIHJlcGVhdCkKIAogdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnN0b3AoKQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9v
cC0+bV9sb29wTG9jayk7Ci0gICAgaWYgKCFpc0FjdGl2ZShsb2NrZXIpKQorICAgIExvY2tlciBs
b2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAgICBpZiAoIWlzQWN0aXZlV2l0aExv
Y2soKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pc0FjdGl2ZSA9IGZhbHNlOwogICAgIDo6
S2lsbFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgYml0d2lzZV9jYXN0
PHVpbnRwdHJfdD4odGhpcykpOwogfQogCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3Rp
dmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdAorYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6
OmlzQWN0aXZlV2l0aExvY2soKSBjb25zdAogewogICAgIHJldHVybiBtX2lzQWN0aXZlOwogfQog
CiBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAogewotICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9jayk7Ci0gICAgcmV0dXJuIGlzQWN0aXZl
KGxvY2tlcik7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9Owor
ICAgIHJldHVybiBpc0FjdGl2ZVdpdGhMb2NrKCk7CiB9CiAKIFNlY29uZHMgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3J1bkxvb3AtPm1fbG9vcExvY2spOwotICAgIGlmIChpc0FjdGl2ZShsb2NrZXIpKQorICAg
IExvY2tlciBsb2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAgICBpZiAoaXNBY3Rp
dmVXaXRoTG9jaygpKQogICAgICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4obV9uZXh0Rmly
ZURhdGUgLSBNb25vdG9uaWNUaW1lOjpub3coKSwgMF9zKTsKICAgICByZXR1cm4gMF9zOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRh
c2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2su
Y3BwCmluZGV4IGRiMjJhYWM0YTM4YzQxMjI3M2U5MzdhZTJiMDYxNDVmYWVjMzU2YTIuLmJlZjAz
OWUxNWU4MjU2NTA3MGYwZTM3ZjlmMzM5ZjVhNGZhMTM1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKQEAgLTQxLDE4ICs0
MSwxNiBAQCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OkRhdGFiYXNlVGFza1N5bmNocm9uaXpl
cigpCiAKIHZvaWQgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp3YWl0Rm9yVGFza0NvbXBsZXRp
b24oKQogewotICAgIG1fc3luY2hyb25vdXNNdXRleC5sb2NrKCk7CisgICAgTG9ja2VyIGxvY2tl
ciB7IG1fc3luY2hyb25vdXNMb2NrIH07CiAgICAgd2hpbGUgKCFtX3Rhc2tDb21wbGV0ZWQpCi0g
ICAgICAgIG1fc3luY2hyb25vdXNDb25kaXRpb24ud2FpdChtX3N5bmNocm9ub3VzTXV0ZXgpOwot
ICAgIG1fc3luY2hyb25vdXNNdXRleC51bmxvY2soKTsKKyAgICAgICAgbV9zeW5jaHJvbm91c0Nv
bmRpdGlvbi53YWl0KG1fc3luY2hyb25vdXNMb2NrKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRhc2tT
eW5jaHJvbml6ZXI6OnRhc2tDb21wbGV0ZWQoKQogewotICAgIG1fc3luY2hyb25vdXNNdXRleC5s
b2NrKCk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fc3luY2hyb25vdXNMb2NrIH07CiAgICAgbV90
YXNrQ29tcGxldGVkID0gdHJ1ZTsKICAgICBtX3N5bmNocm9ub3VzQ29uZGl0aW9uLm5vdGlmeU9u
ZSgpOwotICAgIG1fc3luY2hyb25vdXNNdXRleC51bmxvY2soKTsKIH0KIAogRGF0YWJhc2VUYXNr
OjpEYXRhYmFzZVRhc2soRGF0YWJhc2UmIGRhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6
ZXIqIHN5bmNocm9uaXplcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGFzay5oCmluZGV4IDkxNmU5MTg5YThmZTc3MTBiNjQzMGY5NzE2N2FlZTll
YTgyZTk0ODUuLjdkMTZkNTY3Y2FiMTMzN2UzMjYxZGM3ZGQzMzU2NWY0MzM2OWNkMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suaApA
QCAtMjksOSArMjksOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRp
dGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC01Nyw5ICs1Nyw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIGJvb2wgbV90
YXNrQ29tcGxldGVkIHsgZmFsc2UgfTsKLSAgICBMb2NrIG1fc3luY2hyb25vdXNNdXRleDsKLSAg
ICBDb25kaXRpb24gbV9zeW5jaHJvbm91c0NvbmRpdGlvbjsKKyAgICBib29sIG1fdGFza0NvbXBs
ZXRlZCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc3luY2hyb25vdXNMb2NrKSB7IGZhbHNlIH07Cisg
ICAgQ2hlY2tlZExvY2sgbV9zeW5jaHJvbm91c0xvY2s7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBt
X3N5bmNocm9ub3VzQ29uZGl0aW9uOwogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgYm9vbCBtX2hh
c0NoZWNrZWRGb3JUZXJtaW5hdGlvbiB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJj
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
V2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDhjZWIxOGMxODFjMWM4MTNi
Y2FjNzU4MjQ1MDJhMjkwOTlmOTc1ODAuLmE3ODg5Zjg3MjQ0YjU2N2U1ODgyMTc0ZWU4OGRiYzZl
NmFkMjdlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJl
YW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVy
LmNwcApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CiAj
aW5jbHVkZSA8Z3N0L2F1ZGlvL2F1ZGlvLWluZm8uaD4KICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9t
aXNzaW5nLXBsdWdpbnMuaD4KLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+Ci0jaW5jbHVkZSA8
d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUg
PHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgpAQCAt
ODQsOSArODQsOSBAQCBzdHJ1Y3QgX1dlYktpdFdlYkF1ZGlvU3JjUHJpdmF0ZSB7CiAgICAgTG9j
ayBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jazsKICAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9u
PHZvaWQoKT4mJik+IGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbjsKIAotICAgIGJvb2wg
ZGlzcGF0Y2hEb25lOwotICAgIExvY2sgZGlzcGF0Y2hMb2NrOwotICAgIENvbmRpdGlvbiBkaXNw
YXRjaENvbmRpdGlvbjsKKyAgICBib29sIGRpc3BhdGNoRG9uZSBXVEZfR1VBUkRFRF9CWV9MT0NL
KGRpc3BhdGNoTG9jayk7CisgICAgQ2hlY2tlZExvY2sgZGlzcGF0Y2hMb2NrOworICAgIENoZWNr
ZWRDb25kaXRpb24gZGlzcGF0Y2hDb25kaXRpb247CiAKICAgICBfV2ViS2l0V2ViQXVkaW9TcmNQ
cml2YXRlKCkKICAgICB7CkBAIC0zMzksNyArMzM5LDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2Vi
QXVkaW9TcmNSZW5kZXJBbmRQdXNoRnJhbWVzKEdSZWZQdHI8R3N0RWxlbWVudD4mJiBlbGVtZW50
LAogICAgIGF1dG8qIHByaXYgPSBzcmMtPnByaXY7CiAKICAgICBhdXRvIG5vdGlmeURpc3BhdGNo
T25FeGl0ID0gbWFrZVNjb3BlRXhpdChbcHJpdl0gewotICAgICAgICBMb2NrSG9sZGVyIGxvY2so
cHJpdi0+ZGlzcGF0Y2hMb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByaXYtPmRpc3Bh
dGNoTG9jayB9OwogICAgICAgICBwcml2LT5kaXNwYXRjaERvbmUgPSB0cnVlOwogICAgICAgICBw
cml2LT5kaXNwYXRjaENvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICB9KTsKQEAgLTQwNCw3ICs0
MDQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbihXZWJL
aXRXZWJBdWRpb1NyYyogc3JjKQogICAgIH0KIAogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBs
b2NrKHByaXYtPmRpc3BhdGNoTG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcml2LT5k
aXNwYXRjaExvY2sgfTsKICAgICAgICAgcHJpdi0+ZGlzcGF0Y2hEb25lID0gZmFsc2U7CiAgICAg
fQogCkBAIC00MjEsNyArNDIxLDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNSZW5k
ZXJJdGVyYXRpb24oV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICB9CiAKICAgICB7Ci0gICAg
ICAgIExvY2tIb2xkZXIgbG9jayhwcml2LT5kaXNwYXRjaExvY2spOworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgcHJpdi0+ZGlzcGF0Y2hMb2NrIH07CiAgICAgICAgIGlmICghcHJpdi0+ZGlzcGF0
Y2hEb25lKQogICAgICAgICAgICAgcHJpdi0+ZGlzcGF0Y2hDb25kaXRpb24ud2FpdChwcml2LT5k
aXNwYXRjaExvY2spOwogICAgIH0KQEAgLTQ2OCw3ICs0NjgsNyBAQCBzdGF0aWMgR3N0U3RhdGVD
aGFuZ2VSZXR1cm4gd2ViS2l0V2ViQXVkaW9TcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVt
ZW50LCBHcwogICAgIH0KICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUEFVU0VEX1RPX1JFQURZ
OgogICAgICAgICB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2socHJpdi0+ZGlzcGF0Y2hM
b2NrKTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcml2LT5kaXNwYXRjaExvY2sgfTsK
ICAgICAgICAgICAgIHByaXYtPmRpc3BhdGNoRG9uZSA9IGZhbHNlOwogICAgICAgICAgICAgcHJp
di0+ZGlzcGF0Y2hDb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHAKaW5kZXggMmY5YzI4OTBiMjQxMmUzNzZiNGE0YzM2
MWYyMjlmMzI2MmIyZTRjYS4uMzUwMzhhZjU5ODNjMWQyM2NhYzdjNDBkNzEwN2FhYTMwMGIyMDAx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHAKQEAgLTI3NiwyNiAr
Mjc2LDI2IEBAIHZvaWQgSW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpzZXRIYXNFT1MoKQogewogICAg
IEdTVF9ERUJVRygiRU9TIG9uIGRlY29kZXIgJXAiLCB0aGlzKTsKICAgICB7Ci0gICAgICAgIExv
Y2tIb2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1f
c2FtcGxlTG9jayB9OwogICAgICAgICBtX2VvcyA9IHRydWU7CiAgICAgICAgIG1fc2FtcGxlQ29u
ZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9j
ayhtX2hhbmRsZXJNdXRleCk7Ci0gICAgICAgIG1faGFuZGxlckNvbmRpdGlvbi53YWl0KG1faGFu
ZGxlck11dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1faGFuZGxlckxvY2sgfTsKKyAg
ICAgICAgbV9oYW5kbGVyQ29uZGl0aW9uLndhaXQobV9oYW5kbGVyTG9jayk7CiAgICAgfQogfQog
CiB2b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6bm90aWZ5U2FtcGxlKEdSZWZQdHI8R3N0U2Ft
cGxlPiYmIHNhbXBsZSkKIHsKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3NhbXBs
ZU11dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fc2FtcGxlTG9jayB9OwogICAgICAg
ICBtX3NhbXBsZSA9IFdURk1vdmUoc2FtcGxlKTsKICAgICAgICAgbV9zYW1wbGVDb25kaXRpb24u
bm90aWZ5T25lKCk7CiAgICAgfQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1faGFu
ZGxlck11dGV4KTsKLSAgICAgICAgbV9oYW5kbGVyQ29uZGl0aW9uLndhaXQobV9oYW5kbGVyTXV0
ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9oYW5kbGVyTG9jayB9OworICAgICAgICBt
X2hhbmRsZXJDb25kaXRpb24ud2FpdChtX2hhbmRsZXJMb2NrKTsKICAgICB9CiB9CiAKQEAgLTMw
Niw3ICszMDYsNyBAQCB2b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6SW5uZXJEZWNvZGVyOjpo
YW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgYXV0byBzY29wZUV4aXQgPSBt
YWtlU2NvcGVFeGl0KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAg
ICAgaWYgKCFwcm90ZWN0ZWRUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBMb2Nr
SG9sZGVyIGxvY2socHJvdGVjdGVkVGhpcy0+bV9tZXNzYWdlTG9jayk7CisgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBwcm90ZWN0ZWRUaGlzLT5tX21lc3NhZ2VMb2NrIH07CiAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fbWVzc2FnZURpc3BhdGNoZWQgPSB0cnVlOwogICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX21lc3NhZ2VDb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfSk7CkBAIC0zNjUsNyAr
MzY1LDcgQEAgdm9pZCBJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6cHJlcGFy
ZVBpcGVsaW5lKCkKICAgICAgICAgYXV0byYgZGVjb2RlciA9ICpzdGF0aWNfY2FzdDxJbWFnZURl
Y29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcio+KHVzZXJEYXRhKTsKIAogICAgICAgICB7Ci0g
ICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2soZGVjb2Rlci5tX21lc3NhZ2VMb2NrKTsKKyAgICAg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBkZWNvZGVyLm1fbWVzc2FnZUxvY2sgfTsKICAgICAgICAg
ICAgIGRlY29kZXIubV9tZXNzYWdlRGlzcGF0Y2hlZCA9IGZhbHNlOwogICAgICAgICAgICAgZGVj
b2Rlci5tX21lc3NhZ2VDb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgICAgIH0KQEAgLTM4MCw3
ICszODAsNyBAQCB2b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6SW5uZXJEZWNvZGVyOjpwcmVw
YXJlUGlwZWxpbmUoKQogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFk
ZWNvZGVyLm1fbWVzc2FnZURpc3BhdGNoZWQpIHsKLSAgICAgICAgICAgIExvY2tIb2xkZXIgbG9j
ayhkZWNvZGVyLm1fbWVzc2FnZUxvY2spOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IGRl
Y29kZXIubV9tZXNzYWdlTG9jayB9OwogICAgICAgICAgICAgZGVjb2Rlci5tX21lc3NhZ2VDb25k
aXRpb24ud2FpdChkZWNvZGVyLm1fbWVzc2FnZUxvY2spOwogICAgICAgICB9CiAgICAgICAgIGdz
dF9tZXNzYWdlX3VucmVmKG1lc3NhZ2UpOwpAQCAtNDI2LDEzICs0MjYsMTMgQEAgdm9pZCBJbWFn
ZURlY29kZXJHU3RyZWFtZXI6OnB1c2hFbmNvZGVkRGF0YShjb25zdCBTaGFyZWRCdWZmZXImIGJ1
ZmZlcikKICAgICB0aHJlYWQtPmRldGFjaCgpOwogICAgIGJvb2wgaXNFT1MgPSBmYWxzZTsKICAg
ICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKKyAgICAgICAgTG9j
a2VyIGxvY2tlciB7IG1fc2FtcGxlTG9jayB9OwogICAgICAgICBpc0VPUyA9IG1fZW9zOwogICAg
IH0KICAgICB3aGlsZSAoIWlzRU9TKSB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKLSAgICAgICAgICAgIG1fc2FtcGxlQ29uZGl0aW9uLndh
aXQobV9zYW1wbGVNdXRleCk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9zYW1wbGVM
b2NrIH07CisgICAgICAgICAgICBtX3NhbXBsZUNvbmRpdGlvbi53YWl0KG1fc2FtcGxlTG9jayk7
CiAgICAgICAgICAgICBpc0VPUyA9IG1fZW9zOwogICAgICAgICAgICAgaWYgKG1fc2FtcGxlKSB7
CiAgICAgICAgICAgICAgICAgYXV0byogY2FwcyA9IGdzdF9zYW1wbGVfZ2V0X2NhcHMobV9zYW1w
bGUuZ2V0KCkpOwpAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZvaWQgSW1hZ2VEZWNvZGVyR1N0cmVhbWVy
OjpwdXNoRW5jb2RlZERhdGEoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgewotICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1f
aGFuZGxlck11dGV4KTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2hhbmRsZXJMb2Nr
IH07CiAgICAgICAgICAgICBtX2hhbmRsZXJDb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgICAg
IH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmgKaW5kZXggNTkxOGM4
NDdjZWRiMzJhYjMwODMwN2RmNjI4NTlhMGMxYzRjNDliZS4uZjI0NzczNDgxMGE1MTI0MzFiNzNk
MzU3NWFkZmNhODU5N2U4M2VjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIu
aApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJTYW1wbGVNYXAuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgpAQCAtMTE0LDkgKzExNiw5IEBAIHByaXZhdGU6CiAgICAgICAgIEdS
ZWZQdHI8R3N0RWxlbWVudD4gbV9kZWNvZGViaW47CiAgICAgICAgIFJ1bkxvb3AmIG1fcnVuTG9v
cDsKIAotICAgICAgICBDb25kaXRpb24gbV9tZXNzYWdlQ29uZGl0aW9uOwotICAgICAgICBMb2Nr
IG1fbWVzc2FnZUxvY2s7Ci0gICAgICAgIGJvb2wgbV9tZXNzYWdlRGlzcGF0Y2hlZCB7IGZhbHNl
IH07CisgICAgICAgIENoZWNrZWRDb25kaXRpb24gbV9tZXNzYWdlQ29uZGl0aW9uOworICAgICAg
ICBDaGVja2VkTG9jayBtX21lc3NhZ2VMb2NrOworICAgICAgICBib29sIG1fbWVzc2FnZURpc3Bh
dGNoZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX21lc3NhZ2VMb2NrKSB7IGZhbHNlIH07CiAgICAg
fTsKIAogICAgIHZvaWQgaGFuZGxlU2FtcGxlKEdSZWZQdHI8R3N0U2FtcGxlPiYmKTsKQEAgLTEz
MiwxMSArMTM0LDExIEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8SW50U2l6ZT4gbV9zaXplOwog
ICAgIFN0cmluZyBtX21pbWVUeXBlOwogICAgIFJlZlB0cjxJbWFnZURlY29kZXJHU3RyZWFtZXI6
OklubmVyRGVjb2Rlcj4gbV9pbm5lckRlY29kZXI7Ci0gICAgQ29uZGl0aW9uIG1fc2FtcGxlQ29u
ZGl0aW9uOwotICAgIExvY2sgbV9zYW1wbGVNdXRleDsKLSAgICBHUmVmUHRyPEdzdFNhbXBsZT4g
bV9zYW1wbGU7Ci0gICAgQ29uZGl0aW9uIG1faGFuZGxlckNvbmRpdGlvbjsKLSAgICBMb2NrIG1f
aGFuZGxlck11dGV4OworICAgIENoZWNrZWRDb25kaXRpb24gbV9zYW1wbGVDb25kaXRpb247Cisg
ICAgQ2hlY2tlZExvY2sgbV9zYW1wbGVMb2NrOworICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBtX3Nh
bXBsZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc2FtcGxlTG9jayk7CisgICAgQ2hlY2tlZENvbmRp
dGlvbiBtX2hhbmRsZXJDb25kaXRpb247CisgICAgQ2hlY2tlZExvY2sgbV9oYW5kbGVyTG9jazsK
IH07CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NYWluVGhyZWFkTm90aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NYWluVGhyZWFkTm90aWZpZXIuaAppbmRleCAzNTQ4OTg5
MjE2ZDU2NWQ5YmJiZGUwODUwYzE5MGRhZDA5NDlmMTE1Li5hODg1OTI4OWM4NTUzMmQ5ZTY2M2Rl
NDcwYjYxMzFiYzlkYjA4ZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWFpblRocmVhZE5vdGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01haW5UaHJlYWROb3RpZmllci5oCkBAIC02
OCwxOCArNjgsMTggQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEY+CiAgICAgdm9p
ZCBub3RpZnlBbmRXYWl0KFQgbm90aWZpY2F0aW9uVHlwZSwgRiYmIGNhbGxiYWNrRnVuY3RvcikK
ICAgICB7Ci0gICAgICAgIExvY2sgbXV0ZXg7Ci0gICAgICAgIENvbmRpdGlvbiBjb25kaXRpb247
CisgICAgICAgIENoZWNrZWRMb2NrIGxvY2s7CisgICAgICAgIENoZWNrZWRDb25kaXRpb24gY29u
ZGl0aW9uOwogCi0gICAgICAgIG5vdGlmeShub3RpZmljYXRpb25UeXBlLCBbZnVuY3RvciA9IFdU
Rk1vdmUoY2FsbGJhY2tGdW5jdG9yKSwgJmNvbmRpdGlvbiwgJm11dGV4XSB7CisgICAgICAgIG5v
dGlmeShub3RpZmljYXRpb25UeXBlLCBbZnVuY3RvciA9IFdURk1vdmUoY2FsbGJhY2tGdW5jdG9y
KSwgJmNvbmRpdGlvbiwgJmxvY2tdIHsKICAgICAgICAgICAgIGZ1bmN0b3IoKTsKLSAgICAgICAg
ICAgIExvY2tIb2xkZXIgaG9sZGVyKG11dGV4KTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBsb2NrIH07CiAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgICAgIH0p
OwogCiAgICAgICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgICAgIExvY2tIb2xk
ZXIgaG9sZGVyKG11dGV4KTsKLSAgICAgICAgICAgIGNvbmRpdGlvbi53YWl0KG11dGV4KTsKKyAg
ICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBsb2NrIH07CisgICAgICAgICAgICBjb25kaXRpb24u
d2FpdChsb2NrKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAwN2IzZDlmYmU4MDRjNGY4MDEwMDU1MWFl
ZjAxMjM2MmFlMjM4MGVmLi5lMjFkNTQzNTc5NWM0MDBlNTJkNzc0MDk0NDE0OTcwNmZiMmQyMzE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApA
QCAtMjUyLDcgKzI1Miw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcigpCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAg
IHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fY2RtQXR0YWNobWVudE11dGV4KTsKKyAgICAg
ICAgTG9ja2VyIGNkbUF0dGFjaG1lbnRMb2NrZXIgeyBtX2NkbUF0dGFjaG1lbnRMb2NrIH07CiAg
ICAgICAgIG1fY2RtQXR0YWNobWVudENvbmRpdGlvbi5ub3RpZnlBbGwoKTsKICAgICB9CiAjZW5k
aWYKQEAgLTI5MjEsNyArMjkyMSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpwdXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpCiAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9CiAg
ICAgICAgIFt0aGlzLCBpbnRlcm5hbENvbXBvc2l0aW5nT3BlcmF0aW9uXShUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAgICAgICAgewotICAgICAgICAgICAgTG9ja0hv
bGRlciBob2xkZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBw
cm94eS5sb2NrKCkgfTsKIAogICAgICAgICAgICAgaWYgKCFwcm94eS5pc0FjdGl2ZSgpKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTI5MzksNyArMjkzOSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpwdXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpCiAgICAgYXV0byBw
cm94eU9wZXJhdGlvbiA9CiAgICAgICAgIFt0aGlzLCBpbnRlcm5hbENvbXBvc2l0aW5nT3BlcmF0
aW9uXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAgICAgICAgewot
ICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBwcm94eS5sb2NrKCkgfTsKIAogICAgICAgICAgICAgaWYgKCFwcm94
eS5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTI5NjQsNyArMjk2NCw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyZXBhaW50KCkKIAogICAgIG1f
cGxheWVyLT5yZXBhaW50KCk7CiAKLSAgICBMb2NrSG9sZGVyIGxvY2sobV9kcmF3TXV0ZXgpOwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX2RyYXdMb2NrIH07CiAgICAgbV9kcmF3Q29uZGl0aW9uLm5v
dGlmeU9uZSgpOwogfQogCkBAIC0zMTAzLDE3ICszMTAzLDE3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjp0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqIHNhbXBsZSkKICAgICB9
CiAKICAgICBpZiAoIW1fY2FuUmVuZGVyaW5nQmVBY2NlbGVyYXRlZCkgewotICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2RyYXdNdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2Ry
YXdMb2NrIH07CiAgICAgICAgIGlmIChtX2lzQmVpbmdEZXN0cm95ZWQpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIG1fZHJhd1RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwotICAgICAgICBt
X2RyYXdDb25kaXRpb24ud2FpdChtX2RyYXdNdXRleCk7CisgICAgICAgIG1fZHJhd0NvbmRpdGlv
bi53YWl0KG1fZHJhd0xvY2spOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKQogICAgIGlmIChtX2lzVXNpbmdGYWxsYmFja1ZpZGVvU2luaykgewot
ICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9kcmF3TXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgbV9kcmF3TG9jayB9OwogICAgICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0KICAgICAg
ICAgICAgIFt0aGlzXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAg
ICAgICAgICAgIHsKQEAgLTMxMjcsNyArMzEyNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjp0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqIHNhbXBsZSkKICAgICAgICAgICAg
IHJldHVybjsKICNlbmRpZgogICAgICAgICBtX2RyYXdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsK
LSAgICAgICAgbV9kcmF3Q29uZGl0aW9uLndhaXQobV9kcmF3TXV0ZXgpOworICAgICAgICBtX2Ry
YXdDb25kaXRpb24ud2FpdChtX2RyYXdMb2NrKTsKICAgICB9IGVsc2UKICAgICAgICAgcHVzaFRl
eHR1cmVUb0NvbXBvc2l0b3IoKTsKICNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCkBA
IC0zMTQ5LDcgKzMxNDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2Fu
Y2VsUmVwYWludChib29sIGRlc3Ryb3lpbmcpCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBhbHNv
IHVzZWQgd2hlbiBkZXN0cm95aW5nIHRoZSBwbGF5ZXIgKGRlc3Ryb3lpbmcgcGFyYW1ldGVyIGlz
IHRydWUpLCB0byByZWxlYXNlIHRoZSBnc3RyZWFtZXIgdGhyZWFkIGZyb20KICAgICAvLyBtX2Ry
YXdDb25kaXRpb24gYW5kIHRvIGVuc3VyZSB0aGF0IG5ldyB0cmlnZ2VyUmVwYWludCBjYWxscyB3
b24ndCB3YWl0IG9uIG1fZHJhd0NvbmRpdGlvbi4KICAgICBpZiAoIW1fY2FuUmVuZGVyaW5nQmVB
Y2NlbGVyYXRlZCkgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RyYXdNdXRleCk7Cisg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2RyYXdMb2NrIH07CiAgICAgICAgIG1fZHJhd1RpbWVy
LnN0b3AoKTsKICAgICAgICAgbV9pc0JlaW5nRGVzdHJveWVkID0gZGVzdHJveWluZzsKICAgICAg
ICAgbV9kcmF3Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwpAQCAtMzQwNyw3ICszNDA3LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnB1c2hOZXh0SG9sZVB1bmNoQnVmZmVyKCkK
ICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0KICAgICAgICAgW3RoaXNdKFRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyUHJveHkmIHByb3h5KQogICAgICAgICB7Ci0gICAgICAgICAgICBMb2NrSG9s
ZGVyIGhvbGRlcihwcm94eS5sb2NrKCkpOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHBy
b3h5LmxvY2soKSB9OwogICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyQnVmZmVyPiBsYXllckJ1ZmZlciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXI+KDAsIG1fc2l6ZSwgVGV4dHVyZU1hcHBlckdMOjpTaG91bGRO
b3RCbGVuZCwgR0xfRE9OVF9DQVJFKTsKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHU3Ry
ZWFtZXJIb2xlUHVuY2hDbGllbnQ+IGhvbGVQdW5jaENsaWVudCA9IG1ha2VVbmlxdWU8R1N0cmVh
bWVySG9sZVB1bmNoQ2xpZW50PihtX3ZpZGVvU2luay5nZXQoKSk7CiAgICAgICAgICAgICBsYXll
ckJ1ZmZlci0+c2V0SG9sZVB1bmNoQ2xpZW50KFdURk1vdmUoaG9sZVB1bmNoQ2xpZW50KSk7CkBA
IC0zNTc2LDggKzM1NzYsOSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2Fp
dEZvckNETUF0dGFjaG1lbnQoKQogCiAgICAgYm9vbCBkaWRDRE1BdHRhY2ggPSBmYWxzZTsKICAg
ICB7Ci0gICAgICAgIGF1dG8gY2RtQXR0YWNobWVudExvY2tlciA9IGhvbGRMb2NrKG1fY2RtQXR0
YWNobWVudE11dGV4KTsKLSAgICAgICAgZGlkQ0RNQXR0YWNoID0gbV9jZG1BdHRhY2htZW50Q29u
ZGl0aW9uLndhaXRGb3IobV9jZG1BdHRhY2htZW50TXV0ZXgsIDRfcywgW3RoaXNdKCkgeworICAg
ICAgICBMb2NrZXIgY2RtQXR0YWNobWVudExvY2tlciB7IG1fY2RtQXR0YWNobWVudExvY2sgfTsK
KyAgICAgICAgZGlkQ0RNQXR0YWNoID0gbV9jZG1BdHRhY2htZW50Q29uZGl0aW9uLndhaXRGb3Io
bV9jZG1BdHRhY2htZW50TG9jaywgNF9zLCBbdGhpc10oKSB7CisgICAgICAgICAgICBhc3NlcnRJ
c0hlbGQobV9jZG1BdHRhY2htZW50TG9jayk7CiAgICAgICAgICAgICByZXR1cm4gaXNDRE1BdHRh
Y2hlZCgpOwogICAgICAgICB9KTsKICAgICB9CkBAIC0zNjI0LDcgKzM2MjUsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5j
ZSYgaW5zdGFuY2UpCiAKICAgICBHU1RfREVCVUdfT0JKRUNUKG1fcGlwZWxpbmUuZ2V0KCksICJD
RE0gcHJveHkgaW5zdGFuY2UgJXAgZGlzcGF0Y2hlZCBhcyBjb250ZXh0IiwgbV9jZG1JbnN0YW5j
ZS0+cHJveHkoKS5nZXQoKSk7CiAKLSAgICBMb2NrSG9sZGVyIGxvY2sobV9jZG1BdHRhY2htZW50
TXV0ZXgpOworICAgIExvY2tlciBjZG1BdHRhY2htZW50TG9ja2VyIHsgbV9jZG1BdHRhY2htZW50
TG9jayB9OwogICAgIC8vIFdlIG11c3Qgbm90aWZ5IGFsbCB3YWl0ZXJzLCBzaW5jZSBzZXZlcmFs
IGRlbXV4ZXJzIGNhbiBiZSBzaW11bHRhbmVvdXNseSB3YWl0aW5nIGZvciBhIENETS4KICAgICBt
X2NkbUF0dGFjaG1lbnRDb25kaXRpb24ubm90aWZ5QWxsKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggMDIxZmI4MjI3NTE1MzU3OGE5YTU2
NmYxN2QzN2FjNTM5MTFkNjZkNC4uMTEzNTYyNmRhMTIxNmY4Yzg0ODE4ZTUzOGRlMzhiYWNjMzVi
ZjIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApA
QCAtMzgsNyArMzgsOCBAQAogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDxnc3QvcGJ1
dGlscy9pbnN0YWxsLXBsdWdpbnMuaD4KICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgotI2luY2x1
ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgor
I2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBA
IC0zNjMsNyArMzY0LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc1VzaW5nRmFsbGJhY2tW
aWRlb1NpbmsgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5SZW5kZXJpbmdCZUFjY2VsZXJhdGVk
IHsgZmFsc2UgfTsKIAotICAgIGJvb2wgbV9pc0JlaW5nRGVzdHJveWVkIHsgZmFsc2UgfTsKKyAg
ICBib29sIG1faXNCZWluZ0Rlc3Ryb3llZCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fZHJhd0xvY2sp
IHsgZmFsc2UgfTsKIAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcj4gbV92aWRlb1RleHR1cmVDb3BpZXI7CkBAIC0z
NzUsOCArMzc2LDggQEAgcHJvdGVjdGVkOgogICAgIEltYWdlT3JpZW50YXRpb24gbV92aWRlb1Nv
dXJjZU9yaWVudGF0aW9uOwogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICBMb2Nr
IG1fY2RtQXR0YWNobWVudE11dGV4OwotICAgIENvbmRpdGlvbiBtX2NkbUF0dGFjaG1lbnRDb25k
aXRpb247CisgICAgQ2hlY2tlZExvY2sgbV9jZG1BdHRhY2htZW50TG9jazsKKyAgICBDaGVja2Vk
Q29uZGl0aW9uIG1fY2RtQXR0YWNobWVudENvbmRpdGlvbjsKICAgICBSZWZQdHI8Q0RNSW5zdGFu
Y2VQcm94eT4gbV9jZG1JbnN0YW5jZTsKIAogICAgIExvY2sgbV9wcm90ZWN0aW9uTXV0ZXg7IC8v
IEd1YXJkcyBhY2Nlc3MgdG8gbV9oYW5kbGVkUHJvdGVjdGlvbkV2ZW50cy4KQEAgLTQ3NCw5ICs0
NzUsOSBAQCBwcml2YXRlOgogICAgIG11dGFibGUgTWVkaWFUaW1lIG1fbWF4VGltZUxvYWRlZEF0
TGFzdERpZExvYWRpbmdQcm9ncmVzczsKICAgICBib29sIG1faGFzVmlkZW8geyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9oYXNBdWRpbyB7IGZhbHNlIH07Ci0gICAgQ29uZGl0aW9uIG1fZHJhd0NvbmRp
dGlvbjsKLSAgICBMb2NrIG1fZHJhd011dGV4OwotICAgIFJ1bkxvb3A6OlRpbWVyPE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcj4gbV9kcmF3VGltZXI7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBt
X2RyYXdDb25kaXRpb247CisgICAgQ2hlY2tlZExvY2sgbV9kcmF3TG9jazsKKyAgICBSdW5Mb29w
OjpUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+IG1fZHJhd1RpbWVyIFdURl9HVUFS
REVEX0JZX0xPQ0sobV9kcmF3TG9jayk7CiAgICAgUnVuTG9vcDo6VGltZXI8TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyPiBtX3JlYWR5VGltZXJIYW5kbGVyOwogI2lmIFVTRShURVhUVVJFX01B
UFBFUl9HTCkKICNpZiBVU0UoTklDT1NJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2hvbGVwdW5jaC9NZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2guY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaG9sZXB1bmNoL01lZGlhUGxheWVy
UHJpdmF0ZUhvbGVQdW5jaC5jcHAKaW5kZXggNTZjOGI5MmQ5NmRjZWM4ZTBmNjk1MmVmMWI5MGY3
Y2RhMmY3NmU3NC4uOTAxZDU3ZWZkNmY0MTM5YTlkM2EyYzhjMTFiY2NlY2FiYmMxMGMwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaG9sZXB1bmNoL01lZGlh
UGxheWVyUHJpdmF0ZUhvbGVQdW5jaC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaG9sZXB1bmNoL01lZGlhUGxheWVyUHJpdmF0ZUhvbGVQdW5jaC5jcHAKQEAgLTc1
LDcgKzc1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2g6OnB1c2hOZXh0SG9s
ZVB1bmNoQnVmZmVyKCkKICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0KICAgICAgICAgW3RoaXNd
KFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkmIHByb3h5KQogICAgICAgICB7Ci0gICAg
ICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihwcm94eS5sb2NrKCkpOworICAgICAgICAgICAgTG9j
a2VyIGxvY2tlciB7IHByb3h5LmxvY2soKSB9OwogICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPiBsYXllckJ1ZmZlciA9IG1ha2VVbmlx
dWU8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+KDAsIG1fc2l6ZSwgVGV4dHVyZU1h
cHBlckdMOjpTaG91bGROb3RCbGVuZCwgR0xfRE9OVF9DQVJFKTsKICAgICAgICAgICAgIHByb3h5
LnB1c2hOZXh0QnVmZmVyKFdURk1vdmUobGF5ZXJCdWZmZXIpKTsKICAgICAgICAgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYUlt
YWdlQnVmZmVyUGlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwCmluZGV4IDlmMTEyNGZlYTcwNzY2ZTZlMWM2
NGJkYjVjN2M2M2IwYWU5YTQ1OTQuLjg2MDUzYTU3YzkwMWMzOTM1OTE2ZmMwOTIxNjVkZmQ0Y2Zl
ZGEzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvTmljb3NpYUltYWdlQnVmZmVyUGlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcApAQCAtOTUsNyAr
OTUsNyBAQCB2b2lkIE5pY29zaWFJbWFnZUJ1ZmZlclBpcGVTb3VyY2U6OmhhbmRsZShSZWZQdHI8
SW1hZ2VCdWZmZXI+JiYgYnVmZmVyKQogICAgICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0gW3Ro
aXNdIChUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICByZXR1cm4gcHJveHkuc2NoZWR1bGVVcGRhdGVPbkNvbXBvc2l0b3JUaHJlYWQo
W3RoaXNdICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGF1dG8mIHByb3h5ID0gZG93bmNh
c3Q8Tmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw+KG1fbmljb3NpYUxheWVy
LT5pbXBsKCkpLnByb3h5KCk7Ci0gICAgICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJv
eHkubG9jaygpKTsKKyAgICAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJveHkubG9jaygp
IH07CiAKICAgICAgICAgICAgICAgICBpZiAoIXByb3h5LmlzQWN0aXZlKCkpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAK
aW5kZXggYTQ0NjBmOTA2MzA3NDdhOGY4MzcyYWEwOTg0OGU0OTZlNmI1NDEzOS4uYmY4Y2ZkNDJl
NGJhZmUwODI5NmQ5NDlmZGU0NjZlNjBlYjQ2NjlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmlj
b3NpYUdDR0xMYXllci5jcHAKQEAgLTEwNSwxMCArMTA1LDEwIEBAIHZvaWQgR0NHTExheWVyOjpz
d2FwQnVmZmVyc0lmTmVlZGVkKCkKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBsYXllckJ1
ZmZlci0+dGV4dHVyZUdMKCkuc2V0UGVuZGluZ0NvbnRlbnRzKFdURk1vdmUoaW1hZ2UpKTsKIAot
ICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihwcm94eS5sb2NrKCkpOworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgcHJveHkubG9jaygpIH07CiAgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKFdU
Rk1vdmUobGF5ZXJCdWZmZXIpKTsKICNlbHNlCi0gICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKHBy
b3h5LmxvY2soKSk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcm94eS5sb2NrKCkgfTsKICAg
ICAgICAgcHJveHkucHVzaE5leHRCdWZmZXIobWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllckJ1ZmZlcj4obV9jb250ZXh0Lm1fY29tcG9zaXRvclRleHR1cmUsIHRleHR1cmVTaXpl
LCBmbGFncywgbV9jb250ZXh0Lm1faW50ZXJuYWxDb2xvckZvcm1hdCkpOwogI2VuZGlmCiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwCmlu
ZGV4IGUyODcxZjc5NTYyYzViMDU1MDMyYmEwMWMxMzQ3N2IwNGE0Mzk1MWIuLjA0MjIzZjIwNjM0
MWNmNTU1NDY5Zjk1YWJlMWY3MzEwMzdjOTJjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSgp
CiAKIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6On5UZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllclByb3h5KCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgIExv
Y2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBpZiAobV90YXJnZXRMYXllcikKICAgICAgICAg
bV90YXJnZXRMYXllci0+c2V0Q29udGVudHNMYXllcihudWxscHRyKTsKIH0KQEAgLTY3LDcgKzY3
LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjphY3RpdmF0ZU9uQ29t
cG9zaXRpbmdUaHJlYWQoQ29tcG9zaXRvciogY28KICAgICBBU1NFUlQodGFyZ2V0TGF5ZXIpOwog
ICAgIEZ1bmN0aW9uPHZvaWQoKT4gdXBkYXRlRnVuY3Rpb247CiAgICAgewotICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07
CiAgICAgICAgIG1fY29tcG9zaXRvciA9IGNvbXBvc2l0b3I7CiAgICAgICAgIG1fdGFyZ2V0TGF5
ZXIgPSB0YXJnZXRMYXllcjsKICAgICAgICAgaWYgKG1fdGFyZ2V0TGF5ZXIgJiYgbV9jdXJyZW50
QnVmZmVyKQpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
UHJveHk6OmludmFsaWRhdGUoKQogICAgIEFTU0VSVChtX2NvbXBvc2l0b3JUaHJlYWQgPT0gJlRo
cmVhZDo6Y3VycmVudCgpKTsKICAgICBGdW5jdGlvbjx2b2lkKCk+IHVwZGF0ZUZ1bmN0aW9uOwog
ICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBtX2NvbXBvc2l0b3IgPSBudWxscHRyOwogICAg
ICAgICBtX3RhcmdldExheWVyID0gbnVsbHB0cjsKIApAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQg
VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6c2NoZWR1bGVSZWxlYXNlVW51c2VkQnVm
ZmVycygpCiAKIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6cmVsZWFzZVVu
dXNlZEJ1ZmZlcnNUaW1lckZpcmVkKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2sp
OworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBpZiAobV91c2VkQnVmZmVycy5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6cmVsZWFzZVVudXNlZEJ1ZmZlcnNUaW1lckZp
cmVkKCkKIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6c3dhcEJ1ZmZlcigp
CiB7CiAgICAgQVNTRVJUKG1fY29tcG9zaXRvclRocmVhZCA9PSAmVGhyZWFkOjpjdXJyZW50KCkp
OwotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1f
bG9jayB9OwogICAgIGlmICghbV90YXJnZXRMYXllciB8fCAhbV9wZW5kaW5nQnVmZmVyKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTIxOCwxMSArMjE4LDExIEBAIHZvaWQgVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJl
KGJvCiAKICAgICBtX2NvbXBvc2l0b3JUaHJlYWRVcGRhdGVGdW5jdGlvbiA9CiAgICAgICAgIFt0
aGlzLCBzaG91bGRXYWl0XSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2sp
OworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogCiAgICAgICAgICAgICBh
dXRvIG1heWJlTm90aWZ5U3luY2hyb25vdXNPcGVyYXRpb24gPSBXVEY6Om1ha2VTY29wZUV4aXQo
W3RoaXMsIHNob3VsZFdhaXRdKCkgewogICAgICAgICAgICAgICAgIGlmIChzaG91bGRXYWl0KSB7
Ci0gICAgICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKG1fd2FzQnVmZmVyRHJvcHBl
ZExvY2spOworICAgICAgICAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV93YXNCdWZmZXJE
cm9wcGVkTG9jayB9OwogICAgICAgICAgICAgICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWQgPSB0
cnVlOwogICAgICAgICAgICAgICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWRDb25kaXRpb24ubm90
aWZ5QWxsKCk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMjQxLDE0ICsyNDEsMTUgQEAgdm9pZCBU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpkcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJl
c2VydmluZ1RleHR1cmUoYm8KICAgICAgICAgfTsKIAogICAgIGlmIChzaG91bGRXYWl0KSB7Ci0g
ICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKG1fd2FzQnVmZmVyRHJvcHBlZExvY2spOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV93YXNCdWZmZXJEcm9wcGVkTG9jayB9OwogICAgICAgICBtX3dh
c0J1ZmZlckRyb3BwZWQgPSBmYWxzZTsKICAgICB9CiAKICAgICBtX2NvbXBvc2l0b3JUaHJlYWRV
cGRhdGVUaW1lci0+c3RhcnRPbmVTaG90KDBfcyk7CiAgICAgaWYgKHNob3VsZFdhaXQpIHsKLSAg
ICAgICAgTG9ja0hvbGRlciBob2xkZXIobV93YXNCdWZmZXJEcm9wcGVkTG9jayk7CisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX3dhc0J1ZmZlckRyb3BwZWRMb2NrIH07CiAgICAgICAgIG1fd2Fz
QnVmZmVyRHJvcHBlZENvbmRpdGlvbi53YWl0KG1fd2FzQnVmZmVyRHJvcHBlZExvY2ssIFt0aGlz
XSB7CisgICAgICAgICAgICBhc3NlcnRJc0hlbGQobV93YXNCdWZmZXJEcm9wcGVkTG9jayk7CiAg
ICAgICAgICAgICByZXR1cm4gbV93YXNCdWZmZXJEcm9wcGVkOwogICAgICAgICB9KTsKICAgICB9
CkBAIC0yNTYsNyArMjU3LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5
Ojpkcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJlc2VydmluZ1RleHR1cmUoYm8KIAogYm9vbCBUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjpzY2hlZHVsZVVwZGF0ZU9uQ29tcG9zaXRvclRo
cmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgdXBkYXRlRnVuY3Rpb24pCiB7Ci0gICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgbV9j
b21wb3NpdG9yVGhyZWFkVXBkYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKHVwZGF0ZUZ1bmN0aW9uKTsK
IAogICAgIGlmICghbV9jb21wb3NpdG9yVGhyZWFkVXBkYXRlVGltZXIpCkBAIC0yNzAsNyArMjcx
LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpjb21wb3NpdG9yVGhy
ZWFkVXBkYXRlVGltZXJGaXJlZCgpCiB7CiAgICAgRnVuY3Rpb248dm9pZCgpPiB1cGRhdGVGdW5j
dGlvbjsKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICAgICAgaWYgKCFtX2NvbXBvc2l0b3JUaHJl
YWRVcGRhdGVGdW5jdGlvbikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdXBkYXRlRnVu
Y3Rpb24gPSBXVEZNb3ZlKG1fY29tcG9zaXRvclRocmVhZFVwZGF0ZUZ1bmN0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyUGxhdGZvcm1MYXllclByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oCmluZGV4IGY4MTRlYThl
NGJmYzNhZWVjOTY1MGFjNmNmYWU2M2Q2OWQ5YTc0NTYuLmMwODkxNTAxMDdkNjkwMjQwYWMwY2Iy
NWEwNDNkNGE1NzhkZTE5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyUHJveHkuaApAQCAtMjgsOSArMjgsOSBAQAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQ
SElDUykKIAogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJHTEhlYWRlcnMuaCIKLSNpbmNsdWRlIDx3
dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNs
dWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjAs
NyArNjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gVG8gYXZvaWQgbXVsdGlwbGUgbG9jay9yZWxlYXNl
IHNpdHVhdGlvbiB0byB1cGRhdGUgYSBzaW5nbGUgZnJhbWUsCiAgICAgLy8gdGhlIGltcGxlbWVu
dGF0aW9uIG9mIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHlQcm92aWRlciBzaG91bGQK
ICAgICAvLyBhcXVpcmUgLyByZWxlYXNlIHRoZSBsb2NrIGV4cGxpY2l0bHkgdG8gdXNlIGJlbG93
IG1ldGhvZHMuCi0gICAgTG9jayYgbG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQorICAgIENoZWNr
ZWRMb2NrJiBsb2NrKCkgV1RGX1JFVFVSTlNfTE9DSyhtX2xvY2spIHsgcmV0dXJuIG1fbG9jazsg
fQogICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4g
Z2V0QXZhaWxhYmxlQnVmZmVyKGNvbnN0IEludFNpemUmLCBHTGludCBpbnRlcm5hbEZvcm1hdCk7
CiAgICAgdm9pZCBwdXNoTmV4dEJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJCdWZmZXI+JiYpOwogICAgIGJvb2wgaXNBY3RpdmUoKTsKQEAgLTg0LDExICs4
NCwxMSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllckJ1ZmZlcj4gbV9jdXJyZW50QnVmZmVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4gbV9wZW5kaW5nQnVmZmVyOwogCi0gICAgTG9j
ayBtX2xvY2s7CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOwogCi0gICAgTG9jayBtX3dhc0J1ZmZl
ckRyb3BwZWRMb2NrOwotICAgIENvbmRpdGlvbiBtX3dhc0J1ZmZlckRyb3BwZWRDb25kaXRpb247
Ci0gICAgYm9vbCBtX3dhc0J1ZmZlckRyb3BwZWQgeyBmYWxzZSB9OworICAgIENoZWNrZWRMb2Nr
IG1fd2FzQnVmZmVyRHJvcHBlZExvY2s7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBtX3dhc0J1ZmZl
ckRyb3BwZWRDb25kaXRpb247CisgICAgYm9vbCBtX3dhc0J1ZmZlckRyb3BwZWQgV1RGX0dVQVJE
RURfQllfTE9DSyhtX3dhc0J1ZmZlckRyb3BwZWRMb2NrKSB7IGZhbHNlIH07CiAKICAgICBWZWN0
b3I8c3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPj4gbV91
c2VkQnVmZmVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcDo6VGltZXI8VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eT4+IG1fcmVsZWFzZVVudXNlZEJ1ZmZlcnNUaW1lcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxv
b3AuY3BwCmluZGV4IDgyOGNiMTA3NWE2MGUzY2EwYWE4YzNkMzM4ZWZhMjNjOWUxYTRjYWIuLmIy
YTRmZGQ2ZmZjNmZlZTMxMzUyNmJmYWY0ZjliMmRmNTkxZjlmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0Nv
bXBvc2l0aW5nUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcApAQCAt
ODUsMTMgKzg1LDEzIEBAIHZvaWQgQ29tcG9zaXRpbmdSdW5Mb29wOjpwZXJmb3JtVGFzayhGdW5j
dGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogdm9pZCBDb21wb3NpdGluZ1J1bkxvb3A6OnBlcmZv
cm1UYXNrU3luYyhGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9kaXNwYXRjaFN5bmND
b25kaXRpb25NdXRleCk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fZGlzcGF0Y2hTeW5jQ29uZGl0
aW9uTG9jayB9OwogICAgIG1fcnVuTG9vcC0+ZGlzcGF0Y2goW3RoaXMsIGZ1bmN0aW9uID0gV1RG
TW92ZShmdW5jdGlvbildIHsKICAgICAgICAgZnVuY3Rpb24oKTsKLSAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9kaXNwYXRjaFN5bmNDb25kaXRpb25NdXRleCk7CisgICAgICAgIExvY2tlciBs
b2NrZXIgeyBtX2Rpc3BhdGNoU3luY0NvbmRpdGlvbkxvY2sgfTsKICAgICAgICAgbV9kaXNwYXRj
aFN5bmNDb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfSk7Ci0gICAgbV9kaXNwYXRjaFN5bmND
b25kaXRpb24ud2FpdChtX2Rpc3BhdGNoU3luY0NvbmRpdGlvbk11dGV4KTsKKyAgICBtX2Rpc3Bh
dGNoU3luY0NvbmRpdGlvbi53YWl0KG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uTG9jayk7CiB9CiAK
IHZvaWQgQ29tcG9zaXRpbmdSdW5Mb29wOjpzdXNwZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKaW5kZXggNTk0MDBjYjYz
MDRjNDI5ZDE0ZjNhMWNmZDA4ZGM2ZjAwNzk0OWY0Zi4uNzdjNDY3YmEyZmMyZWQ2MTMzNTRmM2U4
MWE3ZjQ3NTFhZTRhMGJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKQEAgLTI4LDcgKzI4LDggQEAKICNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCiAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgotI2luY2x1ZGUg
PHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2lu
Y2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAj
aW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CkBAIC03MCw4ICs3MSw4IEBAIHByaXZhdGU6CiAgICAgUnVuTG9vcCogbV9ydW5Mb29wIHsgbnVs
bHB0ciB9OwogICAgIFJ1bkxvb3A6OlRpbWVyPENvbXBvc2l0aW5nUnVuTG9vcD4gbV91cGRhdGVU
aW1lcjsKICAgICBGdW5jdGlvbjx2b2lkICgpPiBtX3VwZGF0ZUZ1bmN0aW9uOwotICAgIExvY2sg
bV9kaXNwYXRjaFN5bmNDb25kaXRpb25NdXRleDsKLSAgICBDb25kaXRpb24gbV9kaXNwYXRjaFN5
bmNDb25kaXRpb247CisgICAgQ2hlY2tlZExvY2sgbV9kaXNwYXRjaFN5bmNDb25kaXRpb25Mb2Nr
OworICAgIENoZWNrZWRDb25kaXRpb24gbV9kaXNwYXRjaFN5bmNDb25kaXRpb247CiAKICAgICBz
dHJ1Y3QgewogICAgICAgICBMb2NrIGxvY2s7Cg==
</data>
<flag name="commit-queue"
          id="450516"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429349</attachid>
            <date>2021-05-21 15:09:42 -0700</date>
            <delta_ts>2021-05-21 17:15:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226113-20210521150941.patch</filename>
            <type>text/plain</type>
            <size>50854</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI1MTM5YmMwOTQwNmY5MDYxZjU1Zjkx
ZTRiNjE3Mzc0NzM2NzQ2MTguLjc1ODRjNjk3MWE1YTNmNjhiNmM2MWExYWM1ZDQwYThjZjUyYTNh
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBsYWNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTEz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIENo
ZWNrZWRDb25kaXRpb24gaW4gbW9yZSBwbGFjZXMgdG8gYmVuZWZpdCBmcm9tIENsYW5nIFRocmVh
ZCBTYWZldHkKKyAgICAgICAgQW5hbHlzaXMuCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5oOgor
ICAgICAgICAqIHd0Zi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmg6CisgICAgICAgICogd3RmL1dU
RlNlbWFwaG9yZS5oOgorICAgICAgICAqIHd0Zi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoV1RG
OjpXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseSk6CisgICAgICAgICogd3RmL2dlbmVyaWMvUnVu
TG9vcEdlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp+UnVuTG9vcCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OnBvcHVsYXRlVGFza3MpOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpydW5JbXBsKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6Ondha2VVcFdpdGhMb2NrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVw
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c2NoZWR1bGUpOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpzY2hlZHVsZUFuZFdha2VVcFdpdGhMb2NrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjp+VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUgY29uc3QpOgorICAgICAg
ICAqIHd0Zi93aW4vUnVuTG9vcFdpbi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3Rh
cnQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAo
V1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlIGNvbnN0KToKKwogMjAyMS0wNS0y
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gVW5h
YmxlIHRvIHVwbG9hZCBmaWxlcyB0aGF0IGFyZSBzdG9yZWQgaW4gdGhlIGNsb3VkICh3aXRob3V0
IGEgbG9jYWwgY29weSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkZDRiNTU4ODVmNWE5Y2Y0YjZiNGJjNzczZmM4
NTU5ZGQxZmE1ZDU0Li5iOWJjYmFjNDA5Yjc5MTg4YTMyMGRlZmM0YzU0OTY5ZGI2ZDdiOWNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBs
YWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2
MTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IENoZWNrZWRDb25kaXRpb24gaW4gbW9yZSBwbGFjZXMgdG8gYmVuZWZpdCBmcm9tIENsYW5nIFRo
cmVhZCBTYWZldHkKKyAgICAgICAgQW5hbHlzaXMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVGFzay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRhc2tT
eW5jaHJvbml6ZXI6OndhaXRGb3JUYXNrQ29tcGxldGlvbik6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OnRhc2tDb21wbGV0ZWQpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmg6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFz
ZVRhc2tTeW5jaHJvbml6ZXI6OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgICh3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckFuZFB1c2hGcmFtZXMpOgorICAgICAgICAo
d2ViS2l0V2ViQXVkaW9TcmNSZW5kZXJJdGVyYXRpb24pOgorICAgICAgICAod2ViS2l0V2ViQXVk
aW9TcmNDaGFuZ2VTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29k
ZXJHU3RyZWFtZXI6OnNldEhhc0VPUyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJH
U3RyZWFtZXI6Om5vdGlmeVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJH
U3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6aGFuZGxlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6cHJlcGFyZVBpcGVsaW5lKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckdTdHJlYW1lcjo6cHVzaEVuY29kZWREYXRh
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0
cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01haW5UaHJl
YWROb3RpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0Nv
bXBvc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpyZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6dHJpZ2dlclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpjYW5jZWxSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6cHVzaE5leHRIb2xlUHVuY2hCdWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp3YWl0Rm9yQ0RNQXR0YWNobWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3Rh
bmNlQXR0YWNoZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6V1RGX0dVQVJERURfQllfTE9DSyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvaG9sZXB1bmNoL01lZGlhUGxheWVyUHJpdmF0ZUhvbGVQdW5jaC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2g6OnB1c2hOZXh0SG9s
ZVB1bmNoQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29z
aWFJbWFnZUJ1ZmZlclBpcGUuY3BwOgorICAgICAgICAoTmljb3NpYTo6Tmljb3NpYUltYWdlQnVm
ZmVyUGlwZVNvdXJjZTo6aGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmNwcDoKKyAgICAgICAgKE5pY29zaWE6OkdDR0xM
YXllcjo6c3dhcEJ1ZmZlcnNJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6flRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eTo6YWN0aXZhdGVPbkNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6cmVsZWFzZVVudXNl
ZEJ1ZmZlcnNUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHk6OnN3YXBCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdU
ZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJv
eHk6OnNjaGVkdWxlVXBkYXRlT25Db21wb3NpdG9yVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmNvbXBvc2l0b3JUaHJlYWRVcGRhdGVU
aW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJQcm94eTo6V1RGX1JFVFVSTlNfTE9DSyk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjpXVEZfR1VBUkRFRF9CWV9MT0NLKToK
KwogMjAyMS0wNS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkb3B0IENoZWNrZWRMb2NrIGluIFNjcm9sbGluZ1RyZWUgYW5kIGZpeCB0aHJlYWRpbmcgYnVn
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9S
dW5Mb29wLmgKaW5kZXggYjg2MmZiYzMzNTg0YWI1ZGJjZjQ4MWJmMThmMmE0M2JlMmM3MjRkMS4u
ZTQzNmJmMjM5YWJjMjJmMTJlOGVkNDAzYjk5NWNmOGI4NmM1M2U4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAt
MjgsOCArMjgsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2lu
Y2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2Nr
Lmg+Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uRGlzcGF0Y2hl
ci5oPgpAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgUmVmPFJ1bkxvb3A+IG1f
cnVuTG9vcDsKIAogI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xPT1ApCi0gICAgICAgIGJvb2wgaXNB
Y3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdDsKKyAgICAgICAgYm9vbCBpc0FjdGl2
ZVdpdGhMb2NrKCkgY29uc3QgV1RGX1JFUVVJUkVTX0xPQ0sobV9ydW5Mb29wLT5tX2xvb3BMb2Nr
KTsKICAgICAgICAgdm9pZCB0aW1lckZpcmVkKCk7CiAgICAgICAgIE1vbm90b25pY1RpbWUgbV9u
ZXh0RmlyZURhdGU7CiAgICAgICAgIFNlY29uZHMgbV9pbnRlcnZhbDsKQEAgLTE1OSw4ICsxNTks
OCBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZyB7IGZhbHNlIH07CiAgICAg
ICAgIFNlY29uZHMgbV9pbnRlcnZhbCB7IDAgfTsKICNlbGlmIFVTRShHRU5FUklDX0VWRU5UX0xP
T1ApCi0gICAgICAgIGJvb2wgaXNBY3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdDsK
LSAgICAgICAgdm9pZCBzdG9wKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CisgICAgICAgIGJvb2wg
aXNBY3RpdmVXaXRoTG9jaygpIGNvbnN0IFdURl9SRVFVSVJFU19MT0NLKG1fcnVuTG9vcC0+bV9s
b29wTG9jayk7CisgICAgICAgIHZvaWQgc3RvcFdpdGhMb2NrKCkgV1RGX1JFUVVJUkVTX0xPQ0so
bV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKIAogICAgICAgICBjbGFzcyBTY2hlZHVsZWRUYXNrOwog
ICAgICAgICBSZWZQdHI8U2NoZWR1bGVkVGFzaz4gbV9zY2hlZHVsZWRUYXNrOwpAQCAtMjI4LDcg
KzIyOCw3IEBAIHByaXZhdGU6CiAgICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBt
ZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKICAgICBIV05EIG1fcnVuTG9v
cE1lc3NhZ2VXaW5kb3c7CiAKLSAgICBMb2NrIG1fbG9vcExvY2s7CisgICAgQ2hlY2tlZExvY2sg
bV9sb29wTG9jazsKICNlbGlmIFVTRShDT0NPQV9FVkVOVF9MT09QKQogICAgIHN0YXRpYyB2b2lk
IHBlcmZvcm1Xb3JrKHZvaWQqKTsKICAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wUmVmPiBtX3J1bkxv
b3A7CkBAIC0yNDMsOSArMjQzLDkgQEAgcHJpdmF0ZToKICAgICBXZWFrSGFzaFNldDxPYnNlcnZl
cj4gbV9vYnNlcnZlcnM7CiAjZWxpZiBVU0UoR0VORVJJQ19FVkVOVF9MT09QKQogICAgIHZvaWQg
c2NoZWR1bGUoUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJik7Ci0gICAgdm9pZCBzY2hl
ZHVsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+
JiYpOwotICAgIHZvaWQgd2FrZVVwKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0gICAgdm9pZCBz
Y2hlZHVsZUFuZFdha2VVcChjb25zdCBBYnN0cmFjdExvY2tlciYsIFJlZjxUaW1lckJhc2U6OlNj
aGVkdWxlZFRhc2s+JiYpOworICAgIHZvaWQgc2NoZWR1bGVXaXRoTG9jayhSZWY8VGltZXJCYXNl
OjpTY2hlZHVsZWRUYXNrPiYmKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2xvb3BMb2NrKTsKKyAgICB2
b2lkIHdha2VVcFdpdGhMb2NrKCkgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb29wTG9jayk7CisgICAg
dm9pZCBzY2hlZHVsZUFuZFdha2VVcFdpdGhMb2NrKFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRh
c2s+JiYpIFdURl9SRVFVSVJFU19MT0NLKG1fbG9vcExvY2spOwogCiAgICAgZW51bSBjbGFzcyBS
dW5Nb2RlIHsKICAgICAgICAgSXRlcmF0ZSwKQEAgLTI2MSw5ICsyNjEsOSBAQCBwcml2YXRlOgog
CiAgICAgZnJpZW5kIGNsYXNzIFRpbWVyQmFzZTsKIAotICAgIExvY2sgbV9sb29wTG9jazsKKyAg
ICBDaGVja2VkTG9jayBtX2xvb3BMb2NrOwogICAgIENvbmRpdGlvbiBtX3JlYWR5VG9SdW47Ci0g
ICAgQ29uZGl0aW9uIG1fc3RvcENvbmRpdGlvbjsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fc3Rv
cENvbmRpdGlvbjsKICAgICBWZWN0b3I8UmVmUHRyPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4+
IG1fc2NoZWR1bGVzOwogICAgIFZlY3RvcjxTdGF0dXMqPiBtX21haW5Mb29wczsKICAgICBib29s
IG1fc2h1dGRvd24geyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3luY2hy
b25pemVkRml4ZWRRdWV1ZS5oIGIvU291cmNlL1dURi93dGYvU3luY2hyb25pemVkRml4ZWRRdWV1
ZS5oCmluZGV4IDEwYWQ4NDZmZGE3MTdlYTU2NWQ0M2U3YTJjNTMyMTExZDVjNTk0ZjQuLmIzOTBk
ZTM5NGZkMmUyMzc0ZTU2NjQzMTMyMzk5YmU3MzU1MTY5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1N5bmNocm9uaXplZEZpeGVkUXVldWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TeW5j
aHJvbml6ZWRGaXhlZFF1ZXVlLmgKQEAgLTI1LDkgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBvcGVuKCkKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja0hvbGRlcihtX211
dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBpZiAobV9v
cGVuKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgY2xvc2UoKQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1f
bXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIGlmICgh
bV9vcGVuKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02NCwxNiArNjQsMTkgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc09wZW4oKQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9s
ZGVyKG1fbXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAg
IHJldHVybiBtX29wZW47CiAgICAgfQogCiAgICAgYm9vbCBlbnF1ZXVlKGNvbnN0IFQmIHZhbHVl
KQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1fbXV0ZXgpOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICAgICAgLy8gV2FpdCBmb3IgYW4gZW1w
dHkgcGxhY2UgdG8gYmUgYXZhaWxhYmxlIGluIHRoZSBxdWV1ZS4KLSAgICAgICAgbV9jb25kaXRp
b24ud2FpdChtX211dGV4LCBbdGhpc10oKSB7IHJldHVybiAhbV9vcGVuIHx8IG1fcXVldWUuc2l6
ZSgpIDwgQnVmZmVyU2l6ZTsgfSk7CisgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9sb2NrLCBb
dGhpc10geworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jayk7CisgICAgICAgICAgICBy
ZXR1cm4gIW1fb3BlbiB8fCBtX3F1ZXVlLnNpemUoKSA8IEJ1ZmZlclNpemU7CisgICAgICAgIH0p
OwogCiAgICAgICAgIC8vIFRoZSBxdWV1ZSBpcyBjbG9zaW5nLCBleGl0IGltbWVkaWF0ZWx5Lgog
ICAgICAgICBpZiAoIW1fb3BlbikKQEAgLTg5LDEwICs5MiwxMyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGRlcXVldWUoVCYgdmFsdWUpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tIb2xk
ZXIobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKIAogICAgICAg
ICAvLyBXYWl0IGZvciBhbiBpdGVtIHRvIGJlIGFkZGVkLgotICAgICAgICBtX2NvbmRpdGlvbi53
YWl0KG1fbXV0ZXgsIFt0aGlzXSgpIHsgcmV0dXJuICFtX29wZW4gfHwgbV9xdWV1ZS5zaXplKCk7
IH0pOworICAgICAgICBtX2NvbmRpdGlvbi53YWl0KG1fbG9jaywgW3RoaXNdIHsKKyAgICAgICAg
ICAgIGFzc2VydElzSGVsZChtX2xvY2spOworICAgICAgICAgICAgcmV0dXJuICFtX29wZW4gfHwg
bV9xdWV1ZS5zaXplKCk7CisgICAgICAgIH0pOwogCiAgICAgICAgIC8vIFRoZSBxdWV1ZSBpcyBj
bG9zaW5nLCBleGl0IGltbWVkaWF0ZWx5LgogICAgICAgICBpZiAoIW1fb3BlbikKQEAgLTExMywx
MSArMTE5LDExIEBAIHByaXZhdGU6CiAgICAgICAgIHN0YXRpY19hc3NlcnQoISgoQnVmZmVyU2l6
ZSAtIDEpICYgQnVmZmVyU2l6ZSksICJCdWZmZXJTaXplIG11c3QgYmUgcG93ZXIgb2YgMi4iKTsK
ICAgICB9CiAKLSAgICBMb2NrIG1fbXV0ZXg7Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwor
ICAgIENoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9u
OwogCi0gICAgYm9vbCBtX29wZW4geyB0cnVlIH07Ci0gICAgRGVxdWU8VCwgQnVmZmVyU2l6ZT4g
bV9xdWV1ZTsKKyAgICBib29sIG1fb3BlbiBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykgeyB0
cnVlIH07CisgICAgRGVxdWU8VCwgQnVmZmVyU2l6ZT4gbV9xdWV1ZSBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fbG9jayk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XVEZTZW1h
cGhvcmUuaCBiL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5oCmluZGV4IDhlYTViZWZmOWVm
NDgyZjZjZDY1OTEwYzUyYWM2NDFiNWJhMjJjNzUuLjVhOTgwZjZlNjQ2MmVkNTNlZGVmOWM2MTli
YTcyMDE2ZjY5MjE5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5oCkBAIC0yNSw4ICsyNSw4IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgotI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNw
YWNlIFdURiB7CkBAIC00MiwxOCArNDIsMTggQEAgcHVibGljOgogCiAgICAgdm9pZCBzaWduYWwo
KQogICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIG1fdmFsdWUrKzsKICAgICAgICAg
bV9jb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfQogCiAgICAgYm9vbCB3YWl0VW50aWwoY29u
c3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0KQogICAgIHsKLSAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwotICAgICAgICBib29sIHNhdGlzZmllZCA9IG1f
Y29uZGl0aW9uLndhaXRVbnRpbChtX2xvY2ssIHRpbWVvdXQsCi0gICAgICAgICAgICBbJl0gewot
ICAgICAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlOwotICAgICAgICAgICAgfSk7CisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKKyAgICAgICAgYm9vbCBzYXRpc2ZpZWQgPSBtX2Nv
bmRpdGlvbi53YWl0VW50aWwobV9sb2NrLCB0aW1lb3V0LCBbJl0geworICAgICAgICAgICAgYXNz
ZXJ0SXNIZWxkKG1fbG9jayk7CisgICAgICAgICAgICByZXR1cm4gbV92YWx1ZTsKKyAgICAgICAg
fSk7CiAgICAgICAgIGlmIChzYXRpc2ZpZWQpCiAgICAgICAgICAgICAtLW1fdmFsdWU7CiAgICAg
ICAgIHJldHVybiBzYXRpc2ZpZWQ7CkBAIC03MCw5ICs3MCw5IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgdW5zaWduZWQgbV92YWx1ZSB7IDAgfTsKLSAgICBMb2NrIG1fbG9jazsK
LSAgICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgdW5zaWduZWQgbV92YWx1ZSBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fbG9jaykgeyAwIH07CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAg
IENoZWNrZWRDb25kaXRpb24gbV9jb25kaXRpb247CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwCmlu
ZGV4IGRmN2QzN2E4ZWM2NDU1MmFlMDFjMmQ1OTBkMzVkZTAyZjU1MTE2NDUuLmNjYWQ1YmU4NzVm
NDA4YjAzOTI5ZjZiMTcxYzEzZTA4NDg4MDhjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1dvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcApAQCAtMjgs
MTAgKzI4LDEwIEBACiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogCiAjaW5jbHVkZSA8bXV0
ZXg+Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29u
ZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZD
b3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTEwNSw4ICsxMDUsNyBAQCB2b2lkIFdv
cmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBXVEY6OkZ1bmN0aW9u
PHZvaWQgKHNpemVfdCBpbgogCiAgICAgICAgIHZvaWQgZGlzcGF0Y2goY29uc3QgV1RGOjpGdW5j
dGlvbjx2b2lkICgpPiogZnVuY3Rpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xk
ZXIgaG9sZGVyKG1fbG9jayk7Ci0KKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sg
fTsKICAgICAgICAgICAgIG1fcXVldWUuYXBwZW5kKGZ1bmN0aW9uKTsKICAgICAgICAgICAgIG1f
Y29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgICAgICB9CkBAIC0xMTgsOSArMTE3LDkgQEAgdm9p
ZCBXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywgV1RGOjpGdW5j
dGlvbjx2b2lkIChzaXplX3QgaW4KICAgICAgICAgICAgICAgICBjb25zdCBXVEY6OkZ1bmN0aW9u
PHZvaWQgKCk+KiBmdW5jdGlvbjsKIAogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgTG9ja0hvbGRlciBob2xkZXIobV9sb2NrKTsKLQorICAgICAgICAgICAgICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgICAgICAgICAgICAgIG1fY29uZGl0aW9u
LndhaXQobV9sb2NrLCBbdGhpc10geworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0SXNI
ZWxkKG1fbG9jayk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIW1fcXVldWUuaXNF
bXB0eSgpOwogICAgICAgICAgICAgICAgICAgICB9KTsKIApAQCAtMTMxLDkgKzEzMCw5IEBAIHZv
aWQgV29ya1F1ZXVlOjpjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVu
Y3Rpb248dm9pZCAoc2l6ZV90IGluCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAg
ICBMb2NrIG1fbG9jazsKLSAgICAgICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotICAgICAgICBE
ZXF1ZTxjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+Kj4gbV9xdWV1ZTsKKyAgICAgICAgQ2hl
Y2tlZExvY2sgbV9sb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwor
ICAgICAgICBEZXF1ZTxjb25zdCBGdW5jdGlvbjx2b2lkKCk+Kj4gbV9xdWV1ZSBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fbG9jayk7CiAKICAgICAgICAgVmVjdG9yPFJlZjxUaHJlYWQ+PiBtX3dvcmtl
cnM7CiAgICAgfTsKQEAgLTE1MCwxMCArMTQ5LDEwIEBAIHZvaWQgV29ya1F1ZXVlOjpjb25jdXJy
ZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZCAoc2l6ZV90IGlu
CiAgICAgc3RkOjphdG9taWM8c2l6ZV90PiBjdXJyZW50SW5kZXgoMCk7CiAgICAgc3RkOjphdG9t
aWM8c2l6ZV90PiBhY3RpdmVUaHJlYWRzKHdvcmtlckNvdW50ICsgMSk7CiAKLSAgICBDb25kaXRp
b24gY29uZGl0aW9uOwotICAgIExvY2sgbG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIGNvbmRp
dGlvbjsKKyAgICBDaGVja2VkTG9jayBsb2NrOwogCi0gICAgV1RGOjpGdW5jdGlvbjx2b2lkICgp
PiBhcHBsaWVyID0gWyYsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIHsKKyAgICBGdW5j
dGlvbjx2b2lkICgpPiBhcHBsaWVyID0gWyYsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbild
IHsKICAgICAgICAgc2l6ZV90IGluZGV4OwogCiAgICAgICAgIC8vIENhbGwgdGhlIGZ1bmN0aW9u
IGZvciBhcyBsb25nIGFzIHRoZXJlIGFyZSBpdGVyYXRpb25zIGxlZnQuCkBAIC0xNjIsNyArMTYx
LDcgQEAgdm9pZCBXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywg
V1RGOjpGdW5jdGlvbjx2b2lkIChzaXplX3QgaW4KIAogICAgICAgICAvLyBJZiB0aGVyZSBhcmUg
bm8gYWN0aXZlIHRocmVhZHMgbGVmdCwgc2lnbmFsIHRoZSBjYWxsZXIuCiAgICAgICAgIGlmICgh
LS1hY3RpdmVUaHJlYWRzKSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihsb2NrKTsK
KyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBsb2NrIH07CiAgICAgICAgICAgICBjb25kaXRp
b24ubm90aWZ5T25lKCk7CiAgICAgICAgIH0KICAgICB9OwpAQCAtMTcxLDcgKzE3MCw3IEBAIHZv
aWQgV29ya1F1ZXVlOjpjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVu
Y3Rpb248dm9pZCAoc2l6ZV90IGluCiAgICAgICAgIHRocmVhZFBvb2wtPmRpc3BhdGNoKCZhcHBs
aWVyKTsKICAgICBhcHBsaWVyKCk7CiAKLSAgICBMb2NrSG9sZGVyIGhvbGRlcihsb2NrKTsKKyAg
ICBMb2NrZXIgbG9ja2VyIHsgbG9jayB9OwogICAgIGNvbmRpdGlvbi53YWl0KGxvY2ssIFsmXSB7
IHJldHVybiAhYWN0aXZlVGhyZWFkczsgfSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvZ2Vu
ZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKaW5kZXggMTJjOGE5ZDMxZTQ2MzU2OTc5OTQ2NWZmNzE2
ODBlZjBjOGEwNWU1OC4uODQ4MWQyNjY5ZWZmYjYwNjFiODk0YTM0MTliMTE4MTBhZTI3N2ExZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKQEAgLTEwNSw3ICsx
MDUsNyBAQCBSdW5Mb29wOjpSdW5Mb29wKCkKIAogUnVuTG9vcDo6flJ1bkxvb3AoKQogewotICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xv
b3BMb2NrIH07CiAgICAgbV9zaHV0ZG93biA9IHRydWU7CiAgICAgbV9yZWFkeVRvUnVuLm5vdGlm
eU9uZSgpOwogCkBAIC0xMTYsNyArMTE2LDcgQEAgUnVuTG9vcDo6flJ1bkxvb3AoKQogCiBpbmxp
bmUgYm9vbCBSdW5Mb29wOjpwb3B1bGF0ZVRhc2tzKFJ1bk1vZGUgcnVuTW9kZSwgU3RhdHVzJiBz
dGF0dXNPZlRoaXNMb29wLCBEZXF1ZTxSZWZQdHI8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPj4m
IGZpcmVkVGltZXJzKQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOworICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvb3BMb2NrIH07CiAKICAgICBpZiAocnVuTW9kZSA9PSBSdW5N
b2RlOjpEcmFpbikgewogICAgICAgICBNb25vdG9uaWNUaW1lIHNsZWVwVW50aWwgPSBNb25vdG9u
aWNUaW1lOjppbmZpbml0eSgpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgUnVuTG9vcDo6cnVu
SW1wbChSdW5Nb2RlIHJ1bk1vZGUpCiAKICAgICBTdGF0dXMgc3RhdHVzT2ZUaGlzTG9vcCA9IFN0
YXR1czo6Q2xlYXI7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvb3BMb2Nr
KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9vcExvY2sgfTsKICAgICAgICAgbV9tYWlu
TG9vcHMuYXBwZW5kKCZzdGF0dXNPZlRoaXNMb29wKTsKICAgICB9CiAKQEAgLTIwMiw3ICsyMDIs
NyBAQCB2b2lkIFJ1bkxvb3A6OnNldFdha2VVcENhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmIGZ1bmN0aW9uKQogCiB2b2lkIFJ1bkxvb3A6OnN0b3AoKQogewotICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbG9vcExvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvb3BMb2NrIH07CiAg
ICAgaWYgKG1fbWFpbkxvb3BzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTMs
NyArMjEzLDcgQEAgdm9pZCBSdW5Mb29wOjpzdG9wKCkKICAgICB9CiB9CiAKLXZvaWQgUnVuTG9v
cDo6d2FrZVVwKGNvbnN0IEFic3RyYWN0TG9ja2VyJikKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwV2l0
aExvY2soKQogewogICAgIG1fcGVuZGluZ1Rhc2tzID0gdHJ1ZTsKICAgICBtX3JlYWR5VG9SdW4u
bm90aWZ5T25lKCk7CkBAIC0yMjQsOCArMjI0LDggQEAgdm9pZCBSdW5Mb29wOjp3YWtlVXAoY29u
c3QgQWJzdHJhY3RMb2NrZXImKQogCiB2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCiB7Ci0gICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb29wTG9jayk7Ci0gICAgd2FrZVVwKGxvY2tlcik7CisgICAgTG9j
a2VyIGxvY2tlciB7IG1fbG9vcExvY2sgfTsKKyAgICB3YWtlVXBXaXRoTG9jaygpOwogfQogCiBS
dW5Mb29wOjpDeWNsZVJlc3VsdCBSdW5Mb29wOjpjeWNsZShSdW5Mb29wTW9kZSkKQEAgLTIzNCw3
ICsyMzQsNyBAQCBSdW5Mb29wOjpDeWNsZVJlc3VsdCBSdW5Mb29wOjpjeWNsZShSdW5Mb29wTW9k
ZSkKICAgICByZXR1cm4gQ3ljbGVSZXN1bHQ6OkNvbnRpbnVlOwogfQogCi12b2lkIFJ1bkxvb3A6
OnNjaGVkdWxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVk
VGFzaz4mJiB0YXNrKQordm9pZCBSdW5Mb29wOjpzY2hlZHVsZVdpdGhMb2NrKFJlZjxUaW1lckJh
c2U6OlNjaGVkdWxlZFRhc2s+JiYgdGFzaykKIHsKICAgICBtX3NjaGVkdWxlcy5hcHBlbmQodGFz
ay5wdHIoKSk7CiAgICAgc3RkOjpwdXNoX2hlYXAobV9zY2hlZHVsZXMuYmVnaW4oKSwgbV9zY2hl
ZHVsZXMuZW5kKCksIFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzazo6RWFybGllc3RTY2hlZHVsZSgp
KTsKQEAgLTI0MiwxNCArMjQyLDE0IEBAIHZvaWQgUnVuTG9vcDo6c2NoZWR1bGUoY29uc3QgQWJz
dHJhY3RMb2NrZXImLCBSZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPiYmIHRhCiAKIHZvaWQg
UnVuTG9vcDo6c2NoZWR1bGUoUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJiB0YXNrKQog
ewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOwotICAgIHNjaGVkdWxlKGxvY2tl
ciwgV1RGTW92ZSh0YXNrKSk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9vcExvY2sgfTsKKyAg
ICBzY2hlZHVsZVdpdGhMb2NrKFdURk1vdmUodGFzaykpOwogfQogCi12b2lkIFJ1bkxvb3A6OnNj
aGVkdWxlQW5kV2FrZVVwKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFJlZjxUaW1lckJh
c2U6OlNjaGVkdWxlZFRhc2s+JiYgdGFzaykKK3ZvaWQgUnVuTG9vcDo6c2NoZWR1bGVBbmRXYWtl
VXBXaXRoTG9jayhSZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPiYmIHRhc2spCiB7Ci0gICAg
c2NoZWR1bGUobG9ja2VyLCBXVEZNb3ZlKHRhc2spKTsKLSAgICB3YWtlVXAobG9ja2VyKTsKKyAg
ICBzY2hlZHVsZVdpdGhMb2NrKFdURk1vdmUodGFzaykpOworICAgIHdha2VVcFdpdGhMb2NrKCk7
CiB9CiAKIC8vIFNpbmNlIFJ1bkxvb3AgZG9lcyBub3Qgb3duIHRoZSByZWdpc3RlcmVkIFRpbWVy
QmFzZSwKQEAgLTI2MiwyMSArMjYyLDIxIEBAIFJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNl
KFJ1bkxvb3AmIHJ1bkxvb3ApCiAKIFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCiB7
Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKLSAgICBzdG9w
KGxvY2tlcik7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9Owor
ICAgIHN0b3BXaXRoTG9jaygpOwogfQogCiB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQo
U2Vjb25kcyBpbnRlcnZhbCwgYm9vbCByZXBlYXRpbmcpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKLSAgICBzdG9wKGxvY2tlcik7CisgICAgTG9ja2Vy
IGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9OworICAgIHN0b3BXaXRoTG9jaygpOwog
ICAgIG1fc2NoZWR1bGVkVGFzayA9IFNjaGVkdWxlZFRhc2s6OmNyZWF0ZShbdGhpc10gewogICAg
ICAgICBmaXJlZCgpOwogICAgIH0sIGludGVydmFsLCByZXBlYXRpbmcpOwotICAgIG1fcnVuTG9v
cC0+c2NoZWR1bGVBbmRXYWtlVXAobG9ja2VyLCAqbV9zY2hlZHVsZWRUYXNrKTsKKyAgICBtX3J1
bkxvb3AtPnNjaGVkdWxlQW5kV2FrZVVwV2l0aExvY2soKm1fc2NoZWR1bGVkVGFzayk7CiB9CiAK
LXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKGNvbnN0IEFic3RyYWN0TG9ja2VyJikKK3Zv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wV2l0aExvY2soKQogewogICAgIGlmIChtX3NjaGVk
dWxlZFRhc2spIHsKICAgICAgICAgbV9zY2hlZHVsZWRUYXNrLT5kZWFjdGl2YXRlKCk7CkBAIC0y
ODYsMjUgKzI4NiwyNSBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcChjb25zdCBBYnN0
cmFjdExvY2tlciYpCiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKIHsKLSAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fbG9vcExvY2spOwotICAgIHN0b3AobG9ja2Vy
KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9ydW5Mb29wLT5tX2xvb3BMb2NrIH07CisgICAgc3Rv
cFdpdGhMb2NrKCk7CiB9CiAKIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNv
bnN0CiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKLSAg
ICByZXR1cm4gaXNBY3RpdmUobG9ja2VyKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9ydW5Mb29w
LT5tX2xvb3BMb2NrIH07CisgICAgcmV0dXJuIGlzQWN0aXZlV2l0aExvY2soKTsKIH0KIAotYm9v
bCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29u
c3QKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZVdpdGhMb2NrKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9zY2hlZHVsZWRUYXNrICYmIG1fc2NoZWR1bGVkVGFzay0+aXNBY3RpdmUo
KTsKIH0KIAogU2Vjb25kcyBSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUoKSBj
b25zdAogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9jayk7Ci0g
ICAgaWYgKGlzQWN0aXZlKGxvY2tlcikpCisgICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+
bV9sb29wTG9jayB9OworICAgIGlmIChpc0FjdGl2ZVdpdGhMb2NrKCkpCiAgICAgICAgIHJldHVy
biBzdGQ6Om1heDxTZWNvbmRzPihtX3NjaGVkdWxlZFRhc2stPnNjaGVkdWxlZFRpbWVQb2ludCgp
IC0gTW9ub3RvbmljVGltZTo6bm93KCksIDBfcyk7CiAgICAgcmV0dXJuIDBfczsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3dpbi9SdW5Mb29wV2luLmNwcAppbmRleCBhNGM0N2E2ZDJjMzdhZDcyZTY1NjczMTZhZTEyYTAy
MWNlYzc1NmQ5Li41MzMxNDM5NWEwMTVhODJmOTI4OGYzZGQwZTgwZDE0NTYyYjU2ZTIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvd2luL1J1bkxvb3BXaW4uY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgUnVuTG9vcDo6Q3lj
bGVSZXN1bHQgUnVuTG9vcDo6Y3ljbGUoUnVuTG9vcE1vZGUpCiB2b2lkIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCgpCiB7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3J1bkxvb3AtPm1fbG9vcExvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9ydW5Mb29w
LT5tX2xvb3BMb2NrIH07CiAKICAgICAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMTc2LDcgKzE3Niw3IEBAIFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFz
ZSgpCiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChTZWNvbmRzIGludGVydmFsLCBi
b29sIHJlcGVhdCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fbG9vcExv
Y2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKICAgICBt
X2lzUmVwZWF0aW5nID0gcmVwZWF0OwogICAgIG1faXNBY3RpdmUgPSB0cnVlOwogICAgIG1faW50
ZXJ2YWwgPSBpbnRlcnZhbDsKQEAgLTE4NiwyOSArMTg2LDI5IEBAIHZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzdGFydChTZWNvbmRzIGludGVydmFsLCBib29sIHJlcGVhdCkKIAogdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnN0b3AoKQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9v
cC0+bV9sb29wTG9jayk7Ci0gICAgaWYgKCFpc0FjdGl2ZShsb2NrZXIpKQorICAgIExvY2tlciBs
b2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAgICBpZiAoIWlzQWN0aXZlV2l0aExv
Y2soKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pc0FjdGl2ZSA9IGZhbHNlOwogICAgIDo6
S2lsbFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgYml0d2lzZV9jYXN0
PHVpbnRwdHJfdD4odGhpcykpOwogfQogCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3Rp
dmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25zdAorYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6
OmlzQWN0aXZlV2l0aExvY2soKSBjb25zdAogewogICAgIHJldHVybiBtX2lzQWN0aXZlOwogfQog
CiBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAogewotICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9jayk7Ci0gICAgcmV0dXJuIGlzQWN0aXZl
KGxvY2tlcik7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9Owor
ICAgIHJldHVybiBpc0FjdGl2ZVdpdGhMb2NrKCk7CiB9CiAKIFNlY29uZHMgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3J1bkxvb3AtPm1fbG9vcExvY2spOwotICAgIGlmIChpc0FjdGl2ZShsb2NrZXIpKQorICAg
IExvY2tlciBsb2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAgICBpZiAoaXNBY3Rp
dmVXaXRoTG9jaygpKQogICAgICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4obV9uZXh0Rmly
ZURhdGUgLSBNb25vdG9uaWNUaW1lOjpub3coKSwgMF9zKTsKICAgICByZXR1cm4gMF9zOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRh
c2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2su
Y3BwCmluZGV4IGRiMjJhYWM0YTM4YzQxMjI3M2U5MzdhZTJiMDYxNDVmYWVjMzU2YTIuLmJlZjAz
OWUxNWU4MjU2NTA3MGYwZTM3ZjlmMzM5ZjVhNGZhMTM1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKQEAgLTQxLDE4ICs0
MSwxNiBAQCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OkRhdGFiYXNlVGFza1N5bmNocm9uaXpl
cigpCiAKIHZvaWQgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp3YWl0Rm9yVGFza0NvbXBsZXRp
b24oKQogewotICAgIG1fc3luY2hyb25vdXNNdXRleC5sb2NrKCk7CisgICAgTG9ja2VyIGxvY2tl
ciB7IG1fc3luY2hyb25vdXNMb2NrIH07CiAgICAgd2hpbGUgKCFtX3Rhc2tDb21wbGV0ZWQpCi0g
ICAgICAgIG1fc3luY2hyb25vdXNDb25kaXRpb24ud2FpdChtX3N5bmNocm9ub3VzTXV0ZXgpOwot
ICAgIG1fc3luY2hyb25vdXNNdXRleC51bmxvY2soKTsKKyAgICAgICAgbV9zeW5jaHJvbm91c0Nv
bmRpdGlvbi53YWl0KG1fc3luY2hyb25vdXNMb2NrKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRhc2tT
eW5jaHJvbml6ZXI6OnRhc2tDb21wbGV0ZWQoKQogewotICAgIG1fc3luY2hyb25vdXNNdXRleC5s
b2NrKCk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fc3luY2hyb25vdXNMb2NrIH07CiAgICAgbV90
YXNrQ29tcGxldGVkID0gdHJ1ZTsKICAgICBtX3N5bmNocm9ub3VzQ29uZGl0aW9uLm5vdGlmeU9u
ZSgpOwotICAgIG1fc3luY2hyb25vdXNNdXRleC51bmxvY2soKTsKIH0KIAogRGF0YWJhc2VUYXNr
OjpEYXRhYmFzZVRhc2soRGF0YWJhc2UmIGRhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6
ZXIqIHN5bmNocm9uaXplcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGFzay5oCmluZGV4IDkxNmU5MTg5YThmZTc3MTBiNjQzMGY5NzE2N2FlZTll
YTgyZTk0ODUuLjdkMTZkNTY3Y2FiMTMzN2UzMjYxZGM3ZGQzMzU2NWY0MzM2OWNkMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suaApA
QCAtMjksOSArMjksOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRp
dGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC01Nyw5ICs1Nyw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIGJvb2wgbV90
YXNrQ29tcGxldGVkIHsgZmFsc2UgfTsKLSAgICBMb2NrIG1fc3luY2hyb25vdXNNdXRleDsKLSAg
ICBDb25kaXRpb24gbV9zeW5jaHJvbm91c0NvbmRpdGlvbjsKKyAgICBib29sIG1fdGFza0NvbXBs
ZXRlZCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc3luY2hyb25vdXNMb2NrKSB7IGZhbHNlIH07Cisg
ICAgQ2hlY2tlZExvY2sgbV9zeW5jaHJvbm91c0xvY2s7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBt
X3N5bmNocm9ub3VzQ29uZGl0aW9uOwogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgYm9vbCBtX2hh
c0NoZWNrZWRGb3JUZXJtaW5hdGlvbiB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJj
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
V2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDhjZWIxOGMxODFjMWM4MTNi
Y2FjNzU4MjQ1MDJhMjkwOTlmOTc1ODAuLmE3ODg5Zjg3MjQ0YjU2N2U1ODgyMTc0ZWU4OGRiYzZl
NmFkMjdlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJl
YW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVy
LmNwcApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CiAj
aW5jbHVkZSA8Z3N0L2F1ZGlvL2F1ZGlvLWluZm8uaD4KICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9t
aXNzaW5nLXBsdWdpbnMuaD4KLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+Ci0jaW5jbHVkZSA8
d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUg
PHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgpAQCAt
ODQsOSArODQsOSBAQCBzdHJ1Y3QgX1dlYktpdFdlYkF1ZGlvU3JjUHJpdmF0ZSB7CiAgICAgTG9j
ayBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jazsKICAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9u
PHZvaWQoKT4mJik+IGRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbjsKIAotICAgIGJvb2wg
ZGlzcGF0Y2hEb25lOwotICAgIExvY2sgZGlzcGF0Y2hMb2NrOwotICAgIENvbmRpdGlvbiBkaXNw
YXRjaENvbmRpdGlvbjsKKyAgICBib29sIGRpc3BhdGNoRG9uZSBXVEZfR1VBUkRFRF9CWV9MT0NL
KGRpc3BhdGNoTG9jayk7CisgICAgQ2hlY2tlZExvY2sgZGlzcGF0Y2hMb2NrOworICAgIENoZWNr
ZWRDb25kaXRpb24gZGlzcGF0Y2hDb25kaXRpb247CiAKICAgICBfV2ViS2l0V2ViQXVkaW9TcmNQ
cml2YXRlKCkKICAgICB7CkBAIC0zMzksNyArMzM5LDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2Vi
QXVkaW9TcmNSZW5kZXJBbmRQdXNoRnJhbWVzKEdSZWZQdHI8R3N0RWxlbWVudD4mJiBlbGVtZW50
LAogICAgIGF1dG8qIHByaXYgPSBzcmMtPnByaXY7CiAKICAgICBhdXRvIG5vdGlmeURpc3BhdGNo
T25FeGl0ID0gbWFrZVNjb3BlRXhpdChbcHJpdl0gewotICAgICAgICBMb2NrSG9sZGVyIGxvY2so
cHJpdi0+ZGlzcGF0Y2hMb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByaXYtPmRpc3Bh
dGNoTG9jayB9OwogICAgICAgICBwcml2LT5kaXNwYXRjaERvbmUgPSB0cnVlOwogICAgICAgICBw
cml2LT5kaXNwYXRjaENvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICB9KTsKQEAgLTQwNCw3ICs0
MDQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbihXZWJL
aXRXZWJBdWRpb1NyYyogc3JjKQogICAgIH0KIAogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBs
b2NrKHByaXYtPmRpc3BhdGNoTG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcml2LT5k
aXNwYXRjaExvY2sgfTsKICAgICAgICAgcHJpdi0+ZGlzcGF0Y2hEb25lID0gZmFsc2U7CiAgICAg
fQogCkBAIC00MjEsNyArNDIxLDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNSZW5k
ZXJJdGVyYXRpb24oV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICB9CiAKICAgICB7Ci0gICAg
ICAgIExvY2tIb2xkZXIgbG9jayhwcml2LT5kaXNwYXRjaExvY2spOworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgcHJpdi0+ZGlzcGF0Y2hMb2NrIH07CiAgICAgICAgIGlmICghcHJpdi0+ZGlzcGF0
Y2hEb25lKQogICAgICAgICAgICAgcHJpdi0+ZGlzcGF0Y2hDb25kaXRpb24ud2FpdChwcml2LT5k
aXNwYXRjaExvY2spOwogICAgIH0KQEAgLTQ2OCw3ICs0NjgsNyBAQCBzdGF0aWMgR3N0U3RhdGVD
aGFuZ2VSZXR1cm4gd2ViS2l0V2ViQXVkaW9TcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVt
ZW50LCBHcwogICAgIH0KICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUEFVU0VEX1RPX1JFQURZ
OgogICAgICAgICB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2socHJpdi0+ZGlzcGF0Y2hM
b2NrKTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcml2LT5kaXNwYXRjaExvY2sgfTsK
ICAgICAgICAgICAgIHByaXYtPmRpc3BhdGNoRG9uZSA9IGZhbHNlOwogICAgICAgICAgICAgcHJp
di0+ZGlzcGF0Y2hDb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHAKaW5kZXggMmY5YzI4OTBiMjQxMmUzNzZiNGE0YzM2
MWYyMjlmMzI2MmIyZTRjYS4uMzUwMzhhZjU5ODNjMWQyM2NhYzdjNDBkNzEwN2FhYTMwMGIyMDAx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHAKQEAgLTI3NiwyNiAr
Mjc2LDI2IEBAIHZvaWQgSW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpzZXRIYXNFT1MoKQogewogICAg
IEdTVF9ERUJVRygiRU9TIG9uIGRlY29kZXIgJXAiLCB0aGlzKTsKICAgICB7Ci0gICAgICAgIExv
Y2tIb2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1f
c2FtcGxlTG9jayB9OwogICAgICAgICBtX2VvcyA9IHRydWU7CiAgICAgICAgIG1fc2FtcGxlQ29u
ZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9j
ayhtX2hhbmRsZXJNdXRleCk7Ci0gICAgICAgIG1faGFuZGxlckNvbmRpdGlvbi53YWl0KG1faGFu
ZGxlck11dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1faGFuZGxlckxvY2sgfTsKKyAg
ICAgICAgbV9oYW5kbGVyQ29uZGl0aW9uLndhaXQobV9oYW5kbGVyTG9jayk7CiAgICAgfQogfQog
CiB2b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6bm90aWZ5U2FtcGxlKEdSZWZQdHI8R3N0U2Ft
cGxlPiYmIHNhbXBsZSkKIHsKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3NhbXBs
ZU11dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fc2FtcGxlTG9jayB9OwogICAgICAg
ICBtX3NhbXBsZSA9IFdURk1vdmUoc2FtcGxlKTsKICAgICAgICAgbV9zYW1wbGVDb25kaXRpb24u
bm90aWZ5T25lKCk7CiAgICAgfQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1faGFu
ZGxlck11dGV4KTsKLSAgICAgICAgbV9oYW5kbGVyQ29uZGl0aW9uLndhaXQobV9oYW5kbGVyTXV0
ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9oYW5kbGVyTG9jayB9OworICAgICAgICBt
X2hhbmRsZXJDb25kaXRpb24ud2FpdChtX2hhbmRsZXJMb2NrKTsKICAgICB9CiB9CiAKQEAgLTMw
Niw3ICszMDYsNyBAQCB2b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6SW5uZXJEZWNvZGVyOjpo
YW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgYXV0byBzY29wZUV4aXQgPSBt
YWtlU2NvcGVFeGl0KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAg
ICAgaWYgKCFwcm90ZWN0ZWRUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBMb2Nr
SG9sZGVyIGxvY2socHJvdGVjdGVkVGhpcy0+bV9tZXNzYWdlTG9jayk7CisgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBwcm90ZWN0ZWRUaGlzLT5tX21lc3NhZ2VMb2NrIH07CiAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fbWVzc2FnZURpc3BhdGNoZWQgPSB0cnVlOwogICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX21lc3NhZ2VDb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfSk7CkBAIC0zNjUsNyAr
MzY1LDcgQEAgdm9pZCBJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6cHJlcGFy
ZVBpcGVsaW5lKCkKICAgICAgICAgYXV0byYgZGVjb2RlciA9ICpzdGF0aWNfY2FzdDxJbWFnZURl
Y29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcio+KHVzZXJEYXRhKTsKIAogICAgICAgICB7Ci0g
ICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2soZGVjb2Rlci5tX21lc3NhZ2VMb2NrKTsKKyAgICAg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBkZWNvZGVyLm1fbWVzc2FnZUxvY2sgfTsKICAgICAgICAg
ICAgIGRlY29kZXIubV9tZXNzYWdlRGlzcGF0Y2hlZCA9IGZhbHNlOwogICAgICAgICAgICAgZGVj
b2Rlci5tX21lc3NhZ2VDb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgICAgIH0KQEAgLTM4MCw3
ICszODAsNyBAQCB2b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6SW5uZXJEZWNvZGVyOjpwcmVw
YXJlUGlwZWxpbmUoKQogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFk
ZWNvZGVyLm1fbWVzc2FnZURpc3BhdGNoZWQpIHsKLSAgICAgICAgICAgIExvY2tIb2xkZXIgbG9j
ayhkZWNvZGVyLm1fbWVzc2FnZUxvY2spOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IGRl
Y29kZXIubV9tZXNzYWdlTG9jayB9OwogICAgICAgICAgICAgZGVjb2Rlci5tX21lc3NhZ2VDb25k
aXRpb24ud2FpdChkZWNvZGVyLm1fbWVzc2FnZUxvY2spOwogICAgICAgICB9CiAgICAgICAgIGdz
dF9tZXNzYWdlX3VucmVmKG1lc3NhZ2UpOwpAQCAtNDI2LDEzICs0MjYsMTMgQEAgdm9pZCBJbWFn
ZURlY29kZXJHU3RyZWFtZXI6OnB1c2hFbmNvZGVkRGF0YShjb25zdCBTaGFyZWRCdWZmZXImIGJ1
ZmZlcikKICAgICB0aHJlYWQtPmRldGFjaCgpOwogICAgIGJvb2wgaXNFT1MgPSBmYWxzZTsKICAg
ICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKKyAgICAgICAgTG9j
a2VyIGxvY2tlciB7IG1fc2FtcGxlTG9jayB9OwogICAgICAgICBpc0VPUyA9IG1fZW9zOwogICAg
IH0KICAgICB3aGlsZSAoIWlzRU9TKSB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKLSAgICAgICAgICAgIG1fc2FtcGxlQ29uZGl0aW9uLndh
aXQobV9zYW1wbGVNdXRleCk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9zYW1wbGVM
b2NrIH07CisgICAgICAgICAgICBtX3NhbXBsZUNvbmRpdGlvbi53YWl0KG1fc2FtcGxlTG9jayk7
CiAgICAgICAgICAgICBpc0VPUyA9IG1fZW9zOwogICAgICAgICAgICAgaWYgKG1fc2FtcGxlKSB7
CiAgICAgICAgICAgICAgICAgYXV0byogY2FwcyA9IGdzdF9zYW1wbGVfZ2V0X2NhcHMobV9zYW1w
bGUuZ2V0KCkpOwpAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZvaWQgSW1hZ2VEZWNvZGVyR1N0cmVhbWVy
OjpwdXNoRW5jb2RlZERhdGEoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgewotICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1f
aGFuZGxlck11dGV4KTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2hhbmRsZXJMb2Nr
IH07CiAgICAgICAgICAgICBtX2hhbmRsZXJDb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgICAg
IH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmgKaW5kZXggNTkxOGM4
NDdjZWRiMzJhYjMwODMwN2RmNjI4NTlhMGMxYzRjNDliZS4uZjI0NzczNDgxMGE1MTI0MzFiNzNk
MzU3NWFkZmNhODU5N2U4M2VjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIu
aApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJTYW1wbGVNYXAuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgpAQCAtMTE0LDkgKzExNiw5IEBAIHByaXZhdGU6CiAgICAgICAgIEdS
ZWZQdHI8R3N0RWxlbWVudD4gbV9kZWNvZGViaW47CiAgICAgICAgIFJ1bkxvb3AmIG1fcnVuTG9v
cDsKIAotICAgICAgICBDb25kaXRpb24gbV9tZXNzYWdlQ29uZGl0aW9uOwotICAgICAgICBMb2Nr
IG1fbWVzc2FnZUxvY2s7Ci0gICAgICAgIGJvb2wgbV9tZXNzYWdlRGlzcGF0Y2hlZCB7IGZhbHNl
IH07CisgICAgICAgIENoZWNrZWRDb25kaXRpb24gbV9tZXNzYWdlQ29uZGl0aW9uOworICAgICAg
ICBDaGVja2VkTG9jayBtX21lc3NhZ2VMb2NrOworICAgICAgICBib29sIG1fbWVzc2FnZURpc3Bh
dGNoZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX21lc3NhZ2VMb2NrKSB7IGZhbHNlIH07CiAgICAg
fTsKIAogICAgIHZvaWQgaGFuZGxlU2FtcGxlKEdSZWZQdHI8R3N0U2FtcGxlPiYmKTsKQEAgLTEz
MiwxMSArMTM0LDExIEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8SW50U2l6ZT4gbV9zaXplOwog
ICAgIFN0cmluZyBtX21pbWVUeXBlOwogICAgIFJlZlB0cjxJbWFnZURlY29kZXJHU3RyZWFtZXI6
OklubmVyRGVjb2Rlcj4gbV9pbm5lckRlY29kZXI7Ci0gICAgQ29uZGl0aW9uIG1fc2FtcGxlQ29u
ZGl0aW9uOwotICAgIExvY2sgbV9zYW1wbGVNdXRleDsKLSAgICBHUmVmUHRyPEdzdFNhbXBsZT4g
bV9zYW1wbGU7Ci0gICAgQ29uZGl0aW9uIG1faGFuZGxlckNvbmRpdGlvbjsKLSAgICBMb2NrIG1f
aGFuZGxlck11dGV4OworICAgIENoZWNrZWRDb25kaXRpb24gbV9zYW1wbGVDb25kaXRpb247Cisg
ICAgQ2hlY2tlZExvY2sgbV9zYW1wbGVMb2NrOworICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBtX3Nh
bXBsZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc2FtcGxlTG9jayk7CisgICAgQ2hlY2tlZENvbmRp
dGlvbiBtX2hhbmRsZXJDb25kaXRpb247CisgICAgQ2hlY2tlZExvY2sgbV9oYW5kbGVyTG9jazsK
IH07CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NYWluVGhyZWFkTm90aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NYWluVGhyZWFkTm90aWZpZXIuaAppbmRleCAzNTQ4OTg5
MjE2ZDU2NWQ5YmJiZGUwODUwYzE5MGRhZDA5NDlmMTE1Li5hODg1OTI4OWM4NTUzMmQ5ZTY2M2Rl
NDcwYjYxMzFiYzlkYjA4ZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWFpblRocmVhZE5vdGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01haW5UaHJlYWROb3RpZmllci5oCkBAIC02
OCwxOCArNjgsMTggQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEY+CiAgICAgdm9p
ZCBub3RpZnlBbmRXYWl0KFQgbm90aWZpY2F0aW9uVHlwZSwgRiYmIGNhbGxiYWNrRnVuY3RvcikK
ICAgICB7Ci0gICAgICAgIExvY2sgbXV0ZXg7Ci0gICAgICAgIENvbmRpdGlvbiBjb25kaXRpb247
CisgICAgICAgIENoZWNrZWRMb2NrIGxvY2s7CisgICAgICAgIENoZWNrZWRDb25kaXRpb24gY29u
ZGl0aW9uOwogCi0gICAgICAgIG5vdGlmeShub3RpZmljYXRpb25UeXBlLCBbZnVuY3RvciA9IFdU
Rk1vdmUoY2FsbGJhY2tGdW5jdG9yKSwgJmNvbmRpdGlvbiwgJm11dGV4XSB7CisgICAgICAgIG5v
dGlmeShub3RpZmljYXRpb25UeXBlLCBbZnVuY3RvciA9IFdURk1vdmUoY2FsbGJhY2tGdW5jdG9y
KSwgJmNvbmRpdGlvbiwgJmxvY2tdIHsKICAgICAgICAgICAgIGZ1bmN0b3IoKTsKLSAgICAgICAg
ICAgIExvY2tIb2xkZXIgaG9sZGVyKG11dGV4KTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBsb2NrIH07CiAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgICAgIH0p
OwogCiAgICAgICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgICAgIExvY2tIb2xk
ZXIgaG9sZGVyKG11dGV4KTsKLSAgICAgICAgICAgIGNvbmRpdGlvbi53YWl0KG11dGV4KTsKKyAg
ICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBsb2NrIH07CisgICAgICAgICAgICBjb25kaXRpb24u
d2FpdChsb2NrKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAwN2IzZDlmYmU4MDRjNGY4MDEwMDU1MWFl
ZjAxMjM2MmFlMjM4MGVmLi5iZjQ5NWQxY2EyZDQ4NWRhMjQ1YWI2NTZkMTJmMmYxMGQxYjk5NzY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApA
QCAtMjUyLDcgKzI1Miw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcigpCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAg
IHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fY2RtQXR0YWNobWVudE11dGV4KTsKKyAgICAg
ICAgTG9ja2VyIGNkbUF0dGFjaG1lbnRMb2NrZXIgeyBtX2NkbUF0dGFjaG1lbnRMb2NrIH07CiAg
ICAgICAgIG1fY2RtQXR0YWNobWVudENvbmRpdGlvbi5ub3RpZnlBbGwoKTsKICAgICB9CiAjZW5k
aWYKQEAgLTI5MjEsNyArMjkyMSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpwdXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpCiAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9CiAg
ICAgICAgIFt0aGlzLCBpbnRlcm5hbENvbXBvc2l0aW5nT3BlcmF0aW9uXShUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAgICAgICAgewotICAgICAgICAgICAgTG9ja0hv
bGRlciBob2xkZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBw
cm94eS5sb2NrKCkgfTsKIAogICAgICAgICAgICAgaWYgKCFwcm94eS5pc0FjdGl2ZSgpKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTI5MzksNyArMjkzOSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpwdXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpCiAgICAgYXV0byBw
cm94eU9wZXJhdGlvbiA9CiAgICAgICAgIFt0aGlzLCBpbnRlcm5hbENvbXBvc2l0aW5nT3BlcmF0
aW9uXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAgICAgICAgewot
ICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBwcm94eS5sb2NrKCkgfTsKIAogICAgICAgICAgICAgaWYgKCFwcm94
eS5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTI5NjQsNyArMjk2NCw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyZXBhaW50KCkKIAogICAgIG1f
cGxheWVyLT5yZXBhaW50KCk7CiAKLSAgICBMb2NrSG9sZGVyIGxvY2sobV9kcmF3TXV0ZXgpOwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX2RyYXdMb2NrIH07CiAgICAgbV9kcmF3Q29uZGl0aW9uLm5v
dGlmeU9uZSgpOwogfQogCkBAIC0zMTAzLDE3ICszMTAzLDE3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjp0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqIHNhbXBsZSkKICAgICB9
CiAKICAgICBpZiAoIW1fY2FuUmVuZGVyaW5nQmVBY2NlbGVyYXRlZCkgewotICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2RyYXdNdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2Ry
YXdMb2NrIH07CiAgICAgICAgIGlmIChtX2lzQmVpbmdEZXN0cm95ZWQpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIG1fZHJhd1RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwotICAgICAgICBt
X2RyYXdDb25kaXRpb24ud2FpdChtX2RyYXdNdXRleCk7CisgICAgICAgIG1fZHJhd0NvbmRpdGlv
bi53YWl0KG1fZHJhd0xvY2spOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKQogICAgIGlmIChtX2lzVXNpbmdGYWxsYmFja1ZpZGVvU2luaykgewot
ICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9kcmF3TXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgbV9kcmF3TG9jayB9OwogICAgICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0KICAgICAg
ICAgICAgIFt0aGlzXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAg
ICAgICAgICAgIHsKQEAgLTMxMjcsNyArMzEyNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjp0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqIHNhbXBsZSkKICAgICAgICAgICAg
IHJldHVybjsKICNlbmRpZgogICAgICAgICBtX2RyYXdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsK
LSAgICAgICAgbV9kcmF3Q29uZGl0aW9uLndhaXQobV9kcmF3TXV0ZXgpOworICAgICAgICBtX2Ry
YXdDb25kaXRpb24ud2FpdChtX2RyYXdMb2NrKTsKICAgICB9IGVsc2UKICAgICAgICAgcHVzaFRl
eHR1cmVUb0NvbXBvc2l0b3IoKTsKICNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCkBA
IC0zMTQ5LDcgKzMxNDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2Fu
Y2VsUmVwYWludChib29sIGRlc3Ryb3lpbmcpCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBhbHNv
IHVzZWQgd2hlbiBkZXN0cm95aW5nIHRoZSBwbGF5ZXIgKGRlc3Ryb3lpbmcgcGFyYW1ldGVyIGlz
IHRydWUpLCB0byByZWxlYXNlIHRoZSBnc3RyZWFtZXIgdGhyZWFkIGZyb20KICAgICAvLyBtX2Ry
YXdDb25kaXRpb24gYW5kIHRvIGVuc3VyZSB0aGF0IG5ldyB0cmlnZ2VyUmVwYWludCBjYWxscyB3
b24ndCB3YWl0IG9uIG1fZHJhd0NvbmRpdGlvbi4KICAgICBpZiAoIW1fY2FuUmVuZGVyaW5nQmVB
Y2NlbGVyYXRlZCkgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RyYXdNdXRleCk7Cisg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2RyYXdMb2NrIH07CiAgICAgICAgIG1fZHJhd1RpbWVy
LnN0b3AoKTsKICAgICAgICAgbV9pc0JlaW5nRGVzdHJveWVkID0gZGVzdHJveWluZzsKICAgICAg
ICAgbV9kcmF3Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwpAQCAtMzE4MCwxMCArMzE4MCwxNCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Zmx1c2hDdXJyZW50QnVmZmVyKCkKICAg
ICBib29sIHNob3VsZFdhaXQgPSBtX3ZpZGVvRGVjb2RlclBsYXRmb3JtID09IEdzdFZpZGVvRGVj
b2RlclBsYXRmb3JtOjpWaWRlbzRMaW51eDsKICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0gW3No
b3VsZFdhaXQsIHBpcGVsaW5lID0gcGlwZWxpbmUoKV0oVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eSYgcHJveHkpIHsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSwgIkZs
dXNoaW5nIHZpZGVvIHNhbXBsZSAlcyIsIHNob3VsZFdhaXQgPyAic3luY2hyb25vdXNseSIgOiAi
Iik7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKCFzaG91bGRXYWl0ID8gJnByb3h5LmxvY2so
KSA6IG51bGxwdHIpOwotCi0gICAgICAgIGlmIChwcm94eS5pc0FjdGl2ZSgpKQotICAgICAgICAg
ICAgcHJveHkuZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJlKHNob3VsZFdh
aXQpOworICAgICAgICBpZiAoc2hvdWxkV2FpdCkgeworICAgICAgICAgICAgaWYgKHByb3h5Lmlz
QWN0aXZlKCkpCisgICAgICAgICAgICAgICAgcHJveHkuZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVBy
ZXNlcnZpbmdUZXh0dXJlKHNob3VsZFdhaXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IHByb3h5LmxvY2soKSB9OworICAgICAgICAgICAgaWYgKHByb3h5
LmlzQWN0aXZlKCkpCisgICAgICAgICAgICAgICAgcHJveHkuZHJvcEN1cnJlbnRCdWZmZXJXaGls
ZVByZXNlcnZpbmdUZXh0dXJlKHNob3VsZFdhaXQpOworICAgICAgICB9CiAgICAgfTsKIAogI2lm
IFVTRShOSUNPU0lBKQpAQCAtMzQwNyw3ICszNDExLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnB1c2hOZXh0SG9sZVB1bmNoQnVmZmVyKCkKICAgICBhdXRvIHByb3h5T3Bl
cmF0aW9uID0KICAgICAgICAgW3RoaXNdKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkm
IHByb3h5KQogICAgICAgICB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihwcm94eS5s
b2NrKCkpOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByb3h5LmxvY2soKSB9OwogICAg
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVy
PiBsYXllckJ1ZmZlciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZm
ZXI+KDAsIG1fc2l6ZSwgVGV4dHVyZU1hcHBlckdMOjpTaG91bGROb3RCbGVuZCwgR0xfRE9OVF9D
QVJFKTsKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHU3RyZWFtZXJIb2xlUHVuY2hDbGll
bnQ+IGhvbGVQdW5jaENsaWVudCA9IG1ha2VVbmlxdWU8R1N0cmVhbWVySG9sZVB1bmNoQ2xpZW50
PihtX3ZpZGVvU2luay5nZXQoKSk7CiAgICAgICAgICAgICBsYXllckJ1ZmZlci0+c2V0SG9sZVB1
bmNoQ2xpZW50KFdURk1vdmUoaG9sZVB1bmNoQ2xpZW50KSk7CkBAIC0zNTc2LDggKzM1ODAsOSBA
QCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdEZvckNETUF0dGFjaG1lbnQo
KQogCiAgICAgYm9vbCBkaWRDRE1BdHRhY2ggPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIGF1dG8g
Y2RtQXR0YWNobWVudExvY2tlciA9IGhvbGRMb2NrKG1fY2RtQXR0YWNobWVudE11dGV4KTsKLSAg
ICAgICAgZGlkQ0RNQXR0YWNoID0gbV9jZG1BdHRhY2htZW50Q29uZGl0aW9uLndhaXRGb3IobV9j
ZG1BdHRhY2htZW50TXV0ZXgsIDRfcywgW3RoaXNdKCkgeworICAgICAgICBMb2NrZXIgY2RtQXR0
YWNobWVudExvY2tlciB7IG1fY2RtQXR0YWNobWVudExvY2sgfTsKKyAgICAgICAgZGlkQ0RNQXR0
YWNoID0gbV9jZG1BdHRhY2htZW50Q29uZGl0aW9uLndhaXRGb3IobV9jZG1BdHRhY2htZW50TG9j
aywgNF9zLCBbdGhpc10oKSB7CisgICAgICAgICAgICBhc3NlcnRJc0hlbGQobV9jZG1BdHRhY2ht
ZW50TG9jayk7CiAgICAgICAgICAgICByZXR1cm4gaXNDRE1BdHRhY2hlZCgpOwogICAgICAgICB9
KTsKICAgICB9CkBAIC0zNjI0LDcgKzM2MjksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYgaW5zdGFuY2UpCiAKICAg
ICBHU1RfREVCVUdfT0JKRUNUKG1fcGlwZWxpbmUuZ2V0KCksICJDRE0gcHJveHkgaW5zdGFuY2Ug
JXAgZGlzcGF0Y2hlZCBhcyBjb250ZXh0IiwgbV9jZG1JbnN0YW5jZS0+cHJveHkoKS5nZXQoKSk7
CiAKLSAgICBMb2NrSG9sZGVyIGxvY2sobV9jZG1BdHRhY2htZW50TXV0ZXgpOworICAgIExvY2tl
ciBjZG1BdHRhY2htZW50TG9ja2VyIHsgbV9jZG1BdHRhY2htZW50TG9jayB9OwogICAgIC8vIFdl
IG11c3Qgbm90aWZ5IGFsbCB3YWl0ZXJzLCBzaW5jZSBzZXZlcmFsIGRlbXV4ZXJzIGNhbiBiZSBz
aW11bHRhbmVvdXNseSB3YWl0aW5nIGZvciBhIENETS4KICAgICBtX2NkbUF0dGFjaG1lbnRDb25k
aXRpb24ubm90aWZ5QWxsKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmgKaW5kZXggMDIxZmI4MjI3NTE1MzU3OGE5YTU2NmYxN2QzN2FjNTM5MTFkNjZk
NC4uMTEzNTYyNmRhMTIxNmY4Yzg0ODE4ZTUzOGRlMzhiYWNjMzViZjIzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMzgsNyArMzgsOCBAQAog
I2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9pbnN0YWxsLXBsdWdp
bnMuaD4KICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVj
a2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dl
ckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBAIC0zNjMsNyArMzY0LDcgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc1VzaW5nRmFsbGJhY2tWaWRlb1NpbmsgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9jYW5SZW5kZXJpbmdCZUFjY2VsZXJhdGVkIHsgZmFsc2UgfTsKIAotICAg
IGJvb2wgbV9pc0JlaW5nRGVzdHJveWVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNCZWluZ0Rl
c3Ryb3llZCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fZHJhd0xvY2spIHsgZmFsc2UgfTsKIAogI2lm
IFVTRShHU1RSRUFNRVJfR0wpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvVGV4dHVyZUNvcGll
ckdTdHJlYW1lcj4gbV92aWRlb1RleHR1cmVDb3BpZXI7CkBAIC0zNzUsOCArMzc2LDggQEAgcHJv
dGVjdGVkOgogICAgIEltYWdlT3JpZW50YXRpb24gbV92aWRlb1NvdXJjZU9yaWVudGF0aW9uOwog
CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICBMb2NrIG1fY2RtQXR0YWNobWVudE11
dGV4OwotICAgIENvbmRpdGlvbiBtX2NkbUF0dGFjaG1lbnRDb25kaXRpb247CisgICAgQ2hlY2tl
ZExvY2sgbV9jZG1BdHRhY2htZW50TG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fY2RtQXR0
YWNobWVudENvbmRpdGlvbjsKICAgICBSZWZQdHI8Q0RNSW5zdGFuY2VQcm94eT4gbV9jZG1JbnN0
YW5jZTsKIAogICAgIExvY2sgbV9wcm90ZWN0aW9uTXV0ZXg7IC8vIEd1YXJkcyBhY2Nlc3MgdG8g
bV9oYW5kbGVkUHJvdGVjdGlvbkV2ZW50cy4KQEAgLTQ3NCw5ICs0NzUsOSBAQCBwcml2YXRlOgog
ICAgIG11dGFibGUgTWVkaWFUaW1lIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9n
cmVzczsKICAgICBib29sIG1faGFzVmlkZW8geyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNBdWRp
byB7IGZhbHNlIH07Ci0gICAgQ29uZGl0aW9uIG1fZHJhd0NvbmRpdGlvbjsKLSAgICBMb2NrIG1f
ZHJhd011dGV4OwotICAgIFJ1bkxvb3A6OlRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cj4gbV9kcmF3VGltZXI7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBtX2RyYXdDb25kaXRpb247Cisg
ICAgQ2hlY2tlZExvY2sgbV9kcmF3TG9jazsKKyAgICBSdW5Mb29wOjpUaW1lcjxNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI+IG1fZHJhd1RpbWVyIFdURl9HVUFSREVEX0JZX0xPQ0sobV9kcmF3
TG9jayk7CiAgICAgUnVuTG9vcDo6VGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBt
X3JlYWR5VGltZXJIYW5kbGVyOwogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICNpZiBVU0Uo
TklDT1NJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hv
bGVwdW5jaC9NZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2guY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaG9sZXB1bmNoL01lZGlhUGxheWVyUHJpdmF0ZUhvbGVQdW5jaC5j
cHAKaW5kZXggNTZjOGI5MmQ5NmRjZWM4ZTBmNjk1MmVmMWI5MGY3Y2RhMmY3NmU3NC4uOTAxZDU3
ZWZkNmY0MTM5YTlkM2EyYzhjMTFiY2NlY2FiYmMxMGMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaG9sZXB1bmNoL01lZGlhUGxheWVyUHJpdmF0ZUhvbGVQ
dW5jaC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaG9sZXB1bmNo
L01lZGlhUGxheWVyUHJpdmF0ZUhvbGVQdW5jaC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2g6OnB1c2hOZXh0SG9sZVB1bmNoQnVmZmVyKCkKICAg
ICBhdXRvIHByb3h5T3BlcmF0aW9uID0KICAgICAgICAgW3RoaXNdKFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHkmIHByb3h5KQogICAgICAgICB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVy
IGhvbGRlcihwcm94eS5sb2NrKCkpOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByb3h5
LmxvY2soKSB9OwogICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyQnVmZmVyPiBsYXllckJ1ZmZlciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJCdWZmZXI+KDAsIG1fc2l6ZSwgVGV4dHVyZU1hcHBlckdMOjpTaG91bGROb3RC
bGVuZCwgR0xfRE9OVF9DQVJFKTsKICAgICAgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKFdU
Rk1vdmUobGF5ZXJCdWZmZXIpKTsKICAgICAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYUltYWdlQnVmZmVyUGlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1
ZmZlclBpcGUuY3BwCmluZGV4IDlmMTEyNGZlYTcwNzY2ZTZlMWM2NGJkYjVjN2M2M2IwYWU5YTQ1
OTQuLjg2MDUzYTU3YzkwMWMzOTM1OTE2ZmMwOTIxNjVkZmQ0Y2ZlZGEzZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYUltYWdlQnVm
ZmVyUGlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIE5pY29z
aWFJbWFnZUJ1ZmZlclBpcGVTb3VyY2U6OmhhbmRsZShSZWZQdHI8SW1hZ2VCdWZmZXI+JiYgYnVm
ZmVyKQogICAgICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0gW3RoaXNdIChUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkgbXV0YWJsZSB7CiAgICAgICAgICAgICByZXR1cm4g
cHJveHkuc2NoZWR1bGVVcGRhdGVPbkNvbXBvc2l0b3JUaHJlYWQoW3RoaXNdICgpIG11dGFibGUg
ewogICAgICAgICAgICAgICAgIGF1dG8mIHByb3h5ID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29udGVu
dExheWVyVGV4dHVyZU1hcHBlckltcGw+KG1fbmljb3NpYUxheWVyLT5pbXBsKCkpLnByb3h5KCk7
Ci0gICAgICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsKKyAgICAg
ICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJveHkubG9jaygpIH07CiAKICAgICAgICAgICAg
ICAgICBpZiAoIXByb3h5LmlzQWN0aXZlKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4
bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAKaW5kZXggYTQ0NjBmOTA2MzA3
NDdhOGY4MzcyYWEwOTg0OGU0OTZlNmI1NDEzOS4uYmY4Y2ZkNDJlNGJhZmUwODI5NmQ5NDlmZGU0
NjZlNjBlYjQ2NjlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAK
QEAgLTEwNSwxMCArMTA1LDEwIEBAIHZvaWQgR0NHTExheWVyOjpzd2FwQnVmZmVyc0lmTmVlZGVk
KCkKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBsYXllckJ1ZmZlci0+dGV4dHVyZUdMKCku
c2V0UGVuZGluZ0NvbnRlbnRzKFdURk1vdmUoaW1hZ2UpKTsKIAotICAgICAgICBMb2NrSG9sZGVy
IGhvbGRlcihwcm94eS5sb2NrKCkpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJveHkubG9j
aygpIH07CiAgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKFdURk1vdmUobGF5ZXJCdWZmZXIp
KTsKICNlbHNlCi0gICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKHByb3h5LmxvY2soKSk7CisgICAg
ICAgIExvY2tlciBsb2NrZXIgeyBwcm94eS5sb2NrKCkgfTsKICAgICAgICAgcHJveHkucHVzaE5l
eHRCdWZmZXIobWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4obV9j
b250ZXh0Lm1fY29tcG9zaXRvclRleHR1cmUsIHRleHR1cmVTaXplLCBmbGFncywgbV9jb250ZXh0
Lm1faW50ZXJuYWxDb2xvckZvcm1hdCkpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwCmluZGV4IGUyODcxZjc5NTYyYzVi
MDU1MDMyYmEwMWMxMzQ3N2IwNGE0Mzk1MWIuLjA0MjIzZjIwNjM0MWNmNTU1NDY5Zjk1YWJlMWY3
MzEwMzdjOTJjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQ
cm94eTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSgpCiAKIFRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyUHJveHk6On5UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5KCkKIHsK
LSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xv
Y2sgfTsKICAgICBpZiAobV90YXJnZXRMYXllcikKICAgICAgICAgbV90YXJnZXRMYXllci0+c2V0
Q29udGVudHNMYXllcihudWxscHRyKTsKIH0KQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjphY3RpdmF0ZU9uQ29tcG9zaXRpbmdUaHJlYWQoQ29t
cG9zaXRvciogY28KICAgICBBU1NFUlQodGFyZ2V0TGF5ZXIpOwogICAgIEZ1bmN0aW9uPHZvaWQo
KT4gdXBkYXRlRnVuY3Rpb247CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xv
Y2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIG1fY29tcG9z
aXRvciA9IGNvbXBvc2l0b3I7CiAgICAgICAgIG1fdGFyZ2V0TGF5ZXIgPSB0YXJnZXRMYXllcjsK
ICAgICAgICAgaWYgKG1fdGFyZ2V0TGF5ZXIgJiYgbV9jdXJyZW50QnVmZmVyKQpAQCAtOTMsNyAr
OTMsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmludmFsaWRhdGUo
KQogICAgIEFTU0VSVChtX2NvbXBvc2l0b3JUaHJlYWQgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsK
ICAgICBGdW5jdGlvbjx2b2lkKCk+IHVwZGF0ZUZ1bmN0aW9uOwogICAgIHsKLSAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9
OwogICAgICAgICBtX2NvbXBvc2l0b3IgPSBudWxscHRyOwogICAgICAgICBtX3RhcmdldExheWVy
ID0gbnVsbHB0cjsKIApAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXJQcm94eTo6c2NoZWR1bGVSZWxlYXNlVW51c2VkQnVmZmVycygpCiAKIHZvaWQgVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6cmVsZWFzZVVudXNlZEJ1ZmZlcnNUaW1lckZp
cmVkKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgIExvY2tlciBsb2Nr
ZXIgeyBtX2xvY2sgfTsKICAgICBpZiAobV91c2VkQnVmZmVycy5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIApAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eTo6cmVsZWFzZVVudXNlZEJ1ZmZlcnNUaW1lckZpcmVkKCkKIHZvaWQgVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6c3dhcEJ1ZmZlcigpCiB7CiAgICAgQVNTRVJUKG1f
Y29tcG9zaXRvclRocmVhZCA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwotICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlmICgh
bV90YXJnZXRMYXllciB8fCAhbV9wZW5kaW5nQnVmZmVyKQogICAgICAgICByZXR1cm47CiAKQEAg
LTIxOCwxMSArMjE4LDExIEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6
ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJlKGJvCiAKICAgICBtX2NvbXBv
c2l0b3JUaHJlYWRVcGRhdGVGdW5jdGlvbiA9CiAgICAgICAgIFt0aGlzLCBzaG91bGRXYWl0XSB7
Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgICAgICAgICAgTG9j
a2VyIGxvY2tlciB7IG1fbG9jayB9OwogCiAgICAgICAgICAgICBhdXRvIG1heWJlTm90aWZ5U3lu
Y2hyb25vdXNPcGVyYXRpb24gPSBXVEY6Om1ha2VTY29wZUV4aXQoW3RoaXMsIHNob3VsZFdhaXRd
KCkgewogICAgICAgICAgICAgICAgIGlmIChzaG91bGRXYWl0KSB7Ci0gICAgICAgICAgICAgICAg
ICAgIExvY2tIb2xkZXIgaG9sZGVyKG1fd2FzQnVmZmVyRHJvcHBlZExvY2spOworICAgICAgICAg
ICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV93YXNCdWZmZXJEcm9wcGVkTG9jayB9OwogICAg
ICAgICAgICAgICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWQgPSB0cnVlOwogICAgICAgICAgICAg
ICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWRDb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgICAg
ICAgICAgICAgfQpAQCAtMjQxLDE0ICsyNDEsMTUgQEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllclByb3h5Ojpkcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJlc2VydmluZ1RleHR1cmUoYm8K
ICAgICAgICAgfTsKIAogICAgIGlmIChzaG91bGRXYWl0KSB7Ci0gICAgICAgIExvY2tIb2xkZXIg
aG9sZGVyKG1fd2FzQnVmZmVyRHJvcHBlZExvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
bV93YXNCdWZmZXJEcm9wcGVkTG9jayB9OwogICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWQgPSBm
YWxzZTsKICAgICB9CiAKICAgICBtX2NvbXBvc2l0b3JUaHJlYWRVcGRhdGVUaW1lci0+c3RhcnRP
bmVTaG90KDBfcyk7CiAgICAgaWYgKHNob3VsZFdhaXQpIHsKLSAgICAgICAgTG9ja0hvbGRlciBo
b2xkZXIobV93YXNCdWZmZXJEcm9wcGVkTG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBt
X3dhc0J1ZmZlckRyb3BwZWRMb2NrIH07CiAgICAgICAgIG1fd2FzQnVmZmVyRHJvcHBlZENvbmRp
dGlvbi53YWl0KG1fd2FzQnVmZmVyRHJvcHBlZExvY2ssIFt0aGlzXSB7CisgICAgICAgICAgICBh
c3NlcnRJc0hlbGQobV93YXNCdWZmZXJEcm9wcGVkTG9jayk7CiAgICAgICAgICAgICByZXR1cm4g
bV93YXNCdWZmZXJEcm9wcGVkOwogICAgICAgICB9KTsKICAgICB9CkBAIC0yNTYsNyArMjU3LDcg
QEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpkcm9wQ3VycmVudEJ1ZmZl
cldoaWxlUHJlc2VydmluZ1RleHR1cmUoYm8KIAogYm9vbCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllclByb3h5OjpzY2hlZHVsZVVwZGF0ZU9uQ29tcG9zaXRvclRocmVhZChGdW5jdGlvbjx2b2lk
KCk+JiYgdXBkYXRlRnVuY3Rpb24pCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsK
KyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgbV9jb21wb3NpdG9yVGhyZWFkVXBk
YXRlRnVuY3Rpb24gPSBXVEZNb3ZlKHVwZGF0ZUZ1bmN0aW9uKTsKIAogICAgIGlmICghbV9jb21w
b3NpdG9yVGhyZWFkVXBkYXRlVGltZXIpCkBAIC0yNzAsNyArMjcxLDcgQEAgdm9pZCBUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpjb21wb3NpdG9yVGhyZWFkVXBkYXRlVGltZXJGaXJl
ZCgpCiB7CiAgICAgRnVuY3Rpb248dm9pZCgpPiB1cGRhdGVGdW5jdGlvbjsKICAgICB7Ci0gICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBt
X2xvY2sgfTsKICAgICAgICAgaWYgKCFtX2NvbXBvc2l0b3JUaHJlYWRVcGRhdGVGdW5jdGlvbikK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdXBkYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKG1f
Y29tcG9zaXRvclRocmVhZFVwZGF0ZUZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclBy
b3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oCmluZGV4IGY4MTRlYThlNGJmYzNhZWVjOTY1MGFjNmNm
YWU2M2Q2OWQ5YTc0NTYuLmMwODkxNTAxMDdkNjkwMjQwYWMwY2IyNWEwNDNkNGE1NzhkZTE5MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuaApAQCAt
MjgsOSArMjgsOSBAQAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIAogI2luY2x1ZGUg
IlRleHR1cmVNYXBwZXJHTEhlYWRlcnMuaCIKLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+Cisj
aW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExv
Y2suaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6
CiAgICAgLy8gVG8gYXZvaWQgbXVsdGlwbGUgbG9jay9yZWxlYXNlIHNpdHVhdGlvbiB0byB1cGRh
dGUgYSBzaW5nbGUgZnJhbWUsCiAgICAgLy8gdGhlIGltcGxlbWVudGF0aW9uIG9mIFRleHR1cmVN
YXBwZXJQbGF0Zm9ybUxheWVyUHJveHlQcm92aWRlciBzaG91bGQKICAgICAvLyBhcXVpcmUgLyBy
ZWxlYXNlIHRoZSBsb2NrIGV4cGxpY2l0bHkgdG8gdXNlIGJlbG93IG1ldGhvZHMuCi0gICAgTG9j
ayYgbG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQorICAgIENoZWNrZWRMb2NrJiBsb2NrKCkgV1RG
X1JFVFVSTlNfTE9DSyhtX2xvY2spIHsgcmV0dXJuIG1fbG9jazsgfQogICAgIHN0ZDo6dW5pcXVl
X3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4gZ2V0QXZhaWxhYmxlQnVmZmVy
KGNvbnN0IEludFNpemUmLCBHTGludCBpbnRlcm5hbEZvcm1hdCk7CiAgICAgdm9pZCBwdXNoTmV4
dEJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+
JiYpOwogICAgIGJvb2wgaXNBY3RpdmUoKTsKQEAgLTg0LDExICs4NCwxMSBAQCBwcml2YXRlOgog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4gbV9j
dXJyZW50QnVmZmVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllckJ1ZmZlcj4gbV9wZW5kaW5nQnVmZmVyOwogCi0gICAgTG9jayBtX2xvY2s7CisgICAgQ2hl
Y2tlZExvY2sgbV9sb2NrOwogCi0gICAgTG9jayBtX3dhc0J1ZmZlckRyb3BwZWRMb2NrOwotICAg
IENvbmRpdGlvbiBtX3dhc0J1ZmZlckRyb3BwZWRDb25kaXRpb247Ci0gICAgYm9vbCBtX3dhc0J1
ZmZlckRyb3BwZWQgeyBmYWxzZSB9OworICAgIENoZWNrZWRMb2NrIG1fd2FzQnVmZmVyRHJvcHBl
ZExvY2s7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBtX3dhc0J1ZmZlckRyb3BwZWRDb25kaXRpb247
CisgICAgYm9vbCBtX3dhc0J1ZmZlckRyb3BwZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX3dhc0J1
ZmZlckRyb3BwZWRMb2NrKSB7IGZhbHNlIH07CiAKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRy
PFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPj4gbV91c2VkQnVmZmVyczsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcDo6VGltZXI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQ
cm94eT4+IG1fcmVsZWFzZVVudXNlZEJ1ZmZlcnNUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCmluZGV4IDgyOGNi
MTA3NWE2MGUzY2EwYWE4YzNkMzM4ZWZhMjNjOWUxYTRjYWIuLmIyYTRmZGQ2ZmZjNmZlZTMxMzUy
NmJmYWY0ZjliMmRmNTkxZjlmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcApAQCAtODUsMTMgKzg1LDEzIEBAIHZv
aWQgQ29tcG9zaXRpbmdSdW5Mb29wOjpwZXJmb3JtVGFzayhGdW5jdGlvbjx2b2lkICgpPiYmIGZ1
bmN0aW9uKQogdm9pZCBDb21wb3NpdGluZ1J1bkxvb3A6OnBlcmZvcm1UYXNrU3luYyhGdW5jdGlv
bjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9kaXNwYXRjaFN5bmNDb25kaXRpb25NdXRleCk7Cisg
ICAgTG9ja2VyIGxvY2tlciB7IG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uTG9jayB9OwogICAgIG1f
cnVuTG9vcC0+ZGlzcGF0Y2goW3RoaXMsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIHsK
ICAgICAgICAgZnVuY3Rpb24oKTsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kaXNwYXRj
aFN5bmNDb25kaXRpb25NdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2Rpc3BhdGNo
U3luY0NvbmRpdGlvbkxvY2sgfTsKICAgICAgICAgbV9kaXNwYXRjaFN5bmNDb25kaXRpb24ubm90
aWZ5T25lKCk7CiAgICAgfSk7Ci0gICAgbV9kaXNwYXRjaFN5bmNDb25kaXRpb24ud2FpdChtX2Rp
c3BhdGNoU3luY0NvbmRpdGlvbk11dGV4KTsKKyAgICBtX2Rpc3BhdGNoU3luY0NvbmRpdGlvbi53
YWl0KG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uTG9jayk7CiB9CiAKIHZvaWQgQ29tcG9zaXRpbmdS
dW5Mb29wOjpzdXNwZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKaW5kZXggNTk0MDBjYjYzMDRjNDI5ZDE0ZjNhMWNmZDA4
ZGM2ZjAwNzk0OWY0Zi4uNzdjNDY3YmEyZmMyZWQ2MTMzNTRmM2U4MWE3ZjQ3NTFhZTRhMGJlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdS
dW5Mb29wLmgKQEAgLTI4LDcgKzI4LDggQEAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Mp
CiAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4K
KyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2Vk
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC03MCw4ICs3MSw4IEBA
IHByaXZhdGU6CiAgICAgUnVuTG9vcCogbV9ydW5Mb29wIHsgbnVsbHB0ciB9OwogICAgIFJ1bkxv
b3A6OlRpbWVyPENvbXBvc2l0aW5nUnVuTG9vcD4gbV91cGRhdGVUaW1lcjsKICAgICBGdW5jdGlv
bjx2b2lkICgpPiBtX3VwZGF0ZUZ1bmN0aW9uOwotICAgIExvY2sgbV9kaXNwYXRjaFN5bmNDb25k
aXRpb25NdXRleDsKLSAgICBDb25kaXRpb24gbV9kaXNwYXRjaFN5bmNDb25kaXRpb247CisgICAg
Q2hlY2tlZExvY2sgbV9kaXNwYXRjaFN5bmNDb25kaXRpb25Mb2NrOworICAgIENoZWNrZWRDb25k
aXRpb24gbV9kaXNwYXRjaFN5bmNDb25kaXRpb247CiAKICAgICBzdHJ1Y3QgewogICAgICAgICBM
b2NrIGxvY2s7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429372</attachid>
            <date>2021-05-21 17:15:24 -0700</date>
            <delta_ts>2021-05-21 18:53:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226113-20210521171523.patch</filename>
            <type>text/plain</type>
            <size>50666</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGViMmMwNjY0MmJmMDk3ZmEyZmQ2NjFj
YTM0OGMwMTFlYTE1ZjVmN2EuLjY3NjlkMWQzM2M2YzNhZjA1NWQ4ZmE5NDkzNjFiMWJiOTViYzI2
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBsYWNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTEz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVXNlIENoZWNr
ZWRDb25kaXRpb24gaW4gbW9yZSBwbGFjZXMgdG8gYmVuZWZpdCBmcm9tIENsYW5nIFRocmVhZCBT
YWZldHkKKyAgICAgICAgQW5hbHlzaXMuCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5oOgorICAg
ICAgICAqIHd0Zi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmg6CisgICAgICAgICogd3RmL1dURlNl
bWFwaG9yZS5oOgorICAgICAgICAqIHd0Zi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoV1RGOjpX
b3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseSk6CisgICAgICAgICogd3RmL2dlbmVyaWMvUnVuTG9v
cEdlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjp+UnVuTG9vcCk6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OnBvcHVsYXRlVGFza3MpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpy
dW5JbXBsKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6Ondha2VVcFdpdGhMb2NrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6d2FrZVVwKToK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6c2NoZWR1bGUpOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpzY2hlZHVsZUFuZFdha2VVcFdpdGhMb2NrKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGlt
ZXJCYXNlOjp+VGltZXJCYXNlKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpz
dGFydCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCk6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUgY29uc3QpOgorICAgICAgICAq
IHd0Zi93aW4vUnVuTG9vcFdpbi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFz
ZTo6dGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQp
OgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdURjo6UnVu
TG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlIGNvbnN0KToKKwogMjAyMS0wNS0yMSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgdXNpbmcgaG9s
ZExvY2soKSBpbiBXVEYgYXMgaXQgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBDbGFuZyB0aHJlYWQg
c2FmZXR5IGFuYWx5c2lzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTlkMmI2NzMzYmY4Mjc5MGU3NjNkZDAwYzQ1
NjNjOTUxNWJhZTBiZC4uNjBiZjE2NDA3ODFiZTQ2YjI4OTZlMjhkZTUyMzU5ZGMxYjAwNDJlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIxLTA1LTIxICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIENoZWNrZWRDb25kaXRpb24gaW4gbW9yZSBw
bGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NjExMworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBD
aGVja2VkQ29uZGl0aW9uIGluIG1vcmUgcGxhY2VzIHRvIGJlbmVmaXQgZnJvbSBDbGFuZyBUaHJl
YWQgU2FmZXR5CisgICAgICAgIEFuYWx5c2lzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUYXNrU3lu
Y2hyb25pemVyOjp3YWl0Rm9yVGFza0NvbXBsZXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VUYXNrU3luY2hyb25pemVyOjp0YXNrQ29tcGxldGVkKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VU
YXNrU3luY2hyb25pemVyOjpXVEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAod2ViS2l0V2ViQXVkaW9TcmNSZW5kZXJBbmRQdXNoRnJhbWVzKToKKyAgICAgICAgKHdl
YktpdFdlYkF1ZGlvU3JjUmVuZGVySXRlcmF0aW9uKToKKyAgICAgICAgKHdlYktpdFdlYkF1ZGlv
U3JjQ2hhbmdlU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9J
bWFnZURlY29kZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVy
R1N0cmVhbWVyOjpzZXRIYXNFT1MpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyR1N0
cmVhbWVyOjpub3RpZnlTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyR1N0
cmVhbWVyOjpJbm5lckRlY29kZXI6OmhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpJbm5lckRlY29kZXI6OnByZXBhcmVQaXBlbGluZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJHU3RyZWFtZXI6OnB1c2hFbmNvZGVkRGF0YSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJl
YW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NYWluVGhyZWFk
Tm90aWZpZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnB1c2hUZXh0dXJlVG9Db21w
b3NpdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
cmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnRyaWdnZXJSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6Y2FuY2VsUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnB1c2hOZXh0SG9sZVB1bmNoQnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdEZvckNETUF0dGFjaG1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjZG1JbnN0YW5j
ZUF0dGFjaGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2hvbGVwdW5jaC9NZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSG9sZVB1bmNoOjpwdXNoTmV4dEhvbGVQ
dW5jaEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lh
SW1hZ2VCdWZmZXJQaXBlLmNwcDoKKyAgICAgICAgKE5pY29zaWE6Ok5pY29zaWFJbWFnZUJ1ZmZl
clBpcGVTb3VyY2U6OmhhbmRsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpHQ0dMTGF5
ZXI6OnN3YXBCdWZmZXJzSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6On5UZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllclByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyUHJveHk6OmFjdGl2YXRlT25Db21wb3NpdGluZ1RocmVhZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnJlbGVhc2VVbnVzZWRC
dWZmZXJzVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllclByb3h5Ojpzd2FwQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyUHJveHk6OmRyb3BDdXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4
dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5
OjpzY2hlZHVsZVVwZGF0ZU9uQ29tcG9zaXRvclRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpjb21wb3NpdG9yVGhyZWFkVXBkYXRlVGlt
ZXJGaXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyUHJveHk6OldURl9SRVRVUk5TX0xPQ0spOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6V1RGX0dVQVJERURfQllfTE9DSyk6CisK
IDIwMjEtMDUtMjEgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAg
ICAgICBTZXQgQ2FudmFzSW1hZ2VTbW9vdGhpbmcuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5IHZhbHVl
IHRvICdsb3cnIGFzIGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
aCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaAppbmRleCBiODYyZmJjMzM1ODRhYjVkYmNmNDgx
YmYxOGYyYTQzYmUyYzcyNGQxLi5lNDM2YmYyMzlhYmMyMmYxMmU4ZWQ0MDNiOTk1Y2Y4Yjg2YzUz
ZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvUnVuTG9vcC5oCkBAIC0yOCw4ICsyOCw4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KICNpbmNs
dWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb25EaXNwYXRjaGVyLmg+CkBAIC0xNDUsNyArMTQ1LDcgQEAgcHVibGljOgogICAg
ICAgICBSZWY8UnVuTG9vcD4gbV9ydW5Mb29wOwogCiAjaWYgVVNFKFdJTkRPV1NfRVZFTlRfTE9P
UCkKLSAgICAgICAgYm9vbCBpc0FjdGl2ZShjb25zdCBBYnN0cmFjdExvY2tlciYpIGNvbnN0Owor
ICAgICAgICBib29sIGlzQWN0aXZlV2l0aExvY2soKSBjb25zdCBXVEZfUkVRVUlSRVNfTE9DSyht
X3J1bkxvb3AtPm1fbG9vcExvY2spOwogICAgICAgICB2b2lkIHRpbWVyRmlyZWQoKTsKICAgICAg
ICAgTW9ub3RvbmljVGltZSBtX25leHRGaXJlRGF0ZTsKICAgICAgICAgU2Vjb25kcyBtX2ludGVy
dmFsOwpAQCAtMTU5LDggKzE1OSw4IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBtX2lzUmVwZWF0
aW5nIHsgZmFsc2UgfTsKICAgICAgICAgU2Vjb25kcyBtX2ludGVydmFsIHsgMCB9OwogI2VsaWYg
VVNFKEdFTkVSSUNfRVZFTlRfTE9PUCkKLSAgICAgICAgYm9vbCBpc0FjdGl2ZShjb25zdCBBYnN0
cmFjdExvY2tlciYpIGNvbnN0OwotICAgICAgICB2b2lkIHN0b3AoY29uc3QgQWJzdHJhY3RMb2Nr
ZXImKTsKKyAgICAgICAgYm9vbCBpc0FjdGl2ZVdpdGhMb2NrKCkgY29uc3QgV1RGX1JFUVVJUkVT
X0xPQ0sobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKKyAgICAgICAgdm9pZCBzdG9wV2l0aExvY2so
KSBXVEZfUkVRVUlSRVNfTE9DSyhtX3J1bkxvb3AtPm1fbG9vcExvY2spOwogCiAgICAgICAgIGNs
YXNzIFNjaGVkdWxlZFRhc2s7CiAgICAgICAgIFJlZlB0cjxTY2hlZHVsZWRUYXNrPiBtX3NjaGVk
dWxlZFRhc2s7CkBAIC0yMjgsNyArMjI4LDcgQEAgcHJpdmF0ZToKICAgICBMUkVTVUxUIHduZFBy
b2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0p
OwogICAgIEhXTkQgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdzsKIAotICAgIExvY2sgbV9sb29wTG9j
azsKKyAgICBDaGVja2VkTG9jayBtX2xvb3BMb2NrOwogI2VsaWYgVVNFKENPQ09BX0VWRU5UX0xP
T1ApCiAgICAgc3RhdGljIHZvaWQgcGVyZm9ybVdvcmsodm9pZCopOwogICAgIFJldGFpblB0cjxD
RlJ1bkxvb3BSZWY+IG1fcnVuTG9vcDsKQEAgLTI0Myw5ICsyNDMsOSBAQCBwcml2YXRlOgogICAg
IFdlYWtIYXNoU2V0PE9ic2VydmVyPiBtX29ic2VydmVyczsKICNlbGlmIFVTRShHRU5FUklDX0VW
RU5UX0xPT1ApCiAgICAgdm9pZCBzY2hlZHVsZShSZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNr
PiYmKTsKLSAgICB2b2lkIHNjaGVkdWxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgUmVmPFRpbWVy
QmFzZTo6U2NoZWR1bGVkVGFzaz4mJik7Ci0gICAgdm9pZCB3YWtlVXAoY29uc3QgQWJzdHJhY3RM
b2NrZXImKTsKLSAgICB2b2lkIHNjaGVkdWxlQW5kV2FrZVVwKGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiwgUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJik7CisgICAgdm9pZCBzY2hlZHVsZVdp
dGhMb2NrKFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+JiYpIFdURl9SRVFVSVJFU19MT0NL
KG1fbG9vcExvY2spOworICAgIHZvaWQgd2FrZVVwV2l0aExvY2soKSBXVEZfUkVRVUlSRVNfTE9D
SyhtX2xvb3BMb2NrKTsKKyAgICB2b2lkIHNjaGVkdWxlQW5kV2FrZVVwV2l0aExvY2soUmVmPFRp
bWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJikgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb29wTG9jayk7
CiAKICAgICBlbnVtIGNsYXNzIFJ1bk1vZGUgewogICAgICAgICBJdGVyYXRlLApAQCAtMjYxLDkg
KzI2MSw5IEBAIHByaXZhdGU6CiAKICAgICBmcmllbmQgY2xhc3MgVGltZXJCYXNlOwogCi0gICAg
TG9jayBtX2xvb3BMb2NrOworICAgIENoZWNrZWRMb2NrIG1fbG9vcExvY2s7CiAgICAgQ29uZGl0
aW9uIG1fcmVhZHlUb1J1bjsKLSAgICBDb25kaXRpb24gbV9zdG9wQ29uZGl0aW9uOworICAgIENo
ZWNrZWRDb25kaXRpb24gbV9zdG9wQ29uZGl0aW9uOwogICAgIFZlY3RvcjxSZWZQdHI8VGltZXJC
YXNlOjpTY2hlZHVsZWRUYXNrPj4gbV9zY2hlZHVsZXM7CiAgICAgVmVjdG9yPFN0YXR1cyo+IG1f
bWFpbkxvb3BzOwogICAgIGJvb2wgbV9zaHV0ZG93biB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmggYi9Tb3VyY2UvV1RGL3d0Zi9T
eW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmgKaW5kZXggMTBhZDg0NmZkYTcxN2VhNTY1ZDQzZTdhMmM1
MzIxMTFkNWM1OTRmNC4uYjM5MGRlMzk0ZmQyZTIzNzRlNTY2NDMxMzIzOTliZTczNTUxNjk3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1N5bmNocm9uaXplZEZpeGVkUXVldWUuaApAQCAtMjUsOSArMjUsOSBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRl
IDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtNDIsNyAr
NDIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG9wZW4oKQogICAgIHsKLSAgICAgICAgTG9ja0hv
bGRlciBsb2NrSG9sZGVyKG1fbXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2Nr
IH07CiAgICAgICAgIGlmIChtX29wZW4pCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTUzLDcg
KzUzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbG9zZSgpCiAgICAgewotICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tIb2xkZXIobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xv
Y2sgfTsKICAgICAgICAgaWYgKCFtX29wZW4pCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTY0
LDE2ICs2NCwxOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzT3BlbigpCiAgICAgewotICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tIb2xkZXIobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBtX2xvY2sgfTsKICAgICAgICAgcmV0dXJuIG1fb3BlbjsKICAgICB9CiAKICAgICBib29sIGVu
cXVldWUoY29uc3QgVCYgdmFsdWUpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tIb2xk
ZXIobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKIAogICAgICAg
ICAvLyBXYWl0IGZvciBhbiBlbXB0eSBwbGFjZSB0byBiZSBhdmFpbGFibGUgaW4gdGhlIHF1ZXVl
LgotICAgICAgICBtX2NvbmRpdGlvbi53YWl0KG1fbXV0ZXgsIFt0aGlzXSgpIHsgcmV0dXJuICFt
X29wZW4gfHwgbV9xdWV1ZS5zaXplKCkgPCBCdWZmZXJTaXplOyB9KTsKKyAgICAgICAgbV9jb25k
aXRpb24ud2FpdChtX2xvY2ssIFt0aGlzXSB7CisgICAgICAgICAgICBhc3NlcnRJc0hlbGQobV9s
b2NrKTsKKyAgICAgICAgICAgIHJldHVybiAhbV9vcGVuIHx8IG1fcXVldWUuc2l6ZSgpIDwgQnVm
ZmVyU2l6ZTsKKyAgICAgICAgfSk7CiAKICAgICAgICAgLy8gVGhlIHF1ZXVlIGlzIGNsb3Npbmcs
IGV4aXQgaW1tZWRpYXRlbHkuCiAgICAgICAgIGlmICghbV9vcGVuKQpAQCAtODksMTAgKzkyLDEz
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZGVxdWV1ZShUJiB2YWx1ZSkKICAgICB7Ci0gICAgICAg
IExvY2tIb2xkZXIgbG9ja0hvbGRlcihtX211dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7
IG1fbG9jayB9OwogCiAgICAgICAgIC8vIFdhaXQgZm9yIGFuIGl0ZW0gdG8gYmUgYWRkZWQuCi0g
ICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9tdXRleCwgW3RoaXNdKCkgeyByZXR1cm4gIW1fb3Bl
biB8fCBtX3F1ZXVlLnNpemUoKTsgfSk7CisgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9sb2Nr
LCBbdGhpc10geworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jayk7CisgICAgICAgICAg
ICByZXR1cm4gIW1fb3BlbiB8fCBtX3F1ZXVlLnNpemUoKTsKKyAgICAgICAgfSk7CiAKICAgICAg
ICAgLy8gVGhlIHF1ZXVlIGlzIGNsb3NpbmcsIGV4aXQgaW1tZWRpYXRlbHkuCiAgICAgICAgIGlm
ICghbV9vcGVuKQpAQCAtMTEzLDExICsxMTksMTEgQEAgcHJpdmF0ZToKICAgICAgICAgc3RhdGlj
X2Fzc2VydCghKChCdWZmZXJTaXplIC0gMSkgJiBCdWZmZXJTaXplKSwgIkJ1ZmZlclNpemUgbXVz
dCBiZSBwb3dlciBvZiAyLiIpOwogICAgIH0KIAotICAgIExvY2sgbV9tdXRleDsKLSAgICBDb25k
aXRpb24gbV9jb25kaXRpb247CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgIENoZWNrZWRD
b25kaXRpb24gbV9jb25kaXRpb247CiAKLSAgICBib29sIG1fb3BlbiB7IHRydWUgfTsKLSAgICBE
ZXF1ZTxULCBCdWZmZXJTaXplPiBtX3F1ZXVlOworICAgIGJvb2wgbV9vcGVuIFdURl9HVUFSREVE
X0JZX0xPQ0sobV9sb2NrKSB7IHRydWUgfTsKKyAgICBEZXF1ZTxULCBCdWZmZXJTaXplPiBtX3F1
ZXVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1dURlNlbWFwaG9yZS5oIGIvU291cmNlL1dURi93dGYvV1RGU2VtYXBob3Jl
LmgKaW5kZXggOTVkOGQ0MDUxZjc0NzEyZmRmY2ZhMGE5ZTlhMWM2Y2NjZDBjN2FmOC4uNWE5ODBm
NmU2NDYyZWQ1M2VkZWY5YzYxOWJhNzIwMTZmNjkyMTliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvV1RGU2VtYXBob3JlLmgKKysrIGIvU291cmNlL1dURi93dGYvV1RGU2VtYXBob3JlLmgK
QEAgLTI1LDggKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvQ29uZGl0
aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRp
dGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTUwLDEwICs1MCwxMCBAQCBwdWJsaWM6
CiAgICAgYm9vbCB3YWl0VW50aWwoY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1l
b3V0KQogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwotICAgICAgICBi
b29sIHNhdGlzZmllZCA9IG1fY29uZGl0aW9uLndhaXRVbnRpbChtX2xvY2ssIHRpbWVvdXQsCi0g
ICAgICAgICAgICBbJl0gewotICAgICAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlOwotICAgICAg
ICAgICAgfSk7CisgICAgICAgIGJvb2wgc2F0aXNmaWVkID0gbV9jb25kaXRpb24ud2FpdFVudGls
KG1fbG9jaywgdGltZW91dCwgWyZdIHsKKyAgICAgICAgICAgIGFzc2VydElzSGVsZChtX2xvY2sp
OworICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWU7CisgICAgICAgIH0pOwogICAgICAgICBpZiAo
c2F0aXNmaWVkKQogICAgICAgICAgICAgLS1tX3ZhbHVlOwogICAgICAgICByZXR1cm4gc2F0aXNm
aWVkOwpAQCAtNzAsOSArNzAsOSBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHVu
c2lnbmVkIG1fdmFsdWUgeyAwIH07Ci0gICAgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0aW9uIG1f
Y29uZGl0aW9uOworICAgIHVuc2lnbmVkIG1fdmFsdWUgV1RGX0dVQVJERURfQllfTE9DSyhtX2xv
Y2spIHsgMCB9OworICAgIENoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9u
IG1fY29uZGl0aW9uOwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVl
dWUuY3BwIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcAppbmRleCBkZjdkMzdhOGVjNjQ1
NTJhZTAxYzJkNTkwZDM1ZGUwMmY1NTExNjQ1Li5jY2FkNWJlODc1ZjQwOGIwMzkyOWY2YjE3MWMx
M2UwODQ4ODA4YzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKQEAgLTI4LDEwICsyOCwxMCBAQAogI2lu
Y2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KIAogI2luY2x1ZGUgPG11dGV4PgotI2luY2x1ZGUgPHd0
Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1
ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRl
IDx3dGYvUmVmLmg+CkBAIC0xMDUsOCArMTA1LDcgQEAgdm9pZCBXb3JrUXVldWU6OmNvbmN1cnJl
bnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywgV1RGOjpGdW5jdGlvbjx2b2lkIChzaXplX3QgaW4K
IAogICAgICAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZCAoKT4qIGZ1
bmN0aW9uKQogICAgICAgICB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihtX2xvY2sp
OwotCisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgICAgICBt
X3F1ZXVlLmFwcGVuZChmdW5jdGlvbik7CiAgICAgICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlP
bmUoKTsKICAgICAgICAgfQpAQCAtMTE4LDkgKzExNyw5IEBAIHZvaWQgV29ya1F1ZXVlOjpjb25j
dXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZCAoc2l6ZV90
IGluCiAgICAgICAgICAgICAgICAgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiogZnVuY3Rp
b247CiAKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIExvY2tIb2xkZXIg
aG9sZGVyKG1fbG9jayk7Ci0KKyAgICAgICAgICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1f
bG9jayB9OwogICAgICAgICAgICAgICAgICAgICBtX2NvbmRpdGlvbi53YWl0KG1fbG9jaywgW3Ro
aXNdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydElzSGVsZChtX2xvY2spOwogICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFtX3F1ZXVlLmlzRW1wdHkoKTsKICAgICAgICAg
ICAgICAgICAgICAgfSk7CiAKQEAgLTEzMSw5ICsxMzAsOSBAQCB2b2lkIFdvcmtRdWV1ZTo6Y29u
Y3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKHNpemVf
dCBpbgogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgTG9jayBtX2xvY2s7Ci0g
ICAgICAgIENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKLSAgICAgICAgRGVxdWU8Y29uc3QgV1RGOjpG
dW5jdGlvbjx2b2lkICgpPio+IG1fcXVldWU7CisgICAgICAgIENoZWNrZWRMb2NrIG1fbG9jazsK
KyAgICAgICAgQ2hlY2tlZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKKyAgICAgICAgRGVxdWU8Y29u
c3QgRnVuY3Rpb248dm9pZCgpPio+IG1fcXVldWUgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2sp
OwogCiAgICAgICAgIFZlY3RvcjxSZWY8VGhyZWFkPj4gbV93b3JrZXJzOwogICAgIH07CkBAIC0x
NTAsMTAgKzE0OSwxMCBAQCB2b2lkIFdvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KHNpemVfdCBp
dGVyYXRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKHNpemVfdCBpbgogICAgIHN0ZDo6YXRvbWlj
PHNpemVfdD4gY3VycmVudEluZGV4KDApOwogICAgIHN0ZDo6YXRvbWljPHNpemVfdD4gYWN0aXZl
VGhyZWFkcyh3b3JrZXJDb3VudCArIDEpOwogCi0gICAgQ29uZGl0aW9uIGNvbmRpdGlvbjsKLSAg
ICBMb2NrIGxvY2s7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBjb25kaXRpb247CisgICAgQ2hlY2tl
ZExvY2sgbG9jazsKIAotICAgIFdURjo6RnVuY3Rpb248dm9pZCAoKT4gYXBwbGllciA9IFsmLCBm
dW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CisgICAgRnVuY3Rpb248dm9pZCAoKT4gYXBw
bGllciA9IFsmLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CiAgICAgICAgIHNpemVf
dCBpbmRleDsKIAogICAgICAgICAvLyBDYWxsIHRoZSBmdW5jdGlvbiBmb3IgYXMgbG9uZyBhcyB0
aGVyZSBhcmUgaXRlcmF0aW9ucyBsZWZ0LgpAQCAtMTYyLDcgKzE2MSw3IEBAIHZvaWQgV29ya1F1
ZXVlOjpjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVuY3Rpb248dm9p
ZCAoc2l6ZV90IGluCiAKICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIGFjdGl2ZSB0aHJlYWRz
IGxlZnQsIHNpZ25hbCB0aGUgY2FsbGVyLgogICAgICAgICBpZiAoIS0tYWN0aXZlVGhyZWFkcykg
ewotICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIobG9jayk7CisgICAgICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgbG9jayB9OwogICAgICAgICAgICAgY29uZGl0aW9uLm5vdGlmeU9uZSgpOwog
ICAgICAgICB9CiAgICAgfTsKQEAgLTE3MSw3ICsxNzAsNyBAQCB2b2lkIFdvcmtRdWV1ZTo6Y29u
Y3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKHNpemVf
dCBpbgogICAgICAgICB0aHJlYWRQb29sLT5kaXNwYXRjaCgmYXBwbGllcik7CiAgICAgYXBwbGll
cigpOwogCi0gICAgTG9ja0hvbGRlciBob2xkZXIobG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7
IGxvY2sgfTsKICAgICBjb25kaXRpb24ud2FpdChsb2NrLCBbJl0geyByZXR1cm4gIWFjdGl2ZVRo
cmVhZHM7IH0pOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmlj
L1J1bkxvb3BHZW5lcmljLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVy
aWMuY3BwCmluZGV4IDEyYzhhOWQzMWU0NjM1Njk3OTk0NjVmZjcxNjgwZWYwYzhhMDVlNTguLjg0
ODFkMjY2OWVmZmI2MDYxYjg5NGEzNDE5YjExODEwYWUyNzdhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgUnVuTG9vcDo6
UnVuTG9vcCgpCiAKIFJ1bkxvb3A6On5SdW5Mb29wKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2xvb3BMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb29wTG9jayB9OwogICAgIG1f
c2h1dGRvd24gPSB0cnVlOwogICAgIG1fcmVhZHlUb1J1bi5ub3RpZnlPbmUoKTsKIApAQCAtMTE2
LDcgKzExNiw3IEBAIFJ1bkxvb3A6On5SdW5Mb29wKCkKIAogaW5saW5lIGJvb2wgUnVuTG9vcDo6
cG9wdWxhdGVUYXNrcyhSdW5Nb2RlIHJ1bk1vZGUsIFN0YXR1cyYgc3RhdHVzT2ZUaGlzTG9vcCwg
RGVxdWU8UmVmUHRyPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4+JiBmaXJlZFRpbWVycykKIHsK
LSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvb3BMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsg
bV9sb29wTG9jayB9OwogCiAgICAgaWYgKHJ1bk1vZGUgPT0gUnVuTW9kZTo6RHJhaW4pIHsKICAg
ICAgICAgTW9ub3RvbmljVGltZSBzbGVlcFVudGlsID0gTW9ub3RvbmljVGltZTo6aW5maW5pdHko
KTsKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFJ1bkxvb3A6OnJ1bkltcGwoUnVuTW9kZSBydW5N
b2RlKQogCiAgICAgU3RhdHVzIHN0YXR1c09mVGhpc0xvb3AgPSBTdGF0dXM6OkNsZWFyOwogICAg
IHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb29wTG9jayk7CisgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBtX2xvb3BMb2NrIH07CiAgICAgICAgIG1fbWFpbkxvb3BzLmFwcGVuZCgmc3Rh
dHVzT2ZUaGlzTG9vcCk7CiAgICAgfQogCkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBSdW5Mb29w
OjpzZXRXYWtlVXBDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKIAog
dm9pZCBSdW5Mb29wOjpzdG9wKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvb3BMb2Nr
KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb29wTG9jayB9OwogICAgIGlmIChtX21haW5Mb29w
cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQg
UnVuTG9vcDo6c3RvcCgpCiAgICAgfQogfQogCi12b2lkIFJ1bkxvb3A6Ondha2VVcChjb25zdCBB
YnN0cmFjdExvY2tlciYpCit2b2lkIFJ1bkxvb3A6Ondha2VVcFdpdGhMb2NrKCkKIHsKICAgICBt
X3BlbmRpbmdUYXNrcyA9IHRydWU7CiAgICAgbV9yZWFkeVRvUnVuLm5vdGlmeU9uZSgpOwpAQCAt
MjI0LDggKzIyNCw4IEBAIHZvaWQgUnVuTG9vcDo6d2FrZVVwKGNvbnN0IEFic3RyYWN0TG9ja2Vy
JikKIAogdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9vcExvY2spOwotICAgIHdha2VVcChsb2NrZXIpOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xv
b3BMb2NrIH07CisgICAgd2FrZVVwV2l0aExvY2soKTsKIH0KIAogUnVuTG9vcDo6Q3ljbGVSZXN1
bHQgUnVuTG9vcDo6Y3ljbGUoUnVuTG9vcE1vZGUpCkBAIC0yMzQsNyArMjM0LDcgQEAgUnVuTG9v
cDo6Q3ljbGVSZXN1bHQgUnVuTG9vcDo6Y3ljbGUoUnVuTG9vcE1vZGUpCiAgICAgcmV0dXJuIEN5
Y2xlUmVzdWx0OjpDb250aW51ZTsKIH0KIAotdm9pZCBSdW5Mb29wOjpzY2hlZHVsZShjb25zdCBB
YnN0cmFjdExvY2tlciYsIFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+JiYgdGFzaykKK3Zv
aWQgUnVuTG9vcDo6c2NoZWR1bGVXaXRoTG9jayhSZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNr
PiYmIHRhc2spCiB7CiAgICAgbV9zY2hlZHVsZXMuYXBwZW5kKHRhc2sucHRyKCkpOwogICAgIHN0
ZDo6cHVzaF9oZWFwKG1fc2NoZWR1bGVzLmJlZ2luKCksIG1fc2NoZWR1bGVzLmVuZCgpLCBUaW1l
ckJhc2U6OlNjaGVkdWxlZFRhc2s6OkVhcmxpZXN0U2NoZWR1bGUoKSk7CkBAIC0yNDIsMTQgKzI0
MiwxNCBAQCB2b2lkIFJ1bkxvb3A6OnNjaGVkdWxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgUmVm
PFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJiB0YQogCiB2b2lkIFJ1bkxvb3A6OnNjaGVkdWxl
KFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+JiYgdGFzaykKIHsKLSAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2xvb3BMb2NrKTsKLSAgICBzY2hlZHVsZShsb2NrZXIsIFdURk1vdmUodGFzaykp
OworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvb3BMb2NrIH07CisgICAgc2NoZWR1bGVXaXRoTG9j
ayhXVEZNb3ZlKHRhc2spKTsKIH0KIAotdm9pZCBSdW5Mb29wOjpzY2hlZHVsZUFuZFdha2VVcChj
b25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBSZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNr
PiYmIHRhc2spCit2b2lkIFJ1bkxvb3A6OnNjaGVkdWxlQW5kV2FrZVVwV2l0aExvY2soUmVmPFRp
bWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJiB0YXNrKQogewotICAgIHNjaGVkdWxlKGxvY2tlciwg
V1RGTW92ZSh0YXNrKSk7Ci0gICAgd2FrZVVwKGxvY2tlcik7CisgICAgc2NoZWR1bGVXaXRoTG9j
ayhXVEZNb3ZlKHRhc2spKTsKKyAgICB3YWtlVXBXaXRoTG9jaygpOwogfQogCiAvLyBTaW5jZSBS
dW5Mb29wIGRvZXMgbm90IG93biB0aGUgcmVnaXN0ZXJlZCBUaW1lckJhc2UsCkBAIC0yNjIsMjEg
KzI2MiwyMSBAQCBSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wJiBydW5Mb29w
KQogCiBSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQogewotICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9jayk7Ci0gICAgc3RvcChsb2NrZXIpOworICAgIExv
Y2tlciBsb2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAgICBzdG9wV2l0aExvY2so
KTsKIH0KIAogdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KFNlY29uZHMgaW50ZXJ2YWws
IGJvb2wgcmVwZWF0aW5nKQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9s
b29wTG9jayk7Ci0gICAgc3RvcChsb2NrZXIpOworICAgIExvY2tlciBsb2NrZXIgeyBtX3J1bkxv
b3AtPm1fbG9vcExvY2sgfTsKKyAgICBzdG9wV2l0aExvY2soKTsKICAgICBtX3NjaGVkdWxlZFRh
c2sgPSBTY2hlZHVsZWRUYXNrOjpjcmVhdGUoW3RoaXNdIHsKICAgICAgICAgZmlyZWQoKTsKICAg
ICB9LCBpbnRlcnZhbCwgcmVwZWF0aW5nKTsKLSAgICBtX3J1bkxvb3AtPnNjaGVkdWxlQW5kV2Fr
ZVVwKGxvY2tlciwgKm1fc2NoZWR1bGVkVGFzayk7CisgICAgbV9ydW5Mb29wLT5zY2hlZHVsZUFu
ZFdha2VVcFdpdGhMb2NrKCptX3NjaGVkdWxlZFRhc2spOwogfQogCi12b2lkIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6c3RvcChjb25zdCBBYnN0cmFjdExvY2tlciYpCit2b2lkIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6c3RvcFdpdGhMb2NrKCkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRUYXNrKSB7CiAgICAg
ICAgIG1fc2NoZWR1bGVkVGFzay0+ZGVhY3RpdmF0ZSgpOwpAQCAtMjg2LDI1ICsyODYsMjUgQEAg
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoY29uc3QgQWJzdHJhY3RMb2NrZXImKQogCiB2
b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKLSAgICBzdG9wKGxvY2tlcik7CisgICAgTG9ja2VyIGxv
Y2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9OworICAgIHN0b3BXaXRoTG9jaygpOwogfQog
CiBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAogewotICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9jayk7Ci0gICAgcmV0dXJuIGlzQWN0aXZl
KGxvY2tlcik7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9Owor
ICAgIHJldHVybiBpc0FjdGl2ZVdpdGhMb2NrKCk7CiB9CiAKLWJvb2wgUnVuTG9vcDo6VGltZXJC
YXNlOjppc0FjdGl2ZShjb25zdCBBYnN0cmFjdExvY2tlciYpIGNvbnN0Citib29sIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6aXNBY3RpdmVXaXRoTG9jaygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2No
ZWR1bGVkVGFzayAmJiBtX3NjaGVkdWxlZFRhc2stPmlzQWN0aXZlKCk7CiB9CiAKIFNlY29uZHMg
UnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKIHsKLSAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fbG9vcExvY2spOwotICAgIGlmIChpc0FjdGl2ZShs
b2NrZXIpKQorICAgIExvY2tlciBsb2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAg
ICBpZiAoaXNBY3RpdmVXaXRoTG9jaygpKQogICAgICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25k
cz4obV9zY2hlZHVsZWRUYXNrLT5zY2hlZHVsZWRUaW1lUG9pbnQoKSAtIE1vbm90b25pY1RpbWU6
Om5vdygpLCAwX3MpOwogICAgIHJldHVybiAwX3M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5j
cHAKaW5kZXggYTRjNDdhNmQyYzM3YWQ3MmU2NTY3MzE2YWUxMmEwMjFjZWM3NTZkOS4uNTMzMTQz
OTVhMDE1YTgyZjkyODhmM2RkMGU4MGQxNDU2MmI1NmUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvd2luL1J1bkxvb3BXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29w
V2luLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIFJ1bkxvb3A6OkN5Y2xlUmVzdWx0IFJ1bkxvb3A6
OmN5Y2xlKFJ1bkxvb3BNb2RlKQogdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQo
KQogewogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BM
b2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fcnVuTG9vcC0+bV9sb29wTG9jayB9Owog
CiAgICAgICAgIGlmICghbV9pc0FjdGl2ZSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3Niw3
ICsxNzYsNyBAQCBSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQogCiB2b2lkIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6c3RhcnQoU2Vjb25kcyBpbnRlcnZhbCwgYm9vbCByZXBlYXQpCiB7Ci0g
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKKyAgICBMb2NrZXIg
bG9ja2VyIHsgbV9ydW5Mb29wLT5tX2xvb3BMb2NrIH07CiAgICAgbV9pc1JlcGVhdGluZyA9IHJl
cGVhdDsKICAgICBtX2lzQWN0aXZlID0gdHJ1ZTsKICAgICBtX2ludGVydmFsID0gaW50ZXJ2YWw7
CkBAIC0xODYsMjkgKzE4NiwyOSBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoU2Vj
b25kcyBpbnRlcnZhbCwgYm9vbCByZXBlYXQpCiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpz
dG9wKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fbG9vcExvY2spOwot
ICAgIGlmICghaXNBY3RpdmUobG9ja2VyKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9ydW5Mb29w
LT5tX2xvb3BMb2NrIH07CisgICAgaWYgKCFpc0FjdGl2ZVdpdGhMb2NrKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1faXNBY3RpdmUgPSBmYWxzZTsKICAgICA6OktpbGxUaW1lcihtX3J1bkxv
b3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KHRoaXMp
KTsKIH0KIAotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKGNvbnN0IEFic3RyYWN0
TG9ja2VyJikgY29uc3QKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZVdpdGhMb2Nr
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pc0FjdGl2ZTsKIH0KIAogYm9vbCBSdW5Mb29wOjpU
aW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1
bkxvb3AtPm1fbG9vcExvY2spOwotICAgIHJldHVybiBpc0FjdGl2ZShsb2NrZXIpOworICAgIExv
Y2tlciBsb2NrZXIgeyBtX3J1bkxvb3AtPm1fbG9vcExvY2sgfTsKKyAgICByZXR1cm4gaXNBY3Rp
dmVXaXRoTG9jaygpOwogfQogCiBTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1Vu
dGlsRmlyZSgpIGNvbnN0CiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xv
b3BMb2NrKTsKLSAgICBpZiAoaXNBY3RpdmUobG9ja2VyKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsg
bV9ydW5Mb29wLT5tX2xvb3BMb2NrIH07CisgICAgaWYgKGlzQWN0aXZlV2l0aExvY2soKSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+KG1fbmV4dEZpcmVEYXRlIC0gTW9ub3Rvbmlj
VGltZTo6bm93KCksIDBfcyk7CiAgICAgcmV0dXJuIDBfczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAppbmRleCBkYjIyYWFj
NGEzOGM0MTIyNzNlOTM3YWUyYjA2MTQ1ZmFlYzM1NmEyLi5iZWYwMzllMTVlODI1NjUwNzBmMGUz
N2Y5ZjMzOWY1YTRmYTEzNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCkBAIC00MSwxOCArNDEsMTYgQEAgRGF0YWJhc2VU
YXNrU3luY2hyb25pemVyOjpEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIoKQogCiB2b2lkIERhdGFi
YXNlVGFza1N5bmNocm9uaXplcjo6d2FpdEZvclRhc2tDb21wbGV0aW9uKCkKIHsKLSAgICBtX3N5
bmNocm9ub3VzTXV0ZXgubG9jaygpOworICAgIExvY2tlciBsb2NrZXIgeyBtX3N5bmNocm9ub3Vz
TG9jayB9OwogICAgIHdoaWxlICghbV90YXNrQ29tcGxldGVkKQotICAgICAgICBtX3N5bmNocm9u
b3VzQ29uZGl0aW9uLndhaXQobV9zeW5jaHJvbm91c011dGV4KTsKLSAgICBtX3N5bmNocm9ub3Vz
TXV0ZXgudW5sb2NrKCk7CisgICAgICAgIG1fc3luY2hyb25vdXNDb25kaXRpb24ud2FpdChtX3N5
bmNocm9ub3VzTG9jayk7CiB9CiAKIHZvaWQgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp0YXNr
Q29tcGxldGVkKCkKIHsKLSAgICBtX3N5bmNocm9ub3VzTXV0ZXgubG9jaygpOworICAgIExvY2tl
ciBsb2NrZXIgeyBtX3N5bmNocm9ub3VzTG9jayB9OwogICAgIG1fdGFza0NvbXBsZXRlZCA9IHRy
dWU7CiAgICAgbV9zeW5jaHJvbm91c0NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICBtX3N5bmNo
cm9ub3VzTXV0ZXgudW5sb2NrKCk7CiB9CiAKIERhdGFiYXNlVGFzazo6RGF0YWJhc2VUYXNrKERh
dGFiYXNlJiBkYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBzeW5jaHJvbml6ZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VGFzay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2su
aAppbmRleCA5MTZlOTE4OWE4ZmU3NzEwYjY0MzBmOTcxNjdhZWU5ZWE4MmU5NDg1Li43ZDE2ZDU2
N2NhYjEzMzdlMzI2MWRjN2RkMzM1NjVmNDMzNjljZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgKQEAgLTI5LDkgKzI5LDkgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlIDx3dGYv
Q29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRl
IDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUg
PHd0Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTcsOSArNTcsOSBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBib29sIG1fdGFza0NvbXBsZXRlZCB7IGZh
bHNlIH07Ci0gICAgTG9jayBtX3N5bmNocm9ub3VzTXV0ZXg7Ci0gICAgQ29uZGl0aW9uIG1fc3lu
Y2hyb25vdXNDb25kaXRpb247CisgICAgYm9vbCBtX3Rhc2tDb21wbGV0ZWQgV1RGX0dVQVJERURf
QllfTE9DSyhtX3N5bmNocm9ub3VzTG9jaykgeyBmYWxzZSB9OworICAgIENoZWNrZWRMb2NrIG1f
c3luY2hyb25vdXNMb2NrOworICAgIENoZWNrZWRDb25kaXRpb24gbV9zeW5jaHJvbm91c0NvbmRp
dGlvbjsKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGJvb2wgbV9oYXNDaGVja2VkRm9yVGVybWlu
YXRpb24geyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291
cmNlR1N0cmVhbWVyLmNwcAppbmRleCA4Y2ViMThjMTgxYzFjODEzYmNhYzc1ODI0NTAyYTI5MDk5
Zjk3NTgwLi5hNzg4OWY4NzI0NGI1NjdlNTg4MjE3NGVlODhkYmM2ZTZhZDI3ZWZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVk
aW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTMxLDggKzMx
LDggQEAKICNpbmNsdWRlIDxnc3QvYXBwL2dzdGFwcHNyYy5oPgogI2luY2x1ZGUgPGdzdC9hdWRp
by9hdWRpby1pbmZvLmg+CiAjaW5jbHVkZSA8Z3N0L3BidXRpbHMvbWlzc2luZy1wbHVnaW5zLmg+
Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5j
bHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KQEAgLTg0LDkgKzg0LDkgQEAgc3Ry
dWN0IF9XZWJLaXRXZWJBdWRpb1NyY1ByaXZhdGUgewogICAgIExvY2sgZGlzcGF0Y2hUb1JlbmRl
clRocmVhZExvY2s7CiAgICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBkaXNw
YXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb247CiAKLSAgICBib29sIGRpc3BhdGNoRG9uZTsKLSAg
ICBMb2NrIGRpc3BhdGNoTG9jazsKLSAgICBDb25kaXRpb24gZGlzcGF0Y2hDb25kaXRpb247Cisg
ICAgYm9vbCBkaXNwYXRjaERvbmUgV1RGX0dVQVJERURfQllfTE9DSyhkaXNwYXRjaExvY2spOwor
ICAgIENoZWNrZWRMb2NrIGRpc3BhdGNoTG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIGRpc3Bh
dGNoQ29uZGl0aW9uOwogCiAgICAgX1dlYktpdFdlYkF1ZGlvU3JjUHJpdmF0ZSgpCiAgICAgewpA
QCAtMzM5LDcgKzMzOSw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3JjUmVuZGVyQW5k
UHVzaEZyYW1lcyhHUmVmUHRyPEdzdEVsZW1lbnQ+JiYgZWxlbWVudCwKICAgICBhdXRvKiBwcml2
ID0gc3JjLT5wcml2OwogCiAgICAgYXV0byBub3RpZnlEaXNwYXRjaE9uRXhpdCA9IG1ha2VTY29w
ZUV4aXQoW3ByaXZdIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKHByaXYtPmRpc3BhdGNoTG9j
ayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcml2LT5kaXNwYXRjaExvY2sgfTsKICAgICAg
ICAgcHJpdi0+ZGlzcGF0Y2hEb25lID0gdHJ1ZTsKICAgICAgICAgcHJpdi0+ZGlzcGF0Y2hDb25k
aXRpb24ubm90aWZ5T25lKCk7CiAgICAgfSk7CkBAIC00MDQsNyArNDA0LDcgQEAgc3RhdGljIHZv
aWQgd2ViS2l0V2ViQXVkaW9TcmNSZW5kZXJJdGVyYXRpb24oV2ViS2l0V2ViQXVkaW9TcmMqIHNy
YykKICAgICB9CiAKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhwcml2LT5kaXNwYXRj
aExvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJpdi0+ZGlzcGF0Y2hMb2NrIH07CiAg
ICAgICAgIHByaXYtPmRpc3BhdGNoRG9uZSA9IGZhbHNlOwogICAgIH0KIApAQCAtNDIxLDcgKzQy
MSw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3JjUmVuZGVySXRlcmF0aW9uKFdlYktp
dFdlYkF1ZGlvU3JjKiBzcmMpCiAgICAgfQogCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxv
Y2socHJpdi0+ZGlzcGF0Y2hMb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByaXYtPmRp
c3BhdGNoTG9jayB9OwogICAgICAgICBpZiAoIXByaXYtPmRpc3BhdGNoRG9uZSkKICAgICAgICAg
ICAgIHByaXYtPmRpc3BhdGNoQ29uZGl0aW9uLndhaXQocHJpdi0+ZGlzcGF0Y2hMb2NrKTsKICAg
ICB9CkBAIC00NjgsNyArNDY4LDcgQEAgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHdlYktp
dFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwgR3MKICAgICB9CiAg
ICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BBVVNFRF9UT19SRUFEWToKICAgICAgICAgewotICAg
ICAgICAgICAgTG9ja0hvbGRlciBsb2NrKHByaXYtPmRpc3BhdGNoTG9jayk7CisgICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgcHJpdi0+ZGlzcGF0Y2hMb2NrIH07CiAgICAgICAgICAgICBwcml2
LT5kaXNwYXRjaERvbmUgPSBmYWxzZTsKICAgICAgICAgICAgIHByaXYtPmRpc3BhdGNoQ29uZGl0
aW9uLm5vdGlmeUFsbCgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3Ry
ZWFtZXIuY3BwCmluZGV4IDJmOWMyODkwYjI0MTJlMzc2YjRhNGMzNjFmMjI5ZjMyNjJiMmU0Y2Eu
LjM1MDM4YWY1OTgzYzFkMjNjYWM3YzQwZDcxMDdhYWEzMDBiMjAwMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCkBAIC0yNzYsMjYgKzI3NiwyNiBAQCB2b2lkIElt
YWdlRGVjb2RlckdTdHJlYW1lcjo6c2V0SGFzRU9TKCkKIHsKICAgICBHU1RfREVCVUcoIkVPUyBv
biBkZWNvZGVyICVwIiwgdGhpcyk7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9z
YW1wbGVNdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3NhbXBsZUxvY2sgfTsKICAg
ICAgICAgbV9lb3MgPSB0cnVlOwogICAgICAgICBtX3NhbXBsZUNvbmRpdGlvbi5ub3RpZnlPbmUo
KTsKICAgICB9CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9oYW5kbGVyTXV0ZXgp
OwotICAgICAgICBtX2hhbmRsZXJDb25kaXRpb24ud2FpdChtX2hhbmRsZXJNdXRleCk7CisgICAg
ICAgIExvY2tlciBsb2NrZXIgeyBtX2hhbmRsZXJMb2NrIH07CisgICAgICAgIG1faGFuZGxlckNv
bmRpdGlvbi53YWl0KG1faGFuZGxlckxvY2spOwogICAgIH0KIH0KIAogdm9pZCBJbWFnZURlY29k
ZXJHU3RyZWFtZXI6Om5vdGlmeVNhbXBsZShHUmVmUHRyPEdzdFNhbXBsZT4mJiBzYW1wbGUpCiB7
CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9zYW1wbGVNdXRleCk7CisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX3NhbXBsZUxvY2sgfTsKICAgICAgICAgbV9zYW1wbGUgPSBXVEZN
b3ZlKHNhbXBsZSk7CiAgICAgICAgIG1fc2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAg
IH0KICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX2hhbmRsZXJNdXRleCk7Ci0gICAg
ICAgIG1faGFuZGxlckNvbmRpdGlvbi53YWl0KG1faGFuZGxlck11dGV4KTsKKyAgICAgICAgTG9j
a2VyIGxvY2tlciB7IG1faGFuZGxlckxvY2sgfTsKKyAgICAgICAgbV9oYW5kbGVyQ29uZGl0aW9u
LndhaXQobV9oYW5kbGVyTG9jayk7CiAgICAgfQogfQogCkBAIC0zMDYsNyArMzA2LDcgQEAgdm9p
ZCBJbWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgIGF1dG8gc2NvcGVFeGl0ID0gbWFrZVNjb3BlRXhpdChbcHJv
dGVjdGVkVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVk
VGhpcykKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKHByb3Rl
Y3RlZFRoaXMtPm1fbWVzc2FnZUxvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJvdGVj
dGVkVGhpcy0+bV9tZXNzYWdlTG9jayB9OwogICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX21lc3Nh
Z2VEaXNwYXRjaGVkID0gdHJ1ZTsKICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9tZXNzYWdlQ29u
ZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0pOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgSW1h
Z2VEZWNvZGVyR1N0cmVhbWVyOjpJbm5lckRlY29kZXI6OnByZXBhcmVQaXBlbGluZSgpCiAgICAg
ICAgIGF1dG8mIGRlY29kZXIgPSAqc3RhdGljX2Nhc3Q8SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpJ
bm5lckRlY29kZXIqPih1c2VyRGF0YSk7CiAKICAgICAgICAgewotICAgICAgICAgICAgTG9ja0hv
bGRlciBsb2NrKGRlY29kZXIubV9tZXNzYWdlTG9jayk7CisgICAgICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgZGVjb2Rlci5tX21lc3NhZ2VMb2NrIH07CiAgICAgICAgICAgICBkZWNvZGVyLm1fbWVz
c2FnZURpc3BhdGNoZWQgPSBmYWxzZTsKICAgICAgICAgICAgIGRlY29kZXIubV9tZXNzYWdlQ29u
ZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgICAgICB9CkBAIC0zODAsNyArMzgwLDcgQEAgdm9pZCBJ
bWFnZURlY29kZXJHU3RyZWFtZXI6OklubmVyRGVjb2Rlcjo6cHJlcGFyZVBpcGVsaW5lKCkKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgICAgIGlmICghZGVjb2Rlci5tX21lc3NhZ2VE
aXNwYXRjaGVkKSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2soZGVjb2Rlci5tX21lc3Nh
Z2VMb2NrKTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBkZWNvZGVyLm1fbWVzc2FnZUxv
Y2sgfTsKICAgICAgICAgICAgIGRlY29kZXIubV9tZXNzYWdlQ29uZGl0aW9uLndhaXQoZGVjb2Rl
ci5tX21lc3NhZ2VMb2NrKTsKICAgICAgICAgfQogICAgICAgICBnc3RfbWVzc2FnZV91bnJlZiht
ZXNzYWdlKTsKQEAgLTQyNiwxMyArNDI2LDEzIEBAIHZvaWQgSW1hZ2VEZWNvZGVyR1N0cmVhbWVy
OjpwdXNoRW5jb2RlZERhdGEoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiAgICAgdGhyZWFk
LT5kZXRhY2goKTsKICAgICBib29sIGlzRU9TID0gZmFsc2U7CiAgICAgewotICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9zYW1wbGVNdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3Nh
bXBsZUxvY2sgfTsKICAgICAgICAgaXNFT1MgPSBtX2VvczsKICAgICB9CiAgICAgd2hpbGUgKCFp
c0VPUykgewogICAgICAgICB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9zYW1wbGVN
dXRleCk7Ci0gICAgICAgICAgICBtX3NhbXBsZUNvbmRpdGlvbi53YWl0KG1fc2FtcGxlTXV0ZXgp
OworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fc2FtcGxlTG9jayB9OworICAgICAgICAg
ICAgbV9zYW1wbGVDb25kaXRpb24ud2FpdChtX3NhbXBsZUxvY2spOwogICAgICAgICAgICAgaXNF
T1MgPSBtX2VvczsKICAgICAgICAgICAgIGlmIChtX3NhbXBsZSkgewogICAgICAgICAgICAgICAg
IGF1dG8qIGNhcHMgPSBnc3Rfc2FtcGxlX2dldF9jYXBzKG1fc2FtcGxlLmdldCgpKTsKQEAgLTQ0
NCw3ICs0NDQsNyBAQCB2b2lkIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6cHVzaEVuY29kZWREYXRh
KGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX2hhbmRsZXJNdXRleCk7Cisg
ICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9oYW5kbGVyTG9jayB9OwogICAgICAgICAgICAg
bV9oYW5kbGVyQ29uZGl0aW9uLm5vdGlmeUFsbCgpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVj
b2RlckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5oCmluZGV4IDU5MThjODQ3Y2VkYjMyYWIzMDgzMDdk
ZjYyODU5YTBjMWM0YzQ5YmUuLmYyNDc3MzQ4MTBhNTEyNDMxYjczZDM1NzVhZGZjYTg1OTdlODNl
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9JbWFnZURlY29kZXJHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmgKQEAgLTI2LDYgKzI2LDgg
QEAKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2FtcGxlTWFwLmgi
CiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
QEAgLTExNCw5ICsxMTYsOSBAQCBwcml2YXRlOgogICAgICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+
IG1fZGVjb2RlYmluOwogICAgICAgICBSdW5Mb29wJiBtX3J1bkxvb3A7CiAKLSAgICAgICAgQ29u
ZGl0aW9uIG1fbWVzc2FnZUNvbmRpdGlvbjsKLSAgICAgICAgTG9jayBtX21lc3NhZ2VMb2NrOwot
ICAgICAgICBib29sIG1fbWVzc2FnZURpc3BhdGNoZWQgeyBmYWxzZSB9OworICAgICAgICBDaGVj
a2VkQ29uZGl0aW9uIG1fbWVzc2FnZUNvbmRpdGlvbjsKKyAgICAgICAgQ2hlY2tlZExvY2sgbV9t
ZXNzYWdlTG9jazsKKyAgICAgICAgYm9vbCBtX21lc3NhZ2VEaXNwYXRjaGVkIFdURl9HVUFSREVE
X0JZX0xPQ0sobV9tZXNzYWdlTG9jaykgeyBmYWxzZSB9OwogICAgIH07CiAKICAgICB2b2lkIGhh
bmRsZVNhbXBsZShHUmVmUHRyPEdzdFNhbXBsZT4mJik7CkBAIC0xMzIsMTEgKzEzNCwxMSBAQCBw
cml2YXRlOgogICAgIE9wdGlvbmFsPEludFNpemU+IG1fc2l6ZTsKICAgICBTdHJpbmcgbV9taW1l
VHlwZTsKICAgICBSZWZQdHI8SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpJbm5lckRlY29kZXI+IG1f
aW5uZXJEZWNvZGVyOwotICAgIENvbmRpdGlvbiBtX3NhbXBsZUNvbmRpdGlvbjsKLSAgICBMb2Nr
IG1fc2FtcGxlTXV0ZXg7Ci0gICAgR1JlZlB0cjxHc3RTYW1wbGU+IG1fc2FtcGxlOwotICAgIENv
bmRpdGlvbiBtX2hhbmRsZXJDb25kaXRpb247Ci0gICAgTG9jayBtX2hhbmRsZXJNdXRleDsKKyAg
ICBDaGVja2VkQ29uZGl0aW9uIG1fc2FtcGxlQ29uZGl0aW9uOworICAgIENoZWNrZWRMb2NrIG1f
c2FtcGxlTG9jazsKKyAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbV9zYW1wbGUgV1RGX0dVQVJERURf
QllfTE9DSyhtX3NhbXBsZUxvY2spOworICAgIENoZWNrZWRDb25kaXRpb24gbV9oYW5kbGVyQ29u
ZGl0aW9uOworICAgIENoZWNrZWRMb2NrIG1faGFuZGxlckxvY2s7CiB9OwogfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWFp
blRocmVhZE5vdGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWFpblRocmVhZE5vdGlmaWVyLmgKaW5kZXggMzU0ODk4OTIxNmQ1NjVkOWJiYmRlMDg1
MGMxOTBkYWQwOTQ5ZjExNS4uYTg4NTkyODljODU1MzJkOWU2NjNkZTQ3MGI2MTMxYmM5ZGIwOGZh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01haW5UaHJlYWROb3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NYWluVGhyZWFkTm90aWZpZXIuaApAQCAtNjgsMTggKzY4LDE4IEBAIHB1
YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGPgogICAgIHZvaWQgbm90aWZ5QW5kV2FpdChU
IG5vdGlmaWNhdGlvblR5cGUsIEYmJiBjYWxsYmFja0Z1bmN0b3IpCiAgICAgewotICAgICAgICBM
b2NrIG11dGV4OwotICAgICAgICBDb25kaXRpb24gY29uZGl0aW9uOworICAgICAgICBDaGVja2Vk
TG9jayBsb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIGNvbmRpdGlvbjsKIAotICAgICAg
ICBub3RpZnkobm90aWZpY2F0aW9uVHlwZSwgW2Z1bmN0b3IgPSBXVEZNb3ZlKGNhbGxiYWNrRnVu
Y3RvciksICZjb25kaXRpb24sICZtdXRleF0geworICAgICAgICBub3RpZnkobm90aWZpY2F0aW9u
VHlwZSwgW2Z1bmN0b3IgPSBXVEZNb3ZlKGNhbGxiYWNrRnVuY3RvciksICZjb25kaXRpb24sICZs
b2NrXSB7CiAgICAgICAgICAgICBmdW5jdG9yKCk7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGhv
bGRlcihtdXRleCk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbG9jayB9OwogICAgICAg
ICAgICAgY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgICAgICB9KTsKIAogICAgICAgICBpZiAo
IWlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihtdXRleCk7
Ci0gICAgICAgICAgICBjb25kaXRpb24ud2FpdChtdXRleCk7CisgICAgICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgbG9jayB9OworICAgICAgICAgICAgY29uZGl0aW9uLndhaXQobG9jayk7CiAgICAg
ICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKaW5kZXggMDdiM2Q5ZmJlODA0YzRmODAxMDA1NTFhZWYwMTIzNjJhZTIzODBlZi4u
YmY0OTVkMWNhMmQ0ODVkYTI0NWFiNjU2ZDEyZjJmMTBkMWI5OTc2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI1Miw3ICsyNTIsNyBA
QCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIoKQogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICB7Ci0gICAgICAgIExvY2tI
b2xkZXIgbG9jayhtX2NkbUF0dGFjaG1lbnRNdXRleCk7CisgICAgICAgIExvY2tlciBjZG1BdHRh
Y2htZW50TG9ja2VyIHsgbV9jZG1BdHRhY2htZW50TG9jayB9OwogICAgICAgICBtX2NkbUF0dGFj
aG1lbnRDb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgfQogI2VuZGlmCkBAIC0yOTIxLDcgKzI5
MjEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0Nv
bXBvc2l0b3IoKQogICAgIGF1dG8gcHJveHlPcGVyYXRpb24gPQogICAgICAgICBbdGhpcywgaW50
ZXJuYWxDb21wb3NpdGluZ09wZXJhdGlvbl0oVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94
eSYgcHJveHkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKHByb3h5
LmxvY2soKSk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJveHkubG9jaygpIH07CiAK
ICAgICAgICAgICAgIGlmICghcHJveHkuaXNBY3RpdmUoKSkKICAgICAgICAgICAgICAgICByZXR1
cm47CkBAIC0yOTM5LDcgKzI5MzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IoKQogICAgIGF1dG8gcHJveHlPcGVyYXRpb24gPQog
ICAgICAgICBbdGhpcywgaW50ZXJuYWxDb21wb3NpdGluZ09wZXJhdGlvbl0oVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJQcm94eSYgcHJveHkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tI
b2xkZXIgaG9sZGVyKHByb3h5LmxvY2soKSk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
cHJveHkubG9jaygpIH07CiAKICAgICAgICAgICAgIGlmICghcHJveHkuaXNBY3RpdmUoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm47CkBAIC0yOTY0LDcgKzI5NjQsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVwYWludCgpCiAKICAgICBtX3BsYXllci0+cmVwYWludCgp
OwogCi0gICAgTG9ja0hvbGRlciBsb2NrKG1fZHJhd011dGV4KTsKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9kcmF3TG9jayB9OwogICAgIG1fZHJhd0NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKIH0KIApA
QCAtMzEwMywxNyArMzEwMywxNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
dHJpZ2dlclJlcGFpbnQoR3N0U2FtcGxlKiBzYW1wbGUpCiAgICAgfQogCiAgICAgaWYgKCFtX2Nh
blJlbmRlcmluZ0JlQWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9k
cmF3TXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9kcmF3TG9jayB9OwogICAgICAg
ICBpZiAobV9pc0JlaW5nRGVzdHJveWVkKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBt
X2RyYXdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKLSAgICAgICAgbV9kcmF3Q29uZGl0aW9uLndh
aXQobV9kcmF3TXV0ZXgpOworICAgICAgICBtX2RyYXdDb25kaXRpb24ud2FpdChtX2RyYXdMb2Nr
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkK
ICAgICBpZiAobV9pc1VzaW5nRmFsbGJhY2tWaWRlb1NpbmspIHsKLSAgICAgICAgTG9ja0hvbGRl
ciBsb2NrKG1fZHJhd011dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fZHJhd0xvY2sg
fTsKICAgICAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9CiAgICAgICAgICAgICBbdGhpc10oVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSYgcHJveHkpCiAgICAgICAgICAgICB7CkBAIC0z
MTI3LDcgKzMxMjcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dHJpZ2dl
clJlcGFpbnQoR3N0U2FtcGxlKiBzYW1wbGUpCiAgICAgICAgICAgICByZXR1cm47CiAjZW5kaWYK
ICAgICAgICAgbV9kcmF3VGltZXIuc3RhcnRPbmVTaG90KDBfcyk7Ci0gICAgICAgIG1fZHJhd0Nv
bmRpdGlvbi53YWl0KG1fZHJhd011dGV4KTsKKyAgICAgICAgbV9kcmF3Q29uZGl0aW9uLndhaXQo
bV9kcmF3TG9jayk7CiAgICAgfSBlbHNlCiAgICAgICAgIHB1c2hUZXh0dXJlVG9Db21wb3NpdG9y
KCk7CiAjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpAQCAtMzE0OSw3ICszMTQ5LDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNhbmNlbFJlcGFpbnQoYm9vbCBk
ZXN0cm95aW5nKQogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyB1c2VkIHdoZW4gZGVzdHJv
eWluZyB0aGUgcGxheWVyIChkZXN0cm95aW5nIHBhcmFtZXRlciBpcyB0cnVlKSwgdG8gcmVsZWFz
ZSB0aGUgZ3N0cmVhbWVyIHRocmVhZCBmcm9tCiAgICAgLy8gbV9kcmF3Q29uZGl0aW9uIGFuZCB0
byBlbnN1cmUgdGhhdCBuZXcgdHJpZ2dlclJlcGFpbnQgY2FsbHMgd29uJ3Qgd2FpdCBvbiBtX2Ry
YXdDb25kaXRpb24uCiAgICAgaWYgKCFtX2NhblJlbmRlcmluZ0JlQWNjZWxlcmF0ZWQpIHsKLSAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kcmF3TXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgbV9kcmF3TG9jayB9OwogICAgICAgICBtX2RyYXdUaW1lci5zdG9wKCk7CiAgICAgICAg
IG1faXNCZWluZ0Rlc3Ryb3llZCA9IGRlc3Ryb3lpbmc7CiAgICAgICAgIG1fZHJhd0NvbmRpdGlv
bi5ub3RpZnlPbmUoKTsKQEAgLTMxODAsMTAgKzMxODAsMTQgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmZsdXNoQ3VycmVudEJ1ZmZlcigpCiAgICAgYm9vbCBzaG91bGRXYWl0
ID0gbV92aWRlb0RlY29kZXJQbGF0Zm9ybSA9PSBHc3RWaWRlb0RlY29kZXJQbGF0Zm9ybTo6Vmlk
ZW80TGludXg7CiAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9IFtzaG91bGRXYWl0LCBwaXBlbGlu
ZSA9IHBpcGVsaW5lKCldKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkmIHByb3h5KSB7
CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUsICJGbHVzaGluZyB2aWRlbyBzYW1w
bGUgJXMiLCBzaG91bGRXYWl0ID8gInN5bmNocm9ub3VzbHkiIDogIiIpOwotICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcighc2hvdWxkV2FpdCA/ICZwcm94eS5sb2NrKCkgOiBudWxscHRyKTsKLQot
ICAgICAgICBpZiAocHJveHkuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIHByb3h5LmRyb3BDdXJy
ZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4dHVyZShzaG91bGRXYWl0KTsKKyAgICAgICAgaWYg
KHNob3VsZFdhaXQpIHsKKyAgICAgICAgICAgIGlmIChwcm94eS5pc0FjdGl2ZSgpKQorICAgICAg
ICAgICAgICAgIHByb3h5LmRyb3BDdXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4dHVyZShz
aG91bGRXYWl0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBwcm94eS5sb2NrKCkgfTsKKyAgICAgICAgICAgIGlmIChwcm94eS5pc0FjdGl2ZSgpKQorICAg
ICAgICAgICAgICAgIHByb3h5LmRyb3BDdXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4dHVy
ZShzaG91bGRXYWl0KTsKKyAgICAgICAgfQogICAgIH07CiAKICNpZiBVU0UoTklDT1NJQSkKQEAg
LTM0MDcsNyArMzQxMSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwdXNo
TmV4dEhvbGVQdW5jaEJ1ZmZlcigpCiAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9CiAgICAgICAg
IFt0aGlzXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAgICAgICAg
ewotICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsKKyAgICAgICAg
ICAgIExvY2tlciBsb2NrZXIgeyBwcm94eS5sb2NrKCkgfTsKICAgICAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4gbGF5ZXJCdWZmZXIgPSBt
YWtlVW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPigwLCBtX3NpemUsIFRl
eHR1cmVNYXBwZXJHTDo6U2hvdWxkTm90QmxlbmQsIEdMX0RPTlRfQ0FSRSk7CiAgICAgICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8R1N0cmVhbWVySG9sZVB1bmNoQ2xpZW50PiBob2xlUHVuY2hDbGll
bnQgPSBtYWtlVW5pcXVlPEdTdHJlYW1lckhvbGVQdW5jaENsaWVudD4obV92aWRlb1NpbmsuZ2V0
KCkpOwogICAgICAgICAgICAgbGF5ZXJCdWZmZXItPnNldEhvbGVQdW5jaENsaWVudChXVEZNb3Zl
KGhvbGVQdW5jaENsaWVudCkpOwpAQCAtMzU3Niw4ICszNTgwLDkgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OndhaXRGb3JDRE1BdHRhY2htZW50KCkKIAogICAgIGJvb2wgZGlk
Q0RNQXR0YWNoID0gZmFsc2U7CiAgICAgewotICAgICAgICBhdXRvIGNkbUF0dGFjaG1lbnRMb2Nr
ZXIgPSBob2xkTG9jayhtX2NkbUF0dGFjaG1lbnRNdXRleCk7Ci0gICAgICAgIGRpZENETUF0dGFj
aCA9IG1fY2RtQXR0YWNobWVudENvbmRpdGlvbi53YWl0Rm9yKG1fY2RtQXR0YWNobWVudE11dGV4
LCA0X3MsIFt0aGlzXSgpIHsKKyAgICAgICAgTG9ja2VyIGNkbUF0dGFjaG1lbnRMb2NrZXIgeyBt
X2NkbUF0dGFjaG1lbnRMb2NrIH07CisgICAgICAgIGRpZENETUF0dGFjaCA9IG1fY2RtQXR0YWNo
bWVudENvbmRpdGlvbi53YWl0Rm9yKG1fY2RtQXR0YWNobWVudExvY2ssIDRfcywgW3RoaXNdKCkg
eworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fY2RtQXR0YWNobWVudExvY2spOwogICAgICAg
ICAgICAgcmV0dXJuIGlzQ0RNQXR0YWNoZWQoKTsKICAgICAgICAgfSk7CiAgICAgfQpAQCAtMzYy
NCw3ICszNjI5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3Rh
bmNlQXR0YWNoZWQoQ0RNSW5zdGFuY2UmIGluc3RhbmNlKQogCiAgICAgR1NUX0RFQlVHX09CSkVD
VChtX3BpcGVsaW5lLmdldCgpLCAiQ0RNIHByb3h5IGluc3RhbmNlICVwIGRpc3BhdGNoZWQgYXMg
Y29udGV4dCIsIG1fY2RtSW5zdGFuY2UtPnByb3h5KCkuZ2V0KCkpOwogCi0gICAgTG9ja0hvbGRl
ciBsb2NrKG1fY2RtQXR0YWNobWVudE11dGV4KTsKKyAgICBMb2NrZXIgY2RtQXR0YWNobWVudExv
Y2tlciB7IG1fY2RtQXR0YWNobWVudExvY2sgfTsKICAgICAvLyBXZSBtdXN0IG5vdGlmeSBhbGwg
d2FpdGVycywgc2luY2Ugc2V2ZXJhbCBkZW11eGVycyBjYW4gYmUgc2ltdWx0YW5lb3VzbHkgd2Fp
dGluZyBmb3IgYSBDRE0uCiAgICAgbV9jZG1BdHRhY2htZW50Q29uZGl0aW9uLm5vdGlmeUFsbCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4
IDAyMWZiODIyNzUxNTM1NzhhOWE1NjZmMTdkMzdhYzUzOTExZDY2ZDQuLjExMzU2MjZkYTEyMTZm
OGM4NDgxOGU1MzhkZTM4YmFjYzM1YmYyMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTM4LDcgKzM4LDggQEAKICNpbmNsdWRlIDxnc3QvZ3N0
Lmg+CiAjaW5jbHVkZSA8Z3N0L3BidXRpbHMvaW5zdGFsbC1wbHVnaW5zLmg+CiAjaW5jbHVkZSA8
d3RmL0F0b21pY3MuaD4KLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3Rm
L0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgpAQCAtMzYzLDcgKzM2NCw3IEBAIHByb3RlY3RlZDoKICAgICBi
b29sIG1faXNVc2luZ0ZhbGxiYWNrVmlkZW9TaW5rIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2Fu
UmVuZGVyaW5nQmVBY2NlbGVyYXRlZCB7IGZhbHNlIH07CiAKLSAgICBib29sIG1faXNCZWluZ0Rl
c3Ryb3llZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzQmVpbmdEZXN0cm95ZWQgV1RGX0dVQVJE
RURfQllfTE9DSyhtX2RyYXdMb2NrKSB7IGZhbHNlIH07CiAKICNpZiBVU0UoR1NUUkVBTUVSX0dM
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI+IG1fdmlk
ZW9UZXh0dXJlQ29waWVyOwpAQCAtMzc1LDggKzM3Niw4IEBAIHByb3RlY3RlZDoKICAgICBJbWFn
ZU9yaWVudGF0aW9uIG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlvbjsKIAogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCi0gICAgTG9jayBtX2NkbUF0dGFjaG1lbnRNdXRleDsKLSAgICBDb25kaXRp
b24gbV9jZG1BdHRhY2htZW50Q29uZGl0aW9uOworICAgIENoZWNrZWRMb2NrIG1fY2RtQXR0YWNo
bWVudExvY2s7CisgICAgQ2hlY2tlZENvbmRpdGlvbiBtX2NkbUF0dGFjaG1lbnRDb25kaXRpb247
CiAgICAgUmVmUHRyPENETUluc3RhbmNlUHJveHk+IG1fY2RtSW5zdGFuY2U7CiAKICAgICBMb2Nr
IG1fcHJvdGVjdGlvbk11dGV4OyAvLyBHdWFyZHMgYWNjZXNzIHRvIG1faGFuZGxlZFByb3RlY3Rp
b25FdmVudHMuCkBAIC00NzQsOSArNDc1LDkgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIE1lZGlh
VGltZSBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CiAgICAgYm9vbCBt
X2hhc1ZpZGVvIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzQXVkaW8geyBmYWxzZSB9OwotICAg
IENvbmRpdGlvbiBtX2RyYXdDb25kaXRpb247Ci0gICAgTG9jayBtX2RyYXdNdXRleDsKLSAgICBS
dW5Mb29wOjpUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+IG1fZHJhd1RpbWVyOwor
ICAgIENoZWNrZWRDb25kaXRpb24gbV9kcmF3Q29uZGl0aW9uOworICAgIENoZWNrZWRMb2NrIG1f
ZHJhd0xvY2s7CisgICAgUnVuTG9vcDo6VGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
PiBtX2RyYXdUaW1lciBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fZHJhd0xvY2spOwogICAgIFJ1bkxv
b3A6OlRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4gbV9yZWFkeVRpbWVySGFuZGxl
cjsKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAjaWYgVVNFKE5JQ09TSUEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ob2xlcHVuY2gvTWVkaWFQbGF5
ZXJQcml2YXRlSG9sZVB1bmNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2hvbGVwdW5jaC9NZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2guY3BwCmluZGV4IDU2YzhiOTJk
OTZkY2VjOGUwZjY5NTJlZjFiOTBmN2NkYTJmNzZlNzQuLjkwMWQ1N2VmZDZmNDEzOWE5ZDNhMmM4
YzExYmNjZWNhYmJjMTBjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2hvbGVwdW5jaC9NZWRpYVBsYXllclByaXZhdGVIb2xlUHVuY2guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hvbGVwdW5jaC9NZWRpYVBsYXllclByaXZh
dGVIb2xlUHVuY2guY3BwCkBAIC03NSw3ICs3NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
SG9sZVB1bmNoOjpwdXNoTmV4dEhvbGVQdW5jaEJ1ZmZlcigpCiAgICAgYXV0byBwcm94eU9wZXJh
dGlvbiA9CiAgICAgICAgIFt0aGlzXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBw
cm94eSkKICAgICAgICAgewotICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9j
aygpKTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBwcm94eS5sb2NrKCkgfTsKICAgICAg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4g
bGF5ZXJCdWZmZXIgPSBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVy
PigwLCBtX3NpemUsIFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkTm90QmxlbmQsIEdMX0RPTlRfQ0FS
RSk7CiAgICAgICAgICAgICBwcm94eS5wdXNoTmV4dEJ1ZmZlcihXVEZNb3ZlKGxheWVyQnVmZmVy
KSk7CiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhSW1hZ2VCdWZmZXJQaXBlLmNwcAppbmRl
eCA5ZjExMjRmZWE3MDc2NmU2ZTFjNjRiZGI1YzdjNjNiMGFlOWE0NTk0Li44NjA1M2E1N2M5MDFj
MzkzNTkxNmZjMDkyMTY1ZGZkNGNmZWRhM2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFJbWFnZUJ1ZmZlclBpcGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYUltYWdlQnVm
ZmVyUGlwZS5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBOaWNvc2lhSW1hZ2VCdWZmZXJQaXBl
U291cmNlOjpoYW5kbGUoUmVmUHRyPEltYWdlQnVmZmVyPiYmIGJ1ZmZlcikKICAgICAgICAgYXV0
byBwcm94eU9wZXJhdGlvbiA9IFt0aGlzXSAoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94
eSYgcHJveHkpIG11dGFibGUgewogICAgICAgICAgICAgcmV0dXJuIHByb3h5LnNjaGVkdWxlVXBk
YXRlT25Db21wb3NpdG9yVGhyZWFkKFt0aGlzXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAg
ICBhdXRvJiBwcm94eSA9IGRvd25jYXN0PE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBw
ZXJJbXBsPihtX25pY29zaWFMYXllci0+aW1wbCgpKS5wcm94eSgpOwotICAgICAgICAgICAgICAg
IExvY2tIb2xkZXIgaG9sZGVyKHByb3h5LmxvY2soKSk7CisgICAgICAgICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IHByb3h5LmxvY2soKSB9OwogCiAgICAgICAgICAgICAgICAgaWYgKCFwcm94eS5p
c0FjdGl2ZSgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFw
L05pY29zaWFHQ0dMTGF5ZXIuY3BwCmluZGV4IGE0NDYwZjkwNjMwNzQ3YThmODM3MmFhMDk4NDhl
NDk2ZTZiNTQxMzkuLmJmOGNmZDQyZTRiYWZlMDgyOTZkOTQ5ZmRlNDY2ZTYwZWI0NjY5ZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFw
L05pY29zaWFHQ0dMTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCkBAIC0xMDUsMTAgKzEwNSwx
MCBAQCB2b2lkIEdDR0xMYXllcjo6c3dhcEJ1ZmZlcnNJZk5lZWRlZCgpCiAgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgbGF5ZXJCdWZmZXItPnRleHR1cmVHTCgpLnNldFBlbmRpbmdDb250ZW50
cyhXVEZNb3ZlKGltYWdlKSk7CiAKLSAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9j
aygpKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByb3h5LmxvY2soKSB9OwogICAgICAgICBw
cm94eS5wdXNoTmV4dEJ1ZmZlcihXVEZNb3ZlKGxheWVyQnVmZmVyKSk7CiAjZWxzZQotICAgICAg
ICBMb2NrSG9sZGVyIGhvbGRlcihwcm94eS5sb2NrKCkpOworICAgICAgICBMb2NrZXIgbG9ja2Vy
IHsgcHJveHkubG9jaygpIH07CiAgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKG1ha2VVbmlx
dWU8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+KG1fY29udGV4dC5tX2NvbXBvc2l0
b3JUZXh0dXJlLCB0ZXh0dXJlU2l6ZSwgZmxhZ3MsIG1fY29udGV4dC5tX2ludGVybmFsQ29sb3JG
b3JtYXQpKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllclByb3h5LmNwcAppbmRleCBlMjg3MWY3OTU2MmM1YjA1NTAzMmJhMDFjMTM0Nzdi
MDRhNDM5NTFiLi4wNDIyM2YyMDYzNDFjZjU1NTQ2OWY5NWFiZTFmNzMxMDM3YzkyYzg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwCkBAIC01
MSw3ICs1MSw3IEBAIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OlRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyUHJveHkoKQogCiBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5
Ojp+VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSgpCiB7Ci0gICAgTG9ja0hvbGRlciBs
b2NrZXIobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgaWYgKG1f
dGFyZ2V0TGF5ZXIpCiAgICAgICAgIG1fdGFyZ2V0TGF5ZXItPnNldENvbnRlbnRzTGF5ZXIobnVs
bHB0cik7CiB9CkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eTo6YWN0aXZhdGVPbkNvbXBvc2l0aW5nVGhyZWFkKENvbXBvc2l0b3IqIGNvCiAgICAg
QVNTRVJUKHRhcmdldExheWVyKTsKICAgICBGdW5jdGlvbjx2b2lkKCk+IHVwZGF0ZUZ1bmN0aW9u
OwogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9j
a2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBtX2NvbXBvc2l0b3IgPSBjb21wb3NpdG9y
OwogICAgICAgICBtX3RhcmdldExheWVyID0gdGFyZ2V0TGF5ZXI7CiAgICAgICAgIGlmIChtX3Rh
cmdldExheWVyICYmIG1fY3VycmVudEJ1ZmZlcikKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjppbnZhbGlkYXRlKCkKICAgICBBU1NFUlQobV9j
b21wb3NpdG9yVGhyZWFkID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAgICAgRnVuY3Rpb248dm9p
ZCgpPiB1cGRhdGVGdW5jdGlvbjsKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICAgICAgbV9jb21w
b3NpdG9yID0gbnVsbHB0cjsKICAgICAgICAgbV90YXJnZXRMYXllciA9IG51bGxwdHI7CiAKQEAg
LTE3NCw3ICsxNzQsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnNj
aGVkdWxlUmVsZWFzZVVudXNlZEJ1ZmZlcnMoKQogCiB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyUHJveHk6OnJlbGVhc2VVbnVzZWRCdWZmZXJzVGltZXJGaXJlZCgpCiB7Ci0gICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAg
ICAgaWYgKG1fdXNlZEJ1ZmZlcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTE5
MCw3ICsxOTAsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnJlbGVh
c2VVbnVzZWRCdWZmZXJzVGltZXJGaXJlZCgpCiB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyUHJveHk6OnN3YXBCdWZmZXIoKQogewogICAgIEFTU0VSVChtX2NvbXBvc2l0b3JUaHJlYWQg
PT0gJlRocmVhZDo6Y3VycmVudCgpKTsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBpZiAoIW1fdGFyZ2V0TGF5ZXIgfHwg
IW1fcGVuZGluZ0J1ZmZlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTgsMTEgKzIxOCwxMSBA
QCB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmRyb3BDdXJyZW50QnVmZmVy
V2hpbGVQcmVzZXJ2aW5nVGV4dHVyZShibwogCiAgICAgbV9jb21wb3NpdG9yVGhyZWFkVXBkYXRl
RnVuY3Rpb24gPQogICAgICAgICBbdGhpcywgc2hvdWxkV2FpdF0gewotICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xv
Y2sgfTsKIAogICAgICAgICAgICAgYXV0byBtYXliZU5vdGlmeVN5bmNocm9ub3VzT3BlcmF0aW9u
ID0gV1RGOjptYWtlU2NvcGVFeGl0KFt0aGlzLCBzaG91bGRXYWl0XSgpIHsKICAgICAgICAgICAg
ICAgICBpZiAoc2hvdWxkV2FpdCkgewotICAgICAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGhv
bGRlcihtX3dhc0J1ZmZlckRyb3BwZWRMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fd2FzQnVmZmVyRHJvcHBlZExvY2sgfTsKICAgICAgICAgICAgICAgICAgICAg
bV93YXNCdWZmZXJEcm9wcGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgbV93YXNCdWZm
ZXJEcm9wcGVkQ29uZGl0aW9uLm5vdGlmeUFsbCgpOwogICAgICAgICAgICAgICAgIH0KQEAgLTI0
MSwxNCArMjQxLDE1IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6ZHJv
cEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJlKGJvCiAgICAgICAgIH07CiAKICAg
ICBpZiAoc2hvdWxkV2FpdCkgewotICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihtX3dhc0J1ZmZl
ckRyb3BwZWRMb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fd2FzQnVmZmVyRHJvcHBl
ZExvY2sgfTsKICAgICAgICAgbV93YXNCdWZmZXJEcm9wcGVkID0gZmFsc2U7CiAgICAgfQogCiAg
ICAgbV9jb21wb3NpdG9yVGhyZWFkVXBkYXRlVGltZXItPnN0YXJ0T25lU2hvdCgwX3MpOwogICAg
IGlmIChzaG91bGRXYWl0KSB7Ci0gICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKG1fd2FzQnVmZmVy
RHJvcHBlZExvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV93YXNCdWZmZXJEcm9wcGVk
TG9jayB9OwogICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWRDb25kaXRpb24ud2FpdChtX3dhc0J1
ZmZlckRyb3BwZWRMb2NrLCBbdGhpc10geworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fd2Fz
QnVmZmVyRHJvcHBlZExvY2spOwogICAgICAgICAgICAgcmV0dXJuIG1fd2FzQnVmZmVyRHJvcHBl
ZDsKICAgICAgICAgfSk7CiAgICAgfQpAQCAtMjU2LDcgKzI1Nyw3IEBAIHZvaWQgVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdU
ZXh0dXJlKGJvCiAKIGJvb2wgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6c2NoZWR1
bGVVcGRhdGVPbkNvbXBvc2l0b3JUaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIHVwZGF0ZUZ1bmN0
aW9uKQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tl
ciB7IG1fbG9jayB9OwogICAgIG1fY29tcG9zaXRvclRocmVhZFVwZGF0ZUZ1bmN0aW9uID0gV1RG
TW92ZSh1cGRhdGVGdW5jdGlvbik7CiAKICAgICBpZiAoIW1fY29tcG9zaXRvclRocmVhZFVwZGF0
ZVRpbWVyKQpAQCAtMjcwLDcgKzI3MSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eTo6Y29tcG9zaXRvclRocmVhZFVwZGF0ZVRpbWVyRmlyZWQoKQogewogICAgIEZ1bmN0
aW9uPHZvaWQoKT4gdXBkYXRlRnVuY3Rpb247CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2xvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAg
IGlmICghbV9jb21wb3NpdG9yVGhyZWFkVXBkYXRlRnVuY3Rpb24pCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIHVwZGF0ZUZ1bmN0aW9uID0gV1RGTW92ZShtX2NvbXBvc2l0b3JUaHJlYWRV
cGRhdGVGdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
UHJveHkuaAppbmRleCBmODE0ZWE4ZTRiZmMzYWVlYzk2NTBhYzZjZmFlNjNkNjlkOWE3NDU2Li5j
MDg5MTUwMTA3ZDY5MDI0MGFjMGNiMjVhMDQzZDRhNTc4ZGUxOTE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgKQEAgLTI4LDkgKzI4LDkgQEAKICNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0xI
ZWFkZXJzLmgiCi0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVj
a2VkQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIC8vIFRvIGF2b2lk
IG11bHRpcGxlIGxvY2svcmVsZWFzZSBzaXR1YXRpb24gdG8gdXBkYXRlIGEgc2luZ2xlIGZyYW1l
LAogICAgIC8vIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
clByb3h5UHJvdmlkZXIgc2hvdWxkCiAgICAgLy8gYXF1aXJlIC8gcmVsZWFzZSB0aGUgbG9jayBl
eHBsaWNpdGx5IHRvIHVzZSBiZWxvdyBtZXRob2RzLgotICAgIExvY2smIGxvY2soKSB7IHJldHVy
biBtX2xvY2s7IH0KKyAgICBDaGVja2VkTG9jayYgbG9jaygpIFdURl9SRVRVUk5TX0xPQ0sobV9s
b2NrKSB7IHJldHVybiBtX2xvY2s7IH0KICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXI+IGdldEF2YWlsYWJsZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwg
R0xpbnQgaW50ZXJuYWxGb3JtYXQpOwogICAgIHZvaWQgcHVzaE5leHRCdWZmZXIoc3RkOjp1bmlx
dWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPiYmKTsKICAgICBib29sIGlz
QWN0aXZlKCk7CkBAIC04NCwxMSArODQsMTEgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+IG1fY3VycmVudEJ1ZmZlcjsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+IG1fcGVu
ZGluZ0J1ZmZlcjsKIAotICAgIExvY2sgbV9sb2NrOworICAgIENoZWNrZWRMb2NrIG1fbG9jazsK
IAotICAgIExvY2sgbV93YXNCdWZmZXJEcm9wcGVkTG9jazsKLSAgICBDb25kaXRpb24gbV93YXNC
dWZmZXJEcm9wcGVkQ29uZGl0aW9uOwotICAgIGJvb2wgbV93YXNCdWZmZXJEcm9wcGVkIHsgZmFs
c2UgfTsKKyAgICBDaGVja2VkTG9jayBtX3dhc0J1ZmZlckRyb3BwZWRMb2NrOworICAgIENoZWNr
ZWRDb25kaXRpb24gbV93YXNCdWZmZXJEcm9wcGVkQ29uZGl0aW9uOworICAgIGJvb2wgbV93YXNC
dWZmZXJEcm9wcGVkIFdURl9HVUFSREVEX0JZX0xPQ0sobV93YXNCdWZmZXJEcm9wcGVkTG9jaykg
eyBmYWxzZSB9OwogCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllckJ1ZmZlcj4+IG1fdXNlZEJ1ZmZlcnM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJ1
bkxvb3A6OlRpbWVyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk+PiBtX3JlbGVhc2VV
bnVzZWRCdWZmZXJzVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAppbmRleCA4MjhjYjEwNzVhNjBlM2NhMGFhOGMz
ZDMzOGVmYTIzYzllMWE0Y2FiLi5iMmE0ZmRkNmZmYzZmZWUzMTM1MjZiZmFmNGY5YjJkZjU5MWY5
ZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5jcHAKQEAgLTg1LDEzICs4NSwxMyBAQCB2b2lkIENvbXBvc2l0aW5nUnVu
TG9vcDo6cGVyZm9ybVRhc2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHZvaWQgQ29t
cG9zaXRpbmdSdW5Mb29wOjpwZXJmb3JtVGFza1N5bmMoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5j
dGlvbikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uTXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIg
eyBtX2Rpc3BhdGNoU3luY0NvbmRpdGlvbkxvY2sgfTsKICAgICBtX3J1bkxvb3AtPmRpc3BhdGNo
KFt0aGlzLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CiAgICAgICAgIGZ1bmN0aW9u
KCk7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uTXV0
ZXgpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9kaXNwYXRjaFN5bmNDb25kaXRpb25Mb2Nr
IH07CiAgICAgICAgIG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0p
OwotICAgIG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uLndhaXQobV9kaXNwYXRjaFN5bmNDb25kaXRp
b25NdXRleCk7CisgICAgbV9kaXNwYXRjaFN5bmNDb25kaXRpb24ud2FpdChtX2Rpc3BhdGNoU3lu
Y0NvbmRpdGlvbkxvY2spOwogfQogCiB2b2lkIENvbXBvc2l0aW5nUnVuTG9vcDo6c3VzcGVuZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3Ro
cmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5oCmluZGV4IDU5NDAwY2I2MzA0YzQyOWQxNGYzYTFjZmQwOGRjNmYwMDc5NDlmNGYuLjc3
YzQ2N2JhMmZjMmVkNjEzMzU0ZjNlODFhN2Y0NzUxYWU0YTBiZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0Nv
bXBvc2l0aW5nUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCkBAIC0yOCw3
ICsyOCw4IEBACiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogCiAjaW5jbHVkZSA8d3Rm
L0F0b21pY3MuaD4KLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0No
ZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRl
IDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtNzAsOCArNzEsOCBAQCBwcml2YXRlOgogICAgIFJ1
bkxvb3AqIG1fcnVuTG9vcCB7IG51bGxwdHIgfTsKICAgICBSdW5Mb29wOjpUaW1lcjxDb21wb3Np
dGluZ1J1bkxvb3A+IG1fdXBkYXRlVGltZXI7CiAgICAgRnVuY3Rpb248dm9pZCAoKT4gbV91cGRh
dGVGdW5jdGlvbjsKLSAgICBMb2NrIG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uTXV0ZXg7Ci0gICAg
Q29uZGl0aW9uIG1fZGlzcGF0Y2hTeW5jQ29uZGl0aW9uOworICAgIENoZWNrZWRMb2NrIG1fZGlz
cGF0Y2hTeW5jQ29uZGl0aW9uTG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fZGlzcGF0Y2hT
eW5jQ29uZGl0aW9uOwogCiAgICAgc3RydWN0IHsKICAgICAgICAgTG9jayBsb2NrOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>