<?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>212163</bug_id>
          
          <creation_ts>2020-05-20 13:30:35 -0700</creation_ts>
          <short_desc>ASSERTION FAILED: (!s_current || &amp;m_view != &amp;s_current-&gt;m_view) in RenderTreeBuilder::RenderTreeBuilder</short_desc>
          <delta_ts>2020-05-23 13:14:03 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jack">shihchieh_lee</reporter>
          <assigned_to name="Jack">shihchieh_lee</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>product-security</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1654612</commentid>
    <comment_count>0</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-20 13:30:35 -0700</bug_when>
    <thetext>&lt;rdar://57028096&gt;

0   com.apple.JavaScriptCore      	0x000000010b167d3e WTFCrash + 14
1   com.apple.WebCore             	0x000000011ada8d8b WTFCrashWithInfo(int, char const*, char const*, int) + 27
2   com.apple.WebCore             	0x000000011eb396df WebCore::RenderTreeBuilder::RenderTreeBuilder(WebCore::RenderView&amp;) + 431
3   com.apple.WebCore             	0x000000011eb39a5d WebCore::RenderTreeBuilder::RenderTreeBuilder(WebCore::RenderView&amp;) + 29
4   com.apple.WebCore             	0x000000011eb5734c WebCore::RenderTreeUpdater::RenderTreeUpdater(WebCore::Document&amp;) + 124
5   com.apple.WebCore             	0x000000011eb5741d WebCore::RenderTreeUpdater::RenderTreeUpdater(WebCore::Document&amp;) + 29
6   com.apple.WebCore             	0x000000011d42142e WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType) + 1262
7   com.apple.WebCore             	0x000000011e018622 WebCore::Frame::setPageAndTextZoomFactors(float, float) + 482
8   com.apple.WebKitLegacy        	0x00000001307d325a -[WebView _setZoomMultiplier:isTextOnly:] + 202
9   com.apple.WebKitLegacy        	0x000000013075e784 +[WebFrame(WebInternal) _createFrameWithPage:frameName:frameView:ownerElement:] + 900
10  com.apple.WebKitLegacy        	0x000000013075eb7b +[WebFrame(WebInternal) _createSubframeWithOwnerElement:frameName:frameView:] + 171
11  com.apple.WebKitLegacy        	0x000000013074bf90 WebFrameLoaderClient::createFrame(WTF::URL const&amp;, WTF::String const&amp;, WebCore::HTMLFrameOwnerElement&amp;, WTF::String const&amp;) + 320
12  com.apple.WebCore             	0x000000011deb4078 WebCore::SubframeLoader::loadSubframe(WebCore::HTMLFrameOwnerElement&amp;, WTF::URL const&amp;, WTF::String const&amp;, WTF::String const&amp;) + 440
13  com.apple.WebCore             	0x000000011deb2983 WebCore::SubframeLoader::loadOrRedirectSubframe(WebCore::HTMLFrameOwnerElement&amp;, WTF::URL const&amp;, WTF::AtomString const&amp;, WebCore::LockHistory, WebCore::LockBackForwardList) + 483
14  com.apple.WebCore             	0x000000011deb3416 WebCore::SubframeLoader::requestObject(WebCore::HTMLPlugInImageElement&amp;, WTF::String const&amp;, WTF::AtomString const&amp;, WTF::String const&amp;, WTF::Vector&lt;WTF::String, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WTF::Vector&lt;WTF::String, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;) + 566
15  com.apple.WebCore             	0x000000011d935480 WebCore::HTMLPlugInImageElement::requestObject(WTF::String const&amp;, WTF::String const&amp;, WTF::Vector&lt;WTF::String, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WTF::Vector&lt;WTF::String, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;) + 416
16  com.apple.WebCore             	0x000000011d921606 WebCore::HTMLObjectElement::updateWidget(WebCore::CreatePlugins) + 694
17  com.apple.WebCore             	0x000000011d931daf WebCore::HTMLPlugInImageElement::updateAfterStyleResolution() + 335
18  com.apple.WebCore             	0x000000011d93dd3d WebCore::HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution()::$_0::operator()() const + 29
19  com.apple.WebCore             	0x000000011d93daae WTF::Detail::CallableWrapper&lt;WebCore::HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution()::$_0, void&gt;::call() + 30
20  com.apple.WebCore             	0x000000011adb63e2 WTF::Function&lt;void ()&gt;::operator()() const + 130
21  com.apple.WebCore             	0x000000011eb948f2 WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler() + 114
22  com.apple.WebCore             	0x000000011eb94ac5 WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler() + 21
23  com.apple.WebCore             	0x000000011eb57759 WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;) + 601
24  com.apple.WebCore             	0x000000011d421c4c WebCore::Document::updateTextRenderer(WebCore::Text&amp;, unsigned int, unsigned int) + 332
25  com.apple.WebCore             	0x000000011d640903 WebCore::Text::updateRendererAfterContentChange(unsigned int, unsigned int) + 179
26  com.apple.WebCore             	0x000000011d3ad0f5 WebCore::CharacterData::setDataAndUpdate(WTF::String const&amp;, unsigned int, unsigned int, unsigned int) + 261
27  com.apple.WebCore             	0x000000011d3acf0c WebCore::CharacterData::setData(WTF::String const&amp;) + 332
28  com.apple.WebCore             	0x000000011d3adcdb WebCore::CharacterData::setNodeValue(WTF::String const&amp;) + 43
29  com.apple.WebCore             	0x000000011d58b24c WebCore::Node::setTextContent(WTF::String const&amp;) + 172
30  com.apple.WebCore             	0x000000011ee24017 WebCore::SVGTRefElement::updateReferencedText(WebCore::Element*) + 503
31  com.apple.WebCore             	0x000000011ee23dca WebCore::SVGTRefTargetEventListener::handleEvent(WebCore::ScriptExecutionContext&amp;, WebCore::Event&amp;) + 170
32  com.apple.WebCore             	0x000000011d51fa0d WebCore::EventTarget::innerInvokeEventListeners(WebCore::Event&amp;, WTF::Vector&lt;WTF::RefPtr&lt;WebCore::RegisteredEventListener, WTF::DumbPtrTraits&lt;WebCore::RegisteredEventListener&gt; &gt;, 1ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::EventTarget::EventInvokePhase) + 925
33  com.apple.WebCore             	0x000000011d51bca4 WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase) + 356
34  com.apple.WebCore             	0x000000011d58ffd2 WebCore::Node::handleLocalEvents(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase) + 178
35  com.apple.WebCore             	0x000000011d4f5fb1 WebCore::EventContext::handleLocalEvents(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase) const + 193
36  com.apple.WebCore             	0x000000011d4f6aaf WebCore::dispatchEventInDOM(WebCore::Event&amp;, WebCore::EventPath const&amp;) + 383
37  com.apple.WebCore             	0x000000011d4f65b7 WebCore::EventDispatcher::dispatchEvent(WebCore::Node&amp;, WebCore::Event&amp;) + 567
38  com.apple.WebCore             	0x000000011d59002d WebCore::Node::dispatchEvent(WebCore::Event&amp;) + 29
39  com.apple.WebCore             	0x000000011d5d8e9e WebCore::ScopedEventQueue::dispatchEvent(WebCore::Event&amp;) const + 46
40  com.apple.WebCore             	0x000000011d5d8e21 WebCore::ScopedEventQueue::enqueueEvent(WTF::Ref&lt;WebCore::Event, WTF::DumbPtrTraits&lt;WebCore::Event&gt; &gt;&amp;&amp;) + 193
41  com.apple.WebCore             	0x000000011d4f6289 WebCore::EventDispatcher::dispatchScopedEvent(WebCore::Node&amp;, WebCore::Event&amp;) + 105
42  com.apple.WebCore             	0x000000011d58fffd WebCore::Node::dispatchScopedEvent(WebCore::Event&amp;) + 29
43  com.apple.WebCore             	0x000000011d59018b WebCore::Node::dispatchSubtreeModifiedEvent() + 331
44  com.apple.WebCore             	0x000000011d4ea90f WebCore::Element::didAddAttribute(WebCore::QualifiedName const&amp;, WTF::AtomString const&amp;) + 175
45  com.apple.WebCore             	0x000000011d4ea803 WebCore::Element::addAttributeInternal(WebCore::QualifiedName const&amp;, WTF::AtomString const&amp;, WebCore::Element::SynchronizationOfLazyAttribute) + 195
46  com.apple.WebCore             	0x000000011d4e3711 WebCore::Element::setAttributeInternal(unsigned int, WebCore::QualifiedName const&amp;, WTF::AtomString const&amp;, WebCore::Element::SynchronizationOfLazyAttribute) + 129
47  com.apple.WebCore             	0x000000011d4e39ce WebCore::Element::setAttribute(WTF::AtomString const&amp;, WTF::AtomString const&amp;) + 398
48  com.apple.WebCore             	0x000000011b6b6237 WebCore::jsElementPrototypeFunctionSetAttributeBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSElement*, JSC::ThrowScope&amp;) + 535
49  com.apple.WebCore             	0x000000011b631a12 long long WebCore::IDLOperation&lt;WebCore::JSElement&gt;::call&lt;&amp;(WebCore::jsElementPrototypeFunctionSetAttributeBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSElement*, JSC::ThrowScope&amp;)), (WebCore::CastedThisErrorBehavior)0&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*) + 786
50  com.apple.WebCore             	0x000000011b6316f4 WebCore::jsElementPrototypeFunctionSetAttribute(JSC::JSGlobalObject*, JSC::CallFrame*) + 36
51  ???                           	0x0000433d02a0116b 0 + 73929316110699</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654613</commentid>
    <comment_count>1</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-20 13:31:33 -0700</bug_when>
    <thetext>oot cause: RenderTreeBuilder expects one instance for each render view. However, in the test case, we instantiate two RenderTreeBuilder with the same render view due to reentrancy.
1. We instantiate RenderTreeBuilder in function Document::updateTextRenderer while processing setAttribute command (frame #35).
2. Right after step 1, RenderTreeUpdater::commit is called to update the render tree (frame #34).
3. In render tree updating, HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution is called which eventually invokes Document::resolveStyle.
4. Document::resolveStyle instantiate the second RenderTreeUpdater with the same render view (frame #4).

&lt;script&gt;
function run() {
obj = document.createElement(&quot;object&quot;);
li.appendChild(obj);
svg.currentScale = 0.99;
obj.data = String.fromCharCode(89, 82)
ff.setAttribute(&quot;direction&quot;, &quot;rtl&quot;);
}
&lt;/script&gt;
&lt;body onload=run()&gt;&lt;li id=li&gt;&lt;svg id=svg&gt;&lt;font-face-uri id=ff&gt;&lt;tref xlink:href=#ff&gt;


  * frame #0: 0x000000012531b5f4 WebCore`WebCore::RenderTreeBuilder::RenderTreeBuilder(this=0x00007ffee64045c0, view=0x000000013db9d210) at RenderTreeBuilder.cpp:154:5
    frame #1: 0x000000012531b9dd WebCore`WebCore::RenderTreeBuilder::RenderTreeBuilder(this=0x00007ffee64045c0, view=0x000000013db9d210) at RenderTreeBuilder.cpp:153:1
    frame #2: 0x00000001253337dc WebCore`WebCore::RenderTreeUpdater::RenderTreeUpdater(this=0x00007ffee6404598, document={ origin = file://, url = about:blank, inMainFrame = 0, backForwardCacheState = NotInBackForwardCache }) at RenderTreeUpdater.cpp:84:7
    frame #3: 0x00000001253338ad WebCore`WebCore::RenderTreeUpdater::RenderTreeUpdater(this=0x00007ffee6404598, document={ origin = file://, url = about:blank, inMainFrame = 0, backForwardCacheState = NotInBackForwardCache }) at RenderTreeUpdater.cpp:85:1
    frame #4: 0x0000000123acc18e WebCore`WebCore::Document::resolveStyle(this={ origin = file://, url = about:blank, inMainFrame = 0, backForwardCacheState = NotInBackForwardCache }, type=Rebuild) at Document.cpp:2008:31
    frame #5: 0x0000000123accc30 WebCore`WebCore::Document::updateStyleIfNeeded(this={ origin = file://, url = about:blank, inMainFrame = 0, backForwardCacheState = NotInBackForwardCache }) at Document.cpp:2101:5
    frame #6: 0x0000000123ae697a WebCore`WebCore::Document::finishedParsing(this={ origin = file://, url = about:blank, inMainFrame = 0, backForwardCacheState = NotInBackForwardCache }) at Document.cpp:5861:9
    frame #7: 0x00000001241aadf8 WebCore`WebCore::HTMLConstructionSite::finishedParsing(this=0x000000013d5784c0) at HTMLConstructionSite.cpp:419:16
    frame #8: 0x00000001241f7657 WebCore`WebCore::HTMLTreeBuilder::finished(this=0x000000013d5784a0) at HTMLTreeBuilder.cpp:2843:12
    frame #9: 0x00000001241b2258 WebCore`WebCore::HTMLDocumentParser::end(this=0x000000013dfb9000) at HTMLDocumentParser.cpp:449:20
    frame #10: 0x00000001241b00d8 WebCore`WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd(this=0x000000013dfb9000) at HTMLDocumentParser.cpp:458:5
    frame #11: 0x00000001241afe07 WebCore`WebCore::HTMLDocumentParser::prepareToStopParsing(this=0x000000013dfb9000) at HTMLDocumentParser.cpp:153:5
    frame #12: 0x00000001241b22c2 WebCore`WebCore::HTMLDocumentParser::attemptToEnd(this=0x000000013dfb9000) at HTMLDocumentParser.cpp:470:5
    frame #13: 0x00000001241b2399 WebCore`WebCore::HTMLDocumentParser::finish(this=0x000000013dfb9000) at HTMLDocumentParser.cpp:498:5
    frame #14: 0x0000000124518be2 WebCore`WebCore::DocumentWriter::end(this=0x000000013dfc8d90) at DocumentWriter.cpp:288:15
    frame #15: 0x0000000124517c34 WebCore`WebCore::DocumentLoader::finishedLoading(this=0x000000013dfc8d00) at DocumentLoader.cpp:452:14
    frame #16: 0x0000000124523244 WebCore`WebCore::DocumentLoader::maybeLoadEmpty(this=0x000000013dfc8d00) at DocumentLoader.cpp:1799:5
    frame #17: 0x00000001245233d5 WebCore`WebCore::DocumentLoader::startLoadingMainResource(this=0x000000013dfc8d00) at DocumentLoader.cpp:1813:9
    frame #18: 0x00000001245757c6 WebCore`WebCore::FrameLoader::init(this=0x000000013d59c680) at FrameLoader.cpp:344:34
    frame #19: 0x0000000124763fe6 WebCore`WebCore::Frame::init(this={ origin = file://, url = about:blank, isMainFrame = 0, backForwardCacheState = NotInBackForwardCache }) at Frame.cpp:184:15
    frame #20: 0x0000000138f203fc WebKitLegacy`+[WebFrame(self=WebFrame, _cmd=&quot;_createFrameWithPage:frameName:frameView:ownerElement:&quot;, page=0x000000013dcfa000, name={ length = 0, contents = &apos;&apos; }, frameView=0x00007f9a1c587c70, ownerElement=0x000000013db67720) _createFrameWithPage:frameName:frameView:ownerElement:] at WebFrame.mm:318:21
    frame #21: 0x0000000138f2094b WebKitLegacy`+[WebFrame(self=WebFrame, _cmd=&quot;_createSubframeWithOwnerElement:frameName:frameView:&quot;, ownerElement=0x000000013db67720, name={ length = 0, contents = &apos;&apos; }, frameView=0x00007f9a1c587c70) _createSubframeWithOwnerElement:frameName:frameView:] at WebFrame.mm:342:12
    frame #22: 0x0000000138f0ce98 WebKitLegacy`WebFrameLoaderClient::createFrame(this=0x000000013d5e4f80, name={ length = 0, contents = &apos;&apos; }, ownerElement=0x000000013db67720) at WebFrameLoaderClient.mm:1625:37
    frame #23: 0x00000001245f1337 WebCore`WebCore::FrameLoader::SubframeLoader::loadSubframe(this=0x000000013d5f8a80, ownerElement=0x000000013db67720, url={ file:///Users/jacklee/browser2/57028099/YR }, name={ length = 0, contents = &apos;&apos; }, referrer={ length = 57, contents = &apos;file:///Users/jacklee/browser2/57028099/min-57028099.html&apos; }) at SubframeLoader.cpp:337:44
    frame #24: 0x00000001245efc25 WebCore`WebCore::FrameLoader::SubframeLoader::loadOrRedirectSubframe(this=0x000000013d5f8a80, ownerElement=0x000000013db67720, requestURL={ file:///Users/jacklee/browser2/57028099/YR }, frameName={ length = 0, contents = &apos;&apos; }, lockHistory=Yes, lockBackForwardList=Yes) at SubframeLoader.cpp:309:17
    frame #25: 0x00000001245f06d6 WebCore`WebCore::FrameLoader::SubframeLoader::requestObject(this=0x000000013d5f8a80, ownerElement=0x000000013db67720, url={ length = 2, contents = &apos;YR&apos; }, frameName={ length = 0, contents = &apos;&apos; }, mimeType={ length = 0, contents = &apos;&apos; }, paramNames={ size = 2, capacity = 16 }, paramValues={ size = 2, capacity = 16 }) at SubframeLoader.cpp:245:12
    frame #26: 0x0000000124026da0 WebCore`WebCore::HTMLPlugInImageElement::requestObject(this=0x000000013db67720, relativeURL={ length = 2, contents = &apos;YR&apos; }, mimeType={ length = 0, contents = &apos;&apos; }, paramNames={ size = 2, capacity = 16 }, paramValues={ size = 2, capacity = 16 }) at HTMLPlugInImageElement.cpp:811:58
    frame #27: 0x000000012400d106 WebCore`WebCore::HTMLObjectElement::updateWidget(this=0x000000013db67720, createPlugins=No) at HTMLObjectElement.cpp:289:19
    frame #28: 0x00000001240236bf WebCore`WebCore::HTMLPlugInImageElement::updateAfterStyleResolution(this=0x000000013db67720) at HTMLPlugInImageElement.cpp:298:17
    frame #29: 0x000000012403550d WebCore`WebCore::HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution(this=0x000000013f4ee8a8)::$_0::operator()() const at HTMLPlugInImageElement.cpp:276:24
    frame #30: 0x000000012403527e WebCore`WTF::Detail::CallableWrapper&lt;WebCore::HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution()::$_0, void&gt;::call(this=0x000000013f4ee8a0) at Function.h:52:39
    frame #31: 0x00000001212757c2 WebCore`WTF::Function&lt;void ()&gt;::operator(this=0x000000013d577000)() const at Function.h:84:35
    frame #32: 0x00000001253d23a2 WebCore`WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler(this=0x00007ffee6405ed8) at StyleTreeResolver.cpp:643:17
    frame #33: 0x00000001253d2575 WebCore`WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler(this=0x00007ffee6405ed8) at StyleTreeResolver.cpp:637:1
    frame #34: 0x0000000125333bbc WebCore`WebCore::RenderTreeUpdater::commit(this=0x00007ffee6405f28, styleUpdate=unique_ptr&lt;const WebCore::Style::Update, std::__1::default_delete&lt;const WebCore::Style::Update&gt; &gt; @ 0x00007ffee6405f20) at RenderTreeUpdater.cpp:136:1
    frame #35: 0x0000000123acc90c WebCore`WebCore::Document::updateTextRenderer(this={ origin = file://, url = file:///Users/jacklee/browser2/57028099/min-57028099.html, inMainFrame = 1, backForwardCacheState = NotInBackForwardCache }, text=0x000000013db67220, offsetOfReplacedText=0, lengthOfReplacedText=0) at Document.cpp:2051:5
    frame #36: 0x0000000123cff1e3 WebCore`WebCore::Text::updateRendererAfterContentChange(this=0x000000013db67220, offsetOfReplacedData=0, lengthOfReplacedData=0) at Text.cpp:221:16
    frame #37: 0x0000000123a5a055 WebCore`WebCore::CharacterData::setDataAndUpdate(this=0x000000013db67220, newData={ length = 1, contents = &apos;
&apos; }, offsetOfReplacedData=0, oldLength=0, newLength=1) at CharacterData.cpp:198:31
    frame #38: 0x0000000123a59e6c WebCore`WebCore::CharacterData::setData(this=0x000000013db67220, data={ length = 1, contents = &apos;
&apos; }) at CharacterData.cpp:65:5
    frame #39: 0x0000000123a5ac3b WebCore`WebCore::CharacterData::setNodeValue(this=0x000000013db67220, nodeValue={ length = 1, contents = &apos;
&apos; }) at CharacterData.cpp:187:5
    frame #40: 0x0000000123c4a8cc WebCore`WebCore::Node::setTextContent(this=0x000000013db67220, text={ length = 1, contents = &apos;
