<?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>185073</bug_id>
          
          <creation_ts>2018-04-27 05:25:56 -0700</creation_ts>
          <short_desc>REGRESSION(iOS 11.3): Crashes in TimerBase::~TimerBase() in Tencent x5gamehelper</short_desc>
          <delta_ts>2018-05-03 12:17:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Other</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=185134</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>185181</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="wang">544467181</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1418470</commentid>
    <comment_count>0</comment_count>
    <who name="wang">544467181</who>
    <bug_when>2018-04-27 05:25:56 -0700</bug_when>
    <thetext>CrashTracer:

type 1:

#0 Thread  


SIGTRAP  


0 WebCore WebCore::TimerBase::~TimerBase() + 120  
1 WebCore WebCore::TimerBase::~TimerBase() + 40  
2 WebCore WebCore::ImageLoader::~ImageLoader() + 2076  
3 WebCore WebCore::HTMLImageElement::~HTMLImageElement() + 224  
4 WebCore WebCore::HTMLImageElement::~HTMLImageElement() + 12  
5 JavaScriptCore void JSC::MarkedBlock::Handle::specializedSweep&lt;true, (JSC::MarkedBlock::Handle::EmptyMode)1, (JSC::MarkedBlock::Handle::SweepMode)1, (JSC::MarkedBlock::Handle::SweepDestructionMode)1, (JSC::MarkedBlock::Handle::ScribbleMode)0, (JSC::MarkedBlock::Handle::NewlyAllocatedMode)1, (JSC::MarkedBlock::Handle::MarksMode)1, JSC::JSDestructibleObjectDestroyFunc&gt;(JSC::FreeList*, JSC::MarkedBlock::Handle::EmptyMode, JSC::MarkedBlock::Handle::SweepMode, JSC::MarkedBlock::Handle::SweepDestructionMode, JSC::MarkedBlock::Handle::ScribbleMode, JSC::MarkedBlock::Handle::NewlyAllocatedMode, JSC::MarkedBlock::Handle::MarksMode, JSC::JSDestructibleObjectDestroyFunc const&amp;) + 212  
6 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType&lt;JSC::JSDestructibleObjectDestroyFunc&gt;(JSC::FreeList*, JSC::JSDestructibleObjectDestroyFunc const&amp;)::&apos;lambda&apos;()::operator()() const + 408  
7 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType&lt;JSC::JSDestructibleObjectDestroyFunc&gt;(JSC::FreeList*, JSC::JSDestructibleObjectDestroyFunc const&amp;) + 320  
8 JavaScriptCore JSC::JSDestructibleObjectHeapCellType::finishSweep(JSC::MarkedBlock::Handle&amp;, JSC::FreeList*) + 32  
9 JavaScriptCore JSC::MarkedBlock::Handle::sweep(JSC::FreeList*) + 372  
10 JavaScriptCore JSC::LocalAllocator::tryAllocateIn(JSC::MarkedBlock::Handle*) + 40  
11 JavaScriptCore JSC::LocalAllocator::tryAllocateWithoutCollecting() + 48  
12 JavaScriptCore JSC::LocalAllocator::allocateSlowCase(JSC::GCDeferralContext*, JSC::AllocationFailureMode) + 292  
13 JavaScriptCore JSC::CompleteSubspace::allocateNonVirtual(JSC::VM&amp;, unsigned long, JSC::GCDeferralContext*, JSC::AllocationFailureMode) + 216  
14 WebCore std::__1::enable_if&lt;std::is_same&lt;WebCore::GainNode, WebCore::GainNode&gt;::value, WebCore::JSDOMWrapperConverterTraits&lt;WebCore::GainNode&gt;::WrapperClass*&gt;::type WebCore::createWrapper&lt;WebCore::GainNode, WebCore::GainNode&gt;(WebCore::JSDOMGlobalObject*, ***::Ref&lt;WebCore::GainNode, ***::DumbPtrTraits&lt;WebCore::GainNode&gt; &gt;&amp;&amp;) + 220  
15 WebCore WebCore::toJS(JSC::ExecState*, WebCore::JSDOMGlobalObject*, WebCore::GainNode&amp;) + 136  
16 WebCore WebCore::jsAudioContextPrototypeFunctionCreateGain(JSC::ExecState*) + 264  
17 JavaScriptCore _llint_entry + 31860  
18 JavaScriptCore _llint_entry + 29020  
19 JavaScriptCore _llint_entry + 30040  
20 JavaScriptCore _llint_entry + 29020  
21 JavaScriptCore _llint_entry + 29020  
22 JavaScriptCore _llint_entry + 29020  
23 JavaScriptCore _llint_entry + 29020  
24 JavaScriptCore _llint_entry + 29020  
25 JavaScriptCore _llint_entry + 29020  
26 JavaScriptCore _llint_entry + 29020  
27 JavaScriptCore _llint_entry + 29020  
28 JavaScriptCore _llint_entry + 29020  
29 JavaScriptCore _llint_entry + 29020  
30 JavaScriptCore _llint_entry + 29020  
31 JavaScriptCore _llint_entry + 29020  
32 JavaScriptCore _llint_entry + 29020  
33 JavaScriptCore _llint_entry + 29020  
34 JavaScriptCore _llint_entry + 29020  
35 JavaScriptCore _llint_entry + 29020  
36 JavaScriptCore _vmEntryToJavaScript + 272  
37 JavaScriptCore JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 184  
38 JavaScriptCore JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 464  
39 JavaScriptCore JSC::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, ***::NakedPtr&lt;JSC::Exception&gt;&amp;) + 180  
40 WebCore WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&amp;, WebCore::Event&amp;) + 1176  
41 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;, ***::Vector&lt;***::RefPtr&lt;WebCore::RegisteredEventListener, ***::DumbPtrTraits&lt;WebCore::RegisteredEventListener&gt; &gt;, 1ul, ***::CrashOnOverflow, 16ul, ***::FastMalloc&gt;) + 760  
42 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;) + 596  
43 WebCore WebCore::EventTarget::dispatchEvent(WebCore::Event&amp;) + 116  
44 WebCore WebCore::WebSocket::didReceiveBinaryData(***::Vector&lt;unsigned char, 0ul, ***::CrashOnOverflow, 16ul, ***::FastMalloc&gt;&amp;&amp;) + 236  
45 WebCore WebCore::WebSocketChannel::processFrame() + 2912  
46 WebCore WebCore::WebSocketChannel::processBuffer() + 112  
47 WebCore WebCore::WebSocketChannel::didReceiveSocketStreamData(WebCore::SocketStreamHandle&amp;, char const*, unsigned long) + 112  
48 WebCore WebCore::SocketStreamHandleImpl::readStreamCallback(unsigned long) + 544  
49 CoreFoundation __signalEventSync + 212  
50 CoreFoundation __cfstream_solo_signalEventSync + 260  
51 CoreFoundation __CFStreamSignalEvent + 548  
52 CFNetwork SocketStream::dispatchSignalFromSocketCallbackUnlocked(SocketStreamSignalHolder*) + 64  
53 CFNetwork SocketStream::socketCallback(__CFSocket*, unsigned long, __CFData const*, void const*) + 148  
54 CFNetwork SocketStream::_SocketCallBack_stream(__CFSocket*, unsigned long, __CFData const*, void const*, void*) + 88  
55 CoreFoundation ___CFSocketPerformV0 + 1352  
56 CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24  
57 CoreFoundation ___CFRunLoopDoSources0 + 276  
58 CoreFoundation ___CFRunLoopRun + 1204  
59 CoreFoundation CFRunLoopRunSpecific + 552  
60 GraphicsServices GSEventRunModal + 100  
61 UIKit UIApplicationMain + 236  
62 x5gamehelper main + 88  
63 libdyld.dylib _start + 4  


#0 Thread  


SIGTRAP  


