<?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>48937</bug_id>
          
          <creation_ts>2010-11-03 11:34:58 -0700</creation_ts>
          <short_desc>Spatial Navigation: Add support for &lt;select&gt; element in single selection mode</short_desc>
          <delta_ts>2010-11-06 14:26:07 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>47094</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>eric</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rniwa</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>304153</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-11-03 11:34:58 -0700</bug_when>
    <thetext>This case handles the single selection mode only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304168</commentid>
    <comment_count>1</comment_count>
      <attachid>72847</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-11-03 11:49:57 -0700</bug_when>
    <thetext>Created attachment 72847
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304180</commentid>
    <comment_count>2</comment_count>
      <attachid>72847</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-11-03 12:04:03 -0700</bug_when>
    <thetext>Comment on attachment 72847
fix patch

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

Looks generally good. Comments below.

&gt; WebCore/dom/SelectElement.cpp:236
&gt; +bool SelectElement::isSpatialNavigation(const Element* element)

Should not be a class method, but a static helper.

Name is also not so good.

&gt; WebCore/dom/SelectElement.cpp:655
&gt; +        } else if (keyCode == &apos; &apos; &amp;&amp; isSpatialNavigation(element)) {

What about ENTER?

&gt; LayoutTests/fast/events/spatial-navigation/resources/spatial-navigation-utils.js:58
&gt; -    return;
&gt; +    direction = gExpectedResults[gIndex][0];
&gt;    }

Lets also do &quot;case &quot; &quot;:&quot; and keep the default no-op. otherwise anything could get here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304641</commentid>
    <comment_count>3</comment_count>
      <attachid>72941</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-11-04 07:32:05 -0700</bug_when>
    <thetext>Created attachment 72941
fix patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305314</commentid>
    <comment_count>4</comment_count>
      <attachid>72941</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-11-05 09:23:50 -0700</bug_when>
    <thetext>Comment on attachment 72941
fix patch 2

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

Looks good. r=me with my comments addressed.

&gt; WebCore/dom/SelectElement.cpp:572
&gt; +        if (isSpatialNavigationEnabled(element))

lets do it as

if (isSpatialNavigationEnabled(frame-&gt;settings()))

then in the function you do:

bool isSpatialNavigationenabled(Settings* settings)
{
  if (!setting)
     return false;

  return settings-&gt;isSpatialNavigationEnabled();
}

&gt; WebCore/dom/SelectElement.cpp:777
&gt; -        if (Frame* frame = element-&gt;document()-&gt;frame()) {
&gt; -            if (frame-&gt;settings() &amp;&amp; frame-&gt;settings()-&gt;isSpatialNavigationEnabled()) {
&gt; -                // Check if the selection moves to the boundary.
&gt; -                if (keyIdentifier == &quot;Left&quot; || keyIdentifier == &quot;Right&quot; || ((keyIdentifier == &quot;Down&quot; || keyIdentifier == &quot;Up&quot;) &amp;&amp; endIndex == data.activeSelectionEndIndex()))
&gt; -                    return;
&gt; -            }
&gt; -        }
&gt; +        if (isSpatialNavigationEnabled(element))

same here:

id (Frame* frame = element-&gt;document()-&gt;frame())
   if (isSpatialNavigationEnabled(frame-&gt;settings()))

so we would change only only of code here.

&gt; LayoutTests/fast/events/spatial-navigation/resources/spatial-navigation-utils.js:63
&gt; +  if (window.layoutTestController &amp;&amp; direction != null)

only &quot;&amp;&amp; direction&quot; does not work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305424</commentid>
    <comment_count>5</comment_count>
      <attachid>73092</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-11-05 11:45:08 -0700</bug_when>
    <thetext>Created attachment 73092
fix patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305437</commentid>
    <comment_count>6</comment_count>
      <attachid>73092</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-11-05 12:01:01 -0700</bug_when>
    <thetext>Comment on attachment 73092
fix patch 3

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

&gt; WebCore/dom/SelectElement.cpp:75
&gt; +static bool isSpatialNavigationEnabled(const Frame* frame)
&gt; +{

Could you please file a bug to add a &quot;static bool SpatialNavigation::isEnabled(Settings*)&quot; method in spatialNavigation.h

they each file that touches it will have to have its own copy of this method. It is in /editing already.

If we do that, it should probably take a Settings* and that we should do the early return logic even for such small function, as I described in the previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305443</commentid>
    <comment_count>7</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-11-05 12:03:41 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 73092 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=73092&amp;action=review
&gt; 
&gt; &gt; WebCore/dom/SelectElement.cpp:75
&gt; &gt; +static bool isSpatialNavigationEnabled(const Frame* frame)
&gt; &gt; +{
&gt; 
&gt; Could you please file a bug to add a &quot;static bool SpatialNavigation::isEnabled(Settings*)&quot; method in spatialNavigation.h
&gt; 
&gt; they each file that touches it will have to have its own copy of this method. It is in /editing already.
&gt; 
&gt; If we do that, it should probably take a Settings* and that we should do the early return logic even for such small function, as I described in the previous comment.

Makes sense, will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305444</commentid>
    <comment_count>8</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-11-05 12:05:15 -0700</bug_when>
    <thetext>
&gt; they each file that touches it will have to have its own copy of this method. It is in /editing already.

in english now: &quot;then files that want to know about spatial navigation status do not need to have their own copy of this method. 

e.g. this method is also in /editing&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305449</commentid>
    <comment_count>9</comment_count>
      <attachid>73092</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-05 12:22:24 -0700</bug_when>
    <thetext>Comment on attachment 73092
fix patch 3

Clearing flags on attachment: 73092

Committed r71442: &lt;http://trac.webkit.org/changeset/71442&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305450</commentid>
    <comment_count>10</comment_count>
      <attachid>73092</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-05 12:22:31 -0700</bug_when>
    <thetext>Comment on attachment 73092
fix patch 3

Rejecting patch 73092 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--ignore-builders&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 73092]&quot; exit_code: 1
Last 500 characters of output:
ts/CommitQueue/WebKitTools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_html.py&quot;, line 546, in __getattr__
    self.forms()
  File &quot;/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_html.py&quot;, line 559, in forms
    self._forms_factory.forms())
  File &quot;/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_html.py&quot;, line 228, in forms
    raise ParseError(exc)
