<?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>202551</bug_id>
          
          <creation_ts>2019-10-03 17:12:57 -0700</creation_ts>
          <short_desc>[GTK] Crash in WebChromeClient::createDisplayRefreshMonitor</short_desc>
          <delta_ts>2019-10-04 06:39:27 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>luiz</cc>
    
    <cc>magomez</cc>
    
    <cc>noam</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>zan</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1576650</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-10-03 17:12:57 -0700</bug_when>
    <thetext>I just hit this random crash twice in 15 minutes.

#0  0x00007f46b15b1cd5 in WebKit::WebChromeClient::createDisplayRefreshMonitor(unsigned int) const
    (this=&lt;optimized out&gt;, displayID=0) at /usr/include/c++/9.2.0/bits/unique_ptr.h:352
#1  0x00007f46b2632f35 in WebCore::RenderingUpdateScheduler::createDisplayRefreshMonitor(unsigned int) const
    (this=&lt;optimized out&gt;, displayID=0) at ../Source/WebCore/page/RenderingUpdateScheduler.cpp:91
        monitor = 
          {static isRefPtr = &lt;error reading variable: Missing ELF symbol &quot;WTF::RefPtr&lt;WebCore::DisplayRefreshMonitor, WTF::DumbPtrTraits&lt;WebCore::DisplayRefreshMonitor&gt; &gt;::isRefPtr&quot;.&gt;, m_ptr = 0x55c7b3eb63b0}
#2  0x00007f46b26f4863 in WebCore::DisplayRefreshMonitor::create(WebCore::DisplayRefreshMonitorClient&amp;) (client=...)
    at DerivedSources/ForwardingHeaders/wtf/Optional.h:538
#3  0x00007f46b2701ebd in WebCore::DisplayRefreshMonitorManager::createMonitorForClient(WebCore::DisplayRefreshMonitorClient&amp;) (client=..., this=0x7f46b3a90400 &lt;WebCore::DisplayRefreshMonitorManager::sharedManager()::manager&gt;)
    at ../Source/WebCore/platform/graphics/DisplayRefreshMonitorManager.cpp:53
        monitor = 
          {static isRefPtr = &lt;error reading variable: Missing ELF symbol &quot;WTF::RefPtr&lt;WebCore::DisplayRefreshMonitor, WTF::DumbPtrTraits&lt;WebCore::DisplayRefreshMonitor&gt; &gt;::isRefPtr&quot;.&gt;, m_ptr = 0x7f445fa45800}
        result = &lt;optimized out&gt;
        clientDisplayID = &lt;optimized out&gt;
#4  0x00007f46b2701ebd in WebCore::DisplayRefreshMonitorManager::createMonitorForClient(WebCore::DisplayRefreshMonitorClient&amp;) (this=0x7f46b3a90400 &lt;WebCore::DisplayRefreshMonitorManager::sharedManager()::manager&gt;, client=...)
    at ../Source/WebCore/platform/graphics/DisplayRefreshMonitorManager.cpp:45
        clientDisplayID = &lt;optimized out&gt;
#5  0x00007f46b2701ff9 in WebCore::DisplayRefreshMonitorManager::scheduleAnimation(WebCore::DisplayRefreshMonitorClient&amp;) (client=..., this=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/DisplayRefreshMonitorManager.cpp:93
        monitor = &lt;optimized out&gt;
#6  0x00007f46b2701ff9 in WebCore::DisplayRefreshMonitorManager::scheduleAnimation(WebCore::DisplayRefreshMonitorClient&amp;) (this=&lt;optimized out&gt;, client=...) at ../Source/WebCore/platform/graphics/DisplayRefreshMonitorManager.cpp:88
#7  0x00007f46b263419e in WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate() (this=0x7f447c0a45d0)
    at ../Source/WebCore/page/RenderingUpdateScheduler.cpp:59
#8  0x00007f46b263419e in WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate() (this=0x7f447c0a45d0)
    at ../Source/WebCore/page/RenderingUpdateScheduler.cpp:45
#9  0x00007f46b162157e in WebKit::CompositingCoordinator::purgeBackingStores() (this=0x7f45d8643050)
    at ../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:313
        registeredLayer = @0x7f44550b2038: 0x7f445f82e000
        purgingToggle = {m_scopedVariable = @0x7f45d86430e9, m_originalValue = false}
#10 0x00007f46b1621ec6 in WebKit::LayerTreeHost::invalidate() (this=0x7f45d8643000)
    at ../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:175
#11 0x00007f46b1621f25 in WebKit::DrawingAreaCoordinatedGraphics::discardPreviousLayerTreeHost()
    (this=this@entry=0x7f46a886fa00)
    at ../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:501
#12 0x00007f46b1621f6e in WebKit::DrawingAreaCoordinatedGraphics::~DrawingAreaCoordinatedGraphics()
    (this=0x7f46a886fa00, __in_chrg=&lt;optimized out&gt;)
    at ../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:74
#13 0x00007f46b162200d in WebKit::DrawingAreaCoordinatedGraphics::~DrawingAreaCoordinatedGraphics()
    (this=0x7f46a886fa00, __in_chrg=&lt;optimized out&gt;)
    at ../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:72
#14 0x00007f46b15f70fc in std::default_delete&lt;WebKit::DrawingArea&gt;::operator()(WebKit::DrawingArea*) const
    (this=0x7f46a82de6d8, __ptr=&lt;optimized out&gt;) at /usr/include/c++/9.2.0/bits/unique_ptr.h:75
        sessionID = &lt;optimized out&gt;
        isRunningModal = &lt;optimized out&gt;
        webProcess = &lt;optimized out&gt;
#15 0x00007f46b15f70fc in std::unique_ptr&lt;WebKit::DrawingArea, std::default_delete&lt;WebKit::DrawingArea&gt; &gt;::reset(WebKit::DrawingArea*) (__p=&lt;optimized out&gt;, this=0x7f46a82de6d8) at /usr/include/c++/9.2.0/bits/unique_ptr.h:394
        sessionID = &lt;optimized out&gt;
        isRunningModal = &lt;optimized out&gt;
        webProcess = &lt;optimized out&gt;
#16 0x00007f46b15f70fc in std::unique_ptr&lt;WebKit::DrawingArea, std::default_delete&lt;WebKit::DrawingArea&gt; &gt;::operator=(decltype(nullptr)) (this=0x7f46a82de6d8) at /usr/include/c++/9.2.0/bits/unique_ptr.h:328
        sessionID = &lt;optimized out&gt;
        isRunningModal = &lt;optimized out&gt;
        webProcess = &lt;optimized out&gt;
#17 0x00007f46b15f70fc in WebKit::WebPage::close() (this=0x7f46a82de680) at ../Source/WebKit/WebProcess/WebPage/WebPage.cpp:1423
        sessionID = &lt;optimized out&gt;
        isRunningModal = &lt;optimized out&gt;
        webProcess = &lt;optimized out&gt;
#18 0x00007f46b15f70fc in WebKit::WebPage::close() (this=this@entry=0x7f46a82de680) at ../Source/WebKit/WebProcess/WebPage/WebPage.cpp:1334
#19 0x00007f46b115394f in IPC::callMemberFunctionImpl&lt;WebKit::WebPage, void (WebKit::WebPage::*)(), std::tuple&lt;&gt;&gt;(WebKit::WebPage*, void (WebKit::WebPage::*)(), std::tuple&lt;&gt;&amp;&amp;, std::integer_sequence&lt;unsigned long&gt;) (args=&lt;synthetic pointer&gt;, function=&lt;optimized out&gt;, object=0x7f46a82de680) at ../Source/WebKit/Platform/IPC/HandleMessage.h:45
#20 0x00007f46b115394f in IPC::callMemberFunction&lt;WebKit::WebPage, void (WebKit::WebPage::*)(), std::tuple&lt;&gt;, std::integer_sequence&lt;unsigned long&gt; &gt;(std::tuple&lt;&gt;&amp;&amp;, WebKit::WebPage*, void (WebKit::WebPage::*)()) (args=&lt;synthetic pointer&gt;, function=&lt;optimized out&gt;, object=0x7f46a82de680) at ../Source/WebKit/Platform/IPC/HandleMessage.h:47
#21 0x00007f46b115394f in IPC::handleMessage&lt;Messages::WebPage::Close, WebKit::WebPage, void (WebKit::WebPage::*)()&gt;(IPC::Decoder&amp;, WebKit::WebPage*, void (WebKit::WebPage::*)()) (decoder=..., function=&lt;optimized out&gt;, object=0x7f46a82de680) at ../Source/WebKit/Platform/IPC/HandleMessage.h:120
#22 0x00007f46b115394f in WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection&amp;, IPC::Decoder&amp;) (this=0x7f46a82de680, connection=..., decoder=...) at DerivedSources/WebKit/WebPageMessageReceiver.cpp:1298
#23 0x00007f46b123ac63 in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;) (this=this@entry=0x7f46a86fe068, connection=..., decoder=...) at ../Source/WebKit/Platform/IPC/MessageReceiverMap.cpp:123
        messageReceiver = &lt;optimized out&gt;
#24 0x00007f46b148a7bb in WebKit::WebProcess::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) (this=0x7f46a86fe000, connection=..., decoder=...) at ../Source/WebKit/Shared/AuxiliaryProcess.h:88
#25 0x00007f46b1234834 in IPC::Connection::dispatchMessage(IPC::Decoder&amp;) (this=0x7f46a88e6000, decoder=...) at ../Source/WebKit/Platform/IPC/Connection.cpp:939
#26 0x00007f46b1235aad in IPC::Connection::dispatchMessage(std::unique_ptr&lt;IPC::Decoder, std::default_delete&lt;IPC::Decoder&gt; &gt;) (this=0x7f46a88e6000, message=std::unique_ptr&lt;IPC::Decoder&gt; = {...}) at /usr/include/c++/9.2.0/bits/unique_ptr.h:352
        isDispatchingMessageWhileWaitingForSyncReply = &lt;optimized out&gt;
        oldDidReceiveInvalidMessage = false
#27 0x00007f46b1236b7f in IPC::Connection::dispatchOneIncomingMessage() (this=0x7f46a88e6000) at /usr/include/c++/9.2.0/bits/move.h:74
        message = std::unique_ptr&lt;IPC::Decoder&gt; = {get() = 0x0}
