<?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>129298</bug_id>
          
          <creation_ts>2014-02-25 04:19:12 -0800</creation_ts>
          <short_desc>Optimize RenderTable::colToEffCol() for tables without colspans</short_desc>
          <delta_ts>2014-03-20 16:17:01 -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>BlinkMergeCandidate</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Laszlo Vidacs">lvidacs.u-szeged</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>lvidacs.u-szeged</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>984258</commentid>
    <comment_count>0</comment_count>
    <who name="Laszlo Vidacs">lvidacs.u-szeged</who>
    <bug_when>2014-02-25 04:19:12 -0800</bug_when>
    <thetext>colToEffCol() is very hot in tables with collapsed borders and
it is a very expensive function which iterates through every
column in the table up to the current one. But it only needs to
do this when the table&apos;s list of columns contains one whose
colspan exceeds the width of the table, as that is the only
situation in which |ColumnStruct| will still have a span.
(See RenderTableSection:addCell() where the span is
redistributed among other columns in the table during a
second pass of the table.)

Create a fast path for colToEffCol() and effColToCol() that
avoids iterating through every column unless the |m_columns|
vector still has a |ColumnStruct| with a span. The slow
path is extremely rare and probably not
worth optimizing for, as it only applies to tables
where a cell has a colspan that exceeds the total number of
columns provided by other rows in the table.

Blink merge candidate from https://chromium.googlesource.com/chromium/blink/+/dba71c7c3b953ef88b640bf32fa657fd2ebe4c63 by robhogan@gmail.com</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986351</commentid>
    <comment_count>1</comment_count>
      <attachid>225656</attachid>
    <who name="Laszlo Vidacs">lvidacs.u-szeged</who>
    <bug_when>2014-03-03 08:42:19 -0800</bug_when>
    <thetext>Created attachment 225656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986803</commentid>
    <comment_count>2</comment_count>
    <who name="Laszlo Vidacs">lvidacs.u-szeged</who>
    <bug_when>2014-03-04 07:35:59 -0800</bug_when>
    <thetext>I made some performance measurements with the new test. Tests are extreme cases, but even on a virtual machine I could measure the difference (efl port):
collapsed-borders-and-no-colspans:               r164983: ~1700ms r164983-with-patch:  ~620 - ~64% better
collapsed-borders-and-colspans:                  r164983: ~1710ms r164983-with-patch:  ~640 - ~62% better
collapsed-borders-and-colspans-wider-than-table: r164983: ~1740ms r164983-with-patch: ~1710 - about the same</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992787</commentid>
    <comment_count>3</comment_count>
      <attachid>225656</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-20 16:16:56 -0700</bug_when>
    <thetext>Comment on attachment 225656
Patch

Clearing flags on attachment: 225656

Committed r166016: &lt;http://trac.webkit.org/changeset/166016&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992788</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-20 16:17:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225656</attachid>
            <date>2014-03-03 08:42:19 -0800</date>
            <delta_ts>2014-03-20 16:16:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129298-20140303174215.patch</filename>
            <type>text/plain</type>
            <size>10978</size>
            <attacher name="Laszlo Vidacs">lvidacs.u-szeged</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTIwZmFlNzM4NGIzNDdl
