<?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>75046</bug_id>
          
          <creation_ts>2011-12-21 15:00:32 -0800</creation_ts>
          <short_desc>[chromium] CCLayerSorter accidentally reverses order of some layers, affecting z-index/preserves3D behavior</short_desc>
          <delta_ts>2012-01-03 21:25:25 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Shawn Singh">shawnsingh</reporter>
          <assigned_to name="Shawn Singh">shawnsingh</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>gman</cc>
    
    <cc>jamesr</cc>
    
    <cc>ravi.kasibhatla</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>525665</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-12-21 15:00:32 -0800</bug_when>
    <thetext>CCLayerSorter performs &quot;topological sort&quot;, which enforces that nodes are ordered correctly only when there is a dependency between them.  Nodes that are not dependent on each other (explicitly or transitively) can be in any order.  In CCLayerSorter, when there are no explicit dependencies between two layers, we end up reversing the order of those layers (because we use removeLast() to get the next item efficiently).  But it turns out that ordering matters -- we should be preserving the ordering of layers that WebCore gave us when there is no other constraint on ordering of particular layers.

- The &quot;theoretically correct&quot; solution is to make these additional &quot;preserve ordering&quot; dependencies explicit in the topological sort.  However, this will mean that we always create O(n^2) edges for n nodes, which will hurt scalability of the implementation.

- The simpler solution, which I prefer, is simply to preserve the original ordering of the list of layers, when there are no explicit dependencies that require different ordering.  This can be done simply by using a FIFO queue instead of the current removeLast() stack-like behavior.

I&apos;ll proceed with the simpler solution unless someone finds a good reason to do the theoretically correct one =)

I already verified this will fix
  http://code.google.com/p/chromium/issues/detail?id=89955

It might also address
  http://code.google.com/p/chromium/issues/detail?id=99564
  http://code.google.com/p/chromium/issues/detail?id=102943
  http://code.google.com/p/chromium/issues/detail?id=102663</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525858</commentid>
    <comment_count>1</comment_count>
      <attachid>120246</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-12-21 17:17:02 -0800</bug_when>
    <thetext>Created attachment 120246
includes fix and appropriate unit test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525863</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-21 17:19:16 -0800</bug_when>
    <thetext>Does this fix the issues in the linked crbugs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525867</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-21 17:20:26 -0800</bug_when>
    <thetext>Attachment 120246 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Inform the scrolling coordinator when scrollbar layers come and go
Using index info to reconstruct a base tree...
&lt;stdin&gt;:474806: trailing whitespace.
        [Chromium] DatabaseTrackerChromium: iterating DatabaseSet races with Database disposal on worker thread 
&lt;stdin&gt;:474827: trailing whitespace.
        Nothing to test, just removing redundant code. Correct behavior tested by 
&lt;stdin&gt;:475346: trailing whitespace.
    
warning: 3 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 167528 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/chromium/test_expectations.txt
CONFLICT (content): Merge conflict in LayoutTests/platform/chromium/test_expectations.txt
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebCore/page/ScrollingCoordinator.h
CONFLICT (content): Merge conflict in Source/WebCore/page/ScrollingCoordinator.h
Auto-merging Source/WebCore/page/mac/ScrollingCoordinatorMac.mm
CONFLICT (content): Merge conflict in Source/WebCore/page/mac/ScrollingCoordinatorMac.mm
Auto-merging Source/WebCore/platform/ScrollView.cpp
Auto-merging Source/WebCore/rendering/RenderLayerCompositor.cpp
CONFLICT (content): Merge conflict in Source/WebCore/rendering/RenderLayerCompositor.cpp
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Auto-merging Tools/Scripts/build-webkit
Auto-merging Tools/Scripts/webkitdirs.pm
CONFLICT (content): Merge conflict in Tools/Scripts/webkitdirs.pm
Failed to merge in the changes.
Patch failed at 0001 Inform the scrolling coordinator when scrollbar layers come and go

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 158.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525884</commentid>
    <comment_count>4</comment_count>
      <attachid>120246</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-12-21 17:38:53 -0800</bug_when>
    <thetext>Comment on attachment 120246
includes fix and appropriate unit test

(In reply to comment #2)
&gt; Does this fix the issues in the linked crbugs?

It does fix it for http://code.google.com/p/chromium/issues/detail?id=89955

I&apos;ll check the other issues soon, and let you know.  Will also update to tip of tree and submit new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525897</commentid>
    <comment_count>5</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-12-21 18:08:46 -0800</bug_when>
    <thetext>Tested on osx, this patch does fix:
  http://code.google.com/p/chromium/issues/detail?id=89955
  http://code.google.com/p/chromium/issues/detail?id=99564

It does not fix:
  http://code.google.com/p/chromium/issues/detail?id=102943
  http://code.google.com/p/chromium/issues/detail?id=102663

From the problems I see on those two issues, it looks like those remaining two issues also need an additional bugfix separate from this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525902</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-21 18:13:05 -0800</bug_when>
    <thetext>Awesome news. When you get a new patch ready, I think this looks like a good thing for Vangelis to check over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525916</commentid>
    <comment_count>7</comment_count>
      <attachid>120255</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-12-21 18:31:32 -0800</bug_when>
    <thetext>Created attachment 120255
updated to tip of tree, removed one inconsistent comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525975</commentid>
    <comment_count>8</comment_count>
    <who name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</who>
    <bug_when>2011-12-21 21:28:28 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Awesome news. When you get a new patch ready, I think this looks like a good thing for Vangelis to check over.

I verified couple of other issues along with http://code.google.com/p/chromium/issues/detail?id=89955 which are related with preserve-3d property but they are not getting fixed with this patch.

I am attaching the sample html pages which are still reproducible with the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525977</commentid>
    <comment_count>9</comment_count>
      <attachid>120266</attachid>
    <who name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</who>
    <bug_when>2011-12-21 21:29:31 -0800</bug_when>
    <thetext>Created attachment 120266
Sample page with 3d transformations having preserver-3d property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525980</commentid>
    <comment_count>10</comment_count>
      <attachid>120267</attachid>
    <who name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</who>
    <bug_when>2011-12-21 21:33:37 -0800</bug_when>
    <thetext>Created attachment 120267
Another sample page with preserve-3d property and 3d transformations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525998</commentid>
    <comment_count>11</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-12-21 21:57:06 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; Awesome news. When you get a new patch ready, I think this looks like a good thing for Vangelis to check over.
&gt; 
&gt; I verified couple of other issues along with http://code.google.com/p/chromium/issues/detail?id=89955 which are related with preserve-3d property but they are not getting fixed with this patch.
&gt; 
&gt; I am attaching the sample html pages which are still reproducible with the patch.

Ravi, can you please clarify, the original test case on 89955 does get fixed properly with this patch?

I will double-check, but I expect these other tests will need to be fixed in a separate bug that fixes z-ordering tie-breakers (which I did not change on this patch).

Thanks again for bringing up these additional cases!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526016</commentid>
    <comment_count>12</comment_count>
    <who name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</who>
    <bug_when>2011-12-21 22:22:11 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; Awesome news. When you get a new patch ready, I think this looks like a good thing for Vangelis to check over.
&gt; &gt; 
&gt; &gt; I verified couple of other issues along with http://code.google.com/p/chromium/issues/detail?id=89955 which are related with preserve-3d property but they are not getting fixed with this patch.
&gt; &gt; 
&gt; &gt; I am attaching the sample html pages which are still reproducible with the patch.
&gt; 
&gt; Ravi, can you please clarify, the original test case on 89955 does get fixed properly with this patch?
Yes the test case of 89955 is fixed with the patch.
&gt; 
&gt; I will double-check, but I expect these other tests will need to be fixed in a separate bug that fixes z-ordering tie-breakers (which I did not change on this patch).
I added the new tests to this bug because 92720 was duped to 89955. Since you are planning to re-open 92720 after verification (as per last comments on 89955 and 92720) this patch is fine with me.
&gt; 
&gt; Thanks again for bringing up these additional cases!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526331</commentid>
    <comment_count>13</comment_count>
      <attachid>120255</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-12-22 10:02:30 -0800</bug_when>
    <thetext>Comment on attachment 120255
updated to tip of tree, removed one inconsistent comment

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

That&apos;s a great find, Shawn!

I suspect that part of the problem is also the usage of m_zRange.  It&apos;s value is calculated based on the max difference between all the Z values found in the group of layers (line 325).  However, if all the layers to be sorted are on the same plane then m_zRange = 0 which means that we could mistakenly create dependencies between them. I think we should specify the exit threshold in line 263 as something like max(m_range * 0.01 , 0.01) .

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerSorter.cpp:432
&gt; +            // z-index/layout ordering). To preserve this ordering, we use

You should probably rework this comment to not mention Vector::removeLast() as this reference only makes sense in the context of a diff with the previous implementation. It should suffice to say that &quot;to preserve this ordering we process the nodes in the order they were stored with&quot; or something like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526681</commentid>
    <comment_count>14</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-12-22 18:22:49 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 120255 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=120255&amp;action=review
&gt; 
&gt; That&apos;s a great find, Shawn!
&gt; 
&gt; I suspect that part of the problem is also the usage of m_zRange.  It&apos;s value is calculated based on the max difference between all the Z values found in the group of layers (line 325).  However, if all the layers to be sorted are on the same plane then m_zRange = 0 which means that we could mistakenly create dependencies between them. I think we should specify the exit threshold in line 263 as something like max(m_range * 0.01 , 0.01) .

After more investigation:

Thanks to these additional test cases and Vangelis&apos;s insight...  the next problem to address is definitely incorrect dependencies that get added due to numerical error.  But it turns out its not because of exitThreshold.  The exitThreshold only saves computation once the difference is large enough.  but incorrect dependencies are still created whenever zDiff is not exactly zero.

The fix is to add an epsilon in CCLayerSorter::checkOverlap (if zDiff &gt; epsilon, if zDiff &lt; epsilon).

I verified this solves Ravi&apos;s useful test cases.  However, this is a little bit fragile - there could always be the rare website that needs a different epsilon to work correctly.

Vangelis do you think there exists a more robust fix?  I can think of revisiting the triangle-triangle test code, to see if we can compute what is in front of what in a more numerically robust way, but I don&apos;t know that code yet, so I&apos;m not convinced it will ultimately solve the problem.

By the way, this epsilon fix does not fix http://code.google.com/p/chromium/issues/detail?id=102943 or http://code.google.com/p/chromium/issues/detail?id=102663 ...  I think those pages might not even be triggering the layerSorter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527297</commentid>
    <comment_count>15</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-12-26 23:50:59 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 120255 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=120255&amp;action=review
&gt; &gt; 
&gt; &gt; That&apos;s a great find, Shawn!
&gt; &gt; 
&gt; &gt; I suspect that part of the problem is also the usage of m_zRange.  It&apos;s value is calculated based on the max difference between all the Z values found in the group of layers (line 325).  However, if all the layers to be sorted are on the same plane then m_zRange = 0 which means that we could mistakenly create dependencies between them. I think we should specify the exit threshold in line 263 as something like max(m_range * 0.01 , 0.01) .
&gt; 
&gt; After more investigation:
&gt; 
&gt; Thanks to these additional test cases and Vangelis&apos;s insight...  the next problem to address is definitely incorrect dependencies that get added due to numerical error.  But it turns out its not because of exitThreshold.  The exitThreshold only saves computation once the difference is large enough.  but incorrect dependencies are still created whenever zDiff is not exactly zero.
&gt; 
&gt; The fix is to add an epsilon in CCLayerSorter::checkOverlap (if zDiff &gt; epsilon, if zDiff &lt; epsilon).
&gt; 
&gt; I verified this solves Ravi&apos;s useful test cases.  However, this is a little bit fragile - there could always be the rare website that needs a different epsilon to work correctly.
&gt; 
&gt; Vangelis do you think there exists a more robust fix?  I can think of revisiting the triangle-triangle test code, to see if we can compute what is in front of what in a more numerically robust way, but I don&apos;t know that code yet, so I&apos;m not convinced it will ultimately solve the problem.

I think the epsilon approach is our best bet at the moment.  With floating point math there will always be numerical issues around testing for equality.  We could presumably also scale the epsilon value by the total z scale in the scene but cap it to some fairly low value (e.g. 0.001).  Out of curiosity, for the examples we fail, what&apos;s the magnitude of the zDiff? 

&gt; 
&gt; By the way, this epsilon fix does not fix http://code.google.com/p/chromium/issues/detail?id=102943 or http://code.google.com/p/chromium/issues/detail?id=102663 ...  I think those pages might not even be triggering the layerSorter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529057</commentid>
    <comment_count>16</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-01-03 14:17:36 -0800</bug_when>
    <thetext>&gt; I think the epsilon approach is our best bet at the moment.  With floating point math there will always be numerical issues around testing for equality.  We could presumably also scale the epsilon value by the total z scale in the scene but cap it to some fairly low value (e.g. 0.001).  Out of curiosity, for the examples we fail, what&apos;s the magnitude of the zDiff? 

zDiff is on the order of +/-  .0001, however, I would expect that this magnitude changes based on how error accumulates in the transforms for the layer.

I&apos;m submitting a new patch soon that includes both fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529077</commentid>
    <comment_count>17</comment_count>
      <attachid>121001</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-01-03 14:34:28 -0800</bug_when>
    <thetext>Created attachment 121001
includes both bugfixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529089</commentid>
    <comment_count>18</comment_count>
      <attachid>121004</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-01-03 15:07:36 -0800</bug_when>
    <thetext>Created attachment 121004
merged the existing exitThreshold and new nonZeroThreshold</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529163</commentid>
    <comment_count>19</comment_count>
      <attachid>121004</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-01-03 16:49:22 -0800</bug_when>
    <thetext>Comment on attachment 121004
merged the existing exitThreshold and new nonZeroThreshold

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerSorter.cpp:266
&gt; +    float nonZeroThreshold = max(m_zRange * 0.001, 0.001);

Do we need to lower the range multiplier to 0.001 from 0.01 ?   I realize that this is all somewhat inaccurate but I&apos;m curious if it&apos;s necessary to change the existing value in order to solve the case where m_zRange == 0.0 (which is the source of the issue here).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529197</commentid>
    <comment_count>20</comment_count>
      <attachid>121004</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-01-03 17:24:17 -0800</bug_when>
    <thetext>Comment on attachment 121004
merged the existing exitThreshold and new nonZeroThreshold

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerSorter.cpp:266
&gt;&gt; +    float nonZeroThreshold = max(m_zRange * 0.001, 0.001);
&gt; 
&gt; Do we need to lower the range multiplier to 0.001 from 0.01 ?   I realize that this is all somewhat inaccurate but I&apos;m curious if it&apos;s necessary to change the existing value in order to solve the case where m_zRange == 0.0 (which is the source of the issue here).

Discussed offline with Vangelis.  It wasn&apos;t necessary to change the order of magnitude, and to minimize the change this patch incurs, I&apos;ll submit a new patch right now that doesn&apos;t change the original exitThreshold.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529203</commentid>
    <comment_count>21</comment_count>
      <attachid>121026</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-01-03 17:34:28 -0800</bug_when>
    <thetext>Created attachment 121026
un-merged exitThreshold and nonZeroThreshold again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529235</commentid>
    <comment_count>22</comment_count>
      <attachid>121026</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-01-03 18:40:52 -0800</bug_when>
    <thetext>Comment on attachment 121026
un-merged exitThreshold and nonZeroThreshold again

Looks good! Thanks, Shawn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529252</commentid>
    <comment_count>23</comment_count>
      <attachid>121026</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-03 19:18:06 -0800</bug_when>
    <thetext>Comment on attachment 121026
un-merged exitThreshold and nonZeroThreshold again

R=me based on Vangelis&apos; unofficial review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529258</commentid>
    <comment_count>24</comment_count>
      <attachid>121026</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-03 19:37:00 -0800</bug_when>
    <thetext>Comment on attachment 121026
un-merged exitThreshold and nonZeroThreshold again

Clearing flags on attachment: 121026

Committed r104002: &lt;http://trac.webkit.org/changeset/104002&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529259</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-03 19:37:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529303</commentid>
    <comment_count>26</comment_count>
    <who name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</who>
    <bug_when>2012-01-03 21:25:25 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 121026 [details])
&gt; Clearing flags on attachment: 121026
&gt; 
&gt; Committed r104002: &lt;http://trac.webkit.org/changeset/104002&gt;

Thanks Shawn for the fix. It helps us a lot. :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120246</attachid>
            <date>2011-12-21 17:17:02 -0800</date>
            <delta_ts>2011-12-21 18:31:29 -0800</delta_ts>
            <desc>includes fix and appropriate unit test</desc>
            <filename>bug-75046-20111221171701.patch</filename>
            <type>text/plain</type>
            <size>8310</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTk0N2M2ZjNjYmExNzFi