0 WebCore WebCore::TimerBase::~TimerBase() + 120  
1 WebCore WebCore::TimerBase::~TimerBase() + 40  
2 WebCore WebCore::XMLHttpRequest::~XMLHttpRequest() + 116  
3 WebCore WebCore::XMLHttpRequest::~XMLHttpRequest() + 12  
4 JavaScriptCore void JSC::MarkedBlock::Handle::specializedSweep&lt;true, (JSC::MarkedBlock::Handle::EmptyMode)1, (JSC::MarkedBlock::Handle::SweepMode)1, (JSC::MarkedBlock::Handle::SweepDestructionMode)1, (JSC::MarkedBlock::Handle::ScribbleMode)0, (JSC::MarkedBlock::Handle::NewlyAllocatedMode)1, (JSC::MarkedBlock::Handle::MarksMode)1, JSC::JSDestructibleObjectDestroyFunc&gt;(JSC::FreeList*, JSC::MarkedBlock::Handle::EmptyMode, JSC::MarkedBlock::Handle::SweepMode, JSC::MarkedBlock::Handle::SweepDestructionMode, JSC::MarkedBlock::Handle::ScribbleMode, JSC::MarkedBlock::Handle::NewlyAllocatedMode, JSC::MarkedBlock::Handle::MarksMode, JSC::JSDestructibleObjectDestroyFunc const&amp;) + 212  
5 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType&lt;JSC::JSDestructibleObjectDestroyFunc&gt;(JSC::FreeList*, JSC::JSDestructibleObjectDestroyFunc const&amp;)::&apos;lambda&apos;()::operator()() const + 408  
6 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType&lt;JSC::JSDestructibleObjectDestroyFunc&gt;(JSC::FreeList*, JSC::JSDestructibleObjectDestroyFunc const&amp;) + 320  
7 JavaScriptCore JSC::JSDestructibleObjectHeapCellType::finishSweep(JSC::MarkedBlock::Handle&amp;, JSC::FreeList*) + 32  
8 JavaScriptCore JSC::MarkedBlock::Handle::sweep(JSC::FreeList*) + 372  
9 JavaScriptCore JSC::LocalAllocator::tryAllocateIn(JSC::MarkedBlock::Handle*) + 40  
10 JavaScriptCore JSC::LocalAllocator::tryAllocateWithoutCollecting() + 48  
11 JavaScriptCore JSC::LocalAllocator::allocateSlowCase(JSC::GCDeferralContext*, JSC::AllocationFailureMode) + 292  
12 JavaScriptCore JSC::CompleteSubspace::allocateNonVirtual(JSC::VM&amp;, unsigned long, JSC::GCDeferralContext*, JSC::AllocationFailureMode) + 216  
13 WebCore std::__1::enable_if&lt;std::is_same&lt;WebCore::GainNode, WebCore::GainNode&gt;::value, WebCore::JSDOMWrapperConverterTraits&lt;WebCore::GainNode&gt;::WrapperClass*&gt;::type WebCore::createWrapper&lt;WebCore::GainNode, WebCore::GainNode&gt;(WebCore::JSDOMGlobalObject*, ***::Ref&lt;WebCore::GainNode, ***::DumbPtrTraits&lt;WebCore::GainNode&gt; &gt;&amp;&amp;) + 220  
14 WebCore WebCore::toJS(JSC::ExecState*, WebCore::JSDOMGlobalObject*, WebCore::GainNode&amp;) + 136  
15 WebCore WebCore::jsAudioContextPrototypeFunctionCreateGain(JSC::ExecState*) + 264  
16 JavaScriptCore _llint_entry + 31860  
17 JavaScriptCore _llint_entry + 29020  
18 JavaScriptCore _llint_entry + 30040  
19 JavaScriptCore _llint_entry + 29020  
20 JavaScriptCore _llint_entry + 29020  
21 JavaScriptCore _llint_entry + 29020  
22 JavaScriptCore _llint_entry + 29020  
23 JavaScriptCore _llint_entry + 29020  
24 JavaScriptCore _llint_entry + 29020  
25 JavaScriptCore _llint_entry + 29020  
26 JavaScriptCore _llint_entry + 29020  
27 JavaScriptCore _llint_entry + 29020  
28 JavaScriptCore _llint_entry + 29020  
29 JavaScriptCore _llint_entry + 28904  
30 JavaScriptCore _llint_entry + 28904  
31 JavaScriptCore _llint_entry + 28904  
32 JavaScriptCore _llint_entry + 29020  
33 JavaScriptCore _llint_entry + 29020  
34 JavaScriptCore _llint_entry + 28904  
35 JavaScriptCore _llint_entry + 29020  
36 JavaScriptCore _llint_entry + 29020  
37 JavaScriptCore _vmEntryToJavaScript + 272  
38 JavaScriptCore JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 184  
39 JavaScriptCore JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 464  
40 JavaScriptCore JSC::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, ***::NakedPtr&lt;JSC::Exception&gt;&amp;) + 180  
41 WebCore WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&amp;, WebCore::Event&amp;) + 1176  
42 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;, ***::Vector&lt;***::RefPtr&lt;WebCore::RegisteredEventListener, ***::DumbPtrTraits&lt;WebCore::RegisteredEventListener&gt; &gt;, 1ul, ***::CrashOnOverflow, 16ul, ***::FastMalloc&gt;) + 760  
43 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;) + 596  
44 WebCore WebCore::EventTarget::dispatchEvent(WebCore::Event&amp;) + 116  
45 WebCore WebCore::WebSocket::didReceiveBinaryData(***::Vector&lt;unsigned char, 0ul, ***::CrashOnOverflow, 16ul, ***::FastMalloc&gt;&amp;&amp;) + 236  
46 WebCore WebCore::WebSocketChannel::processFrame() + 2912  
47 WebCore WebCore::WebSocketChannel::processBuffer() + 112  
48 WebCore WebCore::WebSocketChannel::didReceiveSocketStreamData(WebCore::SocketStreamHandle&amp;, char const*, unsigned long) + 112  
49 WebCore WebCore::SocketStreamHandleImpl::readStreamCallback(unsigned long) + 544  
50 CoreFoundation __signalEventSync + 212  
51 CoreFoundation __cfstream_solo_signalEventSync + 260  
52 CoreFoundation __CFStreamSignalEvent + 548  
53 CFNetwork SocketStream::dispatchSignalFromSocketCallbackUnlocked(SocketStreamSignalHolder*) + 64  
54 CFNetwork SocketStream::socketCallback(__CFSocket*, unsigned long, __CFData const*, void const*) + 148  
55 CFNetwork SocketStream::_SocketCallBack_stream(__CFSocket*, unsigned long, __CFData const*, void const*, void*) + 88  
56 CoreFoundation ___CFSocketPerformV0 + 1352  
57 CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24  
58 CoreFoundation ___CFRunLoopDoSources0 + 276  
59 CoreFoundation ___CFRunLoopRun + 1204  
60 CoreFoundation CFRunLoopRunSpecific + 552  
61 GraphicsServices GSEventRunModal + 100  
62 UIKit UIApplicationMain + 236  
63 x5gamehelper main + 88  
64 libdyld.dylib _start + 4  


#0 Thread  


SIGTRAP  


