<?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>223471</bug_id>
          
          <creation_ts>2021-03-18 12:46:11 -0700</creation_ts>
          <short_desc>Avoid copying item data when iterating in-process display lists</short_desc>
          <delta_ts>2021-03-18 16:43:16 -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>WebCore Misc.</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1741343</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-18 12:46:11 -0700</bug_when>
    <thetext>This copy is unnecessary (and potentially expensive) in the case of in-process display lists (e.g. the display lists used to cache glyph data when painting text at high frequency).

Impacts the Design subtest of MotionMark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741358</commentid>
    <comment_count>1</comment_count>
      <attachid>423639</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-18 13:03:56 -0700</bug_when>
    <thetext>Created attachment 423639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741385</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-18 13:35:21 -0700</bug_when>
    <thetext>(After a few quick tests, this seems to give us around +5% on Design)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741508</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-18 16:43:00 -0700</bug_when>
    <thetext>Committed r274688: &lt;https://commits.webkit.org/r274688&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423639.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741509</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-18 16:43:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/75597154&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423639</attachid>
            <date>2021-03-18 13:03:56 -0700</date>
            <delta_ts>2021-03-18 16:43:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223471-20210318130355.patch</filename>
            <type>text/plain</type>
            <size>11983</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY4ZDZkYzE3NWZjMjY1