&apos; }) at Node.cpp:1575:16
    frame #41: 0x000000012568b4a7 WebCore`WebCore::SVGTRefElement::updateReferencedText(this=0x000000013db66f80, target=0x000000013db66ea0) at SVGTRefElement.cpp:150:29
    frame #42: 0x000000012568b25a WebCore`WebCore::SVGTRefTargetEventListener::handleEvent(this=0x000000013d51ba50, (null)={ origin = file://, url = file:///Users/jacklee/browser2/57028099/min-57028099.html, inMainFrame = 1, backForwardCacheState = NotInBackForwardCache }, event=0x000000013db67920) at SVGTRefElement.cpp:119:23
    frame #43: 0x0000000123bdd097 WebCore`WebCore::EventTarget::innerInvokeEventListeners(this=0x000000013db66ea0, event=0x000000013db67920, listeners={ size = 1, capacity = 1 }, phase=Bubbling) at EventTarget.cpp:335:40
    frame #44: 0x0000000123bd9370 WebCore`WebCore::EventTarget::fireEventListeners(this=0x000000013db66ea0, event=0x000000013db67920, phase=Bubbling) at EventTarget.cpp:267:9
    frame #45: 0x0000000123c4f6d2 WebCore`WebCore::Node::handleLocalEvents(this=0x000000013db66ea0, event=0x000000013db67920, phase=Bubbling) at Node.cpp:2371:5
    frame #46: 0x0000000123bc7ab1 WebCore`WebCore::EventContext::handleLocalEvents(this=0x000000013f4cca78, event=0x000000013db67920, phase=Bubbling) const at EventContext.cpp:55:17
    frame #47: 0x0000000123bc857f WebCore`WebCore::dispatchEventInDOM(event=0x000000013db67920, path=0x00007ffee64065a8) at EventDispatcher.cpp:100:22
    frame #48: 0x0000000123bc80b7 WebCore`WebCore::EventDispatcher::dispatchEvent(node=0x000000013db66ea0, event=0x000000013db67920) at EventDispatcher.cpp:154:9
    frame #49: 0x0000000123c4f72d WebCore`WebCore::Node::dispatchEvent(this=0x000000013db66ea0, event=0x000000013db67920) at Node.cpp:2381:5
    frame #50: 0x0000000123c9854e WebCore`WebCore::ScopedEventQueue::dispatchEvent(this=0x0000000127c709e8, event=0x000000013db67920) const at ScopedEventQueue.cpp:57:37
    frame #51: 0x0000000123c984d1 WebCore`WebCore::ScopedEventQueue::enqueueEvent(this=0x0000000127c709e8, event=0x00007ffee6406780) at ScopedEventQueue.cpp:52:9
    frame #52: 0x0000000123bc7d89 WebCore`WebCore::EventDispatcher::dispatchScopedEvent(node=0x000000013db66ea0, event=0x000000013db67920) at EventDispatcher.cpp:52:35
    frame #53: 0x0000000123c4f6fd WebCore`WebCore::Node::dispatchScopedEvent(this=0x000000013db66ea0, event=0x000000013db67920) at Node.cpp:2376:5
    frame #54: 0x0000000123c4f88b WebCore`WebCore::Node::dispatchSubtreeModifiedEvent(this=0x000000013db66ea0) at Node.cpp:2397:5
    frame #55: 0x0000000123b8dccf WebCore`WebCore::Element::didAddAttribute(this=0x000000013db66ea0, name=0x00007ffee64069b8, value={ length = 3, contents = &apos;rtl&apos; }) at Element.cpp:4100:5
    frame #56: 0x0000000123b8dbc0 WebCore`WebCore::Element::addAttributeInternal(this=0x000000013db66ea0, name=0x00007ffee64069b8, value={ length = 3, contents = &apos;rtl&apos; }, inSynchronizationOfLazyAttribute=NotInSynchronizationOfLazyAttribute) at Element.cpp:2874:5
    frame #57: 0x0000000123b86975 WebCore`WebCore::Element::setAttributeInternal(this=0x000000013db66ea0, index=4294967295, name=0x00007ffee64069b8, newValue={ length = 3, contents = &apos;rtl&apos; }, inSynchronizationOfLazyAttribute=NotInSynchronizationOfLazyAttribute) at Element.cpp:1711:9
    frame #58: 0x0000000123b86c1e WebCore`WebCore::Element::setAttribute(this=0x000000013db66ea0, qualifiedName={ length = 9, contents = &apos;direction&apos; }, value={ length = 3, contents = &apos;rtl&apos; }) at Element.cpp:1678:5
    frame #59: 0x0000000121cbcb10 WebCore`WebCore::jsElementPrototypeFunctionSetAttributeBody(lexicalGlobalObject=0x000000013dff8468, callFrame=0x00007ffee6406c30, castedThis=0x000000013d547b08, throwScope=0x00007ffee6406ba8) at JSElement.cpp:3795:63
    frame #60: 0x0000000121c30412 WebCore`long long WebCore::IDLOperation&lt;WebCore::JSElement&gt;::call&lt;&amp;(lexicalGlobalObject=0x000000013dff8468, callFrame=0x00007ffee6406c30, operationName=&quot;setAttribute&quot;)), (WebCore::CastedThisErrorBehavior)0&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*) at JSDOMOperation.h:53:16
    frame #61: 0x0000000121c300f4 WebCore`WebCore::jsElementPrototypeFunctionSetAttribute(lexicalGlobalObject=0x000000013dff8468, callFrame=0x00007ffee6406c30) at JSElement.cpp:3801:12
    frame #62: 0x00005a7589601178</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654614</commentid>
    <comment_count>2</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-20 13:36:38 -0700</bug_when>
    <thetext>This bug probably has security implications since if this assertion is disabled we would hit the following assertion in FrameViewLayoutContext::layout():

    RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(!frame().document()-&gt;inRenderTreeUpdate());

On an old webkit version that does not have either assertion, would it be a concern?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654617</commentid>
    <comment_count>3</comment_count>
      <attachid>399885</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-20 13:41:16 -0700</bug_when>
    <thetext>Created attachment 399885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654621</commentid>
    <comment_count>4</comment_count>
      <attachid>399887</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-20 13:45:04 -0700</bug_when>
    <thetext>Created attachment 399887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654624</commentid>
    <comment_count>5</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-20 13:50:00 -0700</bug_when>
    <thetext>The patches are for discussions and demonstrating the issue.

To avoid reentrancy, added check for inRenderTreeUpdate() and bail out. In the first patch the whole Document::resolveStyle. In second and third patches we still run part of Document::resolveStyle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654625</commentid>
    <comment_count>6</comment_count>
      <attachid>399888</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-20 13:50:32 -0700</bug_when>
    <thetext>Created attachment 399888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654962</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-05-21 09:47:59 -0700</bug_when>
    <thetext>I don&apos;t completely agree that this is re-entrency. We only invoke this nested plug-in code at the very end of RenderTreeUpdater::commit. RenderTreeUpdater::commit&apos;s PostResolutionCallbackDisabler is designed to delay this work until we it will not re-enter.

Is this a release crash or a debug assertion failure?

Can you explain what about re-entrency caused a bug here?

Does moving the PostResolutionCallbackDisabler into the callers of RenderTreeUpdater::commit fix the bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655017</commentid>
    <comment_count>8</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-21 11:44:26 -0700</bug_when>
    <thetext>Sorry I should have made it more clear. It was referring to RenderTreeBuilder constructor. The design is non-reentrant since it checks for existing RenderTreeBuilder and crashes.

And thanks for the suggestion. Moving PostResolutionCallbackDisabler out of commit works. And there are only two callers so it should be easy to make the change.

I am uploading a quick hack to see if it passes EWS. If it does, I will separate the function as it relies on destructors to clear m_inRenderTreeUpdate in document and s_current in RenderTreeBuilder.  

