<?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>25487</bug_id>
          
          <creation_ts>2009-04-30 12:00:46 -0700</creation_ts>
          <short_desc>windows-949 returned by document.{charset,characterset}  is not recognized by Korean advertising servers</short_desc>
          <delta_ts>2009-05-05 22:38:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://adx.qubi.com/openx/www/delivery/ajs.php?zoneid=35&amp;cb=1000&amp;charset=windows-949</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="Jungshik Shin">jshin</reporter>
          <assigned_to name="Jungshik Shin">jshin</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>119493</commentid>
    <comment_count>0</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-04-30 12:00:46 -0700</bug_when>
    <thetext>1. Go to http://www.qubi.com (Korean Railroad) 
2. The ad frame in the middle of the page has garbled characters (UTF-8 interpreted as EUC-KR)

That frame is at http://file.qubi.com/sg_framework/sg_framework_top/season2/adserver_www_010.html
and uses &apos;document.write()&apos; for &lt;script&gt;.  It has a meta charset declaration (&apos;charset=euc-kr&apos; at the top). 

When constructing a URL for an ad to show, it uses document.charset to pass to the server as a cgi param (charset). 

Because Webkit (that uses ICU) maps euc-kr to windows-949 (its superset), document.charset returns &apos;windows-949&apos;. An example URL constructed as a result is like this:

http://adx.qubi.com/openx/www/delivery/ajs.php?zoneid=35&amp;cb=1000&amp;charset=windows-949

Unfortunately, it&apos;s not recognized by most Korean web servers. 

Firefox (although it treats EUC-KR as windows-949 for converting to Unicode) still uses euc-kr and the following url is constructed and the web server at qubi.com emits EUC-KR strings back.

http://adx.qubi.com/openx/www/delivery/ajs.php?zoneid=35&amp;cb=1000&amp;charset=EUC-KR

http://adx.qubi.com/openx/www/delivery/ajs.php?zoneid=35&amp;cb=1000&amp;charset=UTF-8 also works. 

I was mildly worried about this issue, but bit the bullet (of unforking Chrome&apos;s copy of TextCodecICU.cpp to match Webkit trunk) because I thought there&apos;d not be many web servers relying on docuement.charset value. It appears that some ad serving web servers (in Korea) use this technique to show ads in pages in both UTF-8 and EUC-KR

In the past (before Chrome unforked its copy of TextCodecICU.cpp), it modified ICU&apos;s charset alias table to treat EUC-KR the same as windows-949 but left alone TextCodecICU.cpp (as a result, document.charset returns &apos;EUC-KR&apos; in Chrome in the past). Because Safari can&apos;t touch the charset alias table on ICU, it&apos;s not applicable to Webkit in general. 

A quick (and perhaps dirty fix) would be to add an exception to Document::encoding() to make it return &apos;EUC-KR&apos; when encoding name is &apos;windows-949&apos;.  Perhaps, there&apos;s a better way to deal with this in TextCodecICU.cpp. I haven&apos;t yet given much thought to that possibility. 

It&apos;s a Chromium bug 11242 :
http://code.google.com/p/chromium/issues/detail?id=11242</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119496</commentid>
    <comment_count>1</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-04-30 12:02:34 -0700</bug_when>
    <thetext>*** Bug 25488 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119500</commentid>
    <comment_count>2</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-04-30 12:08:31 -0700</bug_when>
    <thetext>I forgot to mention that &apos;windows-949&apos; is not yet an IANA-registered name (unlike windows-12xx and windows-874). So, we can&apos;t blame web servers for not recognizing the name. 
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119604</commentid>
    <comment_count>3</comment_count>
      <attachid>29943</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-05-01 10:54:01 -0700</bug_when>
    <thetext>Created attachment 29943
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119607</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-01 11:04:43 -0700</bug_when>
    <thetext>If this patch is intended for review, you should mark it r=?.  No target reviewer is necessary you can leave that field blank.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119608</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-01 11:06:25 -0700</bug_when>
    <thetext>This seems like a pretty heavy way to make this change.  I don&apos;t know how expensive it is to create a TextEncoding object, but it seems there would be a more surgical way to make this change.  Like a TextEncoding::displayName() method or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119630</commentid>
    <comment_count>6</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-05-01 14:07:15 -0700</bug_when>
    <thetext>Thank you for your suggestion. 