#28 0x00007f46af19f1bc in WTF::Function&lt;void ()&gt;::operator()() const (this=&lt;synthetic pointer&gt;) at ../Source/WTF/wtf/Function.h:76
        function = {m_callableWrapper = std::unique_ptr&lt;WTF::Detail::CallableWrapperBase&lt;void&gt;&gt; = {get() = 0x7f46006c0b70}}
        functionsHandled = 4
        functionsToHandle = 5
#29 0x00007f46af19f1bc in WTF::RunLoop::performWork() (this=0x7f46a88f9000) at ../Source/WTF/wtf/RunLoop.cpp:124
        function = {m_callableWrapper = std::unique_ptr&lt;WTF::Detail::CallableWrapperBase&lt;void&gt;&gt; = {get() = 0x7f46006c0b70}}
        functionsHandled = 4
        functionsToHandle = 5
#30 0x00007f46af1ebd5d in WTF::RunLoop::&lt;lambda(gpointer)&gt;::operator() (__closure=0x0, userData=&lt;optimized out&gt;) at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:68
#31 0x00007f46af1ebd5d in WTF::RunLoop::&lt;lambda(gpointer)&gt;::_FUN(gpointer) () at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:70
#32 0x00007f46af8414ae in g_main_dispatch (context=0x55c7b22a7d90) at ../glib/gmain.c:3180
        dispatch = 0x7f46af1ebd70 &lt;WTF::&lt;lambda(GSource*, GSourceFunc, gpointer)&gt;::_FUN(GSource *, GSourceFunc, gpointer)&gt;
        prev_source = 0x0
        was_in_call = 0
        user_data = 0x7f46a88f9000
        callback = 0x7f46af1ebd50 &lt;WTF::RunLoop::&lt;lambda(gpointer)&gt;::_FUN(gpointer)&gt;
        cb_funcs = 0x7f46af916280 &lt;g_source_callback_funcs&gt;
        cb_data = 0x55c7b24a0a80
        need_destroy = &lt;optimized out&gt;
        source = 0x55c7b2426600
        current = 0x55c7b22b0840
        i = 0
        __FUNCTION__ = &quot;g_main_dispatch&quot;
#33 0x00007f46af8414ae in g_main_context_dispatch (context=context@entry=0x55c7b22a7d90) at ../glib/gmain.c:3845
#34 0x00007f46af841860 in g_main_context_iterate (context=0x55c7b22a7d90, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at ../glib/gmain.c:3918
        max_priority = 2147483647
        timeout = 17
        some_ready = 1
        nfds = &lt;optimized out&gt;
        allocated_nfds = &lt;optimized out&gt;
        fds = 0x55c7b3cad240
#35 0x00007f46af841b53 in g_main_loop_run (loop=0x55c7b23465e0) at ../glib/gmain.c:4112
        __FUNCTION__ = &quot;g_main_loop_run&quot;
#36 0x00007f46af1ec7d0 in WTF::RunLoop::run() () at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:96
        runLoop = @0x7f46a88f9000: {&lt;WTF::FunctionDispatcher&gt; = {&lt;WTF::ThreadSafeRefCounted&lt;WTF::FunctionDispatcher, (WTF::DestructionThread)0&gt;&gt; = {&lt;WTF::ThreadSafeRefCountedBase&gt; = {m_refCount = {&lt;std::__atomic_base&lt;unsigned int&gt;&gt; = {static _S_alignment = 4, _M_i = 112}, static is_always_lock_free = true}}, &lt;No data fields&gt;}, _vptr.FunctionDispatcher = 0x7f46af4c04c8 &lt;vtable for WTF::RunLoop+16&gt;}, m_functionQueueLock = {static isHeldBit = 1 &apos;\001&apos;, static hasParkedBit = 2 &apos;\002&apos;, m_byte = {value = {&lt;std::__atomic_base&lt;unsigned char&gt;&gt; = {static _S_alignment = 1, _M_i = 0 &apos;\000&apos;}, static is_always_lock_free = true}}}, m_functionQueue = {m_start = 102, m_end = 2, m_buffer = {&lt;WTF::VectorBufferBase&lt;WTF::Function&lt;void()&gt; &gt;&gt; = {m_buffer = 0x7f4454c5c000, m_capacity = 108, m_size = 0}, &lt;No data fields&gt;}}, m_mainContext = {m_ptr = 0x55c7b22a7d90}, m_mainLoops = {&lt;WTF::VectorBuffer&lt;WTF::GRefPtr&lt;_GMainLoop&gt;, 0&gt;&gt; = {&lt;WTF::VectorBufferBase&lt;WTF::GRefPtr&lt;_GMainLoop&gt; &gt;&gt; = {m_buffer = 0x7f46a88fc100, m_capacity = 16, m_size = 1}, &lt;No data fields&gt;}, &lt;No data fields&gt;}, m_source = {m_ptr = 0x55c7b2426600}}
        mainContext = 0x55c7b22a7d90
        innermostLoop = 0x55c7b23465e0
        nestedMainLoop = &lt;optimized out&gt;
#37 0x00007f46b162fcaa in WebKit::AuxiliaryProcessMain&lt;WebKit::WebProcess, WebKit::WebProcessMain&gt;(int, char**) (argc=3, argv=&lt;optimized out&gt;) at ../Source/WebKit/Shared/unix/AuxiliaryProcessMain.h:47
        auxiliaryMain = {&lt;WebKit::AuxiliaryProcessMainBase&gt; = {_vptr.AuxiliaryProcessMainBase = 0x7f46b389fca8 &lt;vtable for WebKit::WebProcessMain+16&gt;, m_parameters = {uiProcessName = {static MaxLength = 2147483647, m_impl = {static isRefPtr = &lt;error reading variable: Missing ELF symbol &quot;WTF::RefPtr&lt;WTF::StringImpl, WTF::DumbPtrTraits&lt;WTF::StringImpl&gt; &gt;::isRefPtr&quot;.&gt;, m_ptr = 0x0}}, clientIdentifier = {static MaxLength = 2147483647, m_impl = {static isRefPtr = &lt;error reading variable: Missing ELF symbol &quot;WTF::RefPtr&lt;WTF::StringImpl, WTF::DumbPtrTraits&lt;WTF::StringImpl&gt; &gt;::isRefPtr&quot;.&gt;, m_ptr = 0x0}}, processIdentifier = {&lt;WTF::constexpr_Optional_base&lt;WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt; &gt;&gt; = {init_ = true, storage_ = {dummy_ = 79 &apos;O&apos;, value_ = {&lt;WTF::ObjectIdentifierBase&gt; = {&lt;No data fields&gt;}, m_identifier = 79}}}, &lt;No data fields&gt;}, connectionIdentifier = 37, extraInitializationData = {m_impl = {static m_maxLoad = 2, static m_minLoad = 6, m_table = 0x0, m_tableSize = 0, m_tableSizeMask = 0, m_keyCount = 0, m_deletedCount = 0}}, processType = WebKit::AuxiliaryProcess::ProcessType::WebContent}}, &lt;No data fields&gt;}
#38 0x00007f46b078f173 in __libc_start_main (main=0x55c7b1427780 &lt;main(int, char**)&gt;, argc=3, argv=0x7ffedaa06088, init=&lt;optimized out&gt;, fini=&lt;optimized out&gt;, rtld_fini=&lt;optimized out&gt;, stack_end=0x7ffedaa06078) at ../csu/libc-start.c:308
        result = &lt;optimized out&gt;
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -1403244204849031093, 94316160776144, 140732566364288, 0, 0, -5119331564106737589, -5078742471025420213}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7ffedaa060a8, 0x7f46b3ad7130}, data = {prev = 0x0, cleanup = 0x0, canceltype = -627023704}}}
        not_first_call = &lt;optimized out&gt;
#39 0x000055c7b14277fe in _start () at ../sysdeps/x86_64/start.S:120

Oddly, one of the crashes took down about 10 different browser tabs that were *not* related. It&apos;s the third time I&apos;ve noticed this oddity that I&apos;ve never seen until recently. That must be a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576789</commentid>
    <comment_count>1</comment_count>
      <attachid>380206</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-04 02:41:09 -0700</bug_when>
    <thetext>Created attachment 380206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576801</commentid>
    <comment_count>2</comment_count>
      <attachid>380206</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2019-10-04 03:17:06 -0700</bug_when>
    <thetext>Comment on attachment 380206
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:213
&gt; +    if (!m_rootLayer &amp;&amp; !isFlushingLayerChanges())

wouldn&apos;t this be if (m_rootLayer &amp;&amp; !isFlushingLayerChanges())? As the should only notify if the root layer is still alive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576802</commentid>
    <comment_count>3</comment_count>
      <attachid>380206</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-04 03:22:40 -0700</bug_when>
    <thetext>Comment on attachment 380206
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:71
&gt; +    ASSERT(!m_rootLayer);

Where does this get nulled out now, in a way that it would make the assertion succeed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576803</commentid>
    <comment_count>4</comment_count>
      <attachid>380206</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-04 03:38:30 -0700</bug_when>
    <thetext>Comment on attachment 380206
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:71
&gt;&gt; +    ASSERT(!m_rootLayer);
&gt; 
&gt; Where does this get nulled out now, in a way that it would make the assertion succeed?

In invalidate().

&gt;&gt; Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:213
&gt;&gt; +    if (!m_rootLayer &amp;&amp; !isFlushingLayerChanges())
&gt; 
&gt; wouldn&apos;t this be if (m_rootLayer &amp;&amp; !isFlushingLayerChanges())? As the should only notify if the root layer is still alive.

Oops, indeed, good catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576808</commentid>
    <comment_count>5</comment_count>
      <attachid>380210</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-04 04:24:42 -0700</bug_when>
    <thetext>Created attachment 380210
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576819</commentid>
    <comment_count>6</comment_count>
      <attachid>380210</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-04 05:20:07 -0700</bug_when>
    <thetext>Comment on attachment 380210
Updated patch