N2ExYWJhMWU0MmUzOGIwZGQxYmQ5ZjgxNS4uYzdlYTMyMzZkNDNjNGNhZGJmNGJkNTY3MzJmYmZi
Mzc2ZmEyYjNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEyLTIxICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Q0NMYXllclNvcnRlciBhY2NpZGVudGFsbHkgcmV2ZXJzZSBvcmRlciBvZiBzb21lIGxheWVycy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDQ2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXBwcm9wcmlh
dGUgdGVzdCBhZGRlZCB0byBDQ0xheWVyU29ydGVyVGVzdC5jcHAKKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJTb3J0ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllclNvcnRlcjo6c29ydCk6CisKIDIwMTEtMTItMjEgIE1hdHQgRmFsa2VuaGFn
ZW4gIDxmYWxrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBhbGwgSUNVIGxhbmd1YWdl
cyB0byBMb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCA4ZDJhMWRlZGRjZmNiNjg1MjRhYzQ1N2YyNWVjZmUxYjVlN2ViN2RkLi44MThj
OTJiZGYwNGY5MWE1ODkwMDY0Y2ZhYmJlMjVjOThhYjQwZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTEyLTIxICBTaGF3biBTaW5naCAgPHNoYXdu
c2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQ0NMYXllclNvcnRlciBh
Y2NpZGVudGFsbHkgcmV2ZXJzZSBvcmRlciBvZiBzb21lIGxheWVycy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDQ2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyU29ydGVyVGVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKwogMjAxMS0xMi0yMCAgTmF0ZSBDaGFw
aW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmVydCBjb2RlIGZvciByOTY5
MTIgYW5kIHIxMDE5MDUsIHNpbmNlIHRoZXkgY2F1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJTb3J0ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclNvcnRlci5j
cHAKaW5kZXggZjg4MDU3NzgzYmRjYWNiMGRlNjAwMDI0NTA5ZDc5NGU1NDQ1NTY0ZS4uNjk2NGNk
YTQxNjMwMTM4ZWU0YjAxNmQ2ZGYwMWIwOTViMzMzZjIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclNvcnRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclNv
cnRlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oIgogI2luY2x1ZGUgImNjL0NDUmVuZGVyU3VyZmFjZS5oIgogI2luY2x1ZGUgPGxpbWl0cy5o
PgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC0z
ODgsMTMgKzM4OSwyMCBAQCB2b2lkIENDTGF5ZXJTb3J0ZXI6OnJlbW92ZUVkZ2VGcm9tTGlzdChH
cmFwaEVkZ2UqIGVkZ2UsIFZlY3RvcjxHcmFwaEVkZ2UqPiYgbGlzdAogLy8gY3ljbGljYWwgb3Jk
ZXIgZGVwZW5kZW5jaWVzLiBDeWNsZXMgYW5kIGludGVyc2VjdGlvbnMgYXJlIGJyb2tlbiBhcmli
dHJhcmlseS4KIC8vIFNvcnRpbmcgb2YgbGF5ZXJzIGlzIGRvbmUgdmlhIGEgdG9wb2xvZ2ljYWwg
c29ydCBvZiBhIGRpcmVjdGVkIGdyYXBoIHdob3NlIG5vZGVzIGFyZQogLy8gdGhlIGxheWVycyB0
aGVtc2VsdmVzLiBBbiBlZGdlIGZyb20gbm9kZSBBIHRvIG5vZGUgQiBzaWduaWZpZXMgdGhhdCBs
YXllciBBIG5lZWRzIHRvCi0vLyBiZSBkcmF3biBiZWZvcmUgbGF5ZXIgQi4KKy8vIGJlIGRyYXdu
IGJlZm9yZSBsYXllciBCLiBJZiBBIGFuZCBCIGhhdmUgbm8gZGVwZW5kZW5jeSBiZXR3ZWVuIGVh
Y2ggb3RoZXIsIHRoZW4gd2UKKy8vIHByZXNlcnZlIHRoZSBvcmRlcmluZyBvZiB0aG9zZSBsYXll
cnMgYXMgdGhleSB3ZXJlIGluIHRoZSBvcmlnaW5hbCBsaXN0LgorLy8KIC8vIFRoZSBkcmF3IG9y
ZGVyIGJldHdlZW4gdHdvIGxheWVycyBpcyBkZXRlcm1pbmVkIGJ5IHByb2plY3RpbmcgdGhlIHR3
byB0cmlhbmdsZXMgbWFraW5nCiAvLyB1cCBlYWNoIGxheWVyIHF1YWQgdG8gdGhlIFogPSAwIHBs
YW5lLCBmaW5kaW5nIHBvaW50cyBvZiBpbnRlcnNlY3Rpb24gYmV0d2VlbiB0aGUgdHJpYW5nbGVz
CiAvLyBhbmQgYmFja3Byb2plY3RpbmcgdGhvc2UgcG9pbnRzIHRvIHRoZSBwbGFuZSBvZiB0aGUg
bGF5ZXIgdG8gZGV0ZXJtaW5lIHRoZSBjb3JyZXNwb25kaW5nIFoKIC8vIGNvb3JkaW5hdGUuIFRo
ZSBsYXllciB3aXRoIHRoZSBsb3dlciBaIGNvb3JkaW5hdGUgKGZhcnRoZXIgZnJvbSB0aGUgZXll
KSBuZWVkcyB0byBiZSByZW5kZXJlZAotLy8gZmlyc3QuIElmIHRoZSBsYXllciBwcm9qZWN0aW9u
cyBkb24ndCBpbnRlcnNlY3QgdGhlbiB0aGUgbGF5ZXJzIGNhbiBkcmF3biBpbiBhbnkgb3JkZXIg
YW5kIG5vCi0vLyBlZGdlcyBhcmUgY3JlYXRlZCBiZXR3ZWVuIHRoZW0gaW4gdGhlIGdyYXBoLgor
Ly8gZmlyc3QuCisvLworLy8gSWYgdGhlIGxheWVyIHByb2plY3Rpb25zIGRvbid0IGludGVyc2Vj
dCwgdGhlbiBubyBlZGdlcyAoZGVwZW5kZW5jaWVzKSBhcmUgY3JlYXRlZAorLy8gYmV0d2VlbiB0
aGVtIGluIHRoZSBncmFwaC4gSE9XRVZFUiwgaW4gdGhpcyBjYXNlIHdlIHN0aWxsIG5lZWQgdG8g
cHJlc2VydmUgdGhlIG9yZGVyaW5nCisvLyBvZiB0aGUgb3JpZ2luYWwgbGlzdCBvZiBsYXllcnMs
IHNpbmNlIHRoYXQgbGlzdCBzaG91bGQgYWxyZWFkeSBoYXZlIHByb3BlciB6LWluZGV4CisvLyBv
cmRlcmluZyBvZiBsYXllcnMuCisvLwogdm9pZCBDQ0xheWVyU29ydGVyOjpzb3J0KExheWVyTGlz
dDo6aXRlcmF0b3IgZmlyc3QsIExheWVyTGlzdDo6aXRlcmF0b3IgbGFzdCkKIHsKICNpZiAhZGVm
aW5lZCggTkRFQlVHICkKQEAgLTQwNSw3ICs0MTMsNyBAQCB2b2lkIENDTGF5ZXJTb3J0ZXI6OnNv
cnQoTGF5ZXJMaXN0OjppdGVyYXRvciBmaXJzdCwgTGF5ZXJMaXN0OjppdGVyYXRvciBsYXN0KQog
ICAgIGNyZWF0ZUdyYXBoRWRnZXMoKTsKIAogICAgIFZlY3RvcjxHcmFwaE5vZGUqPiBzb3J0ZWRM
aXN0OwotICAgIFZlY3RvcjxHcmFwaE5vZGUqPiBub0luY29taW5nRWRnZU5vZGVMaXN0OworICAg
IERlcXVlPEdyYXBoTm9kZSo+IG5vSW5jb21pbmdFZGdlTm9kZUxpc3Q7CiAKICAgICAvLyBGaW5k
IGFsbCB0aGUgbm9kZXMgdGhhdCBkb24ndCBoYXZlIGluY29taW5nIGVkZ2VzLgogICAgIGZvciAo
Tm9kZUxpc3Q6Oml0ZXJhdG9yIGxhID0gbV9ub2Rlcy5iZWdpbigpOyBsYSA8IG1fbm9kZXMuZW5k
KCk7IGxhKyspIHsKQEAgLTQxOCw5ICs0MjYsMTIgQEAgdm9pZCBDQ0xheWVyU29ydGVyOjpzb3J0
KExheWVyTGlzdDo6aXRlcmF0b3IgZmlyc3QsIExheWVyTGlzdDo6aXRlcmF0b3IgbGFzdCkKICNl
bmRpZgogICAgIHdoaWxlIChtX2FjdGl2ZUVkZ2VzLnNpemUoKSB8fCBub0luY29taW5nRWRnZU5v
ZGVMaXN0LnNpemUoKSkgewogICAgICAgICB3aGlsZSAobm9JbmNvbWluZ0VkZ2VOb2RlTGlzdC5z
aXplKCkpIHsKLSAgICAgICAgICAgIC8vIFBvcCB0aGUgbGFzdCBlbnRyeSBmcm9tIHRoZSBsaXN0
LgotICAgICAgICAgICAgR3JhcGhOb2RlKiBmcm9tTm9kZSA9IG5vSW5jb21pbmdFZGdlTm9kZUxp
c3Rbbm9JbmNvbWluZ0VkZ2VOb2RlTGlzdC5zaXplKCkgLSAxXTsKLSAgICAgICAgICAgIG5vSW5j
b21pbmdFZGdlTm9kZUxpc3QucmVtb3ZlTGFzdCgpOworCisgICAgICAgICAgICAvLyBJdCBpcyBu
ZWNlc3NhcnkgdG8gcHJlc2VydmUgdGhlIGV4aXN0aW5nIG9yZGVyaW5nIG9mIGxheWVycywgd2hl
biB0aGVyZSBhcmUKKyAgICAgICAgICAgIC8vIG5vIGV4cGxpY2l0IGRlcGVuZGVuY2llcyAoYmVj
YXVzZSB0aGlzIGV4aXN0aW5nIG9yZGVyaW5nIGhhcyBjb3JyZWN0CisgICAgICAgICAgICAvLyB6
LWluZGV4L2xheW91dCBvcmRlcmluZykuIFRvIHByZXNlcnZlIHRoaXMgb3JkZXJpbmcsIHdlIHVz
ZQorICAgICAgICAgICAgLy8gRGVxdWU6OnRha2VGaXJzdCgpIGluc3RlYWQgb2YgVmVjdG9yOjpy
ZW1vdmVMYXN0KCkuCisgICAgICAgICAgICBHcmFwaE5vZGUqIGZyb21Ob2RlID0gbm9JbmNvbWlu
Z0VkZ2VOb2RlTGlzdC50YWtlRmlyc3QoKTsKIAogICAgICAgICAgICAgLy8gQWRkIGl0IHRvIHRo
ZSBmaW5hbCBsaXN0LgogICAgICAgICAgICAgc29ydGVkTGlzdC5hcHBlbmQoZnJvbU5vZGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyU29ydGVyVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJTb3J0ZXJUZXN0LmNw
cAppbmRleCAyM2EwNDYwYmMxY2YzZmY1YjczMzY4ODcxOGIzYzJmZTM0ZGNkMTE0Li5jMTc1ZjUw
NjA3NmUwZDVkNzdkZmFjNDViMzZmYjJhOTE1MDc5Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJTb3J0ZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJTb3J0ZXJUZXN0LmNwcApAQCAtMjYsNiArMjYsOCBA
QAogCiAjaW5jbHVkZSAiY2MvQ0NMYXllclNvcnRlci5oIgogCisjaW5jbHVkZSAiY2MvQ0NMYXll
ckltcGwuaCIKKyNpbmNsdWRlICJjYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgiCiAjaW5jbHVkZSA8
Z3Rlc3QvZ3Rlc3QuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xNTYsNCArMTU4
LDc3IEBAIFRFU1QoQ0NMYXllclNvcnRlclRlc3QsIENhbGN1bGF0ZVpEaWZmKQogICAgIEVYUEVD
VF9FUShDQ0xheWVyU29ydGVyOjpjYWxjdWxhdGVaRGlmZihsYXllckMsIGxheWVyQywgdGhyZXNo
b2xkKSwgMC4wKTsKIH0KIAorVEVTVChDQ0xheWVyU29ydGVyVGVzdCwgdmVyaWZ5RXhpc3RpbmdP
cmRlcmluZ1ByZXNlcnZlZFdoZW5Ob1pEaWZmKQoreworICAgIERlYnVnU2NvcGVkU2V0SW1wbFRo
cmVhZCB0aGlzU2NvcGVJc09uSW1wbFRocmVhZDsKKworICAgIC8vIElmIHRoZXJlIGlzIG5vIHJl
YXNvbiB0byByZS1zb3J0IHRoZSBsYXllcnMgKGkuZS4gbm8gM2QgeiBkaWZmZXJlbmNlKSwgdGhl
biB0aGUKKyAgICAvLyBleGlzdGluZyBvcmRlcmluZyBwcm92aWRlZCBvbiBpbnB1dCBzaG91bGQg
YmUgcmV0YWluZWQuIFRoaXMgdGVzdCBjb3ZlcnMgdGhlIGZpeCBpbgorICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA0Ni4gQmVmb3JlIHRoaXMgZml4LCBv
cmRlcmluZyB3YXMKKyAgICAvLyBhY2NpZGVudGFsbHkgcmV2ZXJzZWQsIGNhdXNpbmcgYnVncyBp
biB6LWluZGV4IG9yZGVyaW5nIG9uIHdlYnNpdGVzIHdoZW4KKyAgICAvLyBwcmVzZXJ2ZXMzRCB0
cmlnZ2VyZWQgdGhlIENDTGF5ZXJTb3J0ZXIuCisKKyAgICAvLyBJbnB1dCBsaXN0IG9mIGxheWVy
czogWzEsIDIsIDMsIDQsIDVdLgorICAgIC8vIEV4cGVjdGVkIG91dHB1dDogWzMsIDQsIDEsIDIs
IDVdLgorICAgIC8vICAgIC0gMSwgMiwgYW5kIDUgZG8gbm90IGhhdmUgYSAzZCB6IGRpZmZlcmVu
Y2UsIGFuZCB0aGVyZWZvcmUgdGhlaXIgcmVsYXRpdmUgb3JkZXJpbmcgc2hvdWxkIGJlIHJldGFp
bmVkLgorICAgIC8vICAgIC0gMyBhbmQgNCBkbyBub3QgaGF2ZSBhIDNkIHogZGlmZmVyZW5jZSwg
YW5kIHRoZXJlZm9yZSB0aGVpciByZWxhdGl2ZSBvcmRlcmluZyBzaG91bGQgYmUgcmV0YWluZWQu
CisgICAgLy8gICAgLSAzIGFuZCA0IHNob3VsZCBiZSByZS1zb3J0ZWQgc28gdGhleSBhcmUgaW4g
ZnJvbnQgb2YgMSwgMiwgYW5kIDUuCisKKyAgICBSZWZQdHI8Q0NMYXllckltcGw+IGxheWVyMSA9
IENDTGF5ZXJJbXBsOjpjcmVhdGUoMSk7CisgICAgUmVmUHRyPENDTGF5ZXJJbXBsPiBsYXllcjIg
PSBDQ0xheWVySW1wbDo6Y3JlYXRlKDIpOworICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gbGF5ZXIz
ID0gQ0NMYXllckltcGw6OmNyZWF0ZSgzKTsKKyAgICBSZWZQdHI8Q0NMYXllckltcGw+IGxheWVy
NCA9IENDTGF5ZXJJbXBsOjpjcmVhdGUoNCk7CisgICAgUmVmUHRyPENDTGF5ZXJJbXBsPiBsYXll
cjUgPSBDQ0xheWVySW1wbDo6Y3JlYXRlKDUpOworCisgICAgLy8gaGlnaGVyIHBvc2l0aXZlIHog
dmFsdWVzIGFyZSBhc3N1bWVkIHRvIGJlIGZ1cnRoZXIgYXdheS4KKyAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBCZWhpbmRNYXRyaXg7CisgICAgQmVoaW5kTWF0cml4LnRyYW5zbGF0ZTNkKDAsIDAs
IDIpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IEZyb250TWF0cml4OworICAgIEZyb250TWF0
cml4LnRyYW5zbGF0ZTNkKDAsIDAsIDEpOworCisgICAgbGF5ZXIxLT5zZXRCb3VuZHMoSW50U2l6
ZSgxMCwgMTApKTsKKyAgICBsYXllcjEtPnNldERyYXdUcmFuc2Zvcm0oQmVoaW5kTWF0cml4KTsK
KyAgICBsYXllcjEtPnNldERyYXdzQ29udGVudCh0cnVlKTsKKworICAgIGxheWVyMi0+c2V0Qm91
bmRzKEludFNpemUoMjAsIDIwKSk7CisgICAgbGF5ZXIyLT5zZXREcmF3VHJhbnNmb3JtKEJlaGlu
ZE1hdHJpeCk7CisgICAgbGF5ZXIyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisKKyAgICBsYXll
cjMtPnNldEJvdW5kcyhJbnRTaXplKDMwLCAzMCkpOworICAgIGxheWVyMy0+c2V0RHJhd1RyYW5z
Zm9ybShGcm9udE1hdHJpeCk7CisgICAgbGF5ZXIzLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisK
KyAgICBsYXllcjQtPnNldEJvdW5kcyhJbnRTaXplKDQwLCA0MCkpOworICAgIGxheWVyNC0+c2V0
RHJhd1RyYW5zZm9ybShGcm9udE1hdHJpeCk7CisgICAgbGF5ZXI0LT5zZXREcmF3c0NvbnRlbnQo
dHJ1ZSk7CisKKyAgICBsYXllcjUtPnNldEJvdW5kcyhJbnRTaXplKDUwLCA1MCkpOworICAgIGxh
eWVyNS0+c2V0RHJhd1RyYW5zZm9ybShCZWhpbmRNYXRyaXgpOworICAgIGxheWVyNS0+c2V0RHJh
d3NDb250ZW50KHRydWUpOworCisgICAgVmVjdG9yPFJlZlB0cjxDQ0xheWVySW1wbD4gPiBsYXll
ckxpc3Q7CisgICAgbGF5ZXJMaXN0LmFwcGVuZChsYXllcjEpOworICAgIGxheWVyTGlzdC5hcHBl
bmQobGF5ZXIyKTsKKyAgICBsYXllckxpc3QuYXBwZW5kKGxheWVyMyk7CisgICAgbGF5ZXJMaXN0
LmFwcGVuZChsYXllcjQpOworICAgIGxheWVyTGlzdC5hcHBlbmQobGF5ZXI1KTsKKworICAgIEFT
U0VSVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDUpLCBsYXllckxpc3Quc2l6ZSgpKTsKKyAgICBF
WFBFQ1RfRVEoMSwgbGF5ZXJMaXN0WzBdLT5pZCgpKTsKKyAgICBFWFBFQ1RfRVEoMiwgbGF5ZXJM
aXN0WzFdLT5pZCgpKTsKKyAgICBFWFBFQ1RfRVEoMywgbGF5ZXJMaXN0WzJdLT5pZCgpKTsKKyAg
ICBFWFBFQ1RfRVEoNCwgbGF5ZXJMaXN0WzNdLT5pZCgpKTsKKyAgICBFWFBFQ1RfRVEoNSwgbGF5
ZXJMaXN0WzRdLT5pZCgpKTsKKworICAgIENDTGF5ZXJTb3J0ZXIgbGF5ZXJTb3J0ZXI7CisgICAg
bGF5ZXJTb3J0ZXIuc29ydChsYXllckxpc3QuYmVnaW4oKSwgbGF5ZXJMaXN0LmVuZCgpKTsKKwor
ICAgIEFTU0VSVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDUpLCBsYXllckxpc3Quc2l6ZSgpKTsK
KyAgICBFWFBFQ1RfRVEoMywgbGF5ZXJMaXN0WzBdLT5pZCgpKTsKKyAgICBFWFBFQ1RfRVEoNCwg
bGF5ZXJMaXN0WzFdLT5pZCgpKTsKKyAgICBFWFBFQ1RfRVEoMSwgbGF5ZXJMaXN0WzJdLT5pZCgp
KTsKKyAgICBFWFBFQ1RfRVEoMiwgbGF5ZXJMaXN0WzNdLT5pZCgpKTsKKyAgICBFWFBFQ1RfRVEo
NSwgbGF5ZXJMaXN0WzRdLT5pZCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120255</attachid>
            <date>2011-12-21 18:31:32 -0800</date>
            <delta_ts>2012-01-03 14:34:21 -0800</delta_ts>
            <desc>updated to tip of tree, removed one inconsistent comment</desc>
            <filename>bug-75046-20111221183131.patch</filename>
            <type>text/plain</type>
            <size>8281</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk1YzNmMzJkNjM3ODNl