(In reply to Geoffrey Garen from comment #7)
&gt; I don&apos;t completely agree that this is re-entrency. We only invoke this
&gt; nested plug-in code at the very end of RenderTreeUpdater::commit.
&gt; RenderTreeUpdater::commit&apos;s PostResolutionCallbackDisabler is designed to
&gt; delay this work until we it will not re-enter.
&gt; 
&gt; Is this a release crash or a debug assertion failure?
&gt; 
&gt; Can you explain what about re-entrency caused a bug here?
&gt; 
&gt; Does moving the PostResolutionCallbackDisabler into the callers of
&gt; RenderTreeUpdater::commit fix the bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655021</commentid>
    <comment_count>9</comment_count>
      <attachid>399973</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-21 11:52:00 -0700</bug_when>
    <thetext>Created attachment 399973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655031</commentid>
    <comment_count>10</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-21 12:33:45 -0700</bug_when>
    <thetext>This is a release crash in RenderTreeBuilder constructor:

RELEASE_ASSERT(!s_current || &amp;m_view != &amp;s_current-&gt;m_view);

(In reply to Geoffrey Garen from comment #7)
&gt; Is this a release crash or a debug assertion failure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655065</commentid>
    <comment_count>11</comment_count>
      <attachid>399973</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-05-21 14:01:29 -0700</bug_when>
    <thetext>Comment on attachment 399973
Patch

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

&gt; Source/WebCore/dom/Document.cpp:2011
&gt; +            SetForScope&lt;bool&gt;* inRenderTreeUpdate = new SetForScope&lt;bool&gt;(m_inRenderTreeUpdate, true);
&gt; +            RenderTreeUpdater* updater = new RenderTreeUpdater(*this);
&gt; +            updater-&gt;commit(WTFMove(styleUpdate));
&gt; +            delete updater;
&gt; +            delete inRenderTreeUpdate;
&gt; +            Style::PostResolutionCallbackDisabler callbackDisabler(*this);

This is the right idea but the wrong approach. We try very hard to avoid manual delete in WebKit. Also, you declared the PostResolutionCallbackDisabler too late, so it has no effect anymore during the call to commit().

Here&apos;s a suggestion:

1. Change the  RenderTreeUpdater constructor to require a const PostResolutionCallbackDisabler&amp; argument. (The purpose of this argument is to communicate, at compile time, the requirement that our caller must have this object in scope already. Since we won&apos;t actually use this argument, you don&apos;t need to give it a parameter name, just a type.)

2. Make it build.

This change uses C++ scope rules to naturally enforce the idiom that the PostResolutionCallbackDisabler must run its destructor after the RenderTreeUpdater runs its destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655089</commentid>
    <comment_count>12</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-21 14:48:15 -0700</bug_when>
    <thetext>Thanks for the explanation. Now I have a better idea how PostResolutionCallbackDisabler works.

Yeah, it was a quick hack. I planed to create a function in document to call updater-&gt;commit so it doesn&apos;t require manual delete. And it can be easily added if there will be more callers.

(In reply to Geoffrey Garen from comment #11)
&gt; Comment on attachment 399973 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399973&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:2011
&gt; &gt; +            SetForScope&lt;bool&gt;* inRenderTreeUpdate = new SetForScope&lt;bool&gt;(m_inRenderTreeUpdate, true);
&gt; &gt; +            RenderTreeUpdater* updater = new RenderTreeUpdater(*this);
&gt; &gt; +            updater-&gt;commit(WTFMove(styleUpdate));
&gt; &gt; +            delete updater;
&gt; &gt; +            delete inRenderTreeUpdate;
&gt; &gt; +            Style::PostResolutionCallbackDisabler callbackDisabler(*this);
&gt; 
&gt; This is the right idea but the wrong approach. We try very hard to avoid
&gt; manual delete in WebKit. Also, you declared the
&gt; PostResolutionCallbackDisabler too late, so it has no effect anymore during
&gt; the call to commit().
&gt; 
&gt; Here&apos;s a suggestion:
&gt; 
&gt; 1. Change the  RenderTreeUpdater constructor to require a const
&gt; PostResolutionCallbackDisabler&amp; argument. (The purpose of this argument is
&gt; to communicate, at compile time, the requirement that our caller must have
&gt; this object in scope already. Since we won&apos;t actually use this argument, you
&gt; don&apos;t need to give it a parameter name, just a type.)
&gt; 
&gt; 2. Make it build.
&gt; 
&gt; This change uses C++ scope rules to naturally enforce the idiom that the
&gt; PostResolutionCallbackDisabler must run its destructor after the
&gt; RenderTreeUpdater runs its destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655167</commentid>
    <comment_count>13</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-21 17:25:21 -0700</bug_when>
    <thetext>Geoff, in the last patch I also experiment with:
    SetForScope&lt;bool&gt; inRenderTreeUpdate(m_inRenderTreeUpdate, true);
    delete inRenderTreeUpdate;&quot;

If inRenderTreeUpdate is not destructed before ~PostResolutionCallbackDisabler(), the following RELEASE_ASSERT_WITH_SECURITY_IMPLICATION triggers in DumpRenderTree.

void FrameViewLayoutContext::layout()
{
    RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(!frame().document()-&gt;inRenderTreeUpdate());
...
}

  * frame #0: 0x0000000111ca1133 WebCore`WTFCrashWithInfo((null)=191, (null)=&quot;./page/FrameViewLayoutContext.cpp&quot;, (null)=&quot;void WebCore::FrameViewLayoutContext::layout()&quot;, (null)=28) at Assertions.h:671:5 [opt]
    frame #1: 0x000000011312d57e WebCore`WebCore::FrameViewLayoutContext::layout(this=&lt;unavailable&gt;) at FrameViewLayoutContext.cpp:191:5 [opt]
    frame #2: 0x00000001131146ea WebCore`WebCore::Frame::setPageAndTextZoomFactors(this={ origin = file://, url = file:///Users/jacklee/browser/min-57028099.html, isMainFrame = 1, backForwardCacheState = NotInBackForwardCache }, pageZoomFactor=&lt;unavailable&gt;, textZoomFactor=&lt;unavailable&gt;) at Frame.cpp:965:35 [opt]
    frame #3: 0x000000011636ae4f WebKitLegacy`+[WebFrame(self=&lt;unavailable&gt;, _cmd=&lt;unavailable&gt;, page=&lt;unavailable&gt;, name=&lt;unavailable&gt;, frameView=&lt;unavailable&gt;, ownerElement=0x0000000119dd6ec0) _createFrameWithPage:frameName:frameView:ownerElement:] at WebFrame.mm:320:5 [opt]
    frame #4: 0x000000011636b0b7 WebKitLegacy`+[WebFrame(self=&lt;unavailable&gt;, _cmd=&lt;unavailable&gt;, ownerElement=&lt;unavailable&gt;, name=&lt;unavailable&gt;, frameView=&lt;unavailable&gt;) _createSubframeWithOwnerElement:frameName:frameView:] at WebFrame.mm:342:12 [opt]
    frame #5: 0x0000000116364ba0 WebKitLegacy`WebFrameLoaderClient::createFrame(this=0x0000000119ee5e60, name={ length = 0, contents = &apos;&apos; }, ownerElement=0x0000000119dd6ec0) at WebFrameLoaderClient.mm:1625:37 [opt]
    frame #6: 0x000000011306d5b4 WebCore`WebCore::FrameLoader::SubframeLoader::loadSubframe(this=0x0000000119ef9230, ownerElement=0x0000000119dd6ec0, url={ file:///Users/jacklee/browser/YR }, name={ length = 0, contents = &apos;&apos; }, referrer={ length = 47, contents = &apos;file:///Users/jacklee/browser/min-57028099.html&apos; }) at SubframeLoader.cpp:337:44 [opt]
    frame #7: 0x000000011306c218 WebCore`WebCore::FrameLoader::SubframeLoader::loadOrRedirectSubframe(this=0x0000000119ef9230, ownerElement=0x0000000119dd6ec0, requestURL=&lt;unavailable&gt;, frameName={ length = 0, contents = &apos;&apos; }, lockHistory=&lt;unavailable&gt;, lockBackForwardList=Yes) at SubframeLoader.cpp:309:17 [opt]
    frame #8: 0x000000011306c9c0 WebCore`WebCore::FrameLoader::SubframeLoader::requestObject(this=0x0000000119ef9230, ownerElement=0x0000000119dd6ec0, url={ length = 2, contents = &apos;YR&apos; }, frameName=&lt;unavailable&gt;, mimeType={ length = 0, contents = &apos;&apos; }, paramNames=&lt;unavailable&gt;, paramValues={ size = 2, capacity = 16 }) at SubframeLoader.cpp:245:12 [opt]
    frame #9: 0x0000000112e3951b WebCore`WebCore::HTMLPlugInImageElement::requestObject(this=0x0000000119dd6ec0, relativeURL={ length = 2, contents = &apos;YR&apos; }, mimeType={ length = 0, contents = &apos;&apos; }, paramNames={ size = 2, capacity = 16 }, paramValues={ size = 2, capacity = 16 }) at HTMLPlugInImageElement.cpp:811:58 [opt]
    frame #10: 0x0000000112e2b7e2 WebCore`WebCore::HTMLObjectElement::updateWidget(this=0x0000000119dd6ec0, createPlugins=No) at HTMLObjectElement.cpp:289:19 [opt]
    frame #11: 0x0000000112e36c5d WebCore`WebCore::HTMLPlugInImageElement::updateAfterStyleResolution(this=0x0000000119dd6ec0) at HTMLPlugInImageElement.cpp:298:17 [opt]
    frame #12: 0x0000000113637971 WebCore`WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler() [inlined] WTF::Function&lt;void ()&gt;::operator(this=&lt;unavailable&gt;)() const at Function.h:84:35 [opt]
    frame #13: 0x0000000113637967 WebCore`WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler(this=&lt;unavailable&gt;) at StyleTreeResolver.cpp:643 [opt]
    frame #14: 0x0000000112bcff41 WebCore`WebCore::Document::updateTextRenderer(WebCore::Text&amp;, unsigned int, unsigned int) [inlined] WebCore::updateRenderTree(document={ origin = file://, url = file:///Users/jacklee/browser/min-57028099.html, inMainFrame = 1, backForwardCacheState = NotInBackForwardCache }, styleUpdate=unique_ptr&lt;const WebCore::Style::Update, std::__1::default_delete&lt;const WebCore::Style::Update&gt; &gt; @ scalar) at Document.cpp:1931:1 [opt]
    frame #15: 0x0000000112bcfec4 WebCore`WebCore::Document::updateTextRenderer(this={ origin = file://, url = file:///Users/jacklee/browser/min-57028099.html, inMainFrame = 1, backForwardCacheState = NotInBackForwardCache }, text=&lt;unavailable&gt;, offsetOfReplacedText=&lt;unavailable&gt;, lengthOfReplacedText=&lt;unavailable&gt;) at Document.cpp:2054 [opt]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655175</commentid>
    <comment_count>14</comment_count>
      <attachid>400006</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-21 17:53:40 -0700</bug_when>
    <thetext>Created attachment 400006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655196</commentid>
    <comment_count>15</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-21 19:30:07 -0700</bug_when>
    <thetext>In this patch, the order of the following local variables need to be preserved so the destructors are called in the right order to prevent issues mentioned in comment #13.

    Style::PostResolutionCallbackDisabler callbackDisabler(document);
    SetForScope&lt;bool&gt; inRenderTreeUpdate(document.getInRenderTreeUpdate(), true);

Is there a better way to preserve the order?

(In reply to Jack from comment #14)
&gt; Created attachment 400006 [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655218</commentid>
    <comment_count>16</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-05-21 20:28:49 -0700</bug_when>
    <thetext>(In reply to Jack from comment #15)
&gt; In this patch, the order of the following local variables need to be
&gt; preserved so the destructors are called in the right order to prevent issues
&gt; mentioned in comment #13.
&gt; 
&gt;     Style::PostResolutionCallbackDisabler callbackDisabler(document);
&gt;     SetForScope&lt;bool&gt; inRenderTreeUpdate(document.getInRenderTreeUpdate(),
&gt; true);
&gt; 
&gt; Is there a better way to preserve the order?

For better or worse, in C++, construction order is the best way. 

At least by putting this in a helper function, you&apos;ve ensured that all callers will do it right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655219</commentid>
    <comment_count>17</comment_count>
      <attachid>400006</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-05-21 20:30:50 -0700</bug_when>
    <thetext>Comment on attachment 400006
Patch

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

r=me, with one style change

&gt; Source/WebCore/dom/Document.h:1318
&gt; +    bool&amp; getInRenderTreeUpdate() { return m_inRenderTreeUpdate; }

I think it would be slightly nicer to remove this accessor and make updateRenderTree a Document member function instead. It&apos;s best to avoid making pointers to data members public because doing so makes it harder to reason about the places that can change those data members.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655253</commentid>
    <comment_count>18</comment_count>
      <attachid>400027</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-21 22:59:58 -0700</bug_when>
    <thetext>Created attachment 400027
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655265</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-21 23:40:36 -0700</bug_when>
    <thetext>Patch 400027 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655361</commentid>
    <comment_count>20</comment_count>
      <attachid>400059</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-22 10:46:02 -0700</bug_when>
    <thetext>Created attachment 400059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655362</commentid>
    <comment_count>21</comment_count>
      <attachid>400059</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-05-22 10:50:02 -0700</bug_when>
    <thetext>Comment on attachment 400059
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655363</commentid>
    <comment_count>22</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-22 10:51:19 -0700</bug_when>
    <thetext>Changed to member function and added regression test.
 
(In reply to Jack from comment #20)
&gt; Created attachment 400059 [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655401</commentid>
    <comment_count>23</comment_count>
      <attachid>400067</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-22 12:47:55 -0700</bug_when>
    <thetext>Created attachment 400067
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655402</commentid>
    <comment_count>24</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-22 12:52:13 -0700</bug_when>
    <thetext>No sure why EWS cannot find &quot;StyleUpdate.h&quot;, somehow it builds on local machine.

Include &quot;StyleResolver.h&quot; instead.

(In reply to Jack from comment #23)
&gt; Created attachment 400067 [details]
&gt; Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655412</commentid>
    <comment_count>25</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-22 13:17:54 -0700</bug_when>
    <thetext>Patch 400067 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655574</commentid>
    <comment_count>26</comment_count>
      <attachid>400107</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-22 21:54:52 -0700</bug_when>
    <thetext>Created attachment 400107
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655575</commentid>
    <comment_count>27</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-22 21:55:45 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 400107 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655576</commentid>
    <comment_count>28</comment_count>
      <attachid>400108</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-22 21:58:45 -0700</bug_when>
    <thetext>Created attachment 400108
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655580</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-22 22:53:56 -0700</bug_when>
    <thetext>Committed r262095: &lt;https://trac.webkit.org/changeset/262095&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 400108.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655584</commentid>
    <comment_count>30</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-23 00:15:50 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655585</commentid>
    <comment_count>31</comment_count>
      <attachid>400111</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-23 00:15:52 -0700</bug_when>
    <thetext>Created attachment 400111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655586</commentid>
    <comment_count>32</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-23 00:16:59 -0700</bug_when>
    <thetext>Win EWS didn&apos;t finish. Run tests again to make sure.
(In reply to Jack from comment #31)
&gt; Created attachment 400111 [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655587</commentid>
    <comment_count>33</comment_count>
      <attachid>400112</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-23 00:25:31 -0700</bug_when>
    <thetext>Created attachment 400112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655590</commentid>
    <comment_count>34</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-23 01:55:06 -0700</bug_when>
    <thetext>EWS fails the same test on earlier changes, for example:
https://ews-build.webkit.org/#/builders/10/builds/18819

(In reply to Jack from comment #33)
&gt; Created attachment 400112 [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655599</commentid>
    <comment_count>35</comment_count>
      <attachid>400108</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-23 06:08:21 -0700</bug_when>
    <thetext>Comment on attachment 400108
Patch for landing

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

&gt; Source/WebCore/dom/Document.cpp:1932
&gt; +    // NOTE: Preserve the order of definitions below so the destructors are called in proper sequence.
&gt; +    Style::PostResolutionCallbackDisabler callbackDisabler(*this);
&gt; +    SetForScope&lt;bool&gt; inRenderTreeUpdate(m_inRenderTreeUpdate, true);
&gt; +    RenderTreeUpdater updater(*this, callbackDisabler);
&gt; +    // End of ordered definitions
&gt; +
&gt; +    updater.commit(WTFMove(styleUpdate));

Instead of comments, maybe make the scoping clear by adding a { } block after PostResolutionCallbackDisabler?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655626</commentid>
    <comment_count>36</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-23 10:10:13 -0700</bug_when>
    <thetext>Thanks, Antti. Good idea!
(In reply to Antti Koivisto from comment #35)
&gt; Comment on attachment 400108 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=400108&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:1932
&gt; &gt; +    // NOTE: Preserve the order of definitions below so the destructors are called in proper sequence.
&gt; &gt; +    Style::PostResolutionCallbackDisabler callbackDisabler(*this);
&gt; &gt; +    SetForScope&lt;bool&gt; inRenderTreeUpdate(m_inRenderTreeUpdate, true);
&gt; &gt; +    RenderTreeUpdater updater(*this, callbackDisabler);
&gt; &gt; +    // End of ordered definitions
&gt; &gt; +
&gt; &gt; +    updater.commit(WTFMove(styleUpdate));
&gt; 
&gt; Instead of comments, maybe make the scoping clear by adding a { } block
&gt; after PostResolutionCallbackDisabler?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655634</commentid>
    <comment_count>37</comment_count>
      <attachid>400128</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-05-23 11:10:32 -0700</bug_when>
    <thetext>Created attachment 400128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655647</commentid>
    <comment_count>38</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-23 13:14:01 -0700</bug_when>
    <thetext>Committed r262103: &lt;https://trac.webkit.org/changeset/262103&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 400128.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399885</attachid>
            <date>2020-05-20 13:41:16 -0700</date>
            <delta_ts>2020-05-21 17:53:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212163-20200520134115.patch</filename>
            <type>text/plain</type>
            <size>1372</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZhN2FhZjUwNDUxYWUx
OTYxMWQxNTRhNDFmOGNiMWI2NWVhODkzMy4uYWNmYWI2MjZlZjAwYWRkMDRhMzg5MDU3NDA1YWUz
NGYxNTkzN2Y4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA1LTIwICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZl
U3R5bGUpOgorCiAyMDIwLTA1LTE0ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxl
LmNvbT4KIAogICAgICAgICBBWENvcmVPYmplY3QgZm9udCBjb21wYXJpc29uIG1ldGhvZHMgc2hv
dWxkIHRha2UgYW5vdGhlciBBWENvcmVPYmplY3QgaW5zdGVhZCBvZiBhIFJlbmRlck9iamVjdC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGJlZjQ4Njk0MDM5NzkwODg2MTkyZWIzZmFiMDcy
OGYyNTQ0MmI3MzUuLjQ0OTE3M2U0YzJlZDFmNzc4NWRiOGUwMzEwNzUwNTEzMGM5YjJiNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTkzMiw3ICsxOTMyLDcgQEAgdm9pZCBEb2N1bWVu
dDo6cmVzb2x2ZVN0eWxlKFJlc29sdmVTdHlsZVR5cGUgdHlwZSkKICAgICBpZiAoZnJhbWVWaWV3
LmlzUGFpbnRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmIChtX2luU3R5bGVS
ZWNhbGMpCisgICAgaWYgKG1faW5TdHlsZVJlY2FsYyB8fCBpblJlbmRlclRyZWVVcGRhdGUoKSkK
ICAgICAgICAgcmV0dXJuOyAvLyBHdWFyZCBhZ2FpbnN0IHJlLWVudHJhbmN5LiAtZHdoCiAKICAg
ICBUcmFjZVNjb3BlIHRyYWNpbmdTY29wZShTdHlsZVJlY2FsY1N0YXJ0LCBTdHlsZVJlY2FsY0Vu
ZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399887</attachid>
            <date>2020-05-20 13:45:04 -0700</date>
            <delta_ts>2020-05-21 17:53:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212163-20200520134503.patch</filename>
            <type>text/plain</type>
            <size>1380</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZhN2FhZjUwNDUxYWUx
OTYxMWQxNTRhNDFmOGNiMWI2NWVhODkzMy4uYWNmYWI2MjZlZjAwYWRkMDRhMzg5MDU3NDA1YWUz
NGYxNTkzN2Y4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA1LTIwICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZl
U3R5bGUpOgorCiAyMDIwLTA1LTE0ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxl
LmNvbT4KIAogICAgICAgICBBWENvcmVPYmplY3QgZm9udCBjb21wYXJpc29uIG1ldGhvZHMgc2hv
dWxkIHRha2UgYW5vdGhlciBBWENvcmVPYmplY3QgaW5zdGVhZCBvZiBhIFJlbmRlck9iamVjdC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGJlZjQ4Njk0MDM5NzkwODg2MTkyZWIzZmFiMDcy
OGYyNTQ0MmI3MzUuLmFlZmVlZGQ4MGIyM2JlMGYyZjRiZTQ4MzgxYTY2YTUzODY5YzE0MWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjAwMyw2ICsyMDAzLDkgQEAgdm9pZCBEb2N1bWVu
dDo6cmVzb2x2ZVN0eWxlKFJlc29sdmVTdHlsZVR5cGUgdHlwZSkKICAgICAgICAgbV9pblN0eWxl
UmVjYWxjID0gZmFsc2U7CiAKICAgICAgICAgaWYgKHN0eWxlVXBkYXRlKSB7CisgICAgICAgICAg
ICBpZiAoaW5SZW5kZXJUcmVlVXBkYXRlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCiAg
ICAgICAgICAgICBTZXRGb3JTY29wZTxib29sPiBpblJlbmRlclRyZWVVcGRhdGUobV9pblJlbmRl
clRyZWVVcGRhdGUsIHRydWUpOwogCiAgICAgICAgICAgICBSZW5kZXJUcmVlVXBkYXRlciB1cGRh
dGVyKCp0aGlzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399888</attachid>
            <date>2020-05-20 13:50:32 -0700</date>
            <delta_ts>2020-05-21 17:53:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212163-20200520135031.patch</filename>
            <type>text/plain</type>
            <size>1371</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZhN2FhZjUwNDUxYWUx
OTYxMWQxNTRhNDFmOGNiMWI2NWVhODkzMy4uYWNmYWI2MjZlZjAwYWRkMDRhMzg5MDU3NDA1YWUz
NGYxNTkzN2Y4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA1LTIwICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZl
U3R5bGUpOgorCiAyMDIwLTA1LTE0ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxl
LmNvbT4KIAogICAgICAgICBBWENvcmVPYmplY3QgZm9udCBjb21wYXJpc29uIG1ldGhvZHMgc2hv
dWxkIHRha2UgYW5vdGhlciBBWENvcmVPYmplY3QgaW5zdGVhZCBvZiBhIFJlbmRlck9iamVjdC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGJlZjQ4Njk0MDM5NzkwODg2MTkyZWIzZmFiMDcy
OGYyNTQ0MmI3MzUuLjMwNTNlN2I3NDUzNzAxNTk2OGEwMTcwYWM1YTY1OTA4YTdkNmU3ZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjAwMiw3ICsyMDAyLDggQEAgdm9pZCBEb2N1bWVu
dDo6cmVzb2x2ZVN0eWxlKFJlc29sdmVTdHlsZVR5cGUgdHlwZSkKIAogICAgICAgICBtX2luU3R5
bGVSZWNhbGMgPSBmYWxzZTsKIAotICAgICAgICBpZiAoc3R5bGVVcGRhdGUpIHsKKyAgICAgICAg
aWYgKHN0eWxlVXBkYXRlICYmICFpblJlbmRlclRyZWVVcGRhdGUoKSkgeworCiAgICAgICAgICAg
ICBTZXRGb3JTY29wZTxib29sPiBpblJlbmRlclRyZWVVcGRhdGUobV9pblJlbmRlclRyZWVVcGRh
dGUsIHRydWUpOwogCiAgICAgICAgICAgICBSZW5kZXJUcmVlVXBkYXRlciB1cGRhdGVyKCp0aGlz
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399973</attachid>
            <date>2020-05-21 11:52:00 -0700</date>
            <delta_ts>2020-05-21 17:53:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212163-20200521115159.patch</filename>
            <type>text/plain</type>
            <size>3613</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZhN2FhZjUwNDUxYWUx
OTYxMWQxNTRhNDFmOGNiMWI2NWVhODkzMy4uNDRiOWZhNmFjNjA0NzlkZDU0MGVlOGE2ZjQ4MDk1
NWNhNTUzNjhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA1LTIxICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZl
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVRleHRSZW5kZXJlcik6
CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVVcGRhdGVyOjpjb21taXQpOgorCiAyMDIwLTA1LTE0
ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBBWENv
cmVPYmplY3QgZm9udCBjb21wYXJpc29uIG1ldGhvZHMgc2hvdWxkIHRha2UgYW5vdGhlciBBWENv
cmVPYmplY3QgaW5zdGVhZCBvZiBhIFJlbmRlck9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IGJlZjQ4Njk0MDM5NzkwODg2MTkyZWIzZmFiMDcyOGYyNTQ0MmI3MzUuLjkyMWFkZDRk
YTZhYWFiMTdiNGNjYzIxMjQxYjYwNGViODE4MGY2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtMjAwMywxMCArMjAwMywxMiBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVz
b2x2ZVN0eWxlVHlwZSB0eXBlKQogICAgICAgICBtX2luU3R5bGVSZWNhbGMgPSBmYWxzZTsKIAog
ICAgICAgICBpZiAoc3R5bGVVcGRhdGUpIHsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+
IGluUmVuZGVyVHJlZVVwZGF0ZShtX2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7Ci0KLSAgICAg
ICAgICAgIFJlbmRlclRyZWVVcGRhdGVyIHVwZGF0ZXIoKnRoaXMpOwotICAgICAgICAgICAgdXBk
YXRlci5jb21taXQoV1RGTW92ZShzdHlsZVVwZGF0ZSkpOworICAgICAgICAgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4qIGluUmVuZGVyVHJlZVVwZGF0ZSA9IG5ldyBTZXRGb3JTY29wZTxib29sPihtX2lu
UmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7CisgICAgICAgICAgICBSZW5kZXJUcmVlVXBkYXRlciog
dXBkYXRlciA9IG5ldyBSZW5kZXJUcmVlVXBkYXRlcigqdGhpcyk7CisgICAgICAgICAgICB1cGRh
dGVyLT5jb21taXQoV1RGTW92ZShzdHlsZVVwZGF0ZSkpOworICAgICAgICAgICAgZGVsZXRlIHVw
ZGF0ZXI7CisgICAgICAgICAgICBkZWxldGUgaW5SZW5kZXJUcmVlVXBkYXRlOworICAgICAgICAg
ICAgU3R5bGU6OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlciBjYWxsYmFja0Rpc2FibGVy
KCp0aGlzKTsKIAogICAgICAgICAgICAgZnJhbWVWaWV3LnN0eWxlQW5kUmVuZGVyVHJlZURpZENo
YW5nZSgpOwogICAgICAgICB9CkBAIC0yMDQyLDEzICsyMDQ0LDE3IEBAIHZvaWQgRG9jdW1lbnQ6
OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiB2b2lkIERvY3VtZW50Ojp1cGRh
dGVUZXh0UmVuZGVyZXIoVGV4dCYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0T2ZSZXBsYWNlZFRleHQs
IHVuc2lnbmVkIGxlbmd0aE9mUmVwbGFjZWRUZXh0KQogewogICAgIEFTU0VSVCghbV9pblJlbmRl
clRyZWVVcGRhdGUpOwotICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVuZGVyVHJlZVVwZGF0ZSht
X2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7CiAKICAgICBhdXRvIHRleHRVcGRhdGUgPSBtYWtl
VW5pcXVlPFN0eWxlOjpVcGRhdGU+KCp0aGlzKTsKICAgICB0ZXh0VXBkYXRlLT5hZGRUZXh0KHRl
eHQsIHsgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIGxlbmd0aE9mUmVwbGFjZWRUZXh0LCBXVEY6Om51
bGxvcHQgfSk7CiAKLSAgICBSZW5kZXJUcmVlVXBkYXRlciByZW5kZXJUcmVlVXBkYXRlcigqdGhp
cyk7Ci0gICAgcmVuZGVyVHJlZVVwZGF0ZXIuY29tbWl0KFdURk1vdmUodGV4dFVwZGF0ZSkpOwor
ICAgIFNldEZvclNjb3BlPGJvb2w+KiBpblJlbmRlclRyZWVVcGRhdGUgPSBuZXcgU2V0Rm9yU2Nv
cGU8Ym9vbD4obV9pblJlbmRlclRyZWVVcGRhdGUsIHRydWUpOworICAgIFJlbmRlclRyZWVVcGRh
dGVyKiByZW5kZXJUcmVlVXBkYXRlciA9IG5ldyBSZW5kZXJUcmVlVXBkYXRlcigqdGhpcyk7Cisg
ICAgcmVuZGVyVHJlZVVwZGF0ZXItPmNvbW1pdChXVEZNb3ZlKHRleHRVcGRhdGUpKTsKKyAgICBk
ZWxldGUgcmVuZGVyVHJlZVVwZGF0ZXI7CisgICAgZGVsZXRlIGluUmVuZGVyVHJlZVVwZGF0ZTsK
KyAgICAKKyAgICBTdHlsZTo6UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyIGNhbGxiYWNr
RGlzYWJsZXIoKnRoaXMpOwogfQogCiBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4IGRkNjRmZGVkN2QwYWVlYTkxNGZmMjk0MDBmZGIzODgz
ZWZmNDA4NzIuLjBkYTJiYTY4MDc3ZDMxYmI0YzE4MjM1ODRlYWVjOTQyYmMwM2QwZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVV
cGRhdGVyLmNwcApAQCAtMTIxLDggKzEyMSw2IEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OmNv
bW1pdChzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVVcGRhdGUpCiAg
ICAgCiAgICAgVHJhY2VTY29wZSBzY29wZShSZW5kZXJUcmVlQnVpbGRTdGFydCwgUmVuZGVyVHJl
ZUJ1aWxkRW5kKTsKIAotICAgIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIg
Y2FsbGJhY2tEaXNhYmxlcihtX2RvY3VtZW50KTsKLQogICAgIG1fc3R5bGVVcGRhdGUgPSBXVEZN
b3ZlKHN0eWxlVXBkYXRlKTsKIAogICAgIGZvciAoYXV0byogcm9vdCA6IGZpbmRSZW5kZXJpbmdS
b290cygqbV9zdHlsZVVwZGF0ZSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400006</attachid>
            <date>2020-05-21 17:53:40 -0700</date>
            <delta_ts>2020-05-21 22:59:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212163-20200521175340.patch</filename>
            <type>text/plain</type>
            <size>5226</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBmNmMyMTJiZDY4ZTc4
MTE0YWEyODE2NzAxMGE0NDQyNjAzYWYzOS4uMGFlYTE2YThlMDZlNGU1ZDBmN2VhMzM5ODBlYTZm
YmI1Nzg1MmM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA1LTIxICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVJlbmRlclRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc29sdmVTdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlVGV4dFJlbmRlcmVyKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpnZXRJblJlbmRlclRyZWVVcGRh
dGUpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6UmVuZGVyVHJlZVVwZGF0ZXIp
OgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oOgorCiAy
MDIwLTA1LTE1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBO
dWxscHRyIGNyYXNoIGluIE1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0ZUFsbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggYmVmNDg2OTQwMzk3OTA4ODYxOTJlYjNmYWIwNzI4ZjI1NDQyYjcz
NS4uYzNmMTc5NDBkZDg2NmJlZGIzN2U4Nzc3YTg0ZWUxMWQ3YWYyYzVkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0xOTE5LDYgKzE5MTksMTcgQEAgYm9vbCBEb2N1bWVudDo6aGFzUGVu
ZGluZ0Z1bGxTdHlsZVJlYnVpbGQoKSBjb25zdAogICAgIHJldHVybiBoYXNQZW5kaW5nU3R5bGVS
ZWNhbGMoKSAmJiBtX25lZWRzRnVsbFN0eWxlUmVidWlsZDsKIH0KIAorc3RhdGljIGlubGluZSB2
b2lkIHVwZGF0ZVJlbmRlclRyZWUoRG9jdW1lbnQmIGRvY3VtZW50LCBzdGQ6OnVuaXF1ZV9wdHI8
Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVVcGRhdGUpCit7CisgICAgQVNTRVJUKCFkb2N1bWVu
dC5pblJlbmRlclRyZWVVcGRhdGUoKSk7CisKKyAgICBTdHlsZTo6UG9zdFJlc29sdXRpb25DYWxs
YmFja0Rpc2FibGVyIGNhbGxiYWNrRGlzYWJsZXIoZG9jdW1lbnQpOworICAgIFNldEZvclNjb3Bl
PGJvb2w+IGluUmVuZGVyVHJlZVVwZGF0ZShkb2N1bWVudC5nZXRJblJlbmRlclRyZWVVcGRhdGUo
KSwgdHJ1ZSk7CisKKyAgICBSZW5kZXJUcmVlVXBkYXRlciB1cGRhdGVyKGRvY3VtZW50LCBjYWxs
YmFja0Rpc2FibGVyKTsKKyAgICB1cGRhdGVyLmNvbW1pdChXVEZNb3ZlKHN0eWxlVXBkYXRlKSk7
Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUp
CiB7CiAgICAgQVNTRVJUKCF2aWV3KCkgfHwgIXZpZXcoKS0+aXNQYWludGluZygpKTsKQEAgLTIw
MDMsMTEgKzIwMTQsNyBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxl
VHlwZSB0eXBlKQogICAgICAgICBtX2luU3R5bGVSZWNhbGMgPSBmYWxzZTsKIAogICAgICAgICBp
ZiAoc3R5bGVVcGRhdGUpIHsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVuZGVy
VHJlZVVwZGF0ZShtX2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIFJl
bmRlclRyZWVVcGRhdGVyIHVwZGF0ZXIoKnRoaXMpOwotICAgICAgICAgICAgdXBkYXRlci5jb21t
aXQoV1RGTW92ZShzdHlsZVVwZGF0ZSkpOwotCisgICAgICAgICAgICB1cGRhdGVSZW5kZXJUcmVl
KCp0aGlzLCBXVEZNb3ZlKHN0eWxlVXBkYXRlKSk7CiAgICAgICAgICAgICBmcmFtZVZpZXcuc3R5
bGVBbmRSZW5kZXJUcmVlRGlkQ2hhbmdlKCk7CiAgICAgICAgIH0KIApAQCAtMjA0MSwxNCArMjA0
OCwxMCBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBl
KQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVyZXIoVGV4dCYgdGV4dCwgdW5zaWdu
ZWQgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIHVuc2lnbmVkIGxlbmd0aE9mUmVwbGFjZWRUZXh0KQog
ewotICAgIEFTU0VSVCghbV9pblJlbmRlclRyZWVVcGRhdGUpOwotICAgIFNldEZvclNjb3BlPGJv
b2w+IGluUmVuZGVyVHJlZVVwZGF0ZShtX2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7Ci0KICAg
ICBhdXRvIHRleHRVcGRhdGUgPSBtYWtlVW5pcXVlPFN0eWxlOjpVcGRhdGU+KCp0aGlzKTsKICAg
ICB0ZXh0VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIGxlbmd0
aE9mUmVwbGFjZWRUZXh0LCBXVEY6Om51bGxvcHQgfSk7CiAKLSAgICBSZW5kZXJUcmVlVXBkYXRl
ciByZW5kZXJUcmVlVXBkYXRlcigqdGhpcyk7Ci0gICAgcmVuZGVyVHJlZVVwZGF0ZXIuY29tbWl0
KFdURk1vdmUodGV4dFVwZGF0ZSkpOworICAgIHVwZGF0ZVJlbmRlclRyZWUoKnRoaXMsIFdURk1v
dmUodGV4dFVwZGF0ZSkpOwogfQogCiBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNzdlY2I3YTAzMTMzOWZjMTdiZWM1NTNmMzVm
YjYzNjc1NzNkMGM0My4uMTQ5NzFiYzM3NTI5ZmUxMGZhZGJhMWE1YjFkYTIxZjMzYjcyZjlhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEzMTUsNiArMTMxNSw3IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaW5TdHlsZVJlY2FsYygpIGNvbnN0IHsgcmV0dXJuIG1faW5TdHlsZVJlY2FsYzsgfQog
ICAgIGJvb2wgaW5SZW5kZXJUcmVlVXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9pblJlbmRlclRy
ZWVVcGRhdGU7IH0KKyAgICBib29sJiBnZXRJblJlbmRlclRyZWVVcGRhdGUoKSB7IHJldHVybiBt
X2luUmVuZGVyVHJlZVVwZGF0ZTsgfQogICAgIGJvb2wgaXNSZXNvbHZpbmdUcmVlU3R5bGUoKSBj
b25zdCB7IHJldHVybiBtX2lzUmVzb2x2aW5nVHJlZVN0eWxlOyB9CiAgICAgdm9pZCBzZXRJc1Jl
c29sdmluZ1RyZWVTdHlsZShib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKaW5kZXggZGQ2NGZkZWQ3ZDBh
ZWVhOTE0ZmYyOTQwMGZkYjM4ODNlZmY0MDg3Mi4uNTVhMTc2ZGI2NWU5OTg5OWU5NjZmNDhkM2E0
MWQ5ZDU3OTljODFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCkBAIC03OCw3ICs3OCw3IEBAIFJlbmRlclRy
ZWVVcGRhdGVyOjpQYXJlbnQ6OlBhcmVudChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHlsZTo6
RWxlbWVudFVwZGF0ZXMqCiB7CiB9CiAKLVJlbmRlclRyZWVVcGRhdGVyOjpSZW5kZXJUcmVlVXBk
YXRlcihEb2N1bWVudCYgZG9jdW1lbnQpCitSZW5kZXJUcmVlVXBkYXRlcjo6UmVuZGVyVHJlZVVw
ZGF0ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBTdHlsZTo6UG9zdFJlc29sdXRpb25DYWxsYmFja0Rp
c2FibGVyJikKICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX2dlbmVyYXRlZENv
bnRlbnQobWFrZVVuaXF1ZTxHZW5lcmF0ZWRDb250ZW50PigqdGhpcykpCiAgICAgLCBtX2J1aWxk
ZXIocmVuZGVyVmlldygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaAppbmRleCA1MzFmMmNmZDA5MmFkMjcyY2Y0ZmE5OWY4
YzYzMDlhYjY5ZDJjZDIxLi4yMzQwMzRjODMzMTdjYTYxODdlMWJlYmFiN2NlMTcwZjFkNzQ1MmNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZVVwZGF0ZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRyZWVCdWls
ZGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiU3R5bGVD
aGFuZ2UuaCIKKyNpbmNsdWRlICJTdHlsZVRyZWVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxl
VXBkYXRlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CkBAIC00Myw3ICs0NCw3IEBAIGNsYXNzIFRleHQ7CiAKIGNsYXNzIFJlbmRlclRyZWVVcGRh
dGVyIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJUcmVlVXBkYXRlcihEb2N1bWVudCYpOworICAgIFJl
bmRlclRyZWVVcGRhdGVyKERvY3VtZW50JiwgU3R5bGU6OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tE
aXNhYmxlciYpOwogICAgIH5SZW5kZXJUcmVlVXBkYXRlcigpOwogCiAgICAgdm9pZCBjb21taXQo
c3RkOjp1bmlxdWVfcHRyPGNvbnN0IFN0eWxlOjpVcGRhdGU+KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400027</attachid>
            <date>2020-05-21 22:59:58 -0700</date>
            <delta_ts>2020-05-22 10:46:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212163-20200521225957.patch</filename>
            <type>text/plain</type>
            <size>6074</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBmNmMyMTJiZDY4ZTc4
MTE0YWEyODE2NzAxMGE0NDQyNjAzYWYzOS4uYTBmOWRhMjIyNmM0MWEzN2YxZTIxOTA3OTg3MjBl
ZWYwYzBiNzBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA1LTIxICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBhIHV0aWxp
dHkgZnVuY3Rpb24gZm9yIHVwZGF0aW5nIHJlbmRlciB0cmVlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMTYzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4K
KworICAgICAgICBJdCB0YWtlcyBhIGZldyBzdGVwcyBhbmQgY29ycmVjdCBzZXF1ZW5jZSBmb3Ig
cmVuZGVyIHRyZWUgdXBkYXRlIHRvIHdvcmsgcHJvcGVybHkuCisgICAgICAgIEFkZGVkIGZ1bmN0
aW9uIHVwZGF0ZVJlbmRlclRyZWUoKSB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvciBhbmQgaW1w
cm92ZSBtYWludGFpbmFiaWxpdHkuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVJlbmRlclRyZWUpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlc29sdmVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6dXBkYXRlVGV4dFJlbmRlcmVyKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OlJlbmRlclRyZWVVcGRhdGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRyZWVVcGRhdGVyOjpjb21taXQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oOgorCiAyMDIwLTA1LTE1ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBOdWxscHRyIGNyYXNoIGluIE1lZGlh
UXVlcnlNYXRjaGVyOjpldmFsdWF0ZUFsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYmVm
NDg2OTQwMzk3OTA4ODYxOTJlYjNmYWIwNzI4ZjI1NDQyYjczNS4uZGMwZDA1YmI1NTBiODlhODA0
MTAxM2Q5Y2M2ODBmY2RlZjkyYzUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xOTE5
LDYgKzE5MTksMTkgQEAgYm9vbCBEb2N1bWVudDo6aGFzUGVuZGluZ0Z1bGxTdHlsZVJlYnVpbGQo
KSBjb25zdAogICAgIHJldHVybiBoYXNQZW5kaW5nU3R5bGVSZWNhbGMoKSAmJiBtX25lZWRzRnVs
bFN0eWxlUmVidWlsZDsKIH0KIAordm9pZCBEb2N1bWVudDo6dXBkYXRlUmVuZGVyVHJlZShzdGQ6
OnVuaXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVVcGRhdGUpCit7CisgICAgQVNT
RVJUKCFpblJlbmRlclRyZWVVcGRhdGUoKSk7CisKKyAgICAvLyBOT1RFOiBQcmVzZXJ2ZSB0aGUg
b3JkZXIgb2YgZGVmaW5pdGlvbnMgYmVsb3cgc28gdGhlIGRlc3RydWN0b3JzIGFyZSBjYWxsZWQg
aW4gcHJvcGVyIHNlcXVlbmNlLgorICAgIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlz
YWJsZXIgY2FsbGJhY2tEaXNhYmxlcigqdGhpcyk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5S
ZW5kZXJUcmVlVXBkYXRlKG1faW5SZW5kZXJUcmVlVXBkYXRlLCB0cnVlKTsKKyAgICBSZW5kZXJU
cmVlVXBkYXRlciB1cGRhdGVyKCp0aGlzLCBjYWxsYmFja0Rpc2FibGVyKTsKKyAgICAvLyBFbmQg
b2Ygb3JkZXJlZCBkZWZpbml0aW9ucworCisgICAgdXBkYXRlci5jb21taXQoV1RGTW92ZShzdHls
ZVVwZGF0ZSkpOworfQorCiB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxl
VHlwZSB0eXBlKQogewogICAgIEFTU0VSVCghdmlldygpIHx8ICF2aWV3KCktPmlzUGFpbnRpbmco
KSk7CkBAIC0yMDAzLDExICsyMDE2LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKFJl
c29sdmVTdHlsZVR5cGUgdHlwZSkKICAgICAgICAgbV9pblN0eWxlUmVjYWxjID0gZmFsc2U7CiAK
ICAgICAgICAgaWYgKHN0eWxlVXBkYXRlKSB7Ci0gICAgICAgICAgICBTZXRGb3JTY29wZTxib29s
PiBpblJlbmRlclRyZWVVcGRhdGUobV9pblJlbmRlclRyZWVVcGRhdGUsIHRydWUpOwotCi0gICAg
ICAgICAgICBSZW5kZXJUcmVlVXBkYXRlciB1cGRhdGVyKCp0aGlzKTsKLSAgICAgICAgICAgIHVw
ZGF0ZXIuY29tbWl0KFdURk1vdmUoc3R5bGVVcGRhdGUpKTsKLQorICAgICAgICAgICAgdXBkYXRl
UmVuZGVyVHJlZShXVEZNb3ZlKHN0eWxlVXBkYXRlKSk7CiAgICAgICAgICAgICBmcmFtZVZpZXcu
c3R5bGVBbmRSZW5kZXJUcmVlRGlkQ2hhbmdlKCk7CiAgICAgICAgIH0KIApAQCAtMjA0MSwxNCAr
MjA1MCwxMCBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0
eXBlKQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVyZXIoVGV4dCYgdGV4dCwgdW5z
aWduZWQgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIHVuc2lnbmVkIGxlbmd0aE9mUmVwbGFjZWRUZXh0
KQogewotICAgIEFTU0VSVCghbV9pblJlbmRlclRyZWVVcGRhdGUpOwotICAgIFNldEZvclNjb3Bl
PGJvb2w+IGluUmVuZGVyVHJlZVVwZGF0ZShtX2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7Ci0K
ICAgICBhdXRvIHRleHRVcGRhdGUgPSBtYWtlVW5pcXVlPFN0eWxlOjpVcGRhdGU+KCp0aGlzKTsK
ICAgICB0ZXh0VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIGxl
bmd0aE9mUmVwbGFjZWRUZXh0LCBXVEY6Om51bGxvcHQgfSk7CiAKLSAgICBSZW5kZXJUcmVlVXBk
YXRlciByZW5kZXJUcmVlVXBkYXRlcigqdGhpcyk7Ci0gICAgcmVuZGVyVHJlZVVwZGF0ZXIuY29t
bWl0KFdURk1vdmUodGV4dFVwZGF0ZSkpOworICAgIHVwZGF0ZVJlbmRlclRyZWUoV1RGTW92ZSh0
ZXh0VXBkYXRlKSk7CiB9CiAKIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA3N2VjYjdhMDMxMzM5ZmMxN2JlYzU1M2YzNWZiNjM2
NzU3M2QwYzQzLi40YTJmZWFiN2MxOTY3NzI3YzMwZjcwMTVlOWRiMThiODg0MTZiYjVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJTdHJpbmdXaXRoRGlyZWN0aW9uLmgiCiAj
aW5jbHVkZSAiU3R5bGVDb2xvci5oIgorI2luY2x1ZGUgIlN0eWxlVXBkYXRlLmgiCiAjaW5jbHVk
ZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAj
aW5jbHVkZSAiVGltZXIuaCIKQEAgLTY0Myw2ICs2NDQsNyBAQCBwdWJsaWM6CiAKICAgICBib29s
IHJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVHJlZUJl
aW5nRGVzdHJveWVkOyB9CiAgICAgYm9vbCBoYXNMaXZpbmdSZW5kZXJUcmVlKCkgY29uc3QgeyBy
ZXR1cm4gcmVuZGVyVmlldygpICYmICFyZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKTsgfQorICAg
IHZvaWQgdXBkYXRlUmVuZGVyVHJlZShzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0
ZT4gc3R5bGVVcGRhdGUpOwogICAgIAogICAgIGJvb2wgdXBkYXRlTGF5b3V0SWZEaW1lbnNpb25z
T3V0T2ZEYXRlKEVsZW1lbnQmLCBEaW1lbnNpb25zQ2hlY2sgPSBBbGxEaW1lbnNpb25zQ2hlY2sp
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlVXBkYXRlci5jcHAKaW5kZXggZGQ2NGZkZWQ3ZDBhZWVhOTE0ZmYyOTQwMGZkYjM4
ODNlZmY0MDg3Mi4uNzQyNWRmZTlkOWQ3OWIxZmM4YzQyYzExY2JhN2UyMDc1NTIzYzM4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRh
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZVVwZGF0ZXIuY3BwCkBAIC03OCw3ICs3OCw3IEBAIFJlbmRlclRyZWVVcGRhdGVyOjpQYXJlbnQ6
OlBhcmVudChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHlsZTo6RWxlbWVudFVwZGF0ZXMqCiB7
CiB9CiAKLVJlbmRlclRyZWVVcGRhdGVyOjpSZW5kZXJUcmVlVXBkYXRlcihEb2N1bWVudCYgZG9j
dW1lbnQpCitSZW5kZXJUcmVlVXBkYXRlcjo6UmVuZGVyVHJlZVVwZGF0ZXIoRG9jdW1lbnQmIGRv
Y3VtZW50LCBTdHlsZTo6UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyJikKICAgICA6IG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX2dlbmVyYXRlZENvbnRlbnQobWFrZVVuaXF1ZTxH
ZW5lcmF0ZWRDb250ZW50PigqdGhpcykpCiAgICAgLCBtX2J1aWxkZXIocmVuZGVyVmlldygpKQpA
QCAtMTIxLDggKzEyMSw2IEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OmNvbW1pdChzdGQ6OnVu
aXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVVcGRhdGUpCiAgICAgCiAgICAgVHJh
Y2VTY29wZSBzY29wZShSZW5kZXJUcmVlQnVpbGRTdGFydCwgUmVuZGVyVHJlZUJ1aWxkRW5kKTsK
IAotICAgIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIgY2FsbGJhY2tEaXNh
YmxlcihtX2RvY3VtZW50KTsKLQogICAgIG1fc3R5bGVVcGRhdGUgPSBXVEZNb3ZlKHN0eWxlVXBk
YXRlKTsKIAogICAgIGZvciAoYXV0byogcm9vdCA6IGZpbmRSZW5kZXJpbmdSb290cygqbV9zdHls
ZVVwZGF0ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlVXBkYXRlci5oCmluZGV4IDUzMWYyY2ZkMDkyYWQyNzJjZjRmYTk5ZjhjNjMwOWFi
NjlkMmNkMjEuLjIzNDAzNGM4MzMxN2NhNjE4N2UxYmViYWI3Y2UxNzBmMWQ3NDUyY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBk
YXRlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXIuaCIK
ICNpbmNsdWRlICJSZW5kZXJUcmVlUG9zaXRpb24uaCIKICNpbmNsdWRlICJTdHlsZUNoYW5nZS5o
IgorI2luY2x1ZGUgIlN0eWxlVHJlZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVVcGRhdGUu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAg
LTQzLDcgKzQ0LDcgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgUmVuZGVyVHJlZVVwZGF0ZXIgewog
cHVibGljOgotICAgIFJlbmRlclRyZWVVcGRhdGVyKERvY3VtZW50Jik7CisgICAgUmVuZGVyVHJl
ZVVwZGF0ZXIoRG9jdW1lbnQmLCBTdHlsZTo6UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVy
Jik7CiAgICAgflJlbmRlclRyZWVVcGRhdGVyKCk7CiAKICAgICB2b2lkIGNvbW1pdChzdGQ6OnVu
aXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400059</attachid>
            <date>2020-05-22 10:46:02 -0700</date>
            <delta_ts>2020-05-22 12:47:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212163-20200522104601.patch</filename>
            <type>text/plain</type>
            <size>8494</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBmNmMyMTJiZDY4ZTc4
MTE0YWEyODE2NzAxMGE0NDQyNjAzYWYzOS4uMTI5NzNiOTkwNGZkYjRlYTlkNzhhMzBhNDlmYWFj
NGY0OGU3Njg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA1LTIyICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTcwMjgwOTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2FsbGluZyB+UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyKCkgYmVmb3JlIGNvbXBs
ZXRpbmcgcmVuZGVyIHRyZWUgdXBkYXRpbmcgYW5kIHJlbGVhc2luZyBSZW5kZXJUcmVlQnVpbGRl
ciAKKyAgICAgICAgdHJpZ2dlcnMgdGhpcyBhc3NlcnRpb24uIFRoZXJlZm9yZSB3ZSBhZGRlZCBh
IHV0aWxpdHkgZnVuY3Rpb24gInVwZGF0ZVJlbmRlclRyZWUiIGluIHdoaWNoIFBvc3RSZXNvbHV0
aW9uQ2FsbGJhY2sKKyAgICAgICAgaXMgZGVsYXllZCB1bnRpbCBSZW5kZXJUcmVlVXBkYXRlciBp
cyByZWxlYXNlZCBhbmQgbV9pblJlbmRlclRyZWVVcGRhdGUgaXMgY2xlYXJlZC4KKworICAgICAg
ICBUZXN0OiBmYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLmh0
bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6dXBkYXRlUmVuZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVz
b2x2ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVy
ZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVl
VXBkYXRlcjo6UmVuZGVyVHJlZVVwZGF0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJl
ZVVwZGF0ZXI6OmNvbW1pdCk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVVcGRhdGVyLmg6CisKIDIwMjAtMDUtMTUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gTWVkaWFRdWVyeU1hdGNoZXI6OmV2YWx1
YXRlQWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiZWY0ODY5NDAzOTc5MDg4NjE5MmVi
M2ZhYjA3MjhmMjU0NDJiNzM1Li5kYzBkMDViYjU1MGI4OWE4MDQxMDEzZDljYzY4MGZjZGVmOTJj
NTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE5MTksNiArMTkxOSwxOSBAQCBib29s
IERvY3VtZW50OjpoYXNQZW5kaW5nRnVsbFN0eWxlUmVidWlsZCgpIGNvbnN0CiAgICAgcmV0dXJu
IGhhc1BlbmRpbmdTdHlsZVJlY2FsYygpICYmIG1fbmVlZHNGdWxsU3R5bGVSZWJ1aWxkOwogfQog
Cit2b2lkIERvY3VtZW50Ojp1cGRhdGVSZW5kZXJUcmVlKHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBT
dHlsZTo6VXBkYXRlPiBzdHlsZVVwZGF0ZSkKK3sKKyAgICBBU1NFUlQoIWluUmVuZGVyVHJlZVVw
ZGF0ZSgpKTsKKworICAgIC8vIE5PVEU6IFByZXNlcnZlIHRoZSBvcmRlciBvZiBkZWZpbml0aW9u
cyBiZWxvdyBzbyB0aGUgZGVzdHJ1Y3RvcnMgYXJlIGNhbGxlZCBpbiBwcm9wZXIgc2VxdWVuY2Uu
CisgICAgU3R5bGU6OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlciBjYWxsYmFja0Rpc2Fi
bGVyKCp0aGlzKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBpblJlbmRlclRyZWVVcGRhdGUobV9p
blJlbmRlclRyZWVVcGRhdGUsIHRydWUpOworICAgIFJlbmRlclRyZWVVcGRhdGVyIHVwZGF0ZXIo
KnRoaXMsIGNhbGxiYWNrRGlzYWJsZXIpOworICAgIC8vIEVuZCBvZiBvcmRlcmVkIGRlZmluaXRp
b25zCisKKyAgICB1cGRhdGVyLmNvbW1pdChXVEZNb3ZlKHN0eWxlVXBkYXRlKSk7Cit9CisKIHZv
aWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiB7CiAgICAg
QVNTRVJUKCF2aWV3KCkgfHwgIXZpZXcoKS0+aXNQYWludGluZygpKTsKQEAgLTIwMDMsMTEgKzIw
MTYsNyBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBl
KQogICAgICAgICBtX2luU3R5bGVSZWNhbGMgPSBmYWxzZTsKIAogICAgICAgICBpZiAoc3R5bGVV
cGRhdGUpIHsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVuZGVyVHJlZVVwZGF0
ZShtX2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIFJlbmRlclRyZWVV
cGRhdGVyIHVwZGF0ZXIoKnRoaXMpOwotICAgICAgICAgICAgdXBkYXRlci5jb21taXQoV1RGTW92
ZShzdHlsZVVwZGF0ZSkpOwotCisgICAgICAgICAgICB1cGRhdGVSZW5kZXJUcmVlKFdURk1vdmUo
c3R5bGVVcGRhdGUpKTsKICAgICAgICAgICAgIGZyYW1lVmlldy5zdHlsZUFuZFJlbmRlclRyZWVE
aWRDaGFuZ2UoKTsKICAgICAgICAgfQogCkBAIC0yMDQxLDE0ICsyMDUwLDEwIEBAIHZvaWQgRG9j
dW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAKIHZvaWQgRG9jdW1l
bnQ6OnVwZGF0ZVRleHRSZW5kZXJlcihUZXh0JiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxh
Y2VkVGV4dCwgdW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNlZFRleHQpCiB7Ci0gICAgQVNTRVJUKCFt
X2luUmVuZGVyVHJlZVVwZGF0ZSk7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5SZW5kZXJUcmVl
VXBkYXRlKG1faW5SZW5kZXJUcmVlVXBkYXRlLCB0cnVlKTsKLQogICAgIGF1dG8gdGV4dFVwZGF0
ZSA9IG1ha2VVbmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwogICAgIHRleHRVcGRhdGUtPmFk
ZFRleHQodGV4dCwgeyBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQs
IFdURjo6bnVsbG9wdCB9KTsKIAotICAgIFJlbmRlclRyZWVVcGRhdGVyIHJlbmRlclRyZWVVcGRh
dGVyKCp0aGlzKTsKLSAgICByZW5kZXJUcmVlVXBkYXRlci5jb21taXQoV1RGTW92ZSh0ZXh0VXBk
YXRlKSk7CisgICAgdXBkYXRlUmVuZGVyVHJlZShXVEZNb3ZlKHRleHRVcGRhdGUpKTsKIH0KIAog
Ym9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IDc3ZWNiN2EwMzEzMzlmYzE3YmVjNTUzZjM1ZmI2MzY3NTczZDBjNDMuLjRhMmZlYWI3
YzE5Njc3MjdjMzBmNzAxNWU5ZGIxOGI4ODQxNmJiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5o
IgogI2luY2x1ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJTdHlsZUNvbG9y
LmgiCisjaW5jbHVkZSAiU3R5bGVVcGRhdGUuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5o
IgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgpA
QCAtNjQzLDYgKzY0NCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcmVuZGVyVHJlZUJlaW5nRGVz
dHJveWVkKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQ7IH0KICAg
ICBib29sIGhhc0xpdmluZ1JlbmRlclRyZWUoKSBjb25zdCB7IHJldHVybiByZW5kZXJWaWV3KCkg
JiYgIXJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpOyB9CisgICAgdm9pZCB1cGRhdGVSZW5kZXJU
cmVlKHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPiBzdHlsZVVwZGF0ZSk7CiAg
ICAgCiAgICAgYm9vbCB1cGRhdGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYs
IERpbWVuc2lvbnNDaGVjayA9IEFsbERpbWVuc2lvbnNDaGVjayk7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNw
cAppbmRleCBkZDY0ZmRlZDdkMGFlZWE5MTRmZjI5NDAwZmRiMzg4M2VmZjQwODcyLi43NDI1ZGZl
OWQ5ZDc5YjFmYzhjNDJjMTFjYmE3ZTIwNzU1MjNjMzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTc4
LDcgKzc4LDcgQEAgUmVuZGVyVHJlZVVwZGF0ZXI6OlBhcmVudDo6UGFyZW50KEVsZW1lbnQmIGVs
ZW1lbnQsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRlcyoKIHsKIH0KIAotUmVuZGVyVHJlZVVw
ZGF0ZXI6OlJlbmRlclRyZWVVcGRhdGVyKERvY3VtZW50JiBkb2N1bWVudCkKK1JlbmRlclRyZWVV
cGRhdGVyOjpSZW5kZXJUcmVlVXBkYXRlcihEb2N1bWVudCYgZG9jdW1lbnQsIFN0eWxlOjpQb3N0
UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXImKQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkK
ICAgICAsIG1fZ2VuZXJhdGVkQ29udGVudChtYWtlVW5pcXVlPEdlbmVyYXRlZENvbnRlbnQ+KCp0
aGlzKSkKICAgICAsIG1fYnVpbGRlcihyZW5kZXJWaWV3KCkpCkBAIC0xMjEsOCArMTIxLDYgQEAg
dm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6Y29tbWl0KHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBTdHls
ZTo6VXBkYXRlPiBzdHlsZVVwZGF0ZSkKICAgICAKICAgICBUcmFjZVNjb3BlIHNjb3BlKFJlbmRl
clRyZWVCdWlsZFN0YXJ0LCBSZW5kZXJUcmVlQnVpbGRFbmQpOwogCi0gICAgU3R5bGU6OlBvc3RS
ZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlciBjYWxsYmFja0Rpc2FibGVyKG1fZG9jdW1lbnQpOwot
CiAgICAgbV9zdHlsZVVwZGF0ZSA9IFdURk1vdmUoc3R5bGVVcGRhdGUpOwogCiAgICAgZm9yIChh
dXRvKiByb290IDogZmluZFJlbmRlcmluZ1Jvb3RzKCptX3N0eWxlVXBkYXRlKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgK
aW5kZXggNTMxZjJjZmQwOTJhZDI3MmNmNGZhOTlmOGM2MzA5YWI2OWQyY2QyMS4uMjM0MDM0Yzgz
MzE3Y2E2MTg3ZTFiZWJhYjdjZTE3MGYxZDc0NTJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgKQEAgLTI4LDYgKzI4
LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIlJlbmRlclRy
ZWVQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlN0eWxlQ2hhbmdlLmgiCisjaW5jbHVkZSAiU3R5bGVU
cmVlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVVwZGF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDMsNyArNDQsNyBAQCBjbGFz
cyBUZXh0OwogCiBjbGFzcyBSZW5kZXJUcmVlVXBkYXRlciB7CiBwdWJsaWM6Ci0gICAgUmVuZGVy
VHJlZVVwZGF0ZXIoRG9jdW1lbnQmKTsKKyAgICBSZW5kZXJUcmVlVXBkYXRlcihEb2N1bWVudCYs
IFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXImKTsKICAgICB+UmVuZGVyVHJl
ZVVwZGF0ZXIoKTsKIAogICAgIHZvaWQgY29tbWl0KHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBTdHls
ZTo6VXBkYXRlPik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzhjZTQ0MmQ5YjJiYzU2ZTJjMjM3ZjNlNWQ2MDVkOWQzMGEy
YjAzNy4uYzEwYmIzNDE2ZTdmZDU5MjFlYTYxNDM4MThiMzk3OGI2YzE1YzEzMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIwLTA1LTIyICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcg
IT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5kZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1
aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MjE2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTcwMjgwOTY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSByZWdyZXNzaW9uIHRlc3Qg
Zm9yIHRoZSBjcmFzaC4KKworICAgICAgICAqIGZhc3QvcmVuZGVyaW5nL25lc3RlZC1yZW5kZXIt
dHJlZS11cGRhdGUtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Jl
bmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAy
MDIwLTA1LTE1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBO
dWxscHRyIGNyYXNoIGluIE1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0ZUFsbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRlci10cmVlLXVwZGF0ZS1j
cmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVu
ZGVyLXRyZWUtdXBkYXRlLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDEzZDBiOTU1
MzBkOTU2ZmFmYWIyODFjNGRiNTEzYjU5MzE3NjRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRlci10cmVlLXVwZGF0ZS1jcmFzaC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSBAQAorVGVzdHMgbmVzdGVkIHJlbmRlciB0cmVlIHVwZGF0ZS4g
VGhlIHRlc3QgcGFzc2VzIGlmIFdlYktpdCBkb2Vzbid0IGNyYXNoIG9yIGhpdCBhbiBhc3NlcnRp
b24uIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRl
ci10cmVlLXVwZGF0ZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJpbmcvbmVz
dGVkLXJlbmRlci10cmVlLXVwZGF0ZS1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMjhiOGQ0YjU1
OTE4M2Y3MGYxZDM1MWEwOWU4ZjFlMWFiYjZjNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLmh0bWwK
QEAgLTAsMCArMSwxMyBAQAorPHNjcmlwdD4NCitmdW5jdGlvbiBydW4oKSB7DQorICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikNCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0KKw0K
KyAgICBvYmogPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvYmplY3QiKTsNCisgICAgbGkuYXBw
ZW5kQ2hpbGQob2JqKTsNCisgICAgc3ZnLmN1cnJlbnRTY2FsZSA9IDAuOTk7DQorICAgIG9iai5k
YXRhID0gU3RyaW5nLmZyb21DaGFyQ29kZSg4OSwgODIpDQorICAgIGZmLnNldEF0dHJpYnV0ZSgi
ZGlyZWN0aW9uIiwgInJ0bCIpOw0KK30NCis8L3NjcmlwdD4NCis8Ym9keSBvbmxvYWQ9cnVuKCk+
PGxpIGlkPWxpPjxzdmcgaWQ9c3ZnPjxmb250LWZhY2UtdXJpIGlkPWZmPjx0cmVmIHhsaW5rOmhy
ZWY9I2ZmPjxzcGFuPlRlc3RzIG5lc3RlZCByZW5kZXIgdHJlZSB1cGRhdGUuIFRoZSB0ZXN0IHBh
c3NlcyBpZiBXZWJLaXQgZG9lc24ndCBjcmFzaCBvciBoaXQgYW4gYXNzZXJ0aW9uLjwvc3Bhbj4N
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400067</attachid>
            <date>2020-05-22 12:47:55 -0700</date>
            <delta_ts>2020-05-22 21:40:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212163-20200522124754.patch</filename>
            <type>text/plain</type>
            <size>8724</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBmNmMyMTJiZDY4ZTc4
MTE0YWEyODE2NzAxMGE0NDQyNjAzYWYzOS4uODdlYWJmMmNmYTA0MGRiYjNkN2NhOWEwMzk0YzUx
M2IzY2RkMTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA1LTIyICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTcwMjgwOTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAg
ICAgQ2FsbGluZyB+UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyKCkgYmVmb3JlIGNvbXBs
ZXRpbmcgcmVuZGVyIHRyZWUgdXBkYXRpbmcgYW5kIHJlbGVhc2luZyBSZW5kZXJUcmVlQnVpbGRl
ciAKKyAgICAgICAgdHJpZ2dlcnMgdGhpcyBhc3NlcnRpb24uIFRoZXJlZm9yZSB3ZSBhZGRlZCBh
IHV0aWxpdHkgZnVuY3Rpb24gInVwZGF0ZVJlbmRlclRyZWUiIGluIHdoaWNoIFBvc3RSZXNvbHV0
aW9uQ2FsbGJhY2sKKyAgICAgICAgaXMgZGVsYXllZCB1bnRpbCBSZW5kZXJUcmVlVXBkYXRlciBp
cyByZWxlYXNlZCBhbmQgbV9pblJlbmRlclRyZWVVcGRhdGUgaXMgY2xlYXJlZC4KKworICAgICAg
ICBUZXN0OiBmYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLmh0
bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6dXBkYXRlUmVuZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVz
b2x2ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVy
ZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVl
VXBkYXRlcjo6UmVuZGVyVHJlZVVwZGF0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJl
ZVVwZGF0ZXI6OmNvbW1pdCk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVVcGRhdGVyLmg6CisKIDIwMjAtMDUtMTUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gTWVkaWFRdWVyeU1hdGNoZXI6OmV2YWx1
YXRlQWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiZWY0ODY5NDAzOTc5MDg4NjE5MmVi
M2ZhYjA3MjhmMjU0NDJiNzM1Li4xNTlhYjAzNWQ3YzI1ZDkxZDA1MzAwMjcxNDNlZDdkOTk4NGQw
Njc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIxMyw3ICsyMTMsNiBAQAogI2luY2x1
ZGUgIlN0eWxlQ29sb3IuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRl
ICJTdHlsZVJlc29sdmVGb3JEb2N1bWVudC5oIgotI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIK
ICNpbmNsdWRlICJTdHlsZVNjb3BlLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgi
CiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKQEAgLTE5MTksNiArMTkxOCwxOSBAQCBib29s
IERvY3VtZW50OjpoYXNQZW5kaW5nRnVsbFN0eWxlUmVidWlsZCgpIGNvbnN0CiAgICAgcmV0dXJu
IGhhc1BlbmRpbmdTdHlsZVJlY2FsYygpICYmIG1fbmVlZHNGdWxsU3R5bGVSZWJ1aWxkOwogfQog
Cit2b2lkIERvY3VtZW50Ojp1cGRhdGVSZW5kZXJUcmVlKHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBT
dHlsZTo6VXBkYXRlPiBzdHlsZVVwZGF0ZSkKK3sKKyAgICBBU1NFUlQoIWluUmVuZGVyVHJlZVVw
ZGF0ZSgpKTsKKworICAgIC8vIE5PVEU6IFByZXNlcnZlIHRoZSBvcmRlciBvZiBkZWZpbml0aW9u
cyBiZWxvdyBzbyB0aGUgZGVzdHJ1Y3RvcnMgYXJlIGNhbGxlZCBpbiBwcm9wZXIgc2VxdWVuY2Uu
CisgICAgU3R5bGU6OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlciBjYWxsYmFja0Rpc2Fi
bGVyKCp0aGlzKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBpblJlbmRlclRyZWVVcGRhdGUobV9p
blJlbmRlclRyZWVVcGRhdGUsIHRydWUpOworICAgIFJlbmRlclRyZWVVcGRhdGVyIHVwZGF0ZXIo
KnRoaXMsIGNhbGxiYWNrRGlzYWJsZXIpOworICAgIC8vIEVuZCBvZiBvcmRlcmVkIGRlZmluaXRp
b25zCisKKyAgICB1cGRhdGVyLmNvbW1pdChXVEZNb3ZlKHN0eWxlVXBkYXRlKSk7Cit9CisKIHZv
aWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiB7CiAgICAg
QVNTRVJUKCF2aWV3KCkgfHwgIXZpZXcoKS0+aXNQYWludGluZygpKTsKQEAgLTIwMDMsMTEgKzIw
MTUsNyBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBl
KQogICAgICAgICBtX2luU3R5bGVSZWNhbGMgPSBmYWxzZTsKIAogICAgICAgICBpZiAoc3R5bGVV
cGRhdGUpIHsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVuZGVyVHJlZVVwZGF0
ZShtX2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIFJlbmRlclRyZWVV
cGRhdGVyIHVwZGF0ZXIoKnRoaXMpOwotICAgICAgICAgICAgdXBkYXRlci5jb21taXQoV1RGTW92
ZShzdHlsZVVwZGF0ZSkpOwotCisgICAgICAgICAgICB1cGRhdGVSZW5kZXJUcmVlKFdURk1vdmUo
c3R5bGVVcGRhdGUpKTsKICAgICAgICAgICAgIGZyYW1lVmlldy5zdHlsZUFuZFJlbmRlclRyZWVE
aWRDaGFuZ2UoKTsKICAgICAgICAgfQogCkBAIC0yMDQxLDE0ICsyMDQ5LDEwIEBAIHZvaWQgRG9j
dW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAKIHZvaWQgRG9jdW1l
bnQ6OnVwZGF0ZVRleHRSZW5kZXJlcihUZXh0JiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxh
Y2VkVGV4dCwgdW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNlZFRleHQpCiB7Ci0gICAgQVNTRVJUKCFt
X2luUmVuZGVyVHJlZVVwZGF0ZSk7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5SZW5kZXJUcmVl
VXBkYXRlKG1faW5SZW5kZXJUcmVlVXBkYXRlLCB0cnVlKTsKLQogICAgIGF1dG8gdGV4dFVwZGF0
ZSA9IG1ha2VVbmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwogICAgIHRleHRVcGRhdGUtPmFk
ZFRleHQodGV4dCwgeyBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQs
IFdURjo6bnVsbG9wdCB9KTsKIAotICAgIFJlbmRlclRyZWVVcGRhdGVyIHJlbmRlclRyZWVVcGRh
dGVyKCp0aGlzKTsKLSAgICByZW5kZXJUcmVlVXBkYXRlci5jb21taXQoV1RGTW92ZSh0ZXh0VXBk
YXRlKSk7CisgICAgdXBkYXRlUmVuZGVyVHJlZShXVEZNb3ZlKHRleHRVcGRhdGUpKTsKIH0KIAog
Ym9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IDc3ZWNiN2EwMzEzMzlmYzE3YmVjNTUzZjM1ZmI2MzY3NTczZDBjNDMuLjU5OWRjZjU5
ODQyZTcyNjQ2OGY2NzRiZjMyMTg4NjdiYTQ4YjYwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5o
IgogI2luY2x1ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJTdHlsZUNvbG9y
LmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxl
LmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRpbWVyLmgi
CkBAIC02NDMsNiArNjQ0LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCByZW5kZXJUcmVlQmVpbmdE
ZXN0cm95ZWQoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZDsgfQog
ICAgIGJvb2wgaGFzTGl2aW5nUmVuZGVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlclZpZXco
KSAmJiAhcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCk7IH0KKyAgICB2b2lkIHVwZGF0ZVJlbmRl
clRyZWUoc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFN0eWxlOjpVcGRhdGU+IHN0eWxlVXBkYXRlKTsK
ICAgICAKICAgICBib29sIHVwZGF0ZUxheW91dElmRGltZW5zaW9uc091dE9mRGF0ZShFbGVtZW50
JiwgRGltZW5zaW9uc0NoZWNrID0gQWxsRGltZW5zaW9uc0NoZWNrKTsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
Y3BwCmluZGV4IGRkNjRmZGVkN2QwYWVlYTkxNGZmMjk0MDBmZGIzODgzZWZmNDA4NzIuLjc0MjVk
ZmU5ZDlkNzliMWZjOGM0MmMxMWNiYTdlMjA3NTUyM2MzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcApAQCAt
NzgsNyArNzgsNyBAQCBSZW5kZXJUcmVlVXBkYXRlcjo6UGFyZW50OjpQYXJlbnQoRWxlbWVudCYg
ZWxlbWVudCwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGVzKgogewogfQogCi1SZW5kZXJUcmVl
VXBkYXRlcjo6UmVuZGVyVHJlZVVwZGF0ZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVuZGVyVHJl
ZVVwZGF0ZXI6OlJlbmRlclRyZWVVcGRhdGVyKERvY3VtZW50JiBkb2N1bWVudCwgU3R5bGU6OlBv
c3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlciYpCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50
KQogICAgICwgbV9nZW5lcmF0ZWRDb250ZW50KG1ha2VVbmlxdWU8R2VuZXJhdGVkQ29udGVudD4o
KnRoaXMpKQogICAgICwgbV9idWlsZGVyKHJlbmRlclZpZXcoKSkKQEAgLTEyMSw4ICsxMjEsNiBA
QCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjpjb21taXQoc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFN0
eWxlOjpVcGRhdGU+IHN0eWxlVXBkYXRlKQogICAgIAogICAgIFRyYWNlU2NvcGUgc2NvcGUoUmVu
ZGVyVHJlZUJ1aWxkU3RhcnQsIFJlbmRlclRyZWVCdWlsZEVuZCk7CiAKLSAgICBTdHlsZTo6UG9z
dFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyIGNhbGxiYWNrRGlzYWJsZXIobV9kb2N1bWVudCk7
Ci0KICAgICBtX3N0eWxlVXBkYXRlID0gV1RGTW92ZShzdHlsZVVwZGF0ZSk7CiAKICAgICBmb3Ig
KGF1dG8qIHJvb3QgOiBmaW5kUmVuZGVyaW5nUm9vdHMoKm1fc3R5bGVVcGRhdGUpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
aAppbmRleCA1MzFmMmNmZDA5MmFkMjcyY2Y0ZmE5OWY4YzYzMDlhYjY5ZDJjZDIxLi4yMzQwMzRj
ODMzMTdjYTYxODdlMWJlYmFiN2NlMTcwZjFkNzQ1MmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaApAQCAtMjgsNiAr
MjgsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VHJlZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiU3R5bGVDaGFuZ2UuaCIKKyNpbmNsdWRlICJTdHls
ZVRyZWVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlVXBkYXRlLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00Myw3ICs0NCw3IEBAIGNs
YXNzIFRleHQ7CiAKIGNsYXNzIFJlbmRlclRyZWVVcGRhdGVyIHsKIHB1YmxpYzoKLSAgICBSZW5k
ZXJUcmVlVXBkYXRlcihEb2N1bWVudCYpOworICAgIFJlbmRlclRyZWVVcGRhdGVyKERvY3VtZW50
JiwgU3R5bGU6OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlciYpOwogICAgIH5SZW5kZXJU
cmVlVXBkYXRlcigpOwogCiAgICAgdm9pZCBjb21taXQoc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFN0
eWxlOjpVcGRhdGU+KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3OGNlNDQyZDliMmJjNTZlMmMyMzdmM2U1ZDYwNWQ5ZDMw
YTJiMDM3Li5jMmI2ZDZhN2RkOWUxMjNkM2JmNzAzZWI0N2Q1OGU2MTc5YjZkOTA3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMjAtMDUtMjIgIEphY2sgTGVlICA8c2hpaGNoaWVoX2xlZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogKCFzX2N1cnJlbnQgfHwgJm1fdmll
dyAhPSAmc19jdXJyZW50LT5tX3ZpZXcpIGluIFJlbmRlclRyZWVCdWlsZGVyOjpSZW5kZXJUcmVl
QnVpbGRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyMTYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzAyODA5Nj4KKworICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAgICAgICBBZGRlZCBhIHJlZ3Jlc3Npb24gdGVz
dCBmb3IgdGhlIGNyYXNoLgorCisgICAgICAgICogZmFzdC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRl
ci10cmVlLXVwZGF0ZS1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
cmVuZGVyaW5nL25lc3RlZC1yZW5kZXItdHJlZS11cGRhdGUtY3Jhc2guaHRtbDogQWRkZWQuCisK
IDIwMjAtMDUtMTUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAg
IE51bGxwdHIgY3Jhc2ggaW4gTWVkaWFRdWVyeU1hdGNoZXI6OmV2YWx1YXRlQWxsCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRl
LWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVuZGVyaW5nL25lc3RlZC1y
ZW5kZXItdHJlZS11cGRhdGUtY3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkMTNkMGI5
NTUzMGQ5NTZmYWZhYjI4MWM0ZGI1MTNiNTkzMTc2NGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUZXN0cyBuZXN0ZWQgcmVuZGVyIHRyZWUgdXBkYXRl
LiBUaGUgdGVzdCBwYXNzZXMgaWYgV2ViS2l0IGRvZXNuJ3QgY3Jhc2ggb3IgaGl0IGFuIGFzc2Vy
dGlvbi4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVu
ZGVyLXRyZWUtdXBkYXRlLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlbmRlcmluZy9u
ZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTMyOGI4ZDRi
NTU5MTgzZjcwZjFkMzUxYTA5ZThmMWUxYWJiNmM1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVuZGVyaW5nL25lc3RlZC1yZW5kZXItdHJlZS11cGRhdGUtY3Jhc2guaHRt
bApAQCAtMCwwICsxLDEzIEBACis8c2NyaXB0Pg0KK2Z1bmN0aW9uIHJ1bigpIHsNCisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQor
DQorICAgIG9iaiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9iamVjdCIpOw0KKyAgICBsaS5h
cHBlbmRDaGlsZChvYmopOw0KKyAgICBzdmcuY3VycmVudFNjYWxlID0gMC45OTsNCisgICAgb2Jq
LmRhdGEgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDg5LCA4MikNCisgICAgZmYuc2V0QXR0cmlidXRl
KCJkaXJlY3Rpb24iLCAicnRsIik7DQorfQ0KKzwvc2NyaXB0Pg0KKzxib2R5IG9ubG9hZD1ydW4o
KT48bGkgaWQ9bGk+PHN2ZyBpZD1zdmc+PGZvbnQtZmFjZS11cmkgaWQ9ZmY+PHRyZWYgeGxpbms6
aHJlZj0jZmY+PHNwYW4+VGVzdHMgbmVzdGVkIHJlbmRlciB0cmVlIHVwZGF0ZS4gVGhlIHRlc3Qg
cGFzc2VzIGlmIFdlYktpdCBkb2Vzbid0IGNyYXNoIG9yIGhpdCBhbiBhc3NlcnRpb24uPC9zcGFu
Pg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400107</attachid>
            <date>2020-05-22 21:54:52 -0700</date>
            <delta_ts>2020-05-22 23:06:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212163-20200522215451.patch</filename>
            <type>text/plain</type>
            <size>11473</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBmNmMyMTJiZDY4ZTc4
MTE0YWEyODE2NzAxMGE0NDQyNjAzYWYzOS4uZTRmOTFlMWMzNWVhNTExZWY4ODNhZGFjYzkzOWY2
NmExYjZkMTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA1LTIyICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTcwMjgwOTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAg
ICAgQ2FsbGluZyB+UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyKCkgYmVmb3JlIGNvbXBs
ZXRpbmcgcmVuZGVyIHRyZWUgdXBkYXRpbmcgYW5kIHJlbGVhc2luZyBSZW5kZXJUcmVlQnVpbGRl
ciAKKyAgICAgICAgdHJpZ2dlcnMgdGhpcyBhc3NlcnRpb24uIFRoZXJlZm9yZSB3ZSBhZGRlZCBh
IHV0aWxpdHkgZnVuY3Rpb24gInVwZGF0ZVJlbmRlclRyZWUiIGluIHdoaWNoIFBvc3RSZXNvbHV0
aW9uQ2FsbGJhY2sKKyAgICAgICAgaXMgZGVsYXllZCB1bnRpbCBSZW5kZXJUcmVlVXBkYXRlciBp
cyByZWxlYXNlZCBhbmQgbV9pblJlbmRlclRyZWVVcGRhdGUgaXMgY2xlYXJlZC4KKworICAgICAg
ICBUZXN0OiBmYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLmh0
bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlUmVuZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1
cGRhdGVUZXh0UmVuZGVyZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6UmVuZGVyVHJlZVVwZGF0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OmNvbW1pdCk6CisgICAgICAgICogcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmg6CisKIDIwMjAtMDUtMTUgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gTWVkaWFRdWVy
eU1hdGNoZXI6OmV2YWx1YXRlQWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA1YTFiNDVhMjFlZjcw
MDRkOGY1NTBjMjhhZTkzMmIxMzIxZWQzMTQyLi40M2E2NzBiMzM2YmI2ZjZmZWJkZWUwZDExOGEx
ODZkOWQ4YzcwN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE0NzMsNiArMTQ3Myw3IEBAIHNl
dChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIHN0eWxlL1N0eWxlQ2hh
bmdlLmgKICAgICBzdHlsZS9TdHlsZVNjb3BlLmgKKyAgICBzdHlsZS9TdHlsZVVwZGF0ZS5oCiAg
ICAgc3R5bGUvU3R5bGVWYWxpZGl0eS5oCiAKICAgICBzdmcvU1ZHTGVuZ3RoQ29udGV4dC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZDc1OTBhNGZiZjBmYjNkNjEyZTc0MzUzOTMxZmM5M2E4ZTc3OGQyZi4uOGNjYzUxN2EyY2E5
NzdjYTVlMjkzMzI1Y2MxNzZiZDlkZjFjYzQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDkyMSw3ICs0OTIxLDcgQEAKIAkJ
RTQyNEEzOUUxMzMwREYwMTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyNEEzOUQxMzMwREYwMTAw
Q0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5oICovOyB9OwogCQlFNDI1QTQ5QTE4MjkyQjg0
MDAyMENGQ0YgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjVBNDk5MTgyOTJCODQwMDIwQ0ZDRiAvKiBDb2xs
ZWN0aW9uSW5kZXhDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUU0Mjk1RkE0MTJCMDYxNEUwMEQxQUNFMCAvKiBSZXNvdXJjZUxvYWRQcmlv
cml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQy
OTVGQTMxMkIwNjE0RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFByaW9yaXR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTQyRTc2REMxQzdBRjc3
NjAwRTM2MTREIC8qIFN0eWxlVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDJFNzZEQjFDN0FGNzc2MDBFMzYxNEQgLyogU3R5bGVVcGRhdGUu
aCAqLzsgfTsKKwkJRTQyRTc2REMxQzdBRjc3NjAwRTM2MTREIC8qIFN0eWxlVXBkYXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDJFNzZEQjFDN0FG
Nzc2MDBFMzYxNEQgLyogU3R5bGVVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDMxMDVCQjE2NzUwRjE2MDBEQjJGQjggLyogTm9kZVRy
YXZlcnNhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQzMTA1QkExNjc1MEYxNjAwREIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDM0M0QyMzIzOTI3Nzg0MDBF
QkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbFNpbXBsZVBhdGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAv
KiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxlUGF0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBM
aW5lTGF5b3V0VHJhdmVyc2FsQ29tcGxleFBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MzQzRDI0MjM5Mjc3OEYwMEVCQkI2NiAvKiBMaW5lTGF5
b3V0VHJhdmVyc2FsQ29tcGxleFBhdGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMjEyNjYsMTIgKzIxMjY2LDEyIEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQk2RkM1Q0E5NDIyRTM1OTk0MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nQ29udGV4
dC5jcHAgKi8sCiAJCQkJNkZDNUNBOTUyMkUzNTk5NDAwQjEzRTExIC8qIFRhYmxlRm9ybWF0dGlu
Z0NvbnRleHQuaCAqLywKLQkJCQk2RkY5RjFCRTI0NkQ5NjZDMDA0MzUwODMgLyogVGFibGVMYXlv
dXQuY3BwICovLAogCQkJCTExRDE5QzJFMjMxNTlCQUUwMDhGMjREMyAvKiBUYWJsZUZvcm1hdHRp
bmdDb250ZXh0R2VvbWV0cnkuY3BwICovLAogCQkJCTZGQzVDQTkyMjJFMzU5OTMwMEIxM0UxMSAv
KiBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHAgKi8sCiAJCQkJNkZDNUNBOTYyMkUzNTk5NTAwQjEz
RTExIC8qIFRhYmxlRm9ybWF0dGluZ1N0YXRlLmggKi8sCiAJCQkJNkY1QjdFQUEyMzAwQTc5RTAw
NjdEOUMzIC8qIFRhYmxlR3JpZC5jcHAgKi8sCiAJCQkJNkZCMjJFMzAyMzAwOTdFMzAwQzIwODY2
IC8qIFRhYmxlR3JpZC5oICovLAorCQkJCTZGRjlGMUJFMjQ2RDk2NkMwMDQzNTA4MyAvKiBUYWJs
ZUxheW91dC5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRhYmxlZm9ybWF0dGluZzsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiZWY0ODY5
NDAzOTc5MDg4NjE5MmViM2ZhYjA3MjhmMjU0NDJiNzM1Li5kYzBkMDViYjU1MGI4OWE4MDQxMDEz
ZDljYzY4MGZjZGVmOTJjNTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE5MTksNiAr
MTkxOSwxOSBAQCBib29sIERvY3VtZW50OjpoYXNQZW5kaW5nRnVsbFN0eWxlUmVidWlsZCgpIGNv
bnN0CiAgICAgcmV0dXJuIGhhc1BlbmRpbmdTdHlsZVJlY2FsYygpICYmIG1fbmVlZHNGdWxsU3R5
bGVSZWJ1aWxkOwogfQogCit2b2lkIERvY3VtZW50Ojp1cGRhdGVSZW5kZXJUcmVlKHN0ZDo6dW5p
cXVlX3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPiBzdHlsZVVwZGF0ZSkKK3sKKyAgICBBU1NFUlQo
IWluUmVuZGVyVHJlZVVwZGF0ZSgpKTsKKworICAgIC8vIE5PVEU6IFByZXNlcnZlIHRoZSBvcmRl
ciBvZiBkZWZpbml0aW9ucyBiZWxvdyBzbyB0aGUgZGVzdHJ1Y3RvcnMgYXJlIGNhbGxlZCBpbiBw
cm9wZXIgc2VxdWVuY2UuCisgICAgU3R5bGU6OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxl
ciBjYWxsYmFja0Rpc2FibGVyKCp0aGlzKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBpblJlbmRl
clRyZWVVcGRhdGUobV9pblJlbmRlclRyZWVVcGRhdGUsIHRydWUpOworICAgIFJlbmRlclRyZWVV
cGRhdGVyIHVwZGF0ZXIoKnRoaXMsIGNhbGxiYWNrRGlzYWJsZXIpOworICAgIC8vIEVuZCBvZiBv
cmRlcmVkIGRlZmluaXRpb25zCisKKyAgICB1cGRhdGVyLmNvbW1pdChXVEZNb3ZlKHN0eWxlVXBk
YXRlKSk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBl
IHR5cGUpCiB7CiAgICAgQVNTRVJUKCF2aWV3KCkgfHwgIXZpZXcoKS0+aXNQYWludGluZygpKTsK
QEAgLTIwMDMsMTEgKzIwMTYsNyBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2
ZVN0eWxlVHlwZSB0eXBlKQogICAgICAgICBtX2luU3R5bGVSZWNhbGMgPSBmYWxzZTsKIAogICAg
ICAgICBpZiAoc3R5bGVVcGRhdGUpIHsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGlu
UmVuZGVyVHJlZVVwZGF0ZShtX2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7Ci0KLSAgICAgICAg
ICAgIFJlbmRlclRyZWVVcGRhdGVyIHVwZGF0ZXIoKnRoaXMpOwotICAgICAgICAgICAgdXBkYXRl
ci5jb21taXQoV1RGTW92ZShzdHlsZVVwZGF0ZSkpOwotCisgICAgICAgICAgICB1cGRhdGVSZW5k
ZXJUcmVlKFdURk1vdmUoc3R5bGVVcGRhdGUpKTsKICAgICAgICAgICAgIGZyYW1lVmlldy5zdHls
ZUFuZFJlbmRlclRyZWVEaWRDaGFuZ2UoKTsKICAgICAgICAgfQogCkBAIC0yMDQxLDE0ICsyMDUw
LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUp
CiAKIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRleHRSZW5kZXJlcihUZXh0JiB0ZXh0LCB1bnNpZ25l
ZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNlZFRleHQpCiB7
Ci0gICAgQVNTRVJUKCFtX2luUmVuZGVyVHJlZVVwZGF0ZSk7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gaW5SZW5kZXJUcmVlVXBkYXRlKG1faW5SZW5kZXJUcmVlVXBkYXRlLCB0cnVlKTsKLQogICAg
IGF1dG8gdGV4dFVwZGF0ZSA9IG1ha2VVbmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwogICAg
IHRleHRVcGRhdGUtPmFkZFRleHQodGV4dCwgeyBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3Ro
T2ZSZXBsYWNlZFRleHQsIFdURjo6bnVsbG9wdCB9KTsKIAotICAgIFJlbmRlclRyZWVVcGRhdGVy
IHJlbmRlclRyZWVVcGRhdGVyKCp0aGlzKTsKLSAgICByZW5kZXJUcmVlVXBkYXRlci5jb21taXQo
V1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgdXBkYXRlUmVuZGVyVHJlZShXVEZNb3ZlKHRleHRV
cGRhdGUpKTsKIH0KIAogYm9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDc3ZWNiN2EwMzEzMzlmYzE3YmVjNTUzZjM1ZmI2MzY3NTcz
ZDBjNDMuLjRhMmZlYWI3YzE5Njc3MjdjMzBmNzAxNWU5ZGIxOGI4ODQxNmJiNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKICNpbmNs
dWRlICJTdHlsZUNvbG9yLmgiCisjaW5jbHVkZSAiU3R5bGVVcGRhdGUuaCIKICNpbmNsdWRlICJT
dXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNs
dWRlICJUaW1lci5oIgpAQCAtNjQzLDYgKzY0NCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcmVu
ZGVyVHJlZUJlaW5nRGVzdHJveWVkKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJUcmVlQmVpbmdE
ZXN0cm95ZWQ7IH0KICAgICBib29sIGhhc0xpdmluZ1JlbmRlclRyZWUoKSBjb25zdCB7IHJldHVy
biByZW5kZXJWaWV3KCkgJiYgIXJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpOyB9CisgICAgdm9p
ZCB1cGRhdGVSZW5kZXJUcmVlKHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPiBz
dHlsZVVwZGF0ZSk7CiAgICAgCiAgICAgYm9vbCB1cGRhdGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRP
ZkRhdGUoRWxlbWVudCYsIERpbWVuc2lvbnNDaGVjayA9IEFsbERpbWVuc2lvbnNDaGVjayk7CiAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVVcGRhdGVyLmNwcAppbmRleCBkZDY0ZmRlZDdkMGFlZWE5MTRmZjI5NDAwZmRiMzg4M2Vm
ZjQwODcyLi43NDI1ZGZlOWQ5ZDc5YjFmYzhjNDJjMTFjYmE3ZTIwNzU1MjNjMzhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBk
YXRlci5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgUmVuZGVyVHJlZVVwZGF0ZXI6OlBhcmVudDo6UGFy
ZW50KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRlcyoKIHsKIH0K
IAotUmVuZGVyVHJlZVVwZGF0ZXI6OlJlbmRlclRyZWVVcGRhdGVyKERvY3VtZW50JiBkb2N1bWVu
dCkKK1JlbmRlclRyZWVVcGRhdGVyOjpSZW5kZXJUcmVlVXBkYXRlcihEb2N1bWVudCYgZG9jdW1l
bnQsIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXImKQogICAgIDogbV9kb2N1
bWVudChkb2N1bWVudCkKICAgICAsIG1fZ2VuZXJhdGVkQ29udGVudChtYWtlVW5pcXVlPEdlbmVy
YXRlZENvbnRlbnQ+KCp0aGlzKSkKICAgICAsIG1fYnVpbGRlcihyZW5kZXJWaWV3KCkpCkBAIC0x
MjEsOCArMTIxLDYgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6Y29tbWl0KHN0ZDo6dW5pcXVl
X3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPiBzdHlsZVVwZGF0ZSkKICAgICAKICAgICBUcmFjZVNj
b3BlIHNjb3BlKFJlbmRlclRyZWVCdWlsZFN0YXJ0LCBSZW5kZXJUcmVlQnVpbGRFbmQpOwogCi0g
ICAgU3R5bGU6OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlciBjYWxsYmFja0Rpc2FibGVy
KG1fZG9jdW1lbnQpOwotCiAgICAgbV9zdHlsZVVwZGF0ZSA9IFdURk1vdmUoc3R5bGVVcGRhdGUp
OwogCiAgICAgZm9yIChhdXRvKiByb290IDogZmluZFJlbmRlcmluZ1Jvb3RzKCptX3N0eWxlVXBk
YXRlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVVcGRhdGVyLmgKaW5kZXggNTMxZjJjZmQwOTJhZDI3MmNmNGZhOTlmOGM2MzA5YWI2OWQy
Y2QyMS4uMjM0MDM0YzgzMzE3Y2E2MTg3ZTFiZWJhYjdjZTE3MGYxZDc0NTJjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVy
LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRyZWVQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlN0eWxlQ2hhbmdlLmgiCisj
aW5jbHVkZSAiU3R5bGVUcmVlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVVwZGF0ZS5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDMs
NyArNDQsNyBAQCBjbGFzcyBUZXh0OwogCiBjbGFzcyBSZW5kZXJUcmVlVXBkYXRlciB7CiBwdWJs
aWM6Ci0gICAgUmVuZGVyVHJlZVVwZGF0ZXIoRG9jdW1lbnQmKTsKKyAgICBSZW5kZXJUcmVlVXBk
YXRlcihEb2N1bWVudCYsIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXImKTsK
ICAgICB+UmVuZGVyVHJlZVVwZGF0ZXIoKTsKIAogICAgIHZvaWQgY29tbWl0KHN0ZDo6dW5pcXVl
X3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzhjZTQ0MmQ5YjJiYzU2ZTJjMjM3
ZjNlNWQ2MDVkOWQzMGEyYjAzNy4uYzJiNmQ2YTdkZDllMTIzZDNiZjcwM2ViNDdkNThlNjE3OWI2
ZDkwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA1LTIyICBKYWNrIExlZSAgPHNoaWhj
aGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6ICghc19jdXJy
ZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5kZXJUcmVlQnVpbGRl
cjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMjE2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTcwMjgwOTY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgQWRkZWQgYSBy
ZWdyZXNzaW9uIHRlc3QgZm9yIHRoZSBjcmFzaC4KKworICAgICAgICAqIGZhc3QvcmVuZGVyaW5n
L25lc3RlZC1yZW5kZXItdHJlZS11cGRhdGUtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLmh0
bWw6IEFkZGVkLgorCiAyMDIwLTA1LTE1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBOdWxscHRyIGNyYXNoIGluIE1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0
ZUFsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRl
ci10cmVlLXVwZGF0ZS1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlbmRl
cmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZDEzZDBiOTU1MzBkOTU2ZmFmYWIyODFjNGRiNTEzYjU5MzE3NjRkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRlci10cmVlLXVw
ZGF0ZS1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorVGVzdHMgbmVzdGVkIHJlbmRl
ciB0cmVlIHVwZGF0ZS4gVGhlIHRlc3QgcGFzc2VzIGlmIFdlYktpdCBkb2Vzbid0IGNyYXNoIG9y
IGhpdCBhbiBhc3NlcnRpb24uIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJp
bmcvbmVzdGVkLXJlbmRlci10cmVlLXVwZGF0ZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRlci10cmVlLXVwZGF0ZS1jcmFzaC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmEzMjhiOGQ0YjU1OTE4M2Y3MGYxZDM1MWEwOWU4ZjFlMWFiYjZjNTkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBk
YXRlLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPHNjcmlwdD4NCitmdW5jdGlvbiBydW4o
KSB7DQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikNCisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOw0KKw0KKyAgICBvYmogPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvYmplY3Qi
KTsNCisgICAgbGkuYXBwZW5kQ2hpbGQob2JqKTsNCisgICAgc3ZnLmN1cnJlbnRTY2FsZSA9IDAu
OTk7DQorICAgIG9iai5kYXRhID0gU3RyaW5nLmZyb21DaGFyQ29kZSg4OSwgODIpDQorICAgIGZm
LnNldEF0dHJpYnV0ZSgiZGlyZWN0aW9uIiwgInJ0bCIpOw0KK30NCis8L3NjcmlwdD4NCis8Ym9k
eSBvbmxvYWQ9cnVuKCk+PGxpIGlkPWxpPjxzdmcgaWQ9c3ZnPjxmb250LWZhY2UtdXJpIGlkPWZm
Pjx0cmVmIHhsaW5rOmhyZWY9I2ZmPjxzcGFuPlRlc3RzIG5lc3RlZCByZW5kZXIgdHJlZSB1cGRh
dGUuIFRoZSB0ZXN0IHBhc3NlcyBpZiBXZWJLaXQgZG9lc24ndCBjcmFzaCBvciBoaXQgYW4gYXNz
ZXJ0aW9uLjwvc3Bhbj4NCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400108</attachid>
            <date>2020-05-22 21:58:45 -0700</date>
            <delta_ts>2020-05-22 22:53:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212163-20200522215844.patch</filename>
            <type>text/plain</type>
            <size>10841</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBmNmMyMTJiZDY4ZTc4
MTE0YWEyODE2NzAxMGE0NDQyNjAzYWYzOS4uZTRmOTFlMWMzNWVhNTExZWY4ODNhZGFjYzkzOWY2
NmExYjZkMTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA1LTIyICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTcwMjgwOTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAg
ICAgQ2FsbGluZyB+UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyKCkgYmVmb3JlIGNvbXBs
ZXRpbmcgcmVuZGVyIHRyZWUgdXBkYXRpbmcgYW5kIHJlbGVhc2luZyBSZW5kZXJUcmVlQnVpbGRl
ciAKKyAgICAgICAgdHJpZ2dlcnMgdGhpcyBhc3NlcnRpb24uIFRoZXJlZm9yZSB3ZSBhZGRlZCBh
IHV0aWxpdHkgZnVuY3Rpb24gInVwZGF0ZVJlbmRlclRyZWUiIGluIHdoaWNoIFBvc3RSZXNvbHV0
aW9uQ2FsbGJhY2sKKyAgICAgICAgaXMgZGVsYXllZCB1bnRpbCBSZW5kZXJUcmVlVXBkYXRlciBp
cyByZWxlYXNlZCBhbmQgbV9pblJlbmRlclRyZWVVcGRhdGUgaXMgY2xlYXJlZC4KKworICAgICAg
ICBUZXN0OiBmYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLmh0
bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlUmVuZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1
cGRhdGVUZXh0UmVuZGVyZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6UmVuZGVyVHJlZVVwZGF0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OmNvbW1pdCk6CisgICAgICAgICogcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmg6CisKIDIwMjAtMDUtMTUgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gTWVkaWFRdWVy
eU1hdGNoZXI6OmV2YWx1YXRlQWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA1YTFiNDVhMjFlZjcw
MDRkOGY1NTBjMjhhZTkzMmIxMzIxZWQzMTQyLi40M2E2NzBiMzM2YmI2ZjZmZWJkZWUwZDExOGEx
ODZkOWQ4YzcwN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE0NzMsNiArMTQ3Myw3IEBAIHNl
dChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIHN0eWxlL1N0eWxlQ2hh
bmdlLmgKICAgICBzdHlsZS9TdHlsZVNjb3BlLmgKKyAgICBzdHlsZS9TdHlsZVVwZGF0ZS5oCiAg
ICAgc3R5bGUvU3R5bGVWYWxpZGl0eS5oCiAKICAgICBzdmcvU1ZHTGVuZ3RoQ29udGV4dC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZDc1OTBhNGZiZjBmYjNkNjEyZTc0MzUzOTMxZmM5M2E4ZTc3OGQyZi4uMjUzZjFhMzE0Njlm
NmVkODhkNTljNzU1YTZjMmRhYTEyNjU0Zjg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDkyMSw3ICs0OTIxLDcgQEAKIAkJ
RTQyNEEzOUUxMzMwREYwMTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyNEEzOUQxMzMwREYwMTAw
Q0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5oICovOyB9OwogCQlFNDI1QTQ5QTE4MjkyQjg0
MDAyMENGQ0YgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjVBNDk5MTgyOTJCODQwMDIwQ0ZDRiAvKiBDb2xs
ZWN0aW9uSW5kZXhDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUU0Mjk1RkE0MTJCMDYxNEUwMEQxQUNFMCAvKiBSZXNvdXJjZUxvYWRQcmlv
cml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQy
OTVGQTMxMkIwNjE0RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFByaW9yaXR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTQyRTc2REMxQzdBRjc3
NjAwRTM2MTREIC8qIFN0eWxlVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDJFNzZEQjFDN0FGNzc2MDBFMzYxNEQgLyogU3R5bGVVcGRhdGUu
aCAqLzsgfTsKKwkJRTQyRTc2REMxQzdBRjc3NjAwRTM2MTREIC8qIFN0eWxlVXBkYXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDJFNzZEQjFDN0FG
Nzc2MDBFMzYxNEQgLyogU3R5bGVVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDMxMDVCQjE2NzUwRjE2MDBEQjJGQjggLyogTm9kZVRy
YXZlcnNhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQzMTA1QkExNjc1MEYxNjAwREIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDM0M0QyMzIzOTI3Nzg0MDBF
QkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbFNpbXBsZVBhdGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAv
KiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxlUGF0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBM
aW5lTGF5b3V0VHJhdmVyc2FsQ29tcGxleFBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MzQzRDI0MjM5Mjc3OEYwMEVCQkI2NiAvKiBMaW5lTGF5
b3V0VHJhdmVyc2FsQ29tcGxleFBhdGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYmVmNDg2OTQwMzk3
OTA4ODYxOTJlYjNmYWIwNzI4ZjI1NDQyYjczNS4uZGMwZDA1YmI1NTBiODlhODA0MTAxM2Q5Y2M2
ODBmY2RlZjkyYzUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xOTE5LDYgKzE5MTks
MTkgQEAgYm9vbCBEb2N1bWVudDo6aGFzUGVuZGluZ0Z1bGxTdHlsZVJlYnVpbGQoKSBjb25zdAog
ICAgIHJldHVybiBoYXNQZW5kaW5nU3R5bGVSZWNhbGMoKSAmJiBtX25lZWRzRnVsbFN0eWxlUmVi
dWlsZDsKIH0KIAordm9pZCBEb2N1bWVudDo6dXBkYXRlUmVuZGVyVHJlZShzdGQ6OnVuaXF1ZV9w
dHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVVcGRhdGUpCit7CisgICAgQVNTRVJUKCFpblJl
bmRlclRyZWVVcGRhdGUoKSk7CisKKyAgICAvLyBOT1RFOiBQcmVzZXJ2ZSB0aGUgb3JkZXIgb2Yg
ZGVmaW5pdGlvbnMgYmVsb3cgc28gdGhlIGRlc3RydWN0b3JzIGFyZSBjYWxsZWQgaW4gcHJvcGVy
IHNlcXVlbmNlLgorICAgIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIgY2Fs
bGJhY2tEaXNhYmxlcigqdGhpcyk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5SZW5kZXJUcmVl
VXBkYXRlKG1faW5SZW5kZXJUcmVlVXBkYXRlLCB0cnVlKTsKKyAgICBSZW5kZXJUcmVlVXBkYXRl
ciB1cGRhdGVyKCp0aGlzLCBjYWxsYmFja0Rpc2FibGVyKTsKKyAgICAvLyBFbmQgb2Ygb3JkZXJl
ZCBkZWZpbml0aW9ucworCisgICAgdXBkYXRlci5jb21taXQoV1RGTW92ZShzdHlsZVVwZGF0ZSkp
OworfQorCiB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBl
KQogewogICAgIEFTU0VSVCghdmlldygpIHx8ICF2aWV3KCktPmlzUGFpbnRpbmcoKSk7CkBAIC0y
MDAzLDExICsyMDE2LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKFJlc29sdmVTdHls
ZVR5cGUgdHlwZSkKICAgICAgICAgbV9pblN0eWxlUmVjYWxjID0gZmFsc2U7CiAKICAgICAgICAg
aWYgKHN0eWxlVXBkYXRlKSB7Ci0gICAgICAgICAgICBTZXRGb3JTY29wZTxib29sPiBpblJlbmRl
clRyZWVVcGRhdGUobV9pblJlbmRlclRyZWVVcGRhdGUsIHRydWUpOwotCi0gICAgICAgICAgICBS
ZW5kZXJUcmVlVXBkYXRlciB1cGRhdGVyKCp0aGlzKTsKLSAgICAgICAgICAgIHVwZGF0ZXIuY29t
bWl0KFdURk1vdmUoc3R5bGVVcGRhdGUpKTsKLQorICAgICAgICAgICAgdXBkYXRlUmVuZGVyVHJl
ZShXVEZNb3ZlKHN0eWxlVXBkYXRlKSk7CiAgICAgICAgICAgICBmcmFtZVZpZXcuc3R5bGVBbmRS
ZW5kZXJUcmVlRGlkQ2hhbmdlKCk7CiAgICAgICAgIH0KIApAQCAtMjA0MSwxNCArMjA1MCwxMCBA
QCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQogCiB2
b2lkIERvY3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVyZXIoVGV4dCYgdGV4dCwgdW5zaWduZWQgb2Zm
c2V0T2ZSZXBsYWNlZFRleHQsIHVuc2lnbmVkIGxlbmd0aE9mUmVwbGFjZWRUZXh0KQogewotICAg
IEFTU0VSVCghbV9pblJlbmRlclRyZWVVcGRhdGUpOwotICAgIFNldEZvclNjb3BlPGJvb2w+IGlu
UmVuZGVyVHJlZVVwZGF0ZShtX2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7Ci0KICAgICBhdXRv
IHRleHRVcGRhdGUgPSBtYWtlVW5pcXVlPFN0eWxlOjpVcGRhdGU+KCp0aGlzKTsKICAgICB0ZXh0
VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsgb2Zmc2V0T2ZSZXBsYWNlZFRleHQsIGxlbmd0aE9mUmVw
bGFjZWRUZXh0LCBXVEY6Om51bGxvcHQgfSk7CiAKLSAgICBSZW5kZXJUcmVlVXBkYXRlciByZW5k
ZXJUcmVlVXBkYXRlcigqdGhpcyk7Ci0gICAgcmVuZGVyVHJlZVVwZGF0ZXIuY29tbWl0KFdURk1v
dmUodGV4dFVwZGF0ZSkpOworICAgIHVwZGF0ZVJlbmRlclRyZWUoV1RGTW92ZSh0ZXh0VXBkYXRl
KSk7CiB9CiAKIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCA3N2VjYjdhMDMxMzM5ZmMxN2JlYzU1M2YzNWZiNjM2NzU3M2QwYzQz
Li40YTJmZWFiN2MxOTY3NzI3YzMwZjcwMTVlOWRiMThiODg0MTZiYjVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQuaCIKICNpbmNsdWRlICJTdHJpbmdXaXRoRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAi
U3R5bGVDb2xvci5oIgorI2luY2x1ZGUgIlN0eWxlVXBkYXRlLmgiCiAjaW5jbHVkZSAiU3VwcGxl
bWVudGFibGUuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKQEAgLTY0Myw2ICs2NDQsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHJlbmRlclRy
ZWVCZWluZ0Rlc3Ryb3llZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVHJlZUJlaW5nRGVzdHJv
eWVkOyB9CiAgICAgYm9vbCBoYXNMaXZpbmdSZW5kZXJUcmVlKCkgY29uc3QgeyByZXR1cm4gcmVu
ZGVyVmlldygpICYmICFyZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKTsgfQorICAgIHZvaWQgdXBk
YXRlUmVuZGVyVHJlZShzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVV
cGRhdGUpOwogICAgIAogICAgIGJvb2wgdXBkYXRlTGF5b3V0SWZEaW1lbnNpb25zT3V0T2ZEYXRl
KEVsZW1lbnQmLCBEaW1lbnNpb25zQ2hlY2sgPSBBbGxEaW1lbnNpb25zQ2hlY2spOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVV
cGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
VXBkYXRlci5jcHAKaW5kZXggZGQ2NGZkZWQ3ZDBhZWVhOTE0ZmYyOTQwMGZkYjM4ODNlZmY0MDg3
Mi4uNzQyNWRmZTlkOWQ3OWIxZmM4YzQyYzExY2JhN2UyMDc1NTIzYzM4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
Y3BwCkBAIC03OCw3ICs3OCw3IEBAIFJlbmRlclRyZWVVcGRhdGVyOjpQYXJlbnQ6OlBhcmVudChF
bGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHlsZTo6RWxlbWVudFVwZGF0ZXMqCiB7CiB9CiAKLVJl
bmRlclRyZWVVcGRhdGVyOjpSZW5kZXJUcmVlVXBkYXRlcihEb2N1bWVudCYgZG9jdW1lbnQpCitS
ZW5kZXJUcmVlVXBkYXRlcjo6UmVuZGVyVHJlZVVwZGF0ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBT
dHlsZTo6UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyJikKICAgICA6IG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCiAgICAgLCBtX2dlbmVyYXRlZENvbnRlbnQobWFrZVVuaXF1ZTxHZW5lcmF0ZWRD
b250ZW50PigqdGhpcykpCiAgICAgLCBtX2J1aWxkZXIocmVuZGVyVmlldygpKQpAQCAtMTIxLDgg
KzEyMSw2IEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OmNvbW1pdChzdGQ6OnVuaXF1ZV9wdHI8
Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVVcGRhdGUpCiAgICAgCiAgICAgVHJhY2VTY29wZSBz
Y29wZShSZW5kZXJUcmVlQnVpbGRTdGFydCwgUmVuZGVyVHJlZUJ1aWxkRW5kKTsKIAotICAgIFN0
eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIgY2FsbGJhY2tEaXNhYmxlcihtX2Rv
Y3VtZW50KTsKLQogICAgIG1fc3R5bGVVcGRhdGUgPSBXVEZNb3ZlKHN0eWxlVXBkYXRlKTsKIAog
ICAgIGZvciAoYXV0byogcm9vdCA6IGZpbmRSZW5kZXJpbmdSb290cygqbV9zdHlsZVVwZGF0ZSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
VXBkYXRlci5oCmluZGV4IDUzMWYyY2ZkMDkyYWQyNzJjZjRmYTk5ZjhjNjMwOWFiNjlkMmNkMjEu
LjIzNDAzNGM4MzMxN2NhNjE4N2UxYmViYWI3Y2UxNzBmMWQ3NDUyY2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJUcmVlUG9zaXRpb24uaCIKICNpbmNsdWRlICJTdHlsZUNoYW5nZS5oIgorI2luY2x1
ZGUgIlN0eWxlVHJlZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVVcGRhdGUuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQzLDcgKzQ0
LDcgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgUmVuZGVyVHJlZVVwZGF0ZXIgewogcHVibGljOgot
ICAgIFJlbmRlclRyZWVVcGRhdGVyKERvY3VtZW50Jik7CisgICAgUmVuZGVyVHJlZVVwZGF0ZXIo
RG9jdW1lbnQmLCBTdHlsZTo6UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyJik7CiAgICAg
flJlbmRlclRyZWVVcGRhdGVyKCk7CiAKICAgICB2b2lkIGNvbW1pdChzdGQ6OnVuaXF1ZV9wdHI8
Y29uc3QgU3R5bGU6OlVwZGF0ZT4pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc4Y2U0NDJkOWIyYmM1NmUyYzIzN2YzZTVk
NjA1ZDlkMzBhMmIwMzcuLmMyYjZkNmE3ZGQ5ZTEyM2QzYmY3MDNlYjQ3ZDU4ZTYxNzliNmQ5MDcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNS0yMiAgSmFjayBMZWUgIDxzaGloY2hpZWhf
bGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiAoIXNfY3VycmVudCB8
fCAmbV92aWV3ICE9ICZzX2N1cnJlbnQtPm1fdmlldykgaW4gUmVuZGVyVHJlZUJ1aWxkZXI6OlJl
bmRlclRyZWVCdWlsZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTIxNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MDI4MDk2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIEFkZGVkIGEgcmVncmVz
c2lvbiB0ZXN0IGZvciB0aGUgY3Jhc2guCisKKyAgICAgICAgKiBmYXN0L3JlbmRlcmluZy9uZXN0
ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRlci10cmVlLXVwZGF0ZS1jcmFzaC5odG1sOiBB
ZGRlZC4KKwogMjAyMC0wNS0xNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgTnVsbHB0ciBjcmFzaCBpbiBNZWRpYVF1ZXJ5TWF0Y2hlcjo6ZXZhbHVhdGVBbGwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVuZGVyaW5nL25lc3RlZC1yZW5kZXItdHJl
ZS11cGRhdGUtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJpbmcv
bmVzdGVkLXJlbmRlci10cmVlLXVwZGF0ZS1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWQxM2QwYjk1NTMwZDk1NmZhZmFiMjgxYzRkYjUxM2I1OTMxNzY0ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVuZGVyaW5nL25lc3RlZC1yZW5kZXItdHJlZS11cGRhdGUt
Y3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1Rlc3RzIG5lc3RlZCByZW5kZXIgdHJl
ZSB1cGRhdGUuIFRoZSB0ZXN0IHBhc3NlcyBpZiBXZWJLaXQgZG9lc24ndCBjcmFzaCBvciBoaXQg
YW4gYXNzZXJ0aW9uLiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVuZGVyaW5nL25l
c3RlZC1yZW5kZXItdHJlZS11cGRhdGUtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVu
ZGVyaW5nL25lc3RlZC1yZW5kZXItdHJlZS11cGRhdGUtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MzI4YjhkNGI1NTkxODNmNzBmMWQzNTFhMDllOGYxZTFhYmI2YzU5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRlci10cmVlLXVwZGF0ZS1j
cmFzaC5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzxzY3JpcHQ+DQorZnVuY3Rpb24gcnVuKCkgew0K
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpDQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsNCisNCisgICAgb2JqID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2JqZWN0Iik7DQor
ICAgIGxpLmFwcGVuZENoaWxkKG9iaik7DQorICAgIHN2Zy5jdXJyZW50U2NhbGUgPSAwLjk5Ow0K
KyAgICBvYmouZGF0YSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoODksIDgyKQ0KKyAgICBmZi5zZXRB
dHRyaWJ1dGUoImRpcmVjdGlvbiIsICJydGwiKTsNCit9DQorPC9zY3JpcHQ+DQorPGJvZHkgb25s
b2FkPXJ1bigpPjxsaSBpZD1saT48c3ZnIGlkPXN2Zz48Zm9udC1mYWNlLXVyaSBpZD1mZj48dHJl
ZiB4bGluazpocmVmPSNmZj48c3Bhbj5UZXN0cyBuZXN0ZWQgcmVuZGVyIHRyZWUgdXBkYXRlLiBU
aGUgdGVzdCBwYXNzZXMgaWYgV2ViS2l0IGRvZXNuJ3QgY3Jhc2ggb3IgaGl0IGFuIGFzc2VydGlv
bi48L3NwYW4+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400111</attachid>
            <date>2020-05-23 00:15:52 -0700</date>
            <delta_ts>2020-05-23 00:18:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212163-20200523001551.patch</filename>
            <type>text/plain</type>
            <size>11473</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBmNmMyMTJiZDY4ZTc4
MTE0YWEyODE2NzAxMGE0NDQyNjAzYWYzOS4uZTRmOTFlMWMzNWVhNTExZWY4ODNhZGFjYzkzOWY2
NmExYjZkMTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA1LTIyICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTcwMjgwOTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAg
ICAgQ2FsbGluZyB+UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyKCkgYmVmb3JlIGNvbXBs
ZXRpbmcgcmVuZGVyIHRyZWUgdXBkYXRpbmcgYW5kIHJlbGVhc2luZyBSZW5kZXJUcmVlQnVpbGRl
ciAKKyAgICAgICAgdHJpZ2dlcnMgdGhpcyBhc3NlcnRpb24uIFRoZXJlZm9yZSB3ZSBhZGRlZCBh
IHV0aWxpdHkgZnVuY3Rpb24gInVwZGF0ZVJlbmRlclRyZWUiIGluIHdoaWNoIFBvc3RSZXNvbHV0
aW9uQ2FsbGJhY2sKKyAgICAgICAgaXMgZGVsYXllZCB1bnRpbCBSZW5kZXJUcmVlVXBkYXRlciBp
cyByZWxlYXNlZCBhbmQgbV9pblJlbmRlclRyZWVVcGRhdGUgaXMgY2xlYXJlZC4KKworICAgICAg
ICBUZXN0OiBmYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLmh0
bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlUmVuZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1
cGRhdGVUZXh0UmVuZGVyZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6UmVuZGVyVHJlZVVwZGF0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OmNvbW1pdCk6CisgICAgICAgICogcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmg6CisKIDIwMjAtMDUtMTUgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gTWVkaWFRdWVy
eU1hdGNoZXI6OmV2YWx1YXRlQWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA1YTFiNDVhMjFlZjcw
MDRkOGY1NTBjMjhhZTkzMmIxMzIxZWQzMTQyLi40M2E2NzBiMzM2YmI2ZjZmZWJkZWUwZDExOGEx
ODZkOWQ4YzcwN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE0NzMsNiArMTQ3Myw3IEBAIHNl
dChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIHN0eWxlL1N0eWxlQ2hh
bmdlLmgKICAgICBzdHlsZS9TdHlsZVNjb3BlLmgKKyAgICBzdHlsZS9TdHlsZVVwZGF0ZS5oCiAg
ICAgc3R5bGUvU3R5bGVWYWxpZGl0eS5oCiAKICAgICBzdmcvU1ZHTGVuZ3RoQ29udGV4dC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZDc1OTBhNGZiZjBmYjNkNjEyZTc0MzUzOTMxZmM5M2E4ZTc3OGQyZi4uOGNjYzUxN2EyY2E5
NzdjYTVlMjkzMzI1Y2MxNzZiZDlkZjFjYzQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDkyMSw3ICs0OTIxLDcgQEAKIAkJ
RTQyNEEzOUUxMzMwREYwMTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyNEEzOUQxMzMwREYwMTAw
Q0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5oICovOyB9OwogCQlFNDI1QTQ5QTE4MjkyQjg0
MDAyMENGQ0YgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjVBNDk5MTgyOTJCODQwMDIwQ0ZDRiAvKiBDb2xs
ZWN0aW9uSW5kZXhDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUU0Mjk1RkE0MTJCMDYxNEUwMEQxQUNFMCAvKiBSZXNvdXJjZUxvYWRQcmlv
cml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQy
OTVGQTMxMkIwNjE0RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFByaW9yaXR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTQyRTc2REMxQzdBRjc3
NjAwRTM2MTREIC8qIFN0eWxlVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDJFNzZEQjFDN0FGNzc2MDBFMzYxNEQgLyogU3R5bGVVcGRhdGUu
aCAqLzsgfTsKKwkJRTQyRTc2REMxQzdBRjc3NjAwRTM2MTREIC8qIFN0eWxlVXBkYXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDJFNzZEQjFDN0FG
Nzc2MDBFMzYxNEQgLyogU3R5bGVVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDMxMDVCQjE2NzUwRjE2MDBEQjJGQjggLyogTm9kZVRy
YXZlcnNhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQzMTA1QkExNjc1MEYxNjAwREIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDM0M0QyMzIzOTI3Nzg0MDBF
QkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbFNpbXBsZVBhdGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAv
KiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxlUGF0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBM
aW5lTGF5b3V0VHJhdmVyc2FsQ29tcGxleFBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MzQzRDI0MjM5Mjc3OEYwMEVCQkI2NiAvKiBMaW5lTGF5
b3V0VHJhdmVyc2FsQ29tcGxleFBhdGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMjEyNjYsMTIgKzIxMjY2LDEyIEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQk2RkM1Q0E5NDIyRTM1OTk0MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nQ29udGV4
dC5jcHAgKi8sCiAJCQkJNkZDNUNBOTUyMkUzNTk5NDAwQjEzRTExIC8qIFRhYmxlRm9ybWF0dGlu
Z0NvbnRleHQuaCAqLywKLQkJCQk2RkY5RjFCRTI0NkQ5NjZDMDA0MzUwODMgLyogVGFibGVMYXlv
dXQuY3BwICovLAogCQkJCTExRDE5QzJFMjMxNTlCQUUwMDhGMjREMyAvKiBUYWJsZUZvcm1hdHRp
bmdDb250ZXh0R2VvbWV0cnkuY3BwICovLAogCQkJCTZGQzVDQTkyMjJFMzU5OTMwMEIxM0UxMSAv
KiBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHAgKi8sCiAJCQkJNkZDNUNBOTYyMkUzNTk5NTAwQjEz
RTExIC8qIFRhYmxlRm9ybWF0dGluZ1N0YXRlLmggKi8sCiAJCQkJNkY1QjdFQUEyMzAwQTc5RTAw
NjdEOUMzIC8qIFRhYmxlR3JpZC5jcHAgKi8sCiAJCQkJNkZCMjJFMzAyMzAwOTdFMzAwQzIwODY2
IC8qIFRhYmxlR3JpZC5oICovLAorCQkJCTZGRjlGMUJFMjQ2RDk2NkMwMDQzNTA4MyAvKiBUYWJs
ZUxheW91dC5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRhYmxlZm9ybWF0dGluZzsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiZWY0ODY5
NDAzOTc5MDg4NjE5MmViM2ZhYjA3MjhmMjU0NDJiNzM1Li5kYzBkMDViYjU1MGI4OWE4MDQxMDEz
ZDljYzY4MGZjZGVmOTJjNTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE5MTksNiAr
MTkxOSwxOSBAQCBib29sIERvY3VtZW50OjpoYXNQZW5kaW5nRnVsbFN0eWxlUmVidWlsZCgpIGNv
bnN0CiAgICAgcmV0dXJuIGhhc1BlbmRpbmdTdHlsZVJlY2FsYygpICYmIG1fbmVlZHNGdWxsU3R5
bGVSZWJ1aWxkOwogfQogCit2b2lkIERvY3VtZW50Ojp1cGRhdGVSZW5kZXJUcmVlKHN0ZDo6dW5p
cXVlX3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPiBzdHlsZVVwZGF0ZSkKK3sKKyAgICBBU1NFUlQo
IWluUmVuZGVyVHJlZVVwZGF0ZSgpKTsKKworICAgIC8vIE5PVEU6IFByZXNlcnZlIHRoZSBvcmRl
ciBvZiBkZWZpbml0aW9ucyBiZWxvdyBzbyB0aGUgZGVzdHJ1Y3RvcnMgYXJlIGNhbGxlZCBpbiBw
cm9wZXIgc2VxdWVuY2UuCisgICAgU3R5bGU6OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxl
ciBjYWxsYmFja0Rpc2FibGVyKCp0aGlzKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBpblJlbmRl
clRyZWVVcGRhdGUobV9pblJlbmRlclRyZWVVcGRhdGUsIHRydWUpOworICAgIFJlbmRlclRyZWVV
cGRhdGVyIHVwZGF0ZXIoKnRoaXMsIGNhbGxiYWNrRGlzYWJsZXIpOworICAgIC8vIEVuZCBvZiBv
cmRlcmVkIGRlZmluaXRpb25zCisKKyAgICB1cGRhdGVyLmNvbW1pdChXVEZNb3ZlKHN0eWxlVXBk
YXRlKSk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBl
IHR5cGUpCiB7CiAgICAgQVNTRVJUKCF2aWV3KCkgfHwgIXZpZXcoKS0+aXNQYWludGluZygpKTsK
QEAgLTIwMDMsMTEgKzIwMTYsNyBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2
ZVN0eWxlVHlwZSB0eXBlKQogICAgICAgICBtX2luU3R5bGVSZWNhbGMgPSBmYWxzZTsKIAogICAg
ICAgICBpZiAoc3R5bGVVcGRhdGUpIHsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGlu
UmVuZGVyVHJlZVVwZGF0ZShtX2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7Ci0KLSAgICAgICAg
ICAgIFJlbmRlclRyZWVVcGRhdGVyIHVwZGF0ZXIoKnRoaXMpOwotICAgICAgICAgICAgdXBkYXRl
ci5jb21taXQoV1RGTW92ZShzdHlsZVVwZGF0ZSkpOwotCisgICAgICAgICAgICB1cGRhdGVSZW5k
ZXJUcmVlKFdURk1vdmUoc3R5bGVVcGRhdGUpKTsKICAgICAgICAgICAgIGZyYW1lVmlldy5zdHls
ZUFuZFJlbmRlclRyZWVEaWRDaGFuZ2UoKTsKICAgICAgICAgfQogCkBAIC0yMDQxLDE0ICsyMDUw
LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUp
CiAKIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRleHRSZW5kZXJlcihUZXh0JiB0ZXh0LCB1bnNpZ25l
ZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNlZFRleHQpCiB7
Ci0gICAgQVNTRVJUKCFtX2luUmVuZGVyVHJlZVVwZGF0ZSk7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gaW5SZW5kZXJUcmVlVXBkYXRlKG1faW5SZW5kZXJUcmVlVXBkYXRlLCB0cnVlKTsKLQogICAg
IGF1dG8gdGV4dFVwZGF0ZSA9IG1ha2VVbmlxdWU8U3R5bGU6OlVwZGF0ZT4oKnRoaXMpOwogICAg
IHRleHRVcGRhdGUtPmFkZFRleHQodGV4dCwgeyBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3Ro
T2ZSZXBsYWNlZFRleHQsIFdURjo6bnVsbG9wdCB9KTsKIAotICAgIFJlbmRlclRyZWVVcGRhdGVy
IHJlbmRlclRyZWVVcGRhdGVyKCp0aGlzKTsKLSAgICByZW5kZXJUcmVlVXBkYXRlci5jb21taXQo
V1RGTW92ZSh0ZXh0VXBkYXRlKSk7CisgICAgdXBkYXRlUmVuZGVyVHJlZShXVEZNb3ZlKHRleHRV
cGRhdGUpKTsKIH0KIAogYm9vbCBEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDc3ZWNiN2EwMzEzMzlmYzE3YmVjNTUzZjM1ZmI2MzY3NTcz
ZDBjNDMuLjRhMmZlYWI3YzE5Njc3MjdjMzBmNzAxNWU5ZGIxOGI4ODQxNmJiNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKICNpbmNs
dWRlICJTdHlsZUNvbG9yLmgiCisjaW5jbHVkZSAiU3R5bGVVcGRhdGUuaCIKICNpbmNsdWRlICJT
dXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNs
dWRlICJUaW1lci5oIgpAQCAtNjQzLDYgKzY0NCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcmVu
ZGVyVHJlZUJlaW5nRGVzdHJveWVkKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJUcmVlQmVpbmdE
ZXN0cm95ZWQ7IH0KICAgICBib29sIGhhc0xpdmluZ1JlbmRlclRyZWUoKSBjb25zdCB7IHJldHVy
biByZW5kZXJWaWV3KCkgJiYgIXJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpOyB9CisgICAgdm9p
ZCB1cGRhdGVSZW5kZXJUcmVlKHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPiBz
dHlsZVVwZGF0ZSk7CiAgICAgCiAgICAgYm9vbCB1cGRhdGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRP
ZkRhdGUoRWxlbWVudCYsIERpbWVuc2lvbnNDaGVjayA9IEFsbERpbWVuc2lvbnNDaGVjayk7CiAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVVcGRhdGVyLmNwcAppbmRleCBkZDY0ZmRlZDdkMGFlZWE5MTRmZjI5NDAwZmRiMzg4M2Vm
ZjQwODcyLi43NDI1ZGZlOWQ5ZDc5YjFmYzhjNDJjMTFjYmE3ZTIwNzU1MjNjMzhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBk
YXRlci5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgUmVuZGVyVHJlZVVwZGF0ZXI6OlBhcmVudDo6UGFy
ZW50KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRlcyoKIHsKIH0K
IAotUmVuZGVyVHJlZVVwZGF0ZXI6OlJlbmRlclRyZWVVcGRhdGVyKERvY3VtZW50JiBkb2N1bWVu
dCkKK1JlbmRlclRyZWVVcGRhdGVyOjpSZW5kZXJUcmVlVXBkYXRlcihEb2N1bWVudCYgZG9jdW1l
bnQsIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXImKQogICAgIDogbV9kb2N1
bWVudChkb2N1bWVudCkKICAgICAsIG1fZ2VuZXJhdGVkQ29udGVudChtYWtlVW5pcXVlPEdlbmVy
YXRlZENvbnRlbnQ+KCp0aGlzKSkKICAgICAsIG1fYnVpbGRlcihyZW5kZXJWaWV3KCkpCkBAIC0x
MjEsOCArMTIxLDYgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6Y29tbWl0KHN0ZDo6dW5pcXVl
X3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPiBzdHlsZVVwZGF0ZSkKICAgICAKICAgICBUcmFjZVNj
b3BlIHNjb3BlKFJlbmRlclRyZWVCdWlsZFN0YXJ0LCBSZW5kZXJUcmVlQnVpbGRFbmQpOwogCi0g
ICAgU3R5bGU6OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlciBjYWxsYmFja0Rpc2FibGVy
KG1fZG9jdW1lbnQpOwotCiAgICAgbV9zdHlsZVVwZGF0ZSA9IFdURk1vdmUoc3R5bGVVcGRhdGUp
OwogCiAgICAgZm9yIChhdXRvKiByb290IDogZmluZFJlbmRlcmluZ1Jvb3RzKCptX3N0eWxlVXBk
YXRlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVVcGRhdGVyLmgKaW5kZXggNTMxZjJjZmQwOTJhZDI3MmNmNGZhOTlmOGM2MzA5YWI2OWQy
Y2QyMS4uMjM0MDM0YzgzMzE3Y2E2MTg3ZTFiZWJhYjdjZTE3MGYxZDc0NTJjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVy
LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRyZWVQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlN0eWxlQ2hhbmdlLmgiCisj
aW5jbHVkZSAiU3R5bGVUcmVlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVVwZGF0ZS5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDMs
NyArNDQsNyBAQCBjbGFzcyBUZXh0OwogCiBjbGFzcyBSZW5kZXJUcmVlVXBkYXRlciB7CiBwdWJs
aWM6Ci0gICAgUmVuZGVyVHJlZVVwZGF0ZXIoRG9jdW1lbnQmKTsKKyAgICBSZW5kZXJUcmVlVXBk
YXRlcihEb2N1bWVudCYsIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXImKTsK
ICAgICB+UmVuZGVyVHJlZVVwZGF0ZXIoKTsKIAogICAgIHZvaWQgY29tbWl0KHN0ZDo6dW5pcXVl
X3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzhjZTQ0MmQ5YjJiYzU2ZTJjMjM3
ZjNlNWQ2MDVkOWQzMGEyYjAzNy4uYzJiNmQ2YTdkZDllMTIzZDNiZjcwM2ViNDdkNThlNjE3OWI2
ZDkwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA1LTIyICBKYWNrIExlZSAgPHNoaWhj
aGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6ICghc19jdXJy
ZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5kZXJUcmVlQnVpbGRl
cjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMjE2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTcwMjgwOTY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgQWRkZWQgYSBy
ZWdyZXNzaW9uIHRlc3QgZm9yIHRoZSBjcmFzaC4KKworICAgICAgICAqIGZhc3QvcmVuZGVyaW5n
L25lc3RlZC1yZW5kZXItdHJlZS11cGRhdGUtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLmh0
bWw6IEFkZGVkLgorCiAyMDIwLTA1LTE1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBOdWxscHRyIGNyYXNoIGluIE1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0
ZUFsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRl
ci10cmVlLXVwZGF0ZS1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlbmRl
cmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBkYXRlLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZDEzZDBiOTU1MzBkOTU2ZmFmYWIyODFjNGRiNTEzYjU5MzE3NjRkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRlci10cmVlLXVw
ZGF0ZS1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorVGVzdHMgbmVzdGVkIHJlbmRl
ciB0cmVlIHVwZGF0ZS4gVGhlIHRlc3QgcGFzc2VzIGlmIFdlYktpdCBkb2Vzbid0IGNyYXNoIG9y
IGhpdCBhbiBhc3NlcnRpb24uIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJp
bmcvbmVzdGVkLXJlbmRlci10cmVlLXVwZGF0ZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZW5kZXJpbmcvbmVzdGVkLXJlbmRlci10cmVlLXVwZGF0ZS1jcmFzaC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmEzMjhiOGQ0YjU1OTE4M2Y3MGYxZDM1MWEwOWU4ZjFlMWFiYjZjNTkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlbmRlcmluZy9uZXN0ZWQtcmVuZGVyLXRyZWUtdXBk
YXRlLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPHNjcmlwdD4NCitmdW5jdGlvbiBydW4o
KSB7DQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikNCisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOw0KKw0KKyAgICBvYmogPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvYmplY3Qi
KTsNCisgICAgbGkuYXBwZW5kQ2hpbGQob2JqKTsNCisgICAgc3ZnLmN1cnJlbnRTY2FsZSA9IDAu
OTk7DQorICAgIG9iai5kYXRhID0gU3RyaW5nLmZyb21DaGFyQ29kZSg4OSwgODIpDQorICAgIGZm
LnNldEF0dHJpYnV0ZSgiZGlyZWN0aW9uIiwgInJ0bCIpOw0KK30NCis8L3NjcmlwdD4NCis8Ym9k
eSBvbmxvYWQ9cnVuKCk+PGxpIGlkPWxpPjxzdmcgaWQ9c3ZnPjxmb250LWZhY2UtdXJpIGlkPWZm
Pjx0cmVmIHhsaW5rOmhyZWY9I2ZmPjxzcGFuPlRlc3RzIG5lc3RlZCByZW5kZXIgdHJlZSB1cGRh
dGUuIFRoZSB0ZXN0IHBhc3NlcyBpZiBXZWJLaXQgZG9lc24ndCBjcmFzaCBvciBoaXQgYW4gYXNz
ZXJ0aW9uLjwvc3Bhbj4NCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400112</attachid>
            <date>2020-05-23 00:25:31 -0700</date>
            <delta_ts>2020-05-23 11:13:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212163-20200523002530.patch</filename>
            <type>text/plain</type>
            <size>1253</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBmNmMyMTJiZDY4ZTc4
MTE0YWEyODE2NzAxMGE0NDQyNjAzYWYzOS4uYzNhMTBhOWVmNTIwNjZjNDg1Njg0MGFlYWNlNDJk
ZDYzODNkY2FmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA1LTIzICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgorCiAyMDIwLTA1LTE1ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBOdWxscHRyIGNyYXNoIGluIE1lZGlh
UXVlcnlNYXRjaGVyOjpldmFsdWF0ZUFsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYmVm
NDg2OTQwMzk3OTA4ODYxOTJlYjNmYWIwNzI4ZjI1NDQyYjczNS4uZmVhZjNjMzdlMjIzZjIyZjAz
ODJlN2ZjMzAyMjk4Zjg0YTM5MTFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xOTIx
LDYgKzE5MjEsNyBAQCBib29sIERvY3VtZW50OjpoYXNQZW5kaW5nRnVsbFN0eWxlUmVidWlsZCgp
IGNvbnN0CiAKIHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5
cGUpCiB7CisgICAgLy8gUnVuIHRlc3Qgb25seS4KICAgICBBU1NFUlQoIXZpZXcoKSB8fCAhdmll
dygpLT5pc1BhaW50aW5nKCkpOwogCiAgICAgLy8gTk9URTogWFNMIGNvZGUgc2VlbXMgdG8gYmUg
dGhlIG9ubHkgY2xpZW50IHN0dW1ibGluZyBpbiBoZXJlIHdpdGhvdXQgYSBSZW5kZXJWaWV3Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400128</attachid>
            <date>2020-05-23 11:10:32 -0700</date>
            <delta_ts>2020-05-23 13:14:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212163-20200523111031.patch</filename>
            <type>text/plain</type>
            <size>1868</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODk4Njg1ZjczMDM5NzBj
YzllOWFkMDdiMDUwZjYzOTJiYTFjOTc4OC4uN2FjZDgyMmYwNGRlMWRkOWIzMDgwMzUxNzAyMWNh
MTU4MTFiNjI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA1LTIzICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6ICghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3KSBpbiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2MworCisgICAgICAgIFVucmV2aWV3ZWQuIElt
cHJvdmUgcmVhZGFiaWxpdHkuIFJlcGxhY2UgY29tbWVudHMgd2l0aCBjdXJseSBicmFja2V0cyBm
b3Igc2NvcGluZy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6dXBkYXRlUmVuZGVyVHJlZSk6CisKIDIwMjAtMDUtMjMgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtURkNdIFVzZWQgaGVpZ2h0
IG9mIGEgY2VsbCBpcyB0aGUgbWF4aW11bSBvZiB0aGUgY29tcHV0ZWQgYW5kIHRoZSBjb250ZW50
IGhlaWdodC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGVkOThiYTk1MDFmOTMxOTI0NDc0
ZWRkNTVmZGQ5YjZjYTU2NTljNzAuLmNmNmNhZTRjY2UwY2M0ZGQxNDkzOTQ1ODlhNTU5OTdkOWM5
ZTQyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTkyNCwxMyArMTkyNCwxNCBAQCB2
b2lkIERvY3VtZW50Ojp1cGRhdGVSZW5kZXJUcmVlKHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBTdHls
ZTo6VXBkYXRlPiBzdHlsZVVwZGF0ZQogewogICAgIEFTU0VSVCghaW5SZW5kZXJUcmVlVXBkYXRl
KCkpOwogCi0gICAgLy8gTk9URTogUHJlc2VydmUgdGhlIG9yZGVyIG9mIGRlZmluaXRpb25zIGJl
bG93IHNvIHRoZSBkZXN0cnVjdG9ycyBhcmUgY2FsbGVkIGluIHByb3BlciBzZXF1ZW5jZS4KICAg
ICBTdHlsZTo6UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyIGNhbGxiYWNrRGlzYWJsZXIo
KnRoaXMpOwotICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVuZGVyVHJlZVVwZGF0ZShtX2luUmVu
ZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7Ci0gICAgUmVuZGVyVHJlZVVwZGF0ZXIgdXBkYXRlcigqdGhp
cywgY2FsbGJhY2tEaXNhYmxlcik7Ci0gICAgLy8gRW5kIG9mIG9yZGVyZWQgZGVmaW5pdGlvbnMK
LQotICAgIHVwZGF0ZXIuY29tbWl0KFdURk1vdmUoc3R5bGVVcGRhdGUpKTsKKyAgICB7CisgICAg
ICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVuZGVyVHJlZVVwZGF0ZShtX2luUmVuZGVyVHJlZVVw
ZGF0ZSwgdHJ1ZSk7CisgICAgICAgIHsKKyAgICAgICAgICAgIFJlbmRlclRyZWVVcGRhdGVyIHVw
ZGF0ZXIoKnRoaXMsIGNhbGxiYWNrRGlzYWJsZXIpOworICAgICAgICAgICAgdXBkYXRlci5jb21t
aXQoV1RGTW92ZShzdHlsZVVwZGF0ZSkpOworICAgICAgICB9CisgICAgfQogfQogCiB2b2lkIERv
Y3VtZW50OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>