<?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>92952</bug_id>
          
          <creation_ts>2012-08-01 23:52:58 -0700</creation_ts>
          <short_desc>Layout Test storage/indexeddb/intversion-omit-parameter.html is flaky</short_desc>
          <delta_ts>2012-08-07 20:06:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>jsbell</cc>
    
    <cc>pkasting</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xingnan.wang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>685027</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-01 23:52:58 -0700</bug_when>
    <thetext>@haraken: the patch author email (xingnan.wang@intel.com) is not known to bugzilla, so I&apos;m assigning the bug to you as the reviewer. Hope you will handle it appropriately.

The following layout test is flakily crashing on Chromium Linux Debug bots:
storage/indexeddb/intversion-omit-parameter.html

with the following stderr:

crash log for DumpRenderTree (pid 15745):
STDOUT: &lt;empty&gt;
STDERR: ASSERTION FAILED: m_readyState == PENDING || m_readyState == DONE
STDERR: third_party/WebKit/Source/WebCore/Modules/indexeddb/IDBRequest.cpp(222) : virtual void WebCore::IDBRequest::onError(WTF::PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)
STDERR: 1   0x7fbb1b57f8d5
STDERR: 2   0x7fbb1a17693c
STDERR: 3   0x7fbb1a10c060
STDERR: 4   0x7fbb1b53b1c7
STDERR: 5   0x7fbb1b53bd17
STDERR: 6   0x7fbb1b53cb4e
STDERR: 7   0x7fbb1a178b7e
STDERR: 8   0x7fbb1a10ebdb
STDERR: 9   0x7fbb1b536860
STDERR: 10  0x7fbb1b536766
STDERR: 11  0x7fbb1b536e6a
STDERR: 12  0x7fbb1af4e71f
STDERR: 13  0x7fbb1ae7fdf0
STDERR: 14  0x7fbb1ae80006
STDERR: 15  0x7fbb1bb4e8cc
STDERR: 16  0x7fbb1bb5109b
STDERR: 17  0x7fbb1a16634b
STDERR: 18  0x7fbb1a101e30
STDERR: 19  0x7fbb1a105936
STDERR: 20  0x7fbb1ba99d5b
STDERR: 21  0x7fbb1ba99219
STDERR: 22  0x7fbb1ba775c9
STDERR: 23  0x7fbb1ba7772e
STDERR: 24  0x7fbb1ba77c9f
STDERR: 25  0x7fbb1baaf607
STDERR: 26  0x7fbb1bac447b
STDERR: 27  0x7fbb1bab0ab4
STDERR: 28  0x7fbb1bac4d63
STDERR: 29  0x7fbb1b413cc2
STDERR: 30  0x7fbb15733c80
STDERR: 31  0x5e4c43
STDERR: [15745:15745:11351259856559:ERROR:process_util_posix.cc(143)] Received signal 11
STDERR: 	base::debug::StackTrace::StackTrace() [0x7fbb170f5156]
STDERR: 	base::(anonymous namespace)::StackDumpSignalHandler() [0x7fbb1715a5fd]
STDERR: 	0x7fbb10c7eaf0
STDERR: 	WebCore::IDBRequest::onError() [0x7fbb1b57f8df]
STDERR: 	WebKit::WebIDBCallbacksImpl::onError() [0x7fbb1a17693c]
STDERR: 	WebKit::IDBCallbacksProxy::onError() [0x7fbb1a10c060]
STDERR: 	WebCore::IDBDatabaseBackendImpl::setVersion() [0x7fbb1b53b1c7]
STDERR: 	WebCore::IDBDatabaseBackendImpl::processPendingCalls() [0x7fbb1b53bd17]
STDERR: 	WebCore::IDBDatabaseBackendImpl::close() [0x7fbb1b53cb4e]
STDERR: 	WebKit::WebIDBDatabaseImpl::close() [0x7fbb1a178b7e]
STDERR: 	WebKit::IDBDatabaseBackendProxy::close() [0x7fbb1a10ebdb]
STDERR: 	WebCore::IDBDatabase::closeConnection() [0x7fbb1b536860]
STDERR: 	WebCore::IDBDatabase::close() [0x7fbb1b536766]
STDERR: 	WebCore::IDBDatabase::stop() [0x7fbb1b536e6a]
STDERR: 	WebCore::ScriptExecutionContext::stopActiveDOMObjects() [0x7fbb1af4e71f]
STDERR: 	WebCore::Document::detach() [0x7fbb1ae7fdf0]
STDERR: 	WebCore::Document::prepareForDestruction() [0x7fbb1ae80006]
STDERR: 	WebCore::Frame::setView() [0x7fbb1bb4e8cc]
STDERR: 	WebCore::Frame::createView() [0x7fbb1bb5109b]
STDERR: 	WebKit::WebFrameImpl::createFrameView() [0x7fbb1a16634b]
STDERR: 	WebKit::FrameLoaderClientImpl::makeDocumentView() [0x7fbb1a101e30]
STDERR: 	WebKit::FrameLoaderClientImpl::transitionToCommittedForNewPage() [0x7fbb1a105936]
STDERR: 	WebCore::FrameLoader::transitionToCommitted() [0x7fbb1ba99d5b]
STDERR: 	WebCore::FrameLoader::commitProvisionalLoad() [0x7fbb1ba99219]
STDERR: 	WebCore::DocumentLoader::commitIfReady() [0x7fbb1ba775c9]
STDERR: 	WebCore::DocumentLoader::commitLoad() [0x7fbb1ba7772e]
STDERR: 	WebCore::DocumentLoader::receivedData() [0x7fbb1ba77c9f]
STDERR: 	WebCore::MainResourceLoader::addData() [0x7fbb1baaf607]
STDERR: 	WebCore::ResourceLoader::didReceiveData() [0x7fbb1bac447b]
STDERR: 	WebCore::MainResourceLoader::didReceiveData() [0x7fbb1bab0ab4]
STDERR: 	WebCore::ResourceLoader::didReceiveData() [0x7fbb1bac4d63]
STDERR: 	WebCore::ResourceHandleInternal::didReceiveData() [0x7fbb1b413cc2]
STDERR: 	webkit_glue::WebURLLoaderImpl::Context::OnReceivedData() [0x7fbb15733c80]
STDERR: 	(anonymous namespace)::RequestProxy::NotifyReceivedData() [0x5e4c43]
STDERR: 	base::internal::RunnableAdapter&lt;&gt;::Run() [0x5eb4f5]
STDERR: 	base::internal::InvokeHelper&lt;&gt;::MakeItSo() [0x5eaebe]
STDERR: 	base::internal::Invoker&lt;&gt;::Run() [0x5ea75c]
STDERR: 	base::Callback&lt;&gt;::Run() [0x7fbb170ed2f9]
STDERR: 	MessageLoop::RunTask() [0x7fbb1712edf6]
STDERR: 	MessageLoop::DeferOrRunPendingTask() [0x7fbb1712ef0e]
STDERR: 	MessageLoop::DoWork() [0x7fbb1712f729]
STDERR: 	base::MessagePumpGlib::HandleDispatch() [0x7fbb170d3521]
STDERR: 	(anonymous namespace)::WorkSourceDispatch() [0x7fbb170d2c3b]
STDERR: 	0x7fbb119d78c2
STDERR: 	0x7fbb119db748
STDERR: 	0x7fbb119db8fc
STDERR: 	base::MessagePumpGlib::RunWithDispatcher() [0x7fbb170d31d0]
STDERR: 	base::MessagePumpGlib::Run() [0x7fbb170d35fe]
STDERR: 	MessageLoop::RunInternal() [0x7fbb1712eabb]
STDERR: 	MessageLoop::RunHandler() [0x7fbb1712e972]
STDERR: 	base::RunLoop::Run() [0x7fbb17162246]
STDERR: 	MessageLoop::Run() [0x7fbb1712e2a0]
STDERR: 	webkit_support::RunMessageLoop() [0x516999]
STDERR: 	TestShell::waitTestFinished() [0x4ad60e]
STDERR: 	TestShell::runFileTest() [0x4a66c6]
STDERR: 	runTest() [0x4725f7]
STDERR: 	main [0x472fde]
STDERR: 	0x7fbb10c69c4d
STDERR: 	0x470d49

Probable cause:
http://trac.webkit.org/changeset/124402

The flakiness dashboard link: http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=storage%2Findexeddb%2Fintversion-omit-parameter.html

Suppressing for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685042</commentid>
    <comment_count>1</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2012-08-02 00:17:42 -0700</bug_when>
    <thetext>This test was recently added, in r124383.  Perhaps the test is inherently flaky?  Hopefully one of the CCed folks has the expertise to look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685722</commentid>
    <comment_count>2</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-02 13:21:48 -0700</bug_when>
    <thetext>Xingnan, don&apos;t worry about this, it&apos;s not related to your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686088</commentid>
    <comment_count>3</comment_count>
    <who name="Xingnan Wang">xingnan.wang</who>
    <bug_when>2012-08-02 18:27:21 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Xingnan, don&apos;t worry about this, it&apos;s not related to your patch.

