<?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>219239</bug_id>
          
          <creation_ts>2020-11-21 15:53:25 -0800</creation_ts>
          <short_desc>[LFC][IFC] Only process floats that fit the current line.</short_desc>
          <delta_ts>2020-11-22 09:46:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</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>1709793</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-11-21 15:53:25 -0800</bug_when>
    <thetext>so every float is &quot;intrusive&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709801</commentid>
    <comment_count>1</comment_count>
      <attachid>414775</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-11-21 17:20:50 -0800</bug_when>
    <thetext>Created attachment 414775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709835</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-22 05:52:47 -0800</bug_when>
    <thetext>Committed r270163: &lt;https://trac.webkit.org/changeset/270163&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414775.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709836</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-22 05:53:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/71665086&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709843</commentid>
    <comment_count>4</comment_count>
      <attachid>414775</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-11-22 09:46:19 -0800</bug_when>
    <thetext>Comment on attachment 414775
Patch

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

&gt; Source/WebCore/layout/inlineformatting/InlineLineBuilder.cpp:132
&gt; -        const InlineContentBreaker::ContinuousContent&amp; continuousContent() const { return m_continuousContent; }
&gt; +        const InlineContentBreaker::ContinuousContent&amp; operator()() const { return m_continuousContent; }

This is bit mysterious.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414775</attachid>
            <date>2020-11-21 17:20:50 -0800</date>
            <delta_ts>2020-11-22 05:52:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219239-20201121172049.patch</filename>
            <type>text/plain</type>
            <size>20151</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTc2NjY0YTE1ZTI2MDg4
