<?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>210016</bug_id>
          
          <creation_ts>2020-04-04 21:52:27 -0700</creation_ts>
          <short_desc>Nullptr crash in WebCore::lastPositionInNode when indenting text node that has user-select:all parent.</short_desc>
          <delta_ts>2020-04-06 18:46:01 -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>HTML Editing</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>bfulgham</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>product-security</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1637807</commentid>
    <comment_count>0</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-04 21:52:27 -0700</bug_when>
    <thetext>&lt;rdar://61014577&gt;

    #0 0x3b81dea51 in WebCore::Node::getFlag(WebCore::Node::NodeFlags) const (Safari_ASAN_259163_6d5fb2d39898a6352d12792f8e6477a2373020ec.app/Contents/Frameworks/WebCore.framework/Versions/A/WebCore:x86_64+0x1dca51)
    #1 0x3ba9fa7f4 in WebCore::lastPositionInNode(WebCore::Node*) (Safari_ASAN_259163_6d5fb2d39898a6352d12792f8e6477a2373020ec.app/Contents/Frameworks/WebCore.framework/Versions/A/WebCore:x86_64+0x29f87f4)
    #2 0x3bb4f1edb in WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded(WebCore::VisiblePosition const&amp;, WebCore::Position&amp;, WebCore::Position&amp;) (Safari_ASAN_259163_6d5fb2d39898a6352d12792f8e6477a2373020ec.app/Contents/Frameworks/WebCore.framework/Versions/A/WebCore:x86_64+0x34efedb)
    #3 0x3bb4f0a3e in WebCore::ApplyBlockElementCommand::formatSelection(WebCore::VisiblePosition const&amp;, WebCore::VisiblePosition const&amp;) (Safari_ASAN_259163_6d5fb2d39898a6352d12792f8e6477a2373020ec.app/Contents/Frameworks/WebCore.framework/Versions/A/WebCore:x86_64+0x34eea3e)
    #4 0x3bb4efe83 in WebCore::ApplyBlockElementCommand::doApply() (Safari_ASAN_259163_6d5fb2d39898a6352d12792f8e6477a2373020ec.app/Contents/Frameworks/WebCore.framework/Versions/A/WebCore:x86_64+0x34ede83)
    #5 0x3bb4eeba6 in WebCore::CompositeEditCommand::apply() (Safari_ASAN_259163_6d5fb2d39898a6352d12792f8e6477a2373020ec.app/Contents/Frameworks/WebCore.framework/Versions/A/WebCore:x86_64+0x34ecba6)
    #6 0x3bb5a4278 in WebCore::executeIndent(WebCore::Frame&amp;, WebCore::Event*, WebCore::EditorCommandSource, WTF::String const&amp;) (Safari_ASAN_259163_6d5fb2d39898a6352d12792f8e6477a2373020ec.app/Contents/Frameworks/WebCore.framework/Versions/A/WebCore:x86_64+0x35a2278)
    #7 0x3bb21f127 in WebCore::Document::execCommand(WTF::String const&amp;, bool, WTF::String const&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637808</commentid>
    <comment_count>1</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-04 21:52:55 -0700</bug_when>
    <thetext>Root cause: In function rangeForParagraphSplittingTextNodesIfNeeded, the attemt to split text node fails, so there is no sibling node being created. However, the code assumes sibling exists and deref it in lastPositionInNode().

1. In this test, formatSelection is called to indent all the elements and nodes in &lt;body&gt;.
2. To determine which paragraph to indent, fuction RangeForParagraphSplittingTextNodesIfNeeded is called.
3. For text node in pre element, because there is newline in it, fucntion splitTextNode is called to create a new text node for “\n”.
4. However, since &lt;details&gt; and &lt;pre&gt; has use-select set to all, which is considered uneditable, splitTextNode returns without creating a sibling text node.
5. Next we call functions firstPositionInOrBeforeNode and lastPositionInNode with the null sibling node and crashes.

&lt;style&gt;
    #DETAILS { -webkit-user-select: all; }
&lt;/style&gt;
&lt;script&gt;
    window.onload = () =&gt; {
        document.execCommand(&quot;selectAll&quot;, false);
        document.execCommand(&quot;indent&quot;, false);
    }
&lt;/script&gt;
&lt;body contentEditable=&quot;true&quot;&gt;&lt;br&gt;&lt;/br&gt;&lt;details id=DETAILS open=&quot;true&quot;&gt;&lt;pre&gt;a
&lt;/pre&gt;&lt;/details&gt;&lt;span&gt;a&lt;/span&gt;

Node tree before  indentation:
BODY	0x60c0000814c0 (renderer 0x612000061cc0) 
	BR	0x60c000081580 (renderer 0x6110000c2f00) 
	BR	0x60c000081640 (renderer 0x6110000c3040) 
	DETAILS	0x60e00005ce00 (renderer 0x612000061e40) 
		#document-fragment	0x61200005a7c0 (renderer 0x0)  (needs style recalc) (child needs style recalc)
			SLOT	0x60d000063e70 (renderer 0x0) 
				SUMMARY	0x60c0000817c0 (renderer 0x612000062140) 
					#document-fragment	0x61200005a940 (renderer 0x0)  (needs style recalc) (child needs style recalc)
						DIV	0x60c000081880 (renderer 0x6120000622c0) 
						SLOT	0x60d000063f40 (renderer 0x0) 
					#text	0x60800004d220 &quot;Details&quot;
			SLOT	0x60d000064280 (renderer 0x0) 
		PRE	0x60c000081b80 (renderer 0x612000062440) 
			#text	0x60800004d2a0 &quot;a\n&quot;
	SPAN	0x60c000081c40 (renderer 0x6110000c3180) 