ZjRjN2JlMThjNTQwNGNiNTZmZmNhZThjOS4uNTU0NDk1NmNiZjk2MTg4ZWEwNzg4Y2NhZTcxNTFm
NzU1OGE2MzEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEyLTIxICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Q0NMYXllclNvcnRlciBhY2NpZGVudGFsbHkgcmV2ZXJzZSBvcmRlciBvZiBzb21lIGxheWVycy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDQ2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXBwcm9wcmlh
dGUgdGVzdCBhZGRlZCB0byBDQ0xheWVyU29ydGVyVGVzdC5jcHAKKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJTb3J0ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllclNvcnRlcjo6c29ydCk6CisKIDIwMTEtMTItMjEgIEFuZHJlYXMgS2xpbmcg
IDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MDM0NzMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdhOTcyYjhmM2RmMDFiZjRkNjhi
MTQyY2RiNDBkNzA3YjFmY2NjM2EuLjc5MmE3ZmM4ZmE1Y2Y0ZTA1Zjk0YWJmY2QyNDE2MjBjMTAx
MDJhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEt
MTItMjEgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
W2Nocm9taXVtXSBDQ0xheWVyU29ydGVyIGFjY2lkZW50YWxseSByZXZlcnNlIG9yZGVyIG9mIHNv
bWUgbGF5ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzUwNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHRlc3RzL0NDTGF5ZXJTb3J0ZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1Qp
OgorCiAyMDExLTEyLTIwICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogW0V4dGVuc2lvbiBBUEldIHJlZmFjdG9yIGV4dGVuc2lv
biBBUEkgYnVpbGQgY29kZSwgZXhwb3NlIGV4cGVyaW1lbnRhbCBBUElzIGNvbmRpdGlvbmFsbHkg
aW4gY2hyb21pdW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJTb3J0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclNvcnRlci5jcHAKaW5kZXggZjg4MDU3NzgzYmRj
YWNiMGRlNjAwMDI0NTA5ZDc5NGU1NDQ1NTY0ZS4uNjk2NGNkYTQxNjMwMTM4ZWU0YjAxNmQ2ZGYw
MWIwOTViMzMzZjIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclNvcnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclNvcnRlci5jcHAKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgImNjL0ND
UmVuZGVyU3VyZmFjZS5oIgogI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC0zODgsMTMgKzM4OSwyMCBAQCB2b2lk
IENDTGF5ZXJTb3J0ZXI6OnJlbW92ZUVkZ2VGcm9tTGlzdChHcmFwaEVkZ2UqIGVkZ2UsIFZlY3Rv
cjxHcmFwaEVkZ2UqPiYgbGlzdAogLy8gY3ljbGljYWwgb3JkZXIgZGVwZW5kZW5jaWVzLiBDeWNs
ZXMgYW5kIGludGVyc2VjdGlvbnMgYXJlIGJyb2tlbiBhcmlidHJhcmlseS4KIC8vIFNvcnRpbmcg
b2YgbGF5ZXJzIGlzIGRvbmUgdmlhIGEgdG9wb2xvZ2ljYWwgc29ydCBvZiBhIGRpcmVjdGVkIGdy
YXBoIHdob3NlIG5vZGVzIGFyZQogLy8gdGhlIGxheWVycyB0aGVtc2VsdmVzLiBBbiBlZGdlIGZy
b20gbm9kZSBBIHRvIG5vZGUgQiBzaWduaWZpZXMgdGhhdCBsYXllciBBIG5lZWRzIHRvCi0vLyBi
ZSBkcmF3biBiZWZvcmUgbGF5ZXIgQi4KKy8vIGJlIGRyYXduIGJlZm9yZSBsYXllciBCLiBJZiBB
IGFuZCBCIGhhdmUgbm8gZGVwZW5kZW5jeSBiZXR3ZWVuIGVhY2ggb3RoZXIsIHRoZW4gd2UKKy8v
IHByZXNlcnZlIHRoZSBvcmRlcmluZyBvZiB0aG9zZSBsYXllcnMgYXMgdGhleSB3ZXJlIGluIHRo
ZSBvcmlnaW5hbCBsaXN0LgorLy8KIC8vIFRoZSBkcmF3IG9yZGVyIGJldHdlZW4gdHdvIGxheWVy
cyBpcyBkZXRlcm1pbmVkIGJ5IHByb2plY3RpbmcgdGhlIHR3byB0cmlhbmdsZXMgbWFraW5nCiAv
LyB1cCBlYWNoIGxheWVyIHF1YWQgdG8gdGhlIFogPSAwIHBsYW5lLCBmaW5kaW5nIHBvaW50cyBv
ZiBpbnRlcnNlY3Rpb24gYmV0d2VlbiB0aGUgdHJpYW5nbGVzCiAvLyBhbmQgYmFja3Byb2plY3Rp
bmcgdGhvc2UgcG9pbnRzIHRvIHRoZSBwbGFuZSBvZiB0aGUgbGF5ZXIgdG8gZGV0ZXJtaW5lIHRo
ZSBjb3JyZXNwb25kaW5nIFoKIC8vIGNvb3JkaW5hdGUuIFRoZSBsYXllciB3aXRoIHRoZSBsb3dl
ciBaIGNvb3JkaW5hdGUgKGZhcnRoZXIgZnJvbSB0aGUgZXllKSBuZWVkcyB0byBiZSByZW5kZXJl
ZAotLy8gZmlyc3QuIElmIHRoZSBsYXllciBwcm9qZWN0aW9ucyBkb24ndCBpbnRlcnNlY3QgdGhl
biB0aGUgbGF5ZXJzIGNhbiBkcmF3biBpbiBhbnkgb3JkZXIgYW5kIG5vCi0vLyBlZGdlcyBhcmUg
Y3JlYXRlZCBiZXR3ZWVuIHRoZW0gaW4gdGhlIGdyYXBoLgorLy8gZmlyc3QuCisvLworLy8gSWYg
dGhlIGxheWVyIHByb2plY3Rpb25zIGRvbid0IGludGVyc2VjdCwgdGhlbiBubyBlZGdlcyAoZGVw
ZW5kZW5jaWVzKSBhcmUgY3JlYXRlZAorLy8gYmV0d2VlbiB0aGVtIGluIHRoZSBncmFwaC4gSE9X
RVZFUiwgaW4gdGhpcyBjYXNlIHdlIHN0aWxsIG5lZWQgdG8gcHJlc2VydmUgdGhlIG9yZGVyaW5n
CisvLyBvZiB0aGUgb3JpZ2luYWwgbGlzdCBvZiBsYXllcnMsIHNpbmNlIHRoYXQgbGlzdCBzaG91
bGQgYWxyZWFkeSBoYXZlIHByb3BlciB6LWluZGV4CisvLyBvcmRlcmluZyBvZiBsYXllcnMuCisv
Lwogdm9pZCBDQ0xheWVyU29ydGVyOjpzb3J0KExheWVyTGlzdDo6aXRlcmF0b3IgZmlyc3QsIExh
eWVyTGlzdDo6aXRlcmF0b3IgbGFzdCkKIHsKICNpZiAhZGVmaW5lZCggTkRFQlVHICkKQEAgLTQw
NSw3ICs0MTMsNyBAQCB2b2lkIENDTGF5ZXJTb3J0ZXI6OnNvcnQoTGF5ZXJMaXN0OjppdGVyYXRv
ciBmaXJzdCwgTGF5ZXJMaXN0OjppdGVyYXRvciBsYXN0KQogICAgIGNyZWF0ZUdyYXBoRWRnZXMo
KTsKIAogICAgIFZlY3RvcjxHcmFwaE5vZGUqPiBzb3J0ZWRMaXN0OwotICAgIFZlY3RvcjxHcmFw
aE5vZGUqPiBub0luY29taW5nRWRnZU5vZGVMaXN0OworICAgIERlcXVlPEdyYXBoTm9kZSo+IG5v
SW5jb21pbmdFZGdlTm9kZUxpc3Q7CiAKICAgICAvLyBGaW5kIGFsbCB0aGUgbm9kZXMgdGhhdCBk
b24ndCBoYXZlIGluY29taW5nIGVkZ2VzLgogICAgIGZvciAoTm9kZUxpc3Q6Oml0ZXJhdG9yIGxh
ID0gbV9ub2Rlcy5iZWdpbigpOyBsYSA8IG1fbm9kZXMuZW5kKCk7IGxhKyspIHsKQEAgLTQxOCw5
ICs0MjYsMTIgQEAgdm9pZCBDQ0xheWVyU29ydGVyOjpzb3J0KExheWVyTGlzdDo6aXRlcmF0b3Ig
Zmlyc3QsIExheWVyTGlzdDo6aXRlcmF0b3IgbGFzdCkKICNlbmRpZgogICAgIHdoaWxlIChtX2Fj
dGl2ZUVkZ2VzLnNpemUoKSB8fCBub0luY29taW5nRWRnZU5vZGVMaXN0LnNpemUoKSkgewogICAg
ICAgICB3aGlsZSAobm9JbmNvbWluZ0VkZ2VOb2RlTGlzdC5zaXplKCkpIHsKLSAgICAgICAgICAg
IC8vIFBvcCB0aGUgbGFzdCBlbnRyeSBmcm9tIHRoZSBsaXN0LgotICAgICAgICAgICAgR3JhcGhO
b2RlKiBmcm9tTm9kZSA9IG5vSW5jb21pbmdFZGdlTm9kZUxpc3Rbbm9JbmNvbWluZ0VkZ2VOb2Rl
TGlzdC5zaXplKCkgLSAxXTsKLSAgICAgICAgICAgIG5vSW5jb21pbmdFZGdlTm9kZUxpc3QucmVt
b3ZlTGFzdCgpOworCisgICAgICAgICAgICAvLyBJdCBpcyBuZWNlc3NhcnkgdG8gcHJlc2VydmUg
dGhlIGV4aXN0aW5nIG9yZGVyaW5nIG9mIGxheWVycywgd2hlbiB0aGVyZSBhcmUKKyAgICAgICAg
ICAgIC8vIG5vIGV4cGxpY2l0IGRlcGVuZGVuY2llcyAoYmVjYXVzZSB0aGlzIGV4aXN0aW5nIG9y
ZGVyaW5nIGhhcyBjb3JyZWN0CisgICAgICAgICAgICAvLyB6LWluZGV4L2xheW91dCBvcmRlcmlu
ZykuIFRvIHByZXNlcnZlIHRoaXMgb3JkZXJpbmcsIHdlIHVzZQorICAgICAgICAgICAgLy8gRGVx
dWU6OnRha2VGaXJzdCgpIGluc3RlYWQgb2YgVmVjdG9yOjpyZW1vdmVMYXN0KCkuCisgICAgICAg
ICAgICBHcmFwaE5vZGUqIGZyb21Ob2RlID0gbm9JbmNvbWluZ0VkZ2VOb2RlTGlzdC50YWtlRmly
c3QoKTsKIAogICAgICAgICAgICAgLy8gQWRkIGl0IHRvIHRoZSBmaW5hbCBsaXN0LgogICAgICAg
ICAgICAgc29ydGVkTGlzdC5hcHBlbmQoZnJvbU5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyU29ydGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJTb3J0ZXJUZXN0LmNwcAppbmRleCAyM2EwNDYwYmMxY2Yz
ZmY1YjczMzY4ODcxOGIzYzJmZTM0ZGNkMTE0Li42OTM0MmNkYTdjNjNiNjE1NDUwNzQ1ZWFiZDhi
MWQxY2RiZWZjZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJTb3J0ZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJTb3J0ZXJUZXN0LmNwcApAQCAtMjYsNiArMjYsOCBAQAogCiAjaW5jbHVkZSAiY2MvQ0NM
YXllclNvcnRlci5oIgogCisjaW5jbHVkZSAiY2MvQ0NMYXllckltcGwuaCIKKyNpbmNsdWRlICJj
Yy9DQ1NpbmdsZVRocmVhZFByb3h5LmgiCiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xNTYsNCArMTU4LDc2IEBAIFRFU1QoQ0NMYXllclNv
cnRlclRlc3QsIENhbGN1bGF0ZVpEaWZmKQogICAgIEVYUEVDVF9FUShDQ0xheWVyU29ydGVyOjpj
YWxjdWxhdGVaRGlmZihsYXllckMsIGxheWVyQywgdGhyZXNob2xkKSwgMC4wKTsKIH0KIAorVEVT
VChDQ0xheWVyU29ydGVyVGVzdCwgdmVyaWZ5RXhpc3RpbmdPcmRlcmluZ1ByZXNlcnZlZFdoZW5O
b1pEaWZmKQoreworICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCB0aGlzU2NvcGVJc09uSW1w
bFRocmVhZDsKKworICAgIC8vIElmIHRoZXJlIGlzIG5vIHJlYXNvbiB0byByZS1zb3J0IHRoZSBs
YXllcnMgKGkuZS4gbm8gM2QgeiBkaWZmZXJlbmNlKSwgdGhlbiB0aGUKKyAgICAvLyBleGlzdGlu
ZyBvcmRlcmluZyBwcm92aWRlZCBvbiBpbnB1dCBzaG91bGQgYmUgcmV0YWluZWQuIFRoaXMgdGVz
dCBjb3ZlcnMgdGhlIGZpeCBpbgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NTA0Ni4gQmVmb3JlIHRoaXMgZml4LCBvcmRlcmluZyB3YXMKKyAgICAvLyBh
Y2NpZGVudGFsbHkgcmV2ZXJzZWQsIGNhdXNpbmcgYnVncyBpbiB6LWluZGV4IG9yZGVyaW5nIG9u
IHdlYnNpdGVzIHdoZW4KKyAgICAvLyBwcmVzZXJ2ZXMzRCB0cmlnZ2VyZWQgdGhlIENDTGF5ZXJT
b3J0ZXIuCisKKyAgICAvLyBJbnB1dCBsaXN0IG9mIGxheWVyczogWzEsIDIsIDMsIDQsIDVdLgor
ICAgIC8vIEV4cGVjdGVkIG91dHB1dDogWzMsIDQsIDEsIDIsIDVdLgorICAgIC8vICAgIC0gMSwg
MiwgYW5kIDUgZG8gbm90IGhhdmUgYSAzZCB6IGRpZmZlcmVuY2UsIGFuZCB0aGVyZWZvcmUgdGhl
aXIgcmVsYXRpdmUgb3JkZXJpbmcgc2hvdWxkIGJlIHJldGFpbmVkLgorICAgIC8vICAgIC0gMyBh
bmQgNCBkbyBub3QgaGF2ZSBhIDNkIHogZGlmZmVyZW5jZSwgYW5kIHRoZXJlZm9yZSB0aGVpciBy
ZWxhdGl2ZSBvcmRlcmluZyBzaG91bGQgYmUgcmV0YWluZWQuCisgICAgLy8gICAgLSAzIGFuZCA0
IHNob3VsZCBiZSByZS1zb3J0ZWQgc28gdGhleSBhcmUgaW4gZnJvbnQgb2YgMSwgMiwgYW5kIDUu
CisKKyAgICBSZWZQdHI8Q0NMYXllckltcGw+IGxheWVyMSA9IENDTGF5ZXJJbXBsOjpjcmVhdGUo
MSk7CisgICAgUmVmUHRyPENDTGF5ZXJJbXBsPiBsYXllcjIgPSBDQ0xheWVySW1wbDo6Y3JlYXRl
KDIpOworICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gbGF5ZXIzID0gQ0NMYXllckltcGw6OmNyZWF0
ZSgzKTsKKyAgICBSZWZQdHI8Q0NMYXllckltcGw+IGxheWVyNCA9IENDTGF5ZXJJbXBsOjpjcmVh
dGUoNCk7CisgICAgUmVmUHRyPENDTGF5ZXJJbXBsPiBsYXllcjUgPSBDQ0xheWVySW1wbDo6Y3Jl
YXRlKDUpOworCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggQmVoaW5kTWF0cml4OworICAgIEJl
aGluZE1hdHJpeC50cmFuc2xhdGUzZCgwLCAwLCAyKTsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBGcm9udE1hdHJpeDsKKyAgICBGcm9udE1hdHJpeC50cmFuc2xhdGUzZCgwLCAwLCAxKTsKKwor
ICAgIGxheWVyMS0+c2V0Qm91bmRzKEludFNpemUoMTAsIDEwKSk7CisgICAgbGF5ZXIxLT5zZXRE
cmF3VHJhbnNmb3JtKEJlaGluZE1hdHJpeCk7CisgICAgbGF5ZXIxLT5zZXREcmF3c0NvbnRlbnQo
dHJ1ZSk7CisKKyAgICBsYXllcjItPnNldEJvdW5kcyhJbnRTaXplKDIwLCAyMCkpOworICAgIGxh
eWVyMi0+c2V0RHJhd1RyYW5zZm9ybShCZWhpbmRNYXRyaXgpOworICAgIGxheWVyMi0+c2V0RHJh
d3NDb250ZW50KHRydWUpOworCisgICAgbGF5ZXIzLT5zZXRCb3VuZHMoSW50U2l6ZSgzMCwgMzAp
KTsKKyAgICBsYXllcjMtPnNldERyYXdUcmFuc2Zvcm0oRnJvbnRNYXRyaXgpOworICAgIGxheWVy
My0+c2V0RHJhd3NDb250ZW50KHRydWUpOworCisgICAgbGF5ZXI0LT5zZXRCb3VuZHMoSW50U2l6
ZSg0MCwgNDApKTsKKyAgICBsYXllcjQtPnNldERyYXdUcmFuc2Zvcm0oRnJvbnRNYXRyaXgpOwor
ICAgIGxheWVyNC0+c2V0RHJhd3NDb250ZW50KHRydWUpOworCisgICAgbGF5ZXI1LT5zZXRCb3Vu
ZHMoSW50U2l6ZSg1MCwgNTApKTsKKyAgICBsYXllcjUtPnNldERyYXdUcmFuc2Zvcm0oQmVoaW5k
TWF0cml4KTsKKyAgICBsYXllcjUtPnNldERyYXdzQ29udGVudCh0cnVlKTsKKworICAgIFZlY3Rv
cjxSZWZQdHI8Q0NMYXllckltcGw+ID4gbGF5ZXJMaXN0OworICAgIGxheWVyTGlzdC5hcHBlbmQo
bGF5ZXIxKTsKKyAgICBsYXllckxpc3QuYXBwZW5kKGxheWVyMik7CisgICAgbGF5ZXJMaXN0LmFw
cGVuZChsYXllcjMpOworICAgIGxheWVyTGlzdC5hcHBlbmQobGF5ZXI0KTsKKyAgICBsYXllckxp
c3QuYXBwZW5kKGxheWVyNSk7CisKKyAgICBBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90Pig1
KSwgbGF5ZXJMaXN0LnNpemUoKSk7CisgICAgRVhQRUNUX0VRKDEsIGxheWVyTGlzdFswXS0+aWQo
KSk7CisgICAgRVhQRUNUX0VRKDIsIGxheWVyTGlzdFsxXS0+aWQoKSk7CisgICAgRVhQRUNUX0VR
KDMsIGxheWVyTGlzdFsyXS0+aWQoKSk7CisgICAgRVhQRUNUX0VRKDQsIGxheWVyTGlzdFszXS0+
aWQoKSk7CisgICAgRVhQRUNUX0VRKDUsIGxheWVyTGlzdFs0XS0+aWQoKSk7CisKKyAgICBDQ0xh
eWVyU29ydGVyIGxheWVyU29ydGVyOworICAgIGxheWVyU29ydGVyLnNvcnQobGF5ZXJMaXN0LmJl
Z2luKCksIGxheWVyTGlzdC5lbmQoKSk7CisKKyAgICBBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8c2l6
ZV90Pig1KSwgbGF5ZXJMaXN0LnNpemUoKSk7CisgICAgRVhQRUNUX0VRKDMsIGxheWVyTGlzdFsw
XS0+aWQoKSk7CisgICAgRVhQRUNUX0VRKDQsIGxheWVyTGlzdFsxXS0+aWQoKSk7CisgICAgRVhQ
RUNUX0VRKDEsIGxheWVyTGlzdFsyXS0+aWQoKSk7CisgICAgRVhQRUNUX0VRKDIsIGxheWVyTGlz
dFszXS0+aWQoKSk7CisgICAgRVhQRUNUX0VRKDUsIGxheWVyTGlzdFs0XS0+aWQoKSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>120266</attachid>
            <date>2011-12-21 21:29:31 -0800</date>
            <delta_ts>2011-12-21 21:29:31 -0800</delta_ts>
            <desc>Sample page with 3d transformations having preserver-3d property.</desc>
            <filename>3DBug.html</filename>
            <type>text/html</type>
            <size>1589</size>
            <attacher name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCjxoZWFkPg0KICAgIDx0aXRsZT48L3RpdGxlPg0KICAg