webkitpy.thirdparty.autoinstalled.mechanize._html.ParseError

Full output: http://queues.webkit.org/results/5252020</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305458</commentid>
    <comment_count>11</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-11-05 12:43:05 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 73092 [details])
&gt; Rejecting patch 73092 from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--ignore-builders&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 73092]&quot; exit_code: 1
&gt; Last 500 characters of output:
&gt; ts/CommitQueue/WebKitTools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_html.py&quot;, line 546, in __getattr__
&gt;     self.forms()
&gt;   File &quot;/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_html.py&quot;, line 559, in forms
&gt;     self._forms_factory.forms())
&gt;   File &quot;/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_html.py&quot;, line 228, in forms
&gt;     raise ParseError(exc)
&gt; webkitpy.thirdparty.autoinstalled.mechanize._html.ParseError
&gt; 
&gt; Full output: http://queues.webkit.org/results/5252020

I guess the script is broken. can anyone take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305813</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-06 14:26:07 -0700</bug_when>
    <thetext>This test has been failing on gtk.  Please fix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72847</attachid>
            <date>2010-11-03 11:49:57 -0700</date>
            <delta_ts>2010-11-04 07:32:05 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>48937_1.patch</filename>
            <type>text/plain</type>
            <size>8357</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTI1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMDMgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIDxzZWxlY3Q+IGVsZW1lbnQgaW4gc2luZ2xlIHNlbGVjdGlvbiBtb2RlLiBX
