<?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>171406</bug_id>
          
          <creation_ts>2017-04-27 16:48:00 -0700</creation_ts>
          <short_desc>[macOS] Flaky Crash under EventTarget::fireEventListeners on imported/blink/paint/deprecatedpaintlayer/non-self-painting-layer-overrides-visibility.html</short_desc>
          <delta_ts>2019-02-06 09:18:32 -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>DOM</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Lewis">jlewis3</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ggaren</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jlewis3</cc>
    
    <cc>joepeck</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1302396</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-04-27 16:48:00 -0700</bug_when>
    <thetext>Flaky crash test:
imported/blink/paint/deprecatedpaintlayer/non-self-painting-layer-overrides-visibility.html

Build Log
https://build.webkit.org/results/Apple%20Sierra%20Debug%20WK2%20(Tests)/r215892%20(698)/results.html

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;revision=215890&amp;tests=imported%2Fblink%2Fpaint%2Fdeprecatedpaintlayer%2Fnon-self-painting-layer-overrides-visibility.html

Crash Log:
https://build.webkit.org/results/Apple%20Sierra%20Debug%20WK2%20(Tests)/r215892%20(698)/com.apple.WebKit.WebContent.Development-36533-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302397</commentid>
    <comment_count>1</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-04-27 16:48:47 -0700</bug_when>
    <thetext>Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x000000011d29d0e1 0x1196f9000 + 62537953
