<?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>230457</bug_id>
          
          <creation_ts>2021-09-19 06:32:21 -0700</creation_ts>
          <short_desc>[LFC][Integration] Make block selection gap painting use iterator</short_desc>
          <delta_ts>2021-09-19 09:44:15 -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>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>1794866</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-19 06:32:21 -0700</bug_when>
    <thetext>Instead of talking to LegacyInlineBoxes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794867</commentid>
    <comment_count>1</comment_count>
      <attachid>438591</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-19 06:35:04 -0700</bug_when>
    <thetext>Created attachment 438591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794878</commentid>
    <comment_count>2</comment_count>
      <attachid>438596</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-19 08:47:36 -0700</bug_when>
    <thetext>Created attachment 438596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794880</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-19 09:43:04 -0700</bug_when>
    <thetext>Committed r282736 (241873@main): &lt;https://commits.webkit.org/241873@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438596.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794882</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-19 09:44:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/83285253&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438591</attachid>
            <date>2021-09-19 06:35:04 -0700</date>
            <delta_ts>2021-09-19 08:47:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230457-20210919163502.patch</filename>
            <type>text/plain</type>
            <size>17961</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM4MGU5ZGIzMDE4N2Zj
NDAwMjlhYWM3ZmU0NTg1MGVkOTQ0OTgyNS4uMjJhMTQ5M2VlM2JiZGM4ZDJiZmEyN2QyNzZiZDlk
YWJjYjIwMzUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA5LTE5ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlv
bl0gTWFrZSBibG9jayBzZWxlY3Rpb24gZ2FwIHBhaW50aW5nIHVzZSBpdGVyYXRvcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNDU3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgY29kZSBu
b3QgZGVwZW5kIG9uIGxlZ2FjeSBpbmxpbmUgYm94ZXMuCisKKyAgICAgICAgKiByZW5kZXJpbmcv
TGVnYWN5Um9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSb290SW5s
aW5lQm94OjpsaW5lU2VsZWN0aW9uR2FwKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
TGVnYWN5Um9vdElubGluZUJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9naWNhbExlZnRTZWxlY3Rpb25H
YXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdodFNlbGVjdGlv
bkdhcCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
a0Zsb3c6OmlubGluZVNlbGVjdGlvbkdhcHMpOgorCiAyMDIxLTA5LTE3ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgc2Nyb2xsYmFyLXJlbGF0
ZWQgY29kZSBvdXQgb2YgU2Nyb2xsQW5pbWF0b3IgYW5kIGludG8gU2Nyb2xsYmFyc0NvbnRyb2xs
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5l
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmNw
cAppbmRleCA2NmExMjgyZmFjM2YwZDhkMGU2MjhmYmFmOTQ3ZDFhY2UzNjA2YzRhLi43YmIzNWY1
OWMzODI2ZWM5MzZhY2UwYmFiNDg4MTcwNGNlMDFhZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guY3BwCkBAIC00MjgsNjAgKzQyOCw2IEBA
IExheW91dFVuaXQgTGVnYWN5Um9vdElubGluZUJveDo6bGluZVNuYXBBZGp1c3RtZW50KExheW91
dFVuaXQgZGVsdGEpIGNvbnN0CiAgICAgcmV0dXJuIGxpbmVTbmFwQWRqdXN0bWVudChuZXdQYWdl
TG9naWNhbFRvcCAtIChibG9ja09mZnNldCArIGxpbmVCb3hUb3AoKSkpOwogfQogCi1HYXBSZWN0
cyBMZWdhY3lSb290SW5saW5lQm94OjpsaW5lU2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrJiByb290
QmxvY2ssIGNvbnN0IExheW91dFBvaW50JiByb290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBjb25z
dCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdEJsb2NrLAotICAgIExheW91dFVuaXQgc2VsVG9w
LCBMYXlvdXRVbml0IHNlbEhlaWdodCwgY29uc3QgTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hl
cyYgY2FjaGUsIGNvbnN0IFBhaW50SW5mbyogcGFpbnRJbmZvKQotewotICAgIFJlbmRlck9iamVj
dDo6SGlnaGxpZ2h0U3RhdGUgbGluZVN0YXRlID0gc2VsZWN0aW9uU3RhdGUoKTsKLQotICAgIGJv
b2wgbGVmdEdhcCwgcmlnaHRHYXA7Ci0gICAgYmxvY2tGbG93KCkuZ2V0U2VsZWN0aW9uR2FwSW5m
byhsaW5lU3RhdGUsIGxlZnRHYXAsIHJpZ2h0R2FwKTsKLQotICAgIEdhcFJlY3RzIHJlc3VsdDsK
LQotICAgIGF1dG8qIGZpcnN0Qm94ID0gZmlyc3RTZWxlY3RlZEJveCgpOwotICAgIGF1dG8qIGxh
c3RCb3ggPSBsYXN0U2VsZWN0ZWRCb3goKTsKLSAgICBpZiAobGVmdEdhcCkgewotICAgICAgICBy
ZXN1bHQudW5pdGVMZWZ0KGJsb2NrRmxvdygpLmxvZ2ljYWxMZWZ0U2VsZWN0aW9uR2FwKHJvb3RC
bG9jaywgcm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgb2Zmc2V0RnJvbVJvb3RCbG9jaywgJmZp
cnN0Qm94LT5wYXJlbnQoKS0+cmVuZGVyZXIoKSwgTGF5b3V0VW5pdChmaXJzdEJveC0+bG9naWNh
bExlZnQoKSksCi0gICAgICAgICAgICBzZWxUb3AsIHNlbEhlaWdodCwgY2FjaGUsIHBhaW50SW5m
bykpOwotICAgIH0KLSAgICBpZiAocmlnaHRHYXApIHsKLSAgICAgICAgcmVzdWx0LnVuaXRlUmln
aHQoYmxvY2tGbG93KCkubG9naWNhbFJpZ2h0U2VsZWN0aW9uR2FwKHJvb3RCbG9jaywgcm9vdEJs
b2NrUGh5c2ljYWxQb3NpdGlvbiwgb2Zmc2V0RnJvbVJvb3RCbG9jaywgJmxhc3RCb3gtPnBhcmVu
dCgpLT5yZW5kZXJlcigpLCBMYXlvdXRVbml0KGxhc3RCb3gtPmxvZ2ljYWxSaWdodCgpKSwKLSAg
ICAgICAgICAgIHNlbFRvcCwgc2VsSGVpZ2h0LCBjYWNoZSwgcGFpbnRJbmZvKSk7Ci0gICAgfQot
Ci0gICAgLy8gV2hlbiBkZWFsaW5nIHdpdGggYmlkaSB0ZXh0LCBhIG5vbi1jb250aWd1b3VzIHNl
bGVjdGlvbiByZWdpb24gaXMgcG9zc2libGUuCi0gICAgLy8gZS5nLiBUaGUgbG9naWNhbCB0ZXh0
IGFhYUFBQWJiYiAoY2FwaXRhbHMgZGVub3RlIFJUTCB0ZXh0IGFuZCBub24tY2FwaXRhbHMgTFRS
KSBpcyBsYXllZCBvdXQKLSAgICAvLyB2aXN1YWxseSBhcyAzIHRleHQgcnVucyB8YWFhfGJiYnxB
QUF8IGlmIHdlIHNlbGVjdCA0IGNoYXJhY3RlcnMgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHRleHQg
dGhlCi0gICAgLy8gc2VsZWN0aW9uIHdpbGwgbG9vayBsaWtlICh1bmRlcmxpbmUgZGVub3RlcyBz
ZWxlY3Rpb24pOgotICAgIC8vIHxhYWF8YmJifEFBQXwKLSAgICAvLyAgX19fICAgICAgIF8KLSAg
ICAvLyBXZSBjYW4gc2VlIHRoYXQgdGhlIHxiYmJ8IHJ1biBpcyBub3QgcGFydCBvZiB0aGUgc2Vs
ZWN0aW9uIHdoaWxlIHRoZSBydW5zIGFyb3VuZCBpdCBhcmUuCi0gICAgaWYgKGZpcnN0Qm94ICYm
IGZpcnN0Qm94ICE9IGxhc3RCb3gpIHsKLSAgICAgICAgLy8gTm93IGZpbGwgaW4gYW55IGdhcHMg
b24gdGhlIGxpbmUgdGhhdCBvY2N1cnJlZCBiZXR3ZWVuIHR3byBzZWxlY3RlZCBlbGVtZW50cy4K
LSAgICAgICAgTGF5b3V0VW5pdCBsYXN0TG9naWNhbExlZnQgeyBmaXJzdEJveC0+bG9naWNhbFJp
Z2h0KCkgfTsKLSAgICAgICAgYm9vbCBpc1ByZXZpb3VzQm94U2VsZWN0ZWQgPSBmaXJzdEJveC0+
c2VsZWN0aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpOb25lOwot
ICAgICAgICBmb3IgKGF1dG8qIGJveCA9IGZpcnN0Qm94LT5uZXh0TGVhZk9uTGluZSgpOyBib3g7
IGJveCA9IGJveC0+bmV4dExlYWZPbkxpbmUoKSkgewotICAgICAgICAgICAgaWYgKGJveC0+c2Vs
ZWN0aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpOb25lKSB7Ci0g
ICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBsb2dpY2FsUmVjdCB7IGxhc3RMb2dpY2FsTGVmdCwg
c2VsVG9wLCBMYXlvdXRVbml0KGJveC0+bG9naWNhbExlZnQoKSAtIGxhc3RMb2dpY2FsTGVmdCks
IHNlbEhlaWdodCB9OwotICAgICAgICAgICAgICAgIGxvZ2ljYWxSZWN0Lm1vdmUocmVuZGVyZXIo
KS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gb2Zmc2V0RnJvbVJvb3RCbG9jayA6IExheW91
dFNpemUob2Zmc2V0RnJvbVJvb3RCbG9jay5oZWlnaHQoKSwgb2Zmc2V0RnJvbVJvb3RCbG9jay53
aWR0aCgpKSk7Ci0gICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBnYXBSZWN0ID0gcm9vdEJsb2Nr
LmxvZ2ljYWxSZWN0VG9QaHlzaWNhbFJlY3Qocm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgbG9n
aWNhbFJlY3QpOwotICAgICAgICAgICAgICAgIGlmIChpc1ByZXZpb3VzQm94U2VsZWN0ZWQgJiYg
Z2FwUmVjdC53aWR0aCgpID4gMCAmJiBnYXBSZWN0LmhlaWdodCgpID4gMCkgewotICAgICAgICAg
ICAgICAgICAgICBpZiAocGFpbnRJbmZvICYmIGJveC0+cGFyZW50KCktPnJlbmRlcmVyKCkuc3R5
bGUoKS52aXNpYmlsaXR5KCkgPT0gVmlzaWJpbGl0eTo6VmlzaWJsZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHBhaW50SW5mby0+Y29udGV4dCgpLmZpbGxSZWN0KGdhcFJlY3QsIGJveC0+cGFy
ZW50KCktPnJlbmRlcmVyKCkuc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkpOwotICAgICAgICAg
ICAgICAgICAgICAvLyBWaXNpYmxlU2VsZWN0aW9uIG1heSBiZSBub24tY29udGlndW91cywgc2Vl
IGNvbW1lbnQgYWJvdmUuCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC51bml0ZUNlbnRlcihn
YXBSZWN0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbGFzdExvZ2ljYWxM
ZWZ0ID0gYm94LT5sb2dpY2FsUmlnaHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChib3ggPT0gbGFzdEJveCkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGlz
UHJldmlvdXNCb3hTZWxlY3RlZCA9IGJveC0+c2VsZWN0aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmpl
Y3Q6OkhpZ2hsaWdodFN0YXRlOjpOb25lOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQogUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBMZWdhY3lSb290SW5s
aW5lQm94OjpzZWxlY3Rpb25TdGF0ZSgpIGNvbnN0CiB7CiAgICAgLy8gV2FsayBvdmVyIGFsbCBv
ZiB0aGUgc2VsZWN0ZWQgYm94ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTGVnYWN5Um9vdElubGluZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2Fj
eVJvb3RJbmxpbmVCb3guaAppbmRleCAxYTVhN2FiYmZhOTJhYTM4NjI5ODg0ZDZiMWY3NTY4Y2M2
ZjM0N2RjLi5jMjU5NDQwOTE0NWU1ZGEzNzNjZWNjMjNjYjE3YTQ4NTQ1YjQxNDExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmgKQEAgLTEzMCw5
ICsxMzAsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGVnYWN5SW5saW5lQm94KiBmaXJzdFNlbGVj
dGVkQm94KCkgY29uc3Q7CiAgICAgY29uc3QgTGVnYWN5SW5saW5lQm94KiBsYXN0U2VsZWN0ZWRC
b3goKSBjb25zdDsKIAotICAgIEdhcFJlY3RzIGxpbmVTZWxlY3Rpb25HYXAoUmVuZGVyQmxvY2sm
IHJvb3RCbG9jaywgY29uc3QgTGF5b3V0UG9pbnQmIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24s
IGNvbnN0IExheW91dFNpemUmIG9mZnNldEZyb21Sb290QmxvY2ssCi0gICAgICAgIExheW91dFVu
aXQgc2VsVG9wLCBMYXlvdXRVbml0IHNlbEhlaWdodCwgY29uc3QgTG9naWNhbFNlbGVjdGlvbk9m
ZnNldENhY2hlcyYsIGNvbnN0IFBhaW50SW5mbyopOwotCiAgICAgdXNpbmcgQ2xlYW5MaW5lRmxv
YXRMaXN0ID0gVmVjdG9yPFdlYWtQdHI8UmVuZGVyQm94Pj47CiAgICAgdm9pZCBhcHBlbmRGbG9h
dChSZW5kZXJCb3gmIGZsb2F0aW5nQm94KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCmluZGV4IGU3NjVkZjA3NGIyZjc5ODk2NWZhNmZlZGFiNzM0MmE4OTA3
YTk0MzUuLjA0YjEyOTc0NGRmMWFhYzdhZTY4NTI1ZjZiMjY4MTBhNWU1ZTBjMDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTY4MSw4ICsxNjgxLDcgQEAg
TGF5b3V0UmVjdCBSZW5kZXJCbG9jazo6YmxvY2tTZWxlY3Rpb25HYXAoUmVuZGVyQmxvY2smIHJv
b3RCbG9jaywgY29uc3QgTGF5b3V0UG8KICAgICByZXR1cm4gZ2FwUmVjdDsKIH0KIAotTGF5b3V0
UmVjdCBSZW5kZXJCbG9jazo6bG9naWNhbExlZnRTZWxlY3Rpb25HYXAoUmVuZGVyQmxvY2smIHJv
b3RCbG9jaywgY29uc3QgTGF5b3V0UG9pbnQmIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIGNv
bnN0IExheW91dFNpemUmIG9mZnNldEZyb21Sb290QmxvY2ssCi0gICAgUmVuZGVyQm94TW9kZWxP
YmplY3QqIHNlbE9iaiwgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgTGF5b3V0VW5pdCBsb2dpY2Fs
VG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIGNvbnN0IExvZ2ljYWxTZWxlY3Rpb25PZmZz
ZXRDYWNoZXMmIGNhY2hlLCBjb25zdCBQYWludEluZm8qIHBhaW50SW5mbykKK0xheW91dFJlY3Qg
UmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0U2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrJiByb290Qmxv
Y2ssIGNvbnN0IExheW91dFBvaW50JiByb290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBjb25zdCBM
YXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdEJsb2NrLCBSZW5kZXJFbGVtZW50KiBzZWxPYmosIExh
eW91dFVuaXQgbG9naWNhbExlZnQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBs
b2dpY2FsSGVpZ2h0LCBjb25zdCBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzJiBjYWNoZSwg
Y29uc3QgUGFpbnRJbmZvKiBwYWludEluZm8pCiB7CiAgICAgTGF5b3V0VW5pdCByb290QmxvY2tM
b2dpY2FsVG9wID0gYmxvY2tEaXJlY3Rpb25PZmZzZXQocm9vdEJsb2NrLCBvZmZzZXRGcm9tUm9v
dEJsb2NrKSArIGxvZ2ljYWxUb3A7CiAgICAgTGF5b3V0VW5pdCByb290QmxvY2tMb2dpY2FsTGVm
dCA9IHN0ZDo6bWF4KGxvZ2ljYWxMZWZ0U2VsZWN0aW9uT2Zmc2V0KHJvb3RCbG9jaywgbG9naWNh
bFRvcCwgY2FjaGUpLCBsb2dpY2FsTGVmdFNlbGVjdGlvbk9mZnNldChyb290QmxvY2ssIGxvZ2lj
YWxUb3AgKyBsb2dpY2FsSGVpZ2h0LCBjYWNoZSkpOwpAQCAtMTY5OCw4ICsxNjk3LDcgQEAgTGF5
b3V0UmVjdCBSZW5kZXJCbG9jazo6bG9naWNhbExlZnRTZWxlY3Rpb25HYXAoUmVuZGVyQmxvY2sm
IHJvb3RCbG9jaywgY29uc3QgTGEKICAgICByZXR1cm4gZ2FwUmVjdDsKIH0KIAotTGF5b3V0UmVj
dCBSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0U2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrJiByb290
QmxvY2ssIGNvbnN0IExheW91dFBvaW50JiByb290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBjb25z
dCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdEJsb2NrLAotICAgIFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiBzZWxPYmosIExheW91dFVuaXQgbG9naWNhbFJpZ2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxU
b3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgY29uc3QgTG9naWNhbFNlbGVjdGlvbk9mZnNl
dENhY2hlcyYgY2FjaGUsIGNvbnN0IFBhaW50SW5mbyogcGFpbnRJbmZvKQorTGF5b3V0UmVjdCBS
ZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0U2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrJiByb290Qmxv
Y2ssIGNvbnN0IExheW91dFBvaW50JiByb290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBjb25zdCBM
YXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdEJsb2NrLCBSZW5kZXJFbGVtZW50KiBzZWxPYmosIExh
eW91dFVuaXQgbG9naWNhbFJpZ2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQg
bG9naWNhbEhlaWdodCwgY29uc3QgTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcyYgY2FjaGUs
IGNvbnN0IFBhaW50SW5mbyogcGFpbnRJbmZvKQogewogICAgIExheW91dFVuaXQgcm9vdEJsb2Nr
TG9naWNhbFRvcCA9IGJsb2NrRGlyZWN0aW9uT2Zmc2V0KHJvb3RCbG9jaywgb2Zmc2V0RnJvbVJv
b3RCbG9jaykgKyBsb2dpY2FsVG9wOwogICAgIExheW91dFVuaXQgcm9vdEJsb2NrTG9naWNhbExl
ZnQgPSBzdGQ6Om1heChpbmxpbmVEaXJlY3Rpb25PZmZzZXQocm9vdEJsb2NrLCBvZmZzZXRGcm9t
Um9vdEJsb2NrKSArIGxvZ2ljYWxSaWdodCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgKaW5kZXggZmNmYWZhZjYyOTY3YzNhNjNhZGEwYmMwMmE1NDVjN2RiYmMxMTBkZC4uZThk
YWI0Nzg3ZDYwMmI5MDkwN2M0ODRlN2FkMTM4ODAxODQzNDBmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTE3MywxMCArMTczLDggQEAgcHVibGljOgogICAgIFZp
c2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiwgY29uc3Qg
UmVuZGVyRnJhZ21lbnRDb250YWluZXIqKSBvdmVycmlkZTsKIAogICAgIEdhcFJlY3RzIHNlbGVj
dGlvbkdhcFJlY3RzRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyKTsKLSAgICBMYXlvdXRSZWN0IGxvZ2ljYWxMZWZ0U2VsZWN0aW9uR2FwKFJl
bmRlckJsb2NrJiByb290QmxvY2ssIGNvbnN0IExheW91dFBvaW50JiByb290QmxvY2tQaHlzaWNh
bFBvc2l0aW9uLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdEJsb2NrLAotICAgICAg
ICBSZW5kZXJCb3hNb2RlbE9iamVjdCogc2VsT2JqLCBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBM
YXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgY29uc3QgTG9n
aWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcyYsIGNvbnN0IFBhaW50SW5mbyopOwotICAgIExheW91
dFJlY3QgbG9naWNhbFJpZ2h0U2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrJiByb290QmxvY2ssIGNv
bnN0IExheW91dFBvaW50JiByb290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBjb25zdCBMYXlvdXRT
aXplJiBvZmZzZXRGcm9tUm9vdEJsb2NrLAotICAgICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCog
c2VsT2JqLCBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBM
YXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIGNvbnN0IExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNo
ZXMmLCBjb25zdCBQYWludEluZm8qKTsKKyAgICBMYXlvdXRSZWN0IGxvZ2ljYWxMZWZ0U2VsZWN0
aW9uR2FwKFJlbmRlckJsb2NrJiByb290QmxvY2ssIGNvbnN0IExheW91dFBvaW50JiByb290Qmxv
Y2tQaHlzaWNhbFBvc2l0aW9uLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdEJsb2Nr
LCBSZW5kZXJFbGVtZW50KiBzZWxPYmosIExheW91dFVuaXQgbG9naWNhbExlZnQsIExheW91dFVu
aXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBjb25zdCBMb2dpY2FsU2Vs
ZWN0aW9uT2Zmc2V0Q2FjaGVzJiwgY29uc3QgUGFpbnRJbmZvKik7CisgICAgTGF5b3V0UmVjdCBs
b2dpY2FsUmlnaHRTZWxlY3Rpb25HYXAoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29uc3QgTGF5
b3V0UG9pbnQmIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIGNvbnN0IExheW91dFNpemUmIG9m
ZnNldEZyb21Sb290QmxvY2ssIFJlbmRlckVsZW1lbnQqIHNlbE9iaiwgTGF5b3V0VW5pdCBsb2dp
Y2FsUmlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
LCBjb25zdCBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzJiwgY29uc3QgUGFpbnRJbmZvKik7
CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25HYXBJbmZvKEhpZ2hsaWdodFN0YXRlLCBib29sJiBsZWZ0
R2FwLCBib29sJiByaWdodEdhcCk7CiAgICAgYm9vbCBpc1NlbGVjdGlvblJvb3QoKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCA2
YWM2YjlmYjliZDJiMThmNTJhNDNhYWM5NjJlY2U1Nzc1MWFkMzdlLi5iMDAwNDg0NDAxNjFmZTBi
YzdhOTgzODkxYjVlMTY5YmI2MzQ1MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMzI4OCw2NyArMzI4OCw4OSBAQCBHYXBSZWN0cyBSZW5k
ZXJCbG9ja0Zsb3c6OmlubGluZVNlbGVjdGlvbkdhcHMoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywg
Y29uc3QgTGF5bwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIGF1dG8gaGFz
U2VsZWN0ZWRDaGlsZHJlbiA9IFsmXShjb25zdCBMZWdhY3lSb290SW5saW5lQm94JiByb290KSB7
Ci0gICAgICAgIGZvciAoYXV0byogYm94ID0gcm9vdC5maXJzdExlYWZEZXNjZW5kYW50KCk7IGJv
eDsgYm94ID0gYm94LT5uZXh0TGVhZk9uTGluZSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWlzPExl
Z2FjeUlubGluZVRleHRCb3g+KCpib3gpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGJveC0+c2Vs
ZWN0aW9uU3RhdGUoKSAhPSBIaWdobGlnaHRTdGF0ZTo6Tm9uZSkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9
CisgICAgYXV0byBoYXNTZWxlY3RlZENoaWxkcmVuID0gWyZdKGNvbnN0IExheW91dEludGVncmF0
aW9uOjpMaW5lSXRlcmF0b3ImIGxpbmUpIHsKKyAgICAgICAgcmV0dXJuIGxpbmUtPnNlbGVjdGlv
blN0YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZTsKKyAgICB9Owog
Ci0gICAgICAgICAgICBhdXRvIHN0YXJ0ID0gdmlldygpLnNlbGVjdGlvbigpLnN0YXJ0T2Zmc2V0
KCk7Ci0gICAgICAgICAgICBhdXRvIGVuZCA9IHZpZXcoKS5zZWxlY3Rpb24oKS5lbmRPZmZzZXQo
KTsKKyAgICBhdXRvIGxpbmVTZWxlY3Rpb25HYXAgPSBbJl0oY29uc3QgTGF5b3V0SW50ZWdyYXRp
b246OkxpbmVJdGVyYXRvciYgbGluZSwgTGF5b3V0VW5pdCBzZWxUb3AsIExheW91dFVuaXQgc2Vs
SGVpZ2h0KSAtPiBHYXBSZWN0cyB7CisgICAgICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3Rh
dGUgbGluZVN0YXRlID0gbGluZS0+c2VsZWN0aW9uU3RhdGUoKTsKIAotICAgICAgICAgICAgYXV0
byYgdGV4dEJveCA9IGRvd25jYXN0PExlZ2FjeUlubGluZVRleHRCb3g+KCpib3gpOwotICAgICAg
ICAgICAgc3dpdGNoICh0ZXh0Qm94LnJlbmRlcmVyKCkuc2VsZWN0aW9uU3RhdGUoKSkgewotICAg
ICAgICAgICAgY2FzZSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpOb25lOgotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgY2FzZSBSZW5kZXJPYmplY3Q6OkhpZ2hs
aWdodFN0YXRlOjpJbnNpZGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
ICAgICBjYXNlIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6OlN0YXJ0OgotICAgICAgICAg
ICAgICAgIGVuZCA9IHRleHRCb3gucmVuZGVyZXIoKS50ZXh0KCkubGVuZ3RoKCk7Ci0gICAgICAg
ICAgICAgICAgLy8gdG8gaGFuZGxlIHNlbGVjdGlvbiBmcm9tIGVuZCBvZiB0ZXh0IHRvIGVuZCBv
ZiBsaW5lCi0gICAgICAgICAgICAgICAgaWYgKHN0YXJ0ICYmIHN0YXJ0ID09IGVuZCkKLSAgICAg
ICAgICAgICAgICAgICAgc3RhcnQgPSBlbmQgLSAxOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpFbmQ6Ci0gICAg
ICAgICAgICAgICAgc3RhcnQgPSAwOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgY2FzZSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpCb3RoOgotICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBib29sIGxlZnRHYXAsIHJpZ2h0R2FwOworICAgICAgICBnZXRT
ZWxlY3Rpb25HYXBJbmZvKGxpbmVTdGF0ZSwgbGVmdEdhcCwgcmlnaHRHYXApOworCisgICAgICAg
IEdhcFJlY3RzIHJlc3VsdDsKKworICAgICAgICBhdXRvIGZpcnN0Qm94ID0gbGluZS0+Zmlyc3RT
ZWxlY3RlZEJveCgpOworICAgICAgICBhdXRvIGxhc3RCb3ggPSBsaW5lLT5sYXN0U2VsZWN0ZWRC
b3goKTsKKworICAgICAgICBpZiAobGVmdEdhcCkgeworICAgICAgICAgICAgcmVzdWx0LnVuaXRl
TGVmdChsb2dpY2FsTGVmdFNlbGVjdGlvbkdhcCgqdGhpcywgcm9vdEJsb2NrUGh5c2ljYWxQb3Np
dGlvbiwgb2Zmc2V0RnJvbVJvb3RCbG9jaywgZmlyc3RCb3gtPnJlbmRlcmVyKCkucGFyZW50KCks
IExheW91dFVuaXQoZmlyc3RCb3gtPmxvZ2ljYWxMZWZ0KCkpLAorICAgICAgICAgICAgICAgIHNl
bFRvcCwgc2VsSGVpZ2h0LCBjYWNoZSwgcGFpbnRJbmZvKSk7CisgICAgICAgIH0KKyAgICAgICAg
aWYgKHJpZ2h0R2FwKSB7CisgICAgICAgICAgICByZXN1bHQudW5pdGVSaWdodChsb2dpY2FsUmln
aHRTZWxlY3Rpb25HYXAoKnRoaXMsIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIG9mZnNldEZy
b21Sb290QmxvY2ssIGxhc3RCb3gtPnJlbmRlcmVyKCkucGFyZW50KCksIExheW91dFVuaXQobGFz
dEJveC0+bG9naWNhbFJpZ2h0KCkpLAorICAgICAgICAgICAgICAgIHNlbFRvcCwgc2VsSGVpZ2h0
LCBjYWNoZSwgcGFpbnRJbmZvKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBXaGVuIGRlYWxp
bmcgd2l0aCBiaWRpIHRleHQsIGEgbm9uLWNvbnRpZ3VvdXMgc2VsZWN0aW9uIHJlZ2lvbiBpcyBw
b3NzaWJsZS4KKyAgICAgICAgLy8gZS5nLiBUaGUgbG9naWNhbCB0ZXh0IGFhYUFBQWJiYiAoY2Fw
aXRhbHMgZGVub3RlIFJUTCB0ZXh0IGFuZCBub24tY2FwaXRhbHMgTFRSKSBpcyBsYXllZCBvdXQK
KyAgICAgICAgLy8gdmlzdWFsbHkgYXMgMyB0ZXh0IHJ1bnMgfGFhYXxiYmJ8QUFBfCBpZiB3ZSBz
ZWxlY3QgNCBjaGFyYWN0ZXJzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHRoZQorICAgICAg
ICAvLyBzZWxlY3Rpb24gd2lsbCBsb29rIGxpa2UgKHVuZGVybGluZSBkZW5vdGVzIHNlbGVjdGlv
bik6CisgICAgICAgIC8vIHxhYWF8YmJifEFBQXwKKyAgICAgICAgLy8gIF9fXyAgICAgICBfCisg
ICAgICAgIC8vIFdlIGNhbiBzZWUgdGhhdCB0aGUgfGJiYnwgcnVuIGlzIG5vdCBwYXJ0IG9mIHRo
ZSBzZWxlY3Rpb24gd2hpbGUgdGhlIHJ1bnMgYXJvdW5kIGl0IGFyZS4KKyAgICAgICAgaWYgKGZp
cnN0Qm94ICYmIGZpcnN0Qm94ICE9IGxhc3RCb3gpIHsKKyAgICAgICAgICAgIC8vIE5vdyBmaWxs
IGluIGFueSBnYXBzIG9uIHRoZSBsaW5lIHRoYXQgb2NjdXJyZWQgYmV0d2VlbiB0d28gc2VsZWN0
ZWQgZWxlbWVudHMuCisgICAgICAgICAgICBMYXlvdXRVbml0IGxhc3RMb2dpY2FsTGVmdCB7IGZp
cnN0Qm94LT5sb2dpY2FsUmlnaHQoKSB9OworICAgICAgICAgICAgYm9vbCBpc1ByZXZpb3VzQm94
U2VsZWN0ZWQgPSBmaXJzdEJveC0+c2VsZWN0aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6Okhp
Z2hsaWdodFN0YXRlOjpOb25lOworICAgICAgICAgICAgZm9yIChhdXRvIGJveCA9IGZpcnN0Qm94
OyBib3g7IGJveC50cmF2ZXJzZU5leHRPbkxpbmUoKSkgeworICAgICAgICAgICAgICAgIGlmIChi
b3gtPnNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9u
ZSkgeworICAgICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IGxvZ2ljYWxSZWN0IHsgbGFzdExv
Z2ljYWxMZWZ0LCBzZWxUb3AsIExheW91dFVuaXQoYm94LT5sb2dpY2FsTGVmdCgpIC0gbGFzdExv
Z2ljYWxMZWZ0KSwgc2VsSGVpZ2h0IH07CisgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxSZWN0
Lm1vdmUoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG9mZnNldEZyb21Sb290QmxvY2sgOiBM
YXlvdXRTaXplKG9mZnNldEZyb21Sb290QmxvY2suaGVpZ2h0KCksIG9mZnNldEZyb21Sb290Qmxv
Y2sud2lkdGgoKSkpOworICAgICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IGdhcFJlY3QgPSBy
b290QmxvY2subG9naWNhbFJlY3RUb1BoeXNpY2FsUmVjdChyb290QmxvY2tQaHlzaWNhbFBvc2l0
aW9uLCBsb2dpY2FsUmVjdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc1ByZXZpb3VzQm94
U2VsZWN0ZWQgJiYgZ2FwUmVjdC53aWR0aCgpID4gMCAmJiBnYXBSZWN0LmhlaWdodCgpID4gMCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhaW50SW5mbyAmJiBib3gtPnJlbmRlcmVy
KCkucGFyZW50KCktPnN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OlZpc2libGUp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFpbnRJbmZvLT5jb250ZXh0KCkuZmlsbFJl
Y3QoZ2FwUmVjdCwgYm94LT5yZW5kZXJlcigpLnBhcmVudCgpLT5zZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBWaXNpYmxlU2VsZWN0aW9uIG1h
eSBiZSBub24tY29udGlndW91cywgc2VlIGNvbW1lbnQgYWJvdmUuCisgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQudW5pdGVDZW50ZXIoZ2FwUmVjdCk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgbGFzdExvZ2ljYWxMZWZ0ID0gYm94LT5sb2dpY2FsUmln
aHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGJveCA9PSBsYXN0
Qm94KQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBpc1ByZXZp
b3VzQm94U2VsZWN0ZWQgPSBib3gtPnNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpI
aWdobGlnaHRTdGF0ZTo6Tm9uZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh0ZXh0
Qm94LnNlbGVjdGFibGVSYW5nZSgpLmludGVyc2VjdHMoc3RhcnQsIGVuZCkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfTsKIAotICAgIExlZ2FjeVJvb3RJbmxpbmVCb3gq
IGxhc3RTZWxlY3RlZExpbmUgPSAwOwotICAgIExlZ2FjeVJvb3RJbmxpbmVCb3gqIGN1cnI7Ci0g
ICAgZm9yIChjdXJyID0gZmlyc3RSb290Qm94KCk7IGN1cnIgJiYgIWhhc1NlbGVjdGVkQ2hpbGRy
ZW4oKmN1cnIpOyBjdXJyID0gY3Vyci0+bmV4dFJvb3RCb3goKSkgeyB9CisgICAgTGF5b3V0SW50
ZWdyYXRpb246OkxpbmVJdGVyYXRvciBsYXN0U2VsZWN0ZWRMaW5lOworICAgIExheW91dEludGVn
cmF0aW9uOjpMaW5lSXRlcmF0b3IgbGluZSA9IExheW91dEludGVncmF0aW9uOjpmaXJzdExpbmVG
b3IoKnRoaXMpOworICAgIGZvciAoOyBsaW5lICYmICFoYXNTZWxlY3RlZENoaWxkcmVuKGxpbmUp
OyBsaW5lLnRyYXZlcnNlTmV4dCgpKSB7IH0KIAogICAgIC8vIE5vdyBwYWludCB0aGUgZ2FwcyBm
b3IgdGhlIGxpbmVzLgotICAgIGZvciAoOyBjdXJyICYmIGhhc1NlbGVjdGVkQ2hpbGRyZW4oKmN1
cnIpOyBjdXJyID0gY3Vyci0+bmV4dFJvb3RCb3goKSkgewotICAgICAgICBMYXlvdXRVbml0IHNl
bFRvcCA9ICBjdXJyLT5zZWxlY3Rpb25Ub3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKCk7Ci0g
ICAgICAgIExheW91dFVuaXQgc2VsSGVpZ2h0ID0gY3Vyci0+c2VsZWN0aW9uSGVpZ2h0QWRqdXN0
ZWRGb3JQcmVjZWRpbmdCbG9jaygpOworICAgIGZvciAoOyBsaW5lICYmIGhhc1NlbGVjdGVkQ2hp
bGRyZW4obGluZSk7IGxpbmUudHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAgTGF5b3V0VW5pdCBz
ZWxUb3AgPSAgbGluZS0+c2VsZWN0aW9uVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpOwor
ICAgICAgICBMYXlvdXRVbml0IHNlbEhlaWdodCA9IGxpbmUtPnNlbGVjdGlvbkhlaWdodEFkanVz
dGVkRm9yUHJlY2VkaW5nQmxvY2soKTsKIAogICAgICAgICBpZiAoIWNvbnRhaW5zU3RhcnQgJiYg
IWxhc3RTZWxlY3RlZExpbmUgJiYKICAgICAgICAgICAgIHNlbGVjdGlvblN0YXRlKCkgIT0gSGln
aGxpZ2h0U3RhdGU6OlN0YXJ0ICYmIHNlbGVjdGlvblN0YXRlKCkgIT0gSGlnaGxpZ2h0U3RhdGU6
OkJvdGggJiYgIWlzUnVieUJhc2UoKSkKICAgICAgICAgICAgIHJlc3VsdC51bml0ZUNlbnRlcihi
bG9ja1NlbGVjdGlvbkdhcChyb290QmxvY2ssIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIG9m
ZnNldEZyb21Sb290QmxvY2ssIGxhc3RMb2dpY2FsVG9wLCBsYXN0TG9naWNhbExlZnQsIGxhc3RM
b2dpY2FsUmlnaHQsIHNlbFRvcCwgY2FjaGUsIHBhaW50SW5mbykpOwotICAgICAgICAKLSAgICAg
ICAgTGF5b3V0UmVjdCBsb2dpY2FsUmVjdCB7IExheW91dFVuaXQoY3Vyci0+bG9naWNhbExlZnQo
KSksIHNlbFRvcCwgTGF5b3V0VW5pdChjdXJyLT5sb2dpY2FsV2lkdGgoKSksIHNlbFRvcCArIHNl
bEhlaWdodCB9OworCisgICAgICAgIExheW91dFJlY3QgbG9naWNhbFJlY3QgeyBMYXlvdXRVbml0
KGxpbmUtPmNvbnRlbnRMb2dpY2FsTGVmdCgpKSwgc2VsVG9wLCBMYXlvdXRVbml0KGxpbmUtPmNv
bnRlbnRMb2dpY2FsV2lkdGgoKSksIHNlbFRvcCArIHNlbEhlaWdodCB9OwogICAgICAgICBsb2dp
Y2FsUmVjdC5tb3ZlKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBvZmZzZXRGcm9tUm9vdEJs
b2NrIDogb2Zmc2V0RnJvbVJvb3RCbG9jay50cmFuc3Bvc2VkU2l6ZSgpKTsKICAgICAgICAgTGF5
b3V0UmVjdCBwaHlzaWNhbFJlY3QgPSByb290QmxvY2subG9naWNhbFJlY3RUb1BoeXNpY2FsUmVj
dChyb290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBsb2dpY2FsUmVjdCk7CiAgICAgICAgIGlmICgh
cGFpbnRJbmZvIHx8IChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpICYmIHBoeXNpY2FsUmVjdC55
KCkgPCBwYWludEluZm8tPnJlY3QubWF4WSgpICYmIHBoeXNpY2FsUmVjdC5tYXhZKCkgPiBwYWlu
dEluZm8tPnJlY3QueSgpKQogICAgICAgICAgICAgfHwgKCFpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpICYmIHBoeXNpY2FsUmVjdC54KCkgPCBwYWludEluZm8tPnJlY3QubWF4WCgpICYmIHBoeXNp
Y2FsUmVjdC5tYXhYKCkgPiBwYWludEluZm8tPnJlY3QueCgpKSkKLSAgICAgICAgICAgIHJlc3Vs
dC51bml0ZShjdXJyLT5saW5lU2VsZWN0aW9uR2FwKHJvb3RCbG9jaywgcm9vdEJsb2NrUGh5c2lj
YWxQb3NpdGlvbiwgb2Zmc2V0RnJvbVJvb3RCbG9jaywgc2VsVG9wLCBzZWxIZWlnaHQsIGNhY2hl
LCBwYWludEluZm8pKTsKKyAgICAgICAgICAgIHJlc3VsdC51bml0ZShsaW5lU2VsZWN0aW9uR2Fw
KGxpbmUsIHNlbFRvcCwgc2VsSGVpZ2h0KSk7CiAKLSAgICAgICAgbGFzdFNlbGVjdGVkTGluZSA9
IGN1cnI7CisgICAgICAgIGxhc3RTZWxlY3RlZExpbmUgPSBsaW5lOwogICAgIH0KIAogICAgIGlm
IChjb250YWluc1N0YXJ0ICYmICFsYXN0U2VsZWN0ZWRMaW5lKQogICAgICAgICAvLyBWaXNpYmxl
U2VsZWN0aW9uIG11c3Qgc3RhcnQganVzdCBhZnRlciBvdXIgbGFzdCBsaW5lLgotICAgICAgICBs
YXN0U2VsZWN0ZWRMaW5lID0gbGFzdFJvb3RCb3goKTsKKyAgICAgICAgbGFzdFNlbGVjdGVkTGlu
ZSA9IExheW91dEludGVncmF0aW9uOjpsYXN0TGluZUZvcigqdGhpcyk7CiAKICAgICBpZiAobGFz
dFNlbGVjdGVkTGluZSAmJiBzZWxlY3Rpb25TdGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpFbmQg
JiYgc2VsZWN0aW9uU3RhdGUoKSAhPSBIaWdobGlnaHRTdGF0ZTo6Qm90aCkgewogICAgICAgICAv
LyBVcGRhdGUgb3VyIGxhc3RZIHRvIGJlIHRoZSBib3R0b20gb2YgdGhlIGxhc3Qgc2VsZWN0ZWQg
bGluZS4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438596</attachid>
            <date>2021-09-19 08:47:36 -0700</date>
            <delta_ts>2021-09-19 09:43:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230457-20210919184735.patch</filename>
            <type>text/plain</type>
            <size>18773</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk0Y2I1YjkzYWM4MTll
