<?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>231669</bug_id>
          
          <creation_ts>2021-10-13 05:18:52 -0700</creation_ts>
          <short_desc>[LFC][Integration] Move text box logical order cache to the caller</short_desc>
          <delta_ts>2021-10-13 11:03:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1803712</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-13 05:18:52 -0700</bug_when>
    <thetext>Don&apos;t maintain a rarely used cache internally in the iterator. Instead move it to the caller.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803743</commentid>
    <comment_count>1</comment_count>
      <attachid>441070</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-13 06:46:26 -0700</bug_when>
    <thetext>Created attachment 441070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803757</commentid>
    <comment_count>2</comment_count>
      <attachid>441074</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-13 07:30:08 -0700</bug_when>
    <thetext>Created attachment 441074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803759</commentid>
    <comment_count>3</comment_count>
      <attachid>441075</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-13 07:32:40 -0700</bug_when>
    <thetext>Created attachment 441075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803864</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-13 11:02:30 -0700</bug_when>
    <thetext>Committed r284112 (242933@main): &lt;https://commits.webkit.org/242933@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441075.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803865</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-13 11:03:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/84206827&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441070</attachid>
            <date>2021-10-13 06:46:26 -0700</date>
            <delta_ts>2021-10-13 07:30:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231669-20211013164624.patch</filename>
            <type>text/plain</type>
            <size>19222</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY4NDQ1NWFhMWZiMmFl