1   com.apple.WebCore             	0x00000001197b3305 WTF::TypeCastTraits&lt;WebCore::Document const, WebCore::ScriptExecutionContext const, false&gt;::isOfType(WebCore::ScriptExecutionContext const&amp;) + 21 (Document.h:1796)
2   com.apple.WebCore             	0x0000000119ae14d7 bool WTF::is&lt;WebCore::Document, WebCore::ScriptExecutionContext&gt;(WebCore::ScriptExecutionContext*) + 39 (TypeCasts.h:66)
3   com.apple.WebCore             	0x000000011a052b69 WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;, WTF::Vector&lt;WTF::RefPtr&lt;WebCore::RegisteredEventListener&gt;, 1ul, WTF::CrashOnOverflow, 16ul&gt;) + 137 (EventTarget.cpp:237)
4   com.apple.WebCore             	0x000000011a05298e WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;) + 318 (EventTarget.cpp:209)
5   com.apple.WebCore             	0x000000011a052829 WebCore::EventTarget::dispatchEvent(WebCore::Event&amp;) + 233 (EventTarget.cpp:166)
6   com.apple.WebCore             	0x000000011a2a3e2f WebCore::GenericEventQueue::dispatchOneEvent() + 239 (GenericEventQueue.cpp:70)
7   com.apple.WebCore             	0x000000011a2a6b0d WTF::Function&lt;void ()&gt;::CallableWrapper&lt;std::__1::__bind&lt;void (WebCore::GenericEventQueue::*)(), WebCore::GenericEventQueue*&gt; &gt;::call() + 221 (Function.h:89)
8   com.apple.WebCore             	0x000000011977cdfe WTF::Function&lt;void ()&gt;::operator()() const + 94 (Function.h:50)
9   com.apple.WebCore             	0x000000011a2a6399 WebCore::GenericTaskQueue&lt;WebCore::Timer&gt;::enqueueTask(WTF::Function&lt;void ()&gt;&amp;&amp;)::&apos;lambda&apos;()::operator()() const + 137 (GenericTaskQueue.h:99)
10  com.apple.WebCore             	0x000000011a2a6269 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WebCore::GenericTaskQueue&lt;WebCore::Timer&gt;::enqueueTask(WTF::Function&lt;void ()&gt;&amp;&amp;)::&apos;lambda&apos;()&gt;::call() + 25 (Function.h:89)
11  com.apple.WebCore             	0x000000011977cdfe WTF::Function&lt;void ()&gt;::operator()() const + 94 (Function.h:50)
12  com.apple.WebCore             	0x000000011a2a7487 WebCore::TaskDispatcher&lt;WebCore::Timer&gt;::dispatchOneTask() + 119 (GenericTaskQueue.cpp:81)
13  com.apple.WebCore             	0x000000011a2a721f WebCore::TaskDispatcher&lt;WebCore::Timer&gt;::sharedTimerFired() + 255 (GenericTaskQueue.cpp:67)
14  com.apple.WebCore             	0x000000011a2a98da void std::__1::__invoke_void_return_wrapper&lt;void&gt;::__call&lt;void (*&amp;)()&gt;(void (*&amp;&amp;&amp;)()) + 42 (__functional_base:469)
15  com.apple.WebCore             	0x000000011a2a9889 std::__1::__function::__func&lt;void (*)(), std::__1::allocator&lt;void (*)()&gt;, void ()&gt;::operator()() + 41 (functional:1437)
16  com.apple.WebCore             	0x000000011975b3ea std::__1::function&lt;void ()&gt;::operator()() const + 26 (functional:1817)
17  com.apple.WebCore             	0x000000011975b309 WebCore::Timer::fired() + 25 (Timer.h:135)
18  com.apple.WebCore             	0x000000011c23c930 WebCore::ThreadTimers::sharedTimerFiredInternal() + 480 (ThreadTimers.cpp:121)
19  com.apple.WebCore             	0x000000011c23db71 WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const + 33 (ThreadTimers.cpp:70)
20  com.apple.WebCore             	0x000000011c23db3d void std::__1::__invoke_void_return_wrapper&lt;void&gt;::__call&lt;WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0&amp;&gt;(WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0&amp;&amp;&amp;) + 45 (__functional_base:469)
21  com.apple.WebCore             	0x000000011c23dae9 std::__1::__function::__func&lt;WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, std::__1::allocator&lt;WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0&gt;, void ()&gt;::operator()() + 41 (functional:1437)
22  com.apple.WebCore             	0x000000011975b3ea std::__1::function&lt;void ()&gt;::operator()() const + 26 (functional:1817)
23  com.apple.WebCore             	0x000000011b4ee2a8 WebCore::MainThreadSharedTimer::fired() + 104 (MainThreadSharedTimer.cpp:53)
24  com.apple.WebCore             	0x000000011b4ee639 WebCore::timerFired(__CFRunLoopTimer*, void*) + 41 (MainThreadSharedTimerCF.cpp:74)
25  com.apple.CoreFoundation      	0x00007fffaf2a0de4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
26  com.apple.CoreFoundation      	0x00007fffaf2a0a73 __CFRunLoopDoTimer + 1075
27  com.apple.CoreFoundation      	0x00007fffaf2a05ca __CFRunLoopDoTimers + 298
28  com.apple.CoreFoundation      	0x00007fffaf297fa1 __CFRunLoopRun + 2081
29  com.apple.CoreFoundation      	0x00007fffaf297524 CFRunLoopRunSpecific + 420
30  com.apple.HIToolbox           	0x00007fffae7f7ebc RunCurrentEventLoopInMode + 240
31  com.apple.HIToolbox           	0x00007fffae7f7cf1 ReceiveNextEventCommon + 432
32  com.apple.HIToolbox           	0x00007fffae7f7b26 _BlockUntilNextEventMatchingListInModeWithFilter + 71
33  com.apple.AppKit              	0x00007fffacd92e24 _DPSNextEvent + 1120
34  com.apple.AppKit              	0x00007fffad50e85e -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2796
35  com.apple.AppKit              	0x00007fffacd877ab -[NSApplication run] + 926
36  com.apple.AppKit              	0x00007fffacd521de NSApplicationMain + 1237
37  libxpc.dylib                  	0x00007fffc52118c7 _xpc_objc_main + 775
38  libxpc.dylib                  	0x00007fffc52102e4 xpc_main + 494
39  com.apple.WebKit.WebContent   	0x000000010c2e8105 main + 1189 (XPCServiceMain.mm:148)
40  libdyld.dylib                 	0x00007fffc4fb8235 start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302400</commentid>
    <comment_count>2</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-04-27 16:49:43 -0700</bug_when>
    <thetext>This does not appear to be a recent regression and may already be tracked with:
rdar://problem/30945281</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302422</commentid>
    <comment_count>3</comment_count>
      <attachid>308485</attachid>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-04-27 17:39:02 -0700</bug_when>
    <thetext>Created attachment 308485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302432</commentid>
    <comment_count>4</comment_count>
      <attachid>308485</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-27 18:23:48 -0700</bug_when>
    <thetext>Comment on attachment 308485
