<?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>96947</bug_id>
          
          <creation_ts>2012-09-17 13:00:26 -0700</creation_ts>
          <short_desc>IndexedDB: Assertion failure with open() within upgradeneeded</short_desc>
          <delta_ts>2012-11-07 10:26:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>levin+threading</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>722198</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-17 13:00:26 -0700</bug_when>
    <thetext>IndexedDB: Assertion failure with open() within upgradeneeded</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722199</commentid>
    <comment_count>1</comment_count>
      <attachid>164443</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-17 13:00:51 -0700</bug_when>
    <thetext>Created attachment 164443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722201</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-17 13:04:28 -0700</bug_when>
    <thetext>I implemented a layout test to try and exercise an edge case I noticed where an aborted version change that should see &quot;old&quot; metadata instead sees the &quot;new&quot; metadata of a subsequent/unblocked version change. I&apos;m not sure the test will reveal that, but as written (attached) it triggers an assertion failure:

STDERR: ASSERTION FAILED: pendingOpenWithVersionCall-&gt;version() == m_intVersion
STDERR: ../../third_party/WebKit/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp(363) : void WebCore::IDBDatabaseBackendImpl::processPendingCalls()

Partial stack:

STDERR: 	WebCore::IDBDatabaseBackendImpl::processPendingCalls() [0x24ca019]
STDERR: 	WebCore::IDBDatabaseBackendImpl::transactionFinishedAndCompleteFired() [0x24ca769]
STDERR: 	WebCore::IDBTransactionBackendImpl::commit() [0x24f6422]
STDERR: 	WebCore::IDBTransactionBackendImpl::taskEventTimerFired() [0x24f5388]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725039</commentid>
    <comment_count>3</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-09-20 18:12:41 -0700</bug_when>
    <thetext>I see the crash when running this test in DRT.  Curiously it doesn&apos;t crash in content_shell.  I haven&apos;t dug much deeper than that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748955</commentid>
    <comment_count>4</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-23 13:58:39 -0700</bug_when>
    <thetext>Event/call sequence:

IDBDatabaseBackendImpl::openConnectionWithVersion(2)
IDBDatabaseBackendImpl::runIntVersionChangeTransaction
IDBDatabaseBackendImpl::setIntVersionInternal(2)
IDBDatabaseBackendImpl::openConnectionWithVersion(3)
IDBDatabaseBackendImpl::close
IDBDatabaseBackendImpl::processPendingCalls
 &gt; pendingOpenWithVersionCall
IDBDatabaseBackendImpl::openConnectionWithVersion(3)
IDBDatabaseBackendImpl::runIntVersionChangeTransaction
IDBDatabaseBackendImpl::processPendingCalls
 &gt; m_pendingSecondHalfOpenWithVersion

Assertion is:

m_pendingSecondHalfOpenWithVersion-&gt;version() == m_metadata.intVersion

Values are 3 and 2

Relevant stack is:

WebCore::IDBDatabaseBackendImpl::processPendingCalls() [0x25b76aa]
WebCore::IDBDatabaseBackendImpl::transactionFinishedAndCompleteFired() [0x25b7e49]
WebCore::IDBTransactionBackendImpl::commit() [0x25e558e]
WebCore::IDBTransactionBackendImpl::taskEventTimerFired() [0x25e4458]

So... what&apos;s going wrong:

* first connection starts its upgrade needed transaction
* close is called
* second connection&apos;s runIntVersionChangeTransaction runs - there&apos;s only one connection so it and schedules a setIntVersionInternal call and adds a PendingOpenWithVersionCall
* first connections&apos;s transaction completes
* transactionFinishedAndCompleteFired runs and calling processPendingCalls assuming that it will &quot;unblock&quot; the pendingSecondHalf... but the setIntVersionInternal hasn&apos;t even run yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749066</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-23 15:42:00 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Event/call sequence:
&gt; 
&gt; IDBDatabaseBackendImpl::openConnectionWithVersion(2)
&gt; IDBDatabaseBackendImpl::runIntVersionChangeTransaction
&gt; IDBDatabaseBackendImpl::setIntVersionInternal(2)
&gt; IDBDatabaseBackendImpl::openConnectionWithVersion(3)
&gt; IDBDatabaseBackendImpl::close
&gt; IDBDatabaseBackendImpl::processPendingCalls
&gt;  &gt; pendingOpenWithVersionCall
&gt; IDBDatabaseBackendImpl::openConnectionWithVersion(3)
&gt; IDBDatabaseBackendImpl::runIntVersionChangeTransaction
&gt; IDBDatabaseBackendImpl::processPendingCalls
&gt;  &gt; m_pendingSecondHalfOpenWithVersion

And since it isn&apos;t obvious... everything from the IDBDatabaseBackendImpl::close() call down is occurring within the IDBTransactionBackendImpl::commit of the versionchange transaction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749154</commentid>
    <comment_count>6</comment_count>
      <attachid>170275</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-23 17:29:49 -0700</bug_when>
    <thetext>Created attachment 170275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749156</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-23 17:30:14 -0700</bug_when>
    <thetext>dgrogan@ - can you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749327</commentid>
    <comment_count>8</comment_count>
      <attachid>170275</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 21:43:13 -0700</bug_when>
    <thetext>Comment on attachment 170275
Patch

Attachment 170275 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14543073

New failing tests:
storage/indexeddb/unblocked-version-changes.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749729</commentid>
    <comment_count>9</comment_count>
      <attachid>170411</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-24 09:11:20 -0700</bug_when>
    <thetext>Created attachment 170411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749730</commentid>
    <comment_count>10</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-24 09:11:36 -0700</bug_when>
    <thetext>Let&apos;s try that again with an expected.txt file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753751</commentid>
    <comment_count>11</comment_count>
      <attachid>171311</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-10-29 14:13:18 -0700</bug_when>
    <thetext>Created attachment 171311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759025</commentid>
    <comment_count>12</comment_count>
      <attachid>171311</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-05 16:44:06 -0800</bug_when>
    <thetext>Comment on attachment 171311
Patch