0 WebCore WebCore::TimerBase::~TimerBase() + 120  
1 WebCore WebCore::TimerBase::~TimerBase() + 40  
2 WebCore WebCore::MediaElementSession::~MediaElementSession() + 96  
3 WebCore WebCore::HTMLMediaElement::~HTMLMediaElement() + 1340  
4 WebCore WebCore::HTMLVideoElement::~HTMLVideoElement() + 176  
5 JavaScriptCore void JSC::MarkedBlock::Handle::specializedSweep&lt;true, (JSC::MarkedBlock::Handle::EmptyMode)1, (JSC::MarkedBlock::Handle::SweepMode)1, (JSC::MarkedBlock::Handle::SweepDestructionMode)1, (JSC::MarkedBlock::Handle::ScribbleMode)0, (JSC::MarkedBlock::Handle::NewlyAllocatedMode)1, (JSC::MarkedBlock::Handle::MarksMode)1, JSC::JSDestructibleObjectDestroyFunc&gt;(JSC::FreeList*, JSC::MarkedBlock::Handle::EmptyMode, JSC::MarkedBlock::Handle::SweepMode, JSC::MarkedBlock::Handle::SweepDestructionMode, JSC::MarkedBlock::Handle::ScribbleMode, JSC::MarkedBlock::Handle::NewlyAllocatedMode, JSC::MarkedBlock::Handle::MarksMode, JSC::JSDestructibleObjectDestroyFunc const&amp;) + 212  
6 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType&lt;JSC::JSDestructibleObjectDestroyFunc&gt;(JSC::FreeList*, JSC::JSDestructibleObjectDestroyFunc const&amp;)::&apos;lambda&apos;()::operator()() const + 408  
7 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType&lt;JSC::JSDestructibleObjectDestroyFunc&gt;(JSC::FreeList*, JSC::JSDestructibleObjectDestroyFunc const&amp;) + 320  
8 JavaScriptCore JSC::JSDestructibleObjectHeapCellType::finishSweep(JSC::MarkedBlock::Handle&amp;, JSC::FreeList*) + 32  
9 JavaScriptCore JSC::MarkedBlock::Handle::sweep(JSC::FreeList*) + 372  
10 JavaScriptCore JSC::LocalAllocator::tryAllocateIn(JSC::MarkedBlock::Handle*) + 40  
11 JavaScriptCore JSC::LocalAllocator::tryAllocateWithoutCollecting() + 48  
12 JavaScriptCore JSC::LocalAllocator::allocateSlowCase(JSC::GCDeferralContext*, JSC::AllocationFailureMode) + 292  
13 JavaScriptCore JSC::CompleteSubspace::allocateNonVirtual(JSC::VM&amp;, unsigned long, JSC::GCDeferralContext*, JSC::AllocationFailureMode) + 216  
14 WebCore std::__1::enable_if&lt;std::is_same&lt;WebCore::WebSocket, WebCore::WebSocket&gt;::value, WebCore::JSDOMWrapperConverterTraits&lt;WebCore::WebSocket&gt;::WrapperClass*&gt;::type WebCore::createWrapper&lt;WebCore::WebSocket, WebCore::WebSocket&gt;(WebCore::JSDOMGlobalObject*, ***::Ref&lt;WebCore::WebSocket, ***::DumbPtrTraits&lt;WebCore::WebSocket&gt; &gt;&amp;&amp;) + 220  
15 WebCore WebCore::constructJSWebSocket1(JSC::ExecState*) + 284  
16 WebCore WebCore::JSDOMConstructor&lt;WebCore::JSWebSocket&gt;::construct(JSC::ExecState*) + 136  
17 JavaScriptCore JSC::LLInt::setUpCall(JSC::ExecState*, JSC::Instruction*, JSC::CodeSpecializationKind, JSC::JSValue, JSC::LLIntCallLinkInfo*) + 580  
18 JavaScriptCore _llint_entry + 30024  
19 JavaScriptCore _llint_entry + 28904  
20 JavaScriptCore _llint_entry + 28904  
21 JavaScriptCore _llint_entry + 29020  
22 JavaScriptCore _llint_entry + 28904  
23 JavaScriptCore _llint_entry + 28904  
24 JavaScriptCore _llint_entry + 29020  
25 JavaScriptCore _llint_entry + 29020  
26 JavaScriptCore _llint_entry + 29020  
27 JavaScriptCore _llint_entry + 29020  
28 JavaScriptCore _vmEntryToJavaScript + 272  
29 JavaScriptCore JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 184  
30 JavaScriptCore JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 464  
31 JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::ExecState*) + 512  
32 JavaScriptCore _llint_entry + 31860  
33 JavaScriptCore _llint_entry + 29020  
34 JavaScriptCore _vmEntryToJavaScript + 272  
35 JavaScriptCore JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 184  
36 JavaScriptCore JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 464  
37 JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::ExecState*) + 512  
38 JavaScriptCore _llint_entry + 31860  
39 JavaScriptCore _llint_entry + 29020  
40 JavaScriptCore _llint_entry + 29020  
41 JavaScriptCore _llint_entry + 29020  
42 JavaScriptCore _llint_entry + 28904  
43 JavaScriptCore _llint_entry + 29020  
44 JavaScriptCore _llint_entry + 28904  
45 JavaScriptCore _llint_entry + 28904  
46 JavaScriptCore _llint_entry + 28904  
47 JavaScriptCore _vmEntryToJavaScript + 272  
48 JavaScriptCore JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 184  
49 JavaScriptCore JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 464  
50 JavaScriptCore JSC::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, ***::NakedPtr&lt;JSC::Exception&gt;&amp;) + 180  
51 WebCore WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&amp;, WebCore::Event&amp;) + 1176  
52 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;, ***::Vector&lt;***::RefPtr&lt;WebCore::RegisteredEventListener, ***::DumbPtrTraits&lt;WebCore::RegisteredEventListener&gt; &gt;, 1ul, ***::CrashOnOverflow, 16ul, ***::FastMalloc&gt;) + 760  
53 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;) + 596  
54 WebCore WebCore::EventTarget::dispatchEvent(WebCore::Event&amp;) + 116  
55 WebCore WebCore::WebSocket::didReceiveBinaryData(***::Vector&lt;unsigned char, 0ul, ***::CrashOnOverflow, 16ul, ***::FastMalloc&gt;&amp;&amp;) + 236  
56 WebCore WebCore::WebSocketChannel::processFrame() + 2912  
57 WebCore WebCore::WebSocketChannel::processBuffer() + 112  
58 WebCore WebCore::WebSocketChannel::didReceiveSocketStreamData(WebCore::SocketStreamHandle&amp;, char const*, unsigned long) + 112  
59 WebCore WebCore::SocketStreamHandleImpl::readStreamCallback(unsigned long) + 544  
60 CoreFoundation __signalEventSync + 212  
61 CoreFoundation __cfstream_solo_signalEventSync + 260  
62 CoreFoundation __CFStreamSignalEvent + 548  
63 CFNetwork SocketStream::dispatchSignalFromSocketCallbackUnlocked(SocketStreamSignalHolder*) + 64  
64 CFNetwork SocketStream::socketCallback(__CFSocket*, unsigned long, __CFData const*, void const*) + 148  
65 CFNetwork SocketStream::_SocketCallBack_stream(__CFSocket*, unsigned long, __CFData const*, void const*, void*) + 88  
66 CoreFoundation ___CFSocketPerformV0 + 1352  
67 CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24  
68 CoreFoundation ___CFRunLoopDoSources0 + 276  
69 CoreFoundation ___CFRunLoopRun + 1204  
70 CoreFoundation CFRunLoopRunSpecific + 552  
71 GraphicsServices GSEventRunModal + 100  
72 UIKit UIApplicationMain + 236  
73 x5gamehelper main + 88  
74 libdyld.dylib _start + 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418857</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-04-28 19:20:45 -0700</bug_when>
    <thetext>Is this reproducible at all? This may be a WebKit bug, but another possibility is that some of your code uses WebKit from a wrong thread before the crash occurs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418858</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-28 19:20:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/39821223&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418861</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-04-28 19:30:51 -0700</bug_when>
    <thetext>Actually, thread 0 must be the wrong thread here. I&apos;m guessing that WebSocketChannel got refactored without considering legacy WebKit on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418994</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-30 09:28:36 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #3)
&gt; Actually, thread 0 must be the wrong thread here. I&apos;m guessing that
&gt; WebSocketChannel got refactored without considering legacy WebKit on iOS.e
Alexey is right that it seems unexpected for code such as EventTarget::dispatchEvent() to run on thread 0 in WebKitLegacy. I would have expected such code to run on the Web thread.

As we can see from the trace, we&apos;re already on thread 0 from SocketStreamHandleImpl::readStreamCallback(unsigned long).

This callback is scheduled in SocketStreamHandleImpl::scheduleStreams() like so:
CFReadStreamSetClient(m_readStream.get(), static_cast&lt;CFOptionFlags&gt;(-1), readStreamCallback, &amp;clientContext);
CFReadStreamScheduleWithRunLoop(m_readStream.get(), CFRunLoopGetCurrent(), kCFRunLoopCommonModes);

It is using CFRunLoopGetCurrent() so this is only safe if SocketStreamHandleImpl::scheduleStreams() gets called on the Web thread. It is called from the SocketStreamHandleImpl() constructor, which is called from SocketProvider::createSocketStreamHandle().
This is called from WebSocketChannel::connect(), which I would expect to run on the WebThread given what it does. It is called from WebSocket::connect() which is Web-exposed and should therefore be called on the WebThread.

I do not see anything obviously wrong with the code yet. I am also not aware of any recent refactoring in this part of the code. I&apos;ll investigate furthere</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419106</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-04-30 13:54:25 -0700</bug_when>
    <thetext>We added a release assertion to TimerBase::~TimerBase() in iOS 11.3 in https://trac.webkit.org/changeset/227934.

I suspect Tencent x5gamehelper is accessing UIWebView in a wrong thread, or we&apos;re lacking a WebThread lock somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419590</commentid>
    <comment_count>6</comment_count>
    <who name="wang">544467181</who>
    <bug_when>2018-05-02 00:34:23 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #1)
&gt; Is this reproducible at all? This may be a WebKit bug, but another
&gt; possibility is that some of your code uses WebKit from a wrong thread before
&gt; the crash occurs.

I can&apos;t reproduce it.I got the crash report from Crash Report Tools.It only happened on version 11.3(15E216).And we access UIWebView in main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419697</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-05-02 09:54:34 -0700</bug_when>
    <thetext>Wouldn&apos;t we hit this if the request was legitimately started on the main thread while holding a WebThreadLock? I don&apos;t fully understand the design, but my understanding is that pretty much any code can get to run on the main thread with the lock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419721</commentid>
    <comment_count>8</comment_count>
      <attachid>339315</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-02 10:40:29 -0700</bug_when>
    <thetext>Created attachment 339315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419725</commentid>
    <comment_count>9</comment_count>
      <attachid>339316</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-02 10:43:13 -0700</bug_when>
    <thetext>Created attachment 339316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419731</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-05-02 10:50:54 -0700</bug_when>
    <thetext>Patch looks OK. Is it ready for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419736</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-02 10:54:39 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #10)
&gt; Patch looks OK. Is it ready for review?

I am waiting for iOS EWS to be green to be safe, but otherwise yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419741</commentid>
    <comment_count>12</comment_count>
      <attachid>339316</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-05-02 11:03:42 -0700</bug_when>
    <thetext>Comment on attachment 339316
Patch

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

&gt; Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp:133
&gt;      CFReadStreamScheduleWithRunLoop(m_readStream.get(), CFRunLoopGetCurrent(), kCFRunLoopCommonModes);

Do we still need Current here, not Main?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419755</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-02 11:37:40 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #12)
&gt; Comment on attachment 339316 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=339316&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp:133
&gt; &gt;      CFReadStreamScheduleWithRunLoop(m_readStream.get(), CFRunLoopGetCurrent(), kCFRunLoopCommonModes);
&gt; 
&gt; Do we still need Current here, not Main?

I think so because websockets can be used in workers iirc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419761</commentid>
    <comment_count>14</comment_count>
      <attachid>339316</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-02 11:42:43 -0700</bug_when>
    <thetext>Comment on attachment 339316
Patch

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

&gt; Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp:130
&gt; +    CFReadStreamScheduleWithRunLoop(m_readStream.get(), WebThreadRunLoop(), kCFRunLoopCommonModes);

