<?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>63589</bug_id>
          
          <creation_ts>2011-06-28 17:43:02 -0700</creation_ts>
          <short_desc>Switch hitTestColumns/Contents/Floats to to new layout types</short_desc>
          <delta_ts>2011-06-29 11:58:40 -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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>63567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>429300</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-06-28 17:43:02 -0700</bug_when>
    <thetext>Switch hitTestColumns,  hitTestContents, hitTestFloats and supporting functions to to new layout types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429303</commentid>
    <comment_count>1</comment_count>
      <attachid>99010</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-06-28 17:47:38 -0700</bug_when>
    <thetext>Created attachment 99010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429310</commentid>
    <comment_count>2</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-06-28 17:54:21 -0700</bug_when>
    <thetext>Thanks Darin!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429756</commentid>
    <comment_count>3</comment_count>
      <attachid>99010</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-29 11:58:36 -0700</bug_when>
    <thetext>Comment on attachment 99010
Patch

Clearing flags on attachment: 99010

Committed r90030: &lt;http://trac.webkit.org/changeset/90030&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429757</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-29 11:58:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99010</attachid>
            <date>2011-06-28 17:47:38 -0700</date>
            <delta_ts>2011-06-29 11:58:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63589-20110628174737.patch</filename>
            <type>text/plain</type>
            <size>19350</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5OTc3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDYtMjggIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFN3aXRjaCBoaXRUZXN0Q29sdW1ucy9Db250ZW50cy9GbG9hdHMg
