<?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>51196</bug_id>
          
          <creation_ts>2010-12-16 10:18:10 -0800</creation_ts>
          <short_desc>Support createTouchList with Touch list</short_desc>
          <delta_ts>2011-02-14 13:26:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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>
          <dependson>52069</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>ademar</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gmak</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>manyoso</cc>
    
    <cc>suresh.voruganti</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yaar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>323250</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-12-16 10:18:10 -0800</bug_when>
    <thetext>The current API and implementation of createTouchList can only create a TouchList object with no list of Touch objects attached. Hence, it has to be enhanced for testing purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323299</commentid>
    <comment_count>1</comment_count>
      <attachid>76791</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-12-16 11:15:20 -0800</bug_when>
    <thetext>Created attachment 76791
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323300</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-16 11:17:46 -0800</bug_when>
    <thetext>Attachment 76791 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/events/touch/document-create-touch-list-expected.txt&apos;, u&apos;LayoutTests/fast/events/touch/script-tests/document-create-touch-list.js&apos;, u&apos;WebCore/ChangeLog&apos;, u&apos;WebCore/bindings/js/JSDocumentCustom.cpp&apos;, u&apos;WebCore/bindings/scripts/CodeGeneratorJS.pm&apos;, u&apos;WebCore/dom/Document.idl&apos;, u&apos;WebCore/dom/TouchEvent.cpp&apos;]&quot; exit_code: 1
WebCore/bindings/js/JSDocumentCustom.cpp:137:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323303</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-16 11:23:14 -0800</bug_when>
    <thetext>Attachment 76791 did not build on chromium:
Build output: http://queues.webkit.org/results/7101078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323328</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-16 12:00:06 -0800</bug_when>
    <thetext>Attachment 76791 did not build on chromium:
Build output: http://queues.webkit.org/results/7135082</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325638</commentid>
    <comment_count>5</comment_count>
      <attachid>77251</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-12-22 12:42:02 -0800</bug_when>
    <thetext>Created attachment 77251
fix patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326558</commentid>
    <comment_count>6</comment_count>
      <attachid>77251</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-12-24 02:52:59 -0800</bug_when>
    <thetext>Comment on attachment 77251
fix patch 2

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

It this a useful feature? Does other platforms support it? Why is it needed. R- due to not detailing this.

&gt; WebCore/ChangeLog:9
&gt; +        1. Added support of ArgList as an argument for a Custom function.
&gt; +        2. Implemented JS/V8 bindings for createTouchList.

You should detail why this is needed at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326592</commentid>
    <comment_count>7</comment_count>
      <attachid>77251</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-12-24 05:17:39 -0800</bug_when>
    <thetext>Comment on attachment 77251
fix patch 2

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

&gt; WebCore/bindings/v8/custom/V8DocumentCustom.cpp:175
&gt; +        touchList-&gt;append(V8Touch::toNative(args[i]-&gt;ToObject()));

chances are ToObject can throw, is it fine?  May we cover this case in LayoutTests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328578</commentid>
    <comment_count>8</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-03 08:26:58 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 77251 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=77251&amp;action=review
&gt; 
&gt; It this a useful feature? Does other platforms support it? Why is it needed. R- due to not detailing this.
&gt; 
&gt; &gt; WebCore/ChangeLog:9
&gt; &gt; +        1. Added support of ArgList as an argument for a Custom function.
&gt; &gt; +        2. Implemented JS/V8 bindings for createTouchList.
&gt; 
&gt; You should detail why this is needed at all.

Thanks, Kenneth. This feature is useful for testing purpose. I have seen it implemented in iOS. The bug was originally reported from this link: https://projects.maemo.org/bugzilla/show_bug.cgi?id=193143.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328786</commentid>
    <comment_count>9</comment_count>
      <attachid>77847</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-03 14:22:12 -0800</bug_when>
    <thetext>Created attachment 77847
fix patch 3

Based on Kenneth and Anton&apos;s comments:
1. added purpose for this new feature.
2. added code to handle invalid arguments for V8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328789</commentid>
    <comment_count>10</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-03 14:23:24 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 77251 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=77251&amp;action=review
&gt; 
&gt; &gt; WebCore/bindings/v8/custom/V8DocumentCustom.cpp:175
&gt; &gt; +        touchList-&gt;append(V8Touch::toNative(args[i]-&gt;ToObject()));
&gt; 
&gt; chances are ToObject can throw, is it fine?  May we cover this case in LayoutTests?

good catch! I have added code and test case for this. thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329537</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-01-05 06:30:20 -0800</bug_when>
    <thetext>Hmm, I see that would make us incompatible with Apple&apos;s implementation. See http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/DocumentAdditionsReference/DocumentAdditions/DocumentAdditions.html - createTouchList() doesn&apos;t take an argument...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329544</commentid>
    <comment_count>12</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-05 06:49:28 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Hmm, I see that would make us incompatible with Apple&apos;s implementation. See http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/DocumentAdditionsReference/DocumentAdditions/DocumentAdditions.html - createTouchList() doesn&apos;t take an argument...

From the iOS source code and test on iphone, createTouchList() with arguments is supported. Maybe the documentation is out-of-date?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329706</commentid>
    <comment_count>13</comment_count>
      <attachid>77847</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-01-05 12:05:32 -0800</bug_when>
    <thetext>Comment on attachment 77847
fix patch 3

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

&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:863
&gt; -                push(@headerContent, &quot;    JSC::JSValue &quot; . $functionImplementationName . &quot;(JSC::ExecState*);\n&quot;);
&gt; +                my $parameter = @{$function-&gt;parameters}[0];
&gt; +                if ($parameter &amp;&amp; $codeGenerator-&gt;StripModule($parameter-&gt;type) =~ /argList/) {
&gt; +                    push(@headerContent, &quot;    JSC::JSValue &quot; . $functionImplementationName . &quot;(JSC::ExecState*, const JSC::ArgList&amp;);\n&quot;);
&gt; +                } else {
&gt; +                    push(@headerContent, &quot;    JSC::JSValue &quot; . $functionImplementationName . &quot;(JSC::ExecState*);\n&quot;);
&gt; +                }

You need to add tests then modifying the generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330164</commentid>
    <comment_count>14</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-06 08:34:00 -0800</bug_when>
    <thetext>Can you show me more details? My patch includes tests.
&gt; 
&gt; You need to add tests then modifying the generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330233</commentid>
    <comment_count>15</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-01-06 11:08:26 -0800</bug_when>
    <thetext>It includes tests for the feature, not for the generator. You modified the generator and so you need to expand the test of the generator to cover your changes.

Look in bindings/scripts/test

I have never done any of these tests myself, but I have seen it requested whenever the generator was changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330912</commentid>
    <comment_count>16</comment_count>
      <attachid>78256</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-07 12:16:09 -0800</bug_when>
    <thetext>Created attachment 78256
fix patch 4

It turns out that the changes in CodeGeneratorJS.pm are not needed. Thanks, Sam, for pointing out this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330919</commentid>
    <comment_count>17</comment_count>
      <attachid>78256</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-01-07 12:21:30 -0800</bug_when>
    <thetext>Comment on attachment 78256
fix patch 4

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330924</commentid>
    <comment_count>18</comment_count>
      <attachid>78256</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-07 12:25:20 -0800</bug_when>
    <thetext>Comment on attachment 78256
fix patch 4

