<?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>198686</bug_id>
          
          <creation_ts>2019-06-07 21:02:53 -0700</creation_ts>
          <short_desc>[LFC][IFC] Make baselines alignment explicit in Line</short_desc>
          <delta_ts>2019-06-16 14:05:07 -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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</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>1543054</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-06-07 21:02:53 -0700</bug_when>
    <thetext>This is in preparation for adding non-baseline vertical alignment support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543055</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-07 21:04:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/51545175&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543056</commentid>
    <comment_count>2</comment_count>
      <attachid>371646</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-06-07 21:08:57 -0700</bug_when>
    <thetext>Created attachment 371646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543105</commentid>
    <comment_count>3</comment_count>
      <attachid>371646</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-08 11:48:47 -0700</bug_when>
    <thetext>Comment on attachment 371646
Patch

Clearing flags on attachment: 371646

Committed r246234: &lt;https://trac.webkit.org/changeset/246234&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543106</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-08 11:48:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543233</commentid>
    <comment_count>5</comment_count>
      <attachid>371646</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-06-09 18:25:08 -0700</bug_when>
    <thetext>Comment on attachment 371646
Patch

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

&gt; Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp:314
&gt; -    auto lineBox = Display::Rect { lineContent.logicalTop(), lineContent.logicalLeft(), 0 , !lineContent.isVisuallyEmpty() ? lineContent.logicalHeight() : LayoutUnit { } };
&gt; +    auto lineBox = Display::Rect { lineContent.logicalTop(), lineContent.logicalLeft(), 0, !lineContent.isVisuallyEmpty() ? lineContent.logicalHeight() : LayoutUnit { } };

Minor nit, but it&apos;s a bit confusing to call this variable lineBox, now that a LineBox contains more than just the line box rect. Maybe lineBoxRect?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544957</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-06-14 21:21:59 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; Comment on attachment 371646 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=371646&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp:314
&gt; &gt; -    auto lineBox = Display::Rect { lineContent.logicalTop(), lineContent.logicalLeft(), 0 , !lineContent.isVisuallyEmpty() ? lineContent.logicalHeight() : LayoutUnit { } };
&gt; &gt; +    auto lineBox = Display::Rect { lineContent.logicalTop(), lineContent.logicalLeft(), 0, !lineContent.isVisuallyEmpty() ? lineContent.logicalHeight() : LayoutUnit { } };
&gt; 
&gt; Minor nit, but it&apos;s a bit confusing to call this variable lineBox, now that
&gt; a LineBox contains more than just the line box rect. Maybe lineBoxRect?
You are right! I&apos;ll take care of it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545167</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-06-16 14:05:07 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; Comment on attachment 371646 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=371646&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp:314
&gt; &gt; -    auto lineBox = Display::Rect { lineContent.logicalTop(), lineContent.logicalLeft(), 0 , !lineContent.isVisuallyEmpty() ? lineContent.logicalHeight() : LayoutUnit { } };
&gt; &gt; +    auto lineBox = Display::Rect { lineContent.logicalTop(), lineContent.logicalLeft(), 0, !lineContent.isVisuallyEmpty() ? lineContent.logicalHeight() : LayoutUnit { } };
&gt; 
&gt; Minor nit, but it&apos;s a bit confusing to call this variable lineBox, now that
&gt; a LineBox contains more than just the line box rect. Maybe lineBoxRect?
https://trac.webkit.org/changeset/246486</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371646</attachid>
            <date>2019-06-07 21:08:57 -0700</date>
            <delta_ts>2019-06-08 11:48:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198686-20190607210855.patch</filename>
            <type>text/plain</type>
            <size>13349</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE5NjM1ZmZiYzAzMmVl