ZSB1c2Ugc3BhY2UgdG8KKyAgICAgICAgdHJpZ2dlciBhcnJvdyBrZXkgaGFuZGxpbmcgZm9yIHNl
bGVjdGlvbiBjaGFuZ2Ugb3Igc3BhdGlhbCBuYXZpZ2F0aW9uLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg5MzcKKworICAgICAgICAqIGRvbS9TZWxl
Y3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdEVsZW1lbnQ6OmlzU3BhdGlh
bE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0RWxlbWVudDo6bWVudUxpc3RE
ZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdEVsZW1lbnQ6Omxp
c3RCb3hEZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBkb20vU2VsZWN0RWxlbWVudC5o
OgorCiAyMDEwLTExLTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvZG9tL1NlbGVjdEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCShyZXZp
c2lvbiA3MTExMCkKKysrIFdlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMzMsNiArMjMzLDE0IEBAIHZvaWQgU2VsZWN0RWxlbWVudDo6c2V0T3B0aW9uc0No
YW5nZWRPblIKICAgICB9CiB9CiAKK2Jvb2wgU2VsZWN0RWxlbWVudDo6aXNTcGF0aWFsTmF2aWdh
dGlvbihjb25zdCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmIChGcmFtZSogZnJhbWUgPSBl
bGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpKQorICAgICAgICBpZiAoZnJhbWUtPnNldHRpbmdz
KCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKCkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgU2Vs
ZWN0RWxlbWVudDo6c2V0UmVjYWxjTGlzdEl0ZW1zKFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBF
bGVtZW50KiBlbGVtZW50KQogewogICAgIGRhdGEuc2V0U2hvdWxkUmVjYWxjTGlzdEl0ZW1zKHRy
dWUpOwpAQCAtNTYxLDEwICs1NjksOSBAQCB2b2lkIFNlbGVjdEVsZW1lbnQ6Om1lbnVMaXN0RGVm
YXVsdEV2ZW50CiAjZWxzZQogICAgICAgICAvLyBXaGVuIHVzaW5nIHNwYXRpYWwgbmF2aWdhdGlv
biwgd2Ugd2FudCB0byBiZSBhYmxlIHRvIG5hdmlnYXRlIGF3YXkgZnJvbSB0aGUgc2VsZWN0IGVs
ZW1lbnQKICAgICAgICAgLy8gd2hlbiB0aGUgdXNlciBoaXRzIGFueSBvZiB0aGUgYXJyb3cga2V5
cywgaW5zdGVhZCBvZiBjaGFuZ2luZyB0aGUgc2VsZWN0aW9uLgotICAgICAgICBpZiAoRnJhbWUq
IGZyYW1lID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewotICAgICAgICAgICAgaWYg
KGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5ncygpLT5pc1NwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZCgpKQorICAgICAgICBpZiAoaXNTcGF0aWFsTmF2aWdhdGlvbihlbGVtZW50KSkK
KyAgICAgICAgICAgIGlmICghZGF0YS5hY3RpdmVTZWxlY3Rpb25TdGF0ZSgpKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQogCiAgICAgICAgIFVOVVNFRF9QQVJBTShodG1sRm9y
bSk7CiAgICAgICAgIGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4mIGxpc3RJdGVtcyA9IGRhdGEubGlz
dEl0ZW1zKGVsZW1lbnQpOwpAQCAtNjQ1LDYgKzY1MiwxMCBAQCB2b2lkIFNlbGVjdEVsZW1lbnQ6
Om1lbnVMaXN0RGVmYXVsdEV2ZW50CiAgICAgICAgICAgICAvLyBsaXN0SW5kZXggc2hvdWxkIGFs
cmVhZHkgYmUgc2VsZWN0ZWQsIGJ1dCB0aGlzIHdpbGwgZmlyZSB0aGUgb25jaGFuZ2UgaGFuZGxl
ci4KICAgICAgICAgICAgIHNldFNlbGVjdGVkSW5kZXgoZGF0YSwgZWxlbWVudCwgbGlzdFRvT3B0
aW9uSW5kZXgoZGF0YSwgZWxlbWVudCwgbGlzdEluZGV4KSwgdHJ1ZSwgdHJ1ZSk7CiAgICAgICAg
ICAgICBoYW5kbGVkID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIGlmIChrZXlDb2RlID09ICcgJyAm
JiBpc1NwYXRpYWxOYXZpZ2F0aW9uKGVsZW1lbnQpKSB7CisgICAgICAgICAgICAvLyBVc2Ugc3Bh
Y2UgdG8gdHJpZ2dlciBhcnJvdyBrZXkgaGFuZGxpbmcgZm9yIHNlbGVjdGlvbiBjaGFuZ2Ugb3Ig
c3BhdGlhbCBuYXZpZ2F0aW9uLgorICAgICAgICAgICAgZGF0YS5zZXRBY3RpdmVTZWxlY3Rpb25T
dGF0ZSghZGF0YS5hY3RpdmVTZWxlY3Rpb25TdGF0ZSgpKTsKKyAgICAgICAgICAgIGhhbmRsZWQg
PSB0cnVlOwogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgaWYgKGhhbmRsZWQpCkBAIC03NjMs
MTMgKzc3NCwxMCBAQCB2b2lkIFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXZlbnRICiAg
ICAgICAgICAgICAgICAgZW5kSW5kZXggPSBwcmV2aW91c1NlbGVjdGFibGVMaXN0SW5kZXgoZGF0
YSwgZWxlbWVudCwgZGF0YS5hY3RpdmVTZWxlY3Rpb25FbmRJbmRleCgpKTsgICAgCiAgICAgICAg
IH0KIAotICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJh
bWUoKSkgewotICAgICAgICAgICAgaWYgKGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0
aW5ncygpLT5pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gQ2hlY2sgaWYgdGhlIHNlbGVjdGlvbiBtb3ZlcyB0byB0aGUgYm91bmRhcnkuCi0gICAgICAg
ICAgICAgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIkxlZnQiIHx8IGtleUlkZW50aWZpZXIgPT0g
IlJpZ2h0IiB8fCAoKGtleUlkZW50aWZpZXIgPT0gIkRvd24iIHx8IGtleUlkZW50aWZpZXIgPT0g
IlVwIikgJiYgZW5kSW5kZXggPT0gZGF0YS5hY3RpdmVTZWxlY3Rpb25FbmRJbmRleCgpKSkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAg
ICAgIGlmIChpc1NwYXRpYWxOYXZpZ2F0aW9uKGVsZW1lbnQpKQorICAgICAgICAgICAgLy8gQ2hl
Y2sgaWYgdGhlIHNlbGVjdGlvbiBtb3ZlcyB0byB0aGUgYm91bmRhcnkuCisgICAgICAgICAgICBp
ZiAoa2V5SWRlbnRpZmllciA9PSAiTGVmdCIgfHwga2V5SWRlbnRpZmllciA9PSAiUmlnaHQiIHx8
ICgoa2V5SWRlbnRpZmllciA9PSAiRG93biIgfHwga2V5SWRlbnRpZmllciA9PSAiVXAiKSAmJiBl
bmRJbmRleCA9PSBkYXRhLmFjdGl2ZVNlbGVjdGlvbkVuZEluZGV4KCkpKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiRG93biIgfHwga2V5
SWRlbnRpZmllciA9PSAiVXAiKSB7CiAgICAgICAgICAgICAvLyBTYXZlIHRoZSBzZWxlY3Rpb24g
c28gaXQgY2FuIGJlIGNvbXBhcmVkIHRvIHRoZSBuZXcgc2VsZWN0aW9uIHdoZW4gZGlzcGF0Y2hp
bmcgY2hhbmdlIGV2ZW50cyBpbW1lZGlhdGVseSBhZnRlciBtYWtpbmcgdGhlIG5ldyBzZWxlY3Rp
b24uCkluZGV4OiBXZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vU2VsZWN0RWxlbWVudC5oCShyZXZpc2lvbiA3MTExMCkKKysrIFdlYkNvcmUvZG9t
L1NlbGVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw3IEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIHZvaWQgbWVudUxpc3REZWZhdWx0RXZlbnRIYW5kbGVyKFNlbGVjdEVs
ZW1lbnREYXRhJiwgRWxlbWVudCosIEV2ZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAgICAgc3Rh
dGljIHZvaWQgbGlzdEJveERlZmF1bHRFdmVudEhhbmRsZXIoU2VsZWN0RWxlbWVudERhdGEmLCBF
bGVtZW50KiwgRXZlbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKICAgICBzdGF0aWMgdm9pZCBzZXRP
cHRpb25zQ2hhbmdlZE9uUmVuZGVyZXIoU2VsZWN0RWxlbWVudERhdGEmLCBFbGVtZW50Kik7Cisg
ICAgc3RhdGljIGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbihjb25zdCBFbGVtZW50Kik7CiB9Owog
CiAvLyBIVE1ML1dNTFNlbGVjdEVsZW1lbnQgaG9sZCB0aGlzIHN0cnVjdCBhcyBtZW1iZXIgdmFy
aWFibGUKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxMjUxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTEtMDMgIENoYW5nIFNodSAg
PGNoYW5nLnNodUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxzZWxlY3Q+IGVsZW1lbnQgaW4gc2luZ2xl
IHNlbGVjdGlvbiBtb2RlLiBXZSB1c2Ugc3BhY2UgdG8KKyAgICAgICAgdHJpZ2dlciBhcnJvdyBr
ZXkgaGFuZGxpbmcgZm9yIHNlbGVjdGlvbiBjaGFuZ2Ugb3Igc3BhdGlhbCBuYXZpZ2F0aW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg5MzcKKwor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvc3BhdGlh
bC1uYXZpZ2F0aW9uLXV0aWxzLmpzOgorICAgICAgICAoZG9Nb3ZlKToKKyAgICAgICAgKiBmYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1zaW5nbGUtc2VsZWN0LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1zaW5nbGUt
c2VsZWN0Lmh0bWw6CisKIDIwMTAtMTEtMDMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIHBsdWdpbiB0ZXN0IHRoYXQgZXZhbHVhdGVzIEpTIGFmdGVyIHJl
bW92aW5nIHRoZSBwbHVnaW4gZWxlbWVudApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2luZ2xlLXNlbGVjdC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
c2luZ2xlLXNlbGVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDcxMTEwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2luZ2xlLXNlbGVjdC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTksNCArOSwxMiBAQCBQQVNTIGdGb2N1c2VkRG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBCiBQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgogUEFTUyBnRm9jdXNlZERvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgogUEFTUyBnRm9jdXNlZERv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BBU1Mg
Z0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3Rh
cnQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgInN0YXJ0IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjgiCitQQVNTIGdGb2N1c2VkRG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikuc2VsZWN0ZWRJbmRleCBpcyAwCitQQVNTIGdG
b2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikuc2VsZWN0ZWRJbmRleCBpcyAx
CitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikuc2VsZWN0ZWRJ
bmRleCBpcyAwCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LXNpbmdsZS1zZWxlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1zaW5nbGUtc2VsZWN0Lmh0bWwJKHJl
dmlzaW9uIDcxMTEwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtc2luZ2xlLXNlbGVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMywx
MSBAQAogICAgICAgWyJMZWZ0IiwgInN0YXJ0Il0sCiAgICAgICBbIkxlZnQiLCAiNCJdLAogICAg
ICAgWyJSaWdodCIsICJzdGFydCJdLAorICAgICAgWyIgIiwgInN0YXJ0Il0sCisgICAgICBbIkRv
d24iLCAic3RhcnQiXSwKKyAgICAgIFsiVXAiLCAic3RhcnQiXSwKKyAgICAgIFsiICIsICJzdGFy
dCJdLAorICAgICAgWyJEb3duIiwgIjgiXSwKICAgICAgIFsiRE9ORSIsICJET05FIl0KICAgICBd
OwogCkBAIC0zOCw3ICs0MywyMCBAQAogICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxm
OiBnZXQgdG8gYSBrbm93biBwbGFjZS4KICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
dGFydCIpLmZvY3VzKCk7CiAKLSAgICAgIGluaXRUZXN0KHJlc3VsdE1hcCwgdGVzdENvbXBsZXRl
ZCk7CisgICAgICBpbml0VGVzdChyZXN1bHRNYXAsIGFkZGl0aW9uYWxUZXN0KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBhZGRpdGlvbmFsVGVzdCgpCisgICAgeworICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikuc2VsZWN0ZWRJbmRleCIsICIwIik7Cisg
ICAgICBldmVudFNlbmRlci5rZXlEb3duKCIgIik7CisgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCJkb3duQXJyb3ciKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1l
bnRCeUlkKFwic3RhcnRcIikuc2VsZWN0ZWRJbmRleCIsICIxIik7CisgICAgICBldmVudFNlbmRl
ci5rZXlEb3duKCJ1cEFycm93Iik7CisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLnNlbGVjdGVkSW5kZXgiLCAiMCIpOworCisgICAgICB0
ZXN0Q29tcGxldGVkKCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2Vz
L3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL3NwYXRpYWwtbmF2aWdhdGlv
bi11dGlscy5qcwkocmV2aXNpb24gNzExMTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwko
d29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBmdW5jdGlvbiBkb01vdmUoKQogICAgIGRp
cmVjdGlvbiA9ICJsZWZ0QXJyb3ciOwogICAgIGJyZWFrOwogICBkZWZhdWx0OgotICAgIHJldHVy
bjsKKyAgICBkaXJlY3Rpb24gPSBnRXhwZWN0ZWRSZXN1bHRzW2dJbmRleF1bMF07CiAgIH0KIAog
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQo=
</data>
<flag name="review"
          id="63177"
          type_id="1"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72941</attachid>
            <date>2010-11-04 07:32:05 -0700</date>
            <delta_ts>2010-11-05 11:45:08 -0700</delta_ts>
            <desc>fix patch 2</desc>
            <filename>48937_2.patch</filename>
            <type>text/plain</type>
            <size>7931</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTMzMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMTEtMDQgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIDxzZWxlY3Q+IGVsZW1lbnQgaW4gc2luZ2xlIHNlbGVjdGlvbiBtb2RlLiBX