Patch

Clearing flags on attachment: 308485

Committed r215912: &lt;http://trac.webkit.org/changeset/215912&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302433</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-27 18:23:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302434</commentid>
    <comment_count>6</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-04-27 18:25:49 -0700</bug_when>
    <thetext>Reopening because the patch only marked the test as flaky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302508</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-27 23:57:11 -0700</bug_when>
    <thetext>At this point the crash log is not available via the links. It would be great if crash logs were attached to the bugzilla bug when filing bugs about a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302511</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-28 00:09:11 -0700</bug_when>
    <thetext>This test just loads a page with an  &lt;object&gt;. I think its possible that this test itself is not the cause of the crash, but another test (perhaps the one or two preceeding it) that did not clean up properly. So skipping this test if the actual cause is another test does little good.

The crash is happening due to a timer from a GenericEventQueue firing. GenericTaskQueues are primarily used by Media code, and there aren&apos;t many. Perhaps we can just audit uses of GenericTaskQueues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302514</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-28 00:30:26 -0700</bug_when>
    <thetext>It doesn&apos;t look like an assert or a nullptr crash. From the snipper of a crash log provided in the earlier comment this looks like it could be a dangling pointer.

Since the number of GenericEventQueues is small I looked around.

HTMLMediaElement closes all its GenericTaskQueues in HTMLMediaElement::contextDestroyed() but doesn&apos;t close its GenericEventQueue. That seems rather suspect to me:

  (1) GenericTaskQueue was in the backtrace

  (2) The ScriptExecutionContext is apparently being destroyed here, so if
      a timer eventually fires for this queue it would be bad. Hence the crash
      apparently attempting to check the type of a ScriptExecutionContext.

Jer / Eric, what do you think? Should HTMLMediaElement be closing the m_asyncEventQueue here? Would it have been guaranteed to have been closed / cleared earlier?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302571</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-04-28 08:20:45 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #9)
&gt; It doesn&apos;t look like an assert or a nullptr crash. From the snipper of a
&gt; crash log provided in the earlier comment this looks like it could be a
&gt; dangling pointer.
&gt; 
&gt; Since the number of GenericEventQueues is small I looked around.
&gt; 
&gt; HTMLMediaElement closes all its GenericTaskQueues in
&gt; HTMLMediaElement::contextDestroyed() but doesn&apos;t close its
&gt; GenericEventQueue. That seems rather suspect to me:
&gt; 
&gt;   (1) GenericTaskQueue was in the backtrace
&gt; 
&gt;   (2) The ScriptExecutionContext is apparently being destroyed here, so if
&gt;       a timer eventually fires for this queue it would be bad. Hence the
&gt; crash
&gt;       apparently attempting to check the type of a ScriptExecutionContext.
&gt; 
&gt; Jer / Eric, what do you think? Should HTMLMediaElement be closing the
&gt; m_asyncEventQueue here? Would it have been guaranteed to have been closed /
&gt; cleared earlier?

The m_asyncEventQueue is closed in HTMLMediaElement::stop, which should be called before contextDestroyed, but it does seem wrong that all of the other queues are closed in HTMLMediaElement::contextDestroyed. 

m_promiseTaskQueue is closed in both HTMLMediaElement::contextDestroyed and HTMLMediaElement::stop, and m_asyncEventQueue is closed in HTMLMediaElement::stop and in the destructor. I don&apos;t know if it will fix this crash, but it may be useful to put all of the queue/timer cleanup one place and add asserts in the places we assume everything has been cleaned up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302576</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-28 08:30:04 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #10)
&gt; 
&gt; The m_asyncEventQueue is closed in HTMLMediaElement::stop, which should be
&gt; called before contextDestroyed, but it does seem wrong that all of the other
&gt; queues are closed in HTMLMediaElement::contextDestroyed. 
&gt; 
&gt; m_promiseTaskQueue is closed in both HTMLMediaElement::contextDestroyed and
&gt; HTMLMediaElement::stop, and m_asyncEventQueue is closed in
&gt; HTMLMediaElement::stop and in the destructor. I don&apos;t know if it will fix
&gt; this crash, but it may be useful to put all of the queue/timer cleanup one
&gt; place and add asserts in the places we assume everything has been cleaned up.