Well, that&apos;s a good point. I guess this means this will not be OK when using WebSockets in workers threads on iOS WebKitLegacy :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419764</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-02 11:48:56 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #13)
&gt; (In reply to Alexey Proskuryakov from comment #12)
&gt; &gt; Comment on attachment 339316 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=339316&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp:133
&gt; &gt; &gt;      CFReadStreamScheduleWithRunLoop(m_readStream.get(), CFRunLoopGetCurrent(), kCFRunLoopCommonModes);
&gt; &gt; 
&gt; &gt; Do we still need Current here, not Main?
&gt; 
&gt; I think so because websockets can be used in workers iirc.

Actually, we can use Main I believe. The worker case is fine because we always go via WorkerThreadableWebSocketChannel which has a bridge between the main thread and the worker thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419782</commentid>
    <comment_count>16</comment_count>
      <attachid>339324</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-02 12:30:24 -0700</bug_when>
    <thetext>Created attachment 339324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420031</commentid>
    <comment_count>17</comment_count>
      <attachid>339324</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-05-02 23:46:25 -0700</bug_when>
    <thetext>Comment on attachment 339324
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        REGRESSION(iOS 11.3): Crashes in TimerBase::~TimerBase() in Tencent x5gamehelper

This breaks Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420033</commentid>
    <comment_count>18</comment_count>
      <attachid>339324</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-05-02 23:52:33 -0700</bug_when>
    <thetext>Comment on attachment 339324
Patch

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

&gt; Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp:82
&gt; +#elif PLATFORM(IOS)

Shouldn&apos;t we use USE(WEB_THREAD) here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420128</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-03 08:46:26 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #18)
&gt; Comment on attachment 339324 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=339324&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp:82
&gt; &gt; +#elif PLATFORM(IOS)
&gt; 
&gt; Shouldn&apos;t we use USE(WEB_THREAD) here?

Not sure what the rules are but literally *every* call to WebThreadRunLoop() in WebCore is protected with PLATFORM(IOS), not PLATFORM(WEB_THREAD).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420129</commentid>
    <comment_count>20</comment_count>
      <attachid>339409</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-03 08:48:21 -0700</bug_when>
    <thetext>Created attachment 339409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420257</commentid>
    <comment_count>21</comment_count>
      <attachid>339409</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-03 12:17:51 -0700</bug_when>
    <thetext>Comment on attachment 339409
Patch

Clearing flags on attachment: 339409

Committed r231319: &lt;https://trac.webkit.org/changeset/231319&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420258</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-03 12:17:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339315</attachid>
            <date>2018-05-02 10:40:29 -0700</date>
            <delta_ts>2018-05-02 10:43:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185073-20180502104029.patch</filename>
            <type>text/plain</type>
            <size>2134</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM3N2I4NThhYmE5NzFh
YTU2YjA3NjgwN2VhY2EzNWU5NDU4YmVkZS4uYzExYTlkY2M3NjdlYzJhNjQxOGQzM2QzYWMwY2I3
NTVlYTQ3ZTlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA1LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihpT1MgMTEu
Myk6IENyYXNoZXMgaW4gVGltZXJCYXNlOjp+VGltZXJCYXNlKCkgaW4gVGVuY2VudCB4NWdhbWVo
ZWxwZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NTA3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk4MjEyMjM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBzdXJlIFdlYlNvY2tldCdzIHJl
YWQgLyB3cml0ZSBoYW5kbGVycyBhcmUgc2NoZWR1bGVkIG9uIHRoZSBXZWJUaHJlYWQKKyAgICAg
ICAgb24gaU9TIFdlYktpdExlZ2FjeS4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgaXMgYWxyZWFk
eSBkb25lIGluCisgICAgICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lcjo6c2V0RmlyZUludGVydmFs
KCkgaW4gTWFpblRocmVhZFNoYXJlZFRpbWVyQ0YuY3BwLgorCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6c2NoZWR1bGVTdHJlYW1zKToKKwogMjAxOC0w
NS0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIGRvY3VtZW50
Lm9wZW4oKSBldmVudCBsaXN0ZW5lciByZW1vdmFsIGlzIG5vdCBpbW1lZGlhdGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxl
SW1wbENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0
U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAppbmRleCBmMTg2MTUxN2Y4Mzg4NWQ4YjQzNGMzMjdi
N2I0NTA4MTZlOWFiMWFmLi5mZTZmMDJhY2RmMzNhMTRiZTBiZjUzNGNhNTIwOWVhZmNmMzMyMmEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0
cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCkBAIC0xMjIsNiArMTIyLDkg
QEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpzY2hlZHVsZVN0cmVhbXMoKQogI2lmIFBM
QVRGT1JNKFdJTikKICAgICBDRlJlYWRTdHJlYW1TY2hlZHVsZVdpdGhSdW5Mb29wKG1fcmVhZFN0
cmVhbS5nZXQoKSwgbG9hZGVyUnVuTG9vcCgpLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwogICAg
IENGV3JpdGVTdHJlYW1TY2hlZHVsZVdpdGhSdW5Mb29wKG1fd3JpdGVTdHJlYW0uZ2V0KCksIGxv
YWRlclJ1bkxvb3AoKSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKKyNlbGlmIFBMQVRGT1JNKElP
UykKKyAgICBDRlJlYWRTdHJlYW1TY2hlZHVsZVdpdGhSdW5Mb29wKG1fcmVhZFN0cmVhbS5nZXQo
KSwgV2ViVGhyZWFkUnVuTG9vcCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworICAgIENGV3Jp
dGVTdHJlYW1TY2hlZHVsZVdpdGhSdW5Mb29wKG1fd3JpdGVTdHJlYW0uZ2V0KCksIFdlYlRocmVh
ZFJ1bkxvb3AoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKICNlbHNlCiAgICAgQ0ZSZWFkU3Ry
ZWFtU2NoZWR1bGVXaXRoUnVuTG9vcChtX3JlYWRTdHJlYW0uZ2V0KCksIENGUnVuTG9vcEdldEN1
cnJlbnQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKICAgICBDRldyaXRlU3RyZWFtU2NoZWR1
bGVXaXRoUnVuTG9vcChtX3dyaXRlU3RyZWFtLmdldCgpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCks
IGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339316</attachid>
            <date>2018-05-02 10:43:13 -0700</date>
            <delta_ts>2018-05-02 11:44:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185073-20180502104313.patch</filename>
            <type>text/plain</type>
            <size>2446</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM3N2I4NThhYmE5NzFh
YTU2YjA3NjgwN2VhY2EzNWU5NDU4YmVkZS4uYzExYTlkY2M3NjdlYzJhNjQxOGQzM2QzYWMwY2I3
NTVlYTQ3ZTlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA1LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihpT1MgMTEu
Myk6IENyYXNoZXMgaW4gVGltZXJCYXNlOjp+VGltZXJCYXNlKCkgaW4gVGVuY2VudCB4NWdhbWVo
ZWxwZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NTA3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk4MjEyMjM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBzdXJlIFdlYlNvY2tldCdzIHJl
YWQgLyB3cml0ZSBoYW5kbGVycyBhcmUgc2NoZWR1bGVkIG9uIHRoZSBXZWJUaHJlYWQKKyAgICAg
ICAgb24gaU9TIFdlYktpdExlZ2FjeS4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgaXMgYWxyZWFk
eSBkb25lIGluCisgICAgICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lcjo6c2V0RmlyZUludGVydmFs
KCkgaW4gTWFpblRocmVhZFNoYXJlZFRpbWVyQ0YuY3BwLgorCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6c2NoZWR1bGVTdHJlYW1zKToKKwogMjAxOC0w
NS0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIGRvY3VtZW50
Lm9wZW4oKSBldmVudCBsaXN0ZW5lciByZW1vdmFsIGlzIG5vdCBpbW1lZGlhdGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxl
SW1wbENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0
U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAppbmRleCBmMTg2MTUxN2Y4Mzg4NWQ4YjQzNGMzMjdi
N2I0NTA4MTZlOWFiMWFmLi5mNzM4MGU1YzFkN2RhNGM5OWM2M2JiMWJkYjI1NTk5Y2Q0MmRiZDJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0
cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCkBAIC01Myw2ICs1MywxMCBA
QAogI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1ZGUgIldlYkNvcmVUaHJlYWRJ
bnRlcm5hbC5oIgorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQykK
IGV4dGVybiAiQyIgY29uc3QgQ0ZTdHJpbmdSZWYga0NGU3RyZWFtUHJvcGVydHlTb3VyY2VBcHBs
aWNhdGlvbjsKIGV4dGVybiAiQyIgY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlN0cmVhbVNvY2tldFNl
dE5vRGVsYXk7CkBAIC0xMjIsNiArMTI2LDkgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBs
OjpzY2hlZHVsZVN0cmVhbXMoKQogI2lmIFBMQVRGT1JNKFdJTikKICAgICBDRlJlYWRTdHJlYW1T
Y2hlZHVsZVdpdGhSdW5Mb29wKG1fcmVhZFN0cmVhbS5nZXQoKSwgbG9hZGVyUnVuTG9vcCgpLCBr
Q0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwogICAgIENGV3JpdGVTdHJlYW1TY2hlZHVsZVdpdGhSdW5M
b29wKG1fd3JpdGVTdHJlYW0uZ2V0KCksIGxvYWRlclJ1bkxvb3AoKSwga0NGUnVuTG9vcERlZmF1
bHRNb2RlKTsKKyNlbGlmIFBMQVRGT1JNKElPUykKKyAgICBDRlJlYWRTdHJlYW1TY2hlZHVsZVdp
dGhSdW5Mb29wKG1fcmVhZFN0cmVhbS5nZXQoKSwgV2ViVGhyZWFkUnVuTG9vcCgpLCBrQ0ZSdW5M
b29wQ29tbW9uTW9kZXMpOworICAgIENGV3JpdGVTdHJlYW1TY2hlZHVsZVdpdGhSdW5Mb29wKG1f
d3JpdGVTdHJlYW0uZ2V0KCksIFdlYlRocmVhZFJ1bkxvb3AoKSwga0NGUnVuTG9vcENvbW1vbk1v
ZGVzKTsKICNlbHNlCiAgICAgQ0ZSZWFkU3RyZWFtU2NoZWR1bGVXaXRoUnVuTG9vcChtX3JlYWRT
dHJlYW0uZ2V0KCksIENGUnVuTG9vcEdldEN1cnJlbnQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVz
KTsKICAgICBDRldyaXRlU3RyZWFtU2NoZWR1bGVXaXRoUnVuTG9vcChtX3dyaXRlU3RyZWFtLmdl
dCgpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339324</attachid>
            <date>2018-05-02 12:30:24 -0700</date>
            <delta_ts>2018-05-03 08:48:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185073-20180502123023.patch</filename>
            <type>text/plain</type>
            <size>8145</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ3MmEyZjE0NGMyODEz
NWY0YzNjYmJkMmQwMzc2Yzc1Y2YzMWZmMS4uNGJkN2UxOTE1ZDQyYzAyMGJlYjk0ZDJmMWQ1NDBh
NzU2OTI0ZDQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE4LTA1LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihpT1MgMTEu
Myk6IENyYXNoZXMgaW4gVGltZXJCYXNlOjp+VGltZXJCYXNlKCkgaW4gVGVuY2VudCB4NWdhbWVo
ZWxwZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NTA3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk4MjEyMjM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGZvbGxvd2luZyBjaGFuZ2VzIHdl
cmUgbWFkZToKKyAgICAgICAgLSBNYWtlIHN1cmUgU29ja2V0U3RyZWFtIGNhbGxiYWNrcyBhcmUg
YWx3YXlzIHNjaGVkdWxlZCBvbiB0aGUgcmlnaHQgcnVubG9vcDoKKyAgICAgICAgICBXZWJUaHJl
YWRSdW5Mb29wKCkgb24gV2ViS2l0TGVnYWN5IGlPUywgbG9hZGVyUnVuTG9vcCgpIG9uIFdpbmRv
d3MgYW5kCisgICAgICAgICAgbWFpbiBydW5sb29wIG90aGVyd2lzZS4KKyAgICAgICAgLSBXaGVu
IHRoZSBTb2NrZXRTdHJlYW0gY2FsbGJhY2tzIGFyZSBjYWxsZWQsIHVuY29uZGl0aW9uYWxseSBj
YWxsIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KCkKKyAgICAgICAgICBiZWZvcmUgY2FsbGluZyBt
ZXRob2RzIG9uIHRoZSBTb2NrZXRTdHJlYW0gY2xpZW50LiBQcmV2aW91c2x5LCB0aGlzIGNvZGUg
cGF0aAorICAgICAgICAgIHdhcyBzcGVjaWZpYyB0byBXaW5kb3dzIGJ1dCB0aGVyZSBpcyBubyBy
ZWFzb24gdG8gaGF2ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGhlcmUuCisgICAgICAgICAgY2Fs
bE9uTWFpblRocmVhZEFuZFdhaXQoKSBjYWxscyB0aGUgZnVuY3Rpb24gcmlnaHQgYXdheSBpZiB3
ZSdyZSBhbHJlYWR5IG9uIHRoZSBtYWluCisgICAgICAgICAgdGhyZWFkLCB3aGljaCB3aWxsIGJl
IHRoZSBjYXNlIG9uIG90aGVyIHBsYXRmb3JtIHRoYW4gV2luZG93cy4KKworICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNhbGxiYWNrc1J1bkxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y2FsbGJh
Y2tzUnVuTG9vcE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1w
bDo6c2NoZWR1bGVTdHJlYW1zKToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRs
ZUltcGw6OnBhY0V4ZWN1dGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0
cmVhbUhhbmRsZUltcGw6OmV4ZWN1dGVQQUNGaWxlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlNv
Y2tldFN0cmVhbUhhbmRsZUltcGw6OnJlbW92ZVBBQ1J1bkxvb3BTb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVhZFN0cmVhbUNhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OndyaXRlU3RyZWFtQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cGxhdGZvcm1D
bG9zZSk6CisKIDIwMTgtMDUtMDIgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gUmVtb3ZlIHVubmVlZGVkIGluY2x1
ZGUgb2YgZ3N0Z2xkaXNwbGF5X3dheWxhbmQuaCBhZnRlciByMjI4ODY2IGFuZCByMjI5MDIyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKaW5kZXggMzNjYTZjYzNmMjcyY2VkODM0
YWEzZDdhYmY4ZWNkMzI1NTgwZWJhYi4uZjc4MzkyMzY2MmZhMWFiZDdhM2UyNDNjN2YyY2Y1NzJk
OTI4NmFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcApAQCAtNTMsNiAr
NTMsMTAgQEAKICNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50
ZXJmYWNlLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPUykKKyNpbmNsdWRlICJXZWJDb3Jl
VGhyZWFkSW50ZXJuYWwuaCIKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9S
TShNQUMpCiBleHRlcm4gIkMiIGNvbnN0IENGU3RyaW5nUmVmIGtDRlN0cmVhbVByb3BlcnR5U291
cmNlQXBwbGljYXRpb247CiBleHRlcm4gIkMiIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTdHJlYW1T
b2NrZXRTZXROb0RlbGF5OwpAQCAtNzEsNiArNzUsMjYgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9U
UkFJVChDRkhUVFBNZXNzYWdlKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgaW5s
aW5lIENGUnVuTG9vcFJlZiBjYWxsYmFja3NSdW5Mb29wKCkKK3sKKyNpZiBQTEFURk9STShXSU4p
CisgICAgcmV0dXJuIGxvYWRlclJ1bkxvb3AoKTsKKyNlbGlmIFBMQVRGT1JNKElPUykKKyAgICBy
ZXR1cm4gV2ViVGhyZWFkUnVuTG9vcCgpOworI2Vsc2UKKyAgICByZXR1cm4gQ0ZSdW5Mb29wR2V0
TWFpbigpOworI2VuZGlmCit9CisKK3N0YXRpYyBpbmxpbmUgQ0ZSdW5Mb29wTW9kZSBjYWxsYmFj
a3NSdW5Mb29wTW9kZSgpCit7CisjaWYgUExBVEZPUk0oV0lOKQorICAgIHJldHVybiBrQ0ZSdW5M
b29wRGVmYXVsdE1vZGU7CisjZWxzZQorICAgIHJldHVybiBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXM7
CisjZW5kaWYKK30KKwogU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6U29ja2V0U3RyZWFtSGFuZGxl
SW1wbChjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9u
LCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEpCiAgICAgOiBTb2NrZXRT
dHJlYW1IYW5kbGUodXJsLCBjbGllbnQpCiAgICAgLCBtX2Nvbm5lY3RpbmdTdWJzdGF0ZShOZXcp
CkBAIC0xMTksMTQgKzE0Myw4IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6c2NoZWR1
bGVTdHJlYW1zKCkKICAgICBDRlJlYWRTdHJlYW1TZXRDbGllbnQobV9yZWFkU3RyZWFtLmdldCgp
LCBzdGF0aWNfY2FzdDxDRk9wdGlvbkZsYWdzPigtMSksIHJlYWRTdHJlYW1DYWxsYmFjaywgJmNs
aWVudENvbnRleHQpOwogICAgIENGV3JpdGVTdHJlYW1TZXRDbGllbnQobV93cml0ZVN0cmVhbS5n
ZXQoKSwgc3RhdGljX2Nhc3Q8Q0ZPcHRpb25GbGFncz4oLTEpLCB3cml0ZVN0cmVhbUNhbGxiYWNr
LCAmY2xpZW50Q29udGV4dCk7CiAKLSNpZiBQTEFURk9STShXSU4pCi0gICAgQ0ZSZWFkU3RyZWFt
U2NoZWR1bGVXaXRoUnVuTG9vcChtX3JlYWRTdHJlYW0uZ2V0KCksIGxvYWRlclJ1bkxvb3AoKSwg
a0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKLSAgICBDRldyaXRlU3RyZWFtU2NoZWR1bGVXaXRoUnVu
TG9vcChtX3dyaXRlU3RyZWFtLmdldCgpLCBsb2FkZXJSdW5Mb29wKCksIGtDRlJ1bkxvb3BEZWZh
dWx0TW9kZSk7Ci0jZWxzZQotICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAg
ICBDRlJlYWRTdHJlYW1TY2hlZHVsZVdpdGhSdW5Mb29wKG1fcmVhZFN0cmVhbS5nZXQoKSwgQ0ZS
dW5Mb29wR2V0Q3VycmVudCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotICAgIENGV3JpdGVT
dHJlYW1TY2hlZHVsZVdpdGhSdW5Mb29wKG1fd3JpdGVTdHJlYW0uZ2V0KCksIENGUnVuTG9vcEdl
dEN1cnJlbnQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLSNlbmRpZgorICAgIENGUmVhZFN0
cmVhbVNjaGVkdWxlV2l0aFJ1bkxvb3AobV9yZWFkU3RyZWFtLmdldCgpLCBjYWxsYmFja3NSdW5M
b29wKCksIGNhbGxiYWNrc1J1bkxvb3BNb2RlKCkpOworICAgIENGV3JpdGVTdHJlYW1TY2hlZHVs
ZVdpdGhSdW5Mb29wKG1fd3JpdGVTdHJlYW0uZ2V0KCksIGNhbGxiYWNrc1J1bkxvb3AoKSwgY2Fs
bGJhY2tzUnVuTG9vcE1vZGUoKSk7CiAKICAgICBDRlJlYWRTdHJlYW1PcGVuKG1fcmVhZFN0cmVh
bS5nZXQoKSk7CiAgICAgQ0ZXcml0ZVN0cmVhbU9wZW4obV93cml0ZVN0cmVhbS5nZXQoKSk7CkBA
IC0xNjcsNiArMTg1LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpwYWNFeGVjdXRp
b25DYWxsYmFjayh2b2lkKiBjbGllbnQsIENGQXJyYXlSZWYgcHJveHkKIHsKICAgICBTb2NrZXRT
dHJlYW1IYW5kbGVJbXBsKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxTb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsKj4oY2xpZW50KTsKIAorICAgIFJlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IHByb3RlY3Rv
cihoYW5kbGUpOwogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CiAgICAgICAgIEFT
U0VSVChoYW5kbGUtPm1fY29ubmVjdGluZ1N1YnN0YXRlID09IEV4ZWN1dGluZ1BBQ0ZpbGUpOwog
ICAgICAgICAvLyBUaGlzIHRpbWUsIHRoZSBhcnJheSB3b24ndCBoYXZlIFBBQyBhcyBhIGZpcnN0
IGVudHJ5LgpAQCAtMTgzLDExICsyMDIsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6
OmV4ZWN1dGVQQUNGaWxlVVJMKENGVVJMUmVmIHBhY0ZpbGVVUkwpCiAgICAgLy8gQ0ZOZXR3b3Jr
IHJldHVybnMgYW4gZW1wdHkgcHJveHkgYXJyYXkgZm9yIFdlYlNvY2tldCBzY2hlbWVzLCBzbyB1
c2UgbV9odHRwc1VSTC4KICAgICBDRlN0cmVhbUNsaWVudENvbnRleHQgY2xpZW50Q29udGV4dCA9
IHsgMCwgdGhpcywgcmV0YWluU29ja2V0U3RyZWFtSGFuZGxlLCByZWxlYXNlU29ja2V0U3RyZWFt
SGFuZGxlLCBjb3B5UEFDRXhlY3V0aW9uRGVzY3JpcHRpb24gfTsKICAgICBtX3BhY1J1bkxvb3BT
b3VyY2UgPSBhZG9wdENGKENGTmV0d29ya0V4ZWN1dGVQcm94eUF1dG9Db25maWd1cmF0aW9uVVJM
KHBhY0ZpbGVVUkwsIG1faHR0cHNVUkwuZ2V0KCksIHBhY0V4ZWN1dGlvbkNhbGxiYWNrLCAmY2xp
ZW50Q29udGV4dCkpOwotI2lmIFBMQVRGT1JNKFdJTikKLSAgICBDRlJ1bkxvb3BBZGRTb3VyY2Uo
bG9hZGVyUnVuTG9vcCgpLCBtX3BhY1J1bkxvb3BTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BEZWZh
dWx0TW9kZSk7Ci0jZWxzZQotICAgIENGUnVuTG9vcEFkZFNvdXJjZShDRlJ1bkxvb3BHZXRDdXJy
ZW50KCksIG1fcGFjUnVuTG9vcFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsK
LSNlbmRpZgorICAgIENGUnVuTG9vcEFkZFNvdXJjZShjYWxsYmFja3NSdW5Mb29wKCksIG1fcGFj
UnVuTG9vcFNvdXJjZS5nZXQoKSwgY2FsbGJhY2tzUnVuTG9vcE1vZGUoKSk7CiAgICAgbV9jb25u
ZWN0aW5nU3Vic3RhdGUgPSBFeGVjdXRpbmdQQUNGaWxlOwogfQogCkBAIC0xOTYsMTEgKzIxMSw3
IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVtb3ZlUEFDUnVuTG9vcFNvdXJjZSgp
CiAgICAgQVNTRVJUKG1fcGFjUnVuTG9vcFNvdXJjZSk7CiAKICAgICBDRlJ1bkxvb3BTb3VyY2VJ
bnZhbGlkYXRlKG1fcGFjUnVuTG9vcFNvdXJjZS5nZXQoKSk7Ci0jaWYgUExBVEZPUk0oV0lOKQot
ICAgIENGUnVuTG9vcFJlbW92ZVNvdXJjZShsb2FkZXJSdW5Mb29wKCksIG1fcGFjUnVuTG9vcFNv
dXJjZS5nZXQoKSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKLSNlbHNlCi0gICAgQ0ZSdW5Mb29w
UmVtb3ZlU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgbV9wYWNSdW5Mb29wU291cmNlLmdl
dCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotI2VuZGlmCisgICAgQ0ZSdW5Mb29wUmVtb3Zl
U291cmNlKGNhbGxiYWNrc1J1bkxvb3AoKSwgbV9wYWNSdW5Mb29wU291cmNlLmdldCgpLCBjYWxs
YmFja3NSdW5Mb29wTW9kZSgpKTsKICAgICBtX3BhY1J1bkxvb3BTb3VyY2UgPSAwOwogfQogCkBA
IC00NjMsMTYgKzQ3NCwxMSBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnJlYWRTdHJl
YW1DYWxsYmFjayhDRlJlYWRTdHJlYW1SZWYgc3RyZWFtLCBDRlN0cmVhbQogICAgIGlmICghaGFu
ZGxlLT5tX3JlYWRTdHJlYW0pCiAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKFdJTikK
ICAgICBSZWZQdHI8U29ja2V0U3RyZWFtSGFuZGxlPiBwcm90ZWN0b3IoaGFuZGxlKTsKICAgICBj
YWxsT25NYWluVGhyZWFkQW5kV2FpdChbJl0gewogICAgICAgICBpZiAoaGFuZGxlLT5tX3JlYWRT
dHJlYW0pCiAgICAgICAgICAgICBoYW5kbGUtPnJlYWRTdHJlYW1DYWxsYmFjayh0eXBlKTsKICAg
ICB9KTsKLSNlbHNlCi0gICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGhh
bmRsZS0+cmVhZFN0cmVhbUNhbGxiYWNrKHR5cGUpOwotI2VuZGlmCiB9CiAKIHZvaWQgU29ja2V0
U3RyZWFtSGFuZGxlSW1wbDo6d3JpdGVTdHJlYW1DYWxsYmFjayhDRldyaXRlU3RyZWFtUmVmIHN0
cmVhbSwgQ0ZTdHJlYW1FdmVudFR5cGUgdHlwZSwgdm9pZCogY2xpZW50Q2FsbEJhY2tJbmZvKQpA
QCAtNDgzLDE2ICs0ODksMTEgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjp3cml0ZVN0
cmVhbUNhbGxiYWNrKENGV3JpdGVTdHJlYW1SZWYgc3RyZWFtLCBDRlN0cmUKICAgICBpZiAoIWhh
bmRsZS0+bV93cml0ZVN0cmVhbSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oV0lO
KQogICAgIFJlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IHByb3RlY3RvcihoYW5kbGUpOwogICAg
IGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CiAgICAgICAgIGlmIChoYW5kbGUtPm1fd3Jp
dGVTdHJlYW0pCiAgICAgICAgICAgICBoYW5kbGUtPndyaXRlU3RyZWFtQ2FsbGJhY2sodHlwZSk7
CiAgICAgfSk7Ci0jZWxzZQotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgaGFuZGxl
LT53cml0ZVN0cmVhbUNhbGxiYWNrKHR5cGUpOwotI2VuZGlmCiB9CiAKICNpZiAhUExBVEZPUk0o
SU9TKQpAQCAtNzI3LDEzICs3MjgsOCBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnBs
YXRmb3JtQ2xvc2UoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgUExBVEZPUk0oV0lO
KQotICAgIENGUmVhZFN0cmVhbVVuc2NoZWR1bGVGcm9tUnVuTG9vcChtX3JlYWRTdHJlYW0uZ2V0
KCksIGxvYWRlclJ1bkxvb3AoKSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKLSAgICBDRldyaXRl
U3RyZWFtVW5zY2hlZHVsZUZyb21SdW5Mb29wKG1fd3JpdGVTdHJlYW0uZ2V0KCksIGxvYWRlclJ1
bkxvb3AoKSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKLSNlbHNlCi0gICAgQ0ZSZWFkU3RyZWFt
VW5zY2hlZHVsZUZyb21SdW5Mb29wKG1fcmVhZFN0cmVhbS5nZXQoKSwgQ0ZSdW5Mb29wR2V0Q3Vy
cmVudCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotICAgIENGV3JpdGVTdHJlYW1VbnNjaGVk
dWxlRnJvbVJ1bkxvb3AobV93cml0ZVN0cmVhbS5nZXQoKSwgQ0ZSdW5Mb29wR2V0Q3VycmVudCgp
LCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotI2VuZGlmCisgICAgQ0ZSZWFkU3RyZWFtVW5zY2hl
ZHVsZUZyb21SdW5Mb29wKG1fcmVhZFN0cmVhbS5nZXQoKSwgY2FsbGJhY2tzUnVuTG9vcCgpLCBj
YWxsYmFja3NSdW5Mb29wTW9kZSgpKTsKKyAgICBDRldyaXRlU3RyZWFtVW5zY2hlZHVsZUZyb21S
dW5Mb29wKG1fd3JpdGVTdHJlYW0uZ2V0KCksIGNhbGxiYWNrc1J1bkxvb3AoKSwgY2FsbGJhY2tz
UnVuTG9vcE1vZGUoKSk7CiAKICAgICBDRlJlYWRTdHJlYW1DbG9zZShtX3JlYWRTdHJlYW0uZ2V0
KCkpOwogICAgIENGV3JpdGVTdHJlYW1DbG9zZShtX3dyaXRlU3RyZWFtLmdldCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339409</attachid>
            <date>2018-05-03 08:48:21 -0700</date>
            <delta_ts>2018-05-03 12:17:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185073-20180503084820.patch</filename>
            <type>text/plain</type>
            <size>8141</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ3MmEyZjE0NGMyODEz
NWY0YzNjYmJkMmQwMzc2Yzc1Y2YzMWZmMS4uYmU2MGMyNWQ1ZDdhYWFmOGEwOTE4YTIxZmNlNjUz
NWRlMTk0OGVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE4LTA1LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihpT1MgMTEu
Myk6IENyYXNoZXMgaW4gVGltZXJCYXNlOjp+VGltZXJCYXNlKCkgaW4gVGVuY2VudCB4NWdhbWVo
ZWxwZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NTA3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk4MjEyMjM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBUaGUgZm9sbG93aW5nIGNoYW5n
ZXMgd2VyZSBtYWRlOgorICAgICAgICAtIE1ha2Ugc3VyZSBTb2NrZXRTdHJlYW0gY2FsbGJhY2tz
IGFyZSBhbHdheXMgc2NoZWR1bGVkIG9uIHRoZSByaWdodCBydW5sb29wOgorICAgICAgICAgIFdl
YlRocmVhZFJ1bkxvb3AoKSBvbiBXZWJLaXRMZWdhY3kgaU9TLCBsb2FkZXJSdW5Mb29wKCkgb24g
V2luZG93cyBhbmQKKyAgICAgICAgICBtYWluIHJ1bmxvb3Agb3RoZXJ3aXNlLgorICAgICAgICAt
IFdoZW4gdGhlIFNvY2tldFN0cmVhbSBjYWxsYmFja3MgYXJlIGNhbGxlZCwgdW5jb25kaXRpb25h
bGx5IGNhbGwgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoKQorICAgICAgICAgIGJlZm9yZSBjYWxs
aW5nIG1ldGhvZHMgb24gdGhlIFNvY2tldFN0cmVhbSBjbGllbnQuIFByZXZpb3VzbHksIHRoaXMg
Y29kZSBwYXRoCisgICAgICAgICAgd2FzIHNwZWNpZmljIHRvIFdpbmRvd3MgYnV0IHRoZXJlIGlz
IG5vIHJlYXNvbiB0byBoYXZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgaGVyZS4KKyAgICAgICAg
ICBjYWxsT25NYWluVGhyZWFkQW5kV2FpdCgpIGNhbGxzIHRoZSBmdW5jdGlvbiByaWdodCBhd2F5
IGlmIHdlJ3JlIGFscmVhZHkgb24gdGhlIG1haW4KKyAgICAgICAgICB0aHJlYWQsIHdoaWNoIHdp
bGwgYmUgdGhlIGNhc2Ugb24gb3RoZXIgcGxhdGZvcm0gdGhhbiBXaW5kb3dzLgorCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y2FsbGJhY2tzUnVuTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpj
YWxsYmFja3NSdW5Mb29wTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5k
bGVJbXBsOjpzY2hlZHVsZVN0cmVhbXMpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFt
SGFuZGxlSW1wbDo6cGFjRXhlY3V0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U29j
a2V0U3RyZWFtSGFuZGxlSW1wbDo6ZXhlY3V0ZVBBQ0ZpbGVVUkwpOgorICAgICAgICAoV2ViQ29y
ZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVtb3ZlUEFDUnVuTG9vcFNvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpyZWFkU3RyZWFtQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6d3JpdGVTdHJlYW1D
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpwbGF0
Zm9ybUNsb3NlKToKKwogMjAxOC0wNS0wMiAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxj
bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBSZW1vdmUgdW5uZWVkZWQg
aW5jbHVkZSBvZiBnc3RnbGRpc3BsYXlfd2F5bGFuZC5oIGFmdGVyIHIyMjg4NjYgYW5kIHIyMjkw
MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0
U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAppbmRleCAzM2NhNmNjM2YyNzJj
ZWQ4MzRhYTNkN2FiZjhlY2QzMjU1ODBlYmFiLi45ZWQ1YWEwYzlkOWJmMTNlZWEzMWEyOTU2OGEy
NDk3NTc0ZTU4NmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCkBAIC01
Myw2ICs1MywxMCBAQAogI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1ZGUgIldl
YkNvcmVUaHJlYWRJbnRlcm5hbC5oIgorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKE1BQykKIGV4dGVybiAiQyIgY29uc3QgQ0ZTdHJpbmdSZWYga0NGU3RyZWFtUHJvcGVy
dHlTb3VyY2VBcHBsaWNhdGlvbjsKIGV4dGVybiAiQyIgY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlN0
cmVhbVNvY2tldFNldE5vRGVsYXk7CkBAIC03MSw2ICs3NSwyNiBAQCBXVEZfREVDTEFSRV9DRl9U
WVBFX1RSQUlUKENGSFRUUE1lc3NhZ2UpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRp
YyBpbmxpbmUgQ0ZSdW5Mb29wUmVmIGNhbGxiYWNrc1J1bkxvb3AoKQoreworI2lmIFBMQVRGT1JN
KFdJTikKKyAgICByZXR1cm4gbG9hZGVyUnVuTG9vcCgpOworI2VsaWYgUExBVEZPUk0oSU9TKQor
ICAgIHJldHVybiBXZWJUaHJlYWRSdW5Mb29wKCk7CisjZWxzZQorICAgIHJldHVybiBDRlJ1bkxv
b3BHZXRNYWluKCk7CisjZW5kaWYKK30KKworc3RhdGljIGlubGluZSBhdXRvIGNhbGxiYWNrc1J1
bkxvb3BNb2RlKCkKK3sKKyNpZiBQTEFURk9STShXSU4pCisgICAgcmV0dXJuIGtDRlJ1bkxvb3BE
ZWZhdWx0TW9kZTsKKyNlbHNlCisgICAgcmV0dXJuIGtDRlJ1bkxvb3BDb21tb25Nb2RlczsKKyNl
bmRpZgorfQorCiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBs
KGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNv
dXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmIGF1ZGl0RGF0YSkKICAgICA6IFNvY2tldFN0cmVh
bUhhbmRsZSh1cmwsIGNsaWVudCkKICAgICAsIG1fY29ubmVjdGluZ1N1YnN0YXRlKE5ldykKQEAg
LTExOSwxNCArMTQzLDggQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpzY2hlZHVsZVN0
cmVhbXMoKQogICAgIENGUmVhZFN0cmVhbVNldENsaWVudChtX3JlYWRTdHJlYW0uZ2V0KCksIHN0
YXRpY19jYXN0PENGT3B0aW9uRmxhZ3M+KC0xKSwgcmVhZFN0cmVhbUNhbGxiYWNrLCAmY2xpZW50
Q29udGV4dCk7CiAgICAgQ0ZXcml0ZVN0cmVhbVNldENsaWVudChtX3dyaXRlU3RyZWFtLmdldCgp
LCBzdGF0aWNfY2FzdDxDRk9wdGlvbkZsYWdzPigtMSksIHdyaXRlU3RyZWFtQ2FsbGJhY2ssICZj
bGllbnRDb250ZXh0KTsKIAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICBDRlJlYWRTdHJlYW1TY2hl
ZHVsZVdpdGhSdW5Mb29wKG1fcmVhZFN0cmVhbS5nZXQoKSwgbG9hZGVyUnVuTG9vcCgpLCBrQ0ZS
dW5Mb29wRGVmYXVsdE1vZGUpOwotICAgIENGV3JpdGVTdHJlYW1TY2hlZHVsZVdpdGhSdW5Mb29w
KG1fd3JpdGVTdHJlYW0uZ2V0KCksIGxvYWRlclJ1bkxvb3AoKSwga0NGUnVuTG9vcERlZmF1bHRN
b2RlKTsKLSNlbHNlCi0gICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIENG
UmVhZFN0cmVhbVNjaGVkdWxlV2l0aFJ1bkxvb3AobV9yZWFkU3RyZWFtLmdldCgpLCBDRlJ1bkxv
b3BHZXRDdXJyZW50KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci0gICAgQ0ZXcml0ZVN0cmVh
bVNjaGVkdWxlV2l0aFJ1bkxvb3AobV93cml0ZVN0cmVhbS5nZXQoKSwgQ0ZSdW5Mb29wR2V0Q3Vy
cmVudCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotI2VuZGlmCisgICAgQ0ZSZWFkU3RyZWFt
U2NoZWR1bGVXaXRoUnVuTG9vcChtX3JlYWRTdHJlYW0uZ2V0KCksIGNhbGxiYWNrc1J1bkxvb3Ao
KSwgY2FsbGJhY2tzUnVuTG9vcE1vZGUoKSk7CisgICAgQ0ZXcml0ZVN0cmVhbVNjaGVkdWxlV2l0
aFJ1bkxvb3AobV93cml0ZVN0cmVhbS5nZXQoKSwgY2FsbGJhY2tzUnVuTG9vcCgpLCBjYWxsYmFj
a3NSdW5Mb29wTW9kZSgpKTsKIAogICAgIENGUmVhZFN0cmVhbU9wZW4obV9yZWFkU3RyZWFtLmdl
dCgpKTsKICAgICBDRldyaXRlU3RyZWFtT3BlbihtX3dyaXRlU3RyZWFtLmdldCgpKTsKQEAgLTE2
Nyw2ICsxODUsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnBhY0V4ZWN1dGlvbkNh
bGxiYWNrKHZvaWQqIGNsaWVudCwgQ0ZBcnJheVJlZiBwcm94eQogewogICAgIFNvY2tldFN0cmVh
bUhhbmRsZUltcGwqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFNvY2tldFN0cmVhbUhhbmRsZUltcGwq
PihjbGllbnQpOwogCisgICAgUmVmUHRyPFNvY2tldFN0cmVhbUhhbmRsZT4gcHJvdGVjdG9yKGhh
bmRsZSk7CiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoWyZdIHsKICAgICAgICAgQVNTRVJU
KGhhbmRsZS0+bV9jb25uZWN0aW5nU3Vic3RhdGUgPT0gRXhlY3V0aW5nUEFDRmlsZSk7CiAgICAg
ICAgIC8vIFRoaXMgdGltZSwgdGhlIGFycmF5IHdvbid0IGhhdmUgUEFDIGFzIGEgZmlyc3QgZW50
cnkuCkBAIC0xODMsMTEgKzIwMiw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6ZXhl
Y3V0ZVBBQ0ZpbGVVUkwoQ0ZVUkxSZWYgcGFjRmlsZVVSTCkKICAgICAvLyBDRk5ldHdvcmsgcmV0
dXJucyBhbiBlbXB0eSBwcm94eSBhcnJheSBmb3IgV2ViU29ja2V0IHNjaGVtZXMsIHNvIHVzZSBt
X2h0dHBzVVJMLgogICAgIENGU3RyZWFtQ2xpZW50Q29udGV4dCBjbGllbnRDb250ZXh0ID0geyAw
LCB0aGlzLCByZXRhaW5Tb2NrZXRTdHJlYW1IYW5kbGUsIHJlbGVhc2VTb2NrZXRTdHJlYW1IYW5k
bGUsIGNvcHlQQUNFeGVjdXRpb25EZXNjcmlwdGlvbiB9OwogICAgIG1fcGFjUnVuTG9vcFNvdXJj
ZSA9IGFkb3B0Q0YoQ0ZOZXR3b3JrRXhlY3V0ZVByb3h5QXV0b0NvbmZpZ3VyYXRpb25VUkwocGFj
RmlsZVVSTCwgbV9odHRwc1VSTC5nZXQoKSwgcGFjRXhlY3V0aW9uQ2FsbGJhY2ssICZjbGllbnRD
b250ZXh0KSk7Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgIENGUnVuTG9vcEFkZFNvdXJjZShsb2Fk
ZXJSdW5Mb29wKCksIG1fcGFjUnVuTG9vcFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcERlZmF1bHRN
b2RlKTsKLSNlbHNlCi0gICAgQ0ZSdW5Mb29wQWRkU291cmNlKENGUnVuTG9vcEdldEN1cnJlbnQo
KSwgbV9wYWNSdW5Mb29wU291cmNlLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotI2Vu
ZGlmCisgICAgQ0ZSdW5Mb29wQWRkU291cmNlKGNhbGxiYWNrc1J1bkxvb3AoKSwgbV9wYWNSdW5M
b29wU291cmNlLmdldCgpLCBjYWxsYmFja3NSdW5Mb29wTW9kZSgpKTsKICAgICBtX2Nvbm5lY3Rp
bmdTdWJzdGF0ZSA9IEV4ZWN1dGluZ1BBQ0ZpbGU7CiB9CiAKQEAgLTE5NiwxMSArMjExLDcgQEAg
dm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpyZW1vdmVQQUNSdW5Mb29wU291cmNlKCkKICAg
ICBBU1NFUlQobV9wYWNSdW5Mb29wU291cmNlKTsKIAogICAgIENGUnVuTG9vcFNvdXJjZUludmFs
aWRhdGUobV9wYWNSdW5Mb29wU291cmNlLmdldCgpKTsKLSNpZiBQTEFURk9STShXSU4pCi0gICAg
Q0ZSdW5Mb29wUmVtb3ZlU291cmNlKGxvYWRlclJ1bkxvb3AoKSwgbV9wYWNSdW5Mb29wU291cmNl
LmdldCgpLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwotI2Vsc2UKLSAgICBDRlJ1bkxvb3BSZW1v
dmVTb3VyY2UoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBtX3BhY1J1bkxvb3BTb3VyY2UuZ2V0KCks
IGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci0jZW5kaWYKKyAgICBDRlJ1bkxvb3BSZW1vdmVTb3Vy
Y2UoY2FsbGJhY2tzUnVuTG9vcCgpLCBtX3BhY1J1bkxvb3BTb3VyY2UuZ2V0KCksIGNhbGxiYWNr
c1J1bkxvb3BNb2RlKCkpOwogICAgIG1fcGFjUnVuTG9vcFNvdXJjZSA9IDA7CiB9CiAKQEAgLTQ2
MywxNiArNDc0LDExIEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVhZFN0cmVhbUNh
bGxiYWNrKENGUmVhZFN0cmVhbVJlZiBzdHJlYW0sIENGU3RyZWFtCiAgICAgaWYgKCFoYW5kbGUt
Pm1fcmVhZFN0cmVhbSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oV0lOKQogICAg
IFJlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IHByb3RlY3RvcihoYW5kbGUpOwogICAgIGNhbGxP
bk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CiAgICAgICAgIGlmIChoYW5kbGUtPm1fcmVhZFN0cmVh
bSkKICAgICAgICAgICAgIGhhbmRsZS0+cmVhZFN0cmVhbUNhbGxiYWNrKHR5cGUpOwogICAgIH0p
OwotI2Vsc2UKLSAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgaGFuZGxl
LT5yZWFkU3RyZWFtQ2FsbGJhY2sodHlwZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBTb2NrZXRTdHJl
YW1IYW5kbGVJbXBsOjp3cml0ZVN0cmVhbUNhbGxiYWNrKENGV3JpdGVTdHJlYW1SZWYgc3RyZWFt
LCBDRlN0cmVhbUV2ZW50VHlwZSB0eXBlLCB2b2lkKiBjbGllbnRDYWxsQmFja0luZm8pCkBAIC00
ODMsMTYgKzQ4OSwxMSBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OndyaXRlU3RyZWFt
Q2FsbGJhY2soQ0ZXcml0ZVN0cmVhbVJlZiBzdHJlYW0sIENGU3RyZQogICAgIGlmICghaGFuZGxl
LT5tX3dyaXRlU3RyZWFtKQogICAgICAgICByZXR1cm47CiAKLSNpZiBQTEFURk9STShXSU4pCiAg
ICAgUmVmUHRyPFNvY2tldFN0cmVhbUhhbmRsZT4gcHJvdGVjdG9yKGhhbmRsZSk7CiAgICAgY2Fs
bE9uTWFpblRocmVhZEFuZFdhaXQoWyZdIHsKICAgICAgICAgaWYgKGhhbmRsZS0+bV93cml0ZVN0
cmVhbSkKICAgICAgICAgICAgIGhhbmRsZS0+d3JpdGVTdHJlYW1DYWxsYmFjayh0eXBlKTsKICAg
ICB9KTsKLSNlbHNlCi0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBoYW5kbGUtPndy
aXRlU3RyZWFtQ2FsbGJhY2sodHlwZSk7Ci0jZW5kaWYKIH0KIAogI2lmICFQTEFURk9STShJT1Mp
CkBAIC03MjcsMTMgKzcyOCw4IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cGxhdGZv
cm1DbG9zZSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBQTEFURk9STShXSU4pCi0g
ICAgQ0ZSZWFkU3RyZWFtVW5zY2hlZHVsZUZyb21SdW5Mb29wKG1fcmVhZFN0cmVhbS5nZXQoKSwg
bG9hZGVyUnVuTG9vcCgpLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwotICAgIENGV3JpdGVTdHJl
YW1VbnNjaGVkdWxlRnJvbVJ1bkxvb3AobV93cml0ZVN0cmVhbS5nZXQoKSwgbG9hZGVyUnVuTG9v
cCgpLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOwotI2Vsc2UKLSAgICBDRlJlYWRTdHJlYW1VbnNj
aGVkdWxlRnJvbVJ1bkxvb3AobV9yZWFkU3RyZWFtLmdldCgpLCBDRlJ1bkxvb3BHZXRDdXJyZW50
KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci0gICAgQ0ZXcml0ZVN0cmVhbVVuc2NoZWR1bGVG
cm9tUnVuTG9vcChtX3dyaXRlU3RyZWFtLmdldCgpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCksIGtD
RlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci0jZW5kaWYKKyAgICBDRlJlYWRTdHJlYW1VbnNjaGVkdWxl
RnJvbVJ1bkxvb3AobV9yZWFkU3RyZWFtLmdldCgpLCBjYWxsYmFja3NSdW5Mb29wKCksIGNhbGxi
YWNrc1J1bkxvb3BNb2RlKCkpOworICAgIENGV3JpdGVTdHJlYW1VbnNjaGVkdWxlRnJvbVJ1bkxv
b3AobV93cml0ZVN0cmVhbS5nZXQoKSwgY2FsbGJhY2tzUnVuTG9vcCgpLCBjYWxsYmFja3NSdW5M
b29wTW9kZSgpKTsKIAogICAgIENGUmVhZFN0cmVhbUNsb3NlKG1fcmVhZFN0cmVhbS5nZXQoKSk7
CiAgICAgQ0ZXcml0ZVN0cmVhbUNsb3NlKG1fd3JpdGVTdHJlYW0uZ2V0KCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>