NGM3NzM5ZGNlMmNlZWU3YmY2NzA3NmI0ZC4uMTY3YTFhZjIwYjEzOGNhMjI2ZmVhNDM2NmRjYzZm
N2M5NWQ3OWI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA5LTE5ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlv
bl0gTWFrZSBibG9jayBzZWxlY3Rpb24gZ2FwIHBhaW50aW5nIHVzZSBpdGVyYXRvcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNDU3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxhbiBCdWp0YXMuCisKKyAgICAgICAgTWFrZSB0aGUgY29kZSBub3Qg
ZGVwZW5kIG9uIGxlZ2FjeSBpbmxpbmUgYm94ZXMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvTGVn
YWN5Um9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSb290SW5saW5l
Qm94OjpsaW5lU2VsZWN0aW9uR2FwKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvTGVn
YWN5Um9vdElubGluZUJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9naWNhbExlZnRTZWxlY3Rpb25HYXAp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdodFNlbGVjdGlvbkdh
cCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OmlubGluZVNlbGVjdGlvbkdhcHMpOgorCiAyMDIxLTA5LTE5ICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUGFpbnQgTEZD
IHRleHQgcnVucyB3aXRoIFRleHRCb3hQYWludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAKaW5kZXggNjZhMTI4MmZhYzNmMGQ4ZDBlNjI4
ZmJhZjk0N2QxYWNlMzYwNmM0YS4uN2JiMzVmNTljMzgyNmVjOTM2YWNlMGJhYjQ4ODE3MDRjZTAx
YWU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxp
bmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5l
Qm94LmNwcApAQCAtNDI4LDYwICs0MjgsNiBAQCBMYXlvdXRVbml0IExlZ2FjeVJvb3RJbmxpbmVC
b3g6OmxpbmVTbmFwQWRqdXN0bWVudChMYXlvdXRVbml0IGRlbHRhKSBjb25zdAogICAgIHJldHVy
biBsaW5lU25hcEFkanVzdG1lbnQobmV3UGFnZUxvZ2ljYWxUb3AgLSAoYmxvY2tPZmZzZXQgKyBs
aW5lQm94VG9wKCkpKTsKIH0KIAotR2FwUmVjdHMgTGVnYWN5Um9vdElubGluZUJveDo6bGluZVNl
bGVjdGlvbkdhcChSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRQb2ludCYgcm9v
dEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3RC
bG9jaywKLSAgICBMYXlvdXRVbml0IHNlbFRvcCwgTGF5b3V0VW5pdCBzZWxIZWlnaHQsIGNvbnN0
IExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMmIGNhY2hlLCBjb25zdCBQYWludEluZm8qIHBh
aW50SW5mbykKLXsKLSAgICBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIGxpbmVTdGF0ZSA9
IHNlbGVjdGlvblN0YXRlKCk7Ci0KLSAgICBib29sIGxlZnRHYXAsIHJpZ2h0R2FwOwotICAgIGJs
b2NrRmxvdygpLmdldFNlbGVjdGlvbkdhcEluZm8obGluZVN0YXRlLCBsZWZ0R2FwLCByaWdodEdh
cCk7Ci0KLSAgICBHYXBSZWN0cyByZXN1bHQ7Ci0KLSAgICBhdXRvKiBmaXJzdEJveCA9IGZpcnN0
U2VsZWN0ZWRCb3goKTsKLSAgICBhdXRvKiBsYXN0Qm94ID0gbGFzdFNlbGVjdGVkQm94KCk7Ci0g
ICAgaWYgKGxlZnRHYXApIHsKLSAgICAgICAgcmVzdWx0LnVuaXRlTGVmdChibG9ja0Zsb3coKS5s
b2dpY2FsTGVmdFNlbGVjdGlvbkdhcChyb290QmxvY2ssIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRp
b24sIG9mZnNldEZyb21Sb290QmxvY2ssICZmaXJzdEJveC0+cGFyZW50KCktPnJlbmRlcmVyKCks
IExheW91dFVuaXQoZmlyc3RCb3gtPmxvZ2ljYWxMZWZ0KCkpLAotICAgICAgICAgICAgc2VsVG9w
LCBzZWxIZWlnaHQsIGNhY2hlLCBwYWludEluZm8pKTsKLSAgICB9Ci0gICAgaWYgKHJpZ2h0R2Fw
KSB7Ci0gICAgICAgIHJlc3VsdC51bml0ZVJpZ2h0KGJsb2NrRmxvdygpLmxvZ2ljYWxSaWdodFNl
bGVjdGlvbkdhcChyb290QmxvY2ssIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIG9mZnNldEZy
b21Sb290QmxvY2ssICZsYXN0Qm94LT5wYXJlbnQoKS0+cmVuZGVyZXIoKSwgTGF5b3V0VW5pdChs
YXN0Qm94LT5sb2dpY2FsUmlnaHQoKSksCi0gICAgICAgICAgICBzZWxUb3AsIHNlbEhlaWdodCwg
Y2FjaGUsIHBhaW50SW5mbykpOwotICAgIH0KLQotICAgIC8vIFdoZW4gZGVhbGluZyB3aXRoIGJp
ZGkgdGV4dCwgYSBub24tY29udGlndW91cyBzZWxlY3Rpb24gcmVnaW9uIGlzIHBvc3NpYmxlLgot
ICAgIC8vIGUuZy4gVGhlIGxvZ2ljYWwgdGV4dCBhYWFBQUFiYmIgKGNhcGl0YWxzIGRlbm90ZSBS
VEwgdGV4dCBhbmQgbm9uLWNhcGl0YWxzIExUUikgaXMgbGF5ZWQgb3V0Ci0gICAgLy8gdmlzdWFs
bHkgYXMgMyB0ZXh0IHJ1bnMgfGFhYXxiYmJ8QUFBfCBpZiB3ZSBzZWxlY3QgNCBjaGFyYWN0ZXJz
IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHRoZQotICAgIC8vIHNlbGVjdGlvbiB3aWxsIGxv
b2sgbGlrZSAodW5kZXJsaW5lIGRlbm90ZXMgc2VsZWN0aW9uKToKLSAgICAvLyB8YWFhfGJiYnxB
QUF8Ci0gICAgLy8gIF9fXyAgICAgICBfCi0gICAgLy8gV2UgY2FuIHNlZSB0aGF0IHRoZSB8YmJi
fCBydW4gaXMgbm90IHBhcnQgb2YgdGhlIHNlbGVjdGlvbiB3aGlsZSB0aGUgcnVucyBhcm91bmQg
aXQgYXJlLgotICAgIGlmIChmaXJzdEJveCAmJiBmaXJzdEJveCAhPSBsYXN0Qm94KSB7Ci0gICAg
ICAgIC8vIE5vdyBmaWxsIGluIGFueSBnYXBzIG9uIHRoZSBsaW5lIHRoYXQgb2NjdXJyZWQgYmV0
d2VlbiB0d28gc2VsZWN0ZWQgZWxlbWVudHMuCi0gICAgICAgIExheW91dFVuaXQgbGFzdExvZ2lj
YWxMZWZ0IHsgZmlyc3RCb3gtPmxvZ2ljYWxSaWdodCgpIH07Ci0gICAgICAgIGJvb2wgaXNQcmV2
aW91c0JveFNlbGVjdGVkID0gZmlyc3RCb3gtPnNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2Jq
ZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZTsKLSAgICAgICAgZm9yIChhdXRvKiBib3ggPSBmaXJz
dEJveC0+bmV4dExlYWZPbkxpbmUoKTsgYm94OyBib3ggPSBib3gtPm5leHRMZWFmT25MaW5lKCkp
IHsKLSAgICAgICAgICAgIGlmIChib3gtPnNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2JqZWN0
OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZSkgewotICAgICAgICAgICAgICAgIExheW91dFJlY3QgbG9n
aWNhbFJlY3QgeyBsYXN0TG9naWNhbExlZnQsIHNlbFRvcCwgTGF5b3V0VW5pdChib3gtPmxvZ2lj
YWxMZWZ0KCkgLSBsYXN0TG9naWNhbExlZnQpLCBzZWxIZWlnaHQgfTsKLSAgICAgICAgICAgICAg
ICBsb2dpY2FsUmVjdC5tb3ZlKHJlbmRlcmVyKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/
IG9mZnNldEZyb21Sb290QmxvY2sgOiBMYXlvdXRTaXplKG9mZnNldEZyb21Sb290QmxvY2suaGVp
Z2h0KCksIG9mZnNldEZyb21Sb290QmxvY2sud2lkdGgoKSkpOwotICAgICAgICAgICAgICAgIExh
eW91dFJlY3QgZ2FwUmVjdCA9IHJvb3RCbG9jay5sb2dpY2FsUmVjdFRvUGh5c2ljYWxSZWN0KHJv
b3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIGxvZ2ljYWxSZWN0KTsKLSAgICAgICAgICAgICAgICBp
ZiAoaXNQcmV2aW91c0JveFNlbGVjdGVkICYmIGdhcFJlY3Qud2lkdGgoKSA+IDAgJiYgZ2FwUmVj
dC5oZWlnaHQoKSA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHBhaW50SW5mbyAmJiBi
b3gtPnBhcmVudCgpLT5yZW5kZXJlcigpLnN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZpc2liaWxp
dHk6OlZpc2libGUpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYWludEluZm8tPmNvbnRleHQo
KS5maWxsUmVjdChnYXBSZWN0LCBib3gtPnBhcmVudCgpLT5yZW5kZXJlcigpLnNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcigpKTsKLSAgICAgICAgICAgICAgICAgICAgLy8gVmlzaWJsZVNlbGVjdGlv
biBtYXkgYmUgbm9uLWNvbnRpZ3VvdXMsIHNlZSBjb21tZW50IGFib3ZlLgotICAgICAgICAgICAg
ICAgICAgICByZXN1bHQudW5pdGVDZW50ZXIoZ2FwUmVjdCk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIGxhc3RMb2dpY2FsTGVmdCA9IGJveC0+bG9naWNhbFJpZ2h0KCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYm94ID09IGxhc3RCb3gpCi0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBpc1ByZXZpb3VzQm94U2VsZWN0ZWQgPSBib3gtPnNl
bGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZTsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIFJlbmRlck9iamVjdDo6
SGlnaGxpZ2h0U3RhdGUgTGVnYWN5Um9vdElubGluZUJveDo6c2VsZWN0aW9uU3RhdGUoKSBjb25z
dAogewogICAgIC8vIFdhbGsgb3ZlciBhbGwgb2YgdGhlIHNlbGVjdGVkIGJveGVzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmgKaW5kZXggMWE1YTdh
YmJmYTkyYWEzODYyOTg4NGQ2YjFmNzU2OGNjNmYzNDdkYy4uYzI1OTQ0MDkxNDVlNWRhMzczY2Vj
YzIzY2IxN2E0ODU0NWI0MTQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xlZ2FjeVJvb3RJbmxpbmVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVn
YWN5Um9vdElubGluZUJveC5oCkBAIC0xMzAsOSArMTMwLDYgQEAgcHVibGljOgogICAgIGNvbnN0
IExlZ2FjeUlubGluZUJveCogZmlyc3RTZWxlY3RlZEJveCgpIGNvbnN0OwogICAgIGNvbnN0IExl
Z2FjeUlubGluZUJveCogbGFzdFNlbGVjdGVkQm94KCkgY29uc3Q7CiAKLSAgICBHYXBSZWN0cyBs
aW5lU2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrJiByb290QmxvY2ssIGNvbnN0IExheW91dFBvaW50
JiByb290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9t
Um9vdEJsb2NrLAotICAgICAgICBMYXlvdXRVbml0IHNlbFRvcCwgTGF5b3V0VW5pdCBzZWxIZWln
aHQsIGNvbnN0IExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMmLCBjb25zdCBQYWludEluZm8q
KTsKLQogICAgIHVzaW5nIENsZWFuTGluZUZsb2F0TGlzdCA9IFZlY3RvcjxXZWFrUHRyPFJlbmRl
ckJveD4+OwogICAgIHZvaWQgYXBwZW5kRmxvYXQoUmVuZGVyQm94JiBmbG9hdGluZ0JveCkKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBlNzY1ZGYw
NzRiMmY3OTg5NjVmYTZmZWRhYjczNDJhODkwN2E5NDM1Li4wNGIxMjk3NDRkZjFhYWM3YWU2ODUy
NWY2YjI2ODEwYTVlNWUwYzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKQEAgLTE2ODEsOCArMTY4MSw3IEBAIExheW91dFJlY3QgUmVuZGVyQmxvY2s6OmJsb2Nr
U2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrJiByb290QmxvY2ssIGNvbnN0IExheW91dFBvCiAgICAg
cmV0dXJuIGdhcFJlY3Q7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0
U2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrJiByb290QmxvY2ssIGNvbnN0IExheW91dFBvaW50JiBy
b290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9v
dEJsb2NrLAotICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiBzZWxPYmosIExheW91dFVuaXQgbG9n
aWNhbExlZnQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
LCBjb25zdCBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzJiBjYWNoZSwgY29uc3QgUGFpbnRJ
bmZvKiBwYWludEluZm8pCitMYXlvdXRSZWN0IFJlbmRlckJsb2NrOjpsb2dpY2FsTGVmdFNlbGVj
dGlvbkdhcChSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRQb2ludCYgcm9vdEJs
b2NrUGh5c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3RCbG9j
aywgUmVuZGVyRWxlbWVudCogc2VsT2JqLCBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBMYXlvdXRV
bml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgY29uc3QgTG9naWNhbFNl
bGVjdGlvbk9mZnNldENhY2hlcyYgY2FjaGUsIGNvbnN0IFBhaW50SW5mbyogcGFpbnRJbmZvKQog
ewogICAgIExheW91dFVuaXQgcm9vdEJsb2NrTG9naWNhbFRvcCA9IGJsb2NrRGlyZWN0aW9uT2Zm
c2V0KHJvb3RCbG9jaywgb2Zmc2V0RnJvbVJvb3RCbG9jaykgKyBsb2dpY2FsVG9wOwogICAgIExh
eW91dFVuaXQgcm9vdEJsb2NrTG9naWNhbExlZnQgPSBzdGQ6Om1heChsb2dpY2FsTGVmdFNlbGVj
dGlvbk9mZnNldChyb290QmxvY2ssIGxvZ2ljYWxUb3AsIGNhY2hlKSwgbG9naWNhbExlZnRTZWxl
Y3Rpb25PZmZzZXQocm9vdEJsb2NrLCBsb2dpY2FsVG9wICsgbG9naWNhbEhlaWdodCwgY2FjaGUp
KTsKQEAgLTE2OTgsOCArMTY5Nyw3IEBAIExheW91dFJlY3QgUmVuZGVyQmxvY2s6OmxvZ2ljYWxM
ZWZ0U2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrJiByb290QmxvY2ssIGNvbnN0IExhCiAgICAgcmV0
dXJuIGdhcFJlY3Q7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdodFNl
bGVjdGlvbkdhcChSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRQb2ludCYgcm9v
dEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3RC
bG9jaywKLSAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogc2VsT2JqLCBMYXlvdXRVbml0IGxvZ2lj
YWxSaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQs
IGNvbnN0IExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMmIGNhY2hlLCBjb25zdCBQYWludElu
Zm8qIHBhaW50SW5mbykKK0xheW91dFJlY3QgUmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdodFNlbGVj
dGlvbkdhcChSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRQb2ludCYgcm9vdEJs
b2NrUGh5c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3RCbG9j
aywgUmVuZGVyRWxlbWVudCogc2VsT2JqLCBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodCwgTGF5b3V0
VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIGNvbnN0IExvZ2ljYWxT
ZWxlY3Rpb25PZmZzZXRDYWNoZXMmIGNhY2hlLCBjb25zdCBQYWludEluZm8qIHBhaW50SW5mbykK
IHsKICAgICBMYXlvdXRVbml0IHJvb3RCbG9ja0xvZ2ljYWxUb3AgPSBibG9ja0RpcmVjdGlvbk9m
ZnNldChyb290QmxvY2ssIG9mZnNldEZyb21Sb290QmxvY2spICsgbG9naWNhbFRvcDsKICAgICBM
YXlvdXRVbml0IHJvb3RCbG9ja0xvZ2ljYWxMZWZ0ID0gc3RkOjptYXgoaW5saW5lRGlyZWN0aW9u
T2Zmc2V0KHJvb3RCbG9jaywgb2Zmc2V0RnJvbVJvb3RCbG9jaykgKyBsb2dpY2FsUmlnaHQsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IGZjZmFmYWY2Mjk2N2MzYTYz
YWRhMGJjMDJhNTQ1YzdkYmJjMTEwZGQuLmU4ZGFiNDc4N2Q2MDJiOTA5MDdjNDg0ZTdhZDEzODgw
MTg0MzQwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0xNzMs
MTAgKzE3Myw4IEBAIHB1YmxpYzoKICAgICBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2lu
dChjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0IFJlbmRlckZyYWdtZW50Q29udGFpbmVyKikgb3Zl
cnJpZGU7CiAKICAgICBHYXBSZWN0cyBzZWxlY3Rpb25HYXBSZWN0c0ZvclJlcGFpbnQoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7Ci0gICAgTGF5b3V0UmVj
dCBsb2dpY2FsTGVmdFNlbGVjdGlvbkdhcChSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBM
YXlvdXRQb2ludCYgcm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYg
b2Zmc2V0RnJvbVJvb3RCbG9jaywKLSAgICAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHNlbE9i
aiwgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRV
bml0IGxvZ2ljYWxIZWlnaHQsIGNvbnN0IExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMmLCBj
b25zdCBQYWludEluZm8qKTsKLSAgICBMYXlvdXRSZWN0IGxvZ2ljYWxSaWdodFNlbGVjdGlvbkdh
cChSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRQb2ludCYgcm9vdEJsb2NrUGh5
c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3RCbG9jaywKLSAg
ICAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHNlbE9iaiwgTGF5b3V0VW5pdCBsb2dpY2FsUmln
aHQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBjb25z
dCBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzJiwgY29uc3QgUGFpbnRJbmZvKik7CisgICAg
TGF5b3V0UmVjdCBsb2dpY2FsTGVmdFNlbGVjdGlvbkdhcChSZW5kZXJCbG9jayYgcm9vdEJsb2Nr
LCBjb25zdCBMYXlvdXRQb2ludCYgcm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5
b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3RCbG9jaywgUmVuZGVyRWxlbWVudCogc2VsT2JqLCBMYXlv
dXRVbml0IGxvZ2ljYWxMZWZ0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9n
aWNhbEhlaWdodCwgY29uc3QgTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcyYsIGNvbnN0IFBh
aW50SW5mbyopOworICAgIExheW91dFJlY3QgbG9naWNhbFJpZ2h0U2VsZWN0aW9uR2FwKFJlbmRl
ckJsb2NrJiByb290QmxvY2ssIGNvbnN0IExheW91dFBvaW50JiByb290QmxvY2tQaHlzaWNhbFBv
c2l0aW9uLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdEJsb2NrLCBSZW5kZXJFbGVt
ZW50KiBzZWxPYmosIExheW91dFVuaXQgbG9naWNhbFJpZ2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxU
b3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgY29uc3QgTG9naWNhbFNlbGVjdGlvbk9mZnNl
dENhY2hlcyYsIGNvbnN0IFBhaW50SW5mbyopOwogICAgIHZvaWQgZ2V0U2VsZWN0aW9uR2FwSW5m
byhIaWdobGlnaHRTdGF0ZSwgYm9vbCYgbGVmdEdhcCwgYm9vbCYgcmlnaHRHYXApOwogICAgIGJv
b2wgaXNTZWxlY3Rpb25Sb290KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggNmFjNmI5ZmI5YmQyYjE4ZjUyYTQzYWFjOTYyZWNl
NTc3NTFhZDM3ZS4uNzlmNzI3NmUyN2ZiMzVmODNkZmNlZTlkYzNmNmQwNmYwODZmNDkwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTMyNzQs
OCArMzI3NCw2IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RTZWxlY3Rpb25U
b3BGb3JQcmVjZWRpbmdCbG9jayhMYXlvdXRVbml0IHRvcCkKIEdhcFJlY3RzIFJlbmRlckJsb2Nr
Rmxvdzo6aW5saW5lU2VsZWN0aW9uR2FwcyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBM
YXlvdXRQb2ludCYgcm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYg
b2Zmc2V0RnJvbVJvb3RCbG9jaywKICAgICBMYXlvdXRVbml0JiBsYXN0TG9naWNhbFRvcCwgTGF5
b3V0VW5pdCYgbGFzdExvZ2ljYWxMZWZ0LCBMYXlvdXRVbml0JiBsYXN0TG9naWNhbFJpZ2h0LCBj
b25zdCBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzJiBjYWNoZSwgY29uc3QgUGFpbnRJbmZv
KiBwYWludEluZm8pCiB7Ci0gICAgR2FwUmVjdHMgcmVzdWx0OwotCiAgICAgYm9vbCBjb250YWlu
c1N0YXJ0ID0gc2VsZWN0aW9uU3RhdGUoKSA9PSBIaWdobGlnaHRTdGF0ZTo6U3RhcnQgfHwgc2Vs
ZWN0aW9uU3RhdGUoKSA9PSBIaWdobGlnaHRTdGF0ZTo6Qm90aDsKIAogICAgIGlmICghaGFzTGlu
ZXMoKSkgewpAQCAtMzI4NSw3MCArMzI4Myw5NCBAQCBHYXBSZWN0cyBSZW5kZXJCbG9ja0Zsb3c6
OmlubGluZVNlbGVjdGlvbkdhcHMoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29uc3QgTGF5bwog
ICAgICAgICAgICAgbGFzdExvZ2ljYWxMZWZ0ID0gbG9naWNhbExlZnRTZWxlY3Rpb25PZmZzZXQo
cm9vdEJsb2NrLCBsb2dpY2FsSGVpZ2h0KCksIGNhY2hlKTsKICAgICAgICAgICAgIGxhc3RMb2dp
Y2FsUmlnaHQgPSBsb2dpY2FsUmlnaHRTZWxlY3Rpb25PZmZzZXQocm9vdEJsb2NrLCBsb2dpY2Fs
SGVpZ2h0KCksIGNhY2hlKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIGF1dG8gaGFzU2VsZWN0ZWRDaGlsZHJlbiA9
IFsmXShjb25zdCBMZWdhY3lSb290SW5saW5lQm94JiByb290KSB7Ci0gICAgICAgIGZvciAoYXV0
byogYm94ID0gcm9vdC5maXJzdExlYWZEZXNjZW5kYW50KCk7IGJveDsgYm94ID0gYm94LT5uZXh0
TGVhZk9uTGluZSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWlzPExlZ2FjeUlubGluZVRleHRCb3g+
KCpib3gpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGJveC0+c2VsZWN0aW9uU3RhdGUoKSAhPSBI
aWdobGlnaHRTdGF0ZTo6Tm9uZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9CisgICAgYXV0byBoYXNTZWxl
Y3RlZENoaWxkcmVuID0gWyZdKGNvbnN0IExheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3Im
IGxpbmUpIHsKKyAgICAgICAgcmV0dXJuIGxpbmUtPnNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVy
T2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZTsKKyAgICB9OwogCi0gICAgICAgICAgICBhdXRv
IHN0YXJ0ID0gdmlldygpLnNlbGVjdGlvbigpLnN0YXJ0T2Zmc2V0KCk7Ci0gICAgICAgICAgICBh
dXRvIGVuZCA9IHZpZXcoKS5zZWxlY3Rpb24oKS5lbmRPZmZzZXQoKTsKKyAgICBhdXRvIGxpbmVT
ZWxlY3Rpb25HYXAgPSBbJl0oY29uc3QgTGF5b3V0SW50ZWdyYXRpb246OkxpbmVJdGVyYXRvciYg
bGluZSwgTGF5b3V0VW5pdCBzZWxUb3AsIExheW91dFVuaXQgc2VsSGVpZ2h0KSAtPiBHYXBSZWN0
cyB7CisgICAgICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgbGluZVN0YXRlID0gbGlu
ZS0+c2VsZWN0aW9uU3RhdGUoKTsKIAotICAgICAgICAgICAgYXV0byYgdGV4dEJveCA9IGRvd25j
YXN0PExlZ2FjeUlubGluZVRleHRCb3g+KCpib3gpOwotICAgICAgICAgICAgc3dpdGNoICh0ZXh0
Qm94LnJlbmRlcmVyKCkuc2VsZWN0aW9uU3RhdGUoKSkgewotICAgICAgICAgICAgY2FzZSBSZW5k
ZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpOb25lOgotICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgY2FzZSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpJbnNpZGU6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICBjYXNlIFJlbmRlck9i
amVjdDo6SGlnaGxpZ2h0U3RhdGU6OlN0YXJ0OgotICAgICAgICAgICAgICAgIGVuZCA9IHRleHRC
b3gucmVuZGVyZXIoKS50ZXh0KCkubGVuZ3RoKCk7Ci0gICAgICAgICAgICAgICAgLy8gdG8gaGFu
ZGxlIHNlbGVjdGlvbiBmcm9tIGVuZCBvZiB0ZXh0IHRvIGVuZCBvZiBsaW5lCi0gICAgICAgICAg
ICAgICAgaWYgKHN0YXJ0ICYmIHN0YXJ0ID09IGVuZCkKLSAgICAgICAgICAgICAgICAgICAgc3Rh
cnQgPSBlbmQgLSAxOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBS
ZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpFbmQ6Ci0gICAgICAgICAgICAgICAgc3RhcnQg
PSAwOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBSZW5kZXJPYmpl
Y3Q6OkhpZ2hsaWdodFN0YXRlOjpCb3RoOgotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBib29sIGxlZnRHYXAsIHJpZ2h0R2FwOworICAgICAgICBnZXRTZWxlY3Rpb25HYXBJbmZvKGxp
bmVTdGF0ZSwgbGVmdEdhcCwgcmlnaHRHYXApOworCisgICAgICAgIEdhcFJlY3RzIHJlc3VsdDsK
KworICAgICAgICBhdXRvIGZpcnN0Qm94ID0gbGluZS0+Zmlyc3RTZWxlY3RlZEJveCgpOworICAg
ICAgICBhdXRvIGxhc3RCb3ggPSBsaW5lLT5sYXN0U2VsZWN0ZWRCb3goKTsKKworICAgICAgICBp
ZiAobGVmdEdhcCkgeworICAgICAgICAgICAgcmVzdWx0LnVuaXRlTGVmdChsb2dpY2FsTGVmdFNl
bGVjdGlvbkdhcChyb290QmxvY2ssIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIG9mZnNldEZy
b21Sb290QmxvY2ssIGZpcnN0Qm94LT5yZW5kZXJlcigpLnBhcmVudCgpLCBMYXlvdXRVbml0KGZp
cnN0Qm94LT5sb2dpY2FsTGVmdCgpKSwKKyAgICAgICAgICAgICAgICBzZWxUb3AsIHNlbEhlaWdo
dCwgY2FjaGUsIHBhaW50SW5mbykpOworICAgICAgICB9CisgICAgICAgIGlmIChyaWdodEdhcCkg
eworICAgICAgICAgICAgcmVzdWx0LnVuaXRlUmlnaHQobG9naWNhbFJpZ2h0U2VsZWN0aW9uR2Fw
KHJvb3RCbG9jaywgcm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgb2Zmc2V0RnJvbVJvb3RCbG9j
aywgbGFzdEJveC0+cmVuZGVyZXIoKS5wYXJlbnQoKSwgTGF5b3V0VW5pdChsYXN0Qm94LT5sb2dp
Y2FsUmlnaHQoKSksCisgICAgICAgICAgICAgICAgc2VsVG9wLCBzZWxIZWlnaHQsIGNhY2hlLCBw
YWludEluZm8pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdoZW4gZGVhbGluZyB3aXRoIGJp
ZGkgdGV4dCwgYSBub24tY29udGlndW91cyBzZWxlY3Rpb24gcmVnaW9uIGlzIHBvc3NpYmxlLgor
ICAgICAgICAvLyBlLmcuIFRoZSBsb2dpY2FsIHRleHQgYWFhQUFBYmJiIChjYXBpdGFscyBkZW5v
dGUgUlRMIHRleHQgYW5kIG5vbi1jYXBpdGFscyBMVFIpIGlzIGxheWVkIG91dAorICAgICAgICAv
LyB2aXN1YWxseSBhcyAzIHRleHQgcnVucyB8YWFhfGJiYnxBQUF8IGlmIHdlIHNlbGVjdCA0IGNo
YXJhY3RlcnMgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHRleHQgdGhlCisgICAgICAgIC8vIHNlbGVj
dGlvbiB3aWxsIGxvb2sgbGlrZSAodW5kZXJsaW5lIGRlbm90ZXMgc2VsZWN0aW9uKToKKyAgICAg
ICAgLy8gfGFhYXxiYmJ8QUFBfAorICAgICAgICAvLyAgX19fICAgICAgIF8KKyAgICAgICAgLy8g
V2UgY2FuIHNlZSB0aGF0IHRoZSB8YmJifCBydW4gaXMgbm90IHBhcnQgb2YgdGhlIHNlbGVjdGlv
biB3aGlsZSB0aGUgcnVucyBhcm91bmQgaXQgYXJlLgorICAgICAgICBpZiAoZmlyc3RCb3ggJiYg
Zmlyc3RCb3ggIT0gbGFzdEJveCkgeworICAgICAgICAgICAgLy8gTm93IGZpbGwgaW4gYW55IGdh
cHMgb24gdGhlIGxpbmUgdGhhdCBvY2N1cnJlZCBiZXR3ZWVuIHR3byBzZWxlY3RlZCBlbGVtZW50
cy4KKyAgICAgICAgICAgIExheW91dFVuaXQgbGFzdExvZ2ljYWxMZWZ0IHsgZmlyc3RCb3gtPmxv
Z2ljYWxSaWdodCgpIH07CisgICAgICAgICAgICBib29sIGlzUHJldmlvdXNCb3hTZWxlY3RlZCA9
IGZpcnN0Qm94LT5zZWxlY3Rpb25TdGF0ZSgpICE9IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3Rh
dGU6Ok5vbmU7CisgICAgICAgICAgICBmb3IgKGF1dG8gYm94ID0gZmlyc3RCb3g7IGJveDsgYm94
LnRyYXZlcnNlTmV4dE9uTGluZSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGJveC0+c2VsZWN0
aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpOb25lKSB7CisgICAg
ICAgICAgICAgICAgICAgIExheW91dFJlY3QgbG9naWNhbFJlY3QgeyBsYXN0TG9naWNhbExlZnQs
IHNlbFRvcCwgTGF5b3V0VW5pdChib3gtPmxvZ2ljYWxMZWZ0KCkgLSBsYXN0TG9naWNhbExlZnQp
LCBzZWxIZWlnaHQgfTsKKyAgICAgICAgICAgICAgICAgICAgbG9naWNhbFJlY3QubW92ZShpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID8gb2Zmc2V0RnJvbVJvb3RCbG9jayA6IExheW91dFNpemUo
b2Zmc2V0RnJvbVJvb3RCbG9jay5oZWlnaHQoKSwgb2Zmc2V0RnJvbVJvb3RCbG9jay53aWR0aCgp
KSk7CisgICAgICAgICAgICAgICAgICAgIExheW91dFJlY3QgZ2FwUmVjdCA9IHJvb3RCbG9jay5s
b2dpY2FsUmVjdFRvUGh5c2ljYWxSZWN0KHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIGxvZ2lj
YWxSZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzUHJldmlvdXNCb3hTZWxlY3RlZCAm
JiBnYXBSZWN0LndpZHRoKCkgPiAwICYmIGdhcFJlY3QuaGVpZ2h0KCkgPiAwKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAocGFpbnRJbmZvICYmIGJveC0+cmVuZGVyZXIoKS5wYXJlbnQo
KS0+c3R5bGUoKS52aXNpYmlsaXR5KCkgPT0gVmlzaWJpbGl0eTo6VmlzaWJsZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYWludEluZm8tPmNvbnRleHQoKS5maWxsUmVjdChnYXBSZWN0
LCBib3gtPnJlbmRlcmVyKCkucGFyZW50KCktPnNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZpc2libGVTZWxlY3Rpb24gbWF5IGJlIG5vbi1j
b250aWd1b3VzLCBzZWUgY29tbWVudCBhYm92ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdC51bml0ZUNlbnRlcihnYXBSZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBsYXN0TG9naWNhbExlZnQgPSBib3gtPmxvZ2ljYWxSaWdodCgpOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYm94ID09IGxhc3RCb3gpCisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGlzUHJldmlvdXNCb3hTZWxl
Y3RlZCA9IGJveC0+c2VsZWN0aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0
YXRlOjpOb25lOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHRleHRCb3guc2VsZWN0
YWJsZVJhbmdlKCkuaW50ZXJzZWN0cyhzdGFydCwgZW5kKSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9OwogCi0gICAgTGVnYWN5Um9vdElubGluZUJveCogbGFzdFNlbGVj
dGVkTGluZSA9IDA7Ci0gICAgTGVnYWN5Um9vdElubGluZUJveCogY3VycjsKLSAgICBmb3IgKGN1
cnIgPSBmaXJzdFJvb3RCb3goKTsgY3VyciAmJiAhaGFzU2VsZWN0ZWRDaGlsZHJlbigqY3Vycik7
IGN1cnIgPSBjdXJyLT5uZXh0Um9vdEJveCgpKSB7IH0KKyAgICBMYXlvdXRJbnRlZ3JhdGlvbjo6
TGluZUl0ZXJhdG9yIGxhc3RTZWxlY3RlZExpbmU7CisgICAgTGF5b3V0SW50ZWdyYXRpb246Okxp
bmVJdGVyYXRvciBsaW5lID0gTGF5b3V0SW50ZWdyYXRpb246OmZpcnN0TGluZUZvcigqdGhpcyk7
CisgICAgZm9yICg7IGxpbmUgJiYgIWhhc1NlbGVjdGVkQ2hpbGRyZW4obGluZSk7IGxpbmUudHJh
dmVyc2VOZXh0KCkpIHsgfQorCisgICAgR2FwUmVjdHMgcmVzdWx0OwogCiAgICAgLy8gTm93IHBh
aW50IHRoZSBnYXBzIGZvciB0aGUgbGluZXMuCi0gICAgZm9yICg7IGN1cnIgJiYgaGFzU2VsZWN0
ZWRDaGlsZHJlbigqY3Vycik7IGN1cnIgPSBjdXJyLT5uZXh0Um9vdEJveCgpKSB7Ci0gICAgICAg
IExheW91dFVuaXQgc2VsVG9wID0gIGN1cnItPnNlbGVjdGlvblRvcEFkanVzdGVkRm9yUHJlY2Vk
aW5nQmxvY2soKTsKLSAgICAgICAgTGF5b3V0VW5pdCBzZWxIZWlnaHQgPSBjdXJyLT5zZWxlY3Rp
b25IZWlnaHRBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKCk7CisgICAgZm9yICg7IGxpbmUgJiYg
aGFzU2VsZWN0ZWRDaGlsZHJlbihsaW5lKTsgbGluZS50cmF2ZXJzZU5leHQoKSkgeworICAgICAg
ICBMYXlvdXRVbml0IHNlbFRvcCA9ICBsaW5lLT5zZWxlY3Rpb25Ub3BBZGp1c3RlZEZvclByZWNl
ZGluZ0Jsb2NrKCk7CisgICAgICAgIExheW91dFVuaXQgc2VsSGVpZ2h0ID0gbGluZS0+c2VsZWN0
aW9uSGVpZ2h0QWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpOwogCiAgICAgICAgIGlmICghY29u
dGFpbnNTdGFydCAmJiAhbGFzdFNlbGVjdGVkTGluZSAmJgogICAgICAgICAgICAgc2VsZWN0aW9u
U3RhdGUoKSAhPSBIaWdobGlnaHRTdGF0ZTo6U3RhcnQgJiYgc2VsZWN0aW9uU3RhdGUoKSAhPSBI
aWdobGlnaHRTdGF0ZTo6Qm90aCAmJiAhaXNSdWJ5QmFzZSgpKQogICAgICAgICAgICAgcmVzdWx0
LnVuaXRlQ2VudGVyKGJsb2NrU2VsZWN0aW9uR2FwKHJvb3RCbG9jaywgcm9vdEJsb2NrUGh5c2lj
YWxQb3NpdGlvbiwgb2Zmc2V0RnJvbVJvb3RCbG9jaywgbGFzdExvZ2ljYWxUb3AsIGxhc3RMb2dp
Y2FsTGVmdCwgbGFzdExvZ2ljYWxSaWdodCwgc2VsVG9wLCBjYWNoZSwgcGFpbnRJbmZvKSk7Ci0g
ICAgICAgIAotICAgICAgICBMYXlvdXRSZWN0IGxvZ2ljYWxSZWN0IHsgTGF5b3V0VW5pdChjdXJy
LT5sb2dpY2FsTGVmdCgpKSwgc2VsVG9wLCBMYXlvdXRVbml0KGN1cnItPmxvZ2ljYWxXaWR0aCgp
KSwgc2VsVG9wICsgc2VsSGVpZ2h0IH07CisKKyAgICAgICAgTGF5b3V0UmVjdCBsb2dpY2FsUmVj
dCB7IExheW91dFVuaXQobGluZS0+Y29udGVudExvZ2ljYWxMZWZ0KCkpLCBzZWxUb3AsIExheW91
dFVuaXQobGluZS0+Y29udGVudExvZ2ljYWxXaWR0aCgpKSwgc2VsVG9wICsgc2VsSGVpZ2h0IH07
CiAgICAgICAgIGxvZ2ljYWxSZWN0Lm1vdmUoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG9m
ZnNldEZyb21Sb290QmxvY2sgOiBvZmZzZXRGcm9tUm9vdEJsb2NrLnRyYW5zcG9zZWRTaXplKCkp
OwogICAgICAgICBMYXlvdXRSZWN0IHBoeXNpY2FsUmVjdCA9IHJvb3RCbG9jay5sb2dpY2FsUmVj
dFRvUGh5c2ljYWxSZWN0KHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIGxvZ2ljYWxSZWN0KTsK
ICAgICAgICAgaWYgKCFwYWludEluZm8gfHwgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgJiYg
cGh5c2ljYWxSZWN0LnkoKSA8IHBhaW50SW5mby0+cmVjdC5tYXhZKCkgJiYgcGh5c2ljYWxSZWN0
Lm1heFkoKSA+IHBhaW50SW5mby0+cmVjdC55KCkpCiAgICAgICAgICAgICB8fCAoIWlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgJiYgcGh5c2ljYWxSZWN0LngoKSA8IHBhaW50SW5mby0+cmVjdC5t
YXhYKCkgJiYgcGh5c2ljYWxSZWN0Lm1heFgoKSA+IHBhaW50SW5mby0+cmVjdC54KCkpKQotICAg
ICAgICAgICAgcmVzdWx0LnVuaXRlKGN1cnItPmxpbmVTZWxlY3Rpb25HYXAocm9vdEJsb2NrLCBy
b290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBvZmZzZXRGcm9tUm9vdEJsb2NrLCBzZWxUb3AsIHNl
bEhlaWdodCwgY2FjaGUsIHBhaW50SW5mbykpOworICAgICAgICAgICAgcmVzdWx0LnVuaXRlKGxp
bmVTZWxlY3Rpb25HYXAobGluZSwgc2VsVG9wLCBzZWxIZWlnaHQpKTsKIAotICAgICAgICBsYXN0
U2VsZWN0ZWRMaW5lID0gY3VycjsKKyAgICAgICAgbGFzdFNlbGVjdGVkTGluZSA9IGxpbmU7CiAg
ICAgfQogCiAgICAgaWYgKGNvbnRhaW5zU3RhcnQgJiYgIWxhc3RTZWxlY3RlZExpbmUpCiAgICAg
ICAgIC8vIFZpc2libGVTZWxlY3Rpb24gbXVzdCBzdGFydCBqdXN0IGFmdGVyIG91ciBsYXN0IGxp
bmUuCi0gICAgICAgIGxhc3RTZWxlY3RlZExpbmUgPSBsYXN0Um9vdEJveCgpOworICAgICAgICBs
YXN0U2VsZWN0ZWRMaW5lID0gTGF5b3V0SW50ZWdyYXRpb246Omxhc3RMaW5lRm9yKCp0aGlzKTsK
IAogICAgIGlmIChsYXN0U2VsZWN0ZWRMaW5lICYmIHNlbGVjdGlvblN0YXRlKCkgIT0gSGlnaGxp
Z2h0U3RhdGU6OkVuZCAmJiBzZWxlY3Rpb25TdGF0ZSgpICE9IEhpZ2hsaWdodFN0YXRlOjpCb3Ro
KSB7CiAgICAgICAgIC8vIFVwZGF0ZSBvdXIgbGFzdFkgdG8gYmUgdGhlIGJvdHRvbSBvZiB0aGUg
bGFzdCBzZWxlY3RlZCBsaW5lLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>