<?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>195258</bug_id>
          
          <creation_ts>2019-03-03 10:41:12 -0800</creation_ts>
          <short_desc>Share more code between overflow and frame scrolling nodes, fixing overflow scrollbar display</short_desc>
          <delta_ts>2019-03-04 09:11:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>195254</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>fred.wang</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1511948</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-03 10:41:12 -0800</bug_when>
    <thetext>Share more code between overflow and frame scrolling nodes, fixing overflow scrollbar display</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511950</commentid>
    <comment_count>1</comment_count>
      <attachid>363460</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-03 10:49:51 -0800</bug_when>
    <thetext>Created attachment 363460
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511999</commentid>
    <comment_count>2</comment_count>
      <attachid>363470</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-03 16:38:13 -0800</bug_when>
    <thetext>Created attachment 363470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512000</commentid>
    <comment_count>3</comment_count>
      <attachid>363471</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-03 17:05:25 -0800</bug_when>
    <thetext>Created attachment 363471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512195</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-04 09:10:43 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/242359/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512196</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-04 09:11:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/48563747&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363460</attachid>
            <date>2019-03-03 10:49:51 -0800</date>
            <delta_ts>2019-03-03 16:38:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195258-20190303104949.patch</filename>
            <type>text/plain</type>
            <size>80836</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYyZDQyMGUyZmFkYWYw
YjY5MWFkNjEyNGI0ZTEyMzFlOTk3NTlhMi4uZGVmMjA5N2FmZWU3ZTRiYjA3ODdjYTAyNmI0Mzdh
NjMwNzJjOWMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDE5LTAzLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUg
Y29kZSBiZXR3ZWVuIG92ZXJmbG93IGFuZCBmcmFtZSBzY3JvbGxpbmcgbm9kZXMsIGZpeGluZyBv
dmVyZmxvdyBzY3JvbGxiYXIgZGlzcGxheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtYW5hZ2VtZW50IG9mIHNjcm9sbGJh
ciBsYXllcnMgYW5kIHNjcm9sbGJhciBwYWludGVycyAoIk5TU2Nyb2xsZXJJbXAiKSBkb3duIHRv
CisgICAgICAgIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSB0byBiZSBzaGFyZWQgYmV0d2Vl
biBmcmFtZSBhbmQgb3ZlcmZsb3cgbm9kZXMsIGFsbG93aW5nIGZvcgorICAgICAgICBzY3JvbGxp
bmcgdGhyZWFkIHVwZGF0ZXMgb2Ygb3ZlcmZsb3cgc2Nyb2xsYmFycy4gSXQgYWxzbyBtb3ZlcyBz
b21lIHNjcm9sbGluZyB0cmVlLXNpZGUgY29kZQorICAgICAgICB0byBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlTWFjIHRvIGJlIHNoYXJlZCBiZXR3ZWVuIHRoZSAidHJlZSIgbm9k
ZXMgZm9yIG92ZXJmbG93IGFuZCBmcmFtZXMuCisKKyAgICAgICAgTGF5ZXJzIGZvciBzY3JvbGxi
YXJzIGFyZSBnaXZlbiB0byBzY3JvbGxpbmcgc3RhdGUgbm9kZXMgdmlhIHNldE5vZGVMYXllcnMo
KSBub3csIGFuZAorICAgICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbGlu
Z05vZGVMYXllcnMoKSBpcyBhZGRlZCB0byBwcm92aWRlIGEgYm90dGxlbmVjayB0byBjYWxsIHRo
YXQuCisgICAgICAgIEF0IHNvbWUgcG9pbnQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Ny
b2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHNob3VsZCBiZSByZWxpZXZlZAor
ICAgICAgICBvZiB0aGUgcmVzcG9uc2liaWxpdHkgb2YgcHVzaGluZyBzY3JvbGxiYXIgbGF5ZXJz
IChidXQgdGhlIHNjcm9sbGluZyBzdGF0ZSB0cmVlIG5lZWRzIHRvIGhvbGQKKyAgICAgICAgcmVm
ZXJlbmNlcyB0byBHcmFwaGljc0xheWVycyBiZWZvcmUgdGhhdCBiZWNvbWVzIHNhZmUpLgorICAg
ICAgICAKKyAgICAgICAgVGhlIGFjdHVhbCBmaXggdGhhdCBhbGxvd3Mgb3ZlcmZsb3cgc2Nyb2xs
YmFycyB0byBzaG93IGlzIHRoZSBjaGFuZ2UgaW4KKyAgICAgICAgQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvcjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHRoYXQgY2Fs
bHMgc2Nyb2xsYWJsZUFyZWEuKlNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCkKKyAgICAgICAgZm9y
IGFsbCBTY3JvbGxhYmxlQXJlYXMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBDQUxheWVyIGlzIHB1
c2hlZCBvbnRvIHRoZSBOU1Njcm9sbGVySW1wLgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxhYmxlQXJlYVNjcm9s
bGJhckxheWVyRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OnNldE5vZGVMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6c2V0RnJhbWVTY3JvbGxpbmdOb2RlU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsaW5nTm9kZVNjcm9sbGFi
bGVBcmVhR2VvbWV0cnkpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRBbGxQcm9wZXJ0
aWVzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xs
aW5nTm9kZTo6c2V0VmVydGljYWxTY3JvbGxiYXJMYXllcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0SG9yaXpvbnRhbFNj
cm9sbGJhckxheWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRl
RnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyk6IERlbGV0
ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRBbGxQcm9wZXJ0aWVzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEhvcml6b250YWxTY3Jv
bGxiYXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyk6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6Omhvcml6b250YWxT
Y3JvbGxiYXJMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OnZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjp2ZXJ0aWNhbFNjcm9sbGVySW1wIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6aG9y
aXpvbnRhbFNjcm9sbGVySW1wIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldE9yQ2xl
YXJMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVX
aGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlTWFjLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNG
cm9tU2Nyb2xsYmFycyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmNvbW1pdFN0YXRlQmVmb3JlQ2hp
bGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpyZXBvc2l0aW9uUmVsYXRlZExheWVycyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjp+U2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpyZWxlYXNlUmVmZXJlbmNlc1RvU2Ny
b2xsZXJJbXBzT25UaGVNYWluVGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6
OnJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6
flNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6dXBkYXRlRnJvbVN0YXRl
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnVwZGF0ZVNjcm9sbGJhclBhaW50ZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnJl
bGVhc2VSZWZlcmVuY2VzVG9TY3JvbGxlckltcHNPblRoZU1haW5UaHJlYWQpOgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmRpZENoYW5nZVBsYXRmb3JtTGF5ZXJGb3JMYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbGluZ05vZGVMYXllcnMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxp
bmdOb2RlRm9yU2Nyb2xsaW5nUm9sZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oOgorCiAyMDE5LTAzLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFNoYXJlIG1vcmUgY29kZSBmb3IgdXBkYXRpbmcgdGhlIHN0
YXRlIG9mIGZyYW1lIHNjcm9sbGluZyBub2RlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0MWM0NGFmODkxYTQxNWYy
Yzc1MWI1Zjg3Njk5M2ZhNjUxOWQyNjljLi5lNTVkMmYzMjg0NWMxOTg3ZjU0NDgzNzg5MTIxZDYw
M2Q3ZmU4Yjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTAzLTAzICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUgY29k
ZSBiZXR3ZWVuIG92ZXJmbG93IGFuZCBmcmFtZSBzY3JvbGxpbmcgbm9kZXMsIGZpeGluZyBvdmVy
ZmxvdyBzY3JvbGxiYXIgZGlzcGxheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk1MjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtYW5hZ2VtZW50IG9mIHNjcm9sbGJhciBs
YXllcnMgYW5kIHNjcm9sbGJhciBwYWludGVycyAoIk5TU2Nyb2xsZXJJbXAiKSBkb3duIHRvCisg
ICAgICAgIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSB0byBiZSBzaGFyZWQgYmV0d2VlbiBm
cmFtZSBhbmQgb3ZlcmZsb3cgbm9kZXMsIGFsbG93aW5nIGZvcgorICAgICAgICBzY3JvbGxpbmcg
dGhyZWFkIHVwZGF0ZXMgb2Ygb3ZlcmZsb3cgc2Nyb2xsYmFycy4gSXQgYWxzbyBtb3ZlcyBzb21l
IHNjcm9sbGluZyB0cmVlLXNpZGUgY29kZQorICAgICAgICB0byBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjIHRvIGJlIHNoYXJlZCBiZXR3ZWVuIHRoZSAidHJlZSIgbm9kZXMg
Zm9yIG92ZXJmbG93IGFuZCBmcmFtZXMuCisKKyAgICAgICAgTGF5ZXJzIGZvciBzY3JvbGxiYXJz
IGFyZSBnaXZlbiB0byBzY3JvbGxpbmcgc3RhdGUgbm9kZXMgdmlhIHNldE5vZGVMYXllcnMoKSBu
b3csIGFuZAorICAgICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbGluZ05v
ZGVMYXllcnMoKSBpcyBhZGRlZCB0byBwcm92aWRlIGEgYm90dGxlbmVjayB0byBjYWxsIHRoYXQu
CisgICAgICAgIEF0IHNvbWUgcG9pbnQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xs
YWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHNob3VsZCBiZSByZWxpZXZlZAorICAg
ICAgICBvZiB0aGUgcmVzcG9uc2liaWxpdHkgb2YgcHVzaGluZyBzY3JvbGxiYXIgbGF5ZXJzIChi
dXQgdGhlIHNjcm9sbGluZyBzdGF0ZSB0cmVlIG5lZWRzIHRvIGhvbGQKKyAgICAgICAgcmVmZXJl
bmNlcyB0byBHcmFwaGljc0xheWVycyBiZWZvcmUgdGhhdCBiZWNvbWVzIHNhZmUpLgorICAgICAg
ICAKKyAgICAgICAgVGhlIGFjdHVhbCBmaXggdGhhdCBhbGxvd3Mgb3ZlcmZsb3cgc2Nyb2xsYmFy
cyB0byBzaG93IGlzIHRoZSBjaGFuZ2UgaW4KKyAgICAgICAgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHRoYXQgY2FsbHMg
c2Nyb2xsYWJsZUFyZWEuKlNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCkKKyAgICAgICAgZm9yIGFs
bCBTY3JvbGxhYmxlQXJlYXMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBDQUxheWVyIGlzIHB1c2hl
ZCBvbnRvIHRoZSBOU1Njcm9sbGVySW1wLgorCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAg
KEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKToKKyAg
ICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+Ojpl
bmNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU+OjpkZWNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZUZyYW1l
U2Nyb2xsaW5nTm9kZT46OmRlY29kZSk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5Ojpjb25uZWN0U3RhdGVOb2RlTGF5ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVNYWM6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4pOgorICAgICAg
ICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpyZXBv
c2l0aW9uUmVsYXRlZExheWVycyk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVSZW1vdGVNYWM6OmhhbmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVSZW1vdGVNYWMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVN
YWMuY3BwLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlUmVtb3RlTWFjOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlUmVtb3RlTWFjKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6flNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVSZW1vdGVNYWMpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlUmVtb3RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAgICAgICAg
KFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6cmVw
b3NpdGlvblJlbGF0ZWRMYXllcnMpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFu
ZGxlTW91c2VFdmVudCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisKIDIwMTktMDMtMDIgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbV1BFXSBQdWJsaWMgQVBJIGhlYWRlcnMgYXJlIG1pc3NpbmcgYXV0
b2NsZWFudXAgZGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGZhZTMwZjgz
NTUyNWY2ZjFlMTMyNDMyNDhlMzRkMzVkY2RkMjcwMzguLjU3ZTJkZjg1NjFmODhiODAzOTI3YjBl
ZWM4YmNmMGNiYWE0YjA1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTUyLDcgKzE1
Miw3IEBAIHBhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLm1tCiAK
IHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQogcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5tbQotcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCitwYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlTWFjLm1tCiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVGhyZWFkTWFjLm1tCiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyNDQxOTU5Nzc5YmMwNzBmYTRl
MzQ0MWUzOGNjNWZiNTE3MzlkYjM2Li4zOWI1ZjhlNjE2YTBhYWEwYzc2ZTVmODFlMGI5MDJiN2U5
MzYwZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0zNTQsNiArMzU0LDcgQEAKIAkJMEY2MEYzMkIxREZCQjEwNzAwNDE2RDZD
IC8qIENvbW1vblZNLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjYwRjMyQTFERkJCMTA0MDA0MTZENkMgLyogQ29tbW9uVk0uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYzODNERTE4NjE1QjI5MDAz
RTVEQjUgLyogVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYzODNEQzE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZBMTJC
QzFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjczQjc2OTIyMkIzQTBDMDA4MDUz
MTYgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDMDUxNkEyMTlCNUVCRTAwMzFD
MzlFIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdEMDczMzE4ODRDNTZD
MDBCNEFGODYgLyogUGxhdGZvcm1UZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjg0N0UyMTZFQkM1QjAwMDQzQ0ZBNCAvKiBQbGF0Zm9y
bVRleHRUcmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGODUwRkUzMUVEN0MxODMwMEZCNzdBNyAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODUw
RkUyMUVEN0MxODMwMEZCNzdBNyAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3MTY3MDFDODY5
RDgzMDA0RkYwREUgLyogTGVuZ3RoUG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcxNjZFMUM4NjlEODMwMDRGRjBERSAvKiBMZW5ndGhQb2lu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01
Nzg1LDYgKzU3ODYsNyBAQAogCQkwRjZBMTJCQjFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdl
T3ZlcmxheXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVidWdQ
YWdlT3ZlcmxheXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjZBMTJCQzFB
MDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGVidWdQYWdlT3ZlcmxheXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY3MDQ5NUQyMTFCNTI0MjAwMzY5OTY4IC8qIEFjdGl2aXR5U3RhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQWN0aXZpdHlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGNzNCNzY1MjIyQjMyN0YwMDgwNTMxNiAvKiBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0RGMTQ3MUUy
QkYxQTYwMDk1OTUxQiAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVKU0NsaWVudERhdGEuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjg1MEZFMjFFRDdDMTgzMDBGQjc3QTcgLyogUGVyZm9ybWFu
Y2VMb2dnaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZv
cm1hbmNlTG9nZ2luZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3
MTY2RDFDODY5RDgzMDA0RkYwREUgLyogTGVuZ3RoUG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGVuZ3RoUG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTgwNCw3ICs1ODA2LDYgQEAKIAkJMEZBMDg1MkIxRTZGQjU1QTAwOTc1RkRE
IC8qIENTU1Byb3BlcnRpZXMuanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuanNvbjsgcGF0aCA9IENTU1Byb3BlcnRpZXMuanNvbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZBMjRENzcxNjJERjkxOTAwQTNGNEMwIC8qIEdy
YXBoaWNzTGF5ZXJVcGRhdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZBMjRENzgxNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGQTg4RUJDMTZBOEQxQkQwMEY5OTk4NCAvKiBT
Y3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkI2MjUyQzE4REUxQjE1MDBBMDdD
MDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gR2VvbWV0cnlVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRkI2MjUyRDE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbWV0cnlVdGlsaXRpZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZCODg5MEMxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9s
bGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY5ODUsNyArMTY5ODYsNyBAQAogCQkJCTFBRjYyRUUzMTREQTIyQTcwMDQxNTU2
QyAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSAqLywKIAkJCQk1MTdERUVFNzFERTk0QjA4
MDBCOTE2NDQgLyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmggKi8sCiAJCQkJNTE3
REVFRTMxREU5NEFEQzAwQjkxNjQ0IC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5t
bSAqLywKLQkJCQkwRkE4OEVCQzE2QThEMUJEMDBGOTk5ODQgLyogU2Nyb2xsaW5nU3RhdGVGcmFt
ZVNjcm9sbGluZ05vZGVNYWMubW0gKi8sCisJCQkJMEY3M0I3NjUyMjJCMzI3RjAwODA1MzE2IC8q
IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbSAqLywKIAkJCQkxQUY2MkYyMzE0REFG
RTkxMDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkTWFjLm1tICovLAogCQkJCTkzQzRBNDEzMTYy
OURGNUEwMEMzRUI2RSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmggKi8s
CiAJCQkJOTNDNEE0MTQxNjI5REY1QTAwQzNFQjZFIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMubW0gKi8sCkBAIC0zMTUwMyw2ICszMTUwNCw3IEBACiAJCQkJMEZFNTgwNjQx
OTMyN0E2MjAwREUzMkVCIC8qIFNjcm9sbGluZ1RyZWVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBQUFEREU0MTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZFQTNFODAxOTFCMzE2OTAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNzNCNzY5MjIyQjNBMEMw
MDgwNTMxNiAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzkxQTk5RDE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE2RDVBOTlEMTYyOUQ3MDAwMDI5NzMz
MCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjM3RjA4NTIyMDJCRjk4MDBBODlDMEIgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4
IDE5NzcxZTcyYTkwNGYzODYwYzg1N2YwMTVlMGRkZTM3NmYyYWRiYzQuLmU4ZjFlNWZkYjQ0M2Vl
YTQ3NGUwMDhjMzQzMTg2OGQyOTI3NzQxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC00
NTYsMjAgKzQ1NiwxOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbGFi
bGVBcmVhU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJsZQogICAgIEFTU0VSVChtX3Bh
Z2UpOwogCiAgICAgYXV0byogbm9kZSA9IG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zdGF0ZU5vZGVG
b3JJRChzY3JvbGxhYmxlQXJlYS5zY3JvbGxpbmdOb2RlSUQoKSk7Ci0gICAgaWYgKGlzPFNjcm9s
bGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKSkgewotICAgICAgICBhdXRvJiBzY3Jv
bGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KCpu
b2RlKTsKKyAgICBpZiAoaXM8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihub2RlKSkgewor
ICAgICAgICBhdXRvJiBzY3JvbGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlPigqbm9kZSk7CiAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBWZXJ0aWNhbFNj
cm9sbGJhcikKICAgICAgICAgICAgIHNjcm9sbGluZ05vZGUuc2V0VmVydGljYWxTY3JvbGxiYXJM
YXllcihzY3JvbGxhYmxlQXJlYS5sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBzY3JvbGxpbmdOb2RlLnNldEhvcml6b250YWxTY3JvbGxiYXJM
YXllcihzY3JvbGxhYmxlQXJlYS5sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSk7CiAgICAg
fQogCi0gICAgaWYgKCZzY3JvbGxhYmxlQXJlYSA9PSBtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXco
KSkgewotICAgICAgICBpZiAob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpCi0gICAg
ICAgICAgICBzY3JvbGxhYmxlQXJlYS52ZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxTY3Jv
bGxiYXJMYXllckRpZENoYW5nZSgpOwotICAgIH0KKyAgICBpZiAob3JpZW50YXRpb24gPT0gVmVy
dGljYWxTY3JvbGxiYXIpCisgICAgICAgIHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsYmFy
TGF5ZXJEaWRDaGFuZ2UoKTsKKyAgICBlbHNlCisgICAgICAgIHNjcm9sbGFibGVBcmVhLmhvcml6
b250YWxTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpOwogfQogCiBTY3JvbGxpbmdOb2RlSUQgQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2Rl
VHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5ld05vZGVJRCkKQEAgLTU2Nyw2ICs1NjUsOCBAQCB2b2lk
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldE5vZGVMYXllcnMoU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCwgY29uc3QgTm9kZQogICAgICAgICBhdXRvJiBzY3JvbGxpbmdOb2RlID0gZG93bmNh
c3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPigqbm9kZSk7CiAgICAgICAgIHNjcm9sbGlu
Z05vZGUuc2V0U2Nyb2xsQ29udGFpbmVyTGF5ZXIobm9kZUxheWVycy5zY3JvbGxDb250YWluZXJM
YXllcik7CiAgICAgICAgIHNjcm9sbGluZ05vZGUuc2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKG5v
ZGVMYXllcnMuc2Nyb2xsZWRDb250ZW50c0xheWVyKTsKKyAgICAgICAgc2Nyb2xsaW5nTm9kZS5z
ZXRIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIobm9kZUxheWVycy5ob3Jpem9udGFsU2Nyb2xsYmFy
TGF5ZXIpOworICAgICAgICBzY3JvbGxpbmdOb2RlLnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIo
bm9kZUxheWVycy52ZXJ0aWNhbFNjcm9sbGJhckxheWVyKTsKIAogICAgICAgICBpZiAoaXM8U2Ny
b2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpKSB7CiAgICAgICAgICAgICBhdXRv
JiBmcmFtZVNjcm9sbGluZ05vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xs
aW5nTm9kZT4oKm5vZGUpOwpAQCAtNjA1LDEwICs2MDUsNiBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNldEZyYW1lU2Nyb2xsaW5nTm9kZVN0YXRlKFNjcm9sbGluZ05vZGVJRCBu
b2RlSQogCiAgICAgYXV0byYgZnJhbWVTY3JvbGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KCpzdGF0ZU5vZGUpOwogCi0gICAgYXV0byogdmVydGlj
YWxTY3JvbGxiYXIgPSBmcmFtZVZpZXcudmVydGljYWxTY3JvbGxiYXIoKTsKLSAgICBhdXRvKiBo
b3Jpem9udGFsU2Nyb2xsYmFyID0gZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXIoKTsKLSAg
ICBmcmFtZVNjcm9sbGluZ05vZGUuc2V0U2Nyb2xsZXJJbXBzRnJvbVNjcm9sbGJhcnModmVydGlj
YWxTY3JvbGxiYXIsIGhvcml6b250YWxTY3JvbGxiYXIpOwotCiAgICAgZnJhbWVTY3JvbGxpbmdO
b2RlLnNldEZyYW1lU2NhbGVGYWN0b3IoZnJhbWVWaWV3LmZyYW1lKCkuZnJhbWVTY2FsZUZhY3Rv
cigpKTsKICAgICBmcmFtZVNjcm9sbGluZ05vZGUuc2V0SGVhZGVySGVpZ2h0KGZyYW1lVmlldy5o
ZWFkZXJIZWlnaHQoKSk7CiAgICAgZnJhbWVTY3JvbGxpbmdOb2RlLnNldEZvb3RlckhlaWdodChm
cmFtZVZpZXcuZm9vdGVySGVpZ2h0KCkpOwpAQCAtNjMxLDE1ICs2MjcsMTcgQEAgdm9pZCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9t
ZXRyeShTY3JvbGxpbmcKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byYgc2Nyb2xsaW5nTm9k
ZSA9IGRvd25jYXN0PFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4oKnN0YXRlTm9kZSk7CisK
KyAgICBhdXRvKiB2ZXJ0aWNhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Ny
b2xsYmFyKCk7CisgICAgYXV0byogaG9yaXpvbnRhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVh
Lmhvcml6b250YWxTY3JvbGxiYXIoKTsKKyAgICBzY3JvbGxpbmdOb2RlLnNldFNjcm9sbGVySW1w
c0Zyb21TY3JvbGxiYXJzKHZlcnRpY2FsU2Nyb2xsYmFyLCBob3Jpem9udGFsU2Nyb2xsYmFyKTsK
KwogICAgIHNjcm9sbGluZ05vZGUuc2V0U2Nyb2xsT3JpZ2luKHNjcm9sbGFibGVBcmVhLnNjcm9s
bE9yaWdpbigpKTsKICAgICBzY3JvbGxpbmdOb2RlLnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbGFi
bGVBcmVhLnNjcm9sbFBvc2l0aW9uKCkpOwogICAgIHNjcm9sbGluZ05vZGUuc2V0VG90YWxDb250
ZW50c1NpemUoc2Nyb2xsYWJsZUFyZWEudG90YWxDb250ZW50c1NpemUoKSk7CiAgICAgc2Nyb2xs
aW5nTm9kZS5zZXRSZWFjaGFibGVDb250ZW50c1NpemUoc2Nyb2xsYWJsZUFyZWEucmVhY2hhYmxl
VG90YWxDb250ZW50c1NpemUoKSk7CiAgICAgc2Nyb2xsaW5nTm9kZS5zZXRTY3JvbGxhYmxlQXJl
YVNpemUoc2Nyb2xsYWJsZUFyZWEudmlzaWJsZVNpemUoKSk7CiAKLSAgICBhdXRvKiB2ZXJ0aWNh
bFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsYmFyKCk7Ci0gICAgYXV0
byogaG9yaXpvbnRhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxTY3JvbGxi
YXIoKTsKLQogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBzY3JvbGxQYXJhbWV0ZXJzOwog
ICAgIHNjcm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxh
YmxlQXJlYS5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpOwogICAgIHNjcm9sbFBhcmFtZXRl
cnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFyZWEudmVydGljYWxTY3Jv
bGxFbGFzdGljaXR5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA4MmNiYjdjMDI2YjRlNjQxOThmOWM0ZDMyNjRh
NTFiNjU0ZjQ2ZTVlLi42YmQ1ZTgxNTA0NDEyNDU1NTZkZmFmOTUxMjI2OGE5NWIwNGIwMzdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgKQEAgLTEzNiw2ICsxMzYsOCBAQCBwdWJsaWM6CiAgICAgICAgIEdyYXBoaWNzTGF5
ZXIqIGNvdW50ZXJTY3JvbGxpbmdMYXllciB7IG51bGxwdHIgfTsKICAgICAgICAgR3JhcGhpY3NM
YXllciogaW5zZXRDbGlwTGF5ZXIgeyBudWxscHRyIH07CiAgICAgICAgIEdyYXBoaWNzTGF5ZXIq
IHJvb3RDb250ZW50c0xheWVyIHsgbnVsbHB0ciB9OworICAgICAgICBHcmFwaGljc0xheWVyKiBo
b3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIgeyBudWxscHRyIH07CisgICAgICAgIEdyYXBoaWNzTGF5
ZXIqIHZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIgeyBudWxscHRyIH07CiAgICAgfTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0Tm9kZUxheWVycyhTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IE5vZGVMYXllcnMm
KSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGQ5YjUwYmQ3
NGMwNGJhMDVjODgwOWQ4ZGFiYzVhYzVmNjY5YzYxMTEuLjQyMWNmZWE0MjcwNTQ0ZTQ3MzA5YzQ4
ZGJhOWExNTdlMzgyY2JhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAK
QEAgLTQ2LDEwICs0Niw2IEBAIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdTdGF0CiAKIFNjcm9sbGluZ1N0
YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZShj
b25zdCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZSYgc3RhdGVOb2RlLCBTY3JvbGxp
bmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKICAgICA6IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZShzdGF0ZU5vZGUsIGFkb3B0aXZlVHJlZSkKLSNpZiBQTEFURk9STShNQUMpCi0gICAgLCBt
X3ZlcnRpY2FsU2Nyb2xsZXJJbXAoc3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsZXJJbXAoKSkKLSAg
ICAsIG1faG9yaXpvbnRhbFNjcm9sbGVySW1wKHN0YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsZXJJ
bXAoKSkKLSNlbmRpZgogICAgICwgbV9ldmVudFRyYWNraW5nUmVnaW9ucyhzdGF0ZU5vZGUuZXZl
bnRUcmFja2luZ1JlZ2lvbnMoKSkKICAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc3Rh
dGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpCiAgICAgLCBtX2xheW91dFZpZXdwb3J0
KHN0YXRlTm9kZS5sYXlvdXRWaWV3cG9ydCgpKQpAQCAtODIsMTIgKzc4LDYgQEAgU2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2Rl
KGNvbnN0IFNjcm9sbGkKIAogICAgIGlmIChoYXNDaGFuZ2VkUHJvcGVydHkoRm9vdGVyTGF5ZXIp
KQogICAgICAgICBzZXRGb290ZXJMYXllcihzdGF0ZU5vZGUuZm9vdGVyTGF5ZXIoKS50b1JlcHJl
c2VudGF0aW9uKGFkb3B0aXZlVHJlZS5wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKCkpKTsK
LQotICAgIGlmIChoYXNDaGFuZ2VkUHJvcGVydHkoVmVydGljYWxTY3JvbGxiYXJMYXllcikpCi0g
ICAgICAgIHNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIoc3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xs
YmFyTGF5ZXIoKS50b1JlcHJlc2VudGF0aW9uKGFkb3B0aXZlVHJlZS5wcmVmZXJyZWRMYXllclJl
cHJlc2VudGF0aW9uKCkpKTsKLQotICAgIGlmIChoYXNDaGFuZ2VkUHJvcGVydHkoSG9yaXpvbnRh
bFNjcm9sbGJhckxheWVyKSkKLSAgICAgICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKHN0
YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoKS50b1JlcHJlc2VudGF0aW9uKGFkb3B0
aXZlVHJlZS5wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKCkpKTsKIH0KIAogU2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6On5TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9k
ZSgpID0gZGVmYXVsdDsKQEAgLTExMSw5ICsxMDEsNiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlOjpzZXRBbGxQcm9wZXJ0aWVzQ2hhbmdlZCgpCiAgICAgc2V0UHJvcGVy
dHlDaGFuZ2VkQml0KEZvb3RlckhlaWdodCk7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KEhl
YWRlckxheWVyKTsKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWRCaXQoRm9vdGVyTGF5ZXIpOwotICAg
IHNldFByb3BlcnR5Q2hhbmdlZEJpdChWZXJ0aWNhbFNjcm9sbGJhckxheWVyKTsKLSAgICBzZXRQ
cm9wZXJ0eUNoYW5nZWRCaXQoSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKTsKLSAgICBzZXRQcm9w
ZXJ0eUNoYW5nZWRCaXQoUGFpbnRlckZvclNjcm9sbGJhcik7CiAgICAgc2V0UHJvcGVydHlDaGFu
Z2VkQml0KEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cyk7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2Vk
Qml0KFRvcENvbnRlbnRJbnNldCk7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KEZpeGVkRWxl
bWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUpOwpAQCAtMjcwLDI0ICsyNTcsNiBAQCB2b2lkIFNj
cm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRGb290ZXJMYXllcihjb25zdCBMYXll
clJlcHJlc2VudGF0aW9uJgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChGb290ZXJMYXllcik7CiB9
CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OnNldFZlcnRpY2FsU2Ny
b2xsYmFyTGF5ZXIoY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgbGF5ZXIpCi17Ci0gICAgaWYg
KGxheWVyID09IG1fdmVydGljYWxTY3JvbGxiYXJMYXllcikKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV92ZXJ0aWNhbFNjcm9sbGJhckxheWVyID0gbGF5ZXI7Ci0gICAgc2V0UHJvcGVydHlDaGFu
Z2VkKFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIpOwotfQotCi12b2lkIFNjcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlOjpzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoY29uc3QgTGF5ZXJS
ZXByZXNlbnRhdGlvbiYgbGF5ZXIpCi17Ci0gICAgaWYgKGxheWVyID09IG1faG9yaXpvbnRhbFNj
cm9sbGJhckxheWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2hvcml6b250YWxTY3JvbGxi
YXJMYXllciA9IGxheWVyOwotICAgIHNldFByb3BlcnR5Q2hhbmdlZChIb3Jpem9udGFsU2Nyb2xs
YmFyTGF5ZXIpOwotfQotCiB2b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpz
ZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wgZml4ZWRFbGVtZW50c0xh
eW91dFJlbGF0aXZlVG9GcmFtZSkKIHsKICAgICBpZiAoZml4ZWRFbGVtZW50c0xheW91dFJlbGF0
aXZlVG9GcmFtZSA9PSBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUpCkBAIC0z
MDYsMTIgKzI3NSw2IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OnNl
dEFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZChiCiAgICAgc2V0UHJvcGVydHlD
aGFuZ2VkKEFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCk7CiB9CiAKLSNpZiAh
UExBVEZPUk0oTUFDKQotdm9pZCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0
U2Nyb2xsZXJJbXBzRnJvbVNjcm9sbGJhcnMoU2Nyb2xsYmFyKiwgU2Nyb2xsYmFyKikKLXsKLX0K
LSNlbmRpZgotCiB2b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpkdW1wUHJv
cGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3Ig
YmVoYXZpb3IpIGNvbnN0CiB7CiAgICAgdHMgPDwgIkZyYW1lIHNjcm9sbGluZyBub2RlIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5oCmluZGV4IGNmOThkMDQ2N2MxMGM2ZjE5NzMyNGVm
ODczMGMyNTg2Y2NjZThiZTUuLjgxZTVmNGVmOTIyZDM2NGUzZGM2OTg2NjQ0YzAxZmMzY2QyNTg0
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0
YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuaApAQCAtNTgsOSArNTgsNiBAQCBw
dWJsaWM6CiAgICAgICAgIEZvb3RlckhlaWdodCwKICAgICAgICAgSGVhZGVyTGF5ZXIsCiAgICAg
ICAgIEZvb3RlckxheWVyLAotICAgICAgICBWZXJ0aWNhbFNjcm9sbGJhckxheWVyLAotICAgICAg
ICBIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIsCi0gICAgICAgIFBhaW50ZXJGb3JTY3JvbGxiYXIs
CiAgICAgICAgIEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cywKICAgICAgICAgVG9wQ29udGVudElu
c2V0LAogICAgICAgICBGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lLApAQCAtMTI1
LDEyICsxMjIsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgZm9v
dGVyTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2Zvb3RlckxheWVyOyB9CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRGb290ZXJMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJik7CiAK
LSAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiB2ZXJ0aWNhbFNjcm9sbGJhckxheWVyKCkg
Y29uc3QgeyByZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhckxheWVyOyB9Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRWZXJ0aWNhbFNjcm9sbGJhckxheWVyKGNvbnN0IExheWVyUmVwcmVzZW50
YXRpb24mKTsKLQotICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGhvcml6b250YWxTY3Jv
bGxiYXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGJhckxheWVyOyB9
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoY29u
c3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYpOwotCiAgICAgLy8gVGhlc2UgYXJlIG1vcmUgbGlrZSBT
ZXR0aW5ncywgYW5kIHNob3VsZCBwcm9iYWJseSBtb3ZlIHRvIHRoZSBTY3JvbGxpbmd7U3RhdGV9
VHJlZSBpdHNlbGYuCiAgICAgYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lOyB9
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVU
b0ZyYW1lKGJvb2wpOwpAQCAtMTM4LDEyICsxMjksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBhc3lu
Y0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FzeW5j
RnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QXN5bmNGcmFt
ZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKGJvb2wpOwogCi0jaWYgUExBVEZPUk0oTUFDKQot
ICAgIE5TU2Nyb2xsZXJJbXAgKnZlcnRpY2FsU2Nyb2xsZXJJbXAoKSBjb25zdCB7IHJldHVybiBt
X3ZlcnRpY2FsU2Nyb2xsZXJJbXAuZ2V0KCk7IH0KLSAgICBOU1Njcm9sbGVySW1wICpob3Jpem9u
dGFsU2Nyb2xsZXJJbXAoKSBjb25zdCB7IHJldHVybiBtX2hvcml6b250YWxTY3JvbGxlckltcC5n
ZXQoKTsgfQotI2VuZGlmCi0gICAgdm9pZCBzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyhT
Y3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyLCBTY3JvbGxiYXIqIGhvcml6b250YWxTY3JvbGxi
YXIpOwotCiAgICAgdm9pZCBkdW1wUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0mLCBTY3JvbGxp
bmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CkBA
IC0xNTgsMTMgKzE0Myw2IEBAIHByaXZhdGU6CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX2Nv
bnRlbnRTaGFkb3dMYXllcjsKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1faGVhZGVyTGF5ZXI7
CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX2Zvb3RlckxheWVyOwotICAgIExheWVyUmVwcmVz
ZW50YXRpb24gbV92ZXJ0aWNhbFNjcm9sbGJhckxheWVyOwotICAgIExheWVyUmVwcmVzZW50YXRp
b24gbV9ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXI7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAg
UmV0YWluUHRyPE5TU2Nyb2xsZXJJbXA+IG1fdmVydGljYWxTY3JvbGxlckltcDsKLSAgICBSZXRh
aW5QdHI8TlNTY3JvbGxlckltcD4gbV9ob3Jpem9udGFsU2Nyb2xsZXJJbXA7Ci0jZW5kaWYKIAog
ICAgIEV2ZW50VHJhY2tpbmdSZWdpb25zIG1fZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAgICAgRmxv
YXRQb2ludCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5j
cHAKaW5kZXggNjg1YjU2MjhhNWVkNDViNjBjYjkwNzBkZjY5NjA4MGRjYjczMmVjYi4uZDc0OTY5
YTQyMWI5OTBjNDk3NjJmNWJmOGQ1ZGFkMTgxYmEyNWYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuY3BwCkBAIC00OSw2ICs0OSwxMCBAQCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcgogICAgICwg
bV9zY3JvbGxPcmlnaW4oc3RhdGVOb2RlLnNjcm9sbE9yaWdpbigpKQogI2lmIEVOQUJMRShDU1Nf
U0NST0xMX1NOQVApCiAgICAgLCBtX3NuYXBPZmZzZXRzSW5mbyhzdGF0ZU5vZGUubV9zbmFwT2Zm
c2V0c0luZm8pCisjZW5kaWYKKyNpZiBQTEFURk9STShNQUMpCisgICAgLCBtX3ZlcnRpY2FsU2Ny
b2xsZXJJbXAoc3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsZXJJbXAoKSkKKyAgICAsIG1faG9yaXpv
bnRhbFNjcm9sbGVySW1wKHN0YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsZXJJbXAoKSkKICNlbmRp
ZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVB
cmVhUGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQpAQCAtNTYsOCArNjAsMTUgQEAgU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Ny
b2xsaW5nU3RhdGVTY3IKIHsKICAgICBpZiAoaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbENvbnRh
aW5lckxheWVyKSkKICAgICAgICAgc2V0U2Nyb2xsQ29udGFpbmVyTGF5ZXIoc3RhdGVOb2RlLnNj
cm9sbENvbnRhaW5lckxheWVyKCkudG9SZXByZXNlbnRhdGlvbihhZG9wdGl2ZVRyZWUucHJlZmVy
cmVkTGF5ZXJSZXByZXNlbnRhdGlvbigpKSk7CisKICAgICBpZiAoaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGVkQ29udGVudHNMYXllcikpCiAgICAgICAgIHNldFNjcm9sbGVkQ29udGVudHNMYXll
cihzdGF0ZU5vZGUuc2Nyb2xsZWRDb250ZW50c0xheWVyKCkudG9SZXByZXNlbnRhdGlvbihhZG9w
dGl2ZVRyZWUucHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbigpKSk7CisKKyAgICBpZiAoaGFz
Q2hhbmdlZFByb3BlcnR5KFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIpKQorICAgICAgICBzZXRWZXJ0
aWNhbFNjcm9sbGJhckxheWVyKHN0YXRlTm9kZS52ZXJ0aWNhbFNjcm9sbGJhckxheWVyKCkudG9S
ZXByZXNlbnRhdGlvbihhZG9wdGl2ZVRyZWUucHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbigp
KSk7CisKKyAgICBpZiAoaGFzQ2hhbmdlZFByb3BlcnR5KEhvcml6b250YWxTY3JvbGxiYXJMYXll
cikpCisgICAgICAgIHNldEhvcml6b250YWxTY3JvbGxiYXJMYXllcihzdGF0ZU5vZGUuaG9yaXpv
bnRhbFNjcm9sbGJhckxheWVyKCkudG9SZXByZXNlbnRhdGlvbihhZG9wdGl2ZVRyZWUucHJlZmVy
cmVkTGF5ZXJSZXByZXNlbnRhdGlvbigpKSk7CiB9CiAKIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6flNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSgpID0gZGVmYXVsdDsKQEAgLTgzLDYg
Kzk0LDkgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEFsbFByb3BlcnRp
ZXNDaGFuZ2VkKCkKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWRCaXQoRXhwZWN0c1doZWVsRXZlbnRU
ZXN0VHJpZ2dlcik7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KFNjcm9sbENvbnRhaW5lckxh
eWVyKTsKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWRCaXQoU2Nyb2xsZWRDb250ZW50c0xheWVyKTsK
KyAgICBzZXRQcm9wZXJ0eUNoYW5nZWRCaXQoSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKTsKKyAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWRCaXQoVmVydGljYWxTY3JvbGxiYXJMYXllcik7CisgICAgc2V0
UHJvcGVydHlDaGFuZ2VkQml0KFBhaW50ZXJGb3JTY3JvbGxiYXIpOwogCiAgICAgU2Nyb2xsaW5n
U3RhdGVOb2RlOjpzZXRBbGxQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogfQpAQCAtMjQwLDYgKzI1NCwz
MCBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsZWRDb250ZW50
c0xheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YQogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3Jv
bGxlZENvbnRlbnRzTGF5ZXIpOwogfQogCit2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6c2V0SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24m
IGxheWVyKQoreworICAgIGlmIChsYXllciA9PSBtX2hvcml6b250YWxTY3JvbGxiYXJMYXllcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIgPSBsYXll
cjsKKyAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKTsKK30K
Kwordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFZlcnRpY2FsU2Nyb2xsYmFy
TGF5ZXIoY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgbGF5ZXIpCit7CisgICAgaWYgKGxheWVy
ID09IG1fdmVydGljYWxTY3JvbGxiYXJMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92
ZXJ0aWNhbFNjcm9sbGJhckxheWVyID0gbGF5ZXI7CisgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFZl
cnRpY2FsU2Nyb2xsYmFyTGF5ZXIpOworfQorCisjaWYgIVBMQVRGT1JNKE1BQykKK3ZvaWQgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyhT
Y3JvbGxiYXIqLCBTY3JvbGxiYXIqKQoreworfQorI2VuZGlmCisKIHZvaWQgU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5n
U3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0CiB7CiAgICAgU2Nyb2xsaW5n
U3RhdGVOb2RlOjpkdW1wUHJvcGVydGllcyh0cywgYmVoYXZpb3IpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuaAppbmRleCA1ZmVhYTUxMTFiNjU3MjU0MzE5YWVhNDkwNjBmMmE3NzlkOTAwZjAwLi4xZDk2
ZjJmZjAyNmViNTYxZGQzNjhkNzQ0Nzg1M2VlYjUxNTA5ZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuaApAQCAtMzIsNiArMzIsMTAgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5o
IgogI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlTm9kZS5oIgogCisjaWYgUExBVEZPUk0oQ09DT0Ep
CitPQkpDX0NMQVNTIE5TU2Nyb2xsZXJJbXA7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUgOiBwdWJsaWMgU2Nyb2xsaW5n
U3RhdGVOb2RlIHsKQEAgLTU4LDYgKzYyLDkgQEAgcHVibGljOgogICAgICAgICBFeHBlY3RzV2hl
ZWxFdmVudFRlc3RUcmlnZ2VyLAogICAgICAgICBTY3JvbGxDb250YWluZXJMYXllciwKICAgICAg
ICAgU2Nyb2xsZWRDb250ZW50c0xheWVyLAorICAgICAgICBIb3Jpem9udGFsU2Nyb2xsYmFyTGF5
ZXIsCisgICAgICAgIFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIsCisgICAgICAgIFBhaW50ZXJGb3JT
Y3JvbGxiYXIsCiAgICAgICAgIE51bVNjcm9sbGluZ1N0YXRlTm9kZUJpdHMgLy8gVGhpcyBtdXN0
IHJlbWFpbiBhdCB0aGUgbGFzdCBwb3NpdGlvbi4KICAgICB9OwogCkBAIC0xMTYsNiArMTIzLDE4
IEBAIHB1YmxpYzoKICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxlZENvbnRl
bnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsgfQogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKGNvbnN0IExheWVy
UmVwcmVzZW50YXRpb24mKTsKIAorICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGhvcml6
b250YWxTY3JvbGxiYXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGJh
ckxheWVyOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIb3Jpem9udGFsU2Nyb2xsYmFy
TGF5ZXIoY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYpOworCisgICAgY29uc3QgTGF5ZXJSZXBy
ZXNlbnRhdGlvbiYgdmVydGljYWxTY3JvbGxiYXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fdmVy
dGljYWxTY3JvbGxiYXJMYXllcjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VmVydGlj
YWxTY3JvbGxiYXJMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJik7CisKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgTlNTY3JvbGxlckltcCAqdmVydGljYWxTY3JvbGxlckltcCgpIGNvbnN0
IHsgcmV0dXJuIG1fdmVydGljYWxTY3JvbGxlckltcC5nZXQoKTsgfQorICAgIE5TU2Nyb2xsZXJJ
bXAgKmhvcml6b250YWxTY3JvbGxlckltcCgpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRhbFNj
cm9sbGVySW1wLmdldCgpOyB9CisjZW5kaWYKKyAgICB2b2lkIHNldFNjcm9sbGVySW1wc0Zyb21T
Y3JvbGxiYXJzKFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIsIFNjcm9sbGJhciogaG9yaXpv
bnRhbFNjcm9sbGJhcik7CisKIHByb3RlY3RlZDoKICAgICBTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUoU2Nyb2xsaW5nU3RhdGVUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05v
ZGVJRCk7CiAgICAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZSYsIFNjcm9sbGluZ1N0YXRlVHJlZSYpOwpAQCAtMTMyLDE0ICsxNTEs
MjUgQEAgcHJpdmF0ZToKICAgICBGbG9hdFBvaW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgRmxv
YXRQb2ludCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOwogICAgIEludFBvaW50IG1fc2Nyb2xs
T3JpZ2luOworCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBTY3JvbGxTbmFwT2Zm
c2V0c0luZm88ZmxvYXQ+IG1fc25hcE9mZnNldHNJbmZvOwogICAgIHVuc2lnbmVkIG1fY3VycmVu
dEhvcml6b250YWxTbmFwUG9pbnRJbmRleCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRW
ZXJ0aWNhbFNuYXBQb2ludEluZGV4IHsgMCB9OwogI2VuZGlmCi0gICAgU2Nyb2xsYWJsZUFyZWFQ
YXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOworCiAgICAgTGF5ZXJSZXByZXNl
bnRhdGlvbiBtX3Njcm9sbENvbnRhaW5lckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRpb24g
bV9zY3JvbGxlZENvbnRlbnRzTGF5ZXI7CisgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX2hvcml6
b250YWxTY3JvbGxiYXJMYXllcjsKKyAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fdmVydGljYWxT
Y3JvbGxiYXJMYXllcjsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBSZXRhaW5QdHI8TlNTY3Jv
bGxlckltcD4gbV92ZXJ0aWNhbFNjcm9sbGVySW1wOworICAgIFJldGFpblB0cjxOU1Njcm9sbGVy
SW1wPiBtX2hvcml6b250YWxTY3JvbGxlckltcDsKKyNlbmRpZgorCisgICAgU2Nyb2xsYWJsZUFy
ZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOworCiAgICAgYm9vbCBtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2V4cGVjdHNXaGVlbEV2ZW50VGVzdFRyaWdnZXIgeyBmYWxzZSB9Owog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAK
aW5kZXggMjU1NzZiNjMzODExMTk2YzM4ZjI2Njg3ZjU0MjkxZDM1MjE5MzdkMC4uZDI4Yzc3MjU2
YzU1NThlYmRkYmI5YzU0ZTM1ODQ2NjBjMGY3YjczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTgwLDEwICs4MCwxMyBAQCBib29s
IFNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudAogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE9yQ2xlYXJMYXRj
aGVkTm9kZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05v
ZGVJRCBub2RlSUQpCiB7Ci0gICAgaWYgKHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGlu
ZygpKQorICAgIGlmICh3aGVlbEV2ZW50LnNob3VsZENvbnNpZGVyTGF0Y2hpbmcoKSkgeworICAg
ICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWUg
IiA8PCB0aGlzIDw8ICIgc2V0T3JDbGVhckxhdGNoZWROb2RlOiBzZXR0aW5nIGxhdGNoZWQgbm9k
ZSAiIDw8IG5vZGVJRCk7CiAgICAgICAgIHNldExhdGNoZWROb2RlKG5vZGVJRCk7Ci0gICAgZWxz
ZSBpZiAod2hlZWxFdmVudC5zaG91bGRSZXNldExhdGNoaW5nKCkpCisgICAgfSBlbHNlIGlmICh3
aGVlbEV2ZW50LnNob3VsZFJlc2V0TGF0Y2hpbmcoKSkgeworICAgICAgICBMT0dfV0lUSF9TVFJF
QU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWUgIiA8PCB0aGlzIDw8ICIgc2V0
T3JDbGVhckxhdGNoZWROb2RlOiBjbGVhcmluZyBsYXRjaGVkIG5vZGUgKHdhcyAiIDw8IGxhdGNo
ZWROb2RlKCkgPDwgIikiKTsKICAgICAgICAgY2xlYXJMYXRjaGVkTm9kZSgpOworICAgIH0KIH0K
IAogU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCkBAIC05Nyw2ICsxMDAsNyBAQCBT
Y3JvbGxpbmdFdmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgdwogICAgIH0KIAogICAgIGlmIChoYXNMYXRjaGVkTm9kZSgp
KSB7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiIGhhcyBs
YXRjaGVkIG5vZGUgIiA8PCBsYXRjaGVkTm9kZSgpKTsKICAgICAgICAgYXV0byogbm9kZSA9IG5v
ZGVGb3JJRChsYXRjaGVkTm9kZSgpKTsKICAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlPihub2RlKSkKICAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3Rh
dGVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg4MzBmMTI5ZjVjZmI0MjgzMDA1ZDM3NWRkYWU3ZTQwNzA0Y2Jl
MzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdO
b2RlTWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5n
Tm9kZS5oIgotCi0jaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQot
Ci0jaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgotI2luY2x1ZGUgIlNjcm9sbGJhci5oIgotI2lu
Y2x1ZGUgIlNjcm9sbGJhclRoZW1lTWFjLmgiCi0jaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVl
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZTo6c2V0U2Nyb2xsZXJJbXBzRnJvbVNjcm9sbGJhcnMoU2Nyb2xsYmFyKiB2ZXJ0
aWNhbFNjcm9sbGJhciwgU2Nyb2xsYmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyKQotewotICAgIFNj
cm9sbGJhclRoZW1lJiBzY3JvbGxiYXJUaGVtZSA9IFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpOwot
ICAgIGlmIChzY3JvbGxiYXJUaGVtZS5pc01vY2tUaGVtZSgpKQotICAgICAgICByZXR1cm47Ci0g
ICAgU2Nyb2xsYmFyVGhlbWVNYWMmIG1hY1RoZW1lID0gc3RhdGljX2Nhc3Q8U2Nyb2xsYmFyVGhl
bWVNYWMmPihzY3JvbGxiYXJUaGVtZSk7Ci0KLSAgICBOU1Njcm9sbGVySW1wICp2ZXJ0aWNhbFBh
aW50ZXIgPSB2ZXJ0aWNhbFNjcm9sbGJhciAmJiB2ZXJ0aWNhbFNjcm9sbGJhci0+c3VwcG9ydHNV
cGRhdGVPblNlY29uZGFyeVRocmVhZCgpCi0gICAgICAgID8gbWFjVGhlbWUucGFpbnRlckZvclNj
cm9sbGJhcigqdmVydGljYWxTY3JvbGxiYXIpIDogbnVsbHB0cjsKLSAgICBOU1Njcm9sbGVySW1w
ICpob3Jpem9udGFsUGFpbnRlciA9IGhvcml6b250YWxTY3JvbGxiYXIgJiYgaG9yaXpvbnRhbFNj
cm9sbGJhci0+c3VwcG9ydHNVcGRhdGVPblNlY29uZGFyeVRocmVhZCgpCi0gICAgICAgID8gbWFj
VGhlbWUucGFpbnRlckZvclNjcm9sbGJhcigqaG9yaXpvbnRhbFNjcm9sbGJhcikgOiBudWxscHRy
OwotCi0gICAgaWYgKG1fdmVydGljYWxTY3JvbGxlckltcCA9PSB2ZXJ0aWNhbFBhaW50ZXIgJiYg
bV9ob3Jpem9udGFsU2Nyb2xsZXJJbXAgPT0gaG9yaXpvbnRhbFBhaW50ZXIpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIG1fdmVydGljYWxTY3JvbGxlckltcCA9IHZlcnRpY2FsUGFpbnRlcjsKLSAg
ICBtX2hvcml6b250YWxTY3JvbGxlckltcCA9IGhvcml6b250YWxQYWludGVyOwotCi0gICAgc2V0
UHJvcGVydHlDaGFuZ2VkKFBhaW50ZXJGb3JTY3JvbGxiYXIpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
MTI1YjQ3OGRkZDRiZjQzMzBiYmFhY2RiNmMxOGZiZDkxYjMzY2Q5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZU1hYy5tbQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oIgorCisjaWYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSAiR3Jh
cGhpY3NMYXllci5oIgorI2luY2x1ZGUgIlNjcm9sbGJhci5oIgorI2luY2x1ZGUgIlNjcm9sbGJh
clRoZW1lTWFjLmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9s
bGVySW1wc0Zyb21TY3JvbGxiYXJzKFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIsIFNjcm9s
bGJhciogaG9yaXpvbnRhbFNjcm9sbGJhcikKK3sKKyAgICBTY3JvbGxiYXJUaGVtZSYgc2Nyb2xs
YmFyVGhlbWUgPSBTY3JvbGxiYXJUaGVtZTo6dGhlbWUoKTsKKyAgICBpZiAoc2Nyb2xsYmFyVGhl
bWUuaXNNb2NrVGhlbWUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFNjcm9sbGJhclRoZW1lTWFj
JiBtYWNUaGVtZSA9IHN0YXRpY19jYXN0PFNjcm9sbGJhclRoZW1lTWFjJj4oc2Nyb2xsYmFyVGhl
bWUpOworCisgICAgTlNTY3JvbGxlckltcCAqdmVydGljYWxQYWludGVyID0gdmVydGljYWxTY3Jv
bGxiYXIgJiYgdmVydGljYWxTY3JvbGxiYXItPnN1cHBvcnRzVXBkYXRlT25TZWNvbmRhcnlUaHJl
YWQoKQorICAgICAgICA/IG1hY1RoZW1lLnBhaW50ZXJGb3JTY3JvbGxiYXIoKnZlcnRpY2FsU2Ny
b2xsYmFyKSA6IG51bGxwdHI7CisgICAgTlNTY3JvbGxlckltcCAqaG9yaXpvbnRhbFBhaW50ZXIg
PSBob3Jpem9udGFsU2Nyb2xsYmFyICYmIGhvcml6b250YWxTY3JvbGxiYXItPnN1cHBvcnRzVXBk
YXRlT25TZWNvbmRhcnlUaHJlYWQoKQorICAgICAgICA/IG1hY1RoZW1lLnBhaW50ZXJGb3JTY3Jv
bGxiYXIoKmhvcml6b250YWxTY3JvbGxiYXIpIDogbnVsbHB0cjsKKworICAgIGlmIChtX3ZlcnRp
Y2FsU2Nyb2xsZXJJbXAgPT0gdmVydGljYWxQYWludGVyICYmIG1faG9yaXpvbnRhbFNjcm9sbGVy
SW1wID09IGhvcml6b250YWxQYWludGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZlcnRp
Y2FsU2Nyb2xsZXJJbXAgPSB2ZXJ0aWNhbFBhaW50ZXI7CisgICAgbV9ob3Jpem9udGFsU2Nyb2xs
ZXJJbXAgPSBob3Jpem9udGFsUGFpbnRlcjsKKworICAgIHNldFByb3BlcnR5Q2hhbmdlZChQYWlu
dGVyRm9yU2Nyb2xsYmFyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgKaW5kZXggYzdhNzRkNTMwMDc2YzgyN2U1YjEx
NWQ5NjBjM2VmNWY2M2RiM2Q3OS4uYjBlYzIxMTJlMWQ5ZDZjNDM1MTk0MjcwY2U2NzFlMTIyZDAy
NWQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCkBAIC00
NSw4ICs0NSw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlTWFjKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xs
aW5nTm9kZUlEKTsKIAotICAgIHZvaWQgcmVsZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09u
VGhlTWFpblRocmVhZCgpOwotCiAgICAgLy8gU2Nyb2xsaW5nVHJlZU5vZGUgbWVtYmVyIGZ1bmN0
aW9ucy4KICAgICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5n
U3RhdGVOb2RlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4o
Y29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CkBAIC02OCwxNiArNjYsMTQgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKSBvdmVycmlkZTsKIAorICAg
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMgbV9kZWxlZ2F0ZTsKKwogICAg
IFJldGFpblB0cjxDQUxheWVyPiBtX3Jvb3RDb250ZW50c0xheWVyOwogICAgIFJldGFpblB0cjxD
QUxheWVyPiBtX2NvdW50ZXJTY3JvbGxpbmdMYXllcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4g
bV9pbnNldENsaXBMYXllcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9jb250ZW50U2hhZG93
TGF5ZXI7CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1faGVhZGVyTGF5ZXI7CiAgICAgUmV0YWlu
UHRyPENBTGF5ZXI+IG1fZm9vdGVyTGF5ZXI7Ci0gICAgUmV0YWluUHRyPE5TU2Nyb2xsZXJJbXA+
IG1fdmVydGljYWxTY3JvbGxlckltcDsKLSAgICBSZXRhaW5QdHI8TlNTY3JvbGxlckltcD4gbV9o
b3Jpem9udGFsU2Nyb2xsZXJJbXA7Ci0KLSAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlTWFjIG1fZGVsZWdhdGU7CiAgICAgCiAgICAgYm9vbCBtX2xhc3RTY3JvbGxIYWRVbmZp
bGxlZFBpeGVscyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhZEZpcnN0VXBkYXRlIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KaW5kZXggZDIy
YmEwODc0NWY3NzQ1NTNmMzdjMGEyYjc2ZWZkMTFlNTRlNTI1MS4uNGUxODNmODFiZGYxOTQ0ZTI5
ZTIxYzRjYjAwNzgxODZlMDQ2MmVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMubW0KQEAgLTM4LDEyICszOCwxMCBAQAogI2ltcG9ydCAiU2Nyb2xsaW5nVHJl
ZS5oIgogI2ltcG9ydCAiVGlsZUNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldlYkxheWVyLmgiCi0j
aW1wb3J0IDxwYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmg+Ci0jaW1wb3J0IDx3dGYvdGV4
dC9UZXh0U3RyZWFtLmg+Ci0KICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogI2lt
cG9ydCA8d3RmL0RlcXVlLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW1wb3J0
IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgs
MjAgKzU2LDcgQEAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6U2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYyhTY3JvbGxpbmcKIHsKIH0KIAotU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6flNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVN
YWMoKQotewotICAgIHJlbGVhc2VSZWZlcmVuY2VzVG9TY3JvbGxlckltcHNPblRoZU1haW5UaHJl
YWQoKTsKLX0KLQotdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpyZWxl
YXNlUmVmZXJlbmNlc1RvU2Nyb2xsZXJJbXBzT25UaGVNYWluVGhyZWFkKCkKLXsKLSAgICBpZiAo
bV92ZXJ0aWNhbFNjcm9sbGVySW1wIHx8IG1faG9yaXpvbnRhbFNjcm9sbGVySW1wKSB7Ci0gICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBpbiBwbGFjZSBmb3IgdGhlIHRpbWUg
YmVpbmcgc2luY2UgTlNTY3JvbGxlckltcHMgY2Fubm90IGJlIGRlYWxsb2NhdGVkCi0gICAgICAg
IC8vIG9uIGEgbm9uLW1haW4gdGhyZWFkLiByZGFyOi8vcHJvYmxlbS8yNDUzNTA1NQotICAgICAg
ICBXVEY6OmNhbGxPbk1haW5UaHJlYWQoW3ZlcnRpY2FsU2Nyb2xsZXJJbXAgPSBXVEZNb3ZlKG1f
dmVydGljYWxTY3JvbGxlckltcCksIGhvcml6b250YWxTY3JvbGxlckltcCA9IFdURk1vdmUobV9o
b3Jpem9udGFsU2Nyb2xsZXJJbXApXSB7Ci0gICAgICAgIH0pOwotICAgIH0KLX0KK1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6On5TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTWFjKCkgPSBkZWZhdWx0OwogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKIHN0YXRp
YyBpbmxpbmUgVmVjdG9yPExheW91dFVuaXQ+IGNvbnZlcnRUb0xheW91dFVuaXRzKGNvbnN0IFZl
Y3RvcjxmbG9hdD4mIHNuYXBPZmZzZXRzQXNGbG9hdCkKQEAgLTExOCwxMiArMTAzLDYgQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNo
aWxkcmVuKGNvbnN0IFNjcm9sbGkKICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Rm9vdGVyTGF5ZXIp
KQogICAgICAgICBtX2Zvb3RlckxheWVyID0gc2Nyb2xsaW5nU3RhdGVOb2RlLmZvb3RlckxheWVy
KCk7CiAKLSAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3Jv
bGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6UGFpbnRlckZvclNjcm9sbGJhcikpIHsKLSAg
ICAgICAgcmVsZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRocmVhZCgpOwot
ICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsZXJJbXAgPSBzY3JvbGxpbmdTdGF0ZU5vZGUudmVydGlj
YWxTY3JvbGxlckltcCgpOwotICAgICAgICBtX2hvcml6b250YWxTY3JvbGxlckltcCA9IHNjcm9s
bGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsZXJJbXAoKTsKLSAgICB9Ci0KICAgICBib29s
IGxvZ1Njcm9sbGluZ01vZGUgPSAhbV9oYWRGaXJzdFVwZGF0ZTsKICAgICBpZiAoc2Nyb2xsaW5n
U3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5n
Tm9kZTo6UmVhc29uc0ZvclN5bmNocm9ub3VzU2Nyb2xsaW5nKSkKICAgICAgICAgbG9nU2Nyb2xs
aW5nTW9kZSA9IHRydWU7CkBAIC0xMzEsNyArMTEwLDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3Jv
bGxpCiAgICAgaWYgKGxvZ1Njcm9sbGluZ01vZGUgJiYgaXNSb290Tm9kZSgpICYmIHNjcm9sbGlu
Z1RyZWUoKS5zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCkpCiAgICAgICAgIHNj
cm9sbGluZ1RyZWUoKS5yZXBvcnRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1v
bm90b25pY1RpbWU6Om5vdygpLCBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKSk7CiAKKyAg
ICBtX2RlbGVnYXRlLnVwZGF0ZUZyb21TdGF0ZU5vZGUoc2Nyb2xsaW5nU3RhdGVOb2RlKTsKKwog
I2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCisgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIG1v
dmUgdG8gdGhlIGRlbGVnYXRlIGFuZCBiZSBzaGFyZWQgd2l0aCBvdmVyZmxvdy4KICAgICBpZiAo
c2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1l
U2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbFNuYXBPZmZzZXRzKSB8fCBzY3JvbGxpbmdTdGF0ZU5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpI
b3Jpem9udGFsU25hcE9mZnNldFJhbmdlcykpCiAgICAgICAgIG1fZGVsZWdhdGUudXBkYXRlU2Ny
b2xsU25hcFBvaW50cyhTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIGNvbnZlcnRUb0xheW91
dFVuaXRzKHNjcm9sbGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsU25hcE9mZnNldHMoKSksIGNvbnZl
cnRUb0xheW91dFVuaXRzKHNjcm9sbGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsU25hcE9mZnNldFJh
bmdlcygpKSk7CiAKQEAgLTE3MCwyNCArMTUyLDYgQEAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdAog
ICAgIGlmICghY2FuSGF2ZVNjcm9sbGJhcnMoKSkKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2
ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudDsKIAotICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVu
dHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKSB7Ci0gICAgICAgIFtt
X3ZlcnRpY2FsU2Nyb2xsZXJJbXAgc2V0VXNlUHJlc2VudGF0aW9uVmFsdWU6WUVTXTsKLSAgICAg
ICAgW21faG9yaXpvbnRhbFNjcm9sbGVySW1wIHNldFVzZVByZXNlbnRhdGlvblZhbHVlOllFU107
Ci0gICAgfQotICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdo
ZWVsRXZlbnRQaGFzZUVuZGVkIHx8IHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlQ2FuY2VsbGVkKSB7Ci0gICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xs
ZXJJbXAgc2V0VXNlUHJlc2VudGF0aW9uVmFsdWU6Tk9dOwotICAgICAgICBbbV9ob3Jpem9udGFs
U2Nyb2xsZXJJbXAgc2V0VXNlUHJlc2VudGF0aW9uVmFsdWU6Tk9dOwotICAgIH0KLQotI2lmIEVO
QUJMRShDU1NfU0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICBpZiAo
ZXhwZWN0c1doZWVsRXZlbnRUZXN0VHJpZ2dlcigpKSB7Ci0gICAgICAgIGlmIChzY3JvbGxpbmdU
cmVlKCkuc2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkod2hlZWxFdmVudCkpCi0g
ICAgICAgICAgICBtX2RlbGVnYXRlLnJlbW92ZVRlc3REZWZlcnJhbEZvclJlYXNvbihyZWludGVy
cHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVy
PihzY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xsaW5nVGhy
ZWFkU3luY05lZWRlZCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fZGVsZWdhdGUuZGVm
ZXJUZXN0c0ZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6
U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihzY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRU
ZXN0VHJpZ2dlcjo6U2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCk7Ci0gICAgfQotI2VuZGlmCi0K
ICAgICBtX2RlbGVnYXRlLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAKICNpZiBFTkFC
TEUoQ1NTX1NDUk9MTF9TTkFQKQpAQCAtMjY2LDI3ICsyMzAsNyBAQCB2b2lkIFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkKICAgICAg
ICAgICAgIG1fZm9vdGVyTGF5ZXIuZ2V0KCkucG9zaXRpb24gPSBGbG9hdFBvaW50KGhvcml6b250
YWxTY3JvbGxPZmZzZXRGb3JCYW5uZXIsIEZyYW1lVmlldzo6eVBvc2l0aW9uRm9yRm9vdGVyTGF5
ZXIoc2Nyb2xsUG9zaXRpb24sIHRvcENvbnRlbnRJbnNldCwgdG90YWxDb250ZW50c1NpemUoKS5o
ZWlnaHQoKSwgZm9vdGVySGVpZ2h0KCkpKTsKICAgICB9CiAKLSAgICBpZiAobV92ZXJ0aWNhbFNj
cm9sbGVySW1wIHx8IG1faG9yaXpvbnRhbFNjcm9sbGVySW1wKSB7Ci0gICAgICAgIFtDQVRyYW5z
YWN0aW9uIGJlZ2luXTsKLSAgICAgICAgW0NBVHJhbnNhY3Rpb24gbG9ja107Ci0KLSAgICAgICAg
aWYgKFttX3ZlcnRpY2FsU2Nyb2xsZXJJbXAgc2hvdWxkVXNlUHJlc2VudGF0aW9uVmFsdWVdKSB7
Ci0gICAgICAgICAgICBmbG9hdCBwcmVzZW50YXRpb25WYWx1ZTsKLSAgICAgICAgICAgIGZsb2F0
IG92ZXJoYW5nQW1vdW50OwotICAgICAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVTY3Jv
bGxiYXJWYWx1ZUFuZE92ZXJoYW5nKHNjcm9sbFBvc2l0aW9uLnkoKSwgdG90YWxDb250ZW50c1Np
emUoKS5oZWlnaHQoKSwgdmlzaWJsZUNvbnRlbnRSZWN0LmhlaWdodCgpLCBwcmVzZW50YXRpb25W
YWx1ZSwgb3ZlcmhhbmdBbW91bnQpOwotICAgICAgICAgICAgW21fdmVydGljYWxTY3JvbGxlcklt
cCBzZXRQcmVzZW50YXRpb25WYWx1ZTpwcmVzZW50YXRpb25WYWx1ZV07Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoW21faG9yaXpvbnRhbFNjcm9sbGVySW1wIHNob3VsZFVzZVByZXNlbnRhdGlv
blZhbHVlXSkgewotICAgICAgICAgICAgZmxvYXQgcHJlc2VudGF0aW9uVmFsdWU7Ci0gICAgICAg
ICAgICBmbG9hdCBvdmVyaGFuZ0Ftb3VudDsKLSAgICAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpj
b21wdXRlU2Nyb2xsYmFyVmFsdWVBbmRPdmVyaGFuZyhzY3JvbGxQb3NpdGlvbi54KCksIHRvdGFs
Q29udGVudHNTaXplKCkud2lkdGgoKSwgdmlzaWJsZUNvbnRlbnRSZWN0LndpZHRoKCksIHByZXNl
bnRhdGlvblZhbHVlLCBvdmVyaGFuZ0Ftb3VudCk7Ci0gICAgICAgICAgICBbbV9ob3Jpem9udGFs
U2Nyb2xsZXJJbXAgc2V0UHJlc2VudGF0aW9uVmFsdWU6cHJlc2VudGF0aW9uVmFsdWVdOwotICAg
ICAgICB9Ci0KLSAgICAgICAgW0NBVHJhbnNhY3Rpb24gdW5sb2NrXTsKLSAgICAgICAgW0NBVHJh
bnNhY3Rpb24gY29tbWl0XTsKLSAgICB9CisgICAgbV9kZWxlZ2F0ZS51cGRhdGVTY3JvbGxiYXJQ
YWludGVycygpOwogfQogCiBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVNYWM6Om1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaAppbmRleCAwMjM2NzFjZjVkMDhlYzA5NjNiNzY4
MDY4YjU3MWM1MjM4YjY0MTJkLi5iZDFlNzMyZGUyYzg4ODIwNGU0NWQxZTg3OGNmOWY3ODliMTgw
N2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmgK
QEAgLTM0LDEyICszNCwxMiBAQCBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYyA6IHB1
YmxpYyBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlIHsKK2NsYXNzIFdFQkNPUkVf
RVhQT1JUIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMgOiBwdWJsaWMgU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjPiBjcmVhdGUoU2Nyb2xsaW5n
VHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZU1hYygpOwogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGlu
Z05vZGVJRCk7CiAKICAgICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Ny
b2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CkBAIC00OCw5ICs0OCwxMSBAQCBwcml2YXRlOgog
ICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jiwg
U2Nyb2xsUG9zaXRpb25DbGFtcCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlcG9zaXRp
b25TY3JvbGxpbmdMYXllcnMoKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcG9zaXRpb25SZWxhdGVk
TGF5ZXJzKCkgb3ZlcnJpZGU7CiAKICAgICBTY3JvbGxpbmdFdmVudFJlc3VsdCBoYW5kbGVXaGVl
bEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlOwogCitwcml2YXRlOgog
ICAgIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMgbV9kZWxlZ2F0ZTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KaW5k
ZXggNWFmN2JkMjlkMzkzYmY4NzAzNzE5N2NlMTA5ZDE4ZDEzODExM2E2Yi4uNWI0M2ExODA0YmI3
NjBiOTA5MTdmNzRiYjE2NGRiMjUyODc0YTU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KQEAgLTUxLDkgKzUxLDcgQEAgU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6flNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVNYWMoKQogdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpj
b21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVO
b2RlKQogewogICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0
YXRlQmVmb3JlQ2hpbGRyZW4oc3RhdGVOb2RlKTsKLSAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdT
dGF0ZU5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT4o
c3RhdGVOb2RlKTsKLSAgICBVTlVTRURfUEFSQU0oc2Nyb2xsaW5nU3RhdGVOb2RlKTsKLSAgICAv
LyBGSVhNRTogU2Nyb2xsIHNuYXAgZGF0YS4KKyAgICBtX2RlbGVnYXRlLnVwZGF0ZUZyb21TdGF0
ZU5vZGUoZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU+KHN0YXRl
Tm9kZSkpOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6
OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRl
Tm9kZSkKQEAgLTY4LDE2ICs2Niw2IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uCiAgICAgaWYg
KCFjYW5IYXZlU2Nyb2xsYmFycygpKQogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1
bHQ6OkRpZE5vdEhhbmRsZUV2ZW50OwogCi0KLSNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8
fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCi0gICAgaWYgKGV4cGVjdHNXaGVlbEV2ZW50VGVzdFRy
aWdnZXIoKSkgewotICAgICAgICBpZiAoc2Nyb2xsaW5nVHJlZSgpLnNob3VsZEhhbmRsZVdoZWVs
RXZlbnRTeW5jaHJvbm91c2x5KHdoZWVsRXZlbnQpKQotICAgICAgICAgICAgbV9kZWxlZ2F0ZS5y
ZW1vdmVUZXN0RGVmZXJyYWxGb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVz
dFRyaWdnZXI6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4oc2Nyb2xsaW5nTm9kZUlEKCkpLCBX
aGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBtX2RlbGVnYXRlLmRlZmVyVGVzdHNGb3JSZWFzb24ocmVpbnRl
cnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmll
cj4oc2Nyb2xsaW5nTm9kZUlEKCkpLCBXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGluZ1Ro
cmVhZFN5bmNOZWVkZWQpOwotICAgIH0KLSNlbmRpZgotCiAgICAgbV9kZWxlZ2F0ZS5oYW5kbGVX
aGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogCiAgICAgLy8gRklYTUU6IFNjcm9sbCBzbmFwCkBAIC0x
MDEsNiArODksMTEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFj
OjpyZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkKICAgICBzY3JvbGxlZENvbnRlbnRzTGF5ZXIo
KS5wb3NpdGlvbiA9IC1zY3JvbGxQb3NpdGlvbjsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpyZXBvc2l0aW9uUmVsYXRlZExheWVycygpCit7CisgICAg
bV9kZWxlZ2F0ZS51cGRhdGVTY3JvbGxiYXJQYWludGVycygpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaApp
bmRleCBjNGQ4M2ZiZDM5YmZkYTFlMTg3OWM0MzgxNTFhMTJmZWEwZTRmMGJjLi45N2Q0NjJiYWI3
NDc0YTAzNWI5YWJmYzlmZmFhMGU2MzFkYzE4ZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKQEAgLTMxLDExICszMSwxNCBAQAogCiAjaW5jbHVk
ZSAiU2Nyb2xsQ29udHJvbGxlci5oIgogCitPQkpDX0NMQVNTIE5TU2Nyb2xsZXJJbXA7CisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEZsb2F0U2l6ZTsK
IGNsYXNzIEludFBvaW50OworY2xhc3MgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOwogY2xh
c3MgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlOwogCkBA
IC01NCw2ICs1Nyw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzU2Nyb2xsU25hcEluUHJvZ3Jlc3Mo
KSBjb25zdDsKICNlbmRpZgogCisgICAgdm9pZCB1cGRhdGVGcm9tU3RhdGVOb2RlKGNvbnN0IFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYpOworICAgIHZvaWQgdXBkYXRlU2Nyb2xsYmFyUGFp
bnRlcnMoKTsKKwogICAgIHZvaWQgZGVmZXJUZXN0c0ZvclJlYXNvbihXaGVlbEV2ZW50VGVzdFRy
aWdnZXI6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpE
ZWZlclRlc3RUcmlnZ2VyUmVhc29uKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZVRl
c3REZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGFibGVBcmVh
SWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpEZWZlclRlc3RUcmlnZ2VyUmVhc29u
KSBjb25zdCBvdmVycmlkZTsKIApAQCAtODMsNyArODksMTIgQEAgcHJpdmF0ZToKICAgICBGbG9h
dFNpemUgdmlld3BvcnRTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZvaWQg
cmVsZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRocmVhZCgpOworCiAgICAg
U2Nyb2xsQ29udHJvbGxlciBtX3Njcm9sbENvbnRyb2xsZXI7CisKKyAgICBSZXRhaW5QdHI8TlNT
Y3JvbGxlckltcD4gbV92ZXJ0aWNhbFNjcm9sbGVySW1wOworICAgIFJldGFpblB0cjxOU1Njcm9s
bGVySW1wPiBtX2hvcml6b250YWxTY3JvbGxlckltcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0K
aW5kZXggY2JjYjY2YWIxN2EyYWE3NzdkZTg2YmE4MTUwMTg4MTEyZTIxMWQ2YS4uNzI2N2U0ZGU0
ODA4ZTJjM2I1ZjFkM2YxZjcyNTAwMmM5OWE4YWY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KQEAgLTI5LDkgKzI5LDEyIEBACiAjaWYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJMb2dnaW5n
LmgiCisjaW1wb3J0ICJTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCIKICNpbXBvcnQgIlNj
cm9sbGluZ1RyZWUuaCIKICNpbXBvcnQgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUu
aCIKICNpbXBvcnQgIlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgiCisjaW1wb3J0IDxRdWFy
dHpDb3JlL1F1YXJ0ekNvcmUuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBT
UEkuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSw3ICs0NCwxOSBAQCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlTWFjKFNjcgogewogfQogCi1TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjp+U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYygpID0gZGVmYXVs
dDsKK1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6On5TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjKCkKK3sKKyAgICByZWxlYXNlUmVmZXJlbmNlc1RvU2Ny
b2xsZXJJbXBzT25UaGVNYWluVGhyZWFkKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYzo6dXBkYXRlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUmIHNjcm9sbGluZ1N0YXRlTm9kZSkKK3sKKyAgICBpZiAoc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OlBhaW50ZXJGb3JTY3JvbGxiYXIpKSB7CisgICAgICAgIHJlbGVhc2VSZWZlcmVuY2VzVG9T
Y3JvbGxlckltcHNPblRoZU1haW5UaHJlYWQoKTsKKyAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGVy
SW1wID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsZXJJbXAoKTsKKyAgICAgICAg
bV9ob3Jpem9udGFsU2Nyb2xsZXJJbXAgPSBzY3JvbGxpbmdTdGF0ZU5vZGUuaG9yaXpvbnRhbFNj
cm9sbGVySW1wKCk7CisgICAgfQorfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVNYWM6OnVwZGF0ZVNjcm9sbFNuYXBQb2ludHMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMs
IGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMsIGNvbnN0IFZlY3RvcjxTY3Jv
bGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBSYW5nZXMpCiB7CkBAIC02NSw2ICs4MCwy
NCBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFjdGl2ZVNj
cm9sbFNuYXBJbmRleERpZENoYW5nZSgpIGNvbgogCiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiB3aGVlbEV2ZW50KQogeworICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKSB7CisgICAgICAgIFttX3ZlcnRpY2FsU2Ny
b2xsZXJJbXAgc2V0VXNlUHJlc2VudGF0aW9uVmFsdWU6WUVTXTsKKyAgICAgICAgW21faG9yaXpv
bnRhbFNjcm9sbGVySW1wIHNldFVzZVByZXNlbnRhdGlvblZhbHVlOllFU107CisgICAgfQorICAg
IGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFz
ZUVuZGVkIHx8IHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlQ2FuY2VsbGVkKSB7CisgICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xsZXJJbXAgc2V0VXNl
UHJlc2VudGF0aW9uVmFsdWU6Tk9dOworICAgICAgICBbbV9ob3Jpem9udGFsU2Nyb2xsZXJJbXAg
c2V0VXNlUHJlc2VudGF0aW9uVmFsdWU6Tk9dOworICAgIH0KKworI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKKyAgICBpZiAoc2Nyb2xsaW5nTm9k
ZSgpLmV4cGVjdHNXaGVlbEV2ZW50VGVzdFRyaWdnZXIoKSkgeworICAgICAgICBpZiAoc2Nyb2xs
aW5nVHJlZSgpLnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KHdoZWVsRXZlbnQp
KQorICAgICAgICAgICAgcmVtb3ZlVGVzdERlZmVycmFsRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nh
c3Q8V2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KHNjcm9s
bGluZ05vZGUoKS5zY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Ny
b2xsaW5nVGhyZWFkU3luY05lZWRlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlZmVy
VGVzdHNGb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNj
cm9sbGFibGVBcmVhSWRlbnRpZmllcj4oc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbGluZ05vZGVJRCgp
KSwgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkKTsKKyAg
ICB9CisjZW5kaWYKKwogICAgIHJldHVybiBtX3Njcm9sbENvbnRyb2xsZXIuaGFuZGxlV2hlZWxF
dmVudCh3aGVlbEV2ZW50KTsKIH0KIApAQCAtMjkxLDYgKzMyNCw0MyBAQCB2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnJlbW92ZVRlc3REZWZlcnJhbEZvclJlYXNv
bihXaGVlbEV2ZQogICAgIHNjcm9sbGluZ1RyZWUoKS5yZW1vdmVUZXN0RGVmZXJyYWxGb3JSZWFz
b24oaWRlbnRpZmllciwgcmVhc29uKTsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjOjp1cGRhdGVTY3JvbGxiYXJQYWludGVycygpCit7CisgICAgaWYgKG1f
dmVydGljYWxTY3JvbGxlckltcCB8fCBtX2hvcml6b250YWxTY3JvbGxlckltcCkgeworICAgICAg
ICBhdXRvIHNjcm9sbFBvc2l0aW9uID0gY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CisKKyAgICAg
ICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgICAgICBbQ0FUcmFuc2FjdGlvbiBsb2NrXTsK
KworICAgICAgICBpZiAoW21fdmVydGljYWxTY3JvbGxlckltcCBzaG91bGRVc2VQcmVzZW50YXRp
b25WYWx1ZV0pIHsKKyAgICAgICAgICAgIGZsb2F0IHByZXNlbnRhdGlvblZhbHVlOworICAgICAg
ICAgICAgZmxvYXQgb3ZlcmhhbmdBbW91bnQ7CisgICAgICAgICAgICBTY3JvbGxhYmxlQXJlYTo6
Y29tcHV0ZVNjcm9sbGJhclZhbHVlQW5kT3Zlcmhhbmcoc2Nyb2xsUG9zaXRpb24ueSgpLCB0b3Rh
bENvbnRlbnRzU2l6ZSgpLmhlaWdodCgpLCBzY3JvbGxhYmxlQXJlYVNpemUoKS5oZWlnaHQoKSwg
cHJlc2VudGF0aW9uVmFsdWUsIG92ZXJoYW5nQW1vdW50KTsKKyAgICAgICAgICAgIFttX3ZlcnRp
Y2FsU2Nyb2xsZXJJbXAgc2V0UHJlc2VudGF0aW9uVmFsdWU6cHJlc2VudGF0aW9uVmFsdWVdOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKFttX2hvcml6b250YWxTY3JvbGxlckltcCBzaG91bGRV
c2VQcmVzZW50YXRpb25WYWx1ZV0pIHsKKyAgICAgICAgICAgIGZsb2F0IHByZXNlbnRhdGlvblZh
bHVlOworICAgICAgICAgICAgZmxvYXQgb3ZlcmhhbmdBbW91bnQ7CisgICAgICAgICAgICBTY3Jv
bGxhYmxlQXJlYTo6Y29tcHV0ZVNjcm9sbGJhclZhbHVlQW5kT3Zlcmhhbmcoc2Nyb2xsUG9zaXRp
b24ueCgpLCB0b3RhbENvbnRlbnRzU2l6ZSgpLndpZHRoKCksIHNjcm9sbGFibGVBcmVhU2l6ZSgp
LndpZHRoKCksIHByZXNlbnRhdGlvblZhbHVlLCBvdmVyaGFuZ0Ftb3VudCk7CisgICAgICAgICAg
ICBbbV9ob3Jpem9udGFsU2Nyb2xsZXJJbXAgc2V0UHJlc2VudGF0aW9uVmFsdWU6cHJlc2VudGF0
aW9uVmFsdWVdOworICAgICAgICB9CisKKyAgICAgICAgW0NBVHJhbnNhY3Rpb24gdW5sb2NrXTsK
KyAgICAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKyAgICB9Cit9CisKK3ZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6cmVsZWFzZVJlZmVyZW5jZXNUb1Njcm9s
bGVySW1wc09uVGhlTWFpblRocmVhZCgpCit7CisgICAgaWYgKG1fdmVydGljYWxTY3JvbGxlcklt
cCB8fCBtX2hvcml6b250YWxTY3JvbGxlckltcCkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBp
cyBhIHdvcmthcm91bmQgaW4gcGxhY2UgZm9yIHRoZSB0aW1lIGJlaW5nIHNpbmNlIE5TU2Nyb2xs
ZXJJbXBzIGNhbm5vdCBiZSBkZWFsbG9jYXRlZAorICAgICAgICAvLyBvbiBhIG5vbi1tYWluIHRo
cmVhZC4gcmRhcjovL3Byb2JsZW0vMjQ1MzUwNTUKKyAgICAgICAgV1RGOjpjYWxsT25NYWluVGhy
ZWFkKFt2ZXJ0aWNhbFNjcm9sbGVySW1wID0gV1RGTW92ZShtX3ZlcnRpY2FsU2Nyb2xsZXJJbXAp
LCBob3Jpem9udGFsU2Nyb2xsZXJJbXAgPSBXVEZNb3ZlKG1faG9yaXpvbnRhbFNjcm9sbGVySW1w
KV0geworICAgICAgICB9KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oCmluZGV4
IDQzMjY3OGE0NWNjNGZkNGQwMWI2MDFlMmNkMDI1Njg1ZDRmMzhiZDYuLmQwZDljOWM3YjAxYWYy
OGFiODVhNTE0NDdlMDg4ZWE3MDhjMzhjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZV9oCi0jZGVm
aW5lIFNjcm9sbGJhclRoZW1lQ29tcG9zaXRlX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
U2Nyb2xsYmFyVGhlbWUuaCIKIApAQCAtNzEsNCArNzAsMyBAQCBwdWJsaWM6CiB9OwogCiB9Ci0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKaW5kZXggM2U4ZDJhN2Q5NmYxNTE4ZjdjNmJkNDhlNTY2NTRiY2JlNDkzMTQwMy4u
YWQ3ZGEwY2E4NDRmZmU3MTcyNjE5YjUxOTBkZmFmMzBlNzg4YWNlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTU0NCwy
MCArNTQ0LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRDaGFuZ2VQbGF0Zm9y
bUxheWVyRm9yTGF5ZXIoUmVuZGVyTGF5ZXImIGxheWVyLCBjCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGF1dG8qIGJhY2tpbmcgPSBsYXllci5iYWNraW5nKCk7CisgICAgaWYgKGF1dG8gbm9kZUlE
ID0gYmFja2luZy0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShTY3JvbGxDb29yZGluYXRpb25Sb2xl
OjpTY3JvbGxpbmcpKQorICAgICAgICB1cGRhdGVTY3JvbGxpbmdOb2RlTGF5ZXJzKG5vZGVJRCwg
bGF5ZXIsICpzY3JvbGxpbmdDb29yZGluYXRvcik7CisKICAgICBpZiAoYXV0byBub2RlSUQgPSBi
YWNraW5nLT5zY3JvbGxpbmdOb2RlSURGb3JSb2xlKFNjcm9sbENvb3JkaW5hdGlvblJvbGU6OlZp
ZXdwb3J0Q29uc3RyYWluZWQpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0Tm9k
ZUxheWVycyhub2RlSUQsIHsgYmFja2luZy0+Z3JhcGhpY3NMYXllcigpIH0pOwogCi0gICAgaWYg
KGF1dG8gbm9kZUlEID0gYmFja2luZy0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShTY3JvbGxDb29y
ZGluYXRpb25Sb2xlOjpTY3JvbGxpbmcpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiB3b3VsZCBiZSBu
aWNlIHRvIG5vdCBoYXZlIHRvIHNwZWNpYWwtY2FzZSB0aGUgcm9vdC4KLSAgICAgICAgU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6Ok5vZGVMYXllcnMgbm9kZUxheWVyczsKLSAgICAgICAgaWYgKGxheWVy
LmlzUmVuZGVyVmlld0xheWVyKCkpCi0gICAgICAgICAgICBub2RlTGF5ZXJzID0geyBudWxscHRy
LCBzY3JvbGxDb250YWluZXJMYXllcigpLCBzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSwgZml4ZWRS
b290QmFja2dyb3VuZExheWVyKCksIGNsaXBMYXllcigpLCByb290Q29udGVudHNMYXllcigpIH07
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5vZGVMYXllcnMgPSB7IGxheWVyLmJhY2tpbmco
KS0+Z3JhcGhpY3NMYXllcigpLCBiYWNraW5nLT5zY3JvbGxDb250YWluZXJMYXllcigpLCBiYWNr
aW5nLT5zY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSB9OwotCi0gICAgICAgIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLT5zZXROb2RlTGF5ZXJzKG5vZGVJRCwgbm9kZUxheWVycyk7Ci0gICAgfQotCiAgICAg
aWYgKGF1dG8gbm9kZUlEID0gYmFja2luZy0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShTY3JvbGxD
b29yZGluYXRpb25Sb2xlOjpGcmFtZUhvc3RpbmcpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGlu
YXRvci0+c2V0Tm9kZUxheWVycyhub2RlSUQsIHsgYmFja2luZy0+Z3JhcGhpY3NMYXllcigpIH0p
OwogfQpAQCAtMzk2OSw2ICszOTYxLDIyIEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpwYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KGNvbnN0IFJlbmRlckxheWVyCiAgICAg
cmV0dXJuIHNjcm9sbGFibGVSZWN0OwogfQogCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
dXBkYXRlU2Nyb2xsaW5nTm9kZUxheWVycyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBSZW5kZXJM
YXllciYgbGF5ZXIsIFNjcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikK
K3sKKyAgICBpZiAobGF5ZXIuaXNSZW5kZXJWaWV3TGF5ZXIoKSkgeworICAgICAgICBGcmFtZVZp
ZXcmIGZyYW1lVmlldyA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKTsKKyAgICAgICAgc2Nyb2xs
aW5nQ29vcmRpbmF0b3Iuc2V0Tm9kZUxheWVycyhub2RlSUQsIHsgbnVsbHB0ciwKKyAgICAgICAg
ICAgIHNjcm9sbENvbnRhaW5lckxheWVyKCksIHNjcm9sbGVkQ29udGVudHNMYXllcigpLAorICAg
ICAgICAgICAgZml4ZWRSb290QmFja2dyb3VuZExheWVyKCksIGNsaXBMYXllcigpLCByb290Q29u
dGVudHNMYXllcigpLAorICAgICAgICAgICAgZnJhbWVWaWV3LmxheWVyRm9ySG9yaXpvbnRhbFNj
cm9sbGJhcigpLCBmcmFtZVZpZXcubGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIH0pOworICAg
IH0gZWxzZSB7CisgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLnNldE5vZGVMYXllcnMobm9k
ZUlELCB7IGxheWVyLmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpLAorICAgICAgICAgICAgbGF5
ZXIuYmFja2luZygpLT5zY3JvbGxDb250YWluZXJMYXllcigpLCBsYXllci5iYWNraW5nKCktPnNj
cm9sbGVkQ29udGVudHNMYXllcigpLAorICAgICAgICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciwKKyAgICAgICAgICAgIGxheWVyLmxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpLCBs
YXllci5sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgfSk7CisgICAgfQorfQorCiBTY3JvbGxp
bmdOb2RlSUQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxpbmdOb2RlRm9yU2Ny
b2xsaW5nUm9sZShSZW5kZXJMYXllciYgbGF5ZXIsIFNjcm9sbGluZ1RyZWVTdGF0ZSYgdHJlZVN0
YXRlLCBPcHRpb25TZXQ8U2Nyb2xsaW5nTm9kZUNoYW5nZUZsYWdzPiBjaGFuZ2VzKQogewogICAg
IGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3Io
KTsKQEAgLTM5ODcsNyArMzk5NSw3IEBAIFNjcm9sbGluZ05vZGVJRCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnVwZGF0ZVNjcm9sbGluZ05vZGVGb3JTY3JvbGxpbmdSb2xlKFJlbmRlCiAgICAgICAg
IH0KIAogICAgICAgICBpZiAoY2hhbmdlcyAmIFNjcm9sbGluZ05vZGVDaGFuZ2VGbGFnczo6TGF5
ZXIpCi0gICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0Tm9kZUxheWVycyhuZXdO
b2RlSUQsIHsgbnVsbHB0ciwgc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSwgc2Nyb2xsZWRDb250ZW50
c0xheWVyKCksIGZpeGVkUm9vdEJhY2tncm91bmRMYXllcigpLCBjbGlwTGF5ZXIoKSwgcm9vdENv
bnRlbnRzTGF5ZXIoKSB9KTsKKyAgICAgICAgICAgIHVwZGF0ZVNjcm9sbGluZ05vZGVMYXllcnMo
bmV3Tm9kZUlELCBsYXllciwgKnNjcm9sbGluZ0Nvb3JkaW5hdG9yKTsKIAogICAgICAgICBpZiAo
Y2hhbmdlcyAmIFNjcm9sbGluZ05vZGVDaGFuZ2VGbGFnczo6TGF5ZXJHZW9tZXRyeSkgewogICAg
ICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldFJlY3RSZWxhdGl2ZVRvUGFyZW50Tm9k
ZShuZXdOb2RlSUQsIHJvb3RQYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KCkpOwpAQCAtNDAw
Miw3ICs0MDEwLDcgQEAgU2Nyb2xsaW5nTm9kZUlEIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlU2Nyb2xsaW5nTm9kZUZvclNjcm9sbGluZ1JvbGUoUmVuZGUKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgaWYgKGNoYW5nZXMgJiBTY3JvbGxpbmdOb2RlQ2hhbmdlRmxhZ3M6OkxheWVy
KQotICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldE5vZGVMYXllcnMobmV3Tm9k
ZUlELCB7IGxheWVyLmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpLCBsYXllci5iYWNraW5nKCkt
PnNjcm9sbENvbnRhaW5lckxheWVyKCksIGxheWVyLmJhY2tpbmcoKS0+c2Nyb2xsZWRDb250ZW50
c0xheWVyKCkgfSk7CisgICAgICAgICAgICB1cGRhdGVTY3JvbGxpbmdOb2RlTGF5ZXJzKG5ld05v
ZGVJRCwgbGF5ZXIsICpzY3JvbGxpbmdDb29yZGluYXRvcik7CiAKICAgICAgICAgaWYgKGNoYW5n
ZXMgJiBTY3JvbGxpbmdOb2RlQ2hhbmdlRmxhZ3M6OkxheWVyR2VvbWV0cnkgJiYgdHJlZVN0YXRl
LnBhcmVudE5vZGVJRCkgewogICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIHNjcm9sbGluZ0FuY2Vz
dG9yTGF5ZXIgPSBtX3Njcm9sbGluZ05vZGVUb0xheWVyTWFwLmdldCh0cmVlU3RhdGUucGFyZW50
Tm9kZUlELnZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCmluZGV4IDQ5M2UwNzg4MDAwZjA2YWQ3MDkwNTUxMGRlZWU4NmYzYWQy
OTUwYmIuLmVjN2MzODNlYjY3NzdhNTA5OWU0MjhlMjgwMzUwMDAyZGEzNjdlNmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTQ5
Miw2ICs0OTIsOCBAQCBwcml2YXRlOgogICAgIFNjcm9sbGluZ05vZGVJRCB1cGRhdGVTY3JvbGxp
bmdOb2RlRm9yU2Nyb2xsaW5nUm9sZShSZW5kZXJMYXllciYsIHN0cnVjdCBTY3JvbGxpbmdUcmVl
U3RhdGUmLCBPcHRpb25TZXQ8U2Nyb2xsaW5nTm9kZUNoYW5nZUZsYWdzPik7CiAgICAgU2Nyb2xs
aW5nTm9kZUlEIHVwZGF0ZVNjcm9sbGluZ05vZGVGb3JGcmFtZUhvc3RpbmdSb2xlKFJlbmRlckxh
eWVyJiwgc3RydWN0IFNjcm9sbGluZ1RyZWVTdGF0ZSYsIE9wdGlvblNldDxTY3JvbGxpbmdOb2Rl
Q2hhbmdlRmxhZ3M+KTsKIAorICAgIHZvaWQgdXBkYXRlU2Nyb2xsaW5nTm9kZUxheWVycyhTY3Jv
bGxpbmdOb2RlSUQsIFJlbmRlckxheWVyJiwgU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKKwogICAg
IHZvaWQgZGV0YWNoU2Nyb2xsQ29vcmRpbmF0ZWRMYXllcihSZW5kZXJMYXllciYsIE9wdGlvblNl
dDxTY3JvbGxDb29yZGluYXRpb25Sb2xlPik7CiAgICAgdm9pZCBkZXRhY2hTY3JvbGxDb29yZGlu
YXRlZExheWVyV2l0aFJvbGUoUmVuZGVyTGF5ZXImLCBTY3JvbGxpbmdDb29yZGluYXRvciYsIFNj
cm9sbENvb3JkaW5hdGlvblJvbGUpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IDBiMmZhZjFmMzRlMTdiNDdlNTU1
ZGQwYjllMGMxNTU1YzQ5NjkyZGUuLjg0ODFmYWUyZWY0NGJjMDQxZDhiMzU1NDk1ZjE4MWY0ZDNj
NTc2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFu
c2FjdGlvbi5jcHAKQEAgLTE0Myw4ICsxNDMsMTUgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdAog
CiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19j
YXN0PEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4obm9kZS5zY3JvbGxDb250YWluZXJM
YXllcigpKTsKKwogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikpCiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNjcm9s
bGVkQ29udGVudHNMYXllcigpKTsKKworICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShT
Y3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbFNjcm9sbGJhckxheWVy
KSkKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9y
bUxheWVySUQ+KG5vZGUuaG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCkpOworCisgICAgaWYgKG5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpW
ZXJ0aWNhbFNjcm9sbGJhckxheWVyKSkKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxH
cmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUudmVydGljYWxTY3JvbGxiYXJMYXll
cigpKTsKIH0KIAogdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNjcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlJiBub2RlKQpAQCAtMTczLDEyICsxODAsNiBAQCB2b2lkIEFyZ3VtZW50
Q29kZXI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgYwogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Q29udGVudFNoYWRvd0xheWVyKSkKICAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuY29u
dGVudFNoYWRvd0xheWVyKCkpOwogCi0gICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNj
cm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbFNjcm9sbGJhckxheWVyKSkK
LSAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxh
eWVySUQ+KG5vZGUudmVydGljYWxTY3JvbGxiYXJMYXllcigpKTsKLQotICAgIGlmIChub2RlLmhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SG9yaXpv
bnRhbFNjcm9sbGJhckxheWVyKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuaG9yaXpvbnRhbFNjcm9sbGJhckxheWVy
KCkpOwotCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlOjpSb290Q29udGVudHNMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwg
c3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnJvb3RDb250
ZW50c0xheWVyKCkpOwogfQpAQCAtMjU2LDYgKzI1NywyMCBAQCBib29sIEFyZ3VtZW50Q29kZXI8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNj
cm9sbAogICAgICAgICBub2RlLnNldFNjcm9sbGVkQ29udGVudHNMYXllcihsYXllcklEKTsKICAg
ICB9CiAKKyAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFt
ZVNjcm9sbGluZ05vZGU6Okhvcml6b250YWxTY3JvbGxiYXJMYXllcikpIHsKKyAgICAgICAgR3Jh
cGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQ7CisgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUobGF5ZXJJRCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG5v
ZGUuc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKGxheWVySUQpOworICAgIH0KKworICAgIGlm
IChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9k
ZTo6VmVydGljYWxTY3JvbGxiYXJMYXllcikpIHsKKyAgICAgICAgR3JhcGhpY3NMYXllcjo6UGxh
dGZvcm1MYXllcklEIGxheWVySUQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGF5ZXJJ
RCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG5vZGUuc2V0VmVydGljYWxT
Y3JvbGxiYXJMYXllcihsYXllcklEKTsKKyAgICB9CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApA
QCAtMjk4LDIwICszMTMsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGcmFt
ZVNjcm9sbGluZ05vZGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUwogICAgICAgICBub2Rl
LnNldENvbnRlbnRTaGFkb3dMYXllcihsYXllcklEKTsKICAgICB9CiAKLSAgICBpZiAobm9kZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OlZlcnRp
Y2FsU2Nyb2xsYmFyTGF5ZXIpKSB7Ci0gICAgICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5
ZXJJRCBsYXllcklEOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxheWVySUQpKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBub2RlLnNldFZlcnRpY2FsU2Nyb2xsYmFy
TGF5ZXIobGF5ZXJJRCk7Ci0gICAgfQotCi0gICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsU2Nyb2xsYmFyTGF5
ZXIpKSB7Ci0gICAgICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEOwot
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxheWVySUQpKQotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICBub2RlLnNldEhvcml6b250YWxTY3JvbGxiYXJMYXllcihsYXllcklE
KTsKLSAgICB9Ci0KICAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3Rh
dGVGcmFtZVNjcm9sbGluZ05vZGU6OlJvb3RDb250ZW50c0xheWVyKSkgewogICAgICAgICBHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRDsKICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShsYXllcklEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBjNDNlNGU1MDkwYmVk
YzcxYzlkZTYzZjg2N2Y3NDBhOTQxZmQwZjEyLi4yNGQ0YmVhMGQ5NjEyMWE1MWE1NDQ1ZGIwZmFi
ZjYxNzY4ZGViYzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00NTYsNiArNDU2LDcgQEAg
VUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQogVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsZXJNYWMubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvbWFjL1Njcm9sbGVyUGFpck1hYy5tbQogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9t
YWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKK1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVS
ZW1vdGVNYWMuY3BwCiAKIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVy
VHJlZUhvc3RJT1MubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCAzMzY4MjQ2YWQyNzVhZTdhYzNiODZlOWQ0YTdh
MjQ1NzZjNGJiNmI4Li4xMWY3ODUwMmZlOTlkZDVkOGFkZjZlMTlmZDlkNWU5YTQ4OThkOGY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBA
IC0xNDYsNiArMTQ2LDEyIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
Y29ubmVjdFN0YXRlTm9kZUxheWVycyhTY3JvbGxpbmdTdGF0ZVRyZWUmCiAKICAgICAgICAgICAg
IGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6U2Nyb2xsZWRDb250ZW50c0xheWVyKSkKICAgICAgICAgICAgICAgICBz
Y3JvbGxpbmdTdGF0ZU5vZGUuc2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKGxheWVyVHJlZUhvc3Qu
bGF5ZXJGb3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsZWRDb250ZW50c0xheWVyKCkpKTsK
KworICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHko
U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIp
KQorICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRWZXJ0aWNhbFNjcm9sbGJh
ckxheWVyKGxheWVyVHJlZUhvc3QubGF5ZXJGb3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUudmVydGlj
YWxTY3JvbGxiYXJMYXllcigpKSk7CisKKyAgICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpI
b3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIpKQorICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRl
Tm9kZS5zZXRIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIobGF5ZXJUcmVlSG9zdC5sYXllckZvcklE
KHNjcm9sbGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoKSkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBTY3JvbGxpbmdOb2RlVHlwZTo6
RnJhbWVIb3N0aW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGIwMTYzMThl
ZDkzYzg2MzliMTY1YTcwYjM0OTZlY2Q3NDc4NWQzZmQuLmIwZWQ3OTBhMTc0ZjkwM2Q4ZjhiMmQ2
YTFhZDg3OGNjMzQ4MTM5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTM5
LDYgKzM5LDcgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
SU9TLmgiCiAjZWxzZQogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVNYWMuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
UmVtb3RlTWFjLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMjUsOCArMTI2
LDcgQEAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVT
Y3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2QKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6Y3Jl
YXRlKCp0aGlzLCBub2RlSUQpOwogI2Vsc2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZVJlbW90ZU1hYzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogI2VuZGlmCiAgICAg
Y2FzZSBTY3JvbGxpbmdOb2RlVHlwZTo6Rml4ZWQ6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdU
cmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNw
cAppbmRleCA2NDQ5NTJkYWZjZjI2OGQ5ZDE5MjE3YzczM2VlODUyMzliZDM2NDgyLi4zMmExZTMz
YWE4NTY3YzBiNjE2MmUwNjc4M2NmMzc2Y2Y2MTkwN2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5j
cHAKQEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFMKICAgICBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0
YXRlTm9kZSk7CiAgICAgY29uc3QgYXV0byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8
U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CiAKKyAgICAvLyBG
SVhNRTogUHVzaCB0byBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjPwogICAg
IGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
RnJhbWVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbFNjcm9sbGJhckxheWVyKSkKICAgICAgICAgbV9z
Y3JvbGxlclBhaXItPnZlcnRpY2FsU2Nyb2xsZXIoKS5zZXRIb3N0TGF5ZXIoc2Nyb2xsaW5nU3Rh
dGVOb2RlLnZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIoKSk7CiAKQEAgLTY3LDcgKzY4LDggQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpyZXBvc2l0aW9uUmVs
YXRlZExheWVycygpCiB7CiAgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6
cmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKTsKIAotICAgIG1fc2Nyb2xsZXJQYWlyLT51cGRhdGVW
YWx1ZXMoKTsKKyAgICBpZiAobV9zY3JvbGxlclBhaXIpCisgICAgICAgIG1fc2Nyb2xsZXJQYWly
LT51cGRhdGVWYWx1ZXMoKTsKIH0KIAogU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCkBAIC03OSw2ICs4MSw4IEBAIFNjcm9sbGluZ0V2
ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWM6OmhhbmRs
ZVdoZWVsRXZlbnQoCiAKIGJvb2wgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZU1hYzo6aGFuZGxlTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZl
bnQpCiB7CisgICAgaWYgKCFtX3Njcm9sbGVyUGFpcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIHJldHVybiBtX3Njcm9sbGVyUGFpci0+aGFuZGxlTW91c2VFdmVudChtb3VzZUV2ZW50KTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg5NjBjZWMzMGU0
MzMxOWFhMDI3ZDlhMjFmY2VmYzgzNzYzNTA0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlUmVtb3RlTWFjLmgiCisKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQ
TEFURk9STShNQUMpCisKKyNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdUcmVlLmgiCisjaW5jbHVk
ZSAiU2Nyb2xsZXJQYWlyTWFjLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK1JlZjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVt
b3RlTWFjPiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpjcmVh
dGUoU2Nyb2xsaW5nVHJlZSYgdHJlZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVt
b3RlTWFjKHRyZWUsIG5vZGVJRCkpOworfQorCitTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlUmVtb3RlTWFjOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3Rl
TWFjKFNjcm9sbGluZ1RyZWUmIHRyZWUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCisgICAgOiBT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjKHRyZWUsIG5vZGVJRCkKKyAgICAs
IG1fc2Nyb2xsZXJQYWlyKHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsZXJQYWlyTWFjPigqdGhpcykp
Cit7Cit9CisKK1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWM6On5T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjKCkKK3sKK30KKwordm9p
ZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpjb21taXRTdGF0
ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQorewor
ICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmNvbW1pdFN0YXRlQmVm
b3JlQ2hpbGRyZW4oc3RhdGVOb2RlKTsKKyAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5v
ZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT4oc3RhdGVO
b2RlKTsKKworICAgIC8vIEZJWE1FOiBQdXNoIHRvIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVNYWM/CisgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVy
dHkoU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OlZlcnRpY2FsU2Nyb2xsYmFy
TGF5ZXIpKQorICAgICAgICBtX3Njcm9sbGVyUGFpci0+dmVydGljYWxTY3JvbGxlcigpLnNldEhv
c3RMYXllcihzY3JvbGxpbmdTdGF0ZU5vZGUudmVydGljYWxTY3JvbGxiYXJMYXllcigpKTsKKwor
ICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIpKQorICAg
ICAgICBtX3Njcm9sbGVyUGFpci0+aG9yaXpvbnRhbFNjcm9sbGVyKCkuc2V0SG9zdExheWVyKHNj
cm9sbGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoKSk7CisKKyAgICBtX3Nj
cm9sbGVyUGFpci0+dXBkYXRlVmFsdWVzKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6cmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKQorewor
ICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OnJlcG9zaXRpb25SZWxh
dGVkTGF5ZXJzKCk7CisKKyAgICBtX3Njcm9sbGVyUGFpci0+dXBkYXRlVmFsdWVzKCk7Cit9CisK
K1Njcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVS
ZW1vdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50KQoreworICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6Omhh
bmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CisKKyAgICByZXR1cm4gbV9zY3JvbGxlclBhaXIt
PmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCkgPyBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlk
SGFuZGxlRXZlbnQgOiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7Cit9
CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFu
ZGxlTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCit7Cisg
ICAgcmV0dXJuIG1fc2Nyb2xsZXJQYWlyLT5oYW5kbGVNb3VzZUV2ZW50KG1vdXNlRXZlbnQpOwor
fQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYjQ3YmE5MWRlZTQxMTFlYWQzZjc2YjhiYzEwYjkwNTlkMTBhNTNl
Mi4uM2FhZjE5MjdiZTE3OTE5NWIwM2ZmMDg1Y2Y5YmUzY2FiN2ViYzhkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODg4LDYgKzE4
ODgsOCBAQAogCQkwRjVFMjAwMjE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNzA3Qzc3MUEx
RkVFODMwMERBN0E0NSAvKiBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXllclRy
ZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGNzA3Qzc5MUExRkVFQTMwMERBN0E0NSAvKiBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQ
ZXJmb3JtYW5jZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
TGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGNzNCNzY3MjIyQjM4QzYwMDgwNTMxNiAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjczQjc2ODIyMkIzOEM2MDA4MDUzMTYgLyogU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGODUwRkU0MUVEN0MzOUYwMEZCNzdBNyAvKiBXZWJQZXJmb3JtYW5jZUxvZ2dp
bmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUGVy
Zm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY4NTBGRTUxRUQ3QzM5RjAwRkI3N0E3IC8qIFdlYlBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQZXJmb3JtYW5jZUxvZ2dpbmdD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5MzFDMUExOEM1NzExOTAw
REJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZUlPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODc2MSw2ICs4NzYzLDgg
QEAKIAkJCQlFNDA0OTA3MjIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLm1tICov
LAogCQkJCUU0MDQ5MDcxMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlTWFjLmNwcCAqLywKIAkJCQlFNDA0OTA3MzIxREU2NUY3MDAzN0YwREIg
LyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oICovLAorCQkJCTBG
NzNCNzY3MjIyQjM4QzYwMDgwNTMxNiAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlUmVtb3RlTWFjLmNwcCAqLywKKwkJCQkwRjczQjc2ODIyMkIzOEM2MDA4MDUzMTYgLyogU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oICovLAogCQkJKTsKIAkJ
CXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTA3OTIsNyArMTA3
OTYsNiBAQAogCQkJCTJEOTEzNDQ0MjEyQ0Y5RjAwMDEyOEFGRCAvKiBOZXRzY2FwZVBsdWdpbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc5NjIxMkI2QURBMDBGNDkzRkQgLyogTmV0c2Nh
cGVQbHVnaW5Nb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDUyMTJDRjlGMDAw
MTI4QUZEIC8qIE5ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZC
RDA1ODY2MjIwQ0U4QzIwMDBCRUQ1QyAvKiBOZXR3b3JrQWRDbGlja0F0dHJpYnV0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxREQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MkYwNjBFMTE2NTQzMTg1MDBGMzI4MUIgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4
NTAwRjMyODNGIC8qIE5ldHdvcmtNRE5TUmVnaXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363470</attachid>
            <date>2019-03-03 16:38:13 -0800</date>
            <delta_ts>2019-03-03 17:05:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195258-20190303163811.patch</filename>
            <type>text/plain</type>
            <size>80231</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGI0NTBkMjFiNDBlYWY0
NTY2ZTIxYjQ4ZGY2NjIyMTIzOGI2MGVmYS4uODQwYzI0ZDk2YWVkMWU0ZjM4OTNlYzk5NWJkMGQy
NjIzMDA4YmQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDE5LTAzLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUg
Y29kZSBiZXR3ZWVuIG92ZXJmbG93IGFuZCBmcmFtZSBzY3JvbGxpbmcgbm9kZXMsIGZpeGluZyBv
dmVyZmxvdyBzY3JvbGxiYXIgZGlzcGxheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtYW5hZ2VtZW50IG9mIHNjcm9sbGJh
ciBsYXllcnMgYW5kIHNjcm9sbGJhciBwYWludGVycyAoIk5TU2Nyb2xsZXJJbXAiKSBkb3duIHRv
CisgICAgICAgIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSB0byBiZSBzaGFyZWQgYmV0d2Vl
biBmcmFtZSBhbmQgb3ZlcmZsb3cgbm9kZXMsIGFsbG93aW5nIGZvcgorICAgICAgICBzY3JvbGxp
bmcgdGhyZWFkIHVwZGF0ZXMgb2Ygb3ZlcmZsb3cgc2Nyb2xsYmFycy4gSXQgYWxzbyBtb3ZlcyBz
b21lIHNjcm9sbGluZyB0cmVlLXNpZGUgY29kZQorICAgICAgICB0byBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlTWFjIHRvIGJlIHNoYXJlZCBiZXR3ZWVuIHRoZSAidHJlZSIgbm9k
ZXMgZm9yIG92ZXJmbG93IGFuZCBmcmFtZXMuCisKKyAgICAgICAgTGF5ZXJzIGZvciBzY3JvbGxi
YXJzIGFyZSBnaXZlbiB0byBzY3JvbGxpbmcgc3RhdGUgbm9kZXMgdmlhIHNldE5vZGVMYXllcnMo
KSBub3csIGFuZAorICAgICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbGlu
Z05vZGVMYXllcnMoKSBpcyBhZGRlZCB0byBwcm92aWRlIGEgYm90dGxlbmVjayB0byBjYWxsIHRo
YXQuCisgICAgICAgIEF0IHNvbWUgcG9pbnQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Ny
b2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHNob3VsZCBiZSByZWxpZXZlZAor
ICAgICAgICBvZiB0aGUgcmVzcG9uc2liaWxpdHkgb2YgcHVzaGluZyBzY3JvbGxiYXIgbGF5ZXJz
IChidXQgdGhlIHNjcm9sbGluZyBzdGF0ZSB0cmVlIG5lZWRzIHRvIGhvbGQKKyAgICAgICAgcmVm
ZXJlbmNlcyB0byBHcmFwaGljc0xheWVycyBiZWZvcmUgdGhhdCBiZWNvbWVzIHNhZmUpLgorICAg
ICAgICAKKyAgICAgICAgVGhlIGFjdHVhbCBmaXggdGhhdCBhbGxvd3Mgb3ZlcmZsb3cgc2Nyb2xs
YmFycyB0byBzaG93IGlzIHRoZSBjaGFuZ2UgaW4KKyAgICAgICAgQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvcjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHRoYXQgY2Fs
bHMgc2Nyb2xsYWJsZUFyZWEuKlNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCkKKyAgICAgICAgZm9y
IGFsbCBTY3JvbGxhYmxlQXJlYXMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBDQUxheWVyIGlzIHB1
c2hlZCBvbnRvIHRoZSBOU1Njcm9sbGVySW1wLgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxhYmxlQXJlYVNjcm9s
bGJhckxheWVyRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OnNldE5vZGVMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6c2V0RnJhbWVTY3JvbGxpbmdOb2RlU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsaW5nTm9kZVNjcm9sbGFi
bGVBcmVhR2VvbWV0cnkpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRBbGxQcm9wZXJ0
aWVzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xs
aW5nTm9kZTo6c2V0VmVydGljYWxTY3JvbGxiYXJMYXllcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0SG9yaXpvbnRhbFNj
cm9sbGJhckxheWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRl
RnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyk6IERlbGV0
ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRBbGxQcm9wZXJ0aWVzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEhvcml6b250YWxTY3Jv
bGxiYXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyk6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6Omhvcml6b250YWxT
Y3JvbGxiYXJMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OnZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjp2ZXJ0aWNhbFNjcm9sbGVySW1wIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6aG9y
aXpvbnRhbFNjcm9sbGVySW1wIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldE9yQ2xl
YXJMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVX
aGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlTWFjLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNG
cm9tU2Nyb2xsYmFycyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmNvbW1pdFN0YXRlQmVmb3JlQ2hp
bGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpyZXBvc2l0aW9uUmVsYXRlZExheWVycyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjp+U2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpyZWxlYXNlUmVmZXJlbmNlc1RvU2Ny
b2xsZXJJbXBzT25UaGVNYWluVGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6
OnJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6
flNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6dXBkYXRlRnJvbVN0YXRl
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnVwZGF0ZVNjcm9sbGJhclBhaW50ZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnJl
bGVhc2VSZWZlcmVuY2VzVG9TY3JvbGxlckltcHNPblRoZU1haW5UaHJlYWQpOgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmRpZENoYW5nZVBsYXRmb3JtTGF5ZXJGb3JMYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbGluZ05vZGVMYXllcnMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxp
bmdOb2RlRm9yU2Nyb2xsaW5nUm9sZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oOgorCiAyMDE5LTAzLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFNoYXJlIG1vcmUgY29kZSBmb3IgdXBkYXRpbmcgdGhlIHN0
YXRlIG9mIGZyYW1lIHNjcm9sbGluZyBub2RlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxNjc5ZDliZGYyZTIwODkz
ZTkyYzE4ZmYzOWE3MjM5MjNkY2NmNGRkLi4xMjkyZmZmMjI5OWU3YWZlZDc3YWQ5YWVjZDlmZWE5
OGE3NmZkZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTAzLTAzICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUgY29k
ZSBiZXR3ZWVuIG92ZXJmbG93IGFuZCBmcmFtZSBzY3JvbGxpbmcgbm9kZXMsIGZpeGluZyBvdmVy
ZmxvdyBzY3JvbGxiYXIgZGlzcGxheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk1MjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtYW5hZ2VtZW50IG9mIHNjcm9sbGJhciBs
YXllcnMgYW5kIHNjcm9sbGJhciBwYWludGVycyAoIk5TU2Nyb2xsZXJJbXAiKSBkb3duIHRvCisg
ICAgICAgIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSB0byBiZSBzaGFyZWQgYmV0d2VlbiBm
cmFtZSBhbmQgb3ZlcmZsb3cgbm9kZXMsIGFsbG93aW5nIGZvcgorICAgICAgICBzY3JvbGxpbmcg
dGhyZWFkIHVwZGF0ZXMgb2Ygb3ZlcmZsb3cgc2Nyb2xsYmFycy4gSXQgYWxzbyBtb3ZlcyBzb21l
IHNjcm9sbGluZyB0cmVlLXNpZGUgY29kZQorICAgICAgICB0byBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjIHRvIGJlIHNoYXJlZCBiZXR3ZWVuIHRoZSAidHJlZSIgbm9kZXMg
Zm9yIG92ZXJmbG93IGFuZCBmcmFtZXMuCisKKyAgICAgICAgTGF5ZXJzIGZvciBzY3JvbGxiYXJz
IGFyZSBnaXZlbiB0byBzY3JvbGxpbmcgc3RhdGUgbm9kZXMgdmlhIHNldE5vZGVMYXllcnMoKSBu
b3csIGFuZAorICAgICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbGluZ05v
ZGVMYXllcnMoKSBpcyBhZGRlZCB0byBwcm92aWRlIGEgYm90dGxlbmVjayB0byBjYWxsIHRoYXQu
CisgICAgICAgIEF0IHNvbWUgcG9pbnQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xs
YWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHNob3VsZCBiZSByZWxpZXZlZAorICAg
ICAgICBvZiB0aGUgcmVzcG9uc2liaWxpdHkgb2YgcHVzaGluZyBzY3JvbGxiYXIgbGF5ZXJzIChi
dXQgdGhlIHNjcm9sbGluZyBzdGF0ZSB0cmVlIG5lZWRzIHRvIGhvbGQKKyAgICAgICAgcmVmZXJl
bmNlcyB0byBHcmFwaGljc0xheWVycyBiZWZvcmUgdGhhdCBiZWNvbWVzIHNhZmUpLgorICAgICAg
ICAKKyAgICAgICAgVGhlIGFjdHVhbCBmaXggdGhhdCBhbGxvd3Mgb3ZlcmZsb3cgc2Nyb2xsYmFy
cyB0byBzaG93IGlzIHRoZSBjaGFuZ2UgaW4KKyAgICAgICAgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHRoYXQgY2FsbHMg
c2Nyb2xsYWJsZUFyZWEuKlNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCkKKyAgICAgICAgZm9yIGFs
bCBTY3JvbGxhYmxlQXJlYXMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBDQUxheWVyIGlzIHB1c2hl
ZCBvbnRvIHRoZSBOU1Njcm9sbGVySW1wLgorCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAg
KEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKToKKyAg
ICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+Ojpl
bmNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU+OjpkZWNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZUZyYW1l
U2Nyb2xsaW5nTm9kZT46OmRlY29kZSk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5Ojpjb25uZWN0U3RhdGVOb2RlTGF5ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVNYWM6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4pOgorICAgICAg
ICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpyZXBv
c2l0aW9uUmVsYXRlZExheWVycyk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVSZW1vdGVNYWM6OmhhbmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVSZW1vdGVNYWMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVN
YWMuY3BwLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlUmVtb3RlTWFjOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlUmVtb3RlTWFjKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6flNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVSZW1vdGVNYWMpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlUmVtb3RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAgICAgICAg
KFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6cmVw
b3NpdGlvblJlbGF0ZWRMYXllcnMpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFu
ZGxlTW91c2VFdmVudCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisKIDIwMTktMDMtMDMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtBcHBsZSBQYXldIFVudGFuZ2xlIFdlYlBhZ2VQcm94eSBhbmQgV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGZhZTMwZjgzNTUyNWY2ZjFl
MTMyNDMyNDhlMzRkMzVkY2RkMjcwMzguLjU3ZTJkZjg1NjFmODhiODAzOTI3YjBlZWM4YmNmMGNi
YWE0YjA1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTUyLDcgKzE1Miw3IEBAIHBh
Z2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLm1tCiAKIHBhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQogcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5tbQotcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCitwYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlTWFjLm1tCiBwYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVGhyZWFkTWFjLm1tCiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYy5tbQogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0YzAzY2YwODNiYmRjYzRjYWVjYWFmYzMzZDJh
MGM0ZDQ2ZDE5YTFkLi40YTYyNGY5YWQwZGVjNjBlZjgwNTBkZDYyMzM5MmM3NzEyYzM4NWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zNTQsNiArMzU0LDcgQEAKIAkJMEY2MEYzMkIxREZCQjEwNzAwNDE2RDZDIC8qIENvbW1v
blZNLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYw
RjMyQTFERkJCMTA0MDA0MTZENkMgLyogQ29tbW9uVk0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYzODNERTE4NjE1QjI5MDAzRTVEQjUgLyog
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjYzODNEQzE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZBMTJCQzFBMDA5MjM3
MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjczQjc2OTIyMkIzQTBDMDA4MDUzMTYgLyogU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDMDUxNkEyMTlCNUVCRTAwMzFDMzlFIC8qIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdEMDczMzE4ODRDNTZDMDBCNEFGODYg
LyogUGxhdGZvcm1UZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3Mjg0N0UyMTZFQkM1QjAwMDQzQ0ZBNCAvKiBQbGF0Zm9ybVRleHRUcmFj
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
ODUwRkUzMUVEN0MxODMwMEZCNzdBNyAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODUwRkUyMUVEN0Mx
ODMwMEZCNzdBNyAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3MTY3MDFDODY5RDgzMDA0RkYw
REUgLyogTGVuZ3RoUG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGODcxNjZFMUM4NjlEODMwMDRGRjBERSAvKiBMZW5ndGhQb2ludC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01Nzg1LDYgKzU3
ODYsNyBAQAogCQkwRjZBMTJCQjFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVidWdQYWdlT3Zlcmxh
eXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjZBMTJCQzFBMDA5MjM3MDBD
NkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRGVidWdQYWdlT3ZlcmxheXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY3MDQ5NUQyMTFCNTI0MjAwMzY5OTY4IC8qIEFjdGl2aXR5U3RhdGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQWN0aXZpdHlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNzNCNzY1MjIyQjMyN0YwMDgwNTMxNiAvKiBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGVN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGVN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0RGMTQ3MUUyQkYxQTYwMDk1
OTUxQiAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkNvcmVKU0NsaWVudERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjg1MEZFMjFFRDdDMTgzMDBGQjc3QTcgLyogUGVyZm9ybWFuY2VMb2dnaW5n
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9n
Z2luZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3MTY2RDFDODY5
RDgzMDA0RkYwREUgLyogTGVuZ3RoUG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTGVuZ3RoUG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTgwNCw3ICs1ODA2LDYgQEAKIAkJMEZBMDg1MkIxRTZGQjU1QTAwOTc1RkREIC8qIENTU1By
b3BlcnRpZXMuanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuanNvbjsgcGF0aCA9IENTU1Byb3BlcnRpZXMuanNvbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZBMjRENzcxNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5
ZXJVcGRhdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBo
aWNzTGF5ZXJVcGRhdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZBMjRE
NzgxNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGQTg4RUJDMTZBOEQxQkQwMEY5OTk4NCAvKiBTY3JvbGxpbmdT
dGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkI2MjUyQzE4REUxQjE1MDBBMDdDMDUgLyogR2Vv
bWV0cnlVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R2VvbWV0cnlVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkI2
MjUyRDE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbWV0cnlVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEZCODg5MEMxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9sbGluZ1N0YXRl
U3RpY2t5Tm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3Jv
bGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTY5ODUsNyArMTY5ODYsNyBAQAogCQkJCTFBRjYyRUUzMTREQTIyQTcwMDQxNTU2QyAvKiBTY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5tbSAqLywKIAkJCQk1MTdERUVFNzFERTk0QjA4MDBCOTE2NDQg
LyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmggKi8sCiAJCQkJNTE3REVFRTMxREU5
NEFEQzAwQjkxNjQ0IC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5tbSAqLywKLQkJ
CQkwRkE4OEVCQzE2QThEMUJEMDBGOTk5ODQgLyogU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGVNYWMubW0gKi8sCisJCQkJMEY3M0I3NjUyMjJCMzI3RjAwODA1MzE2IC8qIFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbSAqLywKIAkJCQkxQUY2MkYyMzE0REFGRTkxMDA0MTU1
NkMgLyogU2Nyb2xsaW5nVGhyZWFkTWFjLm1tICovLAogCQkJCTkzQzRBNDEzMTYyOURGNUEwMEMz
RUI2RSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmggKi8sCiAJCQkJOTND
NEE0MTQxNjI5REY1QTAwQzNFQjZFIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVN
YWMubW0gKi8sCkBAIC0zMTUwMyw2ICszMTUwNCw3IEBACiAJCQkJMEZFNTgwNjQxOTMyN0E2MjAw
REUzMkVCIC8qIFNjcm9sbGluZ1RyZWVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUFEREU0
MTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFQTNFODAxOTFCMzE2OTAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNzNCNzY5MjIyQjNBMEMwMDgwNTMxNiAv
KiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzkxQTk5RDE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE2RDVBOTlEMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjM3
RjA4NTIyMDJCRjk4MDBBODlDMEIgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDE5NzcxZTcy
YTkwNGYzODYwYzg1N2YwMTVlMGRkZTM3NmYyYWRiYzQuLmU4ZjFlNWZkYjQ0M2VlYTQ3NGUwMDhj
MzQzMTg2OGQyOTI3NzQxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC00NTYsMjAgKzQ1
NiwxOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbGFibGVBcmVhU2Ny
b2xsYmFyTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJsZQogICAgIEFTU0VSVChtX3BhZ2UpOwogCiAg
ICAgYXV0byogbm9kZSA9IG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zdGF0ZU5vZGVGb3JJRChzY3Jv
bGxhYmxlQXJlYS5zY3JvbGxpbmdOb2RlSUQoKSk7Ci0gICAgaWYgKGlzPFNjcm9sbGluZ1N0YXRl
RnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKSkgewotICAgICAgICBhdXRvJiBzY3JvbGxpbmdOb2Rl
ID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KCpub2RlKTsKKyAg
ICBpZiAoaXM8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihub2RlKSkgeworICAgICAgICBh
dXRvJiBzY3JvbGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
Pigqbm9kZSk7CiAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBWZXJ0aWNhbFNjcm9sbGJhcikK
ICAgICAgICAgICAgIHNjcm9sbGluZ05vZGUuc2V0VmVydGljYWxTY3JvbGxiYXJMYXllcihzY3Jv
bGxhYmxlQXJlYS5sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBzY3JvbGxpbmdOb2RlLnNldEhvcml6b250YWxTY3JvbGxiYXJMYXllcihzY3Jv
bGxhYmxlQXJlYS5sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSk7CiAgICAgfQogCi0gICAg
aWYgKCZzY3JvbGxhYmxlQXJlYSA9PSBtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKSkgewotICAg
ICAgICBpZiAob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpCi0gICAgICAgICAgICBz
Y3JvbGxhYmxlQXJlYS52ZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxTY3JvbGxiYXJMYXll
ckRpZENoYW5nZSgpOwotICAgIH0KKyAgICBpZiAob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3Jv
bGxiYXIpCisgICAgICAgIHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXJEaWRD
aGFuZ2UoKTsKKyAgICBlbHNlCisgICAgICAgIHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxTY3Jv
bGxiYXJMYXllckRpZENoYW5nZSgpOwogfQogCiBTY3JvbGxpbmdOb2RlSUQgQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Ny
b2xsaW5nTm9kZUlEIG5ld05vZGVJRCkKQEAgLTU2Nyw2ICs1NjUsOCBAQCB2b2lkIEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNldE5vZGVMYXllcnMoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwg
Y29uc3QgTm9kZQogICAgICAgICBhdXRvJiBzY3JvbGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlPigqbm9kZSk7CiAgICAgICAgIHNjcm9sbGluZ05vZGUuc2V0
U2Nyb2xsQ29udGFpbmVyTGF5ZXIobm9kZUxheWVycy5zY3JvbGxDb250YWluZXJMYXllcik7CiAg
ICAgICAgIHNjcm9sbGluZ05vZGUuc2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKG5vZGVMYXllcnMu
c2Nyb2xsZWRDb250ZW50c0xheWVyKTsKKyAgICAgICAgc2Nyb2xsaW5nTm9kZS5zZXRIb3Jpem9u
dGFsU2Nyb2xsYmFyTGF5ZXIobm9kZUxheWVycy5ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIpOwor
ICAgICAgICBzY3JvbGxpbmdOb2RlLnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIobm9kZUxheWVy
cy52ZXJ0aWNhbFNjcm9sbGJhckxheWVyKTsKIAogICAgICAgICBpZiAoaXM8U2Nyb2xsaW5nU3Rh
dGVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpKSB7CiAgICAgICAgICAgICBhdXRvJiBmcmFtZVNj
cm9sbGluZ05vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4o
Km5vZGUpOwpAQCAtNjA1LDEwICs2MDUsNiBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnNldEZyYW1lU2Nyb2xsaW5nTm9kZVN0YXRlKFNjcm9sbGluZ05vZGVJRCBub2RlSQogCiAg
ICAgYXV0byYgZnJhbWVTY3JvbGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFt
ZVNjcm9sbGluZ05vZGU+KCpzdGF0ZU5vZGUpOwogCi0gICAgYXV0byogdmVydGljYWxTY3JvbGxi
YXIgPSBmcmFtZVZpZXcudmVydGljYWxTY3JvbGxiYXIoKTsKLSAgICBhdXRvKiBob3Jpem9udGFs
U2Nyb2xsYmFyID0gZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXIoKTsKLSAgICBmcmFtZVNj
cm9sbGluZ05vZGUuc2V0U2Nyb2xsZXJJbXBzRnJvbVNjcm9sbGJhcnModmVydGljYWxTY3JvbGxi
YXIsIGhvcml6b250YWxTY3JvbGxiYXIpOwotCiAgICAgZnJhbWVTY3JvbGxpbmdOb2RlLnNldEZy
YW1lU2NhbGVGYWN0b3IoZnJhbWVWaWV3LmZyYW1lKCkuZnJhbWVTY2FsZUZhY3RvcigpKTsKICAg
ICBmcmFtZVNjcm9sbGluZ05vZGUuc2V0SGVhZGVySGVpZ2h0KGZyYW1lVmlldy5oZWFkZXJIZWln
aHQoKSk7CiAgICAgZnJhbWVTY3JvbGxpbmdOb2RlLnNldEZvb3RlckhlaWdodChmcmFtZVZpZXcu
Zm9vdGVySGVpZ2h0KCkpOwpAQCAtNjMxLDE1ICs2MjcsMTcgQEAgdm9pZCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9tZXRyeShTY3Jv
bGxpbmcKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byYgc2Nyb2xsaW5nTm9kZSA9IGRvd25j
YXN0PFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4oKnN0YXRlTm9kZSk7CisKKyAgICBhdXRv
KiB2ZXJ0aWNhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsYmFyKCk7
CisgICAgYXV0byogaG9yaXpvbnRhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhLmhvcml6b250
YWxTY3JvbGxiYXIoKTsKKyAgICBzY3JvbGxpbmdOb2RlLnNldFNjcm9sbGVySW1wc0Zyb21TY3Jv
bGxiYXJzKHZlcnRpY2FsU2Nyb2xsYmFyLCBob3Jpem9udGFsU2Nyb2xsYmFyKTsKKwogICAgIHNj
cm9sbGluZ05vZGUuc2V0U2Nyb2xsT3JpZ2luKHNjcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigp
KTsKICAgICBzY3JvbGxpbmdOb2RlLnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbGFibGVBcmVhLnNj
cm9sbFBvc2l0aW9uKCkpOwogICAgIHNjcm9sbGluZ05vZGUuc2V0VG90YWxDb250ZW50c1NpemUo
c2Nyb2xsYWJsZUFyZWEudG90YWxDb250ZW50c1NpemUoKSk7CiAgICAgc2Nyb2xsaW5nTm9kZS5z
ZXRSZWFjaGFibGVDb250ZW50c1NpemUoc2Nyb2xsYWJsZUFyZWEucmVhY2hhYmxlVG90YWxDb250
ZW50c1NpemUoKSk7CiAgICAgc2Nyb2xsaW5nTm9kZS5zZXRTY3JvbGxhYmxlQXJlYVNpemUoc2Ny
b2xsYWJsZUFyZWEudmlzaWJsZVNpemUoKSk7CiAKLSAgICBhdXRvKiB2ZXJ0aWNhbFNjcm9sbGJh
ciA9IHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsYmFyKCk7Ci0gICAgYXV0byogaG9yaXpv
bnRhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxTY3JvbGxiYXIoKTsKLQog
ICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBzY3JvbGxQYXJhbWV0ZXJzOwogICAgIHNjcm9s
bFBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS5o
b3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMudmVydGlj
YWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFyZWEudmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaAppbmRleCA4MmNiYjdjMDI2YjRlNjQxOThmOWM0ZDMyNjRhNTFiNjU0ZjQ2
ZTVlLi42YmQ1ZTgxNTA0NDEyNDU1NTZkZmFmOTUxMjI2OGE5NWIwNGIwMzdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgK
QEAgLTEzNiw2ICsxMzYsOCBAQCBwdWJsaWM6CiAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGNvdW50
ZXJTY3JvbGxpbmdMYXllciB7IG51bGxwdHIgfTsKICAgICAgICAgR3JhcGhpY3NMYXllciogaW5z
ZXRDbGlwTGF5ZXIgeyBudWxscHRyIH07CiAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RDb250
ZW50c0xheWVyIHsgbnVsbHB0ciB9OworICAgICAgICBHcmFwaGljc0xheWVyKiBob3Jpem9udGFs
U2Nyb2xsYmFyTGF5ZXIgeyBudWxscHRyIH07CisgICAgICAgIEdyYXBoaWNzTGF5ZXIqIHZlcnRp
Y2FsU2Nyb2xsYmFyTGF5ZXIgeyBudWxscHRyIH07CiAgICAgfTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Tm9kZUxheWVycyhTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IE5vZGVMYXllcnMmKSB7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVG
cmFtZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGQ5YjUwYmQ3NGMwNGJhMDVj
ODgwOWQ4ZGFiYzVhYzVmNjY5YzYxMTEuLjQyMWNmZWE0MjcwNTQ0ZTQ3MzA5YzQ4ZGJhOWExNTdl
MzgyY2JhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTQ2LDEw
ICs0Niw2IEBAIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0
ZUZyYW1lU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdTdGF0CiAKIFNjcm9sbGluZ1N0YXRlRnJhbWVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZShjb25zdCBTY3Jv
bGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZSYgc3RhdGVOb2RlLCBTY3JvbGxpbmdTdGF0ZVRy
ZWUmIGFkb3B0aXZlVHJlZSkKICAgICA6IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShzdGF0
ZU5vZGUsIGFkb3B0aXZlVHJlZSkKLSNpZiBQTEFURk9STShNQUMpCi0gICAgLCBtX3ZlcnRpY2Fs
U2Nyb2xsZXJJbXAoc3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsZXJJbXAoKSkKLSAgICAsIG1faG9y
aXpvbnRhbFNjcm9sbGVySW1wKHN0YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsZXJJbXAoKSkKLSNl
bmRpZgogICAgICwgbV9ldmVudFRyYWNraW5nUmVnaW9ucyhzdGF0ZU5vZGUuZXZlbnRUcmFja2lu
Z1JlZ2lvbnMoKSkKICAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc3RhdGVOb2RlLnJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpCiAgICAgLCBtX2xheW91dFZpZXdwb3J0KHN0YXRlTm9k
ZS5sYXlvdXRWaWV3cG9ydCgpKQpAQCAtODIsMTIgKzc4LDYgQEAgU2Nyb2xsaW5nU3RhdGVGcmFt
ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlKGNvbnN0IFNj
cm9sbGkKIAogICAgIGlmIChoYXNDaGFuZ2VkUHJvcGVydHkoRm9vdGVyTGF5ZXIpKQogICAgICAg
ICBzZXRGb290ZXJMYXllcihzdGF0ZU5vZGUuZm9vdGVyTGF5ZXIoKS50b1JlcHJlc2VudGF0aW9u
KGFkb3B0aXZlVHJlZS5wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKCkpKTsKLQotICAgIGlm
IChoYXNDaGFuZ2VkUHJvcGVydHkoVmVydGljYWxTY3JvbGxiYXJMYXllcikpCi0gICAgICAgIHNl
dFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIoc3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIo
KS50b1JlcHJlc2VudGF0aW9uKGFkb3B0aXZlVHJlZS5wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0
aW9uKCkpKTsKLQotICAgIGlmIChoYXNDaGFuZ2VkUHJvcGVydHkoSG9yaXpvbnRhbFNjcm9sbGJh
ckxheWVyKSkKLSAgICAgICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKHN0YXRlTm9kZS5o
b3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoKS50b1JlcHJlc2VudGF0aW9uKGFkb3B0aXZlVHJlZS5w
cmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKCkpKTsKIH0KIAogU2Nyb2xsaW5nU3RhdGVGcmFt
ZVNjcm9sbGluZ05vZGU6On5TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZSgpID0gZGVm
YXVsdDsKQEAgLTExMSw5ICsxMDEsNiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlOjpzZXRBbGxQcm9wZXJ0aWVzQ2hhbmdlZCgpCiAgICAgc2V0UHJvcGVydHlDaGFuZ2Vk
Qml0KEZvb3RlckhlaWdodCk7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KEhlYWRlckxheWVy
KTsKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWRCaXQoRm9vdGVyTGF5ZXIpOwotICAgIHNldFByb3Bl
cnR5Q2hhbmdlZEJpdChWZXJ0aWNhbFNjcm9sbGJhckxheWVyKTsKLSAgICBzZXRQcm9wZXJ0eUNo
YW5nZWRCaXQoSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKTsKLSAgICBzZXRQcm9wZXJ0eUNoYW5n
ZWRCaXQoUGFpbnRlckZvclNjcm9sbGJhcik7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KEJl
aGF2aW9yRm9yRml4ZWRFbGVtZW50cyk7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KFRvcENv
bnRlbnRJbnNldCk7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KEZpeGVkRWxlbWVudHNMYXlv
dXRSZWxhdGl2ZVRvRnJhbWUpOwpAQCAtMjcwLDI0ICsyNTcsNiBAQCB2b2lkIFNjcm9sbGluZ1N0
YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRGb290ZXJMYXllcihjb25zdCBMYXllclJlcHJlc2Vu
dGF0aW9uJgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChGb290ZXJMYXllcik7CiB9CiAKLXZvaWQg
U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5
ZXIoY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgbGF5ZXIpCi17Ci0gICAgaWYgKGxheWVyID09
IG1fdmVydGljYWxTY3JvbGxiYXJMYXllcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV92ZXJ0
aWNhbFNjcm9sbGJhckxheWVyID0gbGF5ZXI7Ci0gICAgc2V0UHJvcGVydHlDaGFuZ2VkKFZlcnRp
Y2FsU2Nyb2xsYmFyTGF5ZXIpOwotfQotCi12b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlOjpzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoY29uc3QgTGF5ZXJSZXByZXNlbnRh
dGlvbiYgbGF5ZXIpCi17Ci0gICAgaWYgKGxheWVyID09IG1faG9yaXpvbnRhbFNjcm9sbGJhckxh
eWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2hvcml6b250YWxTY3JvbGxiYXJMYXllciA9
IGxheWVyOwotICAgIHNldFByb3BlcnR5Q2hhbmdlZChIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIp
OwotfQotCiB2b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRGaXhlZEVs
ZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0
aXZlVG9GcmFtZSkKIHsKICAgICBpZiAoZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFt
ZSA9PSBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUpCkBAIC0zMDYsMTIgKzI3
NSw2IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OnNldEFzeW5jRnJh
bWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZChiCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKEFz
eW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCk7CiB9CiAKLSNpZiAhUExBVEZPUk0o
TUFDKQotdm9pZCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsZXJJ
bXBzRnJvbVNjcm9sbGJhcnMoU2Nyb2xsYmFyKiwgU2Nyb2xsYmFyKikKLXsKLX0KLSNlbmRpZgot
CiB2b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhU
ZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3Ip
IGNvbnN0CiB7CiAgICAgdHMgPDwgIkZyYW1lIHNjcm9sbGluZyBub2RlIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZy
YW1lU2Nyb2xsaW5nTm9kZS5oCmluZGV4IGNmOThkMDQ2N2MxMGM2ZjE5NzMyNGVmODczMGMyNTg2
Y2NjZThiZTUuLjgxZTVmNGVmOTIyZDM2NGUzZGM2OTg2NjQ0YzAxZmMzY2QyNTg0ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVT
Y3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuaApAQCAtNTgsOSArNTgsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIEZvb3RlckhlaWdodCwKICAgICAgICAgSGVhZGVyTGF5ZXIsCiAgICAgICAgIEZvb3Rl
ckxheWVyLAotICAgICAgICBWZXJ0aWNhbFNjcm9sbGJhckxheWVyLAotICAgICAgICBIb3Jpem9u
dGFsU2Nyb2xsYmFyTGF5ZXIsCi0gICAgICAgIFBhaW50ZXJGb3JTY3JvbGxiYXIsCiAgICAgICAg
IEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cywKICAgICAgICAgVG9wQ29udGVudEluc2V0LAogICAg
ICAgICBGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lLApAQCAtMTI1LDEyICsxMjIs
NiBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgZm9vdGVyTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX2Zvb3RlckxheWVyOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRGb290ZXJMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJik7CiAKLSAgICBjb25z
dCBMYXllclJlcHJlc2VudGF0aW9uJiB2ZXJ0aWNhbFNjcm9sbGJhckxheWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhckxheWVyOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRWZXJ0aWNhbFNjcm9sbGJhckxheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mKTsK
LQotICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGhvcml6b250YWxTY3JvbGxiYXJMYXll
cigpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGJhckxheWVyOyB9Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoY29uc3QgTGF5ZXJS
ZXByZXNlbnRhdGlvbiYpOwotCiAgICAgLy8gVGhlc2UgYXJlIG1vcmUgbGlrZSBTZXR0aW5ncywg
YW5kIHNob3VsZCBwcm9iYWJseSBtb3ZlIHRvIHRoZSBTY3JvbGxpbmd7U3RhdGV9VHJlZSBpdHNl
bGYuCiAgICAgYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJv
b2wpOwpAQCAtMTM4LDEyICsxMjksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBhc3luY0ZyYW1lT3JP
dmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FzeW5jRnJhbWVPck92
ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QXN5bmNGcmFtZU9yT3ZlcmZs
b3dTY3JvbGxpbmdFbmFibGVkKGJvb2wpOwogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIE5TU2Ny
b2xsZXJJbXAgKnZlcnRpY2FsU2Nyb2xsZXJJbXAoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRpY2Fs
U2Nyb2xsZXJJbXAuZ2V0KCk7IH0KLSAgICBOU1Njcm9sbGVySW1wICpob3Jpem9udGFsU2Nyb2xs
ZXJJbXAoKSBjb25zdCB7IHJldHVybiBtX2hvcml6b250YWxTY3JvbGxlckltcC5nZXQoKTsgfQot
I2VuZGlmCi0gICAgdm9pZCBzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyhTY3JvbGxiYXIq
IHZlcnRpY2FsU2Nyb2xsYmFyLCBTY3JvbGxiYXIqIGhvcml6b250YWxTY3JvbGxiYXIpOwotCiAg
ICAgdm9pZCBkdW1wUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0mLCBTY3JvbGxpbmdTdGF0ZVRy
ZWVBc1RleHRCZWhhdmlvcikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CkBAIC0xNTgsMTMg
KzE0Myw2IEBAIHByaXZhdGU6CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX2NvbnRlbnRTaGFk
b3dMYXllcjsKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1faGVhZGVyTGF5ZXI7CiAgICAgTGF5
ZXJSZXByZXNlbnRhdGlvbiBtX2Zvb3RlckxheWVyOwotICAgIExheWVyUmVwcmVzZW50YXRpb24g
bV92ZXJ0aWNhbFNjcm9sbGJhckxheWVyOwotICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9ob3Jp
em9udGFsU2Nyb2xsYmFyTGF5ZXI7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgUmV0YWluUHRy
PE5TU2Nyb2xsZXJJbXA+IG1fdmVydGljYWxTY3JvbGxlckltcDsKLSAgICBSZXRhaW5QdHI8TlNT
Y3JvbGxlckltcD4gbV9ob3Jpem9udGFsU2Nyb2xsZXJJbXA7Ci0jZW5kaWYKIAogICAgIEV2ZW50
VHJhY2tpbmdSZWdpb25zIG1fZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAgICAgRmxvYXRQb2ludCBt
X3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXgg
Njg1YjU2MjhhNWVkNDViNjBjYjkwNzBkZjY5NjA4MGRjYjczMmVjYi4uZDc0OTY5YTQyMWI5OTBj
NDk3NjJmNWJmOGQ1ZGFkMTgxYmEyNWYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCkBA
IC00OSw2ICs0OSwxMCBAQCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcgogICAgICwgbV9zY3JvbGxP
cmlnaW4oc3RhdGVOb2RlLnNjcm9sbE9yaWdpbigpKQogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NO
QVApCiAgICAgLCBtX3NuYXBPZmZzZXRzSW5mbyhzdGF0ZU5vZGUubV9zbmFwT2Zmc2V0c0luZm8p
CisjZW5kaWYKKyNpZiBQTEFURk9STShNQUMpCisgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsZXJJbXAo
c3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsZXJJbXAoKSkKKyAgICAsIG1faG9yaXpvbnRhbFNjcm9s
bGVySW1wKHN0YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsZXJJbXAoKSkKICNlbmRpZgogICAgICwg
bV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1l
dGVycygpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCgpKQpAQCAtNTYsOCArNjAsMTUgQEAgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3Rh
dGVTY3IKIHsKICAgICBpZiAoaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbENvbnRhaW5lckxheWVy
KSkKICAgICAgICAgc2V0U2Nyb2xsQ29udGFpbmVyTGF5ZXIoc3RhdGVOb2RlLnNjcm9sbENvbnRh
aW5lckxheWVyKCkudG9SZXByZXNlbnRhdGlvbihhZG9wdGl2ZVRyZWUucHJlZmVycmVkTGF5ZXJS
ZXByZXNlbnRhdGlvbigpKSk7CisKICAgICBpZiAoaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGVk
Q29udGVudHNMYXllcikpCiAgICAgICAgIHNldFNjcm9sbGVkQ29udGVudHNMYXllcihzdGF0ZU5v
ZGUuc2Nyb2xsZWRDb250ZW50c0xheWVyKCkudG9SZXByZXNlbnRhdGlvbihhZG9wdGl2ZVRyZWUu
cHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbigpKSk7CisKKyAgICBpZiAoaGFzQ2hhbmdlZFBy
b3BlcnR5KFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIpKQorICAgICAgICBzZXRWZXJ0aWNhbFNjcm9s
bGJhckxheWVyKHN0YXRlTm9kZS52ZXJ0aWNhbFNjcm9sbGJhckxheWVyKCkudG9SZXByZXNlbnRh
dGlvbihhZG9wdGl2ZVRyZWUucHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbigpKSk7CisKKyAg
ICBpZiAoaGFzQ2hhbmdlZFByb3BlcnR5KEhvcml6b250YWxTY3JvbGxiYXJMYXllcikpCisgICAg
ICAgIHNldEhvcml6b250YWxTY3JvbGxiYXJMYXllcihzdGF0ZU5vZGUuaG9yaXpvbnRhbFNjcm9s
bGJhckxheWVyKCkudG9SZXByZXNlbnRhdGlvbihhZG9wdGl2ZVRyZWUucHJlZmVycmVkTGF5ZXJS
ZXByZXNlbnRhdGlvbigpKSk7CiB9CiAKIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6flNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSgpID0gZGVmYXVsdDsKQEAgLTgzLDYgKzk0LDkgQEAg
dm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEFsbFByb3BlcnRpZXNDaGFuZ2Vk
KCkKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWRCaXQoRXhwZWN0c1doZWVsRXZlbnRUZXN0VHJpZ2dl
cik7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KFNjcm9sbENvbnRhaW5lckxheWVyKTsKICAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWRCaXQoU2Nyb2xsZWRDb250ZW50c0xheWVyKTsKKyAgICBzZXRQ
cm9wZXJ0eUNoYW5nZWRCaXQoSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKTsKKyAgICBzZXRQcm9w
ZXJ0eUNoYW5nZWRCaXQoVmVydGljYWxTY3JvbGxiYXJMYXllcik7CisgICAgc2V0UHJvcGVydHlD
aGFuZ2VkQml0KFBhaW50ZXJGb3JTY3JvbGxiYXIpOwogCiAgICAgU2Nyb2xsaW5nU3RhdGVOb2Rl
OjpzZXRBbGxQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogfQpAQCAtMjQwLDYgKzI1NCwzMCBAQCB2b2lk
IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKGNv
bnN0IExheWVyUmVwcmVzZW50YQogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3JvbGxlZENvbnRl
bnRzTGF5ZXIpOwogfQogCit2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SG9y
aXpvbnRhbFNjcm9sbGJhckxheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGxheWVyKQor
eworICAgIGlmIChsYXllciA9PSBtX2hvcml6b250YWxTY3JvbGxiYXJMYXllcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIgPSBsYXllcjsKKyAgICBz
ZXRQcm9wZXJ0eUNoYW5nZWQoSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKTsKK30KKwordm9pZCBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIoY29u
c3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgbGF5ZXIpCit7CisgICAgaWYgKGxheWVyID09IG1fdmVy
dGljYWxTY3JvbGxiYXJMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92ZXJ0aWNhbFNj
cm9sbGJhckxheWVyID0gbGF5ZXI7CisgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFZlcnRpY2FsU2Ny
b2xsYmFyTGF5ZXIpOworfQorCisjaWYgIVBMQVRGT1JNKE1BQykKK3ZvaWQgU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyhTY3JvbGxiYXIq
LCBTY3JvbGxiYXIqKQoreworfQorI2VuZGlmCisKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcmVl
QXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0CiB7CiAgICAgU2Nyb2xsaW5nU3RhdGVOb2Rl
OjpkdW1wUHJvcGVydGllcyh0cywgYmVoYXZpb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAppbmRl
eCA1ZmVhYTUxMTFiNjU3MjU0MzE5YWVhNDkwNjBmMmE3NzlkOTAwZjAwLi4xZDk2ZjJmZjAyNmVi
NTYxZGQzNjhkNzQ0Nzg1M2VlYjUxNTA5ZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaApAQCAt
MzIsNiArMzIsMTAgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1
ZGUgIlNjcm9sbGluZ1N0YXRlTm9kZS5oIgogCisjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NM
QVNTIE5TU2Nyb2xsZXJJbXA7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUgOiBwdWJsaWMgU2Nyb2xsaW5nU3RhdGVOb2Rl
IHsKQEAgLTU4LDYgKzYyLDkgQEAgcHVibGljOgogICAgICAgICBFeHBlY3RzV2hlZWxFdmVudFRl
c3RUcmlnZ2VyLAogICAgICAgICBTY3JvbGxDb250YWluZXJMYXllciwKICAgICAgICAgU2Nyb2xs
ZWRDb250ZW50c0xheWVyLAorICAgICAgICBIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIsCisgICAg
ICAgIFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIsCisgICAgICAgIFBhaW50ZXJGb3JTY3JvbGxiYXIs
CiAgICAgICAgIE51bVNjcm9sbGluZ1N0YXRlTm9kZUJpdHMgLy8gVGhpcyBtdXN0IHJlbWFpbiBh
dCB0aGUgbGFzdCBwb3NpdGlvbi4KICAgICB9OwogCkBAIC0xMTYsNiArMTIzLDE4IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxlZENvbnRlbnRzTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsgfQogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKGNvbnN0IExheWVyUmVwcmVzZW50
YXRpb24mKTsKIAorICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGhvcml6b250YWxTY3Jv
bGxiYXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGJhckxheWVyOyB9
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoY29u
c3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYpOworCisgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlv
biYgdmVydGljYWxTY3JvbGxiYXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljYWxTY3Jv
bGxiYXJMYXllcjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VmVydGljYWxTY3JvbGxi
YXJMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJik7CisKKyNpZiBQTEFURk9STShNQUMp
CisgICAgTlNTY3JvbGxlckltcCAqdmVydGljYWxTY3JvbGxlckltcCgpIGNvbnN0IHsgcmV0dXJu
IG1fdmVydGljYWxTY3JvbGxlckltcC5nZXQoKTsgfQorICAgIE5TU2Nyb2xsZXJJbXAgKmhvcml6
b250YWxTY3JvbGxlckltcCgpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGVySW1w
LmdldCgpOyB9CisjZW5kaWYKKyAgICB2b2lkIHNldFNjcm9sbGVySW1wc0Zyb21TY3JvbGxiYXJz
KFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIsIFNjcm9sbGJhciogaG9yaXpvbnRhbFNjcm9s
bGJhcik7CisKIHByb3RlY3RlZDoKICAgICBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoU2Ny
b2xsaW5nU3RhdGVUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAg
ICAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZSYsIFNjcm9sbGluZ1N0YXRlVHJlZSYpOwpAQCAtMTMyLDE0ICsxNTEsMjUgQEAgcHJp
dmF0ZToKICAgICBGbG9hdFBvaW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgRmxvYXRQb2ludCBt
X3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOwogICAgIEludFBvaW50IG1fc2Nyb2xsT3JpZ2luOwor
CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBTY3JvbGxTbmFwT2Zmc2V0c0luZm88
ZmxvYXQ+IG1fc25hcE9mZnNldHNJbmZvOwogICAgIHVuc2lnbmVkIG1fY3VycmVudEhvcml6b250
YWxTbmFwUG9pbnRJbmRleCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRWZXJ0aWNhbFNu
YXBQb2ludEluZGV4IHsgMCB9OwogI2VuZGlmCi0gICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJz
IG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOworCiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBt
X3Njcm9sbENvbnRhaW5lckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxl
ZENvbnRlbnRzTGF5ZXI7CisgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX2hvcml6b250YWxTY3Jv
bGxiYXJMYXllcjsKKyAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fdmVydGljYWxTY3JvbGxiYXJM
YXllcjsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBSZXRhaW5QdHI8TlNTY3JvbGxlckltcD4g
bV92ZXJ0aWNhbFNjcm9sbGVySW1wOworICAgIFJldGFpblB0cjxOU1Njcm9sbGVySW1wPiBtX2hv
cml6b250YWxTY3JvbGxlckltcDsKKyNlbmRpZgorCisgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0
ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOworCiAgICAgYm9vbCBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2V4cGVjdHNXaGVlbEV2ZW50VGVzdFRyaWdnZXIgeyBmYWxzZSB9OwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMjU1
NzZiNjMzODExMTk2YzM4ZjI2Njg3ZjU0MjkxZDM1MjE5MzdkMC4uZDI4Yzc3MjU2YzU1NThlYmRk
YmI5YzU0ZTM1ODQ2NjBjMGY3YjczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTgwLDEwICs4MCwxMyBAQCBib29sIFNjcm9sbGlu
Z1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudAogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE9yQ2xlYXJMYXRjaGVkTm9kZShj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQpCiB7Ci0gICAgaWYgKHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpKQorICAg
IGlmICh3aGVlbEV2ZW50LnNob3VsZENvbnNpZGVyTGF0Y2hpbmcoKSkgeworICAgICAgICBMT0df
V0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWUgIiA8PCB0aGlz
IDw8ICIgc2V0T3JDbGVhckxhdGNoZWROb2RlOiBzZXR0aW5nIGxhdGNoZWQgbm9kZSAiIDw8IG5v
ZGVJRCk7CiAgICAgICAgIHNldExhdGNoZWROb2RlKG5vZGVJRCk7Ci0gICAgZWxzZSBpZiAod2hl
ZWxFdmVudC5zaG91bGRSZXNldExhdGNoaW5nKCkpCisgICAgfSBlbHNlIGlmICh3aGVlbEV2ZW50
LnNob3VsZFJlc2V0TGF0Y2hpbmcoKSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xs
aW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWUgIiA8PCB0aGlzIDw8ICIgc2V0T3JDbGVhckxh
dGNoZWROb2RlOiBjbGVhcmluZyBsYXRjaGVkIG5vZGUgKHdhcyAiIDw8IGxhdGNoZWROb2RlKCkg
PDwgIikiKTsKICAgICAgICAgY2xlYXJMYXRjaGVkTm9kZSgpOworICAgIH0KIH0KIAogU2Nyb2xs
aW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCkBAIC05Nyw2ICsxMDAsNyBAQCBTY3JvbGxpbmdF
dmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgdwogICAgIH0KIAogICAgIGlmIChoYXNMYXRjaGVkTm9kZSgpKSB7CisgICAg
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiIGhhcyBsYXRjaGVkIG5v
ZGUgIiA8PCBsYXRjaGVkTm9kZSgpKTsKICAgICAgICAgYXV0byogbm9kZSA9IG5vZGVGb3JJRChs
YXRjaGVkTm9kZSgpKTsKICAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
Pihub2RlKSkKICAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZT4oKm5vZGUpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDg4MzBmMTI5ZjVjZmI0MjgzMDA1ZDM3NWRkYWU3ZTQwNzA0Y2JlMzcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1t
CisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5oIgot
Ci0jaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQotCi0jaW5jbHVk
ZSAiR3JhcGhpY3NMYXllci5oIgotI2luY2x1ZGUgIlNjcm9sbGJhci5oIgotI2luY2x1ZGUgIlNj
cm9sbGJhclRoZW1lTWFjLmgiCi0jaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgiCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9k
ZTo6c2V0U2Nyb2xsZXJJbXBzRnJvbVNjcm9sbGJhcnMoU2Nyb2xsYmFyKiB2ZXJ0aWNhbFNjcm9s
bGJhciwgU2Nyb2xsYmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyKQotewotICAgIFNjcm9sbGJhclRo
ZW1lJiBzY3JvbGxiYXJUaGVtZSA9IFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpOwotICAgIGlmIChz
Y3JvbGxiYXJUaGVtZS5pc01vY2tUaGVtZSgpKQotICAgICAgICByZXR1cm47Ci0gICAgU2Nyb2xs
YmFyVGhlbWVNYWMmIG1hY1RoZW1lID0gc3RhdGljX2Nhc3Q8U2Nyb2xsYmFyVGhlbWVNYWMmPihz
Y3JvbGxiYXJUaGVtZSk7Ci0KLSAgICBOU1Njcm9sbGVySW1wICp2ZXJ0aWNhbFBhaW50ZXIgPSB2
ZXJ0aWNhbFNjcm9sbGJhciAmJiB2ZXJ0aWNhbFNjcm9sbGJhci0+c3VwcG9ydHNVcGRhdGVPblNl
Y29uZGFyeVRocmVhZCgpCi0gICAgICAgID8gbWFjVGhlbWUucGFpbnRlckZvclNjcm9sbGJhcigq
dmVydGljYWxTY3JvbGxiYXIpIDogbnVsbHB0cjsKLSAgICBOU1Njcm9sbGVySW1wICpob3Jpem9u
dGFsUGFpbnRlciA9IGhvcml6b250YWxTY3JvbGxiYXIgJiYgaG9yaXpvbnRhbFNjcm9sbGJhci0+
c3VwcG9ydHNVcGRhdGVPblNlY29uZGFyeVRocmVhZCgpCi0gICAgICAgID8gbWFjVGhlbWUucGFp
bnRlckZvclNjcm9sbGJhcigqaG9yaXpvbnRhbFNjcm9sbGJhcikgOiBudWxscHRyOwotCi0gICAg
aWYgKG1fdmVydGljYWxTY3JvbGxlckltcCA9PSB2ZXJ0aWNhbFBhaW50ZXIgJiYgbV9ob3Jpem9u
dGFsU2Nyb2xsZXJJbXAgPT0gaG9yaXpvbnRhbFBhaW50ZXIpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fdmVydGljYWxTY3JvbGxlckltcCA9IHZlcnRpY2FsUGFpbnRlcjsKLSAgICBtX2hvcml6
b250YWxTY3JvbGxlckltcCA9IGhvcml6b250YWxQYWludGVyOwotCi0gICAgc2V0UHJvcGVydHlD
aGFuZ2VkKFBhaW50ZXJGb3JTY3JvbGxiYXIpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShNQUMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTI1YjQ3OGRk
ZDRiZjQzMzBiYmFhY2RiNmMxOGZiZDkxYjMzY2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1h
Yy5tbQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oIgorCisjaWYgRU5BQkxFKEFT
WU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSAiR3JhcGhpY3NMYXll
ci5oIgorI2luY2x1ZGUgIlNjcm9sbGJhci5oIgorI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lTWFj
LmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKwordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbGVySW1wc0Zy
b21TY3JvbGxiYXJzKFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIsIFNjcm9sbGJhciogaG9y
aXpvbnRhbFNjcm9sbGJhcikKK3sKKyAgICBTY3JvbGxiYXJUaGVtZSYgc2Nyb2xsYmFyVGhlbWUg
PSBTY3JvbGxiYXJUaGVtZTo6dGhlbWUoKTsKKyAgICBpZiAoc2Nyb2xsYmFyVGhlbWUuaXNNb2Nr
VGhlbWUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFNjcm9sbGJhclRoZW1lTWFjJiBtYWNUaGVt
ZSA9IHN0YXRpY19jYXN0PFNjcm9sbGJhclRoZW1lTWFjJj4oc2Nyb2xsYmFyVGhlbWUpOworCisg
ICAgTlNTY3JvbGxlckltcCAqdmVydGljYWxQYWludGVyID0gdmVydGljYWxTY3JvbGxiYXIgJiYg
dmVydGljYWxTY3JvbGxiYXItPnN1cHBvcnRzVXBkYXRlT25TZWNvbmRhcnlUaHJlYWQoKQorICAg
ICAgICA/IG1hY1RoZW1lLnBhaW50ZXJGb3JTY3JvbGxiYXIoKnZlcnRpY2FsU2Nyb2xsYmFyKSA6
IG51bGxwdHI7CisgICAgTlNTY3JvbGxlckltcCAqaG9yaXpvbnRhbFBhaW50ZXIgPSBob3Jpem9u
dGFsU2Nyb2xsYmFyICYmIGhvcml6b250YWxTY3JvbGxiYXItPnN1cHBvcnRzVXBkYXRlT25TZWNv
bmRhcnlUaHJlYWQoKQorICAgICAgICA/IG1hY1RoZW1lLnBhaW50ZXJGb3JTY3JvbGxiYXIoKmhv
cml6b250YWxTY3JvbGxiYXIpIDogbnVsbHB0cjsKKworICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xs
ZXJJbXAgPT0gdmVydGljYWxQYWludGVyICYmIG1faG9yaXpvbnRhbFNjcm9sbGVySW1wID09IGhv
cml6b250YWxQYWludGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZlcnRpY2FsU2Nyb2xs
ZXJJbXAgPSB2ZXJ0aWNhbFBhaW50ZXI7CisgICAgbV9ob3Jpem9udGFsU2Nyb2xsZXJJbXAgPSBo
b3Jpem9udGFsUGFpbnRlcjsKKworICAgIHNldFByb3BlcnR5Q2hhbmdlZChQYWludGVyRm9yU2Ny
b2xsYmFyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVN
YWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjLmgKaW5kZXggYzdhNzRkNTMwMDc2YzgyN2U1YjExNWQ5NjBjM2Vm
NWY2M2RiM2Q3OS4uYjBlYzIxMTJlMWQ5ZDZjNDM1MTk0MjcwY2U2NzFlMTIyZDAyNWQ5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCkBAIC00NSw4ICs0NSw2
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTWFjKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlE
KTsKIAotICAgIHZvaWQgcmVsZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRo
cmVhZCgpOwotCiAgICAgLy8gU2Nyb2xsaW5nVHJlZU5vZGUgbWVtYmVyIGZ1bmN0aW9ucy4KICAg
ICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2Rl
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Ny
b2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CkBAIC02OCwxNiArNjYsMTQgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKSBvdmVycmlkZTsKICAgICB2
b2lkIHJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKSBvdmVycmlkZTsKIAorICAgIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMgbV9kZWxlZ2F0ZTsKKwogICAgIFJldGFpblB0
cjxDQUxheWVyPiBtX3Jvb3RDb250ZW50c0xheWVyOwogICAgIFJldGFpblB0cjxDQUxheWVyPiBt
X2NvdW50ZXJTY3JvbGxpbmdMYXllcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9pbnNldENs
aXBMYXllcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9jb250ZW50U2hhZG93TGF5ZXI7CiAg
ICAgUmV0YWluUHRyPENBTGF5ZXI+IG1faGVhZGVyTGF5ZXI7CiAgICAgUmV0YWluUHRyPENBTGF5
ZXI+IG1fZm9vdGVyTGF5ZXI7Ci0gICAgUmV0YWluUHRyPE5TU2Nyb2xsZXJJbXA+IG1fdmVydGlj
YWxTY3JvbGxlckltcDsKLSAgICBSZXRhaW5QdHI8TlNTY3JvbGxlckltcD4gbV9ob3Jpem9udGFs
U2Nyb2xsZXJJbXA7Ci0KLSAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
IG1fZGVsZWdhdGU7CiAgICAgCiAgICAgYm9vbCBtX2xhc3RTY3JvbGxIYWRVbmZpbGxlZFBpeGVs
cyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhZEZpcnN0VXBkYXRlIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KaW5kZXggZDIyYmEwODc0NWY3
NzQ1NTNmMzdjMGEyYjc2ZWZkMTFlNTRlNTI1MS4uNGUxODNmODFiZGYxOTQ0ZTI5ZTIxYzRjYjAw
NzgxODZlMDQ2MmVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVN
YWMubW0KQEAgLTM4LDEyICszOCwxMCBAQAogI2ltcG9ydCAiU2Nyb2xsaW5nVHJlZS5oIgogI2lt
cG9ydCAiVGlsZUNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldlYkxheWVyLmgiCi0jaW1wb3J0IDxw
YWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3Ry
ZWFtLmg+Ci0KICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogI2ltcG9ydCA8d3Rm
L0RlcXVlLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvdGV4
dC9UZXh0U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgsMjAgKzU2LDcg
QEAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6U2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYyhTY3JvbGxpbmcKIHsKIH0KIAotU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYzo6flNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMoKQotewot
ICAgIHJlbGVhc2VSZWZlcmVuY2VzVG9TY3JvbGxlckltcHNPblRoZU1haW5UaHJlYWQoKTsKLX0K
LQotdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpyZWxlYXNlUmVmZXJl
bmNlc1RvU2Nyb2xsZXJJbXBzT25UaGVNYWluVGhyZWFkKCkKLXsKLSAgICBpZiAobV92ZXJ0aWNh
bFNjcm9sbGVySW1wIHx8IG1faG9yaXpvbnRhbFNjcm9sbGVySW1wKSB7Ci0gICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBpbiBwbGFjZSBmb3IgdGhlIHRpbWUgYmVpbmcgc2lu
Y2UgTlNTY3JvbGxlckltcHMgY2Fubm90IGJlIGRlYWxsb2NhdGVkCi0gICAgICAgIC8vIG9uIGEg
bm9uLW1haW4gdGhyZWFkLiByZGFyOi8vcHJvYmxlbS8yNDUzNTA1NQotICAgICAgICBXVEY6OmNh
bGxPbk1haW5UaHJlYWQoW3ZlcnRpY2FsU2Nyb2xsZXJJbXAgPSBXVEZNb3ZlKG1fdmVydGljYWxT
Y3JvbGxlckltcCksIGhvcml6b250YWxTY3JvbGxlckltcCA9IFdURk1vdmUobV9ob3Jpem9udGFs
U2Nyb2xsZXJJbXApXSB7Ci0gICAgICAgIH0pOwotICAgIH0KLX0KK1Njcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWM6On5TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjKCkg
PSBkZWZhdWx0OwogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKIHN0YXRpYyBpbmxpbmUg
VmVjdG9yPExheW91dFVuaXQ+IGNvbnZlcnRUb0xheW91dFVuaXRzKGNvbnN0IFZlY3RvcjxmbG9h
dD4mIHNuYXBPZmZzZXRzQXNGbG9hdCkKQEAgLTExOCwxMiArMTAzLDYgQEAgdm9pZCBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNv
bnN0IFNjcm9sbGkKICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Rm9vdGVyTGF5ZXIpKQogICAgICAg
ICBtX2Zvb3RlckxheWVyID0gc2Nyb2xsaW5nU3RhdGVOb2RlLmZvb3RlckxheWVyKCk7CiAKLSAg
ICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6UGFpbnRlckZvclNjcm9sbGJhcikpIHsKLSAgICAgICAgcmVs
ZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRocmVhZCgpOwotICAgICAgICBt
X3ZlcnRpY2FsU2Nyb2xsZXJJbXAgPSBzY3JvbGxpbmdTdGF0ZU5vZGUudmVydGljYWxTY3JvbGxl
ckltcCgpOwotICAgICAgICBtX2hvcml6b250YWxTY3JvbGxlckltcCA9IHNjcm9sbGluZ1N0YXRl
Tm9kZS5ob3Jpem9udGFsU2Nyb2xsZXJJbXAoKTsKLSAgICB9Ci0KICAgICBib29sIGxvZ1Njcm9s
bGluZ01vZGUgPSAhbV9oYWRGaXJzdFVwZGF0ZTsKICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2Rl
Lmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6UmVh
c29uc0ZvclN5bmNocm9ub3VzU2Nyb2xsaW5nKSkKICAgICAgICAgbG9nU2Nyb2xsaW5nTW9kZSA9
IHRydWU7CkBAIC0xMzEsNyArMTEwLDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpCiAgICAg
aWYgKGxvZ1Njcm9sbGluZ01vZGUgJiYgaXNSb290Tm9kZSgpICYmIHNjcm9sbGluZ1RyZWUoKS5z
Y3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCkpCiAgICAgICAgIHNjcm9sbGluZ1Ry
ZWUoKS5yZXBvcnRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1vbm90b25pY1Rp
bWU6Om5vdygpLCBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKSk7CiAKKyAgICBtX2RlbGVn
YXRlLnVwZGF0ZUZyb21TdGF0ZU5vZGUoc2Nyb2xsaW5nU3RhdGVOb2RlKTsKKwogI2lmIEVOQUJM
RShDU1NfU0NST0xMX1NOQVApCisgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIG1vdmUgdG8gdGhl
IGRlbGVnYXRlIGFuZCBiZSBzaGFyZWQgd2l0aCBvdmVyZmxvdy4KICAgICBpZiAoc2Nyb2xsaW5n
U3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5n
Tm9kZTo6SG9yaXpvbnRhbFNuYXBPZmZzZXRzKSB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFs
U25hcE9mZnNldFJhbmdlcykpCiAgICAgICAgIG1fZGVsZWdhdGUudXBkYXRlU2Nyb2xsU25hcFBv
aW50cyhTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIGNvbnZlcnRUb0xheW91dFVuaXRzKHNj
cm9sbGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsU25hcE9mZnNldHMoKSksIGNvbnZlcnRUb0xheW91
dFVuaXRzKHNjcm9sbGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsU25hcE9mZnNldFJhbmdlcygpKSk7
CiAKQEAgLTE3MCwyNCArMTUyLDYgQEAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdAogICAgIGlmICgh
Y2FuSGF2ZVNjcm9sbGJhcnMoKSkKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWROb3RIYW5kbGVFdmVudDsKIAotICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2Uo
KSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKSB7Ci0gICAgICAgIFttX3ZlcnRpY2Fs
U2Nyb2xsZXJJbXAgc2V0VXNlUHJlc2VudGF0aW9uVmFsdWU6WUVTXTsKLSAgICAgICAgW21faG9y
aXpvbnRhbFNjcm9sbGVySW1wIHNldFVzZVByZXNlbnRhdGlvblZhbHVlOllFU107Ci0gICAgfQot
ICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZUVuZGVkIHx8IHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxF
dmVudFBoYXNlQ2FuY2VsbGVkKSB7Ci0gICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xsZXJJbXAgc2V0
VXNlUHJlc2VudGF0aW9uVmFsdWU6Tk9dOwotICAgICAgICBbbV9ob3Jpem9udGFsU2Nyb2xsZXJJ
bXAgc2V0VXNlUHJlc2VudGF0aW9uVmFsdWU6Tk9dOwotICAgIH0KLQotI2lmIEVOQUJMRShDU1Nf
U0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICBpZiAoZXhwZWN0c1do
ZWVsRXZlbnRUZXN0VHJpZ2dlcigpKSB7Ci0gICAgICAgIGlmIChzY3JvbGxpbmdUcmVlKCkuc2hv
dWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkod2hlZWxFdmVudCkpCi0gICAgICAgICAg
ICBtX2RlbGVnYXRlLnJlbW92ZVRlc3REZWZlcnJhbEZvclJlYXNvbihyZWludGVycHJldF9jYXN0
PFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihzY3JvbGxp
bmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xsaW5nVGhyZWFkU3luY05l
ZWRlZCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fZGVsZWdhdGUuZGVmZXJUZXN0c0Zv
clJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xsYWJs
ZUFyZWFJZGVudGlmaWVyPihzY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0VHJpZ2dl
cjo6U2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCk7Ci0gICAgfQotI2VuZGlmCi0KICAgICBtX2Rl
bGVnYXRlLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAKICNpZiBFTkFCTEUoQ1NTX1ND
Uk9MTF9TTkFQKQpAQCAtMjY2LDI3ICsyMzAsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVNYWM6OnJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkKICAgICAgICAgICAgIG1f
Zm9vdGVyTGF5ZXIuZ2V0KCkucG9zaXRpb24gPSBGbG9hdFBvaW50KGhvcml6b250YWxTY3JvbGxP
ZmZzZXRGb3JCYW5uZXIsIEZyYW1lVmlldzo6eVBvc2l0aW9uRm9yRm9vdGVyTGF5ZXIoc2Nyb2xs
UG9zaXRpb24sIHRvcENvbnRlbnRJbnNldCwgdG90YWxDb250ZW50c1NpemUoKS5oZWlnaHQoKSwg
Zm9vdGVySGVpZ2h0KCkpKTsKICAgICB9CiAKLSAgICBpZiAobV92ZXJ0aWNhbFNjcm9sbGVySW1w
IHx8IG1faG9yaXpvbnRhbFNjcm9sbGVySW1wKSB7Ci0gICAgICAgIFtDQVRyYW5zYWN0aW9uIGJl
Z2luXTsKLSAgICAgICAgW0NBVHJhbnNhY3Rpb24gbG9ja107Ci0KLSAgICAgICAgaWYgKFttX3Zl
cnRpY2FsU2Nyb2xsZXJJbXAgc2hvdWxkVXNlUHJlc2VudGF0aW9uVmFsdWVdKSB7Ci0gICAgICAg
ICAgICBmbG9hdCBwcmVzZW50YXRpb25WYWx1ZTsKLSAgICAgICAgICAgIGZsb2F0IG92ZXJoYW5n
QW1vdW50OwotICAgICAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVTY3JvbGxiYXJWYWx1
ZUFuZE92ZXJoYW5nKHNjcm9sbFBvc2l0aW9uLnkoKSwgdG90YWxDb250ZW50c1NpemUoKS5oZWln
aHQoKSwgdmlzaWJsZUNvbnRlbnRSZWN0LmhlaWdodCgpLCBwcmVzZW50YXRpb25WYWx1ZSwgb3Zl
cmhhbmdBbW91bnQpOwotICAgICAgICAgICAgW21fdmVydGljYWxTY3JvbGxlckltcCBzZXRQcmVz
ZW50YXRpb25WYWx1ZTpwcmVzZW50YXRpb25WYWx1ZV07Ci0gICAgICAgIH0KLQotICAgICAgICBp
ZiAoW21faG9yaXpvbnRhbFNjcm9sbGVySW1wIHNob3VsZFVzZVByZXNlbnRhdGlvblZhbHVlXSkg
ewotICAgICAgICAgICAgZmxvYXQgcHJlc2VudGF0aW9uVmFsdWU7Ci0gICAgICAgICAgICBmbG9h
dCBvdmVyaGFuZ0Ftb3VudDsKLSAgICAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpjb21wdXRlU2Ny
b2xsYmFyVmFsdWVBbmRPdmVyaGFuZyhzY3JvbGxQb3NpdGlvbi54KCksIHRvdGFsQ29udGVudHNT
aXplKCkud2lkdGgoKSwgdmlzaWJsZUNvbnRlbnRSZWN0LndpZHRoKCksIHByZXNlbnRhdGlvblZh
bHVlLCBvdmVyaGFuZ0Ftb3VudCk7Ci0gICAgICAgICAgICBbbV9ob3Jpem9udGFsU2Nyb2xsZXJJ
bXAgc2V0UHJlc2VudGF0aW9uVmFsdWU6cHJlc2VudGF0aW9uVmFsdWVdOwotICAgICAgICB9Ci0K
LSAgICAgICAgW0NBVHJhbnNhY3Rpb24gdW5sb2NrXTsKLSAgICAgICAgW0NBVHJhbnNhY3Rpb24g
Y29tbWl0XTsKLSAgICB9CisgICAgbV9kZWxlZ2F0ZS51cGRhdGVTY3JvbGxiYXJQYWludGVycygp
OwogfQogCiBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6Om1p
bmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVNYWMuaAppbmRleCAwMjM2NzFjZjVkMDhlYzA5NjNiNzY4MDY4YjU3MWM1
MjM4YjY0MTJkLi5iZDFlNzMyZGUyYzg4ODIwNGU0NWQxZTg3OGNmOWY3ODliMTgwN2YwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmgKQEAgLTM0LDEy
ICszNCwxMiBAQCBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYyA6IHB1YmxpYyBTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMgOiBwdWJsaWMgU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjPiBjcmVhdGUoU2Nyb2xsaW5nVHJlZSYsIFNj
cm9sbGluZ05vZGVJRCk7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZU1hYygpOwogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVNYWMoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7
CiAKICAgICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3Rh
dGVOb2RlJikgb3ZlcnJpZGU7CkBAIC00OCw5ICs0OCwxMSBAQCBwcml2YXRlOgogICAgIEZsb2F0
UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsUG9z
aXRpb25DbGFtcCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlcG9zaXRpb25TY3JvbGxp
bmdMYXllcnMoKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkg
b3ZlcnJpZGU7CiAKICAgICBTY3JvbGxpbmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlOwogCitwcml2YXRlOgogICAgIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMgbV9kZWxlZ2F0ZTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KaW5kZXggNWFmN2Jk
MjlkMzkzYmY4NzAzNzE5N2NlMTA5ZDE4ZDEzODExM2E2Yi4uNWI0M2ExODA0YmI3NjBiOTA5MTdm
NzRiYjE2NGRiMjUyODc0YTU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVNYWMubW0KQEAgLTUxLDkgKzUxLDcgQEAgU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU1hYzo6flNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMo
KQogdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0
ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewog
ICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3Jl
Q2hpbGRyZW4oc3RhdGVOb2RlKTsKLSAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5vZGUg
PSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT4oc3RhdGVOb2Rl
KTsKLSAgICBVTlVTRURfUEFSQU0oc2Nyb2xsaW5nU3RhdGVOb2RlKTsKLSAgICAvLyBGSVhNRTog
U2Nyb2xsIHNuYXAgZGF0YS4KKyAgICBtX2RlbGVnYXRlLnVwZGF0ZUZyb21TdGF0ZU5vZGUoZG93
bmNhc3Q8U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU+KHN0YXRlTm9kZSkpOwog
fQogCiB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmNvbW1pdFN0
YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSkKQEAg
LTY4LDE2ICs2Niw2IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uCiAgICAgaWYgKCFjYW5IYXZl
U2Nyb2xsYmFycygpKQogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5v
dEhhbmRsZUV2ZW50OwogCi0KLSNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUo
UlVCQkVSX0JBTkRJTkcpCi0gICAgaWYgKGV4cGVjdHNXaGVlbEV2ZW50VGVzdFRyaWdnZXIoKSkg
ewotICAgICAgICBpZiAoc2Nyb2xsaW5nVHJlZSgpLnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5j
aHJvbm91c2x5KHdoZWVsRXZlbnQpKQotICAgICAgICAgICAgbV9kZWxlZ2F0ZS5yZW1vdmVUZXN0
RGVmZXJyYWxGb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6
OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4oc2Nyb2xsaW5nTm9kZUlEKCkpLCBXaGVlbEV2ZW50
VGVzdFRyaWdnZXI6OlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX2RlbGVnYXRlLmRlZmVyVGVzdHNGb3JSZWFzb24ocmVpbnRlcnByZXRfY2Fz
dDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4oc2Nyb2xs
aW5nTm9kZUlEKCkpLCBXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGluZ1RocmVhZFN5bmNO
ZWVkZWQpOwotICAgIH0KLSNlbmRpZgotCiAgICAgbV9kZWxlZ2F0ZS5oYW5kbGVXaGVlbEV2ZW50
KHdoZWVsRXZlbnQpOwogCiAgICAgLy8gRklYTUU6IFNjcm9sbCBzbmFwCkBAIC0xMDEsNiArODks
MTEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpyZXBvc2l0
aW9uU2Nyb2xsaW5nTGF5ZXJzKCkKICAgICBzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKS5wb3NpdGlv
biA9IC1zY3JvbGxQb3NpdGlvbjsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlTWFjOjpyZXBvc2l0aW9uUmVsYXRlZExheWVycygpCit7CisgICAgbV9kZWxlZ2F0
ZS51cGRhdGVTY3JvbGxiYXJQYWludGVycygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShNQUMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaAppbmRleCBjNGQ4
M2ZiZDM5YmZkYTFlMTg3OWM0MzgxNTFhMTJmZWEwZTRmMGJjLi45N2Q0NjJiYWI3NDc0YTAzNWI5
YWJmYzlmZmFhMGU2MzFkYzE4ZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjLmgKQEAgLTMxLDExICszMSwxNCBAQAogCiAjaW5jbHVkZSAiU2Nyb2xs
Q29udHJvbGxlci5oIgogCitPQkpDX0NMQVNTIE5TU2Nyb2xsZXJJbXA7CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIElu
dFBvaW50OworY2xhc3MgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOwogY2xhc3MgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlOwogCkBAIC01NCw2ICs1
Nyw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdDsK
ICNlbmRpZgogCisgICAgdm9pZCB1cGRhdGVGcm9tU3RhdGVOb2RlKGNvbnN0IFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZSYpOworICAgIHZvaWQgdXBkYXRlU2Nyb2xsYmFyUGFpbnRlcnMoKTsK
KwogICAgIHZvaWQgZGVmZXJUZXN0c0ZvclJlYXNvbihXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNj
cm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpEZWZlclRlc3RU
cmlnZ2VyUmVhc29uKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZVRlc3REZWZlcnJh
bEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmll
ciwgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpEZWZlclRlc3RUcmlnZ2VyUmVhc29uKSBjb25zdCBv
dmVycmlkZTsKIApAQCAtODMsNyArODksMTIgQEAgcHJpdmF0ZToKICAgICBGbG9hdFNpemUgdmll
d3BvcnRTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZvaWQgcmVsZWFzZVJl
ZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRocmVhZCgpOworCiAgICAgU2Nyb2xsQ29u
dHJvbGxlciBtX3Njcm9sbENvbnRyb2xsZXI7CisKKyAgICBSZXRhaW5QdHI8TlNTY3JvbGxlcklt
cD4gbV92ZXJ0aWNhbFNjcm9sbGVySW1wOworICAgIFJldGFpblB0cjxOU1Njcm9sbGVySW1wPiBt
X2hvcml6b250YWxTY3JvbGxlckltcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KaW5kZXggY2Jj
YjY2YWIxN2EyYWE3NzdkZTg2YmE4MTUwMTg4MTEyZTIxMWQ2YS4uNzI2N2U0ZGU0ODA4ZTJjM2I1
ZjFkM2YxZjcyNTAwMmM5OWE4YWY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVNYWMubW0KQEAgLTI5LDkgKzI5LDEyIEBACiAjaWYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1w
b3J0ICJTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCIKICNpbXBvcnQgIlNjcm9sbGluZ1Ry
ZWUuaCIKICNpbXBvcnQgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaCIKICNpbXBv
cnQgIlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgiCisjaW1wb3J0IDxRdWFydHpDb3JlL1F1
YXJ0ekNvcmUuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSw3ICs0NCwxOSBAQCBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlTWFjOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjKFNjcgogewogfQogCi1TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjp+
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYygpID0gZGVmYXVsdDsKK1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6On5TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjKCkKK3sKKyAgICByZWxlYXNlUmVmZXJlbmNlc1RvU2Nyb2xsZXJJbXBz
T25UaGVNYWluVGhyZWFkKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYzo6dXBkYXRlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUmIHNjcm9sbGluZ1N0YXRlTm9kZSkKK3sKKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVO
b2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlBhaW50
ZXJGb3JTY3JvbGxiYXIpKSB7CisgICAgICAgIHJlbGVhc2VSZWZlcmVuY2VzVG9TY3JvbGxlcklt
cHNPblRoZU1haW5UaHJlYWQoKTsKKyAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGVySW1wID0gc2Ny
b2xsaW5nU3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsZXJJbXAoKTsKKyAgICAgICAgbV9ob3Jpem9u
dGFsU2Nyb2xsZXJJbXAgPSBzY3JvbGxpbmdTdGF0ZU5vZGUuaG9yaXpvbnRhbFNjcm9sbGVySW1w
KCk7CisgICAgfQorfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWM6OnVwZGF0ZVNjcm9sbFNuYXBQb2ludHMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMsIGNvbnN0IFZl
Y3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMsIGNvbnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRS
YW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBSYW5nZXMpCiB7CkBAIC02NSw2ICs4MCwyNCBAQCBib29s
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFjdGl2ZVNjcm9sbFNuYXBJ
bmRleERpZENoYW5nZSgpIGNvbgogCiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50KQogeworICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZUJlZ2FuKSB7CisgICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xsZXJJbXAg
c2V0VXNlUHJlc2VudGF0aW9uVmFsdWU6WUVTXTsKKyAgICAgICAgW21faG9yaXpvbnRhbFNjcm9s
bGVySW1wIHNldFVzZVByZXNlbnRhdGlvblZhbHVlOllFU107CisgICAgfQorICAgIGlmICh3aGVl
bEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUVuZGVkIHx8
IHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2Fu
Y2VsbGVkKSB7CisgICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xsZXJJbXAgc2V0VXNlUHJlc2VudGF0
aW9uVmFsdWU6Tk9dOworICAgICAgICBbbV9ob3Jpem9udGFsU2Nyb2xsZXJJbXAgc2V0VXNlUHJl
c2VudGF0aW9uVmFsdWU6Tk9dOworICAgIH0KKworI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVAp
IHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZSgpLmV4cGVj
dHNXaGVlbEV2ZW50VGVzdFRyaWdnZXIoKSkgeworICAgICAgICBpZiAoc2Nyb2xsaW5nVHJlZSgp
LnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KHdoZWVsRXZlbnQpKQorICAgICAg
ICAgICAgcmVtb3ZlVGVzdERlZmVycmFsRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxF
dmVudFRlc3RUcmlnZ2VyOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KHNjcm9sbGluZ05vZGUo
KS5zY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xsaW5nVGhy
ZWFkU3luY05lZWRlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlZmVyVGVzdHNGb3JS
ZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGFibGVB
cmVhSWRlbnRpZmllcj4oc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbGluZ05vZGVJRCgpKSwgV2hlZWxF
dmVudFRlc3RUcmlnZ2VyOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkKTsKKyAgICB9CisjZW5k
aWYKKwogICAgIHJldHVybiBtX3Njcm9sbENvbnRyb2xsZXIuaGFuZGxlV2hlZWxFdmVudCh3aGVl
bEV2ZW50KTsKIH0KIApAQCAtMjkxLDYgKzMyNCw0MyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVNYWM6OnJlbW92ZVRlc3REZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2
ZQogICAgIHNjcm9sbGluZ1RyZWUoKS5yZW1vdmVUZXN0RGVmZXJyYWxGb3JSZWFzb24oaWRlbnRp
ZmllciwgcmVhc29uKTsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjp1cGRhdGVTY3JvbGxiYXJQYWludGVycygpCit7CisgICAgaWYgKG1fdmVydGljYWxT
Y3JvbGxlckltcCB8fCBtX2hvcml6b250YWxTY3JvbGxlckltcCkgeworICAgICAgICBhdXRvIHNj
cm9sbFBvc2l0aW9uID0gY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CisKKyAgICAgICAgW0NBVHJh
bnNhY3Rpb24gYmVnaW5dOworICAgICAgICBbQ0FUcmFuc2FjdGlvbiBsb2NrXTsKKworICAgICAg
ICBpZiAoW21fdmVydGljYWxTY3JvbGxlckltcCBzaG91bGRVc2VQcmVzZW50YXRpb25WYWx1ZV0p
IHsKKyAgICAgICAgICAgIGZsb2F0IHByZXNlbnRhdGlvblZhbHVlOworICAgICAgICAgICAgZmxv
YXQgb3ZlcmhhbmdBbW91bnQ7CisgICAgICAgICAgICBTY3JvbGxhYmxlQXJlYTo6Y29tcHV0ZVNj
cm9sbGJhclZhbHVlQW5kT3Zlcmhhbmcoc2Nyb2xsUG9zaXRpb24ueSgpLCB0b3RhbENvbnRlbnRz
U2l6ZSgpLmhlaWdodCgpLCBzY3JvbGxhYmxlQXJlYVNpemUoKS5oZWlnaHQoKSwgcHJlc2VudGF0
aW9uVmFsdWUsIG92ZXJoYW5nQW1vdW50KTsKKyAgICAgICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xs
ZXJJbXAgc2V0UHJlc2VudGF0aW9uVmFsdWU6cHJlc2VudGF0aW9uVmFsdWVdOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKFttX2hvcml6b250YWxTY3JvbGxlckltcCBzaG91bGRVc2VQcmVzZW50
YXRpb25WYWx1ZV0pIHsKKyAgICAgICAgICAgIGZsb2F0IHByZXNlbnRhdGlvblZhbHVlOworICAg
ICAgICAgICAgZmxvYXQgb3ZlcmhhbmdBbW91bnQ7CisgICAgICAgICAgICBTY3JvbGxhYmxlQXJl
YTo6Y29tcHV0ZVNjcm9sbGJhclZhbHVlQW5kT3Zlcmhhbmcoc2Nyb2xsUG9zaXRpb24ueCgpLCB0
b3RhbENvbnRlbnRzU2l6ZSgpLndpZHRoKCksIHNjcm9sbGFibGVBcmVhU2l6ZSgpLndpZHRoKCks
IHByZXNlbnRhdGlvblZhbHVlLCBvdmVyaGFuZ0Ftb3VudCk7CisgICAgICAgICAgICBbbV9ob3Jp
em9udGFsU2Nyb2xsZXJJbXAgc2V0UHJlc2VudGF0aW9uVmFsdWU6cHJlc2VudGF0aW9uVmFsdWVd
OworICAgICAgICB9CisKKyAgICAgICAgW0NBVHJhbnNhY3Rpb24gdW5sb2NrXTsKKyAgICAgICAg
W0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKyAgICB9Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6cmVsZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09u
VGhlTWFpblRocmVhZCgpCit7CisgICAgaWYgKG1fdmVydGljYWxTY3JvbGxlckltcCB8fCBtX2hv
cml6b250YWxTY3JvbGxlckltcCkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIHdvcmth
cm91bmQgaW4gcGxhY2UgZm9yIHRoZSB0aW1lIGJlaW5nIHNpbmNlIE5TU2Nyb2xsZXJJbXBzIGNh
bm5vdCBiZSBkZWFsbG9jYXRlZAorICAgICAgICAvLyBvbiBhIG5vbi1tYWluIHRocmVhZC4gcmRh
cjovL3Byb2JsZW0vMjQ1MzUwNTUKKyAgICAgICAgV1RGOjpjYWxsT25NYWluVGhyZWFkKFt2ZXJ0
aWNhbFNjcm9sbGVySW1wID0gV1RGTW92ZShtX3ZlcnRpY2FsU2Nyb2xsZXJJbXApLCBob3Jpem9u
dGFsU2Nyb2xsZXJJbXAgPSBXVEZNb3ZlKG1faG9yaXpvbnRhbFNjcm9sbGVySW1wKV0geworICAg
ICAgICB9KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oCmluZGV4IDQzMjY3OGE0
NWNjNGZkNGQwMWI2MDFlMmNkMDI1Njg1ZDRmMzhiZDYuLmQwZDljOWM3YjAxYWYyOGFiODVhNTE0
NDdlMDg4ZWE3MDhjMzhjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhclRoZW1lQ29tcG9zaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYmFyVGhlbWVDb21wb3NpdGUuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CiAgKi8KIAotI2lmbmRlZiBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZV9oCi0jZGVmaW5lIFNjcm9s
bGJhclRoZW1lQ29tcG9zaXRlX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU2Nyb2xsYmFy
VGhlbWUuaCIKIApAQCAtNzEsNCArNzAsMyBAQCBwdWJsaWM6CiB9OwogCiB9Ci0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAK
aW5kZXggM2U4ZDJhN2Q5NmYxNTE4ZjdjNmJkNDhlNTY2NTRiY2JlNDkzMTQwMy4uYWQ3ZGEwY2E4
NDRmZmU3MTcyNjE5YjUxOTBkZmFmMzBlNzg4YWNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTU0NCwyMCArNTQ0LDEy
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRDaGFuZ2VQbGF0Zm9ybUxheWVyRm9y
TGF5ZXIoUmVuZGVyTGF5ZXImIGxheWVyLCBjCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8q
IGJhY2tpbmcgPSBsYXllci5iYWNraW5nKCk7CisgICAgaWYgKGF1dG8gbm9kZUlEID0gYmFja2lu
Zy0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShTY3JvbGxDb29yZGluYXRpb25Sb2xlOjpTY3JvbGxp
bmcpKQorICAgICAgICB1cGRhdGVTY3JvbGxpbmdOb2RlTGF5ZXJzKG5vZGVJRCwgbGF5ZXIsICpz
Y3JvbGxpbmdDb29yZGluYXRvcik7CisKICAgICBpZiAoYXV0byBub2RlSUQgPSBiYWNraW5nLT5z
Y3JvbGxpbmdOb2RlSURGb3JSb2xlKFNjcm9sbENvb3JkaW5hdGlvblJvbGU6OlZpZXdwb3J0Q29u
c3RyYWluZWQpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0Tm9kZUxheWVycyhu
b2RlSUQsIHsgYmFja2luZy0+Z3JhcGhpY3NMYXllcigpIH0pOwogCi0gICAgaWYgKGF1dG8gbm9k
ZUlEID0gYmFja2luZy0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShTY3JvbGxDb29yZGluYXRpb25S
b2xlOjpTY3JvbGxpbmcpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiB3b3VsZCBiZSBuaWNlIHRvIG5v
dCBoYXZlIHRvIHNwZWNpYWwtY2FzZSB0aGUgcm9vdC4KLSAgICAgICAgU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6Ok5vZGVMYXllcnMgbm9kZUxheWVyczsKLSAgICAgICAgaWYgKGxheWVyLmlzUmVuZGVy
Vmlld0xheWVyKCkpCi0gICAgICAgICAgICBub2RlTGF5ZXJzID0geyBudWxscHRyLCBzY3JvbGxD
b250YWluZXJMYXllcigpLCBzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSwgZml4ZWRSb290QmFja2dy
b3VuZExheWVyKCksIGNsaXBMYXllcigpLCByb290Q29udGVudHNMYXllcigpIH07Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIG5vZGVMYXllcnMgPSB7IGxheWVyLmJhY2tpbmcoKS0+Z3JhcGhp
Y3NMYXllcigpLCBiYWNraW5nLT5zY3JvbGxDb250YWluZXJMYXllcigpLCBiYWNraW5nLT5zY3Jv
bGxlZENvbnRlbnRzTGF5ZXIoKSB9OwotCi0gICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5z
ZXROb2RlTGF5ZXJzKG5vZGVJRCwgbm9kZUxheWVycyk7Ci0gICAgfQotCiAgICAgaWYgKGF1dG8g
bm9kZUlEID0gYmFja2luZy0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShTY3JvbGxDb29yZGluYXRp
b25Sb2xlOjpGcmFtZUhvc3RpbmcpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0
Tm9kZUxheWVycyhub2RlSUQsIHsgYmFja2luZy0+Z3JhcGhpY3NMYXllcigpIH0pOwogfQpAQCAt
Mzk2OSw2ICszOTYxLDIyIEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYXJl
bnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KGNvbnN0IFJlbmRlckxheWVyCiAgICAgcmV0dXJuIHNj
cm9sbGFibGVSZWN0OwogfQogCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Ny
b2xsaW5nTm9kZUxheWVycyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBSZW5kZXJMYXllciYgbGF5
ZXIsIFNjcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikKK3sKKyAgICBp
ZiAobGF5ZXIuaXNSZW5kZXJWaWV3TGF5ZXIoKSkgeworICAgICAgICBGcmFtZVZpZXcmIGZyYW1l
VmlldyA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKTsKKyAgICAgICAgc2Nyb2xsaW5nQ29vcmRp
bmF0b3Iuc2V0Tm9kZUxheWVycyhub2RlSUQsIHsgbnVsbHB0ciwKKyAgICAgICAgICAgIHNjcm9s
bENvbnRhaW5lckxheWVyKCksIHNjcm9sbGVkQ29udGVudHNMYXllcigpLAorICAgICAgICAgICAg
Zml4ZWRSb290QmFja2dyb3VuZExheWVyKCksIGNsaXBMYXllcigpLCByb290Q29udGVudHNMYXll
cigpLAorICAgICAgICAgICAgZnJhbWVWaWV3LmxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigp
LCBmcmFtZVZpZXcubGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIH0pOworICAgIH0gZWxzZSB7
CisgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLnNldE5vZGVMYXllcnMobm9kZUlELCB7IGxh
eWVyLmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpLAorICAgICAgICAgICAgbGF5ZXIuYmFja2lu
ZygpLT5zY3JvbGxDb250YWluZXJMYXllcigpLCBsYXllci5iYWNraW5nKCktPnNjcm9sbGVkQ29u
dGVudHNMYXllcigpLAorICAgICAgICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwKKyAg
ICAgICAgICAgIGxheWVyLmxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpLCBsYXllci5sYXll
ckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgfSk7CisgICAgfQorfQorCiBTY3JvbGxpbmdOb2RlSUQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxpbmdOb2RlRm9yU2Nyb2xsaW5nUm9s
ZShSZW5kZXJMYXllciYgbGF5ZXIsIFNjcm9sbGluZ1RyZWVTdGF0ZSYgdHJlZVN0YXRlLCBPcHRp
b25TZXQ8U2Nyb2xsaW5nTm9kZUNoYW5nZUZsYWdzPiBjaGFuZ2VzKQogewogICAgIGF1dG8qIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsKQEAgLTM5
ODcsNyArMzk5NSw3IEBAIFNjcm9sbGluZ05vZGVJRCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZVNjcm9sbGluZ05vZGVGb3JTY3JvbGxpbmdSb2xlKFJlbmRlCiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAoY2hhbmdlcyAmIFNjcm9sbGluZ05vZGVDaGFuZ2VGbGFnczo6TGF5ZXIpCi0gICAg
ICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0Tm9kZUxheWVycyhuZXdOb2RlSUQsIHsg
bnVsbHB0ciwgc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSwgc2Nyb2xsZWRDb250ZW50c0xheWVyKCks
IGZpeGVkUm9vdEJhY2tncm91bmRMYXllcigpLCBjbGlwTGF5ZXIoKSwgcm9vdENvbnRlbnRzTGF5
ZXIoKSB9KTsKKyAgICAgICAgICAgIHVwZGF0ZVNjcm9sbGluZ05vZGVMYXllcnMobmV3Tm9kZUlE
LCBsYXllciwgKnNjcm9sbGluZ0Nvb3JkaW5hdG9yKTsKIAogICAgICAgICBpZiAoY2hhbmdlcyAm
IFNjcm9sbGluZ05vZGVDaGFuZ2VGbGFnczo6TGF5ZXJHZW9tZXRyeSkgewogICAgICAgICAgICAg
c2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldFJlY3RSZWxhdGl2ZVRvUGFyZW50Tm9kZShuZXdOb2Rl
SUQsIHJvb3RQYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KCkpOwpAQCAtNDAwMiw3ICs0MDEw
LDcgQEAgU2Nyb2xsaW5nTm9kZUlEIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xs
aW5nTm9kZUZvclNjcm9sbGluZ1JvbGUoUmVuZGUKICAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgaWYgKGNoYW5nZXMgJiBTY3JvbGxpbmdOb2RlQ2hhbmdlRmxhZ3M6OkxheWVyKQotICAgICAg
ICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldE5vZGVMYXllcnMobmV3Tm9kZUlELCB7IGxh
eWVyLmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpLCBsYXllci5iYWNraW5nKCktPnNjcm9sbENv
bnRhaW5lckxheWVyKCksIGxheWVyLmJhY2tpbmcoKS0+c2Nyb2xsZWRDb250ZW50c0xheWVyKCkg
fSk7CisgICAgICAgICAgICB1cGRhdGVTY3JvbGxpbmdOb2RlTGF5ZXJzKG5ld05vZGVJRCwgbGF5
ZXIsICpzY3JvbGxpbmdDb29yZGluYXRvcik7CiAKICAgICAgICAgaWYgKGNoYW5nZXMgJiBTY3Jv
bGxpbmdOb2RlQ2hhbmdlRmxhZ3M6OkxheWVyR2VvbWV0cnkgJiYgdHJlZVN0YXRlLnBhcmVudE5v
ZGVJRCkgewogICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIHNjcm9sbGluZ0FuY2VzdG9yTGF5ZXIg
PSBtX3Njcm9sbGluZ05vZGVUb0xheWVyTWFwLmdldCh0cmVlU3RhdGUucGFyZW50Tm9kZUlELnZh
bHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5oCmluZGV4IDQ5M2UwNzg4MDAwZjA2YWQ3MDkwNTUxMGRlZWU4NmYzYWQyOTUwYmIuLmVj
N2MzODNlYjY3NzdhNTA5OWU0MjhlMjgwMzUwMDAyZGEzNjdlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTQ5Miw2ICs0OTIs
OCBAQCBwcml2YXRlOgogICAgIFNjcm9sbGluZ05vZGVJRCB1cGRhdGVTY3JvbGxpbmdOb2RlRm9y
U2Nyb2xsaW5nUm9sZShSZW5kZXJMYXllciYsIHN0cnVjdCBTY3JvbGxpbmdUcmVlU3RhdGUmLCBP
cHRpb25TZXQ8U2Nyb2xsaW5nTm9kZUNoYW5nZUZsYWdzPik7CiAgICAgU2Nyb2xsaW5nTm9kZUlE
IHVwZGF0ZVNjcm9sbGluZ05vZGVGb3JGcmFtZUhvc3RpbmdSb2xlKFJlbmRlckxheWVyJiwgc3Ry
dWN0IFNjcm9sbGluZ1RyZWVTdGF0ZSYsIE9wdGlvblNldDxTY3JvbGxpbmdOb2RlQ2hhbmdlRmxh
Z3M+KTsKIAorICAgIHZvaWQgdXBkYXRlU2Nyb2xsaW5nTm9kZUxheWVycyhTY3JvbGxpbmdOb2Rl
SUQsIFJlbmRlckxheWVyJiwgU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKKwogICAgIHZvaWQgZGV0
YWNoU2Nyb2xsQ29vcmRpbmF0ZWRMYXllcihSZW5kZXJMYXllciYsIE9wdGlvblNldDxTY3JvbGxD
b29yZGluYXRpb25Sb2xlPik7CiAgICAgdm9pZCBkZXRhY2hTY3JvbGxDb29yZGluYXRlZExheWVy
V2l0aFJvbGUoUmVuZGVyTGF5ZXImLCBTY3JvbGxpbmdDb29yZGluYXRvciYsIFNjcm9sbENvb3Jk
aW5hdGlvblJvbGUpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IDBiMmZhZjFmMzRlMTdiNDdlNTU1ZGQwYjllMGMx
NTU1YzQ5NjkyZGUuLjg0ODFmYWUyZWY0NGJjMDQxZDhiMzU1NDk1ZjE4MWY0ZDNjNTc2MTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5j
cHAKQEAgLTE0Myw4ICsxNDMsMTUgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdAogCiAgICAgaWYg
KG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Ny
b2xsQ29udGFpbmVyTGF5ZXIpKQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PEdyYXBo
aWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4obm9kZS5zY3JvbGxDb250YWluZXJMYXllcigpKTsK
KwogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGlj
X2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNjcm9sbGVkQ29udGVu
dHNMYXllcigpKTsKKworICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdT
dGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKSkKKyAgICAg
ICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+
KG5vZGUuaG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCkpOworCisgICAgaWYgKG5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbFNj
cm9sbGJhckxheWVyKSkKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xh
eWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUudmVydGljYWxTY3JvbGxiYXJMYXllcigpKTsKIH0K
IAogdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlJiBub2RlKQpAQCAtMTczLDEyICsxODAsNiBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Ny
b2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
YwogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZTo6Q29udGVudFNoYWRvd0xheWVyKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuY29udGVudFNoYWRv
d0xheWVyKCkpOwogCi0gICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbFNjcm9sbGJhckxheWVyKSkKLSAgICAgICAg
ZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5v
ZGUudmVydGljYWxTY3JvbGxiYXJMYXllcigpKTsKLQotICAgIGlmIChub2RlLmhhc0NoYW5nZWRQ
cm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbFNjcm9s
bGJhckxheWVyKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVy
OjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuaG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCkpOwotCiAg
ICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlOjpSb290Q29udGVudHNMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnJvb3RDb250ZW50c0xheWVy
KCkpOwogfQpAQCAtMjU2LDYgKzI1NywyMCBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9sbAogICAg
ICAgICBub2RlLnNldFNjcm9sbGVkQ29udGVudHNMYXllcihsYXllcklEKTsKICAgICB9CiAKKyAg
ICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGU6Okhvcml6b250YWxTY3JvbGxiYXJMYXllcikpIHsKKyAgICAgICAgR3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
bGF5ZXJJRCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG5vZGUuc2V0SG9y
aXpvbnRhbFNjcm9sbGJhckxheWVyKGxheWVySUQpOworICAgIH0KKworICAgIGlmIChub2RlLmhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6VmVydGlj
YWxTY3JvbGxiYXJMYXllcikpIHsKKyAgICAgICAgR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXll
cklEIGxheWVySUQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGF5ZXJJRCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG5vZGUuc2V0VmVydGljYWxTY3JvbGxiYXJM
YXllcihsYXllcklEKTsKKyAgICB9CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjk4LDIw
ICszMTMsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUwogICAgICAgICBub2RlLnNldENvbnRl
bnRTaGFkb3dMYXllcihsYXllcklEKTsKICAgICB9CiAKLSAgICBpZiAobm9kZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsU2Nyb2xs
YmFyTGF5ZXIpKSB7Ci0gICAgICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXll
cklEOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxheWVySUQpKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICBub2RlLnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIobGF5
ZXJJRCk7Ci0gICAgfQotCi0gICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIpKSB7Ci0g
ICAgICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEOwotICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGxheWVySUQpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICBub2RlLnNldEhvcml6b250YWxTY3JvbGxiYXJMYXllcihsYXllcklEKTsKLSAgICB9
Ci0KICAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGU6OlJvb3RDb250ZW50c0xheWVyKSkgewogICAgICAgICBHcmFwaGljc0xheWVy
OjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRDsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShs
YXllcklEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBjNDNlNGU1MDkwYmVkYzcxYzlkZTYz
Zjg2N2Y3NDBhOTQxZmQwZjEyLi4yNGQ0YmVhMGQ5NjEyMWE1MWE1NDQ1ZGIwZmFiZjYxNzY4ZGVi
YzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00NTYsNiArNDU2LDcgQEAgVUlQcm9jZXNz
L1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQogVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9tYWMvU2Nyb2xsZXJNYWMubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFj
L1Njcm9sbGVyUGFpck1hYy5tbQogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKK1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMu
Y3BwCiAKIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJ
T1MubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHlJT1MubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LmNwcAppbmRleCAzMzY4MjQ2YWQyNzVhZTdhYzNiODZlOWQ0YTdhMjQ1NzZjNGJi
NmI4Li4xMWY3ODUwMmZlOTlkZDVkOGFkZjZlMTlmZDlkNWU5YTQ4OThkOGY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xNDYsNiAr
MTQ2LDEyIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y29ubmVjdFN0
YXRlTm9kZUxheWVycyhTY3JvbGxpbmdTdGF0ZVRyZWUmCiAKICAgICAgICAgICAgIGlmIChzY3Jv
bGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6U2Nyb2xsZWRDb250ZW50c0xheWVyKSkKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdT
dGF0ZU5vZGUuc2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKGxheWVyVHJlZUhvc3QubGF5ZXJGb3JJ
RChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsZWRDb250ZW50c0xheWVyKCkpKTsKKworICAgICAg
ICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIpKQorICAgICAg
ICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRWZXJ0aWNhbFNjcm9sbGJhckxheWVyKGxh
eWVyVHJlZUhvc3QubGF5ZXJGb3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUudmVydGljYWxTY3JvbGxi
YXJMYXllcigpKSk7CisKKyAgICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFs
U2Nyb2xsYmFyTGF5ZXIpKQorICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRI
b3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIobGF5ZXJUcmVlSG9zdC5sYXllckZvcklEKHNjcm9sbGlu
Z1N0YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoKSkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBTY3JvbGxpbmdOb2RlVHlwZTo6RnJhbWVIb3N0
aW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGIwMTYzMThlZDkzYzg2Mzli
MTY1YTcwYjM0OTZlY2Q3NDc4NWQzZmQuLmIwZWQ3OTBhMTc0ZjkwM2Q4ZjhiMmQ2YTFhZDg3OGNj
MzQ4MTM5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTM5LDYgKzM5LDcg
QEAKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmgiCiAj
ZWxzZQogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMu
aCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFj
LmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMjUsOCArMTI2LDcgQEAgUmVm
PFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdU
cmVlTm9kZShTY3JvbGxpbmdOb2QKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBy
ZXR1cm4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlz
LCBub2RlSUQpOwogI2Vsc2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IGJyZWFrOworICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZVJlbW90ZU1hYzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogI2VuZGlmCiAgICAgY2FzZSBTY3Jv
bGxpbmdOb2RlVHlwZTo6Rml4ZWQ6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWRO
b2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVSZW1vdGVNYWMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcAppbmRleCA2
NDQ5NTJkYWZjZjI2OGQ5ZDE5MjE3YzczM2VlODUyMzliZDM2NDgyLi4zMmExZTMzYWE4NTY3YzBi
NjE2MmUwNjc4M2NmMzc2Y2Y2MTkwN2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKQEAgLTU0
LDYgKzU0LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFj
Ojpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFMKICAgICBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0YXRlTm9kZSk7
CiAgICAgY29uc3QgYXV0byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CiAKKyAgICAvLyBGSVhNRTogUHVz
aCB0byBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjPwogICAgIGlmIChzY3Jv
bGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3Jv
bGxpbmdOb2RlOjpWZXJ0aWNhbFNjcm9sbGJhckxheWVyKSkKICAgICAgICAgbV9zY3JvbGxlclBh
aXItPnZlcnRpY2FsU2Nyb2xsZXIoKS5zZXRIb3N0TGF5ZXIoc2Nyb2xsaW5nU3RhdGVOb2RlLnZl
cnRpY2FsU2Nyb2xsYmFyTGF5ZXIoKSk7CiAKQEAgLTY3LDcgKzY4LDggQEAgdm9pZCBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpyZXBvc2l0aW9uUmVsYXRlZExheWVy
cygpCiB7CiAgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6cmVwb3NpdGlv
blJlbGF0ZWRMYXllcnMoKTsKIAotICAgIG1fc2Nyb2xsZXJQYWlyLT51cGRhdGVWYWx1ZXMoKTsK
KyAgICBpZiAobV9zY3JvbGxlclBhaXIpCisgICAgICAgIG1fc2Nyb2xsZXJQYWlyLT51cGRhdGVW
YWx1ZXMoKTsKIH0KIAogU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCkBAIC03OSw2ICs4MSw4IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWM6OmhhbmRsZVdoZWVsRXZl
bnQoCiAKIGJvb2wgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFu
ZGxlTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCiB7Cisg
ICAgaWYgKCFtX3Njcm9sbGVyUGFpcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVy
biBtX3Njcm9sbGVyUGFpci0+aGFuZGxlTW91c2VFdmVudChtb3VzZUV2ZW50KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg5NjBjZWMzMGU0MzMxOWFhMDI3
ZDlhMjFmY2VmYzgzNzYzNTA0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYy5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
UmVtb3RlTWFjLmgiCisKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShN
QUMpCisKKyNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdUcmVlLmgiCisjaW5jbHVkZSAiU2Nyb2xs
ZXJQYWlyTWFjLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK1JlZjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjPiBT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpjcmVhdGUoU2Nyb2xs
aW5nVHJlZSYgdHJlZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjKHRy
ZWUsIG5vZGVJRCkpOworfQorCitTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVt
b3RlTWFjOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjKFNjcm9s
bGluZ1RyZWUmIHRyZWUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCisgICAgOiBTY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjKHRyZWUsIG5vZGVJRCkKKyAgICAsIG1fc2Nyb2xs
ZXJQYWlyKHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsZXJQYWlyTWFjPigqdGhpcykpCit7Cit9CisK
K1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWM6On5TY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjKCkKK3sKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNo
aWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQoreworICAgIFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRy
ZW4oc3RhdGVOb2RlKTsKKyAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSBkb3du
Y2FzdDxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT4oc3RhdGVOb2RlKTsKKwor
ICAgIC8vIEZJWE1FOiBQdXNoIHRvIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWM/CisgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OlZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIpKQor
ICAgICAgICBtX3Njcm9sbGVyUGFpci0+dmVydGljYWxTY3JvbGxlcigpLnNldEhvc3RMYXllcihz
Y3JvbGxpbmdTdGF0ZU5vZGUudmVydGljYWxTY3JvbGxiYXJMYXllcigpKTsKKworICAgIGlmIChz
Y3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIpKQorICAgICAgICBtX3Nj
cm9sbGVyUGFpci0+aG9yaXpvbnRhbFNjcm9sbGVyKCkuc2V0SG9zdExheWVyKHNjcm9sbGluZ1N0
YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoKSk7CisKKyAgICBtX3Njcm9sbGVyUGFp
ci0+dXBkYXRlVmFsdWVzKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZVJlbW90ZU1hYzo6cmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKQoreworICAgIFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OnJlcG9zaXRpb25SZWxhdGVkTGF5ZXJz
KCk7CisKKyAgICBtX3Njcm9sbGVyUGFpci0+dXBkYXRlVmFsdWVzKCk7Cit9CisKK1Njcm9sbGlu
Z0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWM6
OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQor
eworICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVs
RXZlbnQod2hlZWxFdmVudCk7CisKKyAgICByZXR1cm4gbV9zY3JvbGxlclBhaXItPmhhbmRsZVdo
ZWVsRXZlbnQod2hlZWxFdmVudCkgPyBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZl
bnQgOiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7Cit9CisKK2Jvb2wg
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlTW91c2VF
dmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCit7CisgICAgcmV0dXJu
IG1fc2Nyb2xsZXJQYWlyLT5oYW5kbGVNb3VzZUV2ZW50KG1vdXNlRXZlbnQpOworfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZTdlMWRiZjVlN2EyM2ViMGVkODk5NDhiZjc5YTkyYWE5ZGQ0ZGQxNS4uNmE3ZGRj
YzM5NDBjNzJjYzhiY2I0MjcxNjg4OWVhMmZmOWQ0NTE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODg4LDYgKzE4ODgsOCBAQAog
CQkwRjVFMjAwMjE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNzA3Qzc3MUExRkVFODMwMERB
N0E0NSAvKiBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXllclRyZWVTY3JvbGxp
bmdQZXJmb3JtYW5jZURhdGEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNzA3
Qzc5MUExRkVFQTMwMERBN0E0NSAvKiBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5j
ZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTGF5ZXJUcmVl
U2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNzNCNzY3MjIyQjM4QzYwMDgwNTMxNiAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlUmVtb3RlTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRjczQjc2ODIyMkIzOEM2MDA4MDUzMTYgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZVJlbW90ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGODUwRkU0MUVEN0MzOUYwMEZCNzdBNyAvKiBXZWJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4NTBGRTUx
RUQ3QzM5RjAwRkI3N0E3IC8qIFdlYlBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5MzFDMUExOEM1NzExOTAwREJBN0MzIC8q
IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODc2Myw2ICs4NzY1LDggQEAKIAkJCQlF
NDA0OTA3MjIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLm1tICovLAogCQkJCUU0
MDQ5MDcxMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlTWFjLmNwcCAqLywKIAkJCQlFNDA0OTA3MzIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oICovLAorCQkJCTBGNzNCNzY3MjIy
QjM4QzYwMDgwNTMxNiAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3Rl
TWFjLmNwcCAqLywKKwkJCQkwRjczQjc2ODIyMkIzOEM2MDA4MDUzMTYgLyogU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oICovLAogCQkJKTsKIAkJCXBhdGggPSBt
YWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363471</attachid>
            <date>2019-03-03 17:05:25 -0800</date>
            <delta_ts>2019-03-03 22:43:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195258-20190303170523.patch</filename>
            <type>text/plain</type>
            <size>83058</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGI0NTBkMjFiNDBlYWY0
NTY2ZTIxYjQ4ZGY2NjIyMTIzOGI2MGVmYS4uODQwYzI0ZDk2YWVkMWU0ZjM4OTNlYzk5NWJkMGQy
NjIzMDA4YmQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDE5LTAzLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUg
Y29kZSBiZXR3ZWVuIG92ZXJmbG93IGFuZCBmcmFtZSBzY3JvbGxpbmcgbm9kZXMsIGZpeGluZyBv
dmVyZmxvdyBzY3JvbGxiYXIgZGlzcGxheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtYW5hZ2VtZW50IG9mIHNjcm9sbGJh
ciBsYXllcnMgYW5kIHNjcm9sbGJhciBwYWludGVycyAoIk5TU2Nyb2xsZXJJbXAiKSBkb3duIHRv
CisgICAgICAgIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSB0byBiZSBzaGFyZWQgYmV0d2Vl
biBmcmFtZSBhbmQgb3ZlcmZsb3cgbm9kZXMsIGFsbG93aW5nIGZvcgorICAgICAgICBzY3JvbGxp
bmcgdGhyZWFkIHVwZGF0ZXMgb2Ygb3ZlcmZsb3cgc2Nyb2xsYmFycy4gSXQgYWxzbyBtb3ZlcyBz
b21lIHNjcm9sbGluZyB0cmVlLXNpZGUgY29kZQorICAgICAgICB0byBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlTWFjIHRvIGJlIHNoYXJlZCBiZXR3ZWVuIHRoZSAidHJlZSIgbm9k
ZXMgZm9yIG92ZXJmbG93IGFuZCBmcmFtZXMuCisKKyAgICAgICAgTGF5ZXJzIGZvciBzY3JvbGxi
YXJzIGFyZSBnaXZlbiB0byBzY3JvbGxpbmcgc3RhdGUgbm9kZXMgdmlhIHNldE5vZGVMYXllcnMo
KSBub3csIGFuZAorICAgICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbGlu
Z05vZGVMYXllcnMoKSBpcyBhZGRlZCB0byBwcm92aWRlIGEgYm90dGxlbmVjayB0byBjYWxsIHRo
YXQuCisgICAgICAgIEF0IHNvbWUgcG9pbnQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Ny
b2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHNob3VsZCBiZSByZWxpZXZlZAor
ICAgICAgICBvZiB0aGUgcmVzcG9uc2liaWxpdHkgb2YgcHVzaGluZyBzY3JvbGxiYXIgbGF5ZXJz
IChidXQgdGhlIHNjcm9sbGluZyBzdGF0ZSB0cmVlIG5lZWRzIHRvIGhvbGQKKyAgICAgICAgcmVm
ZXJlbmNlcyB0byBHcmFwaGljc0xheWVycyBiZWZvcmUgdGhhdCBiZWNvbWVzIHNhZmUpLgorICAg
ICAgICAKKyAgICAgICAgVGhlIGFjdHVhbCBmaXggdGhhdCBhbGxvd3Mgb3ZlcmZsb3cgc2Nyb2xs
YmFycyB0byBzaG93IGlzIHRoZSBjaGFuZ2UgaW4KKyAgICAgICAgQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvcjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHRoYXQgY2Fs
bHMgc2Nyb2xsYWJsZUFyZWEuKlNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCkKKyAgICAgICAgZm9y
IGFsbCBTY3JvbGxhYmxlQXJlYXMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBDQUxheWVyIGlzIHB1
c2hlZCBvbnRvIHRoZSBOU1Njcm9sbGVySW1wLgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxhYmxlQXJlYVNjcm9s
bGJhckxheWVyRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OnNldE5vZGVMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6c2V0RnJhbWVTY3JvbGxpbmdOb2RlU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsaW5nTm9kZVNjcm9sbGFi
bGVBcmVhR2VvbWV0cnkpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRBbGxQcm9wZXJ0
aWVzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xs
aW5nTm9kZTo6c2V0VmVydGljYWxTY3JvbGxiYXJMYXllcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0SG9yaXpvbnRhbFNj
cm9sbGJhckxheWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRl
RnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyk6IERlbGV0
ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRBbGxQcm9wZXJ0aWVzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEhvcml6b250YWxTY3Jv
bGxiYXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyk6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6Omhvcml6b250YWxT
Y3JvbGxiYXJMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OnZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjp2ZXJ0aWNhbFNjcm9sbGVySW1wIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6aG9y
aXpvbnRhbFNjcm9sbGVySW1wIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldE9yQ2xl
YXJMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVX
aGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlTWFjLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNG
cm9tU2Nyb2xsYmFycyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmNvbW1pdFN0YXRlQmVmb3JlQ2hp
bGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpyZXBvc2l0aW9uUmVsYXRlZExheWVycyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjp+U2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpyZWxlYXNlUmVmZXJlbmNlc1RvU2Ny
b2xsZXJJbXBzT25UaGVNYWluVGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6
OnJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6
flNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6dXBkYXRlRnJvbVN0YXRl
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnVwZGF0ZVNjcm9sbGJhclBhaW50ZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnJl
bGVhc2VSZWZlcmVuY2VzVG9TY3JvbGxlckltcHNPblRoZU1haW5UaHJlYWQpOgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmRpZENoYW5nZVBsYXRmb3JtTGF5ZXJGb3JMYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbGluZ05vZGVMYXllcnMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxp
bmdOb2RlRm9yU2Nyb2xsaW5nUm9sZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oOgorCiAyMDE5LTAzLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFNoYXJlIG1vcmUgY29kZSBmb3IgdXBkYXRpbmcgdGhlIHN0
YXRlIG9mIGZyYW1lIHNjcm9sbGluZyBub2RlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxNjc5ZDliZGYyZTIwODkz
ZTkyYzE4ZmYzOWE3MjM5MjNkY2NmNGRkLi4xMjkyZmZmMjI5OWU3YWZlZDc3YWQ5YWVjZDlmZWE5
OGE3NmZkZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTAzLTAzICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUgY29k
ZSBiZXR3ZWVuIG92ZXJmbG93IGFuZCBmcmFtZSBzY3JvbGxpbmcgbm9kZXMsIGZpeGluZyBvdmVy
ZmxvdyBzY3JvbGxiYXIgZGlzcGxheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk1MjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBtYW5hZ2VtZW50IG9mIHNjcm9sbGJhciBs
YXllcnMgYW5kIHNjcm9sbGJhciBwYWludGVycyAoIk5TU2Nyb2xsZXJJbXAiKSBkb3duIHRvCisg
ICAgICAgIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSB0byBiZSBzaGFyZWQgYmV0d2VlbiBm
cmFtZSBhbmQgb3ZlcmZsb3cgbm9kZXMsIGFsbG93aW5nIGZvcgorICAgICAgICBzY3JvbGxpbmcg
dGhyZWFkIHVwZGF0ZXMgb2Ygb3ZlcmZsb3cgc2Nyb2xsYmFycy4gSXQgYWxzbyBtb3ZlcyBzb21l
IHNjcm9sbGluZyB0cmVlLXNpZGUgY29kZQorICAgICAgICB0byBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjIHRvIGJlIHNoYXJlZCBiZXR3ZWVuIHRoZSAidHJlZSIgbm9kZXMg
Zm9yIG92ZXJmbG93IGFuZCBmcmFtZXMuCisKKyAgICAgICAgTGF5ZXJzIGZvciBzY3JvbGxiYXJz
IGFyZSBnaXZlbiB0byBzY3JvbGxpbmcgc3RhdGUgbm9kZXMgdmlhIHNldE5vZGVMYXllcnMoKSBu
b3csIGFuZAorICAgICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbGluZ05v
ZGVMYXllcnMoKSBpcyBhZGRlZCB0byBwcm92aWRlIGEgYm90dGxlbmVjayB0byBjYWxsIHRoYXQu
CisgICAgICAgIEF0IHNvbWUgcG9pbnQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xs
YWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHNob3VsZCBiZSByZWxpZXZlZAorICAg
ICAgICBvZiB0aGUgcmVzcG9uc2liaWxpdHkgb2YgcHVzaGluZyBzY3JvbGxiYXIgbGF5ZXJzIChi
dXQgdGhlIHNjcm9sbGluZyBzdGF0ZSB0cmVlIG5lZWRzIHRvIGhvbGQKKyAgICAgICAgcmVmZXJl
bmNlcyB0byBHcmFwaGljc0xheWVycyBiZWZvcmUgdGhhdCBiZWNvbWVzIHNhZmUpLgorICAgICAg
ICAKKyAgICAgICAgVGhlIGFjdHVhbCBmaXggdGhhdCBhbGxvd3Mgb3ZlcmZsb3cgc2Nyb2xsYmFy
cyB0byBzaG93IGlzIHRoZSBjaGFuZ2UgaW4KKyAgICAgICAgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpIHRoYXQgY2FsbHMg
c2Nyb2xsYWJsZUFyZWEuKlNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCkKKyAgICAgICAgZm9yIGFs
bCBTY3JvbGxhYmxlQXJlYXMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBDQUxheWVyIGlzIHB1c2hl
ZCBvbnRvIHRoZSBOU1Njcm9sbGVySW1wLgorCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAg
KEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKToKKyAg
ICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+Ojpl
bmNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU+OjpkZWNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZUZyYW1l
U2Nyb2xsaW5nTm9kZT46OmRlY29kZSk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5Ojpjb25uZWN0U3RhdGVOb2RlTGF5ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVNYWM6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4pOgorICAgICAg
ICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpyZXBv
c2l0aW9uUmVsYXRlZExheWVycyk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVSZW1vdGVNYWM6OmhhbmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVSZW1vdGVNYWMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVN
YWMuY3BwLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlUmVtb3RlTWFjOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlUmVtb3RlTWFjKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6flNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVSZW1vdGVNYWMpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlUmVtb3RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAgICAgICAg
KFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6cmVw
b3NpdGlvblJlbGF0ZWRMYXllcnMpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFu
ZGxlTW91c2VFdmVudCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisKIDIwMTktMDMtMDMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtBcHBsZSBQYXldIFVudGFuZ2xlIFdlYlBhZ2VQcm94eSBhbmQgV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGZhZTMwZjgzNTUyNWY2ZjFl
MTMyNDMyNDhlMzRkMzVkY2RkMjcwMzguLjU3ZTJkZjg1NjFmODhiODAzOTI3YjBlZWM4YmNmMGNi
YWE0YjA1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTUyLDcgKzE1Miw3IEBAIHBh
Z2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLm1tCiAKIHBhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQogcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5tbQotcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCitwYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlTWFjLm1tCiBwYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVGhyZWFkTWFjLm1tCiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYy5tbQogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0YzAzY2YwODNiYmRjYzRjYWVjYWFmYzMzZDJh
MGM0ZDQ2ZDE5YTFkLi40YTYyNGY5YWQwZGVjNjBlZjgwNTBkZDYyMzM5MmM3NzEyYzM4NWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zNTQsNiArMzU0LDcgQEAKIAkJMEY2MEYzMkIxREZCQjEwNzAwNDE2RDZDIC8qIENvbW1v
blZNLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYw
RjMyQTFERkJCMTA0MDA0MTZENkMgLyogQ29tbW9uVk0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYzODNERTE4NjE1QjI5MDAzRTVEQjUgLyog
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjYzODNEQzE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZBMTJCQzFBMDA5MjM3
MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjczQjc2OTIyMkIzQTBDMDA4MDUzMTYgLyogU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDMDUxNkEyMTlCNUVCRTAwMzFDMzlFIC8qIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdEMDczMzE4ODRDNTZDMDBCNEFGODYg
LyogUGxhdGZvcm1UZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3Mjg0N0UyMTZFQkM1QjAwMDQzQ0ZBNCAvKiBQbGF0Zm9ybVRleHRUcmFj
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
ODUwRkUzMUVEN0MxODMwMEZCNzdBNyAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODUwRkUyMUVEN0Mx
ODMwMEZCNzdBNyAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3MTY3MDFDODY5RDgzMDA0RkYw
REUgLyogTGVuZ3RoUG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGODcxNjZFMUM4NjlEODMwMDRGRjBERSAvKiBMZW5ndGhQb2ludC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01Nzg1LDYgKzU3
ODYsNyBAQAogCQkwRjZBMTJCQjFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVidWdQYWdlT3Zlcmxh
eXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjZBMTJCQzFBMDA5MjM3MDBD
NkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRGVidWdQYWdlT3ZlcmxheXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY3MDQ5NUQyMTFCNTI0MjAwMzY5OTY4IC8qIEFjdGl2aXR5U3RhdGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQWN0aXZpdHlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNzNCNzY1MjIyQjMyN0YwMDgwNTMxNiAvKiBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGVN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGVN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0RGMTQ3MUUyQkYxQTYwMDk1
OTUxQiAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkNvcmVKU0NsaWVudERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjg1MEZFMjFFRDdDMTgzMDBGQjc3QTcgLyogUGVyZm9ybWFuY2VMb2dnaW5n
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9n
Z2luZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3MTY2RDFDODY5
RDgzMDA0RkYwREUgLyogTGVuZ3RoUG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTGVuZ3RoUG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTgwNCw3ICs1ODA2LDYgQEAKIAkJMEZBMDg1MkIxRTZGQjU1QTAwOTc1RkREIC8qIENTU1By
b3BlcnRpZXMuanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuanNvbjsgcGF0aCA9IENTU1Byb3BlcnRpZXMuanNvbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZBMjRENzcxNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5
ZXJVcGRhdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBo
aWNzTGF5ZXJVcGRhdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZBMjRE
NzgxNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGQTg4RUJDMTZBOEQxQkQwMEY5OTk4NCAvKiBTY3JvbGxpbmdT
dGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkI2MjUyQzE4REUxQjE1MDBBMDdDMDUgLyogR2Vv
bWV0cnlVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R2VvbWV0cnlVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkI2
MjUyRDE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbWV0cnlVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEZCODg5MEMxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9sbGluZ1N0YXRl
U3RpY2t5Tm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3Jv
bGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTY5ODUsNyArMTY5ODYsNyBAQAogCQkJCTFBRjYyRUUzMTREQTIyQTcwMDQxNTU2QyAvKiBTY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5tbSAqLywKIAkJCQk1MTdERUVFNzFERTk0QjA4MDBCOTE2NDQg
LyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmggKi8sCiAJCQkJNTE3REVFRTMxREU5
NEFEQzAwQjkxNjQ0IC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5tbSAqLywKLQkJ
CQkwRkE4OEVCQzE2QThEMUJEMDBGOTk5ODQgLyogU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGVNYWMubW0gKi8sCisJCQkJMEY3M0I3NjUyMjJCMzI3RjAwODA1MzE2IC8qIFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbSAqLywKIAkJCQkxQUY2MkYyMzE0REFGRTkxMDA0MTU1
NkMgLyogU2Nyb2xsaW5nVGhyZWFkTWFjLm1tICovLAogCQkJCTkzQzRBNDEzMTYyOURGNUEwMEMz
RUI2RSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmggKi8sCiAJCQkJOTND
NEE0MTQxNjI5REY1QTAwQzNFQjZFIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVN
YWMubW0gKi8sCkBAIC0zMTUwMyw2ICszMTUwNCw3IEBACiAJCQkJMEZFNTgwNjQxOTMyN0E2MjAw
REUzMkVCIC8qIFNjcm9sbGluZ1RyZWVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUFEREU0
MTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFQTNFODAxOTFCMzE2OTAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNzNCNzY5MjIyQjNBMEMwMDgwNTMxNiAv
KiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzkxQTk5RDE2MjlENzAwMDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE2RDVBOTlEMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjM3
RjA4NTIyMDJCRjk4MDBBODlDMEIgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDE5NzcxZTcy
YTkwNGYzODYwYzg1N2YwMTVlMGRkZTM3NmYyYWRiYzQuLmU4ZjFlNWZkYjQ0M2VlYTQ3NGUwMDhj
MzQzMTg2OGQyOTI3NzQxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC00NTYsMjAgKzQ1
NiwxOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbGFibGVBcmVhU2Ny
b2xsYmFyTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJsZQogICAgIEFTU0VSVChtX3BhZ2UpOwogCiAg
ICAgYXV0byogbm9kZSA9IG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zdGF0ZU5vZGVGb3JJRChzY3Jv
bGxhYmxlQXJlYS5zY3JvbGxpbmdOb2RlSUQoKSk7Ci0gICAgaWYgKGlzPFNjcm9sbGluZ1N0YXRl
RnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKSkgewotICAgICAgICBhdXRvJiBzY3JvbGxpbmdOb2Rl
ID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KCpub2RlKTsKKyAg
ICBpZiAoaXM8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihub2RlKSkgeworICAgICAgICBh
dXRvJiBzY3JvbGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
Pigqbm9kZSk7CiAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBWZXJ0aWNhbFNjcm9sbGJhcikK
ICAgICAgICAgICAgIHNjcm9sbGluZ05vZGUuc2V0VmVydGljYWxTY3JvbGxiYXJMYXllcihzY3Jv
bGxhYmxlQXJlYS5sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBzY3JvbGxpbmdOb2RlLnNldEhvcml6b250YWxTY3JvbGxiYXJMYXllcihzY3Jv
bGxhYmxlQXJlYS5sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSk7CiAgICAgfQogCi0gICAg
aWYgKCZzY3JvbGxhYmxlQXJlYSA9PSBtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKSkgewotICAg
ICAgICBpZiAob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpCi0gICAgICAgICAgICBz
Y3JvbGxhYmxlQXJlYS52ZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxTY3JvbGxiYXJMYXll
ckRpZENoYW5nZSgpOwotICAgIH0KKyAgICBpZiAob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3Jv
bGxiYXIpCisgICAgICAgIHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXJEaWRD
aGFuZ2UoKTsKKyAgICBlbHNlCisgICAgICAgIHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxTY3Jv
bGxiYXJMYXllckRpZENoYW5nZSgpOwogfQogCiBTY3JvbGxpbmdOb2RlSUQgQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Ny
b2xsaW5nTm9kZUlEIG5ld05vZGVJRCkKQEAgLTU2Nyw2ICs1NjUsOCBAQCB2b2lkIEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNldE5vZGVMYXllcnMoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwg
Y29uc3QgTm9kZQogICAgICAgICBhdXRvJiBzY3JvbGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlPigqbm9kZSk7CiAgICAgICAgIHNjcm9sbGluZ05vZGUuc2V0
U2Nyb2xsQ29udGFpbmVyTGF5ZXIobm9kZUxheWVycy5zY3JvbGxDb250YWluZXJMYXllcik7CiAg
ICAgICAgIHNjcm9sbGluZ05vZGUuc2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKG5vZGVMYXllcnMu
c2Nyb2xsZWRDb250ZW50c0xheWVyKTsKKyAgICAgICAgc2Nyb2xsaW5nTm9kZS5zZXRIb3Jpem9u
dGFsU2Nyb2xsYmFyTGF5ZXIobm9kZUxheWVycy5ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIpOwor
ICAgICAgICBzY3JvbGxpbmdOb2RlLnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIobm9kZUxheWVy
cy52ZXJ0aWNhbFNjcm9sbGJhckxheWVyKTsKIAogICAgICAgICBpZiAoaXM8U2Nyb2xsaW5nU3Rh
dGVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpKSB7CiAgICAgICAgICAgICBhdXRvJiBmcmFtZVNj
cm9sbGluZ05vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4o
Km5vZGUpOwpAQCAtNjA1LDEwICs2MDUsNiBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnNldEZyYW1lU2Nyb2xsaW5nTm9kZVN0YXRlKFNjcm9sbGluZ05vZGVJRCBub2RlSQogCiAg
ICAgYXV0byYgZnJhbWVTY3JvbGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFt
ZVNjcm9sbGluZ05vZGU+KCpzdGF0ZU5vZGUpOwogCi0gICAgYXV0byogdmVydGljYWxTY3JvbGxi
YXIgPSBmcmFtZVZpZXcudmVydGljYWxTY3JvbGxiYXIoKTsKLSAgICBhdXRvKiBob3Jpem9udGFs
U2Nyb2xsYmFyID0gZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXIoKTsKLSAgICBmcmFtZVNj
cm9sbGluZ05vZGUuc2V0U2Nyb2xsZXJJbXBzRnJvbVNjcm9sbGJhcnModmVydGljYWxTY3JvbGxi
YXIsIGhvcml6b250YWxTY3JvbGxiYXIpOwotCiAgICAgZnJhbWVTY3JvbGxpbmdOb2RlLnNldEZy
YW1lU2NhbGVGYWN0b3IoZnJhbWVWaWV3LmZyYW1lKCkuZnJhbWVTY2FsZUZhY3RvcigpKTsKICAg
ICBmcmFtZVNjcm9sbGluZ05vZGUuc2V0SGVhZGVySGVpZ2h0KGZyYW1lVmlldy5oZWFkZXJIZWln
aHQoKSk7CiAgICAgZnJhbWVTY3JvbGxpbmdOb2RlLnNldEZvb3RlckhlaWdodChmcmFtZVZpZXcu
Zm9vdGVySGVpZ2h0KCkpOwpAQCAtNjMxLDE1ICs2MjcsMTcgQEAgdm9pZCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9tZXRyeShTY3Jv
bGxpbmcKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byYgc2Nyb2xsaW5nTm9kZSA9IGRvd25j
YXN0PFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4oKnN0YXRlTm9kZSk7CisKKyAgICBhdXRv
KiB2ZXJ0aWNhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsYmFyKCk7
CisgICAgYXV0byogaG9yaXpvbnRhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhLmhvcml6b250
YWxTY3JvbGxiYXIoKTsKKyAgICBzY3JvbGxpbmdOb2RlLnNldFNjcm9sbGVySW1wc0Zyb21TY3Jv
bGxiYXJzKHZlcnRpY2FsU2Nyb2xsYmFyLCBob3Jpem9udGFsU2Nyb2xsYmFyKTsKKwogICAgIHNj
cm9sbGluZ05vZGUuc2V0U2Nyb2xsT3JpZ2luKHNjcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigp
KTsKICAgICBzY3JvbGxpbmdOb2RlLnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbGFibGVBcmVhLnNj
cm9sbFBvc2l0aW9uKCkpOwogICAgIHNjcm9sbGluZ05vZGUuc2V0VG90YWxDb250ZW50c1NpemUo
c2Nyb2xsYWJsZUFyZWEudG90YWxDb250ZW50c1NpemUoKSk7CiAgICAgc2Nyb2xsaW5nTm9kZS5z
ZXRSZWFjaGFibGVDb250ZW50c1NpemUoc2Nyb2xsYWJsZUFyZWEucmVhY2hhYmxlVG90YWxDb250
ZW50c1NpemUoKSk7CiAgICAgc2Nyb2xsaW5nTm9kZS5zZXRTY3JvbGxhYmxlQXJlYVNpemUoc2Ny
b2xsYWJsZUFyZWEudmlzaWJsZVNpemUoKSk7CiAKLSAgICBhdXRvKiB2ZXJ0aWNhbFNjcm9sbGJh
ciA9IHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsYmFyKCk7Ci0gICAgYXV0byogaG9yaXpv
bnRhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxTY3JvbGxiYXIoKTsKLQog
ICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBzY3JvbGxQYXJhbWV0ZXJzOwogICAgIHNjcm9s
bFBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS5o
b3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMudmVydGlj
YWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFyZWEudmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaAppbmRleCA4MmNiYjdjMDI2YjRlNjQxOThmOWM0ZDMyNjRhNTFiNjU0ZjQ2
ZTVlLi42YmQ1ZTgxNTA0NDEyNDU1NTZkZmFmOTUxMjI2OGE5NWIwNGIwMzdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgK
QEAgLTEzNiw2ICsxMzYsOCBAQCBwdWJsaWM6CiAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGNvdW50
ZXJTY3JvbGxpbmdMYXllciB7IG51bGxwdHIgfTsKICAgICAgICAgR3JhcGhpY3NMYXllciogaW5z
ZXRDbGlwTGF5ZXIgeyBudWxscHRyIH07CiAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RDb250
ZW50c0xheWVyIHsgbnVsbHB0ciB9OworICAgICAgICBHcmFwaGljc0xheWVyKiBob3Jpem9udGFs
U2Nyb2xsYmFyTGF5ZXIgeyBudWxscHRyIH07CisgICAgICAgIEdyYXBoaWNzTGF5ZXIqIHZlcnRp
Y2FsU2Nyb2xsYmFyTGF5ZXIgeyBudWxscHRyIH07CiAgICAgfTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Tm9kZUxheWVycyhTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IE5vZGVMYXllcnMmKSB7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVG
cmFtZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGQ5YjUwYmQ3NGMwNGJhMDVj
ODgwOWQ4ZGFiYzVhYzVmNjY5YzYxMTEuLjQyMWNmZWE0MjcwNTQ0ZTQ3MzA5YzQ4ZGJhOWExNTdl
MzgyY2JhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTQ2LDEw
ICs0Niw2IEBAIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0
ZUZyYW1lU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdTdGF0CiAKIFNjcm9sbGluZ1N0YXRlRnJhbWVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZShjb25zdCBTY3Jv
bGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZSYgc3RhdGVOb2RlLCBTY3JvbGxpbmdTdGF0ZVRy
ZWUmIGFkb3B0aXZlVHJlZSkKICAgICA6IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShzdGF0
ZU5vZGUsIGFkb3B0aXZlVHJlZSkKLSNpZiBQTEFURk9STShNQUMpCi0gICAgLCBtX3ZlcnRpY2Fs
U2Nyb2xsZXJJbXAoc3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsZXJJbXAoKSkKLSAgICAsIG1faG9y
aXpvbnRhbFNjcm9sbGVySW1wKHN0YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsZXJJbXAoKSkKLSNl
bmRpZgogICAgICwgbV9ldmVudFRyYWNraW5nUmVnaW9ucyhzdGF0ZU5vZGUuZXZlbnRUcmFja2lu
Z1JlZ2lvbnMoKSkKICAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc3RhdGVOb2RlLnJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpCiAgICAgLCBtX2xheW91dFZpZXdwb3J0KHN0YXRlTm9k
ZS5sYXlvdXRWaWV3cG9ydCgpKQpAQCAtODIsMTIgKzc4LDYgQEAgU2Nyb2xsaW5nU3RhdGVGcmFt
ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlKGNvbnN0IFNj
cm9sbGkKIAogICAgIGlmIChoYXNDaGFuZ2VkUHJvcGVydHkoRm9vdGVyTGF5ZXIpKQogICAgICAg
ICBzZXRGb290ZXJMYXllcihzdGF0ZU5vZGUuZm9vdGVyTGF5ZXIoKS50b1JlcHJlc2VudGF0aW9u
KGFkb3B0aXZlVHJlZS5wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKCkpKTsKLQotICAgIGlm
IChoYXNDaGFuZ2VkUHJvcGVydHkoVmVydGljYWxTY3JvbGxiYXJMYXllcikpCi0gICAgICAgIHNl
dFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIoc3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIo
KS50b1JlcHJlc2VudGF0aW9uKGFkb3B0aXZlVHJlZS5wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0
aW9uKCkpKTsKLQotICAgIGlmIChoYXNDaGFuZ2VkUHJvcGVydHkoSG9yaXpvbnRhbFNjcm9sbGJh
ckxheWVyKSkKLSAgICAgICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKHN0YXRlTm9kZS5o
b3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoKS50b1JlcHJlc2VudGF0aW9uKGFkb3B0aXZlVHJlZS5w
cmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKCkpKTsKIH0KIAogU2Nyb2xsaW5nU3RhdGVGcmFt
ZVNjcm9sbGluZ05vZGU6On5TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZSgpID0gZGVm
YXVsdDsKQEAgLTExMSw5ICsxMDEsNiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlOjpzZXRBbGxQcm9wZXJ0aWVzQ2hhbmdlZCgpCiAgICAgc2V0UHJvcGVydHlDaGFuZ2Vk
Qml0KEZvb3RlckhlaWdodCk7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KEhlYWRlckxheWVy
KTsKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWRCaXQoRm9vdGVyTGF5ZXIpOwotICAgIHNldFByb3Bl
cnR5Q2hhbmdlZEJpdChWZXJ0aWNhbFNjcm9sbGJhckxheWVyKTsKLSAgICBzZXRQcm9wZXJ0eUNo
YW5nZWRCaXQoSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKTsKLSAgICBzZXRQcm9wZXJ0eUNoYW5n
ZWRCaXQoUGFpbnRlckZvclNjcm9sbGJhcik7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KEJl
aGF2aW9yRm9yRml4ZWRFbGVtZW50cyk7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KFRvcENv
bnRlbnRJbnNldCk7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KEZpeGVkRWxlbWVudHNMYXlv
dXRSZWxhdGl2ZVRvRnJhbWUpOwpAQCAtMjcwLDI0ICsyNTcsNiBAQCB2b2lkIFNjcm9sbGluZ1N0
YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRGb290ZXJMYXllcihjb25zdCBMYXllclJlcHJlc2Vu
dGF0aW9uJgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChGb290ZXJMYXllcik7CiB9CiAKLXZvaWQg
U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5
ZXIoY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgbGF5ZXIpCi17Ci0gICAgaWYgKGxheWVyID09
IG1fdmVydGljYWxTY3JvbGxiYXJMYXllcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV92ZXJ0
aWNhbFNjcm9sbGJhckxheWVyID0gbGF5ZXI7Ci0gICAgc2V0UHJvcGVydHlDaGFuZ2VkKFZlcnRp
Y2FsU2Nyb2xsYmFyTGF5ZXIpOwotfQotCi12b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlOjpzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoY29uc3QgTGF5ZXJSZXByZXNlbnRh
dGlvbiYgbGF5ZXIpCi17Ci0gICAgaWYgKGxheWVyID09IG1faG9yaXpvbnRhbFNjcm9sbGJhckxh
eWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2hvcml6b250YWxTY3JvbGxiYXJMYXllciA9
IGxheWVyOwotICAgIHNldFByb3BlcnR5Q2hhbmdlZChIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIp
OwotfQotCiB2b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRGaXhlZEVs
ZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0
aXZlVG9GcmFtZSkKIHsKICAgICBpZiAoZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFt
ZSA9PSBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUpCkBAIC0zMDYsMTIgKzI3
NSw2IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OnNldEFzeW5jRnJh
bWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZChiCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKEFz
eW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCk7CiB9CiAKLSNpZiAhUExBVEZPUk0o
TUFDKQotdm9pZCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsZXJJ
bXBzRnJvbVNjcm9sbGJhcnMoU2Nyb2xsYmFyKiwgU2Nyb2xsYmFyKikKLXsKLX0KLSNlbmRpZgot
CiB2b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhU
ZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3Ip
IGNvbnN0CiB7CiAgICAgdHMgPDwgIkZyYW1lIHNjcm9sbGluZyBub2RlIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZy
YW1lU2Nyb2xsaW5nTm9kZS5oCmluZGV4IGNmOThkMDQ2N2MxMGM2ZjE5NzMyNGVmODczMGMyNTg2
Y2NjZThiZTUuLjgxZTVmNGVmOTIyZDM2NGUzZGM2OTg2NjQ0YzAxZmMzY2QyNTg0ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVT
Y3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuaApAQCAtNTgsOSArNTgsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIEZvb3RlckhlaWdodCwKICAgICAgICAgSGVhZGVyTGF5ZXIsCiAgICAgICAgIEZvb3Rl
ckxheWVyLAotICAgICAgICBWZXJ0aWNhbFNjcm9sbGJhckxheWVyLAotICAgICAgICBIb3Jpem9u
dGFsU2Nyb2xsYmFyTGF5ZXIsCi0gICAgICAgIFBhaW50ZXJGb3JTY3JvbGxiYXIsCiAgICAgICAg
IEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cywKICAgICAgICAgVG9wQ29udGVudEluc2V0LAogICAg
ICAgICBGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lLApAQCAtMTI1LDEyICsxMjIs
NiBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgZm9vdGVyTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX2Zvb3RlckxheWVyOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRGb290ZXJMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJik7CiAKLSAgICBjb25z
dCBMYXllclJlcHJlc2VudGF0aW9uJiB2ZXJ0aWNhbFNjcm9sbGJhckxheWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhckxheWVyOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRWZXJ0aWNhbFNjcm9sbGJhckxheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mKTsK
LQotICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGhvcml6b250YWxTY3JvbGxiYXJMYXll
cigpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGJhckxheWVyOyB9Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoY29uc3QgTGF5ZXJS
ZXByZXNlbnRhdGlvbiYpOwotCiAgICAgLy8gVGhlc2UgYXJlIG1vcmUgbGlrZSBTZXR0aW5ncywg
YW5kIHNob3VsZCBwcm9iYWJseSBtb3ZlIHRvIHRoZSBTY3JvbGxpbmd7U3RhdGV9VHJlZSBpdHNl
bGYuCiAgICAgYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJv
b2wpOwpAQCAtMTM4LDEyICsxMjksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBhc3luY0ZyYW1lT3JP
dmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FzeW5jRnJhbWVPck92
ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QXN5bmNGcmFtZU9yT3ZlcmZs
b3dTY3JvbGxpbmdFbmFibGVkKGJvb2wpOwogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIE5TU2Ny
b2xsZXJJbXAgKnZlcnRpY2FsU2Nyb2xsZXJJbXAoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRpY2Fs
U2Nyb2xsZXJJbXAuZ2V0KCk7IH0KLSAgICBOU1Njcm9sbGVySW1wICpob3Jpem9udGFsU2Nyb2xs
ZXJJbXAoKSBjb25zdCB7IHJldHVybiBtX2hvcml6b250YWxTY3JvbGxlckltcC5nZXQoKTsgfQot
I2VuZGlmCi0gICAgdm9pZCBzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyhTY3JvbGxiYXIq
IHZlcnRpY2FsU2Nyb2xsYmFyLCBTY3JvbGxiYXIqIGhvcml6b250YWxTY3JvbGxiYXIpOwotCiAg
ICAgdm9pZCBkdW1wUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0mLCBTY3JvbGxpbmdTdGF0ZVRy
ZWVBc1RleHRCZWhhdmlvcikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CkBAIC0xNTgsMTMg
KzE0Myw2IEBAIHByaXZhdGU6CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX2NvbnRlbnRTaGFk
b3dMYXllcjsKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1faGVhZGVyTGF5ZXI7CiAgICAgTGF5
ZXJSZXByZXNlbnRhdGlvbiBtX2Zvb3RlckxheWVyOwotICAgIExheWVyUmVwcmVzZW50YXRpb24g
bV92ZXJ0aWNhbFNjcm9sbGJhckxheWVyOwotICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9ob3Jp
em9udGFsU2Nyb2xsYmFyTGF5ZXI7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgUmV0YWluUHRy
PE5TU2Nyb2xsZXJJbXA+IG1fdmVydGljYWxTY3JvbGxlckltcDsKLSAgICBSZXRhaW5QdHI8TlNT
Y3JvbGxlckltcD4gbV9ob3Jpem9udGFsU2Nyb2xsZXJJbXA7Ci0jZW5kaWYKIAogICAgIEV2ZW50
VHJhY2tpbmdSZWdpb25zIG1fZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAgICAgRmxvYXRQb2ludCBt
X3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXgg
Njg1YjU2MjhhNWVkNDViNjBjYjkwNzBkZjY5NjA4MGRjYjczMmVjYi4uZDc0OTY5YTQyMWI5OTBj
NDk3NjJmNWJmOGQ1ZGFkMTgxYmEyNWYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCkBA
IC00OSw2ICs0OSwxMCBAQCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcgogICAgICwgbV9zY3JvbGxP
cmlnaW4oc3RhdGVOb2RlLnNjcm9sbE9yaWdpbigpKQogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NO
QVApCiAgICAgLCBtX3NuYXBPZmZzZXRzSW5mbyhzdGF0ZU5vZGUubV9zbmFwT2Zmc2V0c0luZm8p
CisjZW5kaWYKKyNpZiBQTEFURk9STShNQUMpCisgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsZXJJbXAo
c3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsZXJJbXAoKSkKKyAgICAsIG1faG9yaXpvbnRhbFNjcm9s
bGVySW1wKHN0YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsZXJJbXAoKSkKICNlbmRpZgogICAgICwg
bV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1l
dGVycygpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCgpKQpAQCAtNTYsOCArNjAsMTUgQEAgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3Rh
dGVTY3IKIHsKICAgICBpZiAoaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbENvbnRhaW5lckxheWVy
KSkKICAgICAgICAgc2V0U2Nyb2xsQ29udGFpbmVyTGF5ZXIoc3RhdGVOb2RlLnNjcm9sbENvbnRh
aW5lckxheWVyKCkudG9SZXByZXNlbnRhdGlvbihhZG9wdGl2ZVRyZWUucHJlZmVycmVkTGF5ZXJS
ZXByZXNlbnRhdGlvbigpKSk7CisKICAgICBpZiAoaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGVk
Q29udGVudHNMYXllcikpCiAgICAgICAgIHNldFNjcm9sbGVkQ29udGVudHNMYXllcihzdGF0ZU5v
ZGUuc2Nyb2xsZWRDb250ZW50c0xheWVyKCkudG9SZXByZXNlbnRhdGlvbihhZG9wdGl2ZVRyZWUu
cHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbigpKSk7CisKKyAgICBpZiAoaGFzQ2hhbmdlZFBy
b3BlcnR5KFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIpKQorICAgICAgICBzZXRWZXJ0aWNhbFNjcm9s
bGJhckxheWVyKHN0YXRlTm9kZS52ZXJ0aWNhbFNjcm9sbGJhckxheWVyKCkudG9SZXByZXNlbnRh
dGlvbihhZG9wdGl2ZVRyZWUucHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbigpKSk7CisKKyAg
ICBpZiAoaGFzQ2hhbmdlZFByb3BlcnR5KEhvcml6b250YWxTY3JvbGxiYXJMYXllcikpCisgICAg
ICAgIHNldEhvcml6b250YWxTY3JvbGxiYXJMYXllcihzdGF0ZU5vZGUuaG9yaXpvbnRhbFNjcm9s
bGJhckxheWVyKCkudG9SZXByZXNlbnRhdGlvbihhZG9wdGl2ZVRyZWUucHJlZmVycmVkTGF5ZXJS
ZXByZXNlbnRhdGlvbigpKSk7CiB9CiAKIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6flNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSgpID0gZGVmYXVsdDsKQEAgLTgzLDYgKzk0LDkgQEAg
dm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEFsbFByb3BlcnRpZXNDaGFuZ2Vk
KCkKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWRCaXQoRXhwZWN0c1doZWVsRXZlbnRUZXN0VHJpZ2dl
cik7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkQml0KFNjcm9sbENvbnRhaW5lckxheWVyKTsKICAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWRCaXQoU2Nyb2xsZWRDb250ZW50c0xheWVyKTsKKyAgICBzZXRQ
cm9wZXJ0eUNoYW5nZWRCaXQoSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKTsKKyAgICBzZXRQcm9w
ZXJ0eUNoYW5nZWRCaXQoVmVydGljYWxTY3JvbGxiYXJMYXllcik7CisgICAgc2V0UHJvcGVydHlD
aGFuZ2VkQml0KFBhaW50ZXJGb3JTY3JvbGxiYXIpOwogCiAgICAgU2Nyb2xsaW5nU3RhdGVOb2Rl
OjpzZXRBbGxQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogfQpAQCAtMjQwLDYgKzI1NCwzMCBAQCB2b2lk
IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKGNv
bnN0IExheWVyUmVwcmVzZW50YQogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3JvbGxlZENvbnRl
bnRzTGF5ZXIpOwogfQogCit2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SG9y
aXpvbnRhbFNjcm9sbGJhckxheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGxheWVyKQor
eworICAgIGlmIChsYXllciA9PSBtX2hvcml6b250YWxTY3JvbGxiYXJMYXllcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIgPSBsYXllcjsKKyAgICBz
ZXRQcm9wZXJ0eUNoYW5nZWQoSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKTsKK30KKwordm9pZCBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIoY29u
c3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgbGF5ZXIpCit7CisgICAgaWYgKGxheWVyID09IG1fdmVy
dGljYWxTY3JvbGxiYXJMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92ZXJ0aWNhbFNj
cm9sbGJhckxheWVyID0gbGF5ZXI7CisgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFZlcnRpY2FsU2Ny
b2xsYmFyTGF5ZXIpOworfQorCisjaWYgIVBMQVRGT1JNKE1BQykKK3ZvaWQgU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxlckltcHNGcm9tU2Nyb2xsYmFycyhTY3JvbGxiYXIq
LCBTY3JvbGxiYXIqKQoreworfQorI2VuZGlmCisKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcmVl
QXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0CiB7CiAgICAgU2Nyb2xsaW5nU3RhdGVOb2Rl
OjpkdW1wUHJvcGVydGllcyh0cywgYmVoYXZpb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAppbmRl
eCA1ZmVhYTUxMTFiNjU3MjU0MzE5YWVhNDkwNjBmMmE3NzlkOTAwZjAwLi4xZDk2ZjJmZjAyNmVi
NTYxZGQzNjhkNzQ0Nzg1M2VlYjUxNTA5ZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaApAQCAt
MzIsNiArMzIsMTAgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1
ZGUgIlNjcm9sbGluZ1N0YXRlTm9kZS5oIgogCisjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NM
QVNTIE5TU2Nyb2xsZXJJbXA7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUgOiBwdWJsaWMgU2Nyb2xsaW5nU3RhdGVOb2Rl
IHsKQEAgLTU4LDYgKzYyLDkgQEAgcHVibGljOgogICAgICAgICBFeHBlY3RzV2hlZWxFdmVudFRl
c3RUcmlnZ2VyLAogICAgICAgICBTY3JvbGxDb250YWluZXJMYXllciwKICAgICAgICAgU2Nyb2xs
ZWRDb250ZW50c0xheWVyLAorICAgICAgICBIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIsCisgICAg
ICAgIFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIsCisgICAgICAgIFBhaW50ZXJGb3JTY3JvbGxiYXIs
CiAgICAgICAgIE51bVNjcm9sbGluZ1N0YXRlTm9kZUJpdHMgLy8gVGhpcyBtdXN0IHJlbWFpbiBh
dCB0aGUgbGFzdCBwb3NpdGlvbi4KICAgICB9OwogCkBAIC0xMTYsNiArMTIzLDE4IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxlZENvbnRlbnRzTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsgfQogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKGNvbnN0IExheWVyUmVwcmVzZW50
YXRpb24mKTsKIAorICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGhvcml6b250YWxTY3Jv
bGxiYXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGJhckxheWVyOyB9
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoY29u
c3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYpOworCisgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlv
biYgdmVydGljYWxTY3JvbGxiYXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljYWxTY3Jv
bGxiYXJMYXllcjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VmVydGljYWxTY3JvbGxi
YXJMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJik7CisKKyNpZiBQTEFURk9STShNQUMp
CisgICAgTlNTY3JvbGxlckltcCAqdmVydGljYWxTY3JvbGxlckltcCgpIGNvbnN0IHsgcmV0dXJu
IG1fdmVydGljYWxTY3JvbGxlckltcC5nZXQoKTsgfQorICAgIE5TU2Nyb2xsZXJJbXAgKmhvcml6
b250YWxTY3JvbGxlckltcCgpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGVySW1w
LmdldCgpOyB9CisjZW5kaWYKKyAgICB2b2lkIHNldFNjcm9sbGVySW1wc0Zyb21TY3JvbGxiYXJz
KFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIsIFNjcm9sbGJhciogaG9yaXpvbnRhbFNjcm9s
bGJhcik7CisKIHByb3RlY3RlZDoKICAgICBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoU2Ny
b2xsaW5nU3RhdGVUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAg
ICAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZSYsIFNjcm9sbGluZ1N0YXRlVHJlZSYpOwpAQCAtMTMyLDE0ICsxNTEsMjUgQEAgcHJp
dmF0ZToKICAgICBGbG9hdFBvaW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgRmxvYXRQb2ludCBt
X3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOwogICAgIEludFBvaW50IG1fc2Nyb2xsT3JpZ2luOwor
CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBTY3JvbGxTbmFwT2Zmc2V0c0luZm88
ZmxvYXQ+IG1fc25hcE9mZnNldHNJbmZvOwogICAgIHVuc2lnbmVkIG1fY3VycmVudEhvcml6b250
YWxTbmFwUG9pbnRJbmRleCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRWZXJ0aWNhbFNu
YXBQb2ludEluZGV4IHsgMCB9OwogI2VuZGlmCi0gICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJz
IG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOworCiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBt
X3Njcm9sbENvbnRhaW5lckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxl
ZENvbnRlbnRzTGF5ZXI7CisgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX2hvcml6b250YWxTY3Jv
bGxiYXJMYXllcjsKKyAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fdmVydGljYWxTY3JvbGxiYXJM
YXllcjsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBSZXRhaW5QdHI8TlNTY3JvbGxlckltcD4g
bV92ZXJ0aWNhbFNjcm9sbGVySW1wOworICAgIFJldGFpblB0cjxOU1Njcm9sbGVySW1wPiBtX2hv
cml6b250YWxTY3JvbGxlckltcDsKKyNlbmRpZgorCisgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0
ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOworCiAgICAgYm9vbCBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2V4cGVjdHNXaGVlbEV2ZW50VGVzdFRyaWdnZXIgeyBmYWxzZSB9OwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMjU1
NzZiNjMzODExMTk2YzM4ZjI2Njg3ZjU0MjkxZDM1MjE5MzdkMC4uZDI4Yzc3MjU2YzU1NThlYmRk
YmI5YzU0ZTM1ODQ2NjBjMGY3YjczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTgwLDEwICs4MCwxMyBAQCBib29sIFNjcm9sbGlu
Z1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudAogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE9yQ2xlYXJMYXRjaGVkTm9kZShj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQpCiB7Ci0gICAgaWYgKHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpKQorICAg
IGlmICh3aGVlbEV2ZW50LnNob3VsZENvbnNpZGVyTGF0Y2hpbmcoKSkgeworICAgICAgICBMT0df
V0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWUgIiA8PCB0aGlz
IDw8ICIgc2V0T3JDbGVhckxhdGNoZWROb2RlOiBzZXR0aW5nIGxhdGNoZWQgbm9kZSAiIDw8IG5v
ZGVJRCk7CiAgICAgICAgIHNldExhdGNoZWROb2RlKG5vZGVJRCk7Ci0gICAgZWxzZSBpZiAod2hl
ZWxFdmVudC5zaG91bGRSZXNldExhdGNoaW5nKCkpCisgICAgfSBlbHNlIGlmICh3aGVlbEV2ZW50
LnNob3VsZFJlc2V0TGF0Y2hpbmcoKSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xs
aW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWUgIiA8PCB0aGlzIDw8ICIgc2V0T3JDbGVhckxh
dGNoZWROb2RlOiBjbGVhcmluZyBsYXRjaGVkIG5vZGUgKHdhcyAiIDw8IGxhdGNoZWROb2RlKCkg
PDwgIikiKTsKICAgICAgICAgY2xlYXJMYXRjaGVkTm9kZSgpOworICAgIH0KIH0KIAogU2Nyb2xs
aW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCkBAIC05Nyw2ICsxMDAsNyBAQCBTY3JvbGxpbmdF
dmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgdwogICAgIH0KIAogICAgIGlmIChoYXNMYXRjaGVkTm9kZSgpKSB7CisgICAg
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiIGhhcyBsYXRjaGVkIG5v
ZGUgIiA8PCBsYXRjaGVkTm9kZSgpKTsKICAgICAgICAgYXV0byogbm9kZSA9IG5vZGVGb3JJRChs
YXRjaGVkTm9kZSgpKTsKICAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
Pihub2RlKSkKICAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZT4oKm5vZGUpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDg4MzBmMTI5ZjVjZmI0MjgzMDA1ZDM3NWRkYWU3ZTQwNzA0Y2JlMzcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1t
CisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5oIgot
Ci0jaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQotCi0jaW5jbHVk
ZSAiR3JhcGhpY3NMYXllci5oIgotI2luY2x1ZGUgIlNjcm9sbGJhci5oIgotI2luY2x1ZGUgIlNj
cm9sbGJhclRoZW1lTWFjLmgiCi0jaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgiCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9k
ZTo6c2V0U2Nyb2xsZXJJbXBzRnJvbVNjcm9sbGJhcnMoU2Nyb2xsYmFyKiB2ZXJ0aWNhbFNjcm9s
bGJhciwgU2Nyb2xsYmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyKQotewotICAgIFNjcm9sbGJhclRo
ZW1lJiBzY3JvbGxiYXJUaGVtZSA9IFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpOwotICAgIGlmIChz
Y3JvbGxiYXJUaGVtZS5pc01vY2tUaGVtZSgpKQotICAgICAgICByZXR1cm47Ci0gICAgU2Nyb2xs
YmFyVGhlbWVNYWMmIG1hY1RoZW1lID0gc3RhdGljX2Nhc3Q8U2Nyb2xsYmFyVGhlbWVNYWMmPihz
Y3JvbGxiYXJUaGVtZSk7Ci0KLSAgICBOU1Njcm9sbGVySW1wICp2ZXJ0aWNhbFBhaW50ZXIgPSB2
ZXJ0aWNhbFNjcm9sbGJhciAmJiB2ZXJ0aWNhbFNjcm9sbGJhci0+c3VwcG9ydHNVcGRhdGVPblNl
Y29uZGFyeVRocmVhZCgpCi0gICAgICAgID8gbWFjVGhlbWUucGFpbnRlckZvclNjcm9sbGJhcigq
dmVydGljYWxTY3JvbGxiYXIpIDogbnVsbHB0cjsKLSAgICBOU1Njcm9sbGVySW1wICpob3Jpem9u
dGFsUGFpbnRlciA9IGhvcml6b250YWxTY3JvbGxiYXIgJiYgaG9yaXpvbnRhbFNjcm9sbGJhci0+
c3VwcG9ydHNVcGRhdGVPblNlY29uZGFyeVRocmVhZCgpCi0gICAgICAgID8gbWFjVGhlbWUucGFp
bnRlckZvclNjcm9sbGJhcigqaG9yaXpvbnRhbFNjcm9sbGJhcikgOiBudWxscHRyOwotCi0gICAg
aWYgKG1fdmVydGljYWxTY3JvbGxlckltcCA9PSB2ZXJ0aWNhbFBhaW50ZXIgJiYgbV9ob3Jpem9u
dGFsU2Nyb2xsZXJJbXAgPT0gaG9yaXpvbnRhbFBhaW50ZXIpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fdmVydGljYWxTY3JvbGxlckltcCA9IHZlcnRpY2FsUGFpbnRlcjsKLSAgICBtX2hvcml6
b250YWxTY3JvbGxlckltcCA9IGhvcml6b250YWxQYWludGVyOwotCi0gICAgc2V0UHJvcGVydHlD
aGFuZ2VkKFBhaW50ZXJGb3JTY3JvbGxiYXIpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShNQUMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTI1YjQ3OGRk
ZDRiZjQzMzBiYmFhY2RiNmMxOGZiZDkxYjMzY2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1h
Yy5tbQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oIgorCisjaWYgRU5BQkxFKEFT
WU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSAiR3JhcGhpY3NMYXll
ci5oIgorI2luY2x1ZGUgIlNjcm9sbGJhci5oIgorI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lTWFj
LmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKwordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbGVySW1wc0Zy
b21TY3JvbGxiYXJzKFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIsIFNjcm9sbGJhciogaG9y
aXpvbnRhbFNjcm9sbGJhcikKK3sKKyAgICBTY3JvbGxiYXJUaGVtZSYgc2Nyb2xsYmFyVGhlbWUg
PSBTY3JvbGxiYXJUaGVtZTo6dGhlbWUoKTsKKyAgICBpZiAoc2Nyb2xsYmFyVGhlbWUuaXNNb2Nr
VGhlbWUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFNjcm9sbGJhclRoZW1lTWFjJiBtYWNUaGVt
ZSA9IHN0YXRpY19jYXN0PFNjcm9sbGJhclRoZW1lTWFjJj4oc2Nyb2xsYmFyVGhlbWUpOworCisg
ICAgTlNTY3JvbGxlckltcCAqdmVydGljYWxQYWludGVyID0gdmVydGljYWxTY3JvbGxiYXIgJiYg
dmVydGljYWxTY3JvbGxiYXItPnN1cHBvcnRzVXBkYXRlT25TZWNvbmRhcnlUaHJlYWQoKQorICAg
ICAgICA/IG1hY1RoZW1lLnBhaW50ZXJGb3JTY3JvbGxiYXIoKnZlcnRpY2FsU2Nyb2xsYmFyKSA6
IG51bGxwdHI7CisgICAgTlNTY3JvbGxlckltcCAqaG9yaXpvbnRhbFBhaW50ZXIgPSBob3Jpem9u
dGFsU2Nyb2xsYmFyICYmIGhvcml6b250YWxTY3JvbGxiYXItPnN1cHBvcnRzVXBkYXRlT25TZWNv
bmRhcnlUaHJlYWQoKQorICAgICAgICA/IG1hY1RoZW1lLnBhaW50ZXJGb3JTY3JvbGxiYXIoKmhv
cml6b250YWxTY3JvbGxiYXIpIDogbnVsbHB0cjsKKworICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xs
ZXJJbXAgPT0gdmVydGljYWxQYWludGVyICYmIG1faG9yaXpvbnRhbFNjcm9sbGVySW1wID09IGhv
cml6b250YWxQYWludGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZlcnRpY2FsU2Nyb2xs
ZXJJbXAgPSB2ZXJ0aWNhbFBhaW50ZXI7CisgICAgbV9ob3Jpem9udGFsU2Nyb2xsZXJJbXAgPSBo
b3Jpem9udGFsUGFpbnRlcjsKKworICAgIHNldFByb3BlcnR5Q2hhbmdlZChQYWludGVyRm9yU2Ny
b2xsYmFyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVN
YWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjLmgKaW5kZXggYzdhNzRkNTMwMDc2YzgyN2U1YjExNWQ5NjBjM2Vm
NWY2M2RiM2Q3OS4uYjBlYzIxMTJlMWQ5ZDZjNDM1MTk0MjcwY2U2NzFlMTIyZDAyNWQ5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCkBAIC00NSw4ICs0NSw2
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTWFjKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlE
KTsKIAotICAgIHZvaWQgcmVsZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRo
cmVhZCgpOwotCiAgICAgLy8gU2Nyb2xsaW5nVHJlZU5vZGUgbWVtYmVyIGZ1bmN0aW9ucy4KICAg
ICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2Rl
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Ny
b2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CkBAIC02OCwxNiArNjYsMTQgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKSBvdmVycmlkZTsKICAgICB2
b2lkIHJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKSBvdmVycmlkZTsKIAorICAgIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMgbV9kZWxlZ2F0ZTsKKwogICAgIFJldGFpblB0
cjxDQUxheWVyPiBtX3Jvb3RDb250ZW50c0xheWVyOwogICAgIFJldGFpblB0cjxDQUxheWVyPiBt
X2NvdW50ZXJTY3JvbGxpbmdMYXllcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9pbnNldENs
aXBMYXllcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9jb250ZW50U2hhZG93TGF5ZXI7CiAg
ICAgUmV0YWluUHRyPENBTGF5ZXI+IG1faGVhZGVyTGF5ZXI7CiAgICAgUmV0YWluUHRyPENBTGF5
ZXI+IG1fZm9vdGVyTGF5ZXI7Ci0gICAgUmV0YWluUHRyPE5TU2Nyb2xsZXJJbXA+IG1fdmVydGlj
YWxTY3JvbGxlckltcDsKLSAgICBSZXRhaW5QdHI8TlNTY3JvbGxlckltcD4gbV9ob3Jpem9udGFs
U2Nyb2xsZXJJbXA7Ci0KLSAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
IG1fZGVsZWdhdGU7CiAgICAgCiAgICAgYm9vbCBtX2xhc3RTY3JvbGxIYWRVbmZpbGxlZFBpeGVs
cyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhZEZpcnN0VXBkYXRlIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KaW5kZXggZDIyYmEwODc0NWY3
NzQ1NTNmMzdjMGEyYjc2ZWZkMTFlNTRlNTI1MS4uNGUxODNmODFiZGYxOTQ0ZTI5ZTIxYzRjYjAw
NzgxODZlMDQ2MmVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVN
YWMubW0KQEAgLTM4LDEyICszOCwxMCBAQAogI2ltcG9ydCAiU2Nyb2xsaW5nVHJlZS5oIgogI2lt
cG9ydCAiVGlsZUNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldlYkxheWVyLmgiCi0jaW1wb3J0IDxw
YWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3Ry
ZWFtLmg+Ci0KICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogI2ltcG9ydCA8d3Rm
L0RlcXVlLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvdGV4
dC9UZXh0U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgsMjAgKzU2LDcg
QEAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6U2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYyhTY3JvbGxpbmcKIHsKIH0KIAotU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYzo6flNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMoKQotewot
ICAgIHJlbGVhc2VSZWZlcmVuY2VzVG9TY3JvbGxlckltcHNPblRoZU1haW5UaHJlYWQoKTsKLX0K
LQotdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpyZWxlYXNlUmVmZXJl
bmNlc1RvU2Nyb2xsZXJJbXBzT25UaGVNYWluVGhyZWFkKCkKLXsKLSAgICBpZiAobV92ZXJ0aWNh
bFNjcm9sbGVySW1wIHx8IG1faG9yaXpvbnRhbFNjcm9sbGVySW1wKSB7Ci0gICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBpbiBwbGFjZSBmb3IgdGhlIHRpbWUgYmVpbmcgc2lu
Y2UgTlNTY3JvbGxlckltcHMgY2Fubm90IGJlIGRlYWxsb2NhdGVkCi0gICAgICAgIC8vIG9uIGEg
bm9uLW1haW4gdGhyZWFkLiByZGFyOi8vcHJvYmxlbS8yNDUzNTA1NQotICAgICAgICBXVEY6OmNh
bGxPbk1haW5UaHJlYWQoW3ZlcnRpY2FsU2Nyb2xsZXJJbXAgPSBXVEZNb3ZlKG1fdmVydGljYWxT
Y3JvbGxlckltcCksIGhvcml6b250YWxTY3JvbGxlckltcCA9IFdURk1vdmUobV9ob3Jpem9udGFs
U2Nyb2xsZXJJbXApXSB7Ci0gICAgICAgIH0pOwotICAgIH0KLX0KK1Njcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWM6On5TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjKCkg
PSBkZWZhdWx0OwogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKIHN0YXRpYyBpbmxpbmUg
VmVjdG9yPExheW91dFVuaXQ+IGNvbnZlcnRUb0xheW91dFVuaXRzKGNvbnN0IFZlY3RvcjxmbG9h
dD4mIHNuYXBPZmZzZXRzQXNGbG9hdCkKQEAgLTExOCwxMiArMTAzLDYgQEAgdm9pZCBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNv
bnN0IFNjcm9sbGkKICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Rm9vdGVyTGF5ZXIpKQogICAgICAg
ICBtX2Zvb3RlckxheWVyID0gc2Nyb2xsaW5nU3RhdGVOb2RlLmZvb3RlckxheWVyKCk7CiAKLSAg
ICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6UGFpbnRlckZvclNjcm9sbGJhcikpIHsKLSAgICAgICAgcmVs
ZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRocmVhZCgpOwotICAgICAgICBt
X3ZlcnRpY2FsU2Nyb2xsZXJJbXAgPSBzY3JvbGxpbmdTdGF0ZU5vZGUudmVydGljYWxTY3JvbGxl
ckltcCgpOwotICAgICAgICBtX2hvcml6b250YWxTY3JvbGxlckltcCA9IHNjcm9sbGluZ1N0YXRl
Tm9kZS5ob3Jpem9udGFsU2Nyb2xsZXJJbXAoKTsKLSAgICB9Ci0KICAgICBib29sIGxvZ1Njcm9s
bGluZ01vZGUgPSAhbV9oYWRGaXJzdFVwZGF0ZTsKICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2Rl
Lmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6UmVh
c29uc0ZvclN5bmNocm9ub3VzU2Nyb2xsaW5nKSkKICAgICAgICAgbG9nU2Nyb2xsaW5nTW9kZSA9
IHRydWU7CkBAIC0xMzEsNyArMTEwLDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpCiAgICAg
aWYgKGxvZ1Njcm9sbGluZ01vZGUgJiYgaXNSb290Tm9kZSgpICYmIHNjcm9sbGluZ1RyZWUoKS5z
Y3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCkpCiAgICAgICAgIHNjcm9sbGluZ1Ry
ZWUoKS5yZXBvcnRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1vbm90b25pY1Rp
bWU6Om5vdygpLCBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKSk7CiAKKyAgICBtX2RlbGVn
YXRlLnVwZGF0ZUZyb21TdGF0ZU5vZGUoc2Nyb2xsaW5nU3RhdGVOb2RlKTsKKwogI2lmIEVOQUJM
RShDU1NfU0NST0xMX1NOQVApCisgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIG1vdmUgdG8gdGhl
IGRlbGVnYXRlIGFuZCBiZSBzaGFyZWQgd2l0aCBvdmVyZmxvdy4KICAgICBpZiAoc2Nyb2xsaW5n
U3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5n
Tm9kZTo6SG9yaXpvbnRhbFNuYXBPZmZzZXRzKSB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFs
U25hcE9mZnNldFJhbmdlcykpCiAgICAgICAgIG1fZGVsZWdhdGUudXBkYXRlU2Nyb2xsU25hcFBv
aW50cyhTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIGNvbnZlcnRUb0xheW91dFVuaXRzKHNj
cm9sbGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsU25hcE9mZnNldHMoKSksIGNvbnZlcnRUb0xheW91
dFVuaXRzKHNjcm9sbGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsU25hcE9mZnNldFJhbmdlcygpKSk7
CiAKQEAgLTE3MCwyNCArMTUyLDYgQEAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdAogICAgIGlmICgh
Y2FuSGF2ZVNjcm9sbGJhcnMoKSkKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWROb3RIYW5kbGVFdmVudDsKIAotICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2Uo
KSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKSB7Ci0gICAgICAgIFttX3ZlcnRpY2Fs
U2Nyb2xsZXJJbXAgc2V0VXNlUHJlc2VudGF0aW9uVmFsdWU6WUVTXTsKLSAgICAgICAgW21faG9y
aXpvbnRhbFNjcm9sbGVySW1wIHNldFVzZVByZXNlbnRhdGlvblZhbHVlOllFU107Ci0gICAgfQot
ICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZUVuZGVkIHx8IHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxF
dmVudFBoYXNlQ2FuY2VsbGVkKSB7Ci0gICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xsZXJJbXAgc2V0
VXNlUHJlc2VudGF0aW9uVmFsdWU6Tk9dOwotICAgICAgICBbbV9ob3Jpem9udGFsU2Nyb2xsZXJJ
bXAgc2V0VXNlUHJlc2VudGF0aW9uVmFsdWU6Tk9dOwotICAgIH0KLQotI2lmIEVOQUJMRShDU1Nf
U0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICBpZiAoZXhwZWN0c1do
ZWVsRXZlbnRUZXN0VHJpZ2dlcigpKSB7Ci0gICAgICAgIGlmIChzY3JvbGxpbmdUcmVlKCkuc2hv
dWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkod2hlZWxFdmVudCkpCi0gICAgICAgICAg
ICBtX2RlbGVnYXRlLnJlbW92ZVRlc3REZWZlcnJhbEZvclJlYXNvbihyZWludGVycHJldF9jYXN0
PFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihzY3JvbGxp
bmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xsaW5nVGhyZWFkU3luY05l
ZWRlZCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fZGVsZWdhdGUuZGVmZXJUZXN0c0Zv
clJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xsYWJs
ZUFyZWFJZGVudGlmaWVyPihzY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0VHJpZ2dl
cjo6U2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCk7Ci0gICAgfQotI2VuZGlmCi0KICAgICBtX2Rl
bGVnYXRlLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAKICNpZiBFTkFCTEUoQ1NTX1ND
Uk9MTF9TTkFQKQpAQCAtMjY2LDI3ICsyMzAsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVNYWM6OnJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkKICAgICAgICAgICAgIG1f
Zm9vdGVyTGF5ZXIuZ2V0KCkucG9zaXRpb24gPSBGbG9hdFBvaW50KGhvcml6b250YWxTY3JvbGxP
ZmZzZXRGb3JCYW5uZXIsIEZyYW1lVmlldzo6eVBvc2l0aW9uRm9yRm9vdGVyTGF5ZXIoc2Nyb2xs
UG9zaXRpb24sIHRvcENvbnRlbnRJbnNldCwgdG90YWxDb250ZW50c1NpemUoKS5oZWlnaHQoKSwg
Zm9vdGVySGVpZ2h0KCkpKTsKICAgICB9CiAKLSAgICBpZiAobV92ZXJ0aWNhbFNjcm9sbGVySW1w
IHx8IG1faG9yaXpvbnRhbFNjcm9sbGVySW1wKSB7Ci0gICAgICAgIFtDQVRyYW5zYWN0aW9uIGJl
Z2luXTsKLSAgICAgICAgW0NBVHJhbnNhY3Rpb24gbG9ja107Ci0KLSAgICAgICAgaWYgKFttX3Zl
cnRpY2FsU2Nyb2xsZXJJbXAgc2hvdWxkVXNlUHJlc2VudGF0aW9uVmFsdWVdKSB7Ci0gICAgICAg
ICAgICBmbG9hdCBwcmVzZW50YXRpb25WYWx1ZTsKLSAgICAgICAgICAgIGZsb2F0IG92ZXJoYW5n
QW1vdW50OwotICAgICAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVTY3JvbGxiYXJWYWx1
ZUFuZE92ZXJoYW5nKHNjcm9sbFBvc2l0aW9uLnkoKSwgdG90YWxDb250ZW50c1NpemUoKS5oZWln
aHQoKSwgdmlzaWJsZUNvbnRlbnRSZWN0LmhlaWdodCgpLCBwcmVzZW50YXRpb25WYWx1ZSwgb3Zl
cmhhbmdBbW91bnQpOwotICAgICAgICAgICAgW21fdmVydGljYWxTY3JvbGxlckltcCBzZXRQcmVz
ZW50YXRpb25WYWx1ZTpwcmVzZW50YXRpb25WYWx1ZV07Ci0gICAgICAgIH0KLQotICAgICAgICBp
ZiAoW21faG9yaXpvbnRhbFNjcm9sbGVySW1wIHNob3VsZFVzZVByZXNlbnRhdGlvblZhbHVlXSkg
ewotICAgICAgICAgICAgZmxvYXQgcHJlc2VudGF0aW9uVmFsdWU7Ci0gICAgICAgICAgICBmbG9h
dCBvdmVyaGFuZ0Ftb3VudDsKLSAgICAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpjb21wdXRlU2Ny
b2xsYmFyVmFsdWVBbmRPdmVyaGFuZyhzY3JvbGxQb3NpdGlvbi54KCksIHRvdGFsQ29udGVudHNT
aXplKCkud2lkdGgoKSwgdmlzaWJsZUNvbnRlbnRSZWN0LndpZHRoKCksIHByZXNlbnRhdGlvblZh
bHVlLCBvdmVyaGFuZ0Ftb3VudCk7Ci0gICAgICAgICAgICBbbV9ob3Jpem9udGFsU2Nyb2xsZXJJ
bXAgc2V0UHJlc2VudGF0aW9uVmFsdWU6cHJlc2VudGF0aW9uVmFsdWVdOwotICAgICAgICB9Ci0K
LSAgICAgICAgW0NBVHJhbnNhY3Rpb24gdW5sb2NrXTsKLSAgICAgICAgW0NBVHJhbnNhY3Rpb24g
Y29tbWl0XTsKLSAgICB9CisgICAgbV9kZWxlZ2F0ZS51cGRhdGVTY3JvbGxiYXJQYWludGVycygp
OwogfQogCiBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6Om1p
bmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVNYWMuaAppbmRleCAwMjM2NzFjZjVkMDhlYzA5NjNiNzY4MDY4YjU3MWM1
MjM4YjY0MTJkLi5iZDFlNzMyZGUyYzg4ODIwNGU0NWQxZTg3OGNmOWY3ODliMTgwN2YwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmgKQEAgLTM0LDEy
ICszNCwxMiBAQCBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYyA6IHB1YmxpYyBTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMgOiBwdWJsaWMgU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjPiBjcmVhdGUoU2Nyb2xsaW5nVHJlZSYsIFNj
cm9sbGluZ05vZGVJRCk7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZU1hYygpOwogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVNYWMoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7
CiAKICAgICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3Rh
dGVOb2RlJikgb3ZlcnJpZGU7CkBAIC00OCw5ICs0OCwxMSBAQCBwcml2YXRlOgogICAgIEZsb2F0
UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsUG9z
aXRpb25DbGFtcCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlcG9zaXRpb25TY3JvbGxp
bmdMYXllcnMoKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkg
b3ZlcnJpZGU7CiAKICAgICBTY3JvbGxpbmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlOwogCitwcml2YXRlOgogICAgIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMgbV9kZWxlZ2F0ZTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KaW5kZXggNWFmN2Jk
MjlkMzkzYmY4NzAzNzE5N2NlMTA5ZDE4ZDEzODExM2E2Yi4uNWI0M2ExODA0YmI3NjBiOTA5MTdm
NzRiYjE2NGRiMjUyODc0YTU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVNYWMubW0KQEAgLTUxLDkgKzUxLDcgQEAgU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU1hYzo6flNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMo
KQogdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0
ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewog
ICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3Jl
Q2hpbGRyZW4oc3RhdGVOb2RlKTsKLSAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5vZGUg
PSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT4oc3RhdGVOb2Rl
KTsKLSAgICBVTlVTRURfUEFSQU0oc2Nyb2xsaW5nU3RhdGVOb2RlKTsKLSAgICAvLyBGSVhNRTog
U2Nyb2xsIHNuYXAgZGF0YS4KKyAgICBtX2RlbGVnYXRlLnVwZGF0ZUZyb21TdGF0ZU5vZGUoZG93
bmNhc3Q8U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU+KHN0YXRlTm9kZSkpOwog
fQogCiB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmNvbW1pdFN0
YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSkKQEAg
LTY4LDE2ICs2Niw2IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uCiAgICAgaWYgKCFjYW5IYXZl
U2Nyb2xsYmFycygpKQogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5v
dEhhbmRsZUV2ZW50OwogCi0KLSNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUo
UlVCQkVSX0JBTkRJTkcpCi0gICAgaWYgKGV4cGVjdHNXaGVlbEV2ZW50VGVzdFRyaWdnZXIoKSkg
ewotICAgICAgICBpZiAoc2Nyb2xsaW5nVHJlZSgpLnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5j
aHJvbm91c2x5KHdoZWVsRXZlbnQpKQotICAgICAgICAgICAgbV9kZWxlZ2F0ZS5yZW1vdmVUZXN0
RGVmZXJyYWxGb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6
OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4oc2Nyb2xsaW5nTm9kZUlEKCkpLCBXaGVlbEV2ZW50
VGVzdFRyaWdnZXI6OlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX2RlbGVnYXRlLmRlZmVyVGVzdHNGb3JSZWFzb24ocmVpbnRlcnByZXRfY2Fz
dDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4oc2Nyb2xs
aW5nTm9kZUlEKCkpLCBXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGluZ1RocmVhZFN5bmNO
ZWVkZWQpOwotICAgIH0KLSNlbmRpZgotCiAgICAgbV9kZWxlZ2F0ZS5oYW5kbGVXaGVlbEV2ZW50
KHdoZWVsRXZlbnQpOwogCiAgICAgLy8gRklYTUU6IFNjcm9sbCBzbmFwCkBAIC0xMDEsNiArODks
MTEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpyZXBvc2l0
aW9uU2Nyb2xsaW5nTGF5ZXJzKCkKICAgICBzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKS5wb3NpdGlv
biA9IC1zY3JvbGxQb3NpdGlvbjsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlTWFjOjpyZXBvc2l0aW9uUmVsYXRlZExheWVycygpCit7CisgICAgbV9kZWxlZ2F0
ZS51cGRhdGVTY3JvbGxiYXJQYWludGVycygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShNQUMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaAppbmRleCBjNGQ4
M2ZiZDM5YmZkYTFlMTg3OWM0MzgxNTFhMTJmZWEwZTRmMGJjLi45N2Q0NjJiYWI3NDc0YTAzNWI5
YWJmYzlmZmFhMGU2MzFkYzE4ZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjLmgKQEAgLTMxLDExICszMSwxNCBAQAogCiAjaW5jbHVkZSAiU2Nyb2xs
Q29udHJvbGxlci5oIgogCitPQkpDX0NMQVNTIE5TU2Nyb2xsZXJJbXA7CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIElu
dFBvaW50OworY2xhc3MgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOwogY2xhc3MgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlOwogCkBAIC01NCw2ICs1
Nyw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdDsK
ICNlbmRpZgogCisgICAgdm9pZCB1cGRhdGVGcm9tU3RhdGVOb2RlKGNvbnN0IFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZSYpOworICAgIHZvaWQgdXBkYXRlU2Nyb2xsYmFyUGFpbnRlcnMoKTsK
KwogICAgIHZvaWQgZGVmZXJUZXN0c0ZvclJlYXNvbihXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNj
cm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpEZWZlclRlc3RU
cmlnZ2VyUmVhc29uKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZVRlc3REZWZlcnJh
bEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmll
ciwgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpEZWZlclRlc3RUcmlnZ2VyUmVhc29uKSBjb25zdCBv
dmVycmlkZTsKIApAQCAtODMsNyArODksMTIgQEAgcHJpdmF0ZToKICAgICBGbG9hdFNpemUgdmll
d3BvcnRTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZvaWQgcmVsZWFzZVJl
ZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRocmVhZCgpOworCiAgICAgU2Nyb2xsQ29u
dHJvbGxlciBtX3Njcm9sbENvbnRyb2xsZXI7CisKKyAgICBSZXRhaW5QdHI8TlNTY3JvbGxlcklt
cD4gbV92ZXJ0aWNhbFNjcm9sbGVySW1wOworICAgIFJldGFpblB0cjxOU1Njcm9sbGVySW1wPiBt
X2hvcml6b250YWxTY3JvbGxlckltcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KaW5kZXggY2Jj
YjY2YWIxN2EyYWE3NzdkZTg2YmE4MTUwMTg4MTEyZTIxMWQ2YS4uNzI2N2U0ZGU0ODA4ZTJjM2I1
ZjFkM2YxZjcyNTAwMmM5OWE4YWY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVNYWMubW0KQEAgLTI5LDkgKzI5LDEyIEBACiAjaWYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1w
b3J0ICJTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCIKICNpbXBvcnQgIlNjcm9sbGluZ1Ry
ZWUuaCIKICNpbXBvcnQgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaCIKICNpbXBv
cnQgIlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgiCisjaW1wb3J0IDxRdWFydHpDb3JlL1F1
YXJ0ekNvcmUuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSw3ICs0NCwxOSBAQCBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlTWFjOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjKFNjcgogewogfQogCi1TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjp+
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYygpID0gZGVmYXVsdDsKK1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6On5TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjKCkKK3sKKyAgICByZWxlYXNlUmVmZXJlbmNlc1RvU2Nyb2xsZXJJbXBz
T25UaGVNYWluVGhyZWFkKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYzo6dXBkYXRlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUmIHNjcm9sbGluZ1N0YXRlTm9kZSkKK3sKKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVO
b2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlBhaW50
ZXJGb3JTY3JvbGxiYXIpKSB7CisgICAgICAgIHJlbGVhc2VSZWZlcmVuY2VzVG9TY3JvbGxlcklt
cHNPblRoZU1haW5UaHJlYWQoKTsKKyAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGVySW1wID0gc2Ny
b2xsaW5nU3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsZXJJbXAoKTsKKyAgICAgICAgbV9ob3Jpem9u
dGFsU2Nyb2xsZXJJbXAgPSBzY3JvbGxpbmdTdGF0ZU5vZGUuaG9yaXpvbnRhbFNjcm9sbGVySW1w
KCk7CisgICAgfQorfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWM6OnVwZGF0ZVNjcm9sbFNuYXBQb2ludHMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMsIGNvbnN0IFZl
Y3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMsIGNvbnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRS
YW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBSYW5nZXMpCiB7CkBAIC02NSw2ICs4MCwyNCBAQCBib29s
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFjdGl2ZVNjcm9sbFNuYXBJ
bmRleERpZENoYW5nZSgpIGNvbgogCiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50KQogeworICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZUJlZ2FuKSB7CisgICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xsZXJJbXAg
c2V0VXNlUHJlc2VudGF0aW9uVmFsdWU6WUVTXTsKKyAgICAgICAgW21faG9yaXpvbnRhbFNjcm9s
bGVySW1wIHNldFVzZVByZXNlbnRhdGlvblZhbHVlOllFU107CisgICAgfQorICAgIGlmICh3aGVl
bEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUVuZGVkIHx8
IHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2Fu
Y2VsbGVkKSB7CisgICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xsZXJJbXAgc2V0VXNlUHJlc2VudGF0
aW9uVmFsdWU6Tk9dOworICAgICAgICBbbV9ob3Jpem9udGFsU2Nyb2xsZXJJbXAgc2V0VXNlUHJl
c2VudGF0aW9uVmFsdWU6Tk9dOworICAgIH0KKworI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVAp
IHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZSgpLmV4cGVj
dHNXaGVlbEV2ZW50VGVzdFRyaWdnZXIoKSkgeworICAgICAgICBpZiAoc2Nyb2xsaW5nVHJlZSgp
LnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KHdoZWVsRXZlbnQpKQorICAgICAg
ICAgICAgcmVtb3ZlVGVzdERlZmVycmFsRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxF
dmVudFRlc3RUcmlnZ2VyOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KHNjcm9sbGluZ05vZGUo
KS5zY3JvbGxpbmdOb2RlSUQoKSksIFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xsaW5nVGhy
ZWFkU3luY05lZWRlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlZmVyVGVzdHNGb3JS
ZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGFibGVB
cmVhSWRlbnRpZmllcj4oc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbGluZ05vZGVJRCgpKSwgV2hlZWxF
dmVudFRlc3RUcmlnZ2VyOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkKTsKKyAgICB9CisjZW5k
aWYKKwogICAgIHJldHVybiBtX3Njcm9sbENvbnRyb2xsZXIuaGFuZGxlV2hlZWxFdmVudCh3aGVl
bEV2ZW50KTsKIH0KIApAQCAtMjkxLDYgKzMyNCw0MyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVNYWM6OnJlbW92ZVRlc3REZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2
ZQogICAgIHNjcm9sbGluZ1RyZWUoKS5yZW1vdmVUZXN0RGVmZXJyYWxGb3JSZWFzb24oaWRlbnRp
ZmllciwgcmVhc29uKTsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjp1cGRhdGVTY3JvbGxiYXJQYWludGVycygpCit7CisgICAgaWYgKG1fdmVydGljYWxT
Y3JvbGxlckltcCB8fCBtX2hvcml6b250YWxTY3JvbGxlckltcCkgeworICAgICAgICBhdXRvIHNj
cm9sbFBvc2l0aW9uID0gY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CisKKyAgICAgICAgW0NBVHJh
bnNhY3Rpb24gYmVnaW5dOworICAgICAgICBbQ0FUcmFuc2FjdGlvbiBsb2NrXTsKKworICAgICAg
ICBpZiAoW21fdmVydGljYWxTY3JvbGxlckltcCBzaG91bGRVc2VQcmVzZW50YXRpb25WYWx1ZV0p
IHsKKyAgICAgICAgICAgIGZsb2F0IHByZXNlbnRhdGlvblZhbHVlOworICAgICAgICAgICAgZmxv
YXQgb3ZlcmhhbmdBbW91bnQ7CisgICAgICAgICAgICBTY3JvbGxhYmxlQXJlYTo6Y29tcHV0ZVNj
cm9sbGJhclZhbHVlQW5kT3Zlcmhhbmcoc2Nyb2xsUG9zaXRpb24ueSgpLCB0b3RhbENvbnRlbnRz
U2l6ZSgpLmhlaWdodCgpLCBzY3JvbGxhYmxlQXJlYVNpemUoKS5oZWlnaHQoKSwgcHJlc2VudGF0
aW9uVmFsdWUsIG92ZXJoYW5nQW1vdW50KTsKKyAgICAgICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xs
ZXJJbXAgc2V0UHJlc2VudGF0aW9uVmFsdWU6cHJlc2VudGF0aW9uVmFsdWVdOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKFttX2hvcml6b250YWxTY3JvbGxlckltcCBzaG91bGRVc2VQcmVzZW50
YXRpb25WYWx1ZV0pIHsKKyAgICAgICAgICAgIGZsb2F0IHByZXNlbnRhdGlvblZhbHVlOworICAg
ICAgICAgICAgZmxvYXQgb3ZlcmhhbmdBbW91bnQ7CisgICAgICAgICAgICBTY3JvbGxhYmxlQXJl
YTo6Y29tcHV0ZVNjcm9sbGJhclZhbHVlQW5kT3Zlcmhhbmcoc2Nyb2xsUG9zaXRpb24ueCgpLCB0
b3RhbENvbnRlbnRzU2l6ZSgpLndpZHRoKCksIHNjcm9sbGFibGVBcmVhU2l6ZSgpLndpZHRoKCks
IHByZXNlbnRhdGlvblZhbHVlLCBvdmVyaGFuZ0Ftb3VudCk7CisgICAgICAgICAgICBbbV9ob3Jp
em9udGFsU2Nyb2xsZXJJbXAgc2V0UHJlc2VudGF0aW9uVmFsdWU6cHJlc2VudGF0aW9uVmFsdWVd
OworICAgICAgICB9CisKKyAgICAgICAgW0NBVHJhbnNhY3Rpb24gdW5sb2NrXTsKKyAgICAgICAg
W0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKyAgICB9Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6cmVsZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09u
VGhlTWFpblRocmVhZCgpCit7CisgICAgaWYgKG1fdmVydGljYWxTY3JvbGxlckltcCB8fCBtX2hv
cml6b250YWxTY3JvbGxlckltcCkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIHdvcmth
cm91bmQgaW4gcGxhY2UgZm9yIHRoZSB0aW1lIGJlaW5nIHNpbmNlIE5TU2Nyb2xsZXJJbXBzIGNh
bm5vdCBiZSBkZWFsbG9jYXRlZAorICAgICAgICAvLyBvbiBhIG5vbi1tYWluIHRocmVhZC4gcmRh
cjovL3Byb2JsZW0vMjQ1MzUwNTUKKyAgICAgICAgV1RGOjpjYWxsT25NYWluVGhyZWFkKFt2ZXJ0
aWNhbFNjcm9sbGVySW1wID0gV1RGTW92ZShtX3ZlcnRpY2FsU2Nyb2xsZXJJbXApLCBob3Jpem9u
dGFsU2Nyb2xsZXJJbXAgPSBXVEZNb3ZlKG1faG9yaXpvbnRhbFNjcm9sbGVySW1wKV0geworICAg
ICAgICB9KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oCmluZGV4IDQzMjY3OGE0
NWNjNGZkNGQwMWI2MDFlMmNkMDI1Njg1ZDRmMzhiZDYuLmQwZDljOWM3YjAxYWYyOGFiODVhNTE0
NDdlMDg4ZWE3MDhjMzhjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhclRoZW1lQ29tcG9zaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYmFyVGhlbWVDb21wb3NpdGUuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CiAgKi8KIAotI2lmbmRlZiBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZV9oCi0jZGVmaW5lIFNjcm9s
bGJhclRoZW1lQ29tcG9zaXRlX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU2Nyb2xsYmFy
VGhlbWUuaCIKIApAQCAtNzEsNCArNzAsMyBAQCBwdWJsaWM6CiB9OwogCiB9Ci0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAK
aW5kZXggM2U4ZDJhN2Q5NmYxNTE4ZjdjNmJkNDhlNTY2NTRiY2JlNDkzMTQwMy4uYWQ3ZGEwY2E4
NDRmZmU3MTcyNjE5YjUxOTBkZmFmMzBlNzg4YWNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTU0NCwyMCArNTQ0LDEy
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRDaGFuZ2VQbGF0Zm9ybUxheWVyRm9y
TGF5ZXIoUmVuZGVyTGF5ZXImIGxheWVyLCBjCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8q
IGJhY2tpbmcgPSBsYXllci5iYWNraW5nKCk7CisgICAgaWYgKGF1dG8gbm9kZUlEID0gYmFja2lu
Zy0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShTY3JvbGxDb29yZGluYXRpb25Sb2xlOjpTY3JvbGxp
bmcpKQorICAgICAgICB1cGRhdGVTY3JvbGxpbmdOb2RlTGF5ZXJzKG5vZGVJRCwgbGF5ZXIsICpz
Y3JvbGxpbmdDb29yZGluYXRvcik7CisKICAgICBpZiAoYXV0byBub2RlSUQgPSBiYWNraW5nLT5z
Y3JvbGxpbmdOb2RlSURGb3JSb2xlKFNjcm9sbENvb3JkaW5hdGlvblJvbGU6OlZpZXdwb3J0Q29u
c3RyYWluZWQpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0Tm9kZUxheWVycyhu
b2RlSUQsIHsgYmFja2luZy0+Z3JhcGhpY3NMYXllcigpIH0pOwogCi0gICAgaWYgKGF1dG8gbm9k
ZUlEID0gYmFja2luZy0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShTY3JvbGxDb29yZGluYXRpb25S
b2xlOjpTY3JvbGxpbmcpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiB3b3VsZCBiZSBuaWNlIHRvIG5v
dCBoYXZlIHRvIHNwZWNpYWwtY2FzZSB0aGUgcm9vdC4KLSAgICAgICAgU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6Ok5vZGVMYXllcnMgbm9kZUxheWVyczsKLSAgICAgICAgaWYgKGxheWVyLmlzUmVuZGVy
Vmlld0xheWVyKCkpCi0gICAgICAgICAgICBub2RlTGF5ZXJzID0geyBudWxscHRyLCBzY3JvbGxD
b250YWluZXJMYXllcigpLCBzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSwgZml4ZWRSb290QmFja2dy
b3VuZExheWVyKCksIGNsaXBMYXllcigpLCByb290Q29udGVudHNMYXllcigpIH07Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIG5vZGVMYXllcnMgPSB7IGxheWVyLmJhY2tpbmcoKS0+Z3JhcGhp
Y3NMYXllcigpLCBiYWNraW5nLT5zY3JvbGxDb250YWluZXJMYXllcigpLCBiYWNraW5nLT5zY3Jv
bGxlZENvbnRlbnRzTGF5ZXIoKSB9OwotCi0gICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5z
ZXROb2RlTGF5ZXJzKG5vZGVJRCwgbm9kZUxheWVycyk7Ci0gICAgfQotCiAgICAgaWYgKGF1dG8g
bm9kZUlEID0gYmFja2luZy0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShTY3JvbGxDb29yZGluYXRp
b25Sb2xlOjpGcmFtZUhvc3RpbmcpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0
Tm9kZUxheWVycyhub2RlSUQsIHsgYmFja2luZy0+Z3JhcGhpY3NMYXllcigpIH0pOwogfQpAQCAt
Mzk2OSw2ICszOTYxLDIyIEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYXJl
bnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KGNvbnN0IFJlbmRlckxheWVyCiAgICAgcmV0dXJuIHNj
cm9sbGFibGVSZWN0OwogfQogCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Ny
b2xsaW5nTm9kZUxheWVycyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBSZW5kZXJMYXllciYgbGF5
ZXIsIFNjcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikKK3sKKyAgICBp
ZiAobGF5ZXIuaXNSZW5kZXJWaWV3TGF5ZXIoKSkgeworICAgICAgICBGcmFtZVZpZXcmIGZyYW1l
VmlldyA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKTsKKyAgICAgICAgc2Nyb2xsaW5nQ29vcmRp
bmF0b3Iuc2V0Tm9kZUxheWVycyhub2RlSUQsIHsgbnVsbHB0ciwKKyAgICAgICAgICAgIHNjcm9s
bENvbnRhaW5lckxheWVyKCksIHNjcm9sbGVkQ29udGVudHNMYXllcigpLAorICAgICAgICAgICAg
Zml4ZWRSb290QmFja2dyb3VuZExheWVyKCksIGNsaXBMYXllcigpLCByb290Q29udGVudHNMYXll
cigpLAorICAgICAgICAgICAgZnJhbWVWaWV3LmxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigp
LCBmcmFtZVZpZXcubGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIH0pOworICAgIH0gZWxzZSB7
CisgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLnNldE5vZGVMYXllcnMobm9kZUlELCB7IGxh
eWVyLmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpLAorICAgICAgICAgICAgbGF5ZXIuYmFja2lu
ZygpLT5zY3JvbGxDb250YWluZXJMYXllcigpLCBsYXllci5iYWNraW5nKCktPnNjcm9sbGVkQ29u
dGVudHNMYXllcigpLAorICAgICAgICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwKKyAg
ICAgICAgICAgIGxheWVyLmxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpLCBsYXllci5sYXll
ckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgfSk7CisgICAgfQorfQorCiBTY3JvbGxpbmdOb2RlSUQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxpbmdOb2RlRm9yU2Nyb2xsaW5nUm9s
ZShSZW5kZXJMYXllciYgbGF5ZXIsIFNjcm9sbGluZ1RyZWVTdGF0ZSYgdHJlZVN0YXRlLCBPcHRp
b25TZXQ8U2Nyb2xsaW5nTm9kZUNoYW5nZUZsYWdzPiBjaGFuZ2VzKQogewogICAgIGF1dG8qIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsKQEAgLTM5
ODcsNyArMzk5NSw3IEBAIFNjcm9sbGluZ05vZGVJRCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZVNjcm9sbGluZ05vZGVGb3JTY3JvbGxpbmdSb2xlKFJlbmRlCiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAoY2hhbmdlcyAmIFNjcm9sbGluZ05vZGVDaGFuZ2VGbGFnczo6TGF5ZXIpCi0gICAg
ICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0Tm9kZUxheWVycyhuZXdOb2RlSUQsIHsg
bnVsbHB0ciwgc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSwgc2Nyb2xsZWRDb250ZW50c0xheWVyKCks
IGZpeGVkUm9vdEJhY2tncm91bmRMYXllcigpLCBjbGlwTGF5ZXIoKSwgcm9vdENvbnRlbnRzTGF5
ZXIoKSB9KTsKKyAgICAgICAgICAgIHVwZGF0ZVNjcm9sbGluZ05vZGVMYXllcnMobmV3Tm9kZUlE
LCBsYXllciwgKnNjcm9sbGluZ0Nvb3JkaW5hdG9yKTsKIAogICAgICAgICBpZiAoY2hhbmdlcyAm
IFNjcm9sbGluZ05vZGVDaGFuZ2VGbGFnczo6TGF5ZXJHZW9tZXRyeSkgewogICAgICAgICAgICAg
c2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldFJlY3RSZWxhdGl2ZVRvUGFyZW50Tm9kZShuZXdOb2Rl
SUQsIHJvb3RQYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KCkpOwpAQCAtNDAwMiw3ICs0MDEw
LDcgQEAgU2Nyb2xsaW5nTm9kZUlEIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xs
aW5nTm9kZUZvclNjcm9sbGluZ1JvbGUoUmVuZGUKICAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgaWYgKGNoYW5nZXMgJiBTY3JvbGxpbmdOb2RlQ2hhbmdlRmxhZ3M6OkxheWVyKQotICAgICAg
ICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldE5vZGVMYXllcnMobmV3Tm9kZUlELCB7IGxh
eWVyLmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpLCBsYXllci5iYWNraW5nKCktPnNjcm9sbENv
bnRhaW5lckxheWVyKCksIGxheWVyLmJhY2tpbmcoKS0+c2Nyb2xsZWRDb250ZW50c0xheWVyKCkg
fSk7CisgICAgICAgICAgICB1cGRhdGVTY3JvbGxpbmdOb2RlTGF5ZXJzKG5ld05vZGVJRCwgbGF5
ZXIsICpzY3JvbGxpbmdDb29yZGluYXRvcik7CiAKICAgICAgICAgaWYgKGNoYW5nZXMgJiBTY3Jv
bGxpbmdOb2RlQ2hhbmdlRmxhZ3M6OkxheWVyR2VvbWV0cnkgJiYgdHJlZVN0YXRlLnBhcmVudE5v
ZGVJRCkgewogICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIHNjcm9sbGluZ0FuY2VzdG9yTGF5ZXIg
PSBtX3Njcm9sbGluZ05vZGVUb0xheWVyTWFwLmdldCh0cmVlU3RhdGUucGFyZW50Tm9kZUlELnZh
bHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5oCmluZGV4IDQ5M2UwNzg4MDAwZjA2YWQ3MDkwNTUxMGRlZWU4NmYzYWQyOTUwYmIuLmVj
N2MzODNlYjY3NzdhNTA5OWU0MjhlMjgwMzUwMDAyZGEzNjdlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTQ5Miw2ICs0OTIs
OCBAQCBwcml2YXRlOgogICAgIFNjcm9sbGluZ05vZGVJRCB1cGRhdGVTY3JvbGxpbmdOb2RlRm9y
U2Nyb2xsaW5nUm9sZShSZW5kZXJMYXllciYsIHN0cnVjdCBTY3JvbGxpbmdUcmVlU3RhdGUmLCBP
cHRpb25TZXQ8U2Nyb2xsaW5nTm9kZUNoYW5nZUZsYWdzPik7CiAgICAgU2Nyb2xsaW5nTm9kZUlE
IHVwZGF0ZVNjcm9sbGluZ05vZGVGb3JGcmFtZUhvc3RpbmdSb2xlKFJlbmRlckxheWVyJiwgc3Ry
dWN0IFNjcm9sbGluZ1RyZWVTdGF0ZSYsIE9wdGlvblNldDxTY3JvbGxpbmdOb2RlQ2hhbmdlRmxh
Z3M+KTsKIAorICAgIHZvaWQgdXBkYXRlU2Nyb2xsaW5nTm9kZUxheWVycyhTY3JvbGxpbmdOb2Rl
SUQsIFJlbmRlckxheWVyJiwgU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKKwogICAgIHZvaWQgZGV0
YWNoU2Nyb2xsQ29vcmRpbmF0ZWRMYXllcihSZW5kZXJMYXllciYsIE9wdGlvblNldDxTY3JvbGxD
b29yZGluYXRpb25Sb2xlPik7CiAgICAgdm9pZCBkZXRhY2hTY3JvbGxDb29yZGluYXRlZExheWVy
V2l0aFJvbGUoUmVuZGVyTGF5ZXImLCBTY3JvbGxpbmdDb29yZGluYXRvciYsIFNjcm9sbENvb3Jk
aW5hdGlvblJvbGUpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IDBiMmZhZjFmMzRlMTdiNDdlNTU1ZGQwYjllMGMx
NTU1YzQ5NjkyZGUuLjg0ODFmYWUyZWY0NGJjMDQxZDhiMzU1NDk1ZjE4MWY0ZDNjNTc2MTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5j
cHAKQEAgLTE0Myw4ICsxNDMsMTUgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdAogCiAgICAgaWYg
KG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Ny
b2xsQ29udGFpbmVyTGF5ZXIpKQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PEdyYXBo
aWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4obm9kZS5zY3JvbGxDb250YWluZXJMYXllcigpKTsK
KwogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGlj
X2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNjcm9sbGVkQ29udGVu
dHNMYXllcigpKTsKKworICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdT
dGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKSkKKyAgICAg
ICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+
KG5vZGUuaG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCkpOworCisgICAgaWYgKG5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbFNj
cm9sbGJhckxheWVyKSkKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xh
eWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUudmVydGljYWxTY3JvbGxiYXJMYXllcigpKTsKIH0K
IAogdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlJiBub2RlKQpAQCAtMTczLDEyICsxODAsNiBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Ny
b2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
YwogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZTo6Q29udGVudFNoYWRvd0xheWVyKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuY29udGVudFNoYWRv
d0xheWVyKCkpOwogCi0gICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbFNjcm9sbGJhckxheWVyKSkKLSAgICAgICAg
ZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5v
ZGUudmVydGljYWxTY3JvbGxiYXJMYXllcigpKTsKLQotICAgIGlmIChub2RlLmhhc0NoYW5nZWRQ
cm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbFNjcm9s
bGJhckxheWVyKSkKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVy
OjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuaG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCkpOwotCiAg
ICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlOjpSb290Q29udGVudHNMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnJvb3RDb250ZW50c0xheWVy
KCkpOwogfQpAQCAtMjU2LDYgKzI1NywyMCBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9sbAogICAg
ICAgICBub2RlLnNldFNjcm9sbGVkQ29udGVudHNMYXllcihsYXllcklEKTsKICAgICB9CiAKKyAg
ICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGU6Okhvcml6b250YWxTY3JvbGxiYXJMYXllcikpIHsKKyAgICAgICAgR3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
bGF5ZXJJRCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG5vZGUuc2V0SG9y
aXpvbnRhbFNjcm9sbGJhckxheWVyKGxheWVySUQpOworICAgIH0KKworICAgIGlmIChub2RlLmhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6VmVydGlj
YWxTY3JvbGxiYXJMYXllcikpIHsKKyAgICAgICAgR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXll
cklEIGxheWVySUQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGF5ZXJJRCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG5vZGUuc2V0VmVydGljYWxTY3JvbGxiYXJM
YXllcihsYXllcklEKTsKKyAgICB9CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjk4LDIw
ICszMTMsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUwogICAgICAgICBub2RlLnNldENvbnRl
bnRTaGFkb3dMYXllcihsYXllcklEKTsKICAgICB9CiAKLSAgICBpZiAobm9kZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsU2Nyb2xs
YmFyTGF5ZXIpKSB7Ci0gICAgICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXll
cklEOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxheWVySUQpKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICBub2RlLnNldFZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIobGF5
ZXJJRCk7Ci0gICAgfQotCi0gICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIpKSB7Ci0g
ICAgICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEOwotICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGxheWVySUQpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICBub2RlLnNldEhvcml6b250YWxTY3JvbGxiYXJMYXllcihsYXllcklEKTsKLSAgICB9
Ci0KICAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGU6OlJvb3RDb250ZW50c0xheWVyKSkgewogICAgICAgICBHcmFwaGljc0xheWVy
OjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRDsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShs
YXllcklEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBjNDNlNGU1MDkwYmVkYzcxYzlkZTYz
Zjg2N2Y3NDBhOTQxZmQwZjEyLi4yNGQ0YmVhMGQ5NjEyMWE1MWE1NDQ1ZGIwZmFiZjYxNzY4ZGVi
YzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00NTYsNiArNDU2LDcgQEAgVUlQcm9jZXNz
L1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQogVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9tYWMvU2Nyb2xsZXJNYWMubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFj
L1Njcm9sbGVyUGFpck1hYy5tbQogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKK1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMu
Y3BwCiAKIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJ
T1MubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHlJT1MubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LmNwcAppbmRleCAzMzY4MjQ2YWQyNzVhZTdhYzNiODZlOWQ0YTdhMjQ1NzZjNGJi
NmI4Li4xMWY3ODUwMmZlOTlkZDVkOGFkZjZlMTlmZDlkNWU5YTQ4OThkOGY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xNDYsNiAr
MTQ2LDEyIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y29ubmVjdFN0
YXRlTm9kZUxheWVycyhTY3JvbGxpbmdTdGF0ZVRyZWUmCiAKICAgICAgICAgICAgIGlmIChzY3Jv
bGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6U2Nyb2xsZWRDb250ZW50c0xheWVyKSkKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdT
dGF0ZU5vZGUuc2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKGxheWVyVHJlZUhvc3QubGF5ZXJGb3JJ
RChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsZWRDb250ZW50c0xheWVyKCkpKTsKKworICAgICAg
ICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIpKQorICAgICAg
ICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRWZXJ0aWNhbFNjcm9sbGJhckxheWVyKGxh
eWVyVHJlZUhvc3QubGF5ZXJGb3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUudmVydGljYWxTY3JvbGxi
YXJMYXllcigpKSk7CisKKyAgICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFs
U2Nyb2xsYmFyTGF5ZXIpKQorICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRI
b3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIobGF5ZXJUcmVlSG9zdC5sYXllckZvcklEKHNjcm9sbGlu
Z1N0YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoKSkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBTY3JvbGxpbmdOb2RlVHlwZTo6RnJhbWVIb3N0
aW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGIwMTYzMThlZDkzYzg2Mzli
MTY1YTcwYjM0OTZlY2Q3NDc4NWQzZmQuLmIwZWQ3OTBhMTc0ZjkwM2Q4ZjhiMmQ2YTFhZDg3OGNj
MzQ4MTM5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTM5LDYgKzM5LDcg
QEAKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmgiCiAj
ZWxzZQogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMu
aCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFj
LmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMjUsOCArMTI2LDcgQEAgUmVm
PFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdU
cmVlTm9kZShTY3JvbGxpbmdOb2QKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBy
ZXR1cm4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlz
LCBub2RlSUQpOwogI2Vsc2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IGJyZWFrOworICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZVJlbW90ZU1hYzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogI2VuZGlmCiAgICAgY2FzZSBTY3Jv
bGxpbmdOb2RlVHlwZTo6Rml4ZWQ6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWRO
b2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVSZW1vdGVNYWMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcAppbmRleCA2
NDQ5NTJkYWZjZjI2OGQ5ZDE5MjE3YzczM2VlODUyMzliZDM2NDgyLi4zMmExZTMzYWE4NTY3YzBi
NjE2MmUwNjc4M2NmMzc2Y2Y2MTkwN2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKQEAgLTU0
LDYgKzU0LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFj
Ojpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFMKICAgICBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0YXRlTm9kZSk7
CiAgICAgY29uc3QgYXV0byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CiAKKyAgICAvLyBGSVhNRTogUHVz
aCB0byBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjPwogICAgIGlmIChzY3Jv
bGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3Jv
bGxpbmdOb2RlOjpWZXJ0aWNhbFNjcm9sbGJhckxheWVyKSkKICAgICAgICAgbV9zY3JvbGxlclBh
aXItPnZlcnRpY2FsU2Nyb2xsZXIoKS5zZXRIb3N0TGF5ZXIoc2Nyb2xsaW5nU3RhdGVOb2RlLnZl
cnRpY2FsU2Nyb2xsYmFyTGF5ZXIoKSk7CiAKQEAgLTY3LDcgKzY4LDggQEAgdm9pZCBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpyZXBvc2l0aW9uUmVsYXRlZExheWVy
cygpCiB7CiAgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6cmVwb3NpdGlv
blJlbGF0ZWRMYXllcnMoKTsKIAotICAgIG1fc2Nyb2xsZXJQYWlyLT51cGRhdGVWYWx1ZXMoKTsK
KyAgICBpZiAobV9zY3JvbGxlclBhaXIpCisgICAgICAgIG1fc2Nyb2xsZXJQYWlyLT51cGRhdGVW
YWx1ZXMoKTsKIH0KIAogU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCkBAIC03OSw2ICs4MSw4IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWM6OmhhbmRsZVdoZWVsRXZl
bnQoCiAKIGJvb2wgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFu
ZGxlTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCiB7Cisg
ICAgaWYgKCFtX3Njcm9sbGVyUGFpcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVy
biBtX3Njcm9sbGVyUGFpci0+aGFuZGxlTW91c2VFdmVudChtb3VzZUV2ZW50KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg5NjBjZWMzMGU0MzMxOWFhMDI3
ZDlhMjFmY2VmYzgzNzYzNTA0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYy5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
UmVtb3RlTWFjLmgiCisKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShN
QUMpCisKKyNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdUcmVlLmgiCisjaW5jbHVkZSAiU2Nyb2xs
ZXJQYWlyTWFjLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK1JlZjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjPiBT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpjcmVhdGUoU2Nyb2xs
aW5nVHJlZSYgdHJlZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjKHRy
ZWUsIG5vZGVJRCkpOworfQorCitTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVt
b3RlTWFjOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjKFNjcm9s
bGluZ1RyZWUmIHRyZWUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCisgICAgOiBTY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjKHRyZWUsIG5vZGVJRCkKKyAgICAsIG1fc2Nyb2xs
ZXJQYWlyKHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsZXJQYWlyTWFjPigqdGhpcykpCit7Cit9CisK
K1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWM6On5TY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjKCkKK3sKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNo
aWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQoreworICAgIFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRy
ZW4oc3RhdGVOb2RlKTsKKyAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSBkb3du
Y2FzdDxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT4oc3RhdGVOb2RlKTsKKwor
ICAgIC8vIEZJWE1FOiBQdXNoIHRvIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWM/CisgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OlZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIpKQor
ICAgICAgICBtX3Njcm9sbGVyUGFpci0+dmVydGljYWxTY3JvbGxlcigpLnNldEhvc3RMYXllcihz
Y3JvbGxpbmdTdGF0ZU5vZGUudmVydGljYWxTY3JvbGxiYXJMYXllcigpKTsKKworICAgIGlmIChz
Y3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIpKQorICAgICAgICBtX3Nj
cm9sbGVyUGFpci0+aG9yaXpvbnRhbFNjcm9sbGVyKCkuc2V0SG9zdExheWVyKHNjcm9sbGluZ1N0
YXRlTm9kZS5ob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoKSk7CisKKyAgICBtX3Njcm9sbGVyUGFp
ci0+dXBkYXRlVmFsdWVzKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZVJlbW90ZU1hYzo6cmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKQoreworICAgIFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OnJlcG9zaXRpb25SZWxhdGVkTGF5ZXJz
KCk7CisKKyAgICBtX3Njcm9sbGVyUGFpci0+dXBkYXRlVmFsdWVzKCk7Cit9CisKK1Njcm9sbGlu
Z0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWM6
OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQor
eworICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVs
RXZlbnQod2hlZWxFdmVudCk7CisKKyAgICByZXR1cm4gbV9zY3JvbGxlclBhaXItPmhhbmRsZVdo
ZWVsRXZlbnQod2hlZWxFdmVudCkgPyBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZl
bnQgOiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7Cit9CisKK2Jvb2wg
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlTW91c2VF
dmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCit7CisgICAgcmV0dXJu
IG1fc2Nyb2xsZXJQYWlyLT5oYW5kbGVNb3VzZUV2ZW50KG1vdXNlRXZlbnQpOworfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmQyY2NjNDVlNTM0
OGM4N2U4OTgxODQzMmUxNDg4Yjg0MzI5MDAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlUmVtb3RlTWFjLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFD
KQorCisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTY3JvbGxlclBhaXJNYWM7CisK
K2NsYXNzIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMgOiBwdWJs
aWMgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYyB7CitwdWJs
aWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlUmVtb3RlTWFjPiBjcmVhdGUoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSYsIFdl
YkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CisgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYygpOworCisgICAgYm9vbCBoYW5kbGVNb3VzZUV2ZW50
KGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudCYpOworCitwcml2YXRlOgorICAgIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CisKKyAgICB2b2lkIGNvbW1pdFN0
YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgb3Zl
cnJpZGU7CisgICAgV2ViQ29yZTo6U2Nyb2xsaW5nRXZlbnRSZXN1bHQgaGFuZGxlV2hlZWxFdmVu
dChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKyAgICB2b2lk
IHJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkgb3ZlcnJpZGU7CisKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2Nyb2xsZXJQYWlyTWFjPiBtX3Njcm9sbGVyUGFpcjsKK307CisKK30KKworI2VuZGlmIC8v
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU3ZTFkYmY1ZTdhMjNl
YjBlZDg5OTQ4YmY3OWE5MmFhOWRkNGRkMTUuLjZhN2RkY2MzOTQwYzcyY2M4YmNiNDI3MTY4ODll
YTJmZjlkNDUxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTg4OCw2ICsxODg4LDggQEAKIAkJMEY1RTIwMDIxOEU3NzA1MTAwM0VD
M0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjcwN0M3NzFBMUZFRTgzMDBEQTdBNDUgLyogUmVtb3RlTGF5ZXJUcmVl
U2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjcwN0M3OTFBMUZFRUEzMDBEQTdBNDUgLyog
UmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjczQjc2NzIyMkIzOEM2MDA4MDUz
MTYgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3Rl
TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3M0I3NjgyMjJCMzhDNjAw
ODA1MzE2IC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1h
Yy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg1MEZFNDFFRDdDMzlGMDBGQjc3
QTcgLyogV2ViUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODUwRkU1MUVEN0MzOUYwMEZCNzdBNyAvKiBXZWJQ
ZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGOTMxQzFBMThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlSU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTg3NjMsNiArODc2NSw4IEBACiAJCQkJRTQwNDkwNzIyMURFNjVGNzAwMzdGMERC
IC8qIFNjcm9sbGVyUGFpck1hYy5tbSAqLywKIAkJCQlFNDA0OTA3MTIxREU2NUY3MDAzN0YwREIg
LyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAgKi8sCiAJCQkJ
RTQwNDkwNzMyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVSZW1vdGVNYWMuaCAqLywKKwkJCQkwRjczQjc2NzIyMkIzOEM2MDA4MDUzMTYgLyogU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAgKi8sCisJCQkJMEY3M0I3
NjgyMjJCMzhDNjAwODA1MzE2IC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVS
ZW1vdGVNYWMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsK
</data>
<flag name="review"
          id="380065"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>