dG8gdG8gbmV3IGxheW91dCB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjM1ODkKKworICAgICAgICBTd2l0Y2ggbG9jYXRpb24gYW5kIHNpemUg
bWV0aG9kcyBmb3IgUmVuZGVyQm94IG92ZXIgdG8gdGhlIG5ldyBsYXlvdXQgdW5pdCBhYnN0cmFj
dGlvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlcy4K
KworICAgICAgICAqIHJlbmRlcmluZy9Db2x1bW5JbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpD
b2x1bW5JbmZvOjpkZXNpcmVkQ29sdW1uV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6Q29sdW1u
SW5mbzo6c2V0RGVzaXJlZENvbHVtbldpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbHVtbklu
Zm86OmNvbHVtbkhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDb2x1bW5JbmZvOjpzZXRDb2x1
bW5Db3VudEFuZEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDb2x1bW5JbmZvOjpzZXRDb2x1
bW5IZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6Q29sdW1uSW5mbzo6dXBkYXRlTWluaW11bUNv
bHVtbkhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDb2x1bW5JbmZvOjptaW5pbXVtQ29sdW1u
SGVpZ2h0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZE92ZXJmbG93RnJvbUNoaWxkcmVuKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludENvbHVtblJ1bGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpwYWludENvbHVtbkNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjpoaXRUZXN0RmxvYXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpoaXRUZXN0Q29sdW1ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6aGl0
VGVzdENvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb2x1bW5SZWN0
QXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OnhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp5UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdp
bik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpoaXRUZXN0Q29udGVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5oOgorCiAyMDExLTA2LTI4ICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9Db2x1bW5JbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0NvbHVtbkluZm8uaAkocmV2aXNpb24gODk5NzApCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvQ29sdW1uSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw4
IEBACiAjaWZuZGVmIENvbHVtbkluZm9faAogI2RlZmluZSBDb2x1bW5JbmZvX2gKIAorI2luY2x1
ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgIklu
dFJlY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NSwyNiArNDUsMjYgQEAgcHVi
bGljOgogICAgICAgICAsIG1fZm9yY2VkQnJlYWtPZmZzZXQoMCkKICAgICAgICAgeyB9CiAgICAg
Ci0gICAgaW50IGRlc2lyZWRDb2x1bW5XaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzaXJlZENv
bHVtbldpZHRoOyB9Ci0gICAgdm9pZCBzZXREZXNpcmVkQ29sdW1uV2lkdGgoaW50IHdpZHRoKSB7
IG1fZGVzaXJlZENvbHVtbldpZHRoID0gd2lkdGg7IH0KKyAgICBMYXlvdXRVbml0IGRlc2lyZWRD
b2x1bW5XaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzaXJlZENvbHVtbldpZHRoOyB9CisgICAg
dm9pZCBzZXREZXNpcmVkQ29sdW1uV2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkgeyBtX2Rlc2lyZWRD
b2x1bW5XaWR0aCA9IHdpZHRoOyB9CiAgICAgCiAgICAgdW5zaWduZWQgZGVzaXJlZENvbHVtbkNv
dW50KCkgY29uc3QgeyByZXR1cm4gbV9kZXNpcmVkQ29sdW1uQ291bnQ7IH0KICAgICB2b2lkIHNl
dERlc2lyZWRDb2x1bW5Db3VudCh1bnNpZ25lZCBjb3VudCkgeyBtX2Rlc2lyZWRDb2x1bW5Db3Vu
dCA9IGNvdW50OyB9CiAKICAgICB1bnNpZ25lZCBjb2x1bW5Db3VudCgpIGNvbnN0IHsgcmV0dXJu
IG1fY29sdW1uQ291bnQ7IH0KLSAgICBpbnQgY29sdW1uSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4g
bV9jb2x1bW5IZWlnaHQ7IH0KKyAgICBMYXlvdXRVbml0IGNvbHVtbkhlaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1fY29sdW1uSGVpZ2h0OyB9CiAKICAgICAvLyBTZXQgb3VyIGNvdW50IGFuZCBoZWln
aHQuICBUaGlzIGlzIGVub3VnaCBpbmZvIGZvciBhIFJlbmRlckJsb2NrIHRvIGNvbXB1dGUgcGFn
ZSByZWN0cwogICAgIC8vIGR5bmFtaWNhbGx5LgotICAgIHZvaWQgc2V0Q29sdW1uQ291bnRBbmRI
ZWlnaHQoaW50IGNvdW50LCBpbnQgaGVpZ2h0KQorICAgIHZvaWQgc2V0Q29sdW1uQ291bnRBbmRI
ZWlnaHQoaW50IGNvdW50LCBMYXlvdXRVbml0IGhlaWdodCkKICAgICB7IAogICAgICAgICBtX2Nv
bHVtbkNvdW50ID0gY291bnQ7CiAgICAgICAgIG1fY29sdW1uSGVpZ2h0ID0gaGVpZ2h0OwogICAg
IH0KLSAgICB2b2lkIHNldENvbHVtbkhlaWdodChpbnQgaGVpZ2h0KSB7IG1fY29sdW1uSGVpZ2h0
ID0gaGVpZ2h0OyB9CisgICAgdm9pZCBzZXRDb2x1bW5IZWlnaHQoTGF5b3V0VW5pdCBoZWlnaHQp
IHsgbV9jb2x1bW5IZWlnaHQgPSBoZWlnaHQ7IH0KIAotICAgIHZvaWQgdXBkYXRlTWluaW11bUNv
bHVtbkhlaWdodChpbnQgaGVpZ2h0KSB7IG1fbWluaW11bUNvbHVtbkhlaWdodCA9IHN0ZDo6bWF4
KGhlaWdodCwgbV9taW5pbXVtQ29sdW1uSGVpZ2h0KTsgfQotICAgIGludCBtaW5pbXVtQ29sdW1u
SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtQ29sdW1uSGVpZ2h0OyB9CisgICAgdm9p
ZCB1cGRhdGVNaW5pbXVtQ29sdW1uSGVpZ2h0KExheW91dFVuaXQgaGVpZ2h0KSB7IG1fbWluaW11
bUNvbHVtbkhlaWdodCA9IHN0ZDo6bWF4KGhlaWdodCwgbV9taW5pbXVtQ29sdW1uSGVpZ2h0KTsg
fQorICAgIExheW91dFVuaXQgbWluaW11bUNvbHVtbkhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1f
bWluaW11bUNvbHVtbkhlaWdodDsgfQogCiAgICAgaW50IGZvcmNlZEJyZWFrcygpIGNvbnN0IHsg
cmV0dXJuIG1fZm9yY2VkQnJlYWtzOyB9CiAgICAgaW50IGZvcmNlZEJyZWFrT2Zmc2V0KCkgY29u
c3QgeyByZXR1cm4gbV9mb3JjZWRCcmVha09mZnNldDsgfQpAQCAtODcsMTIgKzg3LDEyIEBAIHB1
YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgaW50IG1fZGVzaXJlZENvbHVtbldpZHRoOwor
ICAgIExheW91dFVuaXQgbV9kZXNpcmVkQ29sdW1uV2lkdGg7CiAgICAgdW5zaWduZWQgbV9kZXNp
cmVkQ29sdW1uQ291bnQ7CiAgICAgCiAgICAgdW5zaWduZWQgbV9jb2x1bW5Db3VudDsKLSAgICBp
bnQgbV9jb2x1bW5IZWlnaHQ7Ci0gICAgaW50IG1fbWluaW11bUNvbHVtbkhlaWdodDsKKyAgICBM
YXlvdXRVbml0IG1fY29sdW1uSGVpZ2h0OworICAgIExheW91dFVuaXQgbV9taW5pbXVtQ29sdW1u
SGVpZ2h0OwogICAgIGludCBtX2ZvcmNlZEJyZWFrczsgLy8gRklYTUU6IFdlIHdpbGwgdWx0aW1h
dGVseSBuZWVkIHRvIGNhY2hlIG1vcmUgaW5mb3JtYXRpb24gdG8gYmFsYW5jZSBhcm91bmQgZm9y
Y2VkIGJyZWFrcyBwcm9wZXJseS4KICAgICBpbnQgbV9tYXhpbXVtRGlzdGFuY2VCZXR3ZWVuRm9y
Y2VkQnJlYWtzOwogICAgIGludCBtX2ZvcmNlZEJyZWFrT2Zmc2V0OwpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiA4OTk3MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEz
NjEsNyArMTM2MSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFkZE92ZXJmbG93RnJvbUNoaWxkcmUK
ICAgICB9IGVsc2UgewogICAgICAgICBDb2x1bW5JbmZvKiBjb2xJbmZvID0gY29sdW1uSW5mbygp
OwogICAgICAgICBpZiAoY29sdW1uQ291bnQoY29sSW5mbykpIHsKLSAgICAgICAgICAgIEludFJl
Y3QgbGFzdFJlY3QgPSBjb2x1bW5SZWN0QXQoY29sSW5mbywgY29sdW1uQ291bnQoY29sSW5mbykg
LSAxKTsKKyAgICAgICAgICAgIExheW91dFJlY3QgbGFzdFJlY3QgPSBjb2x1bW5SZWN0QXQoY29s
SW5mbywgY29sdW1uQ291bnQoY29sSW5mbykgLSAxKTsKICAgICAgICAgICAgIGlmIChpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpKSB7CiAgICAgICAgICAgICAgICAgaW50IG92ZXJmbG93TGVmdCA9
ICFzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBtaW4oMCwgbGFzdFJlY3QueCgp
KSA6IDA7CiAgICAgICAgICAgICAgICAgaW50IG92ZXJmbG93UmlnaHQgPSBzdHlsZSgpLT5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBtYXgod2lkdGgoKSwgbGFzdFJlY3QubWF4WCgpKSA6IDA7
CkBAIC0xMzcwLDcgKzEzNzAsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjphZGRPdmVyZmxvd0Zyb21D
aGlsZHJlCiAgICAgICAgICAgICAgICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAoKSkKICAgICAgICAg
ICAgICAgICAgICAgYWRkVmlzdWFsT3ZlcmZsb3coSW50UmVjdChvdmVyZmxvd0xlZnQsIDAsIG92
ZXJmbG93UmlnaHQgLSBvdmVyZmxvd0xlZnQsIG92ZXJmbG93SGVpZ2h0KSk7CiAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIEludFJlY3QgbGFzdFJlY3QgPSBjb2x1bW5SZWN0
QXQoY29sSW5mbywgY29sdW1uQ291bnQoY29sSW5mbykgLSAxKTsKKyAgICAgICAgICAgICAgICBM
YXlvdXRSZWN0IGxhc3RSZWN0ID0gY29sdW1uUmVjdEF0KGNvbEluZm8sIGNvbHVtbkNvdW50KGNv
bEluZm8pIC0gMSk7CiAgICAgICAgICAgICAgICAgaW50IG92ZXJmbG93VG9wID0gIXN0eWxlKCkt
PmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IG1pbigwLCBsYXN0UmVjdC55KCkpIDogMDsKICAg
ICAgICAgICAgICAgICBpbnQgb3ZlcmZsb3dCb3R0b20gPSBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0
RGlyZWN0aW9uKCkgPyBtYXgoaGVpZ2h0KCksIGxhc3RSZWN0Lm1heFkoKSkgOiAwOwogICAgICAg
ICAgICAgICAgIGludCBvdmVyZmxvd1dpZHRoID0gYm9yZGVyQmVmb3JlKCkgKyBwYWRkaW5nQmVm
b3JlKCkgKyBjb2xJbmZvLT5jb2x1bW5IZWlnaHQoKTsKQEAgLTIzMTcsNyArMjMxNyw3IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OnBhaW50Q29sdW1uUnVsZXMoUGFpbnQKICAgICBib29sIGFudGlhbGlh
cyA9ICFjdXJyZW50Q1RNLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uT3JGbGlwcGVkKCk7CiAKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY29sQ291bnQ7IGkrKykgewotICAgICAgICBJbnRS
ZWN0IGNvbFJlY3QgPSBjb2x1bW5SZWN0QXQoY29sSW5mbywgaSk7CisgICAgICAgIExheW91dFJl
Y3QgY29sUmVjdCA9IGNvbHVtblJlY3RBdChjb2xJbmZvLCBpKTsKIAogICAgICAgICBpbnQgaW5s
aW5lRGlyZWN0aW9uU2l6ZSA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjb2xSZWN0Lndp
ZHRoKCkgOiBjb2xSZWN0LmhlaWdodCgpOwogICAgICAgICAKQEAgLTIzNTUsNyArMjM1NSw3IEBA
IHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50Q29sdW1uQ29udGVudHMoUGEKICAgICBpbnQgY3Vyckxv
Z2ljYWxUb3BPZmZzZXQgPSAwOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb2xDb3Vu
dDsgaSsrKSB7CiAgICAgICAgIC8vIEZvciBlYWNoIHJlY3QsIHdlIGNsaXAgdG8gdGhlIHJlY3Qs
IGFuZCB0aGVuIHdlIGFkanVzdCBvdXIgY29vcmRzLgotICAgICAgICBJbnRSZWN0IGNvbFJlY3Qg
PSBjb2x1bW5SZWN0QXQoY29sSW5mbywgaSk7CisgICAgICAgIExheW91dFJlY3QgY29sUmVjdCA9
IGNvbHVtblJlY3RBdChjb2xJbmZvLCBpKTsKICAgICAgICAgZmxpcEZvcldyaXRpbmdNb2RlKGNv
bFJlY3QpOwogICAgICAgICBpbnQgbG9naWNhbExlZnRPZmZzZXQgPSAoaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSA/IGNvbFJlY3QueCgpIDogY29sUmVjdC55KCkpIC0gbG9naWNhbExlZnRPZmZz
ZXRGb3JDb250ZW50KCk7CiAgICAgICAgIEludFNpemUgb2Zmc2V0ID0gaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSA/IEludFNpemUobG9naWNhbExlZnRPZmZzZXQsIGN1cnJMb2dpY2FsVG9wT2Zm
c2V0KSA6IEludFNpemUoY3VyckxvZ2ljYWxUb3BPZmZzZXQsIGxvZ2ljYWxMZWZ0T2Zmc2V0KTsK
QEAgLTM5OTEsMTIgKzM5OTEsMTIgQEAgYm9vbCBSZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQoY29u
c3QgSGl0VAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSZW5kZXJCbG9jazo6aGl0VGVz
dEZsb2F0cyhjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVz
dWx0LCBjb25zdCBJbnRQb2ludCYgcG9pbnRJbkNvbnRhaW5lciwgY29uc3QgSW50UG9pbnQmIGFj
Y3VtdWxhdGVkT2Zmc2V0KQorYm9vbCBSZW5kZXJCbG9jazo6aGl0VGVzdEZsb2F0cyhjb25zdCBI
aXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBMYXlv
dXRQb2ludCYgcG9pbnRJbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVk
T2Zmc2V0KQogewogICAgIGlmICghbV9mbG9hdGluZ09iamVjdHMpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIEludFBvaW50IGFkanVzdGVkTG9jYXRpb24gPSBhY2N1bXVsYXRlZE9mZnNl
dDsKKyAgICBMYXlvdXRQb2ludCBhZGp1c3RlZExvY2F0aW9uID0gYWNjdW11bGF0ZWRPZmZzZXQ7
CiAgICAgaWYgKGlzUmVuZGVyVmlldygpKSB7CiAgICAgICAgIGFkanVzdGVkTG9jYXRpb24gKz0g
dG9TaXplKHRvUmVuZGVyVmlldyh0aGlzKS0+ZnJhbWVWaWV3KCktPnNjcm9sbFBvc2l0aW9uKCkp
OwogICAgIH0KQEAgLTQwMDcsOSArNDAwNyw5IEBAIGJvb2wgUmVuZGVyQmxvY2s6OmhpdFRlc3RG
bG9hdHMoY29uc3QgSGkKICAgICAgICAgLS1pdDsKICAgICAgICAgRmxvYXRpbmdPYmplY3QqIGZs
b2F0aW5nT2JqZWN0ID0gKml0OwogICAgICAgICBpZiAoZmxvYXRpbmdPYmplY3QtPm1fc2hvdWxk
UGFpbnQgJiYgIWZsb2F0aW5nT2JqZWN0LT5tX3JlbmRlcmVyLT5oYXNTZWxmUGFpbnRpbmdMYXll
cigpKSB7Ci0gICAgICAgICAgICBpbnQgeE9mZnNldCA9IHhQb3NpdGlvbkZvckZsb2F0SW5jbHVk
aW5nTWFyZ2luKGZsb2F0aW5nT2JqZWN0KSAtIGZsb2F0aW5nT2JqZWN0LT5tX3JlbmRlcmVyLT54
KCk7Ci0gICAgICAgICAgICBpbnQgeU9mZnNldCA9IHlQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5n
TWFyZ2luKGZsb2F0aW5nT2JqZWN0KSAtIGZsb2F0aW5nT2JqZWN0LT5tX3JlbmRlcmVyLT55KCk7
Ci0gICAgICAgICAgICBJbnRQb2ludCBjaGlsZFBvaW50ID0gZmxpcEZsb2F0Rm9yV3JpdGluZ01v
ZGUoZmxvYXRpbmdPYmplY3QsIGFkanVzdGVkTG9jYXRpb24gKyBJbnRTaXplKHhPZmZzZXQsIHlP
ZmZzZXQpKTsKKyAgICAgICAgICAgIExheW91dFVuaXQgeE9mZnNldCA9IHhQb3NpdGlvbkZvckZs
b2F0SW5jbHVkaW5nTWFyZ2luKGZsb2F0aW5nT2JqZWN0KSAtIGZsb2F0aW5nT2JqZWN0LT5tX3Jl
bmRlcmVyLT54KCk7CisgICAgICAgICAgICBMYXlvdXRVbml0IHlPZmZzZXQgPSB5UG9zaXRpb25G
b3JGbG9hdEluY2x1ZGluZ01hcmdpbihmbG9hdGluZ09iamVjdCkgLSBmbG9hdGluZ09iamVjdC0+
bV9yZW5kZXJlci0+eSgpOworICAgICAgICAgICAgTGF5b3V0UG9pbnQgY2hpbGRQb2ludCA9IGZs
aXBGbG9hdEZvcldyaXRpbmdNb2RlKGZsb2F0aW5nT2JqZWN0LCBhZGp1c3RlZExvY2F0aW9uICsg
TGF5b3V0U2l6ZSh4T2Zmc2V0LCB5T2Zmc2V0KSk7CiAgICAgICAgICAgICBpZiAoZmxvYXRpbmdP
YmplY3QtPm1fcmVuZGVyZXItPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0LCBwb2ludEluQ29udGFp
bmVyLCBjaGlsZFBvaW50KSkgewogICAgICAgICAgICAgICAgIHVwZGF0ZUhpdFRlc3RSZXN1bHQo
cmVzdWx0LCBwb2ludEluQ29udGFpbmVyIC0gdG9TaXplKGNoaWxkUG9pbnQpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQwMjAsMzAgKzQwMjAsMzAgQEAgYm9vbCBSZW5kZXJC
bG9jazo6aGl0VGVzdEZsb2F0cyhjb25zdCBIaQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9v
bCBSZW5kZXJCbG9jazo6aGl0VGVzdENvbHVtbnMoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVl
c3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSW50UG9pbnQmIHBvaW50SW5Db250YWlu
ZXIsIGNvbnN0IEludFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbiBoaXRU
ZXN0QWN0aW9uKQorYm9vbCBSZW5kZXJCbG9jazo6aGl0VGVzdENvbHVtbnMoY29uc3QgSGl0VGVz
dFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgTGF5b3V0UG9p
bnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNl
dCwgSGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQogewogICAgIC8vIFdlIG5lZWQgdG8gZG8g
bXVsdGlwbGUgcGFzc2VzLCBicmVha2luZyB1cCBvdXIgaGl0IHRlc3RpbmcgaW50byBzdHJpcHMu
CiAgICAgQ29sdW1uSW5mbyogY29sSW5mbyA9IGNvbHVtbkluZm8oKTsKICAgICBpbnQgY29sQ291
bnQgPSBjb2x1bW5Db3VudChjb2xJbmZvKTsKICAgICBpZiAoIWNvbENvdW50KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaW50IGxvZ2ljYWxMZWZ0ID0gbG9naWNhbExlZnRPZmZzZXRGb3JD
b250ZW50KCk7Ci0gICAgaW50IGN1cnJMb2dpY2FsVG9wT2Zmc2V0ID0gMDsKKyAgICBMYXlvdXRV
bml0IGxvZ2ljYWxMZWZ0ID0gbG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KCk7CisgICAgTGF5
b3V0VW5pdCBjdXJyTG9naWNhbFRvcE9mZnNldCA9IDA7CiAgICAgaW50IGk7CiAgICAgYm9vbCBp
c0hvcml6b250YWwgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwogICAgIGZvciAoaSA9IDA7
IGkgPCBjb2xDb3VudDsgaSsrKSB7Ci0gICAgICAgIEludFJlY3QgY29sUmVjdCA9IGNvbHVtblJl
Y3RBdChjb2xJbmZvLCBpKTsKLSAgICAgICAgaW50IGJsb2NrRGVsdGEgPSAgKGlzSG9yaXpvbnRh
bCA/IGNvbFJlY3QuaGVpZ2h0KCkgOiBjb2xSZWN0LndpZHRoKCkpOworICAgICAgICBMYXlvdXRS
ZWN0IGNvbFJlY3QgPSBjb2x1bW5SZWN0QXQoY29sSW5mbywgaSk7CisgICAgICAgIExheW91dFVu
aXQgYmxvY2tEZWx0YSA9ICAoaXNIb3Jpem9udGFsID8gY29sUmVjdC5oZWlnaHQoKSA6IGNvbFJl
Y3Qud2lkdGgoKSk7CiAgICAgICAgIGlmIChzdHlsZSgpLT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5n
TW9kZSgpKQogICAgICAgICAgICAgY3VyckxvZ2ljYWxUb3BPZmZzZXQgKz0gYmxvY2tEZWx0YTsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgY3VyckxvZ2ljYWxUb3BPZmZzZXQgLT0gYmxvY2tE
ZWx0YTsKICAgICB9CiAgICAgZm9yIChpID0gY29sQ291bnQgLSAxOyBpID49IDA7IGktLSkgewot
ICAgICAgICBJbnRSZWN0IGNvbFJlY3QgPSBjb2x1bW5SZWN0QXQoY29sSW5mbywgaSk7CisgICAg
ICAgIExheW91dFJlY3QgY29sUmVjdCA9IGNvbHVtblJlY3RBdChjb2xJbmZvLCBpKTsKICAgICAg
ICAgZmxpcEZvcldyaXRpbmdNb2RlKGNvbFJlY3QpOwotICAgICAgICBpbnQgY3VyckxvZ2ljYWxM
ZWZ0T2Zmc2V0ID0gKGlzSG9yaXpvbnRhbCA/IGNvbFJlY3QueCgpIDogY29sUmVjdC55KCkpIC0g
bG9naWNhbExlZnQ7Ci0gICAgICAgIGludCBibG9ja0RlbHRhID0gIChpc0hvcml6b250YWwgPyBj
b2xSZWN0LmhlaWdodCgpIDogY29sUmVjdC53aWR0aCgpKTsKKyAgICAgICAgTGF5b3V0VW5pdCBj
dXJyTG9naWNhbExlZnRPZmZzZXQgPSAoaXNIb3Jpem9udGFsID8gY29sUmVjdC54KCkgOiBjb2xS
ZWN0LnkoKSkgLSBsb2dpY2FsTGVmdDsKKyAgICAgICAgTGF5b3V0VW5pdCBibG9ja0RlbHRhID0g
IChpc0hvcml6b250YWwgPyBjb2xSZWN0LmhlaWdodCgpIDogY29sUmVjdC53aWR0aCgpKTsKICAg
ICAgICAgaWYgKHN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCiAgICAgICAg
ICAgICBjdXJyTG9naWNhbFRvcE9mZnNldCAtPSBibG9ja0RlbHRhOwogICAgICAgICBlbHNlCkBA
IC00MDU0LDggKzQwNTQsOCBAQCBib29sIFJlbmRlckJsb2NrOjpoaXRUZXN0Q29sdW1ucyhjb25z
dCBICiAgICAgICAgICAgICAvLyBUaGUgcG9pbnQgaXMgaW5zaWRlIHRoaXMgY29sdW1uLgogICAg
ICAgICAgICAgLy8gQWRqdXN0IGFjY3VtdWxhdGVkT2Zmc2V0IHRvIGNoYW5nZSB3aGVyZSB3ZSBo
aXQgdGVzdC4KICAgICAgICAgCi0gICAgICAgICAgICBJbnRTaXplIG9mZnNldCA9IGlzSG9yaXpv
bnRhbCA/IEludFNpemUoY3VyckxvZ2ljYWxMZWZ0T2Zmc2V0LCBjdXJyTG9naWNhbFRvcE9mZnNl
dCkgOiBJbnRTaXplKGN1cnJMb2dpY2FsVG9wT2Zmc2V0LCBjdXJyTG9naWNhbExlZnRPZmZzZXQp
OwotICAgICAgICAgICAgSW50UG9pbnQgZmluYWxMb2NhdGlvbiA9IGFjY3VtdWxhdGVkT2Zmc2V0
ICsgb2Zmc2V0OworICAgICAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBpc0hvcml6b250YWwg
PyBJbnRTaXplKGN1cnJMb2dpY2FsTGVmdE9mZnNldCwgY3VyckxvZ2ljYWxUb3BPZmZzZXQpIDog
TGF5b3V0U2l6ZShjdXJyTG9naWNhbFRvcE9mZnNldCwgY3VyckxvZ2ljYWxMZWZ0T2Zmc2V0KTsK
KyAgICAgICAgICAgIExheW91dFBvaW50IGZpbmFsTG9jYXRpb24gPSBhY2N1bXVsYXRlZE9mZnNl
dCArIG9mZnNldDsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNSZWN0QmFzZWRUZXN0KCkgJiYg
IWNvbFJlY3QuY29udGFpbnMocmVzdWx0LnJlY3RGb3JQb2ludChwb2ludEluQ29udGFpbmVyKSkp
CiAgICAgICAgICAgICAgICAgaGl0VGVzdENvbnRlbnRzKHJlcXVlc3QsIHJlc3VsdCwgcG9pbnRJ
bkNvbnRhaW5lciwgZmluYWxMb2NhdGlvbiwgaGl0VGVzdEFjdGlvbik7CiAgICAgICAgICAgICBl
bHNlCkBAIC00MDY2LDcgKzQwNjYsNyBAQCBib29sIFJlbmRlckJsb2NrOjpoaXRUZXN0Q29sdW1u
cyhjb25zdCBICiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFJlbmRlckJsb2NrOjpoaXRU
ZXN0Q29udGVudHMoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQm
IHJlc3VsdCwgY29uc3QgSW50UG9pbnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0IEludFBvaW50
JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQorYm9vbCBS
ZW5kZXJCbG9jazo6aGl0VGVzdENvbnRlbnRzKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0
LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IExheW91dFBvaW50JiBwb2ludEluQ29udGFp
bmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24g
aGl0VGVzdEFjdGlvbikKIHsKICAgICBpZiAoY2hpbGRyZW5JbmxpbmUoKSAmJiAhaXNUYWJsZSgp
KSB7CiAgICAgICAgIC8vIFdlIGhhdmUgdG8gaGl0LXRlc3Qgb3VyIGxpbmUgYm94ZXMuCkBAIC00
MDc4LDcgKzQwNzgsNyBAQCBib29sIFJlbmRlckJsb2NrOjpoaXRUZXN0Q29udGVudHMoY29uc3Qg
CiAgICAgICAgIGlmIChoaXRUZXN0QWN0aW9uID09IEhpdFRlc3RDaGlsZEJsb2NrQmFja2dyb3Vu
ZHMpCiAgICAgICAgICAgICBjaGlsZEhpdFRlc3QgPSBIaXRUZXN0Q2hpbGRCbG9ja0JhY2tncm91
bmQ7CiAgICAgICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGxhc3RDaGlsZEJveCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+cHJldmlvdXNTaWJsaW5nQm94KCkpIHsKLSAgICAgICAgICAgIElu
dFBvaW50IGNoaWxkUG9pbnQgPSBmbGlwRm9yV3JpdGluZ01vZGUoY2hpbGQsIGFjY3VtdWxhdGVk
T2Zmc2V0LCBQYXJlbnRUb0NoaWxkRmxpcHBpbmdBZGp1c3RtZW50KTsKKyAgICAgICAgICAgIExh
eW91dFBvaW50IGNoaWxkUG9pbnQgPSBmbGlwRm9yV3JpdGluZ01vZGUoY2hpbGQsIGFjY3VtdWxh
dGVkT2Zmc2V0LCBQYXJlbnRUb0NoaWxkRmxpcHBpbmdBZGp1c3RtZW50KTsKICAgICAgICAgICAg
IGlmICghY2hpbGQtPmhhc1NlbGZQYWludGluZ0xheWVyKCkgJiYgIWNoaWxkLT5pc0Zsb2F0aW5n
KCkgJiYgY2hpbGQtPm5vZGVBdFBvaW50KHJlcXVlc3QsIHJlc3VsdCwgcG9pbnRJbkNvbnRhaW5l
ciwgY2hpbGRQb2ludCwgY2hpbGRIaXRUZXN0KSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQpAQCAtNDM1MSwyMiArNDM1MSwyMiBAQCB1bnNpZ25lZCBSZW5kZXJCbG9j
azo6Y29sdW1uQ291bnQoQ29sdW1uCiAgICAgcmV0dXJuIGNvbEluZm8tPmNvbHVtbkNvdW50KCk7
CiB9CiAKLUludFJlY3QgUmVuZGVyQmxvY2s6OmNvbHVtblJlY3RBdChDb2x1bW5JbmZvKiBjb2xJ
bmZvLCB1bnNpZ25lZCBpbmRleCkgY29uc3QKK0xheW91dFJlY3QgUmVuZGVyQmxvY2s6OmNvbHVt
blJlY3RBdChDb2x1bW5JbmZvKiBjb2xJbmZvLCB1bnNpZ25lZCBpbmRleCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoaGFzQ29sdW1ucygpICYmIGdDb2x1bW5JbmZvTWFwLT5nZXQodGhpcykgPT0gY29s
SW5mbyk7CiAKICAgICAvLyBDb21wdXRlIHRoZSBhcHByb3ByaWF0ZSByZWN0IGJhc2VkIG9mZiBv
dXIgaW5mb3JtYXRpb24uCi0gICAgaW50IGNvbExvZ2ljYWxXaWR0aCA9IGNvbEluZm8tPmRlc2ly
ZWRDb2x1bW5XaWR0aCgpOwotICAgIGludCBjb2xMb2dpY2FsSGVpZ2h0ID0gY29sSW5mby0+Y29s
dW1uSGVpZ2h0KCk7Ci0gICAgaW50IGNvbExvZ2ljYWxUb3AgPSBib3JkZXJCZWZvcmUoKSArIHBh
ZGRpbmdCZWZvcmUoKTsKKyAgICBMYXlvdXRVbml0IGNvbExvZ2ljYWxXaWR0aCA9IGNvbEluZm8t
PmRlc2lyZWRDb2x1bW5XaWR0aCgpOworICAgIExheW91dFVuaXQgY29sTG9naWNhbEhlaWdodCA9
IGNvbEluZm8tPmNvbHVtbkhlaWdodCgpOworICAgIExheW91dFVuaXQgY29sTG9naWNhbFRvcCA9
IGJvcmRlckJlZm9yZSgpICsgcGFkZGluZ0JlZm9yZSgpOwogICAgIGludCBjb2xHYXAgPSBjb2x1
bW5HYXAoKTsKLSAgICBpbnQgY29sTG9naWNhbExlZnQgPSBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0
RGlyZWN0aW9uKCkgPyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naWNhbExlZnRPZmZz
ZXRGb3JDb250ZW50KCkgKyAoaW5kZXggKiAoY29sTG9naWNhbFdpZHRoICsgY29sR2FwKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIDogbG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KCkgKyBj
b250ZW50TG9naWNhbFdpZHRoKCkgLSBjb2xMb2dpY2FsV2lkdGggLSAoaW5kZXggKiAoY29sTG9n
aWNhbFdpZHRoICsgY29sR2FwKSk7Ci0gICAgSW50UmVjdCByZWN0KGNvbExvZ2ljYWxMZWZ0LCBj
b2xMb2dpY2FsVG9wLCBjb2xMb2dpY2FsV2lkdGgsIGNvbExvZ2ljYWxIZWlnaHQpOworICAgIExh
eW91dFVuaXQgY29sTG9naWNhbExlZnQgPSBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9u
KCkgPyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxMZWZ0T2Zmc2V0
Rm9yQ29udGVudCgpICsgKGluZGV4ICogKGNvbExvZ2ljYWxXaWR0aCArIGNvbEdhcCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBsb2dpY2FsTGVmdE9mZnNldEZvckNvbnRlbnQo
KSArIGNvbnRlbnRMb2dpY2FsV2lkdGgoKSAtIGNvbExvZ2ljYWxXaWR0aCAtIChpbmRleCAqIChj
b2xMb2dpY2FsV2lkdGggKyBjb2xHYXApKTsKKwogICAgIGlmIChpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQotICAgICAgICByZXR1cm4gSW50UmVjdChjb2xMb2dpY2FsTGVmdCwgY29sTG9naWNh
bFRvcCwgY29sTG9naWNhbFdpZHRoLCBjb2xMb2dpY2FsSGVpZ2h0KTsKLSAgICByZXR1cm4gSW50
UmVjdChjb2xMb2dpY2FsVG9wLCBjb2xMb2dpY2FsTGVmdCwgY29sTG9naWNhbEhlaWdodCwgY29s
TG9naWNhbFdpZHRoKTsKKyAgICAgICAgcmV0dXJuIExheW91dFJlY3QoY29sTG9naWNhbExlZnQs
IGNvbExvZ2ljYWxUb3AsIGNvbExvZ2ljYWxXaWR0aCwgY29sTG9naWNhbEhlaWdodCk7CisgICAg
cmV0dXJuIExheW91dFJlY3QoY29sTG9naWNhbFRvcCwgY29sTG9naWNhbExlZnQsIGNvbExvZ2lj
YWxIZWlnaHQsIGNvbExvZ2ljYWxXaWR0aCk7CiB9CiAKIGJvb2wgUmVuZGVyQmxvY2s6OmxheW91
dENvbHVtbnMoYm9vbCBoYXNTcGVjaWZpZWRQYWdlTG9naWNhbEhlaWdodCwgaW50IHBhZ2VMb2dp
Y2FsSGVpZ2h0LCBMYXlvdXRTdGF0ZU1haW50YWluZXImIHN0YXRlUHVzaGVyKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHJldmlzaW9uIDg5OTcwKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4
MSw3ICsxODEsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gVGhlc2UgdHdvIGZ1bmN0aW9ucyB0
YWtlIHRoZSBDb2x1bW5JbmZvKiB0byBhdm9pZCByZXBlYXRlZCBsb29rdXBzIG9mIHRoZSBpbmZv
IGluIHRoZSBnbG9iYWwgSGFzaE1hcC4KICAgICB1bnNpZ25lZCBjb2x1bW5Db3VudChDb2x1bW5J
bmZvKikgY29uc3Q7Ci0gICAgSW50UmVjdCBjb2x1bW5SZWN0QXQoQ29sdW1uSW5mbyosIHVuc2ln
bmVkKSBjb25zdDsKKyAgICBMYXlvdXRSZWN0IGNvbHVtblJlY3RBdChDb2x1bW5JbmZvKiwgdW5z
aWduZWQpIGNvbnN0OwogCiAgICAgaW50IHBhZ2luYXRpb25TdHJ1dCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmFyZURhdGEgPyBtX3JhcmVEYXRhLT5tX3BhZ2luYXRpb25TdHJ1dCA6IDA7IH0KICAgICB2
b2lkIHNldFBhZ2luYXRpb25TdHJ1dChpbnQpOwpAQCAtNDk0LDcgKzQ5NCw3IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBjaGlsZC0+c2V0SGVpZ2h0KGxvZ2ljYWxXaWR0aCk7CiAgICAgfQogCi0g
ICAgaW50IHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNvbnN0IEZsb2F0aW5nT2Jq
ZWN0KiBjaGlsZCkgY29uc3QKKyAgICBMYXlvdXRVbml0IHhQb3NpdGlvbkZvckZsb2F0SW5jbHVk
aW5nTWFyZ2luKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCkgY29uc3QKICAgICB7CiAgICAg
ICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICAgICAgcmV0dXJuIGNo
aWxkLT54KCkgKyBjaGlsZC0+cmVuZGVyZXIoKS0+bWFyZ2luTGVmdCgpOwpAQCAtNTAyLDcgKzUw
Miw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gY2hpbGQtPngoKSArIG1hcmdpbkJl
Zm9yZUZvckNoaWxkKGNoaWxkLT5yZW5kZXJlcigpKTsKICAgICB9CiAgICAgICAgIAotICAgIGlu
dCB5UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjb25zdCBGbG9hdGluZ09iamVjdCog
Y2hpbGQpIGNvbnN0CisgICAgTGF5b3V0VW5pdCB5UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01h
cmdpbihjb25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQpIGNvbnN0CiAgICAgewogICAgICAgICBp
ZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgICAgIHJldHVybiBjaGlsZC0+
eSgpICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoY2hpbGQtPnJlbmRlcmVyKCkpOwpAQCAtNTg5LDkg
KzU4OSw5IEBAIHByaXZhdGU6CiAgICAgaW50IGxvd2VzdEZsb2F0TG9naWNhbEJvdHRvbShGbG9h
dGluZ09iamVjdDo6VHlwZSA9IEZsb2F0aW5nT2JqZWN0OjpGbG9hdEJvdGgpIGNvbnN0OwogICAg
IGludCBuZXh0RmxvYXRMb2dpY2FsQm90dG9tQmVsb3coaW50KSBjb25zdDsKICAgICAKLSAgICB2
aXJ0dWFsIGJvb2wgaGl0VGVzdENvbHVtbnMoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0
UmVzdWx0JiwgY29uc3QgSW50UG9pbnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0IEludFBvaW50
JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbik7Ci0gICAgdmlydHVhbCBib29sIGhp
dFRlc3RDb250ZW50cyhjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25z
dCBJbnRQb2ludCYgcG9pbnRJbkNvbnRhaW5lciwgY29uc3QgSW50UG9pbnQmIGFjY3VtdWxhdGVk
T2Zmc2V0LCBIaXRUZXN0QWN0aW9uKTsKLSAgICBib29sIGhpdFRlc3RGbG9hdHMoY29uc3QgSGl0
VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSW50UG9pbnQmIHBvaW50SW5Db250
YWluZXIsIGNvbnN0IEludFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCk7CisgICAgdmlydHVhbCBi
b29sIGhpdFRlc3RDb2x1bW5zKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYs
IGNvbnN0IExheW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYg
YWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pOworICAgIHZpcnR1YWwgYm9vbCBoaXRU
ZXN0Q29udGVudHMoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3Qg
TGF5b3V0UG9pbnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVs
YXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbik7CisgICAgYm9vbCBoaXRUZXN0RmxvYXRzKGNvbnN0
IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JiBwb2lu
dEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpOwogCiAg
ICAgdmlydHVhbCBib29sIGlzUG9pbnRJbk92ZXJmbG93Q29udHJvbChIaXRUZXN0UmVzdWx0Jiwg
Y29uc3QgSW50UG9pbnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0IEludFBvaW50JiBhY2N1bXVs
YXRlZE9mZnNldCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAkocmV2aXNpb24gODk5NzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTQxLDcgKzMxNDEsNyBAQCBSZW5kZXJMYXll
ciogUmVuZGVyTGF5ZXI6OmhpdFRlc3RMYXllcihSCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wg
UmVuZGVyTGF5ZXI6OmhpdFRlc3RDb250ZW50cyhjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVz
dCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBJbnRSZWN0JiBsYXllckJvdW5kcywgY29u
c3QgSW50UG9pbnQmIGhpdFRlc3RQb2ludCwgSGl0VGVzdEZpbHRlciBoaXRUZXN0RmlsdGVyKSBj
b25zdAorYm9vbCBSZW5kZXJMYXllcjo6aGl0VGVzdENvbnRlbnRzKGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IExheW91dFJlY3QmIGxh
eWVyQm91bmRzLCBjb25zdCBMYXlvdXRQb2ludCYgaGl0VGVzdFBvaW50LCBIaXRUZXN0RmlsdGVy
IGhpdFRlc3RGaWx0ZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFyZW5kZXJlcigpLT5oaXRUZXN0KHJl
cXVlc3QsIHJlc3VsdCwgaGl0VGVzdFBvaW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRvUG9pbnQobGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlckJveExvY2F0aW9uKCkpLApJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHJldmlzaW9uIDg5OTcw
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTUxNiw3ICs1MTYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEludFJlY3QmIGhpdFRlc3RSZWN0LCBjb25zdCBJbnRQb2ludCYgaGl0VGVzdFBv
aW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhpdFRlc3RpbmdUcmFuc2Zv
cm1TdGF0ZSogY29udGFpbmVyVHJhbnNmb3JtU3RhdGUpIGNvbnN0OwogICAgIAotICAgIGJvb2wg
aGl0VGVzdENvbnRlbnRzKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNv
bnN0IEludFJlY3QmIGxheWVyQm91bmRzLCBjb25zdCBJbnRQb2ludCYgaGl0VGVzdFBvaW50LCBI
aXRUZXN0RmlsdGVyKSBjb25zdDsKKyAgICBib29sIGhpdFRlc3RDb250ZW50cyhjb25zdCBIaXRU
ZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBMYXlvdXRSZWN0JiBsYXllckJvdW5k
cywgY29uc3QgTGF5b3V0UG9pbnQmIGhpdFRlc3RQb2ludCwgSGl0VGVzdEZpbHRlcikgY29uc3Q7
CiAgICAgCiAgICAgdm9pZCBjb21wdXRlU2Nyb2xsRGltZW5zaW9ucyhib29sKiBuZWVkSEJhciA9
IDAsIGJvb2wqIG5lZWRWQmFyID0gMCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>