<?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>16801</bug_id>
          
          <creation_ts>2008-01-09 01:24:35 -0800</creation_ts>
          <short_desc>CSS2: :lang has possibly poor performance on large pages</short_desc>
          <delta_ts>2014-06-14 14:43:46 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>9454</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>chris</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>falken</cc>
    
    <cc>jshin</cc>
    
    <cc>mitz</cc>
    
    <cc>nickshanks</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>66647</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-09 01:24:35 -0800</bug_when>
    <thetext>CSS2: :lang has possibly poor performance on large pages

Proper :lang support was added as part of bug 9454.  Hyatt raised concerns about possible performance issues with :lang on large pages.  This bug is to track any such issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66653</commentid>
    <comment_count>1</comment_count>
    <who name="Nicholas Shanks">nickshanks</who>
    <bug_when>2008-01-09 02:50:50 -0800</bug_when>
    <thetext>MacDome, to address an IRC comment, maybe we could do a survey of bilingual Chinese/Japanese readers and find out how often wrong font selection affects them. I would presume that han unification on bilingual pages is one of the biggest problems that :lang() solves. We should probably have some information oh how often the selector is used on such pages and how deep their dom trees generally are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67882</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-21 14:20:06 -0800</bug_when>
    <thetext>Actually, I realize that our implementation actually needs to change to allow fonts to use this information.  Currently the cascaded lang value is never stored anywhere, which means that other features (like font chosing, or SVG stuff) can&apos;t use this value, they&apos;d have to recompute it themselves.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67897</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-01-21 15:09:10 -0800</bug_when>
    <thetext>Yeah, that&apos;s why we should have the information in the style so that it is readily available. :)

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89330</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2008-08-25 18:24:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/6175111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112856</commentid>
    <comment_count>5</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-03-09 10:46:01 -0700</bug_when>
    <thetext>Not having noticed this bug blocking bug 10874, I uploaded a patch (along the direction discussed here) to bug 21312. I&apos;ll move it here. 
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112857</commentid>
    <comment_count>6</comment_count>
      <attachid>28417</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-03-09 10:48:32 -0700</bug_when>
    <thetext>Created attachment 28417
tentative patch 

I don&apos;t think this patch is acceptable as it is (it even has a commented-out block), but I&apos;d like to see whether I&apos;m in the right direction. This patch is copied from bug 21312.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112870</commentid>
    <comment_count>7</comment_count>
      <attachid>28417</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2009-03-09 11:30:40 -0700</bug_when>
    <thetext>Comment on attachment 28417
tentative patch 

Darin made an extensive comment on this patch (bug 21312 comment 5).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426972</commentid>
    <comment_count>8</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-06-24 10:53:27 -0700</bug_when>
    <thetext>I found that &apos;-webkit-locale&apos; (CSS property) was introduced. I don&apos;t understand why we introduced &apos;-webkit-locale&apos; when we have &apos;lang&apos; to determine what locale to use for  hyphenation, line breaking, text-transform,  font selection, etc.  

However, in retrospect, introducing &apos;-webkit-locale&apos; seems to be a brilliant move because  Darin&apos;s comment on my patch for bug 21312 are mostly addressed by mapping HTML lang attribute to CSS &apos;-webkit-locale&apos; as HTML &apos;dir&apos; is to CSS &apos;direction&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436746</commentid>
    <comment_count>9</comment_count>
      <attachid>100726</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-07-13 16:18:06 -0700</bug_when>
    <thetext>Created attachment 100726
a one-line patch (that does not work)

This patch is a 1-liner that tried to map &apos;lang&apos; attribute to &apos;-webkit-locale&apos;. I also have a layout test but it&apos;s not included here because it&apos;s not working yet. 

If it works, it&apos;d be great, but it does not. 

addCSSProperty calls CSSParser::parseValue() eventually and it fails because |cssparse| (in CSSGrammar.cpp) sets m_numParsedProperties to 0.

The following part in CSSGrammar.y is reached. The 3rd entry (STRING maybe_space) should be hit, but instead &apos;IDENT maybe_space&apos; is used. Because lang/locale id (like &quot;he&quot;, &quot;en-US&quot;, &quot;zh&quot;, &quot;fr&quot;)  is not a cssValueKeyword, it fails. 

term:
  unary_term { $$ = $1; }
  | unary_operator unary_term { $$ = $2; $$.fValue *= $1; }
  | STRING maybe_space { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_STRING; }
  | IDENT maybe_space {
      $$.id = cssValueKeywordID($1);      $$.unit = CSSPrimitiveValue::CSS_IDENT;
      $$.string = $1;  }


I also considered special-casing -webkit-locale like font-related properties are in C++, but if I can tweak CSSGrammar.y to do what&apos;s necessary, I&apos;d rather take that route. 