We could probably fix this narrow issue by closing the queue in contextDestroyed(), but perhaps the more interesting issue is why the ScriptExecutionContext/Document was destroyed without first calling stopActiveDOMObjects(), or why the HTMLMediaElement wasn&apos;t considered to be an ActiveDOMObject at destruction time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303675</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 09:13:08 -0700</bug_when>
    <thetext>Assuming the EventTarget is a Node (as it is likely the case since most GenericTaskQueue queues are on HTMLMediaElement), then scriptExecution() context is supposed to return the Node&apos;s document(). A node&apos;s document() is always valid &amp; alive as long as the Node is itself alive.

Therefore, I suspect that either:
1. The EventTarget is not a Node
2. The HTMLMediaElement is itself dead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303681</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 09:27:33 -0700</bug_when>
    <thetext>Based on the trace, it is a GenericEventQueue so it could be:
- MediaKeySession::m_eventQueue
- WebKitMediaKeySession::m_asyncEventQueue
- MediaSource::m_asyncEventQueue
- SourceBuffer::m_asyncEventQueue
- SourceBufferList::m_asyncEventQueue
- AudioContext::m_eventQueue
- HTMLMediaElement::m_asyncEventQueue
- TrackListBase::m_asyncEventQueue

As Joe pointed out, the crash is unlikely to be caused by imported/blink/paint/deprecatedpaintlayer/non-self-painting-layer-overrides-visibility.html but rather a test that ran shortly before it. Given that this is the first test in LayoutTests/imported/blink/paint/ folder, I think it is likely caused by a test inside LayoutTests/imported/blink/media/ folder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303684</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 09:44:48 -0700</bug_when>
    <thetext>SourceBufferList is potentially suspicious as it:
- Has a GenericEventQueue data member
- overrides EventTarget::scriptExecutionContext() to return its m_scriptExecutionContext member which is an unprotected raw pointer.
- I see no code clearing m_scriptExecutionContext when the document gets destroyed

We probably want SourceBufferList to subclass ContextDestructionObserver instead.

Similar issue for TrackListBase.

TextTrack::m_scriptExecution context also looks potentially unsafe, although TextTrack does not have a GenericEventQueue (it could still be the Event::target() of an Event that is inside the GenericEventQueue).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303696</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 10:19:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/30945281&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303706</commentid>
    <comment_count>16</comment_count>
      <attachid>308832</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 10:40:15 -0700</bug_when>
    <thetext>Created attachment 308832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303752</commentid>
    <comment_count>17</comment_count>
      <attachid>308832</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 12:04:03 -0700</bug_when>
    <thetext>Comment on attachment 308832
Patch

Clearing flags on attachment: 308832

Committed r216084: &lt;http://trac.webkit.org/changeset/216084&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303753</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 12:04:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503190</commentid>
    <comment_count>19</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:18:32 -0800</bug_when>
    <thetext>Mass move bugs into the DOM component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308485</attachid>
            <date>2017-04-27 17:39:02 -0700</date>
            <delta_ts>2017-04-27 18:25:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171406-20170427173901.patch</filename>
            <type>text/plain</type>
            <size>1419</size>
            <attacher name="Matt Lewis">jlewis3</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTA4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTI0OGMyZmJkZTU3MTU0MDQ1MDRh