YzFkYWRhNWMwOWVjNzUwOGRmYjhjOTQ4Yi4uMTMxYjZjOTgxNzRkNzZhY2E1M2RhYTE5MTgxMzA3
YTc0MjA0ZTExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTEwLTEzICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlv
bl0gTW92ZSB0ZXh0IGJveCBsb2dpY2FsIG9yZGVyIGNhY2hlIHRvIHRoZSBjYWxsZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IG1haW50YWlu
IHRoaXMgcmFyZWx5IHVzZWQgY2FjaGUgaW50ZXJuYWxseSBpbiB0aGUgaXRlcmF0b3IuIEluc3Rl
YWQgbW92ZSBpdCB0byB0aGUgY2FsbGVyLgorCisgICAgICAgIEFsc28gbWFrZSB0aGUgY29kZSBu
b24tbGVnYWN5IHNwZWNpZmljIHNvIGl0IHdpbGwgd29yayB3aXRoIGZ1dHVyZSBJRkMgQmlESS4K
KworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlv
bjo6dXBzdHJlYW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmRvd25zdHJl
YW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoQWhlYWRGb3JCZXR0ZXJNYXRjaCk6
CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlSW5zaWduaWZpY2FudFRleHQpOgor
ICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRJdGVyYXRvcjo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6Omhh
bmRsZVRleHROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRJdGVyYXRvcjo6aGFuZGxlVGV4
dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnJldmVydFRvUmVtYWluaW5n
VGV4dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OmhhbmRsZVRleHROb2Rl
Rmlyc3RMZXR0ZXIpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmg6CisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TGVnYWN5UGF0aC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveExlZ2FjeVBhdGg6OnRyYXZlcnNlTmV4
dFRleHRCb3gpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveExlZ2FjeVBh
dGg6OnRyYXZlcnNlTmV4dFRleHRCb3hJblRleHRPcmRlcik6IERlbGV0ZWQuCisgICAgICAgICog
bGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveE1vZGVyblBhdGg6OnRyYXZlcnNlTmV4dFRl
eHRCb3hJblRleHRPcmRlcik6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9u
L0lubGluZUl0ZXJhdG9yVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVy
YXRvcjo6VGV4dEJveDo6bmV4dFRleHRCb3hJbkxvZ2ljYWxPcmRlciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6VGV4dEJveEl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRU
ZXh0Qm94SW5Mb2dpY2FsT3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6
OmZpcnN0VGV4dEJveEluTG9naWNhbE9yZGVyRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZUl0ZXJhdG9yOjpUZXh0Qm94OjpuZXh0VGV4dEJveEluVGV4dE9yZGVyIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpUZXh0Qm94SXRlcmF0b3I6OnRy
YXZlcnNlTmV4dFRleHRCb3hJblRleHRPcmRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5UZXh0T3JkZXJGb3IpOiBEZWxldGVkLgor
ICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5oOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6Y29tcGFyZUJ5U3RhcnQpOiBEZWxldGVkLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRhaW5z
T2Zmc2V0KToKKwogMjAyMS0xMC0xMiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3Mg
aW4gRG9jdW1lbnQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggMWQ5OTVjZGViNWNmZmM3
OTA2ZDg1MGJhZjM0ODVhZWZlOWY5OThiMS4uNGE1NGNkZjFkNzZiNGExMTY3MzgzYzk2M2NmMjhk
MmQ3Nzk0MmU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC03NDAsNyArNzQwLDcgQEAg
UG9zaXRpb24gUG9zaXRpb246OnVwc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBy
dWxlKSBjb25zdAogICAgICAgICBpZiAoaXM8UmVuZGVyVGV4dD4oKnJlbmRlcmVyKSkgewogICAg
ICAgICAgICAgYXV0byYgdGV4dFJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyVGV4dD4oKnJlbmRl
cmVyKTsKIAotICAgICAgICAgICAgYXV0byBmaXJzdFRleHRSdW4gPSBJbmxpbmVJdGVyYXRvcjo6
Zmlyc3RUZXh0Qm94SW5UZXh0T3JkZXJGb3IodGV4dFJlbmRlcmVyKTsKKyAgICAgICAgICAgIGF1
dG8gW2ZpcnN0VGV4dFJ1biwgb3JkZXJDYWNoZV0gPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0
Qm94SW5Mb2dpY2FsT3JkZXJGb3IodGV4dFJlbmRlcmVyKTsKICAgICAgICAgICAgIGlmICghZmly
c3RUZXh0UnVuKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC03NTgsNyArNzU4LDcg
QEAgUG9zaXRpb24gUG9zaXRpb246OnVwc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVs
ZSBydWxlKSBjb25zdAogICAgICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0ID4gcnVuLT5zdGFy
dCgpICYmIHRleHRPZmZzZXQgPD0gcnVuLT5lbmQoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGN1cnJlbnRQb3NpdGlvbjsKIAotICAgICAgICAgICAgICAgIGF1dG8gbmV4dFJ1biA9IHJ1
bi0+bmV4dFRleHRCb3hJblRleHRPcmRlcigpOworICAgICAgICAgICAgICAgIGF1dG8gbmV4dFJ1
biA9IHJ1bi0+bmV4dFRleHRCb3hJbkxvZ2ljYWxPcmRlcihvcmRlckNhY2hlKTsKICAgICAgICAg
ICAgICAgICBpZiAodGV4dE9mZnNldCA9PSBydW4tPmVuZCgpICsgMSAmJiBuZXh0UnVuICYmIHJ1
bi0+bGluZSgpICE9IG5leHRSdW4tPmxpbmUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGN1cnJlbnRQb3NpdGlvbjsKIApAQCAtODQ3LDcgKzg0Nyw3IEBAIFBvc2l0aW9uIFBvc2l0aW9u
Ojpkb3duc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBydWxlKSBjb25zdAogICAg
ICAgICBpZiAoaXM8UmVuZGVyVGV4dD4oKnJlbmRlcmVyKSkgewogICAgICAgICAgICAgYXV0byYg
dGV4dFJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyVGV4dD4oKnJlbmRlcmVyKTsKIAotICAgICAg
ICAgICAgYXV0byBmaXJzdFRleHRSdW4gPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5U
ZXh0T3JkZXJGb3IodGV4dFJlbmRlcmVyKTsKKyAgICAgICAgICAgIGF1dG8gW2ZpcnN0VGV4dFJ1
biwgb3JkZXJDYWNoZV0gPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5Mb2dpY2FsT3Jk
ZXJGb3IodGV4dFJlbmRlcmVyKTsKICAgICAgICAgICAgIGlmICghZmlyc3RUZXh0UnVuKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC04NjQsNyArODY0LDcgQEAgUG9zaXRpb24gUG9z
aXRpb246OmRvd25zdHJlYW0oRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0
CiAgICAgICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQgPj0gcnVuLT5zdGFydCgpICYmIHRleHRP
ZmZzZXQgPCBydW4tPmVuZCgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFBv
c2l0aW9uOwogCi0gICAgICAgICAgICAgICAgYXV0byBuZXh0UnVuID0gcnVuLT5uZXh0VGV4dEJv
eEluVGV4dE9yZGVyKCk7CisgICAgICAgICAgICAgICAgYXV0byBuZXh0UnVuID0gcnVuLT5uZXh0
VGV4dEJveEluTG9naWNhbE9yZGVyKG9yZGVyQ2FjaGUpOwogICAgICAgICAgICAgICAgIGlmICh0
ZXh0T2Zmc2V0ID09IHJ1bi0+ZW5kKCkgJiYgbmV4dFJ1biAmJiBydW4tPmxpbmUoKSAhPSBuZXh0
UnVuLT5saW5lKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50UG9zaXRpb247
CiAKQEAgLTExNzMsNyArMTE3Myw3IEBAIHN0YXRpYyBJbmxpbmVJdGVyYXRvcjo6VGV4dEJveEl0
ZXJhdG9yIHNlYXJjaEFoZWFkRm9yQmV0dGVyTWF0Y2goUmVuZGVyVGV4dCYgcmVuCiAgICAgICAg
IGlmIChpc05vblRleHRMZWFmQ2hpbGQoKm5leHQpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICAgICAgaWYgKGlzPFJlbmRlclRleHQ+KCpuZXh0KSkgewotICAgICAgICAgICAgaWYgKGF1
dG8gcnVuID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0VGV4dEJveEluVGV4dE9yZGVyRm9yKGRvd25j
YXN0PFJlbmRlclRleHQ+KCpuZXh0KSkpCisgICAgICAgICAgICBpZiAoYXV0byBbcnVuLCBvcmRl
ckNhY2hlXSA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJbkxvZ2ljYWxPcmRlckZvcihk
b3duY2FzdDxSZW5kZXJUZXh0PigqbmV4dCkpOyBydW4pCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJ1bjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggOTgwNDQ2MGNkYjJiYzVhYjUxNzE0YjQwNGFiODVj
MGNhZmUyMmEyMS4uNzYyZDAzZTQyYmJlZWRmOGVmNWQzMjc2MGQ4YjNjZDU3NWZkZWI2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAg
LTEwMTYsNyArMTAxNiw3IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUluc2ln
bmlmaWNhbnRUZXh0KFRleHQmIHRleHROb2RlLCB1bnNpZ25lZCBzdGFyCiAgICAgICAgIGlmICgh
dGV4dFJlbmRlcmVyKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1dG8gcnVuID0g
SW5saW5lSXRlcmF0b3I6OmZpcnN0VGV4dEJveEluVGV4dE9yZGVyRm9yKCp0ZXh0UmVuZGVyZXIp
OworICAgICAgICBhdXRvIFtydW4sIG9yZGVyQ2FjaGVdID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0
VGV4dEJveEluTG9naWNhbE9yZGVyRm9yKCp0ZXh0UmVuZGVyZXIpOwogICAgICAgICBpZiAoIXJ1
bikgewogICAgICAgICAgICAgd2hvbGVUZXh0Tm9kZUlzRW1wdHkgPSB0cnVlOwogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMTA1MSw3ICsxMDUxLDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6ZGVsZXRlSW5zaWduaWZpY2FudFRleHQoVGV4dCYgdGV4dE5vZGUsIHVuc2lnbmVkIHN0YXIK
IAogICAgICAgICAgICAgcHJldmlvdXNSdW4gPSBydW47CiAgICAgICAgICAgICBpZiAocnVuKQot
ICAgICAgICAgICAgICAgIHJ1bi50cmF2ZXJzZU5leHRUZXh0Qm94SW5UZXh0T3JkZXIoKTsKKyAg
ICAgICAgICAgICAgICBydW4udHJhdmVyc2VOZXh0VGV4dEJveEluTG9naWNhbE9yZGVyKG9yZGVy
Q2FjaGUpOwogICAgICAgICB9CiAgICAgfTsKICAgICBkZXRlcm1pbmVSZW1vdmFsTW9kZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCmluZGV4IGNjNmFkYjkwODlhYWMy
YWUzZDlmYjNjMjIzYmYxZTYyZDdmNzgzYjcuLjM1OGFjNWQxYWI0NGVmNjQ5NzkxYmRlMDVkZWE4
N2QxNDc0ZGM5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAg
LTQzOCwxMiArNDM4LDkgQEAgdm9pZCBUZXh0SXRlcmF0b3I6OmFkdmFuY2UoKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFtX3RleHRSdW4gJiYgbV9yZW1haW5pbmdUZXh0UnVu
KSB7Ci0gICAgICAgIG1fdGV4dFJ1biA9IG1fcmVtYWluaW5nVGV4dFJ1bjsKLSAgICAgICAgbV9y
ZW1haW5pbmdUZXh0UnVuID0geyB9OwotICAgICAgICBtX2ZpcnN0TGV0dGVyVGV4dCA9IHsgfTsK
LSAgICAgICAgbV9vZmZzZXQgPSAwOwotICAgIH0KKyAgICBpZiAoIW1fdGV4dFJ1biAmJiBtX3Jl
bWFpbmluZ1RleHRSdW4pCisgICAgICAgIHJldmVydFRvUmVtYWluaW5nVGV4dFJ1bigpOworCiAg
ICAgLy8gaGFuZGxlIHJlbWVtYmVyZWQgdGV4dCBib3gKICAgICBpZiAobV90ZXh0UnVuKSB7CiAg
ICAgICAgIGhhbmRsZVRleHRSdW4oKTsKQEAgLTU4MSw3ICs1NzgsNyBAQCBib29sIFRleHRJdGVy
YXRvcjo6aGFuZGxlVGV4dE5vZGUoKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAg
ICBtX3RleHRSdW4gPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5UZXh0T3JkZXJGb3Io
cmVuZGVyZXIpOworICAgIHN0ZDo6dGllKG1fdGV4dFJ1biwgbV90ZXh0UnVuTG9naWNhbE9yZGVy
Q2FjaGUpID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0VGV4dEJveEluTG9naWNhbE9yZGVyRm9yKHJl
bmRlcmVyKTsKIAogICAgIGJvb2wgc2hvdWxkSGFuZGxlRmlyc3RMZXR0ZXIgPSAhbV9oYW5kbGVk
Rmlyc3RMZXR0ZXIgJiYgaXM8UmVuZGVyVGV4dEZyYWdtZW50PihyZW5kZXJlcikgJiYgIW1fb2Zm
c2V0OwogICAgIGlmIChzaG91bGRIYW5kbGVGaXJzdExldHRlcikKQEAgLTYwOCw3ICs2MDUsNyBA
QCB2b2lkIFRleHRJdGVyYXRvcjo6aGFuZGxlVGV4dFJ1bigpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBhdXRvIGZpcnN0VGV4dFJ1biA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRC
b3hJblRleHRPcmRlckZvcihyZW5kZXJlcik7CisgICAgYXV0byBbZmlyc3RUZXh0UnVuLCBvcmRl
ckNhY2hlXSA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJbkxvZ2ljYWxPcmRlckZvcihy
ZW5kZXJlcik7CiAKICAgICBTdHJpbmcgcmVuZGVyZXJUZXh0ID0gcmVuZGVyZXIudGV4dCgpOwog
ICAgIHVuc2lnbmVkIHN0YXJ0ID0gbV9vZmZzZXQ7CkBAIC02MzQsNyArNjMxLDcgQEAgdm9pZCBU
ZXh0SXRlcmF0b3I6OmhhbmRsZVRleHRSdW4oKQogICAgICAgICAKICAgICAgICAgLy8gRGV0ZXJt
aW5lIHdoYXQgdGhlIG5leHQgdGV4dCBydW4gd2lsbCBiZSwgYnV0IGRvbid0IGFkdmFuY2UgeWV0
CiAgICAgICAgIGF1dG8gbmV4dFRleHRSdW4gPSBtX3RleHRSdW47Ci0gICAgICAgIG5leHRUZXh0
UnVuLnRyYXZlcnNlTmV4dFRleHRCb3hJblRleHRPcmRlcigpOworICAgICAgICBuZXh0VGV4dFJ1
bi50cmF2ZXJzZU5leHRUZXh0Qm94SW5Mb2dpY2FsT3JkZXIobV90ZXh0UnVuTG9naWNhbE9yZGVy
Q2FjaGUpOwogCiAgICAgICAgIGlmIChydW5TdGFydCA8IHJ1bkVuZCkgewogICAgICAgICAgICAg
YXV0byBpc05ld2xpbmVPclRhYiA9IFsmXShVQ2hhciBjaGFyYWN0ZXIpIHsKQEAgLTY3NywxNCAr
Njc0LDIyIEBAIHZvaWQgVGV4dEl0ZXJhdG9yOjpoYW5kbGVUZXh0UnVuKCkKICAgICAgICAgbV90
ZXh0UnVuID0gbmV4dFRleHRSdW47CiAgICAgfQogICAgIGlmICghbV90ZXh0UnVuICYmIG1fcmVt
YWluaW5nVGV4dFJ1bikgewotICAgICAgICBtX3RleHRSdW4gPSBtX3JlbWFpbmluZ1RleHRSdW47
Ci0gICAgICAgIG1fcmVtYWluaW5nVGV4dFJ1biA9IHsgfTsKLSAgICAgICAgbV9maXJzdExldHRl
clRleHQgPSB7IH07Ci0gICAgICAgIG1fb2Zmc2V0ID0gMDsKKyAgICAgICAgcmV2ZXJ0VG9SZW1h
aW5pbmdUZXh0UnVuKCk7CiAgICAgICAgIGhhbmRsZVRleHRSdW4oKTsKICAgICB9CiB9CiAKK3Zv
aWQgVGV4dEl0ZXJhdG9yOjpyZXZlcnRUb1JlbWFpbmluZ1RleHRSdW4oKQoreworICAgIEFTU0VS
VCghbV90ZXh0UnVuICYmIG1fcmVtYWluaW5nVGV4dFJ1bik7CisgICAgCisgICAgbV90ZXh0UnVu
ID0gbV9yZW1haW5pbmdUZXh0UnVuOworICAgIG1fdGV4dFJ1bkxvZ2ljYWxPcmRlckNhY2hlID0g
V1RGTW92ZShtX3JlbWFpbmluZ1RleHRSdW5Mb2dpY2FsT3JkZXJDYWNoZSk7CisgICAgbV9yZW1h
aW5pbmdUZXh0UnVuID0geyB9OworICAgIG1fZmlyc3RMZXR0ZXJUZXh0ID0geyB9OworICAgIG1f
b2Zmc2V0ID0gMDsKK30KKwogc3RhdGljIGlubGluZSBSZW5kZXJUZXh0KiBmaXJzdFJlbmRlclRl
eHRJbkZpcnN0TGV0dGVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiBmaXJzdExldHRlcikKIHsKICAg
ICBpZiAoIWZpcnN0TGV0dGVyKQpAQCAtNzAyLDcgKzcwNyw4IEBAIHZvaWQgVGV4dEl0ZXJhdG9y
OjpoYW5kbGVUZXh0Tm9kZUZpcnN0TGV0dGVyKFJlbmRlclRleHRGcmFnbWVudCYgcmVuZGVyZXIp
CiAgICAgICAgIGlmIChhdXRvKiBmaXJzdExldHRlclRleHQgPSBmaXJzdFJlbmRlclRleHRJbkZp
cnN0TGV0dGVyKGZpcnN0TGV0dGVyKSkgewogICAgICAgICAgICAgbV9oYW5kbGVkRmlyc3RMZXR0
ZXIgPSB0cnVlOwogICAgICAgICAgICAgbV9yZW1haW5pbmdUZXh0UnVuID0gbV90ZXh0UnVuOwot
ICAgICAgICAgICAgbV90ZXh0UnVuID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0VGV4dEJveEluVGV4
dE9yZGVyRm9yKCpmaXJzdExldHRlclRleHQpOworICAgICAgICAgICAgbV9yZW1haW5pbmdUZXh0
UnVuTG9naWNhbE9yZGVyQ2FjaGUgPSBXVEZNb3ZlKG1fdGV4dFJ1bkxvZ2ljYWxPcmRlckNhY2hl
KTsKKyAgICAgICAgICAgIHN0ZDo6dGllKG1fdGV4dFJ1biwgbV90ZXh0UnVuTG9naWNhbE9yZGVy
Q2FjaGUpID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0VGV4dEJveEluTG9naWNhbE9yZGVyRm9yKCpm
aXJzdExldHRlclRleHQpOwogICAgICAgICAgICAgbV9maXJzdExldHRlclRleHQgPSBmaXJzdExl
dHRlclRleHQ7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0
b3IuaAppbmRleCA5MDZkYTA2NTMxMzEwMTIzMjRjNWNhNjk0NGJlNzM4OWFjNzlkMGRkLi5lZjIz
YWRlMGFjMTYwYjA2N2FiOTU3N2M0MmZkYmE4Y2QyNmE5MWM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVGV4dEl0ZXJhdG9yLmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
aGFuZGxlVGV4dE5vZGVGaXJzdExldHRlcihSZW5kZXJUZXh0RnJhZ21lbnQmKTsKICAgICB2b2lk
IGVtaXRDaGFyYWN0ZXIoVUNoYXIsIE5vZGUmIGNoYXJhY3Rlck5vZGUsIE5vZGUqIG9mZnNldEJh
c2VOb2RlLCBpbnQgdGV4dFN0YXJ0T2Zmc2V0LCBpbnQgdGV4dEVuZE9mZnNldCk7CiAgICAgdm9p
ZCBlbWl0VGV4dChUZXh0JiB0ZXh0Tm9kZSwgUmVuZGVyVGV4dCYsIGludCB0ZXh0U3RhcnRPZmZz
ZXQsIGludCB0ZXh0RW5kT2Zmc2V0KTsKKyAgICB2b2lkIHJldmVydFRvUmVtYWluaW5nVGV4dFJ1
bigpOwogCiAgICAgTm9kZSogYmFzZU5vZGVGb3JFbWl0dGluZ05ld0xpbmUoKSBjb25zdDsKIApA
QCAtMTUwLDkgKzE1MSwxMSBAQCBwcml2YXRlOgogICAgIC8vIFVzZWQgd2hlbiB0aGVyZSBpcyBz
dGlsbCBzb21lIHBlbmRpbmcgdGV4dCBmcm9tIHRoZSBjdXJyZW50IG5vZGU7IHdoZW4gdGhlc2Ug
YXJlIGZhbHNlIGFuZCBudWxsLCB3ZSBnbyBiYWNrIHRvIG5vcm1hbCBpdGVyYXRpbmcuCiAgICAg
Tm9kZSogbV9ub2RlRm9yQWRkaXRpb25hbE5ld2xpbmUgeyBudWxscHRyIH07CiAgICAgSW5saW5l
SXRlcmF0b3I6OlRleHRCb3hJdGVyYXRvciBtX3RleHRSdW47CisgICAgSW5saW5lSXRlcmF0b3I6
OkxvZ2ljYWxPcmRlckNhY2hlIG1fdGV4dFJ1bkxvZ2ljYWxPcmRlckNhY2hlOwogCiAgICAgLy8g
VXNlZCB3aGVuIGl0ZXJhdGluZyBvdmVyIDpmaXJzdC1sZXR0ZXIgdGV4dCB0byBzYXZlIHBvaW50
ZXIgdG8gcmVtYWluaW5nIHRleHQgYm94LgogICAgIElubGluZUl0ZXJhdG9yOjpUZXh0Qm94SXRl
cmF0b3IgbV9yZW1haW5pbmdUZXh0UnVuOworICAgIElubGluZUl0ZXJhdG9yOjpMb2dpY2FsT3Jk
ZXJDYWNoZSBtX3JlbWFpbmluZ1RleHRSdW5Mb2dpY2FsT3JkZXJDYWNoZTsKIAogICAgIC8vIFVz
ZWQgdG8gcG9pbnQgdG8gUmVuZGVyVGV4dCBvYmplY3QgZm9yIDpmaXJzdC1sZXR0ZXIuCiAgICAg
UmVuZGVyVGV4dCogbV9maXJzdExldHRlclRleHQgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hMZWdhY3lQ
YXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JC
b3hMZWdhY3lQYXRoLmgKaW5kZXggZDExYTQ5NzFkNDQyMGE4NTE3MjczYWJiZmNmNTNiNjQ5ZmVj
ZDNiZC4uM2JlNGQzZGNhYzNiOTM5YWVkNjY4YTMzNTMxZmI2N2RmMjM5OTNmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TGVn
YWN5UGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJ
dGVyYXRvckJveExlZ2FjeVBhdGguaApAQCAtODcsMTUgKzg3LDYgQEAgcHVibGljOgogICAgIH0K
IAogICAgIHZvaWQgdHJhdmVyc2VOZXh0VGV4dEJveCgpIHsgbV9pbmxpbmVCb3ggPSBpbmxpbmVU
ZXh0Qm94KCktPm5leHRUZXh0Qm94KCk7IH0KLSAgICB2b2lkIHRyYXZlcnNlTmV4dFRleHRCb3hJ
blRleHRPcmRlcigpCi0gICAgewotICAgICAgICBpZiAoIW1fbG9naWNhbE9yZGVyQ2FjaGUuaXNF
bXB0eSgpKSB7Ci0gICAgICAgICAgICB0cmF2ZXJzZU5leHRJbmxpbmVCb3hJbkNhY2hlT3JkZXIo
KTsKLSAgICAgICAgICAgIEFTU0VSVCghbV9pbmxpbmVCb3ggfHwgaXM8TGVnYWN5SW5saW5lVGV4
dEJveD4obV9pbmxpbmVCb3gpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICB0cmF2ZXJzZU5leHRUZXh0Qm94KCk7Ci0gICAgfQogCiAgICAgdm9pZCB0cmF2ZXJzZU5l
eHRPbkxpbmUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveE1vZGVyblBhdGguaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveE1vZGVyblBhdGguaAppbmRleCA1ODc3
ZDVmYTlhYjhiNjI5Zjk2MzA2YTlmM2YwMzBjYTQ3YmRhYjc4Li42MTU0M2IwY2Y0YzQ4YjBhYmQ5
ZDJjNDI1ZTk0ZTE3YWRmZjQ2MDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hNb2Rlcm5QYXRoLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oCkBA
IC0xMzYsMTIgKzEzNiw2IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGF0RW5kKCkgfHwgYm94
KCkudGV4dCgpKTsKICAgICB9CiAKLSAgICB2b2lkIHRyYXZlcnNlTmV4dFRleHRCb3hJblRleHRP
cmRlcigpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogTm8gUlRMIGluIExGQy4KLSAgICAgICAg
dHJhdmVyc2VOZXh0VGV4dEJveCgpOwotICAgIH0KLQogICAgIHZvaWQgdHJhdmVyc2VOZXh0T25M
aW5lKCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghYXRFbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JUZXh0Qm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3gu
Y3BwCmluZGV4IGI5YTM0MGNkNTQxNzQ4NzhhYjc1YzUzM2IwMWFjYjVhMTQzOWM1NDUuLjRkNzMx
YzkxZjIxYmVmZjM1MTJhNzE2MjhmNGU4NTBlM2U5NTcwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3gu
Y3BwCkBAIC0zOCw5ICszOCw5IEBAIFRleHRCb3hJdGVyYXRvciBUZXh0Qm94OjpuZXh0VGV4dEJv
eCgpIGNvbnN0CiAgICAgcmV0dXJuIFRleHRCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0
VGV4dEJveCgpOwogfQogCi1UZXh0Qm94SXRlcmF0b3IgVGV4dEJveDo6bmV4dFRleHRCb3hJblRl
eHRPcmRlcigpIGNvbnN0CitUZXh0Qm94SXRlcmF0b3IgVGV4dEJveDo6bmV4dFRleHRCb3hJbkxv
Z2ljYWxPcmRlcihMb2dpY2FsT3JkZXJDYWNoZSYgY2FjaGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IFRleHRCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0VGV4dEJveEluVGV4dE9yZGVyKCk7
CisgICAgcmV0dXJuIFRleHRCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0VGV4dEJveElu
TG9naWNhbE9yZGVyKGNhY2hlKTsKIH0KIAogTGF5b3V0UmVjdCBUZXh0Qm94OjpzZWxlY3Rpb25S
ZWN0KHVuc2lnbmVkIHJhbmdlU3RhcnQsIHVuc2lnbmVkIHJhbmdlRW5kKSBjb25zdApAQCAtOTQs
MTEgKzk0LDIzIEBAIFRleHRCb3hJdGVyYXRvciYgVGV4dEJveEl0ZXJhdG9yOjp0cmF2ZXJzZU5l
eHRUZXh0Qm94KCkKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLVRleHRCb3hJdGVyYXRvciYgVGV4
dEJveEl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRUZXh0Qm94SW5UZXh0T3JkZXIoKQorVGV4dEJveEl0
ZXJhdG9yJiBUZXh0Qm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dFRleHRCb3hJbkxvZ2ljYWxPcmRl
cihMb2dpY2FsT3JkZXJDYWNoZSYgY2FjaGUpCiB7Ci0gICAgV1RGOjpzd2l0Y2hPbihtX2JveC5t
X3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSB7Ci0gICAgICAgIHBhdGgudHJhdmVyc2VOZXh0
VGV4dEJveEluVGV4dE9yZGVyKCk7Ci0gICAgfSk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAg
cmV0dXJuIHRyYXZlcnNlTmV4dFRleHRCb3goKTsKKworICAgIGlmIChjYWNoZS0+aW5kZXggPT0g
Y2FjaGUtPmJveGVzLnNpemUoKSB8fCBjYWNoZS0+Ym94ZXNbY2FjaGUtPmluZGV4XSAhPSAqdGhp
cykgeworICAgICAgICBjYWNoZS0+aW5kZXggPSBjYWNoZS0+Ym94ZXMuZmluZCgqdGhpcyk7Cisg
ICAgICAgIEFTU0VSVChjYWNoZS0+aW5kZXggIT0gbm90Rm91bmQpOworICAgIH0KKworICAgIGNh
Y2hlLT5pbmRleCsrOworCisgICAgaWYgKGNhY2hlLT5pbmRleCA8IGNhY2hlLT5ib3hlcy5zaXpl
KCkpCisgICAgICAgICp0aGlzID0gY2FjaGUtPmJveGVzW2NhY2hlLT5pbmRleF07CisgICAgZWxz
ZQorICAgICAgICAqdGhpcyA9IHsgfTsKKwogICAgIHJldHVybiAqdGhpczsKIH0KIApAQCAtMTEy
LDIwICsxMjQsMjMgQEAgVGV4dEJveEl0ZXJhdG9yIGZpcnN0VGV4dEJveEZvcihjb25zdCBSZW5k
ZXJUZXh0JiB0ZXh0KQogICAgIHJldHVybiB7IEJveExlZ2FjeVBhdGggeyB0ZXh0LmZpcnN0VGV4
dEJveCgpIH0gfTsKIH0KIAotVGV4dEJveEl0ZXJhdG9yIGZpcnN0VGV4dEJveEluVGV4dE9yZGVy
Rm9yKGNvbnN0IFJlbmRlclRleHQmIHRleHQpCitzdGQ6OnBhaXI8VGV4dEJveEl0ZXJhdG9yLCBM
b2dpY2FsT3JkZXJDYWNoZT4gZmlyc3RUZXh0Qm94SW5Mb2dpY2FsT3JkZXJGb3IoY29uc3QgUmVu
ZGVyVGV4dCYgdGV4dCkKIHsKLSAgICBpZiAodGV4dC5maXJzdFRleHRCb3goKSAmJiB0ZXh0LmNv
bnRhaW5zUmV2ZXJzZWRUZXh0KCkpIHsKLSAgICAgICAgVmVjdG9yPGNvbnN0IExlZ2FjeUlubGlu
ZUJveCo+IHNvcnRlZFRleHRCb3hlczsKLSAgICAgICAgZm9yIChhdXRvKiB0ZXh0Qm94ID0gdGV4
dC5maXJzdFRleHRCb3goKTsgdGV4dEJveDsgdGV4dEJveCA9IHRleHRCb3gtPm5leHRUZXh0Qm94
KCkpCi0gICAgICAgICAgICBzb3J0ZWRUZXh0Qm94ZXMuYXBwZW5kKHRleHRCb3gpOwotICAgICAg
ICBzdGQ6OnNvcnQoc29ydGVkVGV4dEJveGVzLmJlZ2luKCksIHNvcnRlZFRleHRCb3hlcy5lbmQo
KSwgW10oYXV0byogYSwgYXV0byogYikgewotICAgICAgICAgICAgcmV0dXJuIExlZ2FjeUlubGlu
ZVRleHRCb3g6OmNvbXBhcmVCeVN0YXJ0KGRvd25jYXN0PExlZ2FjeUlubGluZVRleHRCb3g+KGEp
LCBkb3duY2FzdDxMZWdhY3lJbmxpbmVUZXh0Qm94PihiKSk7Ci0gICAgICAgIH0pOwotICAgICAg
ICBhdXRvKiBmaXJzdCA9IHNvcnRlZFRleHRCb3hlc1swXTsKLSAgICAgICAgcmV0dXJuIHsgQm94
TGVnYWN5UGF0aCB7IGZpcnN0LCBXVEZNb3ZlKHNvcnRlZFRleHRCb3hlcyksIDAgfSB9OwotICAg
IH0KKyAgICBpZiAoIXRleHQuY29udGFpbnNSZXZlcnNlZFRleHQoKSkKKyAgICAgICAgcmV0dXJu
IHsgZmlyc3RUZXh0Qm94Rm9yKHRleHQpLCBudWxscHRyIH07CisKKyAgICBhdXRvIGNhY2hlID0g
V1RGOjptYWtlVW5pcXVlPExvZ2ljYWxPcmRlckNhY2hlRGF0YT4oKTsKKyAgICBmb3IgKGF1dG8g
dGV4dEJveCA6IHRleHRCb3hlc0Zvcih0ZXh0KSkKKyAgICAgICAgY2FjaGUtPmJveGVzLmFwcGVu
ZCh0ZXh0Qm94KTsKKworICAgIGlmIChjYWNoZS0+Ym94ZXMuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4geyBUZXh0Qm94SXRlcmF0b3IgeyB9LCBudWxscHRyIH07CisKKyAgICBzdGQ6OnNvcnQo
Y2FjaGUtPmJveGVzLmJlZ2luKCksIGNhY2hlLT5ib3hlcy5lbmQoKSwgWyZdKGF1dG8mIGEsIGF1
dG8mIGIpIHsKKyAgICAgICAgcmV0dXJuIGEtPnN0YXJ0KCkgPCBiLT5zdGFydCgpOworICAgIH0p
OwogCi0gICAgcmV0dXJuIGZpcnN0VGV4dEJveEZvcih0ZXh0KTsKKyAgICByZXR1cm4geyBjYWNo
ZS0+Ym94ZXNbMF0sIFdURk1vdmUoY2FjaGUpIH07CiB9CiAKIFRleHRCb3hJdGVyYXRvciB0ZXh0
Qm94Rm9yKGNvbnN0IExlZ2FjeUlubGluZVRleHRCb3gqIGxlZ2FjeUlubGluZVRleHRCb3gpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0
b3JUZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRl
cmF0b3JUZXh0Qm94LmgKaW5kZXggODljMjhkZmU0ZjQwY2IxNjE3MjA0NjBjNzc3MGE4OTJhNWYy
Yjg5Zi4uMDY0MWYzYzQ2NTVlOTFmNjMxMzI5ZjVmZGU1NmMxOGEwMWM1Yzg4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yVGV4dEJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRv
clRleHRCb3guaApAQCAtMzIsNiArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVz
cGFjZSBJbmxpbmVJdGVyYXRvciB7CiAKK3N0cnVjdCBMb2dpY2FsT3JkZXJDYWNoZURhdGE7Cit1
c2luZyBMb2dpY2FsT3JkZXJDYWNoZSA9IHN0ZDo6dW5pcXVlX3B0cjxMb2dpY2FsT3JkZXJDYWNo
ZURhdGE+OworCiBjbGFzcyBUZXh0Qm94IDogcHVibGljIEJveCB7CiBwdWJsaWM6CiAgICAgVGV4
dEJveChQYXRoVmFyaWFudCYmKTsKQEAgLTYwLDcgKzYzLDcgQEAgcHVibGljOgogICAgIGNvbnN0
IExlZ2FjeUlubGluZVRleHRCb3gqIGxlZ2FjeUlubGluZUJveCgpIGNvbnN0IHsgcmV0dXJuIGRv
d25jYXN0PExlZ2FjeUlubGluZVRleHRCb3g+KEJveDo6bGVnYWN5SW5saW5lQm94KCkpOyB9CiAK
ICAgICBUZXh0Qm94SXRlcmF0b3IgbmV4dFRleHRCb3goKSBjb25zdDsKLSAgICBUZXh0Qm94SXRl
cmF0b3IgbmV4dFRleHRCb3hJblRleHRPcmRlcigpIGNvbnN0OworICAgIFRleHRCb3hJdGVyYXRv
ciBuZXh0VGV4dEJveEluTG9naWNhbE9yZGVyKExvZ2ljYWxPcmRlckNhY2hlJikgY29uc3Q7CiB9
OwogCiBjbGFzcyBUZXh0Qm94SXRlcmF0b3IgOiBwdWJsaWMgTGVhZkJveEl0ZXJhdG9yIHsKQEAg
LTc1LDcgKzc4LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFRleHRCb3gqIG9wZXJhdG9yLT4oKSBj
b25zdCB7IHJldHVybiAmZ2V0KCk7IH0KIAogICAgIFRleHRCb3hJdGVyYXRvciYgdHJhdmVyc2VO
ZXh0VGV4dEJveCgpOwotICAgIFRleHRCb3hJdGVyYXRvciYgdHJhdmVyc2VOZXh0VGV4dEJveElu
VGV4dE9yZGVyKCk7CisgICAgVGV4dEJveEl0ZXJhdG9yJiB0cmF2ZXJzZU5leHRUZXh0Qm94SW5M
b2dpY2FsT3JkZXIoTG9naWNhbE9yZGVyQ2FjaGUmKTsKIAogcHJpdmF0ZToKICAgICBCb3hJdGVy
YXRvciYgdHJhdmVyc2VOZXh0T25MaW5lKCkgPSBkZWxldGU7CkBAIC0xMDMsNyArMTA2LDYgQEAg
cHJpdmF0ZToKIH07CiAKIFRleHRCb3hJdGVyYXRvciBmaXJzdFRleHRCb3hGb3IoY29uc3QgUmVu
ZGVyVGV4dCYpOwotVGV4dEJveEl0ZXJhdG9yIGZpcnN0VGV4dEJveEluVGV4dE9yZGVyRm9yKGNv
bnN0IFJlbmRlclRleHQmKTsKIFRleHRCb3hJdGVyYXRvciB0ZXh0Qm94Rm9yKGNvbnN0IExlZ2Fj
eUlubGluZVRleHRCb3gqKTsKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
IFRleHRCb3hJdGVyYXRvciB0ZXh0Qm94Rm9yKGNvbnN0IExheW91dEludGVncmF0aW9uOjpJbmxp
bmVDb250ZW50JiwgY29uc3QgSW5saW5lRGlzcGxheTo6Qm94Jik7CkBAIC0xMTEsNiArMTEzLDEy
IEBAIFRleHRCb3hJdGVyYXRvciB0ZXh0Qm94Rm9yKGNvbnN0IExheW91dEludGVncmF0aW9uOjpJ
bmxpbmVDb250ZW50Jiwgc2l6ZV90IGJveEluCiAjZW5kaWYKIFRleHRCb3hSYW5nZSB0ZXh0Qm94
ZXNGb3IoY29uc3QgUmVuZGVyVGV4dCYpOwogCitzdHJ1Y3QgTG9naWNhbE9yZGVyQ2FjaGVEYXRh
IHsKKyAgICBWZWN0b3I8VGV4dEJveEl0ZXJhdG9yPiBib3hlczsKKyAgICBzaXplX3QgaW5kZXgg
eyAwIH07Cit9Oworc3RkOjpwYWlyPFRleHRCb3hJdGVyYXRvciwgTG9naWNhbE9yZGVyQ2FjaGU+
IGZpcnN0VGV4dEJveEluTG9naWNhbE9yZGVyRm9yKGNvbnN0IFJlbmRlclRleHQmKTsKKwogaW5s
aW5lIGJvb2wgVGV4dEJveDo6aGFzSHlwaGVuKCkgY29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpz
d2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZVRleHRCb3guaAppbmRleCA2NDRkOTI1YjRhNTBhODRh
MGMzMGNlZDY0NWZlN2E4MjhjZGQyYmQzLi4yNzhlNzhhMjhkNGY2YmIyZDk1M2EzNTMzOTI3MTZj
NGIxNWYwNWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5s
aW5lVGV4dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVU
ZXh0Qm94LmgKQEAgLTg4LDggKzg4LDYgQEAgcHVibGljOgogICAgIHVzaW5nIExlZ2FjeUlubGlu
ZUJveDo6Zm9yY2VMZWZ0RXhwYW5zaW9uOwogICAgIHVzaW5nIExlZ2FjeUlubGluZUJveDo6c2V0
Rm9yY2VMZWZ0RXhwYW5zaW9uOwogCi0gICAgc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVCeVN0
YXJ0KGNvbnN0IExlZ2FjeUlubGluZVRleHRCb3gqIGZpcnN0LCBjb25zdCBMZWdhY3lJbmxpbmVU
ZXh0Qm94KiBzZWNvbmQpIHsgcmV0dXJuIGZpcnN0LT5zdGFydCgpIDwgc2Vjb25kLT5zdGFydCgp
OyB9Ci0KICAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lKSBjb25z
dCBmaW5hbDsKICAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoKSBjb25zdCBmaW5hbDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IGY4MjU0Y2Q3MTI4ZGIyYTQx
NDQzYjM1OTBjYWM0NzNlYjAzMzdjODIuLmNjZjkwMDg0ODI4YjZkMThlY2UyMzc5OWEzNWE4M2Y5
NzAzMTdmOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTE3
MTIsNyArMTcxMiw3IEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6OmNvdW50UmVuZGVyZWRDaGFyYWN0
ZXJPZmZzZXRzVW50aWwodW5zaWduZWQgb2Zmc2V0KSBjb25zdAogZW51bSBjbGFzcyBPZmZzZXRU
eXBlIHsgQ2hhcmFjdGVyLCBDYXJldCB9Owogc3RhdGljIGJvb2wgY29udGFpbnNPZmZzZXQoY29u
c3QgUmVuZGVyVGV4dCYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCBPZmZzZXRUeXBlIHR5cGUpCiB7
Ci0gICAgZm9yIChhdXRvIGJveCA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJblRleHRP
cmRlckZvcih0ZXh0KTsgYm94OyBib3gudHJhdmVyc2VOZXh0VGV4dEJveEluVGV4dE9yZGVyKCkp
IHsKKyAgICBmb3IgKGF1dG8gW2JveCwgb3JkZXJDYWNoZV0gPSBJbmxpbmVJdGVyYXRvcjo6Zmly
c3RUZXh0Qm94SW5Mb2dpY2FsT3JkZXJGb3IodGV4dCk7IGJveDsgYm94LnRyYXZlcnNlTmV4dFRl
eHRCb3hJbkxvZ2ljYWxPcmRlcihvcmRlckNhY2hlKSkgewogICAgICAgICBhdXRvIHN0YXJ0ID0g
Ym94LT5zdGFydCgpOwogICAgICAgICBpZiAob2Zmc2V0IDwgc3RhcnQpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Cg==
</data>
<flag name="commit-queue"
          id="465201"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441074</attachid>
            <date>2021-10-13 07:30:08 -0700</date>
            <delta_ts>2021-10-13 07:32:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231669-20211013173006.patch</filename>
            <type>text/plain</type>
            <size>19352</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY4NDQ1NWFhMWZiMmFl