IDxzdHlsZT4NCiAgICAgICAgLmRpdkJhc2Ugew0KICAgICAgICAgICAgcG9zaXRpb246IGFic29s
dXRlOw0KICAgICAgICAgICAgaGVpZ2h0OiAxODBweDsNCiAgICAgICAgICAgIHdpZHRoOiAxODBw
eDsNCiAgICAgICAgfQ0KDQogICAgICAgIC5kaXYzRCB7DQogICAgICAgICAgICAtd2Via2l0LXRy
YW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwMCk7DQogICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9y
bTogbWF0cml4M2QoMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwg
MSk7DQogICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7DQog
ICAgICAgIH0NCiAgICAgICAgI2RpdjEgew0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOw0KICAgICAgICAgICAgbGVmdDogNjBweDsNCiAgICAgICAgICAgIHRvcDogNjBweDsNCiAg
ICAgICAgfQ0KICAgICAgICAjZGl2MiB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsNCiAgICAgICAgICAgIGxlZnQ6IDEyMHB4Ow0KICAgICAgICAgICAgdG9wOiAxMjBweDsN
CiAgICAgICAgfQ0KICAgICAgICAjZGl2MyB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBibHVlOw0KICAgICAgICAgICAgbGVmdDogMTgwcHg7DQogICAgICAgICAgICB0b3A6IDE4MHB4
Ow0KICAgICAgICB9DQoNCiAgICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGluZmluaXRlLXNwaW5u
aW5nIHsNCiAgICAgICAgICAgIGZyb20gew0KICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNm
b3JtOiByb3RhdGVZKC00NWRlZyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0byB7DQog
ICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoNDVkZWcpOw0KICAgICAg
ICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIC5yb3RhdGVBbmltYXRpb24gew0KICAgICAgICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogaW5maW5pdGUtc3Bpbm5pbmc7DQogICAgICAgICAg
ICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogM3M7DQogICAgICAgICAgICAtd2Via2l0LWFu
aW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOw0KICAgICAgICAgICAgLXdlYmtpdC1h
bmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7DQogICAgICAgICAgICAtd2Via2l0LWFuaW1h
dGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgICAgICAgfQ0KICAgICA8L3N0eWxlPg0K
PC9oZWFkPg0KPGJvZHk+DQogICAgPGRpdiBpZD0iY29udGFpbmVyRGl2IiBjbGFzcz0iZGl2M0Qg
cm90YXRlQW5pbWF0aW9uIj4NCiAgICAgICAgPGRpdiBpZD0iZGl2MSIgY2xhc3M9ImRpdkJhc2Ug
ZGl2M0QiPkJvdHRvbTwvZGl2Pg0KICAgICAgICA8ZGl2IGlkPSJkaXYyIiBjbGFzcz0iZGl2QmFz
ZSBkaXYzRCI+TWlkZGxlPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImRpdjMiIGNsYXNzPSJkaXZC
YXNlIGRpdjNEIj5Ub3A8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>120267</attachid>
            <date>2011-12-21 21:33:37 -0800</date>
            <delta_ts>2011-12-21 21:33:37 -0800</delta_ts>
            <desc>Another sample page with preserve-3d property and 3d transformations</desc>
            <filename>3DBug no Z.html</filename>
            <type>text/html</type>
            <size>2051</size>
            <attacher name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</attacher>
            
              <data encoding="base64">IURPQ1RZUEUgaHRtbD4NCjxodG1sPg0KPGhlYWQ+DQogICAgPHRpdGxlPjwvdGl0bGU+DQogICAg
PHN0eWxlPg0KICAgICAgICAuZGl2QmFzZSB7DQogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7DQogICAgICAgICAgICBoZWlnaHQ6IDE4MHB4Ow0KICAgICAgICAgICAgd2lkdGg6IDE4MHB4
Ow0KICAgICAgICB9DQoNCiAgICAgICAgLmRpdjNEIHsNCiAgICAgICAgICAgIC13ZWJraXQtdHJh
bnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDAwKTsNCiAgICAgICAgICAgIC8qLXdlYmtpdC10cmFuc2Zv
cm0tc3R5bGU6IHByZXNlcnZlLTNkOyovDQogICAgICAgIH0NCg0KCQkjZGl2MSB7DQogICAgICAg
ICAgICAtd2Via2l0LXRyYW5zZm9ybTogbWF0cml4M2QoMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwg
MCwgMCwgMSwgMCwgMCwgMCwgMCwgMSk7DQoJCX0NCgkJI2RpdjIgew0KICAgICAgICAgICAgLXdl
YmtpdC10cmFuc2Zvcm06IG1hdHJpeDNkKDEsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEs
IDAsIDAsIDAsIDAsIDEpOw0KCQl9DQoJCSNkaXYzew0KICAgICAgICAgICAgLXdlYmtpdC10cmFu
c2Zvcm06IG1hdHJpeDNkKDEsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAs
IDAsIDEpOw0KCQl9DQoJICAuY29udGFpbmVyRGl2IHsNCiAgICAgICAgICAgIC13ZWJraXQtdHJh
bnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDAwKTsNCiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3Jt
OiBtYXRyaXgzZCgxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAx
KTsNCiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsNCiAg
ICAgICAgfQ0KICAgICAgICAjZGl2MSB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7DQogICAgICAgICAgICBsZWZ0OiA2MHB4Ow0KICAgICAgICAgICAgdG9wOiA2MHB4Ow0KICAg
ICAgICB9DQogICAgICAgICNkaXYyIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOw0KICAgICAgICAgICAgbGVmdDogMTIwcHg7DQogICAgICAgICAgICB0b3A6IDEyMHB4Ow0K
ICAgICAgICB9DQogICAgICAgICNkaXYzIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IGJsdWU7DQogICAgICAgICAgICBsZWZ0OiAxODBweDsNCiAgICAgICAgICAgIHRvcDogMTgwcHg7
DQogICAgICAgIH0NCg0KICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgaW5maW5pdGUtc3Bpbm5p
bmcgew0KICAgICAgICAgICAgZnJvbSB7DQogICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zv
cm06IHJvdGF0ZVkoODVkZWcpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdG8gew0KICAg
ICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKC00NWRlZyk7DQogICAgICAg
ICAgICB9DQogICAgICAgIH0NCiAgICAgICAgLnJvdGF0ZUFuaW1hdGlvbiB7DQogICAgICAgICAg
ICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBpbmZpbml0ZS1zcGlubmluZzsNCiAgICAgICAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAzczsNCiAgICAgICAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQogICAgICAgICAgICAtd2Via2l0LWFu
aW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTsNCiAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0
aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICAgICAgICB9DQogICAgIDwvc3R5bGU+DQo8
L2hlYWQ+DQo8Ym9keT4NCiAgICA8ZGl2IGlkPSJjb250YWluZXJEaXYiIGNsYXNzPSJjb250YWlu
ZXJEaXYgcm90YXRlQW5pbWF0aW9uIj4NCiAgICAgICAgPGRpdiBpZD0iZGl2MSIgY2xhc3M9ImRp
dkJhc2UgZGl2M0QiPkJvdHRvbTwvZGl2Pg0KICAgICAgICA8ZGl2IGlkPSJkaXYyIiBjbGFzcz0i
ZGl2QmFzZSBkaXYzRCI+TWlkZGxlPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImRpdjMiIGNsYXNz
PSJkaXZCYXNlIGRpdjNEIj5Ub3A8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121001</attachid>
            <date>2012-01-03 14:34:28 -0800</date>
            <delta_ts>2012-01-03 15:07:32 -0800</delta_ts>
            <desc>includes both bugfixes</desc>
            <filename>bug-75046-20120103143427.patch</filename>
            <type>text/plain</type>
            <size>9643</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThiZGY4NTVhOTVlNDYz
