<?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>44610</bug_id>
          
          <creation_ts>2010-08-25 07:31:48 -0700</creation_ts>
          <short_desc>Malformed SVG causes crash in updateContainerOffset</short_desc>
          <delta_ts>2011-01-05 05:15:00 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>51868</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter>brondaire</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>krit</cc>
    
    <cc>leo.yang</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>269240</commentid>
    <comment_count>0</comment_count>
      <attachid>65416</attachid>
    <who name="">brondaire</who>
    <bug_when>2010-08-25 07:31:48 -0700</bug_when>
    <thetext>Created attachment 65416
Viewing the attached SVG crashes Safari/Chrome

Opening the attached SVG file causes crashes both in Safari and Google Chrome. Quick stack trace from OS X 10.6.5 (10H529), Safari Version 5.0.1 (6533.17.8) follows:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000
0x00007fff8714d312 in WebCore::updateContainerOffset ()
(gdb) bt
#0  0x00007fff8714d312 in WebCore::updateContainerOffset ()
#1  0x00007fff8714d2d8 in WebCore::updateContainerOffset ()
#2  0x00007fff8714d2d8 in WebCore::updateContainerOffset ()
#3  0x00007fff8714d2d8 in WebCore::updateContainerOffset ()
#4  0x00007fff8714d2d8 in WebCore::updateContainerOffset ()
#5  0x00007fff8714d2d8 in WebCore::updateContainerOffset ()
#6  0x00007fff8714d2d8 in WebCore::updateContainerOffset ()
#7  0x00007fff8714d2d8 in WebCore::updateContainerOffset ()
#8  0x00007fff8714d0f0 in WebCore::SVGUseElement::updateContainerOffsets ()
#9  0x00007fff8714bf3a in WebCore::SVGUseElement::buildShadowAndInstanceTree ()
#10 0x00007fff8714b709 in WebCore::RenderSVGShadowTreeRootContainer::updateFromElement ()
#11 0x00007fff86bf07d1 in WebCore::ContainerNode::dispatchPostAttachCallbacks ()
#12 0x00007fff86ae25ff in WebCore::ContainerNode::resumePostAttachCallbacks ()
#13 0x00007fff86ae85ed in WebCore::Element::attach ()
#14 0x00007fff86c31be4 in WebCore::ContainerNode::appendChild ()
#15 0x00007fff86d62732 in WebCore::XMLTokenizer::insertErrorMessageBlock ()
#16 0x00007fff86bbdb68 in WebCore::XMLTokenizer::end ()
#17 0x00007fff86ad05f2 in WebCore::DocumentWriter::endIfNotLoadingMainResource ()
#18 0x00007fff86b899ab in WebCore::FrameLoader::finishedLoading ()
#19 0x00007fff86b898f0 in WebCore::MainResourceLoader::didFinishLoading ()
#20 0x00007fff8249938c in _NSURLConnectionDidFinishLoading ()
#21 0x00007fff80206646 in URLConnectionClient::_clientDidFinishLoading ()
#22 0x00007fff8026bd16 in URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload ()
#23 0x00007fff8026bf82 in URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload ()
#24 0x00007fff801f2cbf in URLConnectionClient::processEvents ()
#25 0x00007fff801f2a9c in MultiplexerSource::perform ()
#26 0x00007fff8179c5f1 in __CFRunLoopDoSources0 ()
#27 0x00007fff8179a7e9 in __CFRunLoopRun ()
#28 0x00007fff81799faf in CFRunLoopRunSpecific ()
#29 0x00007fff8503991a in RunCurrentEventLoopInMode ()
#30 0x00007fff8503971f in ReceiveNextEventCommon ()
#31 0x00007fff850395d8 in BlockUntilNextEventMatchingListInMode ()
#32 0x00007fff83ff3e64 in _DPSNextEvent ()
#33 0x00007fff83ff37a9 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#34 0x0000000100015938 in ?? ()
#35 0x00007fff83fb948b in -[NSApplication run] ()
#36 0x00007fff83fb21a8 in NSApplicationMain ()
#37 0x0000000100009804 in ?? ()

Does not appear to be exploitable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327001</commentid>
    <comment_count>1</comment_count>
      <attachid>77486</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2010-12-27 01:55:19 -0800</bug_when>
    <thetext>Created attachment 77486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327009</commentid>
    <comment_count>2</comment_count>
      <attachid>77486</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-12-27 04:15:45 -0800</bug_when>
    <thetext>Comment on attachment 77486
Patch

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

LGTM. But reviewing the patch gives following error: Can&apos;t expand. Unable to apply patch to tip of tree.
Can you check if it is still possible to apply the patch to tot?

And a short snippet left

&gt; LayoutTests/svg/dom/recursive-use-expected.txt:1
&gt; +Survived the crash!

Shouldn&apos;t it be. &quot;Did not crash!&quot;? IIRC we don&apos;t want a crash at all ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327011</commentid>
    <comment_count>3</comment_count>
      <attachid>77486</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-12-27 04:43:36 -0800</bug_when>
    <thetext>Comment on attachment 77486
Patch

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

Good approach, r- for a few nitpicks:

&gt; LayoutTests/ChangeLog:7
&gt; +        Test case for recursive svg &lt;use&gt;.
&gt; +        This test case passes if no crash occurs.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=44610

This text should go below the link to the bug report, instead the bug title should be above the link:

&lt;bug title&gt;
https://bugs.webkit.org/...

&lt;bug description&gt;

&gt; LayoutTests/ChangeLog:10
&gt; +        * svg/dom/recursive-use-expected.txt: Added.
&gt; +        * svg/dom/recursive-use.svg: Added.

I think the testcase should rather go into svg/custom/, we only use svg/dom/ for tests that access any DOM attribute/props.

&gt; WebCore/ChangeLog:9
&gt; +        We should check recursive &lt;use&gt; at the begining of
&gt; +        WebCore::SVGUseElement::buildInstanceTree instead
&gt; +        of at the end of it because the target element&apos;s
&gt; +        children may cause infinite recursive &lt;use&gt;.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=44610

This text should go below the link to the bug report, instead the bug title should be above the link:

&lt;bug title&gt;
https://bugs.webkit.org/...

&lt;bug description&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327169</commentid>
    <comment_count>4</comment_count>
      <attachid>77531</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2010-12-27 18:28:31 -0800</bug_when>
    <thetext>Created attachment 77531
Revised patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327363</commentid>
    <comment_count>5</comment_count>
      <attachid>77531</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-28 14:07:30 -0800</bug_when>
    <thetext>Comment on attachment 77531
Revised patch

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

&gt; LayoutTests/svg/custom/recursive-use.svg:10
&gt; +&lt;text&gt;Don&apos;t crash!&lt;/text&gt;

PASS would be better text here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327390</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-12-28 14:47:03 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 77531 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=77531&amp;action=review
&gt; 
&gt; &gt; LayoutTests/svg/custom/recursive-use.svg:10
&gt; &gt; +&lt;text&gt;Don&apos;t crash!&lt;/text&gt;
&gt; 
&gt; PASS would be better text here.

Hm. Indeed. Maybe &quot;PASS. Test didn&apos;t crash.&quot; Leo can you upload a new patch please, since you do not have commit rights yet?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328870</commentid>
    <comment_count>7</comment_count>
      <attachid>77862</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-01-03 18:20:50 -0800</bug_when>
    <thetext>Created attachment 77862
Revised patch version 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328913</commentid>
    <comment_count>8</comment_count>
      <attachid>77862</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-04 00:51:24 -0800</bug_when>
    <thetext>Comment on attachment 77862
Revised patch version 2

LGTM. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328916</commentid>
    <comment_count>9</comment_count>
      <attachid>77862</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 01:11:43 -0800</bug_when>
    <thetext>Comment on attachment 77862
Revised patch version 2

Clearing flags on attachment: 77862

Committed r74960: &lt;http://trac.webkit.org/changeset/74960&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328917</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 01:11:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328918</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-04 01:35:23 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/74960 might have broken GTK Linux 64-bit Debug
The following tests are not passing:
svg/custom/use-nested-children.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328924</commentid>
    <comment_count>12</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-01-04 02:03:29 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; http://trac.webkit.org/changeset/74960 might have broken GTK Linux 64-bit Debug
&gt; The following tests are not passing:
&gt; svg/custom/use-nested-children.svg

This case passes. Reverified based on 74962.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328934</commentid>
    <comment_count>13</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-01-04 02:40:43 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; http://trac.webkit.org/changeset/74960 might have broken GTK Linux 64-bit Debug
&gt; &gt; The following tests are not passing:
&gt; &gt; svg/custom/use-nested-children.svg
&gt; 
&gt; This case passes. Reverified based on 74962.