YzFkYWRhNWMwOWVjNzUwOGRmYjhjOTQ4Yi4uNjdmYzM1YTU2NjY3OGRmZmMwZDNkOTBiYWJhYTQ3
NGE1ODM2MGI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTEwLTEzICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlv
bl0gTW92ZSB0ZXh0IGJveCBsb2dpY2FsIG9yZGVyIGNhY2hlIHRvIHRoZSBjYWxsZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IG1haW50YWlu
IHRoaXMgcmFyZWx5IHVzZWQgY2FjaGUgaW50ZXJuYWxseSBpbiB0aGUgaXRlcmF0b3IuIEluc3Rl
YWQgbW92ZSBpdCB0byB0aGUgY2FsbGVyLgorCisgICAgICAgIEFsc28gbWFrZSB0aGUgY29kZSBu
b24tbGVnYWN5IHNwZWNpZmljIHNvIGl0IHdpbGwgd29yayB3aXRoIGZ1dHVyZSBJRkMgQmlEaS4K
KworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlv
bjo6dXBzdHJlYW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmRvd25zdHJl
YW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoQWhlYWRGb3JCZXR0ZXJNYXRjaCk6
CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlSW5zaWduaWZpY2FudFRleHQpOgor
ICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRJdGVyYXRvcjo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6Omhh
bmRsZVRleHROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRJdGVyYXRvcjo6aGFuZGxlVGV4
dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnJldmVydFRvUmVtYWluaW5n
VGV4dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OmhhbmRsZVRleHROb2Rl
Rmlyc3RMZXR0ZXIpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmg6CisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TGVnYWN5UGF0aC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveExlZ2FjeVBhdGg6OnRyYXZlcnNlTmV4
dFRleHRCb3gpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveExlZ2FjeVBh
dGg6OnRyYXZlcnNlTmV4dFRleHRCb3hJblRleHRPcmRlcik6IERlbGV0ZWQuCisgICAgICAgICog
bGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveE1vZGVyblBhdGg6OnRyYXZlcnNlTmV4dFRl
eHRCb3hJblRleHRPcmRlcik6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9u
L0lubGluZUl0ZXJhdG9yVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVy
YXRvcjo6Zmlyc3RUZXh0Qm94SW5Mb2dpY2FsT3JkZXJGb3IpOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lSXRlcmF0b3I6Om5leHRUZXh0Qm94SW5Mb2dpY2FsT3JkZXIpOgorCisgICAgICAgIFRy
YXZlcnNlIHVzaW5nIGZyZWUgZnVuY3Rpb25zIGluc3RlYWQgb2YgbWVtYmVycy4KKworICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OlRleHRCb3g6Om5leHRUZXh0Qm94SW5UZXh0T3Jk
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OlRl
eHRCb3hJdGVyYXRvcjo6dHJhdmVyc2VOZXh0VGV4dEJveEluVGV4dE9yZGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJblRleHRPcmRl
ckZvcik6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJh
dG9yVGV4dEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94Lmg6
CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lJbmxpbmVUZXh0Qm94Ojpjb21wYXJlQnlTdGFydCk6
IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGFpbnNPZmZzZXQpOgorCiAyMDIxLTEwLTEyICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVj
bGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRl
eCAxZDk5NWNkZWI1Y2ZmYzc5MDZkODUwYmFmMzQ4NWFlZmU5Zjk5OGIxLi4zMjY1NjNkNTA4NWNj
ZTA0MzRiNzc1NTg2MjQ4YTRjNTNiZmZiYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAg
LTc0MCw3ICs3NDAsNyBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6dXBzdHJlYW0oRWRpdGluZ0JvdW5k
YXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgIGlmIChpczxSZW5kZXJUZXh0Pigq
cmVuZGVyZXIpKSB7CiAgICAgICAgICAgICBhdXRvJiB0ZXh0UmVuZGVyZXIgPSBkb3duY2FzdDxS
ZW5kZXJUZXh0PigqcmVuZGVyZXIpOwogCi0gICAgICAgICAgICBhdXRvIGZpcnN0VGV4dFJ1biA9
IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJblRleHRPcmRlckZvcih0ZXh0UmVuZGVyZXIp
OworICAgICAgICAgICAgYXV0byBbZmlyc3RUZXh0UnVuLCBvcmRlckNhY2hlXSA9IElubGluZUl0
ZXJhdG9yOjpmaXJzdFRleHRCb3hJbkxvZ2ljYWxPcmRlckZvcih0ZXh0UmVuZGVyZXIpOwogICAg
ICAgICAgICAgaWYgKCFmaXJzdFRleHRSdW4pCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAK
QEAgLTc1OCw3ICs3NTgsNyBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6dXBzdHJlYW0oRWRpdGluZ0Jv
dW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgICAgICAgICAgaWYgKHRleHRP
ZmZzZXQgPiBydW4tPnN0YXJ0KCkgJiYgdGV4dE9mZnNldCA8PSBydW4tPmVuZCgpKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uOwogCi0gICAgICAgICAgICAgICAg
YXV0byBuZXh0UnVuID0gcnVuLT5uZXh0VGV4dEJveEluVGV4dE9yZGVyKCk7CisgICAgICAgICAg
ICAgICAgYXV0byBuZXh0UnVuID0gSW5saW5lSXRlcmF0b3I6Om5leHRUZXh0Qm94SW5Mb2dpY2Fs
T3JkZXIocnVuLCBvcmRlckNhY2hlKTsKICAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA9
PSBydW4tPmVuZCgpICsgMSAmJiBuZXh0UnVuICYmIHJ1bi0+bGluZSgpICE9IG5leHRSdW4tPmxp
bmUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsKIApAQCAt
ODQ3LDcgKzg0Nyw3IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjpkb3duc3RyZWFtKEVkaXRpbmdCb3Vu
ZGFyeUNyb3NzaW5nUnVsZSBydWxlKSBjb25zdAogICAgICAgICBpZiAoaXM8UmVuZGVyVGV4dD4o
KnJlbmRlcmVyKSkgewogICAgICAgICAgICAgYXV0byYgdGV4dFJlbmRlcmVyID0gZG93bmNhc3Q8
UmVuZGVyVGV4dD4oKnJlbmRlcmVyKTsKIAotICAgICAgICAgICAgYXV0byBmaXJzdFRleHRSdW4g
PSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5UZXh0T3JkZXJGb3IodGV4dFJlbmRlcmVy
KTsKKyAgICAgICAgICAgIGF1dG8gW2ZpcnN0VGV4dFJ1biwgb3JkZXJDYWNoZV0gPSBJbmxpbmVJ
dGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5Mb2dpY2FsT3JkZXJGb3IodGV4dFJlbmRlcmVyKTsKICAg
ICAgICAgICAgIGlmICghZmlyc3RUZXh0UnVuKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
CkBAIC04NjQsNyArODY0LDcgQEAgUG9zaXRpb24gUG9zaXRpb246OmRvd25zdHJlYW0oRWRpdGlu
Z0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgICAgICAgICAgaWYgKHRl
eHRPZmZzZXQgPj0gcnVuLT5zdGFydCgpICYmIHRleHRPZmZzZXQgPCBydW4tPmVuZCgpKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uOwogCi0gICAgICAgICAgICAg
ICAgYXV0byBuZXh0UnVuID0gcnVuLT5uZXh0VGV4dEJveEluVGV4dE9yZGVyKCk7CisgICAgICAg
ICAgICAgICAgYXV0byBuZXh0UnVuID0gSW5saW5lSXRlcmF0b3I6Om5leHRUZXh0Qm94SW5Mb2dp
Y2FsT3JkZXIocnVuLCBvcmRlckNhY2hlKTsKICAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNl
dCA9PSBydW4tPmVuZCgpICYmIG5leHRSdW4gJiYgcnVuLT5saW5lKCkgIT0gbmV4dFJ1bi0+bGlu
ZSgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uOwogCkBAIC0x
MTczLDcgKzExNzMsNyBAQCBzdGF0aWMgSW5saW5lSXRlcmF0b3I6OlRleHRCb3hJdGVyYXRvciBz
ZWFyY2hBaGVhZEZvckJldHRlck1hdGNoKFJlbmRlclRleHQmIHJlbgogICAgICAgICBpZiAoaXNO
b25UZXh0TGVhZkNoaWxkKCpuZXh0KSkKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAg
IGlmIChpczxSZW5kZXJUZXh0PigqbmV4dCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIHJ1biA9
IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJblRleHRPcmRlckZvcihkb3duY2FzdDxSZW5k
ZXJUZXh0PigqbmV4dCkpKQorICAgICAgICAgICAgaWYgKGF1dG8gW3J1biwgb3JkZXJDYWNoZV0g
PSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5Mb2dpY2FsT3JkZXJGb3IoZG93bmNhc3Q8
UmVuZGVyVGV4dD4oKm5leHQpKTsgcnVuKQogICAgICAgICAgICAgICAgIHJldHVybiBydW47CiAg
ICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuY3BwCmluZGV4IDk4MDQ0NjBjZGIyYmM1YWI1MTcxNGI0MDRhYjg1YzBjYWZlMjJh
MjEuLmM1ZTg1YjE4OGQ4ZDhhNjdhZGIzNWYzODRhOWJiYmMxMTEwNmUxMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0xMDE2LDcg
KzEwMTYsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50
VGV4dChUZXh0JiB0ZXh0Tm9kZSwgdW5zaWduZWQgc3RhcgogICAgICAgICBpZiAoIXRleHRSZW5k
ZXJlcikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBhdXRvIHJ1biA9IElubGluZUl0
ZXJhdG9yOjpmaXJzdFRleHRCb3hJblRleHRPcmRlckZvcigqdGV4dFJlbmRlcmVyKTsKKyAgICAg
ICAgYXV0byBbcnVuLCBvcmRlckNhY2hlXSA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJ
bkxvZ2ljYWxPcmRlckZvcigqdGV4dFJlbmRlcmVyKTsKICAgICAgICAgaWYgKCFydW4pIHsKICAg
ICAgICAgICAgIHdob2xlVGV4dE5vZGVJc0VtcHR5ID0gdHJ1ZTsKICAgICAgICAgICAgIHJldHVy
bjsKQEAgLTEwNTEsNyArMTA1MSw3IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0
ZUluc2lnbmlmaWNhbnRUZXh0KFRleHQmIHRleHROb2RlLCB1bnNpZ25lZCBzdGFyCiAKICAgICAg
ICAgICAgIHByZXZpb3VzUnVuID0gcnVuOwogICAgICAgICAgICAgaWYgKHJ1bikKLSAgICAgICAg
ICAgICAgICBydW4udHJhdmVyc2VOZXh0VGV4dEJveEluVGV4dE9yZGVyKCk7CisgICAgICAgICAg
ICAgICAgcnVuID0gSW5saW5lSXRlcmF0b3I6Om5leHRUZXh0Qm94SW5Mb2dpY2FsT3JkZXIocnVu
LCBvcmRlckNhY2hlKTsKICAgICAgICAgfQogICAgIH07CiAgICAgZGV0ZXJtaW5lUmVtb3ZhbE1v
ZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAppbmRleCBjYzZhZGI5
MDg5YWFjMmFlM2Q5ZmIzYzIyM2JmMWU2MmQ3Zjc4M2I3Li44YTg3YWYwMDYwZDNiOTA0MTdiZjY5
NWRhMTZhZDliZmM1NjAyMzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwCkBAIC00MzgsMTIgKzQzOCw5IEBAIHZvaWQgVGV4dEl0ZXJhdG9yOjphZHZhbmNlKCkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV90ZXh0UnVuICYmIG1fcmVtYWluaW5n
VGV4dFJ1bikgewotICAgICAgICBtX3RleHRSdW4gPSBtX3JlbWFpbmluZ1RleHRSdW47Ci0gICAg
ICAgIG1fcmVtYWluaW5nVGV4dFJ1biA9IHsgfTsKLSAgICAgICAgbV9maXJzdExldHRlclRleHQg
PSB7IH07Ci0gICAgICAgIG1fb2Zmc2V0ID0gMDsKLSAgICB9CisgICAgaWYgKCFtX3RleHRSdW4g
JiYgbV9yZW1haW5pbmdUZXh0UnVuKQorICAgICAgICByZXZlcnRUb1JlbWFpbmluZ1RleHRSdW4o
KTsKKwogICAgIC8vIGhhbmRsZSByZW1lbWJlcmVkIHRleHQgYm94CiAgICAgaWYgKG1fdGV4dFJ1
bikgewogICAgICAgICBoYW5kbGVUZXh0UnVuKCk7CkBAIC01ODEsNyArNTc4LDcgQEAgYm9vbCBU
ZXh0SXRlcmF0b3I6OmhhbmRsZVRleHROb2RlKCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgbV90ZXh0UnVuID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0VGV4dEJveEluVGV4dE9y
ZGVyRm9yKHJlbmRlcmVyKTsKKyAgICBzdGQ6OnRpZShtX3RleHRSdW4sIG1fdGV4dFJ1bkxvZ2lj
YWxPcmRlckNhY2hlKSA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJbkxvZ2ljYWxPcmRl
ckZvcihyZW5kZXJlcik7CiAKICAgICBib29sIHNob3VsZEhhbmRsZUZpcnN0TGV0dGVyID0gIW1f
aGFuZGxlZEZpcnN0TGV0dGVyICYmIGlzPFJlbmRlclRleHRGcmFnbWVudD4ocmVuZGVyZXIpICYm
ICFtX29mZnNldDsKICAgICBpZiAoc2hvdWxkSGFuZGxlRmlyc3RMZXR0ZXIpCkBAIC02MDgsNyAr
NjA1LDcgQEAgdm9pZCBUZXh0SXRlcmF0b3I6OmhhbmRsZVRleHRSdW4oKQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgYXV0byBmaXJzdFRleHRSdW4gPSBJbmxpbmVJdGVyYXRvcjo6Zmly
c3RUZXh0Qm94SW5UZXh0T3JkZXJGb3IocmVuZGVyZXIpOworICAgIGF1dG8gW2ZpcnN0VGV4dFJ1
biwgb3JkZXJDYWNoZV0gPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5Mb2dpY2FsT3Jk
ZXJGb3IocmVuZGVyZXIpOwogCiAgICAgU3RyaW5nIHJlbmRlcmVyVGV4dCA9IHJlbmRlcmVyLnRl
eHQoKTsKICAgICB1bnNpZ25lZCBzdGFydCA9IG1fb2Zmc2V0OwpAQCAtNjMzLDggKzYzMCw3IEBA
IHZvaWQgVGV4dEl0ZXJhdG9yOjpoYW5kbGVUZXh0UnVuKCkKICAgICAgICAgdW5zaWduZWQgcnVu
RW5kID0gc3RkOjptaW4odGV4dFJ1bkVuZCwgZW5kKTsKICAgICAgICAgCiAgICAgICAgIC8vIERl
dGVybWluZSB3aGF0IHRoZSBuZXh0IHRleHQgcnVuIHdpbGwgYmUsIGJ1dCBkb24ndCBhZHZhbmNl
IHlldAotICAgICAgICBhdXRvIG5leHRUZXh0UnVuID0gbV90ZXh0UnVuOwotICAgICAgICBuZXh0
VGV4dFJ1bi50cmF2ZXJzZU5leHRUZXh0Qm94SW5UZXh0T3JkZXIoKTsKKyAgICAgICAgYXV0byBu
ZXh0VGV4dFJ1biA9IElubGluZUl0ZXJhdG9yOjpuZXh0VGV4dEJveEluTG9naWNhbE9yZGVyKG1f
dGV4dFJ1biwgbV90ZXh0UnVuTG9naWNhbE9yZGVyQ2FjaGUpOwogCiAgICAgICAgIGlmIChydW5T
dGFydCA8IHJ1bkVuZCkgewogICAgICAgICAgICAgYXV0byBpc05ld2xpbmVPclRhYiA9IFsmXShV
Q2hhciBjaGFyYWN0ZXIpIHsKQEAgLTY3NywxNCArNjczLDIyIEBAIHZvaWQgVGV4dEl0ZXJhdG9y
OjpoYW5kbGVUZXh0UnVuKCkKICAgICAgICAgbV90ZXh0UnVuID0gbmV4dFRleHRSdW47CiAgICAg
fQogICAgIGlmICghbV90ZXh0UnVuICYmIG1fcmVtYWluaW5nVGV4dFJ1bikgewotICAgICAgICBt
X3RleHRSdW4gPSBtX3JlbWFpbmluZ1RleHRSdW47Ci0gICAgICAgIG1fcmVtYWluaW5nVGV4dFJ1
biA9IHsgfTsKLSAgICAgICAgbV9maXJzdExldHRlclRleHQgPSB7IH07Ci0gICAgICAgIG1fb2Zm
c2V0ID0gMDsKKyAgICAgICAgcmV2ZXJ0VG9SZW1haW5pbmdUZXh0UnVuKCk7CiAgICAgICAgIGhh
bmRsZVRleHRSdW4oKTsKICAgICB9CiB9CiAKK3ZvaWQgVGV4dEl0ZXJhdG9yOjpyZXZlcnRUb1Jl
bWFpbmluZ1RleHRSdW4oKQoreworICAgIEFTU0VSVCghbV90ZXh0UnVuICYmIG1fcmVtYWluaW5n
VGV4dFJ1bik7CisKKyAgICBtX3RleHRSdW4gPSBtX3JlbWFpbmluZ1RleHRSdW47CisgICAgbV90
ZXh0UnVuTG9naWNhbE9yZGVyQ2FjaGUgPSBzdGQ6OmV4Y2hhbmdlKG1fcmVtYWluaW5nVGV4dFJ1
bkxvZ2ljYWxPcmRlckNhY2hlLCBudWxscHRyKTsKKyAgICBtX3JlbWFpbmluZ1RleHRSdW4gPSB7
IH07CisgICAgbV9maXJzdExldHRlclRleHQgPSB7IH07CisgICAgbV9vZmZzZXQgPSAwOworfQor
CiBzdGF0aWMgaW5saW5lIFJlbmRlclRleHQqIGZpcnN0UmVuZGVyVGV4dEluRmlyc3RMZXR0ZXIo
UmVuZGVyQm94TW9kZWxPYmplY3QqIGZpcnN0TGV0dGVyKQogewogICAgIGlmICghZmlyc3RMZXR0
ZXIpCkBAIC03MDIsNyArNzA2LDggQEAgdm9pZCBUZXh0SXRlcmF0b3I6OmhhbmRsZVRleHROb2Rl
Rmlyc3RMZXR0ZXIoUmVuZGVyVGV4dEZyYWdtZW50JiByZW5kZXJlcikKICAgICAgICAgaWYgKGF1
dG8qIGZpcnN0TGV0dGVyVGV4dCA9IGZpcnN0UmVuZGVyVGV4dEluRmlyc3RMZXR0ZXIoZmlyc3RM
ZXR0ZXIpKSB7CiAgICAgICAgICAgICBtX2hhbmRsZWRGaXJzdExldHRlciA9IHRydWU7CiAgICAg
ICAgICAgICBtX3JlbWFpbmluZ1RleHRSdW4gPSBtX3RleHRSdW47Ci0gICAgICAgICAgICBtX3Rl
eHRSdW4gPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5UZXh0T3JkZXJGb3IoKmZpcnN0
TGV0dGVyVGV4dCk7CisgICAgICAgICAgICBtX3JlbWFpbmluZ1RleHRSdW5Mb2dpY2FsT3JkZXJD
YWNoZSA9IHN0ZDo6ZXhjaGFuZ2UobV90ZXh0UnVuTG9naWNhbE9yZGVyQ2FjaGUsIG51bGxwdHIp
OworICAgICAgICAgICAgc3RkOjp0aWUobV90ZXh0UnVuLCBtX3RleHRSdW5Mb2dpY2FsT3JkZXJD
YWNoZSkgPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5Mb2dpY2FsT3JkZXJGb3IoKmZp
cnN0TGV0dGVyVGV4dCk7CiAgICAgICAgICAgICBtX2ZpcnN0TGV0dGVyVGV4dCA9IGZpcnN0TGV0
dGVyVGV4dDsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dEl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRv
ci5oCmluZGV4IDkwNmRhMDY1MzEzMTAxMjMyNGM1Y2E2OTQ0YmU3Mzg5YWM3OWQwZGQuLmVmMjNh
ZGUwYWMxNjBiMDY3YWI5NTc3YzQyZmRiYThjZDI2YTkxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuaApAQCAtMTIwLDYgKzEyMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBo
YW5kbGVUZXh0Tm9kZUZpcnN0TGV0dGVyKFJlbmRlclRleHRGcmFnbWVudCYpOwogICAgIHZvaWQg
ZW1pdENoYXJhY3RlcihVQ2hhciwgTm9kZSYgY2hhcmFjdGVyTm9kZSwgTm9kZSogb2Zmc2V0QmFz
ZU5vZGUsIGludCB0ZXh0U3RhcnRPZmZzZXQsIGludCB0ZXh0RW5kT2Zmc2V0KTsKICAgICB2b2lk
IGVtaXRUZXh0KFRleHQmIHRleHROb2RlLCBSZW5kZXJUZXh0JiwgaW50IHRleHRTdGFydE9mZnNl
dCwgaW50IHRleHRFbmRPZmZzZXQpOworICAgIHZvaWQgcmV2ZXJ0VG9SZW1haW5pbmdUZXh0UnVu
KCk7CiAKICAgICBOb2RlKiBiYXNlTm9kZUZvckVtaXR0aW5nTmV3TGluZSgpIGNvbnN0OwogCkBA
IC0xNTAsOSArMTUxLDExIEBAIHByaXZhdGU6CiAgICAgLy8gVXNlZCB3aGVuIHRoZXJlIGlzIHN0
aWxsIHNvbWUgcGVuZGluZyB0ZXh0IGZyb20gdGhlIGN1cnJlbnQgbm9kZTsgd2hlbiB0aGVzZSBh
cmUgZmFsc2UgYW5kIG51bGwsIHdlIGdvIGJhY2sgdG8gbm9ybWFsIGl0ZXJhdGluZy4KICAgICBO
b2RlKiBtX25vZGVGb3JBZGRpdGlvbmFsTmV3bGluZSB7IG51bGxwdHIgfTsKICAgICBJbmxpbmVJ
dGVyYXRvcjo6VGV4dEJveEl0ZXJhdG9yIG1fdGV4dFJ1bjsKKyAgICBJbmxpbmVJdGVyYXRvcjo6
TG9naWNhbE9yZGVyQ2FjaGUgbV90ZXh0UnVuTG9naWNhbE9yZGVyQ2FjaGU7CiAKICAgICAvLyBV
c2VkIHdoZW4gaXRlcmF0aW5nIG92ZXIgOmZpcnN0LWxldHRlciB0ZXh0IHRvIHNhdmUgcG9pbnRl
ciB0byByZW1haW5pbmcgdGV4dCBib3guCiAgICAgSW5saW5lSXRlcmF0b3I6OlRleHRCb3hJdGVy
YXRvciBtX3JlbWFpbmluZ1RleHRSdW47CisgICAgSW5saW5lSXRlcmF0b3I6OkxvZ2ljYWxPcmRl
ckNhY2hlIG1fcmVtYWluaW5nVGV4dFJ1bkxvZ2ljYWxPcmRlckNhY2hlOwogCiAgICAgLy8gVXNl
ZCB0byBwb2ludCB0byBSZW5kZXJUZXh0IG9iamVjdCBmb3IgOmZpcnN0LWxldHRlci4KICAgICBS
ZW5kZXJUZXh0KiBtX2ZpcnN0TGV0dGVyVGV4dCB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveExlZ2FjeVBh
dGguaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJv
eExlZ2FjeVBhdGguaAppbmRleCBkMTFhNDk3MWQ0NDIwYTg1MTcyNzNhYmJmY2Y1M2I2NDlmZWNk
M2JkLi4zYmU0ZDNkY2FjM2I5MzlhZWQ2NjhhMzM1MzFmYjY3ZGYyMzk5M2ZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hMZWdh
Y3lQYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0
ZXJhdG9yQm94TGVnYWN5UGF0aC5oCkBAIC04NywxNSArODcsNiBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgdm9pZCB0cmF2ZXJzZU5leHRUZXh0Qm94KCkgeyBtX2lubGluZUJveCA9IGlubGluZVRl
eHRCb3goKS0+bmV4dFRleHRCb3goKTsgfQotICAgIHZvaWQgdHJhdmVyc2VOZXh0VGV4dEJveElu
VGV4dE9yZGVyKCkKLSAgICB7Ci0gICAgICAgIGlmICghbV9sb2dpY2FsT3JkZXJDYWNoZS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgIHRyYXZlcnNlTmV4dElubGluZUJveEluQ2FjaGVPcmRlcigp
OwotICAgICAgICAgICAgQVNTRVJUKCFtX2lubGluZUJveCB8fCBpczxMZWdhY3lJbmxpbmVUZXh0
Qm94PihtX2lubGluZUJveCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
ICAgIHRyYXZlcnNlTmV4dFRleHRCb3goKTsKLSAgICB9CiAKICAgICB2b2lkIHRyYXZlcnNlTmV4
dE9uTGluZSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oCmluZGV4IDU4Nzdk
NWZhOWFiOGI2MjlmOTYzMDZhOWYzZjAzMGNhNDdiZGFiNzguLjYxNTQzYjBjZjRjNDhiMGFiZDlk
MmM0MjVlOTRlMTdhZGZmNDYwNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveE1vZGVyblBhdGguaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hNb2Rlcm5QYXRoLmgKQEAg
LTEzNiwxMiArMTM2LDYgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoYXRFbmQoKSB8fCBib3go
KS50ZXh0KCkpOwogICAgIH0KIAotICAgIHZvaWQgdHJhdmVyc2VOZXh0VGV4dEJveEluVGV4dE9y
ZGVyKCkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBObyBSVEwgaW4gTEZDLgotICAgICAgICB0
cmF2ZXJzZU5leHRUZXh0Qm94KCk7Ci0gICAgfQotCiAgICAgdm9pZCB0cmF2ZXJzZU5leHRPbkxp
bmUoKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFhdEVuZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yVGV4dEJveC5j
cHAKaW5kZXggYjlhMzQwY2Q1NDE3NDg3OGFiNzVjNTMzYjAxYWNiNWExNDM5YzU0NS4uMjE1Njhk
ZjM0ODgyYWZkNTYyYjg1OGE1NDU1MjBhNWVhOThiZjRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yVGV4dEJveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yVGV4dEJveC5j
cHAKQEAgLTM4LDExICszOCw2IEBAIFRleHRCb3hJdGVyYXRvciBUZXh0Qm94OjpuZXh0VGV4dEJv
eCgpIGNvbnN0CiAgICAgcmV0dXJuIFRleHRCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0
VGV4dEJveCgpOwogfQogCi1UZXh0Qm94SXRlcmF0b3IgVGV4dEJveDo6bmV4dFRleHRCb3hJblRl
eHRPcmRlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFRleHRCb3hJdGVyYXRvcigqdGhpcykudHJh
dmVyc2VOZXh0VGV4dEJveEluVGV4dE9yZGVyKCk7Ci19Ci0KIExheW91dFJlY3QgVGV4dEJveDo6
c2VsZWN0aW9uUmVjdCh1bnNpZ25lZCByYW5nZVN0YXJ0LCB1bnNpZ25lZCByYW5nZUVuZCkgY29u
c3QKIHsKICAgICBhdXRvIFtjbGFtcGVkU3RhcnQsIGNsYW1wZWRFbmRdID0gc2VsZWN0YWJsZVJh
bmdlKCkuY2xhbXAocmFuZ2VTdGFydCwgcmFuZ2VFbmQpOwpAQCAtOTQsMTQgKzg5LDYgQEAgVGV4
dEJveEl0ZXJhdG9yJiBUZXh0Qm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dFRleHRCb3goKQogICAg
IHJldHVybiAqdGhpczsKIH0KIAotVGV4dEJveEl0ZXJhdG9yJiBUZXh0Qm94SXRlcmF0b3I6OnRy
YXZlcnNlTmV4dFRleHRCb3hJblRleHRPcmRlcigpCi17Ci0gICAgV1RGOjpzd2l0Y2hPbihtX2Jv
eC5tX3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSB7Ci0gICAgICAgIHBhdGgudHJhdmVyc2VO
ZXh0VGV4dEJveEluVGV4dE9yZGVyKCk7Ci0gICAgfSk7Ci0gICAgcmV0dXJuICp0aGlzOwotfQot
CiBUZXh0Qm94SXRlcmF0b3IgZmlyc3RUZXh0Qm94Rm9yKGNvbnN0IFJlbmRlclRleHQmIHRleHQp
CiB7CiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCkBAIC0xMTIsMjAgKzk5
LDQxIEBAIFRleHRCb3hJdGVyYXRvciBmaXJzdFRleHRCb3hGb3IoY29uc3QgUmVuZGVyVGV4dCYg
dGV4dCkKICAgICByZXR1cm4geyBCb3hMZWdhY3lQYXRoIHsgdGV4dC5maXJzdFRleHRCb3goKSB9
IH07CiB9CiAKLVRleHRCb3hJdGVyYXRvciBmaXJzdFRleHRCb3hJblRleHRPcmRlckZvcihjb25z
dCBSZW5kZXJUZXh0JiB0ZXh0KQorc3RkOjpwYWlyPFRleHRCb3hJdGVyYXRvciwgTG9naWNhbE9y
ZGVyQ2FjaGU+IGZpcnN0VGV4dEJveEluTG9naWNhbE9yZGVyRm9yKGNvbnN0IFJlbmRlclRleHQm
IHRleHQpCit7CisgICAgaWYgKCF0ZXh0LmNvbnRhaW5zUmV2ZXJzZWRUZXh0KCkpCisgICAgICAg
IHJldHVybiB7IGZpcnN0VGV4dEJveEZvcih0ZXh0KSwgbnVsbHB0ciB9OworCisgICAgYXV0byBj
YWNoZSA9IFdURjo6bWFrZVVuaXF1ZTxMb2dpY2FsT3JkZXJDYWNoZURhdGE+KCk7CisgICAgZm9y
IChhdXRvIHRleHRCb3ggOiB0ZXh0Qm94ZXNGb3IodGV4dCkpCisgICAgICAgIGNhY2hlLT5ib3hl
cy5hcHBlbmQodGV4dEJveCk7CisKKyAgICBpZiAoY2FjaGUtPmJveGVzLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIHsgVGV4dEJveEl0ZXJhdG9yIHsgfSwgbnVsbHB0ciB9OworCisgICAgc3Rk
Ojpzb3J0KGNhY2hlLT5ib3hlcy5iZWdpbigpLCBjYWNoZS0+Ym94ZXMuZW5kKCksIFsmXShhdXRv
JiBhLCBhdXRvJiBiKSB7CisgICAgICAgIHJldHVybiBhLT5zdGFydCgpIDwgYi0+c3RhcnQoKTsK
KyAgICB9KTsKKworICAgIHJldHVybiB7IGNhY2hlLT5ib3hlc1swXSwgV1RGTW92ZShjYWNoZSkg
fTsKK30KKworVGV4dEJveEl0ZXJhdG9yIG5leHRUZXh0Qm94SW5Mb2dpY2FsT3JkZXIoY29uc3Qg
VGV4dEJveEl0ZXJhdG9yJiB0ZXh0Qm94LCBMb2dpY2FsT3JkZXJDYWNoZSYgY2FjaGUpCiB7Ci0g
ICAgaWYgKHRleHQuZmlyc3RUZXh0Qm94KCkgJiYgdGV4dC5jb250YWluc1JldmVyc2VkVGV4dCgp
KSB7Ci0gICAgICAgIFZlY3Rvcjxjb25zdCBMZWdhY3lJbmxpbmVCb3gqPiBzb3J0ZWRUZXh0Qm94
ZXM7Ci0gICAgICAgIGZvciAoYXV0byogdGV4dEJveCA9IHRleHQuZmlyc3RUZXh0Qm94KCk7IHRl
eHRCb3g7IHRleHRCb3ggPSB0ZXh0Qm94LT5uZXh0VGV4dEJveCgpKQotICAgICAgICAgICAgc29y
dGVkVGV4dEJveGVzLmFwcGVuZCh0ZXh0Qm94KTsKLSAgICAgICAgc3RkOjpzb3J0KHNvcnRlZFRl
eHRCb3hlcy5iZWdpbigpLCBzb3J0ZWRUZXh0Qm94ZXMuZW5kKCksIFtdKGF1dG8qIGEsIGF1dG8q
IGIpIHsKLSAgICAgICAgICAgIHJldHVybiBMZWdhY3lJbmxpbmVUZXh0Qm94Ojpjb21wYXJlQnlT
dGFydChkb3duY2FzdDxMZWdhY3lJbmxpbmVUZXh0Qm94PihhKSwgZG93bmNhc3Q8TGVnYWN5SW5s
aW5lVGV4dEJveD4oYikpOwotICAgICAgICB9KTsKLSAgICAgICAgYXV0byogZmlyc3QgPSBzb3J0
ZWRUZXh0Qm94ZXNbMF07Ci0gICAgICAgIHJldHVybiB7IEJveExlZ2FjeVBhdGggeyBmaXJzdCwg
V1RGTW92ZShzb3J0ZWRUZXh0Qm94ZXMpLCAwIH0gfTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAg
ICByZXR1cm4gdGV4dEJveC0+bmV4dFRleHRCb3goKTsKKworICAgIGlmIChjYWNoZS0+aW5kZXgg
PT0gY2FjaGUtPmJveGVzLnNpemUoKSB8fCBjYWNoZS0+Ym94ZXNbY2FjaGUtPmluZGV4XSAhPSB0
ZXh0Qm94KSB7CisgICAgICAgIGNhY2hlLT5pbmRleCA9IGNhY2hlLT5ib3hlcy5maW5kKHRleHRC
b3gpOworICAgICAgICBBU1NFUlQoY2FjaGUtPmluZGV4ICE9IG5vdEZvdW5kKTsKICAgICB9CiAK
LSAgICByZXR1cm4gZmlyc3RUZXh0Qm94Rm9yKHRleHQpOworICAgIGNhY2hlLT5pbmRleCsrOwor
CisgICAgaWYgKGNhY2hlLT5pbmRleCA8IGNhY2hlLT5ib3hlcy5zaXplKCkpCisgICAgICAgIHJl
dHVybiBjYWNoZS0+Ym94ZXNbY2FjaGUtPmluZGV4XTsKKworICAgIHJldHVybiB7IH07CiB9CiAK
IFRleHRCb3hJdGVyYXRvciB0ZXh0Qm94Rm9yKGNvbnN0IExlZ2FjeUlubGluZVRleHRCb3gqIGxl
Z2FjeUlubGluZVRleHRCb3gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JUZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JUZXh0Qm94LmgKaW5kZXggODljMjhkZmU0ZjQwY2Ix
NjE3MjA0NjBjNzc3MGE4OTJhNWYyYjg5Zi4uNDJiNDdlMzQ5OTdmMzNiMmE4N2RiNWUwYjdhNWIx
YWEwZGUyODNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0lubGluZUl0ZXJhdG9yVGV4dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guaApAQCAtMzIsNiArMzIsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBJbmxpbmVJdGVyYXRvciB7CiAKK3N0cnVjdCBMb2dp
Y2FsT3JkZXJDYWNoZURhdGE7Cit1c2luZyBMb2dpY2FsT3JkZXJDYWNoZSA9IHN0ZDo6dW5pcXVl
X3B0cjxMb2dpY2FsT3JkZXJDYWNoZURhdGE+OworCiBjbGFzcyBUZXh0Qm94IDogcHVibGljIEJv
eCB7CiBwdWJsaWM6CiAgICAgVGV4dEJveChQYXRoVmFyaWFudCYmKTsKQEAgLTYwLDcgKzYzLDYg
QEAgcHVibGljOgogICAgIGNvbnN0IExlZ2FjeUlubGluZVRleHRCb3gqIGxlZ2FjeUlubGluZUJv
eCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PExlZ2FjeUlubGluZVRleHRCb3g+KEJveDo6bGVn
YWN5SW5saW5lQm94KCkpOyB9CiAKICAgICBUZXh0Qm94SXRlcmF0b3IgbmV4dFRleHRCb3goKSBj
b25zdDsKLSAgICBUZXh0Qm94SXRlcmF0b3IgbmV4dFRleHRCb3hJblRleHRPcmRlcigpIGNvbnN0
OwogfTsKIAogY2xhc3MgVGV4dEJveEl0ZXJhdG9yIDogcHVibGljIExlYWZCb3hJdGVyYXRvciB7
CkBAIC03NSw3ICs3Nyw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBUZXh0Qm94KiBvcGVyYXRvci0+
KCkgY29uc3QgeyByZXR1cm4gJmdldCgpOyB9CiAKICAgICBUZXh0Qm94SXRlcmF0b3ImIHRyYXZl
cnNlTmV4dFRleHRCb3goKTsKLSAgICBUZXh0Qm94SXRlcmF0b3ImIHRyYXZlcnNlTmV4dFRleHRC
b3hJblRleHRPcmRlcigpOwogCiBwcml2YXRlOgogICAgIEJveEl0ZXJhdG9yJiB0cmF2ZXJzZU5l
eHRPbkxpbmUoKSA9IGRlbGV0ZTsKQEAgLTEwMyw3ICsxMDQsNiBAQCBwcml2YXRlOgogfTsKIAog
VGV4dEJveEl0ZXJhdG9yIGZpcnN0VGV4dEJveEZvcihjb25zdCBSZW5kZXJUZXh0Jik7Ci1UZXh0
Qm94SXRlcmF0b3IgZmlyc3RUZXh0Qm94SW5UZXh0T3JkZXJGb3IoY29uc3QgUmVuZGVyVGV4dCYp
OwogVGV4dEJveEl0ZXJhdG9yIHRleHRCb3hGb3IoY29uc3QgTGVnYWN5SW5saW5lVGV4dEJveCop
OwogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogVGV4dEJveEl0ZXJhdG9y
IHRleHRCb3hGb3IoY29uc3QgTGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQmLCBjb25z
dCBJbmxpbmVEaXNwbGF5OjpCb3gmKTsKQEAgLTExMSw2ICsxMTEsMTUgQEAgVGV4dEJveEl0ZXJh
dG9yIHRleHRCb3hGb3IoY29uc3QgTGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQmLCBz
aXplX3QgYm94SW4KICNlbmRpZgogVGV4dEJveFJhbmdlIHRleHRCb3hlc0Zvcihjb25zdCBSZW5k
ZXJUZXh0Jik7CiAKK3N0cnVjdCBMb2dpY2FsT3JkZXJDYWNoZURhdGEgeworICAgIFdURl9NQUtF
X1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKKyAgICAKKyAgICBWZWN0b3I8VGV4dEJveEl0ZXJhdG9y
PiBib3hlczsKKyAgICBzaXplX3QgaW5kZXggeyAwIH07Cit9Oworc3RkOjpwYWlyPFRleHRCb3hJ
dGVyYXRvciwgTG9naWNhbE9yZGVyQ2FjaGU+IGZpcnN0VGV4dEJveEluTG9naWNhbE9yZGVyRm9y
KGNvbnN0IFJlbmRlclRleHQmKTsKK1RleHRCb3hJdGVyYXRvciBuZXh0VGV4dEJveEluTG9naWNh
bE9yZGVyKGNvbnN0IFRleHRCb3hJdGVyYXRvciYsIExvZ2ljYWxPcmRlckNhY2hlJik7CisKIGlu
bGluZSBib29sIFRleHRCb3g6Omhhc0h5cGhlbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6
c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZVRleHRCb3guaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94LmgKaW5kZXggNjQ0ZDkyNWI0YTUwYTg0
YTBjMzBjZWQ2NDVmZTdhODI4Y2RkMmJkMy4uMjc4ZTc4YTI4ZDRmNmJiMmQ5NTNhMzUzMzkyNzE2
YzRiMTVmMDViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlu
bGluZVRleHRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5l
VGV4dEJveC5oCkBAIC04OCw4ICs4OCw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBMZWdhY3lJbmxp
bmVCb3g6OmZvcmNlTGVmdEV4cGFuc2lvbjsKICAgICB1c2luZyBMZWdhY3lJbmxpbmVCb3g6OnNl
dEZvcmNlTGVmdEV4cGFuc2lvbjsKIAotICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlQnlT
dGFydChjb25zdCBMZWdhY3lJbmxpbmVUZXh0Qm94KiBmaXJzdCwgY29uc3QgTGVnYWN5SW5saW5l
VGV4dEJveCogc2Vjb25kKSB7IHJldHVybiBmaXJzdC0+c3RhcnQoKSA8IHNlY29uZC0+c3RhcnQo
KTsgfQotCiAgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSkgY29u
c3QgZmluYWw7CiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KCkgY29uc3QgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCBmODI1NGNkNzEyOGRiMmE0
MTQ0M2IzNTkwY2FjNDczZWIwMzM3YzgyLi5iNzIwMWQ0ZmM1ZGUzMTdmNTgyOTNiODlkMWM4NmU2
Mjg3OTlmZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0x
NzEyLDcgKzE3MTIsNyBAQCB1bnNpZ25lZCBSZW5kZXJUZXh0Ojpjb3VudFJlbmRlcmVkQ2hhcmFj
dGVyT2Zmc2V0c1VudGlsKHVuc2lnbmVkIG9mZnNldCkgY29uc3QKIGVudW0gY2xhc3MgT2Zmc2V0
VHlwZSB7IENoYXJhY3RlciwgQ2FyZXQgfTsKIHN0YXRpYyBib29sIGNvbnRhaW5zT2Zmc2V0KGNv
bnN0IFJlbmRlclRleHQmIHRleHQsIHVuc2lnbmVkIG9mZnNldCwgT2Zmc2V0VHlwZSB0eXBlKQog
ewotICAgIGZvciAoYXV0byBib3ggPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5UZXh0
T3JkZXJGb3IodGV4dCk7IGJveDsgYm94LnRyYXZlcnNlTmV4dFRleHRCb3hJblRleHRPcmRlcigp
KSB7CisgICAgZm9yIChhdXRvIFtib3gsIG9yZGVyQ2FjaGVdID0gSW5saW5lSXRlcmF0b3I6OmZp
cnN0VGV4dEJveEluTG9naWNhbE9yZGVyRm9yKHRleHQpOyBib3g7IGJveCA9IElubGluZUl0ZXJh
dG9yOjpuZXh0VGV4dEJveEluTG9naWNhbE9yZGVyKGJveCwgb3JkZXJDYWNoZSkpIHsKICAgICAg
ICAgYXV0byBzdGFydCA9IGJveC0+c3RhcnQoKTsKICAgICAgICAgaWYgKG9mZnNldCA8IHN0YXJ0
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441075</attachid>
            <date>2021-10-13 07:32:40 -0700</date>
            <delta_ts>2021-10-13 11:02:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231669-20211013173239.patch</filename>
            <type>text/plain</type>
            <size>19344</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY4NDQ1NWFhMWZiMmFl