NjgxODM3MmI0NDhkZDEwMWE0N2Y5MmQ4NS4uZTg2OWU3OWRhYWEwZjQwNjE1YTBiYmEzNTM1MDUx
NDY5YTAxMDcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAxLTAzICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Q0NMYXllclNvcnRlciBhY2NpZGVudGFsbHkgcmV2ZXJzZXMgb3JkZXIgb2Ygc29tZSBsYXllcnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA0Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuaXQgdGVz
dCBhZGRlZCB0byBDQ0xheWVyU29ydGVyVGVzdC5jcHAKKworICAgICAgICBGaXhlcyB0d28gcmVs
YXRlZCBidWdzIHRoYXQgd2VyZSBjYXVzaW5nIHotb3JkZXJpbmcgcHJvYmxlbXMgaW4KKyAgICAg
ICAgbGF5ZXJzIHdoZW4gcHJlc2VydmVzM0QgdHJpZ2dlcnMgdGhlIG5lZWQgZm9yIGxheWVyIHNv
cnRpbmcuCisKKyAgICAgICAgVGhlIGZpcnN0IHByb2JsZW0gd2FzIHRoYXQgQ0NMYXllclNvcnRl
ciBhY2NpZGVudGFsbHkgcmV2ZXJzZWQgdGhlCisgICAgICAgIG9yZGVyIG9mIGxheWVycyB3aGVu
IHRoZXJlIHdhcyBubyBzb3J0aW5nIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGVtLgorCisgICAgICAg
IFRoZSBzZWNvbmQgcHJvYmxlbSB3YXMgdGhhdCB6RGlmZiBoYWQgbnVtZXJpY2FsIHByZWNpc2lv
biBwcm9ibGVtcworICAgICAgICB0aGF0IGZvcmNlZCBzb3J0aW5nIGRlcGVuZGVuY2llcyB0aGF0
IHdlcmUgc29tZXRpbWVzIGluY29ycmVjdCwKKyAgICAgICAgd2hlbiB0aGUgZGVwZW5kZW5jaWVz
IHNob3VsZCBub3QgaGF2ZSBleGlzdGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclNvcnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
U29ydGVyOjpjaGVja092ZXJsYXApOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclNvcnRlcjo6
c29ydCk6CisKIDIwMTItMDEtMDMgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5i
b3NzYS5vcmc+CiAKICAgICAgICAgU29ydCB0aGUgV2ViQ29yZSBYQ29kZSBwcm9qZWN0IGZpbGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTljMGJhMGI3MDY3ZDMyNDk4NjEzZTU3Y2E5
OGEwMjVkNTFmZjQxYy4uMjE4MDRmODI5ZDU5NzZlZDczN2ZlZTMyZWQwYTEwZWFkMDk1NjVmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMS0wMyAg
U2hhd24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIENDTGF5ZXJTb3J0ZXIgYWNjaWRlbnRhbGx5IHJldmVyc2VzIG9yZGVyIG9mIHNvbWUgbGF5
ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUw
NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRl
c3RzL0NDTGF5ZXJTb3J0ZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAy
MDEyLTAxLTAzICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAg
W2Nocm9taXVtXSBNYWtlIHRpbGVkIGxheWVyJ3MgdGlsZXIgYWx3YXlzIGV4aXN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
U29ydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJTb3J0ZXIuY3BwCmluZGV4IGY4ODA1Nzc4M2JkY2FjYjBkZTYwMDAyNDUwOWQ3OTRl
NTQ0NTU2NGUuLmJiNzVlNDEwMTNiYzIyMGE5MzgxYWFhOGJhMDgxMzcxYjgwNzc4YzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJTb3J0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJTb3J0ZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiVHJh
bnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJjYy9DQ1JlbmRlclN1cmZhY2UuaCIKICNp
bmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIApAQCAtMjU5LDEzICsyNjAsMTcgQEAgQ0NMYXllclNvcnRlcjo6QUJDb21wYXJl
UmVzdWx0IENDTGF5ZXJTb3J0ZXI6OmNoZWNrT3ZlcmxhcChHcmFwaE5vZGUqIGEsIEdyYXBoTm8K
ICAgICBpZiAoIWEtPnNoYXBlLmJvdW5kaW5nQm94LmludGVyc2VjdHMoYi0+c2hhcGUuYm91bmRp
bmdCb3gpKQogICAgICAgICByZXR1cm4gTm9uZTsKIAotICAgIC8vIE1ha2UgdGhlIGVhcmx5IGV4
aXQgdGhyZXNob2xkIHByb3BvcnRpb25hbCB0byB0aGUgdG90YWwgWiByYW5nZS4KKyAgICAvLyBU
aGVzZSB0aHJlc2hvbGRzIGFyZSBkZWZpbmVkIHJlbGF0aXZlIHRvIHRoZSB0b3RhbCBaIHJhbmdl
LiBJZiBmdXJ0aGVyIFotZmlnaHRpbmcKKyAgICAvLyBidWdzIGNvbWUgdXAgZHVlIHRvIHByZWNp
c2lvbiBlcnJvcnMsIGl0IG1heSBiZSB3b3J0aCBjb25zaWRlcmluZyBkb2luZyBhbiB1bHAKKyAg
ICAvLyBlcnJvciBtZWFzdXJlbWVudCBpbnN0ZWFkLCBlc3BlY2lhbGx5IGZvciBub25aZXJvVGhy
ZXNob2xkLgogICAgIGZsb2F0IGV4aXRUaHJlc2hvbGQgPSBtX3pSYW5nZSAqIDAuMDE7CisgICAg
ZmxvYXQgbm9uWmVyb1RocmVzaG9sZCA9IG1felJhbmdlICogMC4wMDE7CisKICAgICBmbG9hdCB6
RGlmZiA9IGNhbGN1bGF0ZVpEaWZmKGEtPnNoYXBlLCBiLT5zaGFwZSwgZXhpdFRocmVzaG9sZCk7
CiAKLSAgICBpZiAoekRpZmYgPiAwKQorICAgIGlmICh6RGlmZiA+IG5vblplcm9UaHJlc2hvbGQp
CiAgICAgICAgIHJldHVybiBCQmVmb3JlQTsKLSAgICBpZiAoekRpZmYgPCAwKQorICAgIGlmICh6
RGlmZiA8IC1ub25aZXJvVGhyZXNob2xkKQogICAgICAgICByZXR1cm4gQUJlZm9yZUI7CiAKICAg
ICByZXR1cm4gTm9uZTsKQEAgLTM4OCwxMyArMzkzLDIwIEBAIHZvaWQgQ0NMYXllclNvcnRlcjo6
cmVtb3ZlRWRnZUZyb21MaXN0KEdyYXBoRWRnZSogZWRnZSwgVmVjdG9yPEdyYXBoRWRnZSo+JiBs
aXN0CiAvLyBjeWNsaWNhbCBvcmRlciBkZXBlbmRlbmNpZXMuIEN5Y2xlcyBhbmQgaW50ZXJzZWN0
aW9ucyBhcmUgYnJva2VuIGFyaWJ0cmFyaWx5LgogLy8gU29ydGluZyBvZiBsYXllcnMgaXMgZG9u
ZSB2aWEgYSB0b3BvbG9naWNhbCBzb3J0IG9mIGEgZGlyZWN0ZWQgZ3JhcGggd2hvc2Ugbm9kZXMg
YXJlCiAvLyB0aGUgbGF5ZXJzIHRoZW1zZWx2ZXMuIEFuIGVkZ2UgZnJvbSBub2RlIEEgdG8gbm9k
ZSBCIHNpZ25pZmllcyB0aGF0IGxheWVyIEEgbmVlZHMgdG8KLS8vIGJlIGRyYXduIGJlZm9yZSBs
YXllciBCLgorLy8gYmUgZHJhd24gYmVmb3JlIGxheWVyIEIuIElmIEEgYW5kIEIgaGF2ZSBubyBk
ZXBlbmRlbmN5IGJldHdlZW4gZWFjaCBvdGhlciwgdGhlbiB3ZQorLy8gcHJlc2VydmUgdGhlIG9y
ZGVyaW5nIG9mIHRob3NlIGxheWVycyBhcyB0aGV5IHdlcmUgaW4gdGhlIG9yaWdpbmFsIGxpc3Qu
CisvLwogLy8gVGhlIGRyYXcgb3JkZXIgYmV0d2VlbiB0d28gbGF5ZXJzIGlzIGRldGVybWluZWQg
YnkgcHJvamVjdGluZyB0aGUgdHdvIHRyaWFuZ2xlcyBtYWtpbmcKIC8vIHVwIGVhY2ggbGF5ZXIg
cXVhZCB0byB0aGUgWiA9IDAgcGxhbmUsIGZpbmRpbmcgcG9pbnRzIG9mIGludGVyc2VjdGlvbiBi
ZXR3ZWVuIHRoZSB0cmlhbmdsZXMKIC8vIGFuZCBiYWNrcHJvamVjdGluZyB0aG9zZSBwb2ludHMg
dG8gdGhlIHBsYW5lIG9mIHRoZSBsYXllciB0byBkZXRlcm1pbmUgdGhlIGNvcnJlc3BvbmRpbmcg
WgogLy8gY29vcmRpbmF0ZS4gVGhlIGxheWVyIHdpdGggdGhlIGxvd2VyIFogY29vcmRpbmF0ZSAo
ZmFydGhlciBmcm9tIHRoZSBleWUpIG5lZWRzIHRvIGJlIHJlbmRlcmVkCi0vLyBmaXJzdC4gSWYg
dGhlIGxheWVyIHByb2plY3Rpb25zIGRvbid0IGludGVyc2VjdCB0aGVuIHRoZSBsYXllcnMgY2Fu
IGRyYXduIGluIGFueSBvcmRlciBhbmQgbm8KLS8vIGVkZ2VzIGFyZSBjcmVhdGVkIGJldHdlZW4g
dGhlbSBpbiB0aGUgZ3JhcGguCisvLyBmaXJzdC4KKy8vCisvLyBJZiB0aGUgbGF5ZXIgcHJvamVj
dGlvbnMgZG9uJ3QgaW50ZXJzZWN0LCB0aGVuIG5vIGVkZ2VzIChkZXBlbmRlbmNpZXMpIGFyZSBj
cmVhdGVkCisvLyBiZXR3ZWVuIHRoZW0gaW4gdGhlIGdyYXBoLiBIT1dFVkVSLCBpbiB0aGlzIGNh
c2Ugd2Ugc3RpbGwgbmVlZCB0byBwcmVzZXJ2ZSB0aGUgb3JkZXJpbmcKKy8vIG9mIHRoZSBvcmln
aW5hbCBsaXN0IG9mIGxheWVycywgc2luY2UgdGhhdCBsaXN0IHNob3VsZCBhbHJlYWR5IGhhdmUg
cHJvcGVyIHotaW5kZXgKKy8vIG9yZGVyaW5nIG9mIGxheWVycy4KKy8vCiB2b2lkIENDTGF5ZXJT
b3J0ZXI6OnNvcnQoTGF5ZXJMaXN0OjppdGVyYXRvciBmaXJzdCwgTGF5ZXJMaXN0OjppdGVyYXRv
ciBsYXN0KQogewogI2lmICFkZWZpbmVkKCBOREVCVUcgKQpAQCAtNDA1LDcgKzQxNyw3IEBAIHZv
aWQgQ0NMYXllclNvcnRlcjo6c29ydChMYXllckxpc3Q6Oml0ZXJhdG9yIGZpcnN0LCBMYXllckxp
c3Q6Oml0ZXJhdG9yIGxhc3QpCiAgICAgY3JlYXRlR3JhcGhFZGdlcygpOwogCiAgICAgVmVjdG9y
PEdyYXBoTm9kZSo+IHNvcnRlZExpc3Q7Ci0gICAgVmVjdG9yPEdyYXBoTm9kZSo+IG5vSW5jb21p
bmdFZGdlTm9kZUxpc3Q7CisgICAgRGVxdWU8R3JhcGhOb2RlKj4gbm9JbmNvbWluZ0VkZ2VOb2Rl
TGlzdDsKIAogICAgIC8vIEZpbmQgYWxsIHRoZSBub2RlcyB0aGF0IGRvbid0IGhhdmUgaW5jb21p
bmcgZWRnZXMuCiAgICAgZm9yIChOb2RlTGlzdDo6aXRlcmF0b3IgbGEgPSBtX25vZGVzLmJlZ2lu
KCk7IGxhIDwgbV9ub2Rlcy5lbmQoKTsgbGErKykgewpAQCAtNDE4LDkgKzQzMCwxMiBAQCB2b2lk
IENDTGF5ZXJTb3J0ZXI6OnNvcnQoTGF5ZXJMaXN0OjppdGVyYXRvciBmaXJzdCwgTGF5ZXJMaXN0
OjppdGVyYXRvciBsYXN0KQogI2VuZGlmCiAgICAgd2hpbGUgKG1fYWN0aXZlRWRnZXMuc2l6ZSgp
IHx8IG5vSW5jb21pbmdFZGdlTm9kZUxpc3Quc2l6ZSgpKSB7CiAgICAgICAgIHdoaWxlIChub0lu
Y29taW5nRWRnZU5vZGVMaXN0LnNpemUoKSkgewotICAgICAgICAgICAgLy8gUG9wIHRoZSBsYXN0
IGVudHJ5IGZyb20gdGhlIGxpc3QuCi0gICAgICAgICAgICBHcmFwaE5vZGUqIGZyb21Ob2RlID0g
bm9JbmNvbWluZ0VkZ2VOb2RlTGlzdFtub0luY29taW5nRWRnZU5vZGVMaXN0LnNpemUoKSAtIDFd
OwotICAgICAgICAgICAgbm9JbmNvbWluZ0VkZ2VOb2RlTGlzdC5yZW1vdmVMYXN0KCk7CisKKyAg
ICAgICAgICAgIC8vIEl0IGlzIG5lY2Vzc2FyeSB0byBwcmVzZXJ2ZSB0aGUgZXhpc3Rpbmcgb3Jk
ZXJpbmcgb2YgbGF5ZXJzLCB3aGVuIHRoZXJlIGFyZQorICAgICAgICAgICAgLy8gbm8gZXhwbGlj
aXQgZGVwZW5kZW5jaWVzIChiZWNhdXNlIHRoaXMgZXhpc3Rpbmcgb3JkZXJpbmcgaGFzIGNvcnJl
Y3QKKyAgICAgICAgICAgIC8vIHotaW5kZXgvbGF5b3V0IG9yZGVyaW5nKS4gVG8gcHJlc2VydmUg
dGhpcyBvcmRlcmluZywgd2UgcHJvY2VzcyBOb2RlcyBpbgorICAgICAgICAgICAgLy8gdGhlIHNh
bWUgb3JkZXIgdGhhdCB0aGV5IHdlcmUgYWRkZWQgdG8gdGhlIGxpc3QuCisgICAgICAgICAgICBH
cmFwaE5vZGUqIGZyb21Ob2RlID0gbm9JbmNvbWluZ0VkZ2VOb2RlTGlzdC50YWtlRmlyc3QoKTsK
IAogICAgICAgICAgICAgLy8gQWRkIGl0IHRvIHRoZSBmaW5hbCBsaXN0LgogICAgICAgICAgICAg
c29ydGVkTGlzdC5hcHBlbmQoZnJvbU5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyU29ydGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDTGF5ZXJTb3J0ZXJUZXN0LmNwcAppbmRleCAyM2EwNDYwYmMxY2YzZmY1Yjcz
MzY4ODcxOGIzYzJmZTM0ZGNkMTE0Li42OTM0MmNkYTdjNjNiNjE1NDUwNzQ1ZWFiZDhiMWQxY2Ri
ZWZjZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJT
b3J0ZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJT
b3J0ZXJUZXN0LmNwcApAQCAtMjYsNiArMjYsOCBAQAogCiAjaW5jbHVkZSAiY2MvQ0NMYXllclNv
cnRlci5oIgogCisjaW5jbHVkZSAiY2MvQ0NMYXllckltcGwuaCIKKyNpbmNsdWRlICJjYy9DQ1Np
bmdsZVRocmVhZFByb3h5LmgiCiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CkBAIC0xNTYsNCArMTU4LDc2IEBAIFRFU1QoQ0NMYXllclNvcnRlclRl
c3QsIENhbGN1bGF0ZVpEaWZmKQogICAgIEVYUEVDVF9FUShDQ0xheWVyU29ydGVyOjpjYWxjdWxh
dGVaRGlmZihsYXllckMsIGxheWVyQywgdGhyZXNob2xkKSwgMC4wKTsKIH0KIAorVEVTVChDQ0xh
eWVyU29ydGVyVGVzdCwgdmVyaWZ5RXhpc3RpbmdPcmRlcmluZ1ByZXNlcnZlZFdoZW5Ob1pEaWZm
KQoreworICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCB0aGlzU2NvcGVJc09uSW1wbFRocmVh
ZDsKKworICAgIC8vIElmIHRoZXJlIGlzIG5vIHJlYXNvbiB0byByZS1zb3J0IHRoZSBsYXllcnMg
KGkuZS4gbm8gM2QgeiBkaWZmZXJlbmNlKSwgdGhlbiB0aGUKKyAgICAvLyBleGlzdGluZyBvcmRl
cmluZyBwcm92aWRlZCBvbiBpbnB1dCBzaG91bGQgYmUgcmV0YWluZWQuIFRoaXMgdGVzdCBjb3Zl
cnMgdGhlIGZpeCBpbgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NTA0Ni4gQmVmb3JlIHRoaXMgZml4LCBvcmRlcmluZyB3YXMKKyAgICAvLyBhY2NpZGVu
dGFsbHkgcmV2ZXJzZWQsIGNhdXNpbmcgYnVncyBpbiB6LWluZGV4IG9yZGVyaW5nIG9uIHdlYnNp
dGVzIHdoZW4KKyAgICAvLyBwcmVzZXJ2ZXMzRCB0cmlnZ2VyZWQgdGhlIENDTGF5ZXJTb3J0ZXIu
CisKKyAgICAvLyBJbnB1dCBsaXN0IG9mIGxheWVyczogWzEsIDIsIDMsIDQsIDVdLgorICAgIC8v
IEV4cGVjdGVkIG91dHB1dDogWzMsIDQsIDEsIDIsIDVdLgorICAgIC8vICAgIC0gMSwgMiwgYW5k
IDUgZG8gbm90IGhhdmUgYSAzZCB6IGRpZmZlcmVuY2UsIGFuZCB0aGVyZWZvcmUgdGhlaXIgcmVs
YXRpdmUgb3JkZXJpbmcgc2hvdWxkIGJlIHJldGFpbmVkLgorICAgIC8vICAgIC0gMyBhbmQgNCBk
byBub3QgaGF2ZSBhIDNkIHogZGlmZmVyZW5jZSwgYW5kIHRoZXJlZm9yZSB0aGVpciByZWxhdGl2
ZSBvcmRlcmluZyBzaG91bGQgYmUgcmV0YWluZWQuCisgICAgLy8gICAgLSAzIGFuZCA0IHNob3Vs
ZCBiZSByZS1zb3J0ZWQgc28gdGhleSBhcmUgaW4gZnJvbnQgb2YgMSwgMiwgYW5kIDUuCisKKyAg
ICBSZWZQdHI8Q0NMYXllckltcGw+IGxheWVyMSA9IENDTGF5ZXJJbXBsOjpjcmVhdGUoMSk7Cisg
ICAgUmVmUHRyPENDTGF5ZXJJbXBsPiBsYXllcjIgPSBDQ0xheWVySW1wbDo6Y3JlYXRlKDIpOwor
ICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gbGF5ZXIzID0gQ0NMYXllckltcGw6OmNyZWF0ZSgzKTsK
KyAgICBSZWZQdHI8Q0NMYXllckltcGw+IGxheWVyNCA9IENDTGF5ZXJJbXBsOjpjcmVhdGUoNCk7
CisgICAgUmVmUHRyPENDTGF5ZXJJbXBsPiBsYXllcjUgPSBDQ0xheWVySW1wbDo6Y3JlYXRlKDUp
OworCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggQmVoaW5kTWF0cml4OworICAgIEJlaGluZE1h
dHJpeC50cmFuc2xhdGUzZCgwLCAwLCAyKTsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBGcm9u
dE1hdHJpeDsKKyAgICBGcm9udE1hdHJpeC50cmFuc2xhdGUzZCgwLCAwLCAxKTsKKworICAgIGxh
eWVyMS0+c2V0Qm91bmRzKEludFNpemUoMTAsIDEwKSk7CisgICAgbGF5ZXIxLT5zZXREcmF3VHJh
bnNmb3JtKEJlaGluZE1hdHJpeCk7CisgICAgbGF5ZXIxLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7
CisKKyAgICBsYXllcjItPnNldEJvdW5kcyhJbnRTaXplKDIwLCAyMCkpOworICAgIGxheWVyMi0+
c2V0RHJhd1RyYW5zZm9ybShCZWhpbmRNYXRyaXgpOworICAgIGxheWVyMi0+c2V0RHJhd3NDb250
ZW50KHRydWUpOworCisgICAgbGF5ZXIzLT5zZXRCb3VuZHMoSW50U2l6ZSgzMCwgMzApKTsKKyAg
ICBsYXllcjMtPnNldERyYXdUcmFuc2Zvcm0oRnJvbnRNYXRyaXgpOworICAgIGxheWVyMy0+c2V0
RHJhd3NDb250ZW50KHRydWUpOworCisgICAgbGF5ZXI0LT5zZXRCb3VuZHMoSW50U2l6ZSg0MCwg
NDApKTsKKyAgICBsYXllcjQtPnNldERyYXdUcmFuc2Zvcm0oRnJvbnRNYXRyaXgpOworICAgIGxh
eWVyNC0+c2V0RHJhd3NDb250ZW50KHRydWUpOworCisgICAgbGF5ZXI1LT5zZXRCb3VuZHMoSW50
U2l6ZSg1MCwgNTApKTsKKyAgICBsYXllcjUtPnNldERyYXdUcmFuc2Zvcm0oQmVoaW5kTWF0cml4
KTsKKyAgICBsYXllcjUtPnNldERyYXdzQ29udGVudCh0cnVlKTsKKworICAgIFZlY3RvcjxSZWZQ
dHI8Q0NMYXllckltcGw+ID4gbGF5ZXJMaXN0OworICAgIGxheWVyTGlzdC5hcHBlbmQobGF5ZXIx
KTsKKyAgICBsYXllckxpc3QuYXBwZW5kKGxheWVyMik7CisgICAgbGF5ZXJMaXN0LmFwcGVuZChs
YXllcjMpOworICAgIGxheWVyTGlzdC5hcHBlbmQobGF5ZXI0KTsKKyAgICBsYXllckxpc3QuYXBw
ZW5kKGxheWVyNSk7CisKKyAgICBBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90Pig1KSwgbGF5
ZXJMaXN0LnNpemUoKSk7CisgICAgRVhQRUNUX0VRKDEsIGxheWVyTGlzdFswXS0+aWQoKSk7Cisg
ICAgRVhQRUNUX0VRKDIsIGxheWVyTGlzdFsxXS0+aWQoKSk7CisgICAgRVhQRUNUX0VRKDMsIGxh
eWVyTGlzdFsyXS0+aWQoKSk7CisgICAgRVhQRUNUX0VRKDQsIGxheWVyTGlzdFszXS0+aWQoKSk7
CisgICAgRVhQRUNUX0VRKDUsIGxheWVyTGlzdFs0XS0+aWQoKSk7CisKKyAgICBDQ0xheWVyU29y
dGVyIGxheWVyU29ydGVyOworICAgIGxheWVyU29ydGVyLnNvcnQobGF5ZXJMaXN0LmJlZ2luKCks
IGxheWVyTGlzdC5lbmQoKSk7CisKKyAgICBBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90Pig1
KSwgbGF5ZXJMaXN0LnNpemUoKSk7CisgICAgRVhQRUNUX0VRKDMsIGxheWVyTGlzdFswXS0+aWQo
KSk7CisgICAgRVhQRUNUX0VRKDQsIGxheWVyTGlzdFsxXS0+aWQoKSk7CisgICAgRVhQRUNUX0VR
KDEsIGxheWVyTGlzdFsyXS0+aWQoKSk7CisgICAgRVhQRUNUX0VRKDIsIGxheWVyTGlzdFszXS0+
aWQoKSk7CisgICAgRVhQRUNUX0VRKDUsIGxheWVyTGlzdFs0XS0+aWQoKSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121004</attachid>
            <date>2012-01-03 15:07:36 -0800</date>
            <delta_ts>2012-01-03 17:34:24 -0800</delta_ts>
            <desc>merged the existing exitThreshold and new nonZeroThreshold</desc>
            <filename>bug-75046-20120103150735.patch</filename>
            <type>text/plain</type>
            <size>9692</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThiZGY4NTVhOTVlNDYz
