<?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>95661</bug_id>
          
          <creation_ts>2012-09-02 19:53:14 -0700</creation_ts>
          <short_desc>[Chromium] Multiple commits without invalidation allowed per redraw.</short_desc>
          <delta_ts>2012-09-11 13:53:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="David Reveman">reveman</reporter>
          <assigned_to name="David Reveman">reveman</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>peter+ews</cc>
    
    <cc>piman</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>710380</commentid>
    <comment_count>0</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-09-02 19:53:14 -0700</bug_when>
    <thetext>There&apos;s no mechanism in place to prevent multiple commits per redraw. Multiple commits with resource updates are prevented as a side-effect of how the current incremental resource update mechanism works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710381</commentid>
    <comment_count>1</comment_count>
      <attachid>161855</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-09-02 20:00:13 -0700</bug_when>
    <thetext>Created attachment 161855
Patch

Unit tests and change that prevents all types of commits from happening twice between vsync ticks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710382</commentid>
    <comment_count>2</comment_count>
      <attachid>161855</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-02 20:03:42 -0700</bug_when>
    <thetext>Comment on attachment 161855
Patch

Attachment 161855 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13733388</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710385</commentid>
    <comment_count>3</comment_count>
      <attachid>161855</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-02 20:12:36 -0700</bug_when>
    <thetext>Comment on attachment 161855
Patch

Attachment 161855 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13734298</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710387</commentid>
    <comment_count>4</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-09-02 20:17:14 -0700</bug_when>
    <thetext>The current patch breaks some existing unit tests but I&apos;ll fix that before landing. The important part of the patch is the new unit tests. My current understanding is that all these tests should pass and the change included enforces that. Is that correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710389</commentid>
    <comment_count>5</comment_count>
      <attachid>161855</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-02 20:42:09 -0700</bug_when>
    <thetext>Comment on attachment 161855
Patch

Setting this bit on the scheduler feels redundant with the state transitions we already have.  We should go from commit -&gt; waiting for draw -&gt; draw -&gt; ready for commit again.  How are we falling out of waiting_for_first_draw without drawing?

Why 50 in the unit tests?  Is there anything in particular interesting about that number, or is it meant as a blind fuzz test of sorts?  It doesn&apos;t really feel appropriate as a unit test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710393</commentid>
    <comment_count>6</comment_count>
      <attachid>161856</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-09-02 21:11:53 -0700</bug_when>
    <thetext>Created attachment 161856
Patch

Only call setCanBeginFrame(true) when no more resource updates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710395</commentid>
    <comment_count>7</comment_count>
      <attachid>161856</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-02 21:15:32 -0700</bug_when>
    <thetext>Comment on attachment 161856
Patch

Attachment 161856 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13726920</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710400</commentid>
    <comment_count>8</comment_count>
      <attachid>161856</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-02 21:22:36 -0700</bug_when>
    <thetext>Comment on attachment 161856
Patch

Attachment 161856 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13741013</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711611</commentid>
    <comment_count>9</comment_count>
      <attachid>161856</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-04 17:50:05 -0700</bug_when>
    <thetext>Comment on attachment 161856
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp:94
&gt;      m_stateMachine.beginFrameComplete();
&gt; +    m_stateMachine.setCanBeginFrame(false);

These still seem redundant to me. Telling the state machine beginFrameComplete should put us into the waiting for draw state.  Once we get into this state, how are we returning ACTION_BEGIN_FRAME before we actually draw?  I think fixing that will fix this class of bugs without needing redundant state sets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713875</commentid>
    <comment_count>10</comment_count>
      <attachid>162622</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-09-06 17:10:00 -0700</bug_when>
    <thetext>Created attachment 162622
Patch

Use COMMIT_STATE_WAITING_FOR_FIRST_DRAW to enforce a draw after each commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713892</commentid>
    <comment_count>11</comment_count>
      <attachid>162622</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-06 17:25:46 -0700</bug_when>
    <thetext>Comment on attachment 162622
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:209
&gt; +        if (!m_needsForcedCommit)
&gt;              m_commitState = COMMIT_STATE_WAITING_FOR_FIRST_DRAW;
&gt;          else
&gt;              m_commitState = COMMIT_STATE_IDLE;

After ACTION_COMMIT you should unconditionally enter COMMIT_STATE_WAITING_FOR_FIRST_DRAW.  If we need a forced commit, we&apos;ll go ahead and emit ACTION_BEGIN_FRAME even if we&apos;re in COMMIT_STATE_WAITING_FOR_FIRST_DRAW.

I can&apos;t figure out for the life of me what the conditions &quot;(m_needsCommit || !m_visible) &amp;&amp; !m_needsForcedCommit&quot; were supposed to do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713896</commentid>
    <comment_count>12</comment_count>
      <attachid>162622</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-09-06 17:29:55 -0700</bug_when>
    <thetext>Comment on attachment 162622
Patch

Lets give this a try. I really think we need to do a patch to hoist the impl-side &quot;dont actually commit now&quot; out of the scheduler completely, but thats for another day.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713898</commentid>
    <comment_count>13</comment_count>
      <attachid>162622</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-06 17:30:06 -0700</bug_when>
    <thetext>Comment on attachment 162622