*		#text	0x60800004d320 &quot;a&quot;
	#text	0x60800004d3a0 &quot;\n&quot;
legacy, offset, offset:1
￼</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637809</commentid>
    <comment_count>2</comment_count>
      <attachid>395480</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-04 22:06:21 -0700</bug_when>
    <thetext>Created attachment 395480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637810</commentid>
    <comment_count>3</comment_count>
      <attachid>395481</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-04 22:08:04 -0700</bug_when>
    <thetext>Created attachment 395481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638240</commentid>
    <comment_count>4</comment_count>
      <attachid>395481</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-04-06 12:31:17 -0700</bug_when>
    <thetext>Comment on attachment 395481
Patch

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

&gt; Source/WebCore/editing/ApplyBlockElementCommand.cpp:247
&gt; +            if (endContainer-&gt;previousSibling()) {

We prefer early exit over nested if&apos;s so this should check for endContainer not having the previous sibling.
Also, we should probably check that the previous sibling is a text node.

&gt; Source/WebCore/editing/ApplyBlockElementCommand.cpp:258
&gt; +                start = end = { };

Nit: Each statement should have its own line so should be:
start = { };
end = { };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638241</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-04-06 12:31:33 -0700</bug_when>
    <thetext>There is no security implication here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638259</commentid>
    <comment_count>6</comment_count>
      <attachid>395604</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-06 13:03:21 -0700</bug_when>
    <thetext>Created attachment 395604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638412</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-06 18:46:01 -0700</bug_when>
    <thetext>Committed r259619: &lt;https://trac.webkit.org/changeset/259619&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395604.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395480</attachid>
            <date>2020-04-04 22:06:21 -0700</date>
            <delta_ts>2020-04-04 22:08:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210016-20200404220620.patch</filename>
            <type>text/plain</type>
            <size>6423</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE1YTUzZTUzYjFjMzE1
Y2FhNjc2Y2M3ZTA3YmIxZDA5MGNkYWM4OC4uM2NhYzY1YTI1ZjFiN2I5Mjc0YWIxYjM1OTUyYmIy
MWE2M2ZlZTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA0LTA0ICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIE51bGxwdHIgY3Jhc2gg
aW4gV2ViQ29yZTo6bGFzdFBvc2l0aW9uSW5Ob2RlIHdoZW4gaW5kZW50aW5nIHRleHQgbm9kZSB0
aGF0IGhhcyB1c2VyLXNlbGVjdDphbGwgcGFyZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMDE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MTAxNDU3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbiByYW5nZUZvclBhcmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkLCBhZGRlZCBu
dWxsIGNoZWNrIGZvciBwcmV2aW91c1NpYmxpbmcoKQorICAgICAgICBhZnRlciBzcGxpdFRleHRO
b2RlIGlzIGNhbGxlZCwgYW5kIHJldHVybnMgZW1wdHkgcG9zaXRpb25zIHRvIGNhbGxlci4KKwor
ICAgICAgICBJbiBmb3JtYXRTZWxlY3Rpb24sIGNoZWNrIHRoZSByZXR1cm5lZCBwb3NpdGlvbnMg
ZnJvbSByYW5nZUZvclBhcmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkCisgICAgICAg
IGFuZCBzdG9wIGluZGVudGluZyB0aGUgcmVzdCBvZiB0aGUgcGFyYWdyYXBocy4KKworICAgICAg
ICBUZXN0OiBmYXN0L2VkaXRpbmcvaW5kZW50LXByZS11c2VyLXNlbGVjdC1hbGwtY3Jhc2guaHRt
bAorCisgICAgICAgICogZWRpdGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpyYW5nZUZvclBh
cmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkKToKKwogMjAyMC0wNC0wMiAgQW5kcmVz
IEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gUmVu
ZGVyTWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2ZU9wdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcAppbmRleCBkYmI1YTJhMWEx
YmExZTBlMDdlZDAyZmU2YTIzZWU3OTBiYWI2ODIyLi5mZTVjZTI1ODIzNzk0YzM0ZTA3ZGRmOTBk
NDVjNDlmZDcyNWUxMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCkBAIC0xMzMsNiArMTMzLDkgQEAgdm9pZCBBcHBseUJs
b2NrRWxlbWVudENvbW1hbmQ6OmZvcm1hdFNlbGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHN0YXJ0T2ZTZWwKICAgICAgICAgICAgIGF0RW5kID0gdHJ1ZTsKIAogICAgICAgICByYW5nZUZv
clBhcmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkKGVuZE9mQ3VycmVudFBhcmFncmFw
aCwgc3RhcnQsIGVuZCk7CisgICAgICAgIGlmIChzdGFydC5pc051bGwoKSB8fCBlbmQuaXNOdWxs
KCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgCiAgICAgICAgIGVuZE9mQ3VycmVudFBh
cmFncmFwaCA9IGVuZDsKIAogICAgICAgICAvLyBGSVhNRTogZW5kT2ZQYXJhZ3JhcGggY2FuIGVy
cm9ybm91c2x5IHJldHVybiBhIHBvc2l0aW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBibG9jayBl
bGVtZW50CkBAIC0yNDEsMTUgKzI0NCwxOCBAQCB2b2lkIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFu
ZDo6cmFuZ2VGb3JQYXJhZ3JhcGhTcGxpdHRpbmdUZXh0Tm9kZXNJZk5lZWRlZChjb25zdAogICAg
ICAgICBpZiAoZW5kU3R5bGUtPnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpSZWFkT25seSAm
JiAhZW5kU3R5bGUtPmNvbGxhcHNlV2hpdGVTcGFjZSgpICYmIGVuZC5vZmZzZXRJbkNvbnRhaW5l
ck5vZGUoKSAmJiBlbmQub2Zmc2V0SW5Db250YWluZXJOb2RlKCkgPCBlbmQuY29udGFpbmVyTm9k
ZSgpLT5tYXhDaGFyYWN0ZXJPZmZzZXQoKSkgewogICAgICAgICAgICAgUmVmUHRyPFRleHQ+IGVu
ZENvbnRhaW5lciA9IGVuZC5jb250YWluZXJUZXh0KCk7CiAgICAgICAgICAgICBzcGxpdFRleHRO
b2RlKCplbmRDb250YWluZXIsIGVuZC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSk7Ci0gICAgICAg
ICAgICBpZiAoaXNTdGFydEFuZEVuZE9uU2FtZU5vZGUpCi0gICAgICAgICAgICAgICAgc3RhcnQg
PSBmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoZW5kQ29udGFpbmVyLT5wcmV2aW91c1NpYmxp
bmcoKSk7Ci0gICAgICAgICAgICBpZiAoaXNFbmRBbmRFbmRPZkxhc3RQYXJhZ3JhcGhPblNhbWVO
b2RlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fZW5kT2ZMYXN0UGFyYWdyYXBoLm9mZnNldElu
Q29udGFpbmVyTm9kZSgpID09IGVuZC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSkKLSAgICAgICAg
ICAgICAgICAgICAgbV9lbmRPZkxhc3RQYXJhZ3JhcGggPSBsYXN0UG9zaXRpb25Jbk9yQWZ0ZXJO
b2RlKGVuZENvbnRhaW5lci0+cHJldmlvdXNTaWJsaW5nKCkpOwotICAgICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgbV9lbmRPZkxhc3RQYXJhZ3JhcGggPSBQb3NpdGlvbihl
bmRDb250YWluZXIuZ2V0KCksIG1fZW5kT2ZMYXN0UGFyYWdyYXBoLm9mZnNldEluQ29udGFpbmVy
Tm9kZSgpIC0gZW5kLm9mZnNldEluQ29udGFpbmVyTm9kZSgpKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGVuZCA9IGxhc3RQb3NpdGlvbkluTm9kZShlbmRDb250YWluZXItPnByZXZpb3Vz
U2libGluZygpKTsKKyAgICAgICAgICAgIGlmIChlbmRDb250YWluZXItPnByZXZpb3VzU2libGlu
ZygpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzU3RhcnRBbmRFbmRPblNhbWVOb2RlKQorICAg
ICAgICAgICAgICAgICAgICBzdGFydCA9IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZShlbmRD
b250YWluZXItPnByZXZpb3VzU2libGluZygpKTsKKyAgICAgICAgICAgICAgICBpZiAoaXNFbmRB
bmRFbmRPZkxhc3RQYXJhZ3JhcGhPblNhbWVOb2RlKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChtX2VuZE9mTGFzdFBhcmFncmFwaC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSA9PSBlbmQub2Zm
c2V0SW5Db250YWluZXJOb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2VuZE9mTGFz
dFBhcmFncmFwaCA9IGxhc3RQb3NpdGlvbkluT3JBZnRlck5vZGUoZW5kQ29udGFpbmVyLT5wcmV2
aW91c1NpYmxpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZW5kT2ZMYXN0UGFyYWdyYXBoID0gUG9zaXRpb24oZW5kQ29udGFpbmVyLmdl
dCgpLCBtX2VuZE9mTGFzdFBhcmFncmFwaC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSAtIGVuZC5v
ZmZzZXRJbkNvbnRhaW5lck5vZGUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGVuZCA9IGxhc3RQb3NpdGlvbkluTm9kZShlbmRDb250YWluZXItPnByZXZpb3VzU2libGlu
ZygpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHN0YXJ0ID0gZW5kID0g
eyB9OwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYyMDA0ZTA4M2UxZmIyNzNjNTY2NGUy
OTE5YWI5MWUxNmVhNjBiODEuLjQxNTJiYzA1NmRlMWIxYmMzYmVmMGU5ZTMwMmZhNjc0MTIxMGIw
MDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNC0wNCAgSmFjayBMZWUgIDxzaGloY2hp
ZWhfbGVlQGFwcGxlLmNvbT4KKworICAgICAgICBOdWxscHRyIGNyYXNoIGluIFdlYkNvcmU6Omxh
c3RQb3NpdGlvbkluTm9kZSB3aGVuIGluZGVudGluZyB0ZXh0IG5vZGUgdGhhdCBoYXMgdXNlci1z
ZWxlY3Q6YWxsIHBhcmVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxMDAxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjEwMTQ1Nzc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSByZWdy
ZXNzaW9uIHRlc3QgZm9yIHRoZSBjcmFzaC4KKworICAgICAgICAqIGZhc3QvZWRpdGluZy9pbmRl
bnQtcHJlLXVzZXItc2VsZWN0LWFsbC1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZWRpdGluZy9pbmRlbnQtcHJlLXVzZXItc2VsZWN0LWFsbC1jcmFzaC5odG1sOiBB
ZGRlZC4KKwogMjAyMC0wNC0wMiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZWJhc2UgZXhwZWN0YXRpb24gZmlsZXMgZm9yIGFuY2hvciB0YWcgdGVzdHMg
d2l0aCBsaW5lIG51bWJlciBvdXRwdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZWRp
dGluZy9pbmRlbnQtcHJlLXVzZXItc2VsZWN0LWFsbC1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2VkaXRpbmcvaW5kZW50LXByZS11c2VyLXNlbGVjdC1hbGwtY3Jhc2gtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNTk3ZTlkYzlmZGFjZTcwYzYwMjcwZTRiMDYxMzg4ZmI4
MTQzMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VkaXRpbmcvaW5kZW50
LXByZS11c2VyLXNlbGVjdC1hbGwtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1Rl
c3RzIGluZGVudGluZyBwcmUgZWxlbWVudCB0aGF0IGhhcyB1c2VyLXNlbGVjdDphbGwgcGFyZW50
LiBUaGUgdGVzdCBwYXNzZXMgaWYgV2ViS2l0IGRvZXNuJ3QgY3Jhc2ggb3IgaGl0IGFuIGFzc2Vy
dGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZWRpdGluZy9pbmRlbnQtcHJlLXVz
ZXItc2VsZWN0LWFsbC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9lZGl0aW5nL2luZGVu
dC1wcmUtdXNlci1zZWxlY3QtYWxsLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNlOTQ1ODg2Mjg4
OWE4ZDdjMGM0MzViMzUzMjY3MzAwMzUzZjJkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZWRpdGluZy9pbmRlbnQtcHJlLXVzZXItc2VsZWN0LWFsbC1jcmFzaC5odG1sCkBA
IC0wLDAgKzEsMjMgQEAKKzxzdHlsZT4KKyAgICAjREVUQUlMUyB7IC13ZWJraXQtdXNlci1zZWxl
Y3Q6IGFsbDsgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gKCkgPT4gewor
ICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgic2VsZWN0QWxsIiwgZmFsc2UpOworICAgICAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgiaW5kZW50IiwgZmFsc2UpOworCisgICAgICAgIHJlcXVl
c3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LmlubmVySFRNTCA9ICI8cD5UZXN0cyBpbmRlbnRpbmcgcHJlIGVsZW1lbnQgdGhhdCBoYXMgdXNl
ci1zZWxlY3Q6YWxsIHBhcmVudC4gVGhlIHRlc3QgcGFzc2VzIGlmIFdlYktpdCBkb2Vzbid0IGNy
YXNoIG9yIGhpdCBhbiBhc3NlcnRpb24uPC9wPiI7CisgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8Ym9keSBjb250ZW50
RWRpdGFibGU9InRydWUiPjxicj48L2JyPjxkZXRhaWxzIGlkPURFVEFJTFMgb3Blbj0idHJ1ZSI+
PHByZT5hCis8L3ByZT48L2RldGFpbHM+PHNwYW4+YTwvc3Bhbj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395481</attachid>
            <date>2020-04-04 22:08:04 -0700</date>
            <delta_ts>2020-04-06 13:03:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210016-20200404220804.patch</filename>
            <type>text/plain</type>
            <size>6415</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE1YTUzZTUzYjFjMzE1
Y2FhNjc2Y2M3ZTA3YmIxZDA5MGNkYWM4OC4uM2NhYzY1YTI1ZjFiN2I5Mjc0YWIxYjM1OTUyYmIy
MWE2M2ZlZTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA0LTA0ICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIE51bGxwdHIgY3Jhc2gg
aW4gV2ViQ29yZTo6bGFzdFBvc2l0aW9uSW5Ob2RlIHdoZW4gaW5kZW50aW5nIHRleHQgbm9kZSB0
aGF0IGhhcyB1c2VyLXNlbGVjdDphbGwgcGFyZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMDE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MTAxNDU3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbiByYW5nZUZvclBhcmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkLCBhZGRlZCBu
dWxsIGNoZWNrIGZvciBwcmV2aW91c1NpYmxpbmcoKQorICAgICAgICBhZnRlciBzcGxpdFRleHRO
b2RlIGlzIGNhbGxlZCwgYW5kIHJldHVybnMgZW1wdHkgcG9zaXRpb25zIHRvIGNhbGxlci4KKwor
ICAgICAgICBJbiBmb3JtYXRTZWxlY3Rpb24sIGNoZWNrIHRoZSByZXR1cm5lZCBwb3NpdGlvbnMg
ZnJvbSByYW5nZUZvclBhcmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkCisgICAgICAg
IGFuZCBzdG9wIGluZGVudGluZyB0aGUgcmVzdCBvZiB0aGUgcGFyYWdyYXBocy4KKworICAgICAg
ICBUZXN0OiBmYXN0L2VkaXRpbmcvaW5kZW50LXByZS11c2VyLXNlbGVjdC1hbGwtY3Jhc2guaHRt
bAorCisgICAgICAgICogZWRpdGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpyYW5nZUZvclBh
cmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkKToKKwogMjAyMC0wNC0wMiAgQW5kcmVz
IEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gUmVu
ZGVyTWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2ZU9wdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcAppbmRleCBkYmI1YTJhMWEx
YmExZTBlMDdlZDAyZmU2YTIzZWU3OTBiYWI2ODIyLi5mNjI5OTZhYWMwZWQwM2FkMjI3NTY4YjM5
MTVkMmUwN2EyNmEzYTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCkBAIC0xMzMsNiArMTMzLDkgQEAgdm9pZCBBcHBseUJs
b2NrRWxlbWVudENvbW1hbmQ6OmZvcm1hdFNlbGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHN0YXJ0T2ZTZWwKICAgICAgICAgICAgIGF0RW5kID0gdHJ1ZTsKIAogICAgICAgICByYW5nZUZv
clBhcmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkKGVuZE9mQ3VycmVudFBhcmFncmFw
aCwgc3RhcnQsIGVuZCk7CisgICAgICAgIGlmIChzdGFydC5pc051bGwoKSB8fCBlbmQuaXNOdWxs
KCkpCisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBlbmRPZkN1cnJlbnRQYXJhZ3JhcGgg
PSBlbmQ7CiAKICAgICAgICAgLy8gRklYTUU6IGVuZE9mUGFyYWdyYXBoIGNhbiBlcnJvcm5vdXNs
eSByZXR1cm4gYSBwb3NpdGlvbiBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgYmxvY2sgZWxlbWVudApA
QCAtMjQxLDE1ICsyNDQsMTggQEAgdm9pZCBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQ6OnJhbmdl
Rm9yUGFyYWdyYXBoU3BsaXR0aW5nVGV4dE5vZGVzSWZOZWVkZWQoY29uc3QKICAgICAgICAgaWYg
KGVuZFN0eWxlLT51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHkgJiYgIWVuZFN0
eWxlLT5jb2xsYXBzZVdoaXRlU3BhY2UoKSAmJiBlbmQub2Zmc2V0SW5Db250YWluZXJOb2RlKCkg
JiYgZW5kLm9mZnNldEluQ29udGFpbmVyTm9kZSgpIDwgZW5kLmNvbnRhaW5lck5vZGUoKS0+bWF4
Q2hhcmFjdGVyT2Zmc2V0KCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxUZXh0PiBlbmRDb250YWlu
ZXIgPSBlbmQuY29udGFpbmVyVGV4dCgpOwogICAgICAgICAgICAgc3BsaXRUZXh0Tm9kZSgqZW5k
Q29udGFpbmVyLCBlbmQub2Zmc2V0SW5Db250YWluZXJOb2RlKCkpOwotICAgICAgICAgICAgaWYg
KGlzU3RhcnRBbmRFbmRPblNhbWVOb2RlKQotICAgICAgICAgICAgICAgIHN0YXJ0ID0gZmlyc3RQ
b3NpdGlvbkluT3JCZWZvcmVOb2RlKGVuZENvbnRhaW5lci0+cHJldmlvdXNTaWJsaW5nKCkpOwot
ICAgICAgICAgICAgaWYgKGlzRW5kQW5kRW5kT2ZMYXN0UGFyYWdyYXBoT25TYW1lTm9kZSkgewot
ICAgICAgICAgICAgICAgIGlmIChtX2VuZE9mTGFzdFBhcmFncmFwaC5vZmZzZXRJbkNvbnRhaW5l
ck5vZGUoKSA9PSBlbmQub2Zmc2V0SW5Db250YWluZXJOb2RlKCkpCi0gICAgICAgICAgICAgICAg
ICAgIG1fZW5kT2ZMYXN0UGFyYWdyYXBoID0gbGFzdFBvc2l0aW9uSW5PckFmdGVyTm9kZShlbmRD
b250YWluZXItPnByZXZpb3VzU2libGluZygpKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgICAgIG1fZW5kT2ZMYXN0UGFyYWdyYXBoID0gUG9zaXRpb24oZW5kQ29udGFp
bmVyLmdldCgpLCBtX2VuZE9mTGFzdFBhcmFncmFwaC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSAt
IGVuZC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBlbmQgPSBsYXN0UG9zaXRpb25Jbk5vZGUoZW5kQ29udGFpbmVyLT5wcmV2aW91c1NpYmxpbmco
KSk7CisgICAgICAgICAgICBpZiAoZW5kQ29udGFpbmVyLT5wcmV2aW91c1NpYmxpbmcoKSkgewor
ICAgICAgICAgICAgICAgIGlmIChpc1N0YXJ0QW5kRW5kT25TYW1lTm9kZSkKKyAgICAgICAgICAg
ICAgICAgICAgc3RhcnQgPSBmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoZW5kQ29udGFpbmVy
LT5wcmV2aW91c1NpYmxpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGlzRW5kQW5kRW5kT2ZM
YXN0UGFyYWdyYXBoT25TYW1lTm9kZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9lbmRP
Zkxhc3RQYXJhZ3JhcGgub2Zmc2V0SW5Db250YWluZXJOb2RlKCkgPT0gZW5kLm9mZnNldEluQ29u
dGFpbmVyTm9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9lbmRPZkxhc3RQYXJhZ3Jh
cGggPSBsYXN0UG9zaXRpb25Jbk9yQWZ0ZXJOb2RlKGVuZENvbnRhaW5lci0+cHJldmlvdXNTaWJs
aW5nKCkpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAg
ICBtX2VuZE9mTGFzdFBhcmFncmFwaCA9IFBvc2l0aW9uKGVuZENvbnRhaW5lci5nZXQoKSwgbV9l
bmRPZkxhc3RQYXJhZ3JhcGgub2Zmc2V0SW5Db250YWluZXJOb2RlKCkgLSBlbmQub2Zmc2V0SW5D
b250YWluZXJOb2RlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbmQg
PSBsYXN0UG9zaXRpb25Jbk5vZGUoZW5kQ29udGFpbmVyLT5wcmV2aW91c1NpYmxpbmcoKSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBzdGFydCA9IGVuZCA9IHsgfTsKICAg
ICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MjAwNGUwODNlMWZiMjczYzU2NjRlMjkxOWFiOTFl
MTZlYTYwYjgxLi40MTUyYmMwNTZkZTFiMWJjM2JlZjBlOWUzMDJmYTY3NDEyMTBiMDA1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDQtMDQgIEphY2sgTGVlICA8c2hpaGNoaWVoX2xlZUBh
cHBsZS5jb20+CisKKyAgICAgICAgTnVsbHB0ciBjcmFzaCBpbiBXZWJDb3JlOjpsYXN0UG9zaXRp
b25Jbk5vZGUgd2hlbiBpbmRlbnRpbmcgdGV4dCBub2RlIHRoYXQgaGFzIHVzZXItc2VsZWN0OmFs
bCBwYXJlbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTAwMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYxMDE0NTc3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgcmVncmVzc2lvbiB0
ZXN0IGZvciB0aGUgY3Jhc2guCisKKyAgICAgICAgKiBmYXN0L2VkaXRpbmcvaW5kZW50LXByZS11
c2VyLXNlbGVjdC1hbGwtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2VkaXRpbmcvaW5kZW50LXByZS11c2VyLXNlbGVjdC1hbGwtY3Jhc2guaHRtbDogQWRkZWQuCisK
IDIwMjAtMDQtMDIgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmViYXNlIGV4cGVjdGF0aW9uIGZpbGVzIGZvciBhbmNob3IgdGFnIHRlc3RzIHdpdGggbGlu
ZSBudW1iZXIgb3V0cHV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VkaXRpbmcvaW5k
ZW50LXByZS11c2VyLXNlbGVjdC1hbGwtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9lZGl0aW5nL2luZGVudC1wcmUtdXNlci1zZWxlY3QtYWxsLWNyYXNoLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42YjU5N2U5ZGM5ZmRhY2U3MGM2MDI3MGU0YjA2MTM4OGZiODE0MzM0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lZGl0aW5nL2luZGVudC1wcmUtdXNl
ci1zZWxlY3QtYWxsLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUZXN0cyBpbmRl
bnRpbmcgcHJlIGVsZW1lbnQgdGhhdCBoYXMgdXNlci1zZWxlY3Q6YWxsIHBhcmVudC4gVGhlIHRl
c3QgcGFzc2VzIGlmIFdlYktpdCBkb2Vzbid0IGNyYXNoIG9yIGhpdCBhbiBhc3NlcnRpb24uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VkaXRpbmcvaW5kZW50LXByZS11c2VyLXNlbGVj
dC1hbGwtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZWRpdGluZy9pbmRlbnQtcHJlLXVz
ZXItc2VsZWN0LWFsbC1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZTk0NTg4NjI4ODlhOGQ3YzBj
NDM1YjM1MzI2NzMwMDM1M2YyZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2VkaXRpbmcvaW5kZW50LXByZS11c2VyLXNlbGVjdC1hbGwtY3Jhc2guaHRtbApAQCAtMCwwICsx
LDIzIEBACis8c3R5bGU+CisgICAgI0RFVEFJTFMgeyAtd2Via2l0LXVzZXItc2VsZWN0OiBhbGw7
IH0KKzwvc3R5bGU+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9ICgpID0+IHsKKyAgICAgICAg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoInNlbGVjdEFsbCIsIGZhbHNlKTsKKyAgICAgICAgZG9jdW1l
bnQuZXhlY0NvbW1hbmQoImluZGVudCIsIGZhbHNlKTsKKworICAgICAgICByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhU
TUwgPSAiPHA+VGVzdHMgaW5kZW50aW5nIHByZSBlbGVtZW50IHRoYXQgaGFzIHVzZXItc2VsZWN0
OmFsbCBwYXJlbnQuIFRoZSB0ZXN0IHBhc3NlcyBpZiBXZWJLaXQgZG9lc24ndCBjcmFzaCBvciBo
aXQgYW4gYXNzZXJ0aW9uLjwvcD4iOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPGJvZHkgY29udGVudEVkaXRhYmxl
PSJ0cnVlIj48YnI+PC9icj48ZGV0YWlscyBpZD1ERVRBSUxTIG9wZW49InRydWUiPjxwcmU+YQor
PC9wcmU+PC9kZXRhaWxzPjxzcGFuPmE8L3NwYW4+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395604</attachid>
            <date>2020-04-06 13:03:21 -0700</date>
            <delta_ts>2020-04-06 18:46:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210016-20200406130321.patch</filename>
            <type>text/plain</type>
            <size>5318</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE1YTUzZTUzYjFjMzE1
Y2FhNjc2Y2M3ZTA3YmIxZDA5MGNkYWM4OC4uM2NhYzY1YTI1ZjFiN2I5Mjc0YWIxYjM1OTUyYmIy
MWE2M2ZlZTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA0LTA0ICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIE51bGxwdHIgY3Jhc2gg
aW4gV2ViQ29yZTo6bGFzdFBvc2l0aW9uSW5Ob2RlIHdoZW4gaW5kZW50aW5nIHRleHQgbm9kZSB0
aGF0IGhhcyB1c2VyLXNlbGVjdDphbGwgcGFyZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMDE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MTAxNDU3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbiByYW5nZUZvclBhcmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkLCBhZGRlZCBu
dWxsIGNoZWNrIGZvciBwcmV2aW91c1NpYmxpbmcoKQorICAgICAgICBhZnRlciBzcGxpdFRleHRO
b2RlIGlzIGNhbGxlZCwgYW5kIHJldHVybnMgZW1wdHkgcG9zaXRpb25zIHRvIGNhbGxlci4KKwor
ICAgICAgICBJbiBmb3JtYXRTZWxlY3Rpb24sIGNoZWNrIHRoZSByZXR1cm5lZCBwb3NpdGlvbnMg
ZnJvbSByYW5nZUZvclBhcmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkCisgICAgICAg
IGFuZCBzdG9wIGluZGVudGluZyB0aGUgcmVzdCBvZiB0aGUgcGFyYWdyYXBocy4KKworICAgICAg
ICBUZXN0OiBmYXN0L2VkaXRpbmcvaW5kZW50LXByZS11c2VyLXNlbGVjdC1hbGwtY3Jhc2guaHRt
bAorCisgICAgICAgICogZWRpdGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpyYW5nZUZvclBh
cmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkKToKKwogMjAyMC0wNC0wMiAgQW5kcmVz
IEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gUmVu
ZGVyTWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2ZU9wdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcAppbmRleCBkYmI1YTJhMWEx
YmExZTBlMDdlZDAyZmU2YTIzZWU3OTBiYWI2ODIyLi42ZDVjZWM1NTIxMjAxNzE4ZjQ4YmJmMDIy
OGYzODMzZjE2NDZhYjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCkBAIC0xMzMsNiArMTMzLDkgQEAgdm9pZCBBcHBseUJs
b2NrRWxlbWVudENvbW1hbmQ6OmZvcm1hdFNlbGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHN0YXJ0T2ZTZWwKICAgICAgICAgICAgIGF0RW5kID0gdHJ1ZTsKIAogICAgICAgICByYW5nZUZv
clBhcmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkKGVuZE9mQ3VycmVudFBhcmFncmFw
aCwgc3RhcnQsIGVuZCk7CisgICAgICAgIGlmIChzdGFydC5pc051bGwoKSB8fCBlbmQuaXNOdWxs
KCkpCisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBlbmRPZkN1cnJlbnRQYXJhZ3JhcGgg
PSBlbmQ7CiAKICAgICAgICAgLy8gRklYTUU6IGVuZE9mUGFyYWdyYXBoIGNhbiBlcnJvcm5vdXNs
eSByZXR1cm4gYSBwb3NpdGlvbiBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgYmxvY2sgZWxlbWVudApA
QCAtMjQxLDYgKzI0NCwxMSBAQCB2b2lkIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZDo6cmFuZ2VG
b3JQYXJhZ3JhcGhTcGxpdHRpbmdUZXh0Tm9kZXNJZk5lZWRlZChjb25zdAogICAgICAgICBpZiAo
ZW5kU3R5bGUtPnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpSZWFkT25seSAmJiAhZW5kU3R5
bGUtPmNvbGxhcHNlV2hpdGVTcGFjZSgpICYmIGVuZC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSAm
JiBlbmQub2Zmc2V0SW5Db250YWluZXJOb2RlKCkgPCBlbmQuY29udGFpbmVyTm9kZSgpLT5tYXhD
aGFyYWN0ZXJPZmZzZXQoKSkgewogICAgICAgICAgICAgUmVmUHRyPFRleHQ+IGVuZENvbnRhaW5l
ciA9IGVuZC5jb250YWluZXJUZXh0KCk7CiAgICAgICAgICAgICBzcGxpdFRleHROb2RlKCplbmRD
b250YWluZXIsIGVuZC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSk7CisgICAgICAgICAgICBpZiAo
aXM8VGV4dD4oZW5kQ29udGFpbmVyKSAmJiAhZW5kQ29udGFpbmVyLT5wcmV2aW91c1NpYmxpbmco
KSkgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0geyB9OworICAgICAgICAgICAgICAgIGVuZCA9
IHsgfTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBpZiAoaXNTdGFydEFuZEVuZE9uU2FtZU5vZGUpCiAgICAgICAgICAgICAgICAgc3RhcnQgPSBm
aXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoZW5kQ29udGFpbmVyLT5wcmV2aW91c1NpYmxpbmco
KSk7CiAgICAgICAgICAgICBpZiAoaXNFbmRBbmRFbmRPZkxhc3RQYXJhZ3JhcGhPblNhbWVOb2Rl
KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNjIwMDRlMDgzZTFmYjI3M2M1NjY0ZTI5MTlhYjkxZTE2ZWE2MGI4MS4uNDE1
MmJjMDU2ZGUxYjFiYzNiZWYwZTllMzAyZmE2NzQxMjEwYjAwNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIwLTA0LTA0ICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisg
ICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gV2ViQ29yZTo6bGFzdFBvc2l0aW9uSW5Ob2RlIHdoZW4g
aW5kZW50aW5nIHRleHQgbm9kZSB0aGF0IGhhcyB1c2VyLXNlbGVjdDphbGwgcGFyZW50LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMDE2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS82MTAxNDU3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHJlZ3Jlc3Npb24gdGVzdCBmb3IgdGhlIGNy
YXNoLgorCisgICAgICAgICogZmFzdC9lZGl0aW5nL2luZGVudC1wcmUtdXNlci1zZWxlY3QtYWxs
LWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lZGl0aW5nL2luZGVu
dC1wcmUtdXNlci1zZWxlY3QtYWxsLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA0LTAyICBK
b2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFzZSBleHBl
Y3RhdGlvbiBmaWxlcyBmb3IgYW5jaG9yIHRhZyB0ZXN0cyB3aXRoIGxpbmUgbnVtYmVyIG91dHB1
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lZGl0aW5nL2luZGVudC1wcmUtdXNlci1z
ZWxlY3QtYWxsLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZWRpdGluZy9p
bmRlbnQtcHJlLXVzZXItc2VsZWN0LWFsbC1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmI1OTdlOWRjOWZkYWNlNzBjNjAyNzBlNGIwNjEzODhmYjgxNDMzNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZWRpdGluZy9pbmRlbnQtcHJlLXVzZXItc2VsZWN0LWFsbC1j
cmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorVGVzdHMgaW5kZW50aW5nIHByZSBlbGVt
ZW50IHRoYXQgaGFzIHVzZXItc2VsZWN0OmFsbCBwYXJlbnQuIFRoZSB0ZXN0IHBhc3NlcyBpZiBX
ZWJLaXQgZG9lc24ndCBjcmFzaCBvciBoaXQgYW4gYXNzZXJ0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9lZGl0aW5nL2luZGVudC1wcmUtdXNlci1zZWxlY3QtYWxsLWNyYXNoLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2VkaXRpbmcvaW5kZW50LXByZS11c2VyLXNlbGVjdC1hbGwt
Y3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2U5NDU4ODYyODg5YThkN2MwYzQzNWIzNTMyNjczMDAz
NTNmMmQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lZGl0aW5nL2luZGVu
dC1wcmUtdXNlci1zZWxlY3QtYWxsLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPHN0eWxl
PgorICAgICNERVRBSUxTIHsgLXdlYmtpdC11c2VyLXNlbGVjdDogYWxsOyB9Cis8L3N0eWxlPgor
PHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSAoKSA9PiB7CisgICAgICAgIGRvY3VtZW50LmV4ZWND
b21tYW5kKCJzZWxlY3RBbGwiLCBmYWxzZSk7CisgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCJpbmRlbnQiLCBmYWxzZSk7CisKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIjxwPlRlc3Rz
IGluZGVudGluZyBwcmUgZWxlbWVudCB0aGF0IGhhcyB1c2VyLXNlbGVjdDphbGwgcGFyZW50LiBU
aGUgdGVzdCBwYXNzZXMgaWYgV2ViS2l0IGRvZXNuJ3QgY3Jhc2ggb3IgaGl0IGFuIGFzc2VydGlv
bi48L3A+IjsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzxib2R5IGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI+PGJyPjwv
YnI+PGRldGFpbHMgaWQ9REVUQUlMUyBvcGVuPSJ0cnVlIj48cHJlPmEKKzwvcHJlPjwvZGV0YWls
cz48c3Bhbj5hPC9zcGFuPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>