(In reply to comment #5)
&gt; This seems like a pretty heavy way to make this change.  I don&apos;t know how
&gt; expensive it is to create a TextEncoding object, but it seems there would be a
&gt; more surgical way to make this change.  Like a TextEncoding::displayName()
&gt; method or something.

Yeah, I&apos;ve been looking for a better way to solve this issue and that&apos;s why I haven&apos;t asked for review, yet. displayName() is one of ways I&apos;ve been considering. 

Constructing TextEncoding is not very expensive (I believe. It takes canonicalizing, which is done by looking up the alias table, and slashAsCurrencyCheck). Anyway, it seems that adding displayName() is a cleaner way than what I have now. (I don&apos;t like changing Document.cpp in my patch).

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119646</commentid>
    <comment_count>7</comment_count>
      <attachid>29952</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-05-01 17:13:37 -0700</bug_when>
    <thetext>Created attachment 29952
updated patch (added displayName() to TextEncoding class)

added displayName() to TextEncoding class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119657</commentid>
    <comment_count>8</comment_count>
      <attachid>29952</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-05-02 00:44:46 -0700</bug_when>
    <thetext>Comment on attachment 29952
updated patch (added displayName() to TextEncoding class)

+        * dom/Document.cpp:
+        (WebCore::Document::encoding):
+        * platform/text/TextEncoding.cpp:
+        (WebCore::TextEncoding::displayName):
+        * platform/text/TextEncoding.h:

It is best to describe individual changes to functions in ChangeLog - this is why prepare-ChangeLog generates this list.

+const char* TextEncoding::displayName() const {

The brace should go to next line.

+    // We treat EUC-KR as windows-949 (its superset), but need to expose 
+    // &apos;EUC-KR&apos; because &apos;windows-949&apos; is not recognized by most Korean
+    // web servers. 

This comment is somewhat misleading, because most Korean Web servers do not care about how the engine calls this encoding internally, and have no way of knowing that. It is only a certain (quite weird) technique of serving JavaScript ads that is affected.

+    static const char* const a = atomicCanonicalTextEncodingName(&quot;windows-949&quot;);

The TextEncoding class is used from multiple threads, so using static data without any protection or explicit initialization is dangerous. This method is not currently called from secondary threads, and this problem is already present in other methods of this class, so I&apos;m not requesting that you fix it now - but we should do that some day.

+    return m_name != a ? m_name : &quot;EUC-KR&quot;;

A &quot;==&quot; check or an if with early return would be slightly easier to read.

+        const char* displayName() const;

This function name is a bit misleading, it sounds like a name used for rendering. Maybe domName() would be better? If you prefer displayName(), please add a short comment in the header.

+2009-05-01  Jungshik Shin  &lt;jshin@chromium.org&gt;
+
+        Reviewed by NOBODY (OOPS!).
+
+        http://bugs.webkit.org/show_bug.cgi?id=25487
+
+        For euc-kr and other 8bit Korean encodings 
+        (similar to euc-kr/windows-949), make document.charset return
+        EUC-KR instead of windows-949. The latter is not recognized by
+        Korean web servers.

No need to copy a description of WebCore changes to LayoutTests ChangeLog.

+  var charset = document.characterSet;
+  if (!charset)
+    charset = document.charset;
+  if (!charset)
+    charset = document.inputEncoding;
+  document.write(&quot;Encoding: &quot; + charset + &quot; (should be EUC-KR)&quot;);

Perhaps we should check all of these properties for having a correct value, not just the first one that happens to be non-undefined?

All of the above are nitpicks, but I have one comment that may be substantial. This patch makes WebKit behavior weird and incompatible in the following case:

&lt;meta charset=&quot;x-windows-949&quot;&gt;
&lt;script&gt;alert(document.characterSet)&lt;/script&gt;

Firefox alerts &quot;x-windows-949&quot;, WebKit ToT alerts &quot;windows-949&quot;, but with this patch, it will be &quot;EUC-KR&quot;, which I think is a regression.

There are three options that I can see:
1) Ignore this problem for now, as it&apos;s unlikely that there are any servers using x-windows-949 encoding name.
2) Make the document remember the original name for its encoding.
3) Make TextEncoding do that.

If the servers in question supported &quot;w-windows-949&quot;, we could also consider making that the canonical name, but unfortunately, adx.qubi.com does not recognize it.

r- for now, as even if you prefer option 1, there is enough nitpicks to justify another quick review round.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119678</commentid>
    <comment_count>9</comment_count>
      <attachid>29959</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-05-02 09:46:10 -0700</bug_when>
    <thetext>Created attachment 29959
updated patch addressing ap&apos;s concerns

Thank you for the review. Can you take another look? 

I addressed all the comments except for the last one. I took #1 because x-windows-949 is very rarely - if ever - used by a web server. It&apos;s basically my &apos;invention&apos; (used internally in Gecko not meant to be exposed although it&apos;s when &apos;x-windows-949&apos; or &apos;ks_c_5601-1987&apos; - a wrong name to use to begin with - is specified by a web server).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119682</commentid>
    <comment_count>10</comment_count>
      <attachid>29959</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-05-02 11:12:38 -0700</bug_when>
    <thetext>Comment on attachment 29959
updated patch addressing ap&apos;s concerns

-        return d-&gt;encoding().name();
+        return d-&gt;encoding().displayName();

Please make sure that WebKit builds before landing - this should be domName().

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119708</commentid>
    <comment_count>11</comment_count>
      <attachid>29961</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-05-02 15:29:12 -0700</bug_when>
    <thetext>Created attachment 29961
patch same as before except for the one line fix (ready for check-in)

Thank you for catching that. I ran the layout test without rebuilding Webkit. Stupid me. I rebuilt and reran the test. 

Transferring r+ because that&apos;s just s/displayName/domName/ in Document.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120063</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-05 22:38:16 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/encoding/euckr-name-expected.txt
	A	LayoutTests/fast/encoding/euckr-name.html
	M	WebCore/ChangeLog
	M	WebCore/dom/Document.cpp
	M	WebCore/platform/text/TextEncoding.cpp
	M	WebCore/platform/text/TextEncoding.h
Committed r43279
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29943</attachid>
            <date>2009-05-01 10:54:01 -0700</date>
            <delta_ts>2009-05-01 17:13:37 -0700</delta_ts>
            <desc>patch </desc>
            <filename>25487.patch.1b</filename>
            <type>text/plain</type>
            <size>3344</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MzEwNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDQtMzAgIEp1bmdzaGlrIFNoaW4gIDxqc2hpbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0ODcKKworICAgICAgICBG
b3IgZXVjLWtyIGFuZCBvdGhlciA4Yml0IEtvcmVhbiBlbmNvZGluZ3MgCisgICAgICAgIChzaW1p
bGFyIHRvIGV1Yy1rci93aW5kb3dzLTk0OSksIG1ha2UgZG9jdW1lbnQuY2hhcnNldCByZXR1cm4K
KyAgICAgICAgRVVDLUtSIGluc3RlYWQgb2Ygd2luZG93cy05NDkuIFRoZSBsYXR0ZXIgaXMgbm90
IHJlY29nbml6ZWQgYnkKKyAgICAgICAgS29yZWFuIHdlYiBzZXJ2ZXJzLgorCisgICAgICAgIFRl
c3Q6IGZhc3QvZW5jb2RpbmcvZXVja3ItbmFtZS5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmVuY29kaW5nKToKKwogMjAwOS0w
NC0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQnJhZHkgRWlkc29uLgpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNDI5NDQpCisrKyBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0OCw4ICs4NDgsMTEgQEAg
U3RyaW5nIERvY3VtZW50OjpyZWFkeVN0YXRlKCkgY29uc3QKIAogU3RyaW5nIERvY3VtZW50Ojpl
bmNvZGluZygpIGNvbnN0CiB7Ci0gICAgaWYgKFRleHRSZXNvdXJjZURlY29kZXIqIGQgPSBkZWNv
ZGVyKCkpCi0gICAgICAgIHJldHVybiBkLT5lbmNvZGluZygpLm5hbWUoKTsKKyAgICBpZiAoVGV4
dFJlc291cmNlRGVjb2RlciogZCA9IGRlY29kZXIoKSkgeworICAgICAgICBpZiAoZC0+ZW5jb2Rp
bmcoKSAhPSBUZXh0RW5jb2RpbmcoIndpbmRvd3MtOTQ5IikpCisgICAgICAgICAgICByZXR1cm4g
ZC0+ZW5jb2RpbmcoKS5uYW1lKCk7CisgICAgICAgIHJldHVybiAiRVVDLUtSIjsKKyAgICB9CiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MzEwNikKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDA5
LTA0LTMwICBKdW5nc2hpayBTaGluICA8anNoaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBldWMta3IgYW5kIG90aGVy
IDhiaXQgS29yZWFuIGVuY29kaW5ncyAKKyAgICAgICAgKHNpbWlsYXIgdG8gZXVjLWtyL3dpbmRv
d3MtOTQ5KSwgbWFrZSBkb2N1bWVudC5jaGFyc2V0IHJldHVybgorICAgICAgICBFVUMtS1IgaW5z
dGVhZCBvZiB3aW5kb3dzLTk0OS4gVGhlIGxhdHRlciBpcyBub3QgcmVjb2duaXplZCBieQorICAg
ICAgICBLb3JlYW4gd2ViIHNlcnZlcnMuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjU0ODcKKworICAgICAgICAqIGZhc3QvZW5jb2RpbmcvZXVja3It
bmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvZXVja3It
bmFtZS5odG1sOiBBZGRlZC4KKwogMjAwOS0wNC0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9ldWNrci1uYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2V1Y2tyLW5hbWUtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9ldWNrci1uYW1lLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUZXN0IGZvciBidWcgMjU0ODcuIEV2
ZW4gdGhvdWdoIHdlIHRyZWF0IEVVQy1LUiBhcyB3aW5kb3dzLTk0OSwgdGhlIG5hbWUgZXhwb3Nl
ZCB2aWEgRE9NIEFQSXMgc2hvdWxkIHN0aWxsIGJlIEVVQy1LUi4KKworRW5jb2Rpbmc6IEVVQy1L
UiAoc2hvdWxkIGJlIEVVQy1LUikKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvZXVj
a3ItbmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvZXVj
a3ItbmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9l
dWNrci1uYW1lLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg
Y2hhcnNldD1ldWMta3IiIC8+Cis8L2hlYWQ+Cis8Qk9EWT4KKzxwPlRlc3QgZm9yIGJ1ZyAyNTQ4
Ny4gRXZlbiB0aG91Z2ggd2UgdHJlYXQgRVVDLUtSIGFzIHdpbmRvd3MtOTQ5LCB0aGUgbmFtZSBl
eHBvc2VkIHZpYSBET00gQVBJcyBzaG91bGQgc3RpbGwgYmUgRVVDLUtSLjwvcD4gIAorPHNjcmlw
dD4KKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgdmFyIGNoYXJzZXQgPSBkb2N1bWVudC5jaGFyYWN0
ZXJTZXQ7CisgIGlmICghY2hhcnNldCkKKyAgICBjaGFyc2V0ID0gZG9jdW1lbnQuY2hhcnNldDsK
KyAgaWYgKCFjaGFyc2V0KQorICAgIGNoYXJzZXQgPSBkb2N1bWVudC5pbnB1dEVuY29kaW5nOwor
ICBkb2N1bWVudC53cml0ZSgiRW5jb2Rpbmc6ICIgKyBjaGFyc2V0ICsgIiAoc2hvdWxkIGJlIEVV
Qy1LUikiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29952</attachid>
            <date>2009-05-01 17:13:37 -0700</date>
            <delta_ts>2009-05-02 09:46:10 -0700</delta_ts>
            <desc>updated patch (added displayName() to TextEncoding class)</desc>
            <filename>25487.patch.2</filename>
            <type>text/plain</type>
            <size>5235</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MzEyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMDktMDUtMDEgIEp1bmdzaGlrIFNoaW4gIDxqc2hpbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0ODcKKworICAgICAgICBG
b3IgZXVjLWtyIGFuZCBvdGhlciA4Yml0IEtvcmVhbiBlbmNvZGluZ3MKKyAgICAgICAgKHNpbWls
YXIgdG8gZXVjLWtyL3dpbmRvd3MtOTQ5KSwgbWFrZSBkb2N1bWVudC5jaGFyc2V0IHJldHVybgor
ICAgICAgICBFVUMtS1IgaW5zdGVhZCBvZiB3aW5kb3dzLTk0OS4gVGhlIGxhdHRlciBpcyBub3Qg
cmVjb2duaXplZCBieQorICAgICAgICBLb3JlYW4gd2ViIHNlcnZlcnMuCisKKyAgICAgICAgQWRk
IGRpc3BsYXlOYW1lIG1ldGhvZCB0byBUZXh0RW5jb2RpbmcgdG8gZGVhbCB3aXRoIGNhc2VzIHdo
ZXJlCisgICAgICAgIG91ciBpbnRlcm5hbCBlbmNvZGluZyBuYW1lIGRvZXMgbm90IG1hdGNoIHdo
YXQncyB3aWRlbHkgcmVjb2duaXplZAorICAgICAgICBieSB3ZWIgc2VydmVycy4gQ3VycmVudGx5
LCB0aGUgb25seSBjYXNlIGlzICd3aW5kb3dzLTk0OScgKGludGVybmFsCisgICAgICAgIG5hbWUp
IHZzICdFVUMtS1InLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZW5jb2RpbmcvZXVja3ItbmFtZS5o
dG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmVuY29kaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RW5jb2Rpbmc6OmRpc3BsYXlOYW1lKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5oOgorCiAyMDA5LTA1LTAxICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIg
SHVudCBhbmQgU2FtICJKb24gJ1RoZSBCZWxseScgSG9uZXljdXR0IiBXZWluaWcKSW5kZXg6IFdl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHJldmlzaW9uIDQzMTIyKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04NTEsNyArODUxLDcgQEAgU3RyaW5nIERvY3VtZW50OjpyZWFkeVN0YXRl
KCkgY29uc3QKIFN0cmluZyBEb2N1bWVudDo6ZW5jb2RpbmcoKSBjb25zdAogewogICAgIGlmIChU
ZXh0UmVzb3VyY2VEZWNvZGVyKiBkID0gZGVjb2RlcigpKQotICAgICAgICByZXR1cm4gZC0+ZW5j
b2RpbmcoKS5uYW1lKCk7CisgICAgICAgIHJldHVybiBkLT5lbmNvZGluZygpLmRpc3BsYXlOYW1l
KCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEVuY29kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dEVuY29kaW5nLmNwcAkocmV2aXNpb24gNDMxMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEVuY29kaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDYgKzExNiwxNyBAQCBD
U3RyaW5nIFRleHRFbmNvZGluZzo6ZW5jb2RlKGNvbnN0IFVDaGFyCiAjZW5kaWYKIH0KIAorY29u
c3QgY2hhciogVGV4dEVuY29kaW5nOjpkaXNwbGF5TmFtZSgpIGNvbnN0IHsKKyAgICBpZiAobm9F
eHRlbmRlZFRleHRFbmNvZGluZ05hbWVVc2VkKCkpCisgICAgICAgIHJldHVybiBtX25hbWU7CisK
KyAgICAvLyBXZSB0cmVhdCBFVUMtS1IgYXMgd2luZG93cy05NDkgKGl0cyBzdXBlcnNldCksIGJ1
dCBuZWVkIHRvIGV4cG9zZSAKKyAgICAvLyAnRVVDLUtSJyBiZWNhdXNlICd3aW5kb3dzLTk0OScg
aXMgbm90IHJlY29nbml6ZWQgYnkgbW9zdCBLb3JlYW4KKyAgICAvLyB3ZWIgc2VydmVycy4gCisg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGEgPSBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2Rp
bmdOYW1lKCJ3aW5kb3dzLTk0OSIpOworICAgIHJldHVybiBtX25hbWUgIT0gYSA/IG1fbmFtZSA6
ICJFVUMtS1IiOworfQorCiBib29sIFRleHRFbmNvZGluZzo6dXNlc1Zpc3VhbE9yZGVyaW5nKCkg
Y29uc3QKIHsKICAgICBpZiAobm9FeHRlbmRlZFRleHRFbmNvZGluZ05hbWVVc2VkKCkpCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5oCShyZXZpc2lvbiA0MzEyMikKKysrIFdl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDIs
NiArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBpc1ZhbGlkKCkg
Y29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25z
dCB7IHJldHVybiBtX25hbWU7IH0KKyAgICAgICAgY29uc3QgY2hhciogZGlzcGxheU5hbWUoKSBj
b25zdDsKICAgICAgICAgYm9vbCB1c2VzVmlzdWFsT3JkZXJpbmcoKSBjb25zdDsKICAgICAgICAg
Ym9vbCBpc0phcGFuZXNlKCkgY29uc3Q7CiAgICAgICAgIApJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDMx
MjcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
MiBAQAorMjAwOS0wNS0wMSAgSnVuZ3NoaWsgU2hpbiAgPGpzaGluQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQ4NworCisgICAgICAgIEZvciBldWMta3Ig
YW5kIG90aGVyIDhiaXQgS29yZWFuIGVuY29kaW5ncyAKKyAgICAgICAgKHNpbWlsYXIgdG8gZXVj
LWtyL3dpbmRvd3MtOTQ5KSwgbWFrZSBkb2N1bWVudC5jaGFyc2V0IHJldHVybgorICAgICAgICBF
VUMtS1IgaW5zdGVhZCBvZiB3aW5kb3dzLTk0OS4gVGhlIGxhdHRlciBpcyBub3QgcmVjb2duaXpl
ZCBieQorICAgICAgICBLb3JlYW4gd2ViIHNlcnZlcnMuCisKKyAgICAgICAgQWRkIGRpc3BsYXlO
YW1lIG1ldGhvZCB0byBUZXh0RW5jb2RpbmcgdG8gZGVhbCB3aXRoIGNhc2VzIHdoZXJlCisgICAg
ICAgIG91ciBpbnRlcm5hbCBlbmNvZGluZyBuYW1lIGRvZXMgbm90IG1hdGNoIHdoYXQncyB3aWRl
bHkgcmVjb2duaXplZAorICAgICAgICBieSB3ZWIgc2VydmVycy4gQ3VycmVudGx5LCB0aGUgb25s
eSBjYXNlIGlzICd3aW5kb3dzLTk0OScgKGludGVybmFsCisgICAgICAgIG5hbWUpIHZzICdFVUMt
S1InLgorCisgICAgICAgICogZmFzdC9lbmNvZGluZy9ldWNrci1uYW1lLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9ldWNrci1uYW1lLmh0bWw6IEFkZGVkLgor
CiAyMDA5LTA0LTMwICBLZXZpbiBNY0N1bGxvdWdoICA8a21jY3VsbG91Z2hAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29uIGFuZCBEYXJpbiBBZGxlci4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvZXVja3ItbmFtZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9ldWNrci1uYW1lLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvZXVja3ItbmFt
ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorVGVzdCBmb3IgYnVn
IDI1NDg3LiBFdmVuIHRob3VnaCB3ZSB0cmVhdCBFVUMtS1IgYXMgd2luZG93cy05NDksIHRoZSBu
YW1lIGV4cG9zZWQgdmlhIERPTSBBUElzIHNob3VsZCBzdGlsbCBiZSBFVUMtS1IuCisKK0VuY29k
aW5nOiBFVUMtS1IgKHNob3VsZCBiZSBFVUMtS1IpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL2V1Y2tyLW5hbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL2V1Y2tyLW5hbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZW5jb2RpbmcvZXVja3ItbmFtZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9ZXVjLWtyIiAvPgorPC9oZWFkPgorPEJPRFk+Cis8cD5UZXN0IGZv
ciBidWcgMjU0ODcuIEV2ZW4gdGhvdWdoIHdlIHRyZWF0IEVVQy1LUiBhcyB3aW5kb3dzLTk0OSwg
dGhlIG5hbWUgZXhwb3NlZCB2aWEgRE9NIEFQSXMgc2hvdWxkIHN0aWxsIGJlIEVVQy1LUi48L3A+
ICAKKzxzY3JpcHQ+CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgIHZhciBjaGFyc2V0ID0gZG9jdW1l
bnQuY2hhcmFjdGVyU2V0OworICBpZiAoIWNoYXJzZXQpCisgICAgY2hhcnNldCA9IGRvY3VtZW50
LmNoYXJzZXQ7CisgIGlmICghY2hhcnNldCkKKyAgICBjaGFyc2V0ID0gZG9jdW1lbnQuaW5wdXRF
bmNvZGluZzsKKyAgZG9jdW1lbnQud3JpdGUoIkVuY29kaW5nOiAiICsgY2hhcnNldCArICIgKHNo
b3VsZCBiZSBFVUMtS1IpIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="15012"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29959</attachid>
            <date>2009-05-02 09:46:10 -0700</date>
            <delta_ts>2009-05-02 15:29:12 -0700</delta_ts>
            <desc>updated patch addressing ap&apos;s concerns</desc>
            <filename>25487.patch.2a</filename>
            <type>text/plain</type>
            <size>5609</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MzEyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMDUtMDEgIEp1bmdzaGlrIFNoaW4gIDxqc2hpbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0ODcKKworICAgICAgICBG
b3IgZXVjLWtyIGFuZCBvdGhlciA4Yml0IEtvcmVhbiBlbmNvZGluZ3MKKyAgICAgICAgKHNpbWls
YXIgdG8gZXVjLWtyL3dpbmRvd3MtOTQ5KSwgbWFrZSBkb2N1bWVudC5jaGFyc2V0IHJldHVybgor
ICAgICAgICBFVUMtS1IgaW5zdGVhZCBvZiB3aW5kb3dzLTk0OS4gVGhlIGxhdHRlciBpcyBub3Qg
cmVjb2duaXplZCBieQorICAgICAgICBLb3JlYW4gd2ViIHNlcnZlcnMuCisKKyAgICAgICAgQWRk
IGRvbU5hbWUgbWV0aG9kIHRvIFRleHRFbmNvZGluZyB0byBkZWFsIHdpdGggY2FzZXMgd2hlcmUK
KyAgICAgICAgb3VyIGludGVybmFsIGVuY29kaW5nIG5hbWUgZG9lcyBub3QgbWF0Y2ggd2hhdCdz
IHdpZGVseSByZWNvZ25pemVkCisgICAgICAgIGJ5IHdlYiBzZXJ2ZXJzLiBDdXJyZW50bHksIHRo
ZSBvbmx5IGNhc2UgaXMgJ3dpbmRvd3MtOTQ5JyAoaW50ZXJuYWwKKyAgICAgICAgbmFtZSkgdnMg
J0VVQy1LUicuCisKKyAgICAgICAgVGVzdDogZmFzdC9lbmNvZGluZy9ldWNrci1uYW1lLmh0bWwK
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6ZW5jb2RpbmcpOiBDYWxsIFRleHRFbmNvZGluZy5kb21OYW1lKCkgaW5zdGVhZAorICAgICAg
ICBvZiBUZXh0RW5jb2RpbmcubmFtZSgpLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVu
Y29kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRFbmNvZGluZzo6ZG9tTmFtZSk6IEZv
ciB0aGUgY2Fub25pY2FsIG5hbWUgJ3dpbmRvd3MtOTQ5JywKKyAgICAgICAgcmV0dXJuICdFVUMt
S1InLiBPdGhlcndpc2UsIGp1c3QgcmV0dXJuIHRoZSBjYW5vbmljYWwgbmFtZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5oOgorCiAyMDA5LTA1LTAxICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVu
dCBhbmQgU2FtICJKb24gJ1RoZSBCZWxseScgSG9uZXljdXR0IiBXZWluaWcKSW5kZXg6IFdlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAJKHJldmlzaW9uIDQzMTIyKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04NTEsNyArODUxLDcgQEAgU3RyaW5nIERvY3VtZW50OjpyZWFkeVN0YXRlKCkg
Y29uc3QKIFN0cmluZyBEb2N1bWVudDo6ZW5jb2RpbmcoKSBjb25zdAogewogICAgIGlmIChUZXh0
UmVzb3VyY2VEZWNvZGVyKiBkID0gZGVjb2RlcigpKQotICAgICAgICByZXR1cm4gZC0+ZW5jb2Rp
bmcoKS5uYW1lKCk7CisgICAgICAgIHJldHVybiBkLT5lbmNvZGluZygpLmRpc3BsYXlOYW1lKCk7
CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dEVuY29kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nLmNwcAkocmV2aXNpb24gNDMxMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dEVuY29kaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDYgKzExNiwyNCBAQCBDU3Ry
aW5nIFRleHRFbmNvZGluZzo6ZW5jb2RlKGNvbnN0IFVDaGFyCiAjZW5kaWYKIH0KIAorY29uc3Qg
Y2hhciogVGV4dEVuY29kaW5nOjpkb21OYW1lKCkgY29uc3QKK3sKKyAgICBpZiAobm9FeHRlbmRl
ZFRleHRFbmNvZGluZ05hbWVVc2VkKCkpCisgICAgICAgIHJldHVybiBtX25hbWU7CisKKyAgICAv
LyBXZSB0cmVhdCBFVUMtS1IgYXMgd2luZG93cy05NDkgKGl0cyBzdXBlcnNldCksIGJ1dCBuZWVk
IHRvIGV4cG9zZSAKKyAgICAvLyB0aGUgbmFtZSAnRVVDLUtSJyBiZWNhdXNlIHRoZSBuYW1lICd3
aW5kb3dzLTk0OScgaXMgbm90IHJlY29nbml6ZWQgYnkKKyAgICAvLyBtb3N0IEtvcmVhbiB3ZWIg
c2VydmVycyBldmVuIHRob3VnaCB0aGV5IGRvIHVzZSB0aGUgZW5jb2RpbmcKKyAgICAvLyAnd2lu
ZG93cy05NDknIHdpdGggdGhlIG5hbWUgJ0VVQy1LUicuIAorICAgIC8vIEZJWE1FOiBUaGlzIGlz
IG5vdCB0aHJlYWQtc2FmZS4gQXQgdGhlIG1vbWVudCwgdGhpcyBmdW5jdGlvbiBpcworICAgIC8v
IG9ubHkgYWNjZXNzZWQgaW4gYSBzaW5nbGUgdGhyZWFkLCBidXQgZXZlbnR1YWxseSBoYXMgdG8g
YmUgbWFkZQorICAgIC8vIHRocmVhZC1zYWZlIGFsb25nIHdpdGggdXNlc1Zpc3VhbE9yZGVyaW5n
KCkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGEgPSBhdG9taWNDYW5vbmljYWxUZXh0
RW5jb2RpbmdOYW1lKCJ3aW5kb3dzLTk0OSIpOworICAgIGlmIChtX25hbWUgPT0gYSkKKyAgICAg
ICAgcmV0dXJuICJFVUMtS1IiOworICAgIHJldHVybiBtX25hbWU7Cit9CisKIGJvb2wgVGV4dEVu
Y29kaW5nOjp1c2VzVmlzdWFsT3JkZXJpbmcoKSBjb25zdAogewogICAgIGlmIChub0V4dGVuZGVk
VGV4dEVuY29kaW5nTmFtZVVzZWQoKSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29k
aW5nLmgJKHJldmlzaW9uIDQzMTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNv
ZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAg
ICAgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgICAg
ICBjb25zdCBjaGFyKiBkb21OYW1lKCkgY29uc3Q7IC8vIG5hbWUgZXhwb3NlZCB2aWEgRE9NCiAg
ICAgICAgIGJvb2wgdXNlc1Zpc3VhbE9yZGVyaW5nKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNK
YXBhbmVzZSgpIGNvbnN0OwogICAgICAgICAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQzMTI3KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MDktMDUtMDEgIEp1bmdzaGlrIFNoaW4gIDxqc2hpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0ODcKKworICAgICAgICBUZXN0IGlmIHRoZSBuYW1lICdF
VUMtS1InIGlzIGV4cG9zZWQgdmlhIERPTSBhbHRob3VnaCB3ZSBpbnRlcm5hbGx5CisgICAgICAg
IHRyZWF0IGFsbCBFVUMtS1ItcmVsYXRlZCBlbmNvZGluZ3MgYXMgdGhlIHN1cGVyc2V0IG9mIEVV
Qy1LUiwKKyAgICAgICAgJ3dpbmRvd3MtOTQ5Jy4KKworICAgICAgICAqIGZhc3QvZW5jb2Rpbmcv
ZXVja3ItbmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2Rpbmcv
ZXVja3ItbmFtZS5odG1sOiBBZGRlZC4KKwogMjAwOS0wNC0zMCAgS2V2aW4gTWNDdWxsb3VnaCAg
PGttY2N1bGxvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGVsZSBQZXRl
cnNvbiBhbmQgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2V1
Y2tyLW5hbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvZXVja3ItbmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2VuY29kaW5nL2V1Y2tyLW5hbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDYgQEAKK1Rlc3QgZm9yIGJ1ZyAyNTQ4Ny4gRXZlbiB0aG91Z2ggd2UgdHJlYXQgRVVD
LUtSIGFzIHdpbmRvd3MtOTQ5LCB0aGUgbmFtZSBleHBvc2VkIHZpYSBET00gQVBJcyBzaG91bGQg
c3RpbGwgYmUgRVVDLUtSLgorCitjaGFyYWN0ZXJTZXQ6IEVVQy1LUiAoc2hvdWxkIGJlIEVVQy1L
UikKK2NoYXJzZXQ6IEVVQy1LUiAoc2hvdWxkIGJlIEVVQy1LUikKK2lucHV0RW5jb2Rpbmc6IEVV
Qy1LUiAoc2hvdWxkIGJlIEVVQy1LUikKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9ldWNrci1uYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9ldWNrci1uYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL2V1Y2tyLW5hbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PWV1Yy1rciIgLz4KKzwvaGVhZD4KKzxCT0RZPgorPHA+VGVzdCBmb3IgPGEg
aHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0ODciPmJ1ZyAy
NTQ4NzwvYT4uIEV2ZW4gdGhvdWdoIHdlIHRyZWF0IEVVQy1LUiBhcyB3aW5kb3dzLTk0OSwgdGhl
IG5hbWUgZXhwb3NlZCB2aWEgRE9NIEFQSXMgc2hvdWxkIHN0aWxsIGJlIEVVQy1LUi48L3A+ICAK
KzxzY3JpcHQ+CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgIHZhciBlbmNvZGluZ0VsZW1zID0gWyJj
aGFyYWN0ZXJTZXQiLCAiY2hhcnNldCIsICJpbnB1dEVuY29kaW5nIl07CisgIGZvciAodmFyIGkg
aW4gZW5jb2RpbmdFbGVtcykgeworICAgIHZhciBjaGFyc2V0ID0gZXZhbCgnZG9jdW1lbnQuJyAr
IGVuY29kaW5nRWxlbXNbaV0pOworICAgIGRvY3VtZW50LndyaXRlKGVuY29kaW5nRWxlbXNbaV0g
KyI6ICIgKyBjaGFyc2V0ICsgIiAoc2hvdWxkIGJlIEVVQy1LUik8YnI+Iik7CisgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="15014"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29961</attachid>
            <date>2009-05-02 15:29:12 -0700</date>
            <delta_ts>2009-05-02 15:29:12 -0700</delta_ts>
            <desc>patch same as before except for the one line fix (ready for check-in)</desc>
            <filename>25487.patch.2b</filename>
            <type>text/plain</type>
            <size>5605</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MzEyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMDUtMDEgIEp1bmdzaGlrIFNoaW4gIDxqc2hpbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0ODcKKworICAgICAgICBG
b3IgZXVjLWtyIGFuZCBvdGhlciA4Yml0IEtvcmVhbiBlbmNvZGluZ3MKKyAgICAgICAgKHNpbWls
YXIgdG8gZXVjLWtyL3dpbmRvd3MtOTQ5KSwgbWFrZSBkb2N1bWVudC5jaGFyc2V0IHJldHVybgor
ICAgICAgICBFVUMtS1IgaW5zdGVhZCBvZiB3aW5kb3dzLTk0OS4gVGhlIGxhdHRlciBpcyBub3Qg
cmVjb2duaXplZCBieQorICAgICAgICBLb3JlYW4gd2ViIHNlcnZlcnMuCisKKyAgICAgICAgQWRk
IGRvbU5hbWUgbWV0aG9kIHRvIFRleHRFbmNvZGluZyB0byBkZWFsIHdpdGggY2FzZXMgd2hlcmUK
KyAgICAgICAgb3VyIGludGVybmFsIGVuY29kaW5nIG5hbWUgZG9lcyBub3QgbWF0Y2ggd2hhdCdz
IHdpZGVseSByZWNvZ25pemVkCisgICAgICAgIGJ5IHdlYiBzZXJ2ZXJzLiBDdXJyZW50bHksIHRo
ZSBvbmx5IGNhc2UgaXMgJ3dpbmRvd3MtOTQ5JyAoaW50ZXJuYWwKKyAgICAgICAgbmFtZSkgdnMg
J0VVQy1LUicuCisKKyAgICAgICAgVGVzdDogZmFzdC9lbmNvZGluZy9ldWNrci1uYW1lLmh0bWwK
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6ZW5jb2RpbmcpOiBDYWxsIFRleHRFbmNvZGluZy5kb21OYW1lKCkgaW5zdGVhZAorICAgICAg
ICBvZiBUZXh0RW5jb2RpbmcubmFtZSgpLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVu
Y29kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRFbmNvZGluZzo6ZG9tTmFtZSk6IEZv
ciB0aGUgY2Fub25pY2FsIG5hbWUgJ3dpbmRvd3MtOTQ5JywKKyAgICAgICAgcmV0dXJuICdFVUMt
S1InLiBPdGhlcndpc2UsIGp1c3QgcmV0dXJuIHRoZSBjYW5vbmljYWwgbmFtZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5oOgorCiAyMDA5LTA1LTAxICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVu
dCBhbmQgU2FtICJKb24gJ1RoZSBCZWxseScgSG9uZXljdXR0IiBXZWluaWcKSW5kZXg6IFdlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAJKHJldmlzaW9uIDQzMTIyKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04NTEsNyArODUxLDcgQEAgU3RyaW5nIERvY3VtZW50OjpyZWFkeVN0YXRlKCkg
Y29uc3QKIFN0cmluZyBEb2N1bWVudDo6ZW5jb2RpbmcoKSBjb25zdAogewogICAgIGlmIChUZXh0
UmVzb3VyY2VEZWNvZGVyKiBkID0gZGVjb2RlcigpKQotICAgICAgICByZXR1cm4gZC0+ZW5jb2Rp
bmcoKS5uYW1lKCk7CisgICAgICAgIHJldHVybiBkLT5lbmNvZGluZygpLmRvbU5hbWUoKTsKICAg
ICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5j
b2RpbmcuY3BwCShyZXZpc2lvbiA0MzEyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNiArMTE2LDI0IEBAIENTdHJpbmcg
VGV4dEVuY29kaW5nOjplbmNvZGUoY29uc3QgVUNoYXIKICNlbmRpZgogfQogCitjb25zdCBjaGFy
KiBUZXh0RW5jb2Rpbmc6OmRvbU5hbWUoKSBjb25zdAoreworICAgIGlmIChub0V4dGVuZGVkVGV4
dEVuY29kaW5nTmFtZVVzZWQoKSkKKyAgICAgICAgcmV0dXJuIG1fbmFtZTsKKworICAgIC8vIFdl
IHRyZWF0IEVVQy1LUiBhcyB3aW5kb3dzLTk0OSAoaXRzIHN1cGVyc2V0KSwgYnV0IG5lZWQgdG8g
ZXhwb3NlIAorICAgIC8vIHRoZSBuYW1lICdFVUMtS1InIGJlY2F1c2UgdGhlIG5hbWUgJ3dpbmRv
d3MtOTQ5JyBpcyBub3QgcmVjb2duaXplZCBieQorICAgIC8vIG1vc3QgS29yZWFuIHdlYiBzZXJ2
ZXJzIGV2ZW4gdGhvdWdoIHRoZXkgZG8gdXNlIHRoZSBlbmNvZGluZworICAgIC8vICd3aW5kb3dz
LTk0OScgd2l0aCB0aGUgbmFtZSAnRVVDLUtSJy4gCisgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90
IHRocmVhZC1zYWZlLiBBdCB0aGUgbW9tZW50LCB0aGlzIGZ1bmN0aW9uIGlzCisgICAgLy8gb25s
eSBhY2Nlc3NlZCBpbiBhIHNpbmdsZSB0aHJlYWQsIGJ1dCBldmVudHVhbGx5IGhhcyB0byBiZSBt
YWRlCisgICAgLy8gdGhyZWFkLXNhZmUgYWxvbmcgd2l0aCB1c2VzVmlzdWFsT3JkZXJpbmcoKS4K
KyAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgYSA9IGF0b21pY0Nhbm9uaWNhbFRleHRFbmNv
ZGluZ05hbWUoIndpbmRvd3MtOTQ5Iik7CisgICAgaWYgKG1fbmFtZSA9PSBhKQorICAgICAgICBy
ZXR1cm4gIkVVQy1LUiI7CisgICAgcmV0dXJuIG1fbmFtZTsKK30KKwogYm9vbCBUZXh0RW5jb2Rp
bmc6OnVzZXNWaXN1YWxPcmRlcmluZygpIGNvbnN0CiB7CiAgICAgaWYgKG5vRXh0ZW5kZWRUZXh0
RW5jb2RpbmdOYW1lVXNlZCgpKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNv
ZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2Rpbmcu
aAkocmV2aXNpb24gNDMxMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5n
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgICAg
ICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgICAgIGNv
bnN0IGNoYXIqIGRvbU5hbWUoKSBjb25zdDsgLy8gbmFtZSBleHBvc2VkIHZpYSBET00KICAgICAg
ICAgYm9vbCB1c2VzVmlzdWFsT3JkZXJpbmcoKSBjb25zdDsKICAgICAgICAgYm9vbCBpc0phcGFu
ZXNlKCkgY29uc3Q7CiAgICAgICAgIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDMxMjcpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0w
NS0wMSAgSnVuZ3NoaWsgU2hpbiAgPGpzaGluQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNTQ4NworCisgICAgICAgIFRlc3QgaWYgdGhlIG5hbWUgJ0VVQy1L
UicgaXMgZXhwb3NlZCB2aWEgRE9NIGFsdGhvdWdoIHdlIGludGVybmFsbHkKKyAgICAgICAgdHJl
YXQgYWxsIEVVQy1LUi1yZWxhdGVkIGVuY29kaW5ncyBhcyB0aGUgc3VwZXJzZXQgb2YgRVVDLUtS
LAorICAgICAgICAnd2luZG93cy05NDknLgorCisgICAgICAgICogZmFzdC9lbmNvZGluZy9ldWNr
ci1uYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9ldWNr
ci1uYW1lLmh0bWw6IEFkZGVkLgorCiAyMDA5LTA0LTMwICBLZXZpbiBNY0N1bGxvdWdoICA8a21j
Y3VsbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29u
IGFuZCBEYXJpbiBBZGxlci4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvZXVja3It
bmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9ldWNrci1uYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvZXVja3ItbmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNiBAQAorVGVzdCBmb3IgYnVnIDI1NDg3LiBFdmVuIHRob3VnaCB3ZSB0cmVhdCBFVUMtS1Ig
YXMgd2luZG93cy05NDksIHRoZSBuYW1lIGV4cG9zZWQgdmlhIERPTSBBUElzIHNob3VsZCBzdGls
bCBiZSBFVUMtS1IuCisKK2NoYXJhY3RlclNldDogRVVDLUtSIChzaG91bGQgYmUgRVVDLUtSKQor
Y2hhcnNldDogRVVDLUtSIChzaG91bGQgYmUgRVVDLUtSKQoraW5wdXRFbmNvZGluZzogRVVDLUtS
IChzaG91bGQgYmUgRVVDLUtSKQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2V1
Y2tyLW5hbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2V1
Y2tyLW5hbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
ZXVja3ItbmFtZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4IEBACis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9ZXVjLWtyIiAvPgorPC9oZWFkPgorPEJPRFk+Cis8cD5UZXN0IGZvciA8YSBocmVm
PSJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQ4NyI+YnVnIDI1NDg3
PC9hPi4gRXZlbiB0aG91Z2ggd2UgdHJlYXQgRVVDLUtSIGFzIHdpbmRvd3MtOTQ5LCB0aGUgbmFt
ZSBleHBvc2VkIHZpYSBET00gQVBJcyBzaG91bGQgc3RpbGwgYmUgRVVDLUtSLjwvcD4gIAorPHNj
cmlwdD4KKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgdmFyIGVuY29kaW5nRWxlbXMgPSBbImNoYXJh
Y3RlclNldCIsICJjaGFyc2V0IiwgImlucHV0RW5jb2RpbmciXTsKKyAgZm9yICh2YXIgaSBpbiBl
bmNvZGluZ0VsZW1zKSB7CisgICAgdmFyIGNoYXJzZXQgPSBldmFsKCdkb2N1bWVudC4nICsgZW5j
b2RpbmdFbGVtc1tpXSk7CisgICAgZG9jdW1lbnQud3JpdGUoZW5jb2RpbmdFbGVtc1tpXSArIjog
IiArIGNoYXJzZXQgKyAiIChzaG91bGQgYmUgRVVDLUtSKTxicj4iKTsKKyAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="15017"
          type_id="1"
          status="+"
          setter="jshin"
    />
          </attachment>
      

    </bug>

</bugzilla>