Patch

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

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp:2915
&gt; +        if (m_numDidCommit &lt; 50) {

this is not a good unit test. a unit test should test for a specific case, not just blindly loop a bunch.  run through the states you care about and then end the test - you definitely don&apos;t care about 50 different states

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp:2972
&gt; +        if (m_numAnimate &lt; 50) {

same here. make the test specific</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715004</commentid>
    <comment_count>14</comment_count>
      <attachid>162873</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-09-07 14:46:53 -0700</bug_when>
    <thetext>Created attachment 162873
Patch

Check number of commits between first and second draw instead of ending the tests after a random number of commits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715037</commentid>
    <comment_count>15</comment_count>
      <attachid>162873</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-07 15:11:45 -0700</bug_when>
    <thetext>Comment on attachment 162873
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:209
&gt; +        if (!m_needsForcedCommit)
&gt;              m_commitState = COMMIT_STATE_WAITING_FOR_FIRST_DRAW;
&gt;          else
&gt;              m_commitState = COMMIT_STATE_IDLE;

Why didn&apos;t you fix this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715086</commentid>
    <comment_count>16</comment_count>
      <attachid>162894</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-09-07 16:02:17 -0700</bug_when>
    <thetext>Created attachment 162894
Patch

Always update commit state to COMMIT_STATE_WAITING_FOR_FIRST_DRAW from ACTION_COMMIT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715087</commentid>
    <comment_count>17</comment_count>
      <attachid>162894</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-07 16:03:39 -0700</bug_when>
    <thetext>Comment on attachment 162894
Patch

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

Great!

&gt; Source/WebCore/ChangeLog:9
&gt; +        Enter COMMIT_STATE_WAITING_FOR_FIRST_DRAW after commit unless we need
&gt; +        a forced commit. This ensures we draw before beginning a new frame.

update this - I think the &quot;unless...&quot; is stale now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715098</commentid>
    <comment_count>18</comment_count>
      <attachid>162896</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-09-07 16:21:16 -0700</bug_when>
    <thetext>Created attachment 162896
Patch

Fix changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715160</commentid>
    <comment_count>19</comment_count>
      <attachid>162896</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 17:25:01 -0700</bug_when>
    <thetext>Comment on attachment 162896
Patch

Clearing flags on attachment: 162896

Committed r127940: &lt;http://trac.webkit.org/changeset/127940&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715161</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 17:25:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161855</attachid>
            <date>2012-09-02 20:00:13 -0700</date>
            <delta_ts>2012-09-02 21:11:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95661-20120902225944.patch</filename>
            <type>text/plain</type>
            <size>8263</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2M2Yjk1MDI1Nzk2YjQ3
ODJiZjZjYzA4YzQyOGYyMGUxOWQxY2MyOS4uOGZiZDBhOWQ0N2E0YTU1YTY4ZjQ1NWQ5MjZkMzU2
ZWNlNTliOWVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTAyICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBN
dWx0aXBsZSBjb21taXRzIHdpdGhvdXQgaW52YWxpZGF0aW9uIGFsbG93ZWQgcGVyIHJlZHJhdy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NjYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FsbCBtX3N0
YXRlTWFjaGluZS5zZXRDYW5CZWdpbkZyYW1lKGZhbHNlKSBpbgorICAgICAgICBDQ1NjaGVkdWxl
cjo6YmVnaW5GcmFtZUNvbXBsZXRlKCkgYW5kIG1fc3RhdGVNYWNoaW5lLnNldENhbkJlZ2luRnJh
bWUodHJ1ZSkKKyAgICAgICAgaW4gQ0NTY2hlZHVsZXI6OnZzeW5jVGljaygpIHRvIGVuc3VyZSB3
ZSByZWRyYXcgYmVmb3JlIHdlIGJlZ2luIGEgbmV3CisgICAgICAgIGZyYW1lLgorCisgICAgICAg
IFVuaXQgdGVzdHM6IENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29tbWl0LnJ1bk11bHRp
VGhyZWFkCisgICAgICAgICAgICAgICAgICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3Vz
SW52YWxpZGF0ZS5ydW5NdWx0aVRocmVhZAorICAgICAgICAgICAgICAgICAgICBDQ0xheWVyVHJl
ZUhvc3RUZXN0Q29udGludW91c0FuaW1hdGUucnVuTXVsdGlUaHJlYWQKKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNDU2NoZWR1bGVyOjpiZWdpbkZyYW1lQ29tcGxldGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NTY2hlZHVsZXI6OnZzeW5jVGljayk6CisKIDIwMTItMDgtMzEgIEFuZHJleSBLb3N5YWtv
diAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBkaXNhYmxl
IHBvcG92ZXIgb24gY2xpY2sgb3V0c2lkZSBvZiBwb3BvdmVyIGFuY2hvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA2ZDIwNDU3YWRiMWZjNGEwNDE4YzQ2ODhiZTVlMjBlZmRhMWZjNjRl
Li5mMzExMDNiMDBlODA3M2Q0M2EwZDhjYzU5NTJlY2QxZDE3NjdiMjg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTAyICBEYXZpZCBSZXZlbWFu
ICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBNdWx0aXBsZSBj
b21taXRzIHdpdGhvdXQgaW52YWxpZGF0aW9uIGFsbG93ZWQgcGVyIHJlZHJhdy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NjYxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1h
dGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFk
ZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAgICAgICAgKiB0
ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcDoKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdFRl
c3RDb250aW51b3VzQ29tbWl0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ0xheWVyVHJlZUhv
c3RUZXN0Q29udGludW91c0NvbW1pdDo6Q0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNDb21t
aXQpOgorICAgICAgICAoV2ViS2l0VGVzdHMpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OlRFU1Rf
Rik6CisgICAgICAgIChDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRhdGUpOgor
ICAgICAgICAoV2ViS2l0VGVzdHM6OkNDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzSW52YWxp
ZGF0ZTo6Q0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNJbnZhbGlkYXRlKToKKyAgICAgICAg
KENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQW5pbWF0ZSk6CisgICAgICAgIChXZWJLaXRU
ZXN0czo6Q0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlOjpDQ0xheWVyVHJlZUhv
c3RUZXN0Q29udGludW91c0FuaW1hdGUpOgorCiAyMDEyLTA4LTMxICBHYXZpbiBQZXRlcnMgIDxn
YXZpbnBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRGlzYWJsZSBXZWJWaWV3
VGVzdC5BdXRvUmVzaXplTWluaW11bVNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcAppbmRleCA5
OTlhMDhlYzlkMDUxNDgxNzRkMTNjMGZhNTI4OGJlZjFiMmRiZjYzLi42NWU0YzhlNDk3OTIwODIx
Y2U3MmRiZmI4ZGVkZGMzYmQxNjI3ZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwCkBAIC05
MSw2ICs5MSw3IEBAIHZvaWQgQ0NTY2hlZHVsZXI6OmJlZ2luRnJhbWVDb21wbGV0ZSgpCiB7CiAg
ICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJDQ1NjaGVkdWxlcjo6YmVnaW5GcmFtZUNvbXBsZXRlIik7
CiAgICAgbV9zdGF0ZU1hY2hpbmUuYmVnaW5GcmFtZUNvbXBsZXRlKCk7CisgICAgbV9zdGF0ZU1h
Y2hpbmUuc2V0Q2FuQmVnaW5GcmFtZShmYWxzZSk7CiAgICAgcHJvY2Vzc1NjaGVkdWxlZEFjdGlv
bnMoKTsKIH0KIApAQCAtMTQwLDYgKzE0MSw3IEBAIHZvaWQgQ0NTY2hlZHVsZXI6OnZzeW5jVGlj
aygpCiAgICAgfQogICAgIFRSQUNFX0VWRU5UMCgiY2MiLCAiQ0NTY2hlZHVsZXI6OnZzeW5jVGlj
ayIpOwogCisgICAgbV9zdGF0ZU1hY2hpbmUuc2V0Q2FuQmVnaW5GcmFtZSh0cnVlKTsKICAgICBt
X3N0YXRlTWFjaGluZS5kaWRFbnRlclZTeW5jKCk7CiAgICAgcHJvY2Vzc1NjaGVkdWxlZEFjdGlv
bnMoKTsKICAgICBtX3N0YXRlTWFjaGluZS5kaWRMZWF2ZVZTeW5jKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAppbmRleCA3
NzdkNjBmYzAyYmMxNWUyZjQxMDgzMmVlMzkxNmQ2MDYzYWJmZjYxLi4yZTBjMmIwMGFjMWQ5MThi
YjZkOGQ3YjRlYzdlMWNlOTZlYmY4YjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKQEAgLTI4MzYsNCArMjgzNiwxNzkg
QEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdFRlc3RMb3N0Q29udGV4dFdoaWxlVXBkYXRpbmdSZXNv
dXJjZXMsIHJ1bk11bHRpVGhyZWFkKQogICAgIHJ1blRlc3QodHJ1ZSk7CiB9CiAKK2NsYXNzIEND
TGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29tbWl0IDogcHVibGljIENDTGF5ZXJUcmVlSG9z
dFRlc3QgeworcHVibGljOgorICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29tbWl0
KCkKKyAgICAgICAgOiBtX251bURpZENvbW1pdCgwKQorICAgICAgICAsIG1fbnVtQ29tbWl0Q29t
cGxldGUoMCkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGJlZ2luVGVzdCgpIE9W
RVJSSURFCisgICAgeworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShJ
bnRTaXplKDEwLCAxMCksIEludFNpemUoMTAsIDEwKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9z
dC0+cm9vdExheWVyKCktPnNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworCisgICAgICAgIHBv
c3RTZXROZWVkc0NvbW1pdFRvTWFpblRocmVhZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCBkaWRDb21taXQoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgaWYgKG1fbnVtRGlkQ29tbWl0
IDwgNTApIHsKKyAgICAgICAgICAgIG1fbnVtRGlkQ29tbWl0Kys7CisgICAgICAgICAgICBwb3N0
U2V0TmVlZHNDb21taXRUb01haW5UaHJlYWQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgY29t
bWl0Q29tcGxldGVPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqKSBPVkVSUklERQorICAg
IHsKKyAgICAgICAgbV9udW1Db21taXRDb21wbGV0ZSsrOworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBkcmF3TGF5ZXJzT25DQ1RocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKiBpbXBsKSBPVkVS
UklERQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCB3ZSBkaWRuJ3QgY29tbWl0IHR3aWNl
IHNpbmNlIGxhc3QgZHJhdy4KKyAgICAgICAgRVhQRUNUX0VRKDEsIG1fbnVtQ29tbWl0Q29tcGxl
dGUpOworICAgICAgICBtX251bUNvbW1pdENvbXBsZXRlID0gMDsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgYWZ0ZXJUZXN0KCkgT1ZFUlJJREUKKyAgICB7CisgICAgfQorCitwcml2YXRlOgor
ICAgIGludCBtX251bURpZENvbW1pdDsKKyAgICBpbnQgbV9udW1Db21taXRDb21wbGV0ZTsKK307
CisKK1RFU1RfRihDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0NvbW1pdCwgcnVuTXVsdGlU
aHJlYWQpCit7CisgICAgcnVuVGVzdCh0cnVlKTsKK30KKworY2xhc3MgQ0NMYXllclRyZWVIb3N0
VGVzdENvbnRpbnVvdXNJbnZhbGlkYXRlIDogcHVibGljIENDTGF5ZXJUcmVlSG9zdFRlc3Qgewor
cHVibGljOgorICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzSW52YWxpZGF0ZSgpCisg
ICAgICAgIDogbV9udW1EaWRDb21taXQoMCkKKyAgICAgICAgLCBtX251bUNvbW1pdENvbXBsZXRl
KDApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBiZWdpblRlc3QoKSBPVkVSUklE
RQorICAgIHsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUoSW50U2l6
ZSgxMCwgMTApLCBJbnRTaXplKDEwLCAxMCkpOworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJv
b3RMYXllcigpLT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTApKTsKKworICAgICAgICBtX2NvbnRl
bnRMYXllciA9IENvbnRlbnRMYXllckNocm9taXVtOjpjcmVhdGUoJm1fbW9ja0RlbGVnYXRlKTsK
KyAgICAgICAgbV9jb250ZW50TGF5ZXItPnNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworICAg
ICAgICBtX2NvbnRlbnRMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgwLCAwKSk7CisgICAg
ICAgIG1fY29udGVudExheWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50KDAsIDApKTsKKyAg
ICAgICAgbV9jb250ZW50TGF5ZXItPnNldElzRHJhd2FibGUodHJ1ZSk7CisgICAgICAgIG1fbGF5
ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPmFkZENoaWxkKG1fY29udGVudExheWVyKTsKKworICAg
ICAgICBwb3N0U2V0TmVlZHNDb21taXRUb01haW5UaHJlYWQoKTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQ29tbWl0KCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIGlmIChtX251bURp
ZENvbW1pdCA8IDUwKSB7CisgICAgICAgICAgICBtX251bURpZENvbW1pdCsrOworICAgICAgICAg
ICAgbV9jb250ZW50TGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBjb21taXRDb21wbGV0ZU9uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIE9WRVJS
SURFCisgICAgeworICAgICAgICBtX251bUNvbW1pdENvbXBsZXRlKys7CisgICAgfQorCisgICAg
dmlydHVhbCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGlt
cGwpIE9WRVJSSURFCisgICAgeworICAgICAgICAvLyBDaGVjayB0aGF0IHdlIGRpZG4ndCBjb21t
aXQgdHdpY2Ugc2luY2UgbGFzdCBkcmF3LgorICAgICAgICBFWFBFQ1RfRVEoMSwgbV9udW1Db21t
aXRDb21wbGV0ZSk7CisgICAgICAgIG1fbnVtQ29tbWl0Q29tcGxldGUgPSAwOworICAgIH0KKwor
ICAgIHZpcnR1YWwgdm9pZCBhZnRlclRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgLy8g
Q2xlYXIgbGF5ZXIgcmVmZXJlbmNlcyBzbyBDQ0xheWVyVHJlZUhvc3QgZGllcy4KKyAgICAgICAg
bV9jb250ZW50TGF5ZXIuY2xlYXIoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgTW9ja0NvbnRl
bnRMYXllckRlbGVnYXRlIG1fbW9ja0RlbGVnYXRlOworICAgIFJlZlB0cjxMYXllckNocm9taXVt
PiBtX2NvbnRlbnRMYXllcjsKKyAgICBpbnQgbV9udW1EaWRDb21taXQ7CisgICAgaW50IG1fbnVt
Q29tbWl0Q29tcGxldGU7Cit9OworCitURVNUX0YoQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVv
dXNJbnZhbGlkYXRlLCBydW5NdWx0aVRocmVhZCkKK3sKKyAgICBydW5UZXN0KHRydWUpOworfQor
CitjbGFzcyBDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0FuaW1hdGUgOiBwdWJsaWMgQ0NM
YXllclRyZWVIb3N0VGVzdCB7CitwdWJsaWM6CisgICAgQ0NMYXllclRyZWVIb3N0VGVzdENvbnRp
bnVvdXNBbmltYXRlKCkKKyAgICAgICAgOiBtX251bUFuaW1hdGUoMCkKKyAgICAgICAgLCBtX251
bUNvbW1pdENvbXBsZXRlKDApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBiZWdp
blRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3
cG9ydFNpemUoSW50U2l6ZSgxMCwgMTApLCBJbnRTaXplKDEwLCAxMCkpOworICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTApKTsKKwor
ICAgICAgICBwb3N0U2V0TmVlZHNDb21taXRUb01haW5UaHJlYWQoKTsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIHZvaWQgYW5pbWF0ZShkb3VibGUpIE9WRVJSSURFCisgICAgeworICAgICAgICBpZiAo
bV9udW1BbmltYXRlIDwgNTApIHsKKyAgICAgICAgICAgIG1fbnVtQW5pbWF0ZSsrOworICAgICAg
ICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXROZWVkc0FuaW1hdGUoKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9z
dC0+cm9vdExheWVyKCktPnNldE5lZWRzRGlzcGxheSgpOworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBjb21taXRDb21wbGV0ZU9uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIE9WRVJS
SURFCisgICAgeworICAgICAgICBtX251bUNvbW1pdENvbXBsZXRlKys7CisgICAgfQorCisgICAg
dmlydHVhbCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGlt
cGwpIE9WRVJSSURFCisgICAgeworICAgICAgICAvLyBDaGVjayB0aGF0IGRpZG4ndCBjb21taXQg
dHdpY2Ugc2luY2UgbGFzdCBkcmF3LgorICAgICAgICBFWFBFQ1RfRVEoMSwgbV9udW1Db21taXRD
b21wbGV0ZSk7CisgICAgICAgIG1fbnVtQ29tbWl0Q29tcGxldGUgPSAwOworICAgIH0KKworICAg
IHZpcnR1YWwgdm9pZCBhZnRlclRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgaW50IG1fbnVtQW5pbWF0ZTsKKyAgICBpbnQgbV9udW1Db21taXRDb21wbGV0ZTsK
K307CisKK1RFU1RfRihDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0FuaW1hdGUsIHJ1bk11
bHRpVGhyZWFkKQoreworICAgIHJ1blRlc3QodHJ1ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161856</attachid>
            <date>2012-09-02 21:11:53 -0700</date>
            <delta_ts>2012-09-06 17:09:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95661-20120903001124.patch</filename>
            <type>text/plain</type>
            <size>8637</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2M2Yjk1MDI1Nzk2YjQ3
ODJiZjZjYzA4YzQyOGYyMGUxOWQxY2MyOS4uOGZiZDBhOWQ0N2E0YTU1YTY4ZjQ1NWQ5MjZkMzU2
ZWNlNTliOWVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTAyICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBN
dWx0aXBsZSBjb21taXRzIHdpdGhvdXQgaW52YWxpZGF0aW9uIGFsbG93ZWQgcGVyIHJlZHJhdy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NjYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FsbCBtX3N0
YXRlTWFjaGluZS5zZXRDYW5CZWdpbkZyYW1lKGZhbHNlKSBpbgorICAgICAgICBDQ1NjaGVkdWxl
cjo6YmVnaW5GcmFtZUNvbXBsZXRlKCkgYW5kIG1fc3RhdGVNYWNoaW5lLnNldENhbkJlZ2luRnJh
bWUodHJ1ZSkKKyAgICAgICAgaW4gQ0NTY2hlZHVsZXI6OnZzeW5jVGljaygpIHRvIGVuc3VyZSB3
ZSByZWRyYXcgYmVmb3JlIHdlIGJlZ2luIGEgbmV3CisgICAgICAgIGZyYW1lLgorCisgICAgICAg
IFVuaXQgdGVzdHM6IENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29tbWl0LnJ1bk11bHRp
VGhyZWFkCisgICAgICAgICAgICAgICAgICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3Vz
SW52YWxpZGF0ZS5ydW5NdWx0aVRocmVhZAorICAgICAgICAgICAgICAgICAgICBDQ0xheWVyVHJl
ZUhvc3RUZXN0Q29udGludW91c0FuaW1hdGUucnVuTXVsdGlUaHJlYWQKKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNDU2NoZWR1bGVyOjpiZWdpbkZyYW1lQ29tcGxldGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NTY2hlZHVsZXI6OnZzeW5jVGljayk6CisKIDIwMTItMDgtMzEgIEFuZHJleSBLb3N5YWtv
diAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBkaXNhYmxl
IHBvcG92ZXIgb24gY2xpY2sgb3V0c2lkZSBvZiBwb3BvdmVyIGFuY2hvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA2ZDIwNDU3YWRiMWZjNGEwNDE4YzQ2ODhiZTVlMjBlZmRhMWZjNjRl
Li5mMzJhNWMyYTRiOGYzNTNmMTc0NjYyNjQyOTk2NDRkOWFiYmM3N2IxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTAyICBEYXZpZCBSZXZlbWFu
ICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBNdWx0aXBsZSBj
b21taXRzIHdpdGhvdXQgaW52YWxpZGF0aW9uIGFsbG93ZWQgcGVyIHJlZHJhdy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NjYxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJl
ZUhvc3RUZXN0LmNwcDoKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29t
bWl0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91
c0NvbW1pdDo6Q0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNDb21taXQpOgorICAgICAgICAo
V2ViS2l0VGVzdHMpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OlRFU1RfRik6CisgICAgICAgIChD
Q0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0
VGVzdHM6OkNDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzSW52YWxpZGF0ZTo6Q0NMYXllclRy
ZWVIb3N0VGVzdENvbnRpbnVvdXNJbnZhbGlkYXRlKToKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9z
dFRlc3RDb250aW51b3VzQW5pbWF0ZSk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NMYXllclRy
ZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlOjpDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91
c0FuaW1hdGUpOgorCiAyMDEyLTA4LTMxICBHYXZpbiBQZXRlcnMgIDxnYXZpbnBAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRGlzYWJsZSBXZWJWaWV3VGVzdC5BdXRvUmVzaXpl
TWluaW11bVNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcAppbmRleCA5OTlhMDhlYzlkMDUxNDgx
NzRkMTNjMGZhNTI4OGJlZjFiMmRiZjYzLi5iZGRhYzU5ZjJhOWY0MjQ5OTlhOWJiNmVkYzYxZWVi
YTljMGI2OGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwCkBAIC05MSw2ICs5MSw3IEBAIHZv
aWQgQ0NTY2hlZHVsZXI6OmJlZ2luRnJhbWVDb21wbGV0ZSgpCiB7CiAgICAgVFJBQ0VfRVZFTlQw
KCJjYyIsICJDQ1NjaGVkdWxlcjo6YmVnaW5GcmFtZUNvbXBsZXRlIik7CiAgICAgbV9zdGF0ZU1h
Y2hpbmUuYmVnaW5GcmFtZUNvbXBsZXRlKCk7CisgICAgbV9zdGF0ZU1hY2hpbmUuc2V0Q2FuQmVn
aW5GcmFtZShmYWxzZSk7CiAgICAgcHJvY2Vzc1NjaGVkdWxlZEFjdGlvbnMoKTsKIH0KIApAQCAt
MTM0LDEyICsxMzUsMTYgQEAgdm9pZCBDQ1NjaGVkdWxlcjo6c2V0VGltZWJhc2VBbmRJbnRlcnZh
bChkb3VibGUgdGltZWJhc2UsIGRvdWJsZSBpbnRlcnZhbFNlY29uZHMKIAogdm9pZCBDQ1NjaGVk
dWxlcjo6dnN5bmNUaWNrKCkKIHsKKyAgICBib29sIGhhc01vcmVSZXNvdXJjZVVwZGF0ZXMgPSBm
YWxzZTsKICAgICBpZiAobV91cGRhdGVNb3JlUmVzb3VyY2VzUGVuZGluZykgewogICAgICAgICBt
X3VwZGF0ZU1vcmVSZXNvdXJjZXNQZW5kaW5nID0gZmFsc2U7Ci0gICAgICAgIG1fc3RhdGVNYWNo
aW5lLmJlZ2luVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKG1fY2xpZW50LT5oYXNNb3JlUmVz
b3VyY2VVcGRhdGVzKCkpOworICAgICAgICBoYXNNb3JlUmVzb3VyY2VVcGRhdGVzID0gbV9jbGll
bnQtPmhhc01vcmVSZXNvdXJjZVVwZGF0ZXMoKTsKKyAgICAgICAgbV9zdGF0ZU1hY2hpbmUuYmVn
aW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoaGFzTW9yZVJlc291cmNlVXBkYXRlcyk7CiAg
ICAgfQogICAgIFRSQUNFX0VWRU5UMCgiY2MiLCAiQ0NTY2hlZHVsZXI6OnZzeW5jVGljayIpOwog
CisgICAgaWYgKCFoYXNNb3JlUmVzb3VyY2VVcGRhdGVzKQorICAgICAgICBtX3N0YXRlTWFjaGlu
ZS5zZXRDYW5CZWdpbkZyYW1lKHRydWUpOwogICAgIG1fc3RhdGVNYWNoaW5lLmRpZEVudGVyVlN5
bmMoKTsKICAgICBwcm9jZXNzU2NoZWR1bGVkQWN0aW9ucygpOwogICAgIG1fc3RhdGVNYWNoaW5l
LmRpZExlYXZlVlN5bmMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4IDc3N2Q2MGZjMDJiYzE1ZTJmNDEwODMyZWUz
OTE2ZDYwNjNhYmZmNjEuLjJlMGMyYjAwYWMxZDkxOGJiNmQ4ZDdiNGVjN2UxY2U5NmViZjhiNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhv
c3RUZXN0LmNwcApAQCAtMjgzNiw0ICsyODM2LDE3OSBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0
VGVzdExvc3RDb250ZXh0V2hpbGVVcGRhdGluZ1Jlc291cmNlcywgcnVuTXVsdGlUaHJlYWQpCiAg
ICAgcnVuVGVzdCh0cnVlKTsKIH0KIAorY2xhc3MgQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVv
dXNDb21taXQgOiBwdWJsaWMgQ0NMYXllclRyZWVIb3N0VGVzdCB7CitwdWJsaWM6CisgICAgQ0NM
YXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNDb21taXQoKQorICAgICAgICA6IG1fbnVtRGlkQ29t
bWl0KDApCisgICAgICAgICwgbV9udW1Db21taXRDb21wbGV0ZSgwKQorICAgIHsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgYmVnaW5UZXN0KCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1f
bGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKEludFNpemUoMTAsIDEwKSwgSW50U2l6ZSgx
MCwgMTApKTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0Qm91bmRz
KEludFNpemUoMTAsIDEwKSk7CisKKyAgICAgICAgcG9zdFNldE5lZWRzQ29tbWl0VG9NYWluVGhy
ZWFkKCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdCgpIE9WRVJSSURFCisg
ICAgeworICAgICAgICBpZiAobV9udW1EaWRDb21taXQgPCA1MCkgeworICAgICAgICAgICAgbV9u
dW1EaWRDb21taXQrKzsKKyAgICAgICAgICAgIHBvc3RTZXROZWVkc0NvbW1pdFRvTWFpblRocmVh
ZCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZW5kVGVzdCgp
OworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBjb21taXRDb21wbGV0ZU9uQ0NUaHJlYWQoQ0NM
YXllclRyZWVIb3N0SW1wbCopIE9WRVJSSURFCisgICAgeworICAgICAgICBtX251bUNvbW1pdENv
bXBsZXRlKys7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFk
KENDTGF5ZXJUcmVlSG9zdEltcGwqIGltcGwpIE9WRVJSSURFCisgICAgeworICAgICAgICAvLyBD
aGVjayB0aGF0IHdlIGRpZG4ndCBjb21taXQgdHdpY2Ugc2luY2UgbGFzdCBkcmF3LgorICAgICAg
ICBFWFBFQ1RfRVEoMSwgbV9udW1Db21taXRDb21wbGV0ZSk7CisgICAgICAgIG1fbnVtQ29tbWl0
Q29tcGxldGUgPSAwOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhZnRlclRlc3QoKSBPVkVS
UklERQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fbnVtRGlkQ29tbWl0Owor
ICAgIGludCBtX251bUNvbW1pdENvbXBsZXRlOworfTsKKworVEVTVF9GKENDTGF5ZXJUcmVlSG9z
dFRlc3RDb250aW51b3VzQ29tbWl0LCBydW5NdWx0aVRocmVhZCkKK3sKKyAgICBydW5UZXN0KHRy
dWUpOworfQorCitjbGFzcyBDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRhdGUg
OiBwdWJsaWMgQ0NMYXllclRyZWVIb3N0VGVzdCB7CitwdWJsaWM6CisgICAgQ0NMYXllclRyZWVI
b3N0VGVzdENvbnRpbnVvdXNJbnZhbGlkYXRlKCkKKyAgICAgICAgOiBtX251bURpZENvbW1pdCgw
KQorICAgICAgICAsIG1fbnVtQ29tbWl0Q29tcGxldGUoMCkKKyAgICB7CisgICAgfQorCisgICAg
dmlydHVhbCB2b2lkIGJlZ2luVGVzdCgpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX2xheWVy
VHJlZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShJbnRTaXplKDEwLCAxMCksIEludFNpemUoMTAsIDEw
KSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldEJvdW5kcyhJbnRT
aXplKDEwLCAxMCkpOworCisgICAgICAgIG1fY29udGVudExheWVyID0gQ29udGVudExheWVyQ2hy
b21pdW06OmNyZWF0ZSgmbV9tb2NrRGVsZWdhdGUpOworICAgICAgICBtX2NvbnRlbnRMYXllci0+
c2V0Qm91bmRzKEludFNpemUoMTAsIDEwKSk7CisgICAgICAgIG1fY29udGVudExheWVyLT5zZXRQ
b3NpdGlvbihGbG9hdFBvaW50KDAsIDApKTsKKyAgICAgICAgbV9jb250ZW50TGF5ZXItPnNldEFu
Y2hvclBvaW50KEZsb2F0UG9pbnQoMCwgMCkpOworICAgICAgICBtX2NvbnRlbnRMYXllci0+c2V0
SXNEcmF3YWJsZSh0cnVlKTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+
YWRkQ2hpbGQobV9jb250ZW50TGF5ZXIpOworCisgICAgICAgIHBvc3RTZXROZWVkc0NvbW1pdFRv
TWFpblRocmVhZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXQoKSBPVkVS
UklERQorICAgIHsKKyAgICAgICAgaWYgKG1fbnVtRGlkQ29tbWl0IDwgNTApIHsKKyAgICAgICAg
ICAgIG1fbnVtRGlkQ29tbWl0Kys7CisgICAgICAgICAgICBtX2NvbnRlbnRMYXllci0+c2V0TmVl
ZHNEaXNwbGF5KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBl
bmRUZXN0KCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGNvbW1pdENvbXBsZXRlT25DQ1Ro
cmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKikgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fbnVt
Q29tbWl0Q29tcGxldGUrKzsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0xheWVyc09u
Q0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaW1wbCkgT1ZFUlJJREUKKyAgICB7CisgICAg
ICAgIC8vIENoZWNrIHRoYXQgd2UgZGlkbid0IGNvbW1pdCB0d2ljZSBzaW5jZSBsYXN0IGRyYXcu
CisgICAgICAgIEVYUEVDVF9FUSgxLCBtX251bUNvbW1pdENvbXBsZXRlKTsKKyAgICAgICAgbV9u
dW1Db21taXRDb21wbGV0ZSA9IDA7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGFmdGVyVGVz
dCgpIE9WRVJSSURFCisgICAgeworICAgICAgICAvLyBDbGVhciBsYXllciByZWZlcmVuY2VzIHNv
IENDTGF5ZXJUcmVlSG9zdCBkaWVzLgorICAgICAgICBtX2NvbnRlbnRMYXllci5jbGVhcigpOwor
ICAgIH0KKworcHJpdmF0ZToKKyAgICBNb2NrQ29udGVudExheWVyRGVsZWdhdGUgbV9tb2NrRGVs
ZWdhdGU7CisgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IG1fY29udGVudExheWVyOworICAgIGlu
dCBtX251bURpZENvbW1pdDsKKyAgICBpbnQgbV9udW1Db21taXRDb21wbGV0ZTsKK307CisKK1RF
U1RfRihDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRhdGUsIHJ1bk11bHRpVGhy
ZWFkKQoreworICAgIHJ1blRlc3QodHJ1ZSk7Cit9CisKK2NsYXNzIENDTGF5ZXJUcmVlSG9zdFRl
c3RDb250aW51b3VzQW5pbWF0ZSA6IHB1YmxpYyBDQ0xheWVyVHJlZUhvc3RUZXN0IHsKK3B1Ymxp
YzoKKyAgICBDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0FuaW1hdGUoKQorICAgICAgICA6
IG1fbnVtQW5pbWF0ZSgwKQorICAgICAgICAsIG1fbnVtQ29tbWl0Q29tcGxldGUoMCkKKyAgICB7
CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGJlZ2luVGVzdCgpIE9WRVJSSURFCisgICAgewor
ICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShJbnRTaXplKDEwLCAxMCks
IEludFNpemUoMTAsIDEwKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCkt
PnNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworCisgICAgICAgIHBvc3RTZXROZWVkc0NvbW1p
dFRvTWFpblRocmVhZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJs
ZSkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIGlmIChtX251bUFuaW1hdGUgPCA1MCkgeworICAg
ICAgICAgICAgbV9udW1BbmltYXRlKys7CisgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNl
dE5lZWRzQW5pbWF0ZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgZW5kVGVzdCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklE
RQorICAgIHsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0TmVlZHNE
aXNwbGF5KCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGNvbW1pdENvbXBsZXRlT25DQ1Ro
cmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKikgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fbnVt
Q29tbWl0Q29tcGxldGUrKzsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0xheWVyc09u
Q0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaW1wbCkgT1ZFUlJJREUKKyAgICB7CisgICAg
ICAgIC8vIENoZWNrIHRoYXQgZGlkbid0IGNvbW1pdCB0d2ljZSBzaW5jZSBsYXN0IGRyYXcuCisg
ICAgICAgIEVYUEVDVF9FUSgxLCBtX251bUNvbW1pdENvbXBsZXRlKTsKKyAgICAgICAgbV9udW1D
b21taXRDb21wbGV0ZSA9IDA7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGFmdGVyVGVzdCgp
IE9WRVJSSURFCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICBpbnQgbV9udW1BbmltYXRl
OworICAgIGludCBtX251bUNvbW1pdENvbXBsZXRlOworfTsKKworVEVTVF9GKENDTGF5ZXJUcmVl
SG9zdFRlc3RDb250aW51b3VzQW5pbWF0ZSwgcnVuTXVsdGlUaHJlYWQpCit7CisgICAgcnVuVGVz
dCh0cnVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162622</attachid>
            <date>2012-09-06 17:10:00 -0700</date>
            <delta_ts>2012-09-07 14:46:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95661-20120906190917.patch</filename>
            <type>text/plain</type>
            <size>9947</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY0ODQxOTcyZDQwMmQ2
NWE3NjJjNTk4NDY3Yjc3ZGVjMjQxNTk1MS4uMjRmYmUyYmYxZjE0ZmRmMmI1MDI2NGYwNDgyODJk
M2MzMDE1MDE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTA2ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBN
dWx0aXBsZSBjb21taXRzIHdpdGhvdXQgaW52YWxpZGF0aW9uIGFsbG93ZWQgcGVyIHJlZHJhdy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NjYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW50ZXIgQ09N
TUlUX1NUQVRFX1dBSVRJTkdfRk9SX0ZJUlNUX0RSQVcgYWZ0ZXIgY29tbWl0IHVubGVzcyB3ZSBu
ZWVkCisgICAgICAgIGEgZm9yY2VkIGNvbW1pdC4gVGhpcyBlbnN1cmVzIHdlIGRyYXcgYmVmb3Jl
IGJlZ2lubmluZyBhIG5ldyBmcmFtZS4KKworICAgICAgICBVbml0IHRlc3RzOiBDQ0xheWVyVHJl
ZUhvc3RUZXN0Q29udGludW91c0NvbW1pdC5ydW5NdWx0aVRocmVhZAorICAgICAgICAgICAgICAg
ICAgICBDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRhdGUucnVuTXVsdGlUaHJl
YWQKKyAgICAgICAgICAgICAgICAgICAgQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmlt
YXRlLnJ1bk11bHRpVGhyZWFkCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1Nj
aGVkdWxlclN0YXRlTWFjaGluZTo6dXBkYXRlU3RhdGUpOgorCiAyMDEyLTA5LTA2ICBFdWdlbmUg
S2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBUaW1lbGluZTogY2FjaGUgImZpbHRlcmVkUmVjb3JkcyIgZm9yIGJldHRlciBzY3JvbGxp
bmcgcGVyZm9ybWFuY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDY0YzY4ZGRhNDli
MjhkMmMzN2Q4YTAyYWJlMThkYTNhN2JkZjQwNTEuLjg4NTM5NDRhOGQ3ZDM5Zjc5MGJmYzZkNGZk
NjZiZTg5NDE5ZmE4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDktMDYgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbQ2hyb21pdW1dIE11bHRpcGxlIGNvbW1pdHMgd2l0aG91dCBpbnZhbGlkYXRpb24g
YWxsb3dlZCBwZXIgcmVkcmF3LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTU2NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwOgorICAgICAgICAoQ0NM
YXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNDb21taXQpOgorICAgICAgICAoV2ViS2l0VGVzdHM6
OkNDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29tbWl0OjpDQ0xheWVyVHJlZUhvc3RUZXN0
Q29udGludW91c0NvbW1pdCk6CisgICAgICAgIChXZWJLaXRUZXN0cyk6CisgICAgICAgIChXZWJL
aXRUZXN0czo6VEVTVF9GKToKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3Vz
SW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NMYXllclRyZWVIb3N0VGVzdENv
bnRpbnVvdXNJbnZhbGlkYXRlOjpDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRh
dGUpOgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlKToKKyAg
ICAgICAgKFdlYktpdFRlc3RzOjpDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0FuaW1hdGU6
OkNDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQW5pbWF0ZSk6CisgICAgICAgICogdGVzdHMv
Q0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1Qp
OgorCiAyMDEyLTA5LTA2ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkIFdlYiBJbnNwZWN0b3I6IHRlc3QgZml4LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUuY3BwCmluZGV4IDk1MjY1OTA2NDQzYWNj
ZTVjYTFmZWRjOWUxYWQ2ZGFhZGU2ODM0OTkuLmIwNTJlNDM5YjIyNjc3OTY4MWMzMjQ1YWIxMWQ4
N2M2OGFjYWExMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGlu
ZS5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjp1
cGRhdGVTdGF0ZShBY3Rpb24gYWN0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBjYXNlIEFD
VElPTl9DT01NSVQ6Ci0gICAgICAgIGlmICgobV9uZWVkc0NvbW1pdCB8fCAhbV92aXNpYmxlKSAm
JiAhbV9uZWVkc0ZvcmNlZENvbW1pdCkKKyAgICAgICAgaWYgKCFtX25lZWRzRm9yY2VkQ29tbWl0
KQogICAgICAgICAgICAgbV9jb21taXRTdGF0ZSA9IENPTU1JVF9TVEFURV9XQUlUSU5HX0ZPUl9G
SVJTVF9EUkFXOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NvbW1pdFN0YXRlID0gQ09N
TUlUX1NUQVRFX0lETEU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RUZXN0LmNwcAppbmRleCA1MjE5MzAyN2NjNDY1MTg4MTJiMGFjNTA4YTIy
MDBmMDcyNThjM2ZiLi41NDY4N2Q5MjY3YTI2MTY3NjYyODk3NjY3ZmRmNDg0YzY1YWIwY2M2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
VGVzdC5jcHAKQEAgLTI4MzQsNCArMjgzNCwxNzkgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdFRl
c3RMb3N0Q29udGV4dFdoaWxlVXBkYXRpbmdSZXNvdXJjZXMsIHJ1bk11bHRpVGhyZWFkKQogICAg
IHJ1blRlc3QodHJ1ZSk7CiB9CiAKK2NsYXNzIENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3Vz
Q29tbWl0IDogcHVibGljIENDTGF5ZXJUcmVlSG9zdFRlc3QgeworcHVibGljOgorICAgIENDTGF5
ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29tbWl0KCkKKyAgICAgICAgOiBtX251bURpZENvbW1p
dCgwKQorICAgICAgICAsIG1fbnVtQ29tbWl0Q29tcGxldGUoMCkKKyAgICB7CisgICAgfQorCisg
ICAgdmlydHVhbCB2b2lkIGJlZ2luVGVzdCgpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShJbnRTaXplKDEwLCAxMCksIEludFNpemUoMTAs
IDEwKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldEJvdW5kcyhJ
bnRTaXplKDEwLCAxMCkpOworCisgICAgICAgIHBvc3RTZXROZWVkc0NvbW1pdFRvTWFpblRocmVh
ZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXQoKSBPVkVSUklERQorICAg
IHsKKyAgICAgICAgaWYgKG1fbnVtRGlkQ29tbWl0IDwgNTApIHsKKyAgICAgICAgICAgIG1fbnVt
RGlkQ29tbWl0Kys7CisgICAgICAgICAgICBwb3N0U2V0TmVlZHNDb21taXRUb01haW5UaHJlYWQo
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGVuZFRlc3QoKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q29tcGxldGVPbkNDVGhyZWFkKENDTGF5
ZXJUcmVlSG9zdEltcGwqKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9udW1Db21taXRDb21w
bGV0ZSsrOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkcmF3TGF5ZXJzT25DQ1RocmVhZChD
Q0xheWVyVHJlZUhvc3RJbXBsKiBpbXBsKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgLy8gQ2hl
Y2sgdGhhdCB3ZSBkaWRuJ3QgY29tbWl0IHR3aWNlIHNpbmNlIGxhc3QgZHJhdy4KKyAgICAgICAg
RVhQRUNUX0VRKDEsIG1fbnVtQ29tbWl0Q29tcGxldGUpOworICAgICAgICBtX251bUNvbW1pdENv
bXBsZXRlID0gMDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYWZ0ZXJUZXN0KCkgT1ZFUlJJ
REUKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIGludCBtX251bURpZENvbW1pdDsKKyAg
ICBpbnQgbV9udW1Db21taXRDb21wbGV0ZTsKK307CisKK1RFU1RfRihDQ0xheWVyVHJlZUhvc3RU
ZXN0Q29udGludW91c0NvbW1pdCwgcnVuTXVsdGlUaHJlYWQpCit7CisgICAgcnVuVGVzdCh0cnVl
KTsKK30KKworY2xhc3MgQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNJbnZhbGlkYXRlIDog
cHVibGljIENDTGF5ZXJUcmVlSG9zdFRlc3QgeworcHVibGljOgorICAgIENDTGF5ZXJUcmVlSG9z
dFRlc3RDb250aW51b3VzSW52YWxpZGF0ZSgpCisgICAgICAgIDogbV9udW1EaWRDb21taXQoMCkK
KyAgICAgICAgLCBtX251bUNvbW1pdENvbXBsZXRlKDApCisgICAgeworICAgIH0KKworICAgIHZp
cnR1YWwgdm9pZCBiZWdpblRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUoSW50U2l6ZSgxMCwgMTApLCBJbnRTaXplKDEwLCAxMCkp
OworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRCb3VuZHMoSW50U2l6
ZSgxMCwgMTApKTsKKworICAgICAgICBtX2NvbnRlbnRMYXllciA9IENvbnRlbnRMYXllckNocm9t
aXVtOjpjcmVhdGUoJm1fbW9ja0RlbGVnYXRlKTsKKyAgICAgICAgbV9jb250ZW50TGF5ZXItPnNl
dEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworICAgICAgICBtX2NvbnRlbnRMYXllci0+c2V0UG9z
aXRpb24oRmxvYXRQb2ludCgwLCAwKSk7CisgICAgICAgIG1fY29udGVudExheWVyLT5zZXRBbmNo
b3JQb2ludChGbG9hdFBvaW50KDAsIDApKTsKKyAgICAgICAgbV9jb250ZW50TGF5ZXItPnNldElz
RHJhd2FibGUodHJ1ZSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPmFk
ZENoaWxkKG1fY29udGVudExheWVyKTsKKworICAgICAgICBwb3N0U2V0TmVlZHNDb21taXRUb01h
aW5UaHJlYWQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0KCkgT1ZFUlJJ
REUKKyAgICB7CisgICAgICAgIGlmIChtX251bURpZENvbW1pdCA8IDUwKSB7CisgICAgICAgICAg
ICBtX251bURpZENvbW1pdCsrOworICAgICAgICAgICAgbV9jb250ZW50TGF5ZXItPnNldE5lZWRz
RGlzcGxheSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZW5k
VGVzdCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBjb21taXRDb21wbGV0ZU9uQ0NUaHJl
YWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIE9WRVJSSURFCisgICAgeworICAgICAgICBtX251bUNv
bW1pdENvbXBsZXRlKys7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRyYXdMYXllcnNPbkND
VGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGltcGwpIE9WRVJSSURFCisgICAgeworICAgICAg
ICAvLyBDaGVjayB0aGF0IHdlIGRpZG4ndCBjb21taXQgdHdpY2Ugc2luY2UgbGFzdCBkcmF3Lgor
ICAgICAgICBFWFBFQ1RfRVEoMSwgbV9udW1Db21taXRDb21wbGV0ZSk7CisgICAgICAgIG1fbnVt
Q29tbWl0Q29tcGxldGUgPSAwOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhZnRlclRlc3Qo
KSBPVkVSUklERQorICAgIHsKKyAgICAgICAgLy8gQ2xlYXIgbGF5ZXIgcmVmZXJlbmNlcyBzbyBD
Q0xheWVyVHJlZUhvc3QgZGllcy4KKyAgICAgICAgbV9jb250ZW50TGF5ZXIuY2xlYXIoKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IG1fbW9j
a0RlbGVnYXRlOworICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBtX2NvbnRlbnRMYXllcjsKKyAg
ICBpbnQgbV9udW1EaWRDb21taXQ7CisgICAgaW50IG1fbnVtQ29tbWl0Q29tcGxldGU7Cit9Owor
CitURVNUX0YoQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNJbnZhbGlkYXRlLCBydW5NdWx0
aVRocmVhZCkKK3sKKyAgICBydW5UZXN0KHRydWUpOworfQorCitjbGFzcyBDQ0xheWVyVHJlZUhv
c3RUZXN0Q29udGludW91c0FuaW1hdGUgOiBwdWJsaWMgQ0NMYXllclRyZWVIb3N0VGVzdCB7Citw
dWJsaWM6CisgICAgQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlKCkKKyAgICAg
ICAgOiBtX251bUFuaW1hdGUoMCkKKyAgICAgICAgLCBtX251bUNvbW1pdENvbXBsZXRlKDApCisg
ICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBiZWdpblRlc3QoKSBPVkVSUklERQorICAg
IHsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUoSW50U2l6ZSgxMCwg
MTApLCBJbnRTaXplKDEwLCAxMCkpOworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXll
cigpLT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTApKTsKKworICAgICAgICBwb3N0U2V0TmVlZHND
b21taXRUb01haW5UaHJlYWQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShk
b3VibGUpIE9WRVJSSURFCisgICAgeworICAgICAgICBpZiAobV9udW1BbmltYXRlIDwgNTApIHsK
KyAgICAgICAgICAgIG1fbnVtQW5pbWF0ZSsrOworICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5zZXROZWVkc0FuaW1hdGUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGVuZFRlc3QoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZF
UlJJREUKKyAgICB7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldE5l
ZWRzRGlzcGxheSgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBjb21taXRDb21wbGV0ZU9u
Q0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIE9WRVJSSURFCisgICAgeworICAgICAgICBt
X251bUNvbW1pdENvbXBsZXRlKys7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRyYXdMYXll
cnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGltcGwpIE9WRVJSSURFCisgICAgewor
ICAgICAgICAvLyBDaGVjayB0aGF0IGRpZG4ndCBjb21taXQgdHdpY2Ugc2luY2UgbGFzdCBkcmF3
LgorICAgICAgICBFWFBFQ1RfRVEoMSwgbV9udW1Db21taXRDb21wbGV0ZSk7CisgICAgICAgIG1f
bnVtQ29tbWl0Q29tcGxldGUgPSAwOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhZnRlclRl
c3QoKSBPVkVSUklERQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fbnVtQW5p
bWF0ZTsKKyAgICBpbnQgbV9udW1Db21taXRDb21wbGV0ZTsKK307CisKK1RFU1RfRihDQ0xheWVy
VHJlZUhvc3RUZXN0Q29udGludW91c0FuaW1hdGUsIHJ1bk11bHRpVGhyZWFkKQoreworICAgIHJ1
blRlc3QodHJ1ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdC5jcHAK
aW5kZXggMDllODljODdkNGZjOTlkNGFkNTk4OWVlMGE4OTg2NTdiNmNmMjhmMi4uYmZmMGEyOGMw
MDcyZTg1ZDU4ZWViNGY3MDMxZGViZGFiYjhkYjA1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LmNw
cApAQCAtNzY2LDcgKzc2Niw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBU
ZXN0RnVsbEN5Y2xlKQogCiAgICAgLy8gQ29tbWl0LgogICAgIHN0YXRlLnVwZGF0ZVN0YXRlKEND
U2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQ09NTUlUKTsKLSAgICBFWFBFQ1RfRVEoQ0NT
Y2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9JRExFLCBzdGF0ZS5jb21taXRTdGF0
ZSgpKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFU
RV9XQUlUSU5HX0ZPUl9GSVJTVF9EUkFXLCBzdGF0ZS5jb21taXRTdGF0ZSgpKTsKICAgICBFWFBF
Q1RfVFJVRShzdGF0ZS5uZWVkc1JlZHJhdygpKTsKIAogICAgIC8vIEV4cGVjdCB0byBkbyBub3Ro
aW5nIHVudGlsIHZzeW5jLgpAQCAtOTc5LDYgKzk3OSwxMSBAQCBURVNUKENDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lVGVzdCwgVGVzdENvbnRleHRMb3N0V2hpbGVDb21taXRJblByb2dyZXNzKQogICAg
IEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0NPTU1JVCwgc3RhdGUu
bmV4dEFjdGlvbigpKTsKICAgICBzdGF0ZS51cGRhdGVTdGF0ZShzdGF0ZS5uZXh0QWN0aW9uKCkp
OwogCisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVf
V0FJVElOR19GT1JfRklSU1RfRFJBVywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CisKKyAgICBFWFBF
Q1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9EUkFXX0lGX1BPU1NJQkxFLCBz
dGF0ZS5uZXh0QWN0aW9uKCkpOworICAgIHN0YXRlLnVwZGF0ZVN0YXRlKHN0YXRlLm5leHRBY3Rp
b24oKSk7CisKICAgICAvLyBFeHBlY3QgdG8gYmUgdG9sZCB0byBiZWdpbiBjb250ZXh0IHJlY3Jl
YXRpb24sIGluZGVwZW5kZW50IG9mIHZzeW5jIHN0YXRlCiAgICAgc3RhdGUuZGlkRW50ZXJWU3lu
YygpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lO
X0NPTlRFWFRfUkVDUkVBVElPTiwgc3RhdGUubmV4dEFjdGlvbigpKTsKQEAgLTEwMDksOSArMTAx
NCw2IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0Q29udGV4dExvc3RX
aGlsZUNvbW1pdEluUHJvZ3Jlc3NBbmRBbm90aGVyCiAgICAgc3RhdGUuZGlkTG9zZUNvbnRleHQo
KTsKIAogICAgIC8vIEFzayBmb3IgYW5vdGhlciBkcmF3IGFuZCBhbHNvIHNldCBuZWVkcyBjb21t
aXQuIEV4cGVjdCBub3RoaW5nIGhhcHBlbnMuCi0gICAgLy8gU2V0dGluZyBhbm90aGVyIGNvbW1p
dCB3aWxsIHB1dCB1cyBpbnRvCi0gICAgLy8gQ09NTUlUX1NUQVRFX1dBSVRJTkdfRk9SX0ZJUlNU
X0RSQVcgYWZ0ZXIgd2UgZmluaXNoIHRoZSBmcmFtZSBvbiB0aGUgbWFpbgotICAgIC8vIHRocmVh
ZC4KICAgICBzdGF0ZS5zZXROZWVkc1JlZHJhdyh0cnVlKTsKICAgICBzdGF0ZS5zZXROZWVkc0Nv
bW1pdCh0cnVlKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElP
Tl9OT05FLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162873</attachid>
            <date>2012-09-07 14:46:53 -0700</date>
            <delta_ts>2012-09-07 16:02:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95661-20120907164610.patch</filename>
            <type>text/plain</type>
            <size>9909</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY0ODQxOTcyZDQwMmQ2
NWE3NjJjNTk4NDY3Yjc3ZGVjMjQxNTk1MS4uNTlhYTQ0MGJlOTUyYTllYTg2ZmMyZWE5M2EwNmU0
MTU3MDIzMjVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTA3ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBN
dWx0aXBsZSBjb21taXRzIHdpdGhvdXQgaW52YWxpZGF0aW9uIGFsbG93ZWQgcGVyIHJlZHJhdy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NjYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW50ZXIgQ09N
TUlUX1NUQVRFX1dBSVRJTkdfRk9SX0ZJUlNUX0RSQVcgYWZ0ZXIgY29tbWl0IHVubGVzcyB3ZSBu
ZWVkCisgICAgICAgIGEgZm9yY2VkIGNvbW1pdC4gVGhpcyBlbnN1cmVzIHdlIGRyYXcgYmVmb3Jl
IGJlZ2lubmluZyBhIG5ldyBmcmFtZS4KKworICAgICAgICBVbml0IHRlc3RzOiBDQ0xheWVyVHJl
ZUhvc3RUZXN0Q29udGludW91c0NvbW1pdC5ydW5NdWx0aVRocmVhZAorICAgICAgICAgICAgICAg
ICAgICBDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRhdGUucnVuTXVsdGlUaHJl
YWQKKyAgICAgICAgICAgICAgICAgICAgQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmlt
YXRlLnJ1bk11bHRpVGhyZWFkCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1Nj
aGVkdWxlclN0YXRlTWFjaGluZTo6dXBkYXRlU3RhdGUpOgorCiAyMDEyLTA5LTA2ICBFdWdlbmUg
S2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBUaW1lbGluZTogY2FjaGUgImZpbHRlcmVkUmVjb3JkcyIgZm9yIGJldHRlciBzY3JvbGxp
bmcgcGVyZm9ybWFuY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDY0YzY4ZGRhNDli
MjhkMmMzN2Q4YTAyYWJlMThkYTNhN2JkZjQwNTEuLjNlMDRhZTk3ZGZkOGEzYWJmN2Y2MzYyZGIz
NWQ5NzM3YjU3N2Y4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDktMDcgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbQ2hyb21pdW1dIE11bHRpcGxlIGNvbW1pdHMgd2l0aG91dCBpbnZhbGlkYXRpb24g
YWxsb3dlZCBwZXIgcmVkcmF3LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTU2NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwOgorICAgICAgICAoQ0NM
YXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNDb21taXQpOgorICAgICAgICAoV2ViS2l0VGVzdHM6
OkNDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29tbWl0OjpDQ0xheWVyVHJlZUhvc3RUZXN0
Q29udGludW91c0NvbW1pdCk6CisgICAgICAgIChXZWJLaXRUZXN0cyk6CisgICAgICAgIChXZWJL
aXRUZXN0czo6VEVTVF9GKToKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3Vz
SW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NMYXllclRyZWVIb3N0VGVzdENv
bnRpbnVvdXNJbnZhbGlkYXRlOjpDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRh
dGUpOgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlKToKKyAg
ICAgICAgKFdlYktpdFRlc3RzOjpDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0FuaW1hdGU6
OkNDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQW5pbWF0ZSk6CisgICAgICAgICogdGVzdHMv
Q0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1Qp
OgorCiAyMDEyLTA5LTA2ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkIFdlYiBJbnNwZWN0b3I6IHRlc3QgZml4LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUuY3BwCmluZGV4IDk1MjY1OTA2NDQzYWNj
ZTVjYTFmZWRjOWUxYWQ2ZGFhZGU2ODM0OTkuLmIwNTJlNDM5YjIyNjc3OTY4MWMzMjQ1YWIxMWQ4
N2M2OGFjYWExMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGlu
ZS5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjp1
cGRhdGVTdGF0ZShBY3Rpb24gYWN0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBjYXNlIEFD
VElPTl9DT01NSVQ6Ci0gICAgICAgIGlmICgobV9uZWVkc0NvbW1pdCB8fCAhbV92aXNpYmxlKSAm
JiAhbV9uZWVkc0ZvcmNlZENvbW1pdCkKKyAgICAgICAgaWYgKCFtX25lZWRzRm9yY2VkQ29tbWl0
KQogICAgICAgICAgICAgbV9jb21taXRTdGF0ZSA9IENPTU1JVF9TVEFURV9XQUlUSU5HX0ZPUl9G
SVJTVF9EUkFXOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NvbW1pdFN0YXRlID0gQ09N
TUlUX1NUQVRFX0lETEU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RUZXN0LmNwcAppbmRleCA1MjE5MzAyN2NjNDY1MTg4MTJiMGFjNTA4YTIy
MDBmMDcyNThjM2ZiLi4yMWEzZWVmNjlhZDQ3ZGEyNzVhNGZlNmVhZmEwZTQ4ZTM2ZGI5MTM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
VGVzdC5jcHAKQEAgLTI4MzQsNCArMjgzNCwxNzEgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdFRl
c3RMb3N0Q29udGV4dFdoaWxlVXBkYXRpbmdSZXNvdXJjZXMsIHJ1bk11bHRpVGhyZWFkKQogICAg
IHJ1blRlc3QodHJ1ZSk7CiB9CiAKK2NsYXNzIENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3Vz
Q29tbWl0IDogcHVibGljIENDTGF5ZXJUcmVlSG9zdFRlc3QgeworcHVibGljOgorICAgIENDTGF5
ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29tbWl0KCkKKyAgICAgICAgOiBtX251bUNvbW1pdENv
bXBsZXRlKDApCisgICAgICAgICwgbV9udW1EcmF3TGF5ZXJzKDApCisgICAgeworICAgIH0KKwor
ICAgIHZpcnR1YWwgdm9pZCBiZWdpblRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9s
YXllclRyZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUoSW50U2l6ZSgxMCwgMTApLCBJbnRTaXplKDEw
LCAxMCkpOworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRCb3VuZHMo
SW50U2l6ZSgxMCwgMTApKTsKKworICAgICAgICBwb3N0U2V0TmVlZHNDb21taXRUb01haW5UaHJl
YWQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0KCkgT1ZFUlJJREUKKyAg
ICB7CisgICAgICAgIHBvc3RTZXROZWVkc0NvbW1pdFRvTWFpblRocmVhZCgpOworICAgIH0KKwor
ICAgIHZpcnR1YWwgdm9pZCBjb21taXRDb21wbGV0ZU9uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0
SW1wbCopIE9WRVJSSURFCisgICAgeworICAgICAgICBpZiAobV9udW1EcmF3TGF5ZXJzID09IDEp
CisgICAgICAgICAgICBtX251bUNvbW1pdENvbXBsZXRlKys7CisgICAgfQorCisgICAgdmlydHVh
bCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGltcGwpIE9W
RVJSSURFCisgICAgeworICAgICAgICBtX251bURyYXdMYXllcnMrKzsKKyAgICAgICAgaWYgKG1f
bnVtRHJhd0xheWVycyA9PSAyKQorICAgICAgICAgICAgZW5kVGVzdCgpOworICAgIH0KKworICAg
IHZpcnR1YWwgdm9pZCBhZnRlclRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgLy8gQ2hl
Y2sgdGhhdCB3ZSBkaWRuJ3QgY29tbWl0IHR3aWNlIGJldHdlZW4gZmlyc3QgYW5kIHNlY29uZCBk
cmF3LgorICAgICAgICBFWFBFQ1RfRVEoMSwgbV9udW1Db21taXRDb21wbGV0ZSk7CisgICAgfQor
Citwcml2YXRlOgorICAgIGludCBtX251bUNvbW1pdENvbXBsZXRlOworICAgIGludCBtX251bURy
YXdMYXllcnM7Cit9OworCitURVNUX0YoQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNDb21t
aXQsIHJ1bk11bHRpVGhyZWFkKQoreworICAgIHJ1blRlc3QodHJ1ZSk7Cit9CisKK2NsYXNzIEND
TGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzSW52YWxpZGF0ZSA6IHB1YmxpYyBDQ0xheWVyVHJl
ZUhvc3RUZXN0IHsKK3B1YmxpYzoKKyAgICBDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0lu
dmFsaWRhdGUoKQorICAgICAgICA6IG1fbnVtQ29tbWl0Q29tcGxldGUoMCkKKyAgICAgICAgLCBt
X251bURyYXdMYXllcnMoMCkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGJlZ2lu
VGVzdCgpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdw
b3J0U2l6ZShJbnRTaXplKDEwLCAxMCksIEludFNpemUoMTAsIDEwKSk7CisgICAgICAgIG1fbGF5
ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworCisg
ICAgICAgIG1fY29udGVudExheWVyID0gQ29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSgmbV9t
b2NrRGVsZWdhdGUpOworICAgICAgICBtX2NvbnRlbnRMYXllci0+c2V0Qm91bmRzKEludFNpemUo
MTAsIDEwKSk7CisgICAgICAgIG1fY29udGVudExheWVyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50
KDAsIDApKTsKKyAgICAgICAgbV9jb250ZW50TGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9p
bnQoMCwgMCkpOworICAgICAgICBtX2NvbnRlbnRMYXllci0+c2V0SXNEcmF3YWJsZSh0cnVlKTsK
KyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+YWRkQ2hpbGQobV9jb250ZW50
TGF5ZXIpOworCisgICAgICAgIHBvc3RTZXROZWVkc0NvbW1pdFRvTWFpblRocmVhZCgpOworICAg
IH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXQoKSBPVkVSUklERQorICAgIHsKKyAgICAg
ICAgbV9jb250ZW50TGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworICAgIH0KKworICAgIHZpcnR1
YWwgdm9pZCBjb21taXRDb21wbGV0ZU9uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIE9W
RVJSSURFCisgICAgeworICAgICAgICBpZiAobV9udW1EcmF3TGF5ZXJzID09IDEpCisgICAgICAg
ICAgICBtX251bUNvbW1pdENvbXBsZXRlKys7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRy
YXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGltcGwpIE9WRVJSSURFCisg
ICAgeworICAgICAgICBtX251bURyYXdMYXllcnMrKzsKKyAgICAgICAgaWYgKG1fbnVtRHJhd0xh
eWVycyA9PSAyKQorICAgICAgICAgICAgZW5kVGVzdCgpOworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBhZnRlclRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCB3
ZSBkaWRuJ3QgY29tbWl0IHR3aWNlIGJldHdlZW4gZmlyc3QgYW5kIHNlY29uZCBkcmF3LgorICAg
ICAgICBFWFBFQ1RfRVEoMSwgbV9udW1Db21taXRDb21wbGV0ZSk7CisKKyAgICAgICAgLy8gQ2xl
YXIgbGF5ZXIgcmVmZXJlbmNlcyBzbyBDQ0xheWVyVHJlZUhvc3QgZGllcy4KKyAgICAgICAgbV9j
b250ZW50TGF5ZXIuY2xlYXIoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgTW9ja0NvbnRlbnRM
YXllckNocm9taXVtQ2xpZW50IG1fbW9ja0RlbGVnYXRlOworICAgIFJlZlB0cjxMYXllckNocm9t
aXVtPiBtX2NvbnRlbnRMYXllcjsKKyAgICBpbnQgbV9udW1Db21taXRDb21wbGV0ZTsKKyAgICBp
bnQgbV9udW1EcmF3TGF5ZXJzOworfTsKKworVEVTVF9GKENDTGF5ZXJUcmVlSG9zdFRlc3RDb250
aW51b3VzSW52YWxpZGF0ZSwgcnVuTXVsdGlUaHJlYWQpCit7CisgICAgcnVuVGVzdCh0cnVlKTsK
K30KKworY2xhc3MgQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlIDogcHVibGlj
IENDTGF5ZXJUcmVlSG9zdFRlc3QgeworcHVibGljOgorICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RD
b250aW51b3VzQW5pbWF0ZSgpCisgICAgICAgIDogbV9udW1Db21taXRDb21wbGV0ZSgwKQorICAg
ICAgICAsIG1fbnVtRHJhd0xheWVycygwKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgYmVnaW5UZXN0KCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2V0Vmlld3BvcnRTaXplKEludFNpemUoMTAsIDEwKSwgSW50U2l6ZSgxMCwgMTApKTsKKyAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0Qm91bmRzKEludFNpemUoMTAsIDEw
KSk7CisKKyAgICAgICAgcG9zdFNldE5lZWRzQ29tbWl0VG9NYWluVGhyZWFkKCk7CisgICAgfQor
CisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlKSBPVkVSUklERQorICAgIHsKKyAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5zZXROZWVkc0FuaW1hdGUoKTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9z
dC0+cm9vdExheWVyKCktPnNldE5lZWRzRGlzcGxheSgpOworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBjb21taXRDb21wbGV0ZU9uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIE9WRVJS
SURFCisgICAgeworICAgICAgICBpZiAobV9udW1EcmF3TGF5ZXJzID09IDEpCisgICAgICAgICAg
ICBtX251bUNvbW1pdENvbXBsZXRlKys7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRyYXdM
YXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGltcGwpIE9WRVJSSURFCisgICAg
eworICAgICAgICBtX251bURyYXdMYXllcnMrKzsKKyAgICAgICAgaWYgKG1fbnVtRHJhd0xheWVy
cyA9PSAyKQorICAgICAgICAgICAgZW5kVGVzdCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCBhZnRlclRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCB3ZSBk
aWRuJ3QgY29tbWl0IHR3aWNlIGJldHdlZW4gZmlyc3QgYW5kIHNlY29uZCBkcmF3LgorICAgICAg
ICBFWFBFQ1RfRVEoMSwgbV9udW1Db21taXRDb21wbGV0ZSk7CisgICAgfQorCitwcml2YXRlOgor
ICAgIGludCBtX251bUNvbW1pdENvbXBsZXRlOworICAgIGludCBtX251bURyYXdMYXllcnM7Cit9
OworCitURVNUX0YoQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlLCBydW5NdWx0
aVRocmVhZCkKK3sKKyAgICBydW5UZXN0KHRydWUpOworfQorCiB9IC8vIG5hbWVzcGFjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclN0YXRlTWFj
aGluZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclN0
YXRlTWFjaGluZVRlc3QuY3BwCmluZGV4IDA5ZTg5Yzg3ZDRmYzk5ZDRhZDU5ODllZTBhODk4NjU3
YjZjZjI4ZjIuLmJmZjBhMjhjMDA3MmU4NWQ1OGVlYjRmNzAzMWRlYmRhYmI4ZGIwNWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hp
bmVUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVy
U3RhdGVNYWNoaW5lVGVzdC5jcHAKQEAgLTc2Niw3ICs3NjYsNyBAQCBURVNUKENDU2NoZWR1bGVy
U3RhdGVNYWNoaW5lVGVzdCwgVGVzdEZ1bGxDeWNsZSkKIAogICAgIC8vIENvbW1pdC4KICAgICBz
dGF0ZS51cGRhdGVTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0NPTU1JVCk7
Ci0gICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfSURM
RSwgc3RhdGUuY29tbWl0U3RhdGUoKSk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVN
YWNoaW5lOjpDT01NSVRfU1RBVEVfV0FJVElOR19GT1JfRklSU1RfRFJBVywgc3RhdGUuY29tbWl0
U3RhdGUoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RhdGUubmVlZHNSZWRyYXcoKSk7CiAKICAgICAv
LyBFeHBlY3QgdG8gZG8gbm90aGluZyB1bnRpbCB2c3luYy4KQEAgLTk3OSw2ICs5NzksMTEgQEAg
VEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RDb250ZXh0TG9zdFdoaWxlQ29t
bWl0SW5Qcm9ncmVzcykKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFD
VElPTl9DT01NSVQsIHN0YXRlLm5leHRBY3Rpb24oKSk7CiAgICAgc3RhdGUudXBkYXRlU3RhdGUo
c3RhdGUubmV4dEFjdGlvbigpKTsKIAorICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFj
aGluZTo6Q09NTUlUX1NUQVRFX1dBSVRJTkdfRk9SX0ZJUlNUX0RSQVcsIHN0YXRlLmNvbW1pdFN0
YXRlKCkpOworCisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05f
RFJBV19JRl9QT1NTSUJMRSwgc3RhdGUubmV4dEFjdGlvbigpKTsKKyAgICBzdGF0ZS51cGRhdGVT
dGF0ZShzdGF0ZS5uZXh0QWN0aW9uKCkpOworCiAgICAgLy8gRXhwZWN0IHRvIGJlIHRvbGQgdG8g
YmVnaW4gY29udGV4dCByZWNyZWF0aW9uLCBpbmRlcGVuZGVudCBvZiB2c3luYyBzdGF0ZQogICAg
IHN0YXRlLmRpZEVudGVyVlN5bmMoKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1h
Y2hpbmU6OkFDVElPTl9CRUdJTl9DT05URVhUX1JFQ1JFQVRJT04sIHN0YXRlLm5leHRBY3Rpb24o
KSk7CkBAIC0xMDA5LDkgKzEwMTQsNiBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVz
dCwgVGVzdENvbnRleHRMb3N0V2hpbGVDb21taXRJblByb2dyZXNzQW5kQW5vdGhlcgogICAgIHN0
YXRlLmRpZExvc2VDb250ZXh0KCk7CiAKICAgICAvLyBBc2sgZm9yIGFub3RoZXIgZHJhdyBhbmQg
YWxzbyBzZXQgbmVlZHMgY29tbWl0LiBFeHBlY3Qgbm90aGluZyBoYXBwZW5zLgotICAgIC8vIFNl
dHRpbmcgYW5vdGhlciBjb21taXQgd2lsbCBwdXQgdXMgaW50bwotICAgIC8vIENPTU1JVF9TVEFU
RV9XQUlUSU5HX0ZPUl9GSVJTVF9EUkFXIGFmdGVyIHdlIGZpbmlzaCB0aGUgZnJhbWUgb24gdGhl
IG1haW4KLSAgICAvLyB0aHJlYWQuCiAgICAgc3RhdGUuc2V0TmVlZHNSZWRyYXcodHJ1ZSk7CiAg
ICAgc3RhdGUuc2V0TmVlZHNDb21taXQodHJ1ZSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVy
U3RhdGVNYWNoaW5lOjpBQ1RJT05fTk9ORSwgc3RhdGUubmV4dEFjdGlvbigpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162894</attachid>
            <date>2012-09-07 16:02:17 -0700</date>
            <delta_ts>2012-09-07 16:21:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95661-20120907180134.patch</filename>
            <type>text/plain</type>
            <size>10542</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY0ODQxOTcyZDQwMmQ2
NWE3NjJjNTk4NDY3Yjc3ZGVjMjQxNTk1MS4uNTlhYTQ0MGJlOTUyYTllYTg2ZmMyZWE5M2EwNmU0
MTU3MDIzMjVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTA3ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBN
dWx0aXBsZSBjb21taXRzIHdpdGhvdXQgaW52YWxpZGF0aW9uIGFsbG93ZWQgcGVyIHJlZHJhdy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NjYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW50ZXIgQ09N
TUlUX1NUQVRFX1dBSVRJTkdfRk9SX0ZJUlNUX0RSQVcgYWZ0ZXIgY29tbWl0IHVubGVzcyB3ZSBu
ZWVkCisgICAgICAgIGEgZm9yY2VkIGNvbW1pdC4gVGhpcyBlbnN1cmVzIHdlIGRyYXcgYmVmb3Jl
IGJlZ2lubmluZyBhIG5ldyBmcmFtZS4KKworICAgICAgICBVbml0IHRlc3RzOiBDQ0xheWVyVHJl
ZUhvc3RUZXN0Q29udGludW91c0NvbW1pdC5ydW5NdWx0aVRocmVhZAorICAgICAgICAgICAgICAg
ICAgICBDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRhdGUucnVuTXVsdGlUaHJl
YWQKKyAgICAgICAgICAgICAgICAgICAgQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmlt
YXRlLnJ1bk11bHRpVGhyZWFkCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1Nj
aGVkdWxlclN0YXRlTWFjaGluZTo6dXBkYXRlU3RhdGUpOgorCiAyMDEyLTA5LTA2ICBFdWdlbmUg
S2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBUaW1lbGluZTogY2FjaGUgImZpbHRlcmVkUmVjb3JkcyIgZm9yIGJldHRlciBzY3JvbGxp
bmcgcGVyZm9ybWFuY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDY0YzY4ZGRhNDli
MjhkMmMzN2Q4YTAyYWJlMThkYTNhN2JkZjQwNTEuLjNlMDRhZTk3ZGZkOGEzYWJmN2Y2MzYyZGIz
NWQ5NzM3YjU3N2Y4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDktMDcgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbQ2hyb21pdW1dIE11bHRpcGxlIGNvbW1pdHMgd2l0aG91dCBpbnZhbGlkYXRpb24g
YWxsb3dlZCBwZXIgcmVkcmF3LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTU2NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwOgorICAgICAgICAoQ0NM
YXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNDb21taXQpOgorICAgICAgICAoV2ViS2l0VGVzdHM6
OkNDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29tbWl0OjpDQ0xheWVyVHJlZUhvc3RUZXN0
Q29udGludW91c0NvbW1pdCk6CisgICAgICAgIChXZWJLaXRUZXN0cyk6CisgICAgICAgIChXZWJL
aXRUZXN0czo6VEVTVF9GKToKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3Vz
SW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NMYXllclRyZWVIb3N0VGVzdENv
bnRpbnVvdXNJbnZhbGlkYXRlOjpDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRh
dGUpOgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlKToKKyAg
ICAgICAgKFdlYktpdFRlc3RzOjpDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0FuaW1hdGU6
OkNDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQW5pbWF0ZSk6CisgICAgICAgICogdGVzdHMv
Q0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1Qp
OgorCiAyMDEyLTA5LTA2ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkIFdlYiBJbnNwZWN0b3I6IHRlc3QgZml4LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUuY3BwCmluZGV4IDk1MjY1OTA2NDQzYWNj
ZTVjYTFmZWRjOWUxYWQ2ZGFhZGU2ODM0OTkuLjA4YjQwN2RmODI0MjY5YzBmZDlhNGUxMjlhYmY2
MjBkZTUyMzg3NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGlu
ZS5jcHAKQEAgLTIwMywxMSArMjAzLDcgQEAgdm9pZCBDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6
dXBkYXRlU3RhdGUoQWN0aW9uIGFjdGlvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBB
Q1RJT05fQ09NTUlUOgotICAgICAgICBpZiAoKG1fbmVlZHNDb21taXQgfHwgIW1fdmlzaWJsZSkg
JiYgIW1fbmVlZHNGb3JjZWRDb21taXQpCi0gICAgICAgICAgICBtX2NvbW1pdFN0YXRlID0gQ09N
TUlUX1NUQVRFX1dBSVRJTkdfRk9SX0ZJUlNUX0RSQVc7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIG1fY29tbWl0U3RhdGUgPSBDT01NSVRfU1RBVEVfSURMRTsKLQorICAgICAgICBtX2NvbW1p
dFN0YXRlID0gQ09NTUlUX1NUQVRFX1dBSVRJTkdfRk9SX0ZJUlNUX0RSQVc7CiAgICAgICAgIG1f
bmVlZHNSZWRyYXcgPSB0cnVlOwogICAgICAgICBpZiAobV9kcmF3SWZQb3NzaWJsZUZhaWxlZCkK
ICAgICAgICAgICAgIG1fbGFzdEZyYW1lTnVtYmVyV2hlcmVEcmF3V2FzQ2FsbGVkID0gLTE7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRl
c3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0
LmNwcAppbmRleCA1MjE5MzAyN2NjNDY1MTg4MTJiMGFjNTA4YTIyMDBmMDcyNThjM2ZiLi4yMWEz
ZWVmNjlhZDQ3ZGEyNzVhNGZlNmVhZmEwZTQ4ZTM2ZGI5MTM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKQEAgLTI4MzQs
NCArMjgzNCwxNzEgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdFRlc3RMb3N0Q29udGV4dFdoaWxl
VXBkYXRpbmdSZXNvdXJjZXMsIHJ1bk11bHRpVGhyZWFkKQogICAgIHJ1blRlc3QodHJ1ZSk7CiB9
CiAKK2NsYXNzIENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29tbWl0IDogcHVibGljIEND
TGF5ZXJUcmVlSG9zdFRlc3QgeworcHVibGljOgorICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RDb250
aW51b3VzQ29tbWl0KCkKKyAgICAgICAgOiBtX251bUNvbW1pdENvbXBsZXRlKDApCisgICAgICAg
ICwgbV9udW1EcmF3TGF5ZXJzKDApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBi
ZWdpblRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRW
aWV3cG9ydFNpemUoSW50U2l6ZSgxMCwgMTApLCBJbnRTaXplKDEwLCAxMCkpOworICAgICAgICBt
X2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTApKTsK
KworICAgICAgICBwb3N0U2V0TmVlZHNDb21taXRUb01haW5UaHJlYWQoKTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0KCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIHBvc3RT
ZXROZWVkc0NvbW1pdFRvTWFpblRocmVhZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBj
b21taXRDb21wbGV0ZU9uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIE9WRVJSSURFCisg
ICAgeworICAgICAgICBpZiAobV9udW1EcmF3TGF5ZXJzID09IDEpCisgICAgICAgICAgICBtX251
bUNvbW1pdENvbXBsZXRlKys7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRyYXdMYXllcnNP
bkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGltcGwpIE9WRVJSSURFCisgICAgeworICAg
ICAgICBtX251bURyYXdMYXllcnMrKzsKKyAgICAgICAgaWYgKG1fbnVtRHJhd0xheWVycyA9PSAy
KQorICAgICAgICAgICAgZW5kVGVzdCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhZnRl
clRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCB3ZSBkaWRuJ3Qg
Y29tbWl0IHR3aWNlIGJldHdlZW4gZmlyc3QgYW5kIHNlY29uZCBkcmF3LgorICAgICAgICBFWFBF
Q1RfRVEoMSwgbV9udW1Db21taXRDb21wbGV0ZSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGlu
dCBtX251bUNvbW1pdENvbXBsZXRlOworICAgIGludCBtX251bURyYXdMYXllcnM7Cit9OworCitU
RVNUX0YoQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNDb21taXQsIHJ1bk11bHRpVGhyZWFk
KQoreworICAgIHJ1blRlc3QodHJ1ZSk7Cit9CisKK2NsYXNzIENDTGF5ZXJUcmVlSG9zdFRlc3RD
b250aW51b3VzSW52YWxpZGF0ZSA6IHB1YmxpYyBDQ0xheWVyVHJlZUhvc3RUZXN0IHsKK3B1Ymxp
YzoKKyAgICBDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRhdGUoKQorICAgICAg
ICA6IG1fbnVtQ29tbWl0Q29tcGxldGUoMCkKKyAgICAgICAgLCBtX251bURyYXdMYXllcnMoMCkK
KyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGJlZ2luVGVzdCgpIE9WRVJSSURFCisg
ICAgeworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShJbnRTaXplKDEw
LCAxMCksIEludFNpemUoMTAsIDEwKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExh
eWVyKCktPnNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworCisgICAgICAgIG1fY29udGVudExh
eWVyID0gQ29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSgmbV9tb2NrRGVsZWdhdGUpOworICAg
ICAgICBtX2NvbnRlbnRMYXllci0+c2V0Qm91bmRzKEludFNpemUoMTAsIDEwKSk7CisgICAgICAg
IG1fY29udGVudExheWVyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KDAsIDApKTsKKyAgICAgICAg
bV9jb250ZW50TGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQoMCwgMCkpOworICAgICAg
ICBtX2NvbnRlbnRMYXllci0+c2V0SXNEcmF3YWJsZSh0cnVlKTsKKyAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5yb290TGF5ZXIoKS0+YWRkQ2hpbGQobV9jb250ZW50TGF5ZXIpOworCisgICAgICAg
IHBvc3RTZXROZWVkc0NvbW1pdFRvTWFpblRocmVhZCgpOworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBkaWRDb21taXQoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9jb250ZW50TGF5ZXIt
PnNldE5lZWRzRGlzcGxheSgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBjb21taXRDb21w
bGV0ZU9uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIE9WRVJSSURFCisgICAgeworICAg
ICAgICBpZiAobV9udW1EcmF3TGF5ZXJzID09IDEpCisgICAgICAgICAgICBtX251bUNvbW1pdENv
bXBsZXRlKys7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFk
KENDTGF5ZXJUcmVlSG9zdEltcGwqIGltcGwpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX251
bURyYXdMYXllcnMrKzsKKyAgICAgICAgaWYgKG1fbnVtRHJhd0xheWVycyA9PSAyKQorICAgICAg
ICAgICAgZW5kVGVzdCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhZnRlclRlc3QoKSBP
VkVSUklERQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCB3ZSBkaWRuJ3QgY29tbWl0IHR3
aWNlIGJldHdlZW4gZmlyc3QgYW5kIHNlY29uZCBkcmF3LgorICAgICAgICBFWFBFQ1RfRVEoMSwg
bV9udW1Db21taXRDb21wbGV0ZSk7CisKKyAgICAgICAgLy8gQ2xlYXIgbGF5ZXIgcmVmZXJlbmNl
cyBzbyBDQ0xheWVyVHJlZUhvc3QgZGllcy4KKyAgICAgICAgbV9jb250ZW50TGF5ZXIuY2xlYXIo
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50
IG1fbW9ja0RlbGVnYXRlOworICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBtX2NvbnRlbnRMYXll
cjsKKyAgICBpbnQgbV9udW1Db21taXRDb21wbGV0ZTsKKyAgICBpbnQgbV9udW1EcmF3TGF5ZXJz
OworfTsKKworVEVTVF9GKENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzSW52YWxpZGF0ZSwg
cnVuTXVsdGlUaHJlYWQpCit7CisgICAgcnVuVGVzdCh0cnVlKTsKK30KKworY2xhc3MgQ0NMYXll
clRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlIDogcHVibGljIENDTGF5ZXJUcmVlSG9zdFRl
c3QgeworcHVibGljOgorICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQW5pbWF0ZSgp
CisgICAgICAgIDogbV9udW1Db21taXRDb21wbGV0ZSgwKQorICAgICAgICAsIG1fbnVtRHJhd0xh
eWVycygwKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYmVnaW5UZXN0KCkgT1ZF
UlJJREUKKyAgICB7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKElu
dFNpemUoMTAsIDEwKSwgSW50U2l6ZSgxMCwgMTApKTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5yb290TGF5ZXIoKS0+c2V0Qm91bmRzKEludFNpemUoMTAsIDEwKSk7CisKKyAgICAgICAgcG9z
dFNldE5lZWRzQ29tbWl0VG9NYWluVGhyZWFkKCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lk
IGFuaW1hdGUoZG91YmxlKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5zZXROZWVkc0FuaW1hdGUoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkg
T1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNl
dE5lZWRzRGlzcGxheSgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBjb21taXRDb21wbGV0
ZU9uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIE9WRVJSSURFCisgICAgeworICAgICAg
ICBpZiAobV9udW1EcmF3TGF5ZXJzID09IDEpCisgICAgICAgICAgICBtX251bUNvbW1pdENvbXBs
ZXRlKys7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFkKEND
TGF5ZXJUcmVlSG9zdEltcGwqIGltcGwpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX251bURy
YXdMYXllcnMrKzsKKyAgICAgICAgaWYgKG1fbnVtRHJhd0xheWVycyA9PSAyKQorICAgICAgICAg
ICAgZW5kVGVzdCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhZnRlclRlc3QoKSBPVkVS
UklERQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCB3ZSBkaWRuJ3QgY29tbWl0IHR3aWNl
IGJldHdlZW4gZmlyc3QgYW5kIHNlY29uZCBkcmF3LgorICAgICAgICBFWFBFQ1RfRVEoMSwgbV9u
dW1Db21taXRDb21wbGV0ZSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGludCBtX251bUNvbW1p
dENvbXBsZXRlOworICAgIGludCBtX251bURyYXdMYXllcnM7Cit9OworCitURVNUX0YoQ0NMYXll
clRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlLCBydW5NdWx0aVRocmVhZCkKK3sKKyAgICBy
dW5UZXN0KHRydWUpOworfQorCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QuY3Bw
CmluZGV4IDA5ZTg5Yzg3ZDRmYzk5ZDRhZDU5ODllZTBhODk4NjU3YjZjZjI4ZjIuLjc0NTRjOWVk
YTk1NDg3N2YzMDdkNDMyZDFiZmFiMjc0MGRhZDQ0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdC5j
cHAKQEAgLTc2Niw3ICs3NjYsNyBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdCwg
VGVzdEZ1bGxDeWNsZSkKIAogICAgIC8vIENvbW1pdC4KICAgICBzdGF0ZS51cGRhdGVTdGF0ZShD
Q1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0NPTU1JVCk7Ci0gICAgRVhQRUNUX0VRKEND
U2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfSURMRSwgc3RhdGUuY29tbWl0U3Rh
dGUoKSk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RB
VEVfV0FJVElOR19GT1JfRklSU1RfRFJBVywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CiAgICAgRVhQ
RUNUX1RSVUUoc3RhdGUubmVlZHNSZWRyYXcoKSk7CiAKICAgICAvLyBFeHBlY3QgdG8gZG8gbm90
aGluZyB1bnRpbCB2c3luYy4KQEAgLTk3OSw2ICs5NzksMTEgQEAgVEVTVChDQ1NjaGVkdWxlclN0
YXRlTWFjaGluZVRlc3QsIFRlc3RDb250ZXh0TG9zdFdoaWxlQ29tbWl0SW5Qcm9ncmVzcykKICAg
ICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9DT01NSVQsIHN0YXRl
Lm5leHRBY3Rpb24oKSk7CiAgICAgc3RhdGUudXBkYXRlU3RhdGUoc3RhdGUubmV4dEFjdGlvbigp
KTsKIAorICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRF
X1dBSVRJTkdfRk9SX0ZJUlNUX0RSQVcsIHN0YXRlLmNvbW1pdFN0YXRlKCkpOworCisgICAgRVhQ
RUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fRFJBV19JRl9QT1NTSUJMRSwg
c3RhdGUubmV4dEFjdGlvbigpKTsKKyAgICBzdGF0ZS51cGRhdGVTdGF0ZShzdGF0ZS5uZXh0QWN0
aW9uKCkpOworCiAgICAgLy8gRXhwZWN0IHRvIGJlIHRvbGQgdG8gYmVnaW4gY29udGV4dCByZWNy
ZWF0aW9uLCBpbmRlcGVuZGVudCBvZiB2c3luYyBzdGF0ZQogICAgIHN0YXRlLmRpZEVudGVyVlN5
bmMoKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJ
Tl9DT05URVhUX1JFQ1JFQVRJT04sIHN0YXRlLm5leHRBY3Rpb24oKSk7CkBAIC0xMDA5LDkgKzEw
MTQsNiBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdCwgVGVzdENvbnRleHRMb3N0
V2hpbGVDb21taXRJblByb2dyZXNzQW5kQW5vdGhlcgogICAgIHN0YXRlLmRpZExvc2VDb250ZXh0
KCk7CiAKICAgICAvLyBBc2sgZm9yIGFub3RoZXIgZHJhdyBhbmQgYWxzbyBzZXQgbmVlZHMgY29t
bWl0LiBFeHBlY3Qgbm90aGluZyBoYXBwZW5zLgotICAgIC8vIFNldHRpbmcgYW5vdGhlciBjb21t
aXQgd2lsbCBwdXQgdXMgaW50bwotICAgIC8vIENPTU1JVF9TVEFURV9XQUlUSU5HX0ZPUl9GSVJT
VF9EUkFXIGFmdGVyIHdlIGZpbmlzaCB0aGUgZnJhbWUgb24gdGhlIG1haW4KLSAgICAvLyB0aHJl
YWQuCiAgICAgc3RhdGUuc2V0TmVlZHNSZWRyYXcodHJ1ZSk7CiAgICAgc3RhdGUuc2V0TmVlZHND
b21taXQodHJ1ZSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJ
T05fTk9ORSwgc3RhdGUubmV4dEFjdGlvbigpKTsKQEAgLTExMDQsNyArMTEwNiw3IEBAIFRFU1Qo
Q0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0QmVnaW5GcmFtZVdoZW5Db21taXRJblBy
b2dyZXNzKQogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0NP
TU1JVCwgc3RhdGUubmV4dEFjdGlvbigpKTsKICAgICBzdGF0ZS51cGRhdGVTdGF0ZShzdGF0ZS5u
ZXh0QWN0aW9uKCkpOwogCi0gICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpD
T01NSVRfU1RBVEVfSURMRSwgc3RhdGUuY29tbWl0U3RhdGUoKSk7CisgICAgRVhQRUNUX0VRKEND
U2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfV0FJVElOR19GT1JfRklSU1RfRFJB
Vywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CiAKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0
ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9GUkFNRSwgc3RhdGUubmV4dEFjdGlvbigpKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162896</attachid>
            <date>2012-09-07 16:21:16 -0700</date>
            <delta_ts>2012-09-07 17:25:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95661-20120907182032.patch</filename>
            <type>text/plain</type>
            <size>10518</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY0ODQxOTcyZDQwMmQ2
NWE3NjJjNTk4NDY3Yjc3ZGVjMjQxNTk1MS4uMTgxNTI0YWY5Y2QxOWNlM2JlMjAyMmJmNzQxYjA1
ZTg1YmE1MDA2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTA3ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBN
dWx0aXBsZSBjb21taXRzIHdpdGhvdXQgaW52YWxpZGF0aW9uIGFsbG93ZWQgcGVyIHJlZHJhdy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NjYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWx3YXlzIGVu
dGVyIENPTU1JVF9TVEFURV9XQUlUSU5HX0ZPUl9GSVJTVF9EUkFXIGFmdGVyIGNvbW1pdC4gVGhp
cworICAgICAgICBlbnN1cmVzIHdlIGRyYXcgYmVmb3JlIGJlZ2lubmluZyBhIG5ldyBmcmFtZS4K
KworICAgICAgICBVbml0IHRlc3RzOiBDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0NvbW1p
dC5ydW5NdWx0aVRocmVhZAorICAgICAgICAgICAgICAgICAgICBDQ0xheWVyVHJlZUhvc3RUZXN0
Q29udGludW91c0ludmFsaWRhdGUucnVuTXVsdGlUaHJlYWQKKyAgICAgICAgICAgICAgICAgICAg
Q0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlLnJ1bk11bHRpVGhyZWFkCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFj
aGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6dXBk
YXRlU3RhdGUpOgorCiAyMDEyLTA5LTA2ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVn
QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZTogY2FjaGUgImZp
bHRlcmVkUmVjb3JkcyIgZm9yIGJldHRlciBzY3JvbGxpbmcgcGVyZm9ybWFuY2UuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDY0YzY4ZGRhNDliMjhkMmMzN2Q4YTAyYWJlMThkYTNhN2Jk
ZjQwNTEuLjNlMDRhZTk3ZGZkOGEzYWJmN2Y2MzYyZGIzNWQ5NzM3YjU3N2Y4M2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDktMDcgIERhdmlkIFJl
dmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE11bHRp
cGxlIGNvbW1pdHMgd2l0aG91dCBpbnZhbGlkYXRpb24gYWxsb3dlZCBwZXIgcmVkcmF3LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU2NjEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0NDTGF5
ZXJUcmVlSG9zdFRlc3QuY3BwOgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVv
dXNDb21taXQpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDTGF5ZXJUcmVlSG9zdFRlc3RDb250
aW51b3VzQ29tbWl0OjpDQ0xheWVyVHJlZUhvc3RUZXN0Q29udGludW91c0NvbW1pdCk6CisgICAg
ICAgIChXZWJLaXRUZXN0cyk6CisgICAgICAgIChXZWJLaXRUZXN0czo6VEVTVF9GKToKKyAgICAg
ICAgKENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzSW52YWxpZGF0ZSk6CisgICAgICAgIChX
ZWJLaXRUZXN0czo6Q0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNJbnZhbGlkYXRlOjpDQ0xh
eWVyVHJlZUhvc3RUZXN0Q29udGludW91c0ludmFsaWRhdGUpOgorICAgICAgICAoQ0NMYXllclRy
ZWVIb3N0VGVzdENvbnRpbnVvdXNBbmltYXRlKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ0xh
eWVyVHJlZUhvc3RUZXN0Q29udGludW91c0FuaW1hdGU6OkNDTGF5ZXJUcmVlSG9zdFRlc3RDb250
aW51b3VzQW5pbWF0ZSk6CisgICAgICAgICogdGVzdHMvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVU
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAyMDEyLTA5LTA2ICBJbHlhIFRp
a2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIFdl
YiBJbnNwZWN0b3I6IHRlc3QgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXJTdGF0
ZU1hY2hpbmUuY3BwCmluZGV4IDk1MjY1OTA2NDQzYWNjZTVjYTFmZWRjOWUxYWQ2ZGFhZGU2ODM0
OTkuLjA4YjQwN2RmODI0MjY5YzBmZDlhNGUxMjlhYmY2MjBkZTUyMzg3NzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVy
U3RhdGVNYWNoaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZS5jcHAKQEAgLTIwMywxMSArMjAzLDcg
QEAgdm9pZCBDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6dXBkYXRlU3RhdGUoQWN0aW9uIGFjdGlv
bikKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBBQ1RJT05fQ09NTUlUOgotICAgICAgICBp
ZiAoKG1fbmVlZHNDb21taXQgfHwgIW1fdmlzaWJsZSkgJiYgIW1fbmVlZHNGb3JjZWRDb21taXQp
Ci0gICAgICAgICAgICBtX2NvbW1pdFN0YXRlID0gQ09NTUlUX1NUQVRFX1dBSVRJTkdfRk9SX0ZJ
UlNUX0RSQVc7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fY29tbWl0U3RhdGUgPSBDT01N
SVRfU1RBVEVfSURMRTsKLQorICAgICAgICBtX2NvbW1pdFN0YXRlID0gQ09NTUlUX1NUQVRFX1dB
SVRJTkdfRk9SX0ZJUlNUX0RSQVc7CiAgICAgICAgIG1fbmVlZHNSZWRyYXcgPSB0cnVlOwogICAg
ICAgICBpZiAobV9kcmF3SWZQb3NzaWJsZUZhaWxlZCkKICAgICAgICAgICAgIG1fbGFzdEZyYW1l
TnVtYmVyV2hlcmVEcmF3V2FzQ2FsbGVkID0gLTE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAppbmRleCA1MjE5MzAyN2NjNDY1
MTg4MTJiMGFjNTA4YTIyMDBmMDcyNThjM2ZiLi4yMWEzZWVmNjlhZDQ3ZGEyNzVhNGZlNmVhZmEw
ZTQ4ZTM2ZGI5MTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJUcmVlSG9zdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NMYXllclRyZWVIb3N0VGVzdC5jcHAKQEAgLTI4MzQsNCArMjgzNCwxNzEgQEAgVEVTVF9GKEND
TGF5ZXJUcmVlSG9zdFRlc3RMb3N0Q29udGV4dFdoaWxlVXBkYXRpbmdSZXNvdXJjZXMsIHJ1bk11
bHRpVGhyZWFkKQogICAgIHJ1blRlc3QodHJ1ZSk7CiB9CiAKK2NsYXNzIENDTGF5ZXJUcmVlSG9z
dFRlc3RDb250aW51b3VzQ29tbWl0IDogcHVibGljIENDTGF5ZXJUcmVlSG9zdFRlc3QgeworcHVi
bGljOgorICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQ29tbWl0KCkKKyAgICAgICAg
OiBtX251bUNvbW1pdENvbXBsZXRlKDApCisgICAgICAgICwgbV9udW1EcmF3TGF5ZXJzKDApCisg
ICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBiZWdpblRlc3QoKSBPVkVSUklERQorICAg
IHsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUoSW50U2l6ZSgxMCwg
MTApLCBJbnRTaXplKDEwLCAxMCkpOworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXll
cigpLT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTApKTsKKworICAgICAgICBwb3N0U2V0TmVlZHND
b21taXRUb01haW5UaHJlYWQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0
KCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIHBvc3RTZXROZWVkc0NvbW1pdFRvTWFpblRocmVh
ZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBjb21taXRDb21wbGV0ZU9uQ0NUaHJlYWQo
Q0NMYXllclRyZWVIb3N0SW1wbCopIE9WRVJSSURFCisgICAgeworICAgICAgICBpZiAobV9udW1E
cmF3TGF5ZXJzID09IDEpCisgICAgICAgICAgICBtX251bUNvbW1pdENvbXBsZXRlKys7CisgICAg
fQorCisgICAgdmlydHVhbCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9z
dEltcGwqIGltcGwpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX251bURyYXdMYXllcnMrKzsK
KyAgICAgICAgaWYgKG1fbnVtRHJhd0xheWVycyA9PSAyKQorICAgICAgICAgICAgZW5kVGVzdCgp
OworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhZnRlclRlc3QoKSBPVkVSUklERQorICAgIHsK
KyAgICAgICAgLy8gQ2hlY2sgdGhhdCB3ZSBkaWRuJ3QgY29tbWl0IHR3aWNlIGJldHdlZW4gZmly
c3QgYW5kIHNlY29uZCBkcmF3LgorICAgICAgICBFWFBFQ1RfRVEoMSwgbV9udW1Db21taXRDb21w
bGV0ZSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGludCBtX251bUNvbW1pdENvbXBsZXRlOwor
ICAgIGludCBtX251bURyYXdMYXllcnM7Cit9OworCitURVNUX0YoQ0NMYXllclRyZWVIb3N0VGVz
dENvbnRpbnVvdXNDb21taXQsIHJ1bk11bHRpVGhyZWFkKQoreworICAgIHJ1blRlc3QodHJ1ZSk7
Cit9CisKK2NsYXNzIENDTGF5ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzSW52YWxpZGF0ZSA6IHB1
YmxpYyBDQ0xheWVyVHJlZUhvc3RUZXN0IHsKK3B1YmxpYzoKKyAgICBDQ0xheWVyVHJlZUhvc3RU
ZXN0Q29udGludW91c0ludmFsaWRhdGUoKQorICAgICAgICA6IG1fbnVtQ29tbWl0Q29tcGxldGUo
MCkKKyAgICAgICAgLCBtX251bURyYXdMYXllcnMoMCkKKyAgICB7CisgICAgfQorCisgICAgdmly
dHVhbCB2b2lkIGJlZ2luVGVzdCgpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX2xheWVyVHJl
ZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShJbnRTaXplKDEwLCAxMCksIEludFNpemUoMTAsIDEwKSk7
CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldEJvdW5kcyhJbnRTaXpl
KDEwLCAxMCkpOworCisgICAgICAgIG1fY29udGVudExheWVyID0gQ29udGVudExheWVyQ2hyb21p
dW06OmNyZWF0ZSgmbV9tb2NrRGVsZWdhdGUpOworICAgICAgICBtX2NvbnRlbnRMYXllci0+c2V0
Qm91bmRzKEludFNpemUoMTAsIDEwKSk7CisgICAgICAgIG1fY29udGVudExheWVyLT5zZXRQb3Np
dGlvbihGbG9hdFBvaW50KDAsIDApKTsKKyAgICAgICAgbV9jb250ZW50TGF5ZXItPnNldEFuY2hv
clBvaW50KEZsb2F0UG9pbnQoMCwgMCkpOworICAgICAgICBtX2NvbnRlbnRMYXllci0+c2V0SXNE
cmF3YWJsZSh0cnVlKTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+YWRk
Q2hpbGQobV9jb250ZW50TGF5ZXIpOworCisgICAgICAgIHBvc3RTZXROZWVkc0NvbW1pdFRvTWFp
blRocmVhZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXQoKSBPVkVSUklE
RQorICAgIHsKKyAgICAgICAgbV9jb250ZW50TGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworICAg
IH0KKworICAgIHZpcnR1YWwgdm9pZCBjb21taXRDb21wbGV0ZU9uQ0NUaHJlYWQoQ0NMYXllclRy
ZWVIb3N0SW1wbCopIE9WRVJSSURFCisgICAgeworICAgICAgICBpZiAobV9udW1EcmF3TGF5ZXJz
ID09IDEpCisgICAgICAgICAgICBtX251bUNvbW1pdENvbXBsZXRlKys7CisgICAgfQorCisgICAg
dmlydHVhbCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGlt
cGwpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX251bURyYXdMYXllcnMrKzsKKyAgICAgICAg
aWYgKG1fbnVtRHJhd0xheWVycyA9PSAyKQorICAgICAgICAgICAgZW5kVGVzdCgpOworICAgIH0K
KworICAgIHZpcnR1YWwgdm9pZCBhZnRlclRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAg
Ly8gQ2hlY2sgdGhhdCB3ZSBkaWRuJ3QgY29tbWl0IHR3aWNlIGJldHdlZW4gZmlyc3QgYW5kIHNl
Y29uZCBkcmF3LgorICAgICAgICBFWFBFQ1RfRVEoMSwgbV9udW1Db21taXRDb21wbGV0ZSk7CisK
KyAgICAgICAgLy8gQ2xlYXIgbGF5ZXIgcmVmZXJlbmNlcyBzbyBDQ0xheWVyVHJlZUhvc3QgZGll
cy4KKyAgICAgICAgbV9jb250ZW50TGF5ZXIuY2xlYXIoKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IG1fbW9ja0RlbGVnYXRlOworICAgIFJl
ZlB0cjxMYXllckNocm9taXVtPiBtX2NvbnRlbnRMYXllcjsKKyAgICBpbnQgbV9udW1Db21taXRD
b21wbGV0ZTsKKyAgICBpbnQgbV9udW1EcmF3TGF5ZXJzOworfTsKKworVEVTVF9GKENDTGF5ZXJU
cmVlSG9zdFRlc3RDb250aW51b3VzSW52YWxpZGF0ZSwgcnVuTXVsdGlUaHJlYWQpCit7CisgICAg
cnVuVGVzdCh0cnVlKTsKK30KKworY2xhc3MgQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNB
bmltYXRlIDogcHVibGljIENDTGF5ZXJUcmVlSG9zdFRlc3QgeworcHVibGljOgorICAgIENDTGF5
ZXJUcmVlSG9zdFRlc3RDb250aW51b3VzQW5pbWF0ZSgpCisgICAgICAgIDogbV9udW1Db21taXRD
b21wbGV0ZSgwKQorICAgICAgICAsIG1fbnVtRHJhd0xheWVycygwKQorICAgIHsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgYmVnaW5UZXN0KCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1f
bGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKEludFNpemUoMTAsIDEwKSwgSW50U2l6ZSgx
MCwgMTApKTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0Qm91bmRz
KEludFNpemUoMTAsIDEwKSk7CisKKyAgICAgICAgcG9zdFNldE5lZWRzQ29tbWl0VG9NYWluVGhy
ZWFkKCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlKSBPVkVSUklE
RQorICAgIHsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXROZWVkc0FuaW1hdGUoKTsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAg
IG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldE5lZWRzRGlzcGxheSgpOworICAgIH0K
KworICAgIHZpcnR1YWwgdm9pZCBjb21taXRDb21wbGV0ZU9uQ0NUaHJlYWQoQ0NMYXllclRyZWVI
b3N0SW1wbCopIE9WRVJSSURFCisgICAgeworICAgICAgICBpZiAobV9udW1EcmF3TGF5ZXJzID09
IDEpCisgICAgICAgICAgICBtX251bUNvbW1pdENvbXBsZXRlKys7CisgICAgfQorCisgICAgdmly
dHVhbCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGltcGwp
IE9WRVJSSURFCisgICAgeworICAgICAgICBtX251bURyYXdMYXllcnMrKzsKKyAgICAgICAgaWYg
KG1fbnVtRHJhd0xheWVycyA9PSAyKQorICAgICAgICAgICAgZW5kVGVzdCgpOworICAgIH0KKwor
ICAgIHZpcnR1YWwgdm9pZCBhZnRlclRlc3QoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgLy8g
Q2hlY2sgdGhhdCB3ZSBkaWRuJ3QgY29tbWl0IHR3aWNlIGJldHdlZW4gZmlyc3QgYW5kIHNlY29u
ZCBkcmF3LgorICAgICAgICBFWFBFQ1RfRVEoMSwgbV9udW1Db21taXRDb21wbGV0ZSk7CisgICAg
fQorCitwcml2YXRlOgorICAgIGludCBtX251bUNvbW1pdENvbXBsZXRlOworICAgIGludCBtX251
bURyYXdMYXllcnM7Cit9OworCitURVNUX0YoQ0NMYXllclRyZWVIb3N0VGVzdENvbnRpbnVvdXNB
bmltYXRlLCBydW5NdWx0aVRocmVhZCkKK3sKKyAgICBydW5UZXN0KHRydWUpOworfQorCiB9IC8v
IG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Nj
aGVkdWxlclN0YXRlTWFjaGluZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QuY3BwCmluZGV4IDA5ZTg5Yzg3ZDRmYzk5ZDRh
ZDU5ODllZTBhODk4NjU3YjZjZjI4ZjIuLjc0NTRjOWVkYTk1NDg3N2YzMDdkNDMyZDFiZmFiMjc0
MGRhZDQ0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hl
ZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdC5jcHAKQEAgLTc2Niw3ICs3NjYsNyBAQCBU
RVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdCwgVGVzdEZ1bGxDeWNsZSkKIAogICAgIC8v
IENvbW1pdC4KICAgICBzdGF0ZS51cGRhdGVTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6
QUNUSU9OX0NPTU1JVCk7Ci0gICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpD
T01NSVRfU1RBVEVfSURMRSwgc3RhdGUuY29tbWl0U3RhdGUoKSk7CisgICAgRVhQRUNUX0VRKEND
U2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfV0FJVElOR19GT1JfRklSU1RfRFJB
Vywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RhdGUubmVlZHNSZWRy
YXcoKSk7CiAKICAgICAvLyBFeHBlY3QgdG8gZG8gbm90aGluZyB1bnRpbCB2c3luYy4KQEAgLTk3
OSw2ICs5NzksMTEgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RDb250
ZXh0TG9zdFdoaWxlQ29tbWl0SW5Qcm9ncmVzcykKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJT
dGF0ZU1hY2hpbmU6OkFDVElPTl9DT01NSVQsIHN0YXRlLm5leHRBY3Rpb24oKSk7CiAgICAgc3Rh
dGUudXBkYXRlU3RhdGUoc3RhdGUubmV4dEFjdGlvbigpKTsKIAorICAgIEVYUEVDVF9FUShDQ1Nj
aGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRFX1dBSVRJTkdfRk9SX0ZJUlNUX0RSQVcs
IHN0YXRlLmNvbW1pdFN0YXRlKCkpOworCisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVN
YWNoaW5lOjpBQ1RJT05fRFJBV19JRl9QT1NTSUJMRSwgc3RhdGUubmV4dEFjdGlvbigpKTsKKyAg
ICBzdGF0ZS51cGRhdGVTdGF0ZShzdGF0ZS5uZXh0QWN0aW9uKCkpOworCiAgICAgLy8gRXhwZWN0
IHRvIGJlIHRvbGQgdG8gYmVnaW4gY29udGV4dCByZWNyZWF0aW9uLCBpbmRlcGVuZGVudCBvZiB2
c3luYyBzdGF0ZQogICAgIHN0YXRlLmRpZEVudGVyVlN5bmMoKTsKICAgICBFWFBFQ1RfRVEoQ0NT
Y2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9DT05URVhUX1JFQ1JFQVRJT04sIHN0
YXRlLm5leHRBY3Rpb24oKSk7CkBAIC0xMDA5LDkgKzEwMTQsNiBAQCBURVNUKENDU2NoZWR1bGVy
U3RhdGVNYWNoaW5lVGVzdCwgVGVzdENvbnRleHRMb3N0V2hpbGVDb21taXRJblByb2dyZXNzQW5k
QW5vdGhlcgogICAgIHN0YXRlLmRpZExvc2VDb250ZXh0KCk7CiAKICAgICAvLyBBc2sgZm9yIGFu
b3RoZXIgZHJhdyBhbmQgYWxzbyBzZXQgbmVlZHMgY29tbWl0LiBFeHBlY3Qgbm90aGluZyBoYXBw
ZW5zLgotICAgIC8vIFNldHRpbmcgYW5vdGhlciBjb21taXQgd2lsbCBwdXQgdXMgaW50bwotICAg
IC8vIENPTU1JVF9TVEFURV9XQUlUSU5HX0ZPUl9GSVJTVF9EUkFXIGFmdGVyIHdlIGZpbmlzaCB0
aGUgZnJhbWUgb24gdGhlIG1haW4KLSAgICAvLyB0aHJlYWQuCiAgICAgc3RhdGUuc2V0TmVlZHNS
ZWRyYXcodHJ1ZSk7CiAgICAgc3RhdGUuc2V0TmVlZHNDb21taXQodHJ1ZSk7CiAgICAgRVhQRUNU
X0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fTk9ORSwgc3RhdGUubmV4dEFjdGlv
bigpKTsKQEAgLTExMDQsNyArMTEwNiw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVU
ZXN0LCBUZXN0QmVnaW5GcmFtZVdoZW5Db21taXRJblByb2dyZXNzKQogICAgIEVYUEVDVF9FUShD
Q1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0NPTU1JVCwgc3RhdGUubmV4dEFjdGlvbigp
KTsKICAgICBzdGF0ZS51cGRhdGVTdGF0ZShzdGF0ZS5uZXh0QWN0aW9uKCkpOwogCi0gICAgRVhQ
RUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfSURMRSwgc3RhdGUu
Y29tbWl0U3RhdGUoKSk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpD
T01NSVRfU1RBVEVfV0FJVElOR19GT1JfRklSU1RfRFJBVywgc3RhdGUuY29tbWl0U3RhdGUoKSk7
CiAKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9G
UkFNRSwgc3RhdGUubmV4dEFjdGlvbigpKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>