why the switch to ThreadSafeRefCounted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759028</commentid>
    <comment_count>13</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-05 16:46:57 -0800</bug_when>
    <thetext>   (In reply to comment #12)
&gt; (From update of attachment 171311 [details])
&gt; why the switch to ThreadSafeRefCounted?

Compiler error (or compile-time assertion? - its been a while) without it, due to storing the pointer in a Task. IDBCallbacks has the same requirement.

We don&apos;t actually execute them on separate threads, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760296</commentid>
    <comment_count>14</comment_count>
      <attachid>171311</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-06 19:07:33 -0800</bug_when>
    <thetext>Comment on attachment 171311
Patch

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

LGTM

Thanks for digging into this.

&gt; LayoutTests/storage/indexeddb/resources/unblocked-version-changes.js:35
&gt; +    request.onblocked = unexpectedBlockedCallback;

This request gets a blocked event in multi process, you may want to omit this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760298</commentid>
    <comment_count>15</comment_count>
      <attachid>171311</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-06 19:13:37 -0800</bug_when>
    <thetext>Comment on attachment 171311
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h:37
&gt; +class IDBDatabaseCallbacks : public ThreadSafeRefCounted&lt;IDBDatabaseCallbacks&gt; {

I think that by marking this ThreadSafeRefCounted we are certifying that all the derived classes are thread-safe but I don&apos;t think that&apos;s true.  Maybe a comment is in order?

Similar to what you and Alec were talking about the other day, if we weren&apos;t re-appropriating ScriptExecutionContext::Task we wouldn&apos;t need to lie about class&apos;s thread-safety.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760791</commentid>
    <comment_count>16</comment_count>
      <attachid>172825</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-07 09:48:49 -0800</bug_when>
    <thetext>Created attachment 172825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760793</commentid>
    <comment_count>17</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-07 09:50:09 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; LayoutTests/storage/indexeddb/resources/unblocked-version-changes.js:35
&gt; &gt; +    request.onblocked = unexpectedBlockedCallback;
&gt; 
&gt; This request gets a blocked event in multi process, you may want to omit this line.

Thanks, removed.

(In reply to comment #15)
&gt; I think that by marking this ThreadSafeRefCounted we are certifying that all the derived classes are thread-safe but I don&apos;t think that&apos;s true.  Maybe a comment is in order?

Added a FIXME hinting that we should move away from Task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760794</commentid>
    <comment_count>18</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-07 09:50:23 -0800</bug_when>
    <thetext>dglazkov@ - can you r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760803</commentid>
    <comment_count>19</comment_count>
      <attachid>172825</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-07 09:57:27 -0800</bug_when>
    <thetext>Comment on attachment 172825
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h:38
&gt; +// FIXME: Uses ThreadSafeRefCounted for storage in ScriptExecutionContext::Task but
&gt; +// it is never actually used on multiple threads.

ew. Btw, what&apos;s the actionable comment here? Maybe file a bug to track progress and refer to it here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760813</commentid>
    <comment_count>20</comment_count>
      <attachid>172826</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-07 10:03:44 -0800</bug_when>
    <thetext>Created attachment 172826
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760814</commentid>
    <comment_count>21</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-07 10:04:19 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; ew. Btw, what&apos;s the actionable comment here? Maybe file a bug to track progress and refer to it here?

Filed and referenced: https://bugs.webkit.org/show_bug.cgi?id=101483</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760834</commentid>
    <comment_count>22</comment_count>
      <attachid>172826</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-07 10:26:47 -0800</bug_when>
    <thetext>Comment on attachment 172826
Patch for landing

Clearing flags on attachment: 172826

Committed r133776: &lt;http://trac.webkit.org/changeset/133776&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760835</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-07 10:26:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164443</attachid>
            <date>2012-09-17 13:00:51 -0700</date>
            <delta_ts>2012-10-23 17:29:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96947-20120917130019.patch</filename>
            <type>text/plain</type>
            <size>3472</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTZiOTY2YjNmZWFjYjEzYTVmYWQw
ZGU1MTc5NjVjMmY4ZDk0NTE5Yi4uNWFjYjFjNTVmYThkZTA0YWI0ZDBjMjg2MGMxYmNhNzZhNjM4
MWM5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA5LTE3ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBc3NlcnRpb24gZmFpbHVy
ZSB3aXRoIG9wZW4oKSB3aXRoaW4gdXBncmFkZW5lZWRlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY5NDcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdC4KKworICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAob3BlbkNvbm5lY3Rpb24pOgorICAg
ICAgICAob25VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKG9uRXJyb3IpOgorICAgICAgICAob25V
cGdyYWRlTmVlZGVkMik6CisgICAgICAgIChvblN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRtbDogQWRkZWQuCisKIDIwMTIt
MDktMTcgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNYWtlIFNW
R1BhdGhTZWdMaXN0LmFwcGVuZCBPKDEpIGluc3RlYWQgb2YgTyhuKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3VuYmxvY2tlZC12ZXJzaW9uLWNo
YW5nZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdW5ibG9j
a2VkLXZlcnNpb24tY2hhbmdlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDQ5NTY5ZTdkZTk4ZWFkN2YyYzI3
NWQ5ZWYyNmJmNThkMjU0YzNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuanMKQEAgLTAs
MCArMSw2MSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMo
Jy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0
U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBtZXRh
ZGF0YSByZW1haW5zIGNvcnJlY3Qgd2hlbiBhbiBhYm9ydGVkIHZlcnNpb24gY2hhbmdlIGlzIGZv
bGxvd2VkIGJ5IGFub3RoZXIuICIpOworCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIHJlbW92ZVZl
bmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKyAgICByZXF1ZXN0ID0g
ZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1
ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBvcGVuQ29ubmVjdGlvbjsKK30KKworZnVuY3Rpb24gb3BlbkNvbm5lY3Rpb24oKQoreworICAg
IHByZWFtYmxlKCk7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgMikiKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2Fs
bGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNr
OworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gb25VcGdyYWRlTmVlZGVkOworICAgIHJl
cXVlc3Qub25lcnJvciA9IG9uRXJyb3I7Cit9CisKK2Z1bmN0aW9uIG9uVXBncmFkZU5lZWRlZChl
dnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3Qu
cmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIpOworCisgICAgZXZhbEFu
ZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMykiKTsKKyAgICByZXF1ZXN0
Lm9uZXJyb3IgPSBvbkVycm9yOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9uU3VjY2VzczsKKyAgICBy
ZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IG9uVXBncmFkZU5lZWRlZDI7CisKKyAgICBldmFsQW5k
TG9nKCJkYi5jbG9zZSgpIik7Cit9CisKK2Z1bmN0aW9uIG9uRXJyb3IoZXZ0KQoreworICAgIHNo
b3VsZEJlKCJkYi52ZXJzaW9uIiwgIjAiKTsKK30KKworZnVuY3Rpb24gb25VcGdyYWRlTmVlZGVk
MihldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVl
c3QucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMyIpOworfQorCitmdW5j
dGlvbiBvblN1Y2Nlc3MoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExv
ZygiZGIgPSByZXF1ZXN0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjMi
KTsKK30KKwordGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNo
YW5nZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGU4OWFkZGRlNTNlYjhlNWRmMmM3Y2E1NDdmMmNiNGIy
MDhkMDExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
dW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3VuYmxvY2tlZC12ZXJz
aW9uLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170275</attachid>
            <date>2012-10-23 17:29:49 -0700</date>
            <delta_ts>2012-10-24 09:11:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96947-20121023172825.patch</filename>
            <type>text/plain</type>
            <size>9925</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJmYzA5M2VlZGY5ZDYw
ZDZiMjdmNDI4ZjQwMzk2MjA5ZWQ3MWM4MS4uYzUzZWNlMzM2MTIxZDA1ZWJmYzdiNTg3NjEwZGJj
N2RmYzU5OTA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTIzICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBc3Nl
cnRpb24gZmFpbHVyZSB3aXRoIG9wZW4oKSB3aXRoaW4gdXBncmFkZW5lZWRlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY5NDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3N0cG9uZSBjcmVhdGlvbiBv
ZiB0aGUgInBlbmRpbmcgc2Vjb25kIGhhbGYgb3BlbiIgdW50aWwgdGhlIHZlcnNpb24gY2hhbmdl
CisgICAgICAgIHRyYW5zYWN0aW9uIGhhcyBzdGFydGVkLgorCisgICAgICAgIFRlc3Q6IHN0b3Jh
Z2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRtbAorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRJbnRWZXJzaW9uSW50ZXJuYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorCiAyMDEyLTEw
LTIzICAnUGF2ZWwgRmVsZG1hbicgIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Tm90IHJldmlld2VkOiBraWNrIG91dCBub24tY2hyb21pdW0gZmlsZXMgZnJvbSBXZWJDb3JlLmd5
cGkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IGQ1ZmJkNmRkNGE3MjQwZDExNmQ1MzFlNjlh
YmVlYjhiZjQ5YWU5NmYuLmI2Yjc5YjJhOTljMTkwNThkMjIzMDVlZTZiMzNmMWYzMjEzODU5M2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC0yOTQsOCArMjk0LDkgQEAgdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpzZXRWZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWYKICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4odHJhbnNhY3Rpb24pKTsKIH0KIAotdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpzZXRJbnRWZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4gZGF0YWJhc2UsIGludDY0
X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2FjdGlvbikKK3ZvaWQgSURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6c2V0SW50VmVyc2lvbkludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+IGRhdGFiYXNlLCBpbnQ2NF90
IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9uKQogeworICAgIFJlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcyhwcnBDYWxsYmFja3MpOwogICAgIGludDY0X3QgZGF0YWJhc2VJ
ZCA9IGRhdGFiYXNlLT5pZCgpOwogICAgIGludDY0X3Qgb2xkVmVyc2lvbiA9IGRhdGFiYXNlLT5t
X21ldGFkYXRhLmludFZlcnNpb247CiAgICAgQVNTRVJUKHZlcnNpb24gPiBvbGRWZXJzaW9uKTsK
QEAgLTMwNiw2ICszMDcsOCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldEludFZl
cnNpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzcwogICAgICAgICB0cmFu
c2FjdGlvbi0+YWJvcnQoZXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIEFTU0VS
VCghZGF0YWJhc2UtPm1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24pOworICAgIGRh
dGFiYXNlLT5tX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uID0gUGVuZGluZ09wZW5X
aXRoVmVyc2lvbkNhbGw6OmNyZWF0ZShjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB2ZXJz
aW9uKTsKICAgICBjYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCB0cmFuc2Fj
dGlvbiwgZGF0YWJhc2UpOwogfQogCkBAIC00ODksNyArNDkyLDcgQEAgdm9pZCBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oaW50NjRfdCByZXF1
ZXN0ZWRWZXIKICAgICBBU1NFUlQoIWVjKTsKIAogICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tl
bmRJbXBsPiBkYXRhYmFzZSA9IHRoaXM7Ci0gICAgT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OlRhc2s+IGludFZlcnNpb25UYXNrID0gY3JlYXRlQ2FsbGJhY2tUYXNrKCZJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpzZXRJbnRWZXJzaW9uSW50ZXJuYWwsIGRhdGFiYXNlLCByZXF1ZXN0ZWRW
ZXJzaW9uLCBjYWxsYmFja3MsIHRyYW5zYWN0aW9uKTsKKyAgICBPd25QdHI8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzaz4gaW50VmVyc2lvblRhc2sgPSBjcmVhdGVDYWxsYmFja1Rhc2soJklE
QkRhdGFiYXNlQmFja2VuZEltcGw6OnNldEludFZlcnNpb25JbnRlcm5hbCwgZGF0YWJhc2UsIHJl
cXVlc3RlZFZlcnNpb24sIGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3MsIHRyYW5zYWN0aW9u
KTsKICAgICBPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gcmVzZXRWZXJzaW9u
T25BYm9ydFRhc2sgPSBjcmVhdGVDYWxsYmFja1Rhc2soJklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OnJlc2V0VmVyc2lvbiwgZGF0YWJhc2UsIG1fbWV0YWRhdGEudmVyc2lvbiwgbV9tZXRhZGF0YS5p
bnRWZXJzaW9uKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soaW50VmVyc2lv
blRhc2sucmVsZWFzZSgpLCByZXNldFZlcnNpb25PbkFib3J0VGFzay5yZWxlYXNlKCkpKSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgb25lIG9mIHRoZSBmb2xsb3dpbmcgbGluZXMuCkBAIC00
OTcsNyArNTAwLDYgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9u
Q2hhbmdlVHJhbnNhY3Rpb24oaW50NjRfdCByZXF1ZXN0ZWRWZXIKICAgICAgICAgZWMgPSBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6VFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSOwogICAgIH0KICAgICBB
U1NFUlQoIW1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24pOwotICAgIG1fcGVuZGlu
Z1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24gPSBQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbDo6
Y3JlYXRlKGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3MsIHJlcXVlc3RlZFZlcnNpb24pOwog
ICAgIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYWRkKGRhdGFiYXNlQ2FsbGJhY2tzKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VC
YWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5oCmluZGV4IDExYTY5ZDBiZmRhNjZiMDYyMDFkMzk2M2MwZWUxNDRhYjg4
ZTM1ZTguLjY0ZjliZWZhNGYxNjU5NTk1MGJmM2RjZTliMTVkYjYyNmM4MmY3MzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElt
cGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBj
cmVhdGVPYmplY3RTdG9yZUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+KTsKICAgICBz
dGF0aWMgdm9pZCBkZWxldGVPYmplY3RTdG9yZUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGw+KTsKICAgICBzdGF0aWMgdm9pZCBzZXRWZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4sIGNvbnN0IFN0cmlu
ZyYgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGw+KTsKLSAgICBzdGF0aWMgdm9pZCBzZXRJbnRWZXJzaW9uSW50ZXJu
YWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5k
SW1wbD4sIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+KTsKKyAgICBzdGF0aWMgdm9pZCBzZXRJbnRW
ZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VCYWNrZW5kSW1wbD4sIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsPik7CiAKICAgICAvLyBUaGVzZSBhcmUgdXNlZCBhcyBzZXRWZXJz
aW9uIHRyYW5zYWN0aW9uIGFib3J0IHRhc2tzLgogICAgIHN0YXRpYyB2b2lkIHJlbW92ZU9iamVj
dFN0b3JlRnJvbU1hcChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUNhbGxiYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VDYWxsYmFja3MuaAppbmRleCA4NDFlYzBmM2UwNDE3MGFkYTczNTBkNDRkYTg2YTRiMjczOWJj
OWIyLi40NzJlNzdkYWUyNjY4ODhjODZkMTY2N2M1MDEwOTM0MWYzZDM0Y2ZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJh
Y2tzLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBJ
REJEYXRhYmFzZUNhbGxiYWNrcyA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkRhdGFiYXNlQ2FsbGJh
Y2tzPiB7CitjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxJREJEYXRhYmFzZUNhbGxiYWNrcz4gewogcHVibGljOgogICAgIHZpcnR1YWwgfklE
QkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhNzgzNDk1NzNlZGI5MTA2YWVjMzlh
Zjg5MGEzMjZmMTg2ZWRlZWQ0Li4wYjM0NmVjOTQ2ZTA3ZTgzOWFjMjhiYjA3ODZiODQ1MmMyNTM4
ZTU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTAtMjMgIEpvc2h1YSBCZWxsICA8anNi
ZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFzc2VydGlvbiBmYWlsdXJl
IHdpdGggb3BlbigpIHdpdGhpbiB1cGdyYWRlbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njk0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4ZXJjaXNlIHRoZSBjb2RlIHBhdGggbGVhZGluZyB0
byB0aGUgYXNzZXJ0IGJ5IGhhdmluZyBhIHNlY29uZCB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlv
bgorICAgICAgICB1bmJsb2NrZWQgYnkgdGhlIGZpcnN0J3MgY29ubmVjdGlvbiBjbG9zaW5nLiBJ
bmNsdWRlcyBhIGtub3duIGZhaWx1cmUgZHVlIHRvIG1ldGFkYXRhCisgICAgICAgIHNuYXBzaG90
IHRpbWluZy4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy91bmJsb2Nr
ZWQtdmVyc2lvbi1jaGFuZ2VzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAo
b3BlbkNvbm5lY3Rpb24pOgorICAgICAgICAob25VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKG9u
RXJyb3IpOgorICAgICAgICAob25VcGdyYWRlTmVlZGVkMik6CisgICAgICAgIChvblN1Y2Nlc3Mp
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMu
aHRtbDogQWRkZWQuCisKIDIwMTItMTAtMjMgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgQWx3YXlzIHBhcnNlIHBhc3RlZCBmcmFnbWVudHMgYXMgSFRNTCBldmVu
IG9uIFhIVE1MIHBhZ2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJhNjI5NmEyODY1MjVhZmU2N2YwMDNhMzRmOTg0MzRhYjZkYjY1NDcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdW5i
bG9ja2VkLXZlcnNpb24tY2hhbmdlcy5qcwpAQCAtMCwwICsxLDYyIEBACitpZiAodGhpcy5pbXBv
cnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30K
KworZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IG1ldGFkYXRhIHJlbWFpbnMgY29ycmVjdCB3aGVu
IGFuIGFib3J0ZWQgdmVyc2lvbiBjaGFuZ2UgaXMgZm9sbG93ZWQgYnkgYW5vdGhlci4gIik7CisK
K2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXRE
Qk5hbWVGcm9tUGF0aCgpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3Rl
ZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5Db25uZWN0aW9uOworfQorCitm
dW5jdGlvbiBvcGVuQ29ubmVjdGlvbigpCit7CisgICAgcHJlYW1ibGUoKTsKKyAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qu
b25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVu
ZWVkZWQgPSBvblVwZ3JhZGVOZWVkZWQ7CisgICAgcmVxdWVzdC5vbmVycm9yID0gb25FcnJvcjsK
K30KKworZnVuY3Rpb24gb25VcGdyYWRlTmVlZGVkKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQp
OworICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgi
ZGIudmVyc2lvbiIsICIyIik7CisKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oZGJuYW1lLCAzKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxs
YmFjazsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IG9uVXBncmFkZU5lZWRlZDI7Cisg
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvblN1Y2Nlc3M7CisKKyAgICBldmFsQW5kTG9nKCJkYi5j
bG9zZSgpIik7Cit9CisKK2Z1bmN0aW9uIG9uRXJyb3IoZXZ0KQoreworICAgIHNob3VsZEJlKCJk
Yi52ZXJzaW9uIiwgIjAiKTsKK30KKworZnVuY3Rpb24gb25VcGdyYWRlTmVlZGVkMihldnQpCit7
CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0
Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMyIpOworfQorCitmdW5jdGlvbiBvblN1
Y2Nlc3MoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiZGIgPSBy
ZXF1ZXN0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjMiKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJz
aW9uLWNoYW5nZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tl
ZC12ZXJzaW9uLWNoYW5nZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGU4OWFkZGRlNTNlYjhlNWRmMmM3
Y2E1NDdmMmNiNGIyMDhkMDExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy5odG1sCkBAIC0wLDAgKzEsMTAg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Vu
YmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170411</attachid>
            <date>2012-10-24 09:11:20 -0700</date>
            <delta_ts>2012-10-29 14:13:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96947-20121024090955.patch</filename>
            <type>text/plain</type>
            <size>11131</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJmYzA5M2VlZGY5ZDYw
ZDZiMjdmNDI4ZjQwMzk2MjA5ZWQ3MWM4MS4uYzUzZWNlMzM2MTIxZDA1ZWJmYzdiNTg3NjEwZGJj
N2RmYzU5OTA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTIzICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBc3Nl
cnRpb24gZmFpbHVyZSB3aXRoIG9wZW4oKSB3aXRoaW4gdXBncmFkZW5lZWRlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY5NDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3N0cG9uZSBjcmVhdGlvbiBv
ZiB0aGUgInBlbmRpbmcgc2Vjb25kIGhhbGYgb3BlbiIgdW50aWwgdGhlIHZlcnNpb24gY2hhbmdl
CisgICAgICAgIHRyYW5zYWN0aW9uIGhhcyBzdGFydGVkLgorCisgICAgICAgIFRlc3Q6IHN0b3Jh
Z2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRtbAorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRJbnRWZXJzaW9uSW50ZXJuYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorCiAyMDEyLTEw
LTIzICAnUGF2ZWwgRmVsZG1hbicgIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Tm90IHJldmlld2VkOiBraWNrIG91dCBub24tY2hyb21pdW0gZmlsZXMgZnJvbSBXZWJDb3JlLmd5
cGkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IGQ1ZmJkNmRkNGE3MjQwZDExNmQ1MzFlNjlh
YmVlYjhiZjQ5YWU5NmYuLmI2Yjc5YjJhOTljMTkwNThkMjIzMDVlZTZiMzNmMWYzMjEzODU5M2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC0yOTQsOCArMjk0LDkgQEAgdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpzZXRWZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWYKICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4odHJhbnNhY3Rpb24pKTsKIH0KIAotdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpzZXRJbnRWZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4gZGF0YWJhc2UsIGludDY0
X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2FjdGlvbikKK3ZvaWQgSURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6c2V0SW50VmVyc2lvbkludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+IGRhdGFiYXNlLCBpbnQ2NF90
IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9uKQogeworICAgIFJlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcyhwcnBDYWxsYmFja3MpOwogICAgIGludDY0X3QgZGF0YWJhc2VJ
ZCA9IGRhdGFiYXNlLT5pZCgpOwogICAgIGludDY0X3Qgb2xkVmVyc2lvbiA9IGRhdGFiYXNlLT5t
X21ldGFkYXRhLmludFZlcnNpb247CiAgICAgQVNTRVJUKHZlcnNpb24gPiBvbGRWZXJzaW9uKTsK
QEAgLTMwNiw2ICszMDcsOCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldEludFZl
cnNpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzcwogICAgICAgICB0cmFu
c2FjdGlvbi0+YWJvcnQoZXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIEFTU0VS
VCghZGF0YWJhc2UtPm1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24pOworICAgIGRh
dGFiYXNlLT5tX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uID0gUGVuZGluZ09wZW5X
aXRoVmVyc2lvbkNhbGw6OmNyZWF0ZShjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB2ZXJz
aW9uKTsKICAgICBjYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCB0cmFuc2Fj
dGlvbiwgZGF0YWJhc2UpOwogfQogCkBAIC00ODksNyArNDkyLDcgQEAgdm9pZCBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oaW50NjRfdCByZXF1
ZXN0ZWRWZXIKICAgICBBU1NFUlQoIWVjKTsKIAogICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tl
bmRJbXBsPiBkYXRhYmFzZSA9IHRoaXM7Ci0gICAgT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OlRhc2s+IGludFZlcnNpb25UYXNrID0gY3JlYXRlQ2FsbGJhY2tUYXNrKCZJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpzZXRJbnRWZXJzaW9uSW50ZXJuYWwsIGRhdGFiYXNlLCByZXF1ZXN0ZWRW
ZXJzaW9uLCBjYWxsYmFja3MsIHRyYW5zYWN0aW9uKTsKKyAgICBPd25QdHI8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzaz4gaW50VmVyc2lvblRhc2sgPSBjcmVhdGVDYWxsYmFja1Rhc2soJklE
QkRhdGFiYXNlQmFja2VuZEltcGw6OnNldEludFZlcnNpb25JbnRlcm5hbCwgZGF0YWJhc2UsIHJl
cXVlc3RlZFZlcnNpb24sIGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3MsIHRyYW5zYWN0aW9u
KTsKICAgICBPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gcmVzZXRWZXJzaW9u
T25BYm9ydFRhc2sgPSBjcmVhdGVDYWxsYmFja1Rhc2soJklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OnJlc2V0VmVyc2lvbiwgZGF0YWJhc2UsIG1fbWV0YWRhdGEudmVyc2lvbiwgbV9tZXRhZGF0YS5p
bnRWZXJzaW9uKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soaW50VmVyc2lv
blRhc2sucmVsZWFzZSgpLCByZXNldFZlcnNpb25PbkFib3J0VGFzay5yZWxlYXNlKCkpKSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgb25lIG9mIHRoZSBmb2xsb3dpbmcgbGluZXMuCkBAIC00
OTcsNyArNTAwLDYgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9u
Q2hhbmdlVHJhbnNhY3Rpb24oaW50NjRfdCByZXF1ZXN0ZWRWZXIKICAgICAgICAgZWMgPSBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6VFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSOwogICAgIH0KICAgICBB
U1NFUlQoIW1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24pOwotICAgIG1fcGVuZGlu
Z1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24gPSBQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbDo6
Y3JlYXRlKGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3MsIHJlcXVlc3RlZFZlcnNpb24pOwog
ICAgIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYWRkKGRhdGFiYXNlQ2FsbGJhY2tzKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VC
YWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5oCmluZGV4IDExYTY5ZDBiZmRhNjZiMDYyMDFkMzk2M2MwZWUxNDRhYjg4
ZTM1ZTguLjY0ZjliZWZhNGYxNjU5NTk1MGJmM2RjZTliMTVkYjYyNmM4MmY3MzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElt
cGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBj
cmVhdGVPYmplY3RTdG9yZUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+KTsKICAgICBz
dGF0aWMgdm9pZCBkZWxldGVPYmplY3RTdG9yZUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGw+KTsKICAgICBzdGF0aWMgdm9pZCBzZXRWZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4sIGNvbnN0IFN0cmlu
ZyYgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGw+KTsKLSAgICBzdGF0aWMgdm9pZCBzZXRJbnRWZXJzaW9uSW50ZXJu
YWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5k
SW1wbD4sIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+KTsKKyAgICBzdGF0aWMgdm9pZCBzZXRJbnRW
ZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VCYWNrZW5kSW1wbD4sIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsPik7CiAKICAgICAvLyBUaGVzZSBhcmUgdXNlZCBhcyBzZXRWZXJz
aW9uIHRyYW5zYWN0aW9uIGFib3J0IHRhc2tzLgogICAgIHN0YXRpYyB2b2lkIHJlbW92ZU9iamVj
dFN0b3JlRnJvbU1hcChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUNhbGxiYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VDYWxsYmFja3MuaAppbmRleCA4NDFlYzBmM2UwNDE3MGFkYTczNTBkNDRkYTg2YTRiMjczOWJj
OWIyLi40NzJlNzdkYWUyNjY4ODhjODZkMTY2N2M1MDEwOTM0MWYzZDM0Y2ZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJh
Y2tzLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBJ
REJEYXRhYmFzZUNhbGxiYWNrcyA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkRhdGFiYXNlQ2FsbGJh
Y2tzPiB7CitjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxJREJEYXRhYmFzZUNhbGxiYWNrcz4gewogcHVibGljOgogICAgIHZpcnR1YWwgfklE
QkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhNzgzNDk1NzNlZGI5MTA2YWVjMzlh
Zjg5MGEzMjZmMTg2ZWRlZWQ0Li5kNjg3OTlkODU2YjJjMGQ2MmIyZmQzMTMzMTZjNWNlMDc1Yzdk
MzliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMTAtMjMgIEpvc2h1YSBCZWxsICA8anNi
ZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFzc2VydGlvbiBmYWlsdXJl
IHdpdGggb3BlbigpIHdpdGhpbiB1cGdyYWRlbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njk0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4ZXJjaXNlIHRoZSBjb2RlIHBhdGggbGVhZGluZyB0
byB0aGUgYXNzZXJ0IGJ5IGhhdmluZyBhIHNlY29uZCB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlv
bgorICAgICAgICB1bmJsb2NrZWQgYnkgdGhlIGZpcnN0J3MgY29ubmVjdGlvbiBjbG9zaW5nLiBJ
bmNsdWRlcyBhIGtub3duIGZhaWx1cmUgZHVlIHRvIG1ldGFkYXRhCisgICAgICAgIHNuYXBzaG90
IHRpbWluZy4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy91bmJsb2Nr
ZWQtdmVyc2lvbi1jaGFuZ2VzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAo
b3BlbkNvbm5lY3Rpb24pOgorICAgICAgICAob25VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKG9u
RXJyb3IpOgorICAgICAgICAob25VcGdyYWRlTmVlZGVkMik6CisgICAgICAgIChvblN1Y2Nlc3Mp
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi91bmJsb2Nr
ZWQtdmVyc2lvbi1jaGFuZ2VzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTIzICBBZGFtIEtsZWlu
ICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFsd2F5cyBwYXJzZSBwYXN0ZWQgZnJh
Z21lbnRzIGFzIEhUTUwgZXZlbiBvbiBYSFRNTCBwYWdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdW5ibG9ja2VkLXZl
cnNpb24tY2hhbmdlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTYyOTZhMjg2NTI1YWZlNjdmMDAzYTM0Zjk4
NDM0YWI2ZGI2NTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuanMKQEAgLTAsMCArMSw2
MiBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0
cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBtZXRhZGF0YSBy
ZW1haW5zIGNvcnJlY3Qgd2hlbiBhbiBhYm9ydGVkIHZlcnNpb24gY2hhbmdlIGlzIGZvbGxvd2Vk
IGJ5IGFub3RoZXIuICIpOworCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIHJlbW92ZVZlbmRvclBy
ZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9u
YmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVu
Q29ubmVjdGlvbjsKK30KKworZnVuY3Rpb24gb3BlbkNvbm5lY3Rpb24oKQoreworICAgIHByZWFt
YmxlKCk7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwg
MikiKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAg
IHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gb25VcGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qu
b25lcnJvciA9IG9uRXJyb3I7Cit9CisKK2Z1bmN0aW9uIG9uVXBncmFkZU5lZWRlZChldnQpCit7
CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0
Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIpOworCisgICAgZXZhbEFuZExvZygi
cmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMykiKTsKKyAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVu
ZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBv
blVwZ3JhZGVOZWVkZWQyOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb25TdWNjZXNzOworCisg
ICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworfQorCitmdW5jdGlvbiBvbkVycm9yKGV2dCkK
K3sKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIwIik7Cit9CisKK2Z1bmN0aW9uIG9uVXBn
cmFkZU5lZWRlZDIoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygi
ZGIgPSByZXF1ZXN0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjMiKTsK
K30KKworZnVuY3Rpb24gb25TdWNjZXNzKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAg
IGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZGIudmVy
c2lvbiIsICIzIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcwMTI3MGY1OTcxYmJiZWU5ZGRmOTE3ZGM3YmUxNmU3YzYwZDQ2NDcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi91bmJsb2NrZWQt
dmVyc2lvbi1jaGFuZ2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMxIEBACitFbnN1cmUgdGhh
dCBtZXRhZGF0YSByZW1haW5zIGNvcnJlY3Qgd2hlbiBhbiBhYm9ydGVkIHZlcnNpb24gY2hhbmdl
IGlzIGZvbGxvd2VkIGJ5IGFub3RoZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBz
ZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsK
KworZGJuYW1lID0gInVuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRtbCIKK2luZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCisKK29wZW5Db25uZWN0aW9uKCk6CityZXF1ZXN0ID0gaW5k
ZXhlZERCLm9wZW4oZGJuYW1lLCAyKQorCitvblVwZ3JhZGVOZWVkZWQoKToKK2RiID0gcmVxdWVz
dC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAyCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCAzKQorZGIuY2xvc2UoKQorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSAwLiBXYXMg
Mi4KKworb25VcGdyYWRlTmVlZGVkMigpOgorZGIgPSByZXF1ZXN0LnJlc3VsdAorUEFTUyBkYi52
ZXJzaW9uIGlzIDMKKworb25TdWNjZXNzKCk6CitkYiA9IHJlcXVlc3QucmVzdWx0CitQQVNTIGRi
LnZlcnNpb24gaXMgMworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3VuYmxv
Y2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGU4OWFkZGRlNTNl
YjhlNWRmMmM3Y2E1NDdmMmNiNGIyMDhkMDExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy5odG1sCkBAIC0w
LDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171311</attachid>
            <date>2012-10-29 14:13:18 -0700</date>
            <delta_ts>2012-11-07 09:48:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96947-20121029141145.patch</filename>
            <type>text/plain</type>
            <size>11239</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdkZWRlOTdkNjg4Yjc1
YTM0MDdlMDIwYWZiOGNlZDYxNGI4YmMzMS4uOGY5OWNhMjU2ZGU0YmFkMjFmNzkwOWQ2MWZiNjlk
OTM4MmIzYjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTIzICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBc3Nl
cnRpb24gZmFpbHVyZSB3aXRoIG9wZW4oKSB3aXRoaW4gdXBncmFkZW5lZWRlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY5NDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3N0cG9uZSBjcmVhdGlvbiBv
ZiB0aGUgInBlbmRpbmcgc2Vjb25kIGhhbGYgb3BlbiIgdW50aWwgdGhlIHZlcnNpb24gY2hhbmdl
CisgICAgICAgIHRyYW5zYWN0aW9uIGhhcyBzdGFydGVkLgorCisgICAgICAgIFRlc3Q6IHN0b3Jh
Z2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRtbAorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRJbnRWZXJzaW9uSW50ZXJuYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorCiAyMDEyLTEw
LTI5ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0
XSBUZXh0IHdpdGggemVybyBmb250IHNpemUgcmVuZGVycyBhcyBYIHB4IHNvbWV0aW1lcywgY2F1
c2luZyBmYXN0L3RleHQvemVyby1mb250LXNpemUtMi5odG1sIHRvIGZhaWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5jcHAKaW5kZXggYzM2ZDhjMzI5YTBlZmY4YjZiYmU1ZTFkY2FiMTM4MTVlZGU0YTE1My4u
MGIxOWFhNDI1OGYyYWQ5YTIxYmVlOTU1ODQ0Nzk1YmYxOWFhOTk4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5jcHAKQEAgLTI5NCw4ICsyOTQsOSBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6
OnNldFZlcnNpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZgogICAg
IGNhbGxiYWNrcy0+b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPih0cmFuc2FjdGlvbikpOwogfQogCi12b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6
OnNldEludFZlcnNpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiBkYXRhYmFzZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGw+IHRyYW5zYWN0aW9uKQordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpz
ZXRJbnRWZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4gZGF0YWJhc2UsIGludDY0X3QgdmVyc2lvbiwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbD4gdHJhbnNhY3Rpb24pCiB7CisgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzKHBycENhbGxiYWNrcyk7CiAgICAgaW50NjRfdCBkYXRhYmFzZUlkID0gZGF0YWJhc2UtPmlk
KCk7CiAgICAgaW50NjRfdCBvbGRWZXJzaW9uID0gZGF0YWJhc2UtPm1fbWV0YWRhdGEuaW50VmVy
c2lvbjsKICAgICBBU1NFUlQodmVyc2lvbiA+IG9sZFZlcnNpb24pOwpAQCAtMzA2LDYgKzMwNyw4
IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0SW50VmVyc2lvbkludGVybmFsKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzCiAgICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydChl
cnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgQVNTRVJUKCFkYXRhYmFzZS0+bV9w
ZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbik7CisgICAgZGF0YWJhc2UtPm1fcGVuZGlu
Z1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24gPSBQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbDo6
Y3JlYXRlKGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3MsIHZlcnNpb24pOwogICAgIGNhbGxi
YWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24sIHRyYW5zYWN0aW9uLCBkYXRhYmFzZSk7
CiB9CiAKQEAgLTQ4OSw3ICs0OTIsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnJ1
bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihpbnQ2NF90IHJlcXVlc3RlZFZlcgogICAgIEFT
U0VSVCghZWMpOwogCiAgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+IGRhdGFiYXNl
ID0gdGhpczsKLSAgICBPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gaW50VmVy
c2lvblRhc2sgPSBjcmVhdGVDYWxsYmFja1Rhc2soJklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNl
dEludFZlcnNpb25JbnRlcm5hbCwgZGF0YWJhc2UsIHJlcXVlc3RlZFZlcnNpb24sIGNhbGxiYWNr
cywgdHJhbnNhY3Rpb24pOworICAgIE93blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNr
PiBpbnRWZXJzaW9uVGFzayA9IGNyZWF0ZUNhbGxiYWNrVGFzaygmSURCRGF0YWJhc2VCYWNrZW5k
SW1wbDo6c2V0SW50VmVyc2lvbkludGVybmFsLCBkYXRhYmFzZSwgcmVxdWVzdGVkVmVyc2lvbiwg
Y2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcywgdHJhbnNhY3Rpb24pOwogICAgIE93blB0cjxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiByZXNldFZlcnNpb25PbkFib3J0VGFzayA9IGNy
ZWF0ZUNhbGxiYWNrVGFzaygmSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cmVzZXRWZXJzaW9uLCBk
YXRhYmFzZSwgbV9tZXRhZGF0YS52ZXJzaW9uLCBtX21ldGFkYXRhLmludFZlcnNpb24pOwogICAg
IGlmICghdHJhbnNhY3Rpb24tPnNjaGVkdWxlVGFzayhpbnRWZXJzaW9uVGFzay5yZWxlYXNlKCks
IHJlc2V0VmVyc2lvbk9uQWJvcnRUYXNrLnJlbGVhc2UoKSkpIHsKICAgICAgICAgLy8gRklYTUU6
IFJlbW92ZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBsaW5lcy4KQEAgLTQ5Nyw3ICs1MDAsNiBAQCB2
b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
bihpbnQ2NF90IHJlcXVlc3RlZFZlcgogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpUUkFOU0FDVElPTl9JTkFDVElWRV9FUlI7CiAgICAgfQogICAgIEFTU0VSVCghbV9wZW5kaW5n
U2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbik7Ci0gICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5X
aXRoVmVyc2lvbiA9IFBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsOjpjcmVhdGUoY2FsbGJhY2tz
LCBkYXRhYmFzZUNhbGxiYWNrcywgcmVxdWVzdGVkVmVyc2lvbik7CiAgICAgbV9kYXRhYmFzZUNh
bGxiYWNrc1NldC5hZGQoZGF0YWJhc2VDYWxsYmFja3MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgK
aW5kZXggMTFhNjlkMGJmZGE2NmIwNjIwMWQzOTYzYzBlZTE0NGFiODhlMzVlOC4uNjRmOWJlZmE0
ZjE2NTk1OTUwYmYzZGNlOWIxNWRiNjI2YzgyZjczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaApAQCAt
ODYsNyArODYsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZU9iamVjdFN0b3Jl
SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VC
YWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOwogICAgIHN0YXRpYyB2b2lkIGRlbGV0
ZU9iamVjdFN0b3JlSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbD4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOwogICAgIHN0YXRp
YyB2b2lkIHNldFZlcnNpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bD4pOwotICAgIHN0YXRpYyB2b2lkIHNldEludFZlcnNpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiwgaW50NjRfdCB2
ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbD4pOworICAgIHN0YXRpYyB2b2lkIHNldEludFZlcnNpb25JbnRlcm5hbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBs
PiwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGw+KTsKIAogICAgIC8vIFRoZXNlIGFyZSB1c2VkIGFzIHNldFZlcnNpb24gdHJhbnNhY3Rpb24g
YWJvcnQgdGFza3MuCiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlT2JqZWN0U3RvcmVGcm9tTWFwKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+
LCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCmlu
ZGV4IDg0MWVjMGYzZTA0MTcwYWRhNzM1MGQ0NGRhODZhNGIyNzM5YmM5YjIuLjQ3MmU3N2RhZTI2
Njg4OGM4NmQxNjY3YzUwMTA5MzQxZjNkMzRjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaApAQCAtMzQsNyAr
MzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIElEQkRhdGFiYXNlQ2FsbGJh
Y2tzIDogcHVibGljIFJlZkNvdW50ZWQ8SURCRGF0YWJhc2VDYWxsYmFja3M+IHsKK2NsYXNzIElE
QkRhdGFiYXNlQ2FsbGJhY2tzIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VDYWxsYmFj
a3MoKSB7IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDI5YzZkOTVjYjdkMTI4NTE1NTc3OTMwOWNkMmRiZmJiOTdmMjQ1
YWIuLjg2YzM5YzUzMzk4NGVmOGE5ZDQ3NzhhOTZlMGFmOGRiZTJiZGEzNzIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxMi0xMC0yMyAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEluZGV4ZWREQjogQXNzZXJ0aW9uIGZhaWx1cmUgd2l0aCBvcGVuKCkgd2l0
aGluIHVwZ3JhZGVuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2OTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRXhlcmNpc2UgdGhlIGNvZGUgcGF0aCBsZWFkaW5nIHRvIHRoZSBhc3NlcnQgYnkg
aGF2aW5nIGEgc2Vjb25kIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uCisgICAgICAgIHVuYmxv
Y2tlZCBieSB0aGUgZmlyc3QncyBjb25uZWN0aW9uIGNsb3NpbmcuIEluY2x1ZGVzIGEga25vd24g
ZmFpbHVyZSBkdWUgdG8gbWV0YWRhdGEKKyAgICAgICAgc25hcHNob3QgdGltaW5nLgorCisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5n
ZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgIChvcGVuQ29ubmVjdGlvbik6
CisgICAgICAgIChvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAob25FcnJvcik6CisgICAgICAg
IChvblVwZ3JhZGVOZWVkZWQyKToKKyAgICAgICAgKG9uU3VjY2Vzcyk6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5n
ZXMuaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMjkgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3Rv
cGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbV0syXVtXS1RSXSBFbmFibGUgU2hhZG93
IERPTSBhdCBydW50aW1lIGlmIGNvbXBpbGVkIHdpdGggU0hBRE9XX0RPTSBzdXBwb3J0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdW5ibG9ja2Vk
LXZlcnNpb24tY2hhbmdlcy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyOThkMjZkOWY3
YWVkNGRjMDllNTFkODhmNTEzOTUwNTM4NmI1NzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdl
cy5qcwpAQCAtMCwwICsxLDYzIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1w
b3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsK
KyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIkVuc3Vy
ZSB0aGF0IG1ldGFkYXRhIHJlbWFpbnMgY29ycmVjdCB3aGVuIGFuIGFib3J0ZWQgdmVyc2lvbiBj
aGFuZ2UgaXMgZm9sbG93ZWQgYnkgYW5vdGhlci4gIik7CisKK2Z1bmN0aW9uIHRlc3QoKSB7Cisg
ICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIp
OworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IG9wZW5Db25uZWN0aW9uOworfQorCitmdW5jdGlvbiBvcGVuQ29ubmVjdGlv
bigpCit7CisgICAgcHJlYW1ibGUoKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhl
ZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3Rl
ZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNj
ZXNzQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBvblVwZ3JhZGVOZWVk
ZWQ7CisgICAgcmVxdWVzdC5vbmVycm9yID0gb25FcnJvcjsKK30KKworZnVuY3Rpb24gb25VcGdy
YWRlTmVlZGVkKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImRi
ID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIyIik7CisK
KyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKSIpOwor
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVl
c3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9u
dXBncmFkZW5lZWRlZCA9IG9uVXBncmFkZU5lZWRlZDI7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBvblN1Y2Nlc3M7CisKKyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7Cit9CisKK2Z1bmN0
aW9uIG9uRXJyb3IoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmUoImRi
LnZlcnNpb24iLCAiMCIpOworfQorCitmdW5jdGlvbiBvblVwZ3JhZGVOZWVkZWQyKGV2dCkKK3sK
KyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQi
KTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIzIik7Cit9CisKK2Z1bmN0aW9uIG9uU3Vj
Y2VzcyhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IHJl
cXVlc3QucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMyIpOworICAgIGZp
bmlzaEpTVGVzdCgpOworfQorCit0ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdW5ibG9ja2VkLXZlcnNp
b24tY2hhbmdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi91
bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjE4MzE4
ZWQyNjEwNzE1YjdkZGM0MzQyZjA0NzkwMDg0NWM5ZTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzMyBAQAorRW5zdXJlIHRoYXQgbWV0YWRhdGEgcmVtYWlucyBj
b3JyZWN0IHdoZW4gYW4gYWJvcnRlZCB2ZXJzaW9uIGNoYW5nZSBpcyBmb2xsb3dlZCBieSBhbm90
aGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJ1bmJsb2Nr
ZWQtdmVyc2lvbi1jaGFuZ2VzLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQorCitvcGVuQ29ubmVjdGlvbigpOgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwg
MikKKworb25VcGdyYWRlTmVlZGVkKCk6CitkYiA9IHJlcXVlc3QucmVzdWx0CitQQVNTIGRiLnZl
cnNpb24gaXMgMgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMykKK2RiLmNsb3Nl
KCkKKworb25FcnJvcigpOgorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSAwLiBXYXMgMi4KKwor
b25VcGdyYWRlTmVlZGVkMigpOgorZGIgPSByZXF1ZXN0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9u
IGlzIDMKKworb25TdWNjZXNzKCk6CitkYiA9IHJlcXVlc3QucmVzdWx0CitQQVNTIGRiLnZlcnNp
b24gaXMgMworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12
ZXJzaW9uLWNoYW5nZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3VuYmxv
Y2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGU4OWFkZGRlNTNlYjhlNWRm
MmM3Y2E1NDdmMmNiNGIyMDhkMDExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy5odG1sCkBAIC0wLDAgKzEs
MTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFy
ZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172825</attachid>
            <date>2012-11-07 09:48:49 -0800</date>
            <delta_ts>2012-11-07 10:03:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96947-20121107094700.patch</filename>
            <type>text/plain</type>
            <size>11272</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZlYTY0MzY4Nzc3NjJi
MTViYTMxYTUwZjU2MzQyZmNiYjBlMmU2MC4uZjJhZmFkNmRjOWQwMzhkYjNkNjgyYjMxMzUxZTE1
NWU1NTg1ZDU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTIzICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBc3Nl
cnRpb24gZmFpbHVyZSB3aXRoIG9wZW4oKSB3aXRoaW4gdXBncmFkZW5lZWRlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY5NDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3N0cG9uZSBjcmVhdGlvbiBv
ZiB0aGUgInBlbmRpbmcgc2Vjb25kIGhhbGYgb3BlbiIgdW50aWwgdGhlIHZlcnNpb24gY2hhbmdl
CisgICAgICAgIHRyYW5zYWN0aW9uIGhhcyBzdGFydGVkLgorCisgICAgICAgIFRlc3Q6IHN0b3Jh
Z2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRtbAorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRJbnRWZXJzaW9uSW50ZXJuYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorCiAyMDEyLTEx
LTA3ICBVbGFuIERlZ2VuYmFldiAgPHVsYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0g
V2ViS2l0IHNlbmRzIHVubmVjZXNzYXJ5IGxvdyBtZW1vcnkgbm90aWZpY2F0aW9uIHdoZW4gcnVu
bmluZyBtZW1vcnkgYmVuY2htYXJrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCA3ZGE1NDMy
ZDM4MmMxYjRlMDhkZTVlYmE1YjgwOTZjNjRkYmY1NDZkLi41YzdiYmQ4ZjY1NGEwMjJjYTEwMzI0
MzdhZjU1MzYyZGQwMGUzMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMzA0LDggKzMw
NCw5IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0VmVyc2lvbkludGVybmFsKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmCiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KHRyYW5zYWN0aW9uKSk7
CiB9CiAKLXZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0SW50VmVyc2lvbkludGVybmFs
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZElt
cGw+IGRhdGFiYXNlLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gdHJhbnNhY3Rp
b24pCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldEludFZlcnNpb25JbnRlcm5hbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBs
PiBkYXRhYmFzZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJw
Q2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxi
YWNrcywgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2FjdGlvbikK
IHsKKyAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MocHJwQ2FsbGJhY2tzKTsKICAg
ICBpbnQ2NF90IGRhdGFiYXNlSWQgPSBkYXRhYmFzZS0+aWQoKTsKICAgICBpbnQ2NF90IG9sZFZl
cnNpb24gPSBkYXRhYmFzZS0+bV9tZXRhZGF0YS5pbnRWZXJzaW9uOwogICAgIEFTU0VSVCh2ZXJz
aW9uID4gb2xkVmVyc2lvbik7CkBAIC0zMTYsNiArMzE3LDggQEAgdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpzZXRJbnRWZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3MKICAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0KGVycm9yKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KKyAgICBBU1NFUlQoIWRhdGFiYXNlLT5tX3BlbmRpbmdTZWNvbmRIYWxmT3Blbldp
dGhWZXJzaW9uKTsKKyAgICBkYXRhYmFzZS0+bV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVy
c2lvbiA9IFBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsOjpjcmVhdGUoY2FsbGJhY2tzLCBkYXRh
YmFzZUNhbGxiYWNrcywgdmVyc2lvbik7CiAgICAgY2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQo
b2xkVmVyc2lvbiwgdHJhbnNhY3Rpb24sIGRhdGFiYXNlKTsKIH0KIApAQCAtNDk4LDcgKzUwMSw3
IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNoYW5nZVRyYW5z
YWN0aW9uKGludDY0X3QgcmVxdWVzdGVkVmVyCiAgICAgQVNTRVJUKCFlYyk7CiAKICAgICBSZWZQ
dHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4gZGF0YWJhc2UgPSB0aGlzOwotICAgIE93blB0cjxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiBpbnRWZXJzaW9uVGFzayA9IGNyZWF0ZUNhbGxi
YWNrVGFzaygmSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0SW50VmVyc2lvbkludGVybmFsLCBk
YXRhYmFzZSwgcmVxdWVzdGVkVmVyc2lvbiwgY2FsbGJhY2tzLCB0cmFuc2FjdGlvbik7CisgICAg
T3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IGludFZlcnNpb25UYXNrID0gY3Jl
YXRlQ2FsbGJhY2tUYXNrKCZJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRJbnRWZXJzaW9uSW50
ZXJuYWwsIGRhdGFiYXNlLCByZXF1ZXN0ZWRWZXJzaW9uLCBjYWxsYmFja3MsIGRhdGFiYXNlQ2Fs
bGJhY2tzLCB0cmFuc2FjdGlvbik7CiAgICAgT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2s+IHJlc2V0VmVyc2lvbk9uQWJvcnRUYXNrID0gY3JlYXRlQ2FsbGJhY2tUYXNrKCZJREJE
YXRhYmFzZUJhY2tlbmRJbXBsOjpyZXNldFZlcnNpb24sIGRhdGFiYXNlLCBtX21ldGFkYXRhLnZl
cnNpb24sIG1fbWV0YWRhdGEuaW50VmVyc2lvbik7CiAgICAgaWYgKCF0cmFuc2FjdGlvbi0+c2No
ZWR1bGVUYXNrKGludFZlcnNpb25UYXNrLnJlbGVhc2UoKSwgcmVzZXRWZXJzaW9uT25BYm9ydFRh
c2sucmVsZWFzZSgpKSkgewogICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIG9uZSBvZiB0aGUgZm9s
bG93aW5nIGxpbmVzLgpAQCAtNTA2LDcgKzUwOSw2IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5k
SW1wbDo6cnVuSW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGludDY0X3QgcmVxdWVzdGVkVmVy
CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlRSQU5TQUNUSU9OX0lOQUNUSVZF
X0VSUjsKICAgICB9CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJz
aW9uKTsKLSAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uID0gUGVuZGluZ09w
ZW5XaXRoVmVyc2lvbkNhbGw6OmNyZWF0ZShjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCBy
ZXF1ZXN0ZWRWZXJzaW9uKTsKICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmFkZChkYXRhYmFz
ZUNhbGxiYWNrcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCBmNWNlODFkNmNiNDE1ZTM5
ZTIxYTQ1NWEyMjAyMjkxMTQ0YmYzZTE0Li44MTRmMWRlMjFkZmJhODk1Y2Q4NWVmZWRlZTQ3NjI5
MTE3YjQ4Mjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmVJbnRlcm5hbChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0
cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsPik7CiAgICAgc3RhdGljIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmVJbnRlcm5hbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBs
PiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsPik7CiAgICAgc3RhdGljIHZvaWQgc2V0VmVyc2lvbkludGVy
bmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2Vu
ZEltcGw+LCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPik7Ci0gICAgc3RhdGljIHZvaWQg
c2V0SW50VmVyc2lvbkludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQmFja2VuZEltcGw+LCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPik7CisgICAg
c3RhdGljIHZvaWQgc2V0SW50VmVyc2lvbkludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+LCBpbnQ2NF90IHZlcnNpb24sIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOwogCiAgICAgLy8gVGhlc2Ug
YXJlIHVzZWQgYXMgc2V0VmVyc2lvbiB0cmFuc2FjdGlvbiBhYm9ydCB0YXNrcy4KICAgICBzdGF0
aWMgdm9pZCByZW1vdmVPYmplY3RTdG9yZUZyb21NYXAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbD4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKaW5kZXggODQxZWMwZjNlMDQxNzBhZGE3
MzUwZDQ0ZGE4NmE0YjI3MzliYzliMi4uMmQ0MDhkNWZjN2NhYzI3OTg4MDlmMWMzODA0NjczZmI5
NmFmNThiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCkBAIC0zNCw3ICszNCw5IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgSURCRGF0YWJhc2VDYWxsYmFja3MgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJREJEYXRhYmFzZUNhbGxiYWNrcz4geworLy8gRklYTUU6IFVzZXMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQgZm9yIHN0b3JhZ2UgaW4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayBidXQKKy8v
IGl0IGlzIG5ldmVyIGFjdHVhbGx5IHVzZWQgb24gbXVsdGlwbGUgdGhyZWFkcy4KK2NsYXNzIElE
QkRhdGFiYXNlQ2FsbGJhY2tzIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VDYWxsYmFj
a3MoKSB7IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDIzNDYxYTVmZjI1YmMxOTE1Mzk3YTc1NTc0YjgwYTAzMWVjOGMz
YWEuLmFhMmNmOTQ3NWI5OGJkN2JiYzcwYmM3NDk3ODM5NjhkOTQyYTg2NDcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxMi0xMC0yMyAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEluZGV4ZWREQjogQXNzZXJ0aW9uIGZhaWx1cmUgd2l0aCBvcGVuKCkgd2l0
aGluIHVwZ3JhZGVuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2OTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRXhlcmNpc2UgdGhlIGNvZGUgcGF0aCBsZWFkaW5nIHRvIHRoZSBhc3NlcnQgYnkg
aGF2aW5nIGEgc2Vjb25kIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uCisgICAgICAgIHVuYmxv
Y2tlZCBieSB0aGUgZmlyc3QncyBjb25uZWN0aW9uIGNsb3NpbmcuIEluY2x1ZGVzIGEga25vd24g
ZmFpbHVyZSBkdWUgdG8gbWV0YWRhdGEKKyAgICAgICAgc25hcHNob3QgdGltaW5nLgorCisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5n
ZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgIChvcGVuQ29ubmVjdGlvbik6
CisgICAgICAgIChvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAob25FcnJvcik6CisgICAgICAg
IChvblVwZ3JhZGVOZWVkZWQyKToKKyAgICAgICAgKG9uU3VjY2Vzcyk6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5n
ZXMuaHRtbDogQWRkZWQuCisKIDIwMTItMTEtMDcgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBSZWJh
c2VsaW5lIHRoZSB0ZXN0cyBhZGRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuanMgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdl
cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NjYzNjM2ZWU5YTZiNGJiMTk2OWE0YjQ1ZmQ5YTY4OTMyMDMxOWMx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuanMKQEAgLTAsMCArMSw2MiBAQAoraWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpz
Jyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBtZXRhZGF0YSByZW1haW5zIGNvcnJl
Y3Qgd2hlbiBhbiBhYm9ydGVkIHZlcnNpb24gY2hhbmdlIGlzIGZvbGxvd2VkIGJ5IGFub3RoZXIu
ICIpOworCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Cisg
ICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVu
ZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuQ29ubmVjdGlvbjsK
K30KKworZnVuY3Rpb24gb3BlbkNvbm5lY3Rpb24oKQoreworICAgIHByZWFtYmxlKCk7CisgICAg
ZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICBy
ZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAgIHJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gb25VcGdyYWRlTmVlZGVkOworICAgIHJlcXVlc3Qub25lcnJvciA9IG9u
RXJyb3I7Cit9CisKK2Z1bmN0aW9uIG9uVXBncmFkZU5lZWRlZChldnQpCit7CisgICAgcHJlYW1i
bGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7CisgICAgc2hv
dWxkQmUoImRiLnZlcnNpb24iLCAiMiIpOworCisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgMykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IG9uVXBncmFk
ZU5lZWRlZDI7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvblN1Y2Nlc3M7CisKKyAgICBldmFs
QW5kTG9nKCJkYi5jbG9zZSgpIik7Cit9CisKK2Z1bmN0aW9uIG9uRXJyb3IoZXZ0KQoreworICAg
IHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMCIpOworfQorCitm
dW5jdGlvbiBvblVwZ3JhZGVOZWVkZWQyKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAg
IGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZGIudmVy
c2lvbiIsICIzIik7Cit9CisKK2Z1bmN0aW9uIG9uU3VjY2VzcyhldnQpCit7CisgICAgcHJlYW1i
bGUoZXZ0KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7CisgICAgc2hv
dWxkQmUoImRiLnZlcnNpb24iLCAiMyIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit0ZXN0
KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2Vz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjE4MzE4ZWQyNjEwNzE1YjdkZGM0MzQyZjA0Nzkw
MDg0NWM5ZTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMyBA
QAorRW5zdXJlIHRoYXQgbWV0YWRhdGEgcmVtYWlucyBjb3JyZWN0IHdoZW4gYW4gYWJvcnRlZCB2
ZXJzaW9uIGNoYW5nZSBpcyBmb2xsb3dlZCBieSBhbm90aGVyLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJ
bmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxm
Lk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJ1bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLmh0bWwi
CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQorCitvcGVuQ29ubmVjdGlvbigpOgor
cmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKKworb25VcGdyYWRlTmVlZGVkKCk6
CitkYiA9IHJlcXVlc3QucmVzdWx0CitQQVNTIGRiLnZlcnNpb24gaXMgMgorcmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgMykKK2RiLmNsb3NlKCkKKworb25FcnJvcigpOgorRkFJTCBk
Yi52ZXJzaW9uIHNob3VsZCBiZSAwLiBXYXMgMi4KKworb25VcGdyYWRlTmVlZGVkMigpOgorZGIg
PSByZXF1ZXN0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9uIGlzIDMKKworb25TdWNjZXNzKCk6Citk
YiA9IHJlcXVlc3QucmVzdWx0CitQQVNTIGRiLnZlcnNpb24gaXMgMworUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42OGU4OWFkZGRlNTNlYjhlNWRmMmM3Y2E1NDdmMmNiNGIyMDhkMDExCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdW5ibG9ja2Vk
LXZlcnNpb24tY2hhbmdlcy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5n
ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172826</attachid>
            <date>2012-11-07 10:03:44 -0800</date>
            <delta_ts>2012-11-07 10:26:46 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96947-20121107100155.patch</filename>
            <type>text/plain</type>
            <size>11301</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZlYTY0MzY4Nzc3NjJi
MTViYTMxYTUwZjU2MzQyZmNiYjBlMmU2MC4uNzM2Y2MzMjlmYjVjYmRlZTkxYjM5YmU2ODczNWQx
NjYxZmM0YjFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTIzICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBc3Nl
cnRpb24gZmFpbHVyZSB3aXRoIG9wZW4oKSB3aXRoaW4gdXBncmFkZW5lZWRlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY5NDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgUG9zdHBvbmUgY3JlYXRpb24g
b2YgdGhlICJwZW5kaW5nIHNlY29uZCBoYWxmIG9wZW4iIHVudGlsIHRoZSB2ZXJzaW9uIGNoYW5n
ZQorICAgICAgICB0cmFuc2FjdGlvbiBoYXMgc3RhcnRlZC4KKworICAgICAgICBUZXN0OiBzdG9y
YWdlL2luZGV4ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLmh0bWwKKworICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0SW50VmVyc2lvbkludGVybmFsKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25D
aGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaDoKKwogMjAxMi0x
MS0wNyAgVWxhbiBEZWdlbmJhZXYgIDx1bGFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhd
IFdlYktpdCBzZW5kcyB1bm5lY2Vzc2FyeSBsb3cgbWVtb3J5IG5vdGlmaWNhdGlvbiB3aGVuIHJ1
bm5pbmcgbWVtb3J5IGJlbmNobWFya3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggN2RhNTQz
MmQzODJjMWI0ZTA4ZGU1ZWJhNWI4MDk2YzY0ZGJmNTQ2ZC4uNWM3YmJkOGY2NTRhMDIyY2ExMDMy
NDM3YWY1NTM2MmRkMDBlMzE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTMwNCw4ICsz
MDQsOSBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldFZlcnNpb25JbnRlcm5hbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZgogICAgIGNhbGxiYWNrcy0+b25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPih0cmFuc2FjdGlvbikp
OwogfQogCi12b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldEludFZlcnNpb25JbnRlcm5h
bChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJ
bXBsPiBkYXRhYmFzZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4g
Y2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0
aW9uKQordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRJbnRWZXJzaW9uSW50ZXJuYWwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1w
bD4gZGF0YWJhc2UsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBy
cENhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxs
YmFja3MsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24p
CiB7CisgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKHBycENhbGxiYWNrcyk7CiAg
ICAgaW50NjRfdCBkYXRhYmFzZUlkID0gZGF0YWJhc2UtPmlkKCk7CiAgICAgaW50NjRfdCBvbGRW
ZXJzaW9uID0gZGF0YWJhc2UtPm1fbWV0YWRhdGEuaW50VmVyc2lvbjsKICAgICBBU1NFUlQodmVy
c2lvbiA+IG9sZFZlcnNpb24pOwpAQCAtMzE2LDYgKzMxNyw4IEBAIHZvaWQgSURCRGF0YWJhc2VC
YWNrZW5kSW1wbDo6c2V0SW50VmVyc2lvbkludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzCiAgICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydChlcnJvcik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CisgICAgQVNTRVJUKCFkYXRhYmFzZS0+bV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5X
aXRoVmVyc2lvbik7CisgICAgZGF0YWJhc2UtPm1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZl
cnNpb24gPSBQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbDo6Y3JlYXRlKGNhbGxiYWNrcywgZGF0
YWJhc2VDYWxsYmFja3MsIHZlcnNpb24pOwogICAgIGNhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVk
KG9sZFZlcnNpb24sIHRyYW5zYWN0aW9uLCBkYXRhYmFzZSk7CiB9CiAKQEAgLTQ5OCw3ICs1MDEs
NyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFu
c2FjdGlvbihpbnQ2NF90IHJlcXVlc3RlZFZlcgogICAgIEFTU0VSVCghZWMpOwogCiAgICAgUmVm
UHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+IGRhdGFiYXNlID0gdGhpczsKLSAgICBPd25QdHI8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gaW50VmVyc2lvblRhc2sgPSBjcmVhdGVDYWxs
YmFja1Rhc2soJklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldEludFZlcnNpb25JbnRlcm5hbCwg
ZGF0YWJhc2UsIHJlcXVlc3RlZFZlcnNpb24sIGNhbGxiYWNrcywgdHJhbnNhY3Rpb24pOworICAg
IE93blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiBpbnRWZXJzaW9uVGFzayA9IGNy
ZWF0ZUNhbGxiYWNrVGFzaygmSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0SW50VmVyc2lvbklu
dGVybmFsLCBkYXRhYmFzZSwgcmVxdWVzdGVkVmVyc2lvbiwgY2FsbGJhY2tzLCBkYXRhYmFzZUNh
bGxiYWNrcywgdHJhbnNhY3Rpb24pOwogICAgIE93blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrPiByZXNldFZlcnNpb25PbkFib3J0VGFzayA9IGNyZWF0ZUNhbGxiYWNrVGFzaygmSURC
RGF0YWJhc2VCYWNrZW5kSW1wbDo6cmVzZXRWZXJzaW9uLCBkYXRhYmFzZSwgbV9tZXRhZGF0YS52
ZXJzaW9uLCBtX21ldGFkYXRhLmludFZlcnNpb24pOwogICAgIGlmICghdHJhbnNhY3Rpb24tPnNj
aGVkdWxlVGFzayhpbnRWZXJzaW9uVGFzay5yZWxlYXNlKCksIHJlc2V0VmVyc2lvbk9uQWJvcnRU
YXNrLnJlbGVhc2UoKSkpIHsKICAgICAgICAgLy8gRklYTUU6IFJlbW92ZSBvbmUgb2YgdGhlIGZv
bGxvd2luZyBsaW5lcy4KQEAgLTUwNiw3ICs1MDksNiBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2Vu
ZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihpbnQ2NF90IHJlcXVlc3RlZFZl
cgogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpUUkFOU0FDVElPTl9JTkFDVElW
RV9FUlI7CiAgICAgfQogICAgIEFTU0VSVCghbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVy
c2lvbik7Ci0gICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbiA9IFBlbmRpbmdP
cGVuV2l0aFZlcnNpb25DYWxsOjpjcmVhdGUoY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcywg
cmVxdWVzdGVkVmVyc2lvbik7CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5hZGQoZGF0YWJh
c2VDYWxsYmFja3MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKaW5kZXggZjVjZTgxZDZjYjQxNWUz
OWUyMWE0NTVhMjIwMjI5MTE0NGJmM2UxNC4uODE0ZjFkZTIxZGZiYTg5NWNkODVlZmVkZWU0NzYy
OTExN2I0ODI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaApAQCAtODksNyArODksNyBAQCBwcml2YXRl
OgogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlSW50ZXJuYWwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4sIFBhc3NSZWZQ
dHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbD4pOwogICAgIHN0YXRpYyB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlSW50ZXJuYWwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1w
bD4sIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOwogICAgIHN0YXRpYyB2b2lkIHNldFZlcnNpb25JbnRl
cm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tl
bmRJbXBsPiwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOwotICAgIHN0YXRpYyB2b2lk
IHNldEludFZlcnNpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOworICAg
IHN0YXRpYyB2b2lkIHNldEludFZlcnNpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiwgaW50NjRfdCB2ZXJzaW9uLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+KTsKIAogICAgIC8vIFRoZXNl
IGFyZSB1c2VkIGFzIHNldFZlcnNpb24gdHJhbnNhY3Rpb24gYWJvcnQgdGFza3MuCiAgICAgc3Rh
dGljIHZvaWQgcmVtb3ZlT2JqZWN0U3RvcmVGcm9tTWFwKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQk9iamVj
dFN0b3JlQmFja2VuZEltcGw+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCmluZGV4IDg0MWVjMGYzZTA0MTcwYWRh
NzM1MGQ0NGRhODZhNGIyNzM5YmM5YjIuLjQ2OTNlNjM3YWVkYWFjYmM0YzE5ZmEwZTQ4NTQ5NDJl
ZDEzMjVjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaApAQCAtMzQsNyArMzQsOSBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIElEQkRhdGFiYXNlQ2FsbGJhY2tzIDogcHVibGljIFJlZkNvdW50
ZWQ8SURCRGF0YWJhc2VDYWxsYmFja3M+IHsKKy8vIEZJWE1FOiBVc2VzIFRocmVhZFNhZmVSZWZD
b3VudGVkIGZvciBzdG9yYWdlIGluIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgYnV0Cisv
LyBpdCBpcyBuZXZlciBhY3R1YWxseSB1c2VkIG9uIG11bHRpcGxlIHRocmVhZHMuIGh0dHA6Ly93
ZWJraXQub3JnL2IvMTAxNDgzCitjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrcyA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxJREJEYXRhYmFzZUNhbGxiYWNrcz4gewogcHVibGljOgogICAg
IHZpcnR1YWwgfklEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMzQ2MWE1ZmYy
NWJjMTkxNTM5N2E3NTU3NGI4MGEwMzFlYzhjM2FhLi41NGEwNTBkOWEwZmU4YjFkYjAzY2U1NjFk
NWQxYWUxZTNlZDE4ZmRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMTAtMjMgIEpvc2h1
YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFzc2Vy
dGlvbiBmYWlsdXJlIHdpdGggb3BlbigpIHdpdGhpbiB1cGdyYWRlbmVlZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njk0NworCisgICAgICAgIFJl
dmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICBFeGVyY2lzZSB0aGUgY29kZSBw
YXRoIGxlYWRpbmcgdG8gdGhlIGFzc2VydCBieSBoYXZpbmcgYSBzZWNvbmQgdmVyc2lvbiBjaGFu
Z2UgdHJhbnNhY3Rpb24KKyAgICAgICAgdW5ibG9ja2VkIGJ5IHRoZSBmaXJzdCdzIGNvbm5lY3Rp
b24gY2xvc2luZy4gSW5jbHVkZXMgYSBrbm93biBmYWlsdXJlIGR1ZSB0byBtZXRhZGF0YQorICAg
ICAgICBzbmFwc2hvdCB0aW1pbmcuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKG9wZW5Db25uZWN0aW9uKToKKyAgICAgICAgKG9uVXBncmFkZU5lZWRlZCk6
CisgICAgICAgIChvbkVycm9yKToKKyAgICAgICAgKG9uVXBncmFkZU5lZWRlZDIpOgorICAgICAg
ICAob25TdWNjZXNzKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi91bmJsb2NrZWQtdmVy
c2lvbi1jaGFuZ2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0w
NyAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1
bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuIFJlYmFzZWxpbmUgdGhlIHRlc3RzIGFkZGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdW5ibG9ja2Vk
LXZlcnNpb24tY2hhbmdlcy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NjM2MzZlZTlh
NmI0YmIxOTY5YTRiNDVmZDlhNjg5MzIwMzE5YzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdl
cy5qcwpAQCAtMCwwICsxLDYyIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1w
b3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsK
KyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIkVuc3Vy
ZSB0aGF0IG1ldGFkYXRhIHJlbWFpbnMgY29ycmVjdCB3aGVuIGFuIGFib3J0ZWQgdmVyc2lvbiBj
aGFuZ2UgaXMgZm9sbG93ZWQgYnkgYW5vdGhlci4gIik7CisKK2Z1bmN0aW9uIHRlc3QoKSB7Cisg
ICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIp
OworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IG9wZW5Db25uZWN0aW9uOworfQorCitmdW5jdGlvbiBvcGVuQ29ubmVjdGlv
bigpCit7CisgICAgcHJlYW1ibGUoKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhl
ZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3Rl
ZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNj
ZXNzQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBvblVwZ3JhZGVOZWVk
ZWQ7CisgICAgcmVxdWVzdC5vbmVycm9yID0gb25FcnJvcjsKK30KKworZnVuY3Rpb24gb25VcGdy
YWRlTmVlZGVkKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImRi
ID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIyIik7CisK
KyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKSIpOwor
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gb25VcGdyYWRlTmVlZGVkMjsKKyAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IG9uU3VjY2VzczsKKworICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKK30KKwor
ZnVuY3Rpb24gb25FcnJvcihldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBzaG91bGRC
ZSgiZGIudmVyc2lvbiIsICIwIik7Cit9CisKK2Z1bmN0aW9uIG9uVXBncmFkZU5lZWRlZDIoZXZ0
KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygiZGIgPSByZXF1ZXN0LnJl
c3VsdCIpOworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjMiKTsKK30KKworZnVuY3Rpb24g
b25TdWNjZXNzKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImRi
ID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIzIik7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Rlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi91bmJsb2NrZWQt
dmVyc2lvbi1jaGFuZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFm
MTgzMThlZDI2MTA3MTViN2RkYzQzNDJmMDQ3OTAwODQ1YzllMWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2Vz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMzIEBACitFbnN1cmUgdGhhdCBtZXRhZGF0YSByZW1h
aW5zIGNvcnJlY3Qgd2hlbiBhbiBhYm9ydGVkIHZlcnNpb24gY2hhbmdlIGlzIGZvbGxvd2VkIGJ5
IGFub3RoZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBz
ZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWRE
QiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gInVu
YmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpCisKK29wZW5Db25uZWN0aW9uKCk6CityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJu
YW1lLCAyKQorCitvblVwZ3JhZGVOZWVkZWQoKToKK2RiID0gcmVxdWVzdC5yZXN1bHQKK1BBU1Mg
ZGIudmVyc2lvbiBpcyAyCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKQorZGIu
Y2xvc2UoKQorCitvbkVycm9yKCk6CitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDAuIFdhcyAy
LgorCitvblVwZ3JhZGVOZWVkZWQyKCk6CitkYiA9IHJlcXVlc3QucmVzdWx0CitQQVNTIGRiLnZl
cnNpb24gaXMgMworCitvblN1Y2Nlc3MoKToKK2RiID0gcmVxdWVzdC5yZXN1bHQKK1BBU1MgZGIu
dmVyc2lvbiBpcyAzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdW5ibG9j
a2VkLXZlcnNpb24tY2hhbmdlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
dW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4ZTg5YWRkZGU1M2Vi
OGU1ZGYyYzdjYTU0N2YyY2I0YjIwOGQwMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLmh0bWwKQEAgLTAs
MCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>