It seems hitting an assertion. Testing with debug build.(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; http://trac.webkit.org/changeset/74960 might have broken GTK Linux 64-bit Debug
&gt; &gt; The following tests are not passing:
&gt; &gt; svg/custom/use-nested-children.svg
&gt; 
&gt; This case passes. Reverified based on 74962.

It seems hitting an assertion. Testing with debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329464</commentid>
    <comment_count>14</comment_count>
      <attachid>77978</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-01-05 00:16:55 -0800</bug_when>
    <thetext>Created attachment 77978
Revised patch version 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329467</commentid>
    <comment_count>15</comment_count>
      <attachid>77978</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-05 00:43:05 -0800</bug_when>
    <thetext>Comment on attachment 77978
Revised patch version 3

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

just a snippet

&gt; WebCore/svg/SVGUseElement.cpp:726
&gt; -        handleDeepUseReferencing(static_cast&lt;SVGUseElement*&gt;(target), targetInstance, foundProblem);
&gt; +    if (targetHasUseTag &amp;&amp; newTarget) {
&gt; +        RefPtr&lt;SVGElementInstance&gt; newInstance = SVGElementInstance::create(this, newTarget);
&gt; +        SVGElementInstance* newInstancePtr = newInstance.get();
&gt; +        targetInstance-&gt;appendChild(newInstance.release());
&gt; +        buildInstanceTree(newTarget, newInstancePtr, foundProblem);
&gt; +    }

should be
if (!targetHasUseTag || !newTarget)
    return;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329468</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-05 00:44:46 -0800</bug_when>
    <thetext>reopen bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329487</commentid>
    <comment_count>17</comment_count>
      <attachid>77983</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-01-05 01:38:54 -0800</bug_when>
    <thetext>Created attachment 77983
Revised patch version 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329490</commentid>
    <comment_count>18</comment_count>
      <attachid>77983</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-05 01:54:21 -0800</bug_when>
    <thetext>Comment on attachment 77983
Revised patch version 4

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329504</commentid>
    <comment_count>19</comment_count>
      <attachid>77983</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-05 04:11:34 -0800</bug_when>
    <thetext>Comment on attachment 77983
Revised patch version 4

Clearing flags on attachment: 77983

Committed r75059: &lt;http://trac.webkit.org/changeset/75059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329505</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-05 04:11:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329516</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-05 05:15:00 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/75059 might have broken Leopard Intel Debug (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>65416</attachid>
            <date>2010-08-25 07:31:48 -0700</date>
            <delta_ts>2010-08-25 07:31:48 -0700</delta_ts>
            <desc>Viewing the attached SVG crashes Safari/Chrome</desc>
            <filename>svgcrash.svg</filename>
            <type>image/svg+xml</type>
            <size>1059</size>
            <attacher>brondaire</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGxpbmsiIHdpZHRoPSIxMjM1IiBoZWlnaHQ9IjY1MCI+PGRlZnM+PHBvbHlnb24gaWQ9InB0IiBw
b2ludHM9Ii0wLjE2MjQ1OTg0ODExNjQ1MzEsMCAwLC0wLjUgMC4xNjI0NTk4NDgxMTY0NTMxLDAi
IHRyYW5zZm9ybT0ic2NhbGUoMC4wNjE2KSIgZmlsbD0iI0ZGRiIvPjxnIGlkPSJzdGFyIj48dXNl
IHhsaW5rOmhyZWY9IiNwdCIgdHJhbnNmb3JtPSJyb3RhdGUoLTE0NCkiLz48dXNlIHhsaW5rOmhy
ZWY9IiNwdCIgdHJhbnNmb3JtPSJyb3RhdGUoLTcyKSIvPjx1c2UgeGxpbms6aHJlZj0iI3B0Ii8+
PHVzZSB4bGluazpocmVmPSIjcHQiIHRyYW5zZm9ybT0icm90YXRlKDcyKSIvPjx1c2UgeGxpbms6
aHJlZj0iI3B0IiB0cmFuc2Zvcm09InJvdGF0ZSgxNDQpIi8+PC9nPjxnIGlkPSJzNSI+PHVzZSB4
bGluazpocmVmPSIjc3RhciIgeD0iLTAuMjUyIi8+PHVzZSB4bGluazpocmVmPSIjc3RhciIgeD0i
LTAuMTI2Ii8+PHVzZSB4bGluazpocmVmPSIjc3RhciIvPjx1c2UgeGxpbms6aHJlZj0iI3N0YXIi
IHg9IjAuMTI2Ii8+PHVzZSB4bGluazpocmVmPSIjc3RhciIgeD0iMC4yNTIiLz48L2c+PGcgaWQ9
InM2Ij48dXNlIHhsaW5rOmhyZWY9IiNzNSIgeD0iLTAuMDYzIi8+PHVzZSB4bGluazpocmVmPSIj
c3RhciIgeD0iMC4zMTUiLz48L2c+PGcgaWQ9Ing0Ij48dXNlIHhsaW5rOmhyZWY9IiNzNiIvPjx1
c2UgeGxpbms6aHJlZj0iI3M1IiB5PSIwLjA1NCIvPjx1c2UgeGxpbms6aHJlZj0iI3M2IiB5PSIw
LjEwOCIvPjx1c2UgeGxpbms6aHJlZj0iI3M1IiB5PSIwLjE2MiIvPjwvZz48ZyBpZD0idSI+PHVz
ZSB4bGluazpocmVmPSIjeDQiIHk9Ii0wLjIxNiIvPjx1c2UgeGxpbms6aHJlZj0iI3g0Ii8+PHVz
ZSB4bGluazpocmVmPSIjczYiID48dXNlIHhsaW5rOmhyZWY9IiN1IiB0cmFuc2Zvcm09InRyYW5z
bGF0ZSgyNDcsMTc1KSBzY2FsZSg2NTApIi8+PC9zdmc+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77486</attachid>
            <date>2010-12-27 01:55:19 -0800</date>
            <delta_ts>2010-12-27 18:28:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-2010-12-27-Leo-Yang-leo.yang-torchmobile.com.cn.patch</filename>
            <type>text/plain</type>
            <size>5293</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSBmNzYxZjBmZWY1OWZjOGJkZDU4MTY4Yzg4ZjI1YWFiMmExOGQ4ZjQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBNb24sIDI3IERlYyAyMDEwIDE3OjQ3OjQ2ICswODAwClN1YmplY3Q6IFtQQVRDSF0g
MjAxMC0xMi0yNyAgTGVvIFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBXZSBzaG91bGQgY2hlY2sg
cmVjdXJzaXZlIDx1c2U+IGF0IHRoZSBiZWdpbmluZyBvZgogICAgICAgIFdlYkNvcmU6OlNWR1Vz
ZUVsZW1lbnQ6OmJ1aWxkSW5zdGFuY2VUcmVlIGluc3RlYWQKICAgICAgICBvZiBhdCB0aGUgZW5k
IG9mIGl0IGJlY2F1c2UgdGhlIHRhcmdldCBlbGVtZW50J3MKICAgICAgICBjaGlsZHJlbiBtYXkg
Y2F1c2UgaW5maW5pdGUgcmVjdXJzaXZlIDx1c2U+LgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDYxMAoKICAgICAgICBUZXN0OiBzdmcvZG9tL3JlY3Vy
c2l2ZS11c2Uuc3ZnCgogICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgogICAgICAgIChX
ZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWlsZEluc3RhbmNlVHJlZSk6CiAgICAgICAgKiBzdmcv
ZG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAqIHN2Zy9kb20v
cmVjdXJzaXZlLXVzZS5zdmc6IEFkZGVkLgoKKiBzdmcvZG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKiBzdmcvZG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnOiBBZGRlZC4KLS0tCiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysr
KysrKysrKwogTGF5b3V0VGVzdHMvc3ZnL2RvbS9yZWN1cnNpdmUtdXNlLWV4cGVjdGVkLnR4dCB8
ICAgIDEgKwogTGF5b3V0VGVzdHMvc3ZnL2RvbS9yZWN1cnNpdmUtdXNlLnN2ZyAgICAgICAgICB8
ICAgMTUgKysrKysrKysrKysrKysrCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxNSArKysrKysrKysrKysrKysKIFdlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuY3BwICAgICAgICAgICAgICAgICAgfCAgIDEwICsrKysrLS0tLS0KIDUgZmlsZXMgY2hh
bmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9zdmcvZG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0ZWQudHh0CiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvc3ZnL2RvbS9yZWN1cnNpdmUtdXNlLnN2ZwoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBiOTYxZmI5Li4xNTBlMzc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMTItMjcgIExl
byBZYW5nICA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgY2FzZSBmb3IgcmVjdXJzaXZlIHN2
ZyA8dXNlPi4KKyAgICAgICAgVGhpcyB0ZXN0IGNhc2UgcGFzc2VzIGlmIG5vIGNyYXNoIG9jY3Vy
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NjEw
CisKKyAgICAgICAgKiBzdmcvZG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvZG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnOiBBZGRlZC4KKwogMjAxMC0xMi0y
NiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9yZWN1
cnNpdmUtdXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9kb20vcmVjdXJzaXZlLXVz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkxNjc1
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vcmVjdXJzaXZlLXVzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorU3Vydml2ZWQgdGhlIGNyYXNoIQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9yZWN1cnNpdmUtdXNlLnN2ZyBiL0xheW91dFRlc3RzL3N2
Zy9kb20vcmVjdXJzaXZlLXVzZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNTljYjBjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vcmVjdXJz
aXZlLXVzZS5zdmcKQEAgLTAsMCArMSwxNSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4K
KzxkZWZzPgorICAgIDxwb2x5Z29uIGlkPSJwdCIgcG9pbnRzPSItMSwwIDAsLTAuNSAxLDAiLz4K
KyAgICA8ZyBpZD0idSI+CisgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3B0Ij4KKyAgICAgICAg
PHVzZSB4bGluazpocmVmPSIjdSIvPgorICAgICAgICA8L3VzZT4KKyAgICA8L2c+Cis8L2RlZnM+
Cis8dGV4dD5TdXJ2aXZlZCB0aGUgY3Jhc2ghPC90ZXh0PgorPHNjcmlwdD4KKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYmYyM2M1Li5hMGYwNjI1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDEwLTEyLTI3ICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5j
bj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBz
aG91bGQgY2hlY2sgcmVjdXJzaXZlIDx1c2U+IGF0IHRoZSBiZWdpbmluZyBvZgorICAgICAgICBX
ZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWlsZEluc3RhbmNlVHJlZSBpbnN0ZWFkCisgICAgICAg
IG9mIGF0IHRoZSBlbmQgb2YgaXQgYmVjYXVzZSB0aGUgdGFyZ2V0IGVsZW1lbnQncworICAgICAg
ICBjaGlsZHJlbiBtYXkgY2F1c2UgaW5maW5pdGUgcmVjdXJzaXZlIDx1c2U+LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2MTAKKworICAgICAgICBU
ZXN0OiBzdmcvZG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnCisKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWlsZEluc3RhbmNl
VHJlZSk6CisKIDIwMTAtMTItMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAK
aW5kZXggNGYyM2Y0Ni4uYmYxYzA4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTY4Miw2ICs2
ODIsMTEgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpidWlsZEluc3RhbmNlVHJlZShTVkdFbGVtZW50
KiB0YXJnZXQsIFNWR0VsZW1lbnRJbnN0YW5jZSogdGEKICAgICBBU1NFUlQodGFyZ2V0KTsKICAg
ICBBU1NFUlQodGFyZ2V0SW5zdGFuY2UpOwogCisgICAgLy8gU3BlYzogSWYgdGhlIHJlZmVyZW5j
ZWQgb2JqZWN0IGlzIGl0c2VsZiBhICd1c2UnLCBvciBpZiB0aGVyZSBhcmUgJ3VzZScgc3ViZWxl
bWVudHMgd2l0aGluIHRoZSByZWZlcmVuY2VkCisgICAgLy8gb2JqZWN0LCB0aGUgaW5zdGFuY2Ug
dHJlZSB3aWxsIGNvbnRhaW4gcmVjdXJzaXZlIGV4cGFuc2lvbiBvZiB0aGUgaW5kaXJlY3QgcmVm
ZXJlbmNlcyB0byBmb3JtIGEgY29tcGxldGUgdHJlZS4KKyAgICBpZiAodGFyZ2V0LT5oYXNUYWdO
YW1lKFNWR05hbWVzOjp1c2VUYWcpKQorICAgICAgICBoYW5kbGVEZWVwVXNlUmVmZXJlbmNpbmco
c3RhdGljX2Nhc3Q8U1ZHVXNlRWxlbWVudCo+KHRhcmdldCksIHRhcmdldEluc3RhbmNlLCBmb3Vu
ZFByb2JsZW0pOworCiAgICAgLy8gQSBnZW5lcmFsIGRlc2NyaXB0aW9uIGZyb20gdGhlIFNWRyBz
cGVjLCBkZXNjcmliaW5nIHdoYXQgYnVpbGRJbnN0YW5jZVRyZWUoKSBhY3R1YWxseSBkb2VzLgog
ICAgIC8vCiAgICAgLy8gU3BlYzogSWYgdGhlICd1c2UnIGVsZW1lbnQgcmVmZXJlbmNlcyBhICdn
JyB3aGljaCBjb250YWlucyB0d28gJ3JlY3QnIGVsZW1lbnRzLCB0aGVuIHRoZSBpbnN0YW5jZSB0
cmVlCkBAIC03MDYsMTEgKzcxMSw2IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6YnVpbGRJbnN0YW5j
ZVRyZWUoU1ZHRWxlbWVudCogdGFyZ2V0LCBTVkdFbGVtZW50SW5zdGFuY2UqIHRhCiAgICAgICAg
IC8vIEVudGVyIHJlY3Vyc2lvbiwgYXBwZW5kaW5nIG5ldyBpbnN0YW5jZSB0cmVlIG5vZGVzIHRv
IHRoZSAiaW5zdGFuY2UiIG9iamVjdC4KICAgICAgICAgYnVpbGRJbnN0YW5jZVRyZWUoZWxlbWVu
dCwgaW5zdGFuY2VQdHIsIGZvdW5kUHJvYmxlbSk7CiAgICAgfQotCi0gICAgLy8gU3BlYzogSWYg
dGhlIHJlZmVyZW5jZWQgb2JqZWN0IGlzIGl0c2VsZiBhICd1c2UnLCBvciBpZiB0aGVyZSBhcmUg
J3VzZScgc3ViZWxlbWVudHMgd2l0aGluIHRoZSByZWZlcmVuY2VkCi0gICAgLy8gb2JqZWN0LCB0
aGUgaW5zdGFuY2UgdHJlZSB3aWxsIGNvbnRhaW4gcmVjdXJzaXZlIGV4cGFuc2lvbiBvZiB0aGUg
aW5kaXJlY3QgcmVmZXJlbmNlcyB0byBmb3JtIGEgY29tcGxldGUgdHJlZS4KLSAgICBpZiAodGFy
Z2V0LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp1c2VUYWcpKQotICAgICAgICBoYW5kbGVEZWVwVXNl
UmVmZXJlbmNpbmcoc3RhdGljX2Nhc3Q8U1ZHVXNlRWxlbWVudCo+KHRhcmdldCksIHRhcmdldElu
c3RhbmNlLCBmb3VuZFByb2JsZW0pOwogfQogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6OmhhbmRsZURl
ZXBVc2VSZWZlcmVuY2luZyhTVkdVc2VFbGVtZW50KiB1c2UsIFNWR0VsZW1lbnRJbnN0YW5jZSog
dGFyZ2V0SW5zdGFuY2UsIGJvb2wmIGZvdW5kUHJvYmxlbSkKLS0gCjEuNy4wLjQKCg==
</data>
<flag name="review"
          id="68621"
          type_id="1"
          status="-"
          setter="krit"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77531</attachid>
            <date>2010-12-27 18:28:31 -0800</date>
            <delta_ts>2011-01-03 18:20:50 -0800</delta_ts>
            <desc>Revised patch</desc>
            <filename>0001-2010-12-27-Leo-Yang-leo.yang-torchmobile.com.cn.patch</filename>
            <type>text/plain</type>
            <size>5443</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSA4MTUwYThhNzA4YTBkZTQyMmM2ZjdkNDAzYmQ2YmQ5Y2YwZGFmZGVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBUdWUsIDI4IERlYyAyMDEwIDEwOjE0OjM1ICswODAwClN1YmplY3Q6IFtQQVRDSF0g
MjAxMC0xMi0yNyAgTGVvIFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBNYWxmb3JtZWQgU1ZHIGNh
dXNlcyBjcmFzaCBpbiB1cGRhdGVDb250YWluZXJPZmZzZXQKICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2MTAKCiAgICAgICAgV2Ugc2hvdWxkIGNoZWNr
IHJlY3Vyc2l2ZSA8dXNlPiBhdCB0aGUgYmVnaW5pbmcgb2YKICAgICAgICBXZWJDb3JlOjpTVkdV
c2VFbGVtZW50OjpidWlsZEluc3RhbmNlVHJlZSBpbnN0ZWFkCiAgICAgICAgb2YgYXQgdGhlIGVu
ZCBvZiBpdCBiZWNhdXNlIHRoZSB0YXJnZXQgZWxlbWVudCdzCiAgICAgICAgY2hpbGRyZW4gbWF5
IGNhdXNlIGluZmluaXRlIHJlY3Vyc2l2ZSA8dXNlPi4KCiAgICAgICAgVGVzdDogc3ZnL2N1c3Rv
bS9yZWN1cnNpdmUtdXNlLnN2ZwoKICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKICAg
ICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6YnVpbGRJbnN0YW5jZVRyZWUpOgogICAgICAg
ICogc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAgICAg
KiBzdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysrKysrKysrKysr
CiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0ZWQudHh0IHwgICAg
MSArCiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnICAgICAgICAgIHwg
ICAxNSArKysrKysrKysrKysrKysKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE3ICsrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKysrKy0tLS0tCiA1IGZp
bGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4cGVjdGVkLnR4
dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVz
ZS5zdmcKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNDAwNGQ3Ny4uMjM0Mzc2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDEwLTEyLTI3ICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWxmb3JtZWQgU1ZH
IGNhdXNlcyBjcmFzaCBpbiB1cGRhdGVDb250YWluZXJPZmZzZXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NjEwCisKKyAgICAgICAgVGVzdCBjYXNl
IGZvciByZWN1cnNpdmUgc3ZnIDx1c2U+LgorICAgICAgICBUaGlzIHRlc3QgY2FzZSBwYXNzZXMg
aWYgbm8gY3Jhc2ggb2NjdXJzLgorCisgICAgICAgICogc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNl
LnN2ZzogQWRkZWQuCisKIDIwMTAtMTItMjcgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhNGY4MzUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEgQEAKK0Rvbid0IGNyYXNoIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9y
ZWN1cnNpdmUtdXNlLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS5z
dmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgzM2ZkZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS5zdmcKQEAgLTAs
MCArMSwxNSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5z
OnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKzxkZWZzPgorICAgIDxwb2x5
Z29uIGlkPSJwdCIgcG9pbnRzPSItMSwwIDAsLTAuNSAxLDAiLz4KKyAgICA8ZyBpZD0idSI+Cisg
ICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3B0Ij4KKyAgICAgICAgPHVzZSB4bGluazpocmVmPSIj
dSIvPgorICAgICAgICA8L3VzZT4KKyAgICA8L2c+Cis8L2RlZnM+Cis8dGV4dD5Eb24ndCBjcmFz
aCE8L3RleHQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0Pgor
PC9zdmc+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDFkZGJiNGQuLjNlNjI2N2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMTItMjcgIExlbyBZ
YW5nICA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hbGZvcm1lZCBTVkcgY2F1c2VzIGNyYXNoIGlu
IHVwZGF0ZUNvbnRhaW5lck9mZnNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDQ2MTAKKworICAgICAgICBXZSBzaG91bGQgY2hlY2sgcmVjdXJzaXZl
IDx1c2U+IGF0IHRoZSBiZWdpbmluZyBvZgorICAgICAgICBXZWJDb3JlOjpTVkdVc2VFbGVtZW50
OjpidWlsZEluc3RhbmNlVHJlZSBpbnN0ZWFkCisgICAgICAgIG9mIGF0IHRoZSBlbmQgb2YgaXQg
YmVjYXVzZSB0aGUgdGFyZ2V0IGVsZW1lbnQncworICAgICAgICBjaGlsZHJlbiBtYXkgY2F1c2Ug
aW5maW5pdGUgcmVjdXJzaXZlIDx1c2U+LgorCisgICAgICAgIFRlc3Q6IHN2Zy9jdXN0b20vcmVj
dXJzaXZlLXVzZS5zdmcKKworICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmJ1aWxkSW5zdGFuY2VUcmVlKToKKwogMjAxMC0x
Mi0yNyAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
Y3BwIGIvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggNGYyM2Y0Ni4uYmYxYzA4
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysrIGIvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTY4Miw2ICs2ODIsMTEgQEAgdm9pZCBTVkdVc2VF
bGVtZW50OjpidWlsZEluc3RhbmNlVHJlZShTVkdFbGVtZW50KiB0YXJnZXQsIFNWR0VsZW1lbnRJ
bnN0YW5jZSogdGEKICAgICBBU1NFUlQodGFyZ2V0KTsKICAgICBBU1NFUlQodGFyZ2V0SW5zdGFu
Y2UpOwogCisgICAgLy8gU3BlYzogSWYgdGhlIHJlZmVyZW5jZWQgb2JqZWN0IGlzIGl0c2VsZiBh
ICd1c2UnLCBvciBpZiB0aGVyZSBhcmUgJ3VzZScgc3ViZWxlbWVudHMgd2l0aGluIHRoZSByZWZl
cmVuY2VkCisgICAgLy8gb2JqZWN0LCB0aGUgaW5zdGFuY2UgdHJlZSB3aWxsIGNvbnRhaW4gcmVj
dXJzaXZlIGV4cGFuc2lvbiBvZiB0aGUgaW5kaXJlY3QgcmVmZXJlbmNlcyB0byBmb3JtIGEgY29t
cGxldGUgdHJlZS4KKyAgICBpZiAodGFyZ2V0LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp1c2VUYWcp
KQorICAgICAgICBoYW5kbGVEZWVwVXNlUmVmZXJlbmNpbmcoc3RhdGljX2Nhc3Q8U1ZHVXNlRWxl
bWVudCo+KHRhcmdldCksIHRhcmdldEluc3RhbmNlLCBmb3VuZFByb2JsZW0pOworCiAgICAgLy8g
QSBnZW5lcmFsIGRlc2NyaXB0aW9uIGZyb20gdGhlIFNWRyBzcGVjLCBkZXNjcmliaW5nIHdoYXQg
YnVpbGRJbnN0YW5jZVRyZWUoKSBhY3R1YWxseSBkb2VzLgogICAgIC8vCiAgICAgLy8gU3BlYzog
SWYgdGhlICd1c2UnIGVsZW1lbnQgcmVmZXJlbmNlcyBhICdnJyB3aGljaCBjb250YWlucyB0d28g
J3JlY3QnIGVsZW1lbnRzLCB0aGVuIHRoZSBpbnN0YW5jZSB0cmVlCkBAIC03MDYsMTEgKzcxMSw2
IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6YnVpbGRJbnN0YW5jZVRyZWUoU1ZHRWxlbWVudCogdGFy
Z2V0LCBTVkdFbGVtZW50SW5zdGFuY2UqIHRhCiAgICAgICAgIC8vIEVudGVyIHJlY3Vyc2lvbiwg
YXBwZW5kaW5nIG5ldyBpbnN0YW5jZSB0cmVlIG5vZGVzIHRvIHRoZSAiaW5zdGFuY2UiIG9iamVj
dC4KICAgICAgICAgYnVpbGRJbnN0YW5jZVRyZWUoZWxlbWVudCwgaW5zdGFuY2VQdHIsIGZvdW5k
UHJvYmxlbSk7CiAgICAgfQotCi0gICAgLy8gU3BlYzogSWYgdGhlIHJlZmVyZW5jZWQgb2JqZWN0
IGlzIGl0c2VsZiBhICd1c2UnLCBvciBpZiB0aGVyZSBhcmUgJ3VzZScgc3ViZWxlbWVudHMgd2l0
aGluIHRoZSByZWZlcmVuY2VkCi0gICAgLy8gb2JqZWN0LCB0aGUgaW5zdGFuY2UgdHJlZSB3aWxs
IGNvbnRhaW4gcmVjdXJzaXZlIGV4cGFuc2lvbiBvZiB0aGUgaW5kaXJlY3QgcmVmZXJlbmNlcyB0
byBmb3JtIGEgY29tcGxldGUgdHJlZS4KLSAgICBpZiAodGFyZ2V0LT5oYXNUYWdOYW1lKFNWR05h
bWVzOjp1c2VUYWcpKQotICAgICAgICBoYW5kbGVEZWVwVXNlUmVmZXJlbmNpbmcoc3RhdGljX2Nh
c3Q8U1ZHVXNlRWxlbWVudCo+KHRhcmdldCksIHRhcmdldEluc3RhbmNlLCBmb3VuZFByb2JsZW0p
OwogfQogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6OmhhbmRsZURlZXBVc2VSZWZlcmVuY2luZyhTVkdV
c2VFbGVtZW50KiB1c2UsIFNWR0VsZW1lbnRJbnN0YW5jZSogdGFyZ2V0SW5zdGFuY2UsIGJvb2wm
IGZvdW5kUHJvYmxlbSkKLS0gCjEuNy4wLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77862</attachid>
            <date>2011-01-03 18:20:50 -0800</date>
            <delta_ts>2011-01-05 00:16:55 -0800</delta_ts>
            <desc>Revised patch version 2</desc>
            <filename>0001-2011-01-03-Leo-Yang-leo.yang-torchmobile.com.cn.patch</filename>
            <type>text/plain</type>
            <size>5475</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSA0MGU2NWU0OTM1ODUyMTAwNTY0NzZlOWYzMWNhYWUwNTlmNzAyZmI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBUdWUsIDI4IERlYyAyMDEwIDEwOjE0OjM1ICswODAwClN1YmplY3Q6IFtQQVRDSF0g
MjAxMS0wMS0wMyAgTGVvIFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBNYWxmb3JtZWQgU1ZHIGNh
dXNlcyBjcmFzaCBpbiB1cGRhdGVDb250YWluZXJPZmZzZXQKICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2MTAKCiAgICAgICAgV2Ugc2hvdWxkIGNoZWNr
IHJlY3Vyc2l2ZSA8dXNlPiBhdCB0aGUgYmVnaW5pbmcgb2YKICAgICAgICBXZWJDb3JlOjpTVkdV
c2VFbGVtZW50OjpidWlsZEluc3RhbmNlVHJlZSBpbnN0ZWFkCiAgICAgICAgb2YgYXQgdGhlIGVu
ZCBvZiBpdCBiZWNhdXNlIHRoZSB0YXJnZXQgZWxlbWVudCdzCiAgICAgICAgY2hpbGRyZW4gbWF5
IGNhdXNlIGluZmluaXRlIHJlY3Vyc2l2ZSA8dXNlPi4KCiAgICAgICAgVGVzdDogc3ZnL2N1c3Rv
bS9yZWN1cnNpdmUtdXNlLnN2ZwoKICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKICAg
ICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6YnVpbGRJbnN0YW5jZVRyZWUpOgogICAgICAg
ICogc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAgICAg
KiBzdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysrKysrKysrKysr
CiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0ZWQudHh0IHwgICAg
MSArCiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnICAgICAgICAgIHwg
ICAxNSArKysrKysrKysrKysrKysKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE3ICsrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKysrKy0tLS0tCiA1IGZp
bGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4cGVjdGVkLnR4
dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVz
ZS5zdmcKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMmEyZDNiOS4uZjE3OTgxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDExLTAxLTAzICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWxmb3JtZWQgU1ZH
IGNhdXNlcyBjcmFzaCBpbiB1cGRhdGVDb250YWluZXJPZmZzZXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NjEwCisKKyAgICAgICAgVGVzdCBjYXNl
IGZvciByZWN1cnNpdmUgc3ZnIDx1c2U+LgorICAgICAgICBUaGlzIHRlc3QgY2FzZSBwYXNzZXMg
aWYgbm8gY3Jhc2ggb2NjdXJzLgorCisgICAgICAgICogc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNl
LnN2ZzogQWRkZWQuCisKIDIwMTEtMDEtMDMgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgQ2hyb21pdW0gdGVzdCBleHBlY3RhdGlv
biB1cGRhdGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzgxODMwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTIHdpdGhvdXQgY3Jhc2guCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnIGIvTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lNjEyMGE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9yZWN1cnNpdmUtdXNlLnN2ZwpAQCAtMCwwICsxLDE1IEBACis8c3ZnIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGxpbmsiPgorPGRlZnM+CisgICAgPHBvbHlnb24gaWQ9InB0IiBwb2ludHM9Ii0xLDAgMCwtMC41
IDEsMCIvPgorICAgIDxnIGlkPSJ1Ij4KKyAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcHQiPgor
ICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiN1Ii8+CisgICAgICAgIDwvdXNlPgorICAgIDwvZz4K
KzwvZGVmcz4KKzx0ZXh0PlBBU1Mgd2l0aG91dCBjcmFzaC48L3RleHQ+Cis8c2NyaXB0PgorICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY1NzQyZWIuLmU5MmI3YzAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTEtMDEtMDMgIExlbyBZYW5nICA8bGVvLnlhbmdAdG9yY2htb2Jp
bGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1hbGZvcm1lZCBTVkcgY2F1c2VzIGNyYXNoIGluIHVwZGF0ZUNvbnRhaW5lck9mZnNldAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2MTAKKwor
ICAgICAgICBXZSBzaG91bGQgY2hlY2sgcmVjdXJzaXZlIDx1c2U+IGF0IHRoZSBiZWdpbmluZyBv
ZgorICAgICAgICBXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWlsZEluc3RhbmNlVHJlZSBpbnN0
ZWFkCisgICAgICAgIG9mIGF0IHRoZSBlbmQgb2YgaXQgYmVjYXVzZSB0aGUgdGFyZ2V0IGVsZW1l
bnQncworICAgICAgICBjaGlsZHJlbiBtYXkgY2F1c2UgaW5maW5pdGUgcmVjdXJzaXZlIDx1c2U+
LgorCisgICAgICAgIFRlc3Q6IHN2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS5zdmcKKworICAgICAg
ICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1l
bnQ6OmJ1aWxkSW5zdGFuY2VUcmVlKToKKwogMjAxMS0wMS0wMyAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmNwcAppbmRleCA0ZjIzZjQ2Li5iZjFjMDg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApA
QCAtNjgyLDYgKzY4MiwxMSBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmJ1aWxkSW5zdGFuY2VUcmVl
KFNWR0VsZW1lbnQqIHRhcmdldCwgU1ZHRWxlbWVudEluc3RhbmNlKiB0YQogICAgIEFTU0VSVCh0
YXJnZXQpOwogICAgIEFTU0VSVCh0YXJnZXRJbnN0YW5jZSk7CiAKKyAgICAvLyBTcGVjOiBJZiB0
aGUgcmVmZXJlbmNlZCBvYmplY3QgaXMgaXRzZWxmIGEgJ3VzZScsIG9yIGlmIHRoZXJlIGFyZSAn
dXNlJyBzdWJlbGVtZW50cyB3aXRoaW4gdGhlIHJlZmVyZW5jZWQKKyAgICAvLyBvYmplY3QsIHRo
ZSBpbnN0YW5jZSB0cmVlIHdpbGwgY29udGFpbiByZWN1cnNpdmUgZXhwYW5zaW9uIG9mIHRoZSBp
bmRpcmVjdCByZWZlcmVuY2VzIHRvIGZvcm0gYSBjb21wbGV0ZSB0cmVlLgorICAgIGlmICh0YXJn
ZXQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnVzZVRhZykpCisgICAgICAgIGhhbmRsZURlZXBVc2VS
ZWZlcmVuY2luZyhzdGF0aWNfY2FzdDxTVkdVc2VFbGVtZW50Kj4odGFyZ2V0KSwgdGFyZ2V0SW5z
dGFuY2UsIGZvdW5kUHJvYmxlbSk7CisKICAgICAvLyBBIGdlbmVyYWwgZGVzY3JpcHRpb24gZnJv
bSB0aGUgU1ZHIHNwZWMsIGRlc2NyaWJpbmcgd2hhdCBidWlsZEluc3RhbmNlVHJlZSgpIGFjdHVh
bGx5IGRvZXMuCiAgICAgLy8KICAgICAvLyBTcGVjOiBJZiB0aGUgJ3VzZScgZWxlbWVudCByZWZl
cmVuY2VzIGEgJ2cnIHdoaWNoIGNvbnRhaW5zIHR3byAncmVjdCcgZWxlbWVudHMsIHRoZW4gdGhl
IGluc3RhbmNlIHRyZWUKQEAgLTcwNiwxMSArNzExLDYgQEAgdm9pZCBTVkdVc2VFbGVtZW50Ojpi
dWlsZEluc3RhbmNlVHJlZShTVkdFbGVtZW50KiB0YXJnZXQsIFNWR0VsZW1lbnRJbnN0YW5jZSog
dGEKICAgICAgICAgLy8gRW50ZXIgcmVjdXJzaW9uLCBhcHBlbmRpbmcgbmV3IGluc3RhbmNlIHRy
ZWUgbm9kZXMgdG8gdGhlICJpbnN0YW5jZSIgb2JqZWN0LgogICAgICAgICBidWlsZEluc3RhbmNl
VHJlZShlbGVtZW50LCBpbnN0YW5jZVB0ciwgZm91bmRQcm9ibGVtKTsKICAgICB9Ci0KLSAgICAv
LyBTcGVjOiBJZiB0aGUgcmVmZXJlbmNlZCBvYmplY3QgaXMgaXRzZWxmIGEgJ3VzZScsIG9yIGlm
IHRoZXJlIGFyZSAndXNlJyBzdWJlbGVtZW50cyB3aXRoaW4gdGhlIHJlZmVyZW5jZWQKLSAgICAv
LyBvYmplY3QsIHRoZSBpbnN0YW5jZSB0cmVlIHdpbGwgY29udGFpbiByZWN1cnNpdmUgZXhwYW5z
aW9uIG9mIHRoZSBpbmRpcmVjdCByZWZlcmVuY2VzIHRvIGZvcm0gYSBjb21wbGV0ZSB0cmVlLgot
ICAgIGlmICh0YXJnZXQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnVzZVRhZykpCi0gICAgICAgIGhh
bmRsZURlZXBVc2VSZWZlcmVuY2luZyhzdGF0aWNfY2FzdDxTVkdVc2VFbGVtZW50Kj4odGFyZ2V0
KSwgdGFyZ2V0SW5zdGFuY2UsIGZvdW5kUHJvYmxlbSk7CiB9CiAKIHZvaWQgU1ZHVXNlRWxlbWVu
dDo6aGFuZGxlRGVlcFVzZVJlZmVyZW5jaW5nKFNWR1VzZUVsZW1lbnQqIHVzZSwgU1ZHRWxlbWVu
dEluc3RhbmNlKiB0YXJnZXRJbnN0YW5jZSwgYm9vbCYgZm91bmRQcm9ibGVtKQotLSAKMS43LjAu
NAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77978</attachid>
            <date>2011-01-05 00:16:55 -0800</date>
            <delta_ts>2011-01-05 00:43:04 -0800</delta_ts>
            <desc>Revised patch version 3</desc>
            <filename>0001-2011-01-04-Leo-Yang-leo.yang-torchmobile.com.cn.patch</filename>
            <type>text/plain</type>
            <size>9014</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSBiZjE5ODk4ZDE2NDAwZmYwNzk4YzA2YTBlNzRlMmY1NmRkYzdhM2IwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBXZWQsIDUgSmFuIDIwMTEgMTU6Mzk6NDYgKzA4MDAKU3ViamVjdDogW1BBVENIXSAy
MDExLTAxLTA0ICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIE1hbGZvcm1lZCBTVkcgY2F1
c2VzIGNyYXNoIGluIHVwZGF0ZUNvbnRhaW5lck9mZnNldAogICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDYxMAoKICAgICAgICBXZSBzaG91bGQgY2hlY2sg
cmVjdXJzaXZlIDx1c2U+IGF0IHRoZSBiZWdpbmluZyBvZgogICAgICAgIFdlYkNvcmU6OlNWR1Vz
ZUVsZW1lbnQ6OmJ1aWxkSW5zdGFuY2VUcmVlIGluc3RlYWQKICAgICAgICBvZiBhdCB0aGUgZW5k
IG9mIGl0IGJlY2F1c2UgdGhlIHRhcmdldCBlbGVtZW50J3MKICAgICAgICBjaGlsZHJlbiBtYXkg
Y2F1c2UgaW5maW5pdGUgcmVjdXJzaXZlIDx1c2U+LgoKICAgICAgICBUZXN0OiBzdmcvY3VzdG9t
L3JlY3Vyc2l2ZS11c2Uuc3ZnCgogICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgogICAg
ICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWlsZEluc3RhbmNlVHJlZSk6CiAgICAgICAg
KiBzdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAq
IHN2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS5zdmc6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysrCiBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0ZWQudHh0IHwgICAgMSArCiBMYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnICAgICAgICAgIHwgICAxNSArKysr
KysKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE5ICsrKysrKysKIFdlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwICAgICAgICAgICAgICAg
ICAgICAgfCAgIDUzICsrKysrKysrKysrLS0tLS0tLS0tLQogV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwg
NzYgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS5zdmcKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMTAxNzdkYy4uZjBiMTM0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTAxLTA0ICBM
ZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWxmb3JtZWQgU1ZHIGNhdXNlcyBjcmFz
aCBpbiB1cGRhdGVDb250YWluZXJPZmZzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ0NjEwCisKKyAgICAgICAgVGVzdCBjYXNlIGZvciByZWN1cnNp
dmUgc3ZnIDx1c2U+LgorICAgICAgICBUaGlzIHRlc3QgY2FzZSBwYXNzZXMgaWYgbm8gY3Jhc2gg
b2NjdXJzLgorCisgICAgICAgICogc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLnN2ZzogQWRkZWQu
CisKIDIwMTEtMDEtMDQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb24gdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZjM4MTgzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAor
UEFTUyB3aXRob3V0IGNyYXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9y
ZWN1cnNpdmUtdXNlLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS5z
dmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRiYmFjMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS5zdmcKQEAgLTAs
MCArMSwxNSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5z
OnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKzxkZWZzPgorICAgIDxwb2x5
Z29uIGlkPSJwdCIgcG9pbnRzPSItMSwwIDAsLTAuNSAxLDAiLz4KKyAgICA8ZyBpZD0idSI+Cisg
ICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3B0Ij4KKyAgICAgICAgPHVzZSB4bGluazpocmVmPSIj
dSIvPgorICAgICAgICA8L3VzZT4KKyAgICA8L2c+Cis8L2RlZnM+Cis8dGV4dCB4PSIxMCIgeT0g
IjMwIj5QQVNTIHdpdGhvdXQgY3Jhc2guPC90ZXh0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDEyY2M1Li45N2Y2MTUzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDExLTAxLTA0ICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWxmb3Jt
ZWQgU1ZHIGNhdXNlcyBjcmFzaCBpbiB1cGRhdGVDb250YWluZXJPZmZzZXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NjEwCisKKyAgICAgICAgV2Ug
c2hvdWxkIGNoZWNrIHJlY3Vyc2l2ZSA8dXNlPiBhdCB0aGUgYmVnaW5pbmcgb2YKKyAgICAgICAg
V2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6YnVpbGRJbnN0YW5jZVRyZWUgaW5zdGVhZAorICAgICAg
ICBvZiBhdCB0aGUgZW5kIG9mIGl0IGJlY2F1c2UgdGhlIHRhcmdldCBlbGVtZW50J3MKKyAgICAg
ICAgY2hpbGRyZW4gbWF5IGNhdXNlIGluZmluaXRlIHJlY3Vyc2l2ZSA8dXNlPi4KKworICAgICAg
ICBUZXN0OiBzdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnCisKKyAgICAgICAgKiBzdmcvU1ZH
VXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWlsZElu
c3RhbmNlVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpoYXNDeWNsZVVz
ZVJlZmVyZW5jaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5oOgorCiAyMDExLTAx
LTA0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzQ5OTIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4
IDRmMjNmNDYuLjAwMzcxMDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
Y3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0yLDYgKzIsNyBAQAog
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMDktMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMSBUb3JjaCBNb2JpbGUgKEJlaWppbmcpIENvLiBMdGQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTY4Miw2ICs2ODMsMTYg
QEAgdm9pZCBTVkdVc2VFbGVtZW50OjpidWlsZEluc3RhbmNlVHJlZShTVkdFbGVtZW50KiB0YXJn
ZXQsIFNWR0VsZW1lbnRJbnN0YW5jZSogdGEKICAgICBBU1NFUlQodGFyZ2V0KTsKICAgICBBU1NF
UlQodGFyZ2V0SW5zdGFuY2UpOwogCisgICAgLy8gU3BlYzogSWYgdGhlIHJlZmVyZW5jZWQgb2Jq
ZWN0IGlzIGl0c2VsZiBhICd1c2UnLCBvciBpZiB0aGVyZSBhcmUgJ3VzZScgc3ViZWxlbWVudHMg
d2l0aGluIHRoZSByZWZlcmVuY2VkCisgICAgLy8gb2JqZWN0LCB0aGUgaW5zdGFuY2UgdHJlZSB3
aWxsIGNvbnRhaW4gcmVjdXJzaXZlIGV4cGFuc2lvbiBvZiB0aGUgaW5kaXJlY3QgcmVmZXJlbmNl
cyB0byBmb3JtIGEgY29tcGxldGUgdHJlZS4KKyAgICBib29sIHRhcmdldEhhc1VzZVRhZyA9IHRh
cmdldC0+aGFzVGFnTmFtZShTVkdOYW1lczo6dXNlVGFnKTsKKyAgICBTVkdFbGVtZW50KiBuZXdU
YXJnZXQgPSAwOworICAgIGlmICh0YXJnZXRIYXNVc2VUYWcpIHsKKyAgICAgICAgZm91bmRQcm9i
bGVtID0gaGFzQ3ljbGVVc2VSZWZlcmVuY2luZyhzdGF0aWNfY2FzdDxTVkdVc2VFbGVtZW50Kj4o
dGFyZ2V0KSwgdGFyZ2V0SW5zdGFuY2UsIG5ld1RhcmdldCk7CisgICAgICAgIGlmIChmb3VuZFBy
b2JsZW0pCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gQSBnZW5lcmFsIGRl
c2NyaXB0aW9uIGZyb20gdGhlIFNWRyBzcGVjLCBkZXNjcmliaW5nIHdoYXQgYnVpbGRJbnN0YW5j
ZVRyZWUoKSBhY3R1YWxseSBkb2VzLgogICAgIC8vCiAgICAgLy8gU3BlYzogSWYgdGhlICd1c2Un
IGVsZW1lbnQgcmVmZXJlbmNlcyBhICdnJyB3aGljaCBjb250YWlucyB0d28gJ3JlY3QnIGVsZW1l
bnRzLCB0aGVuIHRoZSBpbnN0YW5jZSB0cmVlCkBAIC03MDcsNTAgKzcxOCw0MCBAQCB2b2lkIFNW
R1VzZUVsZW1lbnQ6OmJ1aWxkSW5zdGFuY2VUcmVlKFNWR0VsZW1lbnQqIHRhcmdldCwgU1ZHRWxl
bWVudEluc3RhbmNlKiB0YQogICAgICAgICBidWlsZEluc3RhbmNlVHJlZShlbGVtZW50LCBpbnN0
YW5jZVB0ciwgZm91bmRQcm9ibGVtKTsKICAgICB9CiAKLSAgICAvLyBTcGVjOiBJZiB0aGUgcmVm
ZXJlbmNlZCBvYmplY3QgaXMgaXRzZWxmIGEgJ3VzZScsIG9yIGlmIHRoZXJlIGFyZSAndXNlJyBz
dWJlbGVtZW50cyB3aXRoaW4gdGhlIHJlZmVyZW5jZWQKLSAgICAvLyBvYmplY3QsIHRoZSBpbnN0
YW5jZSB0cmVlIHdpbGwgY29udGFpbiByZWN1cnNpdmUgZXhwYW5zaW9uIG9mIHRoZSBpbmRpcmVj
dCByZWZlcmVuY2VzIHRvIGZvcm0gYSBjb21wbGV0ZSB0cmVlLgotICAgIGlmICh0YXJnZXQtPmhh
c1RhZ05hbWUoU1ZHTmFtZXM6OnVzZVRhZykpCi0gICAgICAgIGhhbmRsZURlZXBVc2VSZWZlcmVu
Y2luZyhzdGF0aWNfY2FzdDxTVkdVc2VFbGVtZW50Kj4odGFyZ2V0KSwgdGFyZ2V0SW5zdGFuY2Us
IGZvdW5kUHJvYmxlbSk7CisgICAgaWYgKHRhcmdldEhhc1VzZVRhZyAmJiBuZXdUYXJnZXQpIHsK
KyAgICAgICAgUmVmUHRyPFNWR0VsZW1lbnRJbnN0YW5jZT4gbmV3SW5zdGFuY2UgPSBTVkdFbGVt
ZW50SW5zdGFuY2U6OmNyZWF0ZSh0aGlzLCBuZXdUYXJnZXQpOworICAgICAgICBTVkdFbGVtZW50
SW5zdGFuY2UqIG5ld0luc3RhbmNlUHRyID0gbmV3SW5zdGFuY2UuZ2V0KCk7CisgICAgICAgIHRh
cmdldEluc3RhbmNlLT5hcHBlbmRDaGlsZChuZXdJbnN0YW5jZS5yZWxlYXNlKCkpOworICAgICAg
ICBidWlsZEluc3RhbmNlVHJlZShuZXdUYXJnZXQsIG5ld0luc3RhbmNlUHRyLCBmb3VuZFByb2Js
ZW0pOworICAgIH0KIH0KIAotdm9pZCBTVkdVc2VFbGVtZW50OjpoYW5kbGVEZWVwVXNlUmVmZXJl
bmNpbmcoU1ZHVXNlRWxlbWVudCogdXNlLCBTVkdFbGVtZW50SW5zdGFuY2UqIHRhcmdldEluc3Rh
bmNlLCBib29sJiBmb3VuZFByb2JsZW0pCitib29sIFNWR1VzZUVsZW1lbnQ6Omhhc0N5Y2xlVXNl
UmVmZXJlbmNpbmcoU1ZHVXNlRWxlbWVudCogdXNlLCBTVkdFbGVtZW50SW5zdGFuY2UqIHRhcmdl
dEluc3RhbmNlLCBTVkdFbGVtZW50KiYgbmV3VGFyZ2V0KQogewogICAgIFN0cmluZyBpZCA9IFNW
R1VSSVJlZmVyZW5jZTo6Z2V0VGFyZ2V0KHVzZS0+aHJlZigpKTsKICAgICBFbGVtZW50KiB0YXJn
ZXRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoaWQpOyAKLSAgICBTVkdFbGVt
ZW50KiB0YXJnZXQgPSAwOworICAgIG5ld1RhcmdldCA9IDA7CiAgICAgaWYgKHRhcmdldEVsZW1l
bnQgJiYgdGFyZ2V0RWxlbWVudC0+aXNTVkdFbGVtZW50KCkpCi0gICAgICAgIHRhcmdldCA9IHN0
YXRpY19jYXN0PFNWR0VsZW1lbnQqPih0YXJnZXRFbGVtZW50KTsKKyAgICAgICAgbmV3VGFyZ2V0
ID0gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KHRhcmdldEVsZW1lbnQpOwogCi0gICAgaWYgKCF0
YXJnZXQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEN5Y2xlIGRldGVjdGlvbiBmaXJzdCEK
LSAgICBmb3VuZFByb2JsZW0gPSAodGFyZ2V0ID09IHRoaXMpOworICAgIGlmICghbmV3VGFyZ2V0
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBTaG9ydGN1dCBmb3Igc2VsZi1yZWZl
cmVuY2VzCi0gICAgaWYgKGZvdW5kUHJvYmxlbSkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChu
ZXdUYXJnZXQgPT0gdGhpcykKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBTVkdFbGVtZW50
SW5zdGFuY2UqIGluc3RhbmNlID0gdGFyZ2V0SW5zdGFuY2UtPnBhcmVudE5vZGUoKTsKICAgICB3
aGlsZSAoaW5zdGFuY2UpIHsKICAgICAgICAgU1ZHRWxlbWVudCogZWxlbWVudCA9IGluc3RhbmNl
LT5jb3JyZXNwb25kaW5nRWxlbWVudCgpOwogCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBwcm9iYWJseSBiZSB1c2luZyBnZXRJZEF0dHJpYnV0ZSBpbnN0ZWFkIG9mIGlkRm9yU3R5bGVS
ZXNvbHV0aW9uLgotICAgICAgICBpZiAoZWxlbWVudC0+aGFzSUQoKSAmJiBlbGVtZW50LT5pZEZv
clN0eWxlUmVzb2x1dGlvbigpID09IGlkKSB7Ci0gICAgICAgICAgICBmb3VuZFByb2JsZW0gPSB0
cnVlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIGlmIChlbGVtZW50
LT5oYXNJRCgpICYmIGVsZW1lbnQtPmlkRm9yU3R5bGVSZXNvbHV0aW9uKCkgPT0gaWQpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICAgICAgaW5zdGFuY2UgPSBpbnN0YW5jZS0+
cGFyZW50Tm9kZSgpOwogICAgIH0KLQotICAgIC8vIENyZWF0ZSBhbiBpbnN0YW5jZSBvYmplY3Qs
IGV2ZW4gaWYgd2UncmUgZGVhbGluZyB3aXRoIGEgY3ljbGUKLSAgICBSZWZQdHI8U1ZHRWxlbWVu
dEluc3RhbmNlPiBuZXdJbnN0YW5jZSA9IFNWR0VsZW1lbnRJbnN0YW5jZTo6Y3JlYXRlKHRoaXMs
IHRhcmdldCk7Ci0gICAgU1ZHRWxlbWVudEluc3RhbmNlKiBuZXdJbnN0YW5jZVB0ciA9IG5ld0lu
c3RhbmNlLmdldCgpOwotICAgIHRhcmdldEluc3RhbmNlLT5hcHBlbmRDaGlsZChuZXdJbnN0YW5j
ZS5yZWxlYXNlKCkpOwotCi0gICAgLy8gRXZlbnR1YWxseSBlbnRlciByZWN1cnNpb24gdG8gYnVp
bGQgU1ZHRWxlbWVudEluc3RhbmNlIG9iamVjdHMgZm9yIHRoZSBzdWItdHJlZSBjaGlsZHJlbgot
ICAgIGJ1aWxkSW5zdGFuY2VUcmVlKHRhcmdldCwgbmV3SW5zdGFuY2VQdHIsIGZvdW5kUHJvYmxl
bSk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6OnJlbW92ZURp
c2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKE5vZGUqIHN1YnRyZWUpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmggYi9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgK
aW5kZXggOWI3YTBiYy4uYzEwOTVlZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5oCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaApAQCAtODMsNyArODMsNyBA
QCBwcml2YXRlOgogCiAgICAgLy8gSW5zdGFuY2UgdHJlZSBoYW5kbGluZwogICAgIHZvaWQgYnVp
bGRJbnN0YW5jZVRyZWUoU1ZHRWxlbWVudCogdGFyZ2V0LCBTVkdFbGVtZW50SW5zdGFuY2UqIHRh
cmdldEluc3RhbmNlLCBib29sJiBmb3VuZEN5Y2xlKTsKLSAgICB2b2lkIGhhbmRsZURlZXBVc2VS
ZWZlcmVuY2luZyhTVkdVc2VFbGVtZW50KiB1c2UsIFNWR0VsZW1lbnRJbnN0YW5jZSogdGFyZ2V0
SW5zdGFuY2UsIGJvb2wmIGZvdW5kQ3ljbGUpOworICAgIGJvb2wgaGFzQ3ljbGVVc2VSZWZlcmVu
Y2luZyhTVkdVc2VFbGVtZW50KiwgU1ZHRWxlbWVudEluc3RhbmNlKiB0YXJnZXRJbnN0YW5jZSwg
U1ZHRWxlbWVudComIG5ld1RhcmdldCk7CiAKICAgICAvLyBTaGFkb3cgdHJlZSBoYW5kbGluZwog
ICAgIHZvaWQgYnVpbGRTaGFkb3dUcmVlKFNWR1NoYWRvd1RyZWVSb290RWxlbWVudCosIFNWR0Vs
ZW1lbnQqIHRhcmdldCwgU1ZHRWxlbWVudEluc3RhbmNlKiB0YXJnZXRJbnN0YW5jZSk7Ci0tIAox
LjcuMC40Cgo=
</data>
<flag name="review"
          id="69219"
          type_id="1"
          status="-"
          setter="krit"
    />
    <flag name="commit-queue"
          id="69220"
          type_id="3"
          status="-"
          setter="krit"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77983</attachid>
            <date>2011-01-05 01:38:54 -0800</date>
            <delta_ts>2011-01-05 04:11:34 -0800</delta_ts>
            <desc>Revised patch version 4</desc>
            <filename>0001-2011-01-04-Leo-Yang-leo.yang-torchmobile.com.cn.patch</filename>
            <type>text/plain</type>
            <size>9010</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSA2MmVmODQwZjBlMjU0M2NmNjBiYTliODBmNzllOWI3YWJkNDI2NGM4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBXZWQsIDUgSmFuIDIwMTEgMTU6Mzk6NDYgKzA4MDAKU3ViamVjdDogW1BBVENIXSAy
MDExLTAxLTA0ICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIE1hbGZvcm1lZCBTVkcgY2F1
c2VzIGNyYXNoIGluIHVwZGF0ZUNvbnRhaW5lck9mZnNldAogICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDYxMAoKICAgICAgICBXZSBzaG91bGQgY2hlY2sg
cmVjdXJzaXZlIDx1c2U+IGF0IHRoZSBiZWdpbmluZyBvZgogICAgICAgIFdlYkNvcmU6OlNWR1Vz
ZUVsZW1lbnQ6OmJ1aWxkSW5zdGFuY2VUcmVlIGluc3RlYWQKICAgICAgICBvZiBhdCB0aGUgZW5k
IG9mIGl0IGJlY2F1c2UgdGhlIHRhcmdldCBlbGVtZW50J3MKICAgICAgICBjaGlsZHJlbiBtYXkg
Y2F1c2UgaW5maW5pdGUgcmVjdXJzaXZlIDx1c2U+LgoKICAgICAgICBUZXN0OiBzdmcvY3VzdG9t
L3JlY3Vyc2l2ZS11c2Uuc3ZnCgogICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgogICAg
ICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWlsZEluc3RhbmNlVHJlZSk6CiAgICAgICAg
KiBzdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAq
IHN2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS5zdmc6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysrCiBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2UtZXhwZWN0ZWQudHh0IHwgICAgMSArCiBMYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnICAgICAgICAgIHwgICAxNSArKysr
KysKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE5ICsrKysrKysKIFdlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwICAgICAgICAgICAgICAg
ICAgICAgfCAgIDU0ICsrKysrKysrKysrLS0tLS0tLS0tLQogV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwg
NzcgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS5zdmcKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMTAxNzdkYy4uZjBiMTM0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTAxLTA0ICBM
ZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWxmb3JtZWQgU1ZHIGNhdXNlcyBjcmFz
aCBpbiB1cGRhdGVDb250YWluZXJPZmZzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ0NjEwCisKKyAgICAgICAgVGVzdCBjYXNlIGZvciByZWN1cnNp
dmUgc3ZnIDx1c2U+LgorICAgICAgICBUaGlzIHRlc3QgY2FzZSBwYXNzZXMgaWYgbm8gY3Jhc2gg
b2NjdXJzLgorCisgICAgICAgICogc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLnN2ZzogQWRkZWQu
CisKIDIwMTEtMDEtMDQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb24gdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWN1cnNpdmUtdXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZjM4MTgzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAor
UEFTUyB3aXRob3V0IGNyYXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9y
ZWN1cnNpdmUtdXNlLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS5z
dmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRiYmFjMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVjdXJzaXZlLXVzZS5zdmcKQEAgLTAs
MCArMSwxNSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5z
OnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKzxkZWZzPgorICAgIDxwb2x5
Z29uIGlkPSJwdCIgcG9pbnRzPSItMSwwIDAsLTAuNSAxLDAiLz4KKyAgICA8ZyBpZD0idSI+Cisg
ICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3B0Ij4KKyAgICAgICAgPHVzZSB4bGluazpocmVmPSIj
dSIvPgorICAgICAgICA8L3VzZT4KKyAgICA8L2c+Cis8L2RlZnM+Cis8dGV4dCB4PSIxMCIgeT0g
IjMwIj5QQVNTIHdpdGhvdXQgY3Jhc2guPC90ZXh0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDEyY2M1Li45N2Y2MTUzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDExLTAxLTA0ICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWxmb3Jt
ZWQgU1ZHIGNhdXNlcyBjcmFzaCBpbiB1cGRhdGVDb250YWluZXJPZmZzZXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NjEwCisKKyAgICAgICAgV2Ug
c2hvdWxkIGNoZWNrIHJlY3Vyc2l2ZSA8dXNlPiBhdCB0aGUgYmVnaW5pbmcgb2YKKyAgICAgICAg
V2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6YnVpbGRJbnN0YW5jZVRyZWUgaW5zdGVhZAorICAgICAg
ICBvZiBhdCB0aGUgZW5kIG9mIGl0IGJlY2F1c2UgdGhlIHRhcmdldCBlbGVtZW50J3MKKyAgICAg
ICAgY2hpbGRyZW4gbWF5IGNhdXNlIGluZmluaXRlIHJlY3Vyc2l2ZSA8dXNlPi4KKworICAgICAg
ICBUZXN0OiBzdmcvY3VzdG9tL3JlY3Vyc2l2ZS11c2Uuc3ZnCisKKyAgICAgICAgKiBzdmcvU1ZH
VXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWlsZElu
c3RhbmNlVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpoYXNDeWNsZVVz
ZVJlZmVyZW5jaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5oOgorCiAyMDExLTAx
LTA0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzQ5OTIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4
IDRmMjNmNDYuLjU4OWE1NjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
Y3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0yLDYgKzIsNyBAQAog
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMDktMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMSBUb3JjaCBNb2JpbGUgKEJlaWppbmcpIENvLiBMdGQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTY4Miw2ICs2ODMsMTYg
QEAgdm9pZCBTVkdVc2VFbGVtZW50OjpidWlsZEluc3RhbmNlVHJlZShTVkdFbGVtZW50KiB0YXJn
ZXQsIFNWR0VsZW1lbnRJbnN0YW5jZSogdGEKICAgICBBU1NFUlQodGFyZ2V0KTsKICAgICBBU1NF
UlQodGFyZ2V0SW5zdGFuY2UpOwogCisgICAgLy8gU3BlYzogSWYgdGhlIHJlZmVyZW5jZWQgb2Jq
ZWN0IGlzIGl0c2VsZiBhICd1c2UnLCBvciBpZiB0aGVyZSBhcmUgJ3VzZScgc3ViZWxlbWVudHMg
d2l0aGluIHRoZSByZWZlcmVuY2VkCisgICAgLy8gb2JqZWN0LCB0aGUgaW5zdGFuY2UgdHJlZSB3
aWxsIGNvbnRhaW4gcmVjdXJzaXZlIGV4cGFuc2lvbiBvZiB0aGUgaW5kaXJlY3QgcmVmZXJlbmNl
cyB0byBmb3JtIGEgY29tcGxldGUgdHJlZS4KKyAgICBib29sIHRhcmdldEhhc1VzZVRhZyA9IHRh
cmdldC0+aGFzVGFnTmFtZShTVkdOYW1lczo6dXNlVGFnKTsKKyAgICBTVkdFbGVtZW50KiBuZXdU
YXJnZXQgPSAwOworICAgIGlmICh0YXJnZXRIYXNVc2VUYWcpIHsKKyAgICAgICAgZm91bmRQcm9i
bGVtID0gaGFzQ3ljbGVVc2VSZWZlcmVuY2luZyhzdGF0aWNfY2FzdDxTVkdVc2VFbGVtZW50Kj4o
dGFyZ2V0KSwgdGFyZ2V0SW5zdGFuY2UsIG5ld1RhcmdldCk7CisgICAgICAgIGlmIChmb3VuZFBy
b2JsZW0pCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gQSBnZW5lcmFsIGRl
c2NyaXB0aW9uIGZyb20gdGhlIFNWRyBzcGVjLCBkZXNjcmliaW5nIHdoYXQgYnVpbGRJbnN0YW5j
ZVRyZWUoKSBhY3R1YWxseSBkb2VzLgogICAgIC8vCiAgICAgLy8gU3BlYzogSWYgdGhlICd1c2Un
IGVsZW1lbnQgcmVmZXJlbmNlcyBhICdnJyB3aGljaCBjb250YWlucyB0d28gJ3JlY3QnIGVsZW1l
bnRzLCB0aGVuIHRoZSBpbnN0YW5jZSB0cmVlCkBAIC03MDcsNTAgKzcxOCw0MSBAQCB2b2lkIFNW
R1VzZUVsZW1lbnQ6OmJ1aWxkSW5zdGFuY2VUcmVlKFNWR0VsZW1lbnQqIHRhcmdldCwgU1ZHRWxl
bWVudEluc3RhbmNlKiB0YQogICAgICAgICBidWlsZEluc3RhbmNlVHJlZShlbGVtZW50LCBpbnN0
YW5jZVB0ciwgZm91bmRQcm9ibGVtKTsKICAgICB9CiAKLSAgICAvLyBTcGVjOiBJZiB0aGUgcmVm
ZXJlbmNlZCBvYmplY3QgaXMgaXRzZWxmIGEgJ3VzZScsIG9yIGlmIHRoZXJlIGFyZSAndXNlJyBz
dWJlbGVtZW50cyB3aXRoaW4gdGhlIHJlZmVyZW5jZWQKLSAgICAvLyBvYmplY3QsIHRoZSBpbnN0
YW5jZSB0cmVlIHdpbGwgY29udGFpbiByZWN1cnNpdmUgZXhwYW5zaW9uIG9mIHRoZSBpbmRpcmVj
dCByZWZlcmVuY2VzIHRvIGZvcm0gYSBjb21wbGV0ZSB0cmVlLgotICAgIGlmICh0YXJnZXQtPmhh
c1RhZ05hbWUoU1ZHTmFtZXM6OnVzZVRhZykpCi0gICAgICAgIGhhbmRsZURlZXBVc2VSZWZlcmVu
Y2luZyhzdGF0aWNfY2FzdDxTVkdVc2VFbGVtZW50Kj4odGFyZ2V0KSwgdGFyZ2V0SW5zdGFuY2Us
IGZvdW5kUHJvYmxlbSk7CisgICAgaWYgKCF0YXJnZXRIYXNVc2VUYWcgfHwgIW5ld1RhcmdldCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPFNWR0VsZW1lbnRJbnN0YW5jZT4gbmV3SW5z
dGFuY2UgPSBTVkdFbGVtZW50SW5zdGFuY2U6OmNyZWF0ZSh0aGlzLCBuZXdUYXJnZXQpOworICAg
IFNWR0VsZW1lbnRJbnN0YW5jZSogbmV3SW5zdGFuY2VQdHIgPSBuZXdJbnN0YW5jZS5nZXQoKTsK
KyAgICB0YXJnZXRJbnN0YW5jZS0+YXBwZW5kQ2hpbGQobmV3SW5zdGFuY2UucmVsZWFzZSgpKTsK
KyAgICBidWlsZEluc3RhbmNlVHJlZShuZXdUYXJnZXQsIG5ld0luc3RhbmNlUHRyLCBmb3VuZFBy
b2JsZW0pOwogfQogCi12b2lkIFNWR1VzZUVsZW1lbnQ6OmhhbmRsZURlZXBVc2VSZWZlcmVuY2lu
ZyhTVkdVc2VFbGVtZW50KiB1c2UsIFNWR0VsZW1lbnRJbnN0YW5jZSogdGFyZ2V0SW5zdGFuY2Us
IGJvb2wmIGZvdW5kUHJvYmxlbSkKK2Jvb2wgU1ZHVXNlRWxlbWVudDo6aGFzQ3ljbGVVc2VSZWZl
cmVuY2luZyhTVkdVc2VFbGVtZW50KiB1c2UsIFNWR0VsZW1lbnRJbnN0YW5jZSogdGFyZ2V0SW5z
dGFuY2UsIFNWR0VsZW1lbnQqJiBuZXdUYXJnZXQpCiB7CiAgICAgU3RyaW5nIGlkID0gU1ZHVVJJ
UmVmZXJlbmNlOjpnZXRUYXJnZXQodXNlLT5ocmVmKCkpOwogICAgIEVsZW1lbnQqIHRhcmdldEVs
ZW1lbnQgPSBkb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChpZCk7IAotICAgIFNWR0VsZW1lbnQq
IHRhcmdldCA9IDA7CisgICAgbmV3VGFyZ2V0ID0gMDsKICAgICBpZiAodGFyZ2V0RWxlbWVudCAm
JiB0YXJnZXRFbGVtZW50LT5pc1NWR0VsZW1lbnQoKSkKLSAgICAgICAgdGFyZ2V0ID0gc3RhdGlj
X2Nhc3Q8U1ZHRWxlbWVudCo+KHRhcmdldEVsZW1lbnQpOwotCi0gICAgaWYgKCF0YXJnZXQpCi0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgbmV3VGFyZ2V0ID0gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVu
dCo+KHRhcmdldEVsZW1lbnQpOwogCi0gICAgLy8gQ3ljbGUgZGV0ZWN0aW9uIGZpcnN0IQotICAg
IGZvdW5kUHJvYmxlbSA9ICh0YXJnZXQgPT0gdGhpcyk7CisgICAgaWYgKCFuZXdUYXJnZXQpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFNob3J0Y3V0IGZvciBzZWxmLXJlZmVyZW5j
ZXMKLSAgICBpZiAoZm91bmRQcm9ibGVtKQotICAgICAgICByZXR1cm47CisgICAgaWYgKG5ld1Rh
cmdldCA9PSB0aGlzKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFNWR0VsZW1lbnRJbnN0
YW5jZSogaW5zdGFuY2UgPSB0YXJnZXRJbnN0YW5jZS0+cGFyZW50Tm9kZSgpOwogICAgIHdoaWxl
IChpbnN0YW5jZSkgewogICAgICAgICBTVkdFbGVtZW50KiBlbGVtZW50ID0gaW5zdGFuY2UtPmNv
cnJlc3BvbmRpbmdFbGVtZW50KCk7CiAKICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHBy
b2JhYmx5IGJlIHVzaW5nIGdldElkQXR0cmlidXRlIGluc3RlYWQgb2YgaWRGb3JTdHlsZVJlc29s
dXRpb24uCi0gICAgICAgIGlmIChlbGVtZW50LT5oYXNJRCgpICYmIGVsZW1lbnQtPmlkRm9yU3R5
bGVSZXNvbHV0aW9uKCkgPT0gaWQpIHsKLSAgICAgICAgICAgIGZvdW5kUHJvYmxlbSA9IHRydWU7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGVsZW1lbnQtPmhh
c0lEKCkgJiYgZWxlbWVudC0+aWRGb3JTdHlsZVJlc29sdXRpb24oKSA9PSBpZCkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIAogICAgICAgICBpbnN0YW5jZSA9IGluc3RhbmNlLT5wYXJl
bnROb2RlKCk7CiAgICAgfQotCi0gICAgLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9iamVjdCwgZXZl
biBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBjeWNsZQotICAgIFJlZlB0cjxTVkdFbGVtZW50SW5z
dGFuY2U+IG5ld0luc3RhbmNlID0gU1ZHRWxlbWVudEluc3RhbmNlOjpjcmVhdGUodGhpcywgdGFy
Z2V0KTsKLSAgICBTVkdFbGVtZW50SW5zdGFuY2UqIG5ld0luc3RhbmNlUHRyID0gbmV3SW5zdGFu
Y2UuZ2V0KCk7Ci0gICAgdGFyZ2V0SW5zdGFuY2UtPmFwcGVuZENoaWxkKG5ld0luc3RhbmNlLnJl
bGVhc2UoKSk7Ci0KLSAgICAvLyBFdmVudHVhbGx5IGVudGVyIHJlY3Vyc2lvbiB0byBidWlsZCBT
VkdFbGVtZW50SW5zdGFuY2Ugb2JqZWN0cyBmb3IgdGhlIHN1Yi10cmVlIGNoaWxkcmVuCi0gICAg
YnVpbGRJbnN0YW5jZVRyZWUodGFyZ2V0LCBuZXdJbnN0YW5jZVB0ciwgZm91bmRQcm9ibGVtKTsK
KyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6cmVtb3ZlRGlzYWxs
b3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUoTm9kZSogc3VidHJlZSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAppbmRl
eCA5YjdhMGJjLi5jMTA5NWVkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmgKKysrIGIvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCkBAIC04Myw3ICs4Myw3IEBAIHBy
aXZhdGU6CiAKICAgICAvLyBJbnN0YW5jZSB0cmVlIGhhbmRsaW5nCiAgICAgdm9pZCBidWlsZElu
c3RhbmNlVHJlZShTVkdFbGVtZW50KiB0YXJnZXQsIFNWR0VsZW1lbnRJbnN0YW5jZSogdGFyZ2V0
SW5zdGFuY2UsIGJvb2wmIGZvdW5kQ3ljbGUpOwotICAgIHZvaWQgaGFuZGxlRGVlcFVzZVJlZmVy
ZW5jaW5nKFNWR1VzZUVsZW1lbnQqIHVzZSwgU1ZHRWxlbWVudEluc3RhbmNlKiB0YXJnZXRJbnN0
YW5jZSwgYm9vbCYgZm91bmRDeWNsZSk7CisgICAgYm9vbCBoYXNDeWNsZVVzZVJlZmVyZW5jaW5n
KFNWR1VzZUVsZW1lbnQqLCBTVkdFbGVtZW50SW5zdGFuY2UqIHRhcmdldEluc3RhbmNlLCBTVkdF
bGVtZW50KiYgbmV3VGFyZ2V0KTsKIAogICAgIC8vIFNoYWRvdyB0cmVlIGhhbmRsaW5nCiAgICAg
dm9pZCBidWlsZFNoYWRvd1RyZWUoU1ZHU2hhZG93VHJlZVJvb3RFbGVtZW50KiwgU1ZHRWxlbWVu
dCogdGFyZ2V0LCBTVkdFbGVtZW50SW5zdGFuY2UqIHRhcmdldEluc3RhbmNlKTsKLS0gCjEuNy4w
LjQKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>