NjgxODM3MmI0NDhkZDEwMWE0N2Y5MmQ4NS4uZTg2OWU3OWRhYWEwZjQwNjE1YTBiYmEzNTM1MDUx
NDY5YTAxMDcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAxLTAzICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Q0NMYXllclNvcnRlciBhY2NpZGVudGFsbHkgcmV2ZXJzZXMgb3JkZXIgb2Ygc29tZSBsYXllcnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA0Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuaXQgdGVz
dCBhZGRlZCB0byBDQ0xheWVyU29ydGVyVGVzdC5jcHAKKworICAgICAgICBGaXhlcyB0d28gcmVs
YXRlZCBidWdzIHRoYXQgd2VyZSBjYXVzaW5nIHotb3JkZXJpbmcgcHJvYmxlbXMgaW4KKyAgICAg
ICAgbGF5ZXJzIHdoZW4gcHJlc2VydmVzM0QgdHJpZ2dlcnMgdGhlIG5lZWQgZm9yIGxheWVyIHNv
cnRpbmcuCisKKyAgICAgICAgVGhlIGZpcnN0IHByb2JsZW0gd2FzIHRoYXQgQ0NMYXllclNvcnRl
ciBhY2NpZGVudGFsbHkgcmV2ZXJzZWQgdGhlCisgICAgICAgIG9yZGVyIG9mIGxheWVycyB3aGVu
IHRoZXJlIHdhcyBubyBzb3J0aW5nIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGVtLgorCisgICAgICAg
IFRoZSBzZWNvbmQgcHJvYmxlbSB3YXMgdGhhdCB6RGlmZiBoYWQgbnVtZXJpY2FsIHByZWNpc2lv
biBwcm9ibGVtcworICAgICAgICB0aGF0IGZvcmNlZCBzb3J0aW5nIGRlcGVuZGVuY2llcyB0aGF0
IHdlcmUgc29tZXRpbWVzIGluY29ycmVjdCwKKyAgICAgICAgd2hlbiB0aGUgZGVwZW5kZW5jaWVz
IHNob3VsZCBub3QgaGF2ZSBleGlzdGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclNvcnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
U29ydGVyOjpjaGVja092ZXJsYXApOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclNvcnRlcjo6
c29ydCk6CisKIDIwMTItMDEtMDMgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5i
b3NzYS5vcmc+CiAKICAgICAgICAgU29ydCB0aGUgV2ViQ29yZSBYQ29kZSBwcm9qZWN0IGZpbGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTljMGJhMGI3MDY3ZDMyNDk4NjEzZTU3Y2E5
OGEwMjVkNTFmZjQxYy4uMjE4MDRmODI5ZDU5NzZlZDczN2ZlZTMyZWQwYTEwZWFkMDk1NjVmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMS0wMyAg
U2hhd24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIENDTGF5ZXJTb3J0ZXIgYWNjaWRlbnRhbGx5IHJldmVyc2VzIG9yZGVyIG9mIHNvbWUgbGF5
ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUw
NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRl
c3RzL0NDTGF5ZXJTb3J0ZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAy
MDEyLTAxLTAzICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAg
W2Nocm9taXVtXSBNYWtlIHRpbGVkIGxheWVyJ3MgdGlsZXIgYWx3YXlzIGV4aXN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
U29ydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJTb3J0ZXIuY3BwCmluZGV4IGY4ODA1Nzc4M2JkY2FjYjBkZTYwMDAyNDUwOWQ3OTRl
NTQ0NTU2NGUuLjM5NmIzNzNiZmI1Yjk0NDg3M2I0YzliY2IxNjI3ZTk4ZDM3NzkzOTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJTb3J0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJTb3J0ZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiVHJh
bnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJjYy9DQ1JlbmRlclN1cmZhY2UuaCIKICNp
bmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIApAQCAtMjU5LDEzICsyNjAsMTYgQEAgQ0NMYXllclNvcnRlcjo6QUJDb21wYXJl
UmVzdWx0IENDTGF5ZXJTb3J0ZXI6OmNoZWNrT3ZlcmxhcChHcmFwaE5vZGUqIGEsIEdyYXBoTm8K
ICAgICBpZiAoIWEtPnNoYXBlLmJvdW5kaW5nQm94LmludGVyc2VjdHMoYi0+c2hhcGUuYm91bmRp
bmdCb3gpKQogICAgICAgICByZXR1cm4gTm9uZTsKIAotICAgIC8vIE1ha2UgdGhlIGVhcmx5IGV4
aXQgdGhyZXNob2xkIHByb3BvcnRpb25hbCB0byB0aGUgdG90YWwgWiByYW5nZS4KLSAgICBmbG9h
dCBleGl0VGhyZXNob2xkID0gbV96UmFuZ2UgKiAwLjAxOwotICAgIGZsb2F0IHpEaWZmID0gY2Fs
Y3VsYXRlWkRpZmYoYS0+c2hhcGUsIGItPnNoYXBlLCBleGl0VGhyZXNob2xkKTsKKyAgICAvLyBU
aGlzIHRocmVzaG9sZCBpcyBkZWZpbmVkIHJlbGF0aXZlIHRvIHRoZSB0b3RhbCBaIHJhbmdlLiBJ
ZiBmdXJ0aGVyIFotZmlnaHRpbmcKKyAgICAvLyBidWdzIGNvbWUgdXAgZHVlIHRvIHByZWNpc2lv
biBlcnJvcnMsIGl0IG1heSBiZSB3b3J0aCBjb25zaWRlcmluZyBkb2luZyBhbiB1bHAKKyAgICAv
LyBlcnJvciBtZWFzdXJlbWVudCBpbnN0ZWFkLgorICAgIGZsb2F0IG5vblplcm9UaHJlc2hvbGQg
PSBtYXgobV96UmFuZ2UgKiAwLjAwMSwgMC4wMDEpOwogCi0gICAgaWYgKHpEaWZmID4gMCkKKyAg
ICBmbG9hdCB6RGlmZiA9IGNhbGN1bGF0ZVpEaWZmKGEtPnNoYXBlLCBiLT5zaGFwZSwgbm9uWmVy
b1RocmVzaG9sZCk7CisKKyAgICBpZiAoekRpZmYgPiBub25aZXJvVGhyZXNob2xkKQogICAgICAg
ICByZXR1cm4gQkJlZm9yZUE7Ci0gICAgaWYgKHpEaWZmIDwgMCkKKyAgICBpZiAoekRpZmYgPCAt
bm9uWmVyb1RocmVzaG9sZCkKICAgICAgICAgcmV0dXJuIEFCZWZvcmVCOwogCiAgICAgcmV0dXJu
IE5vbmU7CkBAIC0zODgsMTMgKzM5MiwyMCBAQCB2b2lkIENDTGF5ZXJTb3J0ZXI6OnJlbW92ZUVk
Z2VGcm9tTGlzdChHcmFwaEVkZ2UqIGVkZ2UsIFZlY3RvcjxHcmFwaEVkZ2UqPiYgbGlzdAogLy8g
Y3ljbGljYWwgb3JkZXIgZGVwZW5kZW5jaWVzLiBDeWNsZXMgYW5kIGludGVyc2VjdGlvbnMgYXJl
IGJyb2tlbiBhcmlidHJhcmlseS4KIC8vIFNvcnRpbmcgb2YgbGF5ZXJzIGlzIGRvbmUgdmlhIGEg
dG9wb2xvZ2ljYWwgc29ydCBvZiBhIGRpcmVjdGVkIGdyYXBoIHdob3NlIG5vZGVzIGFyZQogLy8g
dGhlIGxheWVycyB0aGVtc2VsdmVzLiBBbiBlZGdlIGZyb20gbm9kZSBBIHRvIG5vZGUgQiBzaWdu
aWZpZXMgdGhhdCBsYXllciBBIG5lZWRzIHRvCi0vLyBiZSBkcmF3biBiZWZvcmUgbGF5ZXIgQi4K
Ky8vIGJlIGRyYXduIGJlZm9yZSBsYXllciBCLiBJZiBBIGFuZCBCIGhhdmUgbm8gZGVwZW5kZW5j
eSBiZXR3ZWVuIGVhY2ggb3RoZXIsIHRoZW4gd2UKKy8vIHByZXNlcnZlIHRoZSBvcmRlcmluZyBv
ZiB0aG9zZSBsYXllcnMgYXMgdGhleSB3ZXJlIGluIHRoZSBvcmlnaW5hbCBsaXN0LgorLy8KIC8v
IFRoZSBkcmF3IG9yZGVyIGJldHdlZW4gdHdvIGxheWVycyBpcyBkZXRlcm1pbmVkIGJ5IHByb2pl
Y3RpbmcgdGhlIHR3byB0cmlhbmdsZXMgbWFraW5nCiAvLyB1cCBlYWNoIGxheWVyIHF1YWQgdG8g
dGhlIFogPSAwIHBsYW5lLCBmaW5kaW5nIHBvaW50cyBvZiBpbnRlcnNlY3Rpb24gYmV0d2VlbiB0
aGUgdHJpYW5nbGVzCiAvLyBhbmQgYmFja3Byb2plY3RpbmcgdGhvc2UgcG9pbnRzIHRvIHRoZSBw
bGFuZSBvZiB0aGUgbGF5ZXIgdG8gZGV0ZXJtaW5lIHRoZSBjb3JyZXNwb25kaW5nIFoKIC8vIGNv
b3JkaW5hdGUuIFRoZSBsYXllciB3aXRoIHRoZSBsb3dlciBaIGNvb3JkaW5hdGUgKGZhcnRoZXIg
ZnJvbSB0aGUgZXllKSBuZWVkcyB0byBiZSByZW5kZXJlZAotLy8gZmlyc3QuIElmIHRoZSBsYXll
ciBwcm9qZWN0aW9ucyBkb24ndCBpbnRlcnNlY3QgdGhlbiB0aGUgbGF5ZXJzIGNhbiBkcmF3biBp
biBhbnkgb3JkZXIgYW5kIG5vCi0vLyBlZGdlcyBhcmUgY3JlYXRlZCBiZXR3ZWVuIHRoZW0gaW4g
dGhlIGdyYXBoLgorLy8gZmlyc3QuCisvLworLy8gSWYgdGhlIGxheWVyIHByb2plY3Rpb25zIGRv
bid0IGludGVyc2VjdCwgdGhlbiBubyBlZGdlcyAoZGVwZW5kZW5jaWVzKSBhcmUgY3JlYXRlZAor
Ly8gYmV0d2VlbiB0aGVtIGluIHRoZSBncmFwaC4gSE9XRVZFUiwgaW4gdGhpcyBjYXNlIHdlIHN0
aWxsIG5lZWQgdG8gcHJlc2VydmUgdGhlIG9yZGVyaW5nCisvLyBvZiB0aGUgb3JpZ2luYWwgbGlz
dCBvZiBsYXllcnMsIHNpbmNlIHRoYXQgbGlzdCBzaG91bGQgYWxyZWFkeSBoYXZlIHByb3BlciB6
LWluZGV4CisvLyBvcmRlcmluZyBvZiBsYXllcnMuCisvLwogdm9pZCBDQ0xheWVyU29ydGVyOjpz
b3J0KExheWVyTGlzdDo6aXRlcmF0b3IgZmlyc3QsIExheWVyTGlzdDo6aXRlcmF0b3IgbGFzdCkK
IHsKICNpZiAhZGVmaW5lZCggTkRFQlVHICkKQEAgLTQwNSw3ICs0MTYsNyBAQCB2b2lkIENDTGF5
ZXJTb3J0ZXI6OnNvcnQoTGF5ZXJMaXN0OjppdGVyYXRvciBmaXJzdCwgTGF5ZXJMaXN0OjppdGVy
YXRvciBsYXN0KQogICAgIGNyZWF0ZUdyYXBoRWRnZXMoKTsKIAogICAgIFZlY3RvcjxHcmFwaE5v
ZGUqPiBzb3J0ZWRMaXN0OwotICAgIFZlY3RvcjxHcmFwaE5vZGUqPiBub0luY29taW5nRWRnZU5v
ZGVMaXN0OworICAgIERlcXVlPEdyYXBoTm9kZSo+IG5vSW5jb21pbmdFZGdlTm9kZUxpc3Q7CiAK
ICAgICAvLyBGaW5kIGFsbCB0aGUgbm9kZXMgdGhhdCBkb24ndCBoYXZlIGluY29taW5nIGVkZ2Vz
LgogICAgIGZvciAoTm9kZUxpc3Q6Oml0ZXJhdG9yIGxhID0gbV9ub2Rlcy5iZWdpbigpOyBsYSA8
IG1fbm9kZXMuZW5kKCk7IGxhKyspIHsKQEAgLTQxOCw5ICs0MjksMTIgQEAgdm9pZCBDQ0xheWVy
U29ydGVyOjpzb3J0KExheWVyTGlzdDo6aXRlcmF0b3IgZmlyc3QsIExheWVyTGlzdDo6aXRlcmF0
b3IgbGFzdCkKICNlbmRpZgogICAgIHdoaWxlIChtX2FjdGl2ZUVkZ2VzLnNpemUoKSB8fCBub0lu
Y29taW5nRWRnZU5vZGVMaXN0LnNpemUoKSkgewogICAgICAgICB3aGlsZSAobm9JbmNvbWluZ0Vk
Z2VOb2RlTGlzdC5zaXplKCkpIHsKLSAgICAgICAgICAgIC8vIFBvcCB0aGUgbGFzdCBlbnRyeSBm
cm9tIHRoZSBsaXN0LgotICAgICAgICAgICAgR3JhcGhOb2RlKiBmcm9tTm9kZSA9IG5vSW5jb21p
bmdFZGdlTm9kZUxpc3Rbbm9JbmNvbWluZ0VkZ2VOb2RlTGlzdC5zaXplKCkgLSAxXTsKLSAgICAg
ICAgICAgIG5vSW5jb21pbmdFZGdlTm9kZUxpc3QucmVtb3ZlTGFzdCgpOworCisgICAgICAgICAg
ICAvLyBJdCBpcyBuZWNlc3NhcnkgdG8gcHJlc2VydmUgdGhlIGV4aXN0aW5nIG9yZGVyaW5nIG9m
IGxheWVycywgd2hlbiB0aGVyZSBhcmUKKyAgICAgICAgICAgIC8vIG5vIGV4cGxpY2l0IGRlcGVu
ZGVuY2llcyAoYmVjYXVzZSB0aGlzIGV4aXN0aW5nIG9yZGVyaW5nIGhhcyBjb3JyZWN0CisgICAg
ICAgICAgICAvLyB6LWluZGV4L2xheW91dCBvcmRlcmluZykuIFRvIHByZXNlcnZlIHRoaXMgb3Jk
ZXJpbmcsIHdlIHByb2Nlc3MgTm9kZXMgaW4KKyAgICAgICAgICAgIC8vIHRoZSBzYW1lIG9yZGVy
IHRoYXQgdGhleSB3ZXJlIGFkZGVkIHRvIHRoZSBsaXN0LgorICAgICAgICAgICAgR3JhcGhOb2Rl
KiBmcm9tTm9kZSA9IG5vSW5jb21pbmdFZGdlTm9kZUxpc3QudGFrZUZpcnN0KCk7CiAKICAgICAg
ICAgICAgIC8vIEFkZCBpdCB0byB0aGUgZmluYWwgbGlzdC4KICAgICAgICAgICAgIHNvcnRlZExp
c3QuYXBwZW5kKGZyb21Ob2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NMYXllclNvcnRlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ0xheWVyU29ydGVyVGVzdC5jcHAKaW5kZXggMjNhMDQ2MGJjMWNmM2ZmNWI3MzM2ODg3MThi
M2MyZmUzNGRjZDExNC4uNjkzNDJjZGE3YzYzYjYxNTQ1MDc0NWVhYmQ4YjFkMWNkYmVmY2U1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyU29ydGVyVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyU29ydGVyVGVz
dC5jcHAKQEAgLTI2LDYgKzI2LDggQEAKIAogI2luY2x1ZGUgImNjL0NDTGF5ZXJTb3J0ZXIuaCIK
IAorI2luY2x1ZGUgImNjL0NDTGF5ZXJJbXBsLmgiCisjaW5jbHVkZSAiY2MvQ0NTaW5nbGVUaHJl
YWRQcm94eS5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwpAQCAtMTU2LDQgKzE1OCw3NiBAQCBURVNUKENDTGF5ZXJTb3J0ZXJUZXN0LCBDYWxj
dWxhdGVaRGlmZikKICAgICBFWFBFQ1RfRVEoQ0NMYXllclNvcnRlcjo6Y2FsY3VsYXRlWkRpZmYo
bGF5ZXJDLCBsYXllckMsIHRocmVzaG9sZCksIDAuMCk7CiB9CiAKK1RFU1QoQ0NMYXllclNvcnRl
clRlc3QsIHZlcmlmeUV4aXN0aW5nT3JkZXJpbmdQcmVzZXJ2ZWRXaGVuTm9aRGlmZikKK3sKKyAg
ICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgdGhpc1Njb3BlSXNPbkltcGxUaHJlYWQ7CisKKyAg
ICAvLyBJZiB0aGVyZSBpcyBubyByZWFzb24gdG8gcmUtc29ydCB0aGUgbGF5ZXJzIChpLmUuIG5v
IDNkIHogZGlmZmVyZW5jZSksIHRoZW4gdGhlCisgICAgLy8gZXhpc3Rpbmcgb3JkZXJpbmcgcHJv
dmlkZWQgb24gaW5wdXQgc2hvdWxkIGJlIHJldGFpbmVkLiBUaGlzIHRlc3QgY292ZXJzIHRoZSBm
aXggaW4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUw
NDYuIEJlZm9yZSB0aGlzIGZpeCwgb3JkZXJpbmcgd2FzCisgICAgLy8gYWNjaWRlbnRhbGx5IHJl
dmVyc2VkLCBjYXVzaW5nIGJ1Z3MgaW4gei1pbmRleCBvcmRlcmluZyBvbiB3ZWJzaXRlcyB3aGVu
CisgICAgLy8gcHJlc2VydmVzM0QgdHJpZ2dlcmVkIHRoZSBDQ0xheWVyU29ydGVyLgorCisgICAg
Ly8gSW5wdXQgbGlzdCBvZiBsYXllcnM6IFsxLCAyLCAzLCA0LCA1XS4KKyAgICAvLyBFeHBlY3Rl
ZCBvdXRwdXQ6IFszLCA0LCAxLCAyLCA1XS4KKyAgICAvLyAgICAtIDEsIDIsIGFuZCA1IGRvIG5v
dCBoYXZlIGEgM2QgeiBkaWZmZXJlbmNlLCBhbmQgdGhlcmVmb3JlIHRoZWlyIHJlbGF0aXZlIG9y
ZGVyaW5nIHNob3VsZCBiZSByZXRhaW5lZC4KKyAgICAvLyAgICAtIDMgYW5kIDQgZG8gbm90IGhh
dmUgYSAzZCB6IGRpZmZlcmVuY2UsIGFuZCB0aGVyZWZvcmUgdGhlaXIgcmVsYXRpdmUgb3JkZXJp
bmcgc2hvdWxkIGJlIHJldGFpbmVkLgorICAgIC8vICAgIC0gMyBhbmQgNCBzaG91bGQgYmUgcmUt
c29ydGVkIHNvIHRoZXkgYXJlIGluIGZyb250IG9mIDEsIDIsIGFuZCA1LgorCisgICAgUmVmUHRy
PENDTGF5ZXJJbXBsPiBsYXllcjEgPSBDQ0xheWVySW1wbDo6Y3JlYXRlKDEpOworICAgIFJlZlB0
cjxDQ0xheWVySW1wbD4gbGF5ZXIyID0gQ0NMYXllckltcGw6OmNyZWF0ZSgyKTsKKyAgICBSZWZQ
dHI8Q0NMYXllckltcGw+IGxheWVyMyA9IENDTGF5ZXJJbXBsOjpjcmVhdGUoMyk7CisgICAgUmVm
UHRyPENDTGF5ZXJJbXBsPiBsYXllcjQgPSBDQ0xheWVySW1wbDo6Y3JlYXRlKDQpOworICAgIFJl
ZlB0cjxDQ0xheWVySW1wbD4gbGF5ZXI1ID0gQ0NMYXllckltcGw6OmNyZWF0ZSg1KTsKKworICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IEJlaGluZE1hdHJpeDsKKyAgICBCZWhpbmRNYXRyaXgudHJh
bnNsYXRlM2QoMCwgMCwgMik7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggRnJvbnRNYXRyaXg7
CisgICAgRnJvbnRNYXRyaXgudHJhbnNsYXRlM2QoMCwgMCwgMSk7CisKKyAgICBsYXllcjEtPnNl
dEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworICAgIGxheWVyMS0+c2V0RHJhd1RyYW5zZm9ybShC
ZWhpbmRNYXRyaXgpOworICAgIGxheWVyMS0+c2V0RHJhd3NDb250ZW50KHRydWUpOworCisgICAg
bGF5ZXIyLT5zZXRCb3VuZHMoSW50U2l6ZSgyMCwgMjApKTsKKyAgICBsYXllcjItPnNldERyYXdU
cmFuc2Zvcm0oQmVoaW5kTWF0cml4KTsKKyAgICBsYXllcjItPnNldERyYXdzQ29udGVudCh0cnVl
KTsKKworICAgIGxheWVyMy0+c2V0Qm91bmRzKEludFNpemUoMzAsIDMwKSk7CisgICAgbGF5ZXIz
LT5zZXREcmF3VHJhbnNmb3JtKEZyb250TWF0cml4KTsKKyAgICBsYXllcjMtPnNldERyYXdzQ29u
dGVudCh0cnVlKTsKKworICAgIGxheWVyNC0+c2V0Qm91bmRzKEludFNpemUoNDAsIDQwKSk7Cisg
ICAgbGF5ZXI0LT5zZXREcmF3VHJhbnNmb3JtKEZyb250TWF0cml4KTsKKyAgICBsYXllcjQtPnNl
dERyYXdzQ29udGVudCh0cnVlKTsKKworICAgIGxheWVyNS0+c2V0Qm91bmRzKEludFNpemUoNTAs
IDUwKSk7CisgICAgbGF5ZXI1LT5zZXREcmF3VHJhbnNmb3JtKEJlaGluZE1hdHJpeCk7CisgICAg
bGF5ZXI1LT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisKKyAgICBWZWN0b3I8UmVmUHRyPENDTGF5
ZXJJbXBsPiA+IGxheWVyTGlzdDsKKyAgICBsYXllckxpc3QuYXBwZW5kKGxheWVyMSk7CisgICAg
bGF5ZXJMaXN0LmFwcGVuZChsYXllcjIpOworICAgIGxheWVyTGlzdC5hcHBlbmQobGF5ZXIzKTsK
KyAgICBsYXllckxpc3QuYXBwZW5kKGxheWVyNCk7CisgICAgbGF5ZXJMaXN0LmFwcGVuZChsYXll
cjUpOworCisgICAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oNSksIGxheWVyTGlzdC5z
aXplKCkpOworICAgIEVYUEVDVF9FUSgxLCBsYXllckxpc3RbMF0tPmlkKCkpOworICAgIEVYUEVD
VF9FUSgyLCBsYXllckxpc3RbMV0tPmlkKCkpOworICAgIEVYUEVDVF9FUSgzLCBsYXllckxpc3Rb
Ml0tPmlkKCkpOworICAgIEVYUEVDVF9FUSg0LCBsYXllckxpc3RbM10tPmlkKCkpOworICAgIEVY
UEVDVF9FUSg1LCBsYXllckxpc3RbNF0tPmlkKCkpOworCisgICAgQ0NMYXllclNvcnRlciBsYXll
clNvcnRlcjsKKyAgICBsYXllclNvcnRlci5zb3J0KGxheWVyTGlzdC5iZWdpbigpLCBsYXllckxp
c3QuZW5kKCkpOworCisgICAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oNSksIGxheWVy
TGlzdC5zaXplKCkpOworICAgIEVYUEVDVF9FUSgzLCBsYXllckxpc3RbMF0tPmlkKCkpOworICAg
IEVYUEVDVF9FUSg0LCBsYXllckxpc3RbMV0tPmlkKCkpOworICAgIEVYUEVDVF9FUSgxLCBsYXll
ckxpc3RbMl0tPmlkKCkpOworICAgIEVYUEVDVF9FUSgyLCBsYXllckxpc3RbM10tPmlkKCkpOwor
ICAgIEVYUEVDVF9FUSg1LCBsYXllckxpc3RbNF0tPmlkKCkpOworfQorCiB9IC8vIG5hbWVzcGFj
ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121026</attachid>
            <date>2012-01-03 17:34:28 -0800</date>
            <delta_ts>2012-01-03 19:37:00 -0800</delta_ts>
            <desc>un-merged exitThreshold and nonZeroThreshold again</desc>
            <filename>bug-75046-20120103173427.patch</filename>
            <type>text/plain</type>
            <size>9620</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThiZGY4NTVhOTVlNDYz
