<?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>77609</bug_id>
          
          <creation_ts>2012-02-01 23:22:08 -0800</creation_ts>
          <short_desc>AudioBus need to support stereo-&gt;mono down mix in copyFrom sumFrom etc.</short_desc>
          <delta_ts>2012-02-06 15:00:54 -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>Web Audio</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Raymond">rgbbones</reporter>
          <assigned_to name="Wei James (wistoch)">james.wei</assigned_to>
          <cc>crogers</cc>
    
    <cc>james.wei</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547675</commentid>
    <comment_count>0</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2012-02-01 23:22:08 -0800</bug_when>
    <thetext>Hi

Usually this is not a big issue. But in the situation that :

A OfflineContext with mono channel buffer is connected to a RealtimeAnalyserNode, things go bad. Since RealtimeAnalyserNode is hardcoded to stereo, in the debug mode, this will lead to crash by ASSERT in AudioBuscopyFrom. And the best case is in release mode, it just return, thus no music is outputed. And this could also happen for other nodes if source and destination&apos;s channels not match.

But in this very case, the user might never know what is going on, for even the source buffer is mono, offlineContext buffer is mono, it still go wrong, he will never know that realtimeAnalyserNode rune everything.

I think the solution is :

1. make RealtimeAnalyserNode more clever and can adjust its output channel to suit for input channel
2. support down mix in audioBus

2 is a must. while 1 might be a addon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547682</commentid>
    <comment_count>1</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2012-02-01 23:30:06 -0800</bug_when>
    <thetext>a crash example can be found at :
https://bugs.webkit.org/show_bug.cgi?id=77515#c3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547704</commentid>
    <comment_count>2</comment_count>
      <attachid>125088</attachid>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-02-02 00:13:21 -0800</bug_when>
    <thetext>Created attachment 125088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548028</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-02 11:49:00 -0800</bug_when>
    <thetext>Thanks James, the changes look good.  Could you please write a very simple layout test which demonstrates that the ASSERT no longer happens?  I think it could be a very simple test with a mono OfflineAudioContext and a RealtimeAnalyserNode (or DynamicsCompressorNode also I think could work) as Raymond describes in his initial comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548490</commentid>
    <comment_count>4</comment_count>
      <attachid>125271</attachid>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-02-02 23:23:06 -0800</bug_when>
    <thetext>Created attachment 125271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548491</commentid>
    <comment_count>5</comment_count>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-02-02 23:24:49 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Thanks James, the changes look good.  Could you please write a very simple layout test which demonstrates that the ASSERT no longer happens?  I think it could be a very simple test with a mono OfflineAudioContext and a RealtimeAnalyserNode (or DynamicsCompressorNode also I think could work) as Raymond describes in his initial comment.

chris, patch update including a layout test. please review. thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548544</commentid>
    <comment_count>6</comment_count>
      <attachid>125281</attachid>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-02-03 00:57:52 -0800</bug_when>
    <thetext>Created attachment 125281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548835</commentid>
    <comment_count>7</comment_count>
      <attachid>125281</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-03 10:37:47 -0800</bug_when>
    <thetext>Comment on attachment 125281
Patch

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

Looks good, if you add a few minor explanatory comments:

&gt; LayoutTests/webaudio/stereo2mono-down-mixing.html:53
&gt; +    context = new webkitAudioContext(1, sampleRate * renderLengthSeconds, sampleRate);

could add comment:

// Explicitly create a mono AudioContext so that the destination is mono.

&gt; LayoutTests/webaudio/stereo2mono-down-mixing.html:58
&gt; +

could add comment:

// We create an analyser here, because it has a hard-coded stereo output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549325</commentid>
    <comment_count>8</comment_count>
      <attachid>125467</attachid>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-02-03 19:29:36 -0800</bug_when>
    <thetext>Created attachment 125467
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549328</commentid>
    <comment_count>9</comment_count>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-02-03 19:31:32 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 125281 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125281&amp;action=review
&gt; 
&gt; Looks good, if you add a few minor explanatory comments:
&gt; 
&gt; &gt; LayoutTests/webaudio/stereo2mono-down-mixing.html:53
&gt; &gt; +    context = new webkitAudioContext(1, sampleRate * renderLengthSeconds, sampleRate);
&gt; 
&gt; could add comment:
&gt; 
&gt; // Explicitly create a mono AudioContext so that the destination is mono.
&gt; 
&gt; &gt; LayoutTests/webaudio/stereo2mono-down-mixing.html:58
&gt; &gt; +
&gt; 
&gt; could add comment:
&gt; 
&gt; // We create an analyser here, because it has a hard-coded stereo output.

thanks. patch updated to including the comments. thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549342</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-03 20:14:01 -0800</bug_when>
    <thetext>Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550242</commentid>
    <comment_count>11</comment_count>
      <attachid>125467</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-02-06 13:25:42 -0800</bug_when>
    <thetext>Comment on attachment 125467
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550320</commentid>
    <comment_count>12</comment_count>
      <attachid>125467</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 15:00:47 -0800</bug_when>
    <thetext>Comment on attachment 125467
Patch

Clearing flags on attachment: 125467

Committed r106858: &lt;http://trac.webkit.org/changeset/106858&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550322</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 15:00:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125088</attachid>
            <date>2012-02-02 00:13:21 -0800</date>
            <delta_ts>2012-02-02 23:23:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77609-20120202161414.patch</filename>
            <type>text/plain</type>
            <size>4955</size>
            <attacher name="Wei James (wistoch)">james.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFiZWExNGVhYzFkYTcz
MTcwNmU3ZmFmNzEwMjE2MjIzZTQ2ZjhmMi4uNGM2MjczNmVmODZiM2FmNjM2M2M0NTAzNmQwNzM3
MzRlYjBhNzI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTAyICBXZWkg
SmFtZXMgIDxqYW1lcy53ZWlAaW50ZWwuY29tPgorCisgICAgICAgIEF1ZGlvQnVzIG5lZWQgdG8g
c3VwcG9ydCBzdGVyZW8tPm1vbm8gZG93biBtaXggaW4gY29weUZyb20gc3VtRnJvbSBldGMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYwOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vQXVkaW9CdXMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0J1czo6Y29weUZyb20pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OnN1bUZy
b20pOgorCiAyMDEyLTAyLTAxICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlv
Lm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgQXZvaWQgY3JlYXRpbmcgTmFtZWRO
b2RlTWFwIHVubmVjZXNzYXJpbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvQnVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
QnVzLmNwcAppbmRleCBlZWExOTE5NjE4NTMwNzczZGZjMDgxZjRkNDBiYWE3MDdlMzc3MDgyLi5k
NmFhMzUwMDJkMjcwYzU4YmI1ODE3NmJlZjAyOTYzNTE4NjFiYTBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCkBAIC0xOTYsMjEgKzE5NiwzNSBAQCB2b2lk
IEF1ZGlvQnVzOjpzY2FsZShmbG9hdCBzY2FsZSkKIAogLy8gSnVzdCBjb3BpZXMgdGhlIHNhbXBs
ZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0byB0aGlzIG9uZS4KIC8vIFRoaXMgaXMganVzdCBhIHNp
bXBsZSBjb3B5IGlmIHRoZSBudW1iZXIgb2YgY2hhbm5lbHMgbWF0Y2gsIG90aGVyd2lzZSBhIG1p
eHVwIG9yIG1peGRvd24gaXMgZG9uZS4KLS8vIEZvciBub3csIHdlIGp1c3Qgc3VwcG9ydCBhIG1p
eHVwIGZyb20gbW9ubyAtPiBzdGVyZW8uCisvLyBGb3Igbm93LCB3ZSBqdXN0IHN1cHBvcnQgbWl4
dXAgZnJvbSBtb25vIC0+IHN0ZXJlbyBhbmQgbWl4ZG93biBmcm9tIHN0ZXJlbyAtPiBtb25vLgog
dm9pZCBBdWRpb0J1czo6Y29weUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cykKIHsKICAg
ICBpZiAoJnNvdXJjZUJ1cyA9PSB0aGlzKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobnVt
YmVyT2ZDaGFubmVscygpID09IHNvdXJjZUJ1cy5udW1iZXJPZkNoYW5uZWxzKCkpIHsKLSAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHMoKTsgKytpKQorICAg
IHVuc2lnbmVkIG51bWJlck9mU291cmNlQ2hhbm5lbHMgPSBzb3VyY2VCdXMubnVtYmVyT2ZDaGFu
bmVscygpOworICAgIHVuc2lnbmVkIG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA9IG51bWJl
ck9mQ2hhbm5lbHMoKTsKKworICAgIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0g
bnVtYmVyT2ZTb3VyY2VDaGFubmVscykgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbnVtYmVyT2ZTb3VyY2VDaGFubmVsczsgKytpKQogICAgICAgICAgICAgY2hhbm5lbChpKS0+
Y29weUZyb20oc291cmNlQnVzLmNoYW5uZWwoaSkpOwotICAgIH0gZWxzZSBpZiAobnVtYmVyT2ZD
aGFubmVscygpID09IDIgJiYgc291cmNlQnVzLm51bWJlck9mQ2hhbm5lbHMoKSA9PSAxKSB7Cisg
ICAgfSBlbHNlIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gMiAmJiBudW1iZXJP
ZlNvdXJjZUNoYW5uZWxzID09IDEpIHsKICAgICAgICAgLy8gSGFuZGxlIG1vbm8gLT4gc3RlcmVv
IGNhc2UgKGZvciBub3cgc2ltcGx5IGNvcHkgbW9ubyBjaGFubmVsIGludG8gYm90aCBsZWZ0IGFu
ZCByaWdodCkKICAgICAgICAgLy8gRklYTUU6IFJlYWxseSB3ZSBzaG91bGQgYXBwbHkgYW4gZXF1
YWwtcG93ZXIgc2NhbGluZyBmYWN0b3IgaGVyZSwgc2luY2Ugd2UncmUgZWZmZWN0aXZlbHkgcGFu
bmluZyBjZW50ZXIuLi4KICAgICAgICAgY29uc3QgQXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVs
ID0gc291cmNlQnVzLmNoYW5uZWwoMCk7CiAgICAgICAgIGNoYW5uZWwoMCktPmNvcHlGcm9tKHNv
dXJjZUNoYW5uZWwpOwogICAgICAgICBjaGFubmVsKDEpLT5jb3B5RnJvbShzb3VyY2VDaGFubmVs
KTsKKyAgICB9IGVsc2UgaWYgKG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA9PSAxICYmIG51
bWJlck9mU291cmNlQ2hhbm5lbHMgPT0gMikgeworICAgICAgICAvLyBIYW5kbGUgc3RlcmVvIC0+
IG1vbm8gY2FzZS4gb3V0cHV0ID0gMC41ICogKGlucHV0LkwgKyBpbnB1dC5SKS4KKyAgICAgICAg
QXVkaW9CdXMmIHNvdXJjZUJ1c1NhZmUgPSBjb25zdF9jYXN0PEF1ZGlvQnVzJj4oc291cmNlQnVz
KTsKKworICAgICAgICBjb25zdCBmbG9hdCogc291cmNlTCA9IHNvdXJjZUJ1c1NhZmUuY2hhbm5l
bEJ5VHlwZShDaGFubmVsTGVmdCktPmRhdGEoKTsKKyAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJj
ZVIgPSBzb3VyY2VCdXNTYWZlLmNoYW5uZWxCeVR5cGUoQ2hhbm5lbFJpZ2h0KS0+ZGF0YSgpOwor
CisgICAgICAgIGZsb2F0KiBkZXN0aW5hdGlvbiA9IGNoYW5uZWxCeVR5cGUoQ2hhbm5lbExlZnQp
LT5tdXRhYmxlRGF0YSgpOworICAgICAgICB2YWRkKHNvdXJjZUwsIDEsIHNvdXJjZVIsIDEsIGRl
c3RpbmF0aW9uLCAxLCBsZW5ndGgoKSk7CisgICAgICAgIGZsb2F0IHNjYWxlID0gMC41OworICAg
ICAgICB2c211bChkZXN0aW5hdGlvbiwgMSwgJnNjYWxlLCBkZXN0aW5hdGlvbiwgMSwgbGVuZ3Ro
KCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENhc2Ugbm90IGhhbmRsZWQKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yMTksMTUgKzIzMywyOSBAQCB2b2lkIEF1ZGlvQnVz
Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzKQogCiB2b2lkIEF1ZGlvQnVzOjpz
dW1Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMpCiB7Ci0gICAgaWYgKG51bWJlck9mQ2hh
bm5lbHMoKSA9PSBzb3VyY2VCdXMubnVtYmVyT2ZDaGFubmVscygpKSB7CisgICAgdW5zaWduZWQg
bnVtYmVyT2ZTb3VyY2VDaGFubmVscyA9IHNvdXJjZUJ1cy5udW1iZXJPZkNoYW5uZWxzKCk7Cisg
ICAgdW5zaWduZWQgbnVtYmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzID0gbnVtYmVyT2ZDaGFubmVs
cygpOworCisgICAgaWYgKG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA9PSBudW1iZXJPZlNv
dXJjZUNoYW5uZWxzKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJP
ZkNoYW5uZWxzKCk7ICsraSkKICAgICAgICAgICAgIGNoYW5uZWwoaSktPnN1bUZyb20oc291cmNl
QnVzLmNoYW5uZWwoaSkpOwotICAgIH0gZWxzZSBpZiAobnVtYmVyT2ZDaGFubmVscygpID09IDIg
JiYgc291cmNlQnVzLm51bWJlck9mQ2hhbm5lbHMoKSA9PSAxKSB7CisgICAgfSBlbHNlIGlmIChu
dW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gMiAmJiBudW1iZXJPZlNvdXJjZUNoYW5uZWxz
ID09IDEpIHsKICAgICAgICAgLy8gSGFuZGxlIG1vbm8gLT4gc3RlcmVvIGNhc2UgKGZvciBub3cg
c2ltcGx5IHN1bSBtb25vIGNoYW5uZWwgaW50byBib3RoIGxlZnQgYW5kIHJpZ2h0KQogICAgICAg
ICAvLyBGSVhNRTogUmVhbGx5IHdlIHNob3VsZCBhcHBseSBhbiBlcXVhbC1wb3dlciBzY2FsaW5n
IGZhY3RvciBoZXJlLCBzaW5jZSB3ZSdyZSBlZmZlY3RpdmVseSBwYW5uaW5nIGNlbnRlci4uLgog
ICAgICAgICBjb25zdCBBdWRpb0NoYW5uZWwqIHNvdXJjZUNoYW5uZWwgPSBzb3VyY2VCdXMuY2hh
bm5lbCgwKTsKICAgICAgICAgY2hhbm5lbCgwKS0+c3VtRnJvbShzb3VyY2VDaGFubmVsKTsKICAg
ICAgICAgY2hhbm5lbCgxKS0+c3VtRnJvbShzb3VyY2VDaGFubmVsKTsKKyAgICB9IGVsc2UgaWYg
KG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA9PSAxICYmIG51bWJlck9mU291cmNlQ2hhbm5l
bHMgPT0gMikgeworICAgICAgICAvLyBIYW5kbGUgc3RlcmVvIC0+IG1vbm8gY2FzZS4gb3V0cHV0
ICs9IDAuNSAqIChpbnB1dC5MICsgaW5wdXQuUikuCisgICAgICAgIEF1ZGlvQnVzJiBzb3VyY2VC
dXNTYWZlID0gY29uc3RfY2FzdDxBdWRpb0J1cyY+KHNvdXJjZUJ1cyk7CisKKyAgICAgICAgY29u
c3QgZmxvYXQqIHNvdXJjZUwgPSBzb3VyY2VCdXNTYWZlLmNoYW5uZWxCeVR5cGUoQ2hhbm5lbExl
ZnQpLT5kYXRhKCk7CisgICAgICAgIGNvbnN0IGZsb2F0KiBzb3VyY2VSID0gc291cmNlQnVzU2Fm
ZS5jaGFubmVsQnlUeXBlKENoYW5uZWxSaWdodCktPmRhdGEoKTsKKworICAgICAgICBmbG9hdCog
ZGVzdGluYXRpb24gPSBjaGFubmVsQnlUeXBlKENoYW5uZWxMZWZ0KS0+bXV0YWJsZURhdGEoKTsK
KyAgICAgICAgZmxvYXQgc2NhbGUgPSAwLjU7CisgICAgICAgIHZzbWEoc291cmNlTCwgMSwgJnNj
YWxlLCBkZXN0aW5hdGlvbiwgMSwgbGVuZ3RoKCkpOworICAgICAgICB2c21hKHNvdXJjZVIsIDEs
ICZzY2FsZSwgZGVzdGluYXRpb24sIDEsIGxlbmd0aCgpKTsKICAgICB9IGVsc2UgewogICAgICAg
ICAvLyBDYXNlIG5vdCBoYW5kbGVkCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125271</attachid>
            <date>2012-02-02 23:23:06 -0800</date>
            <delta_ts>2012-02-03 00:57:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77609-20120203152400.patch</filename>
            <type>text/plain</type>
            <size>7824</size>
            <attacher name="Wei James (wistoch)">james.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFiZWExNGVhYzFkYTcz
MTcwNmU3ZmFmNzEwMjE2MjIzZTQ2ZjhmMi4uMGUwNzhkYThmNjQ1YzM4NDAwZDU2YmJlNzhkNTcz
YmU0ZWQ1MzZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTAyICBXZWkg
SmFtZXMgIDxqYW1lcy53ZWlAaW50ZWwuY29tPgorCisgICAgICAgIEF1ZGlvQnVzIG5lZWQgdG8g
c3VwcG9ydCBzdGVyZW8tPm1vbm8gZG93biBtaXggaW4gY29weUZyb20gc3VtRnJvbSBldGMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYwOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHdlYmF1
ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvQnVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdXM6OmNvcHlGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpzdW1Gcm9t
KToKKwogMjAxMi0wMi0wMSAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5v
bGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIEF2b2lkIGNyZWF0aW5nIE5hbWVkTm9k
ZU1hcCB1bm5lY2Vzc2FyaWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb0J1cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1
cy5jcHAKaW5kZXggZWVhMTkxOTYxODUzMDc3M2RmYzA4MWY0ZDQwYmFhNzA3ZTM3NzA4Mi4uZDZh
YTM1MDAyZDI3MGM1OGJiNTgxNzZiZWYwMjk2MzUxODYxYmEwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcApAQCAtMTk2LDIxICsxOTYsMzUgQEAgdm9pZCBB
dWRpb0J1czo6c2NhbGUoZmxvYXQgc2NhbGUpCiAKIC8vIEp1c3QgY29waWVzIHRoZSBzYW1wbGVz
IGZyb20gdGhlIHNvdXJjZSBidXMgdG8gdGhpcyBvbmUuCiAvLyBUaGlzIGlzIGp1c3QgYSBzaW1w
bGUgY29weSBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYSBtaXh1
cCBvciBtaXhkb3duIGlzIGRvbmUuCi0vLyBGb3Igbm93LCB3ZSBqdXN0IHN1cHBvcnQgYSBtaXh1
cCBmcm9tIG1vbm8gLT4gc3RlcmVvLgorLy8gRm9yIG5vdywgd2UganVzdCBzdXBwb3J0IG1peHVw
IGZyb20gbW9ubyAtPiBzdGVyZW8gYW5kIG1peGRvd24gZnJvbSBzdGVyZW8gLT4gbW9uby4KIHZv
aWQgQXVkaW9CdXM6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMpCiB7CiAgICAg
aWYgKCZzb3VyY2VCdXMgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG51bWJl
ck9mQ2hhbm5lbHMoKSA9PSBzb3VyY2VCdXMubnVtYmVyT2ZDaGFubmVscygpKSB7Ci0gICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkNoYW5uZWxzKCk7ICsraSkKKyAgICB1
bnNpZ25lZCBudW1iZXJPZlNvdXJjZUNoYW5uZWxzID0gc291cmNlQnVzLm51bWJlck9mQ2hhbm5l
bHMoKTsKKyAgICB1bnNpZ25lZCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPSBudW1iZXJP
ZkNoYW5uZWxzKCk7CisKKyAgICBpZiAobnVtYmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzID09IG51
bWJlck9mU291cmNlQ2hhbm5lbHMpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG51bWJlck9mU291cmNlQ2hhbm5lbHM7ICsraSkKICAgICAgICAgICAgIGNoYW5uZWwoaSktPmNv
cHlGcm9tKHNvdXJjZUJ1cy5jaGFubmVsKGkpKTsKLSAgICB9IGVsc2UgaWYgKG51bWJlck9mQ2hh
bm5lbHMoKSA9PSAyICYmIHNvdXJjZUJ1cy5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMSkgeworICAg
IH0gZWxzZSBpZiAobnVtYmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzID09IDIgJiYgbnVtYmVyT2ZT
b3VyY2VDaGFubmVscyA9PSAxKSB7CiAgICAgICAgIC8vIEhhbmRsZSBtb25vIC0+IHN0ZXJlbyBj
YXNlIChmb3Igbm93IHNpbXBseSBjb3B5IG1vbm8gY2hhbm5lbCBpbnRvIGJvdGggbGVmdCBhbmQg
cmlnaHQpCiAgICAgICAgIC8vIEZJWE1FOiBSZWFsbHkgd2Ugc2hvdWxkIGFwcGx5IGFuIGVxdWFs
LXBvd2VyIHNjYWxpbmcgZmFjdG9yIGhlcmUsIHNpbmNlIHdlJ3JlIGVmZmVjdGl2ZWx5IHBhbm5p
bmcgY2VudGVyLi4uCiAgICAgICAgIGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCA9
IHNvdXJjZUJ1cy5jaGFubmVsKDApOwogICAgICAgICBjaGFubmVsKDApLT5jb3B5RnJvbShzb3Vy
Y2VDaGFubmVsKTsKICAgICAgICAgY2hhbm5lbCgxKS0+Y29weUZyb20oc291cmNlQ2hhbm5lbCk7
CisgICAgfSBlbHNlIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gMSAmJiBudW1i
ZXJPZlNvdXJjZUNoYW5uZWxzID09IDIpIHsKKyAgICAgICAgLy8gSGFuZGxlIHN0ZXJlbyAtPiBt
b25vIGNhc2UuIG91dHB1dCA9IDAuNSAqIChpbnB1dC5MICsgaW5wdXQuUikuCisgICAgICAgIEF1
ZGlvQnVzJiBzb3VyY2VCdXNTYWZlID0gY29uc3RfY2FzdDxBdWRpb0J1cyY+KHNvdXJjZUJ1cyk7
CisKKyAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJjZUwgPSBzb3VyY2VCdXNTYWZlLmNoYW5uZWxC
eVR5cGUoQ2hhbm5lbExlZnQpLT5kYXRhKCk7CisgICAgICAgIGNvbnN0IGZsb2F0KiBzb3VyY2VS
ID0gc291cmNlQnVzU2FmZS5jaGFubmVsQnlUeXBlKENoYW5uZWxSaWdodCktPmRhdGEoKTsKKwor
ICAgICAgICBmbG9hdCogZGVzdGluYXRpb24gPSBjaGFubmVsQnlUeXBlKENoYW5uZWxMZWZ0KS0+
bXV0YWJsZURhdGEoKTsKKyAgICAgICAgdmFkZChzb3VyY2VMLCAxLCBzb3VyY2VSLCAxLCBkZXN0
aW5hdGlvbiwgMSwgbGVuZ3RoKCkpOworICAgICAgICBmbG9hdCBzY2FsZSA9IDAuNTsKKyAgICAg
ICAgdnNtdWwoZGVzdGluYXRpb24sIDEsICZzY2FsZSwgZGVzdGluYXRpb24sIDEsIGxlbmd0aCgp
KTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBDYXNlIG5vdCBoYW5kbGVkCiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjE5LDE1ICsyMzMsMjkgQEAgdm9pZCBBdWRpb0J1czo6
Y29weUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cykKIAogdm9pZCBBdWRpb0J1czo6c3Vt
RnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzKQogewotICAgIGlmIChudW1iZXJPZkNoYW5u
ZWxzKCkgPT0gc291cmNlQnVzLm51bWJlck9mQ2hhbm5lbHMoKSkgeworICAgIHVuc2lnbmVkIG51
bWJlck9mU291cmNlQ2hhbm5lbHMgPSBzb3VyY2VCdXMubnVtYmVyT2ZDaGFubmVscygpOworICAg
IHVuc2lnbmVkIG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHMo
KTsKKworICAgIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gbnVtYmVyT2ZTb3Vy
Y2VDaGFubmVscykgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZD
aGFubmVscygpOyArK2kpCiAgICAgICAgICAgICBjaGFubmVsKGkpLT5zdW1Gcm9tKHNvdXJjZUJ1
cy5jaGFubmVsKGkpKTsKLSAgICB9IGVsc2UgaWYgKG51bWJlck9mQ2hhbm5lbHMoKSA9PSAyICYm
IHNvdXJjZUJ1cy5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMSkgeworICAgIH0gZWxzZSBpZiAobnVt
YmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzID09IDIgJiYgbnVtYmVyT2ZTb3VyY2VDaGFubmVscyA9
PSAxKSB7CiAgICAgICAgIC8vIEhhbmRsZSBtb25vIC0+IHN0ZXJlbyBjYXNlIChmb3Igbm93IHNp
bXBseSBzdW0gbW9ubyBjaGFubmVsIGludG8gYm90aCBsZWZ0IGFuZCByaWdodCkKICAgICAgICAg
Ly8gRklYTUU6IFJlYWxseSB3ZSBzaG91bGQgYXBwbHkgYW4gZXF1YWwtcG93ZXIgc2NhbGluZyBm
YWN0b3IgaGVyZSwgc2luY2Ugd2UncmUgZWZmZWN0aXZlbHkgcGFubmluZyBjZW50ZXIuLi4KICAg
ICAgICAgY29uc3QgQXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVsID0gc291cmNlQnVzLmNoYW5u
ZWwoMCk7CiAgICAgICAgIGNoYW5uZWwoMCktPnN1bUZyb20oc291cmNlQ2hhbm5lbCk7CiAgICAg
ICAgIGNoYW5uZWwoMSktPnN1bUZyb20oc291cmNlQ2hhbm5lbCk7CisgICAgfSBlbHNlIGlmIChu
dW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gMSAmJiBudW1iZXJPZlNvdXJjZUNoYW5uZWxz
ID09IDIpIHsKKyAgICAgICAgLy8gSGFuZGxlIHN0ZXJlbyAtPiBtb25vIGNhc2UuIG91dHB1dCAr
PSAwLjUgKiAoaW5wdXQuTCArIGlucHV0LlIpLgorICAgICAgICBBdWRpb0J1cyYgc291cmNlQnVz
U2FmZSA9IGNvbnN0X2Nhc3Q8QXVkaW9CdXMmPihzb3VyY2VCdXMpOworCisgICAgICAgIGNvbnN0
IGZsb2F0KiBzb3VyY2VMID0gc291cmNlQnVzU2FmZS5jaGFubmVsQnlUeXBlKENoYW5uZWxMZWZ0
KS0+ZGF0YSgpOworICAgICAgICBjb25zdCBmbG9hdCogc291cmNlUiA9IHNvdXJjZUJ1c1NhZmUu
Y2hhbm5lbEJ5VHlwZShDaGFubmVsUmlnaHQpLT5kYXRhKCk7CisKKyAgICAgICAgZmxvYXQqIGRl
c3RpbmF0aW9uID0gY2hhbm5lbEJ5VHlwZShDaGFubmVsTGVmdCktPm11dGFibGVEYXRhKCk7Cisg
ICAgICAgIGZsb2F0IHNjYWxlID0gMC41OworICAgICAgICB2c21hKHNvdXJjZUwsIDEsICZzY2Fs
ZSwgZGVzdGluYXRpb24sIDEsIGxlbmd0aCgpKTsKKyAgICAgICAgdnNtYShzb3VyY2VSLCAxLCAm
c2NhbGUsIGRlc3RpbmF0aW9uLCAxLCBsZW5ndGgoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
Ly8gQ2FzZSBub3QgaGFuZGxlZAogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmIyOGNjYjVkZTRhNGY2OGJjZjEwZWQ1M2MyMzY0Mzlk
NWI2Nzg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1v
bm8tZG93bi1taXhpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGhpcyB0ZXN0IHZl
cmlmaWVzIHdoZXRoZXIgZG93biBtaXhpbmcgZnJvbSBzdGVyZW8gdG8gbW9ubyB3aWxsIGNhdXNl
IGFzc2VydGlvbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIFRl
c3Qgbm8gQVNTRVJUIGVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJt
b25vLWRvd24tbWl4aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1k
b3duLW1peGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2Zjg3ZGEwOTE1ZDlmMDlmYjRmZWZhOGI0NDZm
YzA4YTUzM2E4N2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVy
ZW8ybW9uby1kb3duLW1peGluZy5odG1sCkBAIC0wLDAgKzEsODkgQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisKKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB3aGV0aGVyIGRvd24gbWl4aW5nIGZyb20g
c3RlcmVvIHRvIG1vbm8gd2lsbCBjYXVzZSBhc3NlcnRpb24gZXJyb3IuIik7CisKK3ZhciBzYW1w
bGVSYXRlID0gNDQxMDAuMDsKK3ZhciByZW5kZXJMZW5ndGhTZWNvbmRzID0gMC4xOwordmFyIGZm
dFNpemUgPSAzMjsKKwordmFyIGNvbnRleHQ7Cit2YXIgdG9uZUJ1ZmZlcjsKK3ZhciBidWZmZXJT
b3VyY2U7Cit2YXIgYW5hbHlzZXI7CisKK2Z1bmN0aW9uIGNyZWF0ZURhdGFCdWZmZXIoY29udGV4
dCwgbGVuZ3RoSW5TZWNvbmRzKSB7CisgICAgdmFyIGF1ZGlvQnVmZmVyID0gY29udGV4dC5jcmVh
dGVCdWZmZXIoMSwgbGVuZ3RoSW5TZWNvbmRzICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisK
KyAgICB2YXIgbiA9IGF1ZGlvQnVmZmVyLmxlbmd0aDsKKyAgICB2YXIgZGF0YSA9IGF1ZGlvQnVm
ZmVyLmdldENoYW5uZWxEYXRhKDApOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kp
IHsKKyAgICAgICAgZGF0YVtpXSA9IDEuMDsKKyAgICB9CisKKyAgICByZXR1cm4gYXVkaW9CdWZm
ZXI7Cit9CisKK2Z1bmN0aW9uIGNvbnN0cnVjdENvbW1vbkdyYXBoKCkgeworICAgIC8vIENyZWF0
ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0Nv
bnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwor
ICAgIHRvbmVCdWZmZXIgPSBjcmVhdGVEYXRhQnVmZmVyKGNvbnRleHQsIHJlbmRlckxlbmd0aFNl
Y29uZHMpOworCisgICAgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2Uo
KTsKKyAgICBidWZmZXJTb3VyY2UuYnVmZmVyID0gdG9uZUJ1ZmZlcjsKKworICAgIGFuYWx5c2Vy
ID0gY29udGV4dC5jcmVhdGVBbmFseXNlcigpOworICAgIGFuYWx5c2VyLmZmdFNpemUgPSBmZnRT
aXplOworCisgICAgYnVmZmVyU291cmNlLmNvbm5lY3QoYW5hbHlzZXIpOworfQorCitmdW5jdGlv
biB0ZXN0RmluaXNoZWQoKSB7CisgICAgdGVzdFBhc3NlZCgiVGVzdCBubyBBU1NFUlQgZXJyb3Iu
Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKKworfQorCitmdW5jdGlvbiB0ZXN0KCkgeworICAg
IGNvbnN0cnVjdENvbW1vbkdyYXBoKCk7CisKKyAgICBhbmFseXNlci5jb25uZWN0KGNvbnRleHQu
ZGVzdGluYXRpb24pOworCisgICAgYnVmZmVyU291cmNlLm5vdGVPbigwKTsKKworICAgIGNvbnRl
eHQub25jb21wbGV0ZSA9IHRlc3RGaW5pc2hlZDsKKyAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5n
KCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZl
cmVuY2UoIldlYktpdFdlYkF1ZGlvRW5hYmxlZCIsICIxIik7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgIHRlc3QoKTsKK30KKworCitydW5UZXN0KCk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0
IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125281</attachid>
            <date>2012-02-03 00:57:52 -0800</date>
            <delta_ts>2012-02-03 19:29:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77609-20120203165845.patch</filename>
            <type>text/plain</type>
            <size>7712</size>
            <attacher name="Wei James (wistoch)">james.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFiZWExNGVhYzFkYTcz
