<?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>44461</bug_id>
          
          <creation_ts>2010-08-23 16:05:59 -0700</creation_ts>
          <short_desc>Assertion failure at WebCore/platform/network/CredentialStorage.cpp:85.</short_desc>
          <delta_ts>2016-01-22 14:28:10 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=153250</see_also>
          <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="Yongjun Zhang">yongjun_zhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yongjun_zhang</cc>
    
    <cc>yongjun.zhang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>268140</commentid>
    <comment_count>0</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2010-08-23 16:05:59 -0700</bug_when>
    <thetext>WebCore hits assertion failure at /WebCore/platform/network/CredentialStorage.cpp:85 when the url has double slash as folder separator.  For example, &quot;http://foo.com/bar//test.htm&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268144</commentid>
    <comment_count>1</comment_count>
      <attachid>65171</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2010-08-23 16:08:02 -0700</bug_when>
    <thetext>Created attachment 65171
Attach the callstack when assertion failure happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268220</commentid>
    <comment_count>2</comment_count>
      <attachid>65188</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2010-08-23 17:38:52 -0700</bug_when>
    <thetext>Created attachment 65188
remove redundant forward slashes.

 Remove redundant forward slashes in directoryURL even though multiple slashes are valid in URL.  This fixes the assertion failure and possible protectionSpace mapping failure when two URLs differ only on redundant slashes and they are essentially the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268224</commentid>
    <comment_count>3</comment_count>
      <attachid>65189</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2010-08-23 17:42:15 -0700</bug_when>
    <thetext>Created attachment 65189
remove redundant forward slashes. (add new line at end of test file).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268244</commentid>
    <comment_count>4</comment_count>
      <attachid>65189</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-23 18:30:10 -0700</bug_when>
    <thetext>Comment on attachment 65189
remove redundant forward slashes. (add new line at end of test file).

&gt; even though multiple slashes are valid in URL

I&apos;m not really sure on the status of this validity. In file paths, multiple slashes always mean the same as a single one, but I think that in URLs, it&apos;s up to the server to make a decision. This thought is what has been preventing from fixing this myself.

I guess it&apos;s fine for us to do whatever Firefox is doing, and if it normalizes slashes before looking up a directory for stored credentials, so could we. But this patch doesn&apos;t quite implement that, as it only removes trailing slashes.

 +        while (index &gt; 0 &amp;&amp; directoryURL[index-1] == &apos;/&apos;)

There should be spaces around &quot;-&quot;.

&gt; +            index--;

There is no practical difference for integer values, but for consistency with iterators, it&apos;s best to always use prefix increment and decrement. When the compiler cannot optimize it, postfix variants create temporary copies.

&gt; +    xhr.open(&quot;GET&quot;, &quot;resources/remember-bad-password//count-failures.php&quot;, false);

Ideally, the test would check the response to make sure that mapping doesn&apos;t fail (and it should pass in Firefox).

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268251</commentid>
    <comment_count>5</comment_count>
      <attachid>65189</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-23 18:43:39 -0700</bug_when>
    <thetext>Comment on attachment 65189
remove redundant forward slashes. (add new line at end of test file).

I expected at least the style issue to be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268291</commentid>
    <comment_count>6</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2010-08-23 21:10:20 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 65189 [details])
&gt; I expected at least the style issue to be fixed.

sorry, I misread your comments.  New patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268711</commentid>
    <comment_count>7</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2010-08-24 12:26:03 -0700</bug_when>
    <thetext>I did some test with the assertion removed, and it turns out the assumption in my original patch is wrong.  For a URL with double-slash path, it will create another entry in PathToDefaultProtectionSpaceMap along with the URL with single-slash path.  So the query in HashMap will fail.  But it doesn&apos;t affect the authentication because http servers will handle it correctly.

Since it is perfectly legal to have multiple slash following the path, I believe we should remove the assertion or come up with a new one which accepts trailing slashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268714</commentid>
    <comment_count>8</comment_count>
      <attachid>65307</attachid>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2010-08-24 12:27:34 -0700</bug_when>
    <thetext>Created attachment 65307
Remove the assertion because it is legal to have multiple trailing slashes after the path component.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268723</commentid>
    <comment_count>9</comment_count>
      <attachid>65307</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-24 12:43:09 -0700</bug_when>
    <thetext>Comment on attachment 65307
Remove the assertion because it is legal to have multiple trailing slashes after the path component.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268751</commentid>
    <comment_count>10</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2010-08-24 13:31:32 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 65307 [details])
&gt; OK

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269151</commentid>
    <comment_count>11</comment_count>
      <attachid>65307</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-25 04:37:17 -0700</bug_when>
    <thetext>Comment on attachment 65307
Remove the assertion because it is legal to have multiple trailing slashes after the path component.

Clearing flags on attachment: 65307

Committed r66005: &lt;http://trac.webkit.org/changeset/66005&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269171</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-25 05:15:01 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/66005 might have broken SnowLeopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269288</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-25 09:39:46 -0700</bug_when>
    <thetext>No way, all it did was remove an assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269291</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 09:42:22 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; No way, all it did was remove an assertion.

The SL bots are super flaky.  There are tests that fail on one of the slaves but not the other.  :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279429</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-15 00:19:03 -0700</bug_when>
    <thetext>This looks landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>65171</attachid>
            <date>2010-08-23 16:08:02 -0700</date>
            <delta_ts>2010-08-23 16:08:02 -0700</delta_ts>
            <desc>Attach the callstack when assertion failure happens.</desc>
            <filename>callstack.txt</filename>
            <type>text/plain</type>
            <size>9586</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">UHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgRVhDX0JBRF9BQ0NFU1MsIENvdWxkIG5vdCBhY2Nlc3Mg