That`s fine. BTW, I cannot reproduce it on my ubuntu11.10.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687280</commentid>
    <comment_count>4</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-03 17:20:21 -0700</bug_when>
    <thetext>I can get content_shell (without any upgradeneeded code) to fail an assert on a good portion of IDB layout tests by hitting refresh a couple times (IDB&apos;s constant nemesis) or even just back &lt;-&gt; forward.

The pattern is
* There&apos;s a pending call on the backend, either open/close/deleteDatabase or just an openCursor that hasn&apos;t been processed
* ActiveDOMObjects get stop()&apos;ped, IDBRequest gets marked EarlyDeath
* Backend proceeds with pending call
* IDBRequest::on{Success,Error} is called with the results of the pending call
* ASSERT(m_readyState == PENDING || m_readyState == DONE) fails because IDBRequest.m_readyState == EarlyDeath

Josh, do you remember off the top of your head if we had a mechanism in place to prevent this flow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687300</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-03 17:57:58 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I can get content_shell (without any upgradeneeded code) to fail an assert on a good portion of IDB layout tests by hitting refresh a couple times (IDB&apos;s constant nemesis) or even just back &lt;-&gt; forward.
&gt; 
&gt; The pattern is
&gt; * There&apos;s a pending call on the backend, either open/close/deleteDatabase or just an openCursor that hasn&apos;t been processed
&gt; * ActiveDOMObjects get stop()&apos;ped, IDBRequest gets marked EarlyDeath
&gt; * Backend proceeds with pending call
&gt; * IDBRequest::on{Success,Error} is called with the results of the pending call
&gt; * ASSERT(m_readyState == PENDING || m_readyState == DONE) fails because IDBRequest.m_readyState == EarlyDeath
&gt; 
&gt; Josh, do you remember off the top of your head if we had a mechanism in place to prevent this flow?

Not specifically. That assert is new, though - I didn&apos;t consider the stopped case. :(

The asserts in any of the onXXX callbacks can probably be removed (inspect that I didn&apos;t over-simplify the code though). The enque/dispatch code handles the stopped case. I&apos;ll tackle this on Monday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688204</commentid>
    <comment_count>6</comment_count>
      <attachid>156708</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-06 09:36:44 -0700</bug_when>
    <thetext>Created attachment 156708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688214</commentid>
    <comment_count>7</comment_count>
      <attachid>156711</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-06 09:41:22 -0700</bug_when>
    <thetext>Created attachment 156711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688219</commentid>
    <comment_count>8</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-06 09:44:15 -0700</bug_when>
    <thetext>A direct layout test for this might be possible: initiate IDB operations (like in the omit test) then close the document before the pending events can be processed. Possibly in an iframe, so the top-level page persists and can see the eventual success events.

I&apos;ll play with it. In the mean time, dgrogan@ can you take a look and try the patch on your system to see if it does resolve the content shell repro you had?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689281</commentid>
    <comment_count>9</comment_count>
      <attachid>156975</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-07 12:33:04 -0700</bug_when>
    <thetext>Created attachment 156975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689283</commentid>
    <comment_count>10</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-07 12:37:48 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; A direct layout test for this might be possible: initiate IDB operations (like in the omit test) then close the document before the pending events can be processed. Possibly in an iframe, so the top-level page persists and can see the eventual success events.

I gave up on the layout test and went with a Chromium unit test instead (in latest patch).

alecflett@, dgrogan@ - please take a look?

Most of the IDBRequest::onXXX() callbacks now have the same preamble. I considered extracting a private method that would encapsulate the &quot;if stopped or aborted then bail early&quot; logic and state assertions, e.g.  &quot;if (!shouldProcessEvent()) return;&quot; - thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689338</commentid>
    <comment_count>11</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-08-07 13:35:29 -0700</bug_when>
    <thetext>+1 for consolidation 

I seem to have just started hitting these ASSERTs (that are being removed here) in my createIndex patch. (way more in the browser tests than in DRT) I was in the process of trying to break it up when I started hitting them and this will certainly keep me from hitting them - is this happening more with the recent patches from david? Mostly I&apos;m just trying to figure out if this what I&apos;m running into, or if I&apos;m inadvertently introducing bugs as I break up my mega patch :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689362</commentid>
    <comment_count>12</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-07 14:08:11 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; I seem to have just started hitting these ASSERTs (that are being removed here) in my createIndex patch. (way more in the browser tests than in DRT) I was in the process of trying to break it up when I started hitting them and this will certainly keep me from hitting them - is this happening more with the recent patches from david? Mostly I&apos;m just trying to figure out if this what I&apos;m running into, or if I&apos;m inadvertently introducing bugs as I break up my mega patch :(

Yeah, dgrogan@&apos;s patch makes the pending calls queue around database open/version/close/delete more necessarily more complex, and introduces more opportunities for events to get triggered after context destruction which is the trigger for these asserts.

I&apos;ll re-up the patch with common logic factored out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689376</commentid>
    <comment_count>13</comment_count>
      <attachid>157003</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-07 14:22:14 -0700</bug_when>
    <thetext>Created attachment 157003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689377</commentid>
    <comment_count>14</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-07 14:23:25 -0700</bug_when>
    <thetext>tony@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689725</commentid>
    <comment_count>15</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-07 18:30:52 -0700</bug_when>
    <thetext>LGTM, thanks for fixing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689796</commentid>
    <comment_count>16</comment_count>
      <attachid>157003</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-07 20:06:38 -0700</bug_when>
    <thetext>Comment on attachment 157003
Patch

Clearing flags on attachment: 157003

Committed r124974: &lt;http://trac.webkit.org/changeset/124974&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689797</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-07 20:06:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156708</attachid>
            <date>2012-08-06 09:36:44 -0700</date>
            <delta_ts>2012-08-06 09:41:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92952-20120806103622.patch</filename>
            <type>text/plain</type>
            <size>8170</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY2NGZjZjEzMDBhYWRk
ZTg4ODBjYjk1YmE4ZWZlZGFjNGFjNGQyYi4uYjZlMDdhYjVmMjM0ZTU0N2Y3YWQ5ZDE3NzAyOTI3
NTY2NmYwNGRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA4LTA2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTGF5b3V0IFRlc3Qgc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sIGlzIGZsYWt5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjk1MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY291bnQgZm9y
IGV2ZW50cyBiZWluZyBwcm9wYWdhdGVkIGZyb20gdGhlIGJhY2stZW5kIHRvIGZyb250LWVuZCBh
ZnRlcgorICAgICAgICBmcm9udC1lbmQgY29udGV4dCBpcyBzdG9wcGVkIChpLmUuIGRvY3VtZW50
IGlzIGJlaW5nIGRlc3Ryb3llZCkuIFRoZSBJREJSZXF1ZXN0CisgICAgICAgIGxpZmVjeWNsZSB3
YXMgdGlnaHRlbmVkIHVwIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyMzI3
NSB3aXRoIG1vcmUKKyAgICAgICAgYXNzZXJ0cyBidXQgdGhlIHN0b3BwZWQgc3RhdGUgd2Fzbid0
IGFjY291bnRlZCBmb3IuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gbm90IHN1cmUgaWYgdGhp
cyBjYW4gYmUgdmVyaWZpZWQgaW4gYSBsYXlvdXQgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6
YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25FcnJvcik6CisgICAgICAg
IChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbik6CisKIDIwMTItMDgtMDYgIEFya28g
U2FoYSAgPGFya29AbW90b3JvbGEuY29tPgogCiAgICAgICAgIE1pY3JvZGF0YTogZG9jdW1lbnQu
Z2V0SXRlbXMoKSBtdXN0IHRyZWF0IG5vIHRva2VuIGFzIG5vIHBhcmFtZXRlci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggY2QyNWMz
MTAyZjU5NzdkMTQzZjMxOTVlMTQzMzE5ODBhYWU3YzY1OC4uYmNlY2Y5YmZkZmI5YzUzZGE0ZTVl
MDc4Zjg3ZTJiODY5ZjE1ZjAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTE0MiwxMCArMTQyLDEwIEBAIHZvaWQgSURCUmVxdWVz
dDo6bWFya0Vhcmx5RGVhdGgoKQogCiB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKIHsKLSAgICBB
U1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUpOwog
ICAgIEFTU0VSVCghbV9yZXF1ZXN0QWJvcnRlZCk7CiAgICAgaWYgKG1fY29udGV4dFN0b3BwZWQg
fHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuOworICAgIEFTU0VS
VChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CiAgICAg
aWYgKG1fcmVhZHlTdGF0ZSA9PSBET05FKQogICAgICAgICByZXR1cm47CiAKQEAgLTIxOSwxMSAr
MjE5LDE0IEBAIHZvaWQgSURCUmVxdWVzdDo6ZmluaXNoQ3Vyc29yKCkKIAogdm9pZCBJREJSZXF1
ZXN0OjpvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCiB7Ci0gICAg
QVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsK
KyAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uRXJyb3IoKSIpOworICAgIGlmIChtX2NvbnRl
eHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybjsK
ICAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCht
X3JlYWR5U3RhdGUgPT0gUEVORElORyk7CiAgICAgQVNTRVJUKCFtX2Vycm9yQ29kZSAmJiBtX2Vy
cm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9lcnJvciAmJiAhbV9yZXN1bHQpOworCiAgICAgbV9l
cnJvckNvZGUgPSBlcnJvci0+Y29kZSgpOwogICAgIG1fZXJyb3JNZXNzYWdlID0gZXJyb3ItPm1l
c3NhZ2UoKTsKICAgICBtX2Vycm9yID0gRE9NRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2Vw
dGlvbjo6Z2V0RXJyb3JOYW1lKGVycm9yLT5pZGJDb2RlKCkpKTsKQEAgLTIzOSwxMSArMjQyLDEz
IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEV2ZW50PiBjcmVhdGVTdWNjZXNzRXZlbnQoKQogdm9pZCBJ
REJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBkb21TdHJpbmdM
aXN0KQogewogICAgIElEQl9UUkFDRSgiSURCUmVxdWVzdDo6b25TdWNjZXNzKERPTVN0cmluZ0xp
c3QpIik7Ci0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0
ZSA9PSBET05FKTsKKyAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKQorICAgICAgICByZXR1cm47CiAgICAgaWYgKG1fcmVxdWVzdEFib3J0ZWQpCiAg
ICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpOwogICAg
IEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1fZXJy
b3IgJiYgIW1fcmVzdWx0KTsKKwogICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUoZG9tU3Ry
aW5nTGlzdCk7CiAgICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAg
LTI1MSwxMSArMjU2LDEzIEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8
RE9NU3RyaW5nTGlzdD4gZG9tU3RyaW5nTGlzdCkKIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKIHsKICAgICBJ
REJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhJREJDdXJzb3IpIik7Ci0gICAgQVNTRVJU
KG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKKyAgICBp
ZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAg
ICByZXR1cm47CiAgICAgaWYgKG1fcmVxdWVzdEFib3J0ZWQpCiAgICAgICAgIHJldHVybjsKICAg
ICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpOwogICAgIEFTU0VSVCghbV9lcnJvckNv
ZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1fZXJyb3IgJiYgIW1fcmVzdWx0KTsK
KwogICAgIEFTU0VSVChtX2N1cnNvclR5cGUgIT0gSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6
SW52YWxpZEN1cnNvclR5cGUpOwogICAgIFJlZlB0cjxJREJDdXJzb3I+IGN1cnNvcjsKICAgICBp
ZiAobV9jdXJzb3JUeXBlID09IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5Q3Vy
c29yKQpAQCAtMjcwLDEzICsyNzcsMTIgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogdm9pZCBJREJSZXF1
ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGJh
Y2tlbmQpCiB7CiAgICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoSURCRGF0YWJh
c2UpIik7Ci0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0
ZSA9PSBET05FKTsKKyAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKQorICAgICAgICByZXR1cm47CiAgICAgaWYgKG1fcmVxdWVzdEFib3J0ZWQpCiAg
ICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpOwogICAg
IEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1fZXJy
b3IgJiYgIW1fcmVzdWx0KTsKLSAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKQotICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8SURCRGF0YWJh
c2U+IGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIGJhY2tlbmQpOwogICAgIGlkYkRhdGFiYXNlLT5yZWdpc3RlckZyb250ZW5kQ2FsbGJh
Y2tzKCk7CkBAIC0yODgsMTEgKzI5NCwxMyBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKIHZvaWQgSURC
UmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBpZGJLZXkpCiB7CiAgICAgSURC
X1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoSURCS2V5KSIpOwotICAgIEFTU0VSVChtX3Jl
YWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgaWYgKG1f
Y29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0
dXJuOwogICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQogICAgICAgICByZXR1cm47CiAgICAgQVNT
RVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKICAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYm
IG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFtX2Vycm9yICYmICFtX3Jlc3VsdCk7CisKICAg
ICBpZiAoaWRiS2V5ICYmIGlkYktleS0+aXNWYWxpZCgpKQogICAgICAgICBtX3Jlc3VsdCA9IElE
QkFueTo6Y3JlYXRlKGlkYktleSk7CiAgICAgZWxzZQpAQCAtMzAzLDE4ICszMTEsMTYgQEAgdm9p
ZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+IGlkYktleSkKIHZvaWQg
SURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiBwcnBCYWNrZW5kKQogewogICAgIElEQl9UUkFDRSgiSURCUmVxdWVzdDo6b25TdWNj
ZXNzKElEQlRyYW5zYWN0aW9uKSIpOwotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElO
RyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwg
IXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgeworICAgICAgICBwcnBCYWNrZW5kLT5hYm9ydCgp
OworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQogICAg
ICAgICByZXR1cm47CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKICAgICBB
U1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFtX2Vycm9y
ICYmICFtX3Jlc3VsdCk7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZT4gYmFja2VuZCA9IHBycEJhY2tlbmQ7Ci0KLSAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAh
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7Ci0gICAgICAgIGJhY2tlbmQtPmFib3J0KCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CiAKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlPiBiYWNrZW5kID0gcHJwQmFja2VuZDsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rp
b24+IGZyb250ZW5kID0gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIGJhY2tlbmQsIElEQlRyYW5zYWN0aW9uOjpWRVJTSU9OX0NIQU5HRSwgbV9zb3VyY2Ut
PmlkYkRhdGFiYXNlKCkuZ2V0KCkpOwogICAgIGJhY2tlbmQtPnNldENhbGxiYWNrcyhmcm9udGVu
ZC5nZXQoKSk7CiAgICAgbV90cmFuc2FjdGlvbiA9IGZyb250ZW5kOwpAQCAtMzI5LDExICszMzUs
MTMgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IHBycEJhY2tlbmQKIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNz
KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkU2NyaXB0VmFsdWUp
CiB7CiAgICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoU2VyaWFsaXplZFNjcmlw
dFZhbHVlKSIpOwotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5
U3RhdGUgPT0gRE9ORSk7CisgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX3JlcXVlc3RBYm9ydGVk
KQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsK
ICAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFt
X2Vycm9yICYmICFtX3Jlc3VsdCk7CisKICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKHNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CiAgICAgbV9wZW5kaW5nQ3Vyc29yLmNsZWFyKCk7CiAgICAg
ZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKQEAgLTM1NCw4ICszNjIsMTQgQEAg
c3RhdGljIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IGVmZmVjdGl2ZU9iamVjdFN0b3JlKFBh
c3NSZWZQdHI8SURCQW55PiBzb3VyY2UKIAogdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHBycFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwg
UGFzc1JlZlB0cjxJREJLZXk+IHBycFByaW1hcnlLZXksIGNvbnN0IElEQktleVBhdGgmIGtleVBh
dGgpCiB7CisgICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoU2VyaWFsaXplZFNj
cmlwdFZhbHVlLCBJREJLZXksIElEQktleVBhdGgpIik7CisgICAgaWYgKG1fY29udGV4dFN0b3Bw
ZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGlm
IChtX3JlcXVlc3RBYm9ydGVkKQogICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fcmVhZHlT
dGF0ZSA9PSBQRU5ESU5HKTsKKyAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNz
YWdlLmlzTnVsbCgpICYmICFtX2Vycm9yICYmICFtX3Jlc3VsdCk7CisKICNpZm5kZWYgTkRFQlVH
CiAgICAgQVNTRVJUKGtleVBhdGggPT0gZWZmZWN0aXZlT2JqZWN0U3RvcmUobV9zb3VyY2UpLT5r
ZXlQYXRoKCkpOwogI2VuZGlmCkBAIC0zODAsMTAgKzM5NCwxMyBAQCB2b2lkIElEQlJlcXVlc3Q6
Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwU2VyaWFsaXpl
ZFNjcmlwdAogdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkKIHsK
ICAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24iKTsK
LSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERP
TkUpOworICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCisgICAgICAgIHJldHVybjsKICAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKICAgICAgICAg
cmV0dXJuOworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyk7CiAgICAgQVNTRVJU
KCFtX2Vycm9yQ29kZSAmJiBtX2Vycm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9lcnJvciAmJiAh
bV9yZXN1bHQpOworCiAgICAgQVNTRVJUKG1fcGVuZGluZ0N1cnNvcik7CiAgICAgc2V0UmVzdWx0
Q3Vyc29yKG1fcGVuZGluZ0N1cnNvci5yZWxlYXNlKCkpOwogICAgIGVucXVldWVFdmVudChjcmVh
dGVTdWNjZXNzRXZlbnQoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156711</attachid>
            <date>2012-08-06 09:41:22 -0700</date>
            <delta_ts>2012-08-07 12:32:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92952-20120806104059.patch</filename>
            <type>text/plain</type>
            <size>9849</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY2NGZjZjEzMDBhYWRk
ZTg4ODBjYjk1YmE4ZWZlZGFjNGFjNGQyYi4uYjhmYTRhMDMyODI3NjRiZjk1NTYyYTMwYjg2NmJk
ZTQyZDJkZDBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA4LTA2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTGF5b3V0IFRlc3Qgc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sIGlzIGZsYWt5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjk1MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY291bnQgZm9y
IGV2ZW50cyBiZWluZyBwcm9wYWdhdGVkIGZyb20gdGhlIGJhY2stZW5kIHRvIGZyb250LWVuZCBh
ZnRlcgorICAgICAgICBmcm9udC1lbmQgY29udGV4dCBpcyBzdG9wcGVkIChpLmUuIGRvY3VtZW50
IGlzIGJlaW5nIGRlc3Ryb3llZCkuIFRoZSBJREJSZXF1ZXN0CisgICAgICAgIGxpZmVjeWNsZSB3
YXMgdGlnaHRlbmVkIHVwIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyMzI3
NSB3aXRoIG1vcmUKKyAgICAgICAgYXNzZXJ0cyBidXQgdGhlIHN0b3BwZWQgc3RhdGUgd2Fzbid0
IGFjY291bnRlZCBmb3IuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gbm90IHN1cmUgaWYgdGhp
cyBjYW4gYmUgcmVsaWFibHkgdmVyaWZpZWQgaW4gYSBsYXlvdXQgdGVzdC4gVGhlCisgICAgICAg
IGZsYWt5IHRlc3QgbWVudGlvbmVkIGluIHRoZSBidWcgaXMgYSBnb29kIGNhbmFyeSwgdGhvdWdo
LgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlJlcXVlc3Q6Om9uRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25T
dWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6Om9uU3VjY2Vzc1dpdGhDb250
aW51YXRpb24pOgorCiAyMDEyLTA4LTA2ICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4K
IAogICAgICAgICBNaWNyb2RhdGE6IGRvY3VtZW50LmdldEl0ZW1zKCkgbXVzdCB0cmVhdCBubyB0
b2tlbiBhcyBubyBwYXJhbWV0ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IGNkMjVjMzEwMmY1OTc3ZDE0M2YzMTk1ZTE0MzMxOTgw
YWFlN2M2NTguLmJjZWNmOWJmZGZiOWM1M2RhNGU1ZTA3OGY4N2UyYjg2OWYxNWYwM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC0x
NDIsMTAgKzE0MiwxMCBAQCB2b2lkIElEQlJlcXVlc3Q6Om1hcmtFYXJseURlYXRoKCkKIAogdm9p
ZCBJREJSZXF1ZXN0OjphYm9ydCgpCiB7Ci0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5E
SU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQoIW1fcmVxdWVzdEFib3J0
ZWQpOwogICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCiAgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcg
fHwgbV9yZWFkeVN0YXRlID09IERPTkUpOwogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gRE9ORSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTksMTEgKzIxOSwxNCBAQCB2b2lkIElEQlJlcXVlc3Q6
OmZpbmlzaEN1cnNvcigpCiAKIHZvaWQgSURCUmVxdWVzdDo6b25FcnJvcihQYXNzUmVmUHRyPElE
QkRhdGFiYXNlRXJyb3I+IGVycm9yKQogewotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVO
RElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0
OjpvbkVycm9yKCkiKTsKKyAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm47CiAgICAgaWYgKG1fcmVxdWVzdEFib3J0ZWQp
CiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpOwog
ICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1f
ZXJyb3IgJiYgIW1fcmVzdWx0KTsKKwogICAgIG1fZXJyb3JDb2RlID0gZXJyb3ItPmNvZGUoKTsK
ICAgICBtX2Vycm9yTWVzc2FnZSA9IGVycm9yLT5tZXNzYWdlKCk7CiAgICAgbV9lcnJvciA9IERP
TUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OmdldEVycm9yTmFtZShlcnJvci0+
aWRiQ29kZSgpKSk7CkBAIC0yMzksMTEgKzI0MiwxMyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxFdmVu
dD4gY3JlYXRlU3VjY2Vzc0V2ZW50KCkKIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NS
ZWZQdHI8RE9NU3RyaW5nTGlzdD4gZG9tU3RyaW5nTGlzdCkKIHsKICAgICBJREJfVFJBQ0UoIklE
QlJlcXVlc3Q6Om9uU3VjY2VzcyhET01TdHJpbmdMaXN0KSIpOwotICAgIEFTU0VSVChtX3JlYWR5
U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgaWYgKG1fY29u
dGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJu
OwogICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJU
KG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKICAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1f
ZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFtX2Vycm9yICYmICFtX3Jlc3VsdCk7CisKICAgICBt
X3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGRvbVN0cmluZ0xpc3QpOwogICAgIGVucXVldWVFdmVu
dChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CiB9CkBAIC0yNTEsMTEgKzI1NiwxMyBAQCB2b2lkIElE
QlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IGRvbVN0cmluZ0xp
c3QpCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+IGJhY2tlbmQpCiB7CiAgICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1
Y2Nlc3MoSURCQ3Vyc29yKSIpOwotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8
fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX3JlcXVl
c3RBYm9ydGVkKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQ
RU5ESU5HKTsKICAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVs
bCgpICYmICFtX2Vycm9yICYmICFtX3Jlc3VsdCk7CisKICAgICBBU1NFUlQobV9jdXJzb3JUeXBl
ICE9IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkludmFsaWRDdXJzb3JUeXBlKTsKICAgICBS
ZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3I7CiAgICAgaWYgKG1fY3Vyc29yVHlwZSA9PSBJREJDdXJz
b3JCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleUN1cnNvcikKQEAgLTI3MCwxMyArMjc3LDEyIEBA
IHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZElu
dGVyZmFjZT4gYmFja2VuZCkKIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogewogICAgIElEQl9UUkFDRSgi
SURCUmVxdWVzdDo6b25TdWNjZXNzKElEQkRhdGFiYXNlKSIpOwotICAgIEFTU0VSVChtX3JlYWR5
U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgaWYgKG1fY29u
dGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJu
OwogICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJU
KG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKICAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1f
ZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFtX2Vycm9yICYmICFtX3Jlc3VsdCk7Ci0gICAgaWYg
KG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAg
cmV0dXJuOwogCiAgICAgUmVmUHRyPElEQkRhdGFiYXNlPiBpZGJEYXRhYmFzZSA9IElEQkRhdGFi
YXNlOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBiYWNrZW5kKTsKICAgICBpZGJE
YXRhYmFzZS0+cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcygpOwpAQCAtMjg4LDExICsyOTQsMTMg
QEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2U+IGJhY2tlbmQpCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVm
UHRyPElEQktleT4gaWRiS2V5KQogewogICAgIElEQl9UUkFDRSgiSURCUmVxdWVzdDo6b25TdWNj
ZXNzKElEQktleSkiKTsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9y
ZWFkeVN0YXRlID09IERPTkUpOworICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybjsKICAgICBpZiAobV9yZXF1ZXN0QWJv
cnRlZCkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElO
Ryk7CiAgICAgQVNTRVJUKCFtX2Vycm9yQ29kZSAmJiBtX2Vycm9yTWVzc2FnZS5pc051bGwoKSAm
JiAhbV9lcnJvciAmJiAhbV9yZXN1bHQpOworCiAgICAgaWYgKGlkYktleSAmJiBpZGJLZXktPmlz
VmFsaWQoKSkKICAgICAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZShpZGJLZXkpOwogICAg
IGVsc2UKQEAgLTMwMywxOCArMzExLDE2IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBh
c3NSZWZQdHI8SURCS2V5PiBpZGJLZXkpCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gcHJwQmFja2VuZCkKIHsKICAg
ICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhJREJUcmFuc2FjdGlvbikiKTsKLSAg
ICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUp
OworICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
IHsKKyAgICAgICAgcHJwQmFja2VuZC0+YWJvcnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
ICAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCht
X3JlYWR5U3RhdGUgPT0gUEVORElORyk7CiAgICAgQVNTRVJUKCFtX2Vycm9yQ29kZSAmJiBtX2Vy
cm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9lcnJvciAmJiAhbV9yZXN1bHQpOwotICAgIFJlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQgPSBwcnBCYWNrZW5kOwot
Ci0gICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkg
ewotICAgICAgICBiYWNrZW5kLT5hYm9ydCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQogCisg
ICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCA9IHBycEJh
Y2tlbmQ7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBmcm9udGVuZCA9IElEQlRyYW5zYWN0
aW9uOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBiYWNrZW5kLCBJREJUcmFuc2Fj
dGlvbjo6VkVSU0lPTl9DSEFOR0UsIG1fc291cmNlLT5pZGJEYXRhYmFzZSgpLmdldCgpKTsKICAg
ICBiYWNrZW5kLT5zZXRDYWxsYmFja3MoZnJvbnRlbmQuZ2V0KCkpOwogICAgIG1fdHJhbnNhY3Rp
b24gPSBmcm9udGVuZDsKQEAgLTMyOSwxMSArMzM1LDEzIEBAIHZvaWQgSURCUmVxdWVzdDo6b25T
dWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBwcnBCYWNr
ZW5kCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gc2VyaWFsaXplZFNjcmlwdFZhbHVlKQogewogICAgIElEQl9UUkFDRSgiSURCUmVx
dWVzdDo6b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkiKTsKLSAgICBBU1NFUlQobV9y
ZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUpOworICAgIGlmICht
X2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJl
dHVybjsKICAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKICAgICAgICAgcmV0dXJuOwogICAgIEFT
U0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyk7CiAgICAgQVNTRVJUKCFtX2Vycm9yQ29kZSAm
JiBtX2Vycm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9lcnJvciAmJiAhbV9yZXN1bHQpOworCiAg
ICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZShzZXJpYWxpemVkU2NyaXB0VmFsdWUpOwogICAg
IG1fcGVuZGluZ0N1cnNvci5jbGVhcigpOwogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNz
RXZlbnQoKSk7CkBAIC0zNTQsOCArMzYyLDE0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPElEQk9iamVj
dFN0b3JlPiBlZmZlY3RpdmVPYmplY3RTdG9yZShQYXNzUmVmUHRyPElEQkFueT4gc291cmNlCiAK
IHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBwcnBTZXJpYWxpemVkU2NyaXB0VmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBQcmlt
YXJ5S2V5LCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoKQogeworICAgIElEQl9UUkFDRSgiSURC
UmVxdWVzdDo6b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgSURCS2V5LCBJREJLZXlQ
YXRoKSIpOworICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgICAgIHJldHVybjsKICAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKICAgICAg
ICAgcmV0dXJuOworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyk7CisgICAgQVNT
RVJUKCFtX2Vycm9yQ29kZSAmJiBtX2Vycm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9lcnJvciAm
JiAhbV9yZXN1bHQpOworCiAjaWZuZGVmIE5ERUJVRwogICAgIEFTU0VSVChrZXlQYXRoID09IGVm
ZmVjdGl2ZU9iamVjdFN0b3JlKG1fc291cmNlKS0+a2V5UGF0aCgpKTsKICNlbmRpZgpAQCAtMzgw
LDEwICszOTQsMTMgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHBycFNlcmlhbGl6ZWRTY3JpcHQKIHZvaWQgSURCUmVxdWVzdDo6
b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpCiB7CiAgICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0
OjpvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uIik7Ci0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9
PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKKyAgICBpZiAobV9jb250ZXh0U3Rv
cHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm47CiAgICAg
aWYgKG1fcmVxdWVzdEFib3J0ZWQpCiAgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9yZWFk
eVN0YXRlID09IFBFTkRJTkcpOwogICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1l
c3NhZ2UuaXNOdWxsKCkgJiYgIW1fZXJyb3IgJiYgIW1fcmVzdWx0KTsKKwogICAgIEFTU0VSVCht
X3BlbmRpbmdDdXJzb3IpOwogICAgIHNldFJlc3VsdEN1cnNvcihtX3BlbmRpbmdDdXJzb3IucmVs
ZWFzZSgpKTsKICAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDkyMTYwMzU4M2MzZjUwN2U4MjFjZGEzOTI3MzQ3ODQ5N2ZkYmE1NDUuLmUyZDJjYjZkNjFmOGJh
M2I4OTcyN2ZkMTk5NmEyMTllNmQyMmM0YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0w
OC0wNiAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIExheW91
dCBUZXN0IHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbCBp
cyBmbGFreQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTI5NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZW1vdmUgZXhwZWN0YXRpb24gbm93IHRoYXQgZmxha2luZXNzIHNob3VsZCBiZSByZXNvbHZlZC4K
KworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTIt
MDgtMDYgIFRha2FzaGkgVG95b3NoaW1hICA8dG95b3NoaW1AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJlYmFzZWxpbmUgZm9yIHIxMjQ3NDUuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiYmU5YjRjYWUyYWE4ZGVi
ODc0Mjg0MmE2YzQxMDY3ZTUwYjI4ZWJmLi45Y2M1YTdlM2Y5ODliNmI1MzYyMjlhZTJhNTA0M2Q5
ZDM0ZjkwYTVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTM0NjIsOSArMzQ2Miw2IEBAIEJVR1dLOTI5MzggOiBjb21wb3NpdGluZy9s
YXllci1jcmVhdGlvbi9hbmltYXRpb24tb3ZlcmxhcC13aXRoLWNoaWxkcmVuLmh0bWwgPSBUCiAK
IEJVR1dLOTI5NDEgV0lOIE1BQyA6IGFjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtdXBkYXRl
cy1heHRyZWUuaHRtbCA9IENSQVNIIFBBU1MKIAotLy8gRmxha2lseSBjcmFzaGluZyBhZnRlciBo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMjQ0MDIKLUJVR1dLOTI5NTIgREVCVUcg
OiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWwgPSBDUkFT
SCBQQVNTCi0KIC8vIFRlc3RzIGFkZGVkIGJ5IGJ1ZyA3NjI3MC4gQWNjb3JkaW5nIHRvIGJ1ZyA5
Mjk2OCwgdGhleSBzaG91bGQgYmUgc2tpcHBlZCBpbiBDaHJvbWl1bS4KIEJVR1dLOTI5NjggU0tJ
UCA6IGh0dHAvdGVzdHMvYXBwY2FjaGUvYWJvcnQtY2FjaGUtb25jaGVja2luZy1tYW5pZmVzdC00
MDQuaHRtbCA9IFBBU1MKIEJVR1dLOTI5NjggU0tJUCA6IGh0dHAvdGVzdHMvYXBwY2FjaGUvYWJv
cnQtY2FjaGUtb25jaGVja2luZy1yZXNvdXJjZS00MDQuaHRtbCA9IFBBU1MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156975</attachid>
            <date>2012-08-07 12:33:04 -0700</date>
            <delta_ts>2012-08-07 14:22:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92952-20120807133240.patch</filename>
            <type>text/plain</type>
            <size>14295</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDliZmQ0ZWRhYmIzNTkz
YzE2MjljZDM2YjQxZDBiZDg5Y2E2YjEyMi4uYjhmMTZkYWQ2OWQ5MDJlZTAxMTZlOGEyZGIzNjQ3
MGQ5YjJhNTUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA4LTA3ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTGF5b3V0IFRlc3Qgc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sIGlzIGZsYWt5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjk1MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY291bnQgZm9y
IGV2ZW50cyBiZWluZyBwcm9wYWdhdGVkIGZyb20gdGhlIGJhY2stZW5kIHRvIGZyb250LWVuZCBh
ZnRlcgorICAgICAgICBmcm9udC1lbmQgY29udGV4dCBpcyBzdG9wcGVkIChpLmUuIGRvY3VtZW50
IGlzIGJlaW5nIGRlc3Ryb3llZCkuIFRoZSBJREJSZXF1ZXN0CisgICAgICAgIGxpZmVjeWNsZSB3
YXMgdGlnaHRlbmVkIHVwIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyMzI3
NSB3aXRoIG1vcmUKKyAgICAgICAgYXNzZXJ0cyBidXQgdGhlIHN0b3BwZWQgc3RhdGUgd2Fzbid0
IGFjY291bnRlZCBmb3IuCisgICAgICAgIAorICAgICAgICBUZXN0OiBbY2hyb21pdW1dIHdlYmtp
dF91bml0X3Rlc3RzIC0tZ3Rlc3RfZmlsdGVyPSdJREJSZXF1ZXN0VGVzdC5FdmVudHNBZnRlclN0
b3BwaW5nJworCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJSZXF1ZXN0OjpvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6Om9uU3Vj
Y2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NXaXRoQ29udGlu
dWF0aW9uKToKKwogMjAxMi0wOC0wNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNDc4MC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMTQzZWYwMDJiZTQ1YTVkMjUyM2JjNmE5MzhmOGJi
ZGUwODQ1ZjA3MC4uYzIyMTY3ZmZmMTE4MmZiOTk0Mzc2YjQzOWI1ZWE5OWY4NjllYTMxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOC0wNyAgSm9z
aHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIExheW91dCBUZXN0IHN0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbCBpcyBmbGFreQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5NTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0
IHRvIGV4ZXJjaXNlIFdlYkNvcmU6OklEQlJlcXVlc3QgZXZlbnQgY2FsbGJhY2tzIGFmdGVyCisg
ICAgICAgIHRoZSBzY3JpcHQgY29udGV4dCBoYXMgc3RvcHBlZCBhbmQgZW5zdXJlIG5vIGFzc2Vy
dHMgYXJlIGhpdC4KKworICAgICAgICAqIFdlYktpdC5neXBpOgorICAgICAgICAqIHRlc3RzL0lE
QlJlcXVlc3RUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlRFU1QpOgorCiAyMDEyLTA4LTA2ICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdlYlNvY2tldC5zZW5kKCkgc2hvdWxkIGFjY2VwdCBBcnJheUJ1
ZmZlclZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5jcHAKaW5kZXggYTYxYzlhMDEzMWM2Y2MyN2ZhZDgzM2U2OTdkMTM4YTMzZGEzMjI2Ni4uOTdk
YTZiNzI2YmM3YTcyZDcyZGRhZDAyNWIxMDYzOGUzNjFmMzUxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTE0MSwxMCArMTQxLDEw
IEBAIHZvaWQgSURCUmVxdWVzdDo6bWFya0Vhcmx5RGVhdGgoKQogCiB2b2lkIElEQlJlcXVlc3Q6
OmFib3J0KCkKIHsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFk
eVN0YXRlID09IERPTkUpOwogICAgIEFTU0VSVCghbV9yZXF1ZXN0QWJvcnRlZCk7CiAgICAgaWYg
KG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAg
cmV0dXJuOworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3Rh
dGUgPT0gRE9ORSk7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBET05FKQogICAgICAgICByZXR1
cm47CiAKQEAgLTIxMiwxMSArMjEyLDE0IEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UmVzdWx0Q3Vy
c29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBwcnBDdXJzb3IpCiAKIHZvaWQgSURCUmVxdWVzdDo6
b25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yKQogewotICAgIEFTU0VS
VChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAg
SURCX1RSQUNFKCJJREJSZXF1ZXN0OjpvbkVycm9yKCkiKTsKKyAgICBpZiAobV9jb250ZXh0U3Rv
cHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm47CiAgICAg
aWYgKG1fcmVxdWVzdEFib3J0ZWQpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobV9yZWFk
eVN0YXRlID09IFBFTkRJTkcpOwogICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1l
c3NhZ2UuaXNOdWxsKCkgJiYgIW1fZXJyb3IgJiYgIW1fcmVzdWx0KTsKKwogICAgIG1fZXJyb3JD
b2RlID0gZXJyb3ItPmNvZGUoKTsKICAgICBtX2Vycm9yTWVzc2FnZSA9IGVycm9yLT5tZXNzYWdl
KCk7CiAgICAgbV9lcnJvciA9IERPTUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246
OmdldEVycm9yTmFtZShlcnJvci0+aWRiQ29kZSgpKSk7CkBAIC0yMzIsMTEgKzIzNSwxMyBAQCBz
dGF0aWMgUGFzc1JlZlB0cjxFdmVudD4gY3JlYXRlU3VjY2Vzc0V2ZW50KCkKIHZvaWQgSURCUmVx
dWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gZG9tU3RyaW5nTGlzdCkK
IHsKICAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhET01TdHJpbmdMaXN0KSIp
OwotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0g
RE9ORSk7CisgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQogICAgICAg
ICByZXR1cm47CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKICAgICBBU1NF
UlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFtX2Vycm9yICYm
ICFtX3Jlc3VsdCk7CisKICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGRvbVN0cmluZ0xp
c3QpOwogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CiB9CkBAIC0yNDQs
MTEgKzI0OSwxMyBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPERPTVN0
cmluZ0xpc3Q+IGRvbVN0cmluZ0xpc3QpCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNz
UmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCiB7CiAgICAgSURCX1RS
QUNFKCJJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoSURCQ3Vyc29yKSIpOwotICAgIEFTU0VSVChtX3Jl
YWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgaWYgKG1f
Y29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0
dXJuOwogICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQogICAgICAgICByZXR1cm47CiAgICAgQVNT
RVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKICAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYm
IG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFtX2Vycm9yICYmICFtX3Jlc3VsdCk7CisKICAg
ICBBU1NFUlQobV9jdXJzb3JUeXBlICE9IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkludmFs
aWRDdXJzb3JUeXBlKTsKICAgICBSZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3I7CiAgICAgaWYgKG1f
Y3Vyc29yVHlwZSA9PSBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleUN1cnNvcikK
QEAgLTI2MywxMyArMjcwLDEyIEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKIHZvaWQgSURCUmVxdWVzdDo6
b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5k
KQogewogICAgIElEQl9UUkFDRSgiSURCUmVxdWVzdDo6b25TdWNjZXNzKElEQkRhdGFiYXNlKSIp
OwotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0g
RE9ORSk7CisgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQogICAgICAg
ICByZXR1cm47CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKICAgICBBU1NF
UlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFtX2Vycm9yICYm
ICFtX3Jlc3VsdCk7Ci0gICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkKLSAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPElEQkRhdGFiYXNlPiBp
ZGJEYXRhYmFzZSA9IElEQkRhdGFiYXNlOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBiYWNrZW5kKTsKICAgICBpZGJEYXRhYmFzZS0+cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcygp
OwpAQCAtMjgxLDExICsyODcsMTMgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCiB2b2lkIElEQlJlcXVl
c3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4gaWRiS2V5KQogewogICAgIElEQl9UUkFD
RSgiSURCUmVxdWVzdDo6b25TdWNjZXNzKElEQktleSkiKTsKLSAgICBBU1NFUlQobV9yZWFkeVN0
YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUpOworICAgIGlmIChtX2NvbnRl
eHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybjsK
ICAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCht
X3JlYWR5U3RhdGUgPT0gUEVORElORyk7CiAgICAgQVNTRVJUKCFtX2Vycm9yQ29kZSAmJiBtX2Vy
cm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9lcnJvciAmJiAhbV9yZXN1bHQpOworCiAgICAgaWYg
KGlkYktleSAmJiBpZGJLZXktPmlzVmFsaWQoKSkKICAgICAgICAgbV9yZXN1bHQgPSBJREJBbnk6
OmNyZWF0ZShpZGJLZXkpOwogICAgIGVsc2UKQEAgLTI5NiwxNyArMzA0LDE4IEBAIHZvaWQgSURC
UmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBpZGJLZXkpCiB2b2lkIElEQlJl
cXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZT4gcHJwQmFja2VuZCkKIHsKICAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhJ
REJUcmFuc2FjdGlvbikiKTsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwg
bV9yZWFkeVN0YXRlID09IERPTkUpOwotICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQotICAgICAg
ICByZXR1cm47Ci0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKLSAgICBBU1NF
UlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFtX2Vycm9yICYm
ICFtX3Jlc3VsdCk7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4g
YmFja2VuZCA9IHBycEJhY2tlbmQ7CiAKICAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7Ci0gICAgICAgIGJhY2tlbmQtPmFib3J0KCk7CisgICAg
ICAgIC8vIFNob3VsZCBvbmx5IGJlIG51bGwgaW4gdGVzdHMuCisgICAgICAgIGlmIChiYWNrZW5k
LmdldCgpKQorICAgICAgICAgICAgYmFja2VuZC0+YWJvcnQoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KKyAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKKyAgICAgICAgcmV0dXJuOworICAgIEFT
U0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyk7CisgICAgQVNTRVJUKCFtX2Vycm9yQ29kZSAm
JiBtX2Vycm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9lcnJvciAmJiAhbV9yZXN1bHQpOwogCiAg
ICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBmcm9udGVuZCA9IElEQlRyYW5zYWN0aW9uOjpjcmVh
dGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBiYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6VkVS
U0lPTl9DSEFOR0UsIG1fc291cmNlLT5pZGJEYXRhYmFzZSgpLmdldCgpKTsKICAgICBiYWNrZW5k
LT5zZXRDYWxsYmFja3MoZnJvbnRlbmQuZ2V0KCkpOwpAQCAtMzIyLDExICszMzEsMTMgQEAgdm9p
ZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2U+IHBycEJhY2tlbmQKIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpCiB7CiAgICAg
SURCX1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZhbHVlKSIp
OwotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0g
RE9ORSk7CisgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQogICAgICAg
ICByZXR1cm47CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKICAgICBBU1NF
UlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFtX2Vycm9yICYm
ICFtX3Jlc3VsdCk7CisKICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKHNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSk7CiAgICAgbV9wZW5kaW5nQ3Vyc29yLmNsZWFyKCk7CiAgICAgZW5xdWV1ZUV2
ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKQEAgLTM0Nyw4ICszNTgsMTQgQEAgc3RhdGljIFBh
c3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IGVmZmVjdGl2ZU9iamVjdFN0b3JlKFBhc3NSZWZQdHI8
SURCQW55PiBzb3VyY2UKIAogdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IHBycFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgUGFzc1JlZlB0
cjxJREJLZXk+IHBycFByaW1hcnlLZXksIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgpCiB7Cisg
ICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZhbHVl
LCBJREJLZXksIElEQktleVBhdGgpIik7CisgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX3JlcXVl
c3RBYm9ydGVkKQogICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQ
RU5ESU5HKTsKKyAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVs
bCgpICYmICFtX2Vycm9yICYmICFtX3Jlc3VsdCk7CisKICNpZm5kZWYgTkRFQlVHCiAgICAgQVNT
RVJUKGtleVBhdGggPT0gZWZmZWN0aXZlT2JqZWN0U3RvcmUobV9zb3VyY2UpLT5rZXlQYXRoKCkp
OwogI2VuZGlmCkBAIC0zNzMsMTAgKzM5MCwxMyBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2Vz
cyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwU2VyaWFsaXplZFNjcmlwdAog
dm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkKIHsKICAgICBJREJf
VFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24iKTsKLSAgICBBU1NF
UlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUpOworICAg
IGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAg
ICAgIHJldHVybjsKICAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKICAgICAgICAgcmV0dXJuOwor
ICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyk7CiAgICAgQVNTRVJUKCFtX2Vycm9y
Q29kZSAmJiBtX2Vycm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9lcnJvciAmJiAhbV9yZXN1bHQp
OworCiAgICAgQVNTRVJUKG1fcGVuZGluZ0N1cnNvcik7CiAgICAgc2V0UmVzdWx0Q3Vyc29yKG1f
cGVuZGluZ0N1cnNvci5yZWxlYXNlKCkpOwogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNz
RXZlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBp
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCA4YjQ1M2JkN2MzZWI1
ZDY1OWZlZDU5MTlmOWUzNzk2ZDJiMzFhNWIwLi44NDNiZDM0YmY4MDc5NmUxNjE2MmY1ODEyOWE1
NGU4YTFiODAwMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTExOCw2ICsx
MTgsNyBAQAogICAgICAgICAgICAgJ3Rlc3RzL0lEQkZha2VCYWNraW5nU3RvcmUuaCcsCiAgICAg
ICAgICAgICAndGVzdHMvSURCS2V5UGF0aFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9J
REJMZXZlbERCQ29kaW5nVGVzdC5jcHAnLAorICAgICAgICAgICAgJ3Rlc3RzL0lEQlJlcXVlc3RU
ZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvSW1hZ2VMYXllckNocm9taXVtVGVzdC5jcHAn
LAogICAgICAgICAgICAgJ3Rlc3RzL0tleWJvYXJkVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rl
c3RzL0tVUkxUZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0lEQlJlcXVlc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURC
UmVxdWVzdFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmM2I3NzUyNzM0OGQ0ZWFlZGYxYjM1ZjM1ZGVj
MGFlYTQ5NWY3OGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0lEQlJlcXVlc3RUZXN0LmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiSURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZS5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlQmFja2VuZEltcGwu
aCIKKyNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgiCisKKyNpbmNsdWRlIDxn
dGVzdC9ndGVzdC5oPgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgeworCitURVNUKElEQlJlcXVlc3RUZXN0LCBF
dmVudHNBZnRlclN0b3BwaW5nKQoreworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQgPSAwOworICAgIElEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiA9IDA7CisgICAgUmVmUHRy
PElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55
OjpjcmVhdGVJbnZhbGlkKCksIHRyYW5zYWN0aW9uKTsKKyAgICBFWFBFQ1RfRVEocmVxdWVzdC0+
cmVhZHlTdGF0ZSgpLCAicGVuZGluZyIpOworICAgIHJlcXVlc3QtPnN0b3AoKTsKKworICAgIC8v
IEVuc3VyZSBub25lIG9mIHRoZSBmb2xsb3dpbmcgcmFpc2UgYXNzZXJ0aW9ucyBpbiBzdG9wcGVk
IHN0YXRlOgorICAgIHJlcXVlc3QtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRfRVJSLCAiRGVzY3JpcHRpb24gZ29lcyBoZXJl
LiIpKTsKKyAgICByZXF1ZXN0LT5vblN1Y2Nlc3MoRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCkpOwor
ICAgIHJlcXVlc3QtPm9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZT4oKSk7CisgICAgcmVxdWVzdC0+b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZT4oKSk7CisgICAgcmVxdWVzdC0+b25TdWNjZXNzKElEQktleTo6Y3JlYXRl
SW52YWxpZCgpKTsKKyAgICByZXF1ZXN0LT5vblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U+KCkpOworICAgIHJlcXVlc3QtPm9uU3VjY2VzcyhTZXJpYWxp
emVkU2NyaXB0VmFsdWU6Om51bGxWYWx1ZSgpKTsKKyAgICByZXF1ZXN0LT5vblN1Y2Nlc3MoU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpudWxsVmFsdWUoKSwgSURCS2V5OjpjcmVhdGVJbnZhbGlkKCks
IElEQktleVBhdGgoKSk7CisgICAgcmVxdWVzdC0+b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigp
OworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMmYxMjU3N2NiOTdhODUwNzY5YTJhYTkwOWM5ZmRiZWI1NzFiNWNlZi4uMjRl
YWI0MTkyNDZiZDE3YWJlZWUzZjZiNWRiZGU4ZDI0ODFjNDM2NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDEyLTA4LTA2ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgTGF5b3V0IFRlc3Qgc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFt
ZXRlci5odG1sIGlzIGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05Mjk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbW92ZSBleHBlY3RhdGlvbiBub3cgdGhhdCBmbGFraW5lc3Mgc2hvdWxkIGJl
IHJlc29sdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAxMi0wOC0wNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIFtFRkxdIEVuYWJsZSBsaW5rIHByZWZldGNoCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzZTgxMWM3OWJmYjcxYWEz
NWQ3YmI0NzI0OWJjMjc1YjViZTA0NGUwLi4zM2I0YTFjY2ExNGViYjJhNTJkMmU5ZjBhMjdhZDI4
NWI1OTI1NjRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTM0NjAsOSArMzQ2MCw2IEBAIEJVR1dLOTI5MzggOiBjb21wb3NpdGluZy9s
YXllci1jcmVhdGlvbi9hbmltYXRpb24tb3ZlcmxhcC13aXRoLWNoaWxkcmVuLmh0bWwgPSBUCiAK
IEJVR1dLOTI5NDEgV0lOIE1BQyA6IGFjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtdXBkYXRl
cy1heHRyZWUuaHRtbCA9IENSQVNIIFBBU1MKIAotLy8gRmxha2lseSBjcmFzaGluZyBhZnRlciBo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMjQ0MDIKLUJVR1dLOTI5NTIgREVCVUcg
OiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWwgPSBDUkFT
SCBQQVNTCi0KIC8vIFRlc3RzIGFkZGVkIGJ5IGJ1ZyA3NjI3MC4gQWNjb3JkaW5nIHRvIGJ1ZyA5
Mjk2OCwgdGhleSBzaG91bGQgYmUgc2tpcHBlZCBpbiBDaHJvbWl1bS4KIEJVR1dLOTI5NjggU0tJ
UCA6IGh0dHAvdGVzdHMvYXBwY2FjaGUvYWJvcnQtY2FjaGUtb25jaGVja2luZy1tYW5pZmVzdC00
MDQuaHRtbCA9IFBBU1MKIEJVR1dLOTI5NjggU0tJUCA6IGh0dHAvdGVzdHMvYXBwY2FjaGUvYWJv
cnQtY2FjaGUtb25jaGVja2luZy1yZXNvdXJjZS00MDQuaHRtbCA9IFBBU1MK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157003</attachid>
            <date>2012-08-07 14:22:14 -0700</date>
            <delta_ts>2012-08-07 20:06:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92952-20120807152150.patch</filename>
            <type>text/plain</type>
            <size>14506</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDliZmQ0ZWRhYmIzNTkz
YzE2MjljZDM2YjQxZDBiZDg5Y2E2YjEyMi4uODczNWM0OGI3N2FhZmE5ZTgwMDZjZjY5MjllNjhj
NDQ0MTAzN2Y5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA4LTA3ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTGF5b3V0IFRlc3Qgc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sIGlzIGZsYWt5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjk1MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY291bnQgZm9y
IGV2ZW50cyBiZWluZyBwcm9wYWdhdGVkIGZyb20gdGhlIGJhY2stZW5kIHRvIGZyb250LWVuZCBh
ZnRlcgorICAgICAgICBmcm9udC1lbmQgY29udGV4dCBpcyBzdG9wcGVkIChpLmUuIGRvY3VtZW50
IGlzIGJlaW5nIGRlc3Ryb3llZCkuIFRoZSBJREJSZXF1ZXN0CisgICAgICAgIGxpZmVjeWNsZSB3
YXMgdGlnaHRlbmVkIHVwIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyMzI3
NSB3aXRoIG1vcmUKKyAgICAgICAgYXNzZXJ0cyBidXQgdGhlIHN0b3BwZWQgc3RhdGUgd2Fzbid0
IGFjY291bnRlZCBmb3IuCisKKyAgICAgICAgVGVzdDogW2Nocm9taXVtXSB3ZWJraXRfdW5pdF90
ZXN0cyAtLWd0ZXN0X2ZpbHRlcj0nSURCUmVxdWVzdFRlc3QuRXZlbnRzQWZ0ZXJTdG9wcGluZycK
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCUmVxdWVzdDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6b25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbik6
CisKIDIwMTItMDgtMDYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjQ3ODAuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDE0M2VmMDAyYmU0NWE1ZDI1MjNiYzZhOTM4ZjhiYmRlMDg0NWYw
NzAuLmMyMjE2N2ZmZjExODJmYjk5NDM3NmI0MzliNWVhOTlmODY5ZWEzMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDgtMDcgIEpvc2h1YSBCZWxs
ICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBMYXlvdXQgVGVzdCBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLW9taXQtcGFyYW1ldGVyLmh0bWwgaXMgZmxha3kKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyOTUyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCB0byBleGVy
Y2lzZSBXZWJDb3JlOjpJREJSZXF1ZXN0IGV2ZW50IGNhbGxiYWNrcyBhZnRlcgorICAgICAgICB0
aGUgc2NyaXB0IGNvbnRleHQgaGFzIHN0b3BwZWQgYW5kIGVuc3VyZSBubyBhc3NlcnRzIGFyZSBo
aXQuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiB0ZXN0cy9JREJSZXF1ZXN0
VGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpU
RVNUKToKKwogMjAxMi0wOC0wNiAgWXV0YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWJTb2NrZXQuc2VuZCgpIHNob3VsZCBhY2NlcHQgQXJyYXlCdWZmZXJWaWV3
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmlu
ZGV4IGE2MWM5YTAxMzFjNmNjMjdmYWQ4MzNlNjk3ZDEzOGEzM2RhMzIyNjYuLjEyNzBlZmNjZGQ0
MjI3YzViMmU3YmUyM2RlNjUzMDViNTA2MTg3M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC0xNDEsMTAgKzE0MSwxMCBAQCB2b2lk
IElEQlJlcXVlc3Q6Om1hcmtFYXJseURlYXRoKCkKIAogdm9pZCBJREJSZXF1ZXN0OjphYm9ydCgp
CiB7Ci0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9
PSBET05FKTsKICAgICBBU1NFUlQoIW1fcmVxdWVzdEFib3J0ZWQpOwogICAgIGlmIChtX2NvbnRl
eHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgICAgIHJldHVybjsK
KyAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERP
TkUpOwogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gRE9ORSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC0yMTAsMTMgKzIxMCwyNCBAQCB2b2lkIElEQlJlcXVlc3Q6OnNldFJlc3VsdEN1cnNvcihQYXNz
UmVmUHRyPElEQkN1cnNvcj4gcHJwQ3Vyc29yKQogICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVh
dGUoSURCQ3Vyc29yV2l0aFZhbHVlOjpmcm9tQ3Vyc29yKHBycEN1cnNvcikpOwogfQogCi12b2lk
IElEQlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikK
K2Jvb2wgSURCUmVxdWVzdDo6c2hvdWxkRW5xdWV1ZUV2ZW50KCkgY29uc3QKIHsKKyAgICBpZiAo
bV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVh
ZHlTdGF0ZSA9PSBET05FKTsKICAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQ
RU5ESU5HKTsKICAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVs
bCgpICYmICFtX2Vycm9yICYmICFtX3Jlc3VsdCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgSURCUmVxdWVzdDo6b25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9y
KQoreworICAgIElEQl9UUkFDRSgiSURCUmVxdWVzdDo6b25FcnJvcigpIik7CisgICAgaWYgKCFz
aG91bGRFbnF1ZXVlRXZlbnQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9lcnJvckNvZGUg
PSBlcnJvci0+Y29kZSgpOwogICAgIG1fZXJyb3JNZXNzYWdlID0gZXJyb3ItPm1lc3NhZ2UoKTsK
ICAgICBtX2Vycm9yID0gRE9NRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Z2V0
RXJyb3JOYW1lKGVycm9yLT5pZGJDb2RlKCkpKTsKQEAgLTIzMiwxMSArMjQzLDkgQEAgc3RhdGlj
IFBhc3NSZWZQdHI8RXZlbnQ+IGNyZWF0ZVN1Y2Nlc3NFdmVudCgpCiB2b2lkIElEQlJlcXVlc3Q6
Om9uU3VjY2VzcyhQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IGRvbVN0cmluZ0xpc3QpCiB7CiAg
ICAgSURCX1RSQUNFKCJJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoRE9NU3RyaW5nTGlzdCkiKTsKLSAg
ICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUp
OwotICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQorICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcp
OwotICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYg
IW1fZXJyb3IgJiYgIW1fcmVzdWx0KTsKKwogICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUo
ZG9tU3RyaW5nTGlzdCk7CiAgICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsK
IH0KQEAgLTI0NCwxMSArMjUzLDkgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxET01TdHJpbmdMaXN0PiBkb21TdHJpbmdMaXN0KQogdm9pZCBJREJSZXF1ZXN0OjpvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogewog
ICAgIElEQl9UUkFDRSgiSURCUmVxdWVzdDo6b25TdWNjZXNzKElEQkN1cnNvcikiKTsKLSAgICBB
U1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUpOwot
ICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQorICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkp
CiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpOwot
ICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1f
ZXJyb3IgJiYgIW1fcmVzdWx0KTsKKwogICAgIEFTU0VSVChtX2N1cnNvclR5cGUgIT0gSURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZTo6SW52YWxpZEN1cnNvclR5cGUpOwogICAgIFJlZlB0cjxJREJD
dXJzb3I+IGN1cnNvcjsKICAgICBpZiAobV9jdXJzb3JUeXBlID09IElEQkN1cnNvckJhY2tlbmRJ
bnRlcmZhY2U6OkluZGV4S2V5Q3Vyc29yKQpAQCAtMjYzLDEyICsyNzAsNyBAQCB2b2lkIElEQlJl
cXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJh
Y2tlbmQpCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKIHsKICAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6
Om9uU3VjY2VzcyhJREJEYXRhYmFzZSkiKTsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBF
TkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUpOwotICAgIGlmIChtX3JlcXVlc3RBYm9ydGVk
KQotICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsK
LSAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFt
X2Vycm9yICYmICFtX3Jlc3VsdCk7Ci0gICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlID0gSURC
RGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGJhY2tlbmQpOwpAQCAt
MjgxLDExICsyODMsOSBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKIHZvaWQgSURCUmVxdWVzdDo6b25T
dWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBpZGJLZXkpCiB7CiAgICAgSURCX1RSQUNFKCJJREJS
ZXF1ZXN0OjpvblN1Y2Nlc3MoSURCS2V5KSIpOwotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0g
UEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7Ci0gICAgaWYgKG1fcmVxdWVzdEFib3J0
ZWQpCisgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwotICAg
IEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyk7Ci0gICAgQVNTRVJUKCFtX2Vycm9yQ29k
ZSAmJiBtX2Vycm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9lcnJvciAmJiAhbV9yZXN1bHQpOwor
CiAgICAgaWYgKGlkYktleSAmJiBpZGJLZXktPmlzVmFsaWQoKSkKICAgICAgICAgbV9yZXN1bHQg
PSBJREJBbnk6OmNyZWF0ZShpZGJLZXkpOwogICAgIGVsc2UKQEAgLTI5NiwxNyArMjk2LDE2IEBA
IHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBpZGJLZXkpCiB2
b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZT4gcHJwQmFja2VuZCkKIHsKICAgICBJREJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9u
U3VjY2VzcyhJREJUcmFuc2FjdGlvbikiKTsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBF
TkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUpOwotICAgIGlmIChtX3JlcXVlc3RBYm9ydGVk
KQotICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsK
LSAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFt
X2Vycm9yICYmICFtX3Jlc3VsdCk7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gYmFja2VuZCA9IHBycEJhY2tlbmQ7CiAKICAgICBpZiAobV9jb250ZXh0U3RvcHBl
ZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7Ci0gICAgICAgIGJhY2tlbmQtPmFib3J0
KCk7CisgICAgICAgIC8vIFNob3VsZCBvbmx5IGJlIG51bGwgaW4gdGVzdHMuCisgICAgICAgIGlm
IChiYWNrZW5kLmdldCgpKQorICAgICAgICAgICAgYmFja2VuZC0+YWJvcnQoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KKyAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQorICAgICAgICBy
ZXR1cm47CiAKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGZyb250ZW5kID0gSURCVHJhbnNh
Y3Rpb246OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGJhY2tlbmQsIElEQlRyYW5z
YWN0aW9uOjpWRVJTSU9OX0NIQU5HRSwgbV9zb3VyY2UtPmlkYkRhdGFiYXNlKCkuZ2V0KCkpOwog
ICAgIGJhY2tlbmQtPnNldENhbGxiYWNrcyhmcm9udGVuZC5nZXQoKSk7CkBAIC0zMjIsMTEgKzMy
MSw5IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPiBwcnBCYWNrZW5kCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2Vz
cyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFNjcmlwdFZhbHVl
KQogewogICAgIElEQl9UUkFDRSgiSURCUmVxdWVzdDo6b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSkiKTsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFk
eVN0YXRlID09IERPTkUpOwotICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQorICAgIGlmICghc2hv
dWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQobV9yZWFkeVN0
YXRlID09IFBFTkRJTkcpOwotICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3Nh
Z2UuaXNOdWxsKCkgJiYgIW1fZXJyb3IgJiYgIW1fcmVzdWx0KTsKKwogICAgIG1fcmVzdWx0ID0g
SURCQW55OjpjcmVhdGUoc2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKICAgICBtX3BlbmRpbmdDdXJz
b3IuY2xlYXIoKTsKICAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwpAQCAt
MzQ3LDggKzM0NCwxMCBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gZWZmZWN0
aXZlT2JqZWN0U3RvcmUoUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZQogCiB2b2lkIElEQlJlcXVl
c3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwU2VyaWFs
aXplZFNjcmlwdFZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3Qg
SURCS2V5UGF0aCYga2V5UGF0aCkKIHsKLSAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKKyAgICBJ
REJfVFJBQ0UoIklEQlJlcXVlc3Q6Om9uU3VjY2VzcyhTZXJpYWxpemVkU2NyaXB0VmFsdWUsIElE
QktleSwgSURCS2V5UGF0aCkiKTsKKyAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQogICAg
ICAgICByZXR1cm47CisKICNpZm5kZWYgTkRFQlVHCiAgICAgQVNTRVJUKGtleVBhdGggPT0gZWZm
ZWN0aXZlT2JqZWN0U3RvcmUobV9zb3VyY2UpLT5rZXlQYXRoKCkpOwogI2VuZGlmCkBAIC0zNzMs
MTAgKzM3Miw5IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBwcnBTZXJpYWxpemVkU2NyaXB0CiB2b2lkIElEQlJlcXVlc3Q6Om9u
U3VjY2Vzc1dpdGhDb250aW51YXRpb24oKQogewogICAgIElEQl9UUkFDRSgiSURCUmVxdWVzdDo6
b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbiIpOwotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0g
UEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7Ci0gICAgaWYgKG1fcmVxdWVzdEFib3J0
ZWQpCisgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwotICAg
IEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1fZXJy
b3IgJiYgIW1fcmVzdWx0KTsKKwogICAgIEFTU0VSVChtX3BlbmRpbmdDdXJzb3IpOwogICAgIHNl
dFJlc3VsdEN1cnNvcihtX3BlbmRpbmdDdXJzb3IucmVsZWFzZSgpKTsKICAgICBlbnF1ZXVlRXZl
bnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDYxMmQzNzA4OGJkMDhjYjA4MDNjZDZlZjVmMzk2Yzc2
MWE3N2YwYjIuLmIwNWZlOThhZWM4Y2U0ZDM1NDg5OTkwOTFmZWM5NDRiZmEyZmI3M2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTExNCw2
ICsxMTQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPERPTUVycm9yPiBtX2Vycm9yOwogCiBw
cml2YXRlOgorICAgIGJvb2wgc2hvdWxkRW5xdWV1ZUV2ZW50KCkgY29uc3Q7CisKICAgICAvLyBF
dmVudFRhcmdldAogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIHsgcmVmKCk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggOGI0NTNiZDdjM2ViNWQ2NTlmZWQ1OTE5ZjllMzc5
NmQyYjMxYTViMC4uODQzYmQzNGJmODA3OTZlMTYxNjJmNTgxMjlhNTRlOGExYjgwMDA0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC0xMTgsNiArMTE4LDcgQEAKICAgICAgICAg
ICAgICd0ZXN0cy9JREJGYWtlQmFja2luZ1N0b3JlLmgnLAogICAgICAgICAgICAgJ3Rlc3RzL0lE
QktleVBhdGhUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvSURCTGV2ZWxEQkNvZGluZ1Rl
c3QuY3BwJywKKyAgICAgICAgICAgICd0ZXN0cy9JREJSZXF1ZXN0VGVzdC5jcHAnLAogICAgICAg
ICAgICAgJ3Rlc3RzL0ltYWdlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwJywKICAgICAgICAgICAgICd0
ZXN0cy9LZXlib2FyZFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9LVVJMVGVzdC5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJSZXF1ZXN0VGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQlJlcXVlc3RUZXN0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wZjNiNzc1MjczNDhkNGVhZWRmMWIzNWYzNWRlYzBhZWE0OTVmNzhhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJSZXF1ZXN0VGVz
dC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lu
Y2x1ZGUgIklEQlJlcXVlc3QuaCIKKworI2luY2x1ZGUgIklEQkN1cnNvckJhY2tlbmRJbnRlcmZh
Y2UuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgiCisjaW5jbHVkZSAiSURC
VHJhbnNhY3Rpb25Db29yZGluYXRvci5oIgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKwor
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIHsKKworVEVTVChJREJSZXF1ZXN0VGVzdCwgRXZlbnRzQWZ0ZXJTdG9wcGlu
ZykKK3sKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gMDsKKyAgICBJREJU
cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24gPSAwOworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1
ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlSW52YWxpZCgp
LCB0cmFuc2FjdGlvbik7CisgICAgRVhQRUNUX0VRKHJlcXVlc3QtPnJlYWR5U3RhdGUoKSwgInBl
bmRpbmciKTsKKyAgICByZXF1ZXN0LT5zdG9wKCk7CisKKyAgICAvLyBFbnN1cmUgbm9uZSBvZiB0
aGUgZm9sbG93aW5nIHJhaXNlIGFzc2VydGlvbnMgaW4gc3RvcHBlZCBzdGF0ZToKKyAgICByZXF1
ZXN0LT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6SURCX0FCT1JUX0VSUiwgIkRlc2NyaXB0aW9uIGdvZXMgaGVyZS4iKSk7CisgICAgcmVxdWVz
dC0+b25TdWNjZXNzKERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpKTsKKyAgICByZXF1ZXN0LT5vblN1
Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KCkpOworICAgIHJl
cXVlc3QtPm9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+KCkp
OworICAgIHJlcXVlc3QtPm9uU3VjY2VzcyhJREJLZXk6OmNyZWF0ZUludmFsaWQoKSk7CisgICAg
cmVxdWVzdC0+b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlPigpKTsKKyAgICByZXF1ZXN0LT5vblN1Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpu
dWxsVmFsdWUoKSk7CisgICAgcmVxdWVzdC0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6bnVsbFZhbHVlKCksIElEQktleTo6Y3JlYXRlSW52YWxpZCgpLCBJREJLZXlQYXRoKCkpOwor
ICAgIHJlcXVlc3QtPm9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsKK30KKworfSAvLyBuYW1l
c3BhY2UKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJmMTI1
NzdjYjk3YTg1MDc2OWEyYWE5MDljOWZkYmViNTcxYjVjZWYuLjcwYjcxMjgyZmFlMmZhMGJkNGEy
NjA2MWM2ZmZlZTllNTQyMWNmMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wOC0wNyAg
Sm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIExheW91dCBUZXN0
IHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbCBpcyBmbGFr
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5NTIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
ZXhwZWN0YXRpb24gbm93IHRoYXQgZmxha2luZXNzIHNob3VsZCBiZSByZXNvbHZlZC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMDgtMDYg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZM
XSBFbmFibGUgbGluayBwcmVmZXRjaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggM2U4MTFjNzliZmI3MWFhMzVkN2JiNDcyNDliYzI3NWI1
YmUwNDRlMC4uMzNiNGExY2NhMTRlYmIyYTUyZDJlOWYwYTI3YWQyODViNTkyNTY0ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNDYw
LDkgKzM0NjAsNiBAQCBCVUdXSzkyOTM4IDogY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vYW5p
bWF0aW9uLW92ZXJsYXAtd2l0aC1jaGlsZHJlbi5odG1sID0gVAogCiBCVUdXSzkyOTQxIFdJTiBN
QUMgOiBhY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXVwZGF0ZXMtYXh0cmVlLmh0bWwgPSBD
UkFTSCBQQVNTCiAKLS8vIEZsYWtpbHkgY3Jhc2hpbmcgYWZ0ZXIgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTI0NDAyCi1CVUdXSzkyOTUyIERFQlVHIDogc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1vbWl0LXBhcmFtZXRlci5odG1sID0gQ1JBU0ggUEFTUwotCiAvLyBUZXN0
cyBhZGRlZCBieSBidWcgNzYyNzAuIEFjY29yZGluZyB0byBidWcgOTI5NjgsIHRoZXkgc2hvdWxk
IGJlIHNraXBwZWQgaW4gQ2hyb21pdW0uCiBCVUdXSzkyOTY4IFNLSVAgOiBodHRwL3Rlc3RzL2Fw
cGNhY2hlL2Fib3J0LWNhY2hlLW9uY2hlY2tpbmctbWFuaWZlc3QtNDA0Lmh0bWwgPSBQQVNTCiBC
VUdXSzkyOTY4IFNLSVAgOiBodHRwL3Rlc3RzL2FwcGNhY2hlL2Fib3J0LWNhY2hlLW9uY2hlY2tp
bmctcmVzb3VyY2UtNDA0Lmh0bWwgPSBQQVNTCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>