thanks for the quick review. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331325</commentid>
    <comment_count>19</comment_count>
      <attachid>78256</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-08 17:08:56 -0800</bug_when>
    <thetext>Comment on attachment 78256
fix patch 4

Clearing flags on attachment: 78256

Committed r75335: &lt;http://trac.webkit.org/changeset/75335&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331326</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-08 17:09:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331599</commentid>
    <comment_count>21</comment_count>
    <who name="Suresh Voruganti">suresh.voruganti</who>
    <bug_when>2011-01-10 06:27:32 -0800</bug_when>
    <thetext>Please cherry pick fix to Qtwebkit 2.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331848</commentid>
    <comment_count>22</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-01-10 12:41:05 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; Please cherry pick fix to Qtwebkit 2.2

We&apos;ll need a backport for this: besides the fact that the files have been moved on trunk, the code also appears to be quite different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331901</commentid>
    <comment_count>23</comment_count>
    <who name="Suresh Voruganti">suresh.voruganti</who>
    <bug_when>2011-01-10 13:37:29 -0800</bug_when>
    <thetext>Chang, can you work on backported version?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76791</attachid>
            <date>2010-12-16 11:15:20 -0800</date>
            <delta_ts>2010-12-22 12:42:02 -0800</delta_ts>
            <desc>fix patch</desc>
            <filename>51196_1.patch</filename>
            <type>text/plain</type>
            <size>7911</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDIwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMTItMTYgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Vw
cG9ydCBjcmVhdGVUb3VjaExpc3Qgd2l0aCBUb3VjaCBsaXN0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTE5NgorCisgICAgICAgIDEuIEFkZGVkIHN1
cHBvcnQgb2YgQXJnTGlzdCBhcyBhbiBhcmd1bWVudCBmb3IgYSBDdXN0b20gZnVuY3Rpb24uCisg
ICAgICAgIDIuIEltcGxlbWVudGVkIEpTIGJpbmRpbmdzIGZvciBjcmVhdGVUb3VjaExpc3QuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlzdCk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoK
KyAgICAgICAgKiBkb20vVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3VjaEV2
ZW50Ojppbml0VG91Y2hFdmVudCk6CisKIDIwMTAtMTItMTYgIFBhdmVsIEZlbGRtYW4gIDxwZmVs
ZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNr
eS4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAkocmV2aXNp
b24gNzQxOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw4ICszMSwxMSBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3Vz
dG9tLmgiCiAjaW5jbHVkZSAiSlNIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0xvY2F0aW9u
LmgiCisjaW5jbHVkZSAiSlNUb3VjaC5oIgorI2luY2x1ZGUgIkpTVG91Y2hMaXN0LmgiCiAjaW5j
bHVkZSAiTG9jYXRpb24uaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiVG91Y2hMaXN0LmgiCiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIkpTU1ZHRG9jdW1l
bnQuaCIKQEAgLTEyNCw0ICsxMjcsMTcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYQogICAgIHJldHVybiB3cmFwcGVyOwogfQogCisjaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKK0pTVmFsdWUgSlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgQXJnTGlzdCYgYXJncykKK3sKKyAgICBSZWZQdHI8VG91Y2hMaXN0PiB0b3VjaExp
c3QgPSBUb3VjaExpc3Q6OmNyZWF0ZSgpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdz
LnNpemUoKTsgaSsrKSB7CisgICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKHRvVG91Y2goYXJncy5h
dChpKSkpOworICAgIH0KKworICAgIHJldHVybiB0b0pTKGV4ZWMsIHRvdWNoTGlzdC5yZWxlYXNl
KCkpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gNzQxOTkpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNv
cHkpCkBAIC04NTUsNyArODU1LDEyIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBmb3Jl
YWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAg
IGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9
IHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9t
In0pIHsKICAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgPSAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGF0aW9u
RnVuY3Rpb24ifSB8fCAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+bmFtZSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBK
U0M6OkpTVmFsdWUgIiAuICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSAuICIoSlNDOjpFeGVj
U3RhdGUqKTtcbiIpOworICAgICAgICAgICAgICAgIG15ICRwYXJhbWV0ZXIgPSBAeyRmdW5jdGlv
bi0+cGFyYW1ldGVyc31bMF07CisgICAgICAgICAgICAgICAgaWYgKCRwYXJhbWV0ZXIgJiYgJGNv
ZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRwYXJhbWV0ZXItPnR5cGUpID1+IC9hcmdMaXN0Lykg
eworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQzo6SlNW
YWx1ZSAiIC4gJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIihKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6QXJnTGlzdCYpO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBKU0M6OkpTVmFsdWUg
IiAuICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSAuICIoSlNDOjpFeGVjU3RhdGUqKTtcbiIp
OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAg
LTE4NTQsNyArMTg1OSwxMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b20ifSB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkpTQ0N1c3RvbSJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT4iIC4gJGZ1bmN0aW9u
SW1wbGVtZW50YXRpb25OYW1lIC4gIihleGVjKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBteSAk
cGFyYW1ldGVyID0gQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9WzBdOworICAgICAgICAgICAgICAg
IGlmICgkcGFyYW1ldGVyICYmICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkcGFyYW1ldGVy
LT50eXBlKSA9fiAvYXJnTGlzdC8pIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT4iIC4gJGZ1bmN0
aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIihleGVjLCBBcmdMaXN0KGV4ZWMpKSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPiIgLiAkZnVuY3Rp
b25JbXBsZW1lbnRhdGlvbk5hbWUgLiAiKGV4ZWMpKTtcbiIpOworICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgJGltcGxUeXBlKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1wbFR5cGUqPihjYXN0ZWRUaGlz
LT5pbXBsKCkpO1xuIik7CiAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsK
SW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDc0MTk5KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMzMsNyArMzMzLDcgQEAgbW9kdWxlIGNvcmUgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
bG9uZyBTY3JlZW5YLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gbG9uZyBzY3JlZW5ZKQogICAgICAgICAgICAgcmFpc2VzIChET01F
eGNlcHRpb24pOwotICAgICAgICBbUmV0dXJuc05ldywgRW5hYmxlZEF0UnVudGltZV0gVG91Y2hM
aXN0IGNyZWF0ZVRvdWNoTGlzdCgpCisgICAgICAgIFtSZXR1cm5zTmV3LCBFbmFibGVkQXRSdW50
aW1lLCBDdXN0b21dIFRvdWNoTGlzdCBjcmVhdGVUb3VjaExpc3QoaW4gYXJnTGlzdCkKICAgICAg
ICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL2Rv
bS9Ub3VjaEV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNw
cAkocmV2aXNpb24gNzQxOTkpCisrKyBXZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjEsNiArNjEsOSBAQCB2b2lkIFRvdWNoRXZlbnQ6OmluaXRUb3VjaEV2ZW50
KFRvdWNoTGlzCiAKICAgICBpbml0VUlFdmVudCh0eXBlLCB0cnVlLCB0cnVlLCB2aWV3LCAwKTsK
IAorICAgIG1fdG91Y2hlcyA9IHRvdWNoZXM7CisgICAgbV90YXJnZXRUb3VjaGVzID0gdGFyZ2V0
VG91Y2hlczsKKyAgICBtX2NoYW5nZWRUb3VjaGVzID0gY2hhbmdlZFRvdWNoZXM7CiAgICAgbV9z
Y3JlZW5YID0gc2NyZWVuWDsKICAgICBtX3NjcmVlblkgPSBzY3JlZW5ZOwogICAgIG1fY3RybEtl
eSA9IGN0cmxLZXk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NDIwMSkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEyLTE2ICBDaGFu
ZyBTaHUgIDxjaGFuZy5zaHVAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgY3JlYXRlVG91Y2hMaXN0IHdpdGggVG91Y2gg
bGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEx
OTYKKworICAgICAgICBBZGRlZCB0ZXN0IGNhc2VzIHRoYXQgdGFrZSBUb3VjaCBvYmplY3RzIHdo
ZW4gY3JlYXRpbmcgVG91Y2hMaXN0LgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvZG9j
dW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3RvdWNoL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1jcmVhdGUtdG91Y2gtbGlzdC5qczoKKwog
MjAxMC0xMi0xNiAgQW5kcmV3IFNjaGVya3VzICA8c2NoZXJrdXNAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQuICBVcGRhdGluZyBDaHJvbWl1bSBtZWRpYSB0ZXN0IGV4cGVjdGF0
aW9ucy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0
ZS10b3VjaC1saXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2gtbGlzdC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDc0MTk5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQt
Y3JlYXRlLXRvdWNoLWxpc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04LDYgKzgs
MTEgQEAgUEFTUyB0b3VjaExpc3QgaXMgbm9uLW51bGwuCiBQQVNTIHRvdWNoTGlzdC5sZW5ndGgg
aXMgMAogUEFTUyB0b3VjaExpc3QuaXRlbSgwKSBpcyBudWxsCiBQQVNTIHRvdWNoTGlzdC5pdGVt
KDEpIGlzIG51bGwKK1BBU1MgdHMudG91Y2hlcy5sZW5ndGggaXMgMgorUEFTUyB0cy50b3VjaGVz
WzBdLmlkZW50aWZpZXIgaXMgMTIzNDEKK1BBU1MgdHMudG91Y2hlc1swXS5jbGllbnRYIGlzIDYw
CitQQVNTIHRzLnRvdWNoZXNbMV0uc2NyZWVuWSBpcyAxMjAKK1BBU1MgdHMuY3RybEtleSBpcyB0
cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1j
cmVhdGUtdG91Y2gtbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QuanMJKHJldmlz
aW9uIDc0MTk5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3Rz
L2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC04LDUgKzgs
MjggQEAgc2hvdWxkQmUoInRvdWNoTGlzdC5sZW5ndGgiLCAiMCIpOwogc2hvdWxkQmVOdWxsKCJ0
b3VjaExpc3QuaXRlbSgwKSIpOwogc2hvdWxkQmVOdWxsKCJ0b3VjaExpc3QuaXRlbSgxKSIpOwog
Cit0cnkgeworICAgIHZhciB0ID0gZG9jdW1lbnQuY3JlYXRlVG91Y2god2luZG93LCBkb2N1bWVu
dC5ib2R5LCAxMjM0MSwgNjAsIDY1LCAxMDAsIDEwNSk7CisgICAgdmFyIHQyID0gZG9jdW1lbnQu
Y3JlYXRlVG91Y2god2luZG93LCBkb2N1bWVudC5ib2R5LCAxMjM0MiwgNTAsIDU1LCAxMTUsIDEy
MCk7CisgICAgdmFyIHRsID0gZG9jdW1lbnQuY3JlYXRlVG91Y2hMaXN0KHQsIHQyKTsKKworICAg
IHZhciBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiVG91Y2hFdmVudCIpOworICAgIGV2dC5p
bml0VG91Y2hFdmVudCh0bCwgdGwsIHRsLCAidG91Y2hzdGFydCIsIHdpbmRvdywgMCwgMCwgMCwg
MCwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CisKKyAgICBkb2N1bWVudC5ib2R5LmFkZEV2
ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBmdW5jdGlvbiBoYW5kbGVUb3VjaFN0YXJ0KGV2KSB7
CisgICAgICAgIHRzID0gZXY7CisgICAgICAgIHNob3VsZEJlKCJ0cy50b3VjaGVzLmxlbmd0aCIs
ICIyIik7CisgICAgICAgIHNob3VsZEJlKCJ0cy50b3VjaGVzWzBdLmlkZW50aWZpZXIiLCAiMTIz
NDEiKTsKKyAgICAgICAgc2hvdWxkQmUoInRzLnRvdWNoZXNbMF0uY2xpZW50WCIsICI2MCIpOwor
ICAgICAgICBzaG91bGRCZSgidHMudG91Y2hlc1sxXS5zY3JlZW5ZIiwgIjEyMCIpOworICAgICAg
ICBzaG91bGRCZSgidHMuY3RybEtleSIsICJ0cnVlIik7CisgICAgfSk7CisKKyAgICBkb2N1bWVu
dC5ib2R5LmRpc3BhdGNoRXZlbnQoZXZ0KTsKK30gY2F0Y2goZSkgeworICAgIHRlc3RGYWlsZWQo
IkFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duOiAiICsgZS5tZXNzYWdlKTsKK30KKwogc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77251</attachid>
            <date>2010-12-22 12:42:02 -0800</date>
            <delta_ts>2011-01-03 14:22:12 -0800</delta_ts>
            <desc>fix patch 2</desc>
            <filename>51196_2.patch</filename>
            <type>text/plain</type>
            <size>9066</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDQ5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMTItMjIgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Vw