MTcwNmU3ZmFmNzEwMjE2MjIzZTQ2ZjhmMi4uMGUwNzhkYThmNjQ1YzM4NDAwZDU2YmJlNzhkNTcz
YmU0ZWQ1MzZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTAyICBXZWkg
SmFtZXMgIDxqYW1lcy53ZWlAaW50ZWwuY29tPgorCisgICAgICAgIEF1ZGlvQnVzIG5lZWQgdG8g
c3VwcG9ydCBzdGVyZW8tPm1vbm8gZG93biBtaXggaW4gY29weUZyb20gc3VtRnJvbSBldGMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYwOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHdlYmF1
ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvQnVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdXM6OmNvcHlGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpzdW1Gcm9t
KToKKwogMjAxMi0wMi0wMSAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5v
bGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIEF2b2lkIGNyZWF0aW5nIE5hbWVkTm9k
ZU1hcCB1bm5lY2Vzc2FyaWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb0J1cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1
cy5jcHAKaW5kZXggZWVhMTkxOTYxODUzMDc3M2RmYzA4MWY0ZDQwYmFhNzA3ZTM3NzA4Mi4uZDZh
YTM1MDAyZDI3MGM1OGJiNTgxNzZiZWYwMjk2MzUxODYxYmEwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcApAQCAtMTk2LDIxICsxOTYsMzUgQEAgdm9pZCBB
dWRpb0J1czo6c2NhbGUoZmxvYXQgc2NhbGUpCiAKIC8vIEp1c3QgY29waWVzIHRoZSBzYW1wbGVz
IGZyb20gdGhlIHNvdXJjZSBidXMgdG8gdGhpcyBvbmUuCiAvLyBUaGlzIGlzIGp1c3QgYSBzaW1w
bGUgY29weSBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYSBtaXh1
cCBvciBtaXhkb3duIGlzIGRvbmUuCi0vLyBGb3Igbm93LCB3ZSBqdXN0IHN1cHBvcnQgYSBtaXh1
cCBmcm9tIG1vbm8gLT4gc3RlcmVvLgorLy8gRm9yIG5vdywgd2UganVzdCBzdXBwb3J0IG1peHVw
IGZyb20gbW9ubyAtPiBzdGVyZW8gYW5kIG1peGRvd24gZnJvbSBzdGVyZW8gLT4gbW9uby4KIHZv
aWQgQXVkaW9CdXM6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMpCiB7CiAgICAg
aWYgKCZzb3VyY2VCdXMgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG51bWJl
ck9mQ2hhbm5lbHMoKSA9PSBzb3VyY2VCdXMubnVtYmVyT2ZDaGFubmVscygpKSB7Ci0gICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkNoYW5uZWxzKCk7ICsraSkKKyAgICB1
bnNpZ25lZCBudW1iZXJPZlNvdXJjZUNoYW5uZWxzID0gc291cmNlQnVzLm51bWJlck9mQ2hhbm5l
bHMoKTsKKyAgICB1bnNpZ25lZCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPSBudW1iZXJP
ZkNoYW5uZWxzKCk7CisKKyAgICBpZiAobnVtYmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzID09IG51
bWJlck9mU291cmNlQ2hhbm5lbHMpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG51bWJlck9mU291cmNlQ2hhbm5lbHM7ICsraSkKICAgICAgICAgICAgIGNoYW5uZWwoaSktPmNv
cHlGcm9tKHNvdXJjZUJ1cy5jaGFubmVsKGkpKTsKLSAgICB9IGVsc2UgaWYgKG51bWJlck9mQ2hh
bm5lbHMoKSA9PSAyICYmIHNvdXJjZUJ1cy5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMSkgeworICAg
IH0gZWxzZSBpZiAobnVtYmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzID09IDIgJiYgbnVtYmVyT2ZT
b3VyY2VDaGFubmVscyA9PSAxKSB7CiAgICAgICAgIC8vIEhhbmRsZSBtb25vIC0+IHN0ZXJlbyBj
YXNlIChmb3Igbm93IHNpbXBseSBjb3B5IG1vbm8gY2hhbm5lbCBpbnRvIGJvdGggbGVmdCBhbmQg
cmlnaHQpCiAgICAgICAgIC8vIEZJWE1FOiBSZWFsbHkgd2Ugc2hvdWxkIGFwcGx5IGFuIGVxdWFs
LXBvd2VyIHNjYWxpbmcgZmFjdG9yIGhlcmUsIHNpbmNlIHdlJ3JlIGVmZmVjdGl2ZWx5IHBhbm5p
bmcgY2VudGVyLi4uCiAgICAgICAgIGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCA9
IHNvdXJjZUJ1cy5jaGFubmVsKDApOwogICAgICAgICBjaGFubmVsKDApLT5jb3B5RnJvbShzb3Vy
Y2VDaGFubmVsKTsKICAgICAgICAgY2hhbm5lbCgxKS0+Y29weUZyb20oc291cmNlQ2hhbm5lbCk7
CisgICAgfSBlbHNlIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gMSAmJiBudW1i
ZXJPZlNvdXJjZUNoYW5uZWxzID09IDIpIHsKKyAgICAgICAgLy8gSGFuZGxlIHN0ZXJlbyAtPiBt
b25vIGNhc2UuIG91dHB1dCA9IDAuNSAqIChpbnB1dC5MICsgaW5wdXQuUikuCisgICAgICAgIEF1
ZGlvQnVzJiBzb3VyY2VCdXNTYWZlID0gY29uc3RfY2FzdDxBdWRpb0J1cyY+KHNvdXJjZUJ1cyk7
CisKKyAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJjZUwgPSBzb3VyY2VCdXNTYWZlLmNoYW5uZWxC
eVR5cGUoQ2hhbm5lbExlZnQpLT5kYXRhKCk7CisgICAgICAgIGNvbnN0IGZsb2F0KiBzb3VyY2VS
ID0gc291cmNlQnVzU2FmZS5jaGFubmVsQnlUeXBlKENoYW5uZWxSaWdodCktPmRhdGEoKTsKKwor
ICAgICAgICBmbG9hdCogZGVzdGluYXRpb24gPSBjaGFubmVsQnlUeXBlKENoYW5uZWxMZWZ0KS0+
bXV0YWJsZURhdGEoKTsKKyAgICAgICAgdmFkZChzb3VyY2VMLCAxLCBzb3VyY2VSLCAxLCBkZXN0
aW5hdGlvbiwgMSwgbGVuZ3RoKCkpOworICAgICAgICBmbG9hdCBzY2FsZSA9IDAuNTsKKyAgICAg
ICAgdnNtdWwoZGVzdGluYXRpb24sIDEsICZzY2FsZSwgZGVzdGluYXRpb24sIDEsIGxlbmd0aCgp
KTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBDYXNlIG5vdCBoYW5kbGVkCiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjE5LDE1ICsyMzMsMjkgQEAgdm9pZCBBdWRpb0J1czo6
Y29weUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cykKIAogdm9pZCBBdWRpb0J1czo6c3Vt
RnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzKQogewotICAgIGlmIChudW1iZXJPZkNoYW5u
ZWxzKCkgPT0gc291cmNlQnVzLm51bWJlck9mQ2hhbm5lbHMoKSkgeworICAgIHVuc2lnbmVkIG51
bWJlck9mU291cmNlQ2hhbm5lbHMgPSBzb3VyY2VCdXMubnVtYmVyT2ZDaGFubmVscygpOworICAg
IHVuc2lnbmVkIG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHMo
KTsKKworICAgIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gbnVtYmVyT2ZTb3Vy
Y2VDaGFubmVscykgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZD
aGFubmVscygpOyArK2kpCiAgICAgICAgICAgICBjaGFubmVsKGkpLT5zdW1Gcm9tKHNvdXJjZUJ1
cy5jaGFubmVsKGkpKTsKLSAgICB9IGVsc2UgaWYgKG51bWJlck9mQ2hhbm5lbHMoKSA9PSAyICYm
IHNvdXJjZUJ1cy5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMSkgeworICAgIH0gZWxzZSBpZiAobnVt
YmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzID09IDIgJiYgbnVtYmVyT2ZTb3VyY2VDaGFubmVscyA9
PSAxKSB7CiAgICAgICAgIC8vIEhhbmRsZSBtb25vIC0+IHN0ZXJlbyBjYXNlIChmb3Igbm93IHNp
bXBseSBzdW0gbW9ubyBjaGFubmVsIGludG8gYm90aCBsZWZ0IGFuZCByaWdodCkKICAgICAgICAg
Ly8gRklYTUU6IFJlYWxseSB3ZSBzaG91bGQgYXBwbHkgYW4gZXF1YWwtcG93ZXIgc2NhbGluZyBm
YWN0b3IgaGVyZSwgc2luY2Ugd2UncmUgZWZmZWN0aXZlbHkgcGFubmluZyBjZW50ZXIuLi4KICAg
ICAgICAgY29uc3QgQXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVsID0gc291cmNlQnVzLmNoYW5u
ZWwoMCk7CiAgICAgICAgIGNoYW5uZWwoMCktPnN1bUZyb20oc291cmNlQ2hhbm5lbCk7CiAgICAg
ICAgIGNoYW5uZWwoMSktPnN1bUZyb20oc291cmNlQ2hhbm5lbCk7CisgICAgfSBlbHNlIGlmIChu
dW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gMSAmJiBudW1iZXJPZlNvdXJjZUNoYW5uZWxz
ID09IDIpIHsKKyAgICAgICAgLy8gSGFuZGxlIHN0ZXJlbyAtPiBtb25vIGNhc2UuIG91dHB1dCAr
PSAwLjUgKiAoaW5wdXQuTCArIGlucHV0LlIpLgorICAgICAgICBBdWRpb0J1cyYgc291cmNlQnVz
U2FmZSA9IGNvbnN0X2Nhc3Q8QXVkaW9CdXMmPihzb3VyY2VCdXMpOworCisgICAgICAgIGNvbnN0
IGZsb2F0KiBzb3VyY2VMID0gc291cmNlQnVzU2FmZS5jaGFubmVsQnlUeXBlKENoYW5uZWxMZWZ0
KS0+ZGF0YSgpOworICAgICAgICBjb25zdCBmbG9hdCogc291cmNlUiA9IHNvdXJjZUJ1c1NhZmUu
Y2hhbm5lbEJ5VHlwZShDaGFubmVsUmlnaHQpLT5kYXRhKCk7CisKKyAgICAgICAgZmxvYXQqIGRl
c3RpbmF0aW9uID0gY2hhbm5lbEJ5VHlwZShDaGFubmVsTGVmdCktPm11dGFibGVEYXRhKCk7Cisg
ICAgICAgIGZsb2F0IHNjYWxlID0gMC41OworICAgICAgICB2c21hKHNvdXJjZUwsIDEsICZzY2Fs
ZSwgZGVzdGluYXRpb24sIDEsIGxlbmd0aCgpKTsKKyAgICAgICAgdnNtYShzb3VyY2VSLCAxLCAm
c2NhbGUsIGRlc3RpbmF0aW9uLCAxLCBsZW5ndGgoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
Ly8gQ2FzZSBub3QgaGFuZGxlZAogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmIyOGNjYjVkZTRhNGY2OGJjZjEwZWQ1M2MyMzY0Mzlk
NWI2Nzg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1v
bm8tZG93bi1taXhpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGhpcyB0ZXN0IHZl
cmlmaWVzIHdoZXRoZXIgZG93biBtaXhpbmcgZnJvbSBzdGVyZW8gdG8gbW9ubyB3aWxsIGNhdXNl
IGFzc2VydGlvbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIFRl
c3Qgbm8gQVNTRVJUIGVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJt
b25vLWRvd24tbWl4aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1k
b3duLW1peGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkMzNjY2VkZjIxOWRkNzBmNTZiNzU3YjVlNWNm
ZGIwYWE1ZDNiZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVy
ZW8ybW9uby1kb3duLW1peGluZy5odG1sCkBAIC0wLDAgKzEsNzggQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisKKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB3aGV0aGVyIGRvd24gbWl4aW5nIGZyb20g
c3RlcmVvIHRvIG1vbm8gd2lsbCBjYXVzZSBhc3NlcnRpb24gZXJyb3IuIik7CisKK3ZhciBzYW1w
bGVSYXRlID0gNDQxMDAuMDsKK3ZhciByZW5kZXJMZW5ndGhTZWNvbmRzID0gMC4xOwordmFyIGZm
dFNpemUgPSAzMjsKKwordmFyIGNvbnRleHQ7Cit2YXIgdG9uZUJ1ZmZlcjsKK3ZhciBidWZmZXJT
b3VyY2U7Cit2YXIgYW5hbHlzZXI7CisKK2Z1bmN0aW9uIGNyZWF0ZURhdGFCdWZmZXIoY29udGV4
dCwgbGVuZ3RoSW5TZWNvbmRzKSB7CisgICAgdmFyIGF1ZGlvQnVmZmVyID0gY29udGV4dC5jcmVh
dGVCdWZmZXIoMSwgbGVuZ3RoSW5TZWNvbmRzICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisK
KyAgICB2YXIgbiA9IGF1ZGlvQnVmZmVyLmxlbmd0aDsKKyAgICB2YXIgZGF0YSA9IGF1ZGlvQnVm
ZmVyLmdldENoYW5uZWxEYXRhKDApOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kp
IHsKKyAgICAgICAgZGF0YVtpXSA9IDEuMDsKKyAgICB9CisKKyAgICByZXR1cm4gYXVkaW9CdWZm
ZXI7Cit9CisKK2Z1bmN0aW9uIHRlc3RGaW5pc2hlZCgpIHsKKyAgICB0ZXN0UGFzc2VkKCJUZXN0
IG5vIEFTU0VSVCBlcnJvci4iKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0V2ViQXVk
aW9FbmFibGVkIiwgIjEiKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
fQorCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgLy8gQ3JlYXRlIG9m
ZmxpbmUgYXVkaW8gY29udGV4dC4KKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4
dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAg
dG9uZUJ1ZmZlciA9IGNyZWF0ZURhdGFCdWZmZXIoY29udGV4dCwgcmVuZGVyTGVuZ3RoU2Vjb25k
cyk7CisKKyAgICBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwor
ICAgIGJ1ZmZlclNvdXJjZS5idWZmZXIgPSB0b25lQnVmZmVyOworCisgICAgYW5hbHlzZXIgPSBj
b250ZXh0LmNyZWF0ZUFuYWx5c2VyKCk7CisgICAgYW5hbHlzZXIuZmZ0U2l6ZSA9IGZmdFNpemU7
CisKKyAgICBidWZmZXJTb3VyY2UuY29ubmVjdChhbmFseXNlcik7CisgICAgYW5hbHlzZXIuY29u
bmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgIGJ1ZmZlclNvdXJjZS5ub3RlT24oMCk7
CisKKyAgICBjb250ZXh0Lm9uY29tcGxldGUgPSB0ZXN0RmluaXNoZWQ7CisgICAgY29udGV4dC5z
dGFydFJlbmRlcmluZygpOworfQorCisKK3J1blRlc3QoKTsKKworPC9zY3JpcHQ+CisKKzxzY3Jp
cHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125467</attachid>
            <date>2012-02-03 19:29:36 -0800</date>
            <delta_ts>2012-02-06 15:00:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77609-20120204113029.patch</filename>
            <type>text/plain</type>
            <size>7870</size>
            <attacher name="Wei James (wistoch)">james.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFiZWExNGVhYzFkYTcz
MTcwNmU3ZmFmNzEwMjE2MjIzZTQ2ZjhmMi4uMGUwNzhkYThmNjQ1YzM4NDAwZDU2YmJlNzhkNTcz
YmU0ZWQ1MzZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTAyICBXZWkg
SmFtZXMgIDxqYW1lcy53ZWlAaW50ZWwuY29tPgorCisgICAgICAgIEF1ZGlvQnVzIG5lZWQgdG8g
c3VwcG9ydCBzdGVyZW8tPm1vbm8gZG93biBtaXggaW4gY29weUZyb20gc3VtRnJvbSBldGMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYwOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHdlYmF1
ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvQnVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdXM6OmNvcHlGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpzdW1Gcm9t
KToKKwogMjAxMi0wMi0wMSAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5v
bGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIEF2b2lkIGNyZWF0aW5nIE5hbWVkTm9k
ZU1hcCB1bm5lY2Vzc2FyaWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb0J1cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1
cy5jcHAKaW5kZXggZWVhMTkxOTYxODUzMDc3M2RmYzA4MWY0ZDQwYmFhNzA3ZTM3NzA4Mi4uZDZh
YTM1MDAyZDI3MGM1OGJiNTgxNzZiZWYwMjk2MzUxODYxYmEwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcApAQCAtMTk2LDIxICsxOTYsMzUgQEAgdm9pZCBB
dWRpb0J1czo6c2NhbGUoZmxvYXQgc2NhbGUpCiAKIC8vIEp1c3QgY29waWVzIHRoZSBzYW1wbGVz
IGZyb20gdGhlIHNvdXJjZSBidXMgdG8gdGhpcyBvbmUuCiAvLyBUaGlzIGlzIGp1c3QgYSBzaW1w
bGUgY29weSBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYSBtaXh1
cCBvciBtaXhkb3duIGlzIGRvbmUuCi0vLyBGb3Igbm93LCB3ZSBqdXN0IHN1cHBvcnQgYSBtaXh1
cCBmcm9tIG1vbm8gLT4gc3RlcmVvLgorLy8gRm9yIG5vdywgd2UganVzdCBzdXBwb3J0IG1peHVw
IGZyb20gbW9ubyAtPiBzdGVyZW8gYW5kIG1peGRvd24gZnJvbSBzdGVyZW8gLT4gbW9uby4KIHZv
aWQgQXVkaW9CdXM6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMpCiB7CiAgICAg
aWYgKCZzb3VyY2VCdXMgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG51bWJl
ck9mQ2hhbm5lbHMoKSA9PSBzb3VyY2VCdXMubnVtYmVyT2ZDaGFubmVscygpKSB7Ci0gICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkNoYW5uZWxzKCk7ICsraSkKKyAgICB1
bnNpZ25lZCBudW1iZXJPZlNvdXJjZUNoYW5uZWxzID0gc291cmNlQnVzLm51bWJlck9mQ2hhbm5l
bHMoKTsKKyAgICB1bnNpZ25lZCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPSBudW1iZXJP
ZkNoYW5uZWxzKCk7CisKKyAgICBpZiAobnVtYmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzID09IG51
bWJlck9mU291cmNlQ2hhbm5lbHMpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG51bWJlck9mU291cmNlQ2hhbm5lbHM7ICsraSkKICAgICAgICAgICAgIGNoYW5uZWwoaSktPmNv
cHlGcm9tKHNvdXJjZUJ1cy5jaGFubmVsKGkpKTsKLSAgICB9IGVsc2UgaWYgKG51bWJlck9mQ2hh
bm5lbHMoKSA9PSAyICYmIHNvdXJjZUJ1cy5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMSkgeworICAg
IH0gZWxzZSBpZiAobnVtYmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzID09IDIgJiYgbnVtYmVyT2ZT
b3VyY2VDaGFubmVscyA9PSAxKSB7CiAgICAgICAgIC8vIEhhbmRsZSBtb25vIC0+IHN0ZXJlbyBj
YXNlIChmb3Igbm93IHNpbXBseSBjb3B5IG1vbm8gY2hhbm5lbCBpbnRvIGJvdGggbGVmdCBhbmQg
cmlnaHQpCiAgICAgICAgIC8vIEZJWE1FOiBSZWFsbHkgd2Ugc2hvdWxkIGFwcGx5IGFuIGVxdWFs
LXBvd2VyIHNjYWxpbmcgZmFjdG9yIGhlcmUsIHNpbmNlIHdlJ3JlIGVmZmVjdGl2ZWx5IHBhbm5p
bmcgY2VudGVyLi4uCiAgICAgICAgIGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCA9
IHNvdXJjZUJ1cy5jaGFubmVsKDApOwogICAgICAgICBjaGFubmVsKDApLT5jb3B5RnJvbShzb3Vy
Y2VDaGFubmVsKTsKICAgICAgICAgY2hhbm5lbCgxKS0+Y29weUZyb20oc291cmNlQ2hhbm5lbCk7
CisgICAgfSBlbHNlIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gMSAmJiBudW1i
ZXJPZlNvdXJjZUNoYW5uZWxzID09IDIpIHsKKyAgICAgICAgLy8gSGFuZGxlIHN0ZXJlbyAtPiBt
b25vIGNhc2UuIG91dHB1dCA9IDAuNSAqIChpbnB1dC5MICsgaW5wdXQuUikuCisgICAgICAgIEF1
ZGlvQnVzJiBzb3VyY2VCdXNTYWZlID0gY29uc3RfY2FzdDxBdWRpb0J1cyY+KHNvdXJjZUJ1cyk7
CisKKyAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJjZUwgPSBzb3VyY2VCdXNTYWZlLmNoYW5uZWxC
eVR5cGUoQ2hhbm5lbExlZnQpLT5kYXRhKCk7CisgICAgICAgIGNvbnN0IGZsb2F0KiBzb3VyY2VS
ID0gc291cmNlQnVzU2FmZS5jaGFubmVsQnlUeXBlKENoYW5uZWxSaWdodCktPmRhdGEoKTsKKwor
ICAgICAgICBmbG9hdCogZGVzdGluYXRpb24gPSBjaGFubmVsQnlUeXBlKENoYW5uZWxMZWZ0KS0+
bXV0YWJsZURhdGEoKTsKKyAgICAgICAgdmFkZChzb3VyY2VMLCAxLCBzb3VyY2VSLCAxLCBkZXN0
aW5hdGlvbiwgMSwgbGVuZ3RoKCkpOworICAgICAgICBmbG9hdCBzY2FsZSA9IDAuNTsKKyAgICAg
ICAgdnNtdWwoZGVzdGluYXRpb24sIDEsICZzY2FsZSwgZGVzdGluYXRpb24sIDEsIGxlbmd0aCgp
KTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBDYXNlIG5vdCBoYW5kbGVkCiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjE5LDE1ICsyMzMsMjkgQEAgdm9pZCBBdWRpb0J1czo6
Y29weUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cykKIAogdm9pZCBBdWRpb0J1czo6c3Vt
RnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzKQogewotICAgIGlmIChudW1iZXJPZkNoYW5u
ZWxzKCkgPT0gc291cmNlQnVzLm51bWJlck9mQ2hhbm5lbHMoKSkgeworICAgIHVuc2lnbmVkIG51
bWJlck9mU291cmNlQ2hhbm5lbHMgPSBzb3VyY2VCdXMubnVtYmVyT2ZDaGFubmVscygpOworICAg
IHVuc2lnbmVkIG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHMo
KTsKKworICAgIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gbnVtYmVyT2ZTb3Vy
Y2VDaGFubmVscykgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZD
aGFubmVscygpOyArK2kpCiAgICAgICAgICAgICBjaGFubmVsKGkpLT5zdW1Gcm9tKHNvdXJjZUJ1
cy5jaGFubmVsKGkpKTsKLSAgICB9IGVsc2UgaWYgKG51bWJlck9mQ2hhbm5lbHMoKSA9PSAyICYm
IHNvdXJjZUJ1cy5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMSkgeworICAgIH0gZWxzZSBpZiAobnVt
YmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzID09IDIgJiYgbnVtYmVyT2ZTb3VyY2VDaGFubmVscyA9
PSAxKSB7CiAgICAgICAgIC8vIEhhbmRsZSBtb25vIC0+IHN0ZXJlbyBjYXNlIChmb3Igbm93IHNp
bXBseSBzdW0gbW9ubyBjaGFubmVsIGludG8gYm90aCBsZWZ0IGFuZCByaWdodCkKICAgICAgICAg
Ly8gRklYTUU6IFJlYWxseSB3ZSBzaG91bGQgYXBwbHkgYW4gZXF1YWwtcG93ZXIgc2NhbGluZyBm
YWN0b3IgaGVyZSwgc2luY2Ugd2UncmUgZWZmZWN0aXZlbHkgcGFubmluZyBjZW50ZXIuLi4KICAg
ICAgICAgY29uc3QgQXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVsID0gc291cmNlQnVzLmNoYW5u
ZWwoMCk7CiAgICAgICAgIGNoYW5uZWwoMCktPnN1bUZyb20oc291cmNlQ2hhbm5lbCk7CiAgICAg
ICAgIGNoYW5uZWwoMSktPnN1bUZyb20oc291cmNlQ2hhbm5lbCk7CisgICAgfSBlbHNlIGlmIChu
dW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gMSAmJiBudW1iZXJPZlNvdXJjZUNoYW5uZWxz
ID09IDIpIHsKKyAgICAgICAgLy8gSGFuZGxlIHN0ZXJlbyAtPiBtb25vIGNhc2UuIG91dHB1dCAr
PSAwLjUgKiAoaW5wdXQuTCArIGlucHV0LlIpLgorICAgICAgICBBdWRpb0J1cyYgc291cmNlQnVz
U2FmZSA9IGNvbnN0X2Nhc3Q8QXVkaW9CdXMmPihzb3VyY2VCdXMpOworCisgICAgICAgIGNvbnN0
IGZsb2F0KiBzb3VyY2VMID0gc291cmNlQnVzU2FmZS5jaGFubmVsQnlUeXBlKENoYW5uZWxMZWZ0
KS0+ZGF0YSgpOworICAgICAgICBjb25zdCBmbG9hdCogc291cmNlUiA9IHNvdXJjZUJ1c1NhZmUu
Y2hhbm5lbEJ5VHlwZShDaGFubmVsUmlnaHQpLT5kYXRhKCk7CisKKyAgICAgICAgZmxvYXQqIGRl
c3RpbmF0aW9uID0gY2hhbm5lbEJ5VHlwZShDaGFubmVsTGVmdCktPm11dGFibGVEYXRhKCk7Cisg
ICAgICAgIGZsb2F0IHNjYWxlID0gMC41OworICAgICAgICB2c21hKHNvdXJjZUwsIDEsICZzY2Fs
ZSwgZGVzdGluYXRpb24sIDEsIGxlbmd0aCgpKTsKKyAgICAgICAgdnNtYShzb3VyY2VSLCAxLCAm
c2NhbGUsIGRlc3RpbmF0aW9uLCAxLCBsZW5ndGgoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
Ly8gQ2FzZSBub3QgaGFuZGxlZAogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmIyOGNjYjVkZTRhNGY2OGJjZjEwZWQ1M2MyMzY0Mzlk
NWI2Nzg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1v
bm8tZG93bi1taXhpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGhpcyB0ZXN0IHZl
cmlmaWVzIHdoZXRoZXIgZG93biBtaXhpbmcgZnJvbSBzdGVyZW8gdG8gbW9ubyB3aWxsIGNhdXNl
IGFzc2VydGlvbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIFRl
c3Qgbm8gQVNTRVJUIGVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJt
b25vLWRvd24tbWl4aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1k
b3duLW1peGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2YjIyZDAwNTkyZjY4MjQwZjdhNGRmNzBjNjQw
MWM1YTI2YTA2MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVy
ZW8ybW9uby1kb3duLW1peGluZy5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisKKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB3aGV0aGVyIGRvd24gbWl4aW5nIGZyb20g
c3RlcmVvIHRvIG1vbm8gd2lsbCBjYXVzZSBhc3NlcnRpb24gZXJyb3IuIik7CisKK3ZhciBzYW1w
bGVSYXRlID0gNDQxMDAuMDsKK3ZhciByZW5kZXJMZW5ndGhTZWNvbmRzID0gMC4xOwordmFyIGZm
dFNpemUgPSAzMjsKKwordmFyIGNvbnRleHQ7Cit2YXIgdG9uZUJ1ZmZlcjsKK3ZhciBidWZmZXJT
b3VyY2U7Cit2YXIgYW5hbHlzZXI7CisKK2Z1bmN0aW9uIGNyZWF0ZURhdGFCdWZmZXIoY29udGV4
dCwgbGVuZ3RoSW5TZWNvbmRzKSB7CisgICAgdmFyIGF1ZGlvQnVmZmVyID0gY29udGV4dC5jcmVh
dGVCdWZmZXIoMSwgbGVuZ3RoSW5TZWNvbmRzICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisK
KyAgICB2YXIgbiA9IGF1ZGlvQnVmZmVyLmxlbmd0aDsKKyAgICB2YXIgZGF0YSA9IGF1ZGlvQnVm
ZmVyLmdldENoYW5uZWxEYXRhKDApOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kp
IHsKKyAgICAgICAgZGF0YVtpXSA9IDEuMDsKKyAgICB9CisKKyAgICByZXR1cm4gYXVkaW9CdWZm
ZXI7Cit9CisKK2Z1bmN0aW9uIHRlc3RGaW5pc2hlZCgpIHsKKyAgICB0ZXN0UGFzc2VkKCJUZXN0
IG5vIEFTU0VSVCBlcnJvci4iKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0V2ViQXVk
aW9FbmFibGVkIiwgIjEiKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
fQorCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgLy8gQ3JlYXRlIG9m
ZmxpbmUgYXVkaW8gY29udGV4dC4KKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4
dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAg
Ly8gRXhwbGljaXRseSBjcmVhdGUgYSBtb25vIEF1ZGlvQ29udGV4dCBzbyB0aGF0IHRoZSBkZXN0
aW5hdGlvbiBpcyBtb25vLgorICAgIHRvbmVCdWZmZXIgPSBjcmVhdGVEYXRhQnVmZmVyKGNvbnRl
eHQsIHJlbmRlckxlbmd0aFNlY29uZHMpOworCisgICAgYnVmZmVyU291cmNlID0gY29udGV4dC5j
cmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAgICBidWZmZXJTb3VyY2UuYnVmZmVyID0gdG9uZUJ1ZmZl
cjsKKworICAgIC8vIFdlIGNyZWF0ZSBhbiBhbmFseXNlciBoZXJlLCBiZWNhdXNlIGl0IGhhcyBh
IGhhcmQtY29kZWQgc3RlcmVvIG91dHB1dC4KKyAgICBhbmFseXNlciA9IGNvbnRleHQuY3JlYXRl
QW5hbHlzZXIoKTsKKyAgICBhbmFseXNlci5mZnRTaXplID0gZmZ0U2l6ZTsKKworICAgIGJ1ZmZl
clNvdXJjZS5jb25uZWN0KGFuYWx5c2VyKTsKKyAgICBhbmFseXNlci5jb25uZWN0KGNvbnRleHQu
ZGVzdGluYXRpb24pOworCisgICAgYnVmZmVyU291cmNlLm5vdGVPbigwKTsKKworICAgIGNvbnRl
eHQub25jb21wbGV0ZSA9IHRlc3RGaW5pc2hlZDsKKyAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5n
KCk7Cit9CisKKworcnVuVGVzdCgpOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>