YjRkODljMzRiNTY1NGFkNDc5MS4uOWIzY2QyM2Q3NWZkZTk1ODVjZjIzNzI1NjcwZTFhOTM2YzNk
Yjc4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTA0LTI3ICBNYXR0IExld2lzICA8amxl
d2lzM0BhcHBsZS5jb20+CisKKyAgICAgICAgTWFyayBpbXBvcnRlZC9ibGluay9wYWludC9kZXBy
ZWNhdGVkcGFpbnRsYXllci9ub24tc2VsZi1wYWludGluZy1sYXllci1vdmVycmlkZXMtdmlzaWJp
bGl0eS5odG1sIGFzIGEgZmxha3kgY3Jhc2guCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0MDYKKworICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2Fy
ZGVuaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MTctMDQtMjcgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIG1pc3NpbmcgZXhwZWN0ZWQgZmlsZSBmb3IgZmFzdC9pbmxpbmUvc2ltcGxlLWxpbmUtbGF5
b3V0LTE2Yml0LWNvbnRlbnQuaHRtbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggY2YyYzY5NDAwZTRhMGYzYjA1YmYwYTA3NTBkNDI4ZTAyOTllNTYzMS4u
NTY1Nzk3ZDc1YWYxZDQxN2Q1NzkxODMzMzU1ZmRjYjNmZmIzZjkyOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1OTEsMyArMTU5MSw1IEBAIHdlYmtp
dC5vcmcvYi8xNzA4MzEgbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1ydGwuaHRtbCBb
IFBhc3MgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMTY1NTUzIG1lZGlhL21lZGlhLWNvbnRyb2xz
LXRpbWVsaW5lLXVwZGF0ZXMtd2hlbi1ob3ZlcmVkLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3
ZWJraXQub3JnL2IvMTcxMjcyIFsgWW9zZW1pdGUgRWxDYXBpdGFuIFNpZXJyYSBdIGZhc3QvdGV4
dC9rYWl0aGkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQorCit3ZWJraXQub3JnL2IvMTcxNDA2
IGltcG9ydGVkL2JsaW5rL3BhaW50L2RlcHJlY2F0ZWRwYWludGxheWVyL25vbi1zZWxmLXBhaW50
aW5nLWxheWVyLW92ZXJyaWRlcy12aXNpYmlsaXR5Lmh0bWwgWyBQYXNzIENyYXNoIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308832</attachid>
            <date>2017-05-02 10:40:15 -0700</date>
            <delta_ts>2017-05-02 12:04:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171406-20170502104014.patch</filename>
            <type>text/plain</type>
            <size>10493</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODgxNWJhN2Q1Y2VmYjFj