cG9ydCBjcmVhdGVUb3VjaExpc3Qgd2l0aCBUb3VjaCBsaXN0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTE5NgorCisgICAgICAgIDEuIEFkZGVkIHN1
cHBvcnQgb2YgQXJnTGlzdCBhcyBhbiBhcmd1bWVudCBmb3IgYSBDdXN0b20gZnVuY3Rpb24uCisg
ICAgICAgIDIuIEltcGxlbWVudGVkIEpTL1Y4IGJpbmRpbmdzIGZvciBjcmVhdGVUb3VjaExpc3Qu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlzdCk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhEb2N1bWVudDo6
Y3JlYXRlVG91Y2hMaXN0Q2FsbGJhY2spOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6Cisg
ICAgICAgICogZG9tL1RvdWNoRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2hFdmVu
dDo6aW5pdFRvdWNoRXZlbnQpOgorCiAyMDEwLTEyLTIyICBEaXJrIFNjaHVsemUgIDxrcml0QHdi
ZWtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uLgpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiA3NDQ4
MykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDggKzMxLDExIEBACiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIK
ICNpbmNsdWRlICJKU0hUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTTG9jYXRpb24uaCIKKyNp
bmNsdWRlICJKU1RvdWNoLmgiCisjaW5jbHVkZSAiSlNUb3VjaExpc3QuaCIKICNpbmNsdWRlICJM
b2NhdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJUb3Vj
aExpc3QuaCIKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiSlNTVkdEb2N1bWVudC5oIgpA
QCAtMTI0LDQgKzEyNywxNiBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUds
b2JhCiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQor
SlNWYWx1ZSBKU0RvY3VtZW50OjpjcmVhdGVUb3VjaExpc3QoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBBcmdMaXN0JiBhcmdzKQoreworICAgIFJlZlB0cjxUb3VjaExpc3Q+IHRvdWNoTGlzdCA9IFRv
dWNoTGlzdDo6Y3JlYXRlKCk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3Muc2l6ZSgp
OyBpKyspCisgICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKHRvVG91Y2goYXJncy5hdChpKSkpOwor
CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdG91Y2hMaXN0LnJlbGVhc2UoKSk7Cit9CisjZW5kaWYK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiA3NDQ4MykKKysrIFdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTg1NSw3ICs4
NTUsMTIgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9u
IChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0gfHwgJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NDdXN0b20ifSkgewogICAgICAgICAg
ICAgICAgIG15ICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50YXRpb25GdW5jdGlvbiJ9IHx8ICRj
b2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKLSAg
ICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQzo6SlNWYWx1ZSAiIC4g
JGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIihKU0M6OkV4ZWNTdGF0ZSopO1xuIik7Cisg
ICAgICAgICAgICAgICAgbXkgJHBhcmFtZXRlciA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfVsw
XTsKKyAgICAgICAgICAgICAgICBpZiAoJHBhcmFtZXRlciAmJiAkY29kZUdlbmVyYXRvci0+U3Ry
aXBNb2R1bGUoJHBhcmFtZXRlci0+dHlwZSkgPX4gL2FyZ0xpc3QvKSB7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlNDOjpKU1ZhbHVlICIgLiAkZnVuY3Rp
b25JbXBsZW1lbnRhdGlvbk5hbWUgLiAiKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpBcmdM
aXN0Jik7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQzo6SlNWYWx1ZSAiIC4gJGZ1bmN0aW9uSW1w
bGVtZW50YXRpb25OYW1lIC4gIihKU0M6OkV4ZWNTdGF0ZSopO1xuIik7CisgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTg1NCw3ICsxODU5LDEy
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bSJ9IHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3Vz
dG9tIn0pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPiIgLiAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5h
bWUgLiAiKGV4ZWMpKTtcbiIpOworICAgICAgICAgICAgICAgIG15ICRwYXJhbWV0ZXIgPSBAeyRm
dW5jdGlvbi0+cGFyYW1ldGVyc31bMF07CisgICAgICAgICAgICAgICAgaWYgKCRwYXJhbWV0ZXIg
JiYgJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRwYXJhbWV0ZXItPnR5cGUpID1+IC9hcmdM
aXN0LykgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPiIgLiAkZnVuY3Rpb25JbXBsZW1lbnRhdGlv
bk5hbWUgLiAiKGV4ZWMsIEFyZ0xpc3QoZXhlYykpKTtcbiIpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+IiAuICRmdW5jdGlvbkltcGxlbWVudGF0aW9u
TmFtZSAuICIoZXhlYykpO1xuIik7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbFR5cGUq
IGltcCA9IHN0YXRpY19jYXN0PCRpbXBsVHlwZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsK
ICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDc0
NDgzKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAi
VG91Y2hMaXN0LmgiCiAjaW5jbHVkZSAiWFBhdGhOU1Jlc29sdmVyLmgiCiAjaW5jbHVkZSAiWFBh
dGhSZXN1bHQuaCIKIApAQCAtNDYsNiArNDcsOCBAQAogI2luY2x1ZGUgIlY4SXNvbGF0ZWRDb250
ZXh0LmgiCiAjaW5jbHVkZSAiVjhOb2RlLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1
ZGUgIlY4VG91Y2guaCIKKyNpbmNsdWRlICJWOFRvdWNoTGlzdC5oIgogI2lmIEVOQUJMRSgzRF9D
QU5WQVMpCiAjaW5jbHVkZSAiVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKICNlbmRpZgpAQCAt
MTYzLDQgKzE2NiwxNiBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChEb2N1bWVudCogaW1w
CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQordjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4RG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlzdENhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgUmVmUHRyPFRvdWNoTGlzdD4gdG91Y2hM
aXN0ID0gVG91Y2hMaXN0OjpjcmVhdGUoKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJn
cy5MZW5ndGgoKTsgaSsrKQorICAgICAgICB0b3VjaExpc3QtPmFwcGVuZChWOFRvdWNoOjp0b05h
dGl2ZShhcmdzW2ldLT5Ub09iamVjdCgpKSk7CisKKyAgICByZXR1cm4gdG9WOCh0b3VjaExpc3Qu
cmVsZWFzZSgpKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBX
ZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1l
bnQuaWRsCShyZXZpc2lvbiA3NDQ4MykKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzMzLDcgKzMzMyw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgU2Ny
ZWVuWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIGxvbmcgc2NyZWVuWSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgW1JldHVybnNOZXcsIEVuYWJsZWRBdFJ1bnRpbWVdIFRvdWNoTGlzdCBjcmVh
dGVUb3VjaExpc3QoKQorICAgICAgICBbUmV0dXJuc05ldywgRW5hYmxlZEF0UnVudGltZSwgQ3Vz
dG9tXSBUb3VjaExpc3QgY3JlYXRlVG91Y2hMaXN0KGluIGFyZ0xpc3QpCiAgICAgICAgICAgICBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9kb20vVG91Y2hF
dmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAJKHJldmlz
aW9uIDc0NDgzKQorKysgV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYxLDYgKzYxLDkgQEAgdm9pZCBUb3VjaEV2ZW50Ojppbml0VG91Y2hFdmVudChUb3VjaExp
cwogCiAgICAgaW5pdFVJRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgdmlldywgMCk7CiAKKyAgICBt
X3RvdWNoZXMgPSB0b3VjaGVzOworICAgIG1fdGFyZ2V0VG91Y2hlcyA9IHRhcmdldFRvdWNoZXM7
CisgICAgbV9jaGFuZ2VkVG91Y2hlcyA9IGNoYW5nZWRUb3VjaGVzOwogICAgIG1fc2NyZWVuWCA9
IHNjcmVlblg7CiAgICAgbV9zY3JlZW5ZID0gc2NyZWVuWTsKICAgICBtX2N0cmxLZXkgPSBjdHJs
S2V5OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzQ0OTQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMi0yMiAgQ2hhbmcgU2h1ICA8
Y2hhbmcuc2h1QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTdXBwb3J0IGNyZWF0ZVRvdWNoTGlzdCB3aXRoIFRvdWNoIGxpc3QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMTk2CisKKyAg
ICAgICAgQWRkZWQgdGVzdCBjYXNlcyB0aGF0IHRha2UgVG91Y2ggb2JqZWN0cyB3aGVuIGNyZWF0
aW5nIFRvdWNoTGlzdC4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNy
ZWF0ZS10b3VjaC1saXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QuanM6CisKIDIwMTAtMTIt
MjIgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmluZy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2gtbGlzdC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDc0NDgzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC04LDYgKzgsMTEgQEAgUEFTUyB0b3VjaExpc3QgaXMgbm9uLW51bGwuCiBQQVNTIHRv
dWNoTGlzdC5sZW5ndGggaXMgMAogUEFTUyB0b3VjaExpc3QuaXRlbSgwKSBpcyBudWxsCiBQQVNT
IHRvdWNoTGlzdC5pdGVtKDEpIGlzIG51bGwKK1BBU1MgdHMudG91Y2hlcy5sZW5ndGggaXMgMgor
UEFTUyB0cy50b3VjaGVzWzBdLmlkZW50aWZpZXIgaXMgMTIzNDEKK1BBU1MgdHMudG91Y2hlc1sw
XS5jbGllbnRYIGlzIDYwCitQQVNTIHRzLnRvdWNoZXNbMV0uc2NyZWVuWSBpcyAxMjAKK1BBU1Mg
dHMuY3RybEtleSBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10
ZXN0cy9kb2N1bWVudC1jcmVhdGUtdG91Y2gtbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtY3JlYXRlLXRvdWNo
LWxpc3QuanMJKHJldmlzaW9uIDc0NDgzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvc2NyaXB0LXRlc3RzL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC04LDUgKzgsMjggQEAgc2hvdWxkQmUoInRvdWNoTGlzdC5sZW5ndGgiLCAiMCIpOwog
c2hvdWxkQmVOdWxsKCJ0b3VjaExpc3QuaXRlbSgwKSIpOwogc2hvdWxkQmVOdWxsKCJ0b3VjaExp
c3QuaXRlbSgxKSIpOwogCit0cnkgeworICAgIHZhciB0ID0gZG9jdW1lbnQuY3JlYXRlVG91Y2go
d2luZG93LCBkb2N1bWVudC5ib2R5LCAxMjM0MSwgNjAsIDY1LCAxMDAsIDEwNSk7CisgICAgdmFy
IHQyID0gZG9jdW1lbnQuY3JlYXRlVG91Y2god2luZG93LCBkb2N1bWVudC5ib2R5LCAxMjM0Miwg
NTAsIDU1LCAxMTUsIDEyMCk7CisgICAgdmFyIHRsID0gZG9jdW1lbnQuY3JlYXRlVG91Y2hMaXN0
KHQsIHQyKTsKKworICAgIHZhciBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiVG91Y2hFdmVu
dCIpOworICAgIGV2dC5pbml0VG91Y2hFdmVudCh0bCwgdGwsIHRsLCAidG91Y2hzdGFydCIsIHdp
bmRvdywgMCwgMCwgMCwgMCwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CisKKyAgICBkb2N1
bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBmdW5jdGlvbiBoYW5kbGVU
b3VjaFN0YXJ0KGV2KSB7CisgICAgICAgIHRzID0gZXY7CisgICAgICAgIHNob3VsZEJlKCJ0cy50
b3VjaGVzLmxlbmd0aCIsICIyIik7CisgICAgICAgIHNob3VsZEJlKCJ0cy50b3VjaGVzWzBdLmlk
ZW50aWZpZXIiLCAiMTIzNDEiKTsKKyAgICAgICAgc2hvdWxkQmUoInRzLnRvdWNoZXNbMF0uY2xp
ZW50WCIsICI2MCIpOworICAgICAgICBzaG91bGRCZSgidHMudG91Y2hlc1sxXS5zY3JlZW5ZIiwg
IjEyMCIpOworICAgICAgICBzaG91bGRCZSgidHMuY3RybEtleSIsICJ0cnVlIik7CisgICAgfSk7
CisKKyAgICBkb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQoZXZ0KTsKK30gY2F0Y2goZSkgewor
ICAgIHRlc3RGYWlsZWQoIkFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duOiAiICsgZS5tZXNzYWdlKTsK
K30KKwogc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7
CisK
</data>
<flag name="review"
          id="68317"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77847</attachid>
            <date>2011-01-03 14:22:12 -0800</date>
            <delta_ts>2011-01-07 12:16:09 -0800</delta_ts>
            <desc>fix patch 3</desc>
            <filename>51196_3.patch</filename>
            <type>text/plain</type>
            <size>9684</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDkxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTEtMDEtMDMgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Vw