Y2I0YmRhMDhlMmQ0OTk4NmIyM2Q2ZjAyOC4uYzdkMDVlMmMxNWY1OTgwOGRhYWVjMTQxODZhN2M0
YTQ5YjY3NTc1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTAzLTAzICBMYXN6
bG8gVmlkYWNzICA8bHZpZGFjcy51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAg
ICAgIE9wdGltaXplIFJlbmRlclRhYmxlOjpjb2xUb0VmZkNvbCgpIGZvciB0YWJsZXMgd2l0aG91
dCBjb2xzcGFucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI5Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3JlYXRlIGFuIGFsdGVybmF0aXZlIGZhc3QgcGF0aCB0byBSZW5kZXJUYWJsZSBjb2xUb0Vm
ZkNvbCgpIGFuZCBlZmZDb2xUb0NvbCgpCisgICAgICAgIHdoZW4gdGhlcmUgaXMgbm8gY29sc3Bh
biBvciBjb2xzcGFuIGRvZXMgbm90IGV4Y2VlZCB0aGUgd2lkdGggb2YgdGFibGUuCisgICAgICAg
IEJsaW5rIG1lcmdlIGh0dHBzOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMTU0MjQzMDAyIGJ5
IHJob2dhbgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRhYmxlOjpSZW5kZXJUYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUYWJsZTo6YXBwZW5kQ29sdW1uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxl
OjpyZWNhbGNTZWN0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6Y29sVG9FZmZDb2wpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGFibGU6OmVmZkNvbFRvQ29sKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRhYmxlOjpoYXNDZWxsQ29sc3BhblRoYXREZXRlcm1pbmVzVGFibGVXaWR0aCk6CisKIDIwMTQt
MDMtMDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVz
cGVjdCBTVkcgZnJhZ21lbnQgaWRlbnRpZmllcnMgaW4gPGltZz4gc3JjIGF0dHJpYnV0ZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggOTM0YTNiMjgyNTUzMGRh
NmFkMzU5MjZmMjVjZmY0MGZhOTQ1ZjU1Mi4uYWY5Y2JiYWJiMzk2MTZkNjJmZWUxZTY2MjQ2MmU4
ZmYxZDRmMmJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCkBA
IC02MCw2ICs2MCw3IEBAIFJlbmRlclRhYmxlOjpSZW5kZXJUYWJsZShFbGVtZW50JiBlbGVtZW50
LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKICAgICAsIG1fbmVlZHNTZWN0aW9uUmVjYWxj
KGZhbHNlKQogICAgICwgbV9jb2x1bW5Mb2dpY2FsV2lkdGhDaGFuZ2VkKGZhbHNlKQogICAgICwg
bV9jb2x1bW5SZW5kZXJlcnNWYWxpZChmYWxzZSkKKyAgICAsIG1faGFzQ2VsbENvbHNwYW5UaGF0
RGV0ZXJtaW5lc1RhYmxlV2lkdGgoZmFsc2UpCiAgICAgLCBtX2hTcGFjaW5nKDApCiAgICAgLCBt
X3ZTcGFjaW5nKDApCiAgICAgLCBtX2JvcmRlclN0YXJ0KDApCkBAIC04Miw2ICs4Myw3IEBAIFJl
bmRlclRhYmxlOjpSZW5kZXJUYWJsZShEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQogICAgICwgbV9uZWVkc1NlY3Rpb25SZWNhbGMoZmFsc2UpCiAgICAgLCBt
X2NvbHVtbkxvZ2ljYWxXaWR0aENoYW5nZWQoZmFsc2UpCiAgICAgLCBtX2NvbHVtblJlbmRlcmVy
c1ZhbGlkKGZhbHNlKQorICAgICwgbV9oYXNDZWxsQ29sc3BhblRoYXREZXRlcm1pbmVzVGFibGVX
aWR0aChmYWxzZSkKICAgICAsIG1faFNwYWNpbmcoMCkKICAgICAsIG1fdlNwYWNpbmcoMCkKICAg
ICAsIG1fYm9yZGVyU3RhcnQoMCkKQEAgLTgzMSw2ICs4MzMsMTAgQEAgdm9pZCBSZW5kZXJUYWJs
ZTo6YXBwZW5kQ29sdW1uKHVuc2lnbmVkIHNwYW4pCiAgICAgdW5zaWduZWQgbmV3Q29sdW1uSW5k
ZXggPSBtX2NvbHVtbnMuc2l6ZSgpOwogICAgIG1fY29sdW1ucy5hcHBlbmQoQ29sdW1uU3RydWN0
KHNwYW4pKTsKIAorICAgIC8vIFVubGVzcyB0aGUgdGFibGUgaGFzIGNlbGwocykgd2l0aCBjb2xz
cGFuIHRoYXQgZXhjZWVkIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhZmZvcmRlZAorICAgIC8vIGJ5
IHRoZSBvdGhlciByb3dzIGluIHRoZSB0YWJsZSB3ZSBjYW4gdXNlIHRoZSBmYXN0IHBhdGggd2hl
biBtYXBwaW5nIGNvbHVtbnMgdG8gZWZmZWN0aXZlIGNvbHVtbnMuCisgICAgbV9oYXNDZWxsQ29s
c3BhblRoYXREZXRlcm1pbmVzVGFibGVXaWR0aCA9IG1faGFzQ2VsbENvbHNwYW5UaGF0RGV0ZXJt
aW5lc1RhYmxlV2lkdGggfHwgc3BhbiA+IDE7CisKICAgICAvLyBQcm9wYWdhdGUgdGhlIGNoYW5n
ZSBpbiBvdXIgY29sdW1ucyByZXByZXNlbnRhdGlvbiB0byB0aGUgc2VjdGlvbnMgdGhhdCBkb24n
dCBuZWVkCiAgICAgLy8gY2VsbCByZWNhbGMuIElmIHRoZXkgZG8sIHRoZXkgd2lsbCBiZSBzeW5j
ZWQgdXAgZGlyZWN0bHkgd2l0aCBtX2NvbHVtbnMgbGF0ZXIuCiAgICAgZm9yIChhdXRvJiBzZWN0
aW9uIDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyVGFibGVTZWN0aW9uPigqdGhpcykpIHsKQEAgLTk4
OSw2ICs5OTUsNyBAQCB2b2lkIFJlbmRlclRhYmxlOjpyZWNhbGNTZWN0aW9ucygpIGNvbnN0CiAg
ICAgbV9mb290ID0gMDsKICAgICBtX2ZpcnN0Qm9keSA9IDA7CiAgICAgbV9oYXNDb2xFbGVtZW50
cyA9IGZhbHNlOworICAgIG1faGFzQ2VsbENvbHNwYW5UaGF0RGV0ZXJtaW5lc1RhYmxlV2lkdGgg
PSBoYXNDZWxsQ29sc3BhblRoYXREZXRlcm1pbmVzVGFibGVXaWR0aCgpOwogCiAgICAgLy8gV2Ug
bmVlZCB0byBnZXQgdmFsaWQgcG9pbnRlcnMgdG8gY2FwdGlvbiwgaGVhZCwgZm9vdCBhbmQgZmly
c3QgYm9keSBhZ2FpbgogICAgIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCmluZGV4IGE0NDZlNDU5MTBkZDkyYmE0MTI2OTg1YjRi
Y2RjNTYxMWU5ODI2MzEuLjA5ZTBiZDhmZjNmZWJiNDUyYWFhMzY0NTIyMGE0NDk3OGM2MTNhZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCkBAIC0xNzMsNiArMTczLDkg
QEAgcHVibGljOgogICAgIAogICAgIHVuc2lnbmVkIGNvbFRvRWZmQ29sKHVuc2lnbmVkIGNvbHVt
bikgY29uc3QKICAgICB7CisgICAgICAgIGlmICghbV9oYXNDZWxsQ29sc3BhblRoYXREZXRlcm1p
bmVzVGFibGVXaWR0aCkKKyAgICAgICAgICAgIHJldHVybiBjb2x1bW47CisKICAgICAgICAgdW5z
aWduZWQgZWZmQ29sdW1uID0gMDsKICAgICAgICAgdW5zaWduZWQgbnVtQ29sdW1ucyA9IG51bUVm
ZkNvbHMoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBjID0gMDsgZWZmQ29sdW1uIDwgbnVtQ29s
dW1ucyAmJiBjICsgbV9jb2x1bW5zW2VmZkNvbHVtbl0uc3BhbiAtIDEgPCBjb2x1bW47ICsrZWZm
Q29sdW1uKQpAQCAtMTgyLDYgKzE4NSw5IEBAIHB1YmxpYzoKICAgICAKICAgICB1bnNpZ25lZCBl
ZmZDb2xUb0NvbCh1bnNpZ25lZCBlZmZDb2wpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAoIW1f
aGFzQ2VsbENvbHNwYW5UaGF0RGV0ZXJtaW5lc1RhYmxlV2lkdGgpCisgICAgICAgICAgICByZXR1
cm4gZWZmQ29sOworCiAgICAgICAgIHVuc2lnbmVkIGMgPSAwOwogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZWZmQ29sOyBpKyspCiAgICAgICAgICAgICBjICs9IG1fY29sdW1uc1tp
XS5zcGFuOwpAQCAtMzQ1LDYgKzM1MSwxNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2NvbHVt
bkxvZ2ljYWxXaWR0aENoYW5nZWQgOiAxOwogICAgIG11dGFibGUgYm9vbCBtX2NvbHVtblJlbmRl
cmVyc1ZhbGlkOiAxOworICAgIG11dGFibGUgYm9vbCBtX2hhc0NlbGxDb2xzcGFuVGhhdERldGVy
bWluZXNUYWJsZVdpZHRoIDogMTsKKworICAgIGJvb2wgaGFzQ2VsbENvbHNwYW5UaGF0RGV0ZXJt
aW5lc1RhYmxlV2lkdGgoKSBjb25zdAorICAgIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBjID0g
MDsgYyA8IG51bUVmZkNvbHMoKTsgYysrKSB7CisgICAgICAgICAgICBpZiAobV9jb2x1bW5zW2Nd
LnNwYW4gPiAxKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBzaG9ydCBtX2hTcGFjaW5nOwogICAgIHNo
b3J0IG1fdlNwYWNpbmc7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBi
L1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU5YzlmZjZkZGRlZjk5NWViNjg1NDU2
YzU1ZTM2M2JiNDllNjljZmIuLmFlNjVlN2M0OTgzYTM5MmJlNjU1NzM2MjRmZDdiZjZmMzYxZmE1
ODMgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDMtMDMgIExhc3psbyBW
aWRhY3MgIDxsdmlkYWNzLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAgICAgICAg
T3B0aW1pemUgUmVuZGVyVGFibGU6OmNvbFRvRWZmQ29sKCkgZm9yIHRhYmxlcyB3aXRob3V0IGNv
bHNwYW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjkyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
cmVhdGUgYW4gYWx0ZXJuYXRpdmUgZmFzdCBwYXRoIHRvIFJlbmRlclRhYmxlIGNvbFRvRWZmQ29s
KCkgYW5kIGVmZkNvbFRvQ29sKCkKKyAgICAgICAgd2hlbiB0aGVyZSBpcyBubyBjb2xzcGFuIG9y
IGNvbHNwYW4gZG9lcyBub3QgZXhjZWVkIHRoZSB3aWR0aCBvZiB0YWJsZS4KKyAgICAgICAgQmxp
bmsgbWVyZ2UgaHR0cHM6Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy8xNTQyNDMwMDIgYnkgcmhv
Z2FuCisKKyAgICAgICAgKiBMYXlvdXQvbGFyZ2UtdGFibGUtd2l0aC1jb2xsYXBzZWQtYm9yZGVy
cy1hbmQtY29sc3BhbnMtd2lkZXItdGhhbi10YWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBM
YXlvdXQvbGFyZ2UtdGFibGUtd2l0aC1jb2xsYXBzZWQtYm9yZGVycy1hbmQtY29sc3BhbnMuaHRt
bDogQWRkZWQuCisgICAgICAgICogTGF5b3V0L2xhcmdlLXRhYmxlLXdpdGgtY29sbGFwc2VkLWJv
cmRlcnMtYW5kLW5vLWNvbHNwYW5zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dC9yZXNv
dXJjZXMvbGFyZ2UtdGFibGUtd2l0aC1jb2xsYXBzZWQtYm9yZGVycy5jc3M6IEFkZGVkLgorICAg
ICAgICAqIExheW91dC9yZXNvdXJjZXMvbGFyZ2UtdGFibGUtd2l0aC1jb2xsYXBzZWQtYm9yZGVy
cy5qczogQWRkZWQuCisKIDIwMTQtMDItMTkgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW0NTUyBTaGFwZXNdIEFkZCBwZXJmb3JtYW5jZSB0ZXN0IGZvciBz
dGFja2VkIGZsb2F0cyB3aXRoIHNoYXBlLW91dHNpZGVzCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5j
ZVRlc3RzL0xheW91dC9sYXJnZS10YWJsZS13aXRoLWNvbGxhcHNlZC1ib3JkZXJzLWFuZC1jb2xz
cGFucy13aWRlci10aGFuLXRhYmxlLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0xheW91dC9sYXJn
ZS10YWJsZS13aXRoLWNvbGxhcHNlZC1ib3JkZXJzLWFuZC1jb2xzcGFucy13aWRlci10aGFuLXRh
YmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU5NjI0NDUwY2Y0YjMzNWNkYjgwZWRhMTk1YWM2MmVlYzI2
OTg2YgotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvTGF5b3V0L2xhcmdlLXRh
YmxlLXdpdGgtY29sbGFwc2VkLWJvcmRlcnMtYW5kLWNvbHNwYW5zLXdpZGVyLXRoYW4tdGFibGUu
aHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFk
PgorICAgICAgICA8dGl0bGU+VGFibGUgbGF5b3V0IHBlcmZvcm1hbmNlIHdpdGggY29sbGFwc2Vk
IGJvcmRlcnMgYW5kIGEgY2VsbCB3aXRoIGEgY29sc3BhbiB3aWRlciB0aGFuIHRoZSBvdGhlciBy
b3dzIGluIHRoZSB0YWJsZS48L3RpdGxlPgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9InJlc291cmNlcy9sYXJnZS10YWJsZS13aXRoLWNvbGxhcHNlZC1ib3JkZXJzLmNzcyIg
VFlQRT0idGV4dC9jc3MiPjwvbGluaz4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2xh
cmdlLXRhYmxlLXdpdGgtY29sbGFwc2VkLWJvcmRlcnMuanMiPjwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHByZSBpZD0ibG9nIj48L3ByZT4KKyAgICAgICAgPHNj
cmlwdD4KKyAgICAgICAgICAgIFBlcmZUZXN0UnVubmVyLm1lYXN1cmVUaW1lKHtydW46IGNyZWF0
ZVRhYmxlVGVzdEZ1bmN0aW9uKDQwMCwgMTAwLCA1MDApfSk7CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTGF5b3V0
L2xhcmdlLXRhYmxlLXdpdGgtY29sbGFwc2VkLWJvcmRlcnMtYW5kLWNvbHNwYW5zLmh0bWwgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0xheW91dC9sYXJnZS10YWJsZS13aXRoLWNvbGxhcHNlZC1ib3JkZXJz
LWFuZC1jb2xzcGFucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjY2JiZTE2ZGMxMjM1ZGM5ZjE4M2UzODdj
MmE5ZGMyMDYwMWFiNjYKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0xheW91
dC9sYXJnZS10YWJsZS13aXRoLWNvbGxhcHNlZC1ib3JkZXJzLWFuZC1jb2xzcGFucy5odG1sCkBA
IC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAg
ICAgIDx0aXRsZT5UYWJsZSBsYXlvdXQgcGVyZm9ybWFuY2Ugd2l0aCBjb2xsYXBzZWQgYm9yZGVy
cyBhbmQgYSBjZWxsIHdpdGggYSBjb2xzcGFuIHRoYXQgY2FuIGJlIGFjY29tb2RhdGVkIGJ5IHRo
ZSB3aWR0aCBnaXZlbiBieSBvdGhlciByb3dzIGluIHRoZSB0YWJsZS48L3RpdGxlPgorICAgICAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9sYXJnZS10YWJsZS13aXRo
LWNvbGxhcHNlZC1ib3JkZXJzLmNzcyIgVFlQRT0idGV4dC9jc3MiPjwvbGluaz4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2xhcmdlLXRhYmxlLXdpdGgtY29sbGFwc2VkLWJvcmRlcnMu
anMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHByZSBpZD0i
bG9nIj48L3ByZT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIFBlcmZUZXN0UnVubmVy
Lm1lYXN1cmVUaW1lKHtydW46IGNyZWF0ZVRhYmxlVGVzdEZ1bmN0aW9uKDQwMCwgMTAwLCA1MCl9
KTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
UGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQvbGFyZ2UtdGFibGUtd2l0aC1jb2xsYXBzZWQtYm9yZGVy
cy1hbmQtbm8tY29sc3BhbnMuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvTGF5b3V0L2xhcmdlLXRh
YmxlLXdpdGgtY29sbGFwc2VkLWJvcmRlcnMtYW5kLW5vLWNvbHNwYW5zLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjRlZWIxMGZmYjI3ZTFjYWIzNDU1OTA1MmQ4MzIxNmRkZGZjOTNjYgotLS0gL2Rldi9udWxs
CisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvTGF5b3V0L2xhcmdlLXRhYmxlLXdpdGgtY29sbGFwc2Vk
LWJvcmRlcnMtYW5kLW5vLWNvbHNwYW5zLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlRhYmxlIGxheW91dCBw
ZXJmb3JtYW5jZSB3aXRoIGNvbGxhcHNlZCBib3JkZXJzIGFuZCBubyBjZWxscyB3aXRoIGNvbHNw
YW4uPC90aXRsZT4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJj
ZXMvbGFyZ2UtdGFibGUtd2l0aC1jb2xsYXBzZWQtYm9yZGVycy5jc3MiIFRZUEU9InRleHQvY3Nz
Ij48L2xpbms+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9sYXJnZS10YWJsZS13aXRo
LWNvbGxhcHNlZC1ib3JkZXJzLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+
CisgICAgICAgIDxwcmUgaWQ9ImxvZyI+PC9wcmU+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
ICAgICBQZXJmVGVzdFJ1bm5lci5tZWFzdXJlVGltZSh7cnVuOiBjcmVhdGVUYWJsZVRlc3RGdW5j
dGlvbig0MDAsIDEwMCwgMCl9KTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQvcmVzb3VyY2VzL2xhcmdl
LXRhYmxlLXdpdGgtY29sbGFwc2VkLWJvcmRlcnMuY3NzIGIvUGVyZm9ybWFuY2VUZXN0cy9MYXlv
dXQvcmVzb3VyY2VzL2xhcmdlLXRhYmxlLXdpdGgtY29sbGFwc2VkLWJvcmRlcnMuY3NzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI5MzZlNWQwOTk2MDU3OTBjN2FjNmZmZDJiN2JmNzRlZGFjNzNjZDQKLS0tIC9kZXYv
bnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0xheW91dC9yZXNvdXJjZXMvbGFyZ2UtdGFibGUt
d2l0aC1jb2xsYXBzZWQtYm9yZGVycy5jc3MKQEAgLTAsMCArMSwxNCBAQAoraHRtbCwgYm9keSB7
CisgICAgbWFyZ2luOiAwOworfQorCit0YWJsZSB7CisgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xs
YXBzZTsKKyAgICBib3JkZXIgOiAxcHggc29saWQgcmVkOworfQordGQgeworICAgIGJvcmRlciA6
IDFweCBzb2xpZCBibHVlOworICAgIHdpZHRoOiA1cHg7CisgICAgaGVpZ2h0OiA1cHg7Cit9CisK
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTGF5b3V0L3Jlc291cmNlcy9sYXJnZS10YWJs
ZS13aXRoLWNvbGxhcHNlZC1ib3JkZXJzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQvcmVz
b3VyY2VzL2xhcmdlLXRhYmxlLXdpdGgtY29sbGFwc2VkLWJvcmRlcnMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzczNDMyZDkzNTk1YTI0MjcxM2I0MDZmYTAwZDJkNjgwYWM4NTEzYwotLS0gL2Rldi9udWxsCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvTGF5b3V0L3Jlc291cmNlcy9sYXJnZS10YWJsZS13aXRoLWNv
bGxhcHNlZC1ib3JkZXJzLmpzCkBAIC0wLDAgKzEsMzIgQEAKKyhmdW5jdGlvbigpIHsKKyAgICBm
dW5jdGlvbiBjcmVhdGVFbGVtZW50KHRhZywgcGFyZW50LCBjbGFzc05hbWUsIGlkKSB7CisgICAg
ICAgIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTsKKyAgICAgICAgZWwuY2xh
c3NOYW1lID0gY2xhc3NOYW1lOworICAgICAgICBpZiAoaWQpCisgICAgICAgICAgICBlbC5pZCA9
IGlkOworICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZWwpOworICAgICAgICByZXR1cm4gZWw7
CisgICAgfQorCisgICAgZnVuY3Rpb24gY3JlYXRlVGFibGUod2lkdGgsIGhlaWdodCwgY29sc3Bh
bikgeworICAgICAgICB2YXIgdGFibGUgPSBjcmVhdGVFbGVtZW50KCJ0YWJsZSIsIGRvY3VtZW50
LmJvZHksICJ0YWJsZSIpOworICAgICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IGhlaWdodDsgKyt5
KSB7CisgICAgICAgICAgICB2YXIgdHIgPSBjcmVhdGVFbGVtZW50KCJ0ciIsIHRhYmxlLCAidHIi
KTsKKyAgICAgICAgICAgIGZvciAodmFyIHggPSAwOyB4IDwgd2lkdGg7ICsreCkgeworICAgICAg
ICAgICAgICAgIHZhciB0ZCA9IGNyZWF0ZUVsZW1lbnQoInRkIiwgdHIsICJ0ZCIpOworICAgICAg
ICAgICAgICAgIGlmIChjb2xzcGFuID4gMCAmJiB4PT0xMCAmJiB5PT0wKQorICAgICAgICAgICAg
ICAgICAgICB0YWJsZS5yb3dzW3ldLmNlbGxzW3hdLmNvbFNwYW4gPSBjb2xzcGFuOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0YWJsZTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBjcmVhdGVUZXN0RnVuY3Rpb24od2lkdGgsIGhlaWdodCwgY29sc3BhbikgeworICAg
ICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgdGFibGUgPSBjcmVhdGVU
YWJsZSh3aWR0aCwgaGVpZ2h0LCBjb2xzcGFuKTsKKyAgICAgICAgICAgIHRhYmxlLmNsaWVudEhl
aWdodDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHdpbmRvdy5jcmVhdGVUYWJsZVRlc3RGdW5j
dGlvbiA9IGNyZWF0ZVRlc3RGdW5jdGlvbjsKK30pKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>