ZSB1c2Ugc3BhY2UgdG8KKyAgICAgICAgdHJpZ2dlciBhcnJvdyBrZXkgaGFuZGxpbmcgZm9yIHNl
bGVjdGlvbiBjaGFuZ2Ugb3Igc3BhdGlhbCBuYXZpZ2F0aW9uLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg5MzcKKworICAgICAgICAqIGRvbS9TZWxl
Y3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU3BhdGlhbE5hdmlnYXRpb25FbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdEVsZW1lbnQ6Om1lbnVMaXN0RGVmYXVsdEV2
ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVm
YXVsdEV2ZW50SGFuZGxlcik6CisKIDIwMTAtMTEtMDQgIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4K
SW5kZXg6IFdlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3MTExMCkKKysrIFdlYkNvcmUvZG9t
L1NlbGVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2ICs3MSwxNCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBET01UaW1lU3RhbXAgdHlwZUFoZWFkVGlt
ZW91dCA9IDEwMDA7CiAKK3N0YXRpYyBib29sIGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGNv
bnN0IEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGVsZW1lbnQt
PmRvY3VtZW50KCktPmZyYW1lKCkpCisgICAgICAgIGlmIChmcmFtZS0+c2V0dGluZ3MoKSAmJiBm
cmFtZS0+c2V0dGluZ3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBTZWxlY3RFbGVt
ZW50OjpzZWxlY3RBbGwoU2VsZWN0RWxlbWVudERhdGEmIGRhdGEsIEVsZW1lbnQqIGVsZW1lbnQp
CiB7CiAgICAgQVNTRVJUKCFkYXRhLnVzZXNNZW51TGlzdCgpKTsKQEAgLTU2MSwxMCArNTY5LDkg
QEAgdm9pZCBTZWxlY3RFbGVtZW50OjptZW51TGlzdERlZmF1bHRFdmVudAogI2Vsc2UKICAgICAg
ICAgLy8gV2hlbiB1c2luZyBzcGF0aWFsIG5hdmlnYXRpb24sIHdlIHdhbnQgdG8gYmUgYWJsZSB0
byBuYXZpZ2F0ZSBhd2F5IGZyb20gdGhlIHNlbGVjdCBlbGVtZW50CiAgICAgICAgIC8vIHdoZW4g
dGhlIHVzZXIgaGl0cyBhbnkgb2YgdGhlIGFycm93IGtleXMsIGluc3RlYWQgb2YgY2hhbmdpbmcg
dGhlIHNlbGVjdGlvbi4KLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGVsZW1lbnQtPmRvY3Vt
ZW50KCktPmZyYW1lKCkpIHsKLSAgICAgICAgICAgIGlmIChmcmFtZS0+c2V0dGluZ3MoKSAmJiBm
cmFtZS0+c2V0dGluZ3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAg
aWYgKGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGVsZW1lbnQpKQorICAgICAgICAgICAgaWYg
KCFkYXRhLmFjdGl2ZVNlbGVjdGlvblN0YXRlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9CiAKICAgICAgICAgVU5VU0VEX1BBUkFNKGh0bWxGb3JtKTsKICAgICAgICAgY29u
c3QgVmVjdG9yPEVsZW1lbnQqPiYgbGlzdEl0ZW1zID0gZGF0YS5saXN0SXRlbXMoZWxlbWVudCk7
CkBAIC02NDUsNiArNjUyLDEwIEBAIHZvaWQgU2VsZWN0RWxlbWVudDo6bWVudUxpc3REZWZhdWx0
RXZlbnQKICAgICAgICAgICAgIC8vIGxpc3RJbmRleCBzaG91bGQgYWxyZWFkeSBiZSBzZWxlY3Rl
ZCwgYnV0IHRoaXMgd2lsbCBmaXJlIHRoZSBvbmNoYW5nZSBoYW5kbGVyLgogICAgICAgICAgICAg
c2V0U2VsZWN0ZWRJbmRleChkYXRhLCBlbGVtZW50LCBsaXN0VG9PcHRpb25JbmRleChkYXRhLCBl
bGVtZW50LCBsaXN0SW5kZXgpLCB0cnVlLCB0cnVlKTsKICAgICAgICAgICAgIGhhbmRsZWQgPSB0
cnVlOworICAgICAgICB9IGVsc2UgaWYgKGtleUNvZGUgPT0gJyAnICYmIGlzU3BhdGlhbE5hdmln
YXRpb25FbmFibGVkKGVsZW1lbnQpKSB7CisgICAgICAgICAgICAvLyBVc2Ugc3BhY2UgdG8gdHJp
Z2dlciBhcnJvdyBrZXkgaGFuZGxpbmcgZm9yIHNlbGVjdGlvbiBjaGFuZ2Ugb3Igc3BhdGlhbCBu
YXZpZ2F0aW9uLgorICAgICAgICAgICAgZGF0YS5zZXRBY3RpdmVTZWxlY3Rpb25TdGF0ZSghZGF0
YS5hY3RpdmVTZWxlY3Rpb25TdGF0ZSgpKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwog
ICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgaWYgKGhhbmRsZWQpCkBAIC03NjMsMTMgKzc3NCwx
MCBAQCB2b2lkIFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXZlbnRICiAgICAgICAgICAg
ICAgICAgZW5kSW5kZXggPSBwcmV2aW91c1NlbGVjdGFibGVMaXN0SW5kZXgoZGF0YSwgZWxlbWVu
dCwgZGF0YS5hY3RpdmVTZWxlY3Rpb25FbmRJbmRleCgpKTsgICAgCiAgICAgICAgIH0KIAotICAg
ICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewot
ICAgICAgICAgICAgaWYgKGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5ncygpLT5p
c1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gQ2hlY2sg
aWYgdGhlIHNlbGVjdGlvbiBtb3ZlcyB0byB0aGUgYm91bmRhcnkuCi0gICAgICAgICAgICAgICAg
aWYgKGtleUlkZW50aWZpZXIgPT0gIkxlZnQiIHx8IGtleUlkZW50aWZpZXIgPT0gIlJpZ2h0IiB8
fCAoKGtleUlkZW50aWZpZXIgPT0gIkRvd24iIHx8IGtleUlkZW50aWZpZXIgPT0gIlVwIikgJiYg
ZW5kSW5kZXggPT0gZGF0YS5hY3RpdmVTZWxlY3Rpb25FbmRJbmRleCgpKSkKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIGlmIChp
c1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChlbGVtZW50KSkKKyAgICAgICAgICAgIC8vIENoZWNr
IGlmIHRoZSBzZWxlY3Rpb24gbW92ZXMgdG8gdGhlIGJvdW5kYXJ5LgorICAgICAgICAgICAgaWYg
KGtleUlkZW50aWZpZXIgPT0gIkxlZnQiIHx8IGtleUlkZW50aWZpZXIgPT0gIlJpZ2h0IiB8fCAo
KGtleUlkZW50aWZpZXIgPT0gIkRvd24iIHx8IGtleUlkZW50aWZpZXIgPT0gIlVwIikgJiYgZW5k
SW5kZXggPT0gZGF0YS5hY3RpdmVTZWxlY3Rpb25FbmRJbmRleCgpKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIkRvd24iIHx8IGtleUlk
ZW50aWZpZXIgPT0gIlVwIikgewogICAgICAgICAgICAgLy8gU2F2ZSB0aGUgc2VsZWN0aW9uIHNv
IGl0IGNhbiBiZSBjb21wYXJlZCB0byB0aGUgbmV3IHNlbGVjdGlvbiB3aGVuIGRpc3BhdGNoaW5n
IGNoYW5nZSBldmVudHMgaW1tZWRpYXRlbHkgYWZ0ZXIgbWFraW5nIHRoZSBuZXcgc2VsZWN0aW9u
LgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNzEzMzIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMS0wNCAgQ2hhbmcgU2h1ICA8Y2hh
bmcuc2h1QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgPHNlbGVjdD4gZWxlbWVudCBpbiBzaW5nbGUgc2Vs
ZWN0aW9uIG1vZGUuIFdlIHVzZSBzcGFjZSB0bworICAgICAgICB0cmlnZ2VyIGFycm93IGtleSBo
YW5kbGluZyBmb3Igc2VsZWN0aW9uIGNoYW5nZSBvciBzcGF0aWFsIG5hdmlnYXRpb24uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODkzNworCisgICAg
ICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9zcGF0aWFsLW5h
dmlnYXRpb24tdXRpbHMuanM6CisgICAgICAgIChkb01vdmUpOgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNpbmdsZS1zZWxlY3QtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNpbmdsZS1zZWxl
Y3QuaHRtbDoKKwogMjAxMC0xMS0wNCAgSmVyZW15IE1vc2tvdmljaCAgPGplcmVteUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgTm8gcmV2aWV3IC0gbmV3IGJhc2VsaW5lcy4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNpbmdsZS1zZWxlY3Qt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXNpbmdsZS1zZWxlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3
MTExMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LXNpbmdsZS1zZWxlY3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05LDQgKzksMTIg
QEAgUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QQogUEFTUyBnRm9jdXNl
ZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKIFBB
U1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAi
NCIKIFBBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAic3RhcnQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgInN0YXJ0IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQQVNTIGdGb2N1c2Vk
RG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgorUEFT
UyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI4
IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLnNlbGVjdGVk
SW5kZXggaXMgMAorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIp
LnNlbGVjdGVkSW5kZXggaXMgMQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJzdGFydCIpLnNlbGVjdGVkSW5kZXggaXMgMAogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1zaW5nbGUtc2VsZWN0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2lu
Z2xlLXNlbGVjdC5odG1sCShyZXZpc2lvbiA3MTExMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNpbmdsZS1zZWxlY3QuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMjMsNiArMjMsMTEgQEAKICAgICAgIFsiTGVmdCIsICJzdGFydCJdLAogICAgICAg
WyJMZWZ0IiwgIjQiXSwKICAgICAgIFsiUmlnaHQiLCAic3RhcnQiXSwKKyAgICAgIFsiU3BhY2Ui
LCAic3RhcnQiXSwKKyAgICAgIFsiRG93biIsICJzdGFydCJdLAorICAgICAgWyJVcCIsICJzdGFy
dCJdLAorICAgICAgWyJTcGFjZSIsICJzdGFydCJdLAorICAgICAgWyJEb3duIiwgIjgiXSwKICAg
ICAgIFsiRE9ORSIsICJET05FIl0KICAgICBdOwogCkBAIC0zOCw3ICs0MywyMCBAQAogICAgICAg
Ly8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CiAKLSAgICAgIGluaXRU
ZXN0KHJlc3VsdE1hcCwgdGVzdENvbXBsZXRlZCk7CisgICAgICBpbml0VGVzdChyZXN1bHRNYXAs
IGFkZGl0aW9uYWxUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhZGRpdGlvbmFsVGVzdCgp
CisgICAgeworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsK
KyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRc
Iikuc2VsZWN0ZWRJbmRleCIsICIwIik7CisgICAgICBldmVudFNlbmRlci5rZXlEb3duKCIgIik7
CisgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAgIHNob3VsZEJl
KCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikuc2VsZWN0ZWRJbmRl
eCIsICIxIik7CisgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisgICAgICBz
aG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLnNlbGVj
dGVkSW5kZXgiLCAiMCIpOworCisgICAgICB0ZXN0Q29tcGxldGVkKCk7CiAgICAgfQogCiAgICAg
ZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
cmVzb3VyY2VzL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwkocmV2aXNpb24gNzExMTApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL3Nw
YXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwkod29ya2luZyBjb3B5KQpAQCAtNTMsMTEgKzUzLDE0
IEBAIGZ1bmN0aW9uIGRvTW92ZSgpCiAgIGNhc2UgIkxlZnQiOgogICAgIGRpcmVjdGlvbiA9ICJs
ZWZ0QXJyb3ciOwogICAgIGJyZWFrOworICBjYXNlICJTcGFjZSI6CisgICAgZGlyZWN0aW9uID0g
IiAiOworICAgIGJyZWFrOwogICBkZWZhdWx0OgotICAgIHJldHVybjsKKyAgICBkZWJ1ZygiQWN0
aW9uIFsiICsgZ0V4cGVjdGVkUmVzdWx0c1tnSW5kZXhdWzBdICsgIl0gbm90IHN1cHBvcnRlZC4i
KTsKICAgfQogCi0gIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgZGlyZWN0aW9uICE9IG51bGwpCiAgICAgZXZlbnRT
ZW5kZXIua2V5RG93bihkaXJlY3Rpb24pOwogCiAgIHNldFRpbWVvdXQodmVyaWZ5QW5kQWR2YW5j
ZSwgMTUpOwo=
</data>
<flag name="review"
          id="63284"
          type_id="1"
          status="+"
          setter="tonikitoo"
    />
    <flag name="commit-queue"
          id="63439"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73092</attachid>
            <date>2010-11-05 11:45:08 -0700</date>
            <delta_ts>2010-11-05 12:22:31 -0700</delta_ts>
            <desc>fix patch 3</desc>
            <filename>48937_3.patch</filename>
            <type>text/plain</type>
            <size>7916</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTQyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMTEtMDUgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIDxzZWxlY3Q+IGVsZW1lbnQgaW4gc2luZ2xlIHNlbGVjdGlvbiBtb2RlLiBX