ZTQzNTFhNDUyNDQwNmQyN2JiOTViMjViZi4uYzAxNTNiNmZkZDdjOWQ4NTYwMWJlZDMwOTZlMjJk
N2E3NjdjODc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTExLTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBPbmx5IHBy
b2Nlc3MgZmxvYXRzIHRoYXQgZml0IHRoZSBjdXJyZW50IGxpbmUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyMzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgdGhhdCB3ZSBwcm9jZXNzIGZsb2F0
cyBhcyBzb2Z0IHdyYXAgb3Bwb3J0dW5pdGllcywgYWxsIHRoZSBpbnRydXNpdmUgbG9naWMgY2Fu
IGJlIHJlbW92ZWQuCisgICAgICAgIEFueSBmbG9hdCB0aGF0IHdlIHB1dCBvbiB0aGUgbGluZSBp
cyBjb25zaWRlcmVkIGludHJ1c2l2ZSBhbmQgc2hyaW5rcyB0aGUgYXZhaWxhYmxlIHNwYWNlLgor
CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dDo6Y29tcHV0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQpOgorICAgICAgICAqIGxheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29udGVudDo6b3BlcmF0b3IoKSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVDYW5kaWRhdGU6OnJlc2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OnBsYWNlSW5saW5lQ29udGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpjb25zdHJhaW50c0ZvckxpbmUpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6Y2FuZGlkYXRlQ29udGVudEZv
ckxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6aGFuZGxlRmxv
YXRPcklubGluZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRl
cjo6cmVidWlsZExpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQ2FuZGlkYXRl
OjpJbmxpbmVDb250ZW50Ojpjb250aW51b3VzQ29udGVudCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVDYW5kaWRhdGU6OkZsb2F0Q29udGVudDo6bGlzdCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVDYW5kaWRhdGU6
OkZsb2F0Q29udGVudDo6aW50cnVzaXZlV2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lQ2FuZGlkYXRlOjpGbG9hdENvbnRlbnQ6OmFwcGVuZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVDYW5kaWRhdGU6OkZsb2F0Q29u
dGVudDo6cmVzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVp
bGRlcjo6bmV4dENvbnRlbnRGb3JMaW5lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZUJ1aWxkZXI6OmNvbW1pdEZsb2F0cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpoYW5kbGVGbG9hdHNBbmRJbmxpbmVDb250ZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVp
bGRlci5oOgorCiAyMDIwLTExLTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0xGQ11bSUZDXSBNb3ZlIGN1cnJlbnQgbG9naWNhbExlZnQgZnJvbSBDb250aW51
b3VzQ29udGVudCB0byBMaW5lU3RhdHVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAKaW5kZXggYjdkMDM5ZDcyNTBjZTQ0NTdmNjM0MWVjODZkNjdmZTBhZmYwNzJmYS4uMmU5ODQ2
ODViMjlkZWYzMGJiZDc2NTI1MzVmNWQ2NzYwZDQ2NTg0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0LmNwcApAQCAtNDE3LDE1ICs0MTcsMTMgQEAgSW5saW5lUmVjdCBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQoY29uc3QgTGlu
ZUJ1aWwKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgYXV0byBmbG9hdGluZ0NvbnRleHQg
PSBGbG9hdGluZ0NvbnRleHQgeyAqdGhpcywgZm9ybWF0dGluZ1N0YXRlLmZsb2F0aW5nU3RhdGUo
KSB9OwogICAgICAgICAvLyBNb3ZlIGZsb2F0cyB0byB0aGVpciBmaW5hbCBwb3NpdGlvbi4KLSAg
ICAgICAgZm9yIChjb25zdCBhdXRvJiBmbG9hdENhbmRpZGF0ZSA6IGxpbmVDb250ZW50LmZsb2F0
cykgewotICAgICAgICAgICAgYXV0byYgZmxvYXRCb3ggPSBmbG9hdENhbmRpZGF0ZS5pdGVtLT5s
YXlvdXRCb3goKTsKLSAgICAgICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ1N0
YXRlLmJveEdlb21ldHJ5KGZsb2F0Qm94KTsKKyAgICAgICAgZm9yIChhdXRvKiBmbG9hdEJveCA6
IGxpbmVDb250ZW50LmZsb2F0cykgeworICAgICAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBm
b3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnkoKmZsb2F0Qm94KTsKICAgICAgICAgICAgIC8vIFNl
dCBzdGF0aWMgcG9zaXRpb24gZmlyc3QuCi0gICAgICAgICAgICBhdXRvIHZlcnRpY2FsU3RhdGlj
UG9zaXRpb24gPSBmbG9hdENhbmRpZGF0ZS5pc0ludHJ1c2l2ZSA/IGxpbmVCb3hMb2dpY2FsUmVj
dC50b3AoKSA6IGxpbmVCb3hMb2dpY2FsUmVjdC5ib3R0b20oKTsKLSAgICAgICAgICAgIGJveEdl
b21ldHJ5LnNldExvZ2ljYWxUb3BMZWZ0KHsgbGluZUJveExvZ2ljYWxSZWN0LmxlZnQoKSwgdmVy
dGljYWxTdGF0aWNQb3NpdGlvbiB9KTsKKyAgICAgICAgICAgIGJveEdlb21ldHJ5LnNldExvZ2lj
YWxUb3BMZWZ0KHsgbGluZUJveExvZ2ljYWxSZWN0LmxlZnQoKSwgbGluZUJveExvZ2ljYWxSZWN0
LnRvcCgpIH0pOwogICAgICAgICAgICAgLy8gRmxvYXQgaXQuCi0gICAgICAgICAgICBib3hHZW9t
ZXRyeS5zZXRMb2dpY2FsVG9wTGVmdChmbG9hdGluZ0NvbnRleHQucG9zaXRpb25Gb3JGbG9hdChm
bG9hdEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKSk7Ci0gICAgICAgICAgICBmbG9hdGluZ0Nv
bnRleHQuYXBwZW5kKGZsb2F0Qm94KTsKKyAgICAgICAgICAgIGJveEdlb21ldHJ5LnNldExvZ2lj
YWxUb3BMZWZ0KGZsb2F0aW5nQ29udGV4dC5wb3NpdGlvbkZvckZsb2F0KCpmbG9hdEJveCwgaG9y
aXpvbnRhbENvbnN0cmFpbnRzKSk7CisgICAgICAgICAgICBmbG9hdGluZ0NvbnRleHQuYXBwZW5k
KCpmbG9hdEJveCk7CiAgICAgICAgIH0KICAgICB9OwogICAgIHVwZGF0ZUZsb2F0R2VvbWV0cnko
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCA2NGNlMGMyZTM3NDBjZDRlZWFlNjRlZjUy
OTI3ZjYwZDg2YWJmOTNmLi41MDcwODEwY2M2NzI3ODMxZDIxN2ExMzgzNTIyZjhiZGFmMTlhMzUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgc3RydWN0IExp
bmVDYW5kaWRhdGUgewogICAgIHN0cnVjdCBJbmxpbmVDb250ZW50IHsKICAgICAgICAgSW5saW5l
Q29udGVudChib29sIGlnbm9yZVRyYWlsaW5nTGV0dGVyU3BhY2luZyk7CiAKLSAgICAgICAgY29u
c3QgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50JiBjb250aW51b3VzQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGludW91c0NvbnRlbnQ7IH0KKyAgICAgICAgY29u
c3QgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50JiBvcGVyYXRvcigpKCkg
Y29uc3QgeyByZXR1cm4gbV9jb250aW51b3VzQ29udGVudDsgfQogICAgICAgICBjb25zdCBJbmxp
bmVJdGVtKiB0cmFpbGluZ0xpbmVCcmVhaygpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdMaW5l
QnJlYWs7IH0KICAgICAgICAgY29uc3QgSW5saW5lSXRlbSogdHJhaWxpbmdXb3JkQnJlYWtPcHBv
cnR1bml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXb3JkQnJlYWtPcHBvcnR1bml0eTsg
fQogCkBAIC0xNDYsMjcgKzE0Niw5IEBAIHN0cnVjdCBMaW5lQ2FuZGlkYXRlIHsKICAgICAgICAg
Y29uc3QgSW5saW5lSXRlbSogbV90cmFpbGluZ1dvcmRCcmVha09wcG9ydHVuaXR5IHsgbnVsbHB0
ciB9OwogICAgIH07CiAKLSAgICBzdHJ1Y3QgRmxvYXRDb250ZW50IHsKLSAgICAgICAgdm9pZCBh
cHBlbmQoY29uc3QgSW5saW5lSXRlbSYgZmxvYXRJdGVtLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2lj
YWxXaWR0aCwgYm9vbCBpc0ludHJ1c2l2ZSk7Ci0KLSAgICAgICAgc3RydWN0IEZsb2F0IHsKLSAg
ICAgICAgICAgIGNvbnN0IElubGluZUl0ZW0qIGl0ZW0geyBudWxscHRyIH07Ci0gICAgICAgICAg
ICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCB7IDAgfTsKLSAgICAgICAgICAgIGJvb2wg
aXNJbnRydXNpdmUgeyB0cnVlIH07Ci0gICAgICAgIH07Ci0gICAgICAgIHVzaW5nIEZsb2F0TGlz
dCA9IFZlY3RvcjxGbG9hdD47Ci0gICAgICAgIGNvbnN0IEZsb2F0TGlzdCYgbGlzdCgpIGNvbnN0
IHsgcmV0dXJuIG1fZmxvYXRMaXN0OyB9Ci0gICAgICAgIElubGluZUxheW91dFVuaXQgaW50cnVz
aXZlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2ludHJ1c2l2ZVdpZHRoOyB9Ci0KLSAgICAgICAg
dm9pZCByZXNldCgpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgRmxvYXRMaXN0IG1fZmxvYXRM
aXN0OwotICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1faW50cnVzaXZlV2lkdGggeyAwIH07Ci0g
ICAgfTsKLSAgICAvLyBDYW5kaWRhdGUgY29udGVudCBpcyBhIGNvbGxlY3Rpb24gb2YgaW5saW5l
IGl0ZW1zIGFuZC9vciBmbG9hdCBib3hlcy4KKyAgICAvLyBDYW5kaWRhdGUgY29udGVudCBpcyBh
IGNvbGxlY3Rpb24gb2YgaW5saW5lIGNvbnRlbnQgb3IgYSBmbG9hdCBib3guCiAgICAgSW5saW5l
Q29udGVudCBpbmxpbmVDb250ZW50OwotICAgIEZsb2F0Q29udGVudCBmbG9hdENvbnRlbnQ7Cisg
ICAgY29uc3QgSW5saW5lSXRlbSogZmxvYXRJdGVtIHsgbnVsbHB0ciB9OwogfTsKIAogTGluZUNh
bmRpZGF0ZTo6TGluZUNhbmRpZGF0ZShib29sIGlnbm9yZVRyYWlsaW5nTGV0dGVyU3BhY2luZykK
QEAgLTIwOSwyMiArMTkxLDkgQEAgaW5saW5lIHZvaWQgTGluZUNhbmRpZGF0ZTo6SW5saW5lQ29u
dGVudDo6cmVzZXQoKQogICAgIG1fdHJhaWxpbmdXb3JkQnJlYWtPcHBvcnR1bml0eSA9IHsgfTsK
IH0KIAotaW5saW5lIHZvaWQgTGluZUNhbmRpZGF0ZTo6RmxvYXRDb250ZW50OjphcHBlbmQoY29u
c3QgSW5saW5lSXRlbSYgZmxvYXRJdGVtLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwg
Ym9vbCBpc0ludHJ1c2l2ZSkKLXsKLSAgICBpZiAoaXNJbnRydXNpdmUpCi0gICAgICAgIG1faW50
cnVzaXZlV2lkdGggKz0gbG9naWNhbFdpZHRoOwotICAgIG1fZmxvYXRMaXN0LmFwcGVuZCh7ICZm
bG9hdEl0ZW0sIGxvZ2ljYWxXaWR0aCwgaXNJbnRydXNpdmUgfSk7Ci19Ci0KLWlubGluZSB2b2lk
IExpbmVDYW5kaWRhdGU6OkZsb2F0Q29udGVudDo6cmVzZXQoKQotewotICAgIG1fZmxvYXRMaXN0
LmNsZWFyKCk7Ci0gICAgbV9pbnRydXNpdmVXaWR0aCA9IHsgfTsKLX0KLQogaW5saW5lIHZvaWQg
TGluZUNhbmRpZGF0ZTo6cmVzZXQoKQogewotICAgIGZsb2F0Q29udGVudC5yZXNldCgpOworICAg
IGZsb2F0SXRlbSA9IG51bGxwdHI7CiAgICAgaW5saW5lQ29udGVudC5yZXNldCgpOwogfQogCkBA
IC0zMTksMTIgKzI4OCwxMiBAQCBMaW5lQnVpbGRlcjo6Q29tbWl0dGVkQ29udGVudCBMaW5lQnVp
bGRlcjo6cGxhY2VJbmxpbmVDb250ZW50KGNvbnN0IElubGluZUl0ZW1SYQogICAgICAgICAvLyAy
LiBBcHBseSBmbG9hdHMgYW5kIHNocmluayB0aGUgYXZhaWxhYmxlIGhvcml6b250YWwgc3BhY2Ug
ZS5nLiA8c3Bhbj5pbnRydV88ZGl2IHN0eWxlPSJmbG9hdDogbGVmdCI+PC9kaXY+c2l2ZV9mbG9h
dDwvc3Bhbj4uCiAgICAgICAgIC8vIDMuIENoZWNrIGlmIHRoZSBjb250ZW50IGZpdHMgdGhlIGxp
bmUgYW5kIGNvbW1pdCB0aGUgY29udGVudCBhY2NvcmRpbmdseSAoZnVsbCwgcGFydGlhbCBvciBu
b3QgY29tbWl0IGF0IGFsbCkuCiAgICAgICAgIC8vIDQuIFJldHVybiBpZiB3ZSBhcmUgYXQgdGhl
IGVuZCBvZiB0aGUgbGluZSBlaXRoZXIgYnkgbm90IGJlaW5nIGFibGUgdG8gZml0IG1vcmUgY29u
dGVudCBvciBiZWNhdXNlIG9mIGFuIGV4cGxpY2l0IGxpbmUgYnJlYWsuCi0gICAgICAgIG5leHRD
b250ZW50Rm9yTGluZShsaW5lQ2FuZGlkYXRlLCBjdXJyZW50SXRlbUluZGV4LCBuZWVkc0xheW91
dFJhbmdlLCBwYXJ0aWFsTGVhZGluZ0NvbnRlbnRMZW5ndGgsIGF2YWlsYWJsZVdpZHRoKCkgKyBt
X2xpbmUudHJpbW1hYmxlVHJhaWxpbmdXaWR0aCgpLCBtX2xpbmUuY29udGVudExvZ2ljYWxXaWR0
aCgpKTsKKyAgICAgICAgY2FuZGlkYXRlQ29udGVudEZvckxpbmUobGluZUNhbmRpZGF0ZSwgY3Vy
cmVudEl0ZW1JbmRleCwgbmVlZHNMYXlvdXRSYW5nZSwgcGFydGlhbExlYWRpbmdDb250ZW50TGVu
Z3RoLCBtX2xpbmUuY29udGVudExvZ2ljYWxXaWR0aCgpKTsKICAgICAgICAgLy8gTm93IGNoZWNr
IGlmIHdlIGNhbiBwdXQgdGhpcyBjb250ZW50IG9uIHRoZSBjdXJyZW50IGxpbmUuCi0gICAgICAg
IGF1dG8gcmVzdWx0ID0gaGFuZGxlRmxvYXRzQW5kSW5saW5lQ29udGVudChpbmxpbmVDb250ZW50
QnJlYWtlciwgbmVlZHNMYXlvdXRSYW5nZSwgbGluZUNhbmRpZGF0ZSk7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gaGFuZGxlRmxvYXRPcklubGluZUNvbnRlbnQoaW5saW5lQ29udGVudEJyZWFrZXIs
IG5lZWRzTGF5b3V0UmFuZ2UsIGxpbmVDYW5kaWRhdGUpOwogICAgICAgICBjb21taXR0ZWRJbmxp
bmVJdGVtQ291bnQgPSByZXN1bHQuY29tbWl0dGVkQ291bnQuaXNSZXZlcnQgPyByZXN1bHQuY29t
bWl0dGVkQ291bnQudmFsdWUgOiBjb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgKyByZXN1bHQuY29t
bWl0dGVkQ291bnQudmFsdWU7CiAgICAgICAgIGF1dG8mIGlubGluZUNvbnRlbnQgPSBsaW5lQ2Fu
ZGlkYXRlLmlubGluZUNvbnRlbnQ7Ci0gICAgICAgIGF1dG8gaW5saW5lQ29udGVudElzRnVsbHlD
b21taXR0ZWQgPSBpbmxpbmVDb250ZW50LmNvbnRpbnVvdXNDb250ZW50KCkucnVucygpLnNpemUo
KSA9PSByZXN1bHQuY29tbWl0dGVkQ291bnQudmFsdWUgJiYgIXJlc3VsdC5wYXJ0aWFsVHJhaWxp
bmdDb250ZW50TGVuZ3RoOworICAgICAgICBhdXRvIGlubGluZUNvbnRlbnRJc0Z1bGx5Q29tbWl0
dGVkID0gaW5saW5lQ29udGVudCgpLnJ1bnMoKS5zaXplKCkgPT0gcmVzdWx0LmNvbW1pdHRlZENv
dW50LnZhbHVlICYmICFyZXN1bHQucGFydGlhbFRyYWlsaW5nQ29udGVudExlbmd0aDsKICAgICAg
ICAgYXV0byBpc0VuZE9mTGluZSA9IHJlc3VsdC5pc0VuZE9mTGluZSA9PSBJbmxpbmVDb250ZW50
QnJlYWtlcjo6SXNFbmRPZkxpbmU6OlllczsKIAogICAgICAgICBpZiAoaW5saW5lQ29udGVudElz
RnVsbHlDb21taXR0ZWQpIHsKQEAgLTM4Niw3ICszNTUsNyBAQCBMaW5lQnVpbGRlcjo6VXNlZENv
bnN0cmFpbnRzIExpbmVCdWlsZGVyOjpjb25zdHJhaW50c0ZvckxpbmUoY29uc3QgSW5saW5lUmVj
dCYgbAogCiAgICAgLy8gQ2hlY2sgZm9yIGludHJ1ZGluZyBmbG9hdHMgYW5kIGFkanVzdCBsb2dp
Y2FsIGxlZnQvYXZhaWxhYmxlIHdpZHRoIGZvciB0aGlzIGxpbmUgYWNjb3JkaW5nbHkuCiAgICAg
aWYgKCFtX2Zsb2F0aW5nQ29udGV4dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciB2YXJpYWJsZSBsaW5lIGhlaWdodCwgd2hlcmUgdGhlIGludHJ1c2l2ZSBm
bG9hdHMgc2hvdWxkIGJlIHByb2JlZCBhcyB0aGUgbGluZSBoZWlnaHQgZ3Jvd3MuCisgICAgICAg
IC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgdmFyaWFibGUgbGluZSBoZWlnaHQsIHdoZXJlIHRo
ZSBmbG9hdHMgc2hvdWxkIGJlIHByb2JlZCBhcyB0aGUgbGluZSBoZWlnaHQgZ3Jvd3MuCiAgICAg
ICAgIGF1dG8gZmxvYXRDb25zdHJhaW50cyA9IG1fZmxvYXRpbmdDb250ZXh0LmNvbnN0cmFpbnRz
KHRvTGF5b3V0VW5pdChsaW5lTG9naWNhbFRvcCksIHRvTGF5b3V0VW5pdChsaW5lTG9naWNhbFRv
cCArIGxpbmVMb2dpY2FsQ29uc3RyYWludHMuaGVpZ2h0KCkpKTsKICAgICAgICAgLy8gQ2hlY2sg
aWYgdGhlc2UgdmFsdWVzIGFjdHVhbGx5IGNvbnN0cmFpbiB0aGUgbGluZS4KICAgICAgICAgaWYg
KGZsb2F0Q29uc3RyYWludHMubGVmdCAmJiBmbG9hdENvbnN0cmFpbnRzLmxlZnQtPnggPD0gbGlu
ZUxvZ2ljYWxMZWZ0KQpAQCAtNDUxLDcgKzQyMCw3IEBAIExpbmVCdWlsZGVyOjpVc2VkQ29uc3Ry
YWludHMgTGluZUJ1aWxkZXI6OmNvbnN0cmFpbnRzRm9yTGluZShjb25zdCBJbmxpbmVSZWN0JiBs
CiAgICAgcmV0dXJuIFVzZWRDb25zdHJhaW50cyB7IGxpbmVMb2dpY2FsTGVmdCwgbGluZUxvZ2lj
YWxSaWdodCAtIGxpbmVMb2dpY2FsTGVmdCwgbGluZUlzQ29uc3RyYWluZWRCeUZsb2F0IH07CiB9
CiAKLXZvaWQgTGluZUJ1aWxkZXI6Om5leHRDb250ZW50Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiBs
aW5lQ2FuZGlkYXRlLCBzaXplX3QgY3VycmVudElubGluZUl0ZW1JbmRleCwgY29uc3QgSW5saW5l
SXRlbVJhbmdlJiBsYXlvdXRSYW5nZSwgc2l6ZV90IHBhcnRpYWxMZWFkaW5nQ29udGVudExlbmd0
aCwgSW5saW5lTGF5b3V0VW5pdCBhdmFpbGFibGVMaW5lV2lkdGgsIElubGluZUxheW91dFVuaXQg
Y3VycmVudExvZ2ljYWxSaWdodCkKK3ZvaWQgTGluZUJ1aWxkZXI6OmNhbmRpZGF0ZUNvbnRlbnRG
b3JMaW5lKExpbmVDYW5kaWRhdGUmIGxpbmVDYW5kaWRhdGUsIHNpemVfdCBjdXJyZW50SW5saW5l
SXRlbUluZGV4LCBjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlLCBzaXplX3QgcGFy
dGlhbExlYWRpbmdDb250ZW50TGVuZ3RoLCBJbmxpbmVMYXlvdXRVbml0IGN1cnJlbnRMb2dpY2Fs
UmlnaHQpCiB7CiAgICAgQVNTRVJUKGN1cnJlbnRJbmxpbmVJdGVtSW5kZXggPCBsYXlvdXRSYW5n
ZS5lbmQpOwogICAgIGxpbmVDYW5kaWRhdGUucmVzZXQoKTsKQEAgLTQ3MiwyMSArNDQxLDE4IEBA
IHZvaWQgTGluZUJ1aWxkZXI6Om5leHRDb250ZW50Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiBsaW5l
Q2FuZGlkYXRlLCBzaXplX3QgY3VycmVuCiAgICAgICAgICsrY3VycmVudElubGluZUl0ZW1JbmRl
eDsKICAgICB9CiAKLSAgICBhdXRvIGFjY3VtdWxhdGVkV2lkdGggPSBJbmxpbmVMYXlvdXRVbml0
IHsgfTsKICAgICBmb3IgKGF1dG8gaW5kZXggPSBjdXJyZW50SW5saW5lSXRlbUluZGV4OyBpbmRl
eCA8IHNvZnRXcmFwT3Bwb3J0dW5pdHlJbmRleDsgKytpbmRleCkgewogICAgICAgICBhdXRvJiBp
bmxpbmVJdGVtID0gbV9pbmxpbmVJdGVtc1tpbmRleF07CiAgICAgICAgIGlmIChpbmxpbmVJdGVt
LmlzRmxvYXQoKSkgewotICAgICAgICAgICAgLy8gRmxvYXRzIGFyZSBub3QgcGFydCBvZiB0aGUg
bGluZSBjb250ZXh0LgotICAgICAgICAgICAgYXV0byBmbG9hdFdpZHRoID0gaW5saW5lSXRlbVdp
ZHRoKGlubGluZUl0ZW0sIHsgfSk7Ci0gICAgICAgICAgICBsaW5lQ2FuZGlkYXRlLmZsb2F0Q29u
dGVudC5hcHBlbmQoaW5saW5lSXRlbSwgZmxvYXRXaWR0aCwgZmxvYXRXaWR0aCA8PSAoYXZhaWxh
YmxlTGluZVdpZHRoIC0gYWNjdW11bGF0ZWRXaWR0aCkpOwotICAgICAgICAgICAgYWNjdW11bGF0
ZWRXaWR0aCArPSBmbG9hdFdpZHRoOworICAgICAgICAgICAgbGluZUNhbmRpZGF0ZS5mbG9hdEl0
ZW0gPSAmaW5saW5lSXRlbTsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBzb2Z0IHdyYXAgb3Bw
b3J0dW5pdHksIG11c3QgYmUgdGhlIG9ubHkgaXRlbSBpbiB0aGUgbGlzdC4KKyAgICAgICAgICAg
IEFTU0VSVChjdXJyZW50SW5saW5lSXRlbUluZGV4ICsgMSA9PSBzb2Z0V3JhcE9wcG9ydHVuaXR5
SW5kZXgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGlu
bGluZUl0ZW0uaXNUZXh0KCkgfHwgaW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0KCkgfHwgaW5s
aW5lSXRlbS5pc0lubGluZUJveEVuZCgpIHx8IGlubGluZUl0ZW0uaXNCb3goKSkgewogICAgICAg
ICAgICAgYXV0byBsb2dpY2FsV2lkdGggPSBpbmxpbmVJdGVtV2lkdGgoaW5saW5lSXRlbSwgY3Vy
cmVudExvZ2ljYWxSaWdodCk7CiAgICAgICAgICAgICBsaW5lQ2FuZGlkYXRlLmlubGluZUNvbnRl
bnQuYXBwZW5kSW5saW5lSXRlbShpbmxpbmVJdGVtLCBsb2dpY2FsV2lkdGgpOwogICAgICAgICAg
ICAgY3VycmVudExvZ2ljYWxSaWdodCArPSBsb2dpY2FsV2lkdGg7Ci0gICAgICAgICAgICBhY2N1
bXVsYXRlZFdpZHRoICs9IGxvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAgICAgICAgIGlmIChpbmxpbmVJdGVtLmlzV29yZEJyZWFrT3Bwb3J0dW5pdHkoKSkg
ewpAQCAtNTU3LDQxICs1MjMsMjQgQEAgc2l6ZV90IExpbmVCdWlsZGVyOjpuZXh0V3JhcE9wcG9y
dHVuaXR5KHNpemVfdCBzdGFydEluZGV4LCBjb25zdCBMaW5lQnVpbGRlcjo6SW4KICAgICByZXR1
cm4gbGF5b3V0UmFuZ2UuZW5kOwogfQogCi12b2lkIExpbmVCdWlsZGVyOjpjb21taXRGbG9hdHMo
Y29uc3QgTGluZUNhbmRpZGF0ZSYgbGluZUNhbmRpZGF0ZSwgQ29tbWl0SW50cnVzaXZlRmxvYXRz
T25seSBjb21taXRJbnRydXNpdmVPbmx5KQorTGluZUJ1aWxkZXI6OlJlc3VsdCBMaW5lQnVpbGRl
cjo6aGFuZGxlRmxvYXRPcklubGluZUNvbnRlbnQoSW5saW5lQ29udGVudEJyZWFrZXImIGlubGlu
ZUNvbnRlbnRCcmVha2VyLCBjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlLCBjb25z
dCBMaW5lQ2FuZGlkYXRlJiBsaW5lQ2FuZGlkYXRlKQogewotICAgIGF1dG8mIGZsb2F0Q29udGVu
dCA9IGxpbmVDYW5kaWRhdGUuZmxvYXRDb250ZW50OwotICAgIGF1dG8gbGVmdEludHJ1c2l2ZUZs
b2F0c1dpZHRoID0gSW5saW5lTGF5b3V0VW5pdCB7IH07Ci0gICAgYXV0byByaWdodEludHJ1c2l2
ZUZsb2F0c1dpZHRoID0gSW5saW5lTGF5b3V0VW5pdCB7IH07Ci0KLSAgICBmb3IgKGF1dG8mIGZs
b2F0Q2FuZGlkYXRlIDogZmxvYXRDb250ZW50Lmxpc3QoKSkgewotICAgICAgICBpZiAoIWZsb2F0
Q2FuZGlkYXRlLmlzSW50cnVzaXZlICYmIGNvbW1pdEludHJ1c2l2ZU9ubHkgPT0gQ29tbWl0SW50
cnVzaXZlRmxvYXRzT25seTo6WWVzKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIG1f
ZmxvYXRzLmFwcGVuZCh7IGZsb2F0Q2FuZGlkYXRlLmlzSW50cnVzaXZlLCBmbG9hdENhbmRpZGF0
ZS5pdGVtIH0pOwotICAgICAgICBpZiAoZmxvYXRDYW5kaWRhdGUuaXNJbnRydXNpdmUpIHsKLSAg
ICAgICAgICAgIG1fY29udGVudElzQ29uc3RyYWluZWRCeUZsb2F0ID0gdHJ1ZTsKLSAgICAgICAg
ICAgIC8vIFRoaXMgZmxvYXQgaXMgaW50cnVzaXZlIGFuZCBpdCBzaHJpbmtzIHRoZSBjdXJyZW50
IGxpbmUuCi0gICAgICAgICAgICAvLyBTaHJpbmsgYXZhaWxhYmxlIHNwYWNlIGZvciBjdXJyZW50
IGxpbmUuCi0gICAgICAgICAgICBpZiAoZmxvYXRDYW5kaWRhdGUuaXRlbS0+bGF5b3V0Qm94KCku
aXNMZWZ0RmxvYXRpbmdQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICAgICAgbGVmdEludHJ1c2l2
ZUZsb2F0c1dpZHRoICs9IGZsb2F0Q2FuZGlkYXRlLmxvZ2ljYWxXaWR0aDsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICByaWdodEludHJ1c2l2ZUZsb2F0c1dpZHRoICs9IGZsb2F0
Q2FuZGlkYXRlLmxvZ2ljYWxXaWR0aDsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAobGVmdElu
dHJ1c2l2ZUZsb2F0c1dpZHRoIHx8IHJpZ2h0SW50cnVzaXZlRmxvYXRzV2lkdGgpIHsKLSAgICAg
ICAgaWYgKGxlZnRJbnRydXNpdmVGbG9hdHNXaWR0aCkgewotICAgICAgICAgICAgbV9saW5lLm1v
dmVMb2dpY2FsTGVmdChsZWZ0SW50cnVzaXZlRmxvYXRzV2lkdGgpOwotICAgICAgICAgICAgbV9o
b3Jpem9udGFsU3BhY2VGb3JMaW5lIC09IGxlZnRJbnRydXNpdmVGbG9hdHNXaWR0aDsKLSAgICAg
ICAgfQotICAgICAgICBpZiAocmlnaHRJbnRydXNpdmVGbG9hdHNXaWR0aCkKLSAgICAgICAgICAg
IG1faG9yaXpvbnRhbFNwYWNlRm9yTGluZSAtPSByaWdodEludHJ1c2l2ZUZsb2F0c1dpZHRoOwor
ICAgIGlmIChsaW5lQ2FuZGlkYXRlLmlubGluZUNvbnRlbnQoKS5ydW5zKCkuaXNFbXB0eSgpICYm
ICFsaW5lQ2FuZGlkYXRlLmZsb2F0SXRlbSkgeworICAgICAgICBhdXRvJiBpbmxpbmVDb250ZW50
ID0gbGluZUNhbmRpZGF0ZS5pbmxpbmVDb250ZW50OworICAgICAgICBBU1NFUlQoaW5saW5lQ29u
dGVudC50cmFpbGluZ0xpbmVCcmVhaygpIHx8IGlubGluZUNvbnRlbnQudHJhaWxpbmdXb3JkQnJl
YWtPcHBvcnR1bml0eSgpKTsKKyAgICAgICAgcmV0dXJuIHsgaW5saW5lQ29udGVudC50cmFpbGlu
Z0xpbmVCcmVhaygpID8gSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZZXMgOiBJ
bmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6Ok5vIH07CiAgICAgfQotfQotCi1MaW5l
QnVpbGRlcjo6UmVzdWx0IExpbmVCdWlsZGVyOjpoYW5kbGVGbG9hdHNBbmRJbmxpbmVDb250ZW50
KElubGluZUNvbnRlbnRCcmVha2VyJiBpbmxpbmVDb250ZW50QnJlYWtlciwgY29uc3QgSW5saW5l
SXRlbVJhbmdlJiBsYXlvdXRSYW5nZSwgY29uc3QgTGluZUNhbmRpZGF0ZSYgbGluZUNhbmRpZGF0
ZSkKLXsKLSAgICBhdXRvJiBjb250aW51b3VzSW5saW5lQ29udGVudCA9IGxpbmVDYW5kaWRhdGUu
aW5saW5lQ29udGVudC5jb250aW51b3VzQ29udGVudCgpOwotICAgIGlmIChjb250aW51b3VzSW5s
aW5lQ29udGVudC5ydW5zKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbW1pdEZsb2F0cyhsaW5l
Q2FuZGlkYXRlKTsKKyAgICBpZiAobGluZUNhbmRpZGF0ZS5mbG9hdEl0ZW0pIHsKKyAgICAgICAg
YXV0byBmbG9hdEJveFdpZHRoID0gaW5saW5lSXRlbVdpZHRoKCpsaW5lQ2FuZGlkYXRlLmZsb2F0
SXRlbSwgeyB9KTsKKyAgICAgICAgaWYgKGZsb2F0Qm94V2lkdGggPiBhdmFpbGFibGVXaWR0aCgp
ICYmICFtX2xpbmUuaXNDb25zaWRlcmVkRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiB7IElu
bGluZUNvbnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6WWVzIH07CisgICAgICAgIC8vIFRoaXMg
ZmxvYXQgc2hyaW5rcyB0aGUgY3VycmVudCBsaW5lLgorICAgICAgICBhdXRvJiBmbG9hdEJveCA9
IGxpbmVDYW5kaWRhdGUuZmxvYXRJdGVtLT5sYXlvdXRCb3goKTsKKyAgICAgICAgbV9mbG9hdHMu
YXBwZW5kKCZmbG9hdEJveCk7CisgICAgICAgIG1fY29udGVudElzQ29uc3RyYWluZWRCeUZsb2F0
ID0gdHJ1ZTsKKyAgICAgICAgaWYgKGZsb2F0Qm94LmlzTGVmdEZsb2F0aW5nUG9zaXRpb25lZCgp
KQorICAgICAgICAgICAgbV9saW5lLm1vdmVMb2dpY2FsTGVmdChmbG9hdEJveFdpZHRoKTsKKyAg
ICAgICAgbV9ob3Jpem9udGFsU3BhY2VGb3JMaW5lIC09IGZsb2F0Qm94V2lkdGg7CiAgICAgICAg
IHJldHVybiB7IElubGluZUNvbnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6Tm8gfTsKICAgICB9
CiAKQEAgLTYwMywyMCArNTUyLDE4IEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxkZXI6
OmhhbmRsZUZsb2F0c0FuZElubGluZUNvbnRlbnQoSW5saW5lQ29udGVudEJyZWFrCiAgICAgaWYg
KHNob3VsZERpc2FibGVIeXBoZW5hdGlvbigpKQogICAgICAgICBpbmxpbmVDb250ZW50QnJlYWtl
ci5zZXRIeXBoZW5hdGlvbkRpc2FibGVkKCk7CiAKLSAgICBhdXRvJiBmbG9hdENvbnRlbnQgPSBs
aW5lQ2FuZGlkYXRlLmZsb2F0Q29udGVudDsKICAgICAvLyBDaGVjayBpZiB0aGlzIG5ldyBjb250
ZW50IGZpdHMuCi0gICAgYXV0byBhdmFpbGFibGVXaWR0aCA9IHRoaXMtPmF2YWlsYWJsZVdpZHRo
KCkgLSBmbG9hdENvbnRlbnQuaW50cnVzaXZlV2lkdGgoKTsKKyAgICBhdXRvJiBjb250aW51b3Vz
SW5saW5lQ29udGVudCA9IGxpbmVDYW5kaWRhdGUuaW5saW5lQ29udGVudCgpOwogICAgIGF1dG8g
aXNMaW5lQ29uc2lkZXJlZEVtcHR5ID0gbV9saW5lLmlzQ29uc2lkZXJlZEVtcHR5KCkgJiYgIW1f
Y29udGVudElzQ29uc3RyYWluZWRCeUZsb2F0OwotICAgIGF1dG8gbGluZVN0YXR1cyA9IElubGlu
ZUNvbnRlbnRCcmVha2VyOjpMaW5lU3RhdHVzIHsgbV9saW5lLmNvbnRlbnRMb2dpY2FsV2lkdGgo
KSwgYXZhaWxhYmxlV2lkdGgsIG1fbGluZS50cmltbWFibGVUcmFpbGluZ1dpZHRoKCksIG1fbGlu
ZS50cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCgpLCBtX2xpbmUuaXNUcmFpbGluZ1J1bkZ1bGx5VHJp
bW1hYmxlKCksIGlzTGluZUNvbnNpZGVyZWRFbXB0eSB9OworICAgIGF1dG8gbGluZVN0YXR1cyA9
IElubGluZUNvbnRlbnRCcmVha2VyOjpMaW5lU3RhdHVzIHsgbV9saW5lLmNvbnRlbnRMb2dpY2Fs
V2lkdGgoKSwgYXZhaWxhYmxlV2lkdGgoKSwgbV9saW5lLnRyaW1tYWJsZVRyYWlsaW5nV2lkdGgo
KSwgbV9saW5lLnRyYWlsaW5nU29mdEh5cGhlbldpZHRoKCksIG1fbGluZS5pc1RyYWlsaW5nUnVu
RnVsbHlUcmltbWFibGUoKSwgaXNMaW5lQ29uc2lkZXJlZEVtcHR5IH07CiAgICAgYXV0byByZXN1
bHQgPSBpbmxpbmVDb250ZW50QnJlYWtlci5wcm9jZXNzSW5saW5lQ29udGVudChjb250aW51b3Vz
SW5saW5lQ29udGVudCwgbGluZVN0YXR1cyk7CiAgICAgaWYgKHJlc3VsdC5sYXN0V3JhcE9wcG9y
dHVuaXR5SXRlbSkKICAgICAgICAgbV93cmFwT3Bwb3J0dW5pdHlMaXN0LmFwcGVuZChyZXN1bHQu
bGFzdFdyYXBPcHBvcnR1bml0eUl0ZW0pOwogICAgIGF1dG8mIGNhbmRpZGF0ZVJ1bnMgPSBjb250
aW51b3VzSW5saW5lQ29udGVudC5ydW5zKCk7CiAgICAgaWYgKHJlc3VsdC5hY3Rpb24gPT0gSW5s
aW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpLZWVwKSB7Ci0gICAgICAgIC8vIFRo
aXMgY29udGludW91cyBjb250ZW50IGNhbiBiZSBmdWxseSBwbGFjZWQgb24gdGhlIGN1cnJlbnQg
bGluZSBpbmNsdWRpbmcgbm9uLWludHJ1c2l2ZSBmbG9hdHMuCisgICAgICAgIC8vIFRoaXMgY29u
dGludW91cyBjb250ZW50IGNhbiBiZSBmdWxseSBwbGFjZWQgb24gdGhlIGN1cnJlbnQgbGluZS4K
ICAgICAgICAgZm9yIChhdXRvJiBydW4gOiBjYW5kaWRhdGVSdW5zKQogICAgICAgICAgICAgbV9s
aW5lLmFwcGVuZChydW4uaW5saW5lSXRlbSwgcnVuLmxvZ2ljYWxXaWR0aCk7Ci0gICAgICAgIGNv
bW1pdEZsb2F0cyhsaW5lQ2FuZGlkYXRlKTsKICAgICAgICAgcmV0dXJuIHsgcmVzdWx0LmlzRW5k
T2ZMaW5lLCB7IGNhbmRpZGF0ZVJ1bnMuc2l6ZSgpLCBmYWxzZSB9IH07CiAgICAgfQogICAgIGlm
IChyZXN1bHQuYWN0aW9uID09IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ6OkFjdGlvbjo6
V3JhcCkgewpAQCAtNjQ2LDcgKzU5Myw2IEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxk
ZXI6OmhhbmRsZUZsb2F0c0FuZElubGluZUNvbnRlbnQoSW5saW5lQ29udGVudEJyZWFrCiAgICAg
aWYgKHJlc3VsdC5hY3Rpb24gPT0gSW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9u
OjpCcmVhaykgewogICAgICAgICBBU1NFUlQocmVzdWx0LmlzRW5kT2ZMaW5lID09IElubGluZUNv
bnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6WWVzKTsKICAgICAgICAgLy8gQ29tbWl0IHRoZSBj
b21iaW5hdGlvbiBvZiBmdWxsIGFuZCBwYXJ0aWFsIGNvbnRlbnQgb24gdGhlIGN1cnJlbnQgbGlu
ZS4KLSAgICAgICAgY29tbWl0RmxvYXRzKGxpbmVDYW5kaWRhdGUsIENvbW1pdEludHJ1c2l2ZUZs
b2F0c09ubHk6Olllcyk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucGFydGlhbFRyYWlsaW5nQ29u
dGVudCk7CiAgICAgICAgIGNvbW1pdFBhcnRpYWxDb250ZW50KGNhbmRpZGF0ZVJ1bnMsICpyZXN1
bHQucGFydGlhbFRyYWlsaW5nQ29udGVudCk7CiAgICAgICAgIC8vIFdoZW4gYnJlYWtpbmcgbXVs
dGlwbGUgcnVucyA8c3BhbiBzdHlsZT0id29yZC1icmVhazogYnJlYWstYWxsIj50ZXh0PC9zcGFu
PjxzcGFuPmNvbnRlbnQ8L3NwYW4+LCB3ZSBtaWdodCBlbmQgdXAgYnJlYWtpbmcgdGhlbSBhdCBy
dW4gYm91bmRhcnkuCkBAIC02OTIsNyArNjM4LDcgQEAgdm9pZCBMaW5lQnVpbGRlcjo6Y29tbWl0
UGFydGlhbENvbnRlbnQoY29uc3QgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb24K
IHNpemVfdCBMaW5lQnVpbGRlcjo6cmVidWlsZExpbmUoY29uc3QgSW5saW5lSXRlbVJhbmdlJiBs
YXlvdXRSYW5nZSwgY29uc3QgSW5saW5lSXRlbSYgbGFzdElubGluZUl0ZW1Ub0FkZCkKIHsKICAg
ICBBU1NFUlQoIW1fd3JhcE9wcG9ydHVuaXR5TGlzdC5pc0VtcHR5KCkpOwotICAgIC8vIFdlIG1p
Z2h0IGFscmVhZHkgaGF2ZSBhZGRlZCBpbnRydXNpdmUgZmxvYXRzLiBUaGV5IHNocmluayB0aGUg
YXZpbGFibGUgaG9yaXpvbnRhbCBzcGFjZSBmb3IgdGhlIGxpbmUuCisgICAgLy8gV2UgbWlnaHQg
YWxyZWFkeSBoYXZlIGFkZGVkIGZsb2F0cy4gVGhleSBzaHJpbmsgdGhlIGF2YWlsYWJsZSBob3Jp
em9udGFsIHNwYWNlIGZvciB0aGUgbGluZS4KICAgICAvLyBMZXQncyBqdXN0IHJldXNlIHdoYXQg
dGhlIGxpbmUgaGFzIGF0IHRoaXMgcG9pbnQuCiAgICAgbV9saW5lLmluaXRpYWxpemUoKTsKICAg
ICBhdXRvIGN1cnJlbnRJdGVtSW5kZXggPSBsYXlvdXRSYW5nZS5zdGFydDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVp
bGRlci5oCmluZGV4IGYwNTlmY2QxYjQ3NTM2YzY0NTM0NDMwZTBjZTM5NTliODY3Nzk2ZTYuLjBl
YzZlY2QyN2I0MDJmNmQ0NWE0NmMxZjU1OTM2ZjFjY2Y2ZDk4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxk
ZXIuaApAQCAtNTAsMTEgKzUwLDcgQEAgcHVibGljOgogICAgIHN0cnVjdCBMaW5lQ29udGVudCB7
CiAgICAgICAgIElubGluZUl0ZW1SYW5nZSBpbmxpbmVJdGVtUmFuZ2U7CiAgICAgICAgIHNpemVf
dCBwYXJ0aWFsVHJhaWxpbmdDb250ZW50TGVuZ3RoIHsgMCB9OwotICAgICAgICBzdHJ1Y3QgRmxv
YXQgewotICAgICAgICAgICAgYm9vbCBpc0ludHJ1c2l2ZSB7IHRydWUgfTsKLSAgICAgICAgICAg
IGNvbnN0IElubGluZUl0ZW0qIGl0ZW0geyBudWxscHRyIH07Ci0gICAgICAgIH07Ci0gICAgICAg
IHVzaW5nIEZsb2F0TGlzdCA9IFZlY3RvcjxGbG9hdD47CisgICAgICAgIHVzaW5nIEZsb2F0TGlz
dCA9IFZlY3Rvcjxjb25zdCBCb3gqPjsKICAgICAgICAgY29uc3QgRmxvYXRMaXN0JiBmbG9hdHM7
CiAgICAgICAgIGJvb2wgaGFzSW50cnVzaXZlRmxvYXQgeyBmYWxzZSB9OwogICAgICAgICBJbmxp
bmVMYXlvdXRQb2ludCBsb2dpY2FsVG9wTGVmdDsKQEAgLTczLDcgKzY5LDcgQEAgcHVibGljOgog
ICAgIEludHJpbnNpY0NvbnRlbnQgY29tcHV0ZWRJbnRyaW5zaWNXaWR0aChjb25zdCBJbmxpbmVJ
dGVtUmFuZ2UmLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKTsKIAogcHJpdmF0ZToK
LSAgICB2b2lkIG5leHRDb250ZW50Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiwgc2l6ZV90IGlubGlu
ZUl0ZW1JbmRleCwgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91dFJhbmdlLCBzaXpl
X3Qgb3ZlcmZsb3dMZW5ndGgsIElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlTGluZVdpZHRoLCBJ
bmxpbmVMYXlvdXRVbml0IGN1cnJlbnRMb2dpY2FsUmlnaHQpOworICAgIHZvaWQgY2FuZGlkYXRl
Q29udGVudEZvckxpbmUoTGluZUNhbmRpZGF0ZSYsIHNpemVfdCBpbmxpbmVJdGVtSW5kZXgsIGNv
bnN0IElubGluZUl0ZW1SYW5nZSYgbmVlZHNMYXlvdXRSYW5nZSwgc2l6ZV90IG92ZXJmbG93TGVu
Z3RoLCBJbmxpbmVMYXlvdXRVbml0IGN1cnJlbnRMb2dpY2FsUmlnaHQpOwogICAgIHNpemVfdCBu
ZXh0V3JhcE9wcG9ydHVuaXR5KHNpemVfdCBzdGFydEluZGV4LCBjb25zdCBMaW5lQnVpbGRlcjo6
SW5saW5lSXRlbVJhbmdlJiBsYXlvdXRSYW5nZSkgY29uc3Q7CiAKICAgICBzdHJ1Y3QgUmVzdWx0
IHsKQEAgLTg1LDE1ICs4MSwxMyBAQCBwcml2YXRlOgogICAgICAgICBDb21taXR0ZWRDb250ZW50
Q291bnQgY29tbWl0dGVkQ291bnQgeyB9OwogICAgICAgICBzaXplX3QgcGFydGlhbFRyYWlsaW5n
Q29udGVudExlbmd0aCB7IDAgfTsKICAgICB9OwotICAgIGVudW0gY2xhc3MgQ29tbWl0SW50cnVz
aXZlRmxvYXRzT25seSB7IE5vLCBZZXMgfTsKICAgICBzdHJ1Y3QgVXNlZENvbnN0cmFpbnRzIHsK
ICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCB7IDAgfTsKICAgICAgICAgSW5s
aW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGggeyAwIH07CiAgICAgICAgIGJvb2wgaXNDb25zdHJh
aW5lZEJ5RmxvYXQgeyBmYWxzZSB9OwogICAgIH07CiAgICAgVXNlZENvbnN0cmFpbnRzIGNvbnN0
cmFpbnRzRm9yTGluZShjb25zdCBJbmxpbmVSZWN0JiBpbml0aWFsTGluZUNvbnN0cmFpbnRzLCBi
b29sIGlzRmlyc3RMaW5lKTsKLSAgICB2b2lkIGNvbW1pdEZsb2F0cyhjb25zdCBMaW5lQ2FuZGlk
YXRlJiwgQ29tbWl0SW50cnVzaXZlRmxvYXRzT25seSA9IENvbW1pdEludHJ1c2l2ZUZsb2F0c09u
bHk6Ok5vKTsKLSAgICBSZXN1bHQgaGFuZGxlRmxvYXRzQW5kSW5saW5lQ29udGVudChJbmxpbmVD
b250ZW50QnJlYWtlciYsIGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbmVlZHNMYXlvdXRSYW5nZSwg
Y29uc3QgTGluZUNhbmRpZGF0ZSYpOworICAgIFJlc3VsdCBoYW5kbGVGbG9hdE9ySW5saW5lQ29u
dGVudChJbmxpbmVDb250ZW50QnJlYWtlciYsIGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbmVlZHNM
YXlvdXRSYW5nZSwgY29uc3QgTGluZUNhbmRpZGF0ZSYpOwogICAgIHNpemVfdCByZWJ1aWxkTGlu
ZShjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIG5lZWRzTGF5b3V0UmFuZ2UsIGNvbnN0IElubGluZUl0
ZW0mIGxhc3RJbmxpbmVJdGVtVG9BZGQpOwogICAgIHNpemVfdCByZWJ1aWxkTGluZUZvclRyYWls
aW5nU29mdEh5cGhlbihjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlKTsKICAgICB2
b2lkIGNvbW1pdFBhcnRpYWxDb250ZW50KGNvbnN0IElubGluZUNvbnRlbnRCcmVha2VyOjpDb250
aW51b3VzQ29udGVudDo6UnVuTGlzdCYsIGNvbnN0IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1
bHQ6OlBhcnRpYWxUcmFpbGluZ0NvbnRlbnQmKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>