OTYxZWNkMjM5OTBhM2NjNzRkNjk0ZjVjZS4uZmYxNmQ1YmFkMTRkMWUyMWIzNDg0M2RhMjEzOTM0
YTlmMTMzNzY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTA2LTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBJbnRyb2R1
Y2UgQmFzZWxpbmUgdG8gTGluZUJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk4Njg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTU0NTE3NT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGJh
c2VsaW5lcyBhbGlnbm1lbnQgZXhwbGljaXQgaW4gTGluZS4KKyAgICAgICAgVGhpcyBpcyBpbiBw
cmVwYXJhdGlvbiBmb3IgYWRkaW5nIG5vbi1iYXNlbGluZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgc3Vw
cG9ydC4KKworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpwbGFjZUlubGluZUl0ZW1zIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVM
YXlvdXQ6OmNyZWF0ZURpc3BsYXlSdW5zIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZTo6TGluZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmNsb3NlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6aGFsZkxlYWRpbmdNZXRyaWNzKToKKyAg
ICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmg6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OmJhc2VsaW5lIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZTo6Q29udGVudDo6c2V0QmFzZWxpbmUpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpsb2dpY2FsSGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGluZTo6YmFzZWxpbmVBbGlnbmVkQ29udGVudEhlaWdodCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmJhc2VsaW5lT2Zmc2V0IGNvbnN0KToK
KyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OmJhc2VsaW5lIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6TGluZUJveCk6CisKIDIwMTktMDYtMDcgIFphbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIExpbmUgc2hv
dWxkIHNraXAgYWxsIHZlcnRpY2FsIGFkanVzdG1lbnQgd2hlbiBydW5uaW5nIHByZWZlcnJlZCB3
aWR0aCBjb21wdXRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
TGluZUxheW91dC5jcHAKaW5kZXggZWUzNDMzODMxOGE0MWJkNGI0Zjc0YWRhMDg5ZTVjNjlkNjI0
ZDdlMC4uMjAzMmNhZjY3NmVmMzM2MjQ0YjMyMjY5N2YwMDkwNTI0ZjU2MmEwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHRMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwCkBAIC0xMzAs
OCArMTMwLDggQEAgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OkxpbmVDb250
ZW50IElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGEKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
TGluZT4gbGluZTsKICAgICBpZiAobGluZUlucHV0LnNraXBWZXJ0aWNhbEFsaWdtZW50ID09IExp
bmVJbnB1dDo6U2tpcFZlcnRpY2FsQWxpZ21lbnQ6Ok5vKSB7CiAgICAgICAgIGF1dG8gbWltaW11
bUxpbmVIZWlnaHQgPSBtX2Zvcm1hdHRpbmdSb290LnN0eWxlKCkuY29tcHV0ZWRMaW5lSGVpZ2h0
KCk7Ci0gICAgICAgIGF1dG8gYmFzZWxpbmVPZmZzZXQgPSBMaW5lOjpoYWxmTGVhZGluZ01ldHJp
Y3MobV9mb3JtYXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIG1pbWltdW1MaW5lSGVp
Z2h0KS5oZWlnaHQ7Ci0gICAgICAgIGxpbmUgPSBzdGQ6Om1ha2VfdW5pcXVlPExpbmU+KGxheW91
dFN0YXRlKCksIGxpbmVJbnB1dC5ob3Jpem9udGFsQ29uc3RyYWludC5sb2dpY2FsVG9wTGVmdCwg
bGluZUlucHV0Lmhvcml6b250YWxDb25zdHJhaW50LmF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgbWlt
aW11bUxpbmVIZWlnaHQsIGJhc2VsaW5lT2Zmc2V0KTsKKyAgICAgICAgYXV0byBpbml0aWFsQmFz
ZWxpbmVPZmZzZXQgPSBMaW5lOjpoYWxmTGVhZGluZ01ldHJpY3MobV9mb3JtYXR0aW5nUm9vdC5z
dHlsZSgpLmZvbnRNZXRyaWNzKCksIG1pbWltdW1MaW5lSGVpZ2h0KS5vZmZzZXQ7CisgICAgICAg
IGxpbmUgPSBzdGQ6Om1ha2VfdW5pcXVlPExpbmU+KGxheW91dFN0YXRlKCksIGxpbmVJbnB1dC5o
b3Jpem9udGFsQ29uc3RyYWludC5sb2dpY2FsVG9wTGVmdCwgbGluZUlucHV0Lmhvcml6b250YWxD
b25zdHJhaW50LmF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgbWltaW11bUxpbmVIZWlnaHQsIGluaXRp
YWxCYXNlbGluZU9mZnNldCk7CiAgICAgfSBlbHNlCiAgICAgICAgIGxpbmUgPSBzdGQ6Om1ha2Vf
dW5pcXVlPExpbmU+KGxheW91dFN0YXRlKCksIGxpbmVJbnB1dC5ob3Jpem9udGFsQ29uc3RyYWlu
dC5sb2dpY2FsVG9wTGVmdC54KCksIGxpbmVJbnB1dC5ob3Jpem9udGFsQ29uc3RyYWludC5hdmFp
bGFibGVMb2dpY2FsV2lkdGgpOwogCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6Y3JlYXRlRGlzcGxheVJ1bnMoY29uc3QgTGluZTo6
Q29udGVudCYKICAgICBpZiAobGluZUNvbnRlbnQuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFNw
ZWMgdGVsbHMgdXMgdG8gY3JlYXRlIGEgemVybyBoZWlnaHQsIGVtcHR5IGxpbmUgYm94LgogICAg
ICAgICBhdXRvIGxpbmVCb3ggPSBEaXNwbGF5OjpSZWN0IHsgbGluZUNvbnRlbnQubG9naWNhbFRv
cCgpLCBsaW5lQ29udGVudC5sb2dpY2FsTGVmdCgpLCAwICwgMCB9OwotICAgICAgICBtX2Zvcm1h
dHRpbmdTdGF0ZS5hZGRMaW5lQm94KHsgbGluZUJveCB9KTsKKyAgICAgICAgbV9mb3JtYXR0aW5n
U3RhdGUuYWRkTGluZUJveCh7IGxpbmVCb3gsIGxpbmVDb250ZW50LmJhc2VsaW5lKCkgfSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIElubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMaW5l
OjpDb250ZW50JgogICAgIC8vIEEgbGluZSBib3ggaXMgYWx3YXlzIHRhbGwgZW5vdWdoIGZvciBh
bGwgb2YgdGhlIGJveGVzIGl0IGNvbnRhaW5zLgogCiAgICAgLy8gSWdub3JlIHRoZSBpbml0aWFs
IHN0cnV0LgotICAgIGF1dG8gbGluZUJveCA9IERpc3BsYXk6OlJlY3QgeyBsaW5lQ29udGVudC5s
b2dpY2FsVG9wKCksIGxpbmVDb250ZW50LmxvZ2ljYWxMZWZ0KCksIDAgLCAhbGluZUNvbnRlbnQu
aXNWaXN1YWxseUVtcHR5KCkgPyBsaW5lQ29udGVudC5sb2dpY2FsSGVpZ2h0KCkgOiBMYXlvdXRV
bml0IHsgfSB9OworICAgIGF1dG8gbGluZUJveCA9IERpc3BsYXk6OlJlY3QgeyBsaW5lQ29udGVu
dC5sb2dpY2FsVG9wKCksIGxpbmVDb250ZW50LmxvZ2ljYWxMZWZ0KCksIDAsICFsaW5lQ29udGVu
dC5pc1Zpc3VhbGx5RW1wdHkoKSA/IGxpbmVDb250ZW50LmxvZ2ljYWxIZWlnaHQoKSA6IExheW91
dFVuaXQgeyB9IH07CiAgICAgLy8gQ3JlYXRlIGZpbmFsIGRpc3BsYXkgcnVucy4KICAgICBhdXRv
JiBsaW5lUnVucyA9IGxpbmVDb250ZW50LnJ1bnMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGluZGV4
ID0gMDsgaW5kZXggPCBsaW5lUnVucy5zaXplKCk7ICsraW5kZXgpIHsKQEAgLTM5Miw3ICszOTIs
NyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVEaXNw
bGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW50JgogICAgICAgICB9CiAgICAgfQogICAgIC8vIEZJ
WE1FIGxpbmVib3ggbmVlZHMgdG8gYmUgYWp1c3RlZCBhZnRlciBjb250ZW50IGFsaWdubWVudC4K
LSAgICBtX2Zvcm1hdHRpbmdTdGF0ZS5hZGRMaW5lQm94KHsgbGluZUJveCB9KTsKKyAgICBtX2Zv
cm1hdHRpbmdTdGF0ZS5hZGRMaW5lQm94KHsgbGluZUJveCwgbGluZUNvbnRlbnQuYmFzZWxpbmUo
KSB9KTsKICAgICBpZiAoIWxpbmVDb250ZW50LmlzVmlzdWFsbHlFbXB0eSgpKQogICAgICAgICBh
bGlnblJ1bnMobV9mb3JtYXR0aW5nUm9vdC5zdHlsZSgpLnRleHRBbGlnbigpLCBwcmV2aW91c0xp
bmVMYXN0UnVuSW5kZXgudmFsdWVPcigtMSkgKyAxLCB3aWR0aENvbnN0cmFpbnQgLSBsaW5lQ29u
dGVudC5sb2dpY2FsV2lkdGgoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCmluZGV4IDU0NGVjMTc3MTM4ZmFkN2Uy
YTExMmYzNjFiMWM2ZmRmNGNjMmM0ODcuLjI3ZjZhNzg1OTE1YjZiOWIxNzY3ZmM4N2IwMzZiNTMz
ZDY3NmE4NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmUuY3BwCkBAIC02OSw3ICs2OSw4IEBAIExpbmU6OkxpbmUoY29uc3Qg
TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBMYXlvdXRQb2ludCYgdG9wTGVmdCwgTGF5
b3V0VW5pCiAgICAgOiBtX2xheW91dFN0YXRlKGxheW91dFN0YXRlKQogICAgICwgbV9jb250ZW50
KHN0ZDo6bWFrZV91bmlxdWU8TGluZTo6Q29udGVudD4oKSkKICAgICAsIG1fbG9naWNhbFRvcExl
ZnQodG9wTGVmdCkKLSAgICAsIG1fbG9naWNhbEhlaWdodCh7IGJhc2VsaW5lT2Zmc2V0LCBtaW5p
bXVtSGVpZ2h0IC0gYmFzZWxpbmVPZmZzZXQgfSkKKyAgICAsIG1fYmFzZWxpbmUoeyBiYXNlbGlu
ZU9mZnNldCwgbWluaW11bUhlaWdodCAtIGJhc2VsaW5lT2Zmc2V0LCB7IH0gfSkKKyAgICAsIG1f
Y29udGVudExvZ2ljYWxIZWlnaHQobWluaW11bUhlaWdodCkKICAgICAsIG1fbGluZUxvZ2ljYWxX
aWR0aChhdmFpbGFibGVXaWR0aCkKIHsKIH0KQEAgLTgwLDExICs4MSwxMiBAQCBzdGQ6OnVuaXF1
ZV9wdHI8TGluZTo6Q29udGVudD4gTGluZTo6Y2xvc2UoKQogICAgIGlmICghbV9za2lwVmVydGlj
YWxBbGlnbWVudCkgewogICAgICAgICAvLyBDb252ZXJ0IGlubGluZSBydW4gZ2VvbWV0cnkgZnJv
bSByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUgdG8gcmVsYXRpdmUgdG8gbG9naWNhbCB0b3AuCiAg
ICAgICAgIGZvciAoYXV0byYgcnVuIDogbV9jb250ZW50LT5ydW5zKCkpIHsKLSAgICAgICAgICAg
IGF1dG8gYWRqdXN0ZWRMb2dpY2FsVG9wID0gcnVuLT5sb2dpY2FsUmVjdC50b3AoKSArIG1fbG9n
aWNhbEhlaWdodC5oZWlnaHQgKyBtX2xvZ2ljYWxUb3BMZWZ0LnkoKTsKKyAgICAgICAgICAgIGF1
dG8gYWRqdXN0ZWRMb2dpY2FsVG9wID0gcnVuLT5sb2dpY2FsUmVjdC50b3AoKSArIGJhc2VsaW5l
T2Zmc2V0KCk7CiAgICAgICAgICAgICBydW4tPmxvZ2ljYWxSZWN0LnNldFRvcChhZGp1c3RlZExv
Z2ljYWxUb3ApOwogICAgICAgICB9CiAgICAgfQogICAgIG1fY29udGVudC0+c2V0TG9naWNhbFJl
Y3QoeyBsb2dpY2FsVG9wKCksIGxvZ2ljYWxMZWZ0KCksIGNvbnRlbnRMb2dpY2FsV2lkdGgoKSwg
bG9naWNhbEhlaWdodCgpIH0pOworICAgIG1fY29udGVudC0+c2V0QmFzZWxpbmUobV9iYXNlbGlu
ZSk7CiAgICAgcmV0dXJuIFdURk1vdmUobV9jb250ZW50KTsKIH0KIApAQCAtMjQ1LDEwICsyNDcs
MTEgQEAgdm9pZCBMaW5lOjphZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3QgSW5saW5l
SXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdAogICAgIGlmIChpbmxpbmVJdGVtLmlzQ29udGFp
bmVyU3RhcnQoKSkgewogICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlLmZvbnRNZXRy
aWNzKCk7CiAgICAgICAgIGF1dG8gaGFsZkxlYWRpbmcgPSBoYWxmTGVhZGluZ01ldHJpY3MoZm9u
dE1ldHJpY3MsIHN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKLSAgICAgICAgaWYgKGhhbGZM
ZWFkaW5nLmRlcHRoID4gMCkKLSAgICAgICAgICAgIG1fbG9naWNhbEhlaWdodC5kZXB0aCA9IHN0
ZDo6bWF4KG1fbG9naWNhbEhlaWdodC5kZXB0aCwgaGFsZkxlYWRpbmcuZGVwdGgpOwotICAgICAg
ICBpZiAoaGFsZkxlYWRpbmcuaGVpZ2h0ID4gMCkKLSAgICAgICAgICAgIG1fbG9naWNhbEhlaWdo
dC5oZWlnaHQgPSBzdGQ6Om1heChtX2xvZ2ljYWxIZWlnaHQuaGVpZ2h0LCBoYWxmTGVhZGluZy5o
ZWlnaHQpOworICAgICAgICBpZiAoaGFsZkxlYWRpbmcuZGVzY2VudCA+IDApCisgICAgICAgICAg
ICBtX2Jhc2VsaW5lLmRlc2NlbnQgPSBzdGQ6Om1heChtX2Jhc2VsaW5lLmRlc2NlbnQsIGhhbGZM
ZWFkaW5nLmRlc2NlbnQpOworICAgICAgICBpZiAoaGFsZkxlYWRpbmcuYXNjZW50ID4gMCkKKyAg
ICAgICAgICAgIG1fYmFzZWxpbmUuYXNjZW50ID0gc3RkOjptYXgobV9iYXNlbGluZS5hc2NlbnQs
IGhhbGZMZWFkaW5nLmFzY2VudCk7CisgICAgICAgIG1fY29udGVudExvZ2ljYWxIZWlnaHQgPSBz
dGQ6Om1heChtX2NvbnRlbnRMb2dpY2FsSGVpZ2h0LCBiYXNlbGluZUFsaWduZWRDb250ZW50SGVp
Z2h0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIFJlcGxhY2VkIGFuZCBub24t
cmVwbGFjZWQgaW5saW5lIGxldmVsIGJveC4KQEAgLTI1NywxMyArMjYwLDE1IEBAIHZvaWQgTGlu
ZTo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0
ZW0sIExheW91dFVuaXQKICAgICAgICAgaWYgKHJ1bkhlaWdodCA9PSBsb2dpY2FsSGVpZ2h0KCkp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGZhaWxzIHdoZW4g
dGhlIGxpbmUgaGVpZ2h0IGRpZmZlcmVuY2UgY29tZXMgZnJvbSBmb250LXNpemUgZGlmZi4KLSAg
ICAgICAgbV9sb2dpY2FsSGVpZ2h0LmRlcHRoID0gc3RkOjptYXg8TGF5b3V0VW5pdD4oMCwgbV9s
b2dpY2FsSGVpZ2h0LmRlcHRoKTsKLSAgICAgICAgbV9sb2dpY2FsSGVpZ2h0LmhlaWdodCA9IHN0
ZDo6bWF4KHJ1bkhlaWdodCwgbV9sb2dpY2FsSGVpZ2h0LmhlaWdodCk7CisgICAgICAgIG1fYmFz
ZWxpbmUuZGVzY2VudCA9IHN0ZDo6bWF4PExheW91dFVuaXQ+KDAsIG1fYmFzZWxpbmUuZGVzY2Vu
dCk7CisgICAgICAgIG1fYmFzZWxpbmUuYXNjZW50ID0gc3RkOjptYXgocnVuSGVpZ2h0LCBtX2Jh
c2VsaW5lLmFzY2VudCk7CisgICAgICAgIG1fY29udGVudExvZ2ljYWxIZWlnaHQgPSBzdGQ6Om1h
eChtX2NvbnRlbnRMb2dpY2FsSGVpZ2h0LCBiYXNlbGluZUFsaWduZWRDb250ZW50SGVpZ2h0KCkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIDAgZGVzY2VudCAtPiBiYXNlbGluZSBh
bGlnbWVudCBmb3Igbm93LgotICAgIG1fbG9naWNhbEhlaWdodC5kZXB0aCA9IHN0ZDo6bWF4PExh
eW91dFVuaXQ+KDAsIG1fbG9naWNhbEhlaWdodC5kZXB0aCk7Ci0gICAgbV9sb2dpY2FsSGVpZ2h0
LmhlaWdodCA9IHN0ZDo6bWF4KHJ1bkhlaWdodCwgbV9sb2dpY2FsSGVpZ2h0LmhlaWdodCk7Cisg
ICAgbV9iYXNlbGluZS5kZXNjZW50ID0gc3RkOjptYXg8TGF5b3V0VW5pdD4oMCwgbV9iYXNlbGlu
ZS5kZXNjZW50KTsKKyAgICBtX2Jhc2VsaW5lLmFzY2VudCA9IHN0ZDo6bWF4KHJ1bkhlaWdodCwg
bV9iYXNlbGluZS5hc2NlbnQpOworICAgIG1fY29udGVudExvZ2ljYWxIZWlnaHQgPSBzdGQ6Om1h
eChtX2NvbnRlbnRMb2dpY2FsSGVpZ2h0LCBiYXNlbGluZUFsaWduZWRDb250ZW50SGVpZ2h0KCkp
OwogfQogCiBMYXlvdXRVbml0IExpbmU6OmlubGluZUl0ZW1IZWlnaHQoY29uc3QgSW5saW5lSXRl
bSYgaW5saW5lSXRlbSkgY29uc3QKQEAgLTI5MCw3ICsyOTUsNyBAQCBMYXlvdXRVbml0IExpbmU6
OmlubGluZUl0ZW1IZWlnaHQoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSkgY29uc3QKICAg
ICByZXR1cm4gZGlzcGxheUJveC5oZWlnaHQoKTsKIH0KIAotTGluZTo6VXNlZEhlaWdodEFuZERl
cHRoIExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJp
Y3MsIExheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQpCitMaW5lQm94OjpCYXNlbGluZSBMaW5l
OjpoYWxmTGVhZGluZ01ldHJpY3MoY29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzLCBMYXlv
dXRVbml0IGxpbmVMb2dpY2FsSGVpZ2h0KQogewogICAgIGF1dG8gYXNjZW50ID0gZm9udE1ldHJp
Y3MuYXNjZW50KCk7CiAgICAgYXV0byBkZXNjZW50ID0gZm9udE1ldHJpY3MuZGVzY2VudCgpOwpA
QCAtMjk5LDcgKzMwNCw3IEBAIExpbmU6OlVzZWRIZWlnaHRBbmREZXB0aCBMaW5lOjpoYWxmTGVh
ZGluZ01ldHJpY3MoY29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzCiAgICAgLy8gSW5saW5l
IHRyZWUgaXMgYWxsIGludGVnZXIgYmFzZWQuCiAgICAgYXV0byBhZGp1c3RlZEFzY2VudCA9IHN0
ZDo6bWF4KChhc2NlbnQgKyBsZWFkaW5nIC8gMikuZmxvb3IoKSwgMCk7CiAgICAgYXV0byBhZGp1
c3RlZERlc2NlbnQgPSBzdGQ6Om1heCgoZGVzY2VudCArIGxlYWRpbmcgLyAyKS5jZWlsKCksIDAp
OwotICAgIHJldHVybiB7IGFkanVzdGVkQXNjZW50LCBhZGp1c3RlZERlc2NlbnQgfTsKKyAgICBy
ZXR1cm4geyBhZGp1c3RlZEFzY2VudCwgYWRqdXN0ZWREZXNjZW50LCBhZGp1c3RlZEFzY2VudCB9
OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lLmgKaW5kZXggYjRhMjhjMWQwOWU3N2QyYTVlMjQwYjU2YjE5YmYwYzQ0MGI5
MjMzNS4uNDRjYzAxNTYxZjM1N2FhNDNmOTU0N2E3MzIxZjVhMjczODY0MjExZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuaApA
QCAtNjksMTQgKzY5LDE3IEBAIHB1YmxpYzoKICAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsQm90
dG9tKCkgY29uc3QgeyByZXR1cm4gbG9naWNhbFRvcCgpICsgbG9naWNhbEhlaWdodCgpOyB9CiAg
ICAgICAgIExheW91dFVuaXQgbG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2Fs
UmVjdC53aWR0aCgpOyB9CiAgICAgICAgIExheW91dFVuaXQgbG9naWNhbEhlaWdodCgpIGNvbnN0
IHsgcmV0dXJuIG1fbG9naWNhbFJlY3QuaGVpZ2h0KCk7IH0KKyAgICAgICAgTGluZUJveDo6QmFz
ZWxpbmUgYmFzZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VsaW5lOyB9CiAKICAgICBwcml2
YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgTGluZTsKIAogICAgICAgICB2b2lkIHNldExvZ2lj
YWxSZWN0KGNvbnN0IERpc3BsYXk6OlJlY3QmIGxvZ2ljYWxSZWN0KSB7IG1fbG9naWNhbFJlY3Qg
PSBsb2dpY2FsUmVjdDsgfQorICAgICAgICB2b2lkIHNldEJhc2VsaW5lKExpbmVCb3g6OkJhc2Vs
aW5lIGJhc2VsaW5lKSB7IG1fYmFzZWxpbmUgPSBiYXNlbGluZTsgfQogICAgICAgICBSdW5zJiBy
dW5zKCkgeyByZXR1cm4gbV9ydW5zOyB9CiAKICAgICAgICAgRGlzcGxheTo6UmVjdCBtX2xvZ2lj
YWxSZWN0OworICAgICAgICBMaW5lQm94OjpCYXNlbGluZSBtX2Jhc2VsaW5lOwogICAgICAgICBS
dW5zIG1fcnVuczsKICAgICB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50PiBjbG9zZSgp
OwpAQCAtMTAwLDIwICsxMDMsMTggQEAgcHVibGljOgogICAgIExheW91dFVuaXQgbG9naWNhbFRv
cCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFRvcExlZnQueSgpOyB9CiAgICAgTGF5b3V0VW5p
dCBsb2dpY2FsQm90dG9tKCkgY29uc3QgeyByZXR1cm4gbG9naWNhbFRvcCgpICsgbG9naWNhbEhl
aWdodCgpOyB9CiAKLSAgICBzdHJ1Y3QgVXNlZEhlaWdodEFuZERlcHRoIHsKLSAgICAgICAgTGF5
b3V0VW5pdCBoZWlnaHQ7Ci0gICAgICAgIExheW91dFVuaXQgZGVwdGg7Ci0gICAgfTsKLSAgICBz
dGF0aWMgVXNlZEhlaWdodEFuZERlcHRoIGhhbGZMZWFkaW5nTWV0cmljcyhjb25zdCBGb250TWV0
cmljcyYsIExheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQpOworICAgIHN0YXRpYyBMaW5lQm94
OjpCYXNlbGluZSBoYWxmTGVhZGluZ01ldHJpY3MoY29uc3QgRm9udE1ldHJpY3MmLCBMYXlvdXRV
bml0IGxpbmVMb2dpY2FsSGVpZ2h0KTsKIAogcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxvZ2lj
YWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsVG9wTGVmdC54KCk7IH0KICAgICBMYXlv
dXRVbml0IGxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIGxvZ2ljYWxMZWZ0KCkgKyBsb2dp
Y2FsV2lkdGgoKTsgfQogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJl
dHVybiBtX2xpbmVMb2dpY2FsV2lkdGg7IH0KLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQo
KSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxIZWlnaHQuaGVpZ2h0ICsgbV9sb2dpY2FsSGVpZ2h0
LmRlcHRoOyB9CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4g
bV9jb250ZW50TG9naWNhbEhlaWdodDsgfQogCiAgICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TG9naWNhbFdpZHRoOyB9CisgICAgTGF5
b3V0VW5pdCBiYXNlbGluZUFsaWduZWRDb250ZW50SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9i
YXNlbGluZS5hc2NlbnQgKyBtX2Jhc2VsaW5lLmRlc2NlbnQ7IH0KKyAgICBMYXlvdXRVbml0IGJh
c2VsaW5lT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9iYXNlbGluZS5vZmZzZXQ7IH0KIAogICAg
IHZvaWQgYXBwZW5kTm9uQnJlYWthYmxlU3BhY2UoY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IERp
c3BsYXk6OlJlY3QmIGxvZ2ljYWxSZWN0KTsKICAgICB2b2lkIHJlbW92ZVRyYWlsaW5nVHJpbW1h
YmxlQ29udGVudCgpOwpAQCAtMTI4LDcgKzEyOSw4IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0UG9p
bnQgbV9sb2dpY2FsVG9wTGVmdDsKICAgICBMYXlvdXRVbml0IG1fY29udGVudExvZ2ljYWxXaWR0
aDsKIAotICAgIFVzZWRIZWlnaHRBbmREZXB0aCBtX2xvZ2ljYWxIZWlnaHQ7CisgICAgTGluZUJv
eDo6QmFzZWxpbmUgbV9iYXNlbGluZTsKKyAgICBMYXlvdXRVbml0IG1fY29udGVudExvZ2ljYWxI
ZWlnaHQ7CiAgICAgTGF5b3V0VW5pdCBtX2xpbmVMb2dpY2FsV2lkdGg7CiAgICAgYm9vbCBtX3Nr
aXBWZXJ0aWNhbEFsaWdtZW50IHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmgKaW5kZXggY2UyZjI0
NmNkZDI2MDk3MjlhODIxNTFkYmY5OGY2OWNmOWEyMjM3YS4uZDg2M2I2M2VjMzJmODUzMTkyMDBl
YjA0MGVlNmMxNDMwZjI2NzE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guaApAQCAtMzQsNyArMzQsMTIgQEAgbmFt
ZXNwYWNlIExheW91dCB7CiAKIGNsYXNzIExpbmVCb3ggewogcHVibGljOgotICAgIExpbmVCb3go
RGlzcGxheTo6UmVjdCk7CisgICAgc3RydWN0IEJhc2VsaW5lIHsKKyAgICAgICAgTGF5b3V0VW5p
dCBhc2NlbnQ7CisgICAgICAgIExheW91dFVuaXQgZGVzY2VudDsKKyAgICAgICAgTGF5b3V0VW5p
dCBvZmZzZXQ7IC8vIGJhc2VsaW5lIG9mZnNldCBmcm9tIGxpbmUgbG9naWNhbCB0b3AuIE5vdGUg
dGhhdCBvZmZzZXQgZG9lcyBub3QgbmVjZXNzYXJpbHkgZXF1YWwgdG8gYXNjZW50LgorICAgIH07
CisgICAgTGluZUJveChEaXNwbGF5OjpSZWN0LCBjb25zdCBCYXNlbGluZSYpOwogICAgIAogICAg
IExheW91dFBvaW50IGxvZ2ljYWxUb3BMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LnRvcExl
ZnQoKTsgfQogCkBAIC00NiwxMiArNTEsMTYgQEAgcHVibGljOgogICAgIExheW91dFVuaXQgbG9n
aWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LndpZHRoKCk7IH0KICAgICBMYXlvdXRV
bml0IGxvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QuaGVpZ2h0KCk7IH0KIAor
ICAgIEJhc2VsaW5lIGJhc2VsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlbGluZTsgfQorCiBw
cml2YXRlOgogICAgIERpc3BsYXk6OlJlY3QgbV9yZWN0OworICAgIEJhc2VsaW5lIG1fYmFzZWxp
bmU7CiB9OwogCi1pbmxpbmUgTGluZUJveDo6TGluZUJveChEaXNwbGF5OjpSZWN0IHJlY3QpCitp
bmxpbmUgTGluZUJveDo6TGluZUJveChEaXNwbGF5OjpSZWN0IHJlY3QsIGNvbnN0IEJhc2VsaW5l
JiBiYXNlbGluZSkKICAgICA6IG1fcmVjdChyZWN0KQorICAgICwgbV9iYXNlbGluZShiYXNlbGlu
ZSkKIHsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>