M2FmY2UzNGU5ZTMxYTM3OWFiOTQ0YjQ1NS4uNTIwN2ZhNjRhYjc1ZjlkMTFjMmJiMTJlNjIwOWJj
M2U4ZjgwZmI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA1LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBGbGFreSBDcmFz
aCB1bmRlciBFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzIG9uIGltcG9ydGVkL2JsaW5r
L3BhaW50L2RlcHJlY2F0ZWRwYWludGxheWVyL25vbi1zZWxmLXBhaW50aW5nLWxheWVyLW92ZXJy
aWRlcy12aXNpYmlsaXR5Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MTQwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzA5NDUyODE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSB3YXMgdW5m
b3J0dW5hdGVseSB1bmFibGUgdG8gcmVwcm9kdWNlIHRoZSBmbGFreSBjcmFzaCBsb2NhbGx5LiBI
b3dldmVyLCB0aGUgY3Jhc2ggdHJhY2UKKyAgICAgICAgaW5kaWNhdGVzIHRoYXQgb25lIG9mIHRo
ZSBFdmVudFRhcmdldDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIG92ZXJyaWRlcyBpcyByZXR1
cm5pbmcgYQorICAgICAgICBzdGFsZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0IHBvaW50ZXIuIFNp
bmNlIGEgR2VuZXJpY0V2ZW50UXVldWUgaXMgaW52b2x2ZWQsIHRoZSBFdmVudFRhcmdldAorICAg
ICAgICBpcyBsaWtlbHkgYSBtZWRpYS1yZWxhdGVkIG9iamVjdC4gSSB0aGVyZWZvcmUgYXVkaXRl
ZCBtZWRpYSBjbGFzc2VzIHRoYXQgb3ZlcnJpZGUKKyAgICAgICAgRXZlbnRUYXJnZXQ6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBhbmQgZm91bmQgc2V2ZXJhbCB0aGF0IGxvb2sgdW5zYWZlLiBJ
IGFtIGZpeGluZyB0aG9zZQorICAgICAgICBieSBoYXZpbmcgdGhlbSBvdmVycmlkZSBDb250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlciwgaW5zdGVhZCBvZiBoYXZpbmcgYSByYXcKKyAgICAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCBwb2ludGVyIG1lbWJlci4gVGhpcyBtYWtlcyBzdXJlIHRoZSBw
b2ludGVyIGdldHMgbnVsbGVkIG91dCB3aGVuZXZlcgorICAgICAgICB0aGUgc2NyaXB0ZXhlY3V0
aW9uY29udGV4dCBnZXRzIGRlc3Ryb3llZCwgZW5zdXJpbmcgdGhhdCB0aG9zZSBjbGFzc2VzJ3MK
KyAgICAgICAgRXZlbnRUYXJnZXQ6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBvdmVycmlkZXMg
Y2FuIG5ldmVyIHJldHVybiBhIHN0YWxlIHBvaW50ZXIuCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyTGlzdDo6U291cmNlQnVmZmVyTGlzdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXJMaXN0Lmg6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpUZXh0VHJhY2spOgorICAgICAgICAq
IGh0bWwvdHJhY2svVGV4dFRyYWNrLmg6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0xpc3RC
YXNlLmNwcDoKKyAgICAgICAgKFRyYWNrTGlzdEJhc2U6OlRyYWNrTGlzdEJhc2UpOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oOgorCiAyMDE3LTA1LTAyICBCZW4gS2VsbHkg
PGJlbkB3YW5kZXJ2aWV3LmNvbT4KIAogICAgICAgICBTZXQgUmVzcG9uc2UuYmxvYigpIHR5cGUg
Y29ycmVjdGx5IHdoZW4gYm9keSBpcyBhIFJlYWRhYmxlU3RyZWFtLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAKaW5k
ZXggMDA1OTczNzA5NDNjYTMxOGQ4YTJlNWUzZjYwMGNkNWUwOWQzYzQzNS4uNGU4ZjUyMGQxNDAy
ZDFhNDcyY2QxYWE3YzlhMDBiMjhjOTM2NTA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCkBAIC00MCw3ICs0
MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNvdXJjZUJ1ZmZlckxpc3Q6OlNvdXJjZUJ1
ZmZlckxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKLSAgICA6IG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIoY29udGV4dCkKICAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKCp0aGlzKQogewogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3Qu
aAppbmRleCBmYzQ3ZjA1ZmU3Yzk5Nzk1MjY1MDdiMzRhZjUxMzhlNzVjNTY2OTk4Li4xYzhhNGMw
MDA0ZmE4ZWYwOGYyNGZiMjYxN2U4MTlkNGQ3YjYwZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaApAQCAtMzIsNiAr
MzIsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAorI2luY2x1ZGUgIkNvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRl
ICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgpAQCAt
NDIsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNvdXJjZUJ1ZmZlcjsK
IAotY2xhc3MgU291cmNlQnVmZmVyTGlzdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJj
ZUJ1ZmZlckxpc3Q+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CitjbGFzcyBT
b3VyY2VCdWZmZXJMaXN0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U291cmNlQnVmZmVyTGlz
dD4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U291cmNlQnVmZmVyTGlz
dD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgewpAQCAtNjMs
OCArNjQsOCBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZmZXI+Pjo6aXRl
cmF0b3IgZW5kKCkgeyByZXR1cm4gbV9saXN0LmVuZCgpOyB9CiAKICAgICAvLyBFdmVudFRhcmdl
dCBpbnRlcmZhY2UKLSAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFj
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNvdXJjZUJ1ZmZlckxpc3RFdmVudFRhcmdldElu
dGVyZmFjZVR5cGU7IH0KLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0OyB9CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBTb3VyY2VCdWZmZXJMaXN0RXZlbnRUYXJnZXRJbnRlcmZhY2VU
eXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8U291cmNlQnVm
ZmVyTGlzdD46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlckxpc3Q+Ojpk
ZXJlZjsKQEAgLTc3LDcgKzc4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0
KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJy
aWRlIHsgZGVyZWYoKTsgfQogCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogICAgIEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVl
OwogCiAgICAgVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZmZXI+PiBtX2xpc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggMDQ0NWVkY2RiMjk4ZmNkNDgzZDcwMmI4
NDRlMTk2Mjg1MzI5MWY4ZS4uNGQ0Yzg0YTJkMTE1NzdiOGU2NjM0MzQ0YjU2MzZjYTY3ZTMxZjdm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApAQCAtOTUsNyArOTUs
NyBAQCBUZXh0VHJhY2sqIFRleHRUcmFjazo6Y2FwdGlvbk1lbnVBdXRvbWF0aWNJdGVtKCkKIAog
VGV4dFRyYWNrOjpUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4
dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0IEF0b21pY1N0cmluZyYga2luZCwgY29uc3QgQXRv
bWljU3RyaW5nJiBpZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgY29uc3QgQXRvbWljU3Ry
aW5nJiBsYW5ndWFnZSwgVGV4dFRyYWNrVHlwZSB0eXBlKQogICAgIDogVHJhY2tCYXNlKFRyYWNr
QmFzZTo6VGV4dFRyYWNrLCBpZCwgbGFiZWwsIGxhbmd1YWdlKQotICAgICwgbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KGNvbnRleHQpCisgICAgLCBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihj
b250ZXh0KQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV90cmFja1R5cGUodHlwZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IDhiYjQ3YjI3NmY2ZTU1
YjkxNjY2N2Q3ZmNlMTU3NDQ1NzhmM2JlOGUuLmI0MTAyNmY5NTA3NTVmODIwOWI5M2ExZWMzODQ5
N2NmM2M1OGFkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAtMjgs
NiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCisjaW5jbHVkZSAiQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tDdWUuaCIKICNpbmNs
dWRlICJUcmFja0Jhc2UuaCIKIApAQCAtNTAsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSA9IDA7
CiB9OwogCi1jbGFzcyBUZXh0VHJhY2sgOiBwdWJsaWMgVHJhY2tCYXNlLCBwdWJsaWMgRXZlbnRU
YXJnZXRXaXRoSW5saW5lRGF0YSB7CitjbGFzcyBUZXh0VHJhY2sgOiBwdWJsaWMgVHJhY2tCYXNl
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFRleHRUcmFjaz4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50
LCBjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0
IEF0b21pY1N0cmluZyYgbGFiZWwsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiAgICAg
ewpAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dFRyYWNrKCk7CiAK
ICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIFRleHRUcmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQotICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7IH0KKyAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQog
CiAgICAgc3RhdGljIFRleHRUcmFjayogY2FwdGlvbk1lbnVPZmZJdGVtKCk7CiAgICAgc3RhdGlj
IFRleHRUcmFjayogY2FwdGlvbk1lbnVBdXRvbWF0aWNJdGVtKCk7CkBAIC0xNTksNyArMTYwLDYg
QEAgcHJpdmF0ZToKIAogICAgIFRleHRUcmFja0N1ZUxpc3QmIGVuc3VyZVRleHRUcmFja0N1ZUxp
c3QoKTsKIAotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKICAgICBNb2RlIG1fbW9kZSB7IE1vZGU6OkRpc2FibGVkIH07CiAgICAgS2luZCBtX2tp
bmQgeyBLaW5kOjpTdWJ0aXRsZXMgfTsKICAgICBUZXh0VHJhY2tDbGllbnQqIG1fY2xpZW50Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5jcHAKaW5kZXggNTY2ZjY4
MDc5ZmZmMmI1YjBkZjc3YjVhY2Q3ODc4MDdiNDk0ZTI3Yi4uMmU5Njk0MjE1MmFjOGQ4ZGUxZmQ1
MGI1ZGI2YTJmZDkzYTdhNjAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UcmFja0xpc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNr
TGlzdEJhc2UuY3BwCkBAIC0zNywxMSArMzcsMTEgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBUcmFja0xpc3RCYXNlOjpUcmFja0xpc3RCYXNlKEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1l
bnQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBtX2NvbnRleHQoY29u
dGV4dCkKKyAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGNvbnRleHQpCiAgICAgLCBt
X2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKCp0aGlzKQogewotICAg
IEFTU0VSVChjb250ZXh0LT5pc0RvY3VtZW50KCkpOworICAgIEFTU0VSVChpczxEb2N1bWVudD4o
Y29udGV4dCkpOwogfQogCiBUcmFja0xpc3RCYXNlOjp+VHJhY2tMaXN0QmFzZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oCmluZGV4IGExOWEyZDEzNTNiNGI0ZmU1
MjY2MjIyNTU3MWI2NzBiYzA1NzI5ZTcuLjBjNTJiMDFiZGEzY2UxZjVkMzdhMjEzZTIwYTYwYTky
YzVjYzJlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKKyNpbmNsdWRlICJD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgi
CkBAIC00MCw3ICs0MSw3IEBAIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiBjbGFzcyBFbGVtZW50
OwogY2xhc3MgVHJhY2tCYXNlOwogCi1jbGFzcyBUcmFja0xpc3RCYXNlIDogcHVibGljIFJlZkNv
dW50ZWQ8VHJhY2tMaXN0QmFzZT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsK
K2NsYXNzIFRyYWNrTGlzdEJhc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxUcmFja0xpc3RCYXNlPiwg
cHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VHJhY2tMaXN0QmFzZSgpOwogCkBA
IC01Miw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRh
cmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlID0gMDsKICAgICB1c2luZyBSZWZDb3VudGVk
PFRyYWNrTGlzdEJhc2U+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxUcmFja0xpc3RCYXNl
Pjo6ZGVyZWY7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29udGV4dDsgfQorICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9
CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJFbGVtZW50KCk7CiAgICAgRWxlbWVudCogZWxlbWVu
dCgpIGNvbnN0OwpAQCAtNzksNyArODAsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVmRXZlbnRU
YXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmlu
YWwgeyBkZXJlZigpOyB9CiAKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7
CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbV9lbGVtZW50OwogCiAgICAgR2VuZXJpY0V2ZW50UXVl
dWUgbV9hc3luY0V2ZW50UXVldWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmJhYmUxM2FmMWYxYTkwZWU0MGQ0MTVlNWZm
YWIzMWYyNWQ3NTcwZC4uYjg4OGNmNmVlNjk1ZmU1Y2EzNzdkMTFmNDUzMmVkNjM5Nzg0ODYwNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA1LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBGbGFreSBDcmFzaCB1bmRlciBFdmVudFRhcmdl
dDo6ZmlyZUV2ZW50TGlzdGVuZXJzIG9uIGltcG9ydGVkL2JsaW5rL3BhaW50L2RlcHJlY2F0ZWRw
YWludGxheWVyL25vbi1zZWxmLXBhaW50aW5nLWxheWVyLW92ZXJyaWRlcy12aXNpYmlsaXR5Lmh0
bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQw
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzA5NDUyODE+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5za2lwIHRlc3QuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNy0wNS0wMiAgTWF0dCBMZXdpcyAg
PGpsZXdpczNAYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmtlZCB0ZXN0IGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvbWV0aG9kcy1hc3luYy5odG1sIGFzIGZsYWt5IHRpbWVvdXQuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU1NTRmZjIzYTMxNDljZTk5
MTAzZGM4NmIzYzM1ZDljMzlmNWE1MTYuLmI1NDcxMTRlZjliMjFjZDZiMTg2OWM5MWM5NWE2ZDA1
NDczZDhlMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xNTkzLDYgKzE1OTMsNCBAQCB3ZWJraXQub3JnL2IvMTY1NTUzIG1lZGlhL21lZGlhLWNvbnRy
b2xzLXRpbWVsaW5lLXVwZGF0ZXMtd2hlbi1ob3ZlcmVkLmh0bWwgWyBQYQogCiB3ZWJraXQub3Jn
L2IvMTcxMjcyIFsgWW9zZW1pdGUgRWxDYXBpdGFuIFNpZXJyYSBdIGZhc3QvdGV4dC9rYWl0aGku
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTcxNDA2IGltcG9ydGVk
L2JsaW5rL3BhaW50L2RlcHJlY2F0ZWRwYWludGxheWVyL25vbi1zZWxmLXBhaW50aW5nLWxheWVy
LW92ZXJyaWRlcy12aXNpYmlsaXR5Lmh0bWwgWyBQYXNzIENyYXNoIF0KLQogd2Via2l0Lm9yZy9i
LzE3MTQ2NSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwgWyBQYXNzIFRpbWVv
dXQgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>