<?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>27711</bug_id>
          
          <creation_ts>2009-07-27 06:54:07 -0700</creation_ts>
          <short_desc>SVG Filter need feColorMatrix implementation</short_desc>
          <delta_ts>2014-05-12 05:54:35 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>68469</blocked>
    
    <blocked>26389</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Dirk Schulze">krit</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>jeffschiller</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>134905</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-07-27 06:54:07 -0700</bug_when>
    <thetext>SVG Filter need feColorMatrix implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134907</commentid>
    <comment_count>1</comment_count>
      <attachid>33543</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-07-27 07:05:23 -0700</bug_when>
    <thetext>Created attachment 33543
SVG feColorMatrix-implementation

This is the implementation  of feColorMatrix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135299</commentid>
    <comment_count>2</comment_count>
      <attachid>33543</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-07-28 11:41:49 -0700</bug_when>
    <thetext>Comment on attachment 33543
SVG feColorMatrix-implementation

Woo!  alas, the double casts here:
double red = (double)r, green = (double)g, blue = (double)b, alpha = (double)a;

are unnecessary

And I don&apos;t like having that switch in the middle of the main processing loop -- i&apos;m not entirely sure what can be done to improve it short of something involving templates ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135303</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-28 11:48:01 -0700</bug_when>
    <thetext>The switch could be pulled out into a wrapper and a const function pointer used instead.  The compiler should be able to optimize the jump with a const function pointer, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135307</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-07-28 11:52:30 -0700</bug_when>
    <thetext>I think not with gcc i don&apos;t think :D, i was thinking of templating on the operation type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136924</commentid>
    <comment_count>5</comment_count>
      <attachid>34041</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-08-04 00:37:42 -0700</bug_when>
    <thetext>Created attachment 34041
SVG feColorMatrix-implementation

SVG feColorMatrix-implementation with templates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137753</commentid>
    <comment_count>6</comment_count>
      <attachid>34041</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-06 19:54:56 -0700</bug_when>
    <thetext>Comment on attachment 34041
SVG feColorMatrix-implementation

Sigh.  We totally need Color accessors to:
127         srcPixelArray-&gt;get(pixelByteOffset, r);
 128         srcPixelArray-&gt;get(pixelByteOffset + 1, g);
 129         srcPixelArray-&gt;get(pixelByteOffset + 2, b);
 130         srcPixelArray-&gt;get(pixelByteOffset + 3, a);

Sigh.  I still think function pointers would be cleaner than templates.

I&apos;ll r+ this, but I definitely would prefer function pointers for this sort of thing.  Modern compilers should be able to handle the jump prediction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138236</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-07 17:49:58 -0700</bug_when>
    <thetext>Assigned to krit for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138418</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-08-08 13:40:29 -0700</bug_when>
    <thetext>landed in r46958.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33543</attachid>
            <date>2009-07-27 07:05:23 -0700</date>
            <delta_ts>2009-08-04 00:37:42 -0700</delta_ts>
            <desc>SVG feColorMatrix-implementation</desc>
            <filename>feColormatrix.patch</filename>
            <type>text/plain</type>
            <size>5924</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjQxNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMDctMjcgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcg
RmlsdGVyIG5lZWQgZmVDb2xvck1hdHJpeCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBbaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzExXQorCisgICAgICAgIEFkZHMg
dGhlIGZpbHRlciBlZmZlY3QgZmVDb2xvck1hdHJpeCB0byBTVkcgZmlsdGVycy4gCisKKyAgICAg
ICAgVGhlcmUgaXMgYWxyZWFkeSBhIHRlc3QgaW4gdGhlIHczYyBkaXJlY3RvcnkuCisgICAgICAg
IFRlc3Q6IHN2Zy9XM0MtU1ZHLTEuMS9maWx0ZXJzLWNvbG9yLTAxLWIuc3ZnCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OnNhdHVyYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Omh1ZXJvdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpsdW1pbmFuY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RkVDb2xvck1hdHJpeDo6YXBwbHkpOgorCiAyMDA5LTA3LTI3ICBUb3Ig
QXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAJKHJldmlzaW9uIDQ2MDM3KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg
MjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAgICAgICAg
ICAgICAgICAgIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAgICAgICAgICAg
ICAgICAgIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTI0LDcgKzI1LDExIEBACiAjaWYgRU5BQkxFKEZJTFRFUlMpCiAjaW5jbHVkZSAi
RkVDb2xvck1hdHJpeC5oIgogCisjaW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgogI2luY2x1
ZGUgIkZpbHRlci5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIklt
YWdlRGF0YS5oIgorI2luY2x1ZGUgPG1hdGguaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC02MSw4ICs2NiwxMDcgQEAgdm9pZCBGRUNvbG9yTWF0cml4OjpzZXRWYWx1ZXMoY29uc3QgVmVj
dAogICAgIG1fdmFsdWVzID0gdmFsdWVzOwogfQogCi12b2lkIEZFQ29sb3JNYXRyaXg6OmFwcGx5
KEZpbHRlciopCitpbmxpbmUgdm9pZCBtYXRyaXgoZG91YmxlJiByZWQsIGRvdWJsZSYgZ3JlZW4s
IGRvdWJsZSYgYmx1ZSwgZG91YmxlJiBhbHBoYSwgVmVjdG9yPGZsb2F0PiB2YWx1ZXMpCiB7Cisg
ICAgZG91YmxlIHIgPSB2YWx1ZXNbMF0gICogcmVkICsgdmFsdWVzWzFdICAqIGdyZWVuICsgdmFs
dWVzWzJdICAqIGJsdWUgKyB2YWx1ZXNbM10gICogYWxwaGE7CisgICAgZG91YmxlIGcgPSB2YWx1
ZXNbNV0gICogcmVkICsgdmFsdWVzWzZdICAqIGdyZWVuICsgdmFsdWVzWzddICAqIGJsdWUgKyB2
YWx1ZXNbOF0gICogYWxwaGE7CisgICAgZG91YmxlIGIgPSB2YWx1ZXNbMTBdICAqIHJlZCArIHZh
bHVlc1sxMV0gICogZ3JlZW4gKyB2YWx1ZXNbMTJdICogYmx1ZSArIHZhbHVlc1sxM10gKiBhbHBo
YTsKKyAgICBkb3VibGUgYSA9IHZhbHVlc1sxNV0gKiByZWQgKyB2YWx1ZXNbMTZdICogZ3JlZW4g
KyB2YWx1ZXNbMTddICogYmx1ZSArIHZhbHVlc1sxOF0gKiBhbHBoYTsKKworICAgIHJlZCA9IHI7
CisgICAgZ3JlZW4gPSBnOworICAgIGJsdWUgPSBiOworICAgIGFscGhhID0gYTsKK30KKworaW5s
aW5lIHZvaWQgc2F0dXJhdGUoZG91YmxlJiByZWQsIGRvdWJsZSYgZ3JlZW4sIGRvdWJsZSYgYmx1
ZSwgZmxvYXQgcykKK3sKKyAgICBkb3VibGUgciA9ICgwLjIxMyArIDAuNzg3ICogcykgKiByZWQg
KyAoMC43MTUgLSAwLjcxNSAqIHMpICogZ3JlZW4gKyAoMC4wNzIgLSAwLjA3MiAqIHMpICogYmx1
ZTsKKyAgICBkb3VibGUgZyA9ICgwLjIxMyAtIDAuMjEzICogcykgKiByZWQgKyAoMC43MTUgKyAw
LjI4NSAqIHMpICogZ3JlZW4gKyAoMC4wNzIgLSAwLjA3MiAqIHMpICogYmx1ZTsKKyAgICBkb3Vi
bGUgYiA9ICgwLjIxMyAtIDAuMjEzICogcykgKiByZWQgKyAoMC43MTUgLSAwLjcxNSAqIHMpICog
Z3JlZW4gKyAoMC4wNzIgKyAwLjkyOCAqIHMpICogYmx1ZTsKKworICAgIHJlZCA9IHI7CisgICAg
Z3JlZW4gPSBnOworICAgIGJsdWUgPSBiOworfQorCitpbmxpbmUgdm9pZCBodWVyb3RhdGUoZG91
YmxlJiByZWQsIGRvdWJsZSYgZ3JlZW4sIGRvdWJsZSYgYmx1ZSwgZmxvYXQgaHVlKQoreworICAg
IGRvdWJsZSBjb3NIdWUgPSBjb3MoaHVlICogTV9QSSAvIDE4MCk7IAorICAgIGRvdWJsZSBzaW5I
dWUgPSBzaW4oaHVlICogTV9QSSAvIDE4MCk7IAorICAgIGRvdWJsZSByID0gcmVkICAgKiAoMC4y
MTMgKyBjb3NIdWUgKiAwLjc4NyAtIHNpbkh1ZSAqIDAuMjEzKSArCisgICAgICAgICAgICAgICBn
cmVlbiAqICgwLjcxNSAtIGNvc0h1ZSAqIDAuNzE1IC0gc2luSHVlICogMC43MTUpICsKKyAgICAg
ICAgICAgICAgIGJsdWUgICogKDAuMDcyIC0gY29zSHVlICogMC4wNzIgKyBzaW5IdWUgKiAwLjky
OCk7CisgICAgZG91YmxlIGcgPSByZWQgICAqICgwLjIxMyAtIGNvc0h1ZSAqIDAuMjEzICsgc2lu
SHVlICogMC4xNDMpICsKKyAgICAgICAgICAgICAgIGdyZWVuICogKDAuNzE1ICsgY29zSHVlICog
MC4yODUgKyBzaW5IdWUgKiAwLjE0MCkgKworICAgICAgICAgICAgICAgYmx1ZSAgKiAoMC4wNzIg
LSBjb3NIdWUgKiAwLjA3MiAtIHNpbkh1ZSAqIDAuMjgzKTsKKyAgICBkb3VibGUgYiA9IHJlZCAg
ICogKDAuMjEzIC0gY29zSHVlICogMC4yMTMgLSBzaW5IdWUgKiAwLjc4NykgKworICAgICAgICAg
ICAgICAgZ3JlZW4gKiAoMC43MTUgLSBjb3NIdWUgKiAwLjcxNSArIHNpbkh1ZSAqIDAuNzE1KSAr
CisgICAgICAgICAgICAgICBibHVlICAqICgwLjA3MiArIGNvc0h1ZSAqIDAuOTI4ICsgc2luSHVl
ICogMC4wNzIpOworCisgICAgcmVkID0gcjsKKyAgICBncmVlbiA9IGc7CisgICAgYmx1ZSA9IGI7
Cit9CisKK2lubGluZSB2b2lkIGx1bWluYW5jZShkb3VibGUmIHJlZCwgZG91YmxlJiBncmVlbiwg
ZG91YmxlJiBibHVlLCBkb3VibGUmIGFscGhhKQoreworICAgIGFscGhhID0gMC4yMTI1ICogcmVk
ICsgMC43MTU0ICogZ3JlZW4gKyAwLjA3MjEgKiBibHVlOworICAgIHJlZCA9IDAuOworICAgIGdy
ZWVuID0gMC47CisgICAgYmx1ZSA9IDAuOworfQorCit2b2lkIEZFQ29sb3JNYXRyaXg6OmFwcGx5
KEZpbHRlciogZmlsdGVyKQoreworICAgIG1faW4tPmFwcGx5KGZpbHRlcik7CisgICAgaWYgKCFt
X2luLT5yZXN1bHRJbWFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRl
eHQqIGZpbHRlckNvbnRleHQgPSBnZXRFZmZlY3RDb250ZXh0KCk7CisgICAgaWYgKCFmaWx0ZXJD
b250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2Uo
bV9pbi0+cmVzdWx0SW1hZ2UoKS0+aW1hZ2UoKSwgY2FsY3VsYXRlRHJhd2luZ1JlY3QobV9pbi0+
c3ViUmVnaW9uKCkpKTsKKworICAgIEludFJlY3QgaW1hZ2VSZWN0KEludFBvaW50KCksIHJlc3Vs
dEltYWdlKCktPnNpemUoKSk7CisgICAgUGFzc1JlZlB0cjxJbWFnZURhdGE+IGltYWdlRGF0YShy
ZXN1bHRJbWFnZSgpLT5nZXRJbWFnZURhdGEoaW1hZ2VSZWN0KSk7CisgICAgUGFzc1JlZlB0cjxD
YW52YXNQaXhlbEFycmF5PiBzcmNQaXhlbEFycmF5KGltYWdlRGF0YS0+ZGF0YSgpKTsKKworICAg
IGZvciAodW5zaWduZWQgcGl4ZWxPZmZzZXQgPSAwOyBwaXhlbE9mZnNldCA8IHNyY1BpeGVsQXJy
YXktPmxlbmd0aCgpOyBwaXhlbE9mZnNldCsrKSB7CisgICAgICAgIHVuc2lnbmVkIHBpeGVsQnl0
ZU9mZnNldCA9IHBpeGVsT2Zmc2V0ICogNDsKKworICAgICAgICB1bnNpZ25lZCBjaGFyIHIgPSAw
LCBnID0gMCwgYiA9IDAsIGEgPSAwOworICAgICAgICBzcmNQaXhlbEFycmF5LT5nZXQocGl4ZWxC
eXRlT2Zmc2V0LCByKTsKKyAgICAgICAgc3JjUGl4ZWxBcnJheS0+Z2V0KHBpeGVsQnl0ZU9mZnNl
dCArIDEsIGcpOworICAgICAgICBzcmNQaXhlbEFycmF5LT5nZXQocGl4ZWxCeXRlT2Zmc2V0ICsg
MiwgYik7CisgICAgICAgIHNyY1BpeGVsQXJyYXktPmdldChwaXhlbEJ5dGVPZmZzZXQgKyAzLCBh
KTsKKworICAgICAgICBkb3VibGUgcmVkID0gKGRvdWJsZSlyLCBncmVlbiA9IChkb3VibGUpZywg
Ymx1ZSA9IChkb3VibGUpYiwgYWxwaGEgPSAoZG91YmxlKWE7CisgICAgICAgIHN3aXRjaCAobV90
eXBlKSB7CisgICAgICAgICAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9VTktOT1dOOgorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVf
TUFUUklYOgorICAgICAgICAgICAgICAgIG1hdHJpeChyZWQsIGdyZWVuLCBibHVlLCBhbHBoYSwg
bV92YWx1ZXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBGRUNP
TE9STUFUUklYX1RZUEVfU0FUVVJBVEU6IAorICAgICAgICAgICAgICAgIHNhdHVyYXRlKHJlZCwg
Z3JlZW4sIGJsdWUsIG1fdmFsdWVzWzBdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgRkVDT0xPUk1BVFJJWF9UWVBFX0hVRVJPVEFURToKKyAgICAgICAgICAgICAg
ICBodWVyb3RhdGUocmVkLCBncmVlbiwgYmx1ZSwgbV92YWx1ZXNbMF0pOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfTFVNSU5BTkNF
VE9BTFBIQToKKyAgICAgICAgICAgICAgICBsdW1pbmFuY2UocmVkLCBncmVlbiwgYmx1ZSwgYWxw
aGEpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaW1hZ2VE
YXRhLT5kYXRhKCktPnNldChwaXhlbEJ5dGVPZmZzZXQsIHJlZCk7CisgICAgICAgIGltYWdlRGF0
YS0+ZGF0YSgpLT5zZXQocGl4ZWxCeXRlT2Zmc2V0ICsgMSwgZ3JlZW4pOworICAgICAgICBpbWFn
ZURhdGEtPmRhdGEoKS0+c2V0KHBpeGVsQnl0ZU9mZnNldCArIDIsIGJsdWUpOworICAgICAgICBp
bWFnZURhdGEtPmRhdGEoKS0+c2V0KHBpeGVsQnl0ZU9mZnNldCArIDMsIGFscGhhKTsKKyAgICB9
CisKKyAgICByZXN1bHRJbWFnZSgpLT5wdXRJbWFnZURhdGEoaW1hZ2VEYXRhLmdldCgpLCBpbWFn
ZVJlY3QsIEludFBvaW50KCkpOwogfQogCiB2b2lkIEZFQ29sb3JNYXRyaXg6OmR1bXAoKQo=
</data>
<flag name="review"
          id="17807"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34041</attachid>
            <date>2009-08-04 00:37:42 -0700</date>
            <delta_ts>2009-08-06 19:54:56 -0700</delta_ts>
            <desc>SVG feColorMatrix-implementation</desc>
            <filename>feColormatrix2.patch</filename>
            <type>text/plain</type>
            <size>6735</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjY2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMDgtMDEgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcg
RmlsdGVyIG5lZWQgZmVDb2xvck1hdHJpeCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBbaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzExXQorCisgICAgICAgIEFkZHMg
dGhlIGZpbHRlciBlZmZlY3QgZmVDb2xvck1hdHJpeCB0byBTVkcgZmlsdGVycy4gCisKKyAgICAg
ICAgVGhlcmUgaXMgYWxyZWFkeSBhIHRlc3QgaW4gdGhlIHczYyBkaXJlY3RvcnkuCisgICAgICAg
IFRlc3Q6IHN2Zy9XM0MtU1ZHLTEuMS9maWx0ZXJzLWNvbG9yLTAxLWIuc3ZnCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OnNhdHVyYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Omh1ZXJvdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpsdW1pbmFuY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RkVDb2xvck1hdHJpeDo6YXBwbHkpOgorCiAyMDA5LTA4LTAxICBKb2hu
IEFiZC1FbC1NYWxlayAgPGphbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bG9yTWF0cml4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb2xvck1hdHJpeC5jcHAJKHJldmlzaW9uIDQ2NDE2KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yLDYgKzIsNyBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBO
aWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAg
IDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIw
MDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAgICAgICAgICAgICAgICAgIDIwMDkg
RGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI0
LDcgKzI1LDExIEBACiAjaWYgRU5BQkxFKEZJTFRFUlMpCiAjaW5jbHVkZSAiRkVDb2xvck1hdHJp
eC5oIgogCisjaW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgogI2luY2x1ZGUgIkZpbHRlci5o
IgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkltYWdlRGF0YS5oIgor
I2luY2x1ZGUgPG1hdGguaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02MSw4ICs2Niwx
MjcgQEAgdm9pZCBGRUNvbG9yTWF0cml4OjpzZXRWYWx1ZXMoY29uc3QgVmVjdAogICAgIG1fdmFs
dWVzID0gdmFsdWVzOwogfQogCi12b2lkIEZFQ29sb3JNYXRyaXg6OmFwcGx5KEZpbHRlciopCitp
bmxpbmUgdm9pZCBtYXRyaXgoZG91YmxlJiByZWQsIGRvdWJsZSYgZ3JlZW4sIGRvdWJsZSYgYmx1
ZSwgZG91YmxlJiBhbHBoYSwgY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWVzKQogeworICAgIGRv
dWJsZSByID0gdmFsdWVzWzBdICAqIHJlZCArIHZhbHVlc1sxXSAgKiBncmVlbiArIHZhbHVlc1sy
XSAgKiBibHVlICsgdmFsdWVzWzNdICAqIGFscGhhOworICAgIGRvdWJsZSBnID0gdmFsdWVzWzVd
ICAqIHJlZCArIHZhbHVlc1s2XSAgKiBncmVlbiArIHZhbHVlc1s3XSAgKiBibHVlICsgdmFsdWVz
WzhdICAqIGFscGhhOworICAgIGRvdWJsZSBiID0gdmFsdWVzWzEwXSAgKiByZWQgKyB2YWx1ZXNb
MTFdICAqIGdyZWVuICsgdmFsdWVzWzEyXSAqIGJsdWUgKyB2YWx1ZXNbMTNdICogYWxwaGE7Cisg
ICAgZG91YmxlIGEgPSB2YWx1ZXNbMTVdICogcmVkICsgdmFsdWVzWzE2XSAqIGdyZWVuICsgdmFs
dWVzWzE3XSAqIGJsdWUgKyB2YWx1ZXNbMThdICogYWxwaGE7CisKKyAgICByZWQgPSByOworICAg
IGdyZWVuID0gZzsKKyAgICBibHVlID0gYjsKKyAgICBhbHBoYSA9IGE7Cit9CisKK2lubGluZSB2
b2lkIHNhdHVyYXRlKGRvdWJsZSYgcmVkLCBkb3VibGUmIGdyZWVuLCBkb3VibGUmIGJsdWUsIGNv
bnN0IGZsb2F0JiBzKQoreworICAgIGRvdWJsZSByID0gKDAuMjEzICsgMC43ODcgKiBzKSAqIHJl
ZCArICgwLjcxNSAtIDAuNzE1ICogcykgKiBncmVlbiArICgwLjA3MiAtIDAuMDcyICogcykgKiBi
bHVlOworICAgIGRvdWJsZSBnID0gKDAuMjEzIC0gMC4yMTMgKiBzKSAqIHJlZCArICgwLjcxNSAr
IDAuMjg1ICogcykgKiBncmVlbiArICgwLjA3MiAtIDAuMDcyICogcykgKiBibHVlOworICAgIGRv
dWJsZSBiID0gKDAuMjEzIC0gMC4yMTMgKiBzKSAqIHJlZCArICgwLjcxNSAtIDAuNzE1ICogcykg
KiBncmVlbiArICgwLjA3MiArIDAuOTI4ICogcykgKiBibHVlOworCisgICAgcmVkID0gcjsKKyAg
ICBncmVlbiA9IGc7CisgICAgYmx1ZSA9IGI7Cit9CisKK2lubGluZSB2b2lkIGh1ZXJvdGF0ZShk
b3VibGUmIHJlZCwgZG91YmxlJiBncmVlbiwgZG91YmxlJiBibHVlLCBjb25zdCBmbG9hdCYgaHVl
KQoreworICAgIGRvdWJsZSBjb3NIdWUgPSBjb3MoaHVlICogTV9QSSAvIDE4MCk7IAorICAgIGRv
dWJsZSBzaW5IdWUgPSBzaW4oaHVlICogTV9QSSAvIDE4MCk7IAorICAgIGRvdWJsZSByID0gcmVk
ICAgKiAoMC4yMTMgKyBjb3NIdWUgKiAwLjc4NyAtIHNpbkh1ZSAqIDAuMjEzKSArCisgICAgICAg
ICAgICAgICBncmVlbiAqICgwLjcxNSAtIGNvc0h1ZSAqIDAuNzE1IC0gc2luSHVlICogMC43MTUp
ICsKKyAgICAgICAgICAgICAgIGJsdWUgICogKDAuMDcyIC0gY29zSHVlICogMC4wNzIgKyBzaW5I
dWUgKiAwLjkyOCk7CisgICAgZG91YmxlIGcgPSByZWQgICAqICgwLjIxMyAtIGNvc0h1ZSAqIDAu
MjEzICsgc2luSHVlICogMC4xNDMpICsKKyAgICAgICAgICAgICAgIGdyZWVuICogKDAuNzE1ICsg
Y29zSHVlICogMC4yODUgKyBzaW5IdWUgKiAwLjE0MCkgKworICAgICAgICAgICAgICAgYmx1ZSAg
KiAoMC4wNzIgLSBjb3NIdWUgKiAwLjA3MiAtIHNpbkh1ZSAqIDAuMjgzKTsKKyAgICBkb3VibGUg
YiA9IHJlZCAgICogKDAuMjEzIC0gY29zSHVlICogMC4yMTMgLSBzaW5IdWUgKiAwLjc4NykgKwor
ICAgICAgICAgICAgICAgZ3JlZW4gKiAoMC43MTUgLSBjb3NIdWUgKiAwLjcxNSArIHNpbkh1ZSAq
IDAuNzE1KSArCisgICAgICAgICAgICAgICBibHVlICAqICgwLjA3MiArIGNvc0h1ZSAqIDAuOTI4
ICsgc2luSHVlICogMC4wNzIpOworCisgICAgcmVkID0gcjsKKyAgICBncmVlbiA9IGc7CisgICAg
Ymx1ZSA9IGI7Cit9CisKK2lubGluZSB2b2lkIGx1bWluYW5jZShkb3VibGUmIHJlZCwgZG91Ymxl
JiBncmVlbiwgZG91YmxlJiBibHVlLCBkb3VibGUmIGFscGhhKQoreworICAgIGFscGhhID0gMC4y
MTI1ICogcmVkICsgMC43MTU0ICogZ3JlZW4gKyAwLjA3MjEgKiBibHVlOworICAgIHJlZCA9IDAu
OworICAgIGdyZWVuID0gMC47CisgICAgYmx1ZSA9IDAuOworfQorCit0ZW1wbGF0ZTxDb2xvck1h
dHJpeFR5cGUgZmlsdGVyVHlwZT4KK3ZvaWQgZWZmZWN0VHlwZShjb25zdCBQYXNzUmVmUHRyPENh
bnZhc1BpeGVsQXJyYXk+JiBzcmNQaXhlbEFycmF5LCBQYXNzUmVmUHRyPEltYWdlRGF0YT4mIGlt
YWdlRGF0YSwgY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWVzKQoreworICAgIGZvciAodW5zaWdu
ZWQgcGl4ZWxPZmZzZXQgPSAwOyBwaXhlbE9mZnNldCA8IHNyY1BpeGVsQXJyYXktPmxlbmd0aCgp
OyBwaXhlbE9mZnNldCsrKSB7CisgICAgICAgIHVuc2lnbmVkIHBpeGVsQnl0ZU9mZnNldCA9IHBp
eGVsT2Zmc2V0ICogNDsKKworICAgICAgICB1bnNpZ25lZCBjaGFyIHIgPSAwLCBnID0gMCwgYiA9
IDAsIGEgPSAwOworICAgICAgICBzcmNQaXhlbEFycmF5LT5nZXQocGl4ZWxCeXRlT2Zmc2V0LCBy
KTsKKyAgICAgICAgc3JjUGl4ZWxBcnJheS0+Z2V0KHBpeGVsQnl0ZU9mZnNldCArIDEsIGcpOwor
ICAgICAgICBzcmNQaXhlbEFycmF5LT5nZXQocGl4ZWxCeXRlT2Zmc2V0ICsgMiwgYik7CisgICAg
ICAgIHNyY1BpeGVsQXJyYXktPmdldChwaXhlbEJ5dGVPZmZzZXQgKyAzLCBhKTsKKworICAgICAg
ICBkb3VibGUgcmVkID0gciwgZ3JlZW4gPSBnLCBibHVlID0gYiwgYWxwaGEgPSBhOworICAgICAg
ICAKKyAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7CisgICAgICAgICAgICBjYXNlIEZFQ09M
T1JNQVRSSVhfVFlQRV9NQVRSSVg6CisgICAgICAgICAgICAgICAgbWF0cml4KHJlZCwgZ3JlZW4s
IGJsdWUsIGFscGhhLCB2YWx1ZXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfU0FUVVJBVEU6IAorICAgICAgICAgICAgICAgIHNh
dHVyYXRlKHJlZCwgZ3JlZW4sIGJsdWUsIHZhbHVlc1swXSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9IVUVST1RBVEU6CisgICAg
ICAgICAgICAgICAgaHVlcm90YXRlKHJlZCwgZ3JlZW4sIGJsdWUsIHZhbHVlc1swXSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9M
VU1JTkFOQ0VUT0FMUEhBOgorICAgICAgICAgICAgICAgIGx1bWluYW5jZShyZWQsIGdyZWVuLCBi
bHVlLCBhbHBoYSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAg
ICBpbWFnZURhdGEtPmRhdGEoKS0+c2V0KHBpeGVsQnl0ZU9mZnNldCwgcmVkKTsKKyAgICAgICAg
aW1hZ2VEYXRhLT5kYXRhKCktPnNldChwaXhlbEJ5dGVPZmZzZXQgKyAxLCBncmVlbik7CisgICAg
ICAgIGltYWdlRGF0YS0+ZGF0YSgpLT5zZXQocGl4ZWxCeXRlT2Zmc2V0ICsgMiwgYmx1ZSk7Cisg
ICAgICAgIGltYWdlRGF0YS0+ZGF0YSgpLT5zZXQocGl4ZWxCeXRlT2Zmc2V0ICsgMywgYWxwaGEp
OworICAgIH0KK30KKwordm9pZCBGRUNvbG9yTWF0cml4OjphcHBseShGaWx0ZXIqIGZpbHRlcikK
K3sKKyAgICBtX2luLT5hcHBseShmaWx0ZXIpOworICAgIGlmICghbV9pbi0+cmVzdWx0SW1hZ2Uo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NDb250ZXh0KiBmaWx0ZXJDb250ZXh0
ID0gZ2V0RWZmZWN0Q29udGV4dCgpOworICAgIGlmICghZmlsdGVyQ29udGV4dCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlKG1faW4tPnJlc3VsdEltYWdl
KCktPmltYWdlKCksIGNhbGN1bGF0ZURyYXdpbmdSZWN0KG1faW4tPnN1YlJlZ2lvbigpKSk7CisK
KyAgICBJbnRSZWN0IGltYWdlUmVjdChJbnRQb2ludCgpLCByZXN1bHRJbWFnZSgpLT5zaXplKCkp
OworICAgIFBhc3NSZWZQdHI8SW1hZ2VEYXRhPiBpbWFnZURhdGEocmVzdWx0SW1hZ2UoKS0+Z2V0
SW1hZ2VEYXRhKGltYWdlUmVjdCkpOworICAgIFBhc3NSZWZQdHI8Q2FudmFzUGl4ZWxBcnJheT4g
c3JjUGl4ZWxBcnJheShpbWFnZURhdGEtPmRhdGEoKSk7CisKKyAgICBzd2l0Y2ggKG1fdHlwZSkg
eworICAgICAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9VTktOT1dOOgorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgRkVDT0xPUk1BVFJJWF9UWVBFX01BVFJJWDoKKyAgICAgICAg
ICAgIGVmZmVjdFR5cGU8RkVDT0xPUk1BVFJJWF9UWVBFX01BVFJJWD4oc3JjUGl4ZWxBcnJheSwg
aW1hZ2VEYXRhLCBtX3ZhbHVlcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBG
RUNPTE9STUFUUklYX1RZUEVfU0FUVVJBVEU6IAorICAgICAgICAgICAgZWZmZWN0VHlwZTxGRUNP
TE9STUFUUklYX1RZUEVfU0FUVVJBVEU+KHNyY1BpeGVsQXJyYXksIGltYWdlRGF0YSwgbV92YWx1
ZXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRkVDT0xPUk1BVFJJWF9UWVBF
X0hVRVJPVEFURToKKyAgICAgICAgICAgIGVmZmVjdFR5cGU8RkVDT0xPUk1BVFJJWF9UWVBFX0hV
RVJPVEFURT4oc3JjUGl4ZWxBcnJheSwgaW1hZ2VEYXRhLCBtX3ZhbHVlcyk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfTFVNSU5BTkNFVE9BTFBI
QToKKyAgICAgICAgICAgIGVmZmVjdFR5cGU8RkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5DRVRP
QUxQSEE+KHNyY1BpeGVsQXJyYXksIGltYWdlRGF0YSwgbV92YWx1ZXMpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgcmVzdWx0SW1hZ2UoKS0+cHV0SW1hZ2VEYXRhKGltYWdlRGF0
YS5nZXQoKSwgaW1hZ2VSZWN0LCBJbnRQb2ludCgpKTsKIH0KIAogdm9pZCBGRUNvbG9yTWF0cml4
OjpkdW1wKCkK
</data>
<flag name="review"
          id="18208"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>