<?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>231402</bug_id>
          
          <creation_ts>2021-10-07 17:24:11 -0700</creation_ts>
          <short_desc>Add some plumbing for running smooth scroll animations in the scrolling thread/UI process</short_desc>
          <delta_ts>2021-10-10 21:33:44 -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>Scrolling</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>
          <dependson>231395</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>jamesr</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801875</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-07 17:24:11 -0700</bug_when>
    <thetext>Add some plumbing for running smooth scroll animations in the scrolling thread/UI process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801880</commentid>
    <comment_count>1</comment_count>
      <attachid>440559</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-07 17:30:50 -0700</bug_when>
    <thetext>Created attachment 440559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801886</commentid>
    <comment_count>2</comment_count>
      <attachid>440559</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-10-07 17:36:37 -0700</bug_when>
    <thetext>Comment on attachment 440559
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        These change prepare the scrolling tree to handle the starting and cancelation of

These change!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801911</commentid>
    <comment_count>3</comment_count>
      <attachid>440568</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-07 20:00:21 -0700</bug_when>
    <thetext>Created attachment 440568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801913</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-07 20:56:32 -0700</bug_when>
    <thetext>ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801921</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-07 21:31:01 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/283792/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801922</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-07 21:31:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/84012821&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802520</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-10 21:33:44 -0700</bug_when>
    <thetext>*** Bug 231271 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440559</attachid>
            <date>2021-10-07 17:30:50 -0700</date>
            <delta_ts>2021-10-07 17:49:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231402-20211007173049.patch</filename>
            <type>text/plain</type>
            <size>51167</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZkNGYxZWZlZmVmN2Q1
MzE5MjM1NGQ1MTgzZDBjM2Y3YjZiOWM5MC4uMzBkMmZjYTczNDNmMDk1NTdkNzljMGIzZjZkMzg3
ZWE3M2NlNTgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEwLTA3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIHBs
dW1iaW5nIGZvciBydW5uaW5nIHNtb290aCBzY3JvbGwgYW5pbWF0aW9ucyBpbiB0aGUgc2Nyb2xs
aW5nIHRocmVhZC9VSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVzZSBjaGFuZ2UgcHJlcGFyZSB0aGUgc2Nyb2xsaW5nIHRyZWUgdG8g
aGFuZGxlIHRoZSBzdGFydGluZyBhbmQgY2FuY2VsYXRpb24gb2YKKyAgICAgICAgcHJvZ3JhbW1h
dGljIHNtb290aCBzY3JvbGwgYW5pbWF0aW9ucy4KKworICAgICAgICBTY3JvbGxhYmxlQXJlYSBz
dWJjbGFzc2VzIGltcGxlbWVudCByZXF1ZXN0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKCkgYW5k
CisgICAgICAgIHN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsKCksIGFraW4gdG8gdGhlIGV4aXN0aW5n
IHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLiBGcmFtZVZpZXcgYW5kCisgICAgICAgIFJl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWEgY2FsbCB0aHJvdWdoIHRvIEFzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IsIHdoaWNoIHdpbGwgc29vbiByZXNwb25kCisgICAgICAgIHRvIHRoZXNlIHJlcXVl
c3RzIGJ5IHNldHRpbmcgc3RhdGUgb24gc2Nyb2xsaW5nIHN0YXRlIG5vZGVzLiBDdXJyZW50bHks
CisgICAgICAgIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IgZG9lcyBgcmV0dXJuIGZhbHNlYCB0
byBhdm9pZCBhIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZSBnYWlucyBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbigpIGFuZCBzdG9wQW5p
bWF0ZWRTY3JvbGwoKSwKKyAgICAgICAgYW5kIGNvbmNyZXRlIHN1YmNsYXNzZXMgdXNlIHRoZWly
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUgKGFuZCBpdHMKKyAgICAgICAgU2Ny
b2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIpIHRvIGFjdHVhbGx5IHRyaWdnZXIgdGhlIHNjcm9sbCBh
bmltYXRpb24sIG9yIHN0b3AgYW4gZXhpc3RpbmcKKyAgICAgICAgb25lLgorCisgICAgICAgIFJl
cXVlc3RlZFNjcm9sbERhdGEgd2lsbCBiZSB1c2VkIGEgYml0IG1vcmUgd2lkZWx5LCBzbyBtb3Zl
IGl0IHRvCisgICAgICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCwgYW5kIGdpdmUgaXQg
YSBTY3JvbGxJc0FuaW1hdGVkIGZpZWxkLgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsVG8pOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGxU
b1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c3RvcEFzeW5jQW5pbWF0
ZWRTY3JvbGwpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdEFu
aW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpzdG9wQW5pbWF0ZWRTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6c3RvcEFuaW1hdGVkU2Ny
b2xsKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXF1ZXN0ZWRTY3JvbGxEYXRhOjpvcGVyYXRvcj09IGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpk
dW1wUHJvcGVydGllcyBjb25zdCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXF1ZXN0ZWRTY3JvbGxE
YXRhOjpvcGVyYXRvcj09IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZGlkU3RvcEFuaW1hdGVkU2Nyb2xsKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpoYW5kbGVTY3JvbGxQb3NpdGlv
blJlcXVlc3QpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU1hYzo6c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6c3RvcEFuaW1hdGVkU2Nyb2xsKToK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6
OnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OnN0b3BBbmltYXRlZFNjcm9sbCk6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWM6OnN0b3BBbmltYXRlZFNjcm9sbCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbmljb3Np
YS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3Rh
dGVBZnRlckNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVOaWNvc2lhOjpzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6c3Rv
cEFuaW1hdGVkU2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVOaWNvc2lhOjpzdG9wU2Nyb2xsQW5pbWF0aW9ucyk6IERlbGV0ZWQuCisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTmljb3NpYS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OmNvbW1pdFN0YXRlQWZ0
ZXJDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlTmljb3NpYTo6c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OnN0
b3BBbmltYXRlZFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6c3RvcFNjcm9sbEFuaW1hdGlvbnMpOiBEZWxldGVkLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU5pY29zaWEuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhOjpzdGFydEFu
aW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYTo6c3RvcEFuaW1hdGVkU2Nyb2xsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhOjpz
dG9wU2Nyb2xsQW5pbWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
bmljb3NpYS9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OnJlcXVlc3RBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGxU
b1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6
OnN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJTY3JvbGxhYmxlQXJlYS5oOgorCiAyMDIxLTEwLTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1pbm9yIHJlZmFjdG9yaW5nIHRvIHVzZSBTY3Jv
bGxVcGRhdGUgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWIwOGQ3ZmRjMTE4YmQ4ZDVlMDIx
ZTFiZjQzMDgzNTQ4ZTA0NjM4Ni4uYmE5OWVmMjljMmFlNWZjMTExYTVkY2M3MTM5MGMyODMzZDA3
MzJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0xMC0wNyAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc29tZSBwbHVtYmluZyBm
b3IgcnVubmluZyBzbW9vdGggc2Nyb2xsIGFuaW1hdGlvbnMgaW4gdGhlIHNjcm9sbGluZyB0aHJl
YWQvVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxNDAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
VHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxSZXF1ZXN0ZWRTY3JvbGxE
YXRhPjo6ZW5jb2RlKToKKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8UmVxdWVzdGVkU2Nyb2xsRGF0
YT46OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y29tbWl0U3RhdGVB
ZnRlckNoaWxkcmVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6U2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c3RhcnRBbmltYXRlZFNjcm9sbFRv
UG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TOjpzdG9wQW5pbWF0ZWRTY3JvbGwpOgorCiAyMDIxLTEwLTA3ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1pbm9yIHJlZmFjdG9yaW5n
IHRvIHVzZSBTY3JvbGxVcGRhdGUgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApp
bmRleCBjOWZlZGM4MTdmOTViNmE1NzM0MjFmMDYwMjNiYjA4ZDM1MmZiYzQyLi5jNmU2Y2U4Nzcw
YjFkYTVkYzQwMDc1ZGEyMTdmODkyOTUxMzMzMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBA
IC0xMDAwLDYgKzEwMDAsOCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5KGRvdWJsZSB4LCBkb3Vi
bGUgeSkKIAogdm9pZCBFbGVtZW50OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9w
dGlvbnMsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25N
ZXRob2Qgc25hcFBvaW50U2VsZWN0aW9uTWV0aG9kKQogeworICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiRWxlbWVudCAiIDw8ICp0aGlzIDw8ICIgc2Nyb2xsVG8gIiA8
PCBvcHRpb25zLmxlZnQgPDwgIiwgIiA8PCBvcHRpb25zLnRvcCk7CisKICAgICBpZiAoIWRvY3Vt
ZW50KCkuc2V0dGluZ3MoKS5DU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCkpIHsKICAgICAg
ICAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgdGhlIHJvb3QgZWxlbWVudCBhbmQgZG9jdW1lbnQgaXMg
aW4gcXVpcmtzIG1vZGUsIHRlcm1pbmF0ZSB0aGVzZSBzdGVwcy4KICAgICAgICAgLy8gTm90ZSB0
aGF0IFdlYktpdCBhbHdheXMgdXNlcyBxdWlya3MgbW9kZSBkb2N1bWVudCBzY3JvbGxpbmcgYmVo
YXZpb3IuIFNlZSBEb2N1bWVudDo6c2Nyb2xsaW5nRWxlbWVudCgpLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IGMxN2QxZGU4ODIwZDM1YTkyOWEzNmIzMjVjYTc1MmMyNjRiZGM3MzMu
LjRiNTQzZTliMjNmZjdmY2U4NWE0MTYxNGE4ZWJlOWY4NmU0MDc1NjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTIzMDYsNyArMjMwNiw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3Jv
bGxFbGVtZW50VG9SZWN0KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEludFJlY3QmIHJl
Y3QpCiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3Np
dGlvbiYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFNjcm9sbFBvc2l0aW9uQ2hhbmdlT3B0aW9ucyYg
b3B0aW9ucykKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIkZy
YW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24gIiA8PCBzY3JvbGxQb3NpdGlvbiA8PCAiICwgY2xl
YXJpbmcgYW5jaG9yIik7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8
ICJGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24gPDwgIiBh
bmltYXRlZCAiIDw8IChvcHRpb25zLmFuaW1hdGVkID09IFNjcm9sbElzQW5pbWF0ZWQ6Olllcykg
PDwgIiwgY2xlYXJpbmcgYW5jaG9yIik7CiAKICAgICBhdXRvIG9sZFNjcm9sbFR5cGUgPSBjdXJy
ZW50U2Nyb2xsVHlwZSgpOwogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKG9wdGlvbnMudHlwZSk7
CkBAIC0yNjg3LDYgKzI2ODcsMzAgQEAgYm9vbCBGcmFtZVZpZXc6OnJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm8KICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK2Jvb2wgRnJhbWVWaWV3OjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGxUb1Bv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXN0aW5hdGlvblBvc2l0aW9uLCBTY3JvbGxD
bGFtcGluZyBjbGFtcGluZykKK3sKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJl
YW0gPDwgIkZyYW1lVmlldzo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbiAiIDw8IGRl
c3RpbmF0aW9uUG9zaXRpb24pOworCisjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBp
ZiAoYXV0byBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9y
KCkpCisgICAgICAgIHJldHVybiBzY3JvbGxpbmdDb29yZGluYXRvci0+cmVxdWVzdEFuaW1hdGVk
U2Nyb2xsVG9Qb3NpdGlvbigqdGhpcywgZGVzdGluYXRpb25Qb3NpdGlvbiwgY2xhbXBpbmcpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb25Qb3NpdGlvbik7CisjZW5kaWYKKwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBGcmFtZVZpZXc6OnN0b3BBc3luY0FuaW1hdGVk
U2Nyb2xsKCkKK3sKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRnJhbWVWaWV3OjpzdG9wQXN5bmNBbmltYXRlZFNj
cm9sbCIpOworCisgICAgaWYgKGF1dG8gc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3Jv
bGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3It
PnN0b3BBbmltYXRlZFNjcm9sbCgqdGhpcyk7CisjZW5kaWYKK30KKwogSG9zdFdpbmRvdyogRnJh
bWVWaWV3Ojpob3N0V2luZG93KCkgY29uc3QKIHsKICAgICBhdXRvKiBwYWdlID0gZnJhbWUoKS5w
YWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBkOWQ0OGFmNWY3ZDE0OTc3ZjNhNTBk
ZTU2NTk5M2VkZTNkNTJhMzE4Li44YTcxMGNkNmM1ODUxNWQzODgyMGJkOTcxZGFlZDhiZjcyMTUy
YWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTI0Niw3ICsyNDYsMTEgQEAgcHVibGlj
OgogICAgIHZvaWQgc2Nyb2xsVG9Gb2N1c2VkRWxlbWVudEltbWVkaWF0ZWx5SWZOZWVkZWQoKTsK
ICAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGxpbmcoKSBmaW5hbDsKICAg
ICB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxpbmcoKSBmaW5hbDsKKwog
ICAgIGJvb2wgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9u
JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQpIGZpbmFsOworICAgIGJvb2wgcmVxdWVzdEFuaW1hdGVkU2Nyb2xs
VG9Qb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQpIGZpbmFsOworICAgIHZvaWQgc3RvcEFzeW5jQW5pbWF0ZWRTY3Jv
bGwoKSBmaW5hbDsKKwogICAgIGJvb2wgaXNVc2VyU2Nyb2xsSW5Qcm9ncmVzcygpIGNvbnN0IGZp
bmFsOwogICAgIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0IGZpbmFsOwogICAg
IFdFQkNPUkVfRVhQT1JUIFNjcm9sbFBvc2l0aW9uIG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNv
bnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA1Mjg5ZWRiN2MxNDE4NGU2ODdk
OGUzNDI2NWExN2VjMjA0NTE0NTQxLi4zZDYzNGJlNmQ3MGNhYjQ2MDgyYjFlNjBiOTk5MzAwNDk4
ZDNjNGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjM5LDcgKzIzOSw3IEBAIHZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKEZy
YW1lVmlldyYgZnJhbWVWaWV3CiAgICAgbm9kZS0+c2V0SG9yaXpvbnRhbFNjcm9sbGJhckxheWVy
KGZyYW1lVmlldy5sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSk7CiB9CiAKLWJvb2wgQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9s
bGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQorYm9vbCBB
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Ny
b2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xs
UG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV9wYWdlKTsKQEAg
LTI3NSwxMSArMjc1LDIzIEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3JvCiAgICAgaWYgKCFzdGF0
ZU5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0YXRlTm9kZS0+c2V0UmVxdWVz
dGVkU2Nyb2xsRGF0YSh7IHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxUeXBlLCBjbGFtcGluZyB9KTsK
KyAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbERhdGEoeyBzY3JvbGxQb3NpdGlvbiwg
c2Nyb2xsVHlwZSwgY2xhbXBpbmcsIFNjcm9sbElzQW5pbWF0ZWQ6Ok5vIH0pOworICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBzY2hlZHVsZSBhIHJlbmRlcmluZyB1cGRhdGUKICAgICBjb21taXRU
cmVlU3RhdGVJZk5lZWRlZCgpOwogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oU2Nyb2xs
YWJsZUFyZWEmLCBjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbENsYW1waW5nKQoreworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN0b3BBbmltYXRlZFNjcm9sbChTY3JvbGxhYmxlQXJlYSYp
Cit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KK30KKwogdm9pZCBBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjphcHBseVNjcm9sbGluZ1RyZWVMYXllclBvc2l0aW9ucygpCiB7CiAgICAgbV9z
Y3JvbGxpbmdUcmVlLT5hcHBseUxheWVyUG9zaXRpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5k
ZXggZDBiOWE1MTYxMWVjMmMwOWJmY2MzZDYzMzExNTc2ZjNjNjNlODMwOC4uNjY2NjRhNDFmZjUx
MTI2ZDdiNGI3MmUzNDIxZTlhNDBmYmRmMTA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTAw
LDcgKzEwMCw5IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmcmFtZVZpZXdW
aXN1YWxWaWV3cG9ydENoYW5nZWQoRnJhbWVWaWV3Jikgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBmcmFtZVZpZXdFdmVudFRyYWNraW5nUmVnaW9uc0NoYW5nZWQoRnJhbWVWaWV3
Jikgb3ZlcnJpZGU7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IEludFBvaW50JiwgU2Nyb2xsVHlwZSwg
U2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiwgY29uc3QgU2Nyb2xsUG9zaXRp
b24mLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykgZmluYWw7CisgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCByZXF1ZXN0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKFNjcm9sbGFibGVBcmVhJiwg
Y29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxDbGFtcGluZykgZmluYWw7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzdG9wQW5pbWF0ZWRTY3JvbGwoU2Nyb2xsYWJsZUFyZWEmKSBmaW5hbDsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwbHlTY3JvbGxpbmdUcmVlTGF5ZXJQb3NpdGlv
bnMoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggODNkOWRlMTNlMzI2ODMyZmMwMWJmMTNhMWUy
ODEyZWM0ZGUzOTcxZi4uNTAwOTI2MjU5YTY3MzlmYWI4OGU3OTY2MTczMzNhMWM4NGZkMTlhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5oCkBAIC0xMTIsNyArMTEyLDExIEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZXNlIHZp
cnR1YWwgZnVuY3Rpb25zIGFyZSBjdXJyZW50bHkgdW5pcXVlIHRvIHRoZSB0aHJlYWRlZCBzY3Jv
bGxpbmcgYXJjaGl0ZWN0dXJlLiAKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJlZVN0YXRlSWZO
ZWVkZWQoKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
KFNjcm9sbGFibGVBcmVhJiwgY29uc3QgSW50UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlw
ZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVk
KSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmlydHVhbCBib29sIHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xs
VHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVx
dWVzdEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiwgU2Nyb2xsQ2xhbXBpbmcpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbChTY3JvbGxhYmxlQXJlYSYpIHsgfQorCiAgICAgdmly
dHVhbCBib29sIGhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlELCBzdGQ6Om9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVy
ZVN0YXRlPikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVudFdh
c1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBzdGQ6Om9w
dGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPikgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaApp
bmRleCAwNDdmMmM1NWE2NWIwNWM2MDExZTNjZjJmMzJiOGEyNzJmM2Q4ZWYzLi5lMWI4YWQzZTIz
YmIzMTg2ZjM0NjRhNjk3YjcxN2FjMWVmN2U5MTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCkBAIC0x
MDIsNiArMTAyLDIwIEBAIGVudW0gY2xhc3MgVmlld3BvcnRSZWN0U3RhYmlsaXR5IHsKICAgICBD
aGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSAvLyBUaGlzIGltcGxpZXMgVW5zdGFi
bGUuCiB9OwogCitzdHJ1Y3QgUmVxdWVzdGVkU2Nyb2xsRGF0YSB7CisgICAgRmxvYXRQb2ludCBz
Y3JvbGxQb3NpdGlvbjsKKyAgICBTY3JvbGxUeXBlIHNjcm9sbFR5cGUgeyBTY3JvbGxUeXBlOjpV
c2VyIH07CisgICAgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcgeyBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCB9OworICAgIFNjcm9sbElzQW5pbWF0ZWQgYW5pbWF0ZWQgeyBTY3JvbGxJc0FuaW1hdGVk
OjpObyB9OworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlcXVlc3RlZFNjcm9sbERhdGEm
IG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uID09IG90
aGVyLnNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAmJiBzY3JvbGxUeXBlID09IG90aGVyLnNj
cm9sbFR5cGUKKyAgICAgICAgICAgICYmIGNsYW1waW5nID09IG90aGVyLmNsYW1waW5nOworICAg
IH0KK307CisKIHN0cnVjdCBTY3JvbGxVcGRhdGUgewogICAgIFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQgeyAwIH07CiAgICAgRmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUuY3BwCmluZGV4IDg4NjYzMzBmOTI1YzY1MzZkYzQ4ZWZiZjE3MzZlNTkwMWEwMGM0Mjgu
LjZiYjkwMjlmOTgxYTYwMGMyNzM2YjdlZDc3OWFkOTJjYmUwNGZkOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmNwcApAQCAtMjk3LDYgKzI5Nyw5IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVU
CiAgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsRGF0YS5jbGFtcGluZyA9PSBTY3JvbGxDbGFtcGlu
Zzo6VW5jbGFtcGVkKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwg
cG9zaXRpb24gY2xhbXBpbmciLCBtX3JlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcpOwogCisg
ICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsRGF0YS5hbmltYXRlZCA9PSBTY3JvbGxJc0FuaW1hdGVk
OjpZZXMpCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlv
biBpcyBhbmltYXRlZCIsIHRydWUpOworCiAgICAgaWYgKG1fc2Nyb2xsT3JpZ2luICE9IEludFBv
aW50KCkpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgic2Nyb2xsIG9yaWdpbiIsIG1fc2Nyb2xs
T3JpZ2luKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAppbmRleCA4YmNmOTFkYWQ5MWNmYWVmY2Fi
MTA3NGFkNmY3OGEwMTUxMmY4OTE5Li41ZGJmYTM2ZDRjZGM0MWUzYTZlYmJjMjM4YjA5OGQyOGVh
ZmE5YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaApAQCAtMzgsMTkgKzM4LDYgQEAgT0JKQ19D
TEFTUyBOU1Njcm9sbGVySW1wOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBSZXF1
ZXN0ZWRTY3JvbGxEYXRhIHsKLSAgICBGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uOwotICAgIFNj
cm9sbFR5cGUgc2Nyb2xsVHlwZSB7IFNjcm9sbFR5cGU6OlVzZXIgfTsKLSAgICBTY3JvbGxDbGFt
cGluZyBjbGFtcGluZyB7IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkIH07Ci0gICAgCi0gICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFJlcXVlc3RlZFNjcm9sbERhdGEmIG90aGVyKSBjb25zdAotICAg
IHsKLSAgICAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uID09IG90aGVyLnNjcm9sbFBvc2l0aW9u
Ci0gICAgICAgICAgICAmJiBzY3JvbGxUeXBlID09IG90aGVyLnNjcm9sbFR5cGUKLSAgICAgICAg
ICAgICYmIGNsYW1waW5nID09IG90aGVyLmNsYW1waW5nOwotICAgIH0KLX07Ci0KIGNsYXNzIFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSA6IHB1YmxpYyBTY3JvbGxpbmdTdGF0ZU5vZGUgewog
cHVibGljOgogICAgIHZpcnR1YWwgflNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDk4YTMzNzkwNWU0OTVjZTQ0MmMzOTE3NTZmZWYxZmYz
NzQyYWM1ZmMuLmI1ZDg3MTZkMTA3ZWJiYzkxNjhkNTA3NjRhZTg1OWNlYzBjYzc3ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTIyNyw2ICsyMjcsMjYgQEAgdm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsU25hcEluUHJvZ3Jlc3MoYm9vbCBpc1NuYXBwaW5n
KQogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXROb2RlU2Nyb2xsU25hcEluUHJvZ3Jlc3Moc2Nyb2xs
aW5nTm9kZUlEKCksIGlzU25hcHBpbmcpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlOjpkaWRTdG9wQW5pbWF0ZWRTY3JvbGwoKQoreworICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUgIiA8PCBzY3Jv
bGxpbmdOb2RlSUQoKSA8PCAiIGRpZFN0b3BBbmltYXRlZFNjcm9sbCIpOworICAgIC8vIEZJWE1F
OiBQcm9wYWdhdGUgc3RhdGUgYmFjayB0byB0aGUgbWFpbiB0aHJlYWQuCit9CisKK3ZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmhhbmRsZVNjcm9sbFBvc2l0aW9uUmVxdWVzdChjb25z
dCBSZXF1ZXN0ZWRTY3JvbGxEYXRhJiByZXF1ZXN0ZWRTY3JvbGxEYXRhKQoreworICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUgIiA8PCBzY3JvbGxpbmdOb2RlSUQoKSA8PCAiIGhhbmRsZVNjcm9sbFBvc2l0aW9uUmVxdWVz
dCgpIC0gcG9zaXRpb24gIiA8PCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9uIDw8
ICIgYW5pbWF0ZWQgIiA8PCAocmVxdWVzdGVkU2Nyb2xsRGF0YS5hbmltYXRlZCA9PSBTY3JvbGxJ
c0FuaW1hdGVkOjpZZXMpKTsKKworICAgIHN0b3BBbmltYXRlZFNjcm9sbCgpOworICAgIAorICAg
IGlmIChyZXF1ZXN0ZWRTY3JvbGxEYXRhLmFuaW1hdGVkID09IFNjcm9sbElzQW5pbWF0ZWQ6Olll
cykgeworICAgICAgICBpZiAoc3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24ocmVxdWVzdGVk
U2Nyb2xsRGF0YS5zY3JvbGxQb3NpdGlvbikpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgc2Nyb2xsVG8ocmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxQb3NpdGlvbiwgcmVxdWVz
dGVkU2Nyb2xsRGF0YS5zY3JvbGxUeXBlLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLmNsYW1waW5nKTsK
K30KKwogRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6YWRqdXN0ZWRTY3Jv
bGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBp
bmcgY2xhbXBpbmcpIGNvbnN0CiB7CiAgICAgaWYgKGNsYW1waW5nID09IFNjcm9sbENsYW1waW5n
OjpDbGFtcGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggOWMxYmE2YjJmMTAzZDRjNDQ1NTky
NTBjNTc2NjBhMTEzYjE0NWVmMC4uNjgwYjJlYzU3MzFlN2MxMjkyMDhiNTRjMDc2NWZlYzhmZjZm
MjM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlw
ZTo6VXNlciwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAgICAg
dm9pZCBzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdG9wU2Nyb2xsQW5pbWF0aW9u
cygpIHsgfTsKKyAgICB2b2lkIGhhbmRsZVNjcm9sbFBvc2l0aW9uUmVxdWVzdChjb25zdCBSZXF1
ZXN0ZWRTY3JvbGxEYXRhJik7CiAKICAgICB2b2lkIHdhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3Jv
bGxpbmcoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0
PiBvdmVycmlkZUxheW91dFZpZXdwb3J0ID0geyB9LCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYyk7CiAgICAgCkBAIC0xMjMs
NiArMTIzLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsRG9Qcm9ncmFtbWF0
aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpIHsgfQogICAgIAogICAgIHZpcnR1YWwgRmxvYXRQ
b2ludCBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFt
cGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFs
IGJvb2wgc3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oRmxvYXRQb2ludCkgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1hdGVkU2Nyb2xsKCkgeyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZChTY3JvbGxUeXBlLCBT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
bjo6U3luYyk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9s
bFBvc2l0aW9uKHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiA9IHsgfSkgeyB9CkBAIC0xMzMsNiAr
MTM2LDggQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBhcHBseUxheWVyUG9zaXRpb25zKCkgb3Zl
cnJpZGU7CiAKKyAgICB2b2lkIGRpZFN0b3BBbmltYXRlZFNjcm9sbCgpOworCiAgICAgY29uc3Qg
RmxvYXRTaXplJiByZWFjaGFibGVDb250ZW50c1NpemUoKSBjb25zdCB7IHJldHVybiBtX3JlYWNo
YWJsZUNvbnRlbnRzU2l6ZTsgfQogICAgIAogICAgIGJvb2wgaXNMYXRjaGVkTm9kZSgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oCmluZGV4IDU1MThiNGNjNGM5YTMw
OTdhNjU2ZGE1MTgwMTM1ZDM5M2Y0ZTkwYjEuLjQ1Mjk0YmVlZjA4ZDI2YTNjNGY4Mzc3YTgxOTFi
ZjhjOGZiYTdiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmgKQEAgLTM4
LDYgKzM4LDkgQEAgcHVibGljOgogCiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmIHNj
cm9sbGluZ05vZGUoKSB7IHJldHVybiBtX3Njcm9sbGluZ05vZGU7IH0KICAgICBjb25zdCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYgc2Nyb2xsaW5nTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsaW5nTm9kZTsgfQorICAgIAorICAgIHZpcnR1YWwgYm9vbCBzdGFydEFuaW1hdGVkU2Ny
b2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BBbmlt
YXRlZFNjcm9sbCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIFNjcm9s
bGluZ1RyZWUmIHNjcm9sbGluZ1RyZWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYy5oCmluZGV4IGMwZTgyN2M0YmZhZTQyNmMyMTRjYTdkNmE2MzcwYjhj
NWJkMjg2MmYuLmU4Y2Y5NGYyMjY5ODU0ZDAzZmJiOTg2NDU3YjBhNmNlOTlmZDhhMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaApAQCAtNjYsNiArNjYsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgZmluYWw7CiAgICAgdm9pZCB3
aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpIGZpbmFsOwogCisgICAg
Ym9vbCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50KSBmaW5hbDsKKyAg
ICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIGZpbmFsOworCiAgICAgRmxvYXRQb2ludCBhZGp1
c3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZykgY29u
c3QgZmluYWw7CiAKICAgICB2b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoU2Nyb2xs
VHlwZSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDNjMTRiY2JlNzFiMTZiYzRlMGRh
MmI5YWIxNmI5NWRhMmUxOTY4MWEuLjkyMjY1YjdjZDU0OWJiMWViMzgzMDNkNmM4NTUzMGFkOTE2
NTA2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCkBA
IC0xMDUsMTAgKzEwNSw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluCiAgICAgY29uc3QgYXV0
byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlPihzdGF0ZU5vZGUpOwogCiAgICAgLy8gVXBkYXRlIHRoZSBzY3JvbGwgcG9zaXRpb24gYWZ0
ZXIgY2hpbGQgbm9kZXMgaGF2ZSBiZWVuIHVwZGF0ZWQsIGJlY2F1c2UgdGhleSBuZWVkIHRvIGhh
dmUgdXBkYXRlZCB0aGVpciBjb25zdHJhaW50cyBiZWZvcmUgYW55IHNjcm9sbGluZyBoYXBwZW5z
LgotICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlTm9kZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewotICAgICAg
ICBjb25zdCBhdXRvJiByZXF1ZXN0ZWRTY3JvbGxEYXRhID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJl
cXVlc3RlZFNjcm9sbERhdGEoKTsKLSAgICAgICAgc2Nyb2xsVG8ocmVxdWVzdGVkU2Nyb2xsRGF0
YS5zY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxUeXBlLCByZXF1ZXN0
ZWRTY3JvbGxEYXRhLmNsYW1waW5nKTsKLSAgICB9CisgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9k
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24pKQorICAgICAgICBoYW5kbGVTY3JvbGxQb3NpdGlvblJlcXVlc3Qo
c2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbERhdGEoKSk7CiAKICAgICBpZiAoaXNS
b290Tm9kZSgpCiAgICAgICAgICYmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OlNjcm9sbGVkQ29udGVudHNMYXllcikK
QEAgLTEzMiw2ICsxMzAsMTYgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY28KICAgICByZXR1cm4g
V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpyZXN1bHQoaGFuZGxlZCk7CiB9CiAKK2Jvb2wgU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9z
aXRpb24oRmxvYXRQb2ludCBkZXN0aW5hdGlvblBvc2l0aW9uKQoreworICAgIHJldHVybiBtX2Rl
bGVnYXRlLnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKGRlc3RpbmF0aW9uUG9zaXRpb24p
OworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnN0b3BBbmlt
YXRlZFNjcm9sbCgpCit7CisgICAgbV9kZWxlZ2F0ZS5zdG9wQW5pbWF0ZWRTY3JvbGwoKTsKK30K
Kwogdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjp3aWxsRG9Qcm9ncmFt
bWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0U2Nyb2xsUG9zaXRpb24pCiB7CiAg
ICAgbV9kZWxlZ2F0ZS53aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwodGFyZ2V0U2Nyb2xsUG9zaXRp
b24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmgKaW5k
ZXggNmNmZDVmZTVmNzM0YTBlNTNkMDlhMjMxNmQ3NTE5NDk0MWEwMTc2NC4uYWQxNzI2NmI1NWJl
ZDhkZjRhNDM1N2JlNGZmMjVkODgyODMyMDYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCkBAIC00Nyw2ICs0Nyw5IEBAIHByb3RlY3RlZDoKICAg
ICAKICAgICBGbG9hdFBvaW50IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2lu
dCYsIFNjcm9sbENsYW1waW5nKSBjb25zdCBvdmVycmlkZTsKIAorICAgIGJvb2wgc3RhcnRBbmlt
YXRlZFNjcm9sbFRvUG9zaXRpb24oRmxvYXRQb2ludCBkZXN0aW5hdGlvblBvc2l0aW9uKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIG92ZXJyaWRlOworCiAgICAgdm9p
ZCBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUsIFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb24pIGZpbmFsOwogICAgIHZvaWQgd2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xs
KGNvbnN0IEZsb2F0UG9pbnQmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCA2ZDJiMDI4N2NhOWRmYzMwODE2ZmJhYjY0ZWUw
MmM0OTM5YjJkYmZiLi5kYzJlZGNhZjAwYTQ1Yjc0YWRiZjJmYWRhMTRmNzY2MTE5MGEzZjE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAt
NjcsMTAgKzY3LDggQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFj
Ojpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIAogICAgIGNvbnN0IGF1dG8m
IG92ZXJmbG93U3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9s
bGluZ05vZGU+KHN0YXRlTm9kZSk7CiAKLSAgICBpZiAob3ZlcmZsb3dTdGF0ZU5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKSkgewotICAgICAgICBjb25zdCBhdXRvJiByZXF1ZXN0ZWRTY3JvbGxEYXRhID0g
b3ZlcmZsb3dTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsRGF0YSgpOwotICAgICAgICBzY3JvbGxU
byhyZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxEYXRh
LnNjcm9sbFR5cGUsIHJlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcpOwotICAgIH0KKyAgICBp
ZiAob3ZlcmZsb3dTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9k
ZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkKKyAgICAgICAgaGFuZGxlU2Ny
b2xsUG9zaXRpb25SZXF1ZXN0KG92ZXJmbG93U3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbERhdGEo
KSk7CiB9CiAKIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCwgRXZlbnRUYXJnZXRpbmcgZXZlbnRUYXJnZXRpbmcpCkBAIC04Niw2ICs4
NCwxNiBAQCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudAogICAgIHJldHVybiBXaGVlbEV2ZW50SGFu
ZGxpbmdSZXN1bHQ6OnJlc3VsdChtX2RlbGVnYXRlLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVu
dCkpOwogfQogCitib29sIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OnN0
YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQgZGVzdGluYXRpb25Qb3NpdGlv
bikKK3sKKyAgICByZXR1cm4gbV9kZWxlZ2F0ZS5zdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlv
bihkZXN0aW5hdGlvblBvc2l0aW9uKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlTWFjOjpzdG9wQW5pbWF0ZWRTY3JvbGwoKQoreworICAgIG1fZGVsZWdhdGUu
c3RvcEFuaW1hdGVkU2Nyb2xsKCk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYzo6d2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQm
IHRhcmdldFNjcm9sbFBvc2l0aW9uKQogewogICAgIG1fZGVsZWdhdGUud2lsbERvUHJvZ3JhbW1h
dGljU2Nyb2xsKHRhcmdldFNjcm9sbFBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCmluZGV4IDBhODQ1NWIyMDYwNmRkZDg1MTQ5MTE1NWU2
MjY2OTBhZjg1M2YwMGEuLjhkOGQwNWYyYTc0NTdmYjM3ZjI2OWMxOGZmMGQ2OTY3NjRlMzIzYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaApAQCAt
NTEsNyArNTEsMTAgQEAgcHVibGljOgogICAgIHZvaWQgbm9kZVdpbGxCZURlc3Ryb3llZCgpOwog
CiAgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwot
ICAgIAorCisgICAgYm9vbCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50
KSBmaW5hbDsKKyAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIGZpbmFsOworCiAgICAgdm9p
ZCB3aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpOwogICAgIHZvaWQg
Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IDA4OGQzODA1Mjg4YmE4ODdhZjI2ZjM3
N2UyNzM5YzQxNjhiMDk2NjEuLmViNGFmNGNhZmMyZWJjNDc1Mjc3YWIxZTlhYzRhY2IxMzI4ZTJi
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1t
CkBAIC0xMTMsNiArMTEzLDE5IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsCiAgICAgcmV0dXJu
IG1fc2Nyb2xsQ29udHJvbGxlci5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogfQogCiti
b29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0YXJ0QW5pbWF0ZWRT
Y3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQgZGVzdGluYXRpb25Qb3NpdGlvbikKK3sKKyAgICBh
dXRvIGN1cnJlbnRPZmZzZXQgPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0
aW9uKGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxPcmlnaW4oKSk7CisgICAgYXV0byBk
ZXN0aW5hdGlvbk9mZnNldCA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRp
b24oZGVzdGluYXRpb25Qb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKCkpOworICAgIAorICAgIHJldHVy
biBtX3Njcm9sbENvbnRyb2xsZXIuc3RhcnRBbmltYXRlZFNjcm9sbFRvRGVzdGluYXRpb24oY3Vy
cmVudE9mZnNldCwgZGVzdGluYXRpb25PZmZzZXQpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0b3BBbmltYXRlZFNjcm9sbCgpCit7CisgICAgbV9z
Y3JvbGxDb250cm9sbGVyLnN0b3BBbmltYXRlZFNjcm9sbCgpOworfQorCiB2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OndpbGxEb1Byb2dyYW1tYXRpY1Njcm9sbChj
b25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb3NpdGlvbikKIHsKICAgICBpZiAoc2Nyb2xsUG9zaXRp
b25Jc05vdFJ1YmJlcmJhbmRpbmdFZGdlKHRhcmdldFBvc2l0aW9uKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlTmljb3NpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9u
aWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcAppbmRleCAw
MzI1NjA1MWU2YWJjNDk0OTk2N2Y4NmZjZWYzNjU5NGNmMmFiMjE2Li40YWNmZDM3ZDYyZmUzMDhm
Y2U0Nzg4N2U3ZDM4ODc4YmEyMDc0YjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcApAQCAtOTMsMTEgKzkzLDggQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3RhdGVBZnRl
ckNoaWxkcmVuKGNvbnN0IFNjcm8KICAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5vZGUg
PSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CiAKICAg
ICAvLyBVcGRhdGUgdGhlIHNjcm9sbCBwb3NpdGlvbiBhZnRlciBjaGlsZCBub2RlcyBoYXZlIGJl
ZW4gdXBkYXRlZCwgYmVjYXVzZSB0aGV5IG5lZWQgdG8gaGF2ZSB1cGRhdGVkIHRoZWlyIGNvbnN0
cmFpbnRzIGJlZm9yZSBhbnkgc2Nyb2xsaW5nIGhhcHBlbnMuCi0gICAgaWYgKHNjcm9sbGluZ1N0
YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7Ci0gICAgICAgIHN0b3BTY3JvbGxBbmltYXRpb25z
KCk7Ci0gICAgICAgIGNvbnN0IGF1dG8mIHJlcXVlc3RlZFNjcm9sbERhdGEgPSBzY3JvbGxpbmdT
dGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsRGF0YSgpOwotICAgICAgICBzY3JvbGxUbyhyZXF1ZXN0
ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFR5
cGUsIHJlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcpOwotICAgIH0KKyAgICBpZiAoc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3Bl
cnR5OjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpCisgICAgICAgIGhhbmRsZVNjcm9sbFBvc2l0
aW9uUmVxdWVzdChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsRGF0YSgpKTsKIH0K
IAogV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCwgRXZlbnRUYXJnZXRpbmcgZXZlbnRUYXJnZXRpbmcpCkBAIC0xMDUsOSArMTAyLDE0
IEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVuCiAgICAgcmV0dXJuIG1fZGVsZWdhdGUuaGFuZGxl
V2hlZWxFdmVudCh3aGVlbEV2ZW50LCBldmVudFRhcmdldGluZyk7CiB9CiAKLXZvaWQgU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OnN0b3BTY3JvbGxBbmltYXRpb25zKCkK
K2Jvb2wgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OnN0YXJ0QW5pbWF0
ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQgZGVzdGluYXRpb25Qb3NpdGlvbikKK3sKKyAg
ICByZXR1cm4gbV9kZWxlZ2F0ZS5zdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihkZXN0aW5h
dGlvblBvc2l0aW9uKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
Tmljb3NpYTo6c3RvcEFuaW1hdGVkU2Nyb2xsKCkKIHsKLSAgICBtX2RlbGVnYXRlLnN0b3BTY3Jv
bGxBbmltYXRpb25zKCk7CisgICAgbV9kZWxlZ2F0ZS5zdG9wQW5pbWF0ZWRTY3JvbGwoKTsKIH0K
IAogRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6YWRq
dXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVOaWNvc2lhLmgKaW5kZXggOTYwOGQ1NjBmYTYyMmZkYWQyYzVmNmM1NDEy
YjI5YjY5YmU0OGQzZi4uNDJiYTViMzFlNmYxMzE1NDQ2ZTY3MDgzMTVmYTYwZGE1NTkxYzMzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29z
aWEuaApAQCAtNTUsMTEgKzU1LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21taXRTdGF0ZUJl
Zm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogICAgIHZv
aWQgY29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92
ZXJyaWRlOwogCisgICAgYm9vbCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBv
aW50KSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIG92ZXJyaWRlOwog
CiAgICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiwgRXZlbnRUYXJnZXRpbmcpIG92ZXJyaWRlOwogICAgIEZsb2F0UG9p
bnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBp
bmcpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdl
ZChTY3JvbGxUeXBlLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHN0b3BTY3JvbGxBbmltYXRpb25zKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBvc2l0
aW9uU2Nyb2xsaW5nTGF5ZXJzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBvc2l0aW9uUmVsYXRl
ZExheWVycygpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCmluZGV4IGYyYWUwMzNkMGQ2YjUwZmQ1
OTk3YzFlYjhlODI0OWNmYzU0MDA3YjguLjc1OGE0OTZjY2Y4M2E4YTRlMGM4Mjg0OTZjNGZjN2Zm
ODM4ZDU4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCkBAIC01MiwxMSArNTIsOCBAQCB2b2lkIFNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRy
ZW4oY29uc3QgUwogICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1p
dFN0YXRlQWZ0ZXJDaGlsZHJlbihzdGF0ZU5vZGUpOwogCiAgICAgY29uc3QgYXV0byYgb3ZlcmZs
b3dTdGF0ZU5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZT4oc3RhdGVOb2RlKTsKLSAgICBpZiAob3ZlcmZsb3dTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KSkgewotICAgICAgICBzdG9wU2Nyb2xsQW5pbWF0aW9ucygpOwotICAgICAgICBjb25zdCBhdXRv
JiByZXF1ZXN0ZWRTY3JvbGxEYXRhID0gb3ZlcmZsb3dTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xs
RGF0YSgpOwotICAgICAgICBzY3JvbGxUbyhyZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0
aW9uLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFR5cGUsIHJlcXVlc3RlZFNjcm9sbERhdGEu
Y2xhbXBpbmcpOwotICAgIH0KKyAgICBpZiAob3ZlcmZsb3dTdGF0ZU5vZGUuaGFzQ2hhbmdlZFBy
b3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uKSkKKyAgICAgICAgaGFuZGxlU2Nyb2xsUG9zaXRpb25SZXF1ZXN0KG92ZXJmbG93U3RhdGVO
b2RlLnJlcXVlc3RlZFNjcm9sbERhdGEoKSk7CiB9CiAKIEZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OmFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29u
c3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKSBjb25zdApA
QCAtODgsOSArODUsMTQgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpoYW5kbGVXaGVlbEUKICAgICByZXR1cm4gbV9k
ZWxlZ2F0ZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQsIGV2ZW50VGFyZ2V0aW5nKTsKIH0K
IAotdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6c3RvcFNj
cm9sbEFuaW1hdGlvbnMoKQorYm9vbCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
Tmljb3NpYTo6c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oRmxvYXRQb2ludCBkZXN0aW5h
dGlvblBvc2l0aW9uKQogewotICAgIG1fZGVsZWdhdGUuc3RvcFNjcm9sbEFuaW1hdGlvbnMoKTsK
KyAgICByZXR1cm4gbV9kZWxlZ2F0ZS5zdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihkZXN0
aW5hdGlvblBvc2l0aW9uKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlTmljb3NpYTo6c3RvcEFuaW1hdGVkU2Nyb2xsKCkKK3sKKyAgICBtX2RlbGVnYXRlLnN0
b3BBbmltYXRlZFNjcm9sbCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmgK
aW5kZXggMTY2OTcyNTkzOWE4OTBlZjBkYjYwNzc4NDAyNjg0NTkyYzc1MGZmMC4uZjAxMTdlYjZk
ODdhZmMzZTlhMTc3MTRhYzA3MGNjNDcyOTU1ZjYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlTmljb3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEv
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuaApAQCAtNDksNyArNDks
OSBAQCBwcml2YXRlOgogICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25z
dCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQg
cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpIG92ZXJyaWRlOwogICAgIFdoZWVsRXZlbnRIYW5k
bGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIEV2
ZW50VGFyZ2V0aW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BTY3JvbGxBbmltYXRpb25zKCkg
b3ZlcnJpZGU7CisKKyAgICBib29sIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0
UG9pbnQpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcEFuaW1hdGVkU2Nyb2xsKCkgb3ZlcnJpZGU7
CiAKICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYSBtX2RlbGVn
YXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29zaWEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlTmljb3NpYS5jcHAKaW5kZXggOWQzOGI4YmE4OWU1NjliMWZkMmEwNzI5YTEzMDYw
MTAxNTZhNTYxZC4uNWZiZDcwZDEwNTE4M2UyZmE1NGZiZDgzMmNiZjQwOTE2YTUwZWIxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
Tmljb3NpYS5jcHAKQEAgLTg2LDExICs4Niw2IEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYTo6aGFuZGxlV2hlZWxFCiAg
ICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6aGFuZGxlZCgpOwogfQogCi12b2lk
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhOjpzdG9wU2Nyb2xsQW5p
bWF0aW9ucygpCi17Ci0gICAgbV9zY3JvbGxDb250cm9sbGVyLnN0b3BBbmltYXRlZFNjcm9sbCgp
OwotfQotCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhOjph
bmltYXRpb25UaW1lckZpcmVkKCkKIHsKICAgICBtX3Njcm9sbENvbnRyb2xsZXIuYW5pbWF0aW9u
Q2FsbGJhY2soTW9ub3RvbmljVGltZTo6bm93KCkpOwpAQCAtMTgyLDYgKzE3NywxOSBAQCBTY3Jv
bGxFeHRlbnRzIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhOjpzY3Jv
bGxFeHRlbnRzKCkgY29uc3QKICAgICB9OwogfQogCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVOaWNvc2lhOjpzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9h
dFBvaW50IGRlc3RpbmF0aW9uUG9zaXRpb24pCit7CisgICAgYXV0byBjdXJyZW50T2Zmc2V0ID0g
U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihjdXJyZW50U2Nyb2xsUG9z
aXRpb24oKSwgc2Nyb2xsT3JpZ2luKCkpOworICAgIGF1dG8gZGVzdGluYXRpb25PZmZzZXQgPSBT
Y3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc3RpbmF0aW9uUG9zaXRp
b24sIHNjcm9sbE9yaWdpbigpKTsKKyAgICAKKyAgICByZXR1cm4gbV9zY3JvbGxDb250cm9sbGVy
LnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb0Rlc3RpbmF0aW9uKGN1cnJlbnRPZmZzZXQsIGRlc3RpbmF0
aW9uT2Zmc2V0KTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
Tmljb3NpYTo6c3RvcEFuaW1hdGVkU2Nyb2xsKCkKK3sKKyAgICBtX2RlbGVnYXRlLnN0b3BBbmlt
YXRlZFNjcm9sbCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBVU0UoTklDT1NJQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU5pY29zaWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29zaWEuaAppbmRleCAyMDg3
OTM5MjYwNGRhOGFiZTM0NGJmMzhkOGZjZTQwMWQ3MWI5YzhhLi45MjFlOGJlNjg0NWFhZDBlYjdk
ZjcxZTcxMmRkYTRhNTgwMjM1NGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYS5oCkBAIC0zMSw3ICszMSw2IEBACiAjaWYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgVVNFKE5JQ09TSUEpCiAKICNpbmNsdWRlICJOaWNv
c2lhUGxhdGZvcm1MYXllci5oIgotI2luY2x1ZGUgIlNjcm9sbEFuaW1hdGlvbi5oIgogI2luY2x1
ZGUgIlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3Rh
dGVPdmVyZmxvd1Njcm9sbGluZ05vZGUuaCIKICNpbmNsdWRlICJUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuaCIKQEAgLTM5LDcgKzM4LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhN
RTogVGhpcyBzaG91bGQgbm90IGJlIGEgU2Nyb2xsQW5pbWF0aW9uQ2xpZW50LgogY2xhc3MgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29zaWEgOiBwdWJsaWMgU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZSwgcHVibGljIFNjcm9sbGluZ0VmZmVjdHNDb250cm9s
bGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTmljb3NpYShTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYsIGJvb2wgc2Ny
b2xsQW5pbWF0b3JFbmFibGVkKTsKQEAgLTQ5LDcgKzQ3LDEwIEBAIHB1YmxpYzoKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8Tmljb3NpYTo6U2NlbmVJbnRlZ3JhdGlvbjo6VXBkYXRlU2NvcGU+IGNyZWF0
ZVVwZGF0ZVNjb3BlKCk7CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpOwogICAgIFdo
ZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIEV2ZW50VGFyZ2V0aW5nKTsKLSAgICB2b2lkIHN0b3BTY3JvbGxBbmltYXRpb25z
KCk7CisKKyAgICAvLyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlCisgICAgYm9v
bCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50KSBmaW5hbDsKKyAgICB2
b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIHZvaWQgYW5p
bWF0aW9uVGltZXJGaXJlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5k
ZXggYzlkMTc0OWMxZmE0NDI2NjcyMTJhMjVhYWQwOGE3ZTMyZjBiZmE5NC4uNmU5NDIzZjQ1NmMy
YzA0MjEyMWNjMDE2YjM5MzE1YjYxMTU0NTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxUeXBlcy5oCkBAIC0zMDUsNiArMzA1LDE0IEBAIHN0cnVjdCBTY3JvbGxQb3NpdGlvbkNoYW5n
ZU9wdGlvbnMgewogCiBuYW1lc3BhY2UgV1RGIHsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U2Nyb2xsSXNBbmltYXRlZCwKKyAgICAgICAgV2Vi
Q29yZTo6U2Nyb2xsSXNBbmltYXRlZDo6Tm8sCisgICAgICAgIFdlYkNvcmU6OlNjcm9sbElzQW5p
bWF0ZWQ6OlllcworICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YkNvcmU6OlNjcm9sbGJhck1vZGU+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAog
ICAgICAgICBXZWJDb3JlOjpTY3JvbGxiYXJNb2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcAppbmRleCAyOWRlYmZjNTFhZTU5MDdhNjA3ZDFiNzBjMGExMzIxYjQ3NDZjYzU4
Li4yMzNkMjJmNzI1MjczNmIyMjU3M2RiZmU0ZDU5NzU2MGUxOWI3M2ZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNTIzLDEyICs1MjMsMTYgQEAgdm9pZCBTY3Jv
bGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9z
aXRpb24sIGNvbnN0IFMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChzY3JvbGxB
bmltYXRpb25TdGF0dXMoKSA9PSBTY3JvbGxBbmltYXRpb25TdGF0dXM6OkFuaW1hdGluZykKKyAg
ICBpZiAoc2Nyb2xsQW5pbWF0aW9uU3RhdHVzKCkgPT0gU2Nyb2xsQW5pbWF0aW9uU3RhdHVzOjpB
bmltYXRpbmcpIHsKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7
CisgICAgICAgIHN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsKCk7CisgICAgfQogCiAgICAgU2Nyb2xs
UG9zaXRpb24gbmV3U2Nyb2xsUG9zaXRpb24gPSAoIWRlbGVnYXRlc1Njcm9sbGluZygpICYmIG9w
dGlvbnMuY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpID8gYWRqdXN0U2Nyb2xs
UG9zaXRpb25XaXRoaW5SYW5nZShzY3JvbGxQb3NpdGlvbikgOiBzY3JvbGxQb3NpdGlvbjsKLSAg
ICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNj
cm9sbFR5cGU6OlVzZXIpICYmIG5ld1Njcm9sbFBvc2l0aW9uID09IHRoaXMtPnNjcm9sbFBvc2l0
aW9uKCkpCisgICAgaWYgKCghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgfHwgY3VycmVudFNjcm9sbFR5
cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKSAmJiBuZXdTY3JvbGxQb3NpdGlvbiA9PSB0aGlzLT5z
Y3JvbGxQb3NpdGlvbigpKSB7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0
cmVhbSA8PCAiU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24gIiA8PCBzY3JvbGxQb3NpdGlv
biA8PCAiIHJldHVybiBmb3Igbm8gY2hhbmdlIik7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAK
ICAgICBpZiAoIXJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShuZXdTY3JvbGxQb3NpdGlvbiwg
Y3VycmVudFNjcm9sbFR5cGUoKSwgb3B0aW9ucy5jbGFtcGluZykpCiAgICAgICAgIHVwZGF0ZVNj
cm9sbGJhcnMobmV3U2Nyb2xsUG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuY3BwCmluZGV4IDMwMzhiMzRmZWM1OGUzMDBjMzc4YTEzZGMxZDVmNzQzMjEy
YTk4YjYuLjYwNDY2NTczZDdmYWVmMGZhOGIzMGI5MjkxZWM1Y2I0NGJhYmE2OWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTE0MCwxMCArMTQwLDE1
IEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uCiAgICAgc2Nyb2xsQW5pbWF0b3IoKS5zY3JvbGxU
b1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihwb3NpdGlvbiwgY2xhbXBpbmcpOwogfQogCi12b2lk
IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihjb25zdCBGbG9h
dFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFNjcm9sbGFibGVBcmVhOjpz
Y3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwg
U2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGlu
Zywgc3RyZWFtIDw8ICJTY3JvbGxhYmxlQXJlYSAiIDw8IHRoaXMgPDwgIiBzY3JvbGxUb1Bvc2l0
aW9uV2l0aEFuaW1hdGlvbiAiIDw8IHBvc2l0aW9uKTsKLSAgICBpZiAoc2Nyb2xsQW5pbWF0b3Io
KS5zY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihwb3NpdGlvbikpCisKKyAgICBib29sIHN0
YXJ0ZWRBbmltYXRpb24gPSByZXF1ZXN0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKHJvdW5kZWRJ
bnRQb2ludChwb3NpdGlvbiksIGNsYW1waW5nKTsKKyAgICBpZiAoIXN0YXJ0ZWRBbmltYXRpb24p
CisgICAgICAgIHN0YXJ0ZWRBbmltYXRpb24gPSBzY3JvbGxBbmltYXRvcigpLnNjcm9sbFRvUG9z
aXRpb25XaXRoQW5pbWF0aW9uKHBvc2l0aW9uKTsKKworICAgIGlmIChzdGFydGVkQW5pbWF0aW9u
KQogICAgICAgICBzZXRTY3JvbGxBbmltYXRpb25TdGF0dXMoU2Nyb2xsQW5pbWF0aW9uU3RhdHVz
OjpBbmltYXRpbmcpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aAppbmRleCA3OTdkYTUwM2VlN2FmNjM5NzZmMmNjOGE2ZmMyZmRjOTQyNmQxYzIzLi4zMGQzOTE4
MDc4OGZkNzUzMTI1YzRiNTg2NGQ0M2YzMDMwZjAyZWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTgzLDYgKzgzLDggQEAgcHVibGljOgogICAgIC8vIHJl
dHVybnMgdHJ1ZSwgdGhlIHNjcm9sbGFibGUgYXJlYSB3b24ndCBhY3R1YWxseSB1cGRhdGUgdGhl
IHNjcm9sbCBwb3NpdGlvbiBhbmQgaW5zdGVhZAogICAgIC8vIGV4cGVjdCBpdCB0byBoYXBwZW4g
c29tZXRpbWUgaW4gdGhlIGZ1dHVyZS4KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdFNjcm9sbFBv
c2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5
cGU6OlVzZXIsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHJlcXVlc3RBbmltYXRlZFNjcm9sbFRvUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1w
aW5nOjpDbGFtcGVkKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wQXN5
bmNBbmltYXRlZFNjcm9sbCgpIHsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBib29s
IGhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jiwg
c3RkOjpvcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZT4pOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKaW5k
ZXggMDNmMzEzZGE3NTgxNjk4ZmFjZmUwZDVhMDg3Njc1ZWE3YWY1MTAyZS4uODgzODAwZjAxYTE0
OGJhNGQ4YjQ0MDQyNmM0YzcyNmEyMDk4ZmJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcApAQCAtMjU0LDYgKzI1
NCwyNyBAQCBib29sIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShjb25zdCBTY3JvbGxQb3NpdGlvbgogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
Ym9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGxUb1Bv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXN0aW5hdGlvblBvc2l0aW9uLCBTY3JvbGxD
bGFtcGluZyBjbGFtcGluZykKK3sKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIExP
R19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCBtX2xheWVyIDw8ICIgcmVxdWVzdEFu
aW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbiAiIDw8IGRlc3RpbmF0aW9uUG9zaXRpb24pOworCisgICAg
aWYgKGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV9sYXllci5wYWdlKCkuc2Nyb2xsaW5n
Q29vcmRpbmF0b3IoKSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5yZXF1
ZXN0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKCp0aGlzLCBkZXN0aW5hdGlvblBvc2l0aW9uLCBj
bGFtcGluZyk7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVuZGVyTGF5
ZXJTY3JvbGxhYmxlQXJlYTo6c3RvcEFzeW5jQW5pbWF0ZWRTY3JvbGwoKQoreworI2lmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFt
IDw8IG1fbGF5ZXIgPDwgIiBzdG9wQXN5bmNBbmltYXRlZFNjcm9sbCIpOworCisgICAgaWYgKGF1
dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV9sYXllci5wYWdlKCkuc2Nyb2xsaW5nQ29vcmRp
bmF0b3IoKSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5zdG9wQW5pbWF0
ZWRTY3JvbGwoKnRoaXMpOworI2VuZGlmCit9CisKIFNjcm9sbE9mZnNldCBSZW5kZXJMYXllclNj
cm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9m
ZnNldCwgY29uc3QgU2Nyb2xsUG9zaXRpb25DaGFuZ2VPcHRpb25zJiBvcHRpb25zKQogewogICAg
IGlmIChzY3JvbGxBbmltYXRpb25TdGF0dXMoKSA9PSBTY3JvbGxBbmltYXRpb25TdGF0dXM6OkFu
aW1hdGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
clNjcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYS5oCmluZGV4IGNjODE5OGRjZTNlNmQ0MGFmOTk5MDFmMTgwMDZhNjQ3Y2Jh
ZjM0MGUuLjk2N2I0YWYwMDNkZmQ0NzE3MTMyMjEwMjJhZjMyMGRiYjI3YTg0ZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEu
aApAQCAtMjAwLDYgKzIwMCw4IEBAIHB1YmxpYzoKICAgICBJbnRTaXplIHJlYWNoYWJsZVRvdGFs
Q29udGVudHNTaXplKCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBl
OjpVc2VyLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSBmaW5hbDsK
KyAgICBib29sIHJlcXVlc3RBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9z
aXRpb24mLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSBmaW5hbDsK
KyAgICB2b2lkIHN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsKCkgZmluYWw7CiAKICAgICBib29sIGNv
bnRhaW5zRGlydHlPdmVybGF5U2Nyb2xsYmFycygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbnNE
aXJ0eU92ZXJsYXlTY3JvbGxiYXJzOyB9CiAgICAgdm9pZCBzZXRDb250YWluc0RpcnR5T3Zlcmxh
eVNjcm9sbGJhcnMoYm9vbCBkaXJ0eVNjcm9sbGJhcnMpIHsgbV9jb250YWluc0RpcnR5T3Zlcmxh
eVNjcm9sbGJhcnMgPSBkaXJ0eVNjcm9sbGJhcnM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAppbmRleCA3Y2QyY2EyYTYyMTY4N2Rj
NDE4Y2JhMDA1OTdjMzczNWU5YzU2YjMwLi5jM2YyZmQ4NDFmYmNlYTM4YjQzZTgxMjUyODdlNzUz
Yzg1YzdiZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
VHJhbnNhY3Rpb24uY3BwCkBAIC01MDcsNiArNTA3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJl
cXVlc3RlZFNjcm9sbERhdGE+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVxdWVz
dGUKICAgICBlbmNvZGVyIDw8IHNjcm9sbERhdGEuc2Nyb2xsUG9zaXRpb247CiAgICAgZW5jb2Rl
ciA8PCBzY3JvbGxEYXRhLnNjcm9sbFR5cGU7CiAgICAgZW5jb2RlciA8PCBzY3JvbGxEYXRhLmNs
YW1waW5nOworICAgIGVuY29kZXIgPDwgc2Nyb2xsRGF0YS5hbmltYXRlZDsKIH0KIAogYm9vbCBB
cmd1bWVudENvZGVyPFJlcXVlc3RlZFNjcm9sbERhdGE+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgUmVxdWVzdGVkU2Nyb2xsRGF0YSYgc2Nyb2xsRGF0YSkKQEAgLTUyMCw2ICs1MjEsOSBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8UmVxdWVzdGVkU2Nyb2xsRGF0YT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBSZXF1ZXN0ZWRTY3JvbAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Nyb2xsRGF0
YS5jbGFtcGluZykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoc2Nyb2xsRGF0YS5hbmltYXRlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAg
IHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0KaW5kZXggMGE1N2FmYTJjMDZj
ZDA4NjFlMDBiODJkZWZkMTg5YWRlMmQ1NWYxMC4uZjZkYTk2OTFmYjczNjU0NzMzYTM0ZGYyMjEz
MTBlMTk4MTRmMGI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQpAQCAtOTQsMTAgKzk0LDggQEAg
dm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjb21taXRTdGF0
ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2MKICAgICB9CiAKICAgICAvLyBVcGRhdGUgdGhlIHNjcm9s
bCBwb3NpdGlvbiBhZnRlciBjaGlsZCBub2RlcyBoYXZlIGJlZW4gdXBkYXRlZCwgYmVjYXVzZSB0
aGV5IG5lZWQgdG8gaGF2ZSB1cGRhdGVkIHRoZWlyIGNvbnN0cmFpbnRzIGJlZm9yZSBhbnkgc2Ny
b2xsaW5nIGhhcHBlbnMuCi0gICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b24pKSB7Ci0gICAgICAgIGNvbnN0IGF1dG8mIHJlcXVlc3RlZFNjcm9sbERhdGEgPSBzY3JvbGxp
bmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsRGF0YSgpOwotICAgICAgICBzY3JvbGxUbyhyZXF1
ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9s
bFR5cGUsIHJlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcpOwotICAgIH0KKyAgICBpZiAoc2Ny
b2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlBy
b3BlcnR5OjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpCisgICAgICAgIGhhbmRsZVNjcm9sbFBv
c2l0aW9uUmVxdWVzdChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsRGF0YSgpKTsK
IH0KIAogRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
OjptaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaAppbmRleCBlMDI0OTI2
ODAyZGJjZDg4MDg0NWRmM2FjN2IzZjlhNDZhY2JlYzUyLi5hM2EyNDI3ODJjNjA1NjFhY2FlODNi
YjQ5NjNkOGUyMDlmODY5NWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaApAQCAtNzksNiArNzksOSBAQCBwdWJs
aWM6CiAgICAgVUlTY3JvbGxWaWV3ICpzY3JvbGxWaWV3KCkgY29uc3Q7CiAKIHByaXZhdGU6Cisg
ICAgYm9vbCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50KSBmaW5hbDsK
KyAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIGZpbmFsOworCiAgICAgUmV0YWluUHRyPENB
TGF5ZXI+IG1fc2Nyb2xsTGF5ZXI7CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fc2Nyb2xsZWRD
b250ZW50c0xheWVyOwogICAgIFJldGFpblB0cjxXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVs
ZWdhdGU+IG1fc2Nyb2xsVmlld0RlbGVnYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDhhOWZmNjc1
ZGNlODU5ZTg3MTQyZDViMzc4ODY2ODZiNjVkMDMwZmMuLjEzYTYwNDZjOWU3NzE1NzllZWI1YjI5
MDc1MzNmODBjNTkyMWIyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAgLTI4OSwxMiArMjg5LDIyIEBA
IHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVB
ZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAgICAgfQogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRl
Tm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6UmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7Ci0gICAgICAgIGNvbnN0IGF1dG8mIHJlcXVlc3RlZFNj
cm9sbERhdGEgPSBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsRGF0YSgpOwotICAg
ICAgICBzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsVG8ocmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxQ
b3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxUeXBlLCByZXF1ZXN0ZWRTY3JvbGxE
YXRhLmNsYW1waW5nKTsKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLmhhbmRsZVNjcm9sbFBvc2l0
aW9uUmVxdWVzdChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsRGF0YSgpKTsKICAg
ICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldE5lZWRzQXBwbHlMYXllclBvc2l0aW9uc0FmdGVyQ29t
bWl0KCk7CiAgICAgfQogfQogCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1M6OnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQpCit7CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c3RvcEFuaW1hdGVkU2Nyb2xsKCkKK3sK
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorfQorCiAjaWYgSEFWRShVSVNDUk9MTFZJRVdfQVNZ
TkNIUk9OT1VTX1NDUk9MTF9FVkVOVF9IQU5ETElORykKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzo6aGFuZGxlQXN5bmNocm9ub3VzQ2FuY2VsYWJsZVNjcm9sbEV2
ZW50KFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldywgVUlTY3JvbGxFdmVudCAqc2Nyb2xsRXZlbnQs
IHZvaWQgKF5jb21wbGV0aW9uKShCT09MIGhhbmRsZWQpKQogewo=
</data>
<flag name="review"
          id="464545"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="464548"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440568</attachid>
            <date>2021-10-07 20:00:21 -0700</date>
            <delta_ts>2021-10-07 20:56:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231402-20211007200020.patch</filename>
            <type>text/plain</type>
            <size>51175</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZkNGYxZWZlZmVmN2Q1
MzE5MjM1NGQ1MTgzZDBjM2Y3YjZiOWM5MC4uMzBkMmZjYTczNDNmMDk1NTdkNzljMGIzZjZkMzg3
ZWE3M2NlNTgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEwLTA3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIHBs
dW1iaW5nIGZvciBydW5uaW5nIHNtb290aCBzY3JvbGwgYW5pbWF0aW9ucyBpbiB0aGUgc2Nyb2xs
aW5nIHRocmVhZC9VSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVzZSBjaGFuZ2UgcHJlcGFyZSB0aGUgc2Nyb2xsaW5nIHRyZWUgdG8g
aGFuZGxlIHRoZSBzdGFydGluZyBhbmQgY2FuY2VsYXRpb24gb2YKKyAgICAgICAgcHJvZ3JhbW1h
dGljIHNtb290aCBzY3JvbGwgYW5pbWF0aW9ucy4KKworICAgICAgICBTY3JvbGxhYmxlQXJlYSBz
dWJjbGFzc2VzIGltcGxlbWVudCByZXF1ZXN0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKCkgYW5k
CisgICAgICAgIHN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsKCksIGFraW4gdG8gdGhlIGV4aXN0aW5n
IHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLiBGcmFtZVZpZXcgYW5kCisgICAgICAgIFJl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWEgY2FsbCB0aHJvdWdoIHRvIEFzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IsIHdoaWNoIHdpbGwgc29vbiByZXNwb25kCisgICAgICAgIHRvIHRoZXNlIHJlcXVl
c3RzIGJ5IHNldHRpbmcgc3RhdGUgb24gc2Nyb2xsaW5nIHN0YXRlIG5vZGVzLiBDdXJyZW50bHks
CisgICAgICAgIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IgZG9lcyBgcmV0dXJuIGZhbHNlYCB0
byBhdm9pZCBhIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZSBnYWlucyBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbigpIGFuZCBzdG9wQW5p
bWF0ZWRTY3JvbGwoKSwKKyAgICAgICAgYW5kIGNvbmNyZXRlIHN1YmNsYXNzZXMgdXNlIHRoZWly
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUgKGFuZCBpdHMKKyAgICAgICAgU2Ny
b2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIpIHRvIGFjdHVhbGx5IHRyaWdnZXIgdGhlIHNjcm9sbCBh
bmltYXRpb24sIG9yIHN0b3AgYW4gZXhpc3RpbmcKKyAgICAgICAgb25lLgorCisgICAgICAgIFJl
cXVlc3RlZFNjcm9sbERhdGEgd2lsbCBiZSB1c2VkIGEgYml0IG1vcmUgd2lkZWx5LCBzbyBtb3Zl
IGl0IHRvCisgICAgICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCwgYW5kIGdpdmUgaXQg
YSBTY3JvbGxJc0FuaW1hdGVkIGZpZWxkLgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsVG8pOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGxU
b1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c3RvcEFzeW5jQW5pbWF0
ZWRTY3JvbGwpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdEFu
aW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpzdG9wQW5pbWF0ZWRTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6c3RvcEFuaW1hdGVkU2Ny
b2xsKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXF1ZXN0ZWRTY3JvbGxEYXRhOjpvcGVyYXRvcj09IGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpk
dW1wUHJvcGVydGllcyBjb25zdCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXF1ZXN0ZWRTY3JvbGxE
YXRhOjpvcGVyYXRvcj09IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZGlkU3RvcEFuaW1hdGVkU2Nyb2xsKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpoYW5kbGVTY3JvbGxQb3NpdGlv
blJlcXVlc3QpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU1hYzo6c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6c3RvcEFuaW1hdGVkU2Nyb2xsKToK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6
OnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OnN0b3BBbmltYXRlZFNjcm9sbCk6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWM6OnN0b3BBbmltYXRlZFNjcm9sbCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbmljb3Np
YS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3Rh
dGVBZnRlckNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVOaWNvc2lhOjpzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6c3Rv
cEFuaW1hdGVkU2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVOaWNvc2lhOjpzdG9wU2Nyb2xsQW5pbWF0aW9ucyk6IERlbGV0ZWQuCisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTmljb3NpYS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OmNvbW1pdFN0YXRlQWZ0
ZXJDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlTmljb3NpYTo6c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OnN0
b3BBbmltYXRlZFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6c3RvcFNjcm9sbEFuaW1hdGlvbnMpOiBEZWxldGVkLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU5pY29zaWEuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhOjpzdGFydEFu
aW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYTo6c3RvcEFuaW1hdGVkU2Nyb2xsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhOjpz
dG9wU2Nyb2xsQW5pbWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
bmljb3NpYS9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OnJlcXVlc3RBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGxU
b1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6
OnN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJTY3JvbGxhYmxlQXJlYS5oOgorCiAyMDIxLTEwLTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1pbm9yIHJlZmFjdG9yaW5nIHRvIHVzZSBTY3Jv
bGxVcGRhdGUgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWIwOGQ3ZmRjMTE4YmQ4ZDVlMDIx
ZTFiZjQzMDgzNTQ4ZTA0NjM4Ni4uYmE5OWVmMjljMmFlNWZjMTExYTVkY2M3MTM5MGMyODMzZDA3
MzJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0xMC0wNyAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc29tZSBwbHVtYmluZyBm
b3IgcnVubmluZyBzbW9vdGggc2Nyb2xsIGFuaW1hdGlvbnMgaW4gdGhlIHNjcm9sbGluZyB0aHJl
YWQvVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxNDAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
VHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxSZXF1ZXN0ZWRTY3JvbGxE
YXRhPjo6ZW5jb2RlKToKKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8UmVxdWVzdGVkU2Nyb2xsRGF0
YT46OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y29tbWl0U3RhdGVB
ZnRlckNoaWxkcmVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6U2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c3RhcnRBbmltYXRlZFNjcm9sbFRv
UG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TOjpzdG9wQW5pbWF0ZWRTY3JvbGwpOgorCiAyMDIxLTEwLTA3ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1pbm9yIHJlZmFjdG9yaW5n
IHRvIHVzZSBTY3JvbGxVcGRhdGUgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApp
bmRleCBjOWZlZGM4MTdmOTViNmE1NzM0MjFmMDYwMjNiYjA4ZDM1MmZiYzQyLi5jNmU2Y2U4Nzcw
YjFkYTVkYzQwMDc1ZGEyMTdmODkyOTUxMzMzMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBA
IC0xMDAwLDYgKzEwMDAsOCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5KGRvdWJsZSB4LCBkb3Vi
bGUgeSkKIAogdm9pZCBFbGVtZW50OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9w
dGlvbnMsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25N
ZXRob2Qgc25hcFBvaW50U2VsZWN0aW9uTWV0aG9kKQogeworICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiRWxlbWVudCAiIDw8ICp0aGlzIDw8ICIgc2Nyb2xsVG8gIiA8
PCBvcHRpb25zLmxlZnQgPDwgIiwgIiA8PCBvcHRpb25zLnRvcCk7CisKICAgICBpZiAoIWRvY3Vt
ZW50KCkuc2V0dGluZ3MoKS5DU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCkpIHsKICAgICAg
ICAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgdGhlIHJvb3QgZWxlbWVudCBhbmQgZG9jdW1lbnQgaXMg
aW4gcXVpcmtzIG1vZGUsIHRlcm1pbmF0ZSB0aGVzZSBzdGVwcy4KICAgICAgICAgLy8gTm90ZSB0
aGF0IFdlYktpdCBhbHdheXMgdXNlcyBxdWlya3MgbW9kZSBkb2N1bWVudCBzY3JvbGxpbmcgYmVo
YXZpb3IuIFNlZSBEb2N1bWVudDo6c2Nyb2xsaW5nRWxlbWVudCgpLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IGMxN2QxZGU4ODIwZDM1YTkyOWEzNmIzMjVjYTc1MmMyNjRiZGM3MzMu
LjRiNTQzZTliMjNmZjdmY2U4NWE0MTYxNGE4ZWJlOWY4NmU0MDc1NjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTIzMDYsNyArMjMwNiw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3Jv
bGxFbGVtZW50VG9SZWN0KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEludFJlY3QmIHJl
Y3QpCiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3Np
dGlvbiYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFNjcm9sbFBvc2l0aW9uQ2hhbmdlT3B0aW9ucyYg
b3B0aW9ucykKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIkZy
YW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24gIiA8PCBzY3JvbGxQb3NpdGlvbiA8PCAiICwgY2xl
YXJpbmcgYW5jaG9yIik7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8
ICJGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24gPDwgIiBh
bmltYXRlZCAiIDw8IChvcHRpb25zLmFuaW1hdGVkID09IFNjcm9sbElzQW5pbWF0ZWQ6Olllcykg
PDwgIiwgY2xlYXJpbmcgYW5jaG9yIik7CiAKICAgICBhdXRvIG9sZFNjcm9sbFR5cGUgPSBjdXJy
ZW50U2Nyb2xsVHlwZSgpOwogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKG9wdGlvbnMudHlwZSk7
CkBAIC0yNjg3LDYgKzI2ODcsMzAgQEAgYm9vbCBGcmFtZVZpZXc6OnJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm8KICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK2Jvb2wgRnJhbWVWaWV3OjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGxUb1Bv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXN0aW5hdGlvblBvc2l0aW9uLCBTY3JvbGxD
bGFtcGluZyBjbGFtcGluZykKK3sKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJl
YW0gPDwgIkZyYW1lVmlldzo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbiAiIDw8IGRl
c3RpbmF0aW9uUG9zaXRpb24pOworCisjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBp
ZiAoYXV0byBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9y
KCkpCisgICAgICAgIHJldHVybiBzY3JvbGxpbmdDb29yZGluYXRvci0+cmVxdWVzdEFuaW1hdGVk
U2Nyb2xsVG9Qb3NpdGlvbigqdGhpcywgZGVzdGluYXRpb25Qb3NpdGlvbiwgY2xhbXBpbmcpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb25Qb3NpdGlvbik7CisjZW5kaWYKKwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBGcmFtZVZpZXc6OnN0b3BBc3luY0FuaW1hdGVk
U2Nyb2xsKCkKK3sKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRnJhbWVWaWV3OjpzdG9wQXN5bmNBbmltYXRlZFNj
cm9sbCIpOworCisgICAgaWYgKGF1dG8gc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3Jv
bGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3It
PnN0b3BBbmltYXRlZFNjcm9sbCgqdGhpcyk7CisjZW5kaWYKK30KKwogSG9zdFdpbmRvdyogRnJh
bWVWaWV3Ojpob3N0V2luZG93KCkgY29uc3QKIHsKICAgICBhdXRvKiBwYWdlID0gZnJhbWUoKS5w
YWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBkOWQ0OGFmNWY3ZDE0OTc3ZjNhNTBk
ZTU2NTk5M2VkZTNkNTJhMzE4Li44YTcxMGNkNmM1ODUxNWQzODgyMGJkOTcxZGFlZDhiZjcyMTUy
YWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTI0Niw3ICsyNDYsMTEgQEAgcHVibGlj
OgogICAgIHZvaWQgc2Nyb2xsVG9Gb2N1c2VkRWxlbWVudEltbWVkaWF0ZWx5SWZOZWVkZWQoKTsK
ICAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGxpbmcoKSBmaW5hbDsKICAg
ICB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxpbmcoKSBmaW5hbDsKKwog
ICAgIGJvb2wgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9u
JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQpIGZpbmFsOworICAgIGJvb2wgcmVxdWVzdEFuaW1hdGVkU2Nyb2xs
VG9Qb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQpIGZpbmFsOworICAgIHZvaWQgc3RvcEFzeW5jQW5pbWF0ZWRTY3Jv
bGwoKSBmaW5hbDsKKwogICAgIGJvb2wgaXNVc2VyU2Nyb2xsSW5Qcm9ncmVzcygpIGNvbnN0IGZp
bmFsOwogICAgIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0IGZpbmFsOwogICAg
IFdFQkNPUkVfRVhQT1JUIFNjcm9sbFBvc2l0aW9uIG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNv
bnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA1Mjg5ZWRiN2MxNDE4NGU2ODdk
OGUzNDI2NWExN2VjMjA0NTE0NTQxLi4zZDYzNGJlNmQ3MGNhYjQ2MDgyYjFlNjBiOTk5MzAwNDk4
ZDNjNGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjM5LDcgKzIzOSw3IEBAIHZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKEZy
YW1lVmlldyYgZnJhbWVWaWV3CiAgICAgbm9kZS0+c2V0SG9yaXpvbnRhbFNjcm9sbGJhckxheWVy
KGZyYW1lVmlldy5sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSk7CiB9CiAKLWJvb2wgQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9s
bGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQorYm9vbCBB
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Ny
b2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xs
UG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV9wYWdlKTsKQEAg
LTI3NSwxMSArMjc1LDIzIEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3JvCiAgICAgaWYgKCFzdGF0
ZU5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0YXRlTm9kZS0+c2V0UmVxdWVz
dGVkU2Nyb2xsRGF0YSh7IHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxUeXBlLCBjbGFtcGluZyB9KTsK
KyAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbERhdGEoeyBzY3JvbGxQb3NpdGlvbiwg
c2Nyb2xsVHlwZSwgY2xhbXBpbmcsIFNjcm9sbElzQW5pbWF0ZWQ6Ok5vIH0pOworICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBzY2hlZHVsZSBhIHJlbmRlcmluZyB1cGRhdGUKICAgICBjb21taXRU
cmVlU3RhdGVJZk5lZWRlZCgpOwogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oU2Nyb2xs
YWJsZUFyZWEmLCBjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbENsYW1waW5nKQoreworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN0b3BBbmltYXRlZFNjcm9sbChTY3JvbGxhYmxlQXJlYSYp
Cit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KK30KKwogdm9pZCBBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjphcHBseVNjcm9sbGluZ1RyZWVMYXllclBvc2l0aW9ucygpCiB7CiAgICAgbV9z
Y3JvbGxpbmdUcmVlLT5hcHBseUxheWVyUG9zaXRpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5k
ZXggZDBiOWE1MTYxMWVjMmMwOWJmY2MzZDYzMzExNTc2ZjNjNjNlODMwOC4uNjY2NjRhNDFmZjUx
MTI2ZDdiNGI3MmUzNDIxZTlhNDBmYmRmMTA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTAw
LDcgKzEwMCw5IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmcmFtZVZpZXdW
aXN1YWxWaWV3cG9ydENoYW5nZWQoRnJhbWVWaWV3Jikgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBmcmFtZVZpZXdFdmVudFRyYWNraW5nUmVnaW9uc0NoYW5nZWQoRnJhbWVWaWV3
Jikgb3ZlcnJpZGU7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IEludFBvaW50JiwgU2Nyb2xsVHlwZSwg
U2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiwgY29uc3QgU2Nyb2xsUG9zaXRp
b24mLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykgZmluYWw7CisgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCByZXF1ZXN0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKFNjcm9sbGFibGVBcmVhJiwg
Y29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxDbGFtcGluZykgZmluYWw7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzdG9wQW5pbWF0ZWRTY3JvbGwoU2Nyb2xsYWJsZUFyZWEmKSBmaW5hbDsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwbHlTY3JvbGxpbmdUcmVlTGF5ZXJQb3NpdGlv
bnMoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggODNkOWRlMTNlMzI2ODMyZmMwMWJmMTNhMWUy
ODEyZWM0ZGUzOTcxZi4uNTAwOTI2MjU5YTY3MzlmYWI4OGU3OTY2MTczMzNhMWM4NGZkMTlhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5oCkBAIC0xMTIsNyArMTEyLDExIEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZXNlIHZp
cnR1YWwgZnVuY3Rpb25zIGFyZSBjdXJyZW50bHkgdW5pcXVlIHRvIHRoZSB0aHJlYWRlZCBzY3Jv
bGxpbmcgYXJjaGl0ZWN0dXJlLiAKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJlZVN0YXRlSWZO
ZWVkZWQoKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
KFNjcm9sbGFibGVBcmVhJiwgY29uc3QgSW50UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlw
ZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVk
KSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmlydHVhbCBib29sIHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xs
VHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVx
dWVzdEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiwgU2Nyb2xsQ2xhbXBpbmcpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbChTY3JvbGxhYmxlQXJlYSYpIHsgfQorCiAgICAgdmly
dHVhbCBib29sIGhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlELCBzdGQ6Om9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVy
ZVN0YXRlPikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVudFdh
c1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBzdGQ6Om9w
dGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPikgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaApp
bmRleCAwNDdmMmM1NWE2NWIwNWM2MDExZTNjZjJmMzJiOGEyNzJmM2Q4ZWYzLi5lMWI4YWQzZTIz
YmIzMTg2ZjM0NjRhNjk3YjcxN2FjMWVmN2U5MTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCkBAIC0x
MDIsNiArMTAyLDIwIEBAIGVudW0gY2xhc3MgVmlld3BvcnRSZWN0U3RhYmlsaXR5IHsKICAgICBD
aGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSAvLyBUaGlzIGltcGxpZXMgVW5zdGFi
bGUuCiB9OwogCitzdHJ1Y3QgUmVxdWVzdGVkU2Nyb2xsRGF0YSB7CisgICAgRmxvYXRQb2ludCBz
Y3JvbGxQb3NpdGlvbjsKKyAgICBTY3JvbGxUeXBlIHNjcm9sbFR5cGUgeyBTY3JvbGxUeXBlOjpV
c2VyIH07CisgICAgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcgeyBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCB9OworICAgIFNjcm9sbElzQW5pbWF0ZWQgYW5pbWF0ZWQgeyBTY3JvbGxJc0FuaW1hdGVk
OjpObyB9OworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlcXVlc3RlZFNjcm9sbERhdGEm
IG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uID09IG90
aGVyLnNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAmJiBzY3JvbGxUeXBlID09IG90aGVyLnNj
cm9sbFR5cGUKKyAgICAgICAgICAgICYmIGNsYW1waW5nID09IG90aGVyLmNsYW1waW5nOworICAg
IH0KK307CisKIHN0cnVjdCBTY3JvbGxVcGRhdGUgewogICAgIFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQgeyAwIH07CiAgICAgRmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUuY3BwCmluZGV4IDg4NjYzMzBmOTI1YzY1MzZkYzQ4ZWZiZjE3MzZlNTkwMWEwMGM0Mjgu
LjZiYjkwMjlmOTgxYTYwMGMyNzM2YjdlZDc3OWFkOTJjYmUwNGZkOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmNwcApAQCAtMjk3LDYgKzI5Nyw5IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVU
CiAgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsRGF0YS5jbGFtcGluZyA9PSBTY3JvbGxDbGFtcGlu
Zzo6VW5jbGFtcGVkKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwg
cG9zaXRpb24gY2xhbXBpbmciLCBtX3JlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcpOwogCisg
ICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsRGF0YS5hbmltYXRlZCA9PSBTY3JvbGxJc0FuaW1hdGVk
OjpZZXMpCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlv
biBpcyBhbmltYXRlZCIsIHRydWUpOworCiAgICAgaWYgKG1fc2Nyb2xsT3JpZ2luICE9IEludFBv
aW50KCkpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgic2Nyb2xsIG9yaWdpbiIsIG1fc2Nyb2xs
T3JpZ2luKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAppbmRleCA4YmNmOTFkYWQ5MWNmYWVmY2Fi
MTA3NGFkNmY3OGEwMTUxMmY4OTE5Li41ZGJmYTM2ZDRjZGM0MWUzYTZlYmJjMjM4YjA5OGQyOGVh
ZmE5YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaApAQCAtMzgsMTkgKzM4LDYgQEAgT0JKQ19D
TEFTUyBOU1Njcm9sbGVySW1wOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBSZXF1
ZXN0ZWRTY3JvbGxEYXRhIHsKLSAgICBGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uOwotICAgIFNj
cm9sbFR5cGUgc2Nyb2xsVHlwZSB7IFNjcm9sbFR5cGU6OlVzZXIgfTsKLSAgICBTY3JvbGxDbGFt
cGluZyBjbGFtcGluZyB7IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkIH07Ci0gICAgCi0gICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFJlcXVlc3RlZFNjcm9sbERhdGEmIG90aGVyKSBjb25zdAotICAg
IHsKLSAgICAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uID09IG90aGVyLnNjcm9sbFBvc2l0aW9u
Ci0gICAgICAgICAgICAmJiBzY3JvbGxUeXBlID09IG90aGVyLnNjcm9sbFR5cGUKLSAgICAgICAg
ICAgICYmIGNsYW1waW5nID09IG90aGVyLmNsYW1waW5nOwotICAgIH0KLX07Ci0KIGNsYXNzIFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSA6IHB1YmxpYyBTY3JvbGxpbmdTdGF0ZU5vZGUgewog
cHVibGljOgogICAgIHZpcnR1YWwgflNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDk4YTMzNzkwNWU0OTVjZTQ0MmMzOTE3NTZmZWYxZmYz
NzQyYWM1ZmMuLmI1ZDg3MTZkMTA3ZWJiYzkxNjhkNTA3NjRhZTg1OWNlYzBjYzc3ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTIyNyw2ICsyMjcsMjYgQEAgdm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsU25hcEluUHJvZ3Jlc3MoYm9vbCBpc1NuYXBwaW5n
KQogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXROb2RlU2Nyb2xsU25hcEluUHJvZ3Jlc3Moc2Nyb2xs
aW5nTm9kZUlEKCksIGlzU25hcHBpbmcpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlOjpkaWRTdG9wQW5pbWF0ZWRTY3JvbGwoKQoreworICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUgIiA8PCBzY3Jv
bGxpbmdOb2RlSUQoKSA8PCAiIGRpZFN0b3BBbmltYXRlZFNjcm9sbCIpOworICAgIC8vIEZJWE1F
OiBQcm9wYWdhdGUgc3RhdGUgYmFjayB0byB0aGUgbWFpbiB0aHJlYWQuCit9CisKK3ZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmhhbmRsZVNjcm9sbFBvc2l0aW9uUmVxdWVzdChjb25z
dCBSZXF1ZXN0ZWRTY3JvbGxEYXRhJiByZXF1ZXN0ZWRTY3JvbGxEYXRhKQoreworICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUgIiA8PCBzY3JvbGxpbmdOb2RlSUQoKSA8PCAiIGhhbmRsZVNjcm9sbFBvc2l0aW9uUmVxdWVz
dCgpIC0gcG9zaXRpb24gIiA8PCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9uIDw8
ICIgYW5pbWF0ZWQgIiA8PCAocmVxdWVzdGVkU2Nyb2xsRGF0YS5hbmltYXRlZCA9PSBTY3JvbGxJ
c0FuaW1hdGVkOjpZZXMpKTsKKworICAgIHN0b3BBbmltYXRlZFNjcm9sbCgpOworICAgIAorICAg
IGlmIChyZXF1ZXN0ZWRTY3JvbGxEYXRhLmFuaW1hdGVkID09IFNjcm9sbElzQW5pbWF0ZWQ6Olll
cykgeworICAgICAgICBpZiAoc3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24ocmVxdWVzdGVk
U2Nyb2xsRGF0YS5zY3JvbGxQb3NpdGlvbikpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgc2Nyb2xsVG8ocmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxQb3NpdGlvbiwgcmVxdWVz
dGVkU2Nyb2xsRGF0YS5zY3JvbGxUeXBlLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLmNsYW1waW5nKTsK
K30KKwogRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6YWRqdXN0ZWRTY3Jv
bGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBp
bmcgY2xhbXBpbmcpIGNvbnN0CiB7CiAgICAgaWYgKGNsYW1waW5nID09IFNjcm9sbENsYW1waW5n
OjpDbGFtcGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggOWMxYmE2YjJmMTAzZDRjNDQ1NTky
NTBjNTc2NjBhMTEzYjE0NWVmMC4uNjgwYjJlYzU3MzFlN2MxMjkyMDhiNTRjMDc2NWZlYzhmZjZm
MjM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlw
ZTo6VXNlciwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAgICAg
dm9pZCBzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdG9wU2Nyb2xsQW5pbWF0aW9u
cygpIHsgfTsKKyAgICB2b2lkIGhhbmRsZVNjcm9sbFBvc2l0aW9uUmVxdWVzdChjb25zdCBSZXF1
ZXN0ZWRTY3JvbGxEYXRhJik7CiAKICAgICB2b2lkIHdhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3Jv
bGxpbmcoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0
PiBvdmVycmlkZUxheW91dFZpZXdwb3J0ID0geyB9LCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYyk7CiAgICAgCkBAIC0xMjMs
NiArMTIzLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsRG9Qcm9ncmFtbWF0
aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpIHsgfQogICAgIAogICAgIHZpcnR1YWwgRmxvYXRQ
b2ludCBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFt
cGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFs
IGJvb2wgc3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oRmxvYXRQb2ludCkgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1hdGVkU2Nyb2xsKCkgeyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZChTY3JvbGxUeXBlLCBT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
bjo6U3luYyk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9s
bFBvc2l0aW9uKHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiA9IHsgfSkgeyB9CkBAIC0xMzMsNiAr
MTM2LDggQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBhcHBseUxheWVyUG9zaXRpb25zKCkgb3Zl
cnJpZGU7CiAKKyAgICB2b2lkIGRpZFN0b3BBbmltYXRlZFNjcm9sbCgpOworCiAgICAgY29uc3Qg
RmxvYXRTaXplJiByZWFjaGFibGVDb250ZW50c1NpemUoKSBjb25zdCB7IHJldHVybiBtX3JlYWNo
YWJsZUNvbnRlbnRzU2l6ZTsgfQogICAgIAogICAgIGJvb2wgaXNMYXRjaGVkTm9kZSgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZS5oCmluZGV4IDU1MThiNGNjNGM5YTMw
OTdhNjU2ZGE1MTgwMTM1ZDM5M2Y0ZTkwYjEuLjQ1Mjk0YmVlZjA4ZDI2YTNjNGY4Mzc3YTgxOTFi
ZjhjOGZiYTdiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmgKQEAgLTM4
LDYgKzM4LDkgQEAgcHVibGljOgogCiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmIHNj
cm9sbGluZ05vZGUoKSB7IHJldHVybiBtX3Njcm9sbGluZ05vZGU7IH0KICAgICBjb25zdCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYgc2Nyb2xsaW5nTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsaW5nTm9kZTsgfQorICAgIAorICAgIHZpcnR1YWwgYm9vbCBzdGFydEFuaW1hdGVkU2Ny
b2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BBbmlt
YXRlZFNjcm9sbCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIFNjcm9s
bGluZ1RyZWUmIHNjcm9sbGluZ1RyZWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYy5oCmluZGV4IGMwZTgyN2M0YmZhZTQyNmMyMTRjYTdkNmE2MzcwYjhj
NWJkMjg2MmYuLmU4Y2Y5NGYyMjY5ODU0ZDAzZmJiOTg2NDU3YjBhNmNlOTlmZDhhMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaApAQCAtNjYsNiArNjYsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgZmluYWw7CiAgICAgdm9pZCB3
aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpIGZpbmFsOwogCisgICAg
Ym9vbCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50KSBmaW5hbDsKKyAg
ICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIGZpbmFsOworCiAgICAgRmxvYXRQb2ludCBhZGp1
c3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZykgY29u
c3QgZmluYWw7CiAKICAgICB2b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoU2Nyb2xs
VHlwZSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDNjMTRiY2JlNzFiMTZiYzRlMGRh
MmI5YWIxNmI5NWRhMmUxOTY4MWEuLjkyMjY1YjdjZDU0OWJiMWViMzgzMDNkNmM4NTUzMGFkOTE2
NTA2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCkBA
IC0xMDUsMTAgKzEwNSw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluCiAgICAgY29uc3QgYXV0
byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlPihzdGF0ZU5vZGUpOwogCiAgICAgLy8gVXBkYXRlIHRoZSBzY3JvbGwgcG9zaXRpb24gYWZ0
ZXIgY2hpbGQgbm9kZXMgaGF2ZSBiZWVuIHVwZGF0ZWQsIGJlY2F1c2UgdGhleSBuZWVkIHRvIGhh
dmUgdXBkYXRlZCB0aGVpciBjb25zdHJhaW50cyBiZWZvcmUgYW55IHNjcm9sbGluZyBoYXBwZW5z
LgotICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlTm9kZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewotICAgICAg
ICBjb25zdCBhdXRvJiByZXF1ZXN0ZWRTY3JvbGxEYXRhID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJl
cXVlc3RlZFNjcm9sbERhdGEoKTsKLSAgICAgICAgc2Nyb2xsVG8ocmVxdWVzdGVkU2Nyb2xsRGF0
YS5zY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxUeXBlLCByZXF1ZXN0
ZWRTY3JvbGxEYXRhLmNsYW1waW5nKTsKLSAgICB9CisgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9k
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24pKQorICAgICAgICBoYW5kbGVTY3JvbGxQb3NpdGlvblJlcXVlc3Qo
c2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbERhdGEoKSk7CiAKICAgICBpZiAoaXNS
b290Tm9kZSgpCiAgICAgICAgICYmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OlNjcm9sbGVkQ29udGVudHNMYXllcikK
QEAgLTEzMiw2ICsxMzAsMTYgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY28KICAgICByZXR1cm4g
V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpyZXN1bHQoaGFuZGxlZCk7CiB9CiAKK2Jvb2wgU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9z
aXRpb24oRmxvYXRQb2ludCBkZXN0aW5hdGlvblBvc2l0aW9uKQoreworICAgIHJldHVybiBtX2Rl
bGVnYXRlLnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKGRlc3RpbmF0aW9uUG9zaXRpb24p
OworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnN0b3BBbmlt
YXRlZFNjcm9sbCgpCit7CisgICAgbV9kZWxlZ2F0ZS5zdG9wQW5pbWF0ZWRTY3JvbGwoKTsKK30K
Kwogdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjp3aWxsRG9Qcm9ncmFt
bWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0U2Nyb2xsUG9zaXRpb24pCiB7CiAg
ICAgbV9kZWxlZ2F0ZS53aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwodGFyZ2V0U2Nyb2xsUG9zaXRp
b24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmgKaW5k
ZXggNmNmZDVmZTVmNzM0YTBlNTNkMDlhMjMxNmQ3NTE5NDk0MWEwMTc2NC4uYWQxNzI2NmI1NWJl
ZDhkZjRhNDM1N2JlNGZmMjVkODgyODMyMDYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCkBAIC00Nyw2ICs0Nyw5IEBAIHByb3RlY3RlZDoKICAg
ICAKICAgICBGbG9hdFBvaW50IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2lu
dCYsIFNjcm9sbENsYW1waW5nKSBjb25zdCBvdmVycmlkZTsKIAorICAgIGJvb2wgc3RhcnRBbmlt
YXRlZFNjcm9sbFRvUG9zaXRpb24oRmxvYXRQb2ludCBkZXN0aW5hdGlvblBvc2l0aW9uKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIG92ZXJyaWRlOworCiAgICAgdm9p
ZCBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUsIFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb24pIGZpbmFsOwogICAgIHZvaWQgd2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xs
KGNvbnN0IEZsb2F0UG9pbnQmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCA2ZDJiMDI4N2NhOWRmYzMwODE2ZmJhYjY0ZWUw
MmM0OTM5YjJkYmZiLi5kYzJlZGNhZjAwYTQ1Yjc0YWRiZjJmYWRhMTRmNzY2MTE5MGEzZjE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAt
NjcsMTAgKzY3LDggQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFj
Ojpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIAogICAgIGNvbnN0IGF1dG8m
IG92ZXJmbG93U3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9s
bGluZ05vZGU+KHN0YXRlTm9kZSk7CiAKLSAgICBpZiAob3ZlcmZsb3dTdGF0ZU5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKSkgewotICAgICAgICBjb25zdCBhdXRvJiByZXF1ZXN0ZWRTY3JvbGxEYXRhID0g
b3ZlcmZsb3dTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsRGF0YSgpOwotICAgICAgICBzY3JvbGxU
byhyZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxEYXRh
LnNjcm9sbFR5cGUsIHJlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcpOwotICAgIH0KKyAgICBp
ZiAob3ZlcmZsb3dTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9k
ZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkKKyAgICAgICAgaGFuZGxlU2Ny
b2xsUG9zaXRpb25SZXF1ZXN0KG92ZXJmbG93U3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbERhdGEo
KSk7CiB9CiAKIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCwgRXZlbnRUYXJnZXRpbmcgZXZlbnRUYXJnZXRpbmcpCkBAIC04Niw2ICs4
NCwxNiBAQCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudAogICAgIHJldHVybiBXaGVlbEV2ZW50SGFu
ZGxpbmdSZXN1bHQ6OnJlc3VsdChtX2RlbGVnYXRlLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVu
dCkpOwogfQogCitib29sIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OnN0
YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQgZGVzdGluYXRpb25Qb3NpdGlv
bikKK3sKKyAgICByZXR1cm4gbV9kZWxlZ2F0ZS5zdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlv
bihkZXN0aW5hdGlvblBvc2l0aW9uKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlTWFjOjpzdG9wQW5pbWF0ZWRTY3JvbGwoKQoreworICAgIG1fZGVsZWdhdGUu
c3RvcEFuaW1hdGVkU2Nyb2xsKCk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYzo6d2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQm
IHRhcmdldFNjcm9sbFBvc2l0aW9uKQogewogICAgIG1fZGVsZWdhdGUud2lsbERvUHJvZ3JhbW1h
dGljU2Nyb2xsKHRhcmdldFNjcm9sbFBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCmluZGV4IDBhODQ1NWIyMDYwNmRkZDg1MTQ5MTE1NWU2
MjY2OTBhZjg1M2YwMGEuLjhkOGQwNWYyYTc0NTdmYjM3ZjI2OWMxOGZmMGQ2OTY3NjRlMzIzYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaApAQCAt
NTEsNyArNTEsMTAgQEAgcHVibGljOgogICAgIHZvaWQgbm9kZVdpbGxCZURlc3Ryb3llZCgpOwog
CiAgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwot
ICAgIAorCisgICAgYm9vbCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50
KSBmaW5hbDsKKyAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIGZpbmFsOworCiAgICAgdm9p
ZCB3aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpOwogICAgIHZvaWQg
Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IDA4OGQzODA1Mjg4YmE4ODdhZjI2ZjM3
N2UyNzM5YzQxNjhiMDk2NjEuLmViNGFmNGNhZmMyZWJjNDc1Mjc3YWIxZTlhYzRhY2IxMzI4ZTJi
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1t
CkBAIC0xMTMsNiArMTEzLDE5IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsCiAgICAgcmV0dXJu
IG1fc2Nyb2xsQ29udHJvbGxlci5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogfQogCiti
b29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0YXJ0QW5pbWF0ZWRT
Y3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQgZGVzdGluYXRpb25Qb3NpdGlvbikKK3sKKyAgICBh
dXRvIGN1cnJlbnRPZmZzZXQgPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0
aW9uKGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxPcmlnaW4oKSk7CisgICAgYXV0byBk
ZXN0aW5hdGlvbk9mZnNldCA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRp
b24oZGVzdGluYXRpb25Qb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKCkpOworICAgIAorICAgIHJldHVy
biBtX3Njcm9sbENvbnRyb2xsZXIuc3RhcnRBbmltYXRlZFNjcm9sbFRvRGVzdGluYXRpb24oY3Vy
cmVudE9mZnNldCwgZGVzdGluYXRpb25PZmZzZXQpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0b3BBbmltYXRlZFNjcm9sbCgpCit7CisgICAgbV9z
Y3JvbGxDb250cm9sbGVyLnN0b3BBbmltYXRlZFNjcm9sbCgpOworfQorCiB2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OndpbGxEb1Byb2dyYW1tYXRpY1Njcm9sbChj
b25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb3NpdGlvbikKIHsKICAgICBpZiAoc2Nyb2xsUG9zaXRp
b25Jc05vdFJ1YmJlcmJhbmRpbmdFZGdlKHRhcmdldFBvc2l0aW9uKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlTmljb3NpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9u
aWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcAppbmRleCAw
MzI1NjA1MWU2YWJjNDk0OTk2N2Y4NmZjZWYzNjU5NGNmMmFiMjE2Li40YWNmZDM3ZDYyZmUzMDhm
Y2U0Nzg4N2U3ZDM4ODc4YmEyMDc0YjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcApAQCAtOTMsMTEgKzkzLDggQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3RhdGVBZnRl
ckNoaWxkcmVuKGNvbnN0IFNjcm8KICAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5vZGUg
PSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CiAKICAg
ICAvLyBVcGRhdGUgdGhlIHNjcm9sbCBwb3NpdGlvbiBhZnRlciBjaGlsZCBub2RlcyBoYXZlIGJl
ZW4gdXBkYXRlZCwgYmVjYXVzZSB0aGV5IG5lZWQgdG8gaGF2ZSB1cGRhdGVkIHRoZWlyIGNvbnN0
cmFpbnRzIGJlZm9yZSBhbnkgc2Nyb2xsaW5nIGhhcHBlbnMuCi0gICAgaWYgKHNjcm9sbGluZ1N0
YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7Ci0gICAgICAgIHN0b3BTY3JvbGxBbmltYXRpb25z
KCk7Ci0gICAgICAgIGNvbnN0IGF1dG8mIHJlcXVlc3RlZFNjcm9sbERhdGEgPSBzY3JvbGxpbmdT
dGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsRGF0YSgpOwotICAgICAgICBzY3JvbGxUbyhyZXF1ZXN0
ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFR5
cGUsIHJlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcpOwotICAgIH0KKyAgICBpZiAoc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3Bl
cnR5OjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpCisgICAgICAgIGhhbmRsZVNjcm9sbFBvc2l0
aW9uUmVxdWVzdChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsRGF0YSgpKTsKIH0K
IAogV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCwgRXZlbnRUYXJnZXRpbmcgZXZlbnRUYXJnZXRpbmcpCkBAIC0xMDUsOSArMTAyLDE0
IEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVuCiAgICAgcmV0dXJuIG1fZGVsZWdhdGUuaGFuZGxl
V2hlZWxFdmVudCh3aGVlbEV2ZW50LCBldmVudFRhcmdldGluZyk7CiB9CiAKLXZvaWQgU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OnN0b3BTY3JvbGxBbmltYXRpb25zKCkK
K2Jvb2wgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OnN0YXJ0QW5pbWF0
ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQgZGVzdGluYXRpb25Qb3NpdGlvbikKK3sKKyAg
ICByZXR1cm4gbV9kZWxlZ2F0ZS5zdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihkZXN0aW5h
dGlvblBvc2l0aW9uKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
Tmljb3NpYTo6c3RvcEFuaW1hdGVkU2Nyb2xsKCkKIHsKLSAgICBtX2RlbGVnYXRlLnN0b3BTY3Jv
bGxBbmltYXRpb25zKCk7CisgICAgbV9kZWxlZ2F0ZS5zdG9wQW5pbWF0ZWRTY3JvbGwoKTsKIH0K
IAogRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6YWRq
dXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVOaWNvc2lhLmgKaW5kZXggOTYwOGQ1NjBmYTYyMmZkYWQyYzVmNmM1NDEy
YjI5YjY5YmU0OGQzZi4uNDJiYTViMzFlNmYxMzE1NDQ2ZTY3MDgzMTVmYTYwZGE1NTkxYzMzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29z
aWEuaApAQCAtNTUsMTEgKzU1LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21taXRTdGF0ZUJl
Zm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogICAgIHZv
aWQgY29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92
ZXJyaWRlOwogCisgICAgYm9vbCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBv
aW50KSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIG92ZXJyaWRlOwog
CiAgICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiwgRXZlbnRUYXJnZXRpbmcpIG92ZXJyaWRlOwogICAgIEZsb2F0UG9p
bnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBp
bmcpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdl
ZChTY3JvbGxUeXBlLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHN0b3BTY3JvbGxBbmltYXRpb25zKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBvc2l0
aW9uU2Nyb2xsaW5nTGF5ZXJzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBvc2l0aW9uUmVsYXRl
ZExheWVycygpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCmluZGV4IGYyYWUwMzNkMGQ2YjUwZmQ1
OTk3YzFlYjhlODI0OWNmYzU0MDA3YjguLjc1OGE0OTZjY2Y4M2E4YTRlMGM4Mjg0OTZjNGZjN2Zm
ODM4ZDU4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCkBAIC01MiwxMSArNTIsOCBAQCB2b2lkIFNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRy
ZW4oY29uc3QgUwogICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1p
dFN0YXRlQWZ0ZXJDaGlsZHJlbihzdGF0ZU5vZGUpOwogCiAgICAgY29uc3QgYXV0byYgb3ZlcmZs
b3dTdGF0ZU5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZT4oc3RhdGVOb2RlKTsKLSAgICBpZiAob3ZlcmZsb3dTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KSkgewotICAgICAgICBzdG9wU2Nyb2xsQW5pbWF0aW9ucygpOwotICAgICAgICBjb25zdCBhdXRv
JiByZXF1ZXN0ZWRTY3JvbGxEYXRhID0gb3ZlcmZsb3dTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xs
RGF0YSgpOwotICAgICAgICBzY3JvbGxUbyhyZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0
aW9uLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFR5cGUsIHJlcXVlc3RlZFNjcm9sbERhdGEu
Y2xhbXBpbmcpOwotICAgIH0KKyAgICBpZiAob3ZlcmZsb3dTdGF0ZU5vZGUuaGFzQ2hhbmdlZFBy
b3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uKSkKKyAgICAgICAgaGFuZGxlU2Nyb2xsUG9zaXRpb25SZXF1ZXN0KG92ZXJmbG93U3RhdGVO
b2RlLnJlcXVlc3RlZFNjcm9sbERhdGEoKSk7CiB9CiAKIEZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OmFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29u
c3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKSBjb25zdApA
QCAtODgsOSArODUsMTQgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpoYW5kbGVXaGVlbEUKICAgICByZXR1cm4gbV9k
ZWxlZ2F0ZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQsIGV2ZW50VGFyZ2V0aW5nKTsKIH0K
IAotdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6c3RvcFNj
cm9sbEFuaW1hdGlvbnMoKQorYm9vbCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
Tmljb3NpYTo6c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oRmxvYXRQb2ludCBkZXN0aW5h
dGlvblBvc2l0aW9uKQogewotICAgIG1fZGVsZWdhdGUuc3RvcFNjcm9sbEFuaW1hdGlvbnMoKTsK
KyAgICByZXR1cm4gbV9kZWxlZ2F0ZS5zdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihkZXN0
aW5hdGlvblBvc2l0aW9uKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlTmljb3NpYTo6c3RvcEFuaW1hdGVkU2Nyb2xsKCkKK3sKKyAgICBtX2RlbGVnYXRlLnN0
b3BBbmltYXRlZFNjcm9sbCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmgK
aW5kZXggMTY2OTcyNTkzOWE4OTBlZjBkYjYwNzc4NDAyNjg0NTkyYzc1MGZmMC4uZjAxMTdlYjZk
ODdhZmMzZTlhMTc3MTRhYzA3MGNjNDcyOTU1ZjYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlTmljb3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEv
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuaApAQCAtNDksNyArNDks
OSBAQCBwcml2YXRlOgogICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25z
dCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQg
cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpIG92ZXJyaWRlOwogICAgIFdoZWVsRXZlbnRIYW5k
bGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIEV2
ZW50VGFyZ2V0aW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BTY3JvbGxBbmltYXRpb25zKCkg
b3ZlcnJpZGU7CisKKyAgICBib29sIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0
UG9pbnQpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcEFuaW1hdGVkU2Nyb2xsKCkgb3ZlcnJpZGU7
CiAKICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYSBtX2RlbGVn
YXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU5pY29zaWEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlTmljb3NpYS5jcHAKaW5kZXggOWQzOGI4YmE4OWU1NjliMWZkMmEwNzI5YTEzMDYw
MTAxNTZhNTYxZC4uODY2N2MyZGVmZDAxMDg0MjI4OTk4YWQwZmVlNTdlODlmNjgzZTE4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
Tmljb3NpYS5jcHAKQEAgLTg2LDExICs4Niw2IEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYTo6aGFuZGxlV2hlZWxFCiAg
ICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6aGFuZGxlZCgpOwogfQogCi12b2lk
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhOjpzdG9wU2Nyb2xsQW5p
bWF0aW9ucygpCi17Ci0gICAgbV9zY3JvbGxDb250cm9sbGVyLnN0b3BBbmltYXRlZFNjcm9sbCgp
OwotfQotCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhOjph
bmltYXRpb25UaW1lckZpcmVkKCkKIHsKICAgICBtX3Njcm9sbENvbnRyb2xsZXIuYW5pbWF0aW9u
Q2FsbGJhY2soTW9ub3RvbmljVGltZTo6bm93KCkpOwpAQCAtMTgyLDYgKzE3NywxOSBAQCBTY3Jv
bGxFeHRlbnRzIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhOjpzY3Jv
bGxFeHRlbnRzKCkgY29uc3QKICAgICB9OwogfQogCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVOaWNvc2lhOjpzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9h
dFBvaW50IGRlc3RpbmF0aW9uUG9zaXRpb24pCit7CisgICAgYXV0byBjdXJyZW50T2Zmc2V0ID0g
U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihjdXJyZW50U2Nyb2xsUG9z
aXRpb24oKSwgc2Nyb2xsT3JpZ2luKCkpOworICAgIGF1dG8gZGVzdGluYXRpb25PZmZzZXQgPSBT
Y3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc3RpbmF0aW9uUG9zaXRp
b24sIHNjcm9sbE9yaWdpbigpKTsKKyAgICAKKyAgICByZXR1cm4gbV9zY3JvbGxDb250cm9sbGVy
LnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb0Rlc3RpbmF0aW9uKGN1cnJlbnRPZmZzZXQsIGRlc3RpbmF0
aW9uT2Zmc2V0KTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
Tmljb3NpYTo6c3RvcEFuaW1hdGVkU2Nyb2xsKCkKK3sKKyAgICBtX3Njcm9sbENvbnRyb2xsZXIu
c3RvcEFuaW1hdGVkU2Nyb2xsKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIFVTRShOSUNPU0lBKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYS5oCmlu
ZGV4IDIwODc5MzkyNjA0ZGE4YWJlMzQ0YmYzOGQ4ZmNlNDAxZDcxYjljOGEuLjkyMWU4YmU2ODQ1
YWFkMGViN2RmNzFlNzEyZGRhNGE1ODAyMzU0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU5pY29zaWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhLmgKQEAgLTMxLDcgKzMxLDYg
QEAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBVU0UoTklDT1NJQSkKIAogI2luY2x1
ZGUgIk5pY29zaWFQbGF0Zm9ybUxheWVyLmgiCi0jaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3Jv
bGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZS5oIgogI2luY2x1ZGUgIlRocmVhZGVkU2Ny
b2xsaW5nVHJlZS5oIgpAQCAtMzksNyArMzgsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LS8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgYSBTY3JvbGxBbmltYXRpb25DbGllbnQuCiBj
bGFzcyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTmljb3NpYSA6IHB1YmxpYyBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLCBwdWJsaWMgU2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXJDbGllbnQgewogcHVibGljOgogICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVOaWNvc2lhKFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJiwg
Ym9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQpOwpAQCAtNDksNyArNDcsMTAgQEAgcHVibGljOgog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxOaWNvc2lhOjpTY2VuZUludGVncmF0aW9uOjpVcGRhdGVTY29w
ZT4gY3JlYXRlVXBkYXRlU2NvcGUoKTsKICAgICB2b2lkIHVwZGF0ZVZpc2libGVMZW5ndGhzKCk7
CiAgICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiwgRXZlbnRUYXJnZXRpbmcpOwotICAgIHZvaWQgc3RvcFNjcm9sbEFu
aW1hdGlvbnMoKTsKKworICAgIC8vIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGUK
KyAgICBib29sIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQpIGZpbmFs
OworICAgIHZvaWQgc3RvcEFuaW1hdGVkU2Nyb2xsKCkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAg
dm9pZCBhbmltYXRpb25UaW1lckZpcmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlw
ZXMuaAppbmRleCBjOWQxNzQ5YzFmYTQ0MjY2NzIxMmEyNWFhZDA4YTdlMzJmMGJmYTk0Li42ZTk0
MjNmNDU2YzJjMDQyMTIxY2MwMTZiMzkzMTViNjExNTQ1OTM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFR5cGVzLmgKQEAgLTMwNSw2ICszMDUsMTQgQEAgc3RydWN0IFNjcm9sbFBvc2l0
aW9uQ2hhbmdlT3B0aW9ucyB7CiAKIG5hbWVzcGFjZSBXVEYgewogCit0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNjcm9sbElzQW5pbWF0ZWQ+IHsKKyAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkLAorICAg
ICAgICBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkOjpObywKKyAgICAgICAgV2ViQ29yZTo6U2Ny
b2xsSXNBbmltYXRlZDo6WWVzCisgICAgPjsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6U2Nyb2xsYmFyTW9kZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6OlNjcm9sbGJhck1vZGUsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDI5ZGViZmM1MWFlNTkwN2E2MDdkMWI3MGMwYTEzMjFi
NDc0NmNjNTguLjIzM2QyMmY3MjUyNzM2YjIyNTczZGJmZTRkNTk3NTYwZTE5YjczZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC01MjMsMTIgKzUyMywxNiBAQCB2
b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgUwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYg
KHNjcm9sbEFuaW1hdGlvblN0YXR1cygpID09IFNjcm9sbEFuaW1hdGlvblN0YXR1czo6QW5pbWF0
aW5nKQorICAgIGlmIChzY3JvbGxBbmltYXRpb25TdGF0dXMoKSA9PSBTY3JvbGxBbmltYXRpb25T
dGF0dXM6OkFuaW1hdGluZykgewogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1h
dGlvbnMoKTsKKyAgICAgICAgc3RvcEFzeW5jQW5pbWF0ZWRTY3JvbGwoKTsKKyAgICB9CiAKICAg
ICBTY3JvbGxQb3NpdGlvbiBuZXdTY3JvbGxQb3NpdGlvbiA9ICghZGVsZWdhdGVzU2Nyb2xsaW5n
KCkgJiYgb3B0aW9ucy5jbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCkgPyBhZGp1
c3RTY3JvbGxQb3NpdGlvbldpdGhpblJhbmdlKHNjcm9sbFBvc2l0aW9uKSA6IHNjcm9sbFBvc2l0
aW9uOwotICAgIGlmICgoIWRlbGVnYXRlc1Njcm9sbGluZygpIHx8IGN1cnJlbnRTY3JvbGxUeXBl
KCkgPT0gU2Nyb2xsVHlwZTo6VXNlcikgJiYgbmV3U2Nyb2xsUG9zaXRpb24gPT0gdGhpcy0+c2Ny
b2xsUG9zaXRpb24oKSkKKyAgICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50
U2Nyb2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlVzZXIpICYmIG5ld1Njcm9sbFBvc2l0aW9uID09
IHRoaXMtPnNjcm9sbFBvc2l0aW9uKCkpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9s
bGluZywgc3RyZWFtIDw8ICJTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9s
bFBvc2l0aW9uIDw8ICIgcmV0dXJuIGZvciBubyBjaGFuZ2UiKTsKICAgICAgICAgcmV0dXJuOwor
ICAgIH0KIAogICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKG5ld1Njcm9sbFBv
c2l0aW9uLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBvcHRpb25zLmNsYW1waW5nKSkKICAgICAgICAg
dXBkYXRlU2Nyb2xsYmFycyhuZXdTY3JvbGxQb3NpdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggMzAzOGIzNGZlYzU4ZTMwMGMzNzhhMTNkYzFk
NWY3NDMyMTJhOThiNi4uNjA0NjY1NzNkN2ZhZWYwZmE4YjMwYjkyOTFlYzVjYjQ0YmFiYTY5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtMTQwLDEw
ICsxNDAsMTUgQEAgdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRB
bmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24KICAgICBzY3JvbGxBbmltYXRvcigp
LnNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKHBvc2l0aW9uLCBjbGFtcGluZyk7CiB9
CiAKLXZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgU2Nyb2xsYWJs
ZUFyZWE6OnNjcm9sbFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBv
c2l0aW9uLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0o
U2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGFibGVBcmVhICIgPDwgdGhpcyA8PCAiIHNjcm9s
bFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uICIgPDwgcG9zaXRpb24pOwotICAgIGlmIChzY3JvbGxB
bmltYXRvcigpLnNjcm9sbFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uKHBvc2l0aW9uKSkKKworICAg
IGJvb2wgc3RhcnRlZEFuaW1hdGlvbiA9IHJlcXVlc3RBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24o
cm91bmRlZEludFBvaW50KHBvc2l0aW9uKSwgY2xhbXBpbmcpOworICAgIGlmICghc3RhcnRlZEFu
aW1hdGlvbikKKyAgICAgICAgc3RhcnRlZEFuaW1hdGlvbiA9IHNjcm9sbEFuaW1hdG9yKCkuc2Ny
b2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24ocG9zaXRpb24pOworCisgICAgaWYgKHN0YXJ0ZWRB
bmltYXRpb24pCiAgICAgICAgIHNldFNjcm9sbEFuaW1hdGlvblN0YXR1cyhTY3JvbGxBbmltYXRp
b25TdGF0dXM6OkFuaW1hdGluZyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oCmluZGV4IDc5N2RhNTAzZWU3YWY2Mzk3NmYyY2M4YTZmYzJmZGM5NDI2ZDFjMjMu
LjMwZDM5MTgwNzg4ZmQ3NTMxMjVjNGI1ODY0ZDQzZjMwMzBmMDJlYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAg
ICAgLy8gcmV0dXJucyB0cnVlLCB0aGUgc2Nyb2xsYWJsZSBhcmVhIHdvbid0IGFjdHVhbGx5IHVw
ZGF0ZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGFuZCBpbnN0ZWFkCiAgICAgLy8gZXhwZWN0IGl0IHRv
IGhhcHBlbiBzb21ldGltZSBpbiB0aGUgZnV0dXJlLgogICAgIHZpcnR1YWwgYm9vbCByZXF1ZXN0
U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlID0g
U2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdEFuaW1hdGVkU2Ny
b2xsVG9Qb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lk
IHN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsKCkgeyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0
dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmLCBzdGQ6Om9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVh
LmNwcAppbmRleCAwM2YzMTNkYTc1ODE2OThmYWNmZTBkNWEwODc2NzVlYTdhZjUxMDJlLi44ODM4
MDBmMDFhMTQ4YmE0ZDhiNDQwNDI2YzRjNzI2YTIwOThmYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0y
NTQsNiArMjU0LDI3IEBAIGJvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6cmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCitib29sIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnJlcXVlc3RBbmltYXRlZFNj
cm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIGRlc3RpbmF0aW9uUG9zaXRpb24s
IFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQoreworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8IG1fbGF5ZXIgPDwgIiBy
ZXF1ZXN0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uICIgPDwgZGVzdGluYXRpb25Qb3NpdGlvbik7
CisKKyAgICBpZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBtX2xheWVyLnBhZ2UoKS5z
Y3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0
b3ItPnJlcXVlc3RBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oKnRoaXMsIGRlc3RpbmF0aW9uUG9z
aXRpb24sIGNsYW1waW5nKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBS
ZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzdG9wQXN5bmNBbmltYXRlZFNjcm9sbCgpCit7Cisj
aWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5n
LCBzdHJlYW0gPDwgbV9sYXllciA8PCAiIHN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsIik7CisKKyAg
ICBpZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBtX2xheWVyLnBhZ2UoKS5zY3JvbGxp
bmdDb29yZGluYXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnN0
b3BBbmltYXRlZFNjcm9sbCgqdGhpcyk7CisjZW5kaWYKK30KKwogU2Nyb2xsT2Zmc2V0IFJlbmRl
ckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYg
c2Nyb2xsT2Zmc2V0LCBjb25zdCBTY3JvbGxQb3NpdGlvbkNoYW5nZU9wdGlvbnMmIG9wdGlvbnMp
CiB7CiAgICAgaWYgKHNjcm9sbEFuaW1hdGlvblN0YXR1cygpID09IFNjcm9sbEFuaW1hdGlvblN0
YXR1czo6QW5pbWF0aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllclNjcm9sbGFibGVBcmVhLmgKaW5kZXggY2M4MTk4ZGNlM2U2ZDQwYWY5OTkwMWYxODAw
NmE2NDdjYmFmMzQwZS4uOTY3YjRhZjAwM2RmZDQ3MTcxMzIyMTAyMmFmMzIwZGJiMjdhODRkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJs
ZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxh
YmxlQXJlYS5oCkBAIC0yMDAsNiArMjAwLDggQEAgcHVibGljOgogICAgIEludFNpemUgcmVhY2hh
YmxlVG90YWxDb250ZW50c1NpemUoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgcmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSA9IFNj
cm9sbFR5cGU6OlVzZXIsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQp
IGZpbmFsOworICAgIGJvb2wgcmVxdWVzdEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBT
Y3JvbGxQb3NpdGlvbiYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQp
IGZpbmFsOworICAgIHZvaWQgc3RvcEFzeW5jQW5pbWF0ZWRTY3JvbGwoKSBmaW5hbDsKIAogICAg
IGJvb2wgY29udGFpbnNEaXJ0eU92ZXJsYXlTY3JvbGxiYXJzKCkgY29uc3QgeyByZXR1cm4gbV9j
b250YWluc0RpcnR5T3ZlcmxheVNjcm9sbGJhcnM7IH0KICAgICB2b2lkIHNldENvbnRhaW5zRGly
dHlPdmVybGF5U2Nyb2xsYmFycyhib29sIGRpcnR5U2Nyb2xsYmFycykgeyBtX2NvbnRhaW5zRGly
dHlPdmVybGF5U2Nyb2xsYmFycyA9IGRpcnR5U2Nyb2xsYmFyczsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IDdjZDJjYTJh
NjIxNjg3ZGM0MThjYmEwMDU5N2MzNzM1ZTljNTZiMzAuLmMzZjJmZDg0MWZiY2VhMzhiNDNlODEy
NTI4N2U3NTNjODVjN2JlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKQEAgLTUwNyw2ICs1MDcsNyBAQCB2b2lkIEFyZ3VtZW50
Q29kZXI8UmVxdWVzdGVkU2Nyb2xsRGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBSZXF1ZXN0ZQogICAgIGVuY29kZXIgPDwgc2Nyb2xsRGF0YS5zY3JvbGxQb3NpdGlvbjsKICAg
ICBlbmNvZGVyIDw8IHNjcm9sbERhdGEuc2Nyb2xsVHlwZTsKICAgICBlbmNvZGVyIDw8IHNjcm9s
bERhdGEuY2xhbXBpbmc7CisgICAgZW5jb2RlciA8PCBzY3JvbGxEYXRhLmFuaW1hdGVkOwogfQog
CiBib29sIEFyZ3VtZW50Q29kZXI8UmVxdWVzdGVkU2Nyb2xsRGF0YT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBSZXF1ZXN0ZWRTY3JvbGxEYXRhJiBzY3JvbGxEYXRhKQpAQCAtNTIwLDYgKzUy
MSw5IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXF1ZXN0ZWRTY3JvbGxEYXRhPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIFJlcXVlc3RlZFNjcm9sCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShz
Y3JvbGxEYXRhLmNsYW1waW5nKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShzY3JvbGxEYXRhLmFuaW1hdGVkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZVJlbW90ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQppbmRleCAwYTU3
YWZhMmMwNmNkMDg2MWUwMGI4MmRlZmQxODlhZGUyZDU1ZjEwLi5mNmRhOTY5MWZiNzM2NTQ3MzNh
MzRkZjIyMTMxMGUxOTgxNGYwYjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tCkBAIC05NCwxMCAr
OTQsOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNv
bW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTYwogICAgIH0KIAogICAgIC8vIFVwZGF0ZSB0
aGUgc2Nyb2xsIHBvc2l0aW9uIGFmdGVyIGNoaWxkIG5vZGVzIGhhdmUgYmVlbiB1cGRhdGVkLCBi
ZWNhdXNlIHRoZXkgbmVlZCB0byBoYXZlIHVwZGF0ZWQgdGhlaXIgY29uc3RyYWludHMgYmVmb3Jl
IGFueSBzY3JvbGxpbmcgaGFwcGVucy4KLSAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0No
YW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3BlcnR5OjpSZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbikpIHsKLSAgICAgICAgY29uc3QgYXV0byYgcmVxdWVzdGVkU2Nyb2xsRGF0YSA9
IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxEYXRhKCk7Ci0gICAgICAgIHNjcm9s
bFRvKHJlcXVlc3RlZFNjcm9sbERhdGEuc2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbERh
dGEuc2Nyb2xsVHlwZSwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5jbGFtcGluZyk7Ci0gICAgfQorICAg
IGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
Tm9kZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkKKyAgICAgICAgaGFuZGxl
U2Nyb2xsUG9zaXRpb25SZXF1ZXN0KHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxE
YXRhKCkpOwogfQogCiBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVJT1M6Om1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCmluZGV4
IGUwMjQ5MjY4MDJkYmNkODgwODQ1ZGYzYWM3YjNmOWE0NmFjYmVjNTIuLmEzYTI0Mjc4MmM2MDU2
MWFjYWU4M2JiNDk2M2Q4ZTIwOWY4Njk1YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCkBAIC03OSw2ICs3OSw5
IEBAIHB1YmxpYzoKICAgICBVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcoKSBjb25zdDsKIAogcHJp
dmF0ZToKKyAgICBib29sIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQp
IGZpbmFsOworICAgIHZvaWQgc3RvcEFuaW1hdGVkU2Nyb2xsKCkgZmluYWw7CisKICAgICBSZXRh
aW5QdHI8Q0FMYXllcj4gbV9zY3JvbGxMYXllcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9z
Y3JvbGxlZENvbnRlbnRzTGF5ZXI7CiAgICAgUmV0YWluUHRyPFdLU2Nyb2xsaW5nTm9kZVNjcm9s
bFZpZXdEZWxlZ2F0ZT4gbV9zY3JvbGxWaWV3RGVsZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXgg
OGE5ZmY2NzVkY2U4NTllODcxNDJkNWIzNzg4NjY4NmI2NWQwMzBmYy4uMTNhNjA0NmM5ZTc3MTU3
OWVlYjViMjkwNzUzM2Y4MGM1OTIxYjJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMjg5LDEyICsy
ODksMjIgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21t
aXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKICAgICB9CiAKICAgICBpZiAoc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3Bl
cnR5OjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpIHsKLSAgICAgICAgY29uc3QgYXV0byYgcmVx
dWVzdGVkU2Nyb2xsRGF0YSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxEYXRh
KCk7Ci0gICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhyZXF1ZXN0ZWRTY3JvbGxEYXRh
LnNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFR5cGUsIHJlcXVlc3Rl
ZFNjcm9sbERhdGEuY2xhbXBpbmcpOworICAgICAgICBzY3JvbGxpbmdOb2RlKCkuaGFuZGxlU2Ny
b2xsUG9zaXRpb25SZXF1ZXN0KHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxEYXRh
KCkpOwogICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0TmVlZHNBcHBseUxheWVyUG9zaXRpb25z
QWZ0ZXJDb21taXQoKTsKICAgICB9CiB9CiAKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUzo6c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oRmxvYXRQb2ludCkK
K3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzdG9wQW5pbWF0ZWRTY3Jv
bGwoKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCit9CisKICNpZiBIQVZFKFVJU0NST0xM
VklFV19BU1lOQ0hST05PVVNfU0NST0xMX0VWRU5UX0hBTkRMSU5HKQogdm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpoYW5kbGVBc3luY2hyb25vdXNDYW5jZWxhYmxl
U2Nyb2xsRXZlbnQoVUlTY3JvbGxWaWV3ICpzY3JvbGxWaWV3LCBVSVNjcm9sbEV2ZW50ICpzY3Jv
bGxFdmVudCwgdm9pZCAoXmNvbXBsZXRpb24pKEJPT0wgaGFuZGxlZCkpCiB7Cg==
</data>
<flag name="commit-queue"
          id="464555"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>