ZSB1c2Ugc3BhY2UgdG8KKyAgICAgICAgdHJpZ2dlciBhcnJvdyBrZXkgaGFuZGxpbmcgZm9yIHNl
bGVjdGlvbiBjaGFuZ2Ugb3Igc3BhdGlhbCBuYXZpZ2F0aW9uLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg5MzcKKworICAgICAgICAqIGRvbS9TZWxl
Y3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU3BhdGlhbE5hdmlnYXRpb25FbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdEVsZW1lbnQ6Om1lbnVMaXN0RGVmYXVsdEV2
ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVm
YXVsdEV2ZW50SGFuZGxlcik6CisKIDIwMTAtMTEtMDQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBX
ZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9T
ZWxlY3RFbGVtZW50LmNwcAkocmV2aXNpb24gNzE0MjcpCisrKyBXZWJDb3JlL2RvbS9TZWxlY3RF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsMTQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdGF0aWMgY29uc3QgRE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAx
MDAwOwogCitzdGF0aWMgYm9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChjb25zdCBGcmFt
ZSogZnJhbWUpCit7CisgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1l
LT5zZXR0aW5ncygpLT5pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBTZWxlY3RFbGVtZW50Ojpz
ZWxlY3RBbGwoU2VsZWN0RWxlbWVudERhdGEmIGRhdGEsIEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAg
ICAgQVNTRVJUKCFkYXRhLnVzZXNNZW51TGlzdCgpKTsKQEAgLTU2MSwxMCArNTY5LDkgQEAgdm9p
ZCBTZWxlY3RFbGVtZW50OjptZW51TGlzdERlZmF1bHRFdmVudAogI2Vsc2UKICAgICAgICAgLy8g
V2hlbiB1c2luZyBzcGF0aWFsIG5hdmlnYXRpb24sIHdlIHdhbnQgdG8gYmUgYWJsZSB0byBuYXZp
Z2F0ZSBhd2F5IGZyb20gdGhlIHNlbGVjdCBlbGVtZW50CiAgICAgICAgIC8vIHdoZW4gdGhlIHVz
ZXIgaGl0cyBhbnkgb2YgdGhlIGFycm93IGtleXMsIGluc3RlYWQgb2YgY2hhbmdpbmcgdGhlIHNl
bGVjdGlvbi4KLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGVsZW1lbnQtPmRvY3VtZW50KCkt
PmZyYW1lKCkpIHsKLSAgICAgICAgICAgIGlmIChmcmFtZS0+c2V0dGluZ3MoKSAmJiBmcmFtZS0+
c2V0dGluZ3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgaWYgKGlz
U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCkpKQor
ICAgICAgICAgICAgaWYgKCFkYXRhLmFjdGl2ZVNlbGVjdGlvblN0YXRlKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9CiAKICAgICAgICAgVU5VU0VEX1BBUkFNKGh0bWxGb3Jt
KTsKICAgICAgICAgY29uc3QgVmVjdG9yPEVsZW1lbnQqPiYgbGlzdEl0ZW1zID0gZGF0YS5saXN0
SXRlbXMoZWxlbWVudCk7CkBAIC02NDUsNiArNjUyLDEwIEBAIHZvaWQgU2VsZWN0RWxlbWVudDo6
bWVudUxpc3REZWZhdWx0RXZlbnQKICAgICAgICAgICAgIC8vIGxpc3RJbmRleCBzaG91bGQgYWxy
ZWFkeSBiZSBzZWxlY3RlZCwgYnV0IHRoaXMgd2lsbCBmaXJlIHRoZSBvbmNoYW5nZSBoYW5kbGVy
LgogICAgICAgICAgICAgc2V0U2VsZWN0ZWRJbmRleChkYXRhLCBlbGVtZW50LCBsaXN0VG9PcHRp
b25JbmRleChkYXRhLCBlbGVtZW50LCBsaXN0SW5kZXgpLCB0cnVlLCB0cnVlKTsKICAgICAgICAg
ICAgIGhhbmRsZWQgPSB0cnVlOworICAgICAgICB9IGVsc2UgaWYgKGtleUNvZGUgPT0gJyAnICYm
IGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCkp
KSB7CisgICAgICAgICAgICAvLyBVc2Ugc3BhY2UgdG8gdHJpZ2dlciBhcnJvdyBrZXkgaGFuZGxp
bmcgZm9yIHNlbGVjdGlvbiBjaGFuZ2Ugb3Igc3BhdGlhbCBuYXZpZ2F0aW9uLgorICAgICAgICAg
ICAgZGF0YS5zZXRBY3RpdmVTZWxlY3Rpb25TdGF0ZSghZGF0YS5hY3RpdmVTZWxlY3Rpb25TdGF0
ZSgpKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwogICAgICAgICB9CiAjZW5kaWYKICAg
ICAgICAgaWYgKGhhbmRsZWQpCkBAIC03NjMsMTMgKzc3NCwxMCBAQCB2b2lkIFNlbGVjdEVsZW1l
bnQ6Omxpc3RCb3hEZWZhdWx0RXZlbnRICiAgICAgICAgICAgICAgICAgZW5kSW5kZXggPSBwcmV2
aW91c1NlbGVjdGFibGVMaXN0SW5kZXgoZGF0YSwgZWxlbWVudCwgZGF0YS5hY3RpdmVTZWxlY3Rp
b25FbmRJbmRleCgpKTsgICAgCiAgICAgICAgIH0KIAotICAgICAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewotICAgICAgICAgICAgaWYgKGZyYW1l
LT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5ncygpLT5pc1NwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHNlbGVjdGlvbiBtb3Zl
cyB0byB0aGUgYm91bmRhcnkuCi0gICAgICAgICAgICAgICAgaWYgKGtleUlkZW50aWZpZXIgPT0g
IkxlZnQiIHx8IGtleUlkZW50aWZpZXIgPT0gIlJpZ2h0IiB8fCAoKGtleUlkZW50aWZpZXIgPT0g
IkRvd24iIHx8IGtleUlkZW50aWZpZXIgPT0gIlVwIikgJiYgZW5kSW5kZXggPT0gZGF0YS5hY3Rp
dmVTZWxlY3Rpb25FbmRJbmRleCgpKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIGlmIChpc1NwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZChlbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpKSkKKyAgICAgICAgICAgIC8vIENoZWNr
IGlmIHRoZSBzZWxlY3Rpb24gbW92ZXMgdG8gdGhlIGJvdW5kYXJ5LgorICAgICAgICAgICAgaWYg
KGtleUlkZW50aWZpZXIgPT0gIkxlZnQiIHx8IGtleUlkZW50aWZpZXIgPT0gIlJpZ2h0IiB8fCAo
KGtleUlkZW50aWZpZXIgPT0gIkRvd24iIHx8IGtleUlkZW50aWZpZXIgPT0gIlVwIikgJiYgZW5k
SW5kZXggPT0gZGF0YS5hY3RpdmVTZWxlY3Rpb25FbmRJbmRleCgpKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gIkRvd24iIHx8IGtleUlk
ZW50aWZpZXIgPT0gIlVwIikgewogICAgICAgICAgICAgLy8gU2F2ZSB0aGUgc2VsZWN0aW9uIHNv
IGl0IGNhbiBiZSBjb21wYXJlZCB0byB0aGUgbmV3IHNlbGVjdGlvbiB3aGVuIGRpc3BhdGNoaW5n
IGNoYW5nZSBldmVudHMgaW1tZWRpYXRlbHkgYWZ0ZXIgbWFraW5nIHRoZSBuZXcgc2VsZWN0aW9u
LgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNzE0MjcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMS0wNSAgQ2hhbmcgU2h1ICA8Y2hh
bmcuc2h1QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgPHNlbGVjdD4gZWxlbWVudCBpbiBzaW5nbGUgc2Vs
ZWN0aW9uIG1vZGUuIFdlIHVzZSBzcGFjZSB0bworICAgICAgICB0cmlnZ2VyIGFycm93IGtleSBo
YW5kbGluZyBmb3Igc2VsZWN0aW9uIGNoYW5nZSBvciBzcGF0aWFsIG5hdmlnYXRpb24uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODkzNworCisgICAg
ICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9zcGF0aWFsLW5h
dmlnYXRpb24tdXRpbHMuanM6CisgICAgICAgIChkb01vdmUpOgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNpbmdsZS1zZWxlY3QtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNpbmdsZS1zZWxl
Y3QuaHRtbDoKKwogMjAxMC0xMS0wNSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2luZ2xlLXNlbGVjdC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtc2luZ2xlLXNlbGVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDcxNDI3KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2luZ2xl
LXNlbGVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTksNCArOSwxMiBAQCBQQVNT
IGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBCiBQQVNTIGdGb2N1c2VkRG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgogUEFTUyBnRm9j
dXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgogUEFT
UyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJz
dGFydCIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAic3RhcnQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQQVNTIGdGb2N1
c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjgiCitQQVNT
IGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikuc2VsZWN0ZWRJbmRleCBp
cyAwCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikuc2VsZWN0
ZWRJbmRleCBpcyAxCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0
Iikuc2VsZWN0ZWRJbmRleCBpcyAwCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNpbmdsZS1zZWxlY3QuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1zaW5nbGUtc2Vs
ZWN0Lmh0bWwJKHJldmlzaW9uIDcxNDI3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2luZ2xlLXNlbGVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yMyw2ICsyMywxMSBAQAogICAgICAgWyJMZWZ0IiwgInN0YXJ0Il0sCiAgICAgICBbIkxlZnQi
LCAiNCJdLAogICAgICAgWyJSaWdodCIsICJzdGFydCJdLAorICAgICAgWyJTcGFjZSIsICJzdGFy
dCJdLAorICAgICAgWyJEb3duIiwgInN0YXJ0Il0sCisgICAgICBbIlVwIiwgInN0YXJ0Il0sCisg
ICAgICBbIlNwYWNlIiwgInN0YXJ0Il0sCisgICAgICBbIkRvd24iLCAiOCJdLAogICAgICAgWyJE
T05FIiwgIkRPTkUiXQogICAgIF07CiAKQEAgLTM4LDcgKzQzLDIwIEBACiAgICAgICAvLyBzdGFy
dGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgogICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsKIAotICAgICAgaW5pdFRlc3QocmVz
dWx0TWFwLCB0ZXN0Q29tcGxldGVkKTsKKyAgICAgIGluaXRUZXN0KHJlc3VsdE1hcCwgYWRkaXRp
b25hbFRlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFkZGl0aW9uYWxUZXN0KCkKKyAgICB7
CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworICAgICAg
c2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5zZWxl
Y3RlZEluZGV4IiwgIjAiKTsKKyAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oIiAiKTsKKyAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgc2hvdWxkQmUoImdGb2N1
c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5zZWxlY3RlZEluZGV4IiwgIjEi
KTsKKyAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKKyAgICAgIHNob3VsZEJl
KCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikuc2VsZWN0ZWRJbmRl
eCIsICIwIik7CisKKyAgICAgIHRlc3RDb21wbGV0ZWQoKTsKICAgICB9CiAKICAgICBmdW5jdGlv
biB0ZXN0Q29tcGxldGVkKCkKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9yZXNvdXJjZXMvc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzCShyZXZpc2lvbiA3MTQyNykKKysrIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvc3BhdGlhbC1u
YXZpZ2F0aW9uLXV0aWxzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01MywxMSArNTMsMTQgQEAgZnVu
Y3Rpb24gZG9Nb3ZlKCkKICAgY2FzZSAiTGVmdCI6CiAgICAgZGlyZWN0aW9uID0gImxlZnRBcnJv
dyI7CiAgICAgYnJlYWs7CisgIGNhc2UgIlNwYWNlIjoKKyAgICBkaXJlY3Rpb24gPSAiICI7Cisg
ICAgYnJlYWs7CiAgIGRlZmF1bHQ6Ci0gICAgcmV0dXJuOworICAgIGRlYnVnKCJBY3Rpb24gWyIg
KyBnRXhwZWN0ZWRSZXN1bHRzW2dJbmRleF1bMF0gKyAiXSBub3Qgc3VwcG9ydGVkLiIpOwogICB9
CiAKLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlciAmJiBkaXJlY3Rpb24pCiAgICAgZXZlbnRTZW5kZXIua2V5RG93bihk
aXJlY3Rpb24pOwogCiAgIHNldFRpbWVvdXQodmVyaWZ5QW5kQWR2YW5jZSwgMTUpOwo=
</data>
<flag name="commit-queue"
          id="63478"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>