<?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>198419</bug_id>
          
          <creation_ts>2019-05-31 07:06:03 -0700</creation_ts>
          <short_desc>[LFC][IFC] InlineFormattingContext::LineLayout::processInlineItemsForLine should create and destroy Line.</short_desc>
          <delta_ts>2019-05-31 10:05:41 -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>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>1540713</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-05-31 07:06:03 -0700</bug_when>
    <thetext>and return a Line::Content instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540714</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-31 07:06:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/51300837&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540715</commentid>
    <comment_count>2</comment_count>
      <attachid>371056</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-05-31 07:16:59 -0700</bug_when>
    <thetext>Created attachment 371056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540736</commentid>
    <comment_count>3</comment_count>
      <attachid>371063</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-05-31 09:34:02 -0700</bug_when>
    <thetext>Created attachment 371063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540756</commentid>
    <comment_count>4</comment_count>
      <attachid>371063</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-31 10:05:39 -0700</bug_when>
    <thetext>Comment on attachment 371063
Patch

Clearing flags on attachment: 371063

Committed r245970: &lt;https://trac.webkit.org/changeset/245970&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540757</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-31 10:05:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371056</attachid>
            <date>2019-05-31 07:16:59 -0700</date>
            <delta_ts>2019-05-31 09:34:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198419-20190531071657.patch</filename>
            <type>text/plain</type>
            <size>13297</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTNjNGI2M2E0NTY2Yjcy