NjgxODM3MmI0NDhkZDEwMWE0N2Y5MmQ4NS4uZTg2OWU3OWRhYWEwZjQwNjE1YTBiYmEzNTM1MDUx
NDY5YTAxMDcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAxLTAzICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Q0NMYXllclNvcnRlciBhY2NpZGVudGFsbHkgcmV2ZXJzZXMgb3JkZXIgb2Ygc29tZSBsYXllcnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA0Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuaXQgdGVz
dCBhZGRlZCB0byBDQ0xheWVyU29ydGVyVGVzdC5jcHAKKworICAgICAgICBGaXhlcyB0d28gcmVs
YXRlZCBidWdzIHRoYXQgd2VyZSBjYXVzaW5nIHotb3JkZXJpbmcgcHJvYmxlbXMgaW4KKyAgICAg
ICAgbGF5ZXJzIHdoZW4gcHJlc2VydmVzM0QgdHJpZ2dlcnMgdGhlIG5lZWQgZm9yIGxheWVyIHNv
cnRpbmcuCisKKyAgICAgICAgVGhlIGZpcnN0IHByb2JsZW0gd2FzIHRoYXQgQ0NMYXllclNvcnRl
ciBhY2NpZGVudGFsbHkgcmV2ZXJzZWQgdGhlCisgICAgICAgIG9yZGVyIG9mIGxheWVycyB3aGVu
IHRoZXJlIHdhcyBubyBzb3J0aW5nIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGVtLgorCisgICAgICAg
IFRoZSBzZWNvbmQgcHJvYmxlbSB3YXMgdGhhdCB6RGlmZiBoYWQgbnVtZXJpY2FsIHByZWNpc2lv
biBwcm9ibGVtcworICAgICAgICB0aGF0IGZvcmNlZCBzb3J0aW5nIGRlcGVuZGVuY2llcyB0aGF0
IHdlcmUgc29tZXRpbWVzIGluY29ycmVjdCwKKyAgICAgICAgd2hlbiB0aGUgZGVwZW5kZW5jaWVz
IHNob3VsZCBub3QgaGF2ZSBleGlzdGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclNvcnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
U29ydGVyOjpjaGVja092ZXJsYXApOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclNvcnRlcjo6
c29ydCk6CisKIDIwMTItMDEtMDMgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5i
b3NzYS5vcmc+CiAKICAgICAgICAgU29ydCB0aGUgV2ViQ29yZSBYQ29kZSBwcm9qZWN0IGZpbGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTljMGJhMGI3MDY3ZDMyNDk4NjEzZTU3Y2E5
OGEwMjVkNTFmZjQxYy4uMjE4MDRmODI5ZDU5NzZlZDczN2ZlZTMyZWQwYTEwZWFkMDk1NjVmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMS0wMyAg
U2hhd24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIENDTGF5ZXJTb3J0ZXIgYWNjaWRlbnRhbGx5IHJldmVyc2VzIG9yZGVyIG9mIHNvbWUgbGF5
ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUw
NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRl
c3RzL0NDTGF5ZXJTb3J0ZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAy
MDEyLTAxLTAzICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAg
W2Nocm9taXVtXSBNYWtlIHRpbGVkIGxheWVyJ3MgdGlsZXIgYWx3YXlzIGV4aXN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
U29ydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJTb3J0ZXIuY3BwCmluZGV4IGY4ODA1Nzc4M2JkY2FjYjBkZTYwMDAyNDUwOWQ3OTRl
NTQ0NTU2NGUuLjc1Mjg1NTQ0NzE3Y2ZkYjVhOWEyY2QzY2FmN2RmZDMwY2IyNzE5NjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJTb3J0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJTb3J0ZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiVHJh
bnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJjYy9DQ1JlbmRlclN1cmZhY2UuaCIKICNp
bmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIApAQCAtMjU5LDEzICsyNjAsMTcgQEAgQ0NMYXllclNvcnRlcjo6QUJDb21wYXJl
UmVzdWx0IENDTGF5ZXJTb3J0ZXI6OmNoZWNrT3ZlcmxhcChHcmFwaE5vZGUqIGEsIEdyYXBoTm8K
ICAgICBpZiAoIWEtPnNoYXBlLmJvdW5kaW5nQm94LmludGVyc2VjdHMoYi0+c2hhcGUuYm91bmRp
bmdCb3gpKQogICAgICAgICByZXR1cm4gTm9uZTsKIAotICAgIC8vIE1ha2UgdGhlIGVhcmx5IGV4
aXQgdGhyZXNob2xkIHByb3BvcnRpb25hbCB0byB0aGUgdG90YWwgWiByYW5nZS4KKyAgICAvLyBU
aGVzZSB0aHJlc2hvbGRzIGFyZSBkZWZpbmVkIHJlbGF0aXZlIHRvIHRoZSB0b3RhbCBaIHJhbmdl
LiBJZiBmdXJ0aGVyIFotZmlnaHRpbmcKKyAgICAvLyBidWdzIGNvbWUgdXAgZHVlIHRvIHByZWNp
c2lvbiBlcnJvcnMsIGl0IG1heSBiZSB3b3J0aCBjb25zaWRlcmluZyBkb2luZyBhbiB1bHAKKyAg
ICAvLyBlcnJvciBtZWFzdXJlbWVudCBpbnN0ZWFkLgogICAgIGZsb2F0IGV4aXRUaHJlc2hvbGQg
PSBtX3pSYW5nZSAqIDAuMDE7CisgICAgZmxvYXQgbm9uWmVyb1RocmVzaG9sZCA9IG1heChleGl0
VGhyZXNob2xkLCAwLjAwMWYpOworCiAgICAgZmxvYXQgekRpZmYgPSBjYWxjdWxhdGVaRGlmZihh
LT5zaGFwZSwgYi0+c2hhcGUsIGV4aXRUaHJlc2hvbGQpOwogCi0gICAgaWYgKHpEaWZmID4gMCkK
KyAgICBpZiAoekRpZmYgPiBub25aZXJvVGhyZXNob2xkKQogICAgICAgICByZXR1cm4gQkJlZm9y
ZUE7Ci0gICAgaWYgKHpEaWZmIDwgMCkKKyAgICBpZiAoekRpZmYgPCAtbm9uWmVyb1RocmVzaG9s
ZCkKICAgICAgICAgcmV0dXJuIEFCZWZvcmVCOwogCiAgICAgcmV0dXJuIE5vbmU7CkBAIC0zODgs
MTMgKzM5MywyMCBAQCB2b2lkIENDTGF5ZXJTb3J0ZXI6OnJlbW92ZUVkZ2VGcm9tTGlzdChHcmFw
aEVkZ2UqIGVkZ2UsIFZlY3RvcjxHcmFwaEVkZ2UqPiYgbGlzdAogLy8gY3ljbGljYWwgb3JkZXIg
ZGVwZW5kZW5jaWVzLiBDeWNsZXMgYW5kIGludGVyc2VjdGlvbnMgYXJlIGJyb2tlbiBhcmlidHJh
cmlseS4KIC8vIFNvcnRpbmcgb2YgbGF5ZXJzIGlzIGRvbmUgdmlhIGEgdG9wb2xvZ2ljYWwgc29y
dCBvZiBhIGRpcmVjdGVkIGdyYXBoIHdob3NlIG5vZGVzIGFyZQogLy8gdGhlIGxheWVycyB0aGVt
c2VsdmVzLiBBbiBlZGdlIGZyb20gbm9kZSBBIHRvIG5vZGUgQiBzaWduaWZpZXMgdGhhdCBsYXll
ciBBIG5lZWRzIHRvCi0vLyBiZSBkcmF3biBiZWZvcmUgbGF5ZXIgQi4KKy8vIGJlIGRyYXduIGJl
Zm9yZSBsYXllciBCLiBJZiBBIGFuZCBCIGhhdmUgbm8gZGVwZW5kZW5jeSBiZXR3ZWVuIGVhY2gg
b3RoZXIsIHRoZW4gd2UKKy8vIHByZXNlcnZlIHRoZSBvcmRlcmluZyBvZiB0aG9zZSBsYXllcnMg
YXMgdGhleSB3ZXJlIGluIHRoZSBvcmlnaW5hbCBsaXN0LgorLy8KIC8vIFRoZSBkcmF3IG9yZGVy
IGJldHdlZW4gdHdvIGxheWVycyBpcyBkZXRlcm1pbmVkIGJ5IHByb2plY3RpbmcgdGhlIHR3byB0
cmlhbmdsZXMgbWFraW5nCiAvLyB1cCBlYWNoIGxheWVyIHF1YWQgdG8gdGhlIFogPSAwIHBsYW5l
LCBmaW5kaW5nIHBvaW50cyBvZiBpbnRlcnNlY3Rpb24gYmV0d2VlbiB0aGUgdHJpYW5nbGVzCiAv
LyBhbmQgYmFja3Byb2plY3RpbmcgdGhvc2UgcG9pbnRzIHRvIHRoZSBwbGFuZSBvZiB0aGUgbGF5
ZXIgdG8gZGV0ZXJtaW5lIHRoZSBjb3JyZXNwb25kaW5nIFoKIC8vIGNvb3JkaW5hdGUuIFRoZSBs
YXllciB3aXRoIHRoZSBsb3dlciBaIGNvb3JkaW5hdGUgKGZhcnRoZXIgZnJvbSB0aGUgZXllKSBu
ZWVkcyB0byBiZSByZW5kZXJlZAotLy8gZmlyc3QuIElmIHRoZSBsYXllciBwcm9qZWN0aW9ucyBk
b24ndCBpbnRlcnNlY3QgdGhlbiB0aGUgbGF5ZXJzIGNhbiBkcmF3biBpbiBhbnkgb3JkZXIgYW5k
IG5vCi0vLyBlZGdlcyBhcmUgY3JlYXRlZCBiZXR3ZWVuIHRoZW0gaW4gdGhlIGdyYXBoLgorLy8g
Zmlyc3QuCisvLworLy8gSWYgdGhlIGxheWVyIHByb2plY3Rpb25zIGRvbid0IGludGVyc2VjdCwg
dGhlbiBubyBlZGdlcyAoZGVwZW5kZW5jaWVzKSBhcmUgY3JlYXRlZAorLy8gYmV0d2VlbiB0aGVt
IGluIHRoZSBncmFwaC4gSE9XRVZFUiwgaW4gdGhpcyBjYXNlIHdlIHN0aWxsIG5lZWQgdG8gcHJl
c2VydmUgdGhlIG9yZGVyaW5nCisvLyBvZiB0aGUgb3JpZ2luYWwgbGlzdCBvZiBsYXllcnMsIHNp
bmNlIHRoYXQgbGlzdCBzaG91bGQgYWxyZWFkeSBoYXZlIHByb3BlciB6LWluZGV4CisvLyBvcmRl
cmluZyBvZiBsYXllcnMuCisvLwogdm9pZCBDQ0xheWVyU29ydGVyOjpzb3J0KExheWVyTGlzdDo6
aXRlcmF0b3IgZmlyc3QsIExheWVyTGlzdDo6aXRlcmF0b3IgbGFzdCkKIHsKICNpZiAhZGVmaW5l
ZCggTkRFQlVHICkKQEAgLTQwNSw3ICs0MTcsNyBAQCB2b2lkIENDTGF5ZXJTb3J0ZXI6OnNvcnQo
TGF5ZXJMaXN0OjppdGVyYXRvciBmaXJzdCwgTGF5ZXJMaXN0OjppdGVyYXRvciBsYXN0KQogICAg
IGNyZWF0ZUdyYXBoRWRnZXMoKTsKIAogICAgIFZlY3RvcjxHcmFwaE5vZGUqPiBzb3J0ZWRMaXN0
OwotICAgIFZlY3RvcjxHcmFwaE5vZGUqPiBub0luY29taW5nRWRnZU5vZGVMaXN0OworICAgIERl
cXVlPEdyYXBoTm9kZSo+IG5vSW5jb21pbmdFZGdlTm9kZUxpc3Q7CiAKICAgICAvLyBGaW5kIGFs
bCB0aGUgbm9kZXMgdGhhdCBkb24ndCBoYXZlIGluY29taW5nIGVkZ2VzLgogICAgIGZvciAoTm9k
ZUxpc3Q6Oml0ZXJhdG9yIGxhID0gbV9ub2Rlcy5iZWdpbigpOyBsYSA8IG1fbm9kZXMuZW5kKCk7
IGxhKyspIHsKQEAgLTQxOCw5ICs0MzAsMTIgQEAgdm9pZCBDQ0xheWVyU29ydGVyOjpzb3J0KExh
eWVyTGlzdDo6aXRlcmF0b3IgZmlyc3QsIExheWVyTGlzdDo6aXRlcmF0b3IgbGFzdCkKICNlbmRp
ZgogICAgIHdoaWxlIChtX2FjdGl2ZUVkZ2VzLnNpemUoKSB8fCBub0luY29taW5nRWRnZU5vZGVM
aXN0LnNpemUoKSkgewogICAgICAgICB3aGlsZSAobm9JbmNvbWluZ0VkZ2VOb2RlTGlzdC5zaXpl
KCkpIHsKLSAgICAgICAgICAgIC8vIFBvcCB0aGUgbGFzdCBlbnRyeSBmcm9tIHRoZSBsaXN0Lgot
ICAgICAgICAgICAgR3JhcGhOb2RlKiBmcm9tTm9kZSA9IG5vSW5jb21pbmdFZGdlTm9kZUxpc3Rb
bm9JbmNvbWluZ0VkZ2VOb2RlTGlzdC5zaXplKCkgLSAxXTsKLSAgICAgICAgICAgIG5vSW5jb21p
bmdFZGdlTm9kZUxpc3QucmVtb3ZlTGFzdCgpOworCisgICAgICAgICAgICAvLyBJdCBpcyBuZWNl
c3NhcnkgdG8gcHJlc2VydmUgdGhlIGV4aXN0aW5nIG9yZGVyaW5nIG9mIGxheWVycywgd2hlbiB0
aGVyZSBhcmUKKyAgICAgICAgICAgIC8vIG5vIGV4cGxpY2l0IGRlcGVuZGVuY2llcyAoYmVjYXVz
ZSB0aGlzIGV4aXN0aW5nIG9yZGVyaW5nIGhhcyBjb3JyZWN0CisgICAgICAgICAgICAvLyB6LWlu
ZGV4L2xheW91dCBvcmRlcmluZykuIFRvIHByZXNlcnZlIHRoaXMgb3JkZXJpbmcsIHdlIHByb2Nl
c3MgTm9kZXMgaW4KKyAgICAgICAgICAgIC8vIHRoZSBzYW1lIG9yZGVyIHRoYXQgdGhleSB3ZXJl
IGFkZGVkIHRvIHRoZSBsaXN0LgorICAgICAgICAgICAgR3JhcGhOb2RlKiBmcm9tTm9kZSA9IG5v
SW5jb21pbmdFZGdlTm9kZUxpc3QudGFrZUZpcnN0KCk7CiAKICAgICAgICAgICAgIC8vIEFkZCBp
dCB0byB0aGUgZmluYWwgbGlzdC4KICAgICAgICAgICAgIHNvcnRlZExpc3QuYXBwZW5kKGZyb21O
b2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclNv
cnRlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyU29ydGVy
VGVzdC5jcHAKaW5kZXggMjNhMDQ2MGJjMWNmM2ZmNWI3MzM2ODg3MThiM2MyZmUzNGRjZDExNC4u
NjkzNDJjZGE3YzYzYjYxNTQ1MDc0NWVhYmQ4YjFkMWNkYmVmY2U1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyU29ydGVyVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyU29ydGVyVGVzdC5jcHAKQEAgLTI2LDYg
KzI2LDggQEAKIAogI2luY2x1ZGUgImNjL0NDTGF5ZXJTb3J0ZXIuaCIKIAorI2luY2x1ZGUgImNj
L0NDTGF5ZXJJbXBsLmgiCisjaW5jbHVkZSAiY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oIgogI2lu
Y2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTU2
LDQgKzE1OCw3NiBAQCBURVNUKENDTGF5ZXJTb3J0ZXJUZXN0LCBDYWxjdWxhdGVaRGlmZikKICAg
ICBFWFBFQ1RfRVEoQ0NMYXllclNvcnRlcjo6Y2FsY3VsYXRlWkRpZmYobGF5ZXJDLCBsYXllckMs
IHRocmVzaG9sZCksIDAuMCk7CiB9CiAKK1RFU1QoQ0NMYXllclNvcnRlclRlc3QsIHZlcmlmeUV4
aXN0aW5nT3JkZXJpbmdQcmVzZXJ2ZWRXaGVuTm9aRGlmZikKK3sKKyAgICBEZWJ1Z1Njb3BlZFNl
dEltcGxUaHJlYWQgdGhpc1Njb3BlSXNPbkltcGxUaHJlYWQ7CisKKyAgICAvLyBJZiB0aGVyZSBp
cyBubyByZWFzb24gdG8gcmUtc29ydCB0aGUgbGF5ZXJzIChpLmUuIG5vIDNkIHogZGlmZmVyZW5j
ZSksIHRoZW4gdGhlCisgICAgLy8gZXhpc3Rpbmcgb3JkZXJpbmcgcHJvdmlkZWQgb24gaW5wdXQg
c2hvdWxkIGJlIHJldGFpbmVkLiBUaGlzIHRlc3QgY292ZXJzIHRoZSBmaXggaW4KKyAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNDYuIEJlZm9yZSB0aGlz
IGZpeCwgb3JkZXJpbmcgd2FzCisgICAgLy8gYWNjaWRlbnRhbGx5IHJldmVyc2VkLCBjYXVzaW5n
IGJ1Z3MgaW4gei1pbmRleCBvcmRlcmluZyBvbiB3ZWJzaXRlcyB3aGVuCisgICAgLy8gcHJlc2Vy
dmVzM0QgdHJpZ2dlcmVkIHRoZSBDQ0xheWVyU29ydGVyLgorCisgICAgLy8gSW5wdXQgbGlzdCBv
ZiBsYXllcnM6IFsxLCAyLCAzLCA0LCA1XS4KKyAgICAvLyBFeHBlY3RlZCBvdXRwdXQ6IFszLCA0
LCAxLCAyLCA1XS4KKyAgICAvLyAgICAtIDEsIDIsIGFuZCA1IGRvIG5vdCBoYXZlIGEgM2QgeiBk
aWZmZXJlbmNlLCBhbmQgdGhlcmVmb3JlIHRoZWlyIHJlbGF0aXZlIG9yZGVyaW5nIHNob3VsZCBi
ZSByZXRhaW5lZC4KKyAgICAvLyAgICAtIDMgYW5kIDQgZG8gbm90IGhhdmUgYSAzZCB6IGRpZmZl
cmVuY2UsIGFuZCB0aGVyZWZvcmUgdGhlaXIgcmVsYXRpdmUgb3JkZXJpbmcgc2hvdWxkIGJlIHJl
dGFpbmVkLgorICAgIC8vICAgIC0gMyBhbmQgNCBzaG91bGQgYmUgcmUtc29ydGVkIHNvIHRoZXkg
YXJlIGluIGZyb250IG9mIDEsIDIsIGFuZCA1LgorCisgICAgUmVmUHRyPENDTGF5ZXJJbXBsPiBs
YXllcjEgPSBDQ0xheWVySW1wbDo6Y3JlYXRlKDEpOworICAgIFJlZlB0cjxDQ0xheWVySW1wbD4g
bGF5ZXIyID0gQ0NMYXllckltcGw6OmNyZWF0ZSgyKTsKKyAgICBSZWZQdHI8Q0NMYXllckltcGw+
IGxheWVyMyA9IENDTGF5ZXJJbXBsOjpjcmVhdGUoMyk7CisgICAgUmVmUHRyPENDTGF5ZXJJbXBs
PiBsYXllcjQgPSBDQ0xheWVySW1wbDo6Y3JlYXRlKDQpOworICAgIFJlZlB0cjxDQ0xheWVySW1w
bD4gbGF5ZXI1ID0gQ0NMYXllckltcGw6OmNyZWF0ZSg1KTsKKworICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IEJlaGluZE1hdHJpeDsKKyAgICBCZWhpbmRNYXRyaXgudHJhbnNsYXRlM2QoMCwgMCwg
Mik7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggRnJvbnRNYXRyaXg7CisgICAgRnJvbnRNYXRy
aXgudHJhbnNsYXRlM2QoMCwgMCwgMSk7CisKKyAgICBsYXllcjEtPnNldEJvdW5kcyhJbnRTaXpl
KDEwLCAxMCkpOworICAgIGxheWVyMS0+c2V0RHJhd1RyYW5zZm9ybShCZWhpbmRNYXRyaXgpOwor
ICAgIGxheWVyMS0+c2V0RHJhd3NDb250ZW50KHRydWUpOworCisgICAgbGF5ZXIyLT5zZXRCb3Vu
ZHMoSW50U2l6ZSgyMCwgMjApKTsKKyAgICBsYXllcjItPnNldERyYXdUcmFuc2Zvcm0oQmVoaW5k
TWF0cml4KTsKKyAgICBsYXllcjItPnNldERyYXdzQ29udGVudCh0cnVlKTsKKworICAgIGxheWVy
My0+c2V0Qm91bmRzKEludFNpemUoMzAsIDMwKSk7CisgICAgbGF5ZXIzLT5zZXREcmF3VHJhbnNm
b3JtKEZyb250TWF0cml4KTsKKyAgICBsYXllcjMtPnNldERyYXdzQ29udGVudCh0cnVlKTsKKwor
ICAgIGxheWVyNC0+c2V0Qm91bmRzKEludFNpemUoNDAsIDQwKSk7CisgICAgbGF5ZXI0LT5zZXRE
cmF3VHJhbnNmb3JtKEZyb250TWF0cml4KTsKKyAgICBsYXllcjQtPnNldERyYXdzQ29udGVudCh0
cnVlKTsKKworICAgIGxheWVyNS0+c2V0Qm91bmRzKEludFNpemUoNTAsIDUwKSk7CisgICAgbGF5
ZXI1LT5zZXREcmF3VHJhbnNmb3JtKEJlaGluZE1hdHJpeCk7CisgICAgbGF5ZXI1LT5zZXREcmF3
c0NvbnRlbnQodHJ1ZSk7CisKKyAgICBWZWN0b3I8UmVmUHRyPENDTGF5ZXJJbXBsPiA+IGxheWVy
TGlzdDsKKyAgICBsYXllckxpc3QuYXBwZW5kKGxheWVyMSk7CisgICAgbGF5ZXJMaXN0LmFwcGVu
ZChsYXllcjIpOworICAgIGxheWVyTGlzdC5hcHBlbmQobGF5ZXIzKTsKKyAgICBsYXllckxpc3Qu
YXBwZW5kKGxheWVyNCk7CisgICAgbGF5ZXJMaXN0LmFwcGVuZChsYXllcjUpOworCisgICAgQVNT
RVJUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oNSksIGxheWVyTGlzdC5zaXplKCkpOworICAgIEVY
UEVDVF9FUSgxLCBsYXllckxpc3RbMF0tPmlkKCkpOworICAgIEVYUEVDVF9FUSgyLCBsYXllckxp
c3RbMV0tPmlkKCkpOworICAgIEVYUEVDVF9FUSgzLCBsYXllckxpc3RbMl0tPmlkKCkpOworICAg
IEVYUEVDVF9FUSg0LCBsYXllckxpc3RbM10tPmlkKCkpOworICAgIEVYUEVDVF9FUSg1LCBsYXll
ckxpc3RbNF0tPmlkKCkpOworCisgICAgQ0NMYXllclNvcnRlciBsYXllclNvcnRlcjsKKyAgICBs
YXllclNvcnRlci5zb3J0KGxheWVyTGlzdC5iZWdpbigpLCBsYXllckxpc3QuZW5kKCkpOworCisg
ICAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oNSksIGxheWVyTGlzdC5zaXplKCkpOwor
ICAgIEVYUEVDVF9FUSgzLCBsYXllckxpc3RbMF0tPmlkKCkpOworICAgIEVYUEVDVF9FUSg0LCBs
YXllckxpc3RbMV0tPmlkKCkpOworICAgIEVYUEVDVF9FUSgxLCBsYXllckxpc3RbMl0tPmlkKCkp
OworICAgIEVYUEVDVF9FUSgyLCBsYXllckxpc3RbM10tPmlkKCkpOworICAgIEVYUEVDVF9FUSg1
LCBsYXllckxpc3RbNF0tPmlkKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>