<?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>48819</bug_id>
          
          <creation_ts>2010-11-01 23:27:53 -0700</creation_ts>
          <short_desc>JPEG decoders should understand color profiles</short_desc>
          <delta_ts>2011-12-13 16:55:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>
          <dependson>48866</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>noel.gordon</cc>
    
    <cc>pascal.massimino</cc>
    
    <cc>pkasting</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>303235</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-01 23:27:53 -0700</bug_when>
    <thetext>JPEG decoders should understand color profiles</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303236</commentid>
    <comment_count>1</comment_count>
      <attachid>72632</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-01 23:29:01 -0700</bug_when>
    <thetext>Created attachment 72632
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303269</commentid>
    <comment_count>2</comment_count>
      <attachid>72639</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-02 02:14:53 -0700</bug_when>
    <thetext>Created attachment 72639
patch (needs iccjpeg before landing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303273</commentid>
    <comment_count>3</comment_count>
      <attachid>72639</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-02 02:30:37 -0700</bug_when>
    <thetext>Comment on attachment 72639
patch (needs iccjpeg before landing)

View in context: https://bugs.webkit.org/attachment.cgi?id=72639&amp;action=review

In general I support this change.  I&apos;d like to see your comments first.

I think ColorProfile should probably not be just a Vector but rather a class wrapping a vector or similar?

Should we make ColorProfile RefCounted to avoid the copy?  I&apos;m not sure how large these structs are, or how hot these paths are, but copies seem bad. :)

&gt; WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:106
&gt; +    ColorProfile colorProfile;
&gt; +    colorProfile.append(reinterpret_cast&lt;char*&gt;(profile), profileLength);
&gt; +    free(profile);

Can we just adopt it?

&gt; WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:152
&gt; +        for (unsigned i = JPEG_APP0; i &lt; JPEG_COM; ++i)
&gt; +            jpeg_save_markers(&amp;m_info, i, 0xFFFF);

This needs a comment, methinks.

&gt; WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:453
&gt; +        buffer.setColorProfile(m_colorProfile);

Very confusing that there are multiple classes in this file.

&gt; WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.h:57
&gt; +        void setColorProfile(const ColorProfile&amp; colorProfile) { m_colorProfile = colorProfile; }

Copying seems &quot;bad&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303274</commentid>
    <comment_count>4</comment_count>
      <attachid>72639</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-02 02:33:14 -0700</bug_when>
    <thetext>Comment on attachment 72639
patch (needs iccjpeg before landing)

View in context: https://bugs.webkit.org/attachment.cgi?id=72639&amp;action=review

&gt;&gt; WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:106
&gt;&gt; +    ColorProfile colorProfile;
&gt;&gt; +    colorProfile.append(reinterpret_cast&lt;char*&gt;(profile), profileLength);
&gt;&gt; +    free(profile);
&gt; 
&gt; Can we just adopt it?