ZjgzZjk4ZTk3ZTE2M2EwNjBlM2IyNWNlYy4uYjk0M2NlYTg0OTY3NDM5YTA3ZjgxMDg2ZmI5ZTc4
NTJlMmMwODkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTA1LTMxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6cHJvY2Vzc0lubGluZUl0ZW1zRm9yTGluZSBz
aG91bGQgY3JlYXRlIGFuZCBkZXN0cm95IExpbmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg0MTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUx
MzAwODM3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIHVzaW5nICJjcmVhdGVJbmxpbmVSdW5zRm9yTGlu
ZSIgbG9naWMgd2hlbiBjb21wdXRpbmcgcHJlZmVycmVkIHdpZHRoLgorICAgICAgICAxLiBMaW5l
IG9iamVjdCBpcyBub3cgY29uc3RydWN0ZWQgYW5kIGRlc3Ryb3llZCBpbiBwcm9jZXNzSW5saW5l
SXRlbXNGb3JMaW5lIChjYWxsZXIgZG9lcyBub3QgbmVlZCB0byBrbm93IGFib3V0IExpbmUpLgor
ICAgICAgICAyLiBwcm9jZXNzSW5saW5lSXRlbXNGb3JMaW5lIHJldHVybnMgYSBMaW5lOjpDb250
ZW50IGluc3RhbmNlLiAKKworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OkxpbmVJbnB1dDo6
TGluZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Y29uc3RydWN0TGluZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5
b3V0Ojpwcm9jZXNzSW5saW5lSXRlbXNGb3JMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmxheW91dCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpM
aW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVMaW5lIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmNyZWF0ZUlubGluZVJ1bnNGb3JMaW5lIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
OkxpbmVMYXlvdXQ6OnByb2Nlc3NJbmxpbmVSdW5zIGNvbnN0KTogRGVsZXRlZC4KKwogMjAxOS0w
NS0yOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNbSUZD
XSBEbyBub3QgcmV1c2UgdGhlIHNhbWUgTGluZSBvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuaAppbmRleCBjYzAzOGFjNTUxMzE3MjM4ODNhNWU2NmFhYTRkMDI0YzBlNzY3ZDc1
Li4xM2YyMDU2MTE3NTRmYTgzMWJkOWY0YWFkZWNjMTkxZWU3OGY5ZGFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTU4LDkgKzU4LDIyIEBAIHByaXZhdGU6CiAKICAgICBw
cml2YXRlOgogICAgICAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX2Zvcm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRlKCk7IH0KLSAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPExpbmU+IGNyZWF0ZUxpbmUoTGF5b3V0VW5pdCBsaW5lTG9naWNhbFRvcCwgTGF5b3V0
VW5pdCB3aWR0aENvbnN0cmFpbnQpIGNvbnN0OwotICAgICAgICB1bnNpZ25lZCBjcmVhdGVJbmxp
bmVSdW5zRm9yTGluZShMaW5lJiwgdW5zaWduZWQgZmlyc3RJbmxpbmVJdGVtSW5kZXgpIGNvbnN0
OwotICAgICAgICB2b2lkIHByb2Nlc3NJbmxpbmVSdW5zKGNvbnN0IExpbmU6OkNvbnRlbnQmLCBM
YXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKSBjb25zdDsKKworICAgICAgICBzdHJ1Y3QgTGluZUNv
bnRlbnQgeworICAgICAgICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGxhc3RJbmxpbmVJdGVtSW5k
ZXg7CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGluZTo6Q29udGVudD4gcnVuczsgICAg
CisgICAgICAgIH07CisKKyAgICAgICAgc3RydWN0IExpbmVJbnB1dCB7CisgICAgICAgICAgICBM
aW5lSW5wdXQoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2lj
YWxXaWR0aCwgdW5zaWduZWQgZmlyc3RJbmxpbmVJdGVtSW5kZXgsIGNvbnN0IElubGluZUl0ZW1z
Jik7CisKKyAgICAgICAgICAgIExheW91dFVuaXQgbG9naWNhbFRvcDsKKyAgICAgICAgICAgIExh
eW91dFVuaXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoOworICAgICAgICAgICAgdW5zaWduZWQgZmly
c3RJbmxpbmVJdGVtSW5kZXggeyAwIH07CisgICAgICAgICAgICBjb25zdCBJbmxpbmVJdGVtcyYg
aW5saW5lSXRlbXM7CisgICAgICAgIH07CisgICAgICAgIExpbmVDb250ZW50IHByb2Nlc3NJbmxp
bmVJdGVtc0ZvckxpbmUoY29uc3QgTGluZUlucHV0JikgY29uc3Q7CisgICAgICAgIHZvaWQgY3Jl
YXRlRGlzcGxheVJ1bnMoY29uc3QgTGluZTo6Q29udGVudCYsIExheW91dFVuaXQgd2lkdGhDb25z
dHJhaW50KSBjb25zdDsKICAgICAgICAgdm9pZCBjb21taXRJbmxpbmVJdGVtVG9MaW5lKExpbmUm
LCBjb25zdCBJbmxpbmVJdGVtJikgY29uc3Q7CiAgICAgICAgIHZvaWQgaGFuZGxlRmxvYXQoTGlu
ZSYsIGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IElubGluZUl0ZW0mIGZsb2F0Qm94KSBj
b25zdDsKICAgICAgICAgdm9pZCBhbGlnblJ1bnMoVGV4dEFsaWduTW9kZSwgdW5zaWduZWQgZmly
c3RSdW5JbmRleCwgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dExpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcAppbmRleCA5OThmZWRh
OTQ5ZDQ2NmIwYmJkYTk5YWQ3ZmVmNzcxZjJhYmZmMjU1Li42ZTAyZDA4N2MyNzM5MjFlOTQzZjg1
ZTE5ODE1OTYzOTA0ZjRiZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdD
b250ZXh0TGluZUxheW91dC5jcHAKQEAgLTY3LDYgKzY3LDE0IEBAIHZvaWQgVW5jb21taXR0ZWRD
b250ZW50OjpyZXNldCgpCiAgICAgbV93aWR0aCA9IDA7CiB9CiAKK0lubGluZUZvcm1hdHRpbmdD
b250ZXh0OjpMaW5lTGF5b3V0OjpMaW5lSW5wdXQ6OkxpbmVJbnB1dChMYXlvdXRVbml0IGxvZ2lj
YWxUb3AsIExheW91dFVuaXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCB1bnNpZ25lZCBmaXJzdElu
bGluZUl0ZW1JbmRleCwgY29uc3QgSW5saW5lSXRlbXMmIGlubGluZUl0ZW1zKQorICAgIDogbG9n
aWNhbFRvcChsb2dpY2FsVG9wKQorICAgICwgYXZhaWxhYmxlTG9naWNhbFdpZHRoKGF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCkKKyAgICAsIGZpcnN0SW5saW5lSXRlbUluZGV4KGZpcnN0SW5saW5lSXRl
bUluZGV4KQorICAgICwgaW5saW5lSXRlbXMoaW5saW5lSXRlbXMpCit7Cit9CisKIElubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpMaW5lTGF5b3V0KGNvbnN0IElubGluZUZvcm1h
dHRpbmdDb250ZXh0JiBpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCkKICAgICA6IG1fZm9ybWF0dGlu
Z0NvbnRleHQoaW5saW5lRm9ybWF0dGluZ0NvbnRleHQpCiAgICAgLCBtX2Zvcm1hdHRpbmdTdGF0
ZShtX2Zvcm1hdHRpbmdDb250ZXh0LmZvcm1hdHRpbmdTdGF0ZSgpKQpAQCAtNzUsMTQgKzgzLDE1
IEBAIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpMaW5lTGF5b3V0KGNvbnN0
IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBpCiB7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxMaW5l
PiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6Y3JlYXRlTGluZShMYXlvdXRV
bml0IGxpbmVMb2dpY2FsVG9wLCBMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKSBjb25zdAorc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxMaW5lPiBjb25zdHJ1Y3RMaW5lKGNvbnN0IExheW91dFN0YXRl
JiBsYXlvdXRTdGF0ZSwgY29uc3QgRmxvYXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0ZSwgY29uc3Qg
Qm94JiBmb3JtYXR0aW5nUm9vdCwKKyAgICBMYXlvdXRVbml0IGxpbmVMb2dpY2FsVG9wLCBMYXlv
dXRVbml0IGF2YWlsYWJsZVdpZHRoKQogewotICAgIGF1dG8mIGZvcm1hdHRpbmdSb290RGlzcGxh
eUJveCA9IGxheW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxheW91dEJveChtX2Zvcm1hdHRpbmdS
b290KTsKKyAgICBhdXRvJiBmb3JtYXR0aW5nUm9vdERpc3BsYXlCb3ggPSBsYXlvdXRTdGF0ZS5k
aXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGZvcm1hdHRpbmdSb290KTsKICAgICBhdXRvIGxpbmVMb2dp
Y2FsTGVmdCA9IGZvcm1hdHRpbmdSb290RGlzcGxheUJveC5jb250ZW50Qm94TGVmdCgpOwogCiAg
ICAgLy8gQ2hlY2sgZm9yIGludHJ1ZGluZyBmbG9hdHMgYW5kIGFkanVzdCBsb2dpY2FsIGxlZnQv
YXZhaWxhYmxlIHdpZHRoIGZvciB0aGlzIGxpbmUgYWNjb3JkaW5nbHkuCi0gICAgaWYgKCFtX2Zs
b2F0aW5nU3RhdGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8gZmxvYXRDb25zdHJhaW50cyA9
IG1fZmxvYXRpbmdTdGF0ZS5jb25zdHJhaW50cyh7IGxpbmVMb2dpY2FsVG9wIH0sIG1fZm9ybWF0
dGluZ1Jvb3QpOworICAgIGlmICghZmxvYXRpbmdTdGF0ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAg
YXV0byBmbG9hdENvbnN0cmFpbnRzID0gZmxvYXRpbmdTdGF0ZS5jb25zdHJhaW50cyh7IGxpbmVM
b2dpY2FsVG9wIH0sIGZvcm1hdHRpbmdSb290KTsKICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlc2Ug
Y29uc3RyYWludHMgYWN0dWFsbHkgcHV0IGxpbWl0YXRpb24gb24gdGhlIGxpbmUuCiAgICAgICAg
IGlmIChmbG9hdENvbnN0cmFpbnRzLmxlZnQgJiYgKmZsb2F0Q29uc3RyYWludHMubGVmdCA8PSBm
b3JtYXR0aW5nUm9vdERpc3BsYXlCb3guY29udGVudEJveExlZnQoKSkKICAgICAgICAgICAgIGZs
b2F0Q29uc3RyYWludHMubGVmdCA9IHsgfTsKQEAgLTEwNCw1OSArMTEzLDY0IEBAIHN0ZDo6dW5p
cXVlX3B0cjxMaW5lPiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6Y3JlYXRl
TGluZShMYXlvdXRVbml0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvJiBmb3JtYXR0aW5n
Um9vdFN0eWxlID0gbV9mb3JtYXR0aW5nUm9vdC5zdHlsZSgpOworICAgIGF1dG8mIGZvcm1hdHRp
bmdSb290U3R5bGUgPSBmb3JtYXR0aW5nUm9vdC5zdHlsZSgpOwogICAgIGF1dG8gbWltaW11bUxp
bmVIZWlnaHQgPSBmb3JtYXR0aW5nUm9vdFN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpOwogICAg
IGF1dG8gYmFzZWxpbmVPZmZzZXQgPSBMaW5lOjpoYWxmTGVhZGluZ01ldHJpY3MoZm9ybWF0dGlu
Z1Jvb3RTdHlsZS5mb250TWV0cmljcygpLCBtaW1pbXVtTGluZUhlaWdodCkuaGVpZ2h0OwotICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPExpbmU+KGxheW91dFN0YXRlKCksIExheW91dFBvaW50
IHsgbGluZUxvZ2ljYWxMZWZ0LCBsaW5lTG9naWNhbFRvcCB9LCBhdmFpbGFibGVXaWR0aCwgbWlt
aW11bUxpbmVIZWlnaHQsIGJhc2VsaW5lT2Zmc2V0KTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxMaW5lPihsYXlvdXRTdGF0ZSwgTGF5b3V0UG9pbnQgeyBsaW5lTG9naWNhbExlZnQsIGxp
bmVMb2dpY2FsVG9wIH0sIGF2YWlsYWJsZVdpZHRoLCBtaW1pbXVtTGluZUhlaWdodCwgYmFzZWxp
bmVPZmZzZXQpOwogfQogCi11bnNpZ25lZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxh
eW91dDo6Y3JlYXRlSW5saW5lUnVuc0ZvckxpbmUoTGluZSYgbGluZSwgdW5zaWduZWQgc3RhcnRJ
bmxpbmVJdGVtSW5kZXgpIGNvbnN0CitJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91
dDo6TGluZUNvbnRlbnQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OnByb2Nl
c3NJbmxpbmVJdGVtc0ZvckxpbmUoY29uc3QgTGluZUlucHV0JiBsaW5lSW5wdXQpIGNvbnN0CiB7
CisgICAgYXV0byBsaW5lID0gY29uc3RydWN0TGluZShsYXlvdXRTdGF0ZSgpLCBtX2Zsb2F0aW5n
U3RhdGUsIG1fZm9ybWF0dGluZ1Jvb3QsIGxpbmVJbnB1dC5sb2dpY2FsVG9wLCBsaW5lSW5wdXQu
YXZhaWxhYmxlTG9naWNhbFdpZHRoKTsKICAgICBhdXRvIGZsb2F0aW5nQ29udGV4dCA9IEZsb2F0
aW5nQ29udGV4dCB7IG1fZmxvYXRpbmdTdGF0ZSB9OwotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBs
YXN0Q29tbWl0dGVkSW5kZXg7CisgICAgdW5zaWduZWQgY29tbWl0dGVkSW5saW5lSXRlbUNvdW50
ID0gMDsKIAogICAgIFVuY29tbWl0dGVkQ29udGVudCB1bmNvbW1pdHRlZENvbnRlbnQ7CiAgICAg
YXV0byBjb21taXRQZW5kaW5nQ29udGVudCA9IFsmXSB7CiAgICAgICAgIGlmICh1bmNvbW1pdHRl
ZENvbnRlbnQuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxhc3RD
b21taXR0ZWRJbmRleCA9IGxhc3RDb21taXR0ZWRJbmRleC52YWx1ZU9yKHN0YXJ0SW5saW5lSXRl
bUluZGV4KSArIHVuY29tbWl0dGVkQ29udGVudC5zaXplKCk7CisgICAgICAgIGNvbW1pdHRlZElu
bGluZUl0ZW1Db3VudCArPSB1bmNvbW1pdHRlZENvbnRlbnQuc2l6ZSgpOyAKICAgICAgICAgZm9y
IChhdXRvKiB1bmNvbW1pdHRlZCA6IHVuY29tbWl0dGVkQ29udGVudC5pbmxpbmVJdGVtcygpKQot
ICAgICAgICAgICAgY29tbWl0SW5saW5lSXRlbVRvTGluZShsaW5lLCAqdW5jb21taXR0ZWQpOwor
ICAgICAgICAgICAgY29tbWl0SW5saW5lSXRlbVRvTGluZSgqbGluZSwgKnVuY29tbWl0dGVkKTsK
ICAgICAgICAgdW5jb21taXR0ZWRDb250ZW50LnJlc2V0KCk7CiAgICAgfTsKIAorICAgIGF1dG8g
Y2xvc2VMaW5lID0gWyZdIHsKKyAgICAgICAgLy8gVGhpcyBtaWdodCBjaGFuZ2UgYXQgc29tZSBw
b2ludC4KKyAgICAgICAgQVNTRVJUKGNvbW1pdHRlZElubGluZUl0ZW1Db3VudCk7CisgICAgICAg
IHJldHVybiBMaW5lQ29udGVudCB7IGxpbmVJbnB1dC5maXJzdElubGluZUl0ZW1JbmRleCArIChj
b21taXR0ZWRJbmxpbmVJdGVtQ291bnQgLSAxKSwgbGluZS0+Y2xvc2UoKSB9OworICAgIH07CiAg
ICAgTGluZUJyZWFrZXIgbGluZUJyZWFrZXIobGF5b3V0U3RhdGUoKSk7CiAgICAgLy8gSXRlcmF0
ZSB0aHJvdWdoIHRoZSBpbmxpbmUgY29udGVudCBhbmQgcGxhY2UgdGhlIGlubGluZSBib3hlcyBv
biB0aGUgY3VycmVudCBsaW5lLgotICAgIGF1dG8mIGlubGluZUNvbnRlbnQgPSBtX2Zvcm1hdHRp
bmdTdGF0ZS5pbmxpbmVJdGVtcygpOwotICAgIGZvciAoYXV0byBpbmxpbmVJdGVtSW5kZXggPSBz
dGFydElubGluZUl0ZW1JbmRleDsgaW5saW5lSXRlbUluZGV4IDwgaW5saW5lQ29udGVudC5zaXpl
KCk7ICsraW5saW5lSXRlbUluZGV4KSB7Ci0gICAgICAgIGF1dG8mIGlubGluZUl0ZW0gPSBpbmxp
bmVDb250ZW50W2lubGluZUl0ZW1JbmRleF07CisgICAgZm9yIChhdXRvIGlubGluZUl0ZW1JbmRl
eCA9IGxpbmVJbnB1dC5maXJzdElubGluZUl0ZW1JbmRleDsgaW5saW5lSXRlbUluZGV4IDwgbGlu
ZUlucHV0LmlubGluZUl0ZW1zLnNpemUoKTsgKytpbmxpbmVJdGVtSW5kZXgpIHsKKyAgICAgICAg
YXV0byYgaW5saW5lSXRlbSA9IGxpbmVJbnB1dC5pbmxpbmVJdGVtc1tpbmxpbmVJdGVtSW5kZXhd
OwogICAgICAgICBpZiAoaW5saW5lSXRlbS0+aXNIYXJkTGluZUJyZWFrKCkpIHsKICAgICAgICAg
ICAgIHVuY29tbWl0dGVkQ29udGVudC5hZGQoKmlubGluZUl0ZW0pOwogICAgICAgICAgICAgY29t
bWl0UGVuZGluZ0NvbnRlbnQoKTsKLSAgICAgICAgICAgIHJldHVybiAqbGFzdENvbW1pdHRlZElu
ZGV4OworICAgICAgICAgICAgcmV0dXJuIGNsb3NlTGluZSgpOwogICAgICAgICB9Ci0gICAgICAg
IGF1dG8gYXZhaWxhYmxlV2lkdGggPSBsaW5lLmF2YWlsYWJsZVdpZHRoKCkgLSB1bmNvbW1pdHRl
ZENvbnRlbnQud2lkdGgoKTsKLSAgICAgICAgYXV0byBjdXJyZW50TG9naWNhbFJpZ2h0ID0gbGlu
ZS5jb250ZW50TG9naWNhbFJpZ2h0KCkgKyB1bmNvbW1pdHRlZENvbnRlbnQud2lkdGgoKTsKKyAg
ICAgICAgYXV0byBhdmFpbGFibGVXaWR0aCA9IGxpbmUtPmF2YWlsYWJsZVdpZHRoKCkgLSB1bmNv
bW1pdHRlZENvbnRlbnQud2lkdGgoKTsKKyAgICAgICAgYXV0byBjdXJyZW50TG9naWNhbFJpZ2h0
ID0gbGluZS0+Y29udGVudExvZ2ljYWxSaWdodCgpICsgdW5jb21taXR0ZWRDb250ZW50LndpZHRo
KCk7CiAgICAgICAgIC8vIEZJWE1FOiBFbnN1cmUgTGluZUNvbnRleHQ6OnRyaW1tYWJsZVdpZHRo
IGluY2x1ZGVzIHVuY29tbWl0dGVkIGNvbnRlbnQgaWYgbmVlZGVkLgotICAgICAgICBhdXRvIGJy
ZWFraW5nQ29udGV4dCA9IGxpbmVCcmVha2VyLmJyZWFraW5nQ29udGV4dCgqaW5saW5lSXRlbSwg
eyBhdmFpbGFibGVXaWR0aCwgY3VycmVudExvZ2ljYWxSaWdodCwgbGluZS50cmFpbGluZ1RyaW1t
YWJsZVdpZHRoKCksICFsaW5lLmhhc0NvbnRlbnQoKSB9KTsKKyAgICAgICAgYXV0byBicmVha2lu
Z0NvbnRleHQgPSBsaW5lQnJlYWtlci5icmVha2luZ0NvbnRleHQoKmlubGluZUl0ZW0sIHsgYXZh
aWxhYmxlV2lkdGgsIGN1cnJlbnRMb2dpY2FsUmlnaHQsIGxpbmUtPnRyYWlsaW5nVHJpbW1hYmxl
V2lkdGgoKSwgIWxpbmUtPmhhc0NvbnRlbnQoKSB9KTsKICAgICAgICAgaWYgKGJyZWFraW5nQ29u
dGV4dC5pc0F0QnJlYWtpbmdPcHBvcnR1bml0eSkKICAgICAgICAgICAgIGNvbW1pdFBlbmRpbmdD
b250ZW50KCk7CiAKICAgICAgICAgLy8gQ29udGVudCBkb2VzIG5vdCBmaXQgdGhlIGN1cnJlbnQg
bGluZS4KICAgICAgICAgaWYgKGJyZWFraW5nQ29udGV4dC5icmVha2luZ0JlaGF2aW9yID09IExp
bmVCcmVha2VyOjpCcmVha2luZ0JlaGF2aW9yOjpXcmFwKQotICAgICAgICAgICAgcmV0dXJuICps
YXN0Q29tbWl0dGVkSW5kZXg7CisgICAgICAgICAgICByZXR1cm4gY2xvc2VMaW5lKCk7CiAKICAg
ICAgICAgLy8gUGFydGlhbCBjb250ZW50IHN0YXlzIG9uIHRoZSBjdXJyZW50IGxpbmUuIAogICAg
ICAgICBpZiAoYnJlYWtpbmdDb250ZXh0LmJyZWFraW5nQmVoYXZpb3IgPT0gTGluZUJyZWFrZXI6
OkJyZWFraW5nQmVoYXZpb3I6OkJyZWFrKSB7CiAgICAgICAgICAgICBBU1NFUlQoaW5saW5lSXRl
bS0+aXNUZXh0KCkpOwogCiAgICAgICAgICAgICBBU1NFUlRfTk9UX0lNUExFTUVOVEVEX1lFVCgp
OwotICAgICAgICAgICAgcmV0dXJuICpsYXN0Q29tbWl0dGVkSW5kZXg7CisgICAgICAgICAgICBy
ZXR1cm4gY2xvc2VMaW5lKCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoaW5saW5lSXRlbS0+
aXNGbG9hdCgpKSB7Ci0gICAgICAgICAgICBoYW5kbGVGbG9hdChsaW5lLCBmbG9hdGluZ0NvbnRl
eHQsICppbmxpbmVJdGVtKTsKKyAgICAgICAgICAgIGhhbmRsZUZsb2F0KCpsaW5lLCBmbG9hdGlu
Z0NvbnRleHQsICppbmxpbmVJdGVtKTsKKyAgICAgICAgICAgICsrY29tbWl0dGVkSW5saW5lSXRl
bUNvdW50OwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtMTY1LDI0ICsx
NzksMjMgQEAgdW5zaWduZWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmNy
ZWF0ZUlubGluZVJ1bnNGb3JMaW5lKExpbmUmIGxpbmUKICAgICAgICAgICAgIGNvbW1pdFBlbmRp
bmdDb250ZW50KCk7CiAgICAgfQogICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KCk7Ci0gICAgcmV0
dXJuICpsYXN0Q29tbWl0dGVkSW5kZXg7CisgICAgcmV0dXJuIGNsb3NlTGluZSgpOwogfQogCiB2
b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpsYXlvdXQoTGF5b3V0VW5p
dCB3aWR0aENvbnN0cmFpbnQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFtX2Zvcm1hdHRpbmdTdGF0
ZS5pbmxpbmVJdGVtcygpLmlzRW1wdHkoKSk7CiAKLSAgICB1bnNpZ25lZCBzdGFydElubGluZUl0
ZW1JbmRleCA9IDA7CiAgICAgYXV0byBsaW5lTG9naWNhbFRvcCA9IGxheW91dFN0YXRlKCkuZGlz
cGxheUJveEZvckxheW91dEJveChtX2Zvcm1hdHRpbmdSb290KS5jb250ZW50Qm94VG9wKCk7Ci0g
ICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgYXV0byBsaW5lID0gY3JlYXRlTGluZShsaW5lTG9n
aWNhbFRvcCwgd2lkdGhDb25zdHJhaW50KTsKLSAgICAgICAgYXV0byBuZXh0SW5saW5lSXRlbUlu
ZGV4ID0gY3JlYXRlSW5saW5lUnVuc0ZvckxpbmUoKmxpbmUsIHN0YXJ0SW5saW5lSXRlbUluZGV4
KTsKLSAgICAgICAgYXV0byBsaW5lQ29udGVudCA9IGxpbmUtPmNsb3NlKCk7Ci0gICAgICAgIHBy
b2Nlc3NJbmxpbmVSdW5zKCpsaW5lQ29udGVudCwgbGluZS0+YXZhaWxhYmxlV2lkdGgoKSk7Ci0g
ICAgICAgIGlmIChuZXh0SW5saW5lSXRlbUluZGV4ID09IG1fZm9ybWF0dGluZ1N0YXRlLmlubGlu
ZUl0ZW1zKCkuc2l6ZSgpKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIHN0YXJ0SW5saW5l
SXRlbUluZGV4ID0gbmV4dElubGluZUl0ZW1JbmRleDsKLSAgICAgICAgbGluZUxvZ2ljYWxUb3Ag
PSBsaW5lQ29udGVudC0+bG9naWNhbEJvdHRvbSgpOworICAgIGF1dG8mIGlubGluZUl0ZW1zID0g
bV9mb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKTsKKyAgICB1bnNpZ25lZCBjdXJyZW50SW5s
aW5lSXRlbUluZGV4ID0gMDsKKyAgICB3aGlsZSAoY3VycmVudElubGluZUl0ZW1JbmRleCA8IGlu
bGluZUl0ZW1zLnNpemUoKSkgeworICAgICAgICBhdXRvIGxpbmVDb250ZW50ID0gcHJvY2Vzc0lu
bGluZUl0ZW1zRm9yTGluZSh7IGxpbmVMb2dpY2FsVG9wLCB3aWR0aENvbnN0cmFpbnQsIGN1cnJl
bnRJbmxpbmVJdGVtSW5kZXgsIGlubGluZUl0ZW1zIH0pOworICAgICAgICBjcmVhdGVEaXNwbGF5
UnVucygqbGluZUNvbnRlbnQucnVucywgd2lkdGhDb25zdHJhaW50KTsKKyAgICAgICAgLy8gV2Ug
c2hvdWxkIGFsd2F5cyBwdXQgYXQgbGVhc3Qgb25lIHJ1biBvbiB0aGUgbGluZSBhdG0uIFRoaXMg
bWlnaHQgY2hhbmdlIGxhdGVyIG9uIHRob3VnaC4KKyAgICAgICAgQVNTRVJUKGxpbmVDb250ZW50
Lmxhc3RJbmxpbmVJdGVtSW5kZXgpOworICAgICAgICBjdXJyZW50SW5saW5lSXRlbUluZGV4ID0g
KmxpbmVDb250ZW50Lmxhc3RJbmxpbmVJdGVtSW5kZXggKyAxOworICAgICAgICBsaW5lTG9naWNh
bFRvcCA9IGxpbmVDb250ZW50LnJ1bnMtPmxvZ2ljYWxCb3R0b20oKTsKICAgICB9CiB9CiAKQEAg
LTIxNCw3ICsyMjcsNyBAQCBMYXlvdXRVbml0IElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5l
TGF5b3V0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoKExheW91dFVuaQogICAgIHJldHVybiBzdGQ6
Om1heChtYXhpbXVtTGluZVdpZHRoLCBsaW5lTG9naWNhbFJpZ2h0IC0gdHJpbW1hYmxlVHJhaWxp
bmdXaWR0aCk7CiB9CiAKLXZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6
OnByb2Nlc3NJbmxpbmVSdW5zKGNvbnN0IExpbmU6OkNvbnRlbnQmIGxpbmVDb250ZW50LCBMYXlv
dXRVbml0IGF2YWlsYWJsZVdpZHRoKSBjb25zdAordm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dDo6TGluZUxheW91dDo6Y3JlYXRlRGlzcGxheVJ1bnMoY29uc3QgTGluZTo6Q29udGVudCYgbGlu
ZUNvbnRlbnQsIExheW91dFVuaXQgd2lkdGhDb25zdHJhaW50KSBjb25zdAogewogICAgIGlmIChs
aW5lQ29udGVudC5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gU3BlYyB0ZWxscyB1cyB0byBjcmVh
dGUgYSB6ZXJvIGhlaWdodCwgZW1wdHkgbGluZSBib3guCkBAIC0zMTMsNyArMzI2LDcgQEAgdm9p
ZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6cHJvY2Vzc0lubGluZVJ1bnMo
Y29uc3QgTGluZTo6Q29udGVudCYKICAgICAvLyBGSVhNRSBsaW5lYm94IG5lZWRzIHRvIGJlIGFq
dXN0ZWQgYWZ0ZXIgY29udGVudCBhbGlnbm1lbnQuCiAgICAgbV9mb3JtYXR0aW5nU3RhdGUuYWRk
TGluZUJveCh7IGxpbmVCb3ggfSk7CiAgICAgaWYgKCFsaW5lQ29udGVudC5pc1Zpc3VhbGx5RW1w
dHkoKSkKLSAgICAgICAgYWxpZ25SdW5zKG1fZm9ybWF0dGluZ1Jvb3Quc3R5bGUoKS50ZXh0QWxp
Z24oKSwgcHJldmlvdXNMaW5lTGFzdFJ1bkluZGV4LnZhbHVlT3IoLTEpICsgMSwgYXZhaWxhYmxl
V2lkdGgpOworICAgICAgICBhbGlnblJ1bnMobV9mb3JtYXR0aW5nUm9vdC5zdHlsZSgpLnRleHRB
bGlnbigpLCBwcmV2aW91c0xpbmVMYXN0UnVuSW5kZXgudmFsdWVPcigtMSkgKyAxLCB3aWR0aENv
bnN0cmFpbnQgLSBsaW5lQ29udGVudC5sb2dpY2FsV2lkdGgoKSk7CiB9CiAKIHZvaWQgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmhhbmRsZUZsb2F0KExpbmUmIGxpbmUsIGNv
bnN0IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBJbmxpbmVJdGVtJiBm
bG9hdEl0ZW0pIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371063</attachid>
            <date>2019-05-31 09:34:02 -0700</date>
            <delta_ts>2019-05-31 10:05:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198419-20190531093401.patch</filename>
            <type>text/plain</type>
            <size>13256</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1OTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE2YTk2MDU1NWQxNTY5
