<?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>204560</bug_id>
          
          <creation_ts>2019-11-24 18:27:11 -0800</creation_ts>
          <short_desc>[LFC][IFC] Decouple LineLayout and Line</short_desc>
          <delta_ts>2019-11-25 07:53:02 -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>1593305</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-24 18:27:11 -0800</bug_when>
    <thetext>no need to construct a line object for each line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593306</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-24 18:27:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/57463295&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593307</commentid>
    <comment_count>2</comment_count>
      <attachid>384261</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-24 18:41:40 -0800</bug_when>
    <thetext>Created attachment 384261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593433</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-25 07:53:02 -0800</bug_when>
    <thetext>Committed r252859: &lt;https://trac.webkit.org/changeset/252859&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384261</attachid>
            <date>2019-11-24 18:41:40 -0800</date>
            <delta_ts>2019-11-25 07:11:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204560-20191124184114.patch</filename>
            <type>text/plain</type>
            <size>20996</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTcwNDI3MWFkYmI5OWQ1
NjQ4ODQ3ZWZiZjhkYTE0MjI0ZjY5MmYzMC4uM2ZkYzVjYzYyMjFmYjBmNjYwNTdiODczNzY4MzAy
ODZmYTkwMjJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTExLTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBEZWNvdXBs
ZSBMaW5lTGF5b3V0IGFuZCBMaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDQ1NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NDYzMjk1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMg
aW4gcHJlcGFyYXRpb24gZm9yIGNvbnN0cnVjdGluZyBvbmx5IG9uZSBMaW5lTGF5b3V0L0xpbmUg
b2JqZWN0IGZvciBhbiBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0IGFuZCBub3QKKyAgICAgICAg
b25lIHBlciBsaW5lLgorCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6bGluZUxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OklubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3Ry
YWludCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0Ojpjb25zdHJhaW50c0ZvckxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6aW5pdGlhbENvbnN0cmFpbnRzRm9yTGluZSk6IERlbGV0
ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dFF1aXJrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmxpbmVIZWlnaHRDb25zdHJhaW50cyBjb25zdCk6Cisg
ICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpMaW5lOjppbml0aWFsaXplKToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6Omhhc0ludHJ1c2l2
ZUZsb2F0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6c2V0SGFzSW50
cnVzaXZlRmxvYXQpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxp
bmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0OjpMaW5l
SW5wdXQ6OkxpbmVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXQ6
OkxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0OjpjbG9z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXQ6OnBsYWNlSW5saW5lSXRl
bSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXQ6OnByb2Nlc3NVbmNvbW1p
dHRlZENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0OjpzaG91
bGRQcm9jZXNzVW5jb21taXR0ZWRDb250ZW50IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5b3V0Lmg6CisKIDIwMTktMTEtMjMgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIFJlcGxhY2UgcmVk
dW5kYW50IExpbmU6OmlzVmlzdWFsbHlFbXB0eSgpIHdpdGggTGluZUJveDo6aXNDb25zaWRlcmVk
RW1wdHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDJkNWI5YWE0
MzhmNTk1NTAyMjlhNWJhMjVkM2ZmYzM5Y2E3ODY2MTYuLjNlN2EyYTBjNDFmYWM1Y2JjYmNlNzcx
N2I4ZmQzMWNjM2M0N2Q3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAK
QEAgLTk1LDExICs5NSwxMiBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpsaW5lTGF5
b3V0KFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRIb3Jpem9udGFsVmFsdQogICAgIGF1dG8gbGlu
ZUxvZ2ljYWxUb3AgPSBnZW9tZXRyeUZvckJveChyb290KCkpLmNvbnRlbnRCb3hUb3AoKTsKICAg
ICB1bnNpZ25lZCBsZWFkaW5nSW5saW5lSXRlbUluZGV4ID0gMDsKICAgICBPcHRpb25hbDxMaW5l
TGF5b3V0OjpQYXJ0aWFsQ29udGVudD4gbGVhZGluZ1BhcnRpYWxDb250ZW50OwotICAgIHdoaWxl
IChsZWFkaW5nSW5saW5lSXRlbUluZGV4IDwgaW5saW5lSXRlbXMuc2l6ZSgpKSB7Ci0gICAgICAg
IGF1dG8gbGluZUNvbnN0cmFpbnRzID0gaW5pdGlhbENvbnN0cmFpbnRzRm9yTGluZSh1c2VkSG9y
aXpvbnRhbFZhbHVlcywgbGluZUxvZ2ljYWxUb3ApOworICAgIGF1dG8gbGluZSA9IExpbmUgeyAq
dGhpcywgcm9vdCgpLnN0eWxlKCkudGV4dEFsaWduKCksIExpbmU6OlNraXBBbGlnbm1lbnQ6Ok5v
IH07CiAKLSAgICAgICAgYXV0byBsaW5lSW5wdXQgPSBMaW5lTGF5b3V0OjpMaW5lSW5wdXQgeyBs
aW5lQ29uc3RyYWludHMsIHJvb3QoKS5zdHlsZSgpLnRleHRBbGlnbigpLCBpbmxpbmVJdGVtcywg
bGVhZGluZ0lubGluZUl0ZW1JbmRleCwgbGVhZGluZ1BhcnRpYWxDb250ZW50IH07Ci0gICAgICAg
IGF1dG8gbGluZUxheW91dCA9IExpbmVMYXlvdXQgeyAqdGhpcywgTGluZTo6U2tpcEFsaWdubWVu
dDo6Tm8sIGxpbmVJbnB1dCB9OworICAgIHdoaWxlIChsZWFkaW5nSW5saW5lSXRlbUluZGV4IDwg
aW5saW5lSXRlbXMuc2l6ZSgpKSB7CisgICAgICAgIGxpbmUuaW5pdGlhbGl6ZShjb25zdHJhaW50
c0ZvckxpbmUodXNlZEhvcml6b250YWxWYWx1ZXMsIGxpbmVMb2dpY2FsVG9wKSk7CisgICAgICAg
IGF1dG8gbGluZUlucHV0ID0gTGluZUxheW91dDo6TGluZUlucHV0IHsgaW5saW5lSXRlbXMsIGxl
YWRpbmdJbmxpbmVJdGVtSW5kZXgsIGxlYWRpbmdQYXJ0aWFsQ29udGVudCB9OworICAgICAgICBh
dXRvIGxpbmVMYXlvdXQgPSBMaW5lTGF5b3V0IHsgKnRoaXMsIGxpbmVJbnB1dCwgbGluZSB9Owog
CiAgICAgICAgIGF1dG8gbGluZUNvbnRlbnQgPSBsaW5lTGF5b3V0LmxheW91dCgpOwogICAgICAg
ICBzZXREaXNwbGF5Qm94ZXNGb3JMaW5lKGxpbmVDb250ZW50LCB1c2VkSG9yaXpvbnRhbFZhbHVl
cyk7CkBAIC0xMTcsNyArMTE4LDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGlu
ZUxheW91dChVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHUKICAgICAgICAg
ICAgICAgICBsZWFkaW5nSW5saW5lSXRlbUluZGV4ID0gKmxpbmVDb250ZW50LnRyYWlsaW5nSW5s
aW5lSXRlbUluZGV4ICsgMTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIEZsb2F0
cyBwcmV2ZW50ZWQgdXMgcGxhY2luZyBhbnkgY29udGVudCBvbiB0aGUgbGluZS4KLSAgICAgICAg
ICAgIEFTU0VSVChsaW5lSW5wdXQuaW5pdGlhbENvbnN0cmFpbnRzLmxpbmVJc0NvbnN0cmFpbmVk
QnlGbG9hdCk7CisgICAgICAgICAgICBBU1NFUlQobGluZS5oYXNJbnRydXNpdmVGbG9hdCgpKTsK
ICAgICAgICAgICAgIC8vIE1vdmUgdGhlIG5leHQgbGluZSBiZWxvdyB0aGUgaW50cnVzaXZlIGZs
b2F0LgogICAgICAgICAgICAgYXV0byBmbG9hdGluZ0NvbnRleHQgPSBGbG9hdGluZ0NvbnRleHQg
eyByb290KCksICp0aGlzLCBmb3JtYXR0aW5nU3RhdGUoKS5mbG9hdGluZ1N0YXRlKCkgfTsKICAg
ICAgICAgICAgIGF1dG8gZmxvYXRDb25zdHJhaW50cyA9IGZsb2F0aW5nQ29udGV4dC5jb25zdHJh
aW50cyh7IGxpbmVMb2dpY2FsVG9wIH0pOwpAQCAtMjM0LDEyICsyMzUsMTMgQEAgTGF5b3V0VW5p
dCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aEZvckNvbnN0
cmFpbnQoVXNlZEhvcmkKICAgICBhdXRvJiBpbmxpbmVJdGVtcyA9IGZvcm1hdHRpbmdTdGF0ZSgp
LmlubGluZUl0ZW1zKCk7CiAgICAgTGF5b3V0VW5pdCBtYXhpbXVtTGluZVdpZHRoOwogICAgIHVu
c2lnbmVkIGxlYWRpbmdJbmxpbmVJdGVtSW5kZXggPSAwOworICAgIGF1dG8gbGluZSA9IExpbmUg
eyAqdGhpcywgcm9vdCgpLnN0eWxlKCkudGV4dEFsaWduKCksIExpbmU6OlNraXBBbGlnbm1lbnQ6
OlllcyB9OwogICAgIHdoaWxlIChsZWFkaW5nSW5saW5lSXRlbUluZGV4IDwgaW5saW5lSXRlbXMu
c2l6ZSgpKSB7CiAgICAgICAgIC8vIE9ubHkgdGhlIGhvcml6dG9uYWwgYXZhaWxhYmxlIHdpZHRo
IGlzIGNvbnN0cmFpbmVkIHdoZW4gY29tcHV0aW5nIGludHJpbnNpYyB3aWR0aC4KLSAgICAgICAg
YXV0byBpbml0aWFsTGluZUNvbnN0cmFpbnRzID0gTGluZTo6SW5pdGlhbENvbnN0cmFpbnRzIHsg
eyB9LCB1c2VkSG9yaXpvbnRhbFZhbHVlcy5jb25zdHJhaW50cy53aWR0aCwgZmFsc2UsIHsgfSB9
OwotICAgICAgICBhdXRvIGxpbmVJbnB1dCA9IExpbmVMYXlvdXQ6OkxpbmVJbnB1dCB7IGluaXRp
YWxMaW5lQ29uc3RyYWludHMsIHJvb3QoKS5zdHlsZSgpLnRleHRBbGlnbigpLCBpbmxpbmVJdGVt
cywgbGVhZGluZ0lubGluZUl0ZW1JbmRleCwgeyB9IH07CisgICAgICAgIGxpbmUuaW5pdGlhbGl6
ZShMaW5lOjpDb25zdHJhaW50cyB7IHsgfSwgdXNlZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWlu
dHMud2lkdGgsIGZhbHNlLCB7IH0gfSk7CisgICAgICAgIGF1dG8gbGluZUlucHV0ID0gTGluZUxh
eW91dDo6TGluZUlucHV0IHsgaW5saW5lSXRlbXMsIGxlYWRpbmdJbmxpbmVJdGVtSW5kZXgsIHsg
fSB9OwogCi0gICAgICAgIGF1dG8gbGluZUNvbnRlbnQgPSBMaW5lTGF5b3V0KCp0aGlzLCBMaW5l
OjpTa2lwQWxpZ25tZW50OjpZZXMsIGxpbmVJbnB1dCkubGF5b3V0KCk7CisgICAgICAgIGF1dG8g
bGluZUNvbnRlbnQgPSBMaW5lTGF5b3V0KCp0aGlzLCBsaW5lSW5wdXQsIGxpbmUpLmxheW91dCgp
OwogCiAgICAgICAgIGxlYWRpbmdJbmxpbmVJdGVtSW5kZXggPSAqbGluZUNvbnRlbnQudHJhaWxp
bmdJbmxpbmVJdGVtSW5kZXggKyAxOwogICAgICAgICBMYXlvdXRVbml0IGZsb2F0c1dpZHRoOwpA
QCAtMzcyLDcgKzM3NCw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbGxlY3RJ
bmxpbmVDb250ZW50SWZOZWVkZWQoKQogICAgIH0KIH0KIAotTGluZTo6SW5pdGlhbENvbnN0cmFp
bnRzIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojppbml0aWFsQ29uc3RyYWludHNGb3JMaW5lKFVz
ZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRIb3Jpem9udGFsVmFsdWVzLCBjb25zdCBMYXlvdXRVbml0
IGxpbmVMb2dpY2FsVG9wKQorTGluZTo6Q29uc3RyYWludHMgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQ6OmNvbnN0cmFpbnRzRm9yTGluZShVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRh
bFZhbHVlcywgY29uc3QgTGF5b3V0VW5pdCBsaW5lTG9naWNhbFRvcCkKIHsKICAgICBhdXRvIGxp
bmVMb2dpY2FsTGVmdCA9IGdlb21ldHJ5Rm9yQm94KHJvb3QoKSkuY29udGVudEJveExlZnQoKTsK
ICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gdXNlZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWlu
dHMud2lkdGg7CkBAIC00MDUsNyArNDA3LDcgQEAgTGluZTo6SW5pdGlhbENvbnN0cmFpbnRzIElu
bGluZUZvcm1hdHRpbmdDb250ZXh0Ojppbml0aWFsQ29uc3RyYWludHNGb3JMaW5lKFVzZWQKICAg
ICAgICAgICAgIGF2YWlsYWJsZVdpZHRoID0gZmxvYXRDb25zdHJhaW50cy5yaWdodC0+eCAtIGxp
bmVMb2dpY2FsTGVmdDsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gTGluZTo6SW5pdGlh
bENvbnN0cmFpbnRzIHsgeyBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2FsVG9wIH0sIGF2YWls
YWJsZVdpZHRoLCBsaW5lSXNDb25zdHJhaW5lZEJ5RmxvYXQsIHF1aXJrcygpLmxpbmVIZWlnaHRD
b25zdHJhaW50cyhyb290KCkpIH07CisgICAgcmV0dXJuIExpbmU6OkNvbnN0cmFpbnRzIHsgeyBs
aW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2FsVG9wIH0sIGF2YWlsYWJsZVdpZHRoLCBsaW5lSXND
b25zdHJhaW5lZEJ5RmxvYXQsIHF1aXJrcygpLmxpbmVIZWlnaHRDb25zdHJhaW50cyhyb290KCkp
IH07CiB9CiAKIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OnNldERpc3BsYXlCb3hlc0Zv
ckxpbmUoY29uc3QgTGluZUxheW91dDo6TGluZUNvbnRlbnQmIGxpbmVDb250ZW50LCBVc2VkSG9y
aXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oCmluZGV4IGRkZWI4Y2Y4Nzk3ZTUyYTk5MDkyMjJhNDI2ZTJhNjgyNTU0YmI3NTMu
LjYyMDE0ZmViYmJhNDdhMTYxZTMyYjkzM2NkOWZkZmMwNDc2MWRkODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQuaApAQCAtNTEsNyArNTEsNyBAQCBwcml2YXRlOgogICAgIGNsYXNz
IFF1aXJrcyA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIGJvb2wgbGluZURlc2NlbnROZWVkc0NvbGxhcHNpbmcoY29uc3QgTGluZTo6UnVu
TGlzdCYpIGNvbnN0OwotICAgICAgICBMaW5lOjpJbml0aWFsQ29uc3RyYWludHM6OkhlaWdodEFu
ZEJhc2VsaW5lIGxpbmVIZWlnaHRDb25zdHJhaW50cyhjb25zdCBCb3gmIGZvcm1hdHRpbmdSb290
KSBjb25zdDsKKyAgICAgICAgTGluZTo6Q29uc3RyYWludHM6OkhlaWdodEFuZEJhc2VsaW5lIGxp
bmVIZWlnaHRDb25zdHJhaW50cyhjb25zdCBCb3gmIGZvcm1hdHRpbmdSb290KSBjb25zdDsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dDsKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXB1dGVXaWR0aEFuZE1h
cmdpbihjb25zdCBCb3gmLCBVc2VkSG9yaXpvbnRhbFZhbHVlcyk7CiAKICAgICB2b2lkIGNvbGxl
Y3RJbmxpbmVDb250ZW50SWZOZWVkZWQoKTsKLSAgICBMaW5lOjpJbml0aWFsQ29uc3RyYWludHMg
aW5pdGlhbENvbnN0cmFpbnRzRm9yTGluZShVc2VkSG9yaXpvbnRhbFZhbHVlcywgY29uc3QgTGF5
b3V0VW5pdCBsaW5lTG9naWNhbFRvcCk7CisgICAgTGluZTo6Q29uc3RyYWludHMgY29uc3RyYWlu
dHNGb3JMaW5lKFVzZWRIb3Jpem9udGFsVmFsdWVzLCBjb25zdCBMYXlvdXRVbml0IGxpbmVMb2dp
Y2FsVG9wKTsKICAgICB2b2lkIHNldERpc3BsYXlCb3hlc0ZvckxpbmUoY29uc3QgTGluZUxheW91
dDo6TGluZUNvbnRlbnQmLCBVc2VkSG9yaXpvbnRhbFZhbHVlcyk7CiAgICAgdm9pZCBpbnZhbGlk
YXRlRm9ybWF0dGluZ1N0YXRlKGNvbnN0IEludmFsaWRhdGlvblN0YXRlJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0UXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAppbmRleCBjNWYwZjQ2ZTlhNDlm
YTg2ZGNiMTU2NzM5YmIyZGE5OGMxYjY4ZDAwLi5mOWVmNjQ3NThkY2E4OWQ3YTA5ZGIzNmQyM2M3
YzU4MjA2MDJlMjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWly
a3MuY3BwCkBAIC03NSw3ICs3NSw3IEBAIGJvb2wgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OlF1
aXJrczo6bGluZURlc2NlbnROZWVkc0NvbGxhcHNpbmcoY29uc3QgTGluZTo6UnVuCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLUxpbmU6OkluaXRpYWxDb25zdHJhaW50czo6SGVpZ2h0QW5kQmFzZWxp
bmUgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6bGluZUhlaWdodENvbnN0cmFpbnRz
KGNvbnN0IEJveCYgZm9ybWF0dGluZ1Jvb3QpIGNvbnN0CitMaW5lOjpDb25zdHJhaW50czo6SGVp
Z2h0QW5kQmFzZWxpbmUgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6bGluZUhlaWdo
dENvbnN0cmFpbnRzKGNvbnN0IEJveCYgZm9ybWF0dGluZ1Jvb3QpIGNvbnN0CiB7CiAgICAgLy8g
Y29tcHV0ZWRMaW5lSGVpZ2h0IHRha2VzIGZvbnQtc2l6ZSBpbnRvIGFjY291bnQgd2hlbiBsaW5l
LWhlaWdodCBpcyBub3Qgc2V0LgogICAgIC8vIFN0cnV0IGlzIHRoZSBpbWFnaW5hcnkgYm94IHRo
YXQgd2UgcHV0IG9uIGV2ZXJ5IGxpbmUuIEl0IHNldHMgdGhlIGluaXRpYWwgdmVydGljYWwgY29u
c3RyYWludHMgZm9yIGVhY2ggbmV3IGxpbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCmluZGV4IDQ4OThjNGQ3NzI4M2U0
NTNkNWU4NzgwMjIwMmRhMGM1MWJiM2JlYWUuLjFhNGU5ZGRlNDc1MjkzNTlhZWUzNzA1YjFmN2Ey
MDJjOGI2NjUxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCkBAIC0yMDQsMjUgKzIwNCw0MCBAQCB2b2lkIExpbmU6
OlJ1bjo6c2V0Q29tcHV0ZWRIb3Jpem9udGFsRXhwYW5zaW9uKExheW91dFVuaXQgbG9naWNhbEV4
cGFuc2lvbikKICAgICBtX3RleHRDb250ZXh0LT5zZXRFeHBhbnNpb24oeyBtX3RleHRDb250ZXh0
LT5leHBhbnNpb24oKS0+YmVoYXZpb3IsIGxvZ2ljYWxFeHBhbnNpb24gfSk7CiB9CiAKLUxpbmU6
OkxpbmUoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmIGlubGluZUZvcm1hdHRpbmdDb250
ZXh0LCBjb25zdCBJbml0aWFsQ29uc3RyYWludHMmIGluaXRpYWxDb25zdHJhaW50cywgT3B0aW9u
YWw8VGV4dEFsaWduTW9kZT4gaG9yaXpvbnRhbEFsaWdubWVudCwgU2tpcEFsaWdubWVudCBza2lw
QWxpZ25tZW50KQorTGluZTo6TGluZShjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQsIE9wdGlvbmFsPFRleHRBbGlnbk1vZGU+IGhvcml6b250YWxB
bGlnbm1lbnQsIFNraXBBbGlnbm1lbnQgc2tpcEFsaWdubWVudCkKICAgICA6IG1faW5saW5lRm9y
bWF0dGluZ0NvbnRleHQoaW5saW5lRm9ybWF0dGluZ0NvbnRleHQpCi0gICAgLCBtX2luaXRpYWxT
dHJ1dChpbml0aWFsQ29uc3RyYWludHMuaGVpZ2h0QW5kQmFzZWxpbmUgPyBpbml0aWFsQ29uc3Ry
YWludHMuaGVpZ2h0QW5kQmFzZWxpbmUtPnN0cnV0IDogV1RGOjpudWxsb3B0KQotICAgICwgbV9s
aW5lTG9naWNhbFdpZHRoKGluaXRpYWxDb25zdHJhaW50cy5hdmFpbGFibGVMb2dpY2FsV2lkdGgp
CiAgICAgLCBtX2hvcml6b250YWxBbGlnbm1lbnQoaG9yaXpvbnRhbEFsaWdubWVudCkKICAgICAs
IG1fc2tpcEFsaWdubWVudChza2lwQWxpZ25tZW50ID09IFNraXBBbGlnbm1lbnQ6OlllcykKIHsK
LSAgICBBU1NFUlQobV9za2lwQWxpZ25tZW50IHx8IGluaXRpYWxDb25zdHJhaW50cy5oZWlnaHRB
bmRCYXNlbGluZSk7Ci0gICAgYXV0byBpbml0aWFsTGluZUhlaWdodCA9IGluaXRpYWxDb25zdHJh
aW50cy5oZWlnaHRBbmRCYXNlbGluZSA/IGluaXRpYWxDb25zdHJhaW50cy5oZWlnaHRBbmRCYXNl
bGluZS0+aGVpZ2h0IDogTGF5b3V0VW5pdCgpOwotICAgIGF1dG8gaW5pdGlhbEJhc2VsaW5lT2Zm
c2V0ID0gaW5pdGlhbENvbnN0cmFpbnRzLmhlaWdodEFuZEJhc2VsaW5lID8gaW5pdGlhbENvbnN0
cmFpbnRzLmhlaWdodEFuZEJhc2VsaW5lLT5iYXNlbGluZU9mZnNldCA6IExheW91dFVuaXQoKTsK
LSAgICBhdXRvIGxpbmVSZWN0ID0gRGlzcGxheTo6UmVjdCB7IGluaXRpYWxDb25zdHJhaW50cy5s
b2dpY2FsVG9wTGVmdCwgeyB9LCBpbml0aWFsTGluZUhlaWdodCB9OwotICAgIGF1dG8gYmFzZWxp
bmUgPSBMaW5lQm94OjpCYXNlbGluZSB7IGluaXRpYWxCYXNlbGluZU9mZnNldCwgaW5pdGlhbExp
bmVIZWlnaHQgLSBpbml0aWFsQmFzZWxpbmVPZmZzZXQgfTsKLSAgICBtX2xpbmVCb3ggPSBMaW5l
Qm94IHsgbGluZVJlY3QsIGJhc2VsaW5lLCBpbml0aWFsQmFzZWxpbmVPZmZzZXQgfTsKIH0KIAog
TGluZTo6fkxpbmUoKQogewogfQogCit2b2lkIExpbmU6OmluaXRpYWxpemUoY29uc3QgQ29uc3Ry
YWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIEFTU0VSVChtX3NraXBBbGlnbm1lbnQgfHwgY29u
c3RyYWludHMuaGVpZ2h0QW5kQmFzZWxpbmUpOworCisgICAgTGF5b3V0VW5pdCBpbml0aWFsTGlu
ZUhlaWdodDsKKyAgICBMYXlvdXRVbml0IGluaXRpYWxCYXNlbGluZU9mZnNldDsKKyAgICBpZiAo
Y29uc3RyYWludHMuaGVpZ2h0QW5kQmFzZWxpbmUpIHsKKyAgICAgICAgbV9pbml0aWFsU3RydXQg
PSBjb25zdHJhaW50cy5oZWlnaHRBbmRCYXNlbGluZS0+c3RydXQ7CisgICAgICAgIGluaXRpYWxM
aW5lSGVpZ2h0ID0gY29uc3RyYWludHMuaGVpZ2h0QW5kQmFzZWxpbmUtPmhlaWdodDsKKyAgICAg
ICAgaW5pdGlhbEJhc2VsaW5lT2Zmc2V0ID0gY29uc3RyYWludHMuaGVpZ2h0QW5kQmFzZWxpbmUt
PmJhc2VsaW5lT2Zmc2V0OworICAgIH0gZWxzZQorICAgICAgICBtX2luaXRpYWxTdHJ1dCA9IHsg
fTsKKworICAgIGF1dG8gbGluZVJlY3QgPSBEaXNwbGF5OjpSZWN0IHsgY29uc3RyYWludHMubG9n
aWNhbFRvcExlZnQsIHsgfSwgaW5pdGlhbExpbmVIZWlnaHQgfTsKKyAgICBhdXRvIGJhc2VsaW5l
ID0gTGluZUJveDo6QmFzZWxpbmUgeyBpbml0aWFsQmFzZWxpbmVPZmZzZXQsIGluaXRpYWxMaW5l
SGVpZ2h0IC0gaW5pdGlhbEJhc2VsaW5lT2Zmc2V0IH07CisgICAgbV9saW5lQm94ID0gTGluZUJv
eCB7IGxpbmVSZWN0LCBiYXNlbGluZSwgaW5pdGlhbEJhc2VsaW5lT2Zmc2V0IH07CisgICAgbV9s
aW5lTG9naWNhbFdpZHRoID0gY29uc3RyYWludHMuYXZhaWxhYmxlTG9naWNhbFdpZHRoOworICAg
IG1faGFzSW50cnVzaXZlRmxvYXQgPSBjb25zdHJhaW50cy5saW5lSXNDb25zdHJhaW5lZEJ5Rmxv
YXQ7CisKKyAgICBtX2lubGluZUl0ZW1SdW5zLmNsZWFyKCk7CisgICAgbV90cmltbWFibGVDb250
ZW50LmNsZWFyKCk7Cit9CisKIHN0YXRpYyBib29sIHNob3VsZFByZXNlcnZlVHJhaWxpbmdDb250
ZW50KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSkKIHsKICAgICBpZiAoIWlu
bGluZVRleHRJdGVtLmlzV2hpdGVzcGFjZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5oCmluZGV4IGI0NWQ2ZjAzYTk2ZjIzYTRj
ODViMjFkMmYzMDkxMjdjZjVkOTQ1NjYuLmZhYjI2YzFhMzM3YWVkZjY2ZGRlODM5OTBhYmI5OTAz
M2Q5NGYzYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgSW5saW5lSXRlbVJ1bjsK
IGNsYXNzIExpbmUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTGluZSk7CiBwdWJsaWM6
Ci0gICAgc3RydWN0IEluaXRpYWxDb25zdHJhaW50cyB7CisgICAgc3RydWN0IENvbnN0cmFpbnRz
IHsKICAgICAgICAgTGF5b3V0UG9pbnQgbG9naWNhbFRvcExlZnQ7CiAgICAgICAgIExheW91dFVu
aXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoOwogICAgICAgICBib29sIGxpbmVJc0NvbnN0cmFpbmVk
QnlGbG9hdCB7IGZhbHNlIH07CkBAIC01NSwxMSArNTUsMTMgQEAgcHVibGljOgogICAgICAgICBP
cHRpb25hbDxIZWlnaHRBbmRCYXNlbGluZT4gaGVpZ2h0QW5kQmFzZWxpbmU7CiAgICAgfTsKICAg
ICBlbnVtIGNsYXNzIFNraXBBbGlnbm1lbnQgeyBObywgWWVzIH07Ci0gICAgTGluZShjb25zdCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCYsIGNvbnN0IEluaXRpYWxDb25zdHJhaW50cyYsIE9wdGlv
bmFsPFRleHRBbGlnbk1vZGU+LCBTa2lwQWxpZ25tZW50KTsKKyAgICBMaW5lKGNvbnN0IElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0JiwgT3B0aW9uYWw8VGV4dEFsaWduTW9kZT4sIFNraXBBbGlnbm1l
bnQpOwogICAgIH5MaW5lKCk7CiAKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQ29uc3RyYWlu
dHMmKTsKICAgICB2b2lkIGFwcGVuZChjb25zdCBJbmxpbmVJdGVtJiwgTGF5b3V0VW5pdCBsb2dp
Y2FsV2lkdGgpOwogICAgIGJvb2wgaXNWaXN1YWxseUVtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9s
aW5lQm94LmlzQ29uc2lkZXJlZEVtcHR5KCk7IH0KKyAgICBib29sIGhhc0ludHJ1c2l2ZUZsb2F0
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNJbnRydXNpdmVGbG9hdDsgfQogICAgIExheW91dFVuaXQg
YXZhaWxhYmxlV2lkdGgoKSBjb25zdCB7IHJldHVybiBsb2dpY2FsV2lkdGgoKSAtIGNvbnRlbnRM
b2dpY2FsV2lkdGgoKTsgfQogCiAgICAgTGF5b3V0VW5pdCB0cmFpbGluZ1RyaW1tYWJsZVdpZHRo
KCkgY29uc3QgeyByZXR1cm4gbV90cmltbWFibGVDb250ZW50LndpZHRoKCk7IH0KQEAgLTY3LDYg
KzY5LDcgQEAgcHVibGljOgogICAgIGNvbnN0IExpbmVCb3gmIGxpbmVCb3goKSBjb25zdCB7IHJl
dHVybiBtX2xpbmVCb3g7IH0KICAgICB2b2lkIG1vdmVMb2dpY2FsTGVmdChMYXlvdXRVbml0KTsK
ICAgICB2b2lkIG1vdmVMb2dpY2FsUmlnaHQoTGF5b3V0VW5pdCk7CisgICAgdm9pZCBzZXRIYXNJ
bnRydXNpdmVGbG9hdCgpIHsgbV9oYXNJbnRydXNpdmVGbG9hdCA9IHRydWU7IH0KIAogICAgIHN0
cnVjdCBSdW4gewogICAgICAgICBSdW4oY29uc3QgSW5saW5lSXRlbVJ1biYpOwpAQCAtMTY3LDYg
KzE3MCw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBtX2xpbmVMb2dpY2FsV2lkdGg7CiAg
ICAgT3B0aW9uYWw8VGV4dEFsaWduTW9kZT4gbV9ob3Jpem9udGFsQWxpZ25tZW50OwogICAgIGJv
b2wgbV9za2lwQWxpZ25tZW50IHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzSW50cnVzaXZlRmxv
YXQgeyBmYWxzZSB9OwogICAgIExpbmVCb3ggbV9saW5lQm94OwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUxheW91dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5
b3V0LmNwcAppbmRleCA1NGUzZjM5ZjgwNWM4OTM1MDk3ODJjZDhkNjNkZTEzY2MxYzgyNDYyLi43
NGVmMTBhMzJjNzYyM2M4MjJhY2YzYTU0NDkzYmY2MDdlNzkxMWEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5
b3V0LmNwcApAQCAtNjcsMTAgKzY3LDggQEAgc3RhdGljIExheW91dFVuaXQgaW5saW5lSXRlbVdp
ZHRoKGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCwgY28KICAgICBy
ZXR1cm4gYm94R2VvbWV0cnkud2lkdGgoKTsKIH0KIAotTGluZUxheW91dDo6TGluZUlucHV0OjpM
aW5lSW5wdXQoY29uc3QgTGluZTo6SW5pdGlhbENvbnN0cmFpbnRzJiBpbml0aWFsTGluZUNvbnN0
cmFpbnRzLCBUZXh0QWxpZ25Nb2RlIGhvcml6b250YWxBbGlnbm1lbnQsIGNvbnN0IElubGluZUl0
ZW1zJiBpbmxpbmVJdGVtcywgdW5zaWduZWQgbGVhZGluZ0lubGluZUl0ZW1JbmRleCwgT3B0aW9u
YWw8UGFydGlhbENvbnRlbnQ+IGxlYWRpbmdQYXJ0aWFsQ29udGVudCkKLSAgICA6IGluaXRpYWxD
b25zdHJhaW50cyhpbml0aWFsTGluZUNvbnN0cmFpbnRzKQotICAgICwgaG9yaXpvbnRhbEFsaWdu
bWVudChob3Jpem9udGFsQWxpZ25tZW50KQotICAgICwgaW5saW5lSXRlbXMoaW5saW5lSXRlbXMp
CitMaW5lTGF5b3V0OjpMaW5lSW5wdXQ6OkxpbmVJbnB1dChjb25zdCBJbmxpbmVJdGVtcyYgaW5s
aW5lSXRlbXMsIHVuc2lnbmVkIGxlYWRpbmdJbmxpbmVJdGVtSW5kZXgsIE9wdGlvbmFsPFBhcnRp
YWxDb250ZW50PiBsZWFkaW5nUGFydGlhbENvbnRlbnQpCisgICAgOiBpbmxpbmVJdGVtcyhpbmxp
bmVJdGVtcykKICAgICAsIGxlYWRpbmdJbmxpbmVJdGVtSW5kZXgobGVhZGluZ0lubGluZUl0ZW1J
bmRleCkKICAgICAsIGxlYWRpbmdQYXJ0aWFsQ29udGVudChsZWFkaW5nUGFydGlhbENvbnRlbnQp
CiB7CkBAIC04OCwxMSArODYsMTAgQEAgdm9pZCBMaW5lTGF5b3V0OjpVbmNvbW1pdHRlZENvbnRl
bnQ6OnJlc2V0KCkKICAgICBtX3dpZHRoID0gMDsKIH0KIAotTGluZUxheW91dDo6TGluZUxheW91
dChjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0NvbnRleHQs
IExpbmU6OlNraXBBbGlnbm1lbnQgc2tpcEFsaWdubWVudCwgY29uc3QgTGluZUlucHV0JiBsaW5l
SW5wdXQpCitMaW5lTGF5b3V0OjpMaW5lTGF5b3V0KGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250
ZXh0JiBpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgTGluZUlucHV0JiBsaW5lSW5wdXQs
IExpbmUmIGxpbmUpCiAgICAgOiBtX2lubGluZUZvcm1hdHRpbmdDb250ZXh0KGlubGluZUZvcm1h
dHRpbmdDb250ZXh0KQogICAgICwgbV9saW5lSW5wdXQobGluZUlucHV0KQotICAgICwgbV9saW5l
KGlubGluZUZvcm1hdHRpbmdDb250ZXh0LCBsaW5lSW5wdXQuaW5pdGlhbENvbnN0cmFpbnRzLCBs
aW5lSW5wdXQuaG9yaXpvbnRhbEFsaWdubWVudCwgc2tpcEFsaWdubWVudCkKLSAgICAsIG1fbGlu
ZUhhc0ludHJ1c2l2ZUZsb2F0KGxpbmVJbnB1dC5pbml0aWFsQ29uc3RyYWludHMubGluZUlzQ29u
c3RyYWluZWRCeUZsb2F0KQorICAgICwgbV9saW5lKGxpbmUpCiB7CiB9CiAKQEAgLTEzNiw3ICsx
MzMsNyBAQCB2b2lkIExpbmVMYXlvdXQ6OmNvbW1pdFBlbmRpbmdDb250ZW50KCkKIAogTGluZUxh
eW91dDo6TGluZUNvbnRlbnQgTGluZUxheW91dDo6Y2xvc2UoKQogewotICAgIEFTU0VSVChtX2Nv
bW1pdHRlZElubGluZUl0ZW1Db3VudCB8fCBtX2xpbmVIYXNJbnRydXNpdmVGbG9hdCk7CisgICAg
QVNTRVJUKG1fY29tbWl0dGVkSW5saW5lSXRlbUNvdW50IHx8IG1fbGluZS5oYXNJbnRydXNpdmVG
bG9hdCgpKTsKICAgICBtX3VuY29tbWl0dGVkQ29udGVudC5yZXNldCgpOwogICAgIGlmICghbV9j
b21taXR0ZWRJbmxpbmVJdGVtQ291bnQpCiAgICAgICAgIHJldHVybiBMaW5lQ29udGVudCB7IHsg
fSwgeyB9LCBXVEZNb3ZlKG1fZmxvYXRzKSwgbV9saW5lLmNsb3NlKCksIG1fbGluZS5saW5lQm94
KCkgfTsKQEAgLTE3Nyw3ICsxNzQsNyBAQCBMaW5lTGF5b3V0OjpJc0VuZE9mTGluZSBMaW5lTGF5
b3V0OjpwbGFjZUlubGluZUl0ZW0oY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbQogICAgICAg
ICAgICAgaWYgKHByb2Nlc3NVbmNvbW1pdHRlZENvbnRlbnQoKSA9PSBJc0VuZE9mTGluZTo6WWVz
KQogICAgICAgICAgICAgICAgIHJldHVybiBJc0VuZE9mTGluZTo6WWVzOwogICAgICAgICB9Ci0g
ICAgICAgIGF1dG8gbGluZUlzQ29uc2lkZXJlZEVtcHR5ID0gbV9saW5lLmlzVmlzdWFsbHlFbXB0
eSgpICYmICFtX2xpbmVIYXNJbnRydXNpdmVGbG9hdDsKKyAgICAgICAgYXV0byBsaW5lSXNDb25z
aWRlcmVkRW1wdHkgPSBtX2xpbmUuaXNWaXN1YWxseUVtcHR5KCkgJiYgIW1fbGluZS5oYXNJbnRy
dXNpdmVGbG9hdCgpOwogICAgICAgICBpZiAoTGluZUJyZWFrZXIoKS5zaG91bGRXcmFwRmxvYXRC
b3goaXRlbUxvZ2ljYWxXaWR0aCwgbV9saW5lLmF2YWlsYWJsZVdpZHRoKCkgKyBtX2xpbmUudHJh
aWxpbmdUcmltbWFibGVXaWR0aCgpLCBsaW5lSXNDb25zaWRlcmVkRW1wdHkpKQogICAgICAgICAg
ICAgcmV0dXJuIElzRW5kT2ZMaW5lOjpZZXM7CiAKQEAgLTE4Nyw3ICsxODQsNyBAQCBMaW5lTGF5
b3V0OjpJc0VuZE9mTGluZSBMaW5lTGF5b3V0OjpwbGFjZUlubGluZUl0ZW0oY29uc3QgSW5saW5l
SXRlbSYgaW5saW5lSXRlbQogICAgICAgICBmbG9hdEJveC5pc0xlZnRGbG9hdGluZ1Bvc2l0aW9u
ZWQoKSA/IG1fbGluZS5tb3ZlTG9naWNhbExlZnQoaXRlbUxvZ2ljYWxXaWR0aCkgOiBtX2xpbmUu
bW92ZUxvZ2ljYWxSaWdodChpdGVtTG9naWNhbFdpZHRoKTsKICAgICAgICAgbV9mbG9hdHMuYXBw
ZW5kKG1ha2VXZWFrUHRyKGlubGluZUl0ZW0pKTsKICAgICAgICAgKyttX2NvbW1pdHRlZElubGlu
ZUl0ZW1Db3VudDsKLSAgICAgICAgbV9saW5lSGFzSW50cnVzaXZlRmxvYXQgPSB0cnVlOworICAg
ICAgICBtX2xpbmUuc2V0SGFzSW50cnVzaXZlRmxvYXQoKTsKICAgICAgICAgcmV0dXJuIElzRW5k
T2ZMaW5lOjpObzsKICAgICB9CiAgICAgLy8gRm9yY2VkIGxpbmUgYnJlYWtzIGFyZSBhbHNvIHNw
ZWNpYWwuCkBAIC0yMTMsNyArMjEwLDcgQEAgTGluZUxheW91dDo6SXNFbmRPZkxpbmUgTGluZUxh
eW91dDo6cGxhY2VJbmxpbmVJdGVtKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0KIExpbmVM
YXlvdXQ6OklzRW5kT2ZMaW5lIExpbmVMYXlvdXQ6OnByb2Nlc3NVbmNvbW1pdHRlZENvbnRlbnQo
KQogewogICAgIC8vIENoZWNrIGlmIHRoZSBwZW5kaW5nIGNvbnRlbnQgZml0cy4KLSAgICBhdXRv
IGxpbmVJc0NvbnNpZGVyZWRFbXB0eSA9IG1fbGluZS5pc1Zpc3VhbGx5RW1wdHkoKSAmJiAhbV9s
aW5lSGFzSW50cnVzaXZlRmxvYXQ7CisgICAgYXV0byBsaW5lSXNDb25zaWRlcmVkRW1wdHkgPSBt
X2xpbmUuaXNWaXN1YWxseUVtcHR5KCkgJiYgIW1fbGluZS5oYXNJbnRydXNpdmVGbG9hdCgpOwog
ICAgIGF1dG8gYnJlYWtpbmdDb250ZXh0ID0gTGluZUJyZWFrZXIoKS5icmVha2luZ0NvbnRleHRG
b3JJbmxpbmVDb250ZW50KG1fdW5jb21taXR0ZWRDb250ZW50LnJ1bnMoKSwgbV91bmNvbW1pdHRl
ZENvbnRlbnQud2lkdGgoKSwgbV9saW5lLmF2YWlsYWJsZVdpZHRoKCksIGxpbmVJc0NvbnNpZGVy
ZWRFbXB0eSk7CiAgICAgLy8gVGhlIHVuY29tbWl0dGVkIGNvbnRlbnQgY2FuIGZ1bGx5LCBwYXJ0
aWFsbHkgZml0IHRoZSBjdXJyZW50IGxpbmUgKGNvbW1pdC9wYXJ0aWFsIGNvbW1pdCkgb3Igbm90
IGF0IGFsbCAocmVzZXQpLgogICAgIGlmIChicmVha2luZ0NvbnRleHQuY29udGVudEJyZWFrID09
IExpbmVCcmVha2VyOjpCcmVha2luZ0NvbnRleHQ6OkNvbnRlbnRCcmVhazo6S2VlcCkKQEAgLTI1
Nyw2ICsyNTQsMTAgQEAgYm9vbCBMaW5lTGF5b3V0OjpzaG91bGRQcm9jZXNzVW5jb21taXR0ZWRD
b250ZW50KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0pIGMKICAgICAgICAgLy8gYW55IGNv
bnRlbnQnICcgLT4gd2hpdGVzcGFjZSBpcyBhbHdheXMgYSBjb21taXQgYm91bmRhcnkuCiAgICAg
ICAgIGlmIChkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSkuaXNXaGl0ZXNwYWNl
KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgLy8gdGV4dHRleHQgLT4gY29u
dGludW91cyBjb250ZW50LgorICAgICAgICAvLyAnICd0ZXh0IC0+IGNvbW1pdCBib3VuZGFyeS4K
KyAgICAgICAgaWYgKGxhc3RVbmNvbWl0dGVkQ29udGVudC0+aXNUZXh0KCkpCisgICAgICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KCpsYXN0VW5jb21pdHRlZENvbnRlbnQp
LmlzV2hpdGVzcGFjZSgpOwogICAgICAgICAvLyA8c3Bhbj50ZXh0IC0+IHRoZSBpbmxpbmUgY29u
dGFpbmVyIHN0YXJ0IGFuZCB0aGUgdGV4dCBjb250ZW50IGZvcm0gYW4gdW5icmVha2FibGUgY29u
dGludW91cyBjb250ZW50LgogICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0Nv
bnRhaW5lclN0YXJ0KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNzgsMTAgKzI3
OSw2IEBAIGJvb2wgTGluZUxheW91dDo6c2hvdWxkUHJvY2Vzc1VuY29tbWl0dGVkQ29udGVudChj
b25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtKSBjCiAgICAgICAgICAgICBpZiAobGFzdFVuY29t
aXR0ZWRDb250ZW50LT5pc0NvbnRhaW5lckVuZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQotICAgICAgICAvLyB0ZXh0dGV4dCAtPiBjb250aW51b3VzIGNvbnRl
bnQuCi0gICAgICAgIC8vICcgJ3RleHQgLT4gY29tbWl0IGJvdW5kYXJ5LgotICAgICAgICBpZiAo
bGFzdFVuY29taXR0ZWRDb250ZW50LT5pc1RleHQoKSkKLSAgICAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxJbmxpbmVUZXh0SXRlbT4oKmxhc3RVbmNvbWl0dGVkQ29udGVudCkuaXNXaGl0ZXNwYWNl
KCk7CiAgICAgICAgIC8vIDxpbWc+dGV4dCAtPiB0aGUgaW5saW5lIGJveCBpcyBvbiBhIGNvbW1p
dCBib3VuZGFyeS4KICAgICAgICAgaWYgKGxhc3RVbmNvbWl0dGVkQ29udGVudC0+aXNCb3goKSkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUxheW91dC5oCmluZGV4IGU3YzhmNDVh
M2FiZGJjY2Y4MGNmNWYxYjc4YWY3OTYyN2EwMDIzMzUuLmU0ODVkYTgyZDdkN2U2Mjg3YjIyNWZj
ZjYyMjJmMmZmZjQxNzQ4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5b3V0LmgKQEAgLTM2LDcgKzM2LDcgQEAg
bmFtZXNwYWNlIExheW91dCB7CiBjbGFzcyBMaW5lTGF5b3V0IHsKIHB1YmxpYzoKICAgICBzdHJ1
Y3QgTGluZUlucHV0OwotICAgIExpbmVMYXlvdXQoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQmLCBMaW5lOjpTa2lwQWxpZ25tZW50LCBjb25zdCBMaW5lSW5wdXQmKTsKKyAgICBMaW5lTGF5
b3V0KGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiwgY29uc3QgTGluZUlucHV0JiwgTGlu
ZSYpOwogCiAgICAgc3RydWN0IExpbmVDb250ZW50OwogICAgIExpbmVDb250ZW50IGxheW91dCgp
OwpAQCAtNDYsMTAgKzQ2LDggQEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBsZW5ndGg7CiAg
ICAgfTsKICAgICBzdHJ1Y3QgTGluZUlucHV0IHsKLSAgICAgICAgTGluZUlucHV0KGNvbnN0IExp
bmU6OkluaXRpYWxDb25zdHJhaW50cyYsIFRleHRBbGlnbk1vZGUgaG9yaXpvbnRhbEFsaWdubWVu
dCwgY29uc3QgSW5saW5lSXRlbXMmLCB1bnNpZ25lZCBsZWFkaW5nSW5saW5lSXRlbUluZGV4LCBP
cHRpb25hbDxQYXJ0aWFsQ29udGVudD4gbGVhZGluZ1BhcnRpYWxDb250ZW50KTsKKyAgICAgICAg
TGluZUlucHV0KGNvbnN0IElubGluZUl0ZW1zJiwgdW5zaWduZWQgbGVhZGluZ0lubGluZUl0ZW1J
bmRleCwgT3B0aW9uYWw8UGFydGlhbENvbnRlbnQ+IGxlYWRpbmdQYXJ0aWFsQ29udGVudCk7CiAK
LSAgICAgICAgTGluZTo6SW5pdGlhbENvbnN0cmFpbnRzIGluaXRpYWxDb25zdHJhaW50czsKLSAg
ICAgICAgVGV4dEFsaWduTW9kZSBob3Jpem9udGFsQWxpZ25tZW50OwogICAgICAgICBjb25zdCBJ
bmxpbmVJdGVtcyYgaW5saW5lSXRlbXM7CiAgICAgICAgIHVuc2lnbmVkIGxlYWRpbmdJbmxpbmVJ
dGVtSW5kZXggeyAwIH07CiAgICAgICAgIE9wdGlvbmFsPFBhcnRpYWxDb250ZW50PiBsZWFkaW5n
UGFydGlhbENvbnRlbnQ7CkBAIC05OCw4ICs5Niw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgbV9pbmxpbmVGb3JtYXR0aW5nQ29udGV4dDsKICAgICBj
b25zdCBMaW5lSW5wdXQmIG1fbGluZUlucHV0OwotICAgIExpbmUgbV9saW5lOwotICAgIGJvb2wg
bV9saW5lSGFzSW50cnVzaXZlRmxvYXQgeyBmYWxzZSB9OworICAgIExpbmUmIG1fbGluZTsKICAg
ICBVbmNvbW1pdHRlZENvbnRlbnQgbV91bmNvbW1pdHRlZENvbnRlbnQ7CiAgICAgdW5zaWduZWQg
bV9jb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgeyAwIH07CiAgICAgVmVjdG9yPFdlYWtQdHI8SW5s
aW5lSXRlbT4+IG1fZmxvYXRzOwo=
</data>
<flag name="review"
          id="400072"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>