cG9ydCBjcmVhdGVUb3VjaExpc3Qgd2l0aCBUb3VjaCBsaXN0IGZvciB0ZXN0IGF1dG9tYXRpb24u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTE5Ngor
CisgICAgICAgIDEuIEFkZGVkIHN1cHBvcnQgb2YgQXJnTGlzdCBhcyBhbiBhcmd1bWVudCBmb3Ig
YSBDdXN0b20gZnVuY3Rpb24uCisgICAgICAgIDIuIEltcGxlbWVudGVkIEpTL1Y4IGJpbmRpbmdz
IGZvciBjcmVhdGVUb3VjaExpc3QuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlz
dCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAg
ICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0Q2FsbGJhY2spOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5pZGw6CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VG91Y2hFdmVudDo6aW5pdFRvdWNoRXZlbnQpOgorCiAyMDExLTAxLTAzICBC
ZW5qYW1pbiBDIE1leWVyICA8Ym1leWVyQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFuaWVsIEJhdGVzLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9t
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20u
Y3BwCShyZXZpc2lvbiA3NDkxOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1
c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDExIEBACiAjaW5jbHVkZSAiSlNE
T01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0hUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkpTTG9jYXRpb24uaCIKKyNpbmNsdWRlICJKU1RvdWNoLmgiCisjaW5jbHVkZSAiSlNUb3VjaExp
c3QuaCIKICNpbmNsdWRlICJMb2NhdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJUb3VjaExpc3QuaCIKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAi
SlNTVkdEb2N1bWVudC5oIgpAQCAtMTI0LDQgKzEyNywxNiBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0
YXRlKiBleGVjLCBKU0RPTUdsb2JhCiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKKyNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQorSlNWYWx1ZSBKU0RvY3VtZW50OjpjcmVhdGVUb3VjaExpc3QoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQoreworICAgIFJlZlB0cjxUb3VjaExp
c3Q+IHRvdWNoTGlzdCA9IFRvdWNoTGlzdDo6Y3JlYXRlKCk7CisKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IGFyZ3Muc2l6ZSgpOyBpKyspCisgICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKHRvVG91
Y2goYXJncy5hdChpKSkpOworCisgICAgcmV0dXJuIHRvSlMoZXhlYywgdG91Y2hMaXN0LnJlbGVh
c2UoKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiA3NDkxOCkK
KysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcg
Y29weSkKQEAgLTg1NSw3ICs4NTUsMTIgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIGZv
cmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAg
ICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
In0gfHwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NDdXN0
b20ifSkgewogICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSA9
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50YXRp
b25GdW5jdGlvbiJ9IHx8ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5uYW1lKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IEpTQzo6SlNWYWx1ZSAiIC4gJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIihKU0M6OkV4
ZWNTdGF0ZSopO1xuIik7CisgICAgICAgICAgICAgICAgbXkgJHBhcmFtZXRlciA9IEB7JGZ1bmN0
aW9uLT5wYXJhbWV0ZXJzfVswXTsKKyAgICAgICAgICAgICAgICBpZiAoJHBhcmFtZXRlciAmJiAk
Y29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJHBhcmFtZXRlci0+dHlwZSkgPX4gL2FyZ0xpc3Qv
KSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlNDOjpK
U1ZhbHVlICIgLiAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgLiAiKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpBcmdMaXN0Jik7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQzo6SlNWYWx1
ZSAiIC4gJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIihKU0M6OkV4ZWNTdGF0ZSopO1xu
Iik7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpA
QCAtMTg5NSw3ICsxOTAwLDEyIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tIn0pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPiIgLiAkZnVuY3Rp
b25JbXBsZW1lbnRhdGlvbk5hbWUgLiAiKGV4ZWMpKTtcbiIpOworICAgICAgICAgICAgICAgIG15
ICRwYXJhbWV0ZXIgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc31bMF07CisgICAgICAgICAgICAg
ICAgaWYgKCRwYXJhbWV0ZXIgJiYgJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRwYXJhbWV0
ZXItPnR5cGUpID1+IC9hcmdMaXN0LykgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPiIgLiAkZnVu
Y3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgLiAiKGV4ZWMsIEFyZ0xpc3QoZXhlYykpKTtcbiIpOwor
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+IiAuICRmdW5j
dGlvbkltcGxlbWVudGF0aW9uTmFtZSAuICIoZXhlYykpO1xuIik7CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAkaW1wbFR5cGUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsVHlwZSo+KGNhc3RlZFRo
aXMtPmltcGwoKSk7XG4iKTsKICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkg
ewpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3Rv
bS5jcHAJKHJldmlzaW9uIDc0OTE4KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhE
b2N1bWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJO
b2RlLmgiCisjaW5jbHVkZSAiVG91Y2hMaXN0LmgiCiAjaW5jbHVkZSAiWFBhdGhOU1Jlc29sdmVy
LmgiCiAjaW5jbHVkZSAiWFBhdGhSZXN1bHQuaCIKIApAQCAtNDYsNiArNDcsOCBAQAogI2luY2x1
ZGUgIlY4SXNvbGF0ZWRDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhOb2RlLmgiCiAjaW5jbHVkZSAi
VjhQcm94eS5oIgorI2luY2x1ZGUgIlY4VG91Y2guaCIKKyNpbmNsdWRlICJWOFRvdWNoTGlzdC5o
IgogI2lmIEVOQUJMRSgzRF9DQU5WQVMpCiAjaW5jbHVkZSAiVjhXZWJHTFJlbmRlcmluZ0NvbnRl
eHQuaCIKICNlbmRpZgpAQCAtMTYzLDQgKzE2NiwxOSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dG9WOChEb2N1bWVudCogaW1wCiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKKyNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RG9jdW1lbnQ6OmNyZWF0ZVRv
dWNoTGlzdENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgUmVmUHRy
PFRvdWNoTGlzdD4gdG91Y2hMaXN0ID0gVG91Y2hMaXN0OjpjcmVhdGUoKTsKKworICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgYXJncy5MZW5ndGgoKTsgaSsrKSB7CisgICAgICAgIGlmICghYXJnc1tp
XS0+SXNPYmplY3QoKSkKKyAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisgICAg
ICAgIHRvdWNoTGlzdC0+YXBwZW5kKFY4VG91Y2g6OnRvTmF0aXZlKGFyZ3NbaV0tPlRvT2JqZWN0
KCkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9WOCh0b3VjaExpc3QucmVsZWFzZSgpKTsKK30K
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1
bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lv
biA3NDkxOCkKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MzMzLDcgKzMzMyw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgU2NyZWVuWCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcg
c2NyZWVuWSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW1Jl
dHVybnNOZXcsIEVuYWJsZWRBdFJ1bnRpbWVdIFRvdWNoTGlzdCBjcmVhdGVUb3VjaExpc3QoKQor
ICAgICAgICBbUmV0dXJuc05ldywgRW5hYmxlZEF0UnVudGltZSwgQ3VzdG9tXSBUb3VjaExpc3Qg
Y3JlYXRlVG91Y2hMaXN0KGluIGFyZ0xpc3QpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAJKHJldmlzaW9uIDc0OTE4KQorKysg
V2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDkg
QEAgdm9pZCBUb3VjaEV2ZW50Ojppbml0VG91Y2hFdmVudChUb3VjaExpcwogCiAgICAgaW5pdFVJ
RXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgdmlldywgMCk7CiAKKyAgICBtX3RvdWNoZXMgPSB0b3Vj
aGVzOworICAgIG1fdGFyZ2V0VG91Y2hlcyA9IHRhcmdldFRvdWNoZXM7CisgICAgbV9jaGFuZ2Vk
VG91Y2hlcyA9IGNoYW5nZWRUb3VjaGVzOwogICAgIG1fc2NyZWVuWCA9IHNjcmVlblg7CiAgICAg
bV9zY3JlZW5ZID0gc2NyZWVuWTsKICAgICBtX2N0cmxLZXkgPSBjdHJsS2V5OwpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gNzQ5MTgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNSBAQAorMjAxMS0wMS0wMyAgQ2hhbmcgU2h1ICA8Y2hhbmcuc2h1QG5va2lh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
dXBwb3J0IGNyZWF0ZVRvdWNoTGlzdCB3aXRoIFRvdWNoIGxpc3QgZm9yIHRlc3QgYXV0b21hdGlv
bi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMTk2
CisKKyAgICAgICAgQWRkZWQgdGVzdCBjYXNlcyB0aGF0IHRha2UgVG91Y2ggb2JqZWN0cyB3aGVu
IGNyZWF0aW5nIFRvdWNoTGlzdC4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2RvY3Vt
ZW50LWNyZWF0ZS10b3VjaC1saXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy90b3VjaC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QuanM6CisKIDIw
MTEtMDEtMDMgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgQ2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbiB1cGRhdGUuCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2gtbGlzdC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
ZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3NDkxOCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1s
aXN0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOCw2ICs4LDExIEBAIFBBU1MgdG91
Y2hMaXN0IGlzIG5vbi1udWxsLgogUEFTUyB0b3VjaExpc3QubGVuZ3RoIGlzIDAKIFBBU1MgdG91
Y2hMaXN0Lml0ZW0oMCkgaXMgbnVsbAogUEFTUyB0b3VjaExpc3QuaXRlbSgxKSBpcyBudWxsCitQ
QVNTIHRzLnRvdWNoZXMubGVuZ3RoIGlzIDIKK1BBU1MgdHMudG91Y2hlc1swXS5pZGVudGlmaWVy
IGlzIDEyMzQxCitQQVNTIHRzLnRvdWNoZXNbMF0uY2xpZW50WCBpcyA2MAorUEFTUyB0cy50b3Vj
aGVzWzFdLnNjcmVlblkgaXMgMTIwCitQQVNTIHRzLmN0cmxLZXkgaXMgdHJ1ZQogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxp
c3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0
LXRlc3RzL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LmpzCShyZXZpc2lvbiA3NDkxOCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1jcmVh
dGUtdG91Y2gtbGlzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMiwxMSArMiw0MyBAQCBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0cyBzdXBwb3J0IGZvciB0aGUgCiAKIHNob3VsZEJlVHJ1ZSgnImNyZWF0
ZVRvdWNoTGlzdCIgaW4gZG9jdW1lbnQnKTsKIAorLy8gVGVzdCBjcmVhdGVUb3VjaExpc3Qgd2l0
aCBubyBhcmd1bWVudHMuCiB2YXIgdG91Y2hMaXN0ID0gZG9jdW1lbnQuY3JlYXRlVG91Y2hMaXN0
KCk7CiBzaG91bGRCZU5vbk51bGwoInRvdWNoTGlzdCIpOwogc2hvdWxkQmUoInRvdWNoTGlzdC5s
ZW5ndGgiLCAiMCIpOwogc2hvdWxkQmVOdWxsKCJ0b3VjaExpc3QuaXRlbSgwKSIpOwogc2hvdWxk
QmVOdWxsKCJ0b3VjaExpc3QuaXRlbSgxKSIpOwogCisvLyBUZXN0IGNyZWF0ZVRvdWNoTGlzdCB3
aXRoIFRvdWNoIG9iamVjdHMgYXMgYXJndW1lbnRzLgordHJ5IHsKKyAgICB2YXIgdCA9IGRvY3Vt
ZW50LmNyZWF0ZVRvdWNoKHdpbmRvdywgZG9jdW1lbnQuYm9keSwgMTIzNDEsIDYwLCA2NSwgMTAw
LCAxMDUpOworICAgIHZhciB0MiA9IGRvY3VtZW50LmNyZWF0ZVRvdWNoKHdpbmRvdywgZG9jdW1l
bnQuYm9keSwgMTIzNDIsIDUwLCA1NSwgMTE1LCAxMjApOworICAgIHZhciB0bCA9IGRvY3VtZW50
LmNyZWF0ZVRvdWNoTGlzdCh0LCB0Mik7CisKKyAgICB2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRl
RXZlbnQoIlRvdWNoRXZlbnQiKTsKKyAgICBldnQuaW5pdFRvdWNoRXZlbnQodGwsIHRsLCB0bCwg
InRvdWNoc3RhcnQiLCB3aW5kb3csIDAsIDAsIDAsIDAsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFs
c2UpOworCisgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iiwg
ZnVuY3Rpb24gaGFuZGxlVG91Y2hTdGFydChldikgeworICAgICAgICB0cyA9IGV2OworICAgICAg
ICBzaG91bGRCZSgidHMudG91Y2hlcy5sZW5ndGgiLCAiMiIpOworICAgICAgICBzaG91bGRCZSgi
dHMudG91Y2hlc1swXS5pZGVudGlmaWVyIiwgIjEyMzQxIik7CisgICAgICAgIHNob3VsZEJlKCJ0
cy50b3VjaGVzWzBdLmNsaWVudFgiLCAiNjAiKTsKKyAgICAgICAgc2hvdWxkQmUoInRzLnRvdWNo
ZXNbMV0uc2NyZWVuWSIsICIxMjAiKTsKKyAgICAgICAgc2hvdWxkQmUoInRzLmN0cmxLZXkiLCAi
dHJ1ZSIpOworICAgIH0pOworCisgICAgZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KGV2dCk7
Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0RmFpbGVkKCJBbiBleGNlcHRpb24gd2FzIHRocm93bjog
IiArIGUubWVzc2FnZSk7Cit9CisKKy8vIFRlc3QgY3JlYXRlVG91Y2hMaXN0IHdpdGggaW52YWxp
ZCBhcmd1bWVudHMgd2hpY2ggdGhyb3dzIGV4Y2VwdGlvbnMuCit0cnkgeworICAgIHZhciB0bCA9
IGRvY3VtZW50LmNyZWF0ZVRvdWNoTGlzdCgxLCAyKTsKK30gY2F0Y2goZSkgeworICAgIHRlc3RG
YWlsZWQoIkFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duOiAiICsgZS5tZXNzYWdlKTsKK30KKwogc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78256</attachid>
            <date>2011-01-07 12:16:09 -0800</date>
            <delta_ts>2011-01-08 17:08:56 -0800</delta_ts>
            <desc>fix patch 4</desc>
            <filename>51196_4.patch</filename>
            <type>text/plain</type>
            <size>7298</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NTI2MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTEtMDEtMDcgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Vw