MzMyMzIyOGM3YmFhN2I2ZGY1NWM5NjZkMS4uMmFmYTE2OWM4MDM4Zjg1YTg0ZDQ1ZTljZTMyOTEz
MmM4M2MxOGY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTA1LTMxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6cHJvY2Vzc0lubGluZUl0ZW1zRm9yTGluZSBz
aG91bGQgY3JlYXRlIGFuZCBkZXN0cm95IExpbmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg0MTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUx
MzAwODM3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAg
IFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIHVzaW5nICJjcmVhdGVJbmxpbmVSdW5zRm9yTGlu
ZSIgbG9naWMgd2hlbiBjb21wdXRpbmcgcHJlZmVycmVkIHdpZHRoLgorICAgICAgICAxLiBMaW5l
IG9iamVjdCBpcyBub3cgY29uc3RydWN0ZWQgYW5kIGRlc3Ryb3llZCBpbiBwcm9jZXNzSW5saW5l
SXRlbXNGb3JMaW5lIChjYWxsZXIgZG9lcyBub3QgbmVlZCB0byBrbm93IGFib3V0IExpbmUpLgor
ICAgICAgICAyLiBwcm9jZXNzSW5saW5lSXRlbXNGb3JMaW5lIHJldHVybnMgYSBMaW5lOjpDb250
ZW50IGluc3RhbmNlLgorCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6TGluZUlucHV0OjpM
aW5lSW5wdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0Ojpjb25zdHJ1Y3RMaW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlv
dXQ6OnByb2Nlc3NJbmxpbmVJdGVtc0ZvckxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6bGF5b3V0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Okxp
bmVMYXlvdXQ6OmNyZWF0ZURpc3BsYXlSdW5zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmNyZWF0ZUxpbmUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6TGluZUxheW91dDo6Y3JlYXRlSW5saW5lUnVuc0ZvckxpbmUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
TGluZUxheW91dDo6cHJvY2Vzc0lubGluZVJ1bnMgY29uc3QpOiBEZWxldGVkLgorCiAyMDE5LTA1
LTMxICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDU5NDYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
aAppbmRleCBjYzAzOGFjNTUxMzE3MjM4ODNhNWU2NmFhYTRkMDI0YzBlNzY3ZDc1Li4zYTVkN2Jj
ZmJkZGQwOTZiOTRkZDE4M2Q4ZTM4NThiZDcxYjJiZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmgKQEAgLTU4LDkgKzU4LDIyIEBAIHByaXZhdGU6CiAKICAgICBwcml2YXRlOgog
ICAgICAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1h
dHRpbmdDb250ZXh0LmxheW91dFN0YXRlKCk7IH0KLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPExp
bmU+IGNyZWF0ZUxpbmUoTGF5b3V0VW5pdCBsaW5lTG9naWNhbFRvcCwgTGF5b3V0VW5pdCB3aWR0
aENvbnN0cmFpbnQpIGNvbnN0OwotICAgICAgICB1bnNpZ25lZCBjcmVhdGVJbmxpbmVSdW5zRm9y
TGluZShMaW5lJiwgdW5zaWduZWQgZmlyc3RJbmxpbmVJdGVtSW5kZXgpIGNvbnN0OwotICAgICAg
ICB2b2lkIHByb2Nlc3NJbmxpbmVSdW5zKGNvbnN0IExpbmU6OkNvbnRlbnQmLCBMYXlvdXRVbml0
IGF2YWlsYWJsZVdpZHRoKSBjb25zdDsKKworICAgICAgICBzdHJ1Y3QgTGluZUNvbnRlbnQgewor
ICAgICAgICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGxhc3RJbmxpbmVJdGVtSW5kZXg7CisgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGluZTo6Q29udGVudD4gcnVuczsKKyAgICAgICAgfTsK
KworICAgICAgICBzdHJ1Y3QgTGluZUlucHV0IHsKKyAgICAgICAgICAgIExpbmVJbnB1dChMYXlv
dXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCB1bnNp
Z25lZCBmaXJzdElubGluZUl0ZW1JbmRleCwgY29uc3QgSW5saW5lSXRlbXMmKTsKKworICAgICAg
ICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wOworICAgICAgICAgICAgTGF5b3V0VW5pdCBhdmFp
bGFibGVMb2dpY2FsV2lkdGg7CisgICAgICAgICAgICB1bnNpZ25lZCBmaXJzdElubGluZUl0ZW1J
bmRleCB7IDAgfTsKKyAgICAgICAgICAgIGNvbnN0IElubGluZUl0ZW1zJiBpbmxpbmVJdGVtczsK
KyAgICAgICAgfTsKKyAgICAgICAgTGluZUNvbnRlbnQgcGxhY2VJbmxpbmVJdGVtcyhjb25zdCBM
aW5lSW5wdXQmKSBjb25zdDsKKyAgICAgICAgdm9pZCBjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBM
aW5lOjpDb250ZW50JiwgTGF5b3V0VW5pdCB3aWR0aENvbnN0cmFpbnQpIGNvbnN0OwogICAgICAg
ICB2b2lkIGNvbW1pdElubGluZUl0ZW1Ub0xpbmUoTGluZSYsIGNvbnN0IElubGluZUl0ZW0mKSBj
b25zdDsKICAgICAgICAgdm9pZCBoYW5kbGVGbG9hdChMaW5lJiwgY29uc3QgRmxvYXRpbmdDb250
ZXh0JiwgY29uc3QgSW5saW5lSXRlbSYgZmxvYXRCb3gpIGNvbnN0OwogICAgICAgICB2b2lkIGFs
aWduUnVucyhUZXh0QWxpZ25Nb2RlLCB1bnNpZ25lZCBmaXJzdFJ1bkluZGV4LCBMYXlvdXRVbml0
IGF2YWlsYWJsZVdpZHRoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dExpbmVMYXlvdXQuY3BwCmluZGV4IDk5OGZlZGE5NDlkNDY2YjBiYmRhOTlhZDdmZWY3
NzFmMmFiZmYyNTUuLmZiNjRlMmM5Nzc0MmRmMWZkYWI5ZDYyMmI4NDM5OTY4N2EyOGM0MGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcApA
QCAtNjcsNiArNjcsMTQgQEAgdm9pZCBVbmNvbW1pdHRlZENvbnRlbnQ6OnJlc2V0KCkKICAgICBt
X3dpZHRoID0gMDsKIH0KIAorSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6Okxp
bmVJbnB1dDo6TGluZUlucHV0KExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBhdmFp
bGFibGVMb2dpY2FsV2lkdGgsIHVuc2lnbmVkIGZpcnN0SW5saW5lSXRlbUluZGV4LCBjb25zdCBJ
bmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCisgICAgOiBsb2dpY2FsVG9wKGxvZ2ljYWxUb3ApCisg
ICAgLCBhdmFpbGFibGVMb2dpY2FsV2lkdGgoYXZhaWxhYmxlTG9naWNhbFdpZHRoKQorICAgICwg
Zmlyc3RJbmxpbmVJdGVtSW5kZXgoZmlyc3RJbmxpbmVJdGVtSW5kZXgpCisgICAgLCBpbmxpbmVJ
dGVtcyhpbmxpbmVJdGVtcykKK3sKK30KKwogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVM
YXlvdXQ6OkxpbmVMYXlvdXQoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmIGlubGluZUZv
cm1hdHRpbmdDb250ZXh0KQogICAgIDogbV9mb3JtYXR0aW5nQ29udGV4dChpbmxpbmVGb3JtYXR0
aW5nQ29udGV4dCkKICAgICAsIG1fZm9ybWF0dGluZ1N0YXRlKG1fZm9ybWF0dGluZ0NvbnRleHQu
Zm9ybWF0dGluZ1N0YXRlKCkpCkBAIC03NSwxNCArODMsMTUgQEAgSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQ6OkxpbmVMYXlvdXQ6OkxpbmVMYXlvdXQoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQmIGkKIHsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPExpbmU+IElubGluZUZvcm1hdHRpbmdDb250
ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVMaW5lKExheW91dFVuaXQgbGluZUxvZ2ljYWxUb3AsIExh
eW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpIGNvbnN0CitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPExp
bmU+IGNvbnN0cnVjdExpbmUoY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBG
bG9hdGluZ1N0YXRlJiBmbG9hdGluZ1N0YXRlLCBjb25zdCBCb3gmIGZvcm1hdHRpbmdSb290LAor
ICAgIExheW91dFVuaXQgbGluZUxvZ2ljYWxUb3AsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgp
CiB7Ci0gICAgYXV0byYgZm9ybWF0dGluZ1Jvb3REaXNwbGF5Qm94ID0gbGF5b3V0U3RhdGUoKS5k
aXNwbGF5Qm94Rm9yTGF5b3V0Qm94KG1fZm9ybWF0dGluZ1Jvb3QpOworICAgIGF1dG8mIGZvcm1h
dHRpbmdSb290RGlzcGxheUJveCA9IGxheW91dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3go
Zm9ybWF0dGluZ1Jvb3QpOwogICAgIGF1dG8gbGluZUxvZ2ljYWxMZWZ0ID0gZm9ybWF0dGluZ1Jv
b3REaXNwbGF5Qm94LmNvbnRlbnRCb3hMZWZ0KCk7CiAKICAgICAvLyBDaGVjayBmb3IgaW50cnVk
aW5nIGZsb2F0cyBhbmQgYWRqdXN0IGxvZ2ljYWwgbGVmdC9hdmFpbGFibGUgd2lkdGggZm9yIHRo
aXMgbGluZSBhY2NvcmRpbmdseS4KLSAgICBpZiAoIW1fZmxvYXRpbmdTdGF0ZS5pc0VtcHR5KCkp
IHsKLSAgICAgICAgYXV0byBmbG9hdENvbnN0cmFpbnRzID0gbV9mbG9hdGluZ1N0YXRlLmNvbnN0
cmFpbnRzKHsgbGluZUxvZ2ljYWxUb3AgfSwgbV9mb3JtYXR0aW5nUm9vdCk7CisgICAgaWYgKCFm
bG9hdGluZ1N0YXRlLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIGZsb2F0Q29uc3RyYWludHMg
PSBmbG9hdGluZ1N0YXRlLmNvbnN0cmFpbnRzKHsgbGluZUxvZ2ljYWxUb3AgfSwgZm9ybWF0dGlu
Z1Jvb3QpOwogICAgICAgICAvLyBDaGVjayBpZiB0aGVzZSBjb25zdHJhaW50cyBhY3R1YWxseSBw
dXQgbGltaXRhdGlvbiBvbiB0aGUgbGluZS4KICAgICAgICAgaWYgKGZsb2F0Q29uc3RyYWludHMu
bGVmdCAmJiAqZmxvYXRDb25zdHJhaW50cy5sZWZ0IDw9IGZvcm1hdHRpbmdSb290RGlzcGxheUJv
eC5jb250ZW50Qm94TGVmdCgpKQogICAgICAgICAgICAgZmxvYXRDb25zdHJhaW50cy5sZWZ0ID0g
eyB9OwpAQCAtMTA0LDU5ICsxMTMsNjQgQEAgc3RkOjp1bmlxdWVfcHRyPExpbmU+IElubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVMaW5lKExheW91dFVuaXQKICAgICAg
ICAgfQogICAgIH0KIAotICAgIGF1dG8mIGZvcm1hdHRpbmdSb290U3R5bGUgPSBtX2Zvcm1hdHRp
bmdSb290LnN0eWxlKCk7CisgICAgYXV0byYgZm9ybWF0dGluZ1Jvb3RTdHlsZSA9IGZvcm1hdHRp
bmdSb290LnN0eWxlKCk7CiAgICAgYXV0byBtaW1pbXVtTGluZUhlaWdodCA9IGZvcm1hdHRpbmdS
b290U3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCk7CiAgICAgYXV0byBiYXNlbGluZU9mZnNldCA9
IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3JtYXR0aW5nUm9vdFN0eWxlLmZvbnRNZXRyaWNz
KCksIG1pbWltdW1MaW5lSGVpZ2h0KS5oZWlnaHQ7Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8TGluZT4obGF5b3V0U3RhdGUoKSwgTGF5b3V0UG9pbnQgeyBsaW5lTG9naWNhbExlZnQsIGxp
bmVMb2dpY2FsVG9wIH0sIGF2YWlsYWJsZVdpZHRoLCBtaW1pbXVtTGluZUhlaWdodCwgYmFzZWxp
bmVPZmZzZXQpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPExpbmU+KGxheW91dFN0YXRl
LCBMYXlvdXRQb2ludCB7IGxpbmVMb2dpY2FsTGVmdCwgbGluZUxvZ2ljYWxUb3AgfSwgYXZhaWxh
YmxlV2lkdGgsIG1pbWltdW1MaW5lSGVpZ2h0LCBiYXNlbGluZU9mZnNldCk7CiB9CiAKLXVuc2ln
bmVkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVJbmxpbmVSdW5z
Rm9yTGluZShMaW5lJiBsaW5lLCB1bnNpZ25lZCBzdGFydElubGluZUl0ZW1JbmRleCkgY29uc3QK
K0lubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpMaW5lQ29udGVudCBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6cGxhY2VJbmxpbmVJdGVtcyhjb25zdCBMaW5l
SW5wdXQmIGxpbmVJbnB1dCkgY29uc3QKIHsKKyAgICBhdXRvIGxpbmUgPSBjb25zdHJ1Y3RMaW5l
KGxheW91dFN0YXRlKCksIG1fZmxvYXRpbmdTdGF0ZSwgbV9mb3JtYXR0aW5nUm9vdCwgbGluZUlu
cHV0LmxvZ2ljYWxUb3AsIGxpbmVJbnB1dC5hdmFpbGFibGVMb2dpY2FsV2lkdGgpOwogICAgIGF1
dG8gZmxvYXRpbmdDb250ZXh0ID0gRmxvYXRpbmdDb250ZXh0IHsgbV9mbG9hdGluZ1N0YXRlIH07
Ci0gICAgT3B0aW9uYWw8dW5zaWduZWQ+IGxhc3RDb21taXR0ZWRJbmRleDsKKyAgICB1bnNpZ25l
ZCBjb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgPSAwOwogCiAgICAgVW5jb21taXR0ZWRDb250ZW50
IHVuY29tbWl0dGVkQ29udGVudDsKICAgICBhdXRvIGNvbW1pdFBlbmRpbmdDb250ZW50ID0gWyZd
IHsKICAgICAgICAgaWYgKHVuY29tbWl0dGVkQ29udGVudC5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgbGFzdENvbW1pdHRlZEluZGV4ID0gbGFzdENvbW1pdHRlZElu
ZGV4LnZhbHVlT3Ioc3RhcnRJbmxpbmVJdGVtSW5kZXgpICsgdW5jb21taXR0ZWRDb250ZW50LnNp
emUoKTsKKyAgICAgICAgY29tbWl0dGVkSW5saW5lSXRlbUNvdW50ICs9IHVuY29tbWl0dGVkQ29u
dGVudC5zaXplKCk7CiAgICAgICAgIGZvciAoYXV0byogdW5jb21taXR0ZWQgOiB1bmNvbW1pdHRl
ZENvbnRlbnQuaW5saW5lSXRlbXMoKSkKLSAgICAgICAgICAgIGNvbW1pdElubGluZUl0ZW1Ub0xp
bmUobGluZSwgKnVuY29tbWl0dGVkKTsKKyAgICAgICAgICAgIGNvbW1pdElubGluZUl0ZW1Ub0xp
bmUoKmxpbmUsICp1bmNvbW1pdHRlZCk7CiAgICAgICAgIHVuY29tbWl0dGVkQ29udGVudC5yZXNl
dCgpOwogICAgIH07CiAKKyAgICBhdXRvIGNsb3NlTGluZSA9IFsmXSB7CisgICAgICAgIC8vIFRo
aXMgbWlnaHQgY2hhbmdlIGF0IHNvbWUgcG9pbnQuCisgICAgICAgIEFTU0VSVChjb21taXR0ZWRJ
bmxpbmVJdGVtQ291bnQpOworICAgICAgICByZXR1cm4gTGluZUNvbnRlbnQgeyBsaW5lSW5wdXQu
Zmlyc3RJbmxpbmVJdGVtSW5kZXggKyAoY29tbWl0dGVkSW5saW5lSXRlbUNvdW50IC0gMSksIGxp
bmUtPmNsb3NlKCkgfTsKKyAgICB9OwogICAgIExpbmVCcmVha2VyIGxpbmVCcmVha2VyKGxheW91
dFN0YXRlKCkpOwogICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgaW5saW5lIGNvbnRlbnQgYW5k
IHBsYWNlIHRoZSBpbmxpbmUgYm94ZXMgb24gdGhlIGN1cnJlbnQgbGluZS4KLSAgICBhdXRvJiBp
bmxpbmVDb250ZW50ID0gbV9mb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKTsKLSAgICBmb3Ig
KGF1dG8gaW5saW5lSXRlbUluZGV4ID0gc3RhcnRJbmxpbmVJdGVtSW5kZXg7IGlubGluZUl0ZW1J
bmRleCA8IGlubGluZUNvbnRlbnQuc2l6ZSgpOyArK2lubGluZUl0ZW1JbmRleCkgewotICAgICAg
ICBhdXRvJiBpbmxpbmVJdGVtID0gaW5saW5lQ29udGVudFtpbmxpbmVJdGVtSW5kZXhdOworICAg
IGZvciAoYXV0byBpbmxpbmVJdGVtSW5kZXggPSBsaW5lSW5wdXQuZmlyc3RJbmxpbmVJdGVtSW5k
ZXg7IGlubGluZUl0ZW1JbmRleCA8IGxpbmVJbnB1dC5pbmxpbmVJdGVtcy5zaXplKCk7ICsraW5s
aW5lSXRlbUluZGV4KSB7CisgICAgICAgIGF1dG8mIGlubGluZUl0ZW0gPSBsaW5lSW5wdXQuaW5s
aW5lSXRlbXNbaW5saW5lSXRlbUluZGV4XTsKICAgICAgICAgaWYgKGlubGluZUl0ZW0tPmlzSGFy
ZExpbmVCcmVhaygpKSB7CiAgICAgICAgICAgICB1bmNvbW1pdHRlZENvbnRlbnQuYWRkKCppbmxp
bmVJdGVtKTsKICAgICAgICAgICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KCk7Ci0gICAgICAgICAg
ICByZXR1cm4gKmxhc3RDb21taXR0ZWRJbmRleDsKKyAgICAgICAgICAgIHJldHVybiBjbG9zZUxp
bmUoKTsKICAgICAgICAgfQotICAgICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gbGluZS5hdmFp
bGFibGVXaWR0aCgpIC0gdW5jb21taXR0ZWRDb250ZW50LndpZHRoKCk7Ci0gICAgICAgIGF1dG8g
Y3VycmVudExvZ2ljYWxSaWdodCA9IGxpbmUuY29udGVudExvZ2ljYWxSaWdodCgpICsgdW5jb21t
aXR0ZWRDb250ZW50LndpZHRoKCk7CisgICAgICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSBsaW5l
LT5hdmFpbGFibGVXaWR0aCgpIC0gdW5jb21taXR0ZWRDb250ZW50LndpZHRoKCk7CisgICAgICAg
IGF1dG8gY3VycmVudExvZ2ljYWxSaWdodCA9IGxpbmUtPmNvbnRlbnRMb2dpY2FsUmlnaHQoKSAr
IHVuY29tbWl0dGVkQ29udGVudC53aWR0aCgpOwogICAgICAgICAvLyBGSVhNRTogRW5zdXJlIExp
bmVDb250ZXh0Ojp0cmltbWFibGVXaWR0aCBpbmNsdWRlcyB1bmNvbW1pdHRlZCBjb250ZW50IGlm
IG5lZWRlZC4KLSAgICAgICAgYXV0byBicmVha2luZ0NvbnRleHQgPSBsaW5lQnJlYWtlci5icmVh
a2luZ0NvbnRleHQoKmlubGluZUl0ZW0sIHsgYXZhaWxhYmxlV2lkdGgsIGN1cnJlbnRMb2dpY2Fs
UmlnaHQsIGxpbmUudHJhaWxpbmdUcmltbWFibGVXaWR0aCgpLCAhbGluZS5oYXNDb250ZW50KCkg
fSk7CisgICAgICAgIGF1dG8gYnJlYWtpbmdDb250ZXh0ID0gbGluZUJyZWFrZXIuYnJlYWtpbmdD
b250ZXh0KCppbmxpbmVJdGVtLCB7IGF2YWlsYWJsZVdpZHRoLCBjdXJyZW50TG9naWNhbFJpZ2h0
LCBsaW5lLT50cmFpbGluZ1RyaW1tYWJsZVdpZHRoKCksICFsaW5lLT5oYXNDb250ZW50KCkgfSk7
CiAgICAgICAgIGlmIChicmVha2luZ0NvbnRleHQuaXNBdEJyZWFraW5nT3Bwb3J0dW5pdHkpCiAg
ICAgICAgICAgICBjb21taXRQZW5kaW5nQ29udGVudCgpOwogCiAgICAgICAgIC8vIENvbnRlbnQg
ZG9lcyBub3QgZml0IHRoZSBjdXJyZW50IGxpbmUuCiAgICAgICAgIGlmIChicmVha2luZ0NvbnRl
eHQuYnJlYWtpbmdCZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6V3Jh
cCkKLSAgICAgICAgICAgIHJldHVybiAqbGFzdENvbW1pdHRlZEluZGV4OworICAgICAgICAgICAg
cmV0dXJuIGNsb3NlTGluZSgpOwogCiAgICAgICAgIC8vIFBhcnRpYWwgY29udGVudCBzdGF5cyBv
biB0aGUgY3VycmVudCBsaW5lLiAKICAgICAgICAgaWYgKGJyZWFraW5nQ29udGV4dC5icmVha2lu
Z0JlaGF2aW9yID09IExpbmVCcmVha2VyOjpCcmVha2luZ0JlaGF2aW9yOjpCcmVhaykgewogICAg
ICAgICAgICAgQVNTRVJUKGlubGluZUl0ZW0tPmlzVGV4dCgpKTsKIAogICAgICAgICAgICAgQVNT
RVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsKLSAgICAgICAgICAgIHJldHVybiAqbGFzdENvbW1p
dHRlZEluZGV4OworICAgICAgICAgICAgcmV0dXJuIGNsb3NlTGluZSgpOwogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKGlubGluZUl0ZW0tPmlzRmxvYXQoKSkgewotICAgICAgICAgICAgaGFuZGxl
RmxvYXQobGluZSwgZmxvYXRpbmdDb250ZXh0LCAqaW5saW5lSXRlbSk7CisgICAgICAgICAgICBo
YW5kbGVGbG9hdCgqbGluZSwgZmxvYXRpbmdDb250ZXh0LCAqaW5saW5lSXRlbSk7CisgICAgICAg
ICAgICArK2NvbW1pdHRlZElubGluZUl0ZW1Db3VudDsKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICB9CiAKQEAgLTE2NSwyNCArMTc5LDIzIEBAIHVuc2lnbmVkIElubGluZUZvcm1hdHRp
bmdDb250ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVJbmxpbmVSdW5zRm9yTGluZShMaW5lJiBsaW5l
CiAgICAgICAgICAgICBjb21taXRQZW5kaW5nQ29udGVudCgpOwogICAgIH0KICAgICBjb21taXRQ
ZW5kaW5nQ29udGVudCgpOwotICAgIHJldHVybiAqbGFzdENvbW1pdHRlZEluZGV4OworICAgIHJl
dHVybiBjbG9zZUxpbmUoKTsKIH0KIAogdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGlu
ZUxheW91dDo6bGF5b3V0KExheW91dFVuaXQgd2lkdGhDb25zdHJhaW50KSBjb25zdAogewogICAg
IEFTU0VSVCghbV9mb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKS5pc0VtcHR5KCkpOwogCi0g
ICAgdW5zaWduZWQgc3RhcnRJbmxpbmVJdGVtSW5kZXggPSAwOwogICAgIGF1dG8gbGluZUxvZ2lj
YWxUb3AgPSBsYXlvdXRTdGF0ZSgpLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobV9mb3JtYXR0aW5n
Um9vdCkuY29udGVudEJveFRvcCgpOwotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGF1dG8g
bGluZSA9IGNyZWF0ZUxpbmUobGluZUxvZ2ljYWxUb3AsIHdpZHRoQ29uc3RyYWludCk7Ci0gICAg
ICAgIGF1dG8gbmV4dElubGluZUl0ZW1JbmRleCA9IGNyZWF0ZUlubGluZVJ1bnNGb3JMaW5lKCps
aW5lLCBzdGFydElubGluZUl0ZW1JbmRleCk7Ci0gICAgICAgIGF1dG8gbGluZUNvbnRlbnQgPSBs
aW5lLT5jbG9zZSgpOwotICAgICAgICBwcm9jZXNzSW5saW5lUnVucygqbGluZUNvbnRlbnQsIGxp
bmUtPmF2YWlsYWJsZVdpZHRoKCkpOwotICAgICAgICBpZiAobmV4dElubGluZUl0ZW1JbmRleCA9
PSBtX2Zvcm1hdHRpbmdTdGF0ZS5pbmxpbmVJdGVtcygpLnNpemUoKSkKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBzdGFydElubGluZUl0ZW1JbmRleCA9IG5leHRJbmxpbmVJdGVtSW5kZXg7
Ci0gICAgICAgIGxpbmVMb2dpY2FsVG9wID0gbGluZUNvbnRlbnQtPmxvZ2ljYWxCb3R0b20oKTsK
KyAgICBhdXRvJiBpbmxpbmVJdGVtcyA9IG1fZm9ybWF0dGluZ1N0YXRlLmlubGluZUl0ZW1zKCk7
CisgICAgdW5zaWduZWQgY3VycmVudElubGluZUl0ZW1JbmRleCA9IDA7CisgICAgd2hpbGUgKGN1
cnJlbnRJbmxpbmVJdGVtSW5kZXggPCBpbmxpbmVJdGVtcy5zaXplKCkpIHsKKyAgICAgICAgYXV0
byBsaW5lQ29udGVudCA9IHBsYWNlSW5saW5lSXRlbXMoeyBsaW5lTG9naWNhbFRvcCwgd2lkdGhD
b25zdHJhaW50LCBjdXJyZW50SW5saW5lSXRlbUluZGV4LCBpbmxpbmVJdGVtcyB9KTsKKyAgICAg
ICAgY3JlYXRlRGlzcGxheVJ1bnMoKmxpbmVDb250ZW50LnJ1bnMsIHdpZHRoQ29uc3RyYWludCk7
CisgICAgICAgIC8vIFdlIHNob3VsZCBhbHdheXMgcHV0IGF0IGxlYXN0IG9uZSBydW4gb24gdGhl
IGxpbmUgYXRtLiBUaGlzIG1pZ2h0IGNoYW5nZSBsYXRlciBvbiB0aG91Z2guCisgICAgICAgIEFT
U0VSVChsaW5lQ29udGVudC5sYXN0SW5saW5lSXRlbUluZGV4KTsKKyAgICAgICAgY3VycmVudElu
bGluZUl0ZW1JbmRleCA9ICpsaW5lQ29udGVudC5sYXN0SW5saW5lSXRlbUluZGV4ICsgMTsKKyAg
ICAgICAgbGluZUxvZ2ljYWxUb3AgPSBsaW5lQ29udGVudC5ydW5zLT5sb2dpY2FsQm90dG9tKCk7
CiAgICAgfQogfQogCkBAIC0yMTQsNyArMjI3LDcgQEAgTGF5b3V0VW5pdCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6TGluZUxheW91dDo6Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aChMYXlvdXRVbmkK
ICAgICByZXR1cm4gc3RkOjptYXgobWF4aW11bUxpbmVXaWR0aCwgbGluZUxvZ2ljYWxSaWdodCAt
IHRyaW1tYWJsZVRyYWlsaW5nV2lkdGgpOwogfQogCi12b2lkIElubGluZUZvcm1hdHRpbmdDb250
ZXh0OjpMaW5lTGF5b3V0Ojpwcm9jZXNzSW5saW5lUnVucyhjb25zdCBMaW5lOjpDb250ZW50JiBs
aW5lQ29udGVudCwgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCkgY29uc3QKK3ZvaWQgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExp
bmU6OkNvbnRlbnQmIGxpbmVDb250ZW50LCBMYXlvdXRVbml0IHdpZHRoQ29uc3RyYWludCkgY29u
c3QKIHsKICAgICBpZiAobGluZUNvbnRlbnQuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFNwZWMg
dGVsbHMgdXMgdG8gY3JlYXRlIGEgemVybyBoZWlnaHQsIGVtcHR5IGxpbmUgYm94LgpAQCAtMzEz
LDcgKzMyNiw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OnBy
b2Nlc3NJbmxpbmVSdW5zKGNvbnN0IExpbmU6OkNvbnRlbnQmCiAgICAgLy8gRklYTUUgbGluZWJv
eCBuZWVkcyB0byBiZSBhanVzdGVkIGFmdGVyIGNvbnRlbnQgYWxpZ25tZW50LgogICAgIG1fZm9y
bWF0dGluZ1N0YXRlLmFkZExpbmVCb3goeyBsaW5lQm94IH0pOwogICAgIGlmICghbGluZUNvbnRl
bnQuaXNWaXN1YWxseUVtcHR5KCkpCi0gICAgICAgIGFsaWduUnVucyhtX2Zvcm1hdHRpbmdSb290
LnN0eWxlKCkudGV4dEFsaWduKCksIHByZXZpb3VzTGluZUxhc3RSdW5JbmRleC52YWx1ZU9yKC0x
KSArIDEsIGF2YWlsYWJsZVdpZHRoKTsKKyAgICAgICAgYWxpZ25SdW5zKG1fZm9ybWF0dGluZ1Jv
b3Quc3R5bGUoKS50ZXh0QWxpZ24oKSwgcHJldmlvdXNMaW5lTGFzdFJ1bkluZGV4LnZhbHVlT3Io
LTEpICsgMSwgd2lkdGhDb25zdHJhaW50IC0gbGluZUNvbnRlbnQubG9naWNhbFdpZHRoKCkpOwog
fQogCiB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpoYW5kbGVGbG9h
dChMaW5lJiBsaW5lLCBjb25zdCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0aW5nQ29udGV4dCwgY29u
c3QgSW5saW5lSXRlbSYgZmxvYXRJdGVtKSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>