ZTllOTc0N2E5OTgyMTg1NGZiZGJlZTNiYi4uNGJjYTlmYmNmNzYxYjRlNjVjZmVmZjIyOTRjMzFj
MTkwYzZkNjc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTAzLTE4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIGNvcHlp
bmcgaXRlbSBkYXRhIHdoZW4gaXRlcmF0aW5nIGluLXByb2Nlc3MgZGlzcGxheSBsaXN0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNDcxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBwZXJmb3Jt
YW5jZSBvcHRpbWl6YXRpb24sIGluIHRoZSBjYXNlIHdoZXJlIGRpc3BsYXkgbGlzdHMgYXJlIGJ1
aWx0IHVwIHdpdGhvdXQgaXRlbSBidWZmZXIgY2xpZW50cyB0aGF0IGFyZQorICAgICAgICByZXNw
b25zaWJsZSBmb3IgZW5jb2RpbmcgYW5kIGRlY29kaW5nIGRpc3BsYXkgbGlzdCBkYXRhLCBhbGwg
ZGlzcGxheSBsaXN0IGl0ZW1zIGFyZSBjb25zdHJ1Y3RlZCAoYW5kIGV4aXN0KQorICAgICAgICBk
aXJlY3RseSB3aXRoaW4gdGhlIGl0ZW0gYnVmZmVyLiBJbiB0aGlzIHNjZW5hcmlvLCB0aGVyZSBp
cyBubyBuZWVkIHRvIGFkZGl0aW9uYWxseSBkZWNvZGUgb3IgdmFsaWRhdGUgaW5saW5lCisgICAg
ICAgIGl0ZW1zIGJ5IGNvcHlpbmcgdGhlbSBpbnRvIGEgc2VwYXJhdGUgYnVmZmVyLCBzbyB3ZSBj
YW4gc2ltcGx5IHNraXAgdGhpcyBzdGVwIGFuZCBqdXN0IHVzZSB0aGUgbWVtb3J5IGFkZHJlc3Mg
b2YKKyAgICAgICAgdGhlIGl0ZW0gaW5zaWRlIGBtX2FsbG9jYXRlZEJ1ZmZlcnNgIGFzIHRoZSBj
dXJyZW4gaXRlbSBoYW5kbGUgd2hlbiBpdGVyYXRpbmcgdGhyb3VnaCBpbi1wcm9jZXNzIGRpc3Bs
YXkgbGlzdHMuCisKKyAgICAgICAgVGhpcyBza2lwcyBhbG1vc3QgYWxsIG9mIHRoZSB3b3JrIGRv
bmUgdW5kZXJuZWF0aCBgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjp1cGRhdGVDdXJyZW50SXRlbSgp
YCBpbiB0aGUgd2ViCisgICAgICAgIHByb2Nlc3Mgb24gdGhlIERlc2lnbiBzdWJ0ZXN0IG9mIE1v
dGlvbk1hcmsuIENvdmVyZWQgYnkgZXhpc3RpbmcgQVBJIHRlc3RzIChvbmUgb2Ygd2hpY2ggbmVl
ZHMgYSBzbGlnaHQKKyAgICAgICAgYWRqdXN0bWVudCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6YXRFbmQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6dXBkYXRlQ3Vy
cmVudEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Ojpp
dGVyYXRvcjo6YWR2YW5jZSk6CisKKyAgICAgICAgUmVhcnJhbmdlIHRoaXMgbG9naWMgc28gdGhh
dCB3ZSBvbmx5IGRlY29kZSBvciBjb3B5IG91dCB0byBhIHNpZGUgYnVmZmVyIGFuZCBwZXJmb3Jt
IHZhbGlkYXRpb24gaW4gdGhlIGNhc2UKKyAgICAgICAgd2hlcmUgd2UgaGF2ZSBhbiBpdGVtIGJ1
ZmZlciBjbGllbnQuIE90aGVyd2lzZSwgd2Uga25vdyB0aGF0IHRoZSBpdGVtcyBhbHJlYWR5IGV4
aXN0IGluc2lkZSB0aGUgaXRlbSBidWZmZXIncworICAgICAgICBgbV9hbGxvY2F0ZWRCdWZmZXJz
YCwgc28gd2UgY2FuIHNpbXBseSB1c2UgdGhlIGN1cnJlbnQgbWVtb3J5IGFkZHJlc3MgKGBtX2N1
cnNvcmApIGFzIHRoZSBpdGVtIGhhbmRsZS4KKworICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6Y2xlYXJDdXJyZW50SXRlbSk6CisKKyAgICAgICAg
T25seSBkZXN0cm95IHRoZSBpdGVtIGF0IGBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtYCBpZiBpdCBk
b2Vzbid0IGFscmVhZHkgZXhpc3QgaW4gdGhlIGRpc3BsYXkgbGlzdCdzIGl0ZW0gYnVmZmVyLgor
ICAgICAgICAodGhhdCBpcywgaWYgdGhlIGl0ZW0gYnVmZmVyIHJlcXVpcmVzIGEgcmVhZGluZyBj
bGllbnQpLiBUaGUgaXRlbXMgd2l0aGluIHRoZSBpdGVtIGJ1ZmZlciBhcmUgZGVzdHJveWVkIHVw
b24KKyAgICAgICAgY2xlYXJpbmcgdGhlIGBEaXNwbGF5TGlzdGAsIHNvIHJ1bm5pbmcgdGhpcyBs
b2dpYyB3b3VsZCByZXN1bHQgaW4gYSBkb3VibGUtZnJlZS4KKworICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjppdGVyYXRvcjo6bW92ZVRvRW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6Om1vdmVDdXJzb3JU
b1N0YXJ0T2ZDdXJyZW50QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
aXNwbGF5TGlzdDo6aXRlcmF0b3I6Oml0ZW1CdWZmZXIgY29uc3QpOgorCisgICAgICAgIERyaXZl
LWJ5IHJlZmFjdG9yaW5nOiBhZGQgYSBoZWxwZXIgbWV0aG9kIHRvIGdyYWIgdGhlIGRpc3BsYXkg
bGlzdCdzIGBJdGVtQnVmZmVyYCwgYW5kIHVzZSBpdCBpbiBzZXZlcmFsIHBsYWNlcworICAgICAg
ICBhYm92ZS4KKwogMjAyMS0wMy0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIEF2b2lkIGhlYXAgYWxsb2NhdGlvbiB1bmRlciBQYW5uZXJOb2RlOjpwdWxsSW5w
dXRzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IGU2NDM3ODYzODQzMDg4NDg3NGNm
MGQ0ZWM2MjUyNzhmODUxYzA4NmUuLmMwODMyMGU1NjU2NzViZTEyYTY0YzY5Njk0YmUxNWY4Mjdi
Nzk4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMzI1LDcgKzMyNSw3IEBAIGJv
b2wgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjphdEVuZCgpIGNvbnN0CiAgICAgaWYgKG1fZGlzcGxh
eUxpc3QuaXNFbXB0eSgpIHx8ICFtX2lzVmFsaWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgYXV0byYgaXRlbXMgPSAqbV9kaXNwbGF5TGlzdC5tX2l0ZW1zOworICAgIGF1dG8mIGl0ZW1z
ID0gKml0ZW1CdWZmZXIoKTsKICAgICBhdXRvIGVuZEN1cnNvciA9IGl0ZW1zLm1fd3JpdGFibGVC
dWZmZXIuZGF0YSArIGl0ZW1zLm1fd3JpdHRlbk51bWJlck9mQnl0ZXM7CiAgICAgcmV0dXJuIG1f
Y3Vyc29yID09IGVuZEN1cnNvcjsKIH0KQEAgLTMzNyw3ICszMzcsNyBAQCB2b2lkIERpc3BsYXlM
aXN0OjppdGVyYXRvcjo6dXBkYXRlQ3VycmVudEl0ZW0oKQogICAgIGlmIChhdEVuZCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvJiBpdGVtcyA9ICptX2Rpc3BsYXlMaXN0Lm1faXRlbXM7
CisgICAgYXV0byYgaXRlbXMgPSAqaXRlbUJ1ZmZlcigpOwogICAgIGF1dG8gaXRlbVR5cGUgPSBz
dGF0aWNfY2FzdDxJdGVtVHlwZT4obV9jdXJzb3JbMF0pOwogICAgIGlmIChpc0RyYXdpbmdJdGVt
KGl0ZW1UeXBlKSAmJiAhbV9kaXNwbGF5TGlzdC5tX2RyYXdpbmdJdGVtRXh0ZW50cy5pc0VtcHR5
KCkpIHsKICAgICAgICAgbV9jdXJyZW50RXh0ZW50ID0gbV9kaXNwbGF5TGlzdC5tX2RyYXdpbmdJ
dGVtRXh0ZW50c1ttX2RyYXdpbmdJdGVtSW5kZXhdOwpAQCAtMzQ3LDIwICszNDcsMjUgQEAgdm9p
ZCBEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnRJdGVtKCkKIAogICAgIGF1dG8q
IGNsaWVudCA9IGl0ZW1zLm1fcmVhZGluZ0NsaWVudDsKICAgICBhdXRvIHBhZGRlZFNpemVPZlR5
cGVBbmRJdGVtID0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGl0ZW1UeXBlKTsKLSAg
ICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtID0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0gPD0gc2l6
ZU9mRml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbSA/IG1fZml4ZWRCdWZmZXJGb3JDdXJyZW50SXRl
bSA6IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGZhc3RNYWxsb2MocGFkZGVkU2l6ZU9mVHlw
ZUFuZEl0ZW0pKTsKLSAgICBpZiAoIWlzSW5saW5lSXRlbShpdGVtVHlwZSkgJiYgY2xpZW50KSB7
Ci0gICAgICAgIGF1dG8gZGF0YUxlbmd0aCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPiht
X2N1cnNvcilbMV07Ci0gICAgICAgIGF1dG8qIHN0YXJ0T2ZEYXRhID0gbV9jdXJzb3IgKyAyICog
c2l6ZW9mKHVpbnQ2NF90KTsKLSAgICAgICAgYXV0byBkZWNvZGVkSXRlbUhhbmRsZSA9IGNsaWVu
dC0+ZGVjb2RlSXRlbShzdGFydE9mRGF0YSwgZGF0YUxlbmd0aCwgaXRlbVR5cGUsIG1fY3VycmVu
dEJ1ZmZlckZvckl0ZW0pOwotICAgICAgICBpZiAoVU5MSUtFTFkoIWRlY29kZWRJdGVtSGFuZGxl
KSkKLSAgICAgICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOwotCi0gICAgICAgIG1fY3VycmVudEJ1
ZmZlckZvckl0ZW1bMF0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihpdGVtVHlwZSk7Ci0gICAgICAg
IG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgPSAyICogc2l6ZW9mKHVpbnQ2NF90KSArIHJvdW5k
VXBUb011bHRpcGxlT2YoYWxpZ25vZih1aW50NjRfdCksIGRhdGFMZW5ndGgpOworICAgIGlmIChj
bGllbnQpIHsKKyAgICAgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSA9IHBhZGRlZFNpemVPZlR5
cGVBbmRJdGVtIDw9IHNpemVPZkZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0gPyBtX2ZpeGVkQnVm
ZmVyRm9yQ3VycmVudEl0ZW0gOiByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9j
KHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtKSk7CisgICAgICAgIGlmIChpc0lubGluZUl0ZW0oaXRl
bVR5cGUpKSB7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoIUl0ZW1IYW5kbGUgeyBtX2N1cnNv
ciB9LnNhZmVDb3B5KHsgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSB9KSkpCisgICAgICAgICAgICAg
ICAgbV9pc1ZhbGlkID0gZmFsc2U7CisKKyAgICAgICAgICAgIG1fY3VycmVudEl0ZW1TaXplSW5C
dWZmZXIgPSBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGF1dG8gZGF0YUxlbmd0aCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihtX2N1
cnNvcilbMV07CisgICAgICAgICAgICBhdXRvKiBzdGFydE9mRGF0YSA9IG1fY3Vyc29yICsgMiAq
IHNpemVvZih1aW50NjRfdCk7CisgICAgICAgICAgICBhdXRvIGRlY29kZWRJdGVtSGFuZGxlID0g
Y2xpZW50LT5kZWNvZGVJdGVtKHN0YXJ0T2ZEYXRhLCBkYXRhTGVuZ3RoLCBpdGVtVHlwZSwgbV9j
dXJyZW50QnVmZmVyRm9ySXRlbSk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoIWRlY29kZWRJ
dGVtSGFuZGxlKSkKKyAgICAgICAgICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKKworICAgICAg
ICAgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbVswXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGl0
ZW1UeXBlKTsKKyAgICAgICAgICAgIG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXIgPSAyICogc2l6
ZW9mKHVpbnQ2NF90KSArIHJvdW5kVXBUb011bHRpcGxlT2YoYWxpZ25vZih1aW50NjRfdCksIGRh
dGFMZW5ndGgpOworICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKFVOTElLRUxZ
KCFJdGVtSGFuZGxlIHsgbV9jdXJzb3IgfS5zYWZlQ29weSh7IG1fY3VycmVudEJ1ZmZlckZvckl0
ZW0gfSkpKQotICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7Ci0KKyAgICAgICAgbV9jdXJy
ZW50QnVmZmVyRm9ySXRlbSA9IG1fY3Vyc29yOwogICAgICAgICBtX2N1cnJlbnRJdGVtU2l6ZUlu
QnVmZmVyID0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW07CiAgICAgfQogfQpAQCAtMzcyLDcgKzM3
Nyw3IEBAIHZvaWQgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjphZHZhbmNlKCkKIAogICAgIG1fY3Vy
c29yICs9IG1fY3VycmVudEl0ZW1TaXplSW5CdWZmZXI7CiAKLSAgICBpZiAobV9jdXJzb3IgPT0g
bV9jdXJyZW50RW5kT2ZCdWZmZXIgJiYgbV9yZWFkT25seUJ1ZmZlckluZGV4IDwgbV9kaXNwbGF5
TGlzdC5tX2l0ZW1zLT5tX3JlYWRPbmx5QnVmZmVycy5zaXplKCkpIHsKKyAgICBpZiAobV9jdXJz
b3IgPT0gbV9jdXJyZW50RW5kT2ZCdWZmZXIgJiYgbV9yZWFkT25seUJ1ZmZlckluZGV4IDwgaXRl
bUJ1ZmZlcigpLT5tX3JlYWRPbmx5QnVmZmVycy5zaXplKCkpIHsKICAgICAgICAgbV9yZWFkT25s
eUJ1ZmZlckluZGV4Kys7CiAgICAgICAgIG1vdmVDdXJzb3JUb1N0YXJ0T2ZDdXJyZW50QnVmZmVy
KCk7CiAgICAgfQpAQCAtMzgyLDcgKzM4Nyw4IEBAIHZvaWQgRGlzcGxheUxpc3Q6Oml0ZXJhdG9y
OjphZHZhbmNlKCkKIAogdm9pZCBEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OmNsZWFyQ3VycmVudEl0
ZW0oKQogewotICAgIGlmIChtX2N1cnJlbnRCdWZmZXJGb3JJdGVtKSB7CisgICAgYXV0byBpdGVt
cyA9IGl0ZW1CdWZmZXIoKTsKKyAgICBpZiAoaXRlbXMgJiYgaXRlbXMtPm1fcmVhZGluZ0NsaWVu
dCAmJiBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtKSB7CiAgICAgICAgIGlmIChMSUtFTFkobV9pc1Zh
bGlkKSkKICAgICAgICAgICAgIEl0ZW1IYW5kbGUgeyBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtIH0u
ZGVzdHJveSgpOwogCkBAIC0zOTYsNyArNDAyLDcgQEAgdm9pZCBEaXNwbGF5TGlzdDo6aXRlcmF0
b3I6OmNsZWFyQ3VycmVudEl0ZW0oKQogCiB2b2lkIERpc3BsYXlMaXN0OjppdGVyYXRvcjo6bW92
ZVRvRW5kKCkKIHsKLSAgICBpZiAoYXV0byYgaXRlbXMgPSBtX2Rpc3BsYXlMaXN0Lm1faXRlbXMp
IHsKKyAgICBpZiAoYXV0byBpdGVtcyA9IGl0ZW1CdWZmZXIoKSkgewogICAgICAgICBtX2N1cnNv
ciA9IGl0ZW1zLT5tX3dyaXRhYmxlQnVmZmVyLmRhdGEgKyBpdGVtcy0+bV93cml0dGVuTnVtYmVy
T2ZCeXRlczsKICAgICAgICAgbV9jdXJyZW50RW5kT2ZCdWZmZXIgPSBtX2N1cnNvcjsKICAgICAg
ICAgbV9yZWFkT25seUJ1ZmZlckluZGV4ID0gaXRlbXMtPm1fcmVhZE9ubHlCdWZmZXJzLnNpemUo
KTsKQEAgLTQwNSw3ICs0MTEsNyBAQCB2b2lkIERpc3BsYXlMaXN0OjppdGVyYXRvcjo6bW92ZVRv
RW5kKCkKIAogdm9pZCBEaXNwbGF5TGlzdDo6aXRlcmF0b3I6Om1vdmVDdXJzb3JUb1N0YXJ0T2ZD
dXJyZW50QnVmZmVyKCkKIHsKLSAgICBhdXRvJiBpdGVtcyA9IG1fZGlzcGxheUxpc3QubV9pdGVt
czsKKyAgICBhdXRvIGl0ZW1zID0gaXRlbUJ1ZmZlcigpOwogICAgIGlmICghaXRlbXMpCiAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAppbmRleCBmNTNkZGM2MDI3YjgyZjg2
YjUxNzVjNWMyNzJkY2UzYzFjMjRlYjQ0Li5mMTg5ZGVkZjY3NDliY2MyMDE0NzJhZWQyYTg3MTZi
YTY1NzQ2NTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaApAQCAtMTQyLDYgKzE0Miw4IEBAIHB1
YmxpYzoKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZHZhbmNlKCk7CiAgICAgICAgIGJv
b2wgYXRFbmQoKSBjb25zdDsKIAorICAgICAgICBJdGVtQnVmZmVyKiBpdGVtQnVmZmVyKCkgY29u
c3QgeyByZXR1cm4gbV9kaXNwbGF5TGlzdC5pdGVtQnVmZmVySWZFeGlzdHMoKTsgfQorCiAgICAg
ICAgIGNvbnN0IERpc3BsYXlMaXN0JiBtX2Rpc3BsYXlMaXN0OwogICAgICAgICB1aW50OF90KiBt
X2N1cnNvciB7IG51bGxwdHIgfTsKICAgICAgICAgc2l6ZV90IG1fcmVhZE9ubHlCdWZmZXJJbmRl
eCB7IDAgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAyNTg5M2YwNjY1ZmE2NmY3ZmQ4ZDk4MWNiYWExMmMwMWE0MzUyOTVmLi5lMjNiMjZjMGMz
MmQxMjIyZThiMzQ4MDFjYmVlYWExMjY5ZTQwYjQyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDMtMTggIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgY29w
eWluZyBpdGVtIGRhdGEgd2hlbiBpdGVyYXRpbmcgaW4tcHJvY2VzcyBkaXNwbGF5IGxpc3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM0NzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGp1c3QgYW4g
ZXhpc3RpbmcgQVBJIHRlc3QgdGhhdCBleGVyY2lzZXMgaW5saW5lIGRpc3BsYXkgbGlzdCBpdGVt
IHZhbGlkYXRpb24gYnkgYXNzaWduaW5nIGEgcmVhZGluZyBjbGllbnQgdG8KKyAgICAgICAgdGhl
IGRpc3BsYXkgbGlzdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
Zy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisKKyAgICAgICAgTW92ZSB0aGUgYFJlYWRpbmdDbGllbnRgIGFuZCBgV3JpdGluZ0NsaWVudGAg
b3V0IG9mIHRoZSBzY29wZSBvZiBgT3V0T2ZMaW5lSXRlbURlY29kaW5nRmFpbHVyZWAsIHNvIHRo
YXQgdGhlCisgICAgICAgIG90aGVyIEFQSSB0ZXN0IChgSW5saW5lSXRlbVZhbGlkYXRpb25GYWls
dXJlYCkgY2FuIGFsc28gdXNlIGl0LgorCiAyMDIxLTAzLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBCdW1wIEFQSSB2ZXJzaW9u
IHdoZW4gYnVpbGRpbmcgd2l0aCBsaWJzb3VwMwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAppbmRleCAw
ZmVjNWY3NjVhNDJjOTI0N2E0MmE3NjkwMWYwNTYxNzMyY2RiOWI4Li5iNTY5ZjM0MDdlMDc1MTVm
NjJlMTkwMWVlMDIyZDQxOTQ3ZmYzODlhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcApAQCAtODEs
MzEgKzgxLDMxIEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgUmVwbGF5V2l0aE1pc3NpbmdSZXNv
dXJjZSkKICAgICB9CiB9CiAKK3N0YXRpYyBJdGVtQnVmZmVySWRlbnRpZmllciBnbG9iYWxCdWZm
ZXJJZGVudGlmaWVyID0gSXRlbUJ1ZmZlcklkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisKK2NsYXNz
IFJlYWRpbmdDbGllbnQgOiBwdWJsaWMgSXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQgeworcHJpdmF0
ZToKKyAgICBPcHRpb25hbDxJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gZGVjb2RlSXRl
bShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBJdGVtVHlwZSB0eXBlLCB1aW50OF90KikgZmluYWwK
KyAgICB7CisgICAgICAgIEVYUEVDVF9FUSh0eXBlLCBJdGVtVHlwZTo6RmlsbFBhdGgpOworICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0KK307CisKK2NsYXNzIFdyaXRpbmdDbGll
bnQgOiBwdWJsaWMgSXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQgeworcHJpdmF0ZToKKyAgICBJdGVt
QnVmZmVySGFuZGxlIGNyZWF0ZUl0ZW1CdWZmZXIoc2l6ZV90IGNhcGFjaXR5KSBmaW5hbAorICAg
IHsKKyAgICAgICAgRVhQRUNUX0xUKGNhcGFjaXR5LCBnbG9iYWxJdGVtQnVmZmVyQ2FwYWNpdHkp
OworICAgICAgICByZXR1cm4geyBnbG9iYWxCdWZmZXJJZGVudGlmaWVyLCBnbG9iYWxJdGVtQnVm
ZmVyLCBnbG9iYWxJdGVtQnVmZmVyQ2FwYWNpdHkgfTsKKyAgICB9CisKKyAgICBSZWZQdHI8U2hh
cmVkQnVmZmVyPiBlbmNvZGVJdGVtKEl0ZW1IYW5kbGUpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7IH0KKyAgICB2b2lkIGRpZEFwcGVuZERhdGEoY29uc3QgSXRl
bUJ1ZmZlckhhbmRsZSYsIHNpemVfdCwgRGlkQ2hhbmdlSXRlbUJ1ZmZlcikgZmluYWwgeyB9Cit9
OworCiBURVNUKERpc3BsYXlMaXN0VGVzdHMsIE91dE9mTGluZUl0ZW1EZWNvZGluZ0ZhaWx1cmUp
CiB7Ci0gICAgc3RhdGljIEl0ZW1CdWZmZXJJZGVudGlmaWVyIGdsb2JhbEJ1ZmZlcklkZW50aWZp
ZXIgPSBJdGVtQnVmZmVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLQotICAgIGNsYXNzIFJlYWRp
bmdDbGllbnQgOiBwdWJsaWMgSXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQgewotICAgIHByaXZhdGU6
Ci0gICAgICAgIE9wdGlvbmFsPEl0ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNvZGVJ
dGVtKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QsIEl0ZW1UeXBlIHR5cGUsIHVpbnQ4X3QqKSBmaW5h
bAotICAgICAgICB7Ci0gICAgICAgICAgICBFWFBFQ1RfRVEodHlwZSwgSXRlbVR5cGU6OkZpbGxQ
YXRoKTsKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgICAgIH0KLSAgICB9
OwotCi0gICAgY2xhc3MgV3JpdGluZ0NsaWVudCA6IHB1YmxpYyBJdGVtQnVmZmVyV3JpdGluZ0Ns
aWVudCB7Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgSXRlbUJ1ZmZlckhhbmRsZSBjcmVhdGVJdGVt
QnVmZmVyKHNpemVfdCBjYXBhY2l0eSkgZmluYWwKLSAgICAgICAgewotICAgICAgICAgICAgRVhQ
RUNUX0xUKGNhcGFjaXR5LCBnbG9iYWxJdGVtQnVmZmVyQ2FwYWNpdHkpOwotICAgICAgICAgICAg
cmV0dXJuIHsgZ2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgZ2xvYmFs
SXRlbUJ1ZmZlckNhcGFjaXR5IH07Ci0gICAgICAgIH0KLQotICAgICAgICBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBlbmNvZGVJdGVtKEl0ZW1IYW5kbGUpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKCk7IH0KLSAgICAgICAgdm9pZCBkaWRBcHBlbmREYXRhKGNvbnN0IEl0
ZW1CdWZmZXJIYW5kbGUmLCBzaXplX3QsIERpZENoYW5nZUl0ZW1CdWZmZXIpIGZpbmFsIHsgfQot
ICAgIH07Ci0KICAgICBGbG9hdFJlY3QgY29udGV4dEJvdW5kcyB7IDAsIDAsIGNvbnRleHRXaWR0
aCwgY29udGV4dEhlaWdodCB9OwogCiAgICAgYXV0byBjb2xvclNwYWNlID0gYWRvcHRDRihDR0Nv
bG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNwYWNlU1JHQikpOwpAQCAtMTQ0LDYgKzE0
NCw4IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgSW5saW5lSXRlbVZhbGlkYXRpb25GYWlsdXJl
KQogICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0IHsgY2dDb250ZXh0LmdldCgpIH07CiAKICAg
ICBEaXNwbGF5TGlzdCBsaXN0OworICAgIFJlYWRpbmdDbGllbnQgcmVhZGVyOworICAgIGxpc3Qu
c2V0SXRlbUJ1ZmZlckNsaWVudCgmcmVhZGVyKTsKICAgICBsaXN0LmFwcGVuZDxGbHVzaENvbnRl
eHQ+KEZsdXNoSWRlbnRpZmllciB7IH0pOwogCiAgICAgUmVwbGF5ZXIgcmVwbGF5ZXIgeyBjb250
ZXh0LCBsaXN0IH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>