<?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>206122</bug_id>
          
          <creation_ts>2020-01-10 21:17:10 -0800</creation_ts>
          <short_desc>[LFC] BlockFormattingContext::verticalPositionWithMargin should take VerticalConstraints</short_desc>
          <delta_ts>2020-01-11 16:16:31 -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>1605484</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-01-10 21:17:10 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605485</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-10 21:17:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/58500207&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605486</commentid>
    <comment_count>2</comment_count>
      <attachid>387419</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-10 21:19:23 -0800</bug_when>
    <thetext>Created attachment 387419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605563</commentid>
    <comment_count>3</comment_count>
      <attachid>387445</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-11 13:04:25 -0800</bug_when>
    <thetext>Created attachment 387445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605575</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-01-11 16:16:31 -0800</bug_when>
    <thetext>Committed r254405: &lt;https://trac.webkit.org/changeset/254405&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387419</attachid>
            <date>2020-01-10 21:19:23 -0800</date>
            <delta_ts>2020-01-11 13:04:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206122-20200110211922.patch</filename>
            <type>text/plain</type>
            <size>17235</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTAwYzRkOWFiMGU4NzAy
NzVkZThiNTc0ZjczMWI1MWJjY2JmZWZjZC4uYTMzOGMxOTI1ZWRiZTlkNzI1MjAyMGQxZDQ4M2Vm
MGVmYzU4MGY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTAxLTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6dmVydGljYWxQb3NpdGlvbldpdGhNYXJnaW4gc2hvdWxkIHRha2UgVmVydGlj
YWxDb25zdHJhaW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA2MTIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODUwMDIwNz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHByZXZlbnRzIHZl
cnRpY2FsUG9zaXRpb25XaXRoTWFyZ2luIGZyb20gcmVhZGluZyBnZW9tZXRyeSBvdXRzaWRlIG9m
IHRoZSBmb3JtYXR0aW5nIGNvbnRleHQuIAorCisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRp
bmdDb250ZXh0Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRp
Y2FsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckFuY2VzdG9ycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVF
c3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRm9ybWF0dGluZ1Jvb3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVy
dGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6dmVydGljYWxQb3NpdGlv
bldpdGhNYXJnaW4gY29uc3QpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5oOgorCiAyMDIwLTAxLTEwICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bQkZDXSBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckFuY2VzdG9ycyBzaG91bGQgdGFr
ZSBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAKaW5kZXggZWQwMmE1MzZhOTBmZmZjN2RhMzZjYmM2YTc5YzQ5NWYwMTNl
YWUxNy4uODg5OTU1ZDQ1N2ZjY2Y1M2M3MzUyOGU2MWViMDU1OThlYWZkOTdjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xNDUsOSArMTQ1LDEwIEBAIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYg
aW52YWxpZGF0aW9uCiAgICAgICAgICAgICAvLyBBbGwgaW5mbG93IGRlc2NlbmRhbnRzIChpZiB0
aGVyZSBhcmUgYW55KSBhcmUgbGFpZCBvdXQgYnkgbm93LiBMZXQncyBjb21wdXRlIHRoZSBib3gn
cyBoZWlnaHQuCiAgICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSAqbGF5b3V0UXVldWUudGFr
ZUxhc3QoKTsKICAgICAgICAgICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0gaG9yaXpv
bnRhbENvbnN0cmFpbnRzRm9yTGF5b3V0Qm94KGxheW91dEJveCk7CisgICAgICAgICAgICBhdXRv
IHZlcnRpY2FsQ29uc3RyYWludHMgPSB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yTGF5b3V0Qm94KGxh
eW91dEJveCk7CiAgICAgICAgICAgICAvLyBGb3JtYXR0aW5nIHJvb3QgYm94ZXMgYXJlIHNwZWNp
YWwtY2FzZWQgYW5kIHRoZXkgZG9uJ3QgY29tZSBoZXJlLgogICAgICAgICAgICAgQVNTRVJUKCFs
YXlvdXRCb3guZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKLSAgICAgICAgICAgIGNv
bXB1dGVIZWlnaHRBbmRNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwor
ICAgICAgICAgICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxD
b25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyk7CiAgICAgICAgICAgICAvLyBNb3ZlIGlu
LWZsb3cgcG9zaXRpb25lZCBjaGlsZHJlbiB0byB0aGVpciBmaW5hbCBwb3NpdGlvbi4KICAgICAg
ICAgICAgIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGxheW91dEJveCwgaG9yaXpvbnRh
bENvbnN0cmFpbnRzKTsKICAgICAgICAgICAgIGlmIChhcHBlbmROZXh0VG9MYXlvdXRRdWV1ZShs
YXlvdXRCb3gsIExheW91dERpcmVjdGlvbjo6U2libGluZykpCkBAIC0yMTgsMTMgKzIxOSwxMyBA
QCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9v
dChjb25zdCBCb3gmIGxheW91dEJveCwgRgogICAgICAgICBhdXRvIGZvcm1hdHRpbmdDb250ZXh0
ID0gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQocm9vdENvbnRhaW5lciwg
bGF5b3V0U3RhdGUoKSk7CiAgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRJbkZsb3dD
b250ZW50KGludmFsaWRhdGlvblN0YXRlLCBHZW9tZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRz
Rm9ySW5GbG93KHJvb3RDb250YWluZXJEaXNwbGF5Qm94KSwgR2VvbWV0cnk6OnZlcnRpY2FsQ29u
c3RyYWludHNGb3JJbkZsb3cocm9vdENvbnRhaW5lckRpc3BsYXlCb3gpKTsKICAgICAgICAgLy8g
Q29tZSBiYWNrIGFuZCBmaW5hbGl6ZSB0aGUgcm9vdCdzIGdlb21ldHJ5LgotICAgICAgICBjb21w
dXRlSGVpZ2h0QW5kTWFyZ2luKHJvb3RDb250YWluZXIsIGFkanVzdGVkSG9yaXpvbnRhbENvbnN0
cmFpbnRzKTsKKyAgICAgICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihyb290Q29udGFpbmVyLCBh
ZGp1c3RlZEhvcml6b250YWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyk7CiAgICAg
ICAgIC8vIE5vdyB0aGF0IHdlIGNvbXB1dGVkIHRoZSByb290J3MgaGVpZ2h0LCB3ZSBjYW4gZ28g
YmFjayBhbmQgbGF5b3V0IHRoZSBvdXQtb2YtZmxvdyBjb250ZW50LgogICAgICAgICBhdXRvIGhv
cml6b250YWxDb25zdHJhaW50c0Zvck91dE9mRmxvdyA9ICBHZW9tZXRyeTo6aG9yaXpvbnRhbENv
bnN0cmFpbnRzRm9yT3V0T2ZGbG93KHJvb3RDb250YWluZXJEaXNwbGF5Qm94KTsKICAgICAgICAg
YXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93ID0gR2VvbWV0cnk6OnZlcnRpY2Fs
Q29uc3RyYWludHNGb3JPdXRPZkZsb3cocm9vdENvbnRhaW5lckRpc3BsYXlCb3gpOwogICAgICAg
ICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25T
dGF0ZSwgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93LCB2ZXJ0aWNhbENvbnN0cmFp
bnRzRm9yT3V0T2ZGbG93KTsKICAgICB9IGVsc2UKLSAgICAgICAgY29tcHV0ZUhlaWdodEFuZE1h
cmdpbihsYXlvdXRCb3gsIGFkanVzdGVkSG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKyAgICAgICAg
Y29tcHV0ZUhlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gsIGFkanVzdGVkSG9yaXpvbnRhbENvbnN0
cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKICAgICAvLyBGbG9hdCByZWxhdGVkIGZpbmFs
IHBvc2l0aW9uaW5nLgogICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkg
ewogICAgICAgICBjb21wdXRlRmxvYXRpbmdQb3NpdGlvbihmbG9hdGluZ0NvbnRleHQsIGxheW91
dEJveCk7CkBAIC0yNTIsOSArMjUzLDkgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQKIHsKICAg
ICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCkuc2V0VG9wKGdlb21ldHJ5
KCkuc3RhdGljVmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gsICp2ZXJ0aWNhbENvbnN0cmFpbnRz
KSk7CiAgICAgaWYgKGxheW91dEJveC5oYXNGbG9hdENsZWFyKCkpCi0gICAgICAgIGNvbXB1dGVF
c3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihmbG9hdGluZ0NvbnRleHQsIGxh
eW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKyAgICAgICAgY29tcHV0ZUVzdGltYXRl
ZFZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGZsb2F0aW5nQ29udGV4dCwgbGF5b3V0Qm94
LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwogICAgIGVsc2Ug
aWYgKGxheW91dEJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpCi0gICAgICAgIGNv
bXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRm9ybWF0dGluZ1Jvb3QobGF5b3V0Qm94
LCBob3Jpem9udGFsQ29uc3RyYWludHMpOworICAgICAgICBjb21wdXRlRXN0aW1hdGVkVmVydGlj
YWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290KGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFp
bnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKIH0KIAogdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRh
bENvbnN0cmFpbnRzKQpAQCAtMjY4LDcgKzI2OSw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRp
CiAgICAgY29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbihsYXlvdXRCb3gsIGhvcml6b250
YWxDb25zdHJhaW50cyk7CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0
ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhv
cml6b250YWxDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQordm9pZCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbihjb25zdCBC
b3gmIGxheW91dEJveCwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29u
c3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMp
CiB7CiAgICAgYXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZ2VvbWV0cnkoKS5jb21wdXRl
ZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKICAgICBh
dXRvIHVzZWROb25Db2xsYXBzZWRNYXJnaW4gPSBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxh
cHNlZFZhbHVlcyB7IGNvbXB1dGVkVmVydGljYWxNYXJnaW4uYmVmb3JlLnZhbHVlT3IoMCksIGNv
bXB1dGVkVmVydGljYWxNYXJnaW4uYWZ0ZXIudmFsdWVPcigwKSB9OwpAQCAtMjgwLDEzICsyODEs
MTMgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGlj
YWxQb3NpdGlvbihjb25zdCBCb3gmIGxheW91dEIKICAgICBhdXRvIGNvbGxhcHNlZFZhbHVlcyA9
IFVzZWRWZXJ0aWNhbE1hcmdpbjo6Q29sbGFwc2VkVmFsdWVzIHsgZXN0aW1hdGVkTWFyZ2luQmVm
b3JlLmNvbGxhcHNlZFZhbHVlLCB7IH0sIGVzdGltYXRlZE1hcmdpbkJlZm9yZS5pc0NvbGxhcHNl
ZFRocm91Z2ggfTsKICAgICBhdXRvIHZlcnRpY2FsTWFyZ2luID0gVXNlZFZlcnRpY2FsTWFyZ2lu
IHsgbm9uQ29sbGFwc2VkVmFsdWVzLCBjb2xsYXBzZWRWYWx1ZXMgfTsKICAgICBkaXNwbGF5Qm94
LnNldFZlcnRpY2FsTWFyZ2luKHZlcnRpY2FsTWFyZ2luKTsKLSAgICBkaXNwbGF5Qm94LnNldFRv
cCh2ZXJ0aWNhbFBvc2l0aW9uV2l0aE1hcmdpbihsYXlvdXRCb3gsIHZlcnRpY2FsTWFyZ2luKSk7
CisgICAgZGlzcGxheUJveC5zZXRUb3AodmVydGljYWxQb3NpdGlvbldpdGhNYXJnaW4obGF5b3V0
Qm94LCB2ZXJ0aWNhbE1hcmdpbiwgdmVydGljYWxDb25zdHJhaW50cykpOwogI2lmIEFTU0VSVF9F
TkFCTEVECiAgICAgZGlzcGxheUJveC5zZXRIYXNFc3RpbWF0ZWRNYXJnaW5CZWZvcmUoKTsKICNl
bmRpZgogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRW
ZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBD
b25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRhbENvbnN0cmFp
bnRzKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGlj
YWxQb3NpdGlvbkZvckFuY2VzdG9ycyhjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgQ29uc3Ry
YWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxDb25zdHJhaW50cywg
Y29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+JiB2ZXJ0aWNhbENvbnN0
cmFpbnRzKQogewogICAgIC8vIFdlIG9ubHkgbmVlZCB0byBlc3RpbWF0ZSBtYXJnaW4gdG9wIGZv
ciBmbG9hdCByZWxhdGVkIGxheW91dCAoZm9ybWF0dGluZyBjb250ZXh0IHJvb3RzIGF2b2lkIGZs
b2F0cykuCiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Zsb2F0QXZvaWRlcigpIHx8IGxheW91dEJv
eC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpOwpAQCAtMzA0LDQ0ICszMDUs
NDkgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGlj
YWxQb3NpdGlvbkZvckFuY2VzdG9ycyhjb25zdAogICAgICAgICAvLyBGSVhNRTogd2l0aCBpbmNy
ZW1lbnRhbCBsYXlvdXQsIHdlIG1pZ2h0IGFjdHVhbGx5IGhhdmUgYSB2YWxpZCAobm9uLWVzdGlt
YXRlZCkgbWFyZ2luIHRvcCBhcyB3ZWxsLgogICAgICAgICBpZiAoaGFzRXN0aW1hdGVkTWFyZ2lu
QmVmb3JlKCphbmNlc3RvcikpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIAotICAgICAg
ICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c0ZvckFuY2VzdG9yID0gaG9yaXpvbnRhbENvbnN0
cmFpbnRzLnJvb3QoKTsgCi0gICAgICAgIGlmIChhbmNlc3Rvci0+Y29udGFpbmluZ0Jsb2NrKCkg
IT0gJnJvb3QoKSkgCi0gICAgICAgICAgICBob3Jpem9udGFsQ29uc3RyYWludHNGb3JBbmNlc3Rv
ciA9IEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3coZ2VvbWV0cnlGb3JC
b3goKmFuY2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkpOwotICAgICAgICBjb21wdXRlRXN0aW1h
dGVkVmVydGljYWxQb3NpdGlvbigqYW5jZXN0b3IsIGhvcml6b250YWxDb25zdHJhaW50c0ZvckFu
Y2VzdG9yKTsKKworICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c0ZvckFuY2VzdG9y
ID0gWyZdIHsKKyAgICAgICAgICAgIGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5j
b250YWluaW5nQmxvY2soKTsKKyAgICAgICAgICAgIHJldHVybiBjb250YWluaW5nQmxvY2sgPT0g
JnJvb3QoKSA/IGhvcml6b250YWxDb25zdHJhaW50cy5yb290KCkgOiBHZW9tZXRyeTo6aG9yaXpv
bnRhbENvbnN0cmFpbnRzRm9ySW5GbG93KGdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2sp
KTsKKyAgICAgICAgfTsKKyAgICAgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yQW5jZXN0
b3IgPSBbJl0geworICAgICAgICAgICAgYXV0byogY29udGFpbmluZ0Jsb2NrID0gbGF5b3V0Qm94
LmNvbnRhaW5pbmdCbG9jaygpOworICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9jayA9
PSAmcm9vdCgpID8gdmVydGljYWxDb25zdHJhaW50cy5yb290KCkgOiBHZW9tZXRyeTo6dmVydGlj
YWxDb25zdHJhaW50c0ZvckluRmxvdyhnZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrKSk7
CisgICAgICAgIH07CisgICAgICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKCph
bmNlc3RvciwgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yQW5jZXN0b3IoKSwgdmVydGljYWxDb25z
dHJhaW50c0ZvckFuY2VzdG9yKCkpOwogICAgIH0KIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290
KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENv
bnN0cmFpbnRzPiYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290
KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENv
bnN0cmFpbnRzPiYgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBDb25zdHJhaW50c1BhaXI8
VmVydGljYWxDb25zdHJhaW50cz4mIHZlcnRpY2FsQ29uc3RyYWludHMpCiB7CiAgICAgQVNTRVJU
KGxheW91dEJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwogICAgIEFTU0VSVCgh
bGF5b3V0Qm94Lmhhc0Zsb2F0Q2xlYXIoKSk7CiAKICAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRp
bmdQb3NpdGlvbmVkKCkpIHsKLSAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRp
b25Gb3JBbmNlc3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOworICAgICAg
ICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckFuY2VzdG9ycyhsYXlvdXRCb3gs
IGhvcml6b250YWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbihsYXlv
dXRCb3gsICpob3Jpem9udGFsQ29uc3RyYWludHMpOwotICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0
aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRz
KTsKKyAgICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gsICpob3Jp
em9udGFsQ29uc3RyYWludHMsICp2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICBjb21wdXRlRXN0
aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckFuY2VzdG9ycyhsYXlvdXRCb3gsIGhvcml6b250YWxD
b25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyk7CiAKICAgICAvLyBJZiB0aGUgaW5saW5l
IGZvcm1hdHRpbmcgcm9vdCBpcyBhbHNvIHRoZSByb290IGZvciB0aGUgZmxvYXRzIChoYXBwZW5z
IHdoZW4gdGhlIHJvb3QgYm94IGFsc28gZXN0YWJsaXNoZXMgYSBibG9jayBmb3JtYXR0aW5nIGNv
bnRleHQpCiAgICAgLy8gdGhlIGZsb2F0cyBhcmUgaW4gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9m
IHRoaXMgcm9vdC4gTm8gbmVlZCB0byBmaW5kIHRoZSBmaW5hbCB2ZXJ0aWNhbCBwb3NpdGlvbi4K
ICAgICBhdXRvIGlubGluZUNvbnRleHRJbmhlcml0c0Zsb2F0cyA9IGxheW91dEJveC5lc3RhYmxp
c2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0T25seSgpOwogICAgIGlmIChpbmxpbmVDb250ZXh0
SW5oZXJpdHNGbG9hdHMpIHsKLSAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRp
b24obGF5b3V0Qm94LCAqaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKLSAgICAgICAgY29tcHV0ZUVz
dGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFs
Q29uc3RyYWludHMpOworICAgICAgICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbihs
YXlvdXRCb3gsICpob3Jpem9udGFsQ29uc3RyYWludHMsICp2ZXJ0aWNhbENvbnN0cmFpbnRzKTsK
KyAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMobGF5
b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwogICAg
IH0KIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVy
dGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIoY29uc3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGlu
Z0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9y
aXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQordm9pZCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckZsb2F0
Q2xlYXIoY29uc3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYg
bGF5b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYg
aG9yaXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVydGljYWxDb25z
dHJhaW50cz4mIHZlcnRpY2FsQ29uc3RyYWludHMpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5o
YXNGbG9hdENsZWFyKCkpOwogICAgIGlmIChmbG9hdGluZ0NvbnRleHQuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CiAgICAgLy8gVGhlIHN0YXRpYyBwb3NpdGlvbiB3aXRoIGNsZWFyIHJlcXVp
cmVzIG1hcmdpbiBlc2l0bWF0aW9uIHRvIHNlZSBpZiBjbGVhcmFuY2UgaXMgbmVlZGVkLgotICAg
IGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKGxheW91dEJveCwgKmhvcml6b250YWxD
b25zdHJhaW50cyk7Ci0gICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNl
c3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOworICAgIGNvbXB1dGVFc3Rp
bWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKGxheW91dEJveCwgKmhvcml6b250YWxDb25zdHJhaW50cywg
KnZlcnRpY2FsQ29uc3RyYWludHMpOworICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0
aW9uRm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNh
bENvbnN0cmFpbnRzKTsKICAgICBhdXRvIHZlcnRpY2FsUG9zaXRpb25BbmRDbGVhcmFuY2UgPSBm
bG9hdGluZ0NvbnRleHQudmVydGljYWxQb3NpdGlvbldpdGhDbGVhcmFuY2UobGF5b3V0Qm94KTsK
ICAgICBpZiAoIXZlcnRpY2FsUG9zaXRpb25BbmRDbGVhcmFuY2UucG9zaXRpb24pIHsKICAgICAg
ICAgQVNTRVJUKCF2ZXJ0aWNhbFBvc2l0aW9uQW5kQ2xlYXJhbmNlLmNsZWFyYW5jZSk7CkBAIC00
MjIsNyArNDI4LDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhB
bmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEMKICAgICBkaXNwbGF5Qm94LnNl
dEhvcml6b250YWxDb21wdXRlZE1hcmdpbihjb250ZW50V2lkdGhBbmRNYXJnaW4uY29tcHV0ZWRN
YXJnaW4pOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRB
bmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jp
em9udGFsQ29uc3RyYWludHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMpCit2b2lkIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRC
b3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jpem9u
dGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRz
PiYgdmVydGljYWxDb25zdHJhaW50cykKIHsKICAgICBhdXRvIGNvbXB1dGUgPSBbJl0oT3B0aW9u
YWw8TGF5b3V0VW5pdD4gdXNlZEhlaWdodCkgLT4gQ29udGVudEhlaWdodEFuZE1hcmdpbiB7CiAg
ICAgICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3coKSkKQEAgLTQ3MSw3ICs0NzcsNyBAQCB2b2lk
IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94
JiBsYXlvdXRCb3gsIGNvbnN0CiAKICAgICBBU1NFUlQoIWhhc0VzdGltYXRlZE1hcmdpbkJlZm9y
ZShsYXlvdXRCb3gpIHx8IGVzdGltYXRlZE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpLnVzZWRWYWx1
ZSgpID09IHZlcnRpY2FsTWFyZ2luLmJlZm9yZSgpKTsKICAgICByZW1vdmVFc3RpbWF0ZWRNYXJn
aW5CZWZvcmUobGF5b3V0Qm94KTsKLSAgICBkaXNwbGF5Qm94LnNldFRvcCh2ZXJ0aWNhbFBvc2l0
aW9uV2l0aE1hcmdpbihsYXlvdXRCb3gsIHZlcnRpY2FsTWFyZ2luKSk7CisgICAgZGlzcGxheUJv
eC5zZXRUb3AodmVydGljYWxQb3NpdGlvbldpdGhNYXJnaW4obGF5b3V0Qm94LCB2ZXJ0aWNhbE1h
cmdpbiwgKnZlcnRpY2FsQ29uc3RyYWludHMpKTsKICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRC
b3hIZWlnaHQoY29udGVudEhlaWdodEFuZE1hcmdpbi5jb250ZW50SGVpZ2h0KTsKICAgICBkaXNw
bGF5Qm94LnNldFZlcnRpY2FsTWFyZ2luKHZlcnRpY2FsTWFyZ2luKTsKIApAQCAtNTI2LDcgKzUz
Miw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW50CiAgICAgcmV0dXJuIGNvbnN0cmFpbnRzOwog
fQogCi1MYXlvdXRVbml0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnZlcnRpY2FsUG9zaXRpb25X
aXRoTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkVmVydGljYWxNYXJnaW4m
IHZlcnRpY2FsTWFyZ2luKSBjb25zdAorTGF5b3V0VW5pdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
Ojp2ZXJ0aWNhbFBvc2l0aW9uV2l0aE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3Qg
VXNlZFZlcnRpY2FsTWFyZ2luJiB2ZXJ0aWNhbE1hcmdpbiwgIGNvbnN0IFZlcnRpY2FsQ29uc3Ry
YWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFsYXlvdXRC
b3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOwogICAgIC8vIE5vdyB0aGF0IHdlJ3ZlIGNvbXB1
dGVkIHRoZSBmaW5hbCBtYXJnaW4gYmVmb3JlLCBsZXQncyBzaGlmdCB0aGUgYm94J3MgdmVydGlj
YWwgcG9zaXRpb24gaWYgbmVlZGVkLgpAQCAtNTU2LDcgKzU2Miw3IEBAIExheW91dFVuaXQgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6dmVydGljYWxQb3NpdGlvbldpdGhNYXJnaW4oY29uc3QgQm94
JiBsYXlvdXRCCiAgICAgfQogCiAgICAgYXV0byYgY29udGFpbmluZ0Jsb2NrID0gKmxheW91dEJv
eC5jb250YWluaW5nQmxvY2soKTsKLSAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja0NvbnRlbnRCb3hU
b3AgPSBnZW9tZXRyeUZvckJveChjb250YWluaW5nQmxvY2spLmNvbnRlbnRCb3hUb3AoKTsKKyAg
ICBhdXRvIGNvbnRhaW5pbmdCbG9ja0NvbnRlbnRCb3hUb3AgPSB2ZXJ0aWNhbENvbnN0cmFpbnRz
LmxvZ2ljYWxUb3A7CiAgICAgLy8gQWRqdXN0IHZlcnRpY2FsIHBvc2l0aW9uIGRlcGVuZGluZyB3
aGV0aGVyIHRoaXMgYm94IGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgYWRqb2lucyB3aXRoIGl0cyBw
YXJlbnQuCiAgICAgYXV0byBkaXJlY3RseUFkam9pbnNQYXJlbnQgPSAhbGF5b3V0Qm94LnByZXZp
b3VzSW5GbG93U2libGluZygpOwogICAgIGlmIChkaXJlY3RseUFkam9pbnNQYXJlbnQpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9C
bG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggYzMwNzUyYTdmZWM4MmNlYmZjNDc3MDg1MDVm
MzU5OGE2MmFhZGY2NC4uNWZkNzY4MTdhYWQ3MzUxMGIxMmZhNzRhMmZkZmQ3YTRmMDdlZmM4NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0IEJveCYsIGNvbnN0
IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+Jik7CiAKICAgICB2b2lkIGNv
bXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9y
aXpvbnRhbENvbnN0cmFpbnRzPiYpOwotICAgIHZvaWQgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihj
b25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYp
OworICAgIHZvaWQgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25zdCBDb25z
dHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFp
cjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwogCiAgICAgdm9pZCBjb21wdXRlU3RhdGljSG9yaXpv
bnRhbFBvc2l0aW9uKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFs
Q29uc3RyYWludHM+Jik7CiAgICAgdm9pZCBjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihj
b25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8
SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENv
bnN0cmFpbnRzPiYpOwpAQCAtNzYsMTMgKzc2LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21w
dXRlRmxvYXRpbmdQb3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmKTsK
ICAgICB2b2lkIGNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMoY29uc3QgRmxvYXRpbmdDb250
ZXh0JiwgY29uc3QgQm94Jik7CiAKLSAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBv
c2l0aW9uKGNvbnN0IEJveCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYpOwotICAgIHZv
aWQgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QgQm94
JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mKTsKLSAgICB2
b2lkIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRm9ybWF0dGluZ1Jvb3QoY29u
c3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mKTsK
LSAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihj
b25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8
SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYpOworICAgIHZvaWQgY29tcHV0ZUVzdGltYXRlZFZlcnRp
Y2FsUG9zaXRpb24oY29uc3QgQm94JiwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiwgY29u
c3QgVmVydGljYWxDb25zdHJhaW50cyYpOworICAgIHZvaWQgY29tcHV0ZUVzdGltYXRlZFZlcnRp
Y2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWly
PEhvcml6b250YWxDb25zdHJhaW50cz4mLCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVydGljYWxD
b25zdHJhaW50cz4mKTsKKyAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9u
Rm9yRm9ybWF0dGluZ1Jvb3QoY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6
b250YWxDb25zdHJhaW50cz4mLCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJh
aW50cz4mKTsKKyAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRmxv
YXRDbGVhcihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBjb25zdCBDb25zdHJh
aW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxW
ZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwogCiAgICAgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBj
b21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSBvdmVycmlkZTsKLSAgICBMYXlvdXRV
bml0IHZlcnRpY2FsUG9zaXRpb25XaXRoTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IFVzZWRWZXJ0
aWNhbE1hcmdpbiYpIGNvbnN0OworICAgIExheW91dFVuaXQgdmVydGljYWxQb3NpdGlvbldpdGhN
YXJnaW4oY29uc3QgQm94JiwgY29uc3QgVXNlZFZlcnRpY2FsTWFyZ2luJiwgY29uc3QgVmVydGlj
YWxDb25zdHJhaW50cyYpIGNvbnN0OwogCiAgICAgLy8gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHBv
c2l0aW9uaW5nIGFuZCBzaXppbmcgZm9yIGJveGVzIHBhcnRpY2lwYXRpbmcgaW4gYSBibG9jayBm
b3JtYXR0aW5nIGNvbnRleHQuCiAgICAgY2xhc3MgR2VvbWV0cnkgOiBwdWJsaWMgRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5IHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387445</attachid>
            <date>2020-01-11 13:04:25 -0800</date>
            <delta_ts>2020-01-11 13:44:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206122-20200111130424.patch</filename>
            <type>text/plain</type>
            <size>18054</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVmOGE2ZjYzZjU4MTdl