Didn&apos;t see CompositingCoordinator::invalidate() before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576838</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-04 06:39:27 -0700</bug_when>
    <thetext>Committed r250717: &lt;https://trac.webkit.org/changeset/250717&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380206</attachid>
            <date>2019-10-04 02:41:09 -0700</date>
            <delta_ts>2019-10-04 04:24:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-da-crash.diff</filename>
            <type>text/plain</type>
            <size>16404</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMDM0MDRlY2M2NmIuLmZhNDZhZDdmOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQxIEBACisyMDE5LTEwLTA0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXSBDcmFzaCBpbiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURp
c3BsYXlSZWZyZXNoTW9uaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAyNTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIGNyYXNoIGhhcHBlbnMgd2hlbiB0aGUgZHJhd2luZyBhcmVhIGlzIGRl
c3Ryb3llZCBkdWUgdG8gYSBwYWdlIGNsb3NlLiBUaGUgbGF5ZXIgdHJlZSBob3N0IGlzIGludmFs
aWRhdGVkCisgICAgICAgIGNhdXNpbmcgYSBsYXllciBmbHVzaCB0aGF0IGVuZHMgdXAgdHJ5aW5n
IHRvIGNyZWF0ZSBhIGRpc3BsYXkgcmVmcmVzaCBtb25pdG9yLCB3aGljaCByZXF1aXJlcyB0aGUg
ZHJhd2luZworICAgICAgICBhcmVhLiBXZSBuZWVkIHRvIG51bGwtY2hlY2sgdGhlIGRyYXdpbmcg
YXJlYSBpbiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcigpIGJ1
dCB3ZSBzaG91bGQKKyAgICAgICAgYWxzbyBlbnN1cmUgdGhhdCBsYXllciBmbHVzaCBpcyBub3Qg
cGVyZm9ybWVkIGFmdGVyIGxheWVyIHRyZWUgaG9zdCBpcyBkZXN0cm95ZWQuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yIGNv
bnN0KTogTnVsbC1jaGVjayBkcmF3aW5nIGFyZWEgYmVmb3JlIHVzaW5nIGl0LgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRp
bmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yKTogUmVjZWl2ZSBhIFdlYlBhZ2UgaW5zdGVhZCBvZiBhIFdlYkNv
cmU6OlBhZ2UgYW5kCisgICAgICAgIGNyZWF0ZSB0aGUgcm9vdCBsYXllciBoZXJlLgorICAgICAg
ICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjp+Q29tcG9zaXRpbmdDb29yZGluYXRv
cik6IERvIG5vdCBwdXJnZSBiYWNraW5nIHN0b3JlcyBhZ2FpbiwgaW52YWxpZGF0ZSBzaG91bGQK
KyAgICAgICAgYWx3YXlzIGJlIGNhbGxlZCByaWdodCBiZWZvcmUgdGhlIG9iamVjdCBpcyBkZXN0
cm95ZWQuCisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmZsdXNoUGVu
ZGluZ0xheWVyQ2hhbmdlcyk6IEdldCBXZWJDb3JlOjpQYWdlIGZyb20gV2ViUGFnZS4KKyAgICAg
ICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6dGltZXN0YW1wIGNvbnN0KTogRGl0
dG8uCisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnN5bmNEaXNwbGF5
U3RhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6
bm90aWZ5Rmx1c2hSZXF1aXJlZCk6IERvIG5vdCBjb250aW51ZSBpZiBtX3Jvb3RMYXllciBpcyBu
dWxscHRyLgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpkZXZpY2VT
Y2FsZUZhY3RvciBjb25zdCk6IEdldCBXZWJDb3JlOjpQYWdlIGZyb20gV2ViUGFnZS4KKyAgICAg
ICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6cGFnZVNjYWxlRmFjdG9yIGNvbnN0
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNyZWF0
ZUdyYXBoaWNzTGF5ZXIpOiBDYWxsIGF0dGFjaExheWVyKCkgaW5zdGVhZCBvZiBkdXBsaWNhdGlu
ZyB0aGUgY29kZS4KKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6c2V0
VmlzaWJsZUNvbnRlbnRzUmVjdCk6IEdldCBXZWJDb3JlOjpQYWdlIGZyb20gV2ViUGFnZS4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGlu
Z0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvRHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzOjpkaXNjYXJkUHJldmlvdXNMYXll
clRyZWVIb3N0KTogRG8gbm90IGNhbGwgTGF5ZXJUcmVlSG9zdDo6aW52YWxpZGF0ZSgpCisgICAg
ICAgIHRoYXQgaGFzIGJlZW4gcmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJUcmVlSG9zdDo6TGF5ZXJUcmVlSG9zdCk6IENvbnN0cnVjdCB0aGUgY29vcmRpbmF0b3Ig
YWZ0ZXIgdGhlIHNjZW5lSW50ZWdyYXRpb24uCisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhv
c3Q6On5MYXllclRyZWVIb3N0KTogSW52YWxpZGF0ZSBldmVyeXRoaW5nIGhlcmUgbm93LiBXZSBk
b24ndCByZWFsbHkgbmVlZCBpbnZhbGlkYXRlKCkKKyAgICAgICAgbWV0aG9kIHNpbmNlIExheWVy
VHJlZUhvc3QgaXMgbm90IHJlZmNvdW50ZWQgYW5kIHdlIGFsd2F5cyBjYWxsZWQgaW52YWxpZGF0
ZSByaWdodCBiZWZvcmUgZGVsZXRpbmcgdGhlIG9iamVjdC4KKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlSG9zdDo6bGF5ZXJGbHVzaFRpbWVyRmlyZWQpOiBUaGlzIGNhbid0IGhhcHBlbiBvbiBp
bnZhbGlkIHN0YXRlIGFueW1vcmUuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlSG9zdC5oOgorCiAyMDE5LTEwLTA0ICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFJF
R1JFU1NJT04ocjI1MDY3Myk6IGNvbm5lY3Rpb24gdG8gbmV0d29yayBwcm9jZXNzIGlzIGJyb2tl
biBhZnRlciByMjUwNjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDNmNTJjMmQxODAzLi4y
OWYyNTMwNzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTg5MSw3ICs4OTEsOSBAQCBH
cmFwaGljc0xheWVyRmFjdG9yeSogV2ViQ2hyb21lQ2xpZW50OjpncmFwaGljc0xheWVyRmFjdG9y
eSgpIGNvbnN0CiAKIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJ
RCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wYWdlLmRyYXdpbmdBcmVhKCktPmNyZWF0ZURpc3Bs
YXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpOworICAgIGlmIChhdXRvKiBkcmF3aW5nQXJlYSA9
IG1fcGFnZS5kcmF3aW5nQXJlYSgpKQorICAgICAgICByZXR1cm4gZHJhd2luZ0FyZWEtPmNyZWF0
ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpOworICAgIHJldHVybiBudWxscHRyOwog
fQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5n
Q29vcmRpbmF0b3IuY3BwCmluZGV4IDllNTZkY2UxYTgxLi5jMDFhYmU2NWI5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBA
IC01MCwyMCArNTAsMjUgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLUNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3Io
UGFnZSogcGFnZSwgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Q2xpZW50JiBjbGllbnQpCitDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yKFdlYlBhZ2UmIHBhZ2Us
IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OkNsaWVudCYgY2xpZW50KQogICAgIDogbV9wYWdlKHBh
Z2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3BhaW50aW5nRW5naW5lKE5pY29z
aWE6OlBhaW50aW5nRW5naW5lOjpjcmVhdGUoKSkKIHsKICAgICBtX25pY29zaWEuc2NlbmUgPSBO
aWNvc2lhOjpTY2VuZTo6Y3JlYXRlKCk7CiAgICAgbV9zdGF0ZS5uaWNvc2lhLnNjZW5lID0gbV9u
aWNvc2lhLnNjZW5lOworCisgICAgbV9yb290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUo
dGhpcywgKnRoaXMpOworI2lmbmRlZiBOREVCVUcKKyAgICBtX3Jvb3RMYXllci0+c2V0TmFtZSgi
Q29tcG9zaXRpbmdDb29yZGluYXRvciByb290IGxheWVyIik7CisjZW5kaWYKKyAgICBtX3Jvb3RM
YXllci0+c2V0RHJhd3NDb250ZW50KGZhbHNlKTsKKyAgICBtX3Jvb3RMYXllci0+c2V0U2l6ZSht
X3BhZ2Uuc2l6ZSgpKTsKIH0KIAogQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6fkNvbXBvc2l0aW5n
Q29vcmRpbmF0b3IoKQogewotICAgIG1faXNEZXN0cnVjdGluZyA9IHRydWU7Ci0KLSAgICBwdXJn
ZUJhY2tpbmdTdG9yZXMoKTsKKyAgICBBU1NFUlQoIW1fcm9vdExheWVyKTsKIAogICAgIGZvciAo
YXV0byYgcmVnaXN0ZXJlZExheWVyIDogbV9yZWdpc3RlcmVkTGF5ZXJzLnZhbHVlcygpKQogICAg
ICAgICByZWdpc3RlcmVkTGF5ZXItPnNldENvb3JkaW5hdG9yKG51bGxwdHIpOwpAQCAtMTE5LDcg
KzEyNCw3IEBAIGJvb2wgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJD
aGFuZ2VzKCkKICAgICBpZiAobV9vdmVybGF5Q29tcG9zaXRpbmdMYXllcikKICAgICAgICAgbV9v
dmVybGF5Q29tcG9zaXRpbmdMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKEZsb2F0UmVjdChG
bG9hdFBvaW50KCksIG1fcm9vdExheWVyLT5zaXplKCkpKTsKIAotICAgIGJvb2wgZGlkU3luYyA9
IG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRp
bmdTdWJmcmFtZXMoKTsKKyAgICBib29sIGRpZFN5bmMgPSBtX3BhZ2UuY29yZVBhZ2UoKS0+bWFp
bkZyYW1lKCkudmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMo
KTsKIAogICAgIGF1dG8mIGNvb3JkaW5hdGVkTGF5ZXIgPSBkb3duY2FzdDxDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI+KCptX3Jvb3RMYXllcik7CiAgICAgY29vcmRpbmF0ZWRMYXllci51cGRhdGVD
b250ZW50QnVmZmVyc0luY2x1ZGluZ1N1YkxheWVycygpOwpAQCAtMTY5LDcgKzE3NCw3IEBAIGJv
b2wgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkKIAog
ZG91YmxlIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnRpbWVzdGFtcCgpIGNvbnN0CiB7Ci0gICAg
YXV0byogZG9jdW1lbnQgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCk7CisgICAgYXV0
byogZG9jdW1lbnQgPSBtX3BhZ2UuY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKTsK
ICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gZG9jdW1l
bnQtPmRvbVdpbmRvdygpID8gZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5ub3dUaW1lc3RhbXAoKSA6
IGRvY3VtZW50LT5tb25vdG9uaWNUaW1lc3RhbXAoKTsKQEAgLTE3Nyw3ICsxODIsNyBAQCBkb3Vi
bGUgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6dGltZXN0YW1wKCkgY29uc3QKIAogdm9pZCBDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjpzeW5jRGlzcGxheVN0YXRlKCkKIHsKLSAgICBtX3BhZ2UtPm1h
aW5GcmFtZSgpLnZpZXcoKS0+dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSgp
OworICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPnVwZGF0ZUxheW91
dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUoKTsKIH0KIAogZG91YmxlIENvbXBvc2l0aW5nQ29v
cmRpbmF0b3I6Om5leHRBbmltYXRpb25TZXJ2aWNlVGltZSgpIGNvbnN0CkBAIC0xOTgsMTggKzIw
Myw2IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6aW5pdGlhbGl6ZVJvb3RDb21wb3Np
dGluZ0xheWVySWZOZWVkZWQoKQogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKIH0KIAot
dm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVSb290TGF5ZXIoY29uc3QgSW50U2l6
ZSYgc2l6ZSkKLXsKLSAgICBBU1NFUlQoIW1fcm9vdExheWVyKTsKLSAgICAvLyBDcmVhdGUgYSBy
b290IGxheWVyLgotICAgIG1fcm9vdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMs
ICp0aGlzKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgbV9yb290TGF5ZXItPnNldE5hbWUoIkNvbXBv
c2l0aW5nQ29vcmRpbmF0b3Igcm9vdCBsYXllciIpOwotI2VuZGlmCi0gICAgbV9yb290TGF5ZXIt
PnNldERyYXdzQ29udGVudChmYWxzZSk7Ci0gICAgbV9yb290TGF5ZXItPnNldFNpemUoc2l6ZSk7
Ci19Ci0KIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6c3luY0xheWVyU3RhdGUoKQogewog
ICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKQEAgLTIxNywzMiArMjEwLDI0IEBAIHZvaWQg
Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6c3luY0xheWVyU3RhdGUoKQogCiB2b2lkIENvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciop
CiB7Ci0gICAgaWYgKCFtX2lzRGVzdHJ1Y3RpbmcgJiYgIWlzRmx1c2hpbmdMYXllckNoYW5nZXMo
KSkKKyAgICBpZiAoIW1fcm9vdExheWVyICYmICFpc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzKCkpCiAg
ICAgICAgIG1fY2xpZW50Lm5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogZmxvYXQgQ29tcG9z
aXRpbmdDb29yZGluYXRvcjo6ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAogewotICAgIHJldHVy
biBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIG1fcGFnZS5jb3JlUGFn
ZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpOwogfQogCiBmbG9hdCBDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yOjpwYWdlU2NhbGVGYWN0b3IoKSBjb25zdAogewotICAgIHJldHVybiBtX3BhZ2UtPnBhZ2VT
Y2FsZUZhY3RvcigpOworICAgIHJldHVybiBtX3BhZ2UuY29yZVBhZ2UoKS0+cGFnZVNjYWxlRmFj
dG9yKCk7CiB9CiAKIFJlZjxHcmFwaGljc0xheWVyPiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpj
cmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXI6OlR5cGUgbGF5ZXJUeXBlLCBHcmFwaGlj
c0xheWVyQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgYXV0byBsYXllciA9IGFkb3B0UmVmKCpuZXcg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyVHlwZSwgY2xpZW50KSk7Ci0gICAgbGF5ZXIt
PnNldENvb3JkaW5hdG9yKHRoaXMpOwotICAgIHsKLSAgICAgICAgYXV0byYgY29tcG9zaXRpb25M
YXllciA9IGxheWVyLT5jb21wb3NpdGlvbkxheWVyKCk7Ci0gICAgICAgIG1fbmljb3NpYS5zdGF0
ZS5sYXllcnMuYWRkKGNvbXBvc2l0aW9uTGF5ZXIpOwotICAgICAgICBjb21wb3NpdGlvbkxheWVy
LT5zZXRTY2VuZUludGVncmF0aW9uKG1fY2xpZW50LnNjZW5lSW50ZWdyYXRpb24oKSk7Ci0gICAg
fQotICAgIG1fcmVnaXN0ZXJlZExheWVycy5hZGQobGF5ZXItPmlkKCksIGxheWVyLnB0cigpKTsK
LSAgICBsYXllci0+c2V0TmVlZHNWaXNpYmxlUmVjdEFkanVzdG1lbnQoKTsKLSAgICBub3RpZnlG
bHVzaFJlcXVpcmVkKGxheWVyLnB0cigpKTsKKyAgICBhdHRhY2hMYXllcihsYXllci5wdHIoKSk7
CiAgICAgcmV0dXJuIGxheWVyOwogfQogCkBAIC0yNjEsNyArMjQ2LDcgQEAgdm9pZCBDb21wb3Np
dGluZ0Nvb3JkaW5hdG9yOjpzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCkKICAgICAgICAgICAgIHJlZ2lzdGVyZWRMYXllci0+c2V0TmVlZHNWaXNpYmxlUmVjdEFk
anVzdG1lbnQoKTsKICAgICB9CiAKLSAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX3BhZ2UtPm1haW5G
cmFtZSgpLnZpZXcoKTsKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX3BhZ2UuY29yZVBhZ2UoKS0+
bWFpbkZyYW1lKCkudmlldygpOwogICAgIGlmICh2aWV3LT51c2VGaXhlZExheW91dCgpICYmIGNv
bnRlbnRzUmVjdERpZENoYW5nZSkgewogICAgICAgICAvLyBSb3VuZCB0aGUgcmVjdCBpbnN0ZWFk
IG9mIGVuY2xvc2luZyBpdCB0byBtYWtlIHN1cmUgdGhhdCBpdHMgc2l6ZSBzdGF5cwogICAgICAg
ICAvLyB0aGUgc2FtZSB3aGlsZSBwYW5uaW5nLiBUaGlzIGNhbiBoYXZlIG5hc3R5IGVmZmVjdHMg
b24gbGF5b3V0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29v
cmRpbmF0b3IuaAppbmRleCA3OWNjY2NiMWRmNC4uNzk2MGQ0MTdjM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9z
aXRpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oCkBAIC0yNCwxMSAr
MjQsMTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIENvbXBvc2l0aW5nQ29vcmRpbmF0b3JfaAotI2RlZmluZSBDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogCisj
aW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KQEAgLTQ2LDcgKzQ2LDYgQEAgY2xhc3Mg
U2NlbmVJbnRlZ3JhdGlvbjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7Ci1jbGFzcyBQYWdlOwogfQogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTY0LDcgKzYzLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIFJlZlB0
cjxOaWNvc2lhOjpTY2VuZUludGVncmF0aW9uPiBzY2VuZUludGVncmF0aW9uKCkgPSAwOwogICAg
IH07CiAKLSAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yKFdlYkNvcmU6OlBhZ2UqLCBDb21wb3Np
dGluZ0Nvb3JkaW5hdG9yOjpDbGllbnQmKTsKKyAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yKFdl
YlBhZ2UmLCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpDbGllbnQmKTsKICAgICB2aXJ0dWFsIH5D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yKCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKQEAgLTc3
LDcgKzc2LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAgICB2b2lkIHJlbmRlck5leHRGcmFtZSgpOwogCi0g
ICAgdm9pZCBjcmVhdGVSb290TGF5ZXIoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdExh
eWVyLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogcm9vdENvbXBvc2l0aW5n
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RDb21wb3NpdGluZ0xheWVyOyB9CiAKQEAgLTEx
Myw3ICsxMTEsNyBAQCBwcml2YXRlOgogCiAgICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0Owog
Ci0gICAgV2ViQ29yZTo6UGFnZSogbV9wYWdlOworICAgIFdlYlBhZ2UmIG1fcGFnZTsKICAgICBD
b21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpDbGllbnQmIG1fY2xpZW50OwogCiAgICAgUmVmUHRyPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVyOwpAQCAtMTMxLDcgKzEyOSw2IEBAIHBy
aXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5pY29zaWE6OlBhaW50aW5nRW5naW5lPiBtX3Bh
aW50aW5nRW5naW5lOwogCiAgICAgLy8gV2UgZG9uJ3Qgc2VuZCB0aGUgbWVzc2FnZXMgcmVsYXRl
ZCB0byByZWxlYXNpbmcgcmVzb3VyY2VzIHRvIHJlbmRlcmVyIGR1cmluZyBwdXJnaW5nLCBiZWNh
dXNlIHJlbmRlcmVyIGFscmVhZHkgaGFkIHJlbW92ZWQgYWxsIHJlc291cmNlcy4KLSAgICBib29s
IG1faXNEZXN0cnVjdGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHVyZ2luZyB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2lzRmx1c2hpbmdMYXllckNoYW5nZXMgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9zaG91bGRTeW5jRnJhbWUgeyBmYWxzZSB9OwpAQCAtMTQ1LDUgKzE0MiwzIEBAIHByaXZh
dGU6CiB9CiAKICNlbmRpZiAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBDb21wb3Np
dGluZ0Nvb3JkaW5hdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvRHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzLmNwcAppbmRleCBjMzVmODcyZmMzNC4u
ZGM0MTU3ZmJjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0RyYXdpbmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKQEAgLTc5LDEyICs3OSw3IEBAIERy
YXdpbmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBo
aWNzKFdlYlBhZ2UmIHdlYlBhZ2UsCiAjZW5kaWYKIH0KIAotRHJhd2luZ0FyZWFDb29yZGluYXRl
ZEdyYXBoaWNzOjp+RHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzKCkKLXsKLSAgICBkaXNj
YXJkUHJldmlvdXNMYXllclRyZWVIb3N0KCk7Ci0gICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKLSAg
ICAgICAgbV9sYXllclRyZWVIb3N0LT5pbnZhbGlkYXRlKCk7Ci19CitEcmF3aW5nQXJlYUNvb3Jk
aW5hdGVkR3JhcGhpY3M6On5EcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3MoKSA9IGRlZmF1
bHQ7CiAKIHZvaWQgRHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzOjpzZXROZWVkc0Rpc3Bs
YXkoKQogewpAQCAtNTE3LDEwICs1MTIsNiBAQCB2b2lkIERyYXdpbmdBcmVhQ29vcmRpbmF0ZWRH
cmFwaGljczo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlU29vbigpCiB2b2lkIERyYXdp
bmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGljczo6ZGlzY2FyZFByZXZpb3VzTGF5ZXJUcmVlSG9zdCgp
CiB7CiAgICAgbV9kaXNjYXJkUHJldmlvdXNMYXllclRyZWVIb3N0VGltZXIuc3RvcCgpOwotICAg
IGlmICghbV9wcmV2aW91c0xheWVyVHJlZUhvc3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1f
cHJldmlvdXNMYXllclRyZWVIb3N0LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9wcmV2aW91c0xheWVy
VHJlZUhvc3QgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUhvc3QuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVIb3N0LmNwcAppbmRleCA3MmVkZTJjYmFmZi4uYTQ2M2Y0ZmYxMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVIb3N0LmNwcApAQCAtNDgsMTggKzQ4LDE3IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBMYXllclRyZWVIb3N0OjpMYXllclRyZWVIb3N0KFdlYlBh
Z2UmIHdlYlBhZ2UpCiAgICAgOiBtX3dlYlBhZ2Uod2ViUGFnZSkKLSAgICAsIG1fY29vcmRpbmF0
b3Iod2ViUGFnZS5jb3JlUGFnZSgpLCAqdGhpcykKICAgICAsIG1fY29tcG9zaXRvckNsaWVudCgq
dGhpcykKICAgICAsIG1fc3VyZmFjZShBY2NlbGVyYXRlZFN1cmZhY2U6OmNyZWF0ZSh3ZWJQYWdl
LCAqdGhpcykpCiAgICAgLCBtX3ZpZXdwb3J0Q29udHJvbGxlcih3ZWJQYWdlLnNpemUoKSkKICAg
ICAsIG1fbGF5ZXJGbHVzaFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkxheWVyVHJlZUhv
c3Q6OmxheWVyRmx1c2hUaW1lckZpcmVkKQogICAgICwgbV9zY2VuZUludGVncmF0aW9uKE5pY29z
aWE6OlNjZW5lSW50ZWdyYXRpb246OmNyZWF0ZSgqdGhpcykpCisgICAgLCBtX2Nvb3JkaW5hdG9y
KHdlYlBhZ2UsICp0aGlzKQogewogI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCiAgICAgbV9sYXll
ckZsdXNoVGltZXIuc2V0UHJpb3JpdHkoUnVuTG9vcFNvdXJjZVByaW9yaXR5OjpMYXllckZsdXNo
VGltZXIpOwogICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnNldE5hbWUoIltXZWJLaXRdIExheWVyVHJl
ZUhvc3QiKTsKICNlbmRpZgotICAgIG1fY29vcmRpbmF0b3IuY3JlYXRlUm9vdExheWVyKG1fd2Vi
UGFnZS5zaXplKCkpOwogICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogCiAgICAgaWYgKEZyYW1l
VmlldyogZnJhbWVWaWV3ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKSkgewpAQCAtODQsNyAr
ODMsMTIgQEAgTGF5ZXJUcmVlSG9zdDo6TGF5ZXJUcmVlSG9zdChXZWJQYWdlJiB3ZWJQYWdlKQog
CiBMYXllclRyZWVIb3N0Ojp+TGF5ZXJUcmVlSG9zdCgpCiB7Ci0gICAgQVNTRVJUKCFtX2lzVmFs
aWQpOworICAgIGNhbmNlbFBlbmRpbmdMYXllckZsdXNoKCk7CisKKyAgICBtX3NjZW5lSW50ZWdy
YXRpb24tPmludmFsaWRhdGUoKTsKKyAgICBtX2Nvb3JkaW5hdG9yLmludmFsaWRhdGUoKTsKKyAg
ICBtX2NvbXBvc2l0b3ItPmludmFsaWRhdGUoKTsKKyAgICBtX3N1cmZhY2UgPSBudWxscHRyOwog
fQogCiB2b2lkIExheWVyVHJlZUhvc3Q6OnNldExheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZChi
b29sIGxheWVyRmx1c2hpbmdFbmFibGVkKQpAQCAtMTM3LDcgKzE0MSw3IEBAIHZvaWQgTGF5ZXJU
cmVlSG9zdDo6bGF5ZXJGbHVzaFRpbWVyRmlyZWQoKQogICAgIG1fd2ViUGFnZS51cGRhdGVSZW5k
ZXJpbmcoKTsKICAgICBtX3dlYlBhZ2UuZmx1c2hQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUoKTsK
IAotICAgIGlmICghbV9pc1ZhbGlkIHx8ICFtX2Nvb3JkaW5hdG9yLnJvb3RDb21wb3NpdGluZ0xh
eWVyKCkpCisgICAgaWYgKCFtX2Nvb3JkaW5hdG9yLnJvb3RDb21wb3NpdGluZ0xheWVyKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIElmIGEgZm9yY2UtcmVwYWludCBjYWxsYmFjayB3YXMg
cmVnaXN0ZXJlZCwgd2Ugc2hvdWxkIGZvcmNlIGEgJ2ZyYW1lIHN5bmMnIHRoYXQKQEAgLTE2NCwx
OSArMTY4LDYgQEAgdm9pZCBMYXllclRyZWVIb3N0OjpzZXRWaWV3T3ZlcmxheVJvb3RMYXllcihH
cmFwaGljc0xheWVyKiB2aWV3T3ZlcmxheVJvb3RMYXllcikKICAgICBtX2Nvb3JkaW5hdG9yLnNl
dFZpZXdPdmVybGF5Um9vdExheWVyKHZpZXdPdmVybGF5Um9vdExheWVyKTsKIH0KIAotdm9pZCBM
YXllclRyZWVIb3N0OjppbnZhbGlkYXRlKCkKLXsKLSAgICBBU1NFUlQobV9pc1ZhbGlkKTsKLSAg
ICBtX2lzVmFsaWQgPSBmYWxzZTsKLQotICAgIGNhbmNlbFBlbmRpbmdMYXllckZsdXNoKCk7Ci0K
LSAgICBtX3NjZW5lSW50ZWdyYXRpb24tPmludmFsaWRhdGUoKTsKLSAgICBtX2Nvb3JkaW5hdG9y
LmludmFsaWRhdGUoKTsKLSAgICBtX2NvbXBvc2l0b3ItPmludmFsaWRhdGUoKTsKLSAgICBtX3N1
cmZhY2UgPSBudWxscHRyOwotfQotCiB2b2lkIExheWVyVHJlZUhvc3Q6OnNjcm9sbE5vbkNvbXBv
c2l0ZWRDb250ZW50cyhjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGF1dG8qIGZyYW1lVmll
dyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUhvc3QuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlSG9zdC5oCmluZGV4IDU0ZWRlNmNiNjExLi45ODA1MTM2NDdmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVIb3N0LmgKQEAgLTc0LDcgKzc0LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgY2FuY2VsUGVuZGluZ0xheWVyRmx1c2goKTsKICAgICB2b2lkIHNldFJvb3RDb21w
b3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2b2lkIHNldFZpZXdP
dmVybGF5Um9vdExheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKLSAgICB2b2lkIGludmFs
aWRhdGUoKTsKIAogICAgIHZvaWQgc2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKICAgICB2b2lkIGZvcmNlUmVwYWludCgpOwpAQCAtMTgzLDcgKzE4
Miw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZCB7
IHRydWUgfTsKICAgICBib29sIG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoIHsgZmFs
c2UgfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1Zh
bGlkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc1dhaXRpbmdGb3JSZW5kZXJlciB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX3NjaGVkdWxlZFdoaWxlV2FpdGluZ0ZvclJlbmRlcmVyIHsgZmFsc2UgfTsK
ICAgICBmbG9hdCBtX2xhc3RQYWdlU2NhbGVGYWN0b3IgeyAxIH07CkBAIC0xOTEsNyArMTg5LDYg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faXNEaXNjYXJkYWJsZSB7IGZhbHNlIH07CiAgICAgT3B0
aW9uU2V0PERpc2NhcmRhYmxlU3luY0FjdGlvbnM+IG1fZGlzY2FyZGFibGVTeW5jQWN0aW9uczsK
ICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBtX3ZpZXdPdmVybGF5Um9vdExheWVyIHsgbnVs
bHB0ciB9OwotICAgIENvbXBvc2l0aW5nQ29vcmRpbmF0b3IgbV9jb29yZGluYXRvcjsKICAgICBD
b21wb3NpdG9yQ2xpZW50IG1fY29tcG9zaXRvckNsaWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
QWNjZWxlcmF0ZWRTdXJmYWNlPiBtX3N1cmZhY2U7CiAgICAgUmVmUHRyPFRocmVhZGVkQ29tcG9z
aXRvcj4gbV9jb21wb3NpdG9yOwpAQCAtMjAyLDYgKzE5OSw3IEBAIHByaXZhdGU6CiAgICAgfSBt
X2ZvcmNlUmVwYWludEFzeW5jOwogICAgIFJ1bkxvb3A6OlRpbWVyPExheWVyVHJlZUhvc3Q+IG1f
bGF5ZXJGbHVzaFRpbWVyOwogICAgIFJlZjxOaWNvc2lhOjpTY2VuZUludGVncmF0aW9uPiBtX3Nj
ZW5lSW50ZWdyYXRpb247CisgICAgQ29tcG9zaXRpbmdDb29yZGluYXRvciBtX2Nvb3JkaW5hdG9y
OwogI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380210</attachid>
            <date>2019-10-04 04:24:42 -0700</date>
            <delta_ts>2019-10-04 05:20:07 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-da-crash.diff</filename>
            <type>text/plain</type>
            <size>16403</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOTlkMDA0NzY2OGYuLmU0ZjQwMDJkZThkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQxIEBACisyMDE5LTEwLTA0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXSBDcmFzaCBpbiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURp
c3BsYXlSZWZyZXNoTW9uaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAyNTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIGNyYXNoIGhhcHBlbnMgd2hlbiB0aGUgZHJhd2luZyBhcmVhIGlzIGRl
c3Ryb3llZCBkdWUgdG8gYSBwYWdlIGNsb3NlLiBUaGUgbGF5ZXIgdHJlZSBob3N0IGlzIGludmFs
aWRhdGVkCisgICAgICAgIGNhdXNpbmcgYSBsYXllciBmbHVzaCB0aGF0IGVuZHMgdXAgdHJ5aW5n
IHRvIGNyZWF0ZSBhIGRpc3BsYXkgcmVmcmVzaCBtb25pdG9yLCB3aGljaCByZXF1aXJlcyB0aGUg
ZHJhd2luZworICAgICAgICBhcmVhLiBXZSBuZWVkIHRvIG51bGwtY2hlY2sgdGhlIGRyYXdpbmcg
YXJlYSBpbiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcigpIGJ1
dCB3ZSBzaG91bGQKKyAgICAgICAgYWxzbyBlbnN1cmUgdGhhdCBsYXllciBmbHVzaCBpcyBub3Qg
cGVyZm9ybWVkIGFmdGVyIGxheWVyIHRyZWUgaG9zdCBpcyBkZXN0cm95ZWQuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yIGNv
bnN0KTogTnVsbC1jaGVjayBkcmF3aW5nIGFyZWEgYmVmb3JlIHVzaW5nIGl0LgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRp
bmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yKTogUmVjZWl2ZSBhIFdlYlBhZ2UgaW5zdGVhZCBvZiBhIFdlYkNv
cmU6OlBhZ2UgYW5kCisgICAgICAgIGNyZWF0ZSB0aGUgcm9vdCBsYXllciBoZXJlLgorICAgICAg
ICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjp+Q29tcG9zaXRpbmdDb29yZGluYXRv
cik6IERvIG5vdCBwdXJnZSBiYWNraW5nIHN0b3JlcyBhZ2FpbiwgaW52YWxpZGF0ZSBzaG91bGQK
KyAgICAgICAgYWx3YXlzIGJlIGNhbGxlZCByaWdodCBiZWZvcmUgdGhlIG9iamVjdCBpcyBkZXN0
cm95ZWQuCisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmZsdXNoUGVu
ZGluZ0xheWVyQ2hhbmdlcyk6IEdldCBXZWJDb3JlOjpQYWdlIGZyb20gV2ViUGFnZS4KKyAgICAg
ICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6dGltZXN0YW1wIGNvbnN0KTogRGl0
dG8uCisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnN5bmNEaXNwbGF5
U3RhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6
bm90aWZ5Rmx1c2hSZXF1aXJlZCk6IERvIG5vdCBjb250aW51ZSBpZiBtX3Jvb3RMYXllciBpcyBu
dWxscHRyLgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpkZXZpY2VT
Y2FsZUZhY3RvciBjb25zdCk6IEdldCBXZWJDb3JlOjpQYWdlIGZyb20gV2ViUGFnZS4KKyAgICAg
ICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6cGFnZVNjYWxlRmFjdG9yIGNvbnN0
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNyZWF0
ZUdyYXBoaWNzTGF5ZXIpOiBDYWxsIGF0dGFjaExheWVyKCkgaW5zdGVhZCBvZiBkdXBsaWNhdGlu
ZyB0aGUgY29kZS4KKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6c2V0
VmlzaWJsZUNvbnRlbnRzUmVjdCk6IEdldCBXZWJDb3JlOjpQYWdlIGZyb20gV2ViUGFnZS4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGlu
Z0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvRHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzOjpkaXNjYXJkUHJldmlvdXNMYXll
clRyZWVIb3N0KTogRG8gbm90IGNhbGwgTGF5ZXJUcmVlSG9zdDo6aW52YWxpZGF0ZSgpCisgICAg
ICAgIHRoYXQgaGFzIGJlZW4gcmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJUcmVlSG9zdDo6TGF5ZXJUcmVlSG9zdCk6IENvbnN0cnVjdCB0aGUgY29vcmRpbmF0b3Ig
YWZ0ZXIgdGhlIHNjZW5lSW50ZWdyYXRpb24uCisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhv
c3Q6On5MYXllclRyZWVIb3N0KTogSW52YWxpZGF0ZSBldmVyeXRoaW5nIGhlcmUgbm93LiBXZSBk
b24ndCByZWFsbHkgbmVlZCBpbnZhbGlkYXRlKCkKKyAgICAgICAgbWV0aG9kIHNpbmNlIExheWVy
VHJlZUhvc3QgaXMgbm90IHJlZmNvdW50ZWQgYW5kIHdlIGFsd2F5cyBjYWxsZWQgaW52YWxpZGF0
ZSByaWdodCBiZWZvcmUgZGVsZXRpbmcgdGhlIG9iamVjdC4KKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlSG9zdDo6bGF5ZXJGbHVzaFRpbWVyRmlyZWQpOiBUaGlzIGNhbid0IGhhcHBlbiBvbiBp
bnZhbGlkIHN0YXRlIGFueW1vcmUuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlSG9zdC5oOgorCiAyMDE5LTEwLTA0ICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFJF
R1JFU1NJT04ocjI1MDY3Myk6IGNvbm5lY3Rpb24gdG8gbmV0d29yayBwcm9jZXNzIGlzIGJyb2tl
biBhZnRlciByMjUwNjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDNmNTJjMmQxODAzLi4y
OWYyNTMwNzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTg5MSw3ICs4OTEsOSBAQCBH
cmFwaGljc0xheWVyRmFjdG9yeSogV2ViQ2hyb21lQ2xpZW50OjpncmFwaGljc0xheWVyRmFjdG9y
eSgpIGNvbnN0CiAKIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJ
RCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wYWdlLmRyYXdpbmdBcmVhKCktPmNyZWF0ZURpc3Bs
YXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpOworICAgIGlmIChhdXRvKiBkcmF3aW5nQXJlYSA9
IG1fcGFnZS5kcmF3aW5nQXJlYSgpKQorICAgICAgICByZXR1cm4gZHJhd2luZ0FyZWEtPmNyZWF0
ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpOworICAgIHJldHVybiBudWxscHRyOwog
fQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5n
Q29vcmRpbmF0b3IuY3BwCmluZGV4IDllNTZkY2UxYTgxLi5mYmI0YWQyZTNlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBA
IC01MCwyMCArNTAsMjUgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLUNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3Io
UGFnZSogcGFnZSwgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Q2xpZW50JiBjbGllbnQpCitDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yKFdlYlBhZ2UmIHBhZ2Us
IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OkNsaWVudCYgY2xpZW50KQogICAgIDogbV9wYWdlKHBh
Z2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3BhaW50aW5nRW5naW5lKE5pY29z
aWE6OlBhaW50aW5nRW5naW5lOjpjcmVhdGUoKSkKIHsKICAgICBtX25pY29zaWEuc2NlbmUgPSBO
aWNvc2lhOjpTY2VuZTo6Y3JlYXRlKCk7CiAgICAgbV9zdGF0ZS5uaWNvc2lhLnNjZW5lID0gbV9u
aWNvc2lhLnNjZW5lOworCisgICAgbV9yb290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUo
dGhpcywgKnRoaXMpOworI2lmbmRlZiBOREVCVUcKKyAgICBtX3Jvb3RMYXllci0+c2V0TmFtZSgi
Q29tcG9zaXRpbmdDb29yZGluYXRvciByb290IGxheWVyIik7CisjZW5kaWYKKyAgICBtX3Jvb3RM
YXllci0+c2V0RHJhd3NDb250ZW50KGZhbHNlKTsKKyAgICBtX3Jvb3RMYXllci0+c2V0U2l6ZSht
X3BhZ2Uuc2l6ZSgpKTsKIH0KIAogQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6fkNvbXBvc2l0aW5n
Q29vcmRpbmF0b3IoKQogewotICAgIG1faXNEZXN0cnVjdGluZyA9IHRydWU7Ci0KLSAgICBwdXJn
ZUJhY2tpbmdTdG9yZXMoKTsKKyAgICBBU1NFUlQoIW1fcm9vdExheWVyKTsKIAogICAgIGZvciAo
YXV0byYgcmVnaXN0ZXJlZExheWVyIDogbV9yZWdpc3RlcmVkTGF5ZXJzLnZhbHVlcygpKQogICAg
ICAgICByZWdpc3RlcmVkTGF5ZXItPnNldENvb3JkaW5hdG9yKG51bGxwdHIpOwpAQCAtMTE5LDcg
KzEyNCw3IEBAIGJvb2wgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJD
aGFuZ2VzKCkKICAgICBpZiAobV9vdmVybGF5Q29tcG9zaXRpbmdMYXllcikKICAgICAgICAgbV9v
dmVybGF5Q29tcG9zaXRpbmdMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKEZsb2F0UmVjdChG
bG9hdFBvaW50KCksIG1fcm9vdExheWVyLT5zaXplKCkpKTsKIAotICAgIGJvb2wgZGlkU3luYyA9
IG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRp
bmdTdWJmcmFtZXMoKTsKKyAgICBib29sIGRpZFN5bmMgPSBtX3BhZ2UuY29yZVBhZ2UoKS0+bWFp
bkZyYW1lKCkudmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMo
KTsKIAogICAgIGF1dG8mIGNvb3JkaW5hdGVkTGF5ZXIgPSBkb3duY2FzdDxDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI+KCptX3Jvb3RMYXllcik7CiAgICAgY29vcmRpbmF0ZWRMYXllci51cGRhdGVD
b250ZW50QnVmZmVyc0luY2x1ZGluZ1N1YkxheWVycygpOwpAQCAtMTY5LDcgKzE3NCw3IEBAIGJv
b2wgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkKIAog
ZG91YmxlIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnRpbWVzdGFtcCgpIGNvbnN0CiB7Ci0gICAg
YXV0byogZG9jdW1lbnQgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCk7CisgICAgYXV0
byogZG9jdW1lbnQgPSBtX3BhZ2UuY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKTsK
ICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gZG9jdW1l
bnQtPmRvbVdpbmRvdygpID8gZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5ub3dUaW1lc3RhbXAoKSA6
IGRvY3VtZW50LT5tb25vdG9uaWNUaW1lc3RhbXAoKTsKQEAgLTE3Nyw3ICsxODIsNyBAQCBkb3Vi
bGUgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6dGltZXN0YW1wKCkgY29uc3QKIAogdm9pZCBDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjpzeW5jRGlzcGxheVN0YXRlKCkKIHsKLSAgICBtX3BhZ2UtPm1h
aW5GcmFtZSgpLnZpZXcoKS0+dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSgp
OworICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPnVwZGF0ZUxheW91
dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUoKTsKIH0KIAogZG91YmxlIENvbXBvc2l0aW5nQ29v
cmRpbmF0b3I6Om5leHRBbmltYXRpb25TZXJ2aWNlVGltZSgpIGNvbnN0CkBAIC0xOTgsMTggKzIw
Myw2IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6aW5pdGlhbGl6ZVJvb3RDb21wb3Np
dGluZ0xheWVySWZOZWVkZWQoKQogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKIH0KIAot
dm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVSb290TGF5ZXIoY29uc3QgSW50U2l6
ZSYgc2l6ZSkKLXsKLSAgICBBU1NFUlQoIW1fcm9vdExheWVyKTsKLSAgICAvLyBDcmVhdGUgYSBy
b290IGxheWVyLgotICAgIG1fcm9vdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMs
ICp0aGlzKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgbV9yb290TGF5ZXItPnNldE5hbWUoIkNvbXBv
c2l0aW5nQ29vcmRpbmF0b3Igcm9vdCBsYXllciIpOwotI2VuZGlmCi0gICAgbV9yb290TGF5ZXIt
PnNldERyYXdzQ29udGVudChmYWxzZSk7Ci0gICAgbV9yb290TGF5ZXItPnNldFNpemUoc2l6ZSk7
Ci19Ci0KIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6c3luY0xheWVyU3RhdGUoKQogewog
ICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKQEAgLTIxNywzMiArMjEwLDI0IEBAIHZvaWQg
Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6c3luY0xheWVyU3RhdGUoKQogCiB2b2lkIENvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciop
CiB7Ci0gICAgaWYgKCFtX2lzRGVzdHJ1Y3RpbmcgJiYgIWlzRmx1c2hpbmdMYXllckNoYW5nZXMo
KSkKKyAgICBpZiAobV9yb290TGF5ZXIgJiYgIWlzRmx1c2hpbmdMYXllckNoYW5nZXMoKSkKICAg
ICAgICAgbV9jbGllbnQubm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiBmbG9hdCBDb21wb3Np
dGluZ0Nvb3JkaW5hdG9yOjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gbV9wYWdlLmNvcmVQYWdl
KCktPmRldmljZVNjYWxlRmFjdG9yKCk7CiB9CiAKIGZsb2F0IENvbXBvc2l0aW5nQ29vcmRpbmF0
b3I6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGFnZS0+cGFnZVNj
YWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIG1fcGFnZS5jb3JlUGFnZSgpLT5wYWdlU2NhbGVGYWN0
b3IoKTsKIH0KIAogUmVmPEdyYXBoaWNzTGF5ZXI+IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNy
ZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllcjo6VHlwZSBsYXllclR5cGUsIEdyYXBoaWNz
TGF5ZXJDbGllbnQmIGNsaWVudCkKIHsKICAgICBhdXRvIGxheWVyID0gYWRvcHRSZWYoKm5ldyBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXJUeXBlLCBjbGllbnQpKTsKLSAgICBsYXllci0+
c2V0Q29vcmRpbmF0b3IodGhpcyk7Ci0gICAgewotICAgICAgICBhdXRvJiBjb21wb3NpdGlvbkxh
eWVyID0gbGF5ZXItPmNvbXBvc2l0aW9uTGF5ZXIoKTsKLSAgICAgICAgbV9uaWNvc2lhLnN0YXRl
LmxheWVycy5hZGQoY29tcG9zaXRpb25MYXllcik7Ci0gICAgICAgIGNvbXBvc2l0aW9uTGF5ZXIt
PnNldFNjZW5lSW50ZWdyYXRpb24obV9jbGllbnQuc2NlbmVJbnRlZ3JhdGlvbigpKTsKLSAgICB9
Ci0gICAgbV9yZWdpc3RlcmVkTGF5ZXJzLmFkZChsYXllci0+aWQoKSwgbGF5ZXIucHRyKCkpOwot
ICAgIGxheWVyLT5zZXROZWVkc1Zpc2libGVSZWN0QWRqdXN0bWVudCgpOwotICAgIG5vdGlmeUZs
dXNoUmVxdWlyZWQobGF5ZXIucHRyKCkpOworICAgIGF0dGFjaExheWVyKGxheWVyLnB0cigpKTsK
ICAgICByZXR1cm4gbGF5ZXI7CiB9CiAKQEAgLTI2MSw3ICsyNDYsNyBAQCB2b2lkIENvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0KQogICAgICAgICAgICAgcmVnaXN0ZXJlZExheWVyLT5zZXROZWVkc1Zpc2libGVSZWN0QWRq
dXN0bWVudCgpOwogICAgIH0KIAotICAgIEZyYW1lVmlldyogdmlldyA9IG1fcGFnZS0+bWFpbkZy
YW1lKCkudmlldygpOworICAgIEZyYW1lVmlldyogdmlldyA9IG1fcGFnZS5jb3JlUGFnZSgpLT5t
YWluRnJhbWUoKS52aWV3KCk7CiAgICAgaWYgKHZpZXctPnVzZUZpeGVkTGF5b3V0KCkgJiYgY29u
dGVudHNSZWN0RGlkQ2hhbmdlKSB7CiAgICAgICAgIC8vIFJvdW5kIHRoZSByZWN0IGluc3RlYWQg
b2YgZW5jbG9zaW5nIGl0IHRvIG1ha2Ugc3VyZSB0aGF0IGl0cyBzaXplIHN0YXlzCiAgICAgICAg
IC8vIHRoZSBzYW1lIHdoaWxlIHBhbm5pbmcuIFRoaXMgY2FuIGhhdmUgbmFzdHkgZWZmZWN0cyBv
biBsYXlvdXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29y
ZGluYXRvci5oCmluZGV4IDc5Y2NjY2IxZGY0Li43OTYwZDQxN2MzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3Np
dGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTI0LDExICsy
NCwxMSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5k
ZWYgQ29tcG9zaXRpbmdDb29yZGluYXRvcl9oCi0jZGVmaW5lIENvbXBvc2l0aW5nQ29vcmRpbmF0
b3JfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAKKyNp
bmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgpAQCAtNDYsNyArNDYsNiBAQCBjbGFzcyBT
Y2VuZUludGVncmF0aW9uOwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR3JhcGhpY3NDb250
ZXh0OwogY2xhc3MgR3JhcGhpY3NMYXllcjsKLWNsYXNzIFBhZ2U7CiB9CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtNjQsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgUmVmUHRy
PE5pY29zaWE6OlNjZW5lSW50ZWdyYXRpb24+IHNjZW5lSW50ZWdyYXRpb24oKSA9IDA7CiAgICAg
fTsKIAotICAgIENvbXBvc2l0aW5nQ29vcmRpbmF0b3IoV2ViQ29yZTo6UGFnZSosIENvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6OkNsaWVudCYpOworICAgIENvbXBvc2l0aW5nQ29vcmRpbmF0b3IoV2Vi
UGFnZSYsIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OkNsaWVudCYpOwogICAgIHZpcnR1YWwgfkNv
bXBvc2l0aW5nQ29vcmRpbmF0b3IoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpAQCAtNzcs
NyArNzYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAgIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCk7CiAKLSAg
ICB2b2lkIGNyZWF0ZVJvb3RMYXllcihjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciogcm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5
ZXIuZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiByb290Q29tcG9zaXRpbmdM
YXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdENvbXBvc2l0aW5nTGF5ZXI7IH0KIApAQCAtMTEz
LDcgKzExMSw3IEBAIHByaXZhdGU6CiAKICAgICBkb3VibGUgdGltZXN0YW1wKCkgY29uc3Q7CiAK
LSAgICBXZWJDb3JlOjpQYWdlKiBtX3BhZ2U7CisgICAgV2ViUGFnZSYgbV9wYWdlOwogICAgIENv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6OkNsaWVudCYgbV9jbGllbnQ7CiAKICAgICBSZWZQdHI8V2Vi
Q29yZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CkBAIC0xMzEsNyArMTI5LDYgQEAgcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Tmljb3NpYTo6UGFpbnRpbmdFbmdpbmU+IG1fcGFp
bnRpbmdFbmdpbmU7CiAKICAgICAvLyBXZSBkb24ndCBzZW5kIHRoZSBtZXNzYWdlcyByZWxhdGVk
IHRvIHJlbGVhc2luZyByZXNvdXJjZXMgdG8gcmVuZGVyZXIgZHVyaW5nIHB1cmdpbmcsIGJlY2F1
c2UgcmVuZGVyZXIgYWxyZWFkeSBoYWQgcmVtb3ZlZCBhbGwgcmVzb3VyY2VzLgotICAgIGJvb2wg
bV9pc0Rlc3RydWN0aW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQdXJnaW5nIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faXNGbHVzaGluZ0xheWVyQ2hhbmdlcyB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX3Nob3VsZFN5bmNGcmFtZSB7IGZhbHNlIH07CkBAIC0xNDUsNSArMTQyLDMgQEAgcHJpdmF0
ZToKIH0KIAogI2VuZGlmIC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIENvbXBvc2l0
aW5nQ29vcmRpbmF0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9EcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCmluZGV4IGMzNWY4NzJmYzM0Li5k
YzQxNTdmYmNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
RHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzLmNwcApAQCAtNzksMTIgKzc5LDcgQEAgRHJh
d2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhp
Y3MoV2ViUGFnZSYgd2ViUGFnZSwKICNlbmRpZgogfQogCi1EcmF3aW5nQXJlYUNvb3JkaW5hdGVk
R3JhcGhpY3M6On5EcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3MoKQotewotICAgIGRpc2Nh
cmRQcmV2aW91c0xheWVyVHJlZUhvc3QoKTsKLSAgICBpZiAobV9sYXllclRyZWVIb3N0KQotICAg
ICAgICBtX2xheWVyVHJlZUhvc3QtPmludmFsaWRhdGUoKTsKLX0KK0RyYXdpbmdBcmVhQ29vcmRp
bmF0ZWRHcmFwaGljczo6fkRyYXdpbmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGljcygpID0gZGVmYXVs
dDsKIAogdm9pZCBEcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3M6OnNldE5lZWRzRGlzcGxh
eSgpCiB7CkBAIC01MTcsMTAgKzUxMiw2IEBAIHZvaWQgRHJhd2luZ0FyZWFDb29yZGluYXRlZEdy
YXBoaWNzOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVTb29uKCkKIHZvaWQgRHJhd2lu
Z0FyZWFDb29yZGluYXRlZEdyYXBoaWNzOjpkaXNjYXJkUHJldmlvdXNMYXllclRyZWVIb3N0KCkK
IHsKICAgICBtX2Rpc2NhcmRQcmV2aW91c0xheWVyVHJlZUhvc3RUaW1lci5zdG9wKCk7Ci0gICAg
aWYgKCFtX3ByZXZpb3VzTGF5ZXJUcmVlSG9zdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9w
cmV2aW91c0xheWVyVHJlZUhvc3QtPmludmFsaWRhdGUoKTsKICAgICBtX3ByZXZpb3VzTGF5ZXJU
cmVlSG9zdCA9IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUhvc3QuY3BwCmluZGV4IDcyZWRlMmNiYWZmLi5hNDYzZjRmZjEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZUhvc3QuY3BwCkBAIC00OCwxOCArNDgsMTcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIExheWVyVHJlZUhvc3Q6OkxheWVyVHJlZUhvc3QoV2ViUGFn
ZSYgd2ViUGFnZSkKICAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQotICAgICwgbV9jb29yZGluYXRv
cih3ZWJQYWdlLmNvcmVQYWdlKCksICp0aGlzKQogICAgICwgbV9jb21wb3NpdG9yQ2xpZW50KCp0
aGlzKQogICAgICwgbV9zdXJmYWNlKEFjY2VsZXJhdGVkU3VyZmFjZTo6Y3JlYXRlKHdlYlBhZ2Us
ICp0aGlzKSkKICAgICAsIG1fdmlld3BvcnRDb250cm9sbGVyKHdlYlBhZ2Uuc2l6ZSgpKQogICAg
ICwgbV9sYXllckZsdXNoVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTGF5ZXJUcmVlSG9z
dDo6bGF5ZXJGbHVzaFRpbWVyRmlyZWQpCiAgICAgLCBtX3NjZW5lSW50ZWdyYXRpb24oTmljb3Np
YTo6U2NlbmVJbnRlZ3JhdGlvbjo6Y3JlYXRlKCp0aGlzKSkKKyAgICAsIG1fY29vcmRpbmF0b3Io
d2ViUGFnZSwgKnRoaXMpCiB7CiAjaWYgVVNFKEdMSUJfRVZFTlRfTE9PUCkKICAgICBtX2xheWVy
Rmx1c2hUaW1lci5zZXRQcmlvcml0eShSdW5Mb29wU291cmNlUHJpb3JpdHk6OkxheWVyRmx1c2hU
aW1lcik7CiAgICAgbV9sYXllckZsdXNoVGltZXIuc2V0TmFtZSgiW1dlYktpdF0gTGF5ZXJUcmVl
SG9zdCIpOwogI2VuZGlmCi0gICAgbV9jb29yZGluYXRvci5jcmVhdGVSb290TGF5ZXIobV93ZWJQ
YWdlLnNpemUoKSk7CiAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CiAKICAgICBpZiAoRnJhbWVW
aWV3KiBmcmFtZVZpZXcgPSBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpKSB7CkBAIC04NCw3ICs4
MywxMiBAQCBMYXllclRyZWVIb3N0OjpMYXllclRyZWVIb3N0KFdlYlBhZ2UmIHdlYlBhZ2UpCiAK
IExheWVyVHJlZUhvc3Q6On5MYXllclRyZWVIb3N0KCkKIHsKLSAgICBBU1NFUlQoIW1faXNWYWxp
ZCk7CisgICAgY2FuY2VsUGVuZGluZ0xheWVyRmx1c2goKTsKKworICAgIG1fc2NlbmVJbnRlZ3Jh
dGlvbi0+aW52YWxpZGF0ZSgpOworICAgIG1fY29vcmRpbmF0b3IuaW52YWxpZGF0ZSgpOworICAg
IG1fY29tcG9zaXRvci0+aW52YWxpZGF0ZSgpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgTGF5ZXJUcmVlSG9zdDo6c2V0TGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkKGJv
b2wgbGF5ZXJGbHVzaGluZ0VuYWJsZWQpCkBAIC0xMzcsNyArMTQxLDcgQEAgdm9pZCBMYXllclRy
ZWVIb3N0OjpsYXllckZsdXNoVGltZXJGaXJlZCgpCiAgICAgbV93ZWJQYWdlLnVwZGF0ZVJlbmRl
cmluZygpOwogICAgIG1fd2ViUGFnZS5mbHVzaFBlbmRpbmdFZGl0b3JTdGF0ZVVwZGF0ZSgpOwog
Ci0gICAgaWYgKCFtX2lzVmFsaWQgfHwgIW1fY29vcmRpbmF0b3Iucm9vdENvbXBvc2l0aW5nTGF5
ZXIoKSkKKyAgICBpZiAoIW1fY29vcmRpbmF0b3Iucm9vdENvbXBvc2l0aW5nTGF5ZXIoKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgYSBmb3JjZS1yZXBhaW50IGNhbGxiYWNrIHdhcyBy
ZWdpc3RlcmVkLCB3ZSBzaG91bGQgZm9yY2UgYSAnZnJhbWUgc3luYycgdGhhdApAQCAtMTY0LDE5
ICsxNjgsNiBAQCB2b2lkIExheWVyVHJlZUhvc3Q6OnNldFZpZXdPdmVybGF5Um9vdExheWVyKEdy
YXBoaWNzTGF5ZXIqIHZpZXdPdmVybGF5Um9vdExheWVyKQogICAgIG1fY29vcmRpbmF0b3Iuc2V0
Vmlld092ZXJsYXlSb290TGF5ZXIodmlld092ZXJsYXlSb290TGF5ZXIpOwogfQogCi12b2lkIExh
eWVyVHJlZUhvc3Q6OmludmFsaWRhdGUoKQotewotICAgIEFTU0VSVChtX2lzVmFsaWQpOwotICAg
IG1faXNWYWxpZCA9IGZhbHNlOwotCi0gICAgY2FuY2VsUGVuZGluZ0xheWVyRmx1c2goKTsKLQot
ICAgIG1fc2NlbmVJbnRlZ3JhdGlvbi0+aW52YWxpZGF0ZSgpOwotICAgIG1fY29vcmRpbmF0b3Iu
aW52YWxpZGF0ZSgpOwotICAgIG1fY29tcG9zaXRvci0+aW52YWxpZGF0ZSgpOwotICAgIG1fc3Vy
ZmFjZSA9IG51bGxwdHI7Ci19Ci0KIHZvaWQgTGF5ZXJUcmVlSG9zdDo6c2Nyb2xsTm9uQ29tcG9z
aXRlZENvbnRlbnRzKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgYXV0byogZnJhbWVWaWV3
ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlSG9zdC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVIb3N0LmgKaW5kZXggNTRlZGU2Y2I2MTEuLjk4MDUxMzY0N2ZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZUhvc3QuaApAQCAtNzQsNyArNzQsNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjYW5jZWxQZW5kaW5nTGF5ZXJGbHVzaCgpOwogICAgIHZvaWQgc2V0Um9vdENvbXBv
c2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZvaWQgc2V0Vmlld092
ZXJsYXlSb290TGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwotICAgIHZvaWQgaW52YWxp
ZGF0ZSgpOwogCiAgICAgdm9pZCBzY3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpOwogICAgIHZvaWQgZm9yY2VSZXBhaW50KCk7CkBAIC0xODMsNyArMTgy
LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkIHsg
dHJ1ZSB9OwogICAgIGJvb2wgbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2ggeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzVmFs
aWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2lzV2FpdGluZ0ZvclJlbmRlcmVyIHsgZmFsc2UgfTsK
ICAgICBib29sIG1fc2NoZWR1bGVkV2hpbGVXYWl0aW5nRm9yUmVuZGVyZXIgeyBmYWxzZSB9Owog
ICAgIGZsb2F0IG1fbGFzdFBhZ2VTY2FsZUZhY3RvciB7IDEgfTsKQEAgLTE5MSw3ICsxODksNiBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0Rpc2NhcmRhYmxlIHsgZmFsc2UgfTsKICAgICBPcHRp
b25TZXQ8RGlzY2FyZGFibGVTeW5jQWN0aW9ucz4gbV9kaXNjYXJkYWJsZVN5bmNBY3Rpb25zOwog
ICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIG1fdmlld092ZXJsYXlSb290TGF5ZXIgeyBudWxs
cHRyIH07Ci0gICAgQ29tcG9zaXRpbmdDb29yZGluYXRvciBtX2Nvb3JkaW5hdG9yOwogICAgIENv
bXBvc2l0b3JDbGllbnQgbV9jb21wb3NpdG9yQ2xpZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxB
Y2NlbGVyYXRlZFN1cmZhY2U+IG1fc3VyZmFjZTsKICAgICBSZWZQdHI8VGhyZWFkZWRDb21wb3Np
dG9yPiBtX2NvbXBvc2l0b3I7CkBAIC0yMDIsNiArMTk5LDcgQEAgcHJpdmF0ZToKICAgICB9IG1f
Zm9yY2VSZXBhaW50QXN5bmM7CiAgICAgUnVuTG9vcDo6VGltZXI8TGF5ZXJUcmVlSG9zdD4gbV9s
YXllckZsdXNoVGltZXI7CiAgICAgUmVmPE5pY29zaWE6OlNjZW5lSW50ZWdyYXRpb24+IG1fc2Nl
bmVJbnRlZ3JhdGlvbjsKKyAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yIG1fY29vcmRpbmF0b3I7
CiAjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogfTsKIAo=
</data>
<flag name="review"
          id="395931"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>