YzFkYWRhNWMwOWVjNzUwOGRmYjhjOTQ4Yi4uNjdmYzM1YTU2NjY3OGRmZmMwZDNkOTBiYWJhYTQ3
NGE1ODM2MGI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTEwLTEzICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlv
bl0gTW92ZSB0ZXh0IGJveCBsb2dpY2FsIG9yZGVyIGNhY2hlIHRvIHRoZSBjYWxsZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTY2OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IG1haW50YWlu
IHRoaXMgcmFyZWx5IHVzZWQgY2FjaGUgaW50ZXJuYWxseSBpbiB0aGUgaXRlcmF0b3IuIEluc3Rl
YWQgbW92ZSBpdCB0byB0aGUgY2FsbGVyLgorCisgICAgICAgIEFsc28gbWFrZSB0aGUgY29kZSBu
b24tbGVnYWN5IHNwZWNpZmljIHNvIGl0IHdpbGwgd29yayB3aXRoIGZ1dHVyZSBJRkMgQmlEaS4K
KworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlv
bjo6dXBzdHJlYW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmRvd25zdHJl
YW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoQWhlYWRGb3JCZXR0ZXJNYXRjaCk6
CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlSW5zaWduaWZpY2FudFRleHQpOgor
ICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRJdGVyYXRvcjo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6Omhh
bmRsZVRleHROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRJdGVyYXRvcjo6aGFuZGxlVGV4
dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnJldmVydFRvUmVtYWluaW5n
VGV4dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OmhhbmRsZVRleHROb2Rl
Rmlyc3RMZXR0ZXIpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmg6CisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TGVnYWN5UGF0aC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveExlZ2FjeVBhdGg6OnRyYXZlcnNlTmV4
dFRleHRCb3gpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveExlZ2FjeVBh
dGg6OnRyYXZlcnNlTmV4dFRleHRCb3hJblRleHRPcmRlcik6IERlbGV0ZWQuCisgICAgICAgICog
bGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveE1vZGVyblBhdGg6OnRyYXZlcnNlTmV4dFRl
eHRCb3hJblRleHRPcmRlcik6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9u
L0lubGluZUl0ZXJhdG9yVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVy
YXRvcjo6Zmlyc3RUZXh0Qm94SW5Mb2dpY2FsT3JkZXJGb3IpOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lSXRlcmF0b3I6Om5leHRUZXh0Qm94SW5Mb2dpY2FsT3JkZXIpOgorCisgICAgICAgIFRy
YXZlcnNlIHVzaW5nIGZyZWUgZnVuY3Rpb25zIGluc3RlYWQgb2YgbWVtYmVycy4KKworICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OlRleHRCb3g6Om5leHRUZXh0Qm94SW5UZXh0T3Jk
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OlRl
eHRCb3hJdGVyYXRvcjo6dHJhdmVyc2VOZXh0VGV4dEJveEluVGV4dE9yZGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJblRleHRPcmRl
ckZvcik6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJh
dG9yVGV4dEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94Lmg6
CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lJbmxpbmVUZXh0Qm94Ojpjb21wYXJlQnlTdGFydCk6
IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGFpbnNPZmZzZXQpOgorCiAyMDIxLTEwLTEyICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVj
bGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRl
eCAxZDk5NWNkZWI1Y2ZmYzc5MDZkODUwYmFmMzQ4NWFlZmU5Zjk5OGIxLi4zMjY1NjNkNTA4NWNj
ZTA0MzRiNzc1NTg2MjQ4YTRjNTNiZmZiYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAg
LTc0MCw3ICs3NDAsNyBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6dXBzdHJlYW0oRWRpdGluZ0JvdW5k
YXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgIGlmIChpczxSZW5kZXJUZXh0Pigq
cmVuZGVyZXIpKSB7CiAgICAgICAgICAgICBhdXRvJiB0ZXh0UmVuZGVyZXIgPSBkb3duY2FzdDxS
ZW5kZXJUZXh0PigqcmVuZGVyZXIpOwogCi0gICAgICAgICAgICBhdXRvIGZpcnN0VGV4dFJ1biA9
IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJblRleHRPcmRlckZvcih0ZXh0UmVuZGVyZXIp
OworICAgICAgICAgICAgYXV0byBbZmlyc3RUZXh0UnVuLCBvcmRlckNhY2hlXSA9IElubGluZUl0
ZXJhdG9yOjpmaXJzdFRleHRCb3hJbkxvZ2ljYWxPcmRlckZvcih0ZXh0UmVuZGVyZXIpOwogICAg
ICAgICAgICAgaWYgKCFmaXJzdFRleHRSdW4pCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAK
QEAgLTc1OCw3ICs3NTgsNyBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6dXBzdHJlYW0oRWRpdGluZ0Jv
dW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgICAgICAgICAgaWYgKHRleHRP
ZmZzZXQgPiBydW4tPnN0YXJ0KCkgJiYgdGV4dE9mZnNldCA8PSBydW4tPmVuZCgpKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uOwogCi0gICAgICAgICAgICAgICAg
YXV0byBuZXh0UnVuID0gcnVuLT5uZXh0VGV4dEJveEluVGV4dE9yZGVyKCk7CisgICAgICAgICAg
ICAgICAgYXV0byBuZXh0UnVuID0gSW5saW5lSXRlcmF0b3I6Om5leHRUZXh0Qm94SW5Mb2dpY2Fs
T3JkZXIocnVuLCBvcmRlckNhY2hlKTsKICAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA9
PSBydW4tPmVuZCgpICsgMSAmJiBuZXh0UnVuICYmIHJ1bi0+bGluZSgpICE9IG5leHRSdW4tPmxp
bmUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsKIApAQCAt
ODQ3LDcgKzg0Nyw3IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjpkb3duc3RyZWFtKEVkaXRpbmdCb3Vu
ZGFyeUNyb3NzaW5nUnVsZSBydWxlKSBjb25zdAogICAgICAgICBpZiAoaXM8UmVuZGVyVGV4dD4o
KnJlbmRlcmVyKSkgewogICAgICAgICAgICAgYXV0byYgdGV4dFJlbmRlcmVyID0gZG93bmNhc3Q8
UmVuZGVyVGV4dD4oKnJlbmRlcmVyKTsKIAotICAgICAgICAgICAgYXV0byBmaXJzdFRleHRSdW4g
PSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5UZXh0T3JkZXJGb3IodGV4dFJlbmRlcmVy
KTsKKyAgICAgICAgICAgIGF1dG8gW2ZpcnN0VGV4dFJ1biwgb3JkZXJDYWNoZV0gPSBJbmxpbmVJ
dGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5Mb2dpY2FsT3JkZXJGb3IodGV4dFJlbmRlcmVyKTsKICAg
ICAgICAgICAgIGlmICghZmlyc3RUZXh0UnVuKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
CkBAIC04NjQsNyArODY0LDcgQEAgUG9zaXRpb24gUG9zaXRpb246OmRvd25zdHJlYW0oRWRpdGlu
Z0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgICAgICAgICAgaWYgKHRl
eHRPZmZzZXQgPj0gcnVuLT5zdGFydCgpICYmIHRleHRPZmZzZXQgPCBydW4tPmVuZCgpKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uOwogCi0gICAgICAgICAgICAg
ICAgYXV0byBuZXh0UnVuID0gcnVuLT5uZXh0VGV4dEJveEluVGV4dE9yZGVyKCk7CisgICAgICAg
ICAgICAgICAgYXV0byBuZXh0UnVuID0gSW5saW5lSXRlcmF0b3I6Om5leHRUZXh0Qm94SW5Mb2dp
Y2FsT3JkZXIocnVuLCBvcmRlckNhY2hlKTsKICAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNl
dCA9PSBydW4tPmVuZCgpICYmIG5leHRSdW4gJiYgcnVuLT5saW5lKCkgIT0gbmV4dFJ1bi0+bGlu
ZSgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uOwogCkBAIC0x
MTczLDcgKzExNzMsNyBAQCBzdGF0aWMgSW5saW5lSXRlcmF0b3I6OlRleHRCb3hJdGVyYXRvciBz
ZWFyY2hBaGVhZEZvckJldHRlck1hdGNoKFJlbmRlclRleHQmIHJlbgogICAgICAgICBpZiAoaXNO
b25UZXh0TGVhZkNoaWxkKCpuZXh0KSkKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAg
IGlmIChpczxSZW5kZXJUZXh0PigqbmV4dCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIHJ1biA9
IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJblRleHRPcmRlckZvcihkb3duY2FzdDxSZW5k
ZXJUZXh0PigqbmV4dCkpKQorICAgICAgICAgICAgaWYgKGF1dG8gW3J1biwgb3JkZXJDYWNoZV0g
PSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5Mb2dpY2FsT3JkZXJGb3IoZG93bmNhc3Q8
UmVuZGVyVGV4dD4oKm5leHQpKTsgcnVuKQogICAgICAgICAgICAgICAgIHJldHVybiBydW47CiAg
ICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuY3BwCmluZGV4IDk4MDQ0NjBjZGIyYmM1YWI1MTcxNGI0MDRhYjg1YzBjYWZlMjJh
MjEuLmM1ZTg1YjE4OGQ4ZDhhNjdhZGIzNWYzODRhOWJiYmMxMTEwNmUxMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0xMDE2LDcg
KzEwMTYsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVJbnNpZ25pZmljYW50
VGV4dChUZXh0JiB0ZXh0Tm9kZSwgdW5zaWduZWQgc3RhcgogICAgICAgICBpZiAoIXRleHRSZW5k
ZXJlcikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBhdXRvIHJ1biA9IElubGluZUl0
ZXJhdG9yOjpmaXJzdFRleHRCb3hJblRleHRPcmRlckZvcigqdGV4dFJlbmRlcmVyKTsKKyAgICAg
ICAgYXV0byBbcnVuLCBvcmRlckNhY2hlXSA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJ
bkxvZ2ljYWxPcmRlckZvcigqdGV4dFJlbmRlcmVyKTsKICAgICAgICAgaWYgKCFydW4pIHsKICAg
ICAgICAgICAgIHdob2xlVGV4dE5vZGVJc0VtcHR5ID0gdHJ1ZTsKICAgICAgICAgICAgIHJldHVy
bjsKQEAgLTEwNTEsNyArMTA1MSw3IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0
ZUluc2lnbmlmaWNhbnRUZXh0KFRleHQmIHRleHROb2RlLCB1bnNpZ25lZCBzdGFyCiAKICAgICAg
ICAgICAgIHByZXZpb3VzUnVuID0gcnVuOwogICAgICAgICAgICAgaWYgKHJ1bikKLSAgICAgICAg
ICAgICAgICBydW4udHJhdmVyc2VOZXh0VGV4dEJveEluVGV4dE9yZGVyKCk7CisgICAgICAgICAg
ICAgICAgcnVuID0gSW5saW5lSXRlcmF0b3I6Om5leHRUZXh0Qm94SW5Mb2dpY2FsT3JkZXIocnVu
LCBvcmRlckNhY2hlKTsKICAgICAgICAgfQogICAgIH07CiAgICAgZGV0ZXJtaW5lUmVtb3ZhbE1v
ZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAppbmRleCBjYzZhZGI5
MDg5YWFjMmFlM2Q5ZmIzYzIyM2JmMWU2MmQ3Zjc4M2I3Li5lYzZmZjI5NGM4MWJkYmJlNzViZTFi
YjhmMzE2NTI5ZDc5OTQ0N2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwCkBAIC00MzgsMTIgKzQzOCw5IEBAIHZvaWQgVGV4dEl0ZXJhdG9yOjphZHZhbmNlKCkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV90ZXh0UnVuICYmIG1fcmVtYWluaW5n
VGV4dFJ1bikgewotICAgICAgICBtX3RleHRSdW4gPSBtX3JlbWFpbmluZ1RleHRSdW47Ci0gICAg
ICAgIG1fcmVtYWluaW5nVGV4dFJ1biA9IHsgfTsKLSAgICAgICAgbV9maXJzdExldHRlclRleHQg
PSB7IH07Ci0gICAgICAgIG1fb2Zmc2V0ID0gMDsKLSAgICB9CisgICAgaWYgKCFtX3RleHRSdW4g
JiYgbV9yZW1haW5pbmdUZXh0UnVuKQorICAgICAgICByZXZlcnRUb1JlbWFpbmluZ1RleHRSdW4o
KTsKKwogICAgIC8vIGhhbmRsZSByZW1lbWJlcmVkIHRleHQgYm94CiAgICAgaWYgKG1fdGV4dFJ1
bikgewogICAgICAgICBoYW5kbGVUZXh0UnVuKCk7CkBAIC01ODEsNyArNTc4LDcgQEAgYm9vbCBU
ZXh0SXRlcmF0b3I6OmhhbmRsZVRleHROb2RlKCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgbV90ZXh0UnVuID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0VGV4dEJveEluVGV4dE9y
ZGVyRm9yKHJlbmRlcmVyKTsKKyAgICBzdGQ6OnRpZShtX3RleHRSdW4sIG1fdGV4dFJ1bkxvZ2lj
YWxPcmRlckNhY2hlKSA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJbkxvZ2ljYWxPcmRl
ckZvcihyZW5kZXJlcik7CiAKICAgICBib29sIHNob3VsZEhhbmRsZUZpcnN0TGV0dGVyID0gIW1f
aGFuZGxlZEZpcnN0TGV0dGVyICYmIGlzPFJlbmRlclRleHRGcmFnbWVudD4ocmVuZGVyZXIpICYm
ICFtX29mZnNldDsKICAgICBpZiAoc2hvdWxkSGFuZGxlRmlyc3RMZXR0ZXIpCkBAIC02MDgsNyAr
NjA1LDcgQEAgdm9pZCBUZXh0SXRlcmF0b3I6OmhhbmRsZVRleHRSdW4oKQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgYXV0byBmaXJzdFRleHRSdW4gPSBJbmxpbmVJdGVyYXRvcjo6Zmly
c3RUZXh0Qm94SW5UZXh0T3JkZXJGb3IocmVuZGVyZXIpOworICAgIGF1dG8gW2ZpcnN0VGV4dFJ1
biwgb3JkZXJDYWNoZV0gPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94SW5Mb2dpY2FsT3Jk
ZXJGb3IocmVuZGVyZXIpOwogCiAgICAgU3RyaW5nIHJlbmRlcmVyVGV4dCA9IHJlbmRlcmVyLnRl
eHQoKTsKICAgICB1bnNpZ25lZCBzdGFydCA9IG1fb2Zmc2V0OwpAQCAtNjMzLDggKzYzMCw3IEBA
IHZvaWQgVGV4dEl0ZXJhdG9yOjpoYW5kbGVUZXh0UnVuKCkKICAgICAgICAgdW5zaWduZWQgcnVu
RW5kID0gc3RkOjptaW4odGV4dFJ1bkVuZCwgZW5kKTsKICAgICAgICAgCiAgICAgICAgIC8vIERl
dGVybWluZSB3aGF0IHRoZSBuZXh0IHRleHQgcnVuIHdpbGwgYmUsIGJ1dCBkb24ndCBhZHZhbmNl
IHlldAotICAgICAgICBhdXRvIG5leHRUZXh0UnVuID0gbV90ZXh0UnVuOwotICAgICAgICBuZXh0
VGV4dFJ1bi50cmF2ZXJzZU5leHRUZXh0Qm94SW5UZXh0T3JkZXIoKTsKKyAgICAgICAgYXV0byBu
ZXh0VGV4dFJ1biA9IElubGluZUl0ZXJhdG9yOjpuZXh0VGV4dEJveEluTG9naWNhbE9yZGVyKG1f
dGV4dFJ1biwgbV90ZXh0UnVuTG9naWNhbE9yZGVyQ2FjaGUpOwogCiAgICAgICAgIGlmIChydW5T
dGFydCA8IHJ1bkVuZCkgewogICAgICAgICAgICAgYXV0byBpc05ld2xpbmVPclRhYiA9IFsmXShV
Q2hhciBjaGFyYWN0ZXIpIHsKQEAgLTY3NywxNCArNjczLDIyIEBAIHZvaWQgVGV4dEl0ZXJhdG9y
OjpoYW5kbGVUZXh0UnVuKCkKICAgICAgICAgbV90ZXh0UnVuID0gbmV4dFRleHRSdW47CiAgICAg
fQogICAgIGlmICghbV90ZXh0UnVuICYmIG1fcmVtYWluaW5nVGV4dFJ1bikgewotICAgICAgICBt
X3RleHRSdW4gPSBtX3JlbWFpbmluZ1RleHRSdW47Ci0gICAgICAgIG1fcmVtYWluaW5nVGV4dFJ1
biA9IHsgfTsKLSAgICAgICAgbV9maXJzdExldHRlclRleHQgPSB7IH07Ci0gICAgICAgIG1fb2Zm
c2V0ID0gMDsKKyAgICAgICAgcmV2ZXJ0VG9SZW1haW5pbmdUZXh0UnVuKCk7CiAgICAgICAgIGhh
bmRsZVRleHRSdW4oKTsKICAgICB9CiB9CiAKK3ZvaWQgVGV4dEl0ZXJhdG9yOjpyZXZlcnRUb1Jl
bWFpbmluZ1RleHRSdW4oKQoreworICAgIEFTU0VSVCghbV90ZXh0UnVuICYmIG1fcmVtYWluaW5n
VGV4dFJ1bik7CisKKyAgICBtX3RleHRSdW4gPSBtX3JlbWFpbmluZ1RleHRSdW47CisgICAgbV90
ZXh0UnVuTG9naWNhbE9yZGVyQ2FjaGUgPSBzdGQ6OmV4Y2hhbmdlKG1fcmVtYWluaW5nVGV4dFJ1
bkxvZ2ljYWxPcmRlckNhY2hlLCB7IH0pOworICAgIG1fcmVtYWluaW5nVGV4dFJ1biA9IHsgfTsK
KyAgICBtX2ZpcnN0TGV0dGVyVGV4dCA9IHsgfTsKKyAgICBtX29mZnNldCA9IDA7Cit9CisKIHN0
YXRpYyBpbmxpbmUgUmVuZGVyVGV4dCogZmlyc3RSZW5kZXJUZXh0SW5GaXJzdExldHRlcihSZW5k
ZXJCb3hNb2RlbE9iamVjdCogZmlyc3RMZXR0ZXIpCiB7CiAgICAgaWYgKCFmaXJzdExldHRlcikK
QEAgLTcwMiw3ICs3MDYsOCBAQCB2b2lkIFRleHRJdGVyYXRvcjo6aGFuZGxlVGV4dE5vZGVGaXJz
dExldHRlcihSZW5kZXJUZXh0RnJhZ21lbnQmIHJlbmRlcmVyKQogICAgICAgICBpZiAoYXV0byog
Zmlyc3RMZXR0ZXJUZXh0ID0gZmlyc3RSZW5kZXJUZXh0SW5GaXJzdExldHRlcihmaXJzdExldHRl
cikpIHsKICAgICAgICAgICAgIG1faGFuZGxlZEZpcnN0TGV0dGVyID0gdHJ1ZTsKICAgICAgICAg
ICAgIG1fcmVtYWluaW5nVGV4dFJ1biA9IG1fdGV4dFJ1bjsKLSAgICAgICAgICAgIG1fdGV4dFJ1
biA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hJblRleHRPcmRlckZvcigqZmlyc3RMZXR0
ZXJUZXh0KTsKKyAgICAgICAgICAgIG1fcmVtYWluaW5nVGV4dFJ1bkxvZ2ljYWxPcmRlckNhY2hl
ID0gc3RkOjpleGNoYW5nZShtX3RleHRSdW5Mb2dpY2FsT3JkZXJDYWNoZSwgeyB9KTsKKyAgICAg
ICAgICAgIHN0ZDo6dGllKG1fdGV4dFJ1biwgbV90ZXh0UnVuTG9naWNhbE9yZGVyQ2FjaGUpID0g
SW5saW5lSXRlcmF0b3I6OmZpcnN0VGV4dEJveEluTG9naWNhbE9yZGVyRm9yKCpmaXJzdExldHRl
clRleHQpOwogICAgICAgICAgICAgbV9maXJzdExldHRlclRleHQgPSBmaXJzdExldHRlclRleHQ7
CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaAppbmRl
eCA5MDZkYTA2NTMxMzEwMTIzMjRjNWNhNjk0NGJlNzM4OWFjNzlkMGRkLi5lZjIzYWRlMGFjMTYw
YjA2N2FiOTU3N2M0MmZkYmE4Y2QyNmE5MWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlVGV4
dE5vZGVGaXJzdExldHRlcihSZW5kZXJUZXh0RnJhZ21lbnQmKTsKICAgICB2b2lkIGVtaXRDaGFy
YWN0ZXIoVUNoYXIsIE5vZGUmIGNoYXJhY3Rlck5vZGUsIE5vZGUqIG9mZnNldEJhc2VOb2RlLCBp
bnQgdGV4dFN0YXJ0T2Zmc2V0LCBpbnQgdGV4dEVuZE9mZnNldCk7CiAgICAgdm9pZCBlbWl0VGV4
dChUZXh0JiB0ZXh0Tm9kZSwgUmVuZGVyVGV4dCYsIGludCB0ZXh0U3RhcnRPZmZzZXQsIGludCB0
ZXh0RW5kT2Zmc2V0KTsKKyAgICB2b2lkIHJldmVydFRvUmVtYWluaW5nVGV4dFJ1bigpOwogCiAg
ICAgTm9kZSogYmFzZU5vZGVGb3JFbWl0dGluZ05ld0xpbmUoKSBjb25zdDsKIApAQCAtMTUwLDkg
KzE1MSwxMSBAQCBwcml2YXRlOgogICAgIC8vIFVzZWQgd2hlbiB0aGVyZSBpcyBzdGlsbCBzb21l
IHBlbmRpbmcgdGV4dCBmcm9tIHRoZSBjdXJyZW50IG5vZGU7IHdoZW4gdGhlc2UgYXJlIGZhbHNl
IGFuZCBudWxsLCB3ZSBnbyBiYWNrIHRvIG5vcm1hbCBpdGVyYXRpbmcuCiAgICAgTm9kZSogbV9u
b2RlRm9yQWRkaXRpb25hbE5ld2xpbmUgeyBudWxscHRyIH07CiAgICAgSW5saW5lSXRlcmF0b3I6
OlRleHRCb3hJdGVyYXRvciBtX3RleHRSdW47CisgICAgSW5saW5lSXRlcmF0b3I6OkxvZ2ljYWxP
cmRlckNhY2hlIG1fdGV4dFJ1bkxvZ2ljYWxPcmRlckNhY2hlOwogCiAgICAgLy8gVXNlZCB3aGVu
IGl0ZXJhdGluZyBvdmVyIDpmaXJzdC1sZXR0ZXIgdGV4dCB0byBzYXZlIHBvaW50ZXIgdG8gcmVt
YWluaW5nIHRleHQgYm94LgogICAgIElubGluZUl0ZXJhdG9yOjpUZXh0Qm94SXRlcmF0b3IgbV9y
ZW1haW5pbmdUZXh0UnVuOworICAgIElubGluZUl0ZXJhdG9yOjpMb2dpY2FsT3JkZXJDYWNoZSBt
X3JlbWFpbmluZ1RleHRSdW5Mb2dpY2FsT3JkZXJDYWNoZTsKIAogICAgIC8vIFVzZWQgdG8gcG9p
bnQgdG8gUmVuZGVyVGV4dCBvYmplY3QgZm9yIDpmaXJzdC1sZXR0ZXIuCiAgICAgUmVuZGVyVGV4
dCogbV9maXJzdExldHRlclRleHQgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hMZWdhY3lQYXRoLmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hMZWdhY3lQ
YXRoLmgKaW5kZXggZDExYTQ5NzFkNDQyMGE4NTE3MjczYWJiZmNmNTNiNjQ5ZmVjZDNiZC4uM2Jl
NGQzZGNhYzNiOTM5YWVkNjY4YTMzNTMxZmI2N2RmMjM5OTNmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TGVnYWN5UGF0aC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJv
eExlZ2FjeVBhdGguaApAQCAtODcsMTUgKzg3LDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZv
aWQgdHJhdmVyc2VOZXh0VGV4dEJveCgpIHsgbV9pbmxpbmVCb3ggPSBpbmxpbmVUZXh0Qm94KCkt
Pm5leHRUZXh0Qm94KCk7IH0KLSAgICB2b2lkIHRyYXZlcnNlTmV4dFRleHRCb3hJblRleHRPcmRl
cigpCi0gICAgewotICAgICAgICBpZiAoIW1fbG9naWNhbE9yZGVyQ2FjaGUuaXNFbXB0eSgpKSB7
Ci0gICAgICAgICAgICB0cmF2ZXJzZU5leHRJbmxpbmVCb3hJbkNhY2hlT3JkZXIoKTsKLSAgICAg
ICAgICAgIEFTU0VSVCghbV9pbmxpbmVCb3ggfHwgaXM8TGVnYWN5SW5saW5lVGV4dEJveD4obV9p
bmxpbmVCb3gpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB0cmF2
ZXJzZU5leHRUZXh0Qm94KCk7Ci0gICAgfQogCiAgICAgdm9pZCB0cmF2ZXJzZU5leHRPbkxpbmUo
KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9J
bmxpbmVJdGVyYXRvckJveE1vZGVyblBhdGguaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveE1vZGVyblBhdGguaAppbmRleCA1ODc3ZDVmYTlhYjhi
NjI5Zjk2MzA2YTlmM2YwMzBjYTQ3YmRhYjc4Li42MTU0M2IwY2Y0YzQ4YjBhYmQ5ZDJjNDI1ZTk0
ZTE3YWRmZjQ2MDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vSW5saW5lSXRlcmF0b3JCb3hNb2Rlcm5QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oCkBAIC0xMzYsMTIg
KzEzNiw2IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGF0RW5kKCkgfHwgYm94KCkudGV4dCgp
KTsKICAgICB9CiAKLSAgICB2b2lkIHRyYXZlcnNlTmV4dFRleHRCb3hJblRleHRPcmRlcigpCi0g
ICAgewotICAgICAgICAvLyBGSVhNRTogTm8gUlRMIGluIExGQy4KLSAgICAgICAgdHJhdmVyc2VO
ZXh0VGV4dEJveCgpOwotICAgIH0KLQogICAgIHZvaWQgdHJhdmVyc2VOZXh0T25MaW5lKCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVCghYXRFbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JUZXh0Qm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guY3BwCmluZGV4
IGI5YTM0MGNkNTQxNzQ4NzhhYjc1YzUzM2IwMWFjYjVhMTQzOWM1NDUuLjIxNTY4ZGYzNDg4MmFm
ZDU2MmI4NThhNTQ1NTIwYTVlYTk4YmY0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guY3BwCkBAIC0z
OCwxMSArMzgsNiBAQCBUZXh0Qm94SXRlcmF0b3IgVGV4dEJveDo6bmV4dFRleHRCb3goKSBjb25z
dAogICAgIHJldHVybiBUZXh0Qm94SXRlcmF0b3IoKnRoaXMpLnRyYXZlcnNlTmV4dFRleHRCb3go
KTsKIH0KIAotVGV4dEJveEl0ZXJhdG9yIFRleHRCb3g6Om5leHRUZXh0Qm94SW5UZXh0T3JkZXIo
KSBjb25zdAotewotICAgIHJldHVybiBUZXh0Qm94SXRlcmF0b3IoKnRoaXMpLnRyYXZlcnNlTmV4
dFRleHRCb3hJblRleHRPcmRlcigpOwotfQotCiBMYXlvdXRSZWN0IFRleHRCb3g6OnNlbGVjdGlv
blJlY3QodW5zaWduZWQgcmFuZ2VTdGFydCwgdW5zaWduZWQgcmFuZ2VFbmQpIGNvbnN0CiB7CiAg
ICAgYXV0byBbY2xhbXBlZFN0YXJ0LCBjbGFtcGVkRW5kXSA9IHNlbGVjdGFibGVSYW5nZSgpLmNs
YW1wKHJhbmdlU3RhcnQsIHJhbmdlRW5kKTsKQEAgLTk0LDE0ICs4OSw2IEBAIFRleHRCb3hJdGVy
YXRvciYgVGV4dEJveEl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRUZXh0Qm94KCkKICAgICByZXR1cm4g
KnRoaXM7CiB9CiAKLVRleHRCb3hJdGVyYXRvciYgVGV4dEJveEl0ZXJhdG9yOjp0cmF2ZXJzZU5l
eHRUZXh0Qm94SW5UZXh0T3JkZXIoKQotewotICAgIFdURjo6c3dpdGNoT24obV9ib3gubV9wYXRo
VmFyaWFudCwgW10oYXV0byYgcGF0aCkgewotICAgICAgICBwYXRoLnRyYXZlcnNlTmV4dFRleHRC
b3hJblRleHRPcmRlcigpOwotICAgIH0pOwotICAgIHJldHVybiAqdGhpczsKLX0KLQogVGV4dEJv
eEl0ZXJhdG9yIGZpcnN0VGV4dEJveEZvcihjb25zdCBSZW5kZXJUZXh0JiB0ZXh0KQogewogI2lm
IEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQpAQCAtMTEyLDIwICs5OSw0MSBAQCBU
ZXh0Qm94SXRlcmF0b3IgZmlyc3RUZXh0Qm94Rm9yKGNvbnN0IFJlbmRlclRleHQmIHRleHQpCiAg
ICAgcmV0dXJuIHsgQm94TGVnYWN5UGF0aCB7IHRleHQuZmlyc3RUZXh0Qm94KCkgfSB9OwogfQog
Ci1UZXh0Qm94SXRlcmF0b3IgZmlyc3RUZXh0Qm94SW5UZXh0T3JkZXJGb3IoY29uc3QgUmVuZGVy
VGV4dCYgdGV4dCkKK3N0ZDo6cGFpcjxUZXh0Qm94SXRlcmF0b3IsIExvZ2ljYWxPcmRlckNhY2hl
PiBmaXJzdFRleHRCb3hJbkxvZ2ljYWxPcmRlckZvcihjb25zdCBSZW5kZXJUZXh0JiB0ZXh0KQor
eworICAgIGlmICghdGV4dC5jb250YWluc1JldmVyc2VkVGV4dCgpKQorICAgICAgICByZXR1cm4g
eyBmaXJzdFRleHRCb3hGb3IodGV4dCksIG51bGxwdHIgfTsKKworICAgIGF1dG8gY2FjaGUgPSBX
VEY6Om1ha2VVbmlxdWU8TG9naWNhbE9yZGVyQ2FjaGVEYXRhPigpOworICAgIGZvciAoYXV0byB0
ZXh0Qm94IDogdGV4dEJveGVzRm9yKHRleHQpKQorICAgICAgICBjYWNoZS0+Ym94ZXMuYXBwZW5k
KHRleHRCb3gpOworCisgICAgaWYgKGNhY2hlLT5ib3hlcy5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiB7IFRleHRCb3hJdGVyYXRvciB7IH0sIG51bGxwdHIgfTsKKworICAgIHN0ZDo6c29ydChj
YWNoZS0+Ym94ZXMuYmVnaW4oKSwgY2FjaGUtPmJveGVzLmVuZCgpLCBbJl0oYXV0byYgYSwgYXV0
byYgYikgeworICAgICAgICByZXR1cm4gYS0+c3RhcnQoKSA8IGItPnN0YXJ0KCk7CisgICAgfSk7
CisKKyAgICByZXR1cm4geyBjYWNoZS0+Ym94ZXNbMF0sIFdURk1vdmUoY2FjaGUpIH07Cit9CisK
K1RleHRCb3hJdGVyYXRvciBuZXh0VGV4dEJveEluTG9naWNhbE9yZGVyKGNvbnN0IFRleHRCb3hJ
dGVyYXRvciYgdGV4dEJveCwgTG9naWNhbE9yZGVyQ2FjaGUmIGNhY2hlKQogewotICAgIGlmICh0
ZXh0LmZpcnN0VGV4dEJveCgpICYmIHRleHQuY29udGFpbnNSZXZlcnNlZFRleHQoKSkgewotICAg
ICAgICBWZWN0b3I8Y29uc3QgTGVnYWN5SW5saW5lQm94Kj4gc29ydGVkVGV4dEJveGVzOwotICAg
ICAgICBmb3IgKGF1dG8qIHRleHRCb3ggPSB0ZXh0LmZpcnN0VGV4dEJveCgpOyB0ZXh0Qm94OyB0
ZXh0Qm94ID0gdGV4dEJveC0+bmV4dFRleHRCb3goKSkKLSAgICAgICAgICAgIHNvcnRlZFRleHRC
b3hlcy5hcHBlbmQodGV4dEJveCk7Ci0gICAgICAgIHN0ZDo6c29ydChzb3J0ZWRUZXh0Qm94ZXMu
YmVnaW4oKSwgc29ydGVkVGV4dEJveGVzLmVuZCgpLCBbXShhdXRvKiBhLCBhdXRvKiBiKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gTGVnYWN5SW5saW5lVGV4dEJveDo6Y29tcGFyZUJ5U3RhcnQoZG93
bmNhc3Q8TGVnYWN5SW5saW5lVGV4dEJveD4oYSksIGRvd25jYXN0PExlZ2FjeUlubGluZVRleHRC
b3g+KGIpKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGF1dG8qIGZpcnN0ID0gc29ydGVkVGV4dEJv
eGVzWzBdOwotICAgICAgICByZXR1cm4geyBCb3hMZWdhY3lQYXRoIHsgZmlyc3QsIFdURk1vdmUo
c29ydGVkVGV4dEJveGVzKSwgMCB9IH07CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJu
IHRleHRCb3gtPm5leHRUZXh0Qm94KCk7CisKKyAgICBpZiAoY2FjaGUtPmluZGV4ID09IGNhY2hl
LT5ib3hlcy5zaXplKCkgfHwgY2FjaGUtPmJveGVzW2NhY2hlLT5pbmRleF0gIT0gdGV4dEJveCkg
eworICAgICAgICBjYWNoZS0+aW5kZXggPSBjYWNoZS0+Ym94ZXMuZmluZCh0ZXh0Qm94KTsKKyAg
ICAgICAgQVNTRVJUKGNhY2hlLT5pbmRleCAhPSBub3RGb3VuZCk7CiAgICAgfQogCi0gICAgcmV0
dXJuIGZpcnN0VGV4dEJveEZvcih0ZXh0KTsKKyAgICBjYWNoZS0+aW5kZXgrKzsKKworICAgIGlm
IChjYWNoZS0+aW5kZXggPCBjYWNoZS0+Ym94ZXMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gY2Fj
aGUtPmJveGVzW2NhY2hlLT5pbmRleF07CisKKyAgICByZXR1cm4geyB9OwogfQogCiBUZXh0Qm94
SXRlcmF0b3IgdGV4dEJveEZvcihjb25zdCBMZWdhY3lJbmxpbmVUZXh0Qm94KiBsZWdhY3lJbmxp
bmVUZXh0Qm94KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0lubGluZUl0ZXJhdG9yVGV4dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0lubGluZUl0ZXJhdG9yVGV4dEJveC5oCmluZGV4IDg5YzI4ZGZlNGY0MGNiMTYxNzIwNDYw
Yzc3NzBhODkyYTVmMmI4OWYuLjQyYjQ3ZTM0OTk3ZjMzYjJhODdkYjVlMGI3YTViMWFhMGRlMjgz
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJ
dGVyYXRvclRleHRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
SW5saW5lSXRlcmF0b3JUZXh0Qm94LmgKQEAgLTMyLDYgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBuYW1lc3BhY2UgSW5saW5lSXRlcmF0b3IgewogCitzdHJ1Y3QgTG9naWNhbE9yZGVy
Q2FjaGVEYXRhOwordXNpbmcgTG9naWNhbE9yZGVyQ2FjaGUgPSBzdGQ6OnVuaXF1ZV9wdHI8TG9n
aWNhbE9yZGVyQ2FjaGVEYXRhPjsKKwogY2xhc3MgVGV4dEJveCA6IHB1YmxpYyBCb3ggewogcHVi
bGljOgogICAgIFRleHRCb3goUGF0aFZhcmlhbnQmJik7CkBAIC02MCw3ICs2Myw2IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBMZWdhY3lJbmxpbmVUZXh0Qm94KiBsZWdhY3lJbmxpbmVCb3goKSBjb25z
dCB7IHJldHVybiBkb3duY2FzdDxMZWdhY3lJbmxpbmVUZXh0Qm94PihCb3g6OmxlZ2FjeUlubGlu
ZUJveCgpKTsgfQogCiAgICAgVGV4dEJveEl0ZXJhdG9yIG5leHRUZXh0Qm94KCkgY29uc3Q7Ci0g
ICAgVGV4dEJveEl0ZXJhdG9yIG5leHRUZXh0Qm94SW5UZXh0T3JkZXIoKSBjb25zdDsKIH07CiAK
IGNsYXNzIFRleHRCb3hJdGVyYXRvciA6IHB1YmxpYyBMZWFmQm94SXRlcmF0b3IgewpAQCAtNzUs
NyArNzcsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgVGV4dEJveCogb3BlcmF0b3ItPigpIGNvbnN0
IHsgcmV0dXJuICZnZXQoKTsgfQogCiAgICAgVGV4dEJveEl0ZXJhdG9yJiB0cmF2ZXJzZU5leHRU
ZXh0Qm94KCk7Ci0gICAgVGV4dEJveEl0ZXJhdG9yJiB0cmF2ZXJzZU5leHRUZXh0Qm94SW5UZXh0
T3JkZXIoKTsKIAogcHJpdmF0ZToKICAgICBCb3hJdGVyYXRvciYgdHJhdmVyc2VOZXh0T25MaW5l
KCkgPSBkZWxldGU7CkBAIC0xMDMsNyArMTA0LDYgQEAgcHJpdmF0ZToKIH07CiAKIFRleHRCb3hJ
dGVyYXRvciBmaXJzdFRleHRCb3hGb3IoY29uc3QgUmVuZGVyVGV4dCYpOwotVGV4dEJveEl0ZXJh
dG9yIGZpcnN0VGV4dEJveEluVGV4dE9yZGVyRm9yKGNvbnN0IFJlbmRlclRleHQmKTsKIFRleHRC
b3hJdGVyYXRvciB0ZXh0Qm94Rm9yKGNvbnN0IExlZ2FjeUlubGluZVRleHRCb3gqKTsKICNpZiBF
TkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIFRleHRCb3hJdGVyYXRvciB0ZXh0Qm94
Rm9yKGNvbnN0IExheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50JiwgY29uc3QgSW5saW5l
RGlzcGxheTo6Qm94Jik7CkBAIC0xMTEsNiArMTExLDE1IEBAIFRleHRCb3hJdGVyYXRvciB0ZXh0
Qm94Rm9yKGNvbnN0IExheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50Jiwgc2l6ZV90IGJv
eEluCiAjZW5kaWYKIFRleHRCb3hSYW5nZSB0ZXh0Qm94ZXNGb3IoY29uc3QgUmVuZGVyVGV4dCYp
OwogCitzdHJ1Y3QgTG9naWNhbE9yZGVyQ2FjaGVEYXRhIHsKKyAgICBXVEZfTUFLRV9TVFJVQ1Rf
RkFTVF9BTExPQ0FURUQ7CisgICAgCisgICAgVmVjdG9yPFRleHRCb3hJdGVyYXRvcj4gYm94ZXM7
CisgICAgc2l6ZV90IGluZGV4IHsgMCB9OworfTsKK3N0ZDo6cGFpcjxUZXh0Qm94SXRlcmF0b3Is
IExvZ2ljYWxPcmRlckNhY2hlPiBmaXJzdFRleHRCb3hJbkxvZ2ljYWxPcmRlckZvcihjb25zdCBS
ZW5kZXJUZXh0Jik7CitUZXh0Qm94SXRlcmF0b3IgbmV4dFRleHRCb3hJbkxvZ2ljYWxPcmRlcihj
b25zdCBUZXh0Qm94SXRlcmF0b3ImLCBMb2dpY2FsT3JkZXJDYWNoZSYpOworCiBpbmxpbmUgYm9v
bCBUZXh0Qm94OjpoYXNIeXBoZW4oKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9u
KG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5oCmluZGV4IDY0NGQ5MjViNGE1MGE4NGEwYzMwY2Vk
NjQ1ZmU3YTgyOGNkZDJiZDMuLjI3OGU3OGEyOGQ0ZjZiYjJkOTUzYTM1MzM5MjcxNmM0YjE1ZjA1
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZVRleHRCb3gu
aApAQCAtODgsOCArODgsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTGVnYWN5SW5saW5lQm94Ojpm
b3JjZUxlZnRFeHBhbnNpb247CiAgICAgdXNpbmcgTGVnYWN5SW5saW5lQm94OjpzZXRGb3JjZUxl
ZnRFeHBhbnNpb247CiAKLSAgICBzdGF0aWMgaW5saW5lIGJvb2wgY29tcGFyZUJ5U3RhcnQoY29u
c3QgTGVnYWN5SW5saW5lVGV4dEJveCogZmlyc3QsIGNvbnN0IExlZ2FjeUlubGluZVRleHRCb3gq
IHNlY29uZCkgeyByZXR1cm4gZmlyc3QtPnN0YXJ0KCkgPCBzZWNvbmQtPnN0YXJ0KCk7IH0KLQog
ICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUpIGNvbnN0IGZpbmFs
OwogICAgIExheW91dFVuaXQgbGluZUhlaWdodCgpIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggZjgyNTRjZDcxMjhkYjJhNDE0NDNiMzU5
MGNhYzQ3M2ViMDMzN2M4Mi4uYjcyMDFkNGZjNWRlMzE3ZjU4MjkzYjg5ZDFjODZlNjI4Nzk5ZmQw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMTcxMiw3ICsx
NzEyLDcgQEAgdW5zaWduZWQgUmVuZGVyVGV4dDo6Y291bnRSZW5kZXJlZENoYXJhY3Rlck9mZnNl
dHNVbnRpbCh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0CiBlbnVtIGNsYXNzIE9mZnNldFR5cGUgeyBD
aGFyYWN0ZXIsIENhcmV0IH07CiBzdGF0aWMgYm9vbCBjb250YWluc09mZnNldChjb25zdCBSZW5k
ZXJUZXh0JiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIE9mZnNldFR5cGUgdHlwZSkKIHsKLSAgICBm
b3IgKGF1dG8gYm94ID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0VGV4dEJveEluVGV4dE9yZGVyRm9y
KHRleHQpOyBib3g7IGJveC50cmF2ZXJzZU5leHRUZXh0Qm94SW5UZXh0T3JkZXIoKSkgeworICAg
IGZvciAoYXV0byBbYm94LCBvcmRlckNhY2hlXSA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRC
b3hJbkxvZ2ljYWxPcmRlckZvcih0ZXh0KTsgYm94OyBib3ggPSBJbmxpbmVJdGVyYXRvcjo6bmV4
dFRleHRCb3hJbkxvZ2ljYWxPcmRlcihib3gsIG9yZGVyQ2FjaGUpKSB7CiAgICAgICAgIGF1dG8g
c3RhcnQgPSBib3gtPnN0YXJ0KCk7CiAgICAgICAgIGlmIChvZmZzZXQgPCBzdGFydCkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>