MDI0MjZlNDc0MmRhYjcxOTYwOGIzNzdkOC4uZmNmN2U4ZTU4NjY3MmNlMTdhNDI0NmEyOGM3ZmM2
NWUzMTY2N2IyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTAxLTExICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6dmVydGljYWxQb3NpdGlvbldpdGhNYXJnaW4gc2hvdWxkIHRha2UgVmVydGlj
YWxDb25zdHJhaW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA2MTIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODUwMDIwNz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHByZXZlbnRzIHZl
cnRpY2FsUG9zaXRpb25XaXRoTWFyZ2luIGZyb20gcmVhZGluZyBnZW9tZXRyeSBvdXRzaWRlIG9m
IHRoZSBmb3JtYXR0aW5nIGNvbnRleHQuCisKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Rm9ybWF0dGlu
Z0NvbnRleHRSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGlj
YWxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVz
dGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0
aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojp2ZXJ0aWNhbFBvc2l0aW9u
V2l0aE1hcmdpbiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisKIDIwMjAtMDEtMTEgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtCRkNdIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzIHNob3VsZCB0YWtl
IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmNwcAppbmRleCA3MTg2YThiYjVmM2NhNjM2M2EyMjQ0Y2U1NjM2MmE1OGZjOGQ1
NGQ3Li45MmNlYmEyN2E3YTdiZDFhZGQ4OTczZDMzNGY4MGI2YjFiMGI0Y2QzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTEzOCw5ICsxMzgsMTAgQEAgdm9pZCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0YXRlJiBp
bnZhbGlkYXRpb24KICAgICAgICAgICAgIC8vIEFsbCBpbmZsb3cgZGVzY2VuZGFudHMgKGlmIHRo
ZXJlIGFyZSBhbnkpIGFyZSBsYWlkIG91dCBieSBub3cuIExldCdzIGNvbXB1dGUgdGhlIGJveCdz
IGhlaWdodC4KICAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9ICpsYXlvdXRRdWV1ZS50YWtl
TGFzdCgpOwogICAgICAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBob3Jpem9u
dGFsQ29uc3RyYWludHNGb3JMYXlvdXRCb3gobGF5b3V0Qm94KTsKKyAgICAgICAgICAgIGF1dG8g
dmVydGljYWxDb25zdHJhaW50cyA9IHZlcnRpY2FsQ29uc3RyYWludHNGb3JMYXlvdXRCb3gobGF5
b3V0Qm94KTsKICAgICAgICAgICAgIC8vIEZvcm1hdHRpbmcgcm9vdCBib3hlcyBhcmUgc3BlY2lh
bC1jYXNlZCBhbmQgdGhleSBkb24ndCBjb21lIGhlcmUuCiAgICAgICAgICAgICBBU1NFUlQoIWxh
eW91dEJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwotICAgICAgICAgICAgY29t
cHV0ZUhlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7Cisg
ICAgICAgICAgICBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENv
bnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKICAgICAgICAgICAgIC8vIE1vdmUgaW4t
ZmxvdyBwb3NpdGlvbmVkIGNoaWxkcmVuIHRvIHRoZWlyIGZpbmFsIHBvc2l0aW9uLgogICAgICAg
ICAgICAgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4obGF5b3V0Qm94LCBob3Jpem9udGFs
Q29uc3RyYWludHMpOwogICAgICAgICAgICAgaWYgKGFwcGVuZE5leHRUb0xheW91dFF1ZXVlKGxh
eW91dEJveCwgTGF5b3V0RGlyZWN0aW9uOjpTaWJsaW5nKSkKQEAgLTIxMSwxMyArMjEyLDEzIEBA
IHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290
KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBGCiAgICAgICAgIGF1dG8gZm9ybWF0dGluZ0NvbnRleHQg
PSBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChyb290Q29udGFpbmVyLCBs
YXlvdXRTdGF0ZSgpKTsKICAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0Nv
bnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNG
b3JJbkZsb3cocm9vdENvbnRhaW5lckRpc3BsYXlCb3gpLCBHZW9tZXRyeTo6dmVydGljYWxDb25z
dHJhaW50c0ZvckluRmxvdyhyb290Q29udGFpbmVyRGlzcGxheUJveCkpOwogICAgICAgICAvLyBD
b21lIGJhY2sgYW5kIGZpbmFsaXplIHRoZSByb290J3MgZ2VvbWV0cnkuCi0gICAgICAgIGNvbXB1
dGVIZWlnaHRBbmRNYXJnaW4ocm9vdENvbnRhaW5lciwgYWRqdXN0ZWRIb3Jpem9udGFsQ29uc3Ry
YWludHMpOworICAgICAgICBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKHJvb3RDb250YWluZXIsIGFk
anVzdGVkSG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKICAgICAg
ICAgLy8gTm93IHRoYXQgd2UgY29tcHV0ZWQgdGhlIHJvb3QncyBoZWlnaHQsIHdlIGNhbiBnbyBi
YWNrIGFuZCBsYXlvdXQgdGhlIG91dC1vZi1mbG93IGNvbnRlbnQuCiAgICAgICAgIGF1dG8gaG9y
aXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93ID0gIEdlb21ldHJ5Ojpob3Jpem9udGFsQ29u
c3RyYWludHNGb3JPdXRPZkZsb3cocm9vdENvbnRhaW5lckRpc3BsYXlCb3gpOwogICAgICAgICBh
dXRvIHZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3cgPSBHZW9tZXRyeTo6dmVydGljYWxD
b25zdHJhaW50c0Zvck91dE9mRmxvdyhyb290Q29udGFpbmVyRGlzcGxheUJveCk7CiAgICAgICAg
IGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRPdXRPZkZsb3dDb250ZW50KGludmFsaWRhdGlvblN0
YXRlLCBob3Jpem9udGFsQ29uc3RyYWludHNGb3JPdXRPZkZsb3csIHZlcnRpY2FsQ29uc3RyYWlu
dHNGb3JPdXRPZkZsb3cpOwogICAgIH0gZWxzZQotICAgICAgICBjb21wdXRlSGVpZ2h0QW5kTWFy
Z2luKGxheW91dEJveCwgYWRqdXN0ZWRIb3Jpem9udGFsQ29uc3RyYWludHMpOworICAgICAgICBj
b21wdXRlSGVpZ2h0QW5kTWFyZ2luKGxheW91dEJveCwgYWRqdXN0ZWRIb3Jpem9udGFsQ29uc3Ry
YWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwogICAgIC8vIEZsb2F0IHJlbGF0ZWQgZmluYWwg
cG9zaXRpb25pbmcuCiAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKSB7
CiAgICAgICAgIGNvbXB1dGVGbG9hdGluZ1Bvc2l0aW9uKGZsb2F0aW5nQ29udGV4dCwgbGF5b3V0
Qm94KTsKQEAgLTI0NSw5ICsyNDYsOSBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4dAogewogICAg
IGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KS5zZXRUb3AoZ2VvbWV0cnko
KS5zdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGxheW91dEJveCwgdmVydGljYWxDb25zdHJhaW50cy5j
b250YWluaW5nQmxvY2spKTsKICAgICBpZiAobGF5b3V0Qm94Lmhhc0Zsb2F0Q2xlYXIoKSkKLSAg
ICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGZsb2F0
aW5nQ29udGV4dCwgbGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOworICAgICAgICBj
b21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIoZmxvYXRpbmdDb250
ZXh0LCBsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50
cyk7CiAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQo
KSkKLSAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5n
Um9vdChsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7CisgICAgICAgIGNvbXB1dGVF
c3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRm9ybWF0dGluZ1Jvb3QobGF5b3V0Qm94LCBob3Jp
em9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwogfQogCiB2b2lkIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24oY29uc3Qg
Qm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWlu
dHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMpCkBAIC0yNjEsNyArMjYyLDcgQEAgdm9pZCBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb24oY29uc3QgRmxvYXRpbmdD
b250ZXh0JiBmbG9hdGkKICAgICBjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91
dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbihjb25zdCBCb3gmIGxheW91
dEJveCwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3RyYWludHMp
Cit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBv
c2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMm
IGhvcml6b250YWxDb25zdHJhaW50cywgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYgdmVydGlj
YWxDb25zdHJhaW50cykKIHsKICAgICBhdXRvIGNvbXB1dGVkVmVydGljYWxNYXJnaW4gPSBnZW9t
ZXRyeSgpLmNvbXB1dGVkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3Ry
YWludHMpOwogICAgIGF1dG8gdXNlZE5vbkNvbGxhcHNlZE1hcmdpbiA9IFVzZWRWZXJ0aWNhbE1h
cmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIHsgY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbi5iZWZvcmUu
dmFsdWVPcigwKSwgY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbi5hZnRlci52YWx1ZU9yKDApIH07CkBA
IC0yNzMsMTMgKzI3NCwxMyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVF
c3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0QgogICAgIGF1dG8gY29s
bGFwc2VkVmFsdWVzID0gVXNlZFZlcnRpY2FsTWFyZ2luOjpDb2xsYXBzZWRWYWx1ZXMgeyBlc3Rp
bWF0ZWRNYXJnaW5CZWZvcmUuY29sbGFwc2VkVmFsdWUsIHsgfSwgZXN0aW1hdGVkTWFyZ2luQmVm
b3JlLmlzQ29sbGFwc2VkVGhyb3VnaCB9OwogICAgIGF1dG8gdmVydGljYWxNYXJnaW4gPSBVc2Vk
VmVydGljYWxNYXJnaW4geyBub25Db2xsYXBzZWRWYWx1ZXMsIGNvbGxhcHNlZFZhbHVlcyB9Owog
ICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4odmVydGljYWxNYXJnaW4pOwotICAgIGRp
c3BsYXlCb3guc2V0VG9wKHZlcnRpY2FsUG9zaXRpb25XaXRoTWFyZ2luKGxheW91dEJveCwgdmVy
dGljYWxNYXJnaW4pKTsKKyAgICBkaXNwbGF5Qm94LnNldFRvcCh2ZXJ0aWNhbFBvc2l0aW9uV2l0
aE1hcmdpbihsYXlvdXRCb3gsIHZlcnRpY2FsTWFyZ2luLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKSk7
CiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBkaXNwbGF5Qm94LnNldEhhc0VzdGltYXRlZE1hcmdp
bkJlZm9yZSgpOwogI2VuZGlmCiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QgQm94JiBsYXlv
dXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jp
em9udGFsQ29uc3RyYWludHMpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVF
c3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRh
bENvbnN0cmFpbnRzLCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50cz4m
IHZlcnRpY2FsQ29uc3RyYWludHMpCiB7CiAgICAgLy8gV2Ugb25seSBuZWVkIHRvIGVzdGltYXRl
IG1hcmdpbiB0b3AgZm9yIGZsb2F0IHJlbGF0ZWQgbGF5b3V0IChmb3JtYXR0aW5nIGNvbnRleHQg
cm9vdHMgYXZvaWQgZmxvYXRzKS4KICAgICBBU1NFUlQobGF5b3V0Qm94LmlzRmxvYXRBdm9pZGVy
KCkgfHwgbGF5b3V0Qm94LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSk7CkBA
IC0yOTcsNDMgKzI5OCw0OCBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVF
c3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGNvbnN0CiAgICAgICAgIC8vIEZJ
WE1FOiB3aXRoIGluY3JlbWVudGFsIGxheW91dCwgd2UgbWlnaHQgYWN0dWFsbHkgaGF2ZSBhIHZh
bGlkIChub24tZXN0aW1hdGVkKSBtYXJnaW4gdG9wIGFzIHdlbGwuCiAgICAgICAgIGlmIChoYXNF
c3RpbWF0ZWRNYXJnaW5CZWZvcmUoKmFuY2VzdG9yKSkKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNGb3JBbmNlc3RvciA9IGhvcml6b250YWxD
b25zdHJhaW50cy5yb290OwotICAgICAgICBpZiAoYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygp
ICE9ICZyb290KCkpCi0gICAgICAgICAgICBob3Jpem9udGFsQ29uc3RyYWludHNGb3JBbmNlc3Rv
ciA9IEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3coZ2VvbWV0cnlGb3JC
b3goKmFuY2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkpOwotICAgICAgICBjb21wdXRlRXN0aW1h
dGVkVmVydGljYWxQb3NpdGlvbigqYW5jZXN0b3IsIGhvcml6b250YWxDb25zdHJhaW50c0ZvckFu
Y2VzdG9yKTsKKyAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNGb3JBbmNlc3RvciA9
IFsmXSB7CisgICAgICAgICAgICBhdXRvKiBjb250YWluaW5nQmxvY2sgPSBsYXlvdXRCb3guY29u
dGFpbmluZ0Jsb2NrKCk7CisgICAgICAgICAgICByZXR1cm4gY29udGFpbmluZ0Jsb2NrID09ICZy
b290KCkgPyBob3Jpem9udGFsQ29uc3RyYWludHMucm9vdCA6IEdlb21ldHJ5Ojpob3Jpem9udGFs
Q29uc3RyYWludHNGb3JJbkZsb3coZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5pbmdCbG9jaykpOwor
ICAgICAgICB9OworICAgICAgICBhdXRvIHZlcnRpY2FsQ29uc3RyYWludHNGb3JBbmNlc3RvciA9
IFsmXSB7CisgICAgICAgICAgICBhdXRvKiBjb250YWluaW5nQmxvY2sgPSBsYXlvdXRCb3guY29u
dGFpbmluZ0Jsb2NrKCk7CisgICAgICAgICAgICByZXR1cm4gY29udGFpbmluZ0Jsb2NrID09ICZy
b290KCkgPyB2ZXJ0aWNhbENvbnN0cmFpbnRzLnJvb3QgOiBHZW9tZXRyeTo6dmVydGljYWxDb25z
dHJhaW50c0ZvckluRmxvdyhnZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrKSk7CisgICAg
ICAgIH07CisgICAgICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKCphbmNlc3Rv
ciwgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yQW5jZXN0b3IoKSwgdmVydGljYWxDb25zdHJhaW50
c0ZvckFuY2VzdG9yKCkpOwogICAgIH0KIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290KGNvbnN0
IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFp
bnRzPiYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290KGNvbnN0
IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFp
bnRzPiYgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVydGlj
YWxDb25zdHJhaW50cz4mIHZlcnRpY2FsQ29uc3RyYWludHMpCiB7CiAgICAgQVNTRVJUKGxheW91
dEJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwogICAgIEFTU0VSVCghbGF5b3V0
Qm94Lmhhc0Zsb2F0Q2xlYXIoKSk7CiAKICAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3Np
dGlvbmVkKCkpIHsKLSAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JB
bmNlc3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOworICAgICAgICBjb21w
dXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckFuY2VzdG9ycyhsYXlvdXRCb3gsIGhvcml6
b250YWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gs
IGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2spOwotICAgIGNvbXB1dGVFc3Rp
bWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpvbnRhbENv
bnN0cmFpbnRzKTsKKyAgICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbihsYXlvdXRC
b3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2ssIHZlcnRpY2FsQ29uc3Ry
YWludHMuY29udGFpbmluZ0Jsb2NrKTsKKyAgICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3Np
dGlvbkZvckFuY2VzdG9ycyhsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVydGlj
YWxDb25zdHJhaW50cyk7CiAKICAgICAvLyBJZiB0aGUgaW5saW5lIGZvcm1hdHRpbmcgcm9vdCBp
cyBhbHNvIHRoZSByb290IGZvciB0aGUgZmxvYXRzIChoYXBwZW5zIHdoZW4gdGhlIHJvb3QgYm94
IGFsc28gZXN0YWJsaXNoZXMgYSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQpCiAgICAgLy8gdGhl
IGZsb2F0cyBhcmUgaW4gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9mIHRoaXMgcm9vdC4gTm8gbmVl
ZCB0byBmaW5kIHRoZSBmaW5hbCB2ZXJ0aWNhbCBwb3NpdGlvbi4KICAgICBhdXRvIGlubGluZUNv
bnRleHRJbmhlcml0c0Zsb2F0cyA9IGxheW91dEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRp
bmdDb250ZXh0T25seSgpOwogICAgIGlmIChpbmxpbmVDb250ZXh0SW5oZXJpdHNGbG9hdHMpIHsK
LSAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24obGF5b3V0Qm94LCBob3Jp
em9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKTsKLSAgICAgICAgY29tcHV0ZUVzdGlt
YXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29u
c3RyYWludHMpOworICAgICAgICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbihsYXlv
dXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2ssIHZlcnRpY2FsQ29u
c3RyYWludHMuY29udGFpbmluZ0Jsb2NrKTsKKyAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRp
Y2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMs
IHZlcnRpY2FsQ29uc3RyYWludHMpOwogICAgIH0KIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIoY29u
c3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRh
bENvbnN0cmFpbnRzKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1h
dGVkVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIoY29uc3QgRmxvYXRpbmdDb250ZXh0JiBm
bG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c1Bh
aXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBD
b25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50cz4mIHZlcnRpY2FsQ29uc3RyYWludHMp
CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5oYXNGbG9hdENsZWFyKCkpOwogICAgIGlmIChmbG9h
dGluZ0NvbnRleHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAgICAgLy8gVGhlIHN0YXRp
YyBwb3NpdGlvbiB3aXRoIGNsZWFyIHJlcXVpcmVzIG1hcmdpbiBlc2l0bWF0aW9uIHRvIHNlZSBp
ZiBjbGVhcmFuY2UgaXMgbmVlZGVkLgotICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0
aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jayk7Ci0g
ICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMobGF5b3V0Qm94
LCBob3Jpem9udGFsQ29uc3RyYWludHMpOworICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBv
c2l0aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaywg
dmVydGljYWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2spOworICAgIGNvbXB1dGVFc3RpbWF0
ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0
cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKICAgICBhdXRvIHZlcnRpY2FsUG9zaXRpb25B
bmRDbGVhcmFuY2UgPSBmbG9hdGluZ0NvbnRleHQudmVydGljYWxQb3NpdGlvbldpdGhDbGVhcmFu
Y2UobGF5b3V0Qm94KTsKICAgICBpZiAoIXZlcnRpY2FsUG9zaXRpb25BbmRDbGVhcmFuY2UucG9z
aXRpb24pIHsKICAgICAgICAgQVNTRVJUKCF2ZXJ0aWNhbFBvc2l0aW9uQW5kQ2xlYXJhbmNlLmNs
ZWFyYW5jZSk7CkBAIC00MTQsNyArNDIwLDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEMKICAg
ICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxDb21wdXRlZE1hcmdpbihjb250ZW50V2lkdGhBbmRN
YXJnaW4uY29tcHV0ZWRNYXJnaW4pOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0
cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMp
Cit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29u
c3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3Ry
YWludHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0
aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKIHsKICAgICBhdXRvIGNvbXB1
dGUgPSBbJl0oT3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZEhlaWdodCkgLT4gQ29udGVudEhlaWdo
dEFuZE1hcmdpbiB7CiAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3coKSkKQEAgLTQ2Myw3
ICs0NjksNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRN
YXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0CiAKICAgICBBU1NFUlQoIWhhc0VzdGlt
YXRlZE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpIHx8IGVzdGltYXRlZE1hcmdpbkJlZm9yZShsYXlv
dXRCb3gpLnVzZWRWYWx1ZSgpID09IHZlcnRpY2FsTWFyZ2luLmJlZm9yZSgpKTsKICAgICByZW1v
dmVFc3RpbWF0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94KTsKLSAgICBkaXNwbGF5Qm94LnNldFRv
cCh2ZXJ0aWNhbFBvc2l0aW9uV2l0aE1hcmdpbihsYXlvdXRCb3gsIHZlcnRpY2FsTWFyZ2luKSk7
CisgICAgZGlzcGxheUJveC5zZXRUb3AodmVydGljYWxQb3NpdGlvbldpdGhNYXJnaW4obGF5b3V0
Qm94LCB2ZXJ0aWNhbE1hcmdpbiwgdmVydGljYWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2sp
KTsKICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hIZWlnaHQoY29udGVudEhlaWdodEFuZE1h
cmdpbi5jb250ZW50SGVpZ2h0KTsKICAgICBkaXNwbGF5Qm94LnNldFZlcnRpY2FsTWFyZ2luKHZl
cnRpY2FsTWFyZ2luKTsKIApAQCAtNTE4LDcgKzUyNCw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpJ
bnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVk
SW50CiAgICAgcmV0dXJuIGNvbnN0cmFpbnRzOwogfQogCi1MYXlvdXRVbml0IEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OnZlcnRpY2FsUG9zaXRpb25XaXRoTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBjb25zdCBVc2VkVmVydGljYWxNYXJnaW4mIHZlcnRpY2FsTWFyZ2luKSBjb25zdAorTGF5
b3V0VW5pdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojp2ZXJ0aWNhbFBvc2l0aW9uV2l0aE1hcmdp
bihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgVXNlZFZlcnRpY2FsTWFyZ2luJiB2ZXJ0aWNh
bE1hcmdpbiwgIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKCFsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkp
OwogICAgIC8vIE5vdyB0aGF0IHdlJ3ZlIGNvbXB1dGVkIHRoZSBmaW5hbCBtYXJnaW4gYmVmb3Jl
LCBsZXQncyBzaGlmdCB0aGUgYm94J3MgdmVydGljYWwgcG9zaXRpb24gaWYgbmVlZGVkLgpAQCAt
NTQ3LDggKzU1Myw3IEBAIExheW91dFVuaXQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6dmVydGlj
YWxQb3NpdGlvbldpdGhNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCCiAgICAgICAgIGN1cnJlbnRM
YXlvdXRCb3ggPSAmcHJldmlvdXNJbkZsb3dTaWJsaW5nOwogICAgIH0KIAotICAgIGF1dG8mIGNv
bnRhaW5pbmdCbG9jayA9ICpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgYXV0byBj
b250YWluaW5nQmxvY2tDb250ZW50Qm94VG9wID0gZ2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Js
b2NrKS5jb250ZW50Qm94VG9wKCk7CisgICAgYXV0byBjb250YWluaW5nQmxvY2tDb250ZW50Qm94
VG9wID0gdmVydGljYWxDb25zdHJhaW50cy5sb2dpY2FsVG9wOwogICAgIC8vIEFkanVzdCB2ZXJ0
aWNhbCBwb3NpdGlvbiBkZXBlbmRpbmcgd2hldGhlciB0aGlzIGJveCBkaXJlY3RseSBvciBpbmRp
cmVjdGx5IGFkam9pbnMgd2l0aCBpdHMgcGFyZW50LgogICAgIGF1dG8gZGlyZWN0bHlBZGpvaW5z
UGFyZW50ID0gIWxheW91dEJveC5wcmV2aW91c0luRmxvd1NpYmxpbmcoKTsKICAgICBpZiAoZGly
ZWN0bHlBZGpvaW5zUGFyZW50KSB7CkBAIC01NzAsNiArNTc1LDcgQEAgTGF5b3V0VW5pdCBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojp2ZXJ0aWNhbFBvc2l0aW9uV2l0aE1hcmdpbihjb25zdCBCb3gm
IGxheW91dEIKICAgICAgICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9ja0NvbnRlbnRCb3hUb3AgKyB2
ZXJ0aWNhbE1hcmdpbi5iZWZvcmUoKTsKICAgICB9CiAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGlz
IGJveCBpbmRpcmVjdGx5ICh2aWEgY29sbGFwc2VkIHRocm91Z2ggcHJldmlvdXMgaW4tZmxvdyBz
aWJsaW5ncykgYWRqb2lucyB0aGUgcGFyZW50LiBMZXQncyBjaGVjayBpZiBpdCBtYXJnaW4gY29s
bGFwc2VzIHdpdGggdGhlIHBhcmVudC4KKyAgICBhdXRvJiBjb250YWluaW5nQmxvY2sgPSAqbGF5
b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOwogICAgIEFTU0VSVChjb250YWluaW5nQmxvY2suZmly
c3RJbkZsb3dDaGlsZCgpKTsKICAgICBBU1NFUlQoY29udGFpbmluZ0Jsb2NrLmZpcnN0SW5GbG93
Q2hpbGQoKSAhPSAmbGF5b3V0Qm94KTsKICAgICBpZiAobWFyZ2luQ29sbGFwc2UoKS5tYXJnaW5C
ZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQmVmb3JlKCpjb250YWluaW5nQmxvY2suZmly
c3RJbkZsb3dDaGlsZCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggODc3MTgz
YWI0NzE1MzU4ZmEwNjQ2OGIyODdhODA2MzY4YWI0NzIxNy4uZjAzODVjMGM5NDg0MmRlM2UzNzQw
MzlkMGIwN2Y1MzBkYzEzMWRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTYy
LDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxk
cmVuKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWlu
dHM+Jik7CiAKICAgICB2b2lkIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25z
dCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYpOwotICAgIHZvaWQgY29t
cHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9y
aXpvbnRhbENvbnN0cmFpbnRzPiYpOworICAgIHZvaWQgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihj
b25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYs
IGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwogCiAgICAgdm9p
ZCBjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0
cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+Jik7CiAgICAgdm9pZCBjb21wdXRlU3Rh
dGljVmVydGljYWxQb3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBj
b25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0
cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwpAQCAtNzAsMTMgKzcwLDEzIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjb21wdXRlRmxvYXRpbmdQb3NpdGlvbihjb25zdCBGbG9hdGluZ0Nv
bnRleHQmLCBjb25zdCBCb3gmKTsKICAgICB2b2lkIGNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9h
dHMoY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94Jik7CiAKLSAgICB2b2lkIGNvbXB1
dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEJveCYsIGNvbnN0IEhvcml6b250YWxD
b25zdHJhaW50cyYpOwotICAgIHZvaWQgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25G
b3JBbmNlc3RvcnMoY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxD
b25zdHJhaW50cz4mKTsKLSAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9u
Rm9yRm9ybWF0dGluZ1Jvb3QoY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6
b250YWxDb25zdHJhaW50cz4mKTsKLSAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBv
c2l0aW9uRm9yRmxvYXRDbGVhcihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBj
b25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYpOworICAgIHZvaWQg
Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24oY29uc3QgQm94JiwgY29uc3QgSG9yaXpv
bnRhbENvbnN0cmFpbnRzJiwgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYpOworICAgIHZvaWQg
Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QgQm94Jiwg
Y29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mLCBjb25zdCBDb25z
dHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50cz4mKTsKKyAgICB2b2lkIGNvbXB1dGVFc3Rp
bWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRm9ybWF0dGluZ1Jvb3QoY29uc3QgQm94JiwgY29uc3Qg
Q29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mLCBjb25zdCBDb25zdHJhaW50
c1BhaXI8VmVydGljYWxDb25zdHJhaW50cz4mKTsKKyAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRW
ZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25z
dCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNv
bnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwogCiAgICAgSW50cmlu
c2ljV2lkdGhDb25zdHJhaW50cyBjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSBv
dmVycmlkZTsKLSAgICBMYXlvdXRVbml0IHZlcnRpY2FsUG9zaXRpb25XaXRoTWFyZ2luKGNvbnN0
IEJveCYsIGNvbnN0IFVzZWRWZXJ0aWNhbE1hcmdpbiYpIGNvbnN0OworICAgIExheW91dFVuaXQg
dmVydGljYWxQb3NpdGlvbldpdGhNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgVXNlZFZlcnRpY2Fs
TWFyZ2luJiwgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYpIGNvbnN0OwogCiAgICAgLy8gVGhp
cyBjbGFzcyBpbXBsZW1lbnRzIHBvc2l0aW9uaW5nIGFuZCBzaXppbmcgZm9yIGJveGVzIHBhcnRp
Y2lwYXRpbmcgaW4gYSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQuCiAgICAgY2xhc3MgR2VvbWV0
cnkgOiBwdWJsaWMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5IHsK
</data>
<flag name="review"
          id="403237"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>