bWVtb3J5LgpSZWFzb246IEtFUk5fSU5WQUxJRF9BRERSRVNTIGF0IGFkZHJlc3M6IDB4MDAwMDAw
MDBiYmFkYmVlZgoweDAwMDAwMDAxMDE1NGM0YzcgaW4gV2ViQ29yZTo6cHJvdGVjdGlvblNwYWNl
TWFwS2V5RnJvbVVSTCAodXJsPUAweDExNTE1NjAxMCkgYXQgL1VzZXJzL3poYW5nL3Byb2plY3Qv
b3BlbnNvdXJjZS9XZWJLaXQvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9y
YWdlLmNwcDo4NQo4NQkgICAgQVNTRVJUKGRpcmVjdG9yeVVSTC5sZW5ndGgoKSA9PSBkaXJlY3Rv
cnlVUkxQYXRoU3RhcnQgKyAxIHx8IGRpcmVjdG9yeVVSTFtkaXJlY3RvcnlVUkwubGVuZ3RoKCkg
LSAxXSAhPSAnLycpOwooZ2RiKSBidAojMCAgMHgwMDAwMDAwMTAxNTRjNGM3IGluIFdlYkNvcmU6
OnByb3RlY3Rpb25TcGFjZU1hcEtleUZyb21VUkwgKHVybD1AMHgxMTUxNTYwMTApIGF0IC9Vc2Vy
cy96aGFuZy9wcm9qZWN0L29wZW5zb3VyY2UvV2ViS2l0L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9DcmVkZW50aWFsU3RvcmFnZS5jcHA6ODUKIzEgIDB4MDAwMDAwMDEwMTU0YzgwNiBpbiBXZWJD
b3JlOjpmaW5kRGVmYXVsdFByb3RlY3Rpb25TcGFjZUZvclVSTCAodXJsPUAweDExNTE1NjAxMCkg
YXQgL1VzZXJzL3poYW5nL3Byb2plY3Qvb3BlbnNvdXJjZS9XZWJLaXQvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcDoxMjgKIzIgIDB4MDAwMDAwMDEwMTU0Y2Fi
OCBpbiBXZWJDb3JlOjpDcmVkZW50aWFsU3RvcmFnZTo6Z2V0ICh1cmw9QDB4MTE1MTU2MDEwKSBh
dCAvVXNlcnMvemhhbmcvcHJvamVjdC9vcGVuc291cmNlL1dlYktpdC9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwOjE2MAojMyAgMHgwMDAwMDAwMTAxZWMyYWMx
IGluIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24gKHRoaXM9
MHgxMTUxMzg0ZDAsIGRlbGVnYXRlPTB4MTE1MTM2NDcwLCBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZT10cnVlLCBzaG91bGRDb250ZW50U25pZmY9dHJ1ZSkgYXQgL1VzZXJzL3poYW5nL3Byb2pl
Y3Qvb3BlbnNvdXJjZS9XZWJLaXQvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZUhhbmRsZU1hYy5tbToyMTYKIzQgIDB4MDAwMDAwMDEwMWVjMzIxYSBpbiBXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6c3RhcnQgKHRoaXM9MHgxMTUxMzg0ZDAsIGZyYW1lPTB4MTA5ODFmNjAwKSBh
dCAvVXNlcnMvemhhbmcvcHJvamVjdC9vcGVuc291cmNlL1dlYktpdC9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOjMwMQojNSAgMHgwMDAwMDAwMTAxZWJl
NTRiIGluIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUgKHJlcXVlc3Q9QDB4N2ZmZjVm
YmZkMDMwLCBjbGllbnQ9MHgxMTg4MDY0MDAsIGZyYW1lPTB4MTA5ODFmNjAwLCBkZWZlcnNMb2Fk
aW5nPWZhbHNlLCBzaG91bGRDb250ZW50U25pZmY9dHJ1ZSkgYXQgL1VzZXJzL3poYW5nL3Byb2pl
Y3Qvb3BlbnNvdXJjZS9XZWJLaXQvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmNwcDo3MQojNiAgMHgwMDAwMDAwMTAxY2MzNjQ5IGluIFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6bG9hZE5vdyAodGhpcz0weDExODgwNjQwMCwgcj1AMHg3ZmZmNWZiZmQwMzApIGF0
IC9Vc2Vycy96aGFuZy9wcm9qZWN0L29wZW5zb3VyY2UvV2ViS2l0L1dlYkNvcmUvbG9hZGVyL01h
aW5SZXNvdXJjZUxvYWRlci5jcHA6NTQxCiM3ICAweDAwMDAwMDAxMDFjYzNhMzAgaW4gV2ViQ29y
ZTo6TWFpblJlc291cmNlTG9hZGVyOjpsb2FkICh0aGlzPTB4MTE4ODA2NDAwLCByPUAweDExODgx
NWUyMCwgc3Vic3RpdHV0ZURhdGE9QDB4MTE4ODE1YzcwKSBhdCAvVXNlcnMvemhhbmcvcHJvamVj
dC9vcGVuc291cmNlL1dlYktpdC9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3Bw
OjU2OAojOCAgMHgwMDAwMDAwMTAxNjljNGU3IGluIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
dGFydExvYWRpbmdNYWluUmVzb3VyY2UgKHRoaXM9MHgxMTg4MTVhMDAsIGlkZW50aWZpZXI9NjIp
IGF0IC9Vc2Vycy96aGFuZy9wcm9qZWN0L29wZW5zb3VyY2UvV2ViS2l0L1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcDo3MzkKIzkgIDB4MDAwMDAwMDEwMTdmNTU4YSBpbiBXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJXaWxsU3VibWl0Rm9ybSAodGhpcz0weDEw
OTgxZjY1MCkgYXQgL1VzZXJzL3poYW5nL3Byb2plY3Qvb3BlbnNvdXJjZS9XZWJLaXQvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwOjI0NTIKIzEwIDB4MDAwMDAwMDEwMTdmY2Y4MCBpbiBX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5ICh0
aGlzPTB4MTA5ODFmNjUwLCBmb3JtU3RhdGU9QDB4N2ZmZjVmYmZkMmYwLCBzaG91bGRDb250aW51
ZT10cnVlKSBhdCAvVXNlcnMvemhhbmcvcHJvamVjdC9vcGVuc291cmNlL1dlYktpdC9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHA6Mjk2NQojMTEgMHgwMDAwMDAwMTAxN2ZjZmNlIGluIFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpjYWxsQ29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5
IChhcmd1bWVudD0weDEwOTgxZjY1MCwgcmVxdWVzdD1AMHg3ZmZmNWZiZmQzZDAsIGZvcm1TdGF0
ZT1AMHg3ZmZmNWZiZmQzNDAsIHNob3VsZENvbnRpbnVlPXRydWUpIGF0IC9Vc2Vycy96aGFuZy9w
cm9qZWN0L29wZW5zb3VyY2UvV2ViS2l0L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoy
ODY0CiMxMiAweDAwMDAwMDAxMDFkNTA3OWYgaW4gV2ViQ29yZTo6UG9saWN5Q2FsbGJhY2s6OmNh
bGwgKHRoaXM9MHg3ZmZmNWZiZmQzZDAsIHNob3VsZENvbnRpbnVlPXRydWUpIGF0IC9Vc2Vycy96
aGFuZy9wcm9qZWN0L29wZW5zb3VyY2UvV2ViS2l0L1dlYkNvcmUvbG9hZGVyL1BvbGljeUNhbGxi
YWNrLmNwcDoxMDEKIzEzIDB4MDAwMDAwMDEwMWQ1MTJlZiBpbiBXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjb250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeSAodGhpcz0weDEwOTgxZjY2MCwgcG9s
aWN5PVdlYkNvcmU6OlBvbGljeVVzZSkgYXQgL1VzZXJzL3poYW5nL3Byb2plY3Qvb3BlbnNvdXJj
ZS9XZWJLaXQvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6MTYwCiMxNCAweDAwMDAw
MDAxMDBlZmVlNTcgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlY2VpdmVkUG9saWN5RGVjaXNv
biAodGhpcz0weDEwNjZlMTY2MCwgYWN0aW9uPVdlYkNvcmU6OlBvbGljeVVzZSkgYXQgL1VzZXJz
L3poYW5nL3Byb2plY3Qvb3BlbnNvdXJjZS9XZWJLaXQvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToxMjc1CiMxNSAweDAwMDAwMDAxMDBlZmVlZWMgaW4g
LVtXZWJGcmFtZVBvbGljeUxpc3RlbmVyIHJlY2VpdmVkUG9saWN5RGVjaXNpb246XSAoc2VsZj0w
eDExNTE0NjZjMCwgX2NtZD0weDdmZmY4MDg4MmM5ZiwgYWN0aW9uPVdlYkNvcmU6OlBvbGljeVVz
ZSkgYXQgL1VzZXJzL3poYW5nL3Byb2plY3Qvb3BlbnNvdXJjZS9XZWJLaXQvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToxOTYzCiMxNiAweDAwMDAwMDAx
MDBlZmI0NTQgaW4gLVtXZWJGcmFtZVBvbGljeUxpc3RlbmVyIHVzZV0gKHNlbGY9MHgxMTUxNDY2
YzAsIF9jbWQ9MHg3ZmZmODU1NGJlN2UpIGF0IC9Vc2Vycy96aGFuZy9wcm9qZWN0L29wZW5zb3Vy
Y2UvV2ViS2l0L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW06MTk3OAojMTcgMHgwMDAwMDAwMTAwMDJiYzE4IGluID8/ICgpCiMxOCAweDAwMDA3ZmZmODM0
MjJkMmMgaW4gX19pbnZva2luZ19fXyAoKQojMTkgMHgwMDAwN2ZmZjgzNDIyYmZkIGluIC1bTlNJ
bnZvY2F0aW9uIGludm9rZV0gKCkKIzIwIDB4MDAwMDdmZmY4MzQzZWExMSBpbiAtW05TSW52b2Nh
dGlvbiBpbnZva2VXaXRoVGFyZ2V0Ol0gKCkKIzIxIDB4MDAwMDAwMDEwMGZhYjdkYyBpbiAtW19X
ZWJTYWZlRm9yd2FyZGVyIGZvcndhcmRJbnZvY2F0aW9uOl0gKHNlbGY9MHgxMTI2MmJhYzAsIF9j
bWQ9MHg3ZmZmODU0YzhlMTAsIGludm9jYXRpb249MHgxMTUxMjg1MjApIGF0IC9Vc2Vycy96aGFu
Zy9wcm9qZWN0L29wZW5zb3VyY2UvV2ViS2l0L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
OjI1NTAKIzIyIDB4MDAwMDdmZmY4MzQxZmQ0YyBpbiBfX19mb3J3YXJkaW5nX19fICgpCiMyMyAw
eDAwMDA3ZmZmODM0MWJlMjggaW4gX19mb3J3YXJkaW5nX3ByZXBfMF9fXyAoKQojMjQgMHgwMDAw
MDAwMTAwZjAwMTE4IGluIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24gKHRoaXM9MHgxMDY2ZTE2NjAsIGZ1bmN0aW9uPXtfX3BmbiA9
IDB4MTAxZDUxMTMyIDxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjb250aW51ZUFmdGVyTmF2aWdh
dGlvblBvbGljeShXZWJDb3JlOjpQb2xpY3lBY3Rpb24pPiwgX19kZWx0YSA9IDB9LCBhY3Rpb249
QDB4N2ZmZjVmYmZkYjkwLCByZXF1ZXN0PUAweDExODgxNWUyMCwgZm9ybVN0YXRlPUAweDdmZmY1
ZmJmZGJmMCkgYXQgL1VzZXJzL3poYW5nL3Byb2plY3Qvb3BlbnNvdXJjZS9XZWJLaXQvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbTo3NTQKIzI1IDB4MDAw
MDAwMDEwMWQ1MTg2YyBpbiBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Q
b2xpY3kgKHRoaXM9MHgxMDk4MWY2NjAsIHJlcXVlc3Q9QDB4MTE4ODE1ZTIwLCBsb2FkZXI9MHgx
MTg4MTVhMDAsIGZvcm1TdGF0ZT1AMHg3ZmZmNWZiZmRkMTAsIGZ1bmN0aW9uPTB4MTAxN2ZjZjhh
IDxXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBv
bGljeSh2b2lkKiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGJvb2wpPiwgYXJndW1lbnQ9MHgxMDk4MWY2NTApIGF0
IC9Vc2Vycy96aGFuZy9wcm9qZWN0L29wZW5zb3VyY2UvV2ViS2l0L1dlYkNvcmUvbG9hZGVyL1Bv
bGljeUNoZWNrZXIuY3BwOjg4CiMyNiAweDAwMDAwMDAxMDE3ZmQzZTYgaW4gV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIgKHRoaXM9MHgxMDk4MWY2NTAsIGxvYWRl
cj0weDExODgxNWEwMCwgdHlwZT1XZWJDb3JlOjpGcmFtZUxvYWRUeXBlU3RhbmRhcmQsIHBycEZv
cm1TdGF0ZT1AMHg3ZmZmNWZiZmRlOTApIGF0IC9Vc2Vycy96aGFuZy9wcm9qZWN0L29wZW5zb3Vy
Y2UvV2ViS2l0L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoxNDc3CiMyNyAweDAwMDAw
MDAxMDE3ZmUxYmMgaW4gV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFj
dGlvbiAodGhpcz0weDEwOTgxZjY1MCwgcmVxdWVzdD1AMHg3ZmZmNWZiZmUwODAsIGFjdGlvbj1A
MHg3ZmZmNWZiZmRmNjAsIGxvY2tIaXN0b3J5PWZhbHNlLCB0eXBlPVdlYkNvcmU6OkZyYW1lTG9h
ZFR5cGVTdGFuZGFyZCwgZm9ybVN0YXRlPUAweDdmZmY1ZmJmZGZiMCkgYXQgL1VzZXJzL3poYW5n
L3Byb2plY3Qvb3BlbnNvdXJjZS9XZWJLaXQvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
OjE0MDEKIzI4IDB4MDAwMDAwMDEwMTdmZjUzMCBpbiBXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9h
ZFVSTCAodGhpcz0weDEwOTgxZjY1MCwgbmV3VVJMPUAweDdmZmY1ZmJmZTNiOCwgcmVmZXJyZXI9
QDB4N2ZmZjVmYmZlMmYwLCBmcmFtZU5hbWU9QDB4N2ZmZjVmYmZlNGQ4LCBsb2NrSGlzdG9yeT1m
YWxzZSwgbmV3TG9hZFR5cGU9V2ViQ29yZTo6RnJhbWVMb2FkVHlwZVN0YW5kYXJkLCBldmVudD1A
MHg3ZmZmNWZiZmUyOTAsIHBycEZvcm1TdGF0ZT1AMHg3ZmZmNWZiZmUyODApIGF0IC9Vc2Vycy96
aGFuZy9wcm9qZWN0L29wZW5zb3VyY2UvV2ViS2l0L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcDoxMzQ0CiMyOSAweDAwMDAwMDAxMDE3ZmZhMmYgaW4gV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWRGcmFtZVJlcXVlc3QgKHRoaXM9MHgxMDk4MWY2NTAsIHJlcXVlc3Q9QDB4N2ZmZjVmYmZl
M2IwLCBsb2NrSGlzdG9yeT1mYWxzZSwgbG9ja0JhY2tGb3J3YXJkTGlzdD1mYWxzZSwgZXZlbnQ9
QDB4N2ZmZjVmYmZlMzcwLCBmb3JtU3RhdGU9QDB4N2ZmZjVmYmZlMzYwLCByZWZlcnJlclBvbGlj
eT1XZWJDb3JlOjpTZW5kUmVmZXJyZXIpIGF0IC9Vc2Vycy96aGFuZy9wcm9qZWN0L29wZW5zb3Vy
Y2UvV2ViS2l0L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoxMjgwCiMzMCAweDAwMDAw
MDAxMDE4MDA1MjUgaW4gV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnVybFNlbGVjdGVkICh0aGlzPTB4
MTA5ODFmNjUwLCByZXF1ZXN0PUAweDdmZmY1ZmJmZTU3MCwgcGFzc2VkVGFyZ2V0PUAweDEwMGE2
YjM2MCwgdHJpZ2dlcmluZ0V2ZW50PUAweDdmZmY1ZmJmZTU2MCwgbG9ja0hpc3Rvcnk9ZmFsc2Us
IGxvY2tCYWNrRm9yd2FyZExpc3Q9ZmFsc2UsIHVzZXJHZXN0dXJlPXRydWUsIHJlZmVycmVyUG9s
aWN5PVdlYkNvcmU6OlNlbmRSZWZlcnJlciwgc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2Ny
aXB0VVJMPVdlYkNvcmU6OkRvTm90UmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKSBhdCAv
VXNlcnMvemhhbmcvcHJvamVjdC9vcGVuc291cmNlL1dlYktpdC9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHA6MzAxCiMzMSAweDAwMDAwMDAxMDE4MDA2NTEgaW4gV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OnVybFNlbGVjdGVkICh0aGlzPTB4MTA5ODFmNjUwLCB1cmw9QDB4N2ZmZjVmYmZlNzIw
LCBwYXNzZWRUYXJnZXQ9QDB4MTAwYTZiMzYwLCB0cmlnZ2VyaW5nRXZlbnQ9QDB4N2ZmZjVmYmZl
NzYwLCBsb2NrSGlzdG9yeT1mYWxzZSwgbG9ja0JhY2tGb3J3YXJkTGlzdD1mYWxzZSwgdXNlckdl
c3R1cmU9dHJ1ZSwgcmVmZXJyZXJQb2xpY3k9V2ViQ29yZTo6U2VuZFJlZmVycmVyKSBhdCAvVXNl
cnMvemhhbmcvcHJvamVjdC9vcGVuc291cmNlL1dlYktpdC9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHA6Mjc3CiMzMiAweDAwMDAwMDAxMDE4ODQzOGQgaW4gV2ViQ29yZTo6SFRNTEFuY2hv
ckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIgKHRoaXM9MHgxMDYxYzEyYjAsIGV2dD0weDEx
NTEyN2FhMCkgYXQgL1VzZXJzL3poYW5nL3Byb2plY3Qvb3BlbnNvdXJjZS9XZWJLaXQvV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoxOTkKIzMzIDB4MDAwMDAwMDEwMWNmZDBmZiBp
biBXZWJDb3JlOjpOb2RlOjpkaXNwYXRjaEdlbmVyaWNFdmVudCAodGhpcz0weDEwNjFjMTJiMCwg
cHJwRXZlbnQ9QDB4N2ZmZjVmYmZlOTYwKSBhdCAvVXNlcnMvemhhbmcvcHJvamVjdC9vcGVuc291
cmNlL1dlYktpdC9XZWJDb3JlL2RvbS9Ob2RlLmNwcDoyNzcwCiMzNCAweDAwMDAwMDAxMDFjZmQz
NWQgaW4gV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hFdmVudCAodGhpcz0weDEwNjFjMTJiMCwgcHJw
RXZlbnQ9QDB4N2ZmZjVmYmZlYWYwKSBhdCAvVXNlcnMvemhhbmcvcHJvamVjdC9vcGVuc291cmNl
L1dlYktpdC9XZWJDb3JlL2RvbS9Ob2RlLmNwcDoyNjU0CiMzNSAweDAwMDAwMDAxMDFjZmI1YzUg
aW4gV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hNb3VzZUV2ZW50ICh0aGlzPTB4MTA2MWMxMmIwLCBl
dmVudFR5cGU9QDB4MTEzMjE0YzMwLCBidXR0b249MCwgZGV0YWlsPTEsIHBhZ2VYPTQ5LCBwYWdl
WT0yMCwgc2NyZWVuWD01NzMsIHNjcmVlblk9MTE0LCBjdHJsS2V5PWZhbHNlLCBhbHRLZXk9ZmFs
c2UsIHNoaWZ0S2V5PWZhbHNlLCBtZXRhS2V5PWZhbHNlLCBpc1NpbXVsYXRlZD1mYWxzZSwgcmVs
YXRlZFRhcmdldEFyZz0weDAsIHVuZGVybHlpbmdFdmVudD1AMHg3ZmZmNWZiZmVjNzApIGF0IC9V
c2Vycy96aGFuZy9wcm9qZWN0L29wZW5zb3VyY2UvV2ViS2l0L1dlYkNvcmUvZG9tL05vZGUuY3Bw
OjI5NDYKIzM2IDB4MDAwMDAwMDEwMWNmYmFhOSBpbiBXZWJDb3JlOjpOb2RlOjpkaXNwYXRjaE1v
dXNlRXZlbnQgKHRoaXM9MHgxMDYxYzEyYjAsIGV2ZW50PUAweDdmZmY1ZmJmZWY3MCwgZXZlbnRU
eXBlPUAweDExMzIxNGMzMCwgZGV0YWlsPTEsIHJlbGF0ZWRUYXJnZXQ9MHgwKSBhdCAvVXNlcnMv
emhhbmcvcHJvamVjdC9vcGVuc291cmNlL1dlYktpdC9XZWJDb3JlL2RvbS9Ob2RlLmNwcDoyODU1
CiMzNyAweDAwMDAwMDAxMDE3OTYyMWUgaW4gV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRj
aE1vdXNlRXZlbnQgKHRoaXM9MHgxMDk4MWZkNDgsIGV2ZW50VHlwZT1AMHgxMTMyMTRjMzAsIHRh
cmdldE5vZGU9MHgxMDYxYTkxOTAsIGNsaWNrQ291bnQ9MSwgbW91c2VFdmVudD1AMHg3ZmZmNWZi
ZmVmNzAsIHNldFVuZGVyPXRydWUpIGF0IC9Vc2Vycy96aGFuZy9wcm9qZWN0L29wZW5zb3VyY2Uv
V2ViS2l0L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwOjE4NDUKIzM4IDB4MDAwMDAwMDEw
MTc5OWM2ZSBpbiBXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50
ICh0aGlzPTB4MTA5ODFmZDQ4LCBtb3VzZUV2ZW50PUAweDdmZmY1ZmJmZWY3MCkgYXQgL1VzZXJz
L3poYW5nL3Byb2plY3Qvb3BlbnNvdXJjZS9XZWJLaXQvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHA6MTU3MwojMzkgMHgwMDAwMDAwMTAxN2EyMWI5IGluIFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6bW91c2VVcCAodGhpcz0weDEwOTgxZmQ0OCwgZXZlbnQ9MHgxMTUxM2ZkYjApIGF0IC9Vc2Vy
cy96aGFuZy9wcm9qZWN0L29wZW5zb3VyY2UvV2ViS2l0L1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRI
YW5kbGVyTWFjLm1tOjUzNAojNDAgMHgwMDAwMDAwMTAwZjJjZTNlIGluIC1bV2ViSFRNTFZpZXcg
bW91c2VVcDpdIChzZWxmPTB4MTA2MWMwOTQwLCBfY21kPTB4N2ZmZjg1NGQ5N2M0LCBldmVudD0w
eDExNTEzZmRiMCkgYXQgL1VzZXJzL3poYW5nL3Byb2plY3Qvb3BlbnNvdXJjZS9XZWJLaXQvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOjM3MzcKIzQxIDB4MDAwMDdmZmY4NGVkMzdl
ZCBpbiAtW05TV2luZG93IHNlbmRFdmVudDpdICgpCiM0MiAweDAwMDAwMDAxMDAwNDE4OTEgaW4g
Pz8gKCkKIzQzIDB4MDAwMDAwMDEwMDA0MTgxZCBpbiA/PyAoKQojNDQgMHgwMDAwN2ZmZjg0ZTA4
ZWUyIGluIC1bTlNBcHBsaWNhdGlvbiBzZW5kRXZlbnQ6XSAoKQojNDUgMHgwMDAwMDAwMTAwMDM4
NTYyIGluID8/ICgpCiM0NiAweDAwMDA3ZmZmODRkOWY5MjIgaW4gLVtOU0FwcGxpY2F0aW9uIHJ1
bl0gKCkKIzQ3IDB4MDAwMDdmZmY4NGQ5ODVmOCBpbiBOU0FwcGxpY2F0aW9uTWFpbiAoKQojNDgg
MHgwMDAwMDAwMTAwMDA5ODBjIGluID8/ICgpCkN1cnJlbnQgbGFuZ3VhZ2U6ICBhdXRvOyBjdXJy
ZW50bHkgYysrCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65188</attachid>
            <date>2010-08-23 17:38:52 -0700</date>
            <delta_ts>2010-08-23 17:42:15 -0700</delta_ts>
            <desc>remove redundant forward slashes.</desc>
            <filename>double_slash.patch</filename>
            <type>text/plain</type>
            <size>3835</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTg0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDgtMjMgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5n
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBc3NlcnRpb24gZmFpbHVyZSBhdCBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVu
dGlhbFN0b3JhZ2UuY3BwOjg1LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDQ0NjEKKworICAgICAgICBSZW1vdmUgcmVkdW5kYW50IGZvcndhcmQgc2xh
c2hlcyBpbiBkaXJlY3RvcnlVUkwgZXZlbiB0aG91Z2ggbXVsdGlwbGUgc2xhc2hlcyBhcmUgdmFs
aWQgaW4gVVJMLiAgVGhpcworICAgICAgICBmaXhlcyB0aGUgYXNzZXJ0aW9uIGZhaWx1cmUgYW5k
IHBvc3NpYmxlIHByb3RlY3Rpb25TcGFjZSBtYXBwaW5nIGZhaWx1cmUgd2hlbiB0d28gVVJMcyBk
aWZmZXIgb25seSBvbgorICAgICAgICByZWR1bmRhbnQgc2xhc2hlcyBhbmQgdGhleSBhcmUgZXNz
ZW50aWFsbHkgdGhlIHNhbWUuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9hc3NlcnRpb25faW5fY3JlZGVudGlhbF9zdG9yYWdlLmh0bWwKKworICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVVSTCk6CisKIDIwMTAtMDgtMjMgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNw
cAkocmV2aXNpb24gNjU4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlh
bFN0b3JhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw2ICs3Nyw5IEBAIHN0YXRpYyBTdHJp
bmcgcHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVUKICAgICBpZiAoZGlyZWN0b3J5VVJMLmxlbmd0
aCgpID4gZGlyZWN0b3J5VVJMUGF0aFN0YXJ0ICsgMSkgewogICAgICAgICBzaXplX3QgaW5kZXgg
PSBkaXJlY3RvcnlVUkwucmV2ZXJzZUZpbmQoJy8nKTsKICAgICAgICAgQVNTRVJUKGluZGV4ICE9
IG5vdEZvdW5kKTsKKyAgICAgICAgd2hpbGUgKGluZGV4ID4gMCAmJiBkaXJlY3RvcnlVUkxbaW5k
ZXgtMV0gPT0gJy8nKQorICAgICAgICAgICAgaW5kZXgtLTsKKwogICAgICAgICBkaXJlY3RvcnlV
UkwgPSBkaXJlY3RvcnlVUkwuc3Vic3RyaW5nKDAsIChpbmRleCAhPSBkaXJlY3RvcnlVUkxQYXRo
U3RhcnQpID8gaW5kZXggOiBkaXJlY3RvcnlVUkxQYXRoU3RhcnQgKyAxKTsKICAgICB9CiAgICAg
QVNTRVJUKGRpcmVjdG9yeVVSTC5sZW5ndGgoKSA9PSBkaXJlY3RvcnlVUkxQYXRoU3RhcnQgKyAx
IHx8IGRpcmVjdG9yeVVSTFtkaXJlY3RvcnlVUkwubGVuZ3RoKCkgLSAxXSAhPSAnLycpOwpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNjU4NDcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wOC0yMyAgWW9uZ2p1biBaaGFuZyAgPHlvbmdq
dW5femhhbmdAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDQ2
MQorICAgICAgICBBc3NlcnRpb24gZmFpbHVyZSBhdCBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Q3JlZGVudGlhbFN0b3JhZ2UuY3BwOjg1LgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gdmVyaWZ5
IHRoZSBhc3NlcnRpb24gZmFpbHVyZSBkb2Vzbid0IGhhcHBlbiBhZnRlciB0aGUgZml4LgorCisg
ICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hc3NlcnRpb25faW5fY3JlZGVudGlh
bF9zdG9yYWdlLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA4LTIzICBEdW1pdHJ1IERhbmlsaXVjICA8
ZHVtaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdXBkYXRpbmcgQ2hyb21p
dW0gZXhwZWN0YXRpb25zLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9hc3NlcnRpb25faW5fY3JlZGVudGlhbF9zdG9yYWdlLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hc3NlcnRpb25faW5fY3JlZGVu
dGlhbF9zdG9yYWdlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L2Fzc2VydGlvbl9pbl9jcmVkZW50aWFsX3N0b3JhZ2UuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorPGJvZHk+Cis8cD5EdW1wUmVuZGVyVHJlZSBzaG91
bGRuJ3QgY3Jhc2ggb24gbG9hZGluZyB0aGlzIHBhZ2UuPC9wPgorPGRpdiBpZD0icmVzdWx0Ij48
L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKQorfQorCitmdW5jdGlvbiBzZW5kV2l0aENyZWRlbnRpYWxzKCkK
K3sKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworICAgIHhoci5vcGVuKCJHRVQi
LCAicmVzb3VyY2VzL3JlbWVtYmVyLWJhZC1wYXNzd29yZC9jb3VudC1mYWlsdXJlcy5waHAiLCBm
YWxzZSwgImZvbyIsICJiYXIiKTsKKyAgICB4aHIuc2VuZCgiIik7Cit9CisKK2Z1bmN0aW9uIHNl
bmRXaXRob3V0Q3JlZGVudGlhbHMoKQoreworICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVl
c3Q7CisgICAgeGhyLm9wZW4oIkdFVCIsICJyZXNvdXJjZXMvcmVtZW1iZXItYmFkLXBhc3N3b3Jk
Ly9jb3VudC1mYWlsdXJlcy5waHAiLCBmYWxzZSk7CisgICAgeGhyLnNlbmQoIiIpOworfQorCitm
dW5jdGlvbiByZXNldCgpCit7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKKyAg
ICB4aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9yZW1lbWJlci1iYWQtcGFzc3dvcmQvY291bnQt
ZmFpbHVyZXMucGhwP2NvbW1hbmQ9cmVzZXQiLCBmYWxzZSk7CisgICAgeGhyLnNlbmQoIiIpOwor
fQorCitzZW5kV2l0aENyZWRlbnRpYWxzKCk7CitzZW5kV2l0aG91dENyZWRlbnRpYWxzKCk7City
ZXNldCgpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MPSJQ
QVNTIjsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65189</attachid>
            <date>2010-08-23 17:42:15 -0700</date>
            <delta_ts>2010-08-23 18:43:39 -0700</delta_ts>
            <desc>remove redundant forward slashes. (add new line at end of test file).</desc>
            <filename>double_slash.patch</filename>
            <type>text/plain</type>
            <size>3807</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTg0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDgtMjMgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5n
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBc3NlcnRpb24gZmFpbHVyZSBhdCBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVu
dGlhbFN0b3JhZ2UuY3BwOjg1LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDQ0NjEKKworICAgICAgICBSZW1vdmUgcmVkdW5kYW50IGZvcndhcmQgc2xh
c2hlcyBpbiBkaXJlY3RvcnlVUkwgZXZlbiB0aG91Z2ggbXVsdGlwbGUgc2xhc2hlcyBhcmUgdmFs
aWQgaW4gVVJMLiAgVGhpcworICAgICAgICBmaXhlcyB0aGUgYXNzZXJ0aW9uIGZhaWx1cmUgYW5k
IHBvc3NpYmxlIHByb3RlY3Rpb25TcGFjZSBtYXBwaW5nIGZhaWx1cmUgd2hlbiB0d28gVVJMcyBk
aWZmZXIgb25seSBvbgorICAgICAgICByZWR1bmRhbnQgc2xhc2hlcyBhbmQgdGhleSBhcmUgZXNz
ZW50aWFsbHkgdGhlIHNhbWUuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9hc3NlcnRpb25faW5fY3JlZGVudGlhbF9zdG9yYWdlLmh0bWwKKworICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVVSTCk6CisKIDIwMTAtMDgtMjMgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNw
cAkocmV2aXNpb24gNjU4MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlh
bFN0b3JhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw2ICs3Nyw5IEBAIHN0YXRpYyBTdHJp
bmcgcHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVUKICAgICBpZiAoZGlyZWN0b3J5VVJMLmxlbmd0
aCgpID4gZGlyZWN0b3J5VVJMUGF0aFN0YXJ0ICsgMSkgewogICAgICAgICBzaXplX3QgaW5kZXgg
PSBkaXJlY3RvcnlVUkwucmV2ZXJzZUZpbmQoJy8nKTsKICAgICAgICAgQVNTRVJUKGluZGV4ICE9
IG5vdEZvdW5kKTsKKyAgICAgICAgd2hpbGUgKGluZGV4ID4gMCAmJiBkaXJlY3RvcnlVUkxbaW5k
ZXgtMV0gPT0gJy8nKQorICAgICAgICAgICAgaW5kZXgtLTsKKwogICAgICAgICBkaXJlY3RvcnlV
UkwgPSBkaXJlY3RvcnlVUkwuc3Vic3RyaW5nKDAsIChpbmRleCAhPSBkaXJlY3RvcnlVUkxQYXRo
U3RhcnQpID8gaW5kZXggOiBkaXJlY3RvcnlVUkxQYXRoU3RhcnQgKyAxKTsKICAgICB9CiAgICAg
QVNTRVJUKGRpcmVjdG9yeVVSTC5sZW5ndGgoKSA9PSBkaXJlY3RvcnlVUkxQYXRoU3RhcnQgKyAx
IHx8IGRpcmVjdG9yeVVSTFtkaXJlY3RvcnlVUkwubGVuZ3RoKCkgLSAxXSAhPSAnLycpOwpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNjU4NDcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wOC0yMyAgWW9uZ2p1biBaaGFuZyAgPHlvbmdq
dW5femhhbmdAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFzc2VydGlvbiBmYWlsdXJlIGF0IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9DcmVkZW50aWFsU3RvcmFnZS5jcHA6ODUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NDQ2MQorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gdmVyaWZ5
IHRoZSBhc3NlcnRpb24gZmFpbHVyZSBkb2Vzbid0IGhhcHBlbiBhZnRlciB0aGUgZml4LgorCisg
ICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hc3NlcnRpb25faW5fY3JlZGVudGlh
bF9zdG9yYWdlLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA4LTIzICBEdW1pdHJ1IERhbmlsaXVjICA8
ZHVtaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdXBkYXRpbmcgQ2hyb21p
dW0gZXhwZWN0YXRpb25zLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9hc3NlcnRpb25faW5fY3JlZGVudGlhbF9zdG9yYWdlLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hc3NlcnRpb25faW5fY3JlZGVu
dGlhbF9zdG9yYWdlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L2Fzc2VydGlvbl9pbl9jcmVkZW50aWFsX3N0b3JhZ2UuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorPGJvZHk+Cis8cD5EdW1wUmVuZGVyVHJlZSBzaG91
bGRuJ3QgY3Jhc2ggb24gbG9hZGluZyB0aGlzIHBhZ2UuPC9wPgorPGRpdiBpZD0icmVzdWx0Ij48
L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKQorfQorCitmdW5jdGlvbiBzZW5kV2l0aENyZWRlbnRpYWxzKCkK
K3sKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworICAgIHhoci5vcGVuKCJHRVQi
LCAicmVzb3VyY2VzL3JlbWVtYmVyLWJhZC1wYXNzd29yZC9jb3VudC1mYWlsdXJlcy5waHAiLCBm
YWxzZSwgImZvbyIsICJiYXIiKTsKKyAgICB4aHIuc2VuZCgiIik7Cit9CisKK2Z1bmN0aW9uIHNl
bmRXaXRob3V0Q3JlZGVudGlhbHMoKQoreworICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVl
c3Q7CisgICAgeGhyLm9wZW4oIkdFVCIsICJyZXNvdXJjZXMvcmVtZW1iZXItYmFkLXBhc3N3b3Jk
Ly9jb3VudC1mYWlsdXJlcy5waHAiLCBmYWxzZSk7CisgICAgeGhyLnNlbmQoIiIpOworfQorCitm
dW5jdGlvbiByZXNldCgpCit7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKKyAg
ICB4aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9yZW1lbWJlci1iYWQtcGFzc3dvcmQvY291bnQt
ZmFpbHVyZXMucGhwP2NvbW1hbmQ9cmVzZXQiLCBmYWxzZSk7CisgICAgeGhyLnNlbmQoIiIpOwor
fQorCitzZW5kV2l0aENyZWRlbnRpYWxzKCk7CitzZW5kV2l0aG91dENyZWRlbnRpYWxzKCk7City
ZXNldCgpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MPSJQ
QVNTIjsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
</data>
<flag name="review"
          id="53887"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="53902"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65307</attachid>
            <date>2010-08-24 12:27:34 -0700</date>
            <delta_ts>2010-08-25 04:37:17 -0700</delta_ts>
            <desc>Remove the assertion because it is legal to have multiple trailing slashes after the path component.</desc>
            <filename>assertion_credential_storeage.patch</filename>
            <type>text/plain</type>
            <size>1415</size>
            <attacher name="Yongjun Zhang">yongjun.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTkyMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDgtMjQgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5n
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0NjEKKyAgICAg
ICAgQXNzZXJ0aW9uIGZhaWx1cmUgYXQgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRp
YWxTdG9yYWdlLmNwcDo4NS4KKworICAgICAgICBSZW1vdmUgdGhlIGFzc2VydGlvbiBhdCBDcmVk
ZW50aWFsU3RvcmFnZS5jcHA6ODUgc2luY2UgaXQgaXMgbGVnYWwgdG8gaGF2ZQorICAgICAgICBt
dWx0aXBsZSBmb3J3YXJkIHNsYXNoZXMgYWZ0ZXIgdGhlIHBhdGggY29tcG9uZW50LgorCisgICAg
ICAgIE5vIHRlc3QgbmVlZGVkLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9DcmVkZW50
aWFsU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm90ZWN0aW9uU3BhY2VNYXBLZXlG
cm9tVVJMKToKKwogMjAxMC0wOC0yNCAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAJKHJldmlz
aW9uIDY1OTE5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNiBAQCBzdGF0aWMgU3RyaW5nIHByb3Rl
Y3Rpb25TcGFjZU1hcEtleUZyb21VCiAgICAgICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7
CiAgICAgICAgIGRpcmVjdG9yeVVSTCA9IGRpcmVjdG9yeVVSTC5zdWJzdHJpbmcoMCwgKGluZGV4
ICE9IGRpcmVjdG9yeVVSTFBhdGhTdGFydCkgPyBpbmRleCA6IGRpcmVjdG9yeVVSTFBhdGhTdGFy
dCArIDEpOwogICAgIH0KLSAgICBBU1NFUlQoZGlyZWN0b3J5VVJMLmxlbmd0aCgpID09IGRpcmVj
dG9yeVVSTFBhdGhTdGFydCArIDEgfHwgZGlyZWN0b3J5VVJMW2RpcmVjdG9yeVVSTC5sZW5ndGgo
KSAtIDFdICE9ICcvJyk7CiAKICAgICByZXR1cm4gZGlyZWN0b3J5VVJMOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>