cG9ydCBjcmVhdGVUb3VjaExpc3Qgd2l0aCBUb3VjaCBsaXN0IGZvciB0ZXN0IGF1dG9tYXRpb24u
CisgICAgICAgIEltcGxlbWVudGVkIEpTL1Y4IGN1c3RvbSBmdW5jdGlvbnMgZm9yIGNyZWF0ZVRv
dWNoTGlzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUxMTk2CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlzdCk6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VjhEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0Q2FsbGJhY2spOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5pZGw6CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VG91Y2hFdmVudDo6aW5pdFRvdWNoRXZlbnQpOgorCiAyMDExLTAxLTA3ICBDaHJpcyBN
YXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBT
aW1vbiBGcmFzZXIuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5j
cHAJKHJldmlzaW9uIDc1MjYyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3Vz
dG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOCArMzEsMTEgQEAKICNpbmNsdWRlICJKU0RP
TVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTSFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAi
SlNMb2NhdGlvbi5oIgorI2luY2x1ZGUgIkpTVG91Y2guaCIKKyNpbmNsdWRlICJKU1RvdWNoTGlz
dC5oIgogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgorI2luY2x1ZGUgIlRvdWNoTGlzdC5oIgogCiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJK
U1NWR0RvY3VtZW50LmgiCkBAIC0xMjQsNCArMTI3LDE2IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmEKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIAorI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCitKU1ZhbHVlIEpTRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlzdChFeGVj
U3RhdGUqIGV4ZWMpCit7CisgICAgUmVmUHRyPFRvdWNoTGlzdD4gdG91Y2hMaXN0ID0gVG91Y2hM
aXN0OjpjcmVhdGUoKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhlYy0+YXJndW1lbnRD
b3VudCgpOyBpKyspCisgICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKHRvVG91Y2goZXhlYy0+YXJn
dW1lbnQoaSkpKTsKKworICAgIHJldHVybiB0b0pTKGV4ZWMsIHRvdWNoTGlzdC5yZWxlYXNlKCkp
OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiA3NTI2
MikKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRDdXN0b20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIlRv
dWNoTGlzdC5oIgogI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgogI2luY2x1ZGUgIlhQYXRo
UmVzdWx0LmgiCiAKQEAgLTQ2LDYgKzQ3LDggQEAKICNpbmNsdWRlICJWOElzb2xhdGVkQ29udGV4
dC5oIgogI2luY2x1ZGUgIlY4Tm9kZS5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRl
ICJWOFRvdWNoLmgiCisjaW5jbHVkZSAiVjhUb3VjaExpc3QuaCIKICNpZiBFTkFCTEUoM0RfQ0FO
VkFTKQogI2luY2x1ZGUgIlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAjZW5kaWYKQEAgLTE2
Myw0ICsxNjYsMTkgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRG9jdW1lbnQqIGltcAog
ICAgIHJldHVybiB3cmFwcGVyOwogfQogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKK3Y4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOERvY3VtZW50OjpjcmVhdGVUb3VjaExpc3RDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIFJlZlB0cjxUb3VjaExpc3Q+IHRvdWNoTGlz
dCA9IFRvdWNoTGlzdDo6Y3JlYXRlKCk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3Mu
TGVuZ3RoKCk7IGkrKykgeworICAgICAgICBpZiAoIWFyZ3NbaV0tPklzT2JqZWN0KCkpCisgICAg
ICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworICAgICAgICB0b3VjaExpc3QtPmFwcGVu
ZChWOFRvdWNoOjp0b05hdGl2ZShhcmdzW2ldLT5Ub09iamVjdCgpKSk7CisgICAgfQorCisgICAg
cmV0dXJuIHRvVjgodG91Y2hMaXN0LnJlbGVhc2UoKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gNzUyNjIpCisrKyBXZWJDb3Jl
L2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMzMyw3ICszMzMsNyBAQCBtb2R1
bGUgY29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBsb25nIFNjcmVlblgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHNjcmVlblkpCiAgICAgICAgICAg
ICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtSZXR1cm5zTmV3LCBFbmFibGVkQXRS
dW50aW1lXSBUb3VjaExpc3QgY3JlYXRlVG91Y2hMaXN0KCkKKyAgICAgICAgW1JldHVybnNOZXcs
IEVuYWJsZWRBdFJ1bnRpbWUsIEN1c3RvbV0gVG91Y2hMaXN0IGNyZWF0ZVRvdWNoTGlzdCgpCiAg
ICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKIApJbmRleDogV2ViQ29y
ZS9kb20vVG91Y2hFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vVG91Y2hFdmVu
dC5jcHAJKHJldmlzaW9uIDc1MjYyKQorKysgV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDkgQEAgdm9pZCBUb3VjaEV2ZW50Ojppbml0VG91Y2hF
dmVudChUb3VjaExpcwogCiAgICAgaW5pdFVJRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgdmlldywg
MCk7CiAKKyAgICBtX3RvdWNoZXMgPSB0b3VjaGVzOworICAgIG1fdGFyZ2V0VG91Y2hlcyA9IHRh
cmdldFRvdWNoZXM7CisgICAgbV9jaGFuZ2VkVG91Y2hlcyA9IGNoYW5nZWRUb3VjaGVzOwogICAg
IG1fc2NyZWVuWCA9IHNjcmVlblg7CiAgICAgbV9zY3JlZW5ZID0gc2NyZWVuWTsKICAgICBtX2N0
cmxLZXkgPSBjdHJsS2V5OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzUyNjIpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wMS0wNyAg
Q2hhbmcgU2h1ICA8Y2hhbmcuc2h1QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGNyZWF0ZVRvdWNoTGlzdCB3aXRoIFRv
dWNoIGxpc3QgZm9yIHRlc3QgYXV0b21hdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMTk2CisKKyAgICAgICAgQWRkZWQgdGVzdCBjYXNlcyB0
aGF0IHRha2UgVG91Y2ggb2JqZWN0cyB3aGVuIGNyZWF0aW5nIFRvdWNoTGlzdC4KKworICAgICAg
ICAqIGZhc3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQt
Y3JlYXRlLXRvdWNoLWxpc3QuanM6CisKIDIwMTEtMDEtMDcgIENocmlzIE1hcnJpbiAgPGNtYXJy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IFNpbW9uIEZyYXNlci4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3Vj
aC1saXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2gtbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDc1MjYyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRl
LXRvdWNoLWxpc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04LDYgKzgsMTEgQEAg
UEFTUyB0b3VjaExpc3QgaXMgbm9uLW51bGwuCiBQQVNTIHRvdWNoTGlzdC5sZW5ndGggaXMgMAog
UEFTUyB0b3VjaExpc3QuaXRlbSgwKSBpcyBudWxsCiBQQVNTIHRvdWNoTGlzdC5pdGVtKDEpIGlz
IG51bGwKK1BBU1MgdHMudG91Y2hlcy5sZW5ndGggaXMgMgorUEFTUyB0cy50b3VjaGVzWzBdLmlk
ZW50aWZpZXIgaXMgMTIzNDEKK1BBU1MgdHMudG91Y2hlc1swXS5jbGllbnRYIGlzIDYwCitQQVNT
IHRzLnRvdWNoZXNbMV0uc2NyZWVuWSBpcyAxMjAKK1BBU1MgdHMuY3RybEtleSBpcyB0cnVlCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1jcmVhdGUt
dG91Y2gtbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QuanMJKHJldmlzaW9uIDc1
MjYyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3RzL2RvY3Vt
ZW50LWNyZWF0ZS10b3VjaC1saXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yLDExICsyLDQzIEBA
IGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHN1cHBvcnQgZm9yIHRoZSAKIAogc2hvdWxkQmVUcnVl
KCciY3JlYXRlVG91Y2hMaXN0IiBpbiBkb2N1bWVudCcpOwogCisvLyBUZXN0IGNyZWF0ZVRvdWNo
TGlzdCB3aXRoIG5vIGFyZ3VtZW50cy4KIHZhciB0b3VjaExpc3QgPSBkb2N1bWVudC5jcmVhdGVU
b3VjaExpc3QoKTsKIHNob3VsZEJlTm9uTnVsbCgidG91Y2hMaXN0Iik7CiBzaG91bGRCZSgidG91
Y2hMaXN0Lmxlbmd0aCIsICIwIik7CiBzaG91bGRCZU51bGwoInRvdWNoTGlzdC5pdGVtKDApIik7
CiBzaG91bGRCZU51bGwoInRvdWNoTGlzdC5pdGVtKDEpIik7CiAKKy8vIFRlc3QgY3JlYXRlVG91
Y2hMaXN0IHdpdGggVG91Y2ggb2JqZWN0cyBhcyBhcmd1bWVudHMuCit0cnkgeworICAgIHZhciB0
ID0gZG9jdW1lbnQuY3JlYXRlVG91Y2god2luZG93LCBkb2N1bWVudC5ib2R5LCAxMjM0MSwgNjAs
IDY1LCAxMDAsIDEwNSk7CisgICAgdmFyIHQyID0gZG9jdW1lbnQuY3JlYXRlVG91Y2god2luZG93
LCBkb2N1bWVudC5ib2R5LCAxMjM0MiwgNTAsIDU1LCAxMTUsIDEyMCk7CisgICAgdmFyIHRsID0g
ZG9jdW1lbnQuY3JlYXRlVG91Y2hMaXN0KHQsIHQyKTsKKworICAgIHZhciBldnQgPSBkb2N1bWVu
dC5jcmVhdGVFdmVudCgiVG91Y2hFdmVudCIpOworICAgIGV2dC5pbml0VG91Y2hFdmVudCh0bCwg
dGwsIHRsLCAidG91Y2hzdGFydCIsIHdpbmRvdywgMCwgMCwgMCwgMCwgdHJ1ZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSk7CisKKyAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNo
c3RhcnQiLCBmdW5jdGlvbiBoYW5kbGVUb3VjaFN0YXJ0KGV2KSB7CisgICAgICAgIHRzID0gZXY7
CisgICAgICAgIHNob3VsZEJlKCJ0cy50b3VjaGVzLmxlbmd0aCIsICIyIik7CisgICAgICAgIHNo
b3VsZEJlKCJ0cy50b3VjaGVzWzBdLmlkZW50aWZpZXIiLCAiMTIzNDEiKTsKKyAgICAgICAgc2hv
dWxkQmUoInRzLnRvdWNoZXNbMF0uY2xpZW50WCIsICI2MCIpOworICAgICAgICBzaG91bGRCZSgi
dHMudG91Y2hlc1sxXS5zY3JlZW5ZIiwgIjEyMCIpOworICAgICAgICBzaG91bGRCZSgidHMuY3Ry
bEtleSIsICJ0cnVlIik7CisgICAgfSk7CisKKyAgICBkb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZl
bnQoZXZ0KTsKK30gY2F0Y2goZSkgeworICAgIHRlc3RGYWlsZWQoIkFuIGV4Y2VwdGlvbiB3YXMg
dGhyb3duOiAiICsgZS5tZXNzYWdlKTsKK30KKworLy8gVGVzdCBjcmVhdGVUb3VjaExpc3Qgd2l0
aCBpbnZhbGlkIGFyZ3VtZW50cyB3aGljaCB0aHJvd3MgZXhjZXB0aW9ucy4KK3RyeSB7CisgICAg
dmFyIHRsID0gZG9jdW1lbnQuY3JlYXRlVG91Y2hMaXN0KDEsIDIpOworfSBjYXRjaChlKSB7Cisg
ICAgdGVzdEZhaWxlZCgiQW4gZXhjZXB0aW9uIHdhcyB0aHJvd246ICIgKyBlLm1lc3NhZ2UpOwor
fQorCiBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsK
Kwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>