The problem is that if we adopted it, we&apos;d free it with delete instead of free().  :(

&gt;&gt; WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:152
&gt;&gt; +        for (unsigned i = JPEG_APP0; i &lt; JPEG_COM; ++i)
&gt;&gt; +            jpeg_save_markers(&amp;m_info, i, 0xFFFF);
&gt; 
&gt; This needs a comment, methinks.

Okiedokes.  It&apos;s pretty mysterious.

&gt;&gt; WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:453
&gt;&gt; +        buffer.setColorProfile(m_colorProfile);
&gt; 
&gt; Very confusing that there are multiple classes in this file.

Yes.  We could clean up all this code.

&gt;&gt; WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.h:57
&gt;&gt; +        void setColorProfile(const ColorProfile&amp; colorProfile) { m_colorProfile = colorProfile; }
&gt; 
&gt; Copying seems &quot;bad&quot; here.

We could make it RefCounted.  I&apos;m tempted to do that in a separate patch though since ColorProfile is used by PNGs too now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303275</commentid>
    <comment_count>5</comment_count>
      <attachid>72640</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-02 02:35:12 -0700</bug_when>
    <thetext>Created attachment 72640
patch (needs iccjpeg before landing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303293</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-02 03:37:11 -0700</bug_when>
    <thetext>Attachment 72640 did not build on chromium:
Build output: http://queues.webkit.org/results/4932011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303569</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-02 12:45:54 -0700</bug_when>
    <thetext>Committed r71152: &lt;http://trac.webkit.org/changeset/71152&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303585</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-02 12:52:07 -0700</bug_when>
    <thetext>Attachment 72640 did not build on chromium:
Build output: http://queues.webkit.org/results/4919025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303587</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-02 12:54:40 -0700</bug_when>
    <thetext>I landed this disabled for the time being.  I&apos;ll file another bug to actually enable the code once we have the ICCJPEG library in DEPS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303613</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-02 13:32:35 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/71152 might have broken GTK Linux 64-bit Debug
The following tests are not passing:
canvas/philip/tests/toDataURL.jpeg.primarycolours.html
fast/backgrounds/background-repeat-computed-style.html
fast/backgrounds/size/backgroundSize17.html
fast/backgrounds/size/backgroundSize18.html
fast/backgrounds/size/backgroundSize19.html
fast/backgrounds/size/contain-and-cover.html
fast/blockflow/background-horizontal-bt.html
fast/blockflow/background-vertical-lr.html
fast/blockflow/background-vertical-rl.html
fast/canvas/toDataURL-supportedTypes.html
fast/dom/HTMLImageElement/image-load-cross-document.html
fast/dom/HTMLImageElement/image-loading-gc.html
fast/dom/HTMLImageElement/image-natural-width-height.html
fast/dom/HTMLLinkElement/onload-completion-test.html
fast/dom/beforeload/image-before-load-innerHTML.html
fast/dom/beforeload/image-before-load.html
fast/dom/beforeload/image-object-before-load-innerHTML.html
fast/dom/beforeload/image-object-before-load.html
fast/dom/beforeload/remove-image-in-beforeload-listener.html
fast/dom/inner-text-001.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303633</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-11-02 13:57:39 -0700</bug_when>
    <thetext>Reverted: http://trac.webkit.org/changeset/71162.  Apparently some of this code does run somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303703</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-02 15:01:53 -0700</bug_when>
    <thetext>Committed r71174: &lt;http://trac.webkit.org/changeset/71174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520487</commentid>
    <comment_count>13</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-12-13 16:55:19 -0800</bug_when>
    <thetext>(In reply to comment #3)

&gt; Should we make ColorProfile RefCounted to avoid the copy?  I&apos;m not sure how large these structs are, or how hot these paths are, but copies seem bad. :)

557188 bytes of ICC profile data on this image, http://i.imgur.com/KZGJX.jpg :)
 
&gt; &gt; WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.h:57
&gt; &gt; +        void setColorProfile(const ColorProfile&amp; colorProfile) { m_colorProfile = colorProfile; }
&gt; 
&gt; Copying seems &quot;bad&quot; here.

557188 x 2 bytes in toto then?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72632</attachid>
            <date>2010-11-01 23:29:01 -0700</date>
            <delta_ts>2010-11-02 02:14:50 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-48819-20101101232900.patch</filename>
            <type>text/plain</type>
            <size>2838</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjdjYmZiMDM1MWY2YWFkYjMwNTEzNDM4ODg4YTE1MTlkZjJmNDZmNy4uZDQ5MWVmYmRhYmQxNDY0
YzNmOWE1OThjN2M2YjQyZTcwOTdhOWUyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0xMS0wMSAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEpQRUcgZGVjb2RlcnMgc2hvdWxkIHVuZGVyc3RhbmQgY29s
b3IgcHJvZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ4ODE5CisKKyAgICAgICAgVGhpcyBpcyBjb3ZlcmVkIGJ5IGFub3RoZXIgaW5maW5pdGUg
c2V0IG9mIHBpeGVsIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
anBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlYWRDb2xvclBy
b2ZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6SlBFR0ltYWdlUmVhZGVyOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6SlBFR0ltYWdlRGVjb2Rlcjo6c2V0Q29sb3JQcm9maWxlKToKKwog
MjAxMC0xMS0wMSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCmluZGV4IDZj
NmM3ODI0OWYyNGU0YWRiYTA1ZTA2ODViZTVmYTNmODRkODZlNTkuLmU4OGI4YzhlYjM2YmEyMDUw
NDNhNjA2MGYxYjQ2MjE1MTczM2ZiYWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKQEAgLTUyLDYgKzUy
LDcgQEAKIAogZXh0ZXJuICJDIiB7CiAjaW5jbHVkZSAianBlZ2xpYi5oIgorI2luY2x1ZGUgImlj
Y2pwZWcuaCIKIH0KIAogI2luY2x1ZGUgPHNldGptcC5oPgpAQCAtODYsNiArODcsMTkgQEAgc3Ry
dWN0IGRlY29kZXJfc291cmNlX21nciB7CiAgICAgSlBFR0ltYWdlUmVhZGVyKiBkZWNvZGVyOwog
fTsKIAorc3RhdGljIENvbG9yUHJvZmlsZSByZWFkQ29sb3JQcm9maWxlKGpwZWdfZGVjb21wcmVz
c19zdHJ1Y3QqIGluZm8pCit7CisgICAgSk9DVEVUKiBwcm9maWxlOworICAgIHVuc2lnbmVkIGlu
dCBwcm9maWxlTGVuZ3RoOworCisgICAgaWYgKCFyZWFkX2ljY19wcm9maWxlKGluZm8sICZwcm9m
aWxlLCAmcHJvZmlsZUxlbmd0aCkpCisgICAgICAgIHJldHVybiBDb2xvclByb2ZpbGUoKTsKKyAg
ICBDb2xvclByb2ZpbGUgY29sb3JQcm9maWxlOworICAgIGNvbG9yUHJvZmlsZS5hcHBlbmQocmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4ocHJvZmlsZSksIHByb2ZpbGVMZW5ndGgpOworICAgIGZyZWUo
cHJvZmlsZSk7CisgICAgcmV0dXJuIGNvbG9yUHJvZmlsZTsKK30KKwogY2xhc3MgSlBFR0ltYWdl
UmVhZGVyCiB7CiBwdWJsaWM6CkBAIC0yMDgsNiArMjIyLDggQEAgcHVibGljOgogCiAgICAgICAg
ICAgICBtX3N0YXRlID0gSlBFR19TVEFSVF9ERUNPTVBSRVNTOwogCisgICAgICAgICAgICBtX2Rl
Y29kZXItPnNldENvbG9yUHJvZmlsZShyZWFkQ29sb3JQcm9maWxlKGluZm8oKSkpOworCiAgICAg
ICAgICAgICAvLyBXZSBjYW4gZmlsbCBpbiB0aGUgc2l6ZSBub3cgdGhhdCB0aGUgaGVhZGVyIGlz
IGF2YWlsYWJsZS4KICAgICAgICAgICAgIGlmICghbV9kZWNvZGVyLT5zZXRTaXplKG1faW5mby5p
bWFnZV93aWR0aCwgbV9pbmZvLmltYWdlX2hlaWdodCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVn
L0pQRUdJbWFnZURlY29kZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBl
Zy9KUEVHSW1hZ2VEZWNvZGVyLmgKaW5kZXggNTA0NzAxOWViNTIwNWQzMWE2MGI1MjY5OGVlOTJi
MjBmZjdjZmU1Yi4uZTk0MmIwMWVjZGU0YThhMjdiYWRiZjExMmFiNzcxMzk1MDk0OGQ0NyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURl
Y29kZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0lt
YWdlRGVjb2Rlci5oCkBAIC01NCw2ICs1NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgYm9vbCBvdXRwdXRTY2FubGluZXMoKTsKICAgICAgICAgdm9pZCBqcGVnQ29tcGxldGUoKTsK
IAorICAgICAgICB2b2lkIHNldENvbG9yUHJvZmlsZShjb25zdCBDb2xvclByb2ZpbGUmIGNvbG9y
UHJvZmlsZSkgeyBtX2NvbG9yUHJvZmlsZSA9IGNvbG9yUHJvZmlsZTsgfQorCiAgICAgcHJpdmF0
ZToKICAgICAgICAgLy8gRGVjb2RlcyB0aGUgaW1hZ2UuICBJZiB8b25seVNpemV8IGlzIHRydWUs
IHN0b3BzIGRlY29kaW5nIGFmdGVyCiAgICAgICAgIC8vIGNhbGN1bGF0aW5nIHRoZSBpbWFnZSBz
aXplLiAgSWYgZGVjb2RpbmcgZmFpbHMgYnV0IHRoZXJlIGlzIG5vIG1vcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72639</attachid>
            <date>2010-11-02 02:14:53 -0700</date>
            <delta_ts>2010-11-02 02:35:09 -0700</delta_ts>
            <desc>patch (needs iccjpeg before landing)</desc>
            <filename>bug-48819-20101102021452.patch</filename>
            <type>text/plain</type>
            <size>4592</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTEwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMTEtMDEgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKUEVH
IGRlY29kZXJzIHNob3VsZCB1bmRlcnN0YW5kIGNvbG9yIHByb2ZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODgxOQorCisgICAgICAgIFRoaXMg
aXMgY292ZXJlZCBieSBhbm90aGVyIGluZmluaXRlIHNldCBvZiBwaXhlbCB0ZXN0cy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpyZWFkQ29sb3JQcm9maWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkpQRUdJbWFnZVJlYWRlcjo6SlBFR0ltYWdlUmVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpQ
RUdJbWFnZVJlYWRlcjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkpQRUdJbWFnZURlY29k
ZXI6Om91dHB1dFNjYW5saW5lcyk6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
anBlZy9KUEVHSW1hZ2VEZWNvZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKUEVHSW1hZ2VEZWNv
ZGVyOjpzZXRDb2xvclByb2ZpbGUpOgorCiAyMDEwLTExLTAyICBOaWtvbGFzIFppbW1lcm1hbm4g
IDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJvYiBCdWlzLgpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29k
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBl
Zy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAkocmV2aXNpb24gNzExMDEpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUxLDcgKzUxLDEzIEBACiAjZW5kaWYKIAogZXh0ZXJuICJDIiB7CisKICNpbmNsdWRl
ICJqcGVnbGliLmgiCisKKyNpZiBVU0UoSUNDSlBFRykKKyNpbmNsdWRlICJpY2NqcGVnLmgiCisj
ZW5kaWYKKwogfQogCiAjaW5jbHVkZSA8c2V0am1wLmg+CkBAIC04Niw2ICs5MiwyNCBAQCBzdHJ1
Y3QgZGVjb2Rlcl9zb3VyY2VfbWdyIHsKICAgICBKUEVHSW1hZ2VSZWFkZXIqIGRlY29kZXI7CiB9
OwogCitzdGF0aWMgQ29sb3JQcm9maWxlIHJlYWRDb2xvclByb2ZpbGUoanBlZ19kZWNvbXByZXNz
X3N0cnVjdCogaW5mbykKK3sKKyNpZiBVU0UoSUNDSlBFRykKKyAgICBKT0NURVQqIHByb2ZpbGU7
CisgICAgdW5zaWduZWQgaW50IHByb2ZpbGVMZW5ndGg7CisKKyAgICBpZiAoIXJlYWRfaWNjX3By
b2ZpbGUoaW5mbywgJnByb2ZpbGUsICZwcm9maWxlTGVuZ3RoKSkKKyAgICAgICAgcmV0dXJuIENv
bG9yUHJvZmlsZSgpOworCisgICAgQ29sb3JQcm9maWxlIGNvbG9yUHJvZmlsZTsKKyAgICBjb2xv
clByb2ZpbGUuYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHByb2ZpbGUpLCBwcm9maWxl
TGVuZ3RoKTsKKyAgICBmcmVlKHByb2ZpbGUpOworICAgIHJldHVybiBjb2xvclByb2ZpbGU7Cisj
ZWxzZQorICAgIHJldHVybiBDb2xvclByb2ZpbGUoKTsKKyNlbmRpZgorfQorCiBjbGFzcyBKUEVH
SW1hZ2VSZWFkZXIKIHsKIHB1YmxpYzoKQEAgLTEyMyw2ICsxNDcsOSBAQCBwdWJsaWM6CiAgICAg
ICAgIHNyYy0+cHViLnJlc3luY190b19yZXN0YXJ0ID0ganBlZ19yZXN5bmNfdG9fcmVzdGFydDsK
ICAgICAgICAgc3JjLT5wdWIudGVybV9zb3VyY2UgPSB0ZXJtX3NvdXJjZTsKICAgICAgICAgc3Jj
LT5kZWNvZGVyID0gdGhpczsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBKUEVHX0FQUDA7
IGkgPCBKUEVHX0NPTTsgKytpKQorICAgICAgICAgICAganBlZ19zYXZlX21hcmtlcnMoJm1faW5m
bywgaSwgMHhGRkZGKTsKICAgICB9CiAKICAgICB+SlBFR0ltYWdlUmVhZGVyKCkKQEAgLTIxMiw2
ICsyMzksOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBpZiAoIW1fZGVjb2Rlci0+c2V0U2l6ZSht
X2luZm8uaW1hZ2Vfd2lkdGgsIG1faW5mby5pbWFnZV9oZWlnaHQpKQogICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorICAgICAgICAgICAgbV9kZWNvZGVyLT5zZXRDb2xvclByb2ZpbGUo
cmVhZENvbG9yUHJvZmlsZShpbmZvKCkpKTsgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICBp
ZiAobV9kZWNvZGluZ1NpemVPbmx5KSB7CiAgICAgICAgICAgICAgICAgLy8gV2UgY2FuIHN0b3Ag
aGVyZS4gIFJlZHVjZSBvdXIgYnVmZmVyIGxlbmd0aCBhbmQgYXZhaWxhYmxlCiAgICAgICAgICAg
ICAgICAgLy8gZGF0YS4KQEAgLTQyMSw2ICs0NTAsNyBAQCBib29sIEpQRUdJbWFnZURlY29kZXI6
Om91dHB1dFNjYW5saW5lcygpCiAgICAgICAgICAgICByZXR1cm4gc2V0RmFpbGVkKCk7CiAgICAg
ICAgIGJ1ZmZlci5zZXRTdGF0dXMoUkdCQTMyQnVmZmVyOjpGcmFtZVBhcnRpYWwpOwogICAgICAg
ICBidWZmZXIuc2V0SGFzQWxwaGEoZmFsc2UpOworICAgICAgICBidWZmZXIuc2V0Q29sb3JQcm9m
aWxlKG1fY29sb3JQcm9maWxlKTsKIAogICAgICAgICAvLyBGb3IgSlBFR3MsIHRoZSBmcmFtZSBh
bHdheXMgZmlsbHMgdGhlIGVudGlyZSBpbWFnZS4KICAgICAgICAgYnVmZmVyLnNldFJlY3QoSW50
UmVjdChJbnRQb2ludCgpLCBzaXplKCkpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuaAkocmV2aXNpb24g
NzExMDEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdl
RGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBvdXRwdXRTY2FubGluZXMoKTsKICAgICAgICAgdm9pZCBqcGVn
Q29tcGxldGUoKTsKIAorICAgICAgICB2b2lkIHNldENvbG9yUHJvZmlsZShjb25zdCBDb2xvclBy
b2ZpbGUmIGNvbG9yUHJvZmlsZSkgeyBtX2NvbG9yUHJvZmlsZSA9IGNvbG9yUHJvZmlsZTsgfQor
CiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gRGVjb2RlcyB0aGUgaW1hZ2UuICBJZiB8b25seVNp
emV8IGlzIHRydWUsIHN0b3BzIGRlY29kaW5nIGFmdGVyCiAgICAgICAgIC8vIGNhbGN1bGF0aW5n
IHRoZSBpbWFnZSBzaXplLiAgSWYgZGVjb2RpbmcgZmFpbHMgYnV0IHRoZXJlIGlzIG5vIG1vcmUK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzExMDMpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMTEtMDIgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBKUEVHIGRlY29kZXJzIHNob3VsZCB1bmRlcnN0YW5kIGNvbG9y
IHByb2ZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00ODgxOQorCisgICAgICAgIEVuYWJsZSBjb2xvciBwcm9maWxlIHN1cHBvcnQgZm9yIEpQRUcu
CisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorCiAyMDEwLTExLTAxICBUb255IENoYW5nICA8
dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vZmVhdHVyZXMuZ3lwaQkocmV2aXNpb24gNzExMDEpCisrKyBXZWJLaXQvY2hyb21p
dW0vZmVhdHVyZXMuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsNyBAQAogICAgICAg
ICAnRU5BQkxFX1hQQVRIPTEnLAogICAgICAgICAnRU5BQkxFX1hTTFQ9MScsCiAgICAgICAgICdX
VEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HPTEnLAorICAgICAgICAnV1RGX1VTRV9JQ0NK
UEVHPTEnLAogICAgICAgICAnV1RGX1VTRV9XRUJQPTEnLAogICAgICAgICAnV1RGX1VTRV9XRUJL
SVRfSU1BR0VfREVDT0RFUlM9MScsCiAgICAgICBdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72640</attachid>
            <date>2010-11-02 02:35:12 -0700</date>
            <delta_ts>2010-11-02 03:00:43 -0700</delta_ts>
            <desc>patch (needs iccjpeg before landing)</desc>
            <filename>bug-48819-20101102023511.patch</filename>
            <type>text/plain</type>
            <size>4653</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTEwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMTEtMDEgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKUEVH
IGRlY29kZXJzIHNob3VsZCB1bmRlcnN0YW5kIGNvbG9yIHByb2ZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODgxOQorCisgICAgICAgIFRoaXMg
aXMgY292ZXJlZCBieSBhbm90aGVyIGluZmluaXRlIHNldCBvZiBwaXhlbCB0ZXN0cy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpyZWFkQ29sb3JQcm9maWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkpQRUdJbWFnZVJlYWRlcjo6SlBFR0ltYWdlUmVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpQ
RUdJbWFnZVJlYWRlcjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkpQRUdJbWFnZURlY29k
ZXI6Om91dHB1dFNjYW5saW5lcyk6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
anBlZy9KUEVHSW1hZ2VEZWNvZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKUEVHSW1hZ2VEZWNv
ZGVyOjpzZXRDb2xvclByb2ZpbGUpOgorCiAyMDEwLTExLTAyICBOaWtvbGFzIFppbW1lcm1hbm4g
IDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJvYiBCdWlzLgpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29k
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBl
Zy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAkocmV2aXNpb24gNzExMDEpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUxLDcgKzUxLDEzIEBACiAjZW5kaWYKIAogZXh0ZXJuICJDIiB7CisKICNpbmNsdWRl
ICJqcGVnbGliLmgiCisKKyNpZiBVU0UoSUNDSlBFRykKKyNpbmNsdWRlICJpY2NqcGVnLmgiCisj
ZW5kaWYKKwogfQogCiAjaW5jbHVkZSA8c2V0am1wLmg+CkBAIC04Niw2ICs5MiwyNCBAQCBzdHJ1
Y3QgZGVjb2Rlcl9zb3VyY2VfbWdyIHsKICAgICBKUEVHSW1hZ2VSZWFkZXIqIGRlY29kZXI7CiB9
OwogCitzdGF0aWMgQ29sb3JQcm9maWxlIHJlYWRDb2xvclByb2ZpbGUoanBlZ19kZWNvbXByZXNz
X3N0cnVjdCogaW5mbykKK3sKKyNpZiBVU0UoSUNDSlBFRykKKyAgICBKT0NURVQqIHByb2ZpbGU7
CisgICAgdW5zaWduZWQgaW50IHByb2ZpbGVMZW5ndGg7CisKKyAgICBpZiAoIXJlYWRfaWNjX3By
b2ZpbGUoaW5mbywgJnByb2ZpbGUsICZwcm9maWxlTGVuZ3RoKSkKKyAgICAgICAgcmV0dXJuIENv
bG9yUHJvZmlsZSgpOworCisgICAgQ29sb3JQcm9maWxlIGNvbG9yUHJvZmlsZTsKKyAgICBjb2xv
clByb2ZpbGUuYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHByb2ZpbGUpLCBwcm9maWxl
TGVuZ3RoKTsKKyAgICBmcmVlKHByb2ZpbGUpOworICAgIHJldHVybiBjb2xvclByb2ZpbGU7Cisj
ZWxzZQorICAgIHJldHVybiBDb2xvclByb2ZpbGUoKTsKKyNlbmRpZgorfQorCiBjbGFzcyBKUEVH
SW1hZ2VSZWFkZXIKIHsKIHB1YmxpYzoKQEAgLTEyMyw2ICsxNDcsMTAgQEAgcHVibGljOgogICAg
ICAgICBzcmMtPnB1Yi5yZXN5bmNfdG9fcmVzdGFydCA9IGpwZWdfcmVzeW5jX3RvX3Jlc3RhcnQ7
CiAgICAgICAgIHNyYy0+cHViLnRlcm1fc291cmNlID0gdGVybV9zb3VyY2U7CiAgICAgICAgIHNy
Yy0+ZGVjb2RlciA9IHRoaXM7CisKKyAgICAgICAgLy8gRW5hYmxlIHRoZXNlIG1hcmtlcnMgZm9y
IHRoZSBJQ0MgY29sb3IgcHJvZmlsZS4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gSlBFR19B
UFAwOyBpIDwgSlBFR19DT007ICsraSkKKyAgICAgICAgICAgIGpwZWdfc2F2ZV9tYXJrZXJzKCZt
X2luZm8sIGksIDB4RkZGRik7CiAgICAgfQogCiAgICAgfkpQRUdJbWFnZVJlYWRlcigpCkBAIC0y
MTIsNiArMjQwLDggQEAgcHVibGljOgogICAgICAgICAgICAgaWYgKCFtX2RlY29kZXItPnNldFNp
emUobV9pbmZvLmltYWdlX3dpZHRoLCBtX2luZm8uaW1hZ2VfaGVpZ2h0KSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAgICAgICAgIG1fZGVjb2Rlci0+c2V0Q29sb3JQcm9m
aWxlKHJlYWRDb2xvclByb2ZpbGUoaW5mbygpKSk7ICAgICAgICAgICAgICAKKwogICAgICAgICAg
ICAgaWYgKG1fZGVjb2RpbmdTaXplT25seSkgewogICAgICAgICAgICAgICAgIC8vIFdlIGNhbiBz
dG9wIGhlcmUuICBSZWR1Y2Ugb3VyIGJ1ZmZlciBsZW5ndGggYW5kIGF2YWlsYWJsZQogICAgICAg
ICAgICAgICAgIC8vIGRhdGEuCkBAIC00MjEsNiArNDUxLDcgQEAgYm9vbCBKUEVHSW1hZ2VEZWNv
ZGVyOjpvdXRwdXRTY2FubGluZXMoKQogICAgICAgICAgICAgcmV0dXJuIHNldEZhaWxlZCgpOwog
ICAgICAgICBidWZmZXIuc2V0U3RhdHVzKFJHQkEzMkJ1ZmZlcjo6RnJhbWVQYXJ0aWFsKTsKICAg
ICAgICAgYnVmZmVyLnNldEhhc0FscGhhKGZhbHNlKTsKKyAgICAgICAgYnVmZmVyLnNldENvbG9y
UHJvZmlsZShtX2NvbG9yUHJvZmlsZSk7CiAKICAgICAgICAgLy8gRm9yIEpQRUdzLCB0aGUgZnJh
bWUgYWx3YXlzIGZpbGxzIHRoZSBlbnRpcmUgaW1hZ2UuCiAgICAgICAgIGJ1ZmZlci5zZXRSZWN0
KEludFJlY3QoSW50UG9pbnQoKSwgc2l6ZSgpKSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmgJKHJldmlz
aW9uIDcxMTAxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGJvb2wgb3V0cHV0U2NhbmxpbmVzKCk7CiAgICAgICAgIHZvaWQg
anBlZ0NvbXBsZXRlKCk7CiAKKyAgICAgICAgdm9pZCBzZXRDb2xvclByb2ZpbGUoY29uc3QgQ29s
b3JQcm9maWxlJiBjb2xvclByb2ZpbGUpIHsgbV9jb2xvclByb2ZpbGUgPSBjb2xvclByb2ZpbGU7
IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIERlY29kZXMgdGhlIGltYWdlLiAgSWYgfG9u
bHlTaXplfCBpcyB0cnVlLCBzdG9wcyBkZWNvZGluZyBhZnRlcgogICAgICAgICAvLyBjYWxjdWxh
dGluZyB0aGUgaW1hZ2Ugc2l6ZS4gIElmIGRlY29kaW5nIGZhaWxzIGJ1dCB0aGVyZSBpcyBubyBt
b3JlCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxMTAzKQorKysgV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEwLTExLTAyICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSlBFRyBkZWNvZGVycyBzaG91bGQgdW5kZXJzdGFuZCBj
b2xvciBwcm9maWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDg4MTkKKworICAgICAgICBFbmFibGUgY29sb3IgcHJvZmlsZSBzdXBwb3J0IGZvciBK
UEVHLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMC0xMS0wMSAgVG9ueSBDaGFu
ZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJh
LgpJbmRleDogV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkJKHJldmlzaW9uIDcxMTAxKQorKysgV2ViS2l0L2No
cm9taXVtL2ZlYXR1cmVzLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3LDcgQEAKICAg
ICAgICAgJ0VOQUJMRV9YUEFUSD0xJywKICAgICAgICAgJ0VOQUJMRV9YU0xUPTEnLAogICAgICAg
ICAnV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORz0xJywKKyAgICAgICAgJ1dURl9VU0Vf
SUNDSlBFRz0xJywKICAgICAgICAgJ1dURl9VU0VfV0VCUD0xJywKICAgICAgICAgJ1dURl9VU0Vf
V0VCS0lUX0lNQUdFX0RFQ09ERVJTPTEnLAogICAgICAgXSwK
</data>
<flag name="review"
          id="62930"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>