http://paste.lisp.org/display/123254</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436755</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-07-13 16:28:53 -0700</bug_when>
    <thetext>(In reply to comment #9)

&gt; addCSSProperty calls CSSParser::parseValue() eventually and it fails because |cssparse| (in CSSGrammar.cpp) sets m_numParsedProperties to 0.
&gt; 
&gt; The following part in CSSGrammar.y is reached. The 3rd entry (STRING maybe_space) should be hit, but instead &apos;IDENT maybe_space&apos; is used. Because lang/locale id (like &quot;he&quot;, &quot;en-US&quot;, &quot;zh&quot;, &quot;fr&quot;)  is not a cssValueKeyword, it fails. 

Locale identifiers are not CSS keywords. When you specify a -webkit-locale value you need to either specify the auto keyword or a string whose content is the locale identifier. This means that you need to add quotation marks around the attribute value (and escape internal quotation marks, maybe).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436757</commentid>
    <comment_count>11</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-07-13 16:29:35 -0700</bug_when>
    <thetext>I.e. these are valid:

-webkit-locale: auto;
-webkit-locale: &quot;en_US&quot;;

This is not:
-webkit-locale: en_US;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436778</commentid>
    <comment_count>12</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-07-13 17:23:30 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; 
&gt; &gt; addCSSProperty calls CSSParser::parseValue() eventually and it fails because |cssparse| (in CSSGrammar.cpp) sets m_numParsedProperties to 0.
&gt; &gt; 
&gt; &gt; The following part in CSSGrammar.y is reached. The 3rd entry (STRING maybe_space) should be hit, but instead &apos;IDENT maybe_space&apos; is used. Because lang/locale id (like &quot;he&quot;, &quot;en-US&quot;, &quot;zh&quot;, &quot;fr&quot;)  is not a cssValueKeyword, it fails. 
&gt; 
&gt; Locale identifiers are not CSS keywords. 

That much I knew. My question was why it&apos;s not picked up as a string. 

&gt; When you specify a -webkit-locale value you need to either specify the auto keyword or a string whose content is the locale identifier. This means that you need to add quotation marks around the attribute value (and escape internal quotation marks, maybe).

Thank you. Now I got it. I should have quote *explicitly* the value of &apos;lang&apos;.  Otherwise, the value will be treated as a CSS keyword and parsing will fail because it&apos;s not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437453</commentid>
    <comment_count>13</comment_count>
      <attachid>100910</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-07-14 18:28:01 -0700</bug_when>
    <thetext>Created attachment 100910
wip patch (partly working)

xml:lang is not taken into account. Content-Language is not, either. 
More importantly, it crashes a bunch of layout tests (when computeInheritedLanguage() is called). I haven&apos;t yet looked into this. 

fast/selectors/lang-inheritance2.html  
css1/conformance/forward_compatible_parsing.html       
http/tests/eventsource/workers/eventsource-simple.html 
svg/W3C-SVG-1.1/styling-css-05-b.svg   
fast/dom/css-selectorText.html 
fast/dom/SelectorAPI/resig-SelectorsAPI-test.xhtml     
fast/selectors/lang-vs-xml-lang-xhtml.xhtml    
fast/selectors/lang-inheritance.html   
http/tests/misc/acid3.html     
fast/selectors/lang-vs-xml-lang.html   
fast/css/css3-modsel-22.html   
fast/css/lang-selector-empty-attribute.xhtml   
fast/css/css-selector-text.html        
fast/css/css3-space-in-nth-and-lang.html       
css2.1/t0402-c71-fwd-parsing-02-f.html 
inspector/debugger/script-formatter.html


Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000038
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x0000000101472798 WTF::RefPtr&lt;WebCore::StyleRareInheritedData&gt;::get() const + 12 (RefPtr.h:60)
1   com.apple.WebCore             	0x0000000101501305 WebCore::DataRef&lt;WebCore::StyleRareInheritedData&gt;::get() const + 21 (DataRef.h:33)
2   com.apple.WebCore             	0x000000010150131d WebCore::DataRef&lt;WebCore::StyleRareInheritedData&gt;::operator-&gt;() const + 21 (DataRef.h:36)
3   com.apple.WebCore             	0x00000001014727dd WebCore::RenderStyle::locale() const + 25 (RenderStyle.h:703)
4   com.apple.WebCore             	0x00000001016e2ef9 WebCore::Element::computeInheritedLanguage() const + 109 (Element.cpp:1778)
5   com.apple.WebCore             	0x0000000101526f08 WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector(WebCore::CSSSelector*,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437972</commentid>
    <comment_count>14</comment_count>
      <attachid>101041</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-07-15 14:10:12 -0700</bug_when>
    <thetext>Created attachment 101041
wip patch (only partly working)

No more crash with null check, but still not taking care of  xml:lang vs lang precedence. So it breaks tests like fast/selectors/lang-vs-xml-lang-xhtml.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438630</commentid>
    <comment_count>15</comment_count>
      <attachid>101187</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-07-18 12:23:47 -0700</bug_when>
    <thetext>Created attachment 101187
wip patch (almost works)

This one works except when xml:lang is specified without lang specified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438824</commentid>
    <comment_count>16</comment_count>
      <attachid>101187</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-07-18 16:50:30 -0700</bug_when>
    <thetext>Comment on attachment 101187
wip patch (almost works)

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

&gt; Source/WebCore/dom/Element.cpp:1777
&gt; +            RefPtr&lt;RenderStyle&gt; nodeStyle(static_cast&lt;const Element*&gt;(n)-&gt;renderStyle());

Instead of the above, I wonder if the following is better:

RefPtr&lt;RenderStyle&gt; nodeStyle(const_cast&lt;Element*&gt;(static_cast&lt;const Element*&gt;(n))-&gt;computedStyle(NOPSEUDO));

Note that computedStyle() is not const. So, either I have to const_cast or drop &apos;const&apos; for this function. If there&apos;s no difference, I&apos;d just use what I have in the patch.

&gt; Source/WebCore/html/HTMLElement.cpp:164
&gt; +        // FIXME: this does not work when xml:lang is present without lang.

XHTML spec says that both lang and xml:lang have to be used (for backward compatibility). I guess there will be very few document with only xml:lang. And, none of layout tests test that case. So, maybe it&apos;s ok not to support cases when ONLY xml:lang is specified. 

I tried the following, but it&apos;s never hit. 

else if (attr-&gt;name() == XMLNames::langAttr)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458570</commentid>
    <comment_count>17</comment_count>
      <attachid>105545</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-08-29 16:54:58 -0700</bug_when>
    <thetext>Created attachment 105545
a test (not for review)

I&apos;m trying to write a layout test that just checks the value of &apos;style.webkitLocale&apos; of a node with &apos;lang&apos; set directly or by inheritance. However, somehow accessing &lt;node&gt;.style.webkitLocale in JavaScript does not work as expected. 

In DOM inspector, all the nodes with lang set directly or by inheritance do have &apos;-webkit-locale&apos; set to the value I used. However, &apos;lang&apos; node in the attached HTML file has

l1= l2= l3= l4=undefined.

In case of l4 (for &apos;l4&apos; node), &apos;-webkit-locale&apos; is specified in inline style spec. In JS console, document.getElemetnById(&quot;l4&quot;.style.webkitLocale is &quot;ja&quot; as expected. 

I&apos;ve tried HTML &apos;dir&apos; mapped to CSS &apos;direction&apos;.  Nodes with HTML dir attribute have &apos;direction&apos; set to the value of &apos;dir&apos; in DOM inspector. However, in JavaScript, their values are empty (the same as HTML &apos;lang&apos; mapped to CSS &apos;-webkit-locale&apos;).  However, a node with &apos;style=&quot;dir: rtl&quot;&apos; works as expected. That is, &lt;node&gt;.style.direction has &apos;rtl&apos; instead of &apos;undefined&apos;.  


Perhaps, some more plumbing is necessary to expose mapped HTML attributes in JavaScript?  Any hint/help would be appreciated. In the meantime, I&apos;ll poke around further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458580</commentid>
    <comment_count>18</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-08-29 17:05:00 -0700</bug_when>
    <thetext>Oh. I think I should use computedStyle, instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460982</commentid>
    <comment_count>19</comment_count>
      <attachid>106075</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-09-01 18:16:08 -0700</bug_when>
    <thetext>Created attachment 106075
patch with layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461001</commentid>
    <comment_count>20</comment_count>
      <attachid>106075</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 18:46:50 -0700</bug_when>
    <thetext>Comment on attachment 106075
patch with layout test

Attachment 106075 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9580465

New failing tests:
fast/css/css3-modsel-22.html
fast/css/lang-selector-empty-attribute.xhtml
svg/W3C-SVG-1.1/styling-css-05-b.svg
fast/selectors/lang-vs-xml-lang.html
fast/css/css3-space-in-nth-and-lang.html
fast/dom/SelectorAPI/resig-SelectorsAPI-test.xhtml
fast/selectors/lang-inheritance.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461299</commentid>
    <comment_count>21</comment_count>
      <attachid>106075</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-09-02 10:33:01 -0700</bug_when>
    <thetext>Comment on attachment 106075
patch with layout test

it can&apos;t be landed because a bunch of layout tests involving psuedo-lang selector fails. 

When they&apos;re loaded for the 1st time, they&apos;re broken. As soon as I turn on DOM inspector, all the nodes affected by pseudo-lang selector get rendered correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461658</commentid>
    <comment_count>22</comment_count>
      <attachid>106227</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-09-02 17:32:57 -0700</bug_when>
    <thetext>Created attachment 106227
patch update (still not passing some layout tests)

I also tried using computedStyle in computeInheritedLanguage, but it still does not pass some layout tests. 

What I&apos;ll do is to punt this bug (making computeInheritedLanguage more efficient) and file a new bug that focus on mapping &apos;lang&apos; and &apos;xml:lang&apos; to -webkit-locale because only the latter is necessary for font fallback.  
That means Content-Langauge is not reflected in font fallback (neither will be document encoding). I have another idea on that issue, but we can punt that, too, for now. 

After filing a new bug on mapping lang/xml:lang to -webkit-locale, I&apos;ll upload a patch for html/HTMLElement.cpp there along with the current layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462055</commentid>
    <comment_count>23</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-09-04 23:54:30 -0700</bug_when>
    <thetext>I filed bug 67586 with a narrower scope than this. To that bug, I attached a patch to map lang/xml:lang to -webkit-locale to be used in font fallback and tex-transform.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28417</attachid>
            <date>2009-03-09 10:48:32 -0700</date>
            <delta_ts>2011-07-13 16:18:06 -0700</delta_ts>
            <desc>tentative patch </desc>
            <filename>16801.patch.1</filename>
            <type>text/plain</type>
            <size>2664</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA0MTQ0OSkKKysrIFdlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQ2LDcgKzIz
NDYsOCBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OlNlbGVjdG9yQ2hlY2tlcjo6CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYW5n
OiB7CiAgICAgICAgICAgICAgICAgTm9kZSogbiA9IGU7Ci0gICAgICAgICAgICAgICAgQXRvbWlj
U3RyaW5nIHZhbHVlOworICAgICAgICAgICAgICAgIEF0b21pY1N0cmluZyB2YWx1ZSA9IG4tPmNh
bGN1bGF0ZUxhbmd1YWdlQW5kUmV0cmlldmUoKTsKKyNpZiAwCiAgICAgICAgICAgICAgICAgLy8g
VGhlIGxhbmd1YWdlIHByb3BlcnR5IGlzIGluaGVyaXRlZCwgc28gd2UgaXRlcmF0ZSBvdmVyIHRo
ZSBwYXJlbnRzCiAgICAgICAgICAgICAgICAgLy8gdG8gZmluZCB0aGUgZmlyc3QgbGFuZ3VhZ2Uu
CiAgICAgICAgICAgICAgICAgd2hpbGUgKG4gJiYgdmFsdWUuaXNFbXB0eSgpKSB7CkBAIC0yMzYx
LDYgKzIzNjIsNyBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OlNlbGVjdG9yQ2hlY2tlcjo6CiAK
ICAgICAgICAgICAgICAgICAgICAgbiA9IG4tPnBhcmVudCgpOwogICAgICAgICAgICAgICAgIH0K
KyNlbmRpZgogICAgICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQgPSBz
ZWwtPmFyZ3VtZW50KCk7CiAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSB8fCAh
dmFsdWUuc3RhcnRzV2l0aChhcmd1bWVudCwgZmFsc2UpKQogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKSW5kZXg6IFdlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZG9tL05vZGUuY3BwCShyZXZpc2lvbiA0MTQ0OSkKKysrIFdlYkNvcmUvZG9tL05vZGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMjU0LDYgKzMyNTQsMjUgQEAgdm9pZCBOb2RlOjpzZXRPbnVubG9h
ZChQYXNzUmVmUHRyPEV2ZW50TAogICAgIHNldElubGluZUV2ZW50TGlzdGVuZXJGb3JUeXBlKGV2
ZW50TmFtZXMoKS51bmxvYWRFdmVudCwgZXZlbnRMaXN0ZW5lcik7CiB9CiAKK0F0b21pY1N0cmlu
ZyBOb2RlOjpjYWxjdWxhdGVMYW5ndWFnZUFuZFJldHJpZXZlKCkKK3sKKyAgICBpZiAoIW1fbGFu
Z3VhZ2UuaXNFbXB0eSgpKSAKKyAgICAgICAgcmV0dXJuIG1fbGFuZ3VhZ2U7CisgICAgaWYgKGlz
RWxlbWVudE5vZGUoKSkgeworICAgICAgICAvLyBTcGVjOiB4bWw6bGFuZyB0YWtlcyBwcmVjZWRl
bmNlIC0tIGh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS8jQ183CisgICAgICAgIEVsZW1lbnQq
IGUgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4odGhpcyk7CisgICAgICAgIG1fbGFuZ3VhZ2UgPSBl
LT5nZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OmxhbmdBdHRyKTsKKyAgICAgICAgaWYgKG1fbGFuZ3Vh
Z2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9sYW5ndWFnZSA9IGUtPmdldEF0dHJpYnV0ZShs
YW5nQXR0cik7CisgICAgfSBlbHNlIGlmIChpc0RvY3VtZW50Tm9kZSgpKSB7CisgICAgICAgIC8v
IGNoZWNraW5nIHRoZSBNSU1FIGNvbnRlbnQtbGFuZ3VhZ2UKKyAgICAgICAgbV9sYW5ndWFnZSA9
IHN0YXRpY19jYXN0PERvY3VtZW50Kj4odGhpcyktPmNvbnRlbnRMYW5ndWFnZSgpOworICAgIH0K
KyAgICBpZiAobV9sYW5ndWFnZS5pc0VtcHR5KCkgJiYgcGFyZW50KCkpCisgICAgICAgIG1fbGFu
Z3VhZ2UgPSBwYXJlbnQoKS0+Y2FsY3VsYXRlTGFuZ3VhZ2VBbmRSZXRyaWV2ZSgpOworICAgIHJl
dHVybiBtX2xhbmd1YWdlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYg
TkRFQlVHCkluZGV4OiBXZWJDb3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9k
b20vTm9kZS5oCShyZXZpc2lvbiA0MTQ0OSkKKysrIFdlYkNvcmUvZG9tL05vZGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjQ2LDYgKzY0Niw4IEBAIHB1YmxpYzoKICAgICBFdmVudExpc3RlbmVyKiBv
bnVubG9hZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0T251bmxvYWQoUGFzc1JlZlB0cjxFdmVudExp
c3RlbmVyPik7CiAKKyAgICBBdG9taWNTdHJpbmcgY2FsY3VsYXRlTGFuZ3VhZ2VBbmRSZXRyaWV2
ZSgpOworCiAgICAgdXNpbmcgVHJlZVNoYXJlZDxOb2RlPjo6cmVmOwogICAgIHVzaW5nIFRyZWVT
aGFyZWQ8Tm9kZT46OmRlcmVmOwogIApAQCAtNjc3LDYgKzY3OSw3IEBAIHByaXZhdGU6CiAgICAg
Tm9kZSogbV9wcmV2aW91czsKICAgICBOb2RlKiBtX25leHQ7CiAgICAgUmVuZGVyT2JqZWN0KiBt
X3JlbmRlcmVyOworICAgIEF0b21pY1N0cmluZyBtX2xhbmd1YWdlOwogCiAgICAgdW5zaWduZWQg
bV9zdHlsZUNoYW5nZSA6IDI7CiAgICAgYm9vbCBtX2hhc0lkIDogMTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100726</attachid>
            <date>2011-07-13 16:18:06 -0700</date>
            <delta_ts>2011-07-14 18:28:01 -0700</delta_ts>
            <desc>a one-line patch (that does not work)</desc>
            <filename>lang.patch</filename>
            <type>text/plain</type>
            <size>772</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5MDE1NikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjAsNyArMTYwLDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQQog
ICAgICAgICAgICAgc2V0VGFiSW5kZXhFeHBsaWNpdGx5KG1heChzdGF0aWNfY2FzdDxpbnQ+KHN0
ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjptaW4oKSksIG1pbih0YWJpbmRleCwgc3RhdGljX2Nh
c3Q8aW50PihzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6bWF4KCkpKSkpOwogICAgICAgICB9
CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbGFuZ0F0dHIpIHsKLSAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudAorICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0
eVdlYmtpdExvY2FsZSwgYXR0ci0+dmFsdWUoKSk7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1l
KCkgPT0gZGlyQXR0cikgewogICAgICAgICBpZiAoIWVxdWFsSWdub3JpbmdDYXNlKGF0dHItPnZh
bHVlKCksICJhdXRvIikpCiAgICAgICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9w
ZXJ0eURpcmVjdGlvbiwgYXR0ci0+dmFsdWUoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100910</attachid>
            <date>2011-07-14 18:28:01 -0700</date>
            <delta_ts>2011-07-15 14:10:12 -0700</delta_ts>
            <desc>wip patch (partly working)</desc>
            <filename>16801.patch.2</filename>
            <type>text/plain</type>
            <size>2943</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDkwNzg5KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzY4LDEzICsxNzY4LDE3
IEBACiB7CiAgICAgY29uc3QgTm9kZSogbiA9IHRoaXM7CiAgICAgQXRvbWljU3RyaW5nIHZhbHVl
OworICAgIC8vIEZJWE1FOiBTdG9yZSB4bWw6bGFuZyBhbmQgQ29udGVudC1MYW5ndWFnZSBpbiBT
dHlsZSBhcy9pZiBhcHByb3ByaWF0ZSBhbmQKKyAgICAvLyBhdm9pZCB0aGUgbG9vcCBjb21wbGV0
ZWx5LgogICAgIC8vIFRoZSBsYW5ndWFnZSBwcm9wZXJ0eSBpcyBpbmhlcml0ZWQsIHNvIHdlIGl0
ZXJhdGUgb3ZlciB0aGUgcGFyZW50cyB0byBmaW5kIHRoZSBmaXJzdCBsYW5ndWFnZS4KICAgICB3
aGlsZSAobiAmJiB2YWx1ZS5pc051bGwoKSkgewogICAgICAgICBpZiAobi0+aXNFbGVtZW50Tm9k
ZSgpKSB7CiAgICAgICAgICAgICAvLyBTcGVjOiB4bWw6bGFuZyB0YWtlcyBwcmVjZWRlbmNlIC0t
IGh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS8jQ183CiAgICAgICAgICAgICB2YWx1ZSA9IHN0
YXRpY19jYXN0PGNvbnN0IEVsZW1lbnQqPihuKS0+ZmFzdEdldEF0dHJpYnV0ZShYTUxOYW1lczo6
bGFuZ0F0dHIpOwogICAgICAgICAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQotICAgICAgICAgICAg
ICAgIHZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgRWxlbWVudCo+KG4pLT5mYXN0R2V0QXR0cmli
dXRlKEhUTUxOYW1lczo6bGFuZ0F0dHIpOworICAgICAgICAgICAgICAgIC8vIFRoZSB2YWx1ZSBv
ZiAtd2Via2l0LWxvY2FsZSBmcm9tICdsYW5nJyBpcyBzdG9yZWQgaW4gUmVuZGVyU3R5bGUKKyAg
ICAgICAgICAgICAgICAvLyBpZiAnbGFuZycgaXMgcHJlc2VudC4KKyAgICAgICAgICAgICAgICB2
YWx1ZSA9IHJlbmRlclN0eWxlKCktPmxvY2FsZSgpOwogICAgICAgICB9IGVsc2UgaWYgKG4tPmlz
RG9jdW1lbnROb2RlKCkpIHsKICAgICAgICAgICAgIC8vIGNoZWNraW5nIHRoZSBNSU1FIGNvbnRl
bnQtbGFuZ3VhZ2UKICAgICAgICAgICAgIHZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgRG9jdW1l
bnQqPihuKS0+Y29udGVudExhbmd1YWdlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAkocmV2aXNpb24gOTA3ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDcgKzE2MCwxNCBAQAogICAgICAgICAgICAg
c2V0VGFiSW5kZXhFeHBsaWNpdGx5KG1heChzdGF0aWNfY2FzdDxpbnQ+KHN0ZDo6bnVtZXJpY19s
aW1pdHM8c2hvcnQ+OjptaW4oKSksIG1pbih0YWJpbmRleCwgc3RhdGljX2Nhc3Q8aW50PihzdGQ6
Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6bWF4KCkpKSkpOwogICAgICAgICB9CiAgICAgfSBlbHNl
IGlmIChhdHRyLT5uYW1lKCkgPT0gbGFuZ0F0dHIpIHsKLSAgICAgICAgLy8gRklYTUU6IEltcGxl
bWVudAorICAgICAgICAvLyBIYXZlIHRvIGVuY2xvc2Ugd2l0aCBhIHBhaXIgb2YgcXVvdGF0aW9u
IG1hcmtzIHRvIGJlIGdldCB0aGUgbG9jYWxlIGlkCisgICAgICAgIC8vIHRyZWF0ZWQgYXMgYSBz
dHJpbmcgaW5zdGVhZCBvZiBhcyBhIENTUyBrZXl3b3JkLgorICAgICAgICAvLyBGSVhNRTogaG93
IGFib3V0IHhtbDpsYW5nPworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZG91
YmxlUXVvdGVDaGFyLCAoIlwiIikpOworICAgICAgICBTdHJpbmcgdmFsdWUgPSBhdHRyLT52YWx1
ZSgpOworICAgICAgICB2YWx1ZS5pbnNlcnQoZG91YmxlUXVvdGVDaGFyLCAwKTsKKyAgICAgICAg
dmFsdWUuYXBwZW5kKGRvdWJsZVF1b3RlQ2hhcik7CisgICAgICAgIGFkZENTU1Byb3BlcnR5KGF0
dHIsIENTU1Byb3BlcnR5V2Via2l0TG9jYWxlLCB2YWx1ZSk7CiAgICAgfSBlbHNlIGlmIChhdHRy
LT5uYW1lKCkgPT0gZGlyQXR0cikgewogICAgICAgICBpZiAoIWVxdWFsSWdub3JpbmdDYXNlKGF0
dHItPnZhbHVlKCksICJhdXRvIikpCiAgICAgICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBD
U1NQcm9wZXJ0eURpcmVjdGlvbiwgYXR0ci0+dmFsdWUoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA5MDc4OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1MSw2ICsx
MTUxLDcgQEAKICAgICBpZiAoZWxlbWVudC0+aGFzQ2xhc3MoKSAmJiBtX2VsZW1lbnQtPmZhc3RH
ZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSAhPSBlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNz
QXR0cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIC8vIEZJWE1FOmRvIHdlIG5lZWQg
dG8gY2hlY2sgZm9yIGxhbmRBdHRyIGhlcmU/IERvZXMgd2hhdCdzIGJlbG93IGNvdmVyIHRoYXQ/
CiAgICAgaWYgKGVsZW1lbnQtPmhhc01hcHBlZEF0dHJpYnV0ZXMoKSAmJiAhZWxlbWVudC0+YXR0
cmlidXRlTWFwKCktPm1hcHBlZE1hcHNFcXVpdmFsZW50KG1fc3R5bGVkRWxlbWVudC0+YXR0cmli
dXRlTWFwKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101041</attachid>
            <date>2011-07-15 14:10:12 -0700</date>
            <delta_ts>2011-07-18 12:23:47 -0700</delta_ts>
            <desc>wip patch (only partly working)</desc>
            <filename>16801.patch.2a</filename>
            <type>text/plain</type>
            <size>3120</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDkwNzg5KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzY4LDEzICsxNzY4LDIw
IEBACiB7CiAgICAgY29uc3QgTm9kZSogbiA9IHRoaXM7CiAgICAgQXRvbWljU3RyaW5nIHZhbHVl
OworICAgIC8vIEZJWE1FOiBTdG9yZSB4bWw6bGFuZyBhbmQgQ29udGVudC1MYW5ndWFnZSBpbiBT
dHlsZSBhcy9pZiBhcHByb3ByaWF0ZSBhbmQKKyAgICAvLyBhdm9pZCB0aGUgbG9vcCBjb21wbGV0
ZWx5LgogICAgIC8vIFRoZSBsYW5ndWFnZSBwcm9wZXJ0eSBpcyBpbmhlcml0ZWQsIHNvIHdlIGl0
ZXJhdGUgb3ZlciB0aGUgcGFyZW50cyB0byBmaW5kIHRoZSBmaXJzdCBsYW5ndWFnZS4KICAgICB3
aGlsZSAobiAmJiB2YWx1ZS5pc051bGwoKSkgewogICAgICAgICBpZiAobi0+aXNFbGVtZW50Tm9k
ZSgpKSB7CiAgICAgICAgICAgICAvLyBTcGVjOiB4bWw6bGFuZyB0YWtlcyBwcmVjZWRlbmNlIC0t
IGh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS8jQ183CiAgICAgICAgICAgICB2YWx1ZSA9IHN0
YXRpY19jYXN0PGNvbnN0IEVsZW1lbnQqPihuKS0+ZmFzdEdldEF0dHJpYnV0ZShYTUxOYW1lczo6
bGFuZ0F0dHIpOwotICAgICAgICAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQotICAgICAgICAgICAg
ICAgIHZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgRWxlbWVudCo+KG4pLT5mYXN0R2V0QXR0cmli
dXRlKEhUTUxOYW1lczo6bGFuZ0F0dHIpOworICAgICAgICAgICAgaWYgKHZhbHVlLmlzTnVsbCgp
KSB7CisgICAgICAgICAgICAgICAgLy8gVGhlIHZhbHVlIG9mIC13ZWJraXQtbG9jYWxlIGZyb20g
J2xhbmcnIGlzIHN0b3JlZCBpbiBSZW5kZXJTdHlsZQorICAgICAgICAgICAgICAgIC8vIGlmICds
YW5nJyBpcyBwcmVzZW50LgorICAgICAgICAgICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbm9k
ZVN0eWxlKHN0YXRpY19jYXN0PGNvbnN0IEVsZW1lbnQqPihuKS0+cmVuZGVyU3R5bGUoKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKG5vZGVTdHlsZSkKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUg
PSBub2RlU3R5bGUtPmxvY2FsZSgpOworICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYg
KG4tPmlzRG9jdW1lbnROb2RlKCkpIHsKICAgICAgICAgICAgIC8vIGNoZWNraW5nIHRoZSBNSU1F
IGNvbnRlbnQtbGFuZ3VhZ2UKICAgICAgICAgICAgIHZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
RG9jdW1lbnQqPihuKS0+Y29udGVudExhbmd1YWdlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAkocmV2aXNpb24gOTA3ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDcgKzE2MCwxNCBAQAogICAgICAg
ICAgICAgc2V0VGFiSW5kZXhFeHBsaWNpdGx5KG1heChzdGF0aWNfY2FzdDxpbnQ+KHN0ZDo6bnVt
ZXJpY19saW1pdHM8c2hvcnQ+OjptaW4oKSksIG1pbih0YWJpbmRleCwgc3RhdGljX2Nhc3Q8aW50
PihzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6bWF4KCkpKSkpOwogICAgICAgICB9CiAgICAg
fSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbGFuZ0F0dHIpIHsKLSAgICAgICAgLy8gRklYTUU6
IEltcGxlbWVudAorICAgICAgICAvLyBIYXZlIHRvIGVuY2xvc2Ugd2l0aCBhIHBhaXIgb2YgcXVv
dGF0aW9uIG1hcmtzIHRvIGJlIGdldCB0aGUgbG9jYWxlIGlkCisgICAgICAgIC8vIHRyZWF0ZWQg
YXMgYSBzdHJpbmcgaW5zdGVhZCBvZiBhcyBhIENTUyBrZXl3b3JkLgorICAgICAgICAvLyBGSVhN
RTogaG93IGFib3V0IHhtbDpsYW5nPworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgZG91YmxlUXVvdGVDaGFyLCAoIlwiIikpOworICAgICAgICBTdHJpbmcgdmFsdWUgPSBhdHRy
LT52YWx1ZSgpOworICAgICAgICB2YWx1ZS5pbnNlcnQoZG91YmxlUXVvdGVDaGFyLCAwKTsKKyAg
ICAgICAgdmFsdWUuYXBwZW5kKGRvdWJsZVF1b3RlQ2hhcik7CisgICAgICAgIGFkZENTU1Byb3Bl
cnR5KGF0dHIsIENTU1Byb3BlcnR5V2Via2l0TG9jYWxlLCB2YWx1ZSk7CiAgICAgfSBlbHNlIGlm
IChhdHRyLT5uYW1lKCkgPT0gZGlyQXR0cikgewogICAgICAgICBpZiAoIWVxdWFsSWdub3JpbmdD
YXNlKGF0dHItPnZhbHVlKCksICJhdXRvIikpCiAgICAgICAgICAgICBhZGRDU1NQcm9wZXJ0eShh
dHRyLCBDU1NQcm9wZXJ0eURpcmVjdGlvbiwgYXR0ci0+dmFsdWUoKSk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA5MDc4OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1
MSw2ICsxMTUxLDcgQEAKICAgICBpZiAoZWxlbWVudC0+aGFzQ2xhc3MoKSAmJiBtX2VsZW1lbnQt
PmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSAhPSBlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRl
KGNsYXNzQXR0cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIC8vIEZJWE1FOmRvIHdl
IG5lZWQgdG8gY2hlY2sgZm9yIGxhbmRBdHRyIGhlcmU/IERvZXMgd2hhdCdzIGJlbG93IGNvdmVy
IHRoYXQ/CiAgICAgaWYgKGVsZW1lbnQtPmhhc01hcHBlZEF0dHJpYnV0ZXMoKSAmJiAhZWxlbWVu
dC0+YXR0cmlidXRlTWFwKCktPm1hcHBlZE1hcHNFcXVpdmFsZW50KG1fc3R5bGVkRWxlbWVudC0+
YXR0cmlidXRlTWFwKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101187</attachid>
            <date>2011-07-18 12:23:47 -0700</date>
            <delta_ts>2011-09-01 18:16:08 -0700</delta_ts>
            <desc>wip patch (almost works)</desc>
            <filename>16801.patch.4a</filename>
            <type>text/plain</type>
            <size>3722</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDkwNzg5KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzcxLDE3ICsxNzcxLDIz
IEBACiAgICAgLy8gVGhlIGxhbmd1YWdlIHByb3BlcnR5IGlzIGluaGVyaXRlZCwgc28gd2UgaXRl
cmF0ZSBvdmVyIHRoZSBwYXJlbnRzIHRvIGZpbmQgdGhlIGZpcnN0IGxhbmd1YWdlLgogICAgIHdo
aWxlIChuICYmIHZhbHVlLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChuLT5pc0VsZW1lbnROb2Rl
KCkpIHsKLSAgICAgICAgICAgIC8vIFNwZWM6IHhtbDpsYW5nIHRha2VzIHByZWNlZGVuY2UgLS0g
aHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxLyNDXzcKLSAgICAgICAgICAgIHZhbHVlID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgRWxlbWVudCo+KG4pLT5mYXN0R2V0QXR0cmlidXRlKFhNTE5hbWVzOjps
YW5nQXR0cik7Ci0gICAgICAgICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCi0gICAgICAgICAgICAg
ICAgdmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50Kj4obiktPmZhc3RHZXRBdHRyaWJ1
dGUoSFRNTE5hbWVzOjpsYW5nQXR0cik7Ci0gICAgICAgIH0gZWxzZSBpZiAobi0+aXNEb2N1bWVu
dE5vZGUoKSkgewotICAgICAgICAgICAgLy8gY2hlY2tpbmcgdGhlIE1JTUUgY29udGVudC1sYW5n
dWFnZQotICAgICAgICAgICAgdmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBEb2N1bWVudCo+KG4p
LT5jb250ZW50TGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIC8vIFRoZSB2YWx1ZSBvZiAtd2Via2l0
LWxvY2FsZSBmcm9tICd4bWw6bGFuZycgb3IgJ2xhbmcnIGlzIHN0b3JlZCBpbiAKKyAgICAgICAg
ICAgIC8vIFJlbmRlclN0eWxlIGlmIGJvdGggJ3htbDpsYW5nJyAnbGFuZycgYXJlIHByZXNlbnQg
b3IgbGFuZyBhbG9uZSBpcyBwcmVzZW50LgorICAgICAgICAgICAgLy8gRklYTUU6IEl0J3MgYnJv
a2VuIGlmIG9ubHkgeG1sOmxhbmcgaXMgcHJlc2VudC4KKyAgICAgICAgICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gbm9kZVN0eWxlKHN0YXRpY19jYXN0PGNvbnN0IEVsZW1lbnQqPihuKS0+cmVuZGVy
U3R5bGUoKSk7CisgICAgICAgICAgICBpZiAobm9kZVN0eWxlKSB7CisgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IGNhbiB3ZSByZXR1cm4gZWFybHkgaGVyZT8KKyAgICAgICAgICAgICAgICB2YWx1
ZSA9IG5vZGVTdHlsZS0+bG9jYWxlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KLQogICAgICAgICBuID0gbi0+cGFyZW50Tm9kZSgpOwogICAgIH0K
KyAgIAorICAgIGlmICh2YWx1ZS5pc051bGwoKSkgeworICAgICAgICAvLyBjaGVja2luZyB0aGUg
TUlNRSBjb250ZW50LWxhbmd1YWdlCisgICAgICAgIHZhbHVlID0gZG9jdW1lbnQoKS0+Y29udGVu
dExhbmd1YWdlKCk7CisgICAgfQogCiAgICAgcmV0dXJuIHZhbHVlOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDkwNzg5KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0
SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CkBAIC0xNjAsNyArMTYxLDIwIEBACiAgICAgICAgICAgICBzZXRUYWJJbmRleEV4cGxpY2l0
bHkobWF4KHN0YXRpY19jYXN0PGludD4oc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46Om1pbigp
KSwgbWluKHRhYmluZGV4LCBzdGF0aWNfY2FzdDxpbnQ+KHN0ZDo6bnVtZXJpY19saW1pdHM8c2hv
cnQ+OjptYXgoKSkpKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBsYW5nQXR0cikgewotICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50CisgICAgICAgIC8vIEZJ
WE1FOiB0aGlzIGRvZXMgbm90IHdvcmsgd2hlbiB4bWw6bGFuZyBpcyBwcmVzZW50IHdpdGhvdXQg
bGFuZy4KKyAgICAgICAgU3RyaW5nIHZhbHVlOworICAgICAgICAvLyB4bWw6bGFuZyBoYXMgYSBo
aWdoZXIgcHJpb3JpdHkgdGhhbiBsYW5nLgorICAgICAgICBpZiAoaGFzQXR0cmlidXRlKFhNTE5h
bWVzOjpsYW5nQXR0cikpCisgICAgICAgICAgICB2YWx1ZSA9IGdldEF0dHJpYnV0ZShYTUxOYW1l
czo6bGFuZ0F0dHIpOworICAgICAgICBlbHNlIAorICAgICAgICAgICAgdmFsdWUgPSBhdHRyLT52
YWx1ZSgpOworCisgICAgICAgIC8vIEhhdmUgdG8gZW5jbG9zZSB3aXRoIGEgcGFpciBvZiBxdW90
YXRpb24gbWFya3MgdG8gZ2V0IHRoZSBsb2NhbGUgaWQKKyAgICAgICAgLy8gdHJlYXRlZCBhcyBh
IHN0cmluZyBpbnN0ZWFkIG9mIGFzIGEgQ1NTIGtleXdvcmQuCisgICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBkb3VibGVRdW90ZUNoYXIsICgiXCIiKSk7CisgICAgICAgIHZhbHVl
Lmluc2VydChkb3VibGVRdW90ZUNoYXIsIDApOworICAgICAgICB2YWx1ZS5hcHBlbmQoZG91Ymxl
UXVvdGVDaGFyKTsKKyAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NTUHJvcGVydHlXZWJr
aXRMb2NhbGUsIHZhbHVlKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBkaXJBdHRy
KSB7CiAgICAgICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UoYXR0ci0+dmFsdWUoKSwgImF1dG8i
KSkKICAgICAgICAgICAgIGFkZENTU1Byb3BlcnR5KGF0dHIsIENTU1Byb3BlcnR5RGlyZWN0aW9u
LCBhdHRyLT52YWx1ZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAJKHJldmlzaW9uIDkwNzg5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUxLDYgKzExNTEsNyBAQAogICAgIGlmIChl
bGVtZW50LT5oYXNDbGFzcygpICYmIG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0
dHIpICE9IGVsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisgICAgLy8gRklYTUU6ZG8gd2UgbmVlZCB0byBjaGVjayBmb3IgbGFuZEF0
dHIgaGVyZT8gRG9lcyB3aGF0J3MgYmVsb3cgY292ZXIgdGhhdD8KICAgICBpZiAoZWxlbWVudC0+
aGFzTWFwcGVkQXR0cmlidXRlcygpICYmICFlbGVtZW50LT5hdHRyaWJ1dGVNYXAoKS0+bWFwcGVk
TWFwc0VxdWl2YWxlbnQobV9zdHlsZWRFbGVtZW50LT5hdHRyaWJ1dGVNYXAoKSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>105545</attachid>
            <date>2011-08-29 16:54:58 -0700</date>
            <delta_ts>2011-09-01 18:16:08 -0700</delta_ts>
            <desc>a test (not for review)</desc>
            <filename>16801.test.html</filename>
            <type>text/html</type>
            <size>1059</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgPGhlYWQ+CiAgICA8c2NyaXB0PgogICAgICBmdW5jdGlvbiBpbml0KCkgewogICAg
ICB2YXIgbjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibDEiKTsKICAgICAgdmFyIG4yID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImwyIik7CiAgICAgIHZhciBuMyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJsMyIpOwogICAgICB2YXIgbjQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibDQiKTsKICAgICAgdmFyIGxhbmcxID0gbjEuc3R5bGUud2Via2l0TG9jYWxlOwogICAgICB2
YXIgbGFuZzIgPSBuMi5zdHlsZS53ZWJraXRMb2NhbGU7CiAgICAgIHZhciBsYW5nMyA9IG4zLnN0
eWxlLndlYmtpdExvY2FsZTsKICAgICAgdmFyIGxhbmc0ID0gbjQuc3R5bGUud2ViS2l0TG9jYWxl
OwoKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxhbmciKS5pbm5lckhUTUwgPQogICAg
ICAgICJsMT0iICsgbGFuZzEgKyAiLCBsMj0gIiArIGxhbmcyICsgIiwgbDM9ICIgKyBsYW5nMyAr
ICIsIGw0PSIgKyBsYW5nNDsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpciIpLmlu
bmVySFRNTCA9CiAgICAgICAgImwxPSIgKyBuMS5zdHlsZS5kaXJlY3Rpb24gKyAiLCBsMj0gIiAr
IG4xLnN0eWxlLmRpcmVjdGlvbiArICIsIGwzPSAiICsgbjMuc3R5bGUuZGlyZWN0aW9uICsgIiwg
bDQ9IiArIG40LnN0eWxlLmRpcmVjdGlvbjsKICAgIH0KICAgIDwvc2NyaXB0PgogIDwvaGVhZD4K
ICA8Ym9keSBvbmxvYWQ9ImluaXQoKTsiPgogICAgPGRpdiBkaXI9InJ0bCIgbGFuZz0iamEiIGlk
PSJsMSI+TGV2ZWwgMQogICAgICA8ZGl2IGlkPSJsMiI+TGV2ZWwgMgogICAgICAgIDxkaXYgaWQ9
ImwzIj5MZXZlbCAzPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGlkID0g
Imw0IiBzdHlsZT0iZGlyZWN0aW9uOnJ0bDsgLXdlYmtpdC1sb2NhbGU6ICdqYSc7IGZvbnQtZmFt
aWx5OiBBcmlhbDsiPjwvZGl2PgogICAgPGRpdiBpZD0ibGFuZyI+PC9kaXY+CiAgICA8ZGl2IGlk
PSJkaXIiPjwvZGl2PgogIDwvYm9keT4KPC9odG1sPgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106075</attachid>
            <date>2011-09-01 18:16:08 -0700</date>
            <delta_ts>2011-09-02 17:32:57 -0700</delta_ts>
            <desc>patch with layout test</desc>
            <filename>16801.patch.5</filename>
            <type>text/plain</type>
            <size>6501</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDkzOTg1KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzcxLDE3ICsxNzcxLDI3
IEBAIEF0b21pY1N0cmluZyBFbGVtZW50Ojpjb21wdXRlSW5oZXJpdGVkTGEKICAgICAvLyBUaGUg
bGFuZ3VhZ2UgcHJvcGVydHkgaXMgaW5oZXJpdGVkLCBzbyB3ZSBpdGVyYXRlIG92ZXIgdGhlIHBh
cmVudHMgdG8gZmluZCB0aGUgZmlyc3QgbGFuZ3VhZ2UuCiAgICAgd2hpbGUgKG4gJiYgdmFsdWUu
aXNOdWxsKCkpIHsKICAgICAgICAgaWYgKG4tPmlzRWxlbWVudE5vZGUoKSkgewotICAgICAgICAg
ICAgLy8gU3BlYzogeG1sOmxhbmcgdGFrZXMgcHJlY2VkZW5jZSAtLSBodHRwOi8vd3d3LnczLm9y
Zy9UUi94aHRtbDEvI0NfNwotICAgICAgICAgICAgdmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBF
bGVtZW50Kj4obiktPmZhc3RHZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OmxhbmdBdHRyKTsKLSAgICAg
ICAgICAgIGlmICh2YWx1ZS5pc051bGwoKSkKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0YXRp
Y19jYXN0PGNvbnN0IEVsZW1lbnQqPihuKS0+ZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Omxh
bmdBdHRyKTsKLSAgICAgICAgfSBlbHNlIGlmIChuLT5pc0RvY3VtZW50Tm9kZSgpKSB7Ci0gICAg
ICAgICAgICAvLyBjaGVja2luZyB0aGUgTUlNRSBjb250ZW50LWxhbmd1YWdlCi0gICAgICAgICAg
ICB2YWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IERvY3VtZW50Kj4obiktPmNvbnRlbnRMYW5ndWFn
ZSgpOworICAgICAgICAgICAgLy8gVGhlIHZhbHVlIG9mIC13ZWJraXQtbG9jYWxlIGZyb20gJ3ht
bDpsYW5nJyBvciAnbGFuZycgaXMgc3RvcmVkIGluIAorICAgICAgICAgICAgLy8gUmVuZGVyU3R5
bGUgaWYgYm90aCAneG1sOmxhbmcnICdsYW5nJyBhcmUgcHJlc2VudCBvciBsYW5nIGFsb25lIGlz
IHByZXNlbnQuCisgICAgICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5vZGVTdHlsZShzdGF0
aWNfY2FzdDxjb25zdCBFbGVtZW50Kj4obiktPnJlbmRlclN0eWxlKCkpOworICAgICAgICAgICAg
aWYgKG5vZGVTdHlsZSkgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBjYW4gd2UgcmV0dXJu
IGVhcmx5IGhlcmU/CisgICAgICAgICAgICAgICAgdmFsdWUgPSBub2RlU3R5bGUtPmxvY2FsZSgp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0KICAg
ICAgICAgbiA9IG4tPnBhcmVudE5vZGUoKTsKICAgICB9CisgICAKKyAgICBpZiAodmFsdWUuaXNO
dWxsKCkpIHsKKyAgICAgICAgLy8gY2hlY2tpbmcgdGhlIE1JTUUgY29udGVudC1sYW5ndWFnZQor
ICAgICAgICAvLyBGSVhNRTogSXQgY2FuIGhhdmUgbXVsdGlwbGUgY29tbWEgc2VwYXJhdGVkIHZh
bHVlcy4gU2hvdWxkIHdlIHBpY2sKKyAgICAgICAgLy8gdGhlIDFzdCBvbmU/CisgICAgICAgIHZh
bHVlID0gZG9jdW1lbnQoKS0+Y29udGVudExhbmd1YWdlKCk7CisgICAgfQorCisgICAgLy8gRklY
TUU6IENvbnNpZGVyIGluZmVycmluZyBhIGxhbmcgZnJvbSBjaGFyc2V0IHdoZXJlIGl0J3MgdW5h
bWJpZ3VvdXMuCisgICAgLy8gVGhhdCB3aWxsIGhlbHAgd2l0aCBmb250IHNlbGVjdGlvbi4KIAog
ICAgIHJldHVybiB2YWx1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA5Mzk4NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAi
WE1MTmFtZXMuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMTczLDcgKzE3NCwyMSBA
QCB2b2lkIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBCiAgICAgICAgICAgICBz
ZXRUYWJJbmRleEV4cGxpY2l0bHkobWF4KHN0YXRpY19jYXN0PGludD4oc3RkOjpudW1lcmljX2xp
bWl0czxzaG9ydD46Om1pbigpKSwgbWluKHRhYmluZGV4LCBzdGF0aWNfY2FzdDxpbnQ+KHN0ZDo6
bnVtZXJpY19saW1pdHM8c2hvcnQ+OjptYXgoKSkpKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSBsYW5nQXR0cikgewotICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50CisgICAgICAgIC8vIEZJWE1FOiB0aGlzIGRvZXMgbm90IHdvcmsgd2hlbiB4bWw6bGFuZyBp
cyBwcmVzZW50IHdpdGhvdXQgbGFuZy4KKyAgICAgICAgLy8gV2UgbWF5IG5vdCBoYXZlIHRvIGhh
bmRsZSB0aGF0IGNhc2UsIHRob3VnaC4KKyAgICAgICAgU3RyaW5nIHZhbHVlOworICAgICAgICAv
LyB4bWw6bGFuZyBoYXMgYSBoaWdoZXIgcHJpb3JpdHkgdGhhbiBsYW5nLgorICAgICAgICBpZiAo
aGFzQXR0cmlidXRlKFhNTE5hbWVzOjpsYW5nQXR0cikpCisgICAgICAgICAgICB2YWx1ZSA9IGdl
dEF0dHJpYnV0ZShYTUxOYW1lczo6bGFuZ0F0dHIpOworICAgICAgICBlbHNlIAorICAgICAgICAg
ICAgdmFsdWUgPSBhdHRyLT52YWx1ZSgpOworCisgICAgICAgIC8vIEhhdmUgdG8gZW5jbG9zZSB3
aXRoIGEgcGFpciBvZiBxdW90YXRpb24gbWFya3MgdG8gZ2V0IHRoZSBsb2NhbGUgaWQKKyAgICAg
ICAgLy8gdHJlYXRlZCBhcyBhIHN0cmluZyBpbnN0ZWFkIG9mIGFzIGEgQ1NTIGtleXdvcmQuCisg
ICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkb3VibGVRdW90ZUNoYXIsICgiXCIi
KSk7CisgICAgICAgIHZhbHVlLmluc2VydChkb3VibGVRdW90ZUNoYXIsIDApOworICAgICAgICB2
YWx1ZS5hcHBlbmQoZG91YmxlUXVvdGVDaGFyKTsKKyAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0
ciwgQ1NTUHJvcGVydHlXZWJraXRMb2NhbGUsIHZhbHVlKTsKICAgICB9IGVsc2UgaWYgKGF0dHIt
Pm5hbWUoKSA9PSBkaXJBdHRyKSB7CiAgICAgICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UoYXR0
ci0+dmFsdWUoKSwgImF1dG8iKSkKICAgICAgICAgICAgIGFkZENTU1Byb3BlcnR5KGF0dHIsIENT
U1Byb3BlcnR5RGlyZWN0aW9uLCBhdHRyLT52YWx1ZSgpKTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxvY2Fs
ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvbGFu
Zy1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTggQEAKK1RoaXMgaXMgYSB0ZXN0IGZvciBidWcgMTY4MDEuIFRvIHNwZWVkIHVwIHRo
ZSByZXNvbHV0aW9uIG9mICdsYW5nJyBvZiBhIG5vZGUsICdsYW5nL3htbDpsYW5nJyBpcyBtYXBw
ZWQgdG8gLXdlYmtpdC1sb2NhbGUgd2hvc2UgdmFsdWUgaXMgcmV0cml2ZWQgd2hlbiAnbGFuZycg
aXMgYXNrZWQgZm9yLgorCitQQVNTIGdldExhbmdPZk5vZGUoJ3gxJykgaXMgImphIgorUEFTUyBn
ZXRMYW5nT2ZOb2RlKCd4MicpIGlzICJqYSIKK1BBU1MgZ2V0TGFuZ09mTm9kZSgneDMnKSBpcyAi
amEiCitQQVNTIGdldExhbmdPZk5vZGUoJ2wxJykgaXMgInpoIgorUEFTUyBnZXRMYW5nT2ZOb2Rl
KCdsMicpIGlzICJ6aCIKK1BBU1MgZ2V0TGFuZ09mTm9kZSgnbDMnKSBpcyAiemgiCitQQVNTIGdl
dExhbmdPZk5vZGUoJ20xJykgaXMgImtvIgorUEFTUyBnZXRMYW5nT2ZOb2RlKCdtMicpIGlzICJm
ciIKK1BBU1MgZ2V0TGFuZ09mTm9kZSgnbTMnKSBpcyAiZnIiCitQQVNTIGdldExhbmdPZk5vZGUo
J24xJykgaXMgImZyIgorUEFTUyBnZXRMYW5nT2ZOb2RlKCduMicpIGlzICJmciIKK1BBU1MgZ2V0
TGFuZ09mTm9kZSgnbjMnKSBpcyAic3YiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2xhbmctbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUtZXhwZWN0ZWQudHh0Cl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
dGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLnhodG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLnhodG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2xhbmctbWFwcGVkLXRvLXdlYmtp
dC1sb2NhbGUueGh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAKKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhpcyBpcyBhIHRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly93ZWJraXQu
b3JnL2IvMTY4MDEiPmJ1ZyAxNjgwMTwvYT4uIFRvIHNwZWVkIHVwIHRoZSByZXNvbHV0aW9uIG9m
ICdsYW5nJyBvZiBhIG5vZGUsICdsYW5nL3htbDpsYW5nJyBpcyBtYXBwZWQgdG8gLXdlYmtpdC1s
b2NhbGUgd2hvc2UgdmFsdWUgaXMgcmV0cml2ZWQgd2hlbiAnbGFuZycgaXMgYXNrZWQgZm9yLjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGRpdiB4bWw6bGFuZz0iamEiIGxhbmc9ImVu
IiBpZD0ieDEiPjxkaXYgaWQ9IngyIj48ZGl2IGlkPSJ4MyI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8
ZGl2IGxhbmc9InpoIiBpZD0ibDEiPjxkaXYgaWQ9ImwyIj48ZGl2IGlkPSJsMyI+PC9kaXY+PC9k
aXY+PC9kaXY+Cis8ZGl2IGxhbmc9ImtvIiBpZD0ibTEiPjxkaXYgbGFuZz0iZnIiIHhtbDpsYW5n
PSJmciIgaWQ9Im0yIj48ZGl2IGlkPSJtMyI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IHhtbDps
YW5nPSJmciIgbGFuZz0iZnIiIGlkPSJuMSI+PGRpdiBpZD0ibjIiPjxkaXYgbGFuZz0ic3YiIGlk
PSJuMyI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gZ2V0TGFuZ09mTm9k
ZShuKSB7CisgICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4pOworICAgIHJldHVybiB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKS53ZWJraXRMb2NhbGU7Cit9CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3gxJykiLCAiamEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygiZ2V0TGFuZ09mTm9kZSgneDInKSIsICJqYSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJnZXRMYW5nT2ZOb2RlKCd4MycpIiwgImphIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdl
dExhbmdPZk5vZGUoJ2wxJykiLCAiemgiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFu
Z09mTm9kZSgnbDInKSIsICJ6aCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZO
b2RlKCdsMycpIiwgInpoIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUo
J20xJykiLCAia28iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbTIn
KSIsICJmciIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdtMycpIiwg
ImZyIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ24xJykiLCAiZnIi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbjInKSIsICJmciIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCduMycpIiwgInN2Iik7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CisK
</data>
<flag name="commit-queue"
          id="102428"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106227</attachid>
            <date>2011-09-02 17:32:57 -0700</date>
            <delta_ts>2011-12-21 11:20:24 -0800</delta_ts>
            <desc>patch update (still not passing some layout tests)</desc>
            <filename>16801.patch.5a</filename>
            <type>text/plain</type>
            <size>7609</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDkzOTg1KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzcxLDE3ICsxNzcxLDI4
IEBAIEF0b21pY1N0cmluZyBFbGVtZW50Ojpjb21wdXRlSW5oZXJpdGVkTGEKICAgICAvLyBUaGUg
bGFuZ3VhZ2UgcHJvcGVydHkgaXMgaW5oZXJpdGVkLCBzbyB3ZSBpdGVyYXRlIG92ZXIgdGhlIHBh
cmVudHMgdG8gZmluZCB0aGUgZmlyc3QgbGFuZ3VhZ2UuCiAgICAgd2hpbGUgKG4gJiYgdmFsdWUu
aXNOdWxsKCkpIHsKICAgICAgICAgaWYgKG4tPmlzRWxlbWVudE5vZGUoKSkgewotICAgICAgICAg
ICAgLy8gU3BlYzogeG1sOmxhbmcgdGFrZXMgcHJlY2VkZW5jZSAtLSBodHRwOi8vd3d3LnczLm9y
Zy9UUi94aHRtbDEvI0NfNwotICAgICAgICAgICAgdmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBF
bGVtZW50Kj4obiktPmZhc3RHZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OmxhbmdBdHRyKTsKLSAgICAg
ICAgICAgIGlmICh2YWx1ZS5pc051bGwoKSkKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0YXRp
Y19jYXN0PGNvbnN0IEVsZW1lbnQqPihuKS0+ZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Omxh
bmdBdHRyKTsKLSAgICAgICAgfSBlbHNlIGlmIChuLT5pc0RvY3VtZW50Tm9kZSgpKSB7Ci0gICAg
ICAgICAgICAvLyBjaGVja2luZyB0aGUgTUlNRSBjb250ZW50LWxhbmd1YWdlCi0gICAgICAgICAg
ICB2YWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IERvY3VtZW50Kj4obiktPmNvbnRlbnRMYW5ndWFn
ZSgpOworICAgICAgICAgICAgLy8gVGhlIHZhbHVlIG9mIC13ZWJraXQtbG9jYWxlIGZyb20gJ3ht
bDpsYW5nJyBvciAnbGFuZycgaXMgc3RvcmVkIGluIAorICAgICAgICAgICAgLy8gUmVuZGVyU3R5
bGUgaWYgYm90aCAneG1sOmxhbmcnICdsYW5nJyBhcmUgcHJlc2VudCBvciBsYW5nIGFsb25lIGlz
IHByZXNlbnQuCisgICAgICAgICAgICAvL1JlZlB0cjxSZW5kZXJTdHlsZT4gbm9kZVN0eWxlKHN0
YXRpY19jYXN0PEVsZW1lbnQqPihuKS0+Y29tcHV0ZWRTdHlsZSgpKTsKKyAgICAgICAgICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gbm9kZVN0eWxlKHN0YXRpY19jYXN0PGNvbnN0IEVsZW1lbnQqPihu
KS0+cmVuZGVyU3R5bGUoKSk7CisgICAgICAgICAgICBpZiAobm9kZVN0eWxlKSB7CisgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IGNhbiB3ZSByZXR1cm4gZWFybHkgaGVyZT8KKyAgICAgICAgICAg
ICAgICB2YWx1ZSA9IG5vZGVTdHlsZS0+bG9jYWxlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KLQogICAgICAgICBuID0gbi0+cGFyZW50Tm9kZSgp
OwogICAgIH0KKyAgIAorICAgIGlmICh2YWx1ZS5pc051bGwoKSkgeworICAgICAgICAvLyBjaGVj
a2luZyB0aGUgTUlNRSBjb250ZW50LWxhbmd1YWdlCisgICAgICAgIC8vIEZJWE1FOiBJdCBjYW4g
aGF2ZSBtdWx0aXBsZSBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzLiBTaG91bGQgd2UgcGljaworICAg
ICAgICAvLyB0aGUgMXN0IG9uZT8KKyAgICAgICAgdmFsdWUgPSBkb2N1bWVudCgpLT5jb250ZW50
TGFuZ3VhZ2UoKTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogQ29uc2lkZXIgaW5mZXJyaW5nIGEg
bGFuZyBmcm9tIGNoYXJzZXQgd2hlcmUgaXQncyB1bmFtYmlndW91cy4KKyAgICAvLyBUaGF0IHdp
bGwgaGVscCB3aXRoIGZvbnQgc2VsZWN0aW9uLgogCiAgICAgcmV0dXJuIHZhbHVlOwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDkzOTg1KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYg
KzQ2LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNs
dWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgIm1h
cmt1cC5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CkBAIC0xNzIsOCArMTczLDQyIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKEEKICAgICAgICAgICAgIC8vIENsYW1wIHRhYmluZGV4IHRvIHRoZSBy
YW5nZSBvZiAnc2hvcnQnIHRvIG1hdGNoIEZpcmVmb3gncyBiZWhhdmlvci4KICAgICAgICAgICAg
IHNldFRhYkluZGV4RXhwbGljaXRseShtYXgoc3RhdGljX2Nhc3Q8aW50PihzdGQ6Om51bWVyaWNf
bGltaXRzPHNob3J0Pjo6bWluKCkpLCBtaW4odGFiaW5kZXgsIHN0YXRpY19jYXN0PGludD4oc3Rk
OjpudW1lcmljX2xpbWl0czxzaG9ydD46Om1heCgpKSkpKTsKICAgICAgICAgfQorICAgIH0gZWxz
ZSBpZiAoYXR0ci0+bmFtZSgpID09IFhNTE5hbWVzOjpsYW5nQXR0cikgeworICAgICAgICBTdHJp
bmcgdmFsdWUgPSBhdHRyLT52YWx1ZSgpOworICAgICAgICBpZiAodmFsdWUubGVuZ3RoKCkpIHsK
KyAgICAgICAgICAgIC8vIEhhdmUgdG8gZW5jbG9zZSB3aXRoIGEgcGFpciBvZiBxdW90YXRpb24g
bWFya3MgdG8gZ2V0IHRoZSAKKyAgICAgICAgICAgIC8vIGxvY2FsZSBpZCB0cmVhdGVkIGFzIGEg
c3RyaW5nIGluc3RlYWQgb2YgYXMgYSBDU1Mga2V5d29yZC4KKyAgICAgICAgICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBkb3VibGVRdW90ZUNoYXIsICgiXCIiKSk7CisgICAgICAgICAg
ICB2YWx1ZS5pbnNlcnQoZG91YmxlUXVvdGVDaGFyLCAwKTsKKyAgICAgICAgICAgIHZhbHVlLmFw
cGVuZChkb3VibGVRdW90ZUNoYXIpOworICAgICAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwg
Q1NTUHJvcGVydHlXZWJraXRMb2NhbGUsIHZhbHVlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIC8vIGVtcHR5ICdsYW5nJyBzaG91bGQgYmUgdHJlYXRlZCBhcyAnYXV0bycuCisgICAg
ICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtpdExvY2FsZSwgImF1
dG8iKTsKKyAgICAgICAgfQorICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbGFuZ0F0dHIpIHsKLSAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudAorICAgICAgICAvLyBGSVhNRTogdGhpcyBkb2VzIG5vdCB3b3JrIHdoZW4geG1sOmxh
bmcgaXMgcHJlc2VudCB3aXRob3V0IGxhbmcuCisgICAgICAgIC8vIFdlIG1heSBub3QgaGF2ZSB0
byBoYW5kbGUgdGhhdCBjYXNlLCB0aG91Z2guCisgICAgICAgIFN0cmluZyB2YWx1ZTsKKyAgICAg
ICAgLy8geG1sOmxhbmcgaGFzIGEgaGlnaGVyIHByaW9yaXR5IHRoYW4gbGFuZy4KKyAgICAgICAg
aWYgKGhhc0F0dHJpYnV0ZShYTUxOYW1lczo6bGFuZ0F0dHIpKQorICAgICAgICAgICAgdmFsdWUg
PSBnZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OmxhbmdBdHRyKTsKKyAgICAgICAgZWxzZSAKKyAgICAg
ICAgICAgIHZhbHVlID0gYXR0ci0+dmFsdWUoKTsKKworICAgICAgICBpZiAodmFsdWUubGVuZ3Ro
KCkpIHsKKyAgICAgICAgICAgIC8vIEhhdmUgdG8gZW5jbG9zZSB3aXRoIGEgcGFpciBvZiBxdW90
YXRpb24gbWFya3MgdG8gZ2V0IHRoZSAKKyAgICAgICAgICAgIC8vIGxvY2FsZSBpZCB0cmVhdGVk
IGFzIGEgc3RyaW5nIGluc3RlYWQgb2YgYXMgYSBDU1Mga2V5d29yZC4KKyAgICAgICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkb3VibGVRdW90ZUNoYXIsICgiXCIiKSk7CisgICAg
ICAgICAgICB2YWx1ZS5pbnNlcnQoZG91YmxlUXVvdGVDaGFyLCAwKTsKKyAgICAgICAgICAgIHZh
bHVlLmFwcGVuZChkb3VibGVRdW90ZUNoYXIpOworICAgICAgICAgICAgYWRkQ1NTUHJvcGVydHko
YXR0ciwgQ1NTUHJvcGVydHlXZWJraXRMb2NhbGUsIHZhbHVlKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIC8vIGVtcHR5ICdsYW5nJyBzaG91bGQgYmUgdHJlYXRlZCBhcyAnYXV0bycu
CisgICAgICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtpdExvY2Fs
ZSwgQ1NTVmFsdWVBdXRvKTsKKyAgICAgICAgfQorICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxj
KCk7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gZGlyQXR0cikgewogICAgICAgICBp
ZiAoIWVxdWFsSWdub3JpbmdDYXNlKGF0dHItPnZhbHVlKCksICJhdXRvIikpCiAgICAgICAgICAg
ICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eURpcmVjdGlvbiwgYXR0ci0+dmFsdWUo
KSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxv
Y2FsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2xh
bmctbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2xhbmctbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4IEBACitUaGlzIGlzIGEgdGVzdCBmb3Ig
YnVnIDE2ODAxLiBUbyBzcGVlZCB1cCB0aGUgcmVzb2x1dGlvbiBvZiAnbGFuZycgb2YgYSBub2Rl
LCAnbGFuZy94bWw6bGFuZycgaXMgbWFwcGVkIHRvIC13ZWJraXQtbG9jYWxlIHdob3NlIHZhbHVl
IGlzIHJldHJpdmVkIHdoZW4gJ2xhbmcnIGlzIGFza2VkIGZvci4KKworUEFTUyBnZXRMYW5nT2ZO
b2RlKCd4MScpIGlzICJqYSIKK1BBU1MgZ2V0TGFuZ09mTm9kZSgneDInKSBpcyAiamEiCitQQVNT
IGdldExhbmdPZk5vZGUoJ3gzJykgaXMgImphIgorUEFTUyBnZXRMYW5nT2ZOb2RlKCdsMScpIGlz
ICJ6aCIKK1BBU1MgZ2V0TGFuZ09mTm9kZSgnbDInKSBpcyAiemgiCitQQVNTIGdldExhbmdPZk5v
ZGUoJ2wzJykgaXMgInpoIgorUEFTUyBnZXRMYW5nT2ZOb2RlKCdtMScpIGlzICJrbyIKK1BBU1Mg
Z2V0TGFuZ09mTm9kZSgnbTInKSBpcyAiZnIiCitQQVNTIGdldExhbmdPZk5vZGUoJ20zJykgaXMg
ImZyIgorUEFTUyBnZXRMYW5nT2ZOb2RlKCduMScpIGlzICJmciIKK1BBU1MgZ2V0TGFuZ09mTm9k
ZSgnbjInKSBpcyAiZnIiCitQQVNTIGdldExhbmdPZk5vZGUoJ24zJykgaXMgInN2IgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKClByb3BlcnR5IGNo
YW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9j
YWxlLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYK
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxvY2Fs
ZS54aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvbGFuZy1tYXBwZWQt
dG8td2Via2l0LWxvY2FsZS54aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
dGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLnhodG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDM2IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgaXMgYSB0ZXN0IGZv
ciA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzE2ODAxIj5idWcgMTY4MDE8L2E+LiBUbyBz
cGVlZCB1cCB0aGUgcmVzb2x1dGlvbiBvZiAnbGFuZycgb2YgYSBub2RlLCAnbGFuZy94bWw6bGFu
ZycgaXMgbWFwcGVkIHRvIC13ZWJraXQtbG9jYWxlIHdob3NlIHZhbHVlIGlzIHJldHJpdmVkIHdo
ZW4gJ2xhbmcnIGlzIGFza2VkIGZvci48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxk
aXYgeG1sOmxhbmc9ImphIiBsYW5nPSJlbiIgaWQ9IngxIj48ZGl2IGlkPSJ4MiI+PGRpdiBpZD0i
eDMiPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBsYW5nPSJ6aCIgaWQ9ImwxIj48ZGl2IGlkPSJs
MiI+PGRpdiBpZD0ibDMiPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBsYW5nPSJrbyIgaWQ9Im0x
Ij48ZGl2IGxhbmc9ImZyIiB4bWw6bGFuZz0iZnIiIGlkPSJtMiI+PGRpdiBpZD0ibTMiPjwvZGl2
PjwvZGl2PjwvZGl2PgorPGRpdiB4bWw6bGFuZz0iZnIiIGxhbmc9ImZyIiBpZD0ibjEiPjxkaXYg
aWQ9Im4yIj48ZGl2IGxhbmc9InN2IiBpZD0ibjMiPjwvZGl2PjwvZGl2PjwvZGl2PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIGdldExhbmdPZk5vZGUobikgeworICAgIGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChuKTsKKyAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZSkud2Via2l0
TG9jYWxlOworfQorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCd4MScpIiwg
ImphIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3gyJykiLCAiamEi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgneDMnKSIsICJqYSIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdsMScpIiwgInpoIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ2wyJykiLCAiemgiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbDMnKSIsICJ6aCIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdtMScpIiwgImtvIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImdldExhbmdPZk5vZGUoJ20yJykiLCAiZnIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZ2V0TGFuZ09mTm9kZSgnbTMnKSIsICJmciIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJn
ZXRMYW5nT2ZOb2RlKCduMScpIiwgImZyIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExh
bmdPZk5vZGUoJ24yJykiLCAiZnIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09m
Tm9kZSgnbjMnKSIsICJzdiIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>