<?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>223563</bug_id>
          
          <creation_ts>2021-03-21 10:23:29 -0700</creation_ts>
          <short_desc>[iOS] Composition text is not initially highlighted when typing in text fields using Pinyin keyboard</short_desc>
          <delta_ts>2021-03-22 14:00:49 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>koivisto</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1742076</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-21 10:23:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/75564516&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742086</commentid>
    <comment_count>1</comment_count>
      <attachid>423832</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-21 11:00:46 -0700</bug_when>
    <thetext>Created attachment 423832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742146</commentid>
    <comment_count>2</comment_count>
      <attachid>423857</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-21 23:49:17 -0700</bug_when>
    <thetext>Created attachment 423857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742147</commentid>
    <comment_count>3</comment_count>
      <attachid>423858</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-21 23:58:26 -0700</bug_when>
    <thetext>Created attachment 423858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742235</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-03-22 08:24:22 -0700</bug_when>
    <thetext>The line layout integration part is r+ (don&apos;t know enough about editing to give educated review on the other part)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742254</commentid>
    <comment_count>5</comment_count>
      <attachid>423893</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-22 09:04:07 -0700</bug_when>
    <thetext>Created attachment 423893
Alternate approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742258</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-22 09:12:18 -0700</bug_when>
    <thetext>(In reply to zalan from comment #4)
&gt; The line layout integration part is r+ (don&apos;t know enough about editing to
&gt; give educated review on the other part)

The editing part of that patch is the part I&apos;m iffy about too; the problem is that layout code would need to somehow know what text node the typing command is going to create or modify before the first layout pass after inserting that node, which would either intricate plumbing through edit commands, or something like this where we try and figure out where we&apos;re inserting the text ahead of time.

I uploaded an alternative approach to fixing this that&apos;s more similar to how macOS works (i.e. calling into ensureLineBoxes() instead of adding layout integration avoidance). Let&apos;s see what people think!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742264</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-03-22 09:34:54 -0700</bug_when>
    <thetext>I think both approaches are fine. The ensureLineBoxes one is the minimal fix and might be appropriate for the branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742426</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-22 13:26:18 -0700</bug_when>
    <thetext>commit-queue failed to commit attachment 423893 to WebKit repository. To retry, please set cq+ flag again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742457</commentid>
    <comment_count>9</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-22 14:00:49 -0700</bug_when>
    <thetext>Committed: &lt;https://commits.webkit.org/235598@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423832</attachid>
            <date>2021-03-21 11:00:46 -0700</date>
            <delta_ts>2021-03-21 23:49:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223563-20210321110046.patch</filename>
            <type>text/plain</type>
            <size>13910</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFmZWE4ZmMwZmFiNGMz
ODZiNDhhZjA1ODNmMDVjZWFmMzA1M2YxOS4uN2FkMjk3ODY4MGIyYTI0YjM0ZTk4YjA1YmQxYjdm
ZGY1N2I2NjJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTAzLTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENvbXBv
c2l0aW9uIHRleHQgaXMgbm90IGluaXRpYWxseSBoaWdobGlnaHRlZCB3aGVuIHR5cGluZyBpbiB0
ZXh0IGZpZWxkcyB1c2luZyBQaW55aW4ga2V5Ym9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzU2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzU1NjQ1MTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2hlbiBlbmFibGluZyBsaW5lIGxheW91dCBpbnRlZ3JhdGlvbiwgY29tcG9zaXRpb24gaGln
aGxpZ2h0cyBvbiBpT1MgZG9uJ3QgYXBwZWFyIHdoZW4gdHlwaW5nIGFuIGlucHV0IHN0cmluZwor
ICAgICAgICB1c2luZyB0aGUgUGlueWluIGtleWJvYXJkIGZvciB0aGUgZmlyc3QgdGltZS4gVGhp
cyBpcyBiZWNhdXNlIHRoZSB0ZXh0IHJlbmRlcmVyIGZvciB0aGUgaW5zZXJ0ZWQgY29tcG9zaXRp
b24KKyAgICAgICAgdGV4dCBkb2VzIG5vdCBjb250YWluIGlubGluZSB0ZXh0IGJveGVzIHdoZW4g
cGFpbnRpbmcgdGhlIGNvbXBvc2l0aW9uIHRleHQgb24gaU9TLCBzbyB0aGUgbWFya2VkIHRleHQg
cGFpbnRpbmcKKyAgICAgICAgY29kZXBhdGggaXMgbmV2ZXIgdHJpZ2dlcmVkLgorCisgICAgICAg
IE9uIG1hY09TLCB0aGlzIGlzbid0IGFuIGlzc3VlIGJlY2F1c2UgdGhlIHByb2Nlc3Mgb2Ygc2V0
dGluZyB0aGUgY29tcG9zaXRpb24gY2hhbmdlcyB0aGUgc2VsZWN0aW9uLCB3aGljaCB0aGVuCisg
ICAgICAgIGNoYW5nZXMgdGhlIGhpZ2hsaWdodCBzdGF0ZSBvZiB0aGUgYFJlbmRlclRleHRgLCB3
aGljaCBzdWJzZXF1ZW50bHkgY2FsbHMgaW50byBgZW5zdXJlTGluZUJveGVzKClgLiBIb3dldmVy
LAorICAgICAgICBzaW5jZSBzZWxlY3Rpb25zIGFyZSBkcmF3biB1c2luZyBVSUtpdCBpbiB0aGUg
VUkgcHJvY2VzcyBvbiBpT1MsIHdlIGRvbid0IGVuZCB1cCBlbnN1cmluZyB0aGF0IGlubGluZSB0
ZXh0IGJveGVzCisgICAgICAgIGFyZSBjb25zdHJ1Y3RlZCBmb3IgdGhlIGluc2VydGVkIHRleHQu
CisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGlzLCB3ZSBhZGQgYSBsaW5lIGxheW91dCBpbnRlZ3Jh
dGlvbiBleGNlcHRpb24gaW4gdGhlIGNhc2Ugd2hlcmUgcmVuZGVyZWQgdGV4dCBpcyBpbnNpZGUg
YSBET00gbm9kZQorICAgICAgICB0aGF0IGlzIGVpdGhlciB0aGUgY29tcG9zaXRpb24gdGV4dCBu
b2RlLCBvciBhZGphY2VudCB0byB0aGUgY29tcG9zaXRpb24gdGV4dCBub2RlLiBTZWUgYmVsb3cg
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL2lucHV0L2NvbXBvc2l0
aW9uLXVuZGVybGluZS1pbi1zZWFyY2gtZmllbGQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnNldENvbXBvc2l0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5oOgorCisgICAgICAgIEFkZCBgbV9jb21wb3NpdGlvbkNvbnRhaW5lcmAsIHdoaWNoIHJlcHJl
c2VudHMgdGhlIGNvbnRhaW5lciBvZiB0aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIGNvbXBvc2l0
aW9uIHJhbmdlLgorICAgICAgICBUaGlzIGhhcyB0aGUgc2FtZSBsaWZldGltZSBhcyB0aGUgZXhp
c3RpbmcgYG1fY29tcG9zaXRpb25Ob2RlYCwgZXhjZXB0IHRoYXQgaXQgaXMgc2V0IHRvIHRoZSBp
bnNlcnRpb24gcG9zaXRpb24KKyAgICAgICAganVzdCBwcmlvciB0byBpbnNlcnRpbmcgdGhlIGNv
bXBvc2l0aW9uIHRleHQuIFRoaXMgZW5zdXJlcyB0aGF0IGxpbmUgbGF5b3V0IGF2b2lkYW5jZSBs
b2dpYyBiZWxvdyBhcHBsaWVzIGR1cmluZworICAgICAgICBpbnRlcm1lZGlhdGUgbGF5b3V0IHBh
c3NlcyB0aGF0IGFyZSB0cmlnZ2VyZWQgZHVyaW5nIHRleHQgaW5zZXJ0aW9uLgorCisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OmNvbXBvc2l0aW9uQ29udGFpbmVyIGNvbnN0KToKKyAgICAgICAg
KiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6cHJpbnRSZWFzb24pOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmNhblVzZUZvckNoaWxkKToKKworICAgICAgICBB
ZGQgdGhlIGV4Y2VwdGlvbiBoZXJlLCBieSBjaGVja2luZyBpZiB0aGUgcmVuZGVyZWQgbm9kZSBp
cyBpbiB0aGUgbm9kZSBjb250YWluaW5nIHRoZSBjb21wb3NpdGlvbiB0ZXh0LgorCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Y2FuVXNlRm9yTGluZUxheW91dFdpdGhSZWFz
b24pOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVy
YWdlLmg6CisKKyAgICAgICAgUmVuYW1lIGBGbG93SW5jbHVkZXNIaWdobGlnaHRzYCB0byBgRmxv
d0luY2x1ZGVzSGlnaGxpZ2h0c09yTWFya2VkVGV4dGAsIGFuZCBhZGp1c3QgdGhlIHByaW50IHJl
YXNvbgorICAgICAgICBhY2NvcmRpbmdseS4gVGhpcyBlbnVtIHdpbGwgZW5jb21wYXNzIGJvdGgg
Q1NTIGhpZ2hsaWdodHMgYW5kIG1hcmtlZCAoY29tcG9zaXRpb24pIHRleHQgKHVuZm9ydHVuYXRl
bHksIHdlIGNhbid0CisgICAgICAgIGludHJvZHVjZSBhIG5ldyB0eXBlIHNvbGVseSBmb3IgY29t
cG9zaXRpb24gdGV4dCBoZXJlLCBzaW5jZSB3ZSBhbHJlYWR5IHVzZSBhbGwgNjQgYml0cyBvZiB0
aGUgZW51bSkuCisKIDIwMjEtMDMtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW21hY09TXSBDb250ZXh0IG1lbnUgc2hvdWxkIGFjY291bnQgZm9y
IGltYWdlIG92ZXJsYXkgY29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDQx
NmQ4NDZiNzQwOTg3MWY2YzMyZjVhZDdkMmI0NGQ2MWY1MzJhMGUuLjY3NzliMjc2NTg3MGI3NTFi
MzAwYjlhMjM3OWU5OWFkZWJhOGU2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAg
LTEyMjQsNiArMTIyNCw3IEBAIHZvaWQgRWRpdG9yOjpjbGVhcigpCiAgICAgICAgIGlmIChFZGl0
b3JDbGllbnQqIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQogICAgICAgICAgICAgY2xpZW50LT5k
aXNjYXJkZWRDb21wb3NpdGlvbihtX2RvY3VtZW50LmZyYW1lKCkpOwogICAgIH0KKyAgICBtX2Nv
bXBvc2l0aW9uQ29udGFpbmVyID0gbnVsbHB0cjsKICAgICBtX2N1c3RvbUNvbXBvc2l0aW9uVW5k
ZXJsaW5lcy5jbGVhcigpOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25IaWdobGlnaHRzLmNsZWFy
KCk7CiAgICAgbV9zaG91bGRTdHlsZVdpdGhDU1MgPSBmYWxzZTsKQEAgLTIwMTcsNiArMjAxOCw3
IEBAIHZvaWQgRWRpdG9yOjpzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIFNldENv
bXBvc2l0aW9uTW9kZSBtb2RlKQogICAgICAgICBzZWxlY3RDb21wb3NpdGlvbigpOwogCiAgICAg
bV9jb21wb3NpdGlvbk5vZGUgPSBudWxscHRyOworICAgIG1fY29tcG9zaXRpb25Db250YWluZXIg
PSBudWxscHRyOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVzLmNsZWFyKCk7CiAg
ICAgbV9jdXN0b21Db21wb3NpdGlvbkhpZ2hsaWdodHMuY2xlYXIoKTsKIApAQCAtMjExMSwxMCAr
MjExMywxMiBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogICAgIH0KIAogICAgIG1fY29tcG9z
aXRpb25Ob2RlID0gbnVsbHB0cjsKKyAgICBtX2NvbXBvc2l0aW9uQ29udGFpbmVyID0gbnVsbHB0
cjsKICAgICBtX2N1c3RvbUNvbXBvc2l0aW9uVW5kZXJsaW5lcy5jbGVhcigpOwogICAgIG1fY3Vz
dG9tQ29tcG9zaXRpb25IaWdobGlnaHRzLmNsZWFyKCk7CiAKICAgICBpZiAoIXRleHQuaXNFbXB0
eSgpKSB7CisgICAgICAgIG1fY29tcG9zaXRpb25Db250YWluZXIgPSBtX2RvY3VtZW50LnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpLmJhc2UoKS5kb3duc3RyZWFtKCkuY29udGFpbmVyTm9kZSgpOwog
ICAgICAgICBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGRvY3VtZW50KCksIHRleHQsIFR5cGlu
Z0NvbW1hbmQ6OlNlbGVjdEluc2VydGVkVGV4dCB8IFR5cGluZ0NvbW1hbmQ6OlByZXZlbnRTcGVs
bENoZWNraW5nLCBUeXBpbmdDb21tYW5kOjpUZXh0Q29tcG9zaXRpb25QZW5kaW5nKTsKIAogICAg
ICAgICAvLyBGaW5kIG91dCB3aGF0IG5vZGUgaGFzIHRoZSBjb21wb3NpdGlvbiBub3cuCkBAIC0y
MTI3LDYgKzIxMzEsNyBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogCiAgICAgICAgIGlmIChp
czxUZXh0PihiYXNlTm9kZSkgJiYgYmFzZU5vZGUgPT0gZXh0ZW50Tm9kZSAmJiBiYXNlT2Zmc2V0
ICsgdGV4dC5sZW5ndGgoKSA9PSBleHRlbnRPZmZzZXQpIHsKICAgICAgICAgICAgIG1fY29tcG9z
aXRpb25Ob2RlID0gZG93bmNhc3Q8VGV4dD4oYmFzZU5vZGUpOworICAgICAgICAgICAgbV9jb21w
b3NpdGlvbkNvbnRhaW5lciA9IG1fZG9jdW1lbnQuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuYmFz
ZSgpLmRvd25zdHJlYW0oKS5jb250YWluZXJOb2RlKCk7CiAgICAgICAgICAgICBtX2NvbXBvc2l0
aW9uU3RhcnQgPSBiYXNlT2Zmc2V0OwogICAgICAgICAgICAgbV9jb21wb3NpdGlvbkVuZCA9IGV4
dGVudE9mZnNldDsKICAgICAgICAgICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVzID0g
dW5kZXJsaW5lczsKQEAgLTIxNDYsNyArMjE1MSw4IEBAIHZvaWQgRWRpdG9yOjpzZXRDb21wb3Np
dGlvbihjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZlY3RvcjxDb21wb3NpdGlvblVuZGVybGlu
CiAgICAgICAgICAgICB1bnNpZ25lZCBlbmQgPSBzdGQ6Om1pbihzdGQ6Om1heChzdGFydCwgYmFz
ZU9mZnNldCArIHNlbGVjdGlvbkVuZCksIGV4dGVudE9mZnNldCk7CiAgICAgICAgICAgICBhdXRv
IHJhbmdlID0gU2ltcGxlUmFuZ2UgeyB7ICpiYXNlTm9kZSwgc3RhcnQgfSwgeyAqYmFzZU5vZGUs
IGVuZCB9IH07CiAgICAgICAgICAgICBtX2RvY3VtZW50LnNlbGVjdGlvbigpLnNldFNlbGVjdGVk
UmFuZ2UocmFuZ2UsIEFmZmluaXR5OjpEb3duc3RyZWFtLCBGcmFtZVNlbGVjdGlvbjo6U2hvdWxk
Q2xvc2VUeXBpbmc6Ok5vKTsKLSAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IG1fY29tcG9zaXRpb25Db250YWluZXIgPSBudWxscHRyOwogICAgIH0KIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IGYxYzFjNWE1
YzUyODA0OTllZmY5MjAwZDU4YWMxZDY0YmNkZWIwZGYuLjNmZTUyZGVhOGFiNzY5MDlmNzVjNDNj
NWU2NjIzM2M3ZWIzZmQxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMzg3LDYgKzM4
Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIGdldHRpbmcgaW50ZXJuYXRpb25hbCB0ZXh0IGlucHV0
IGNvbXBvc2l0aW9uIHN0YXRlIChmb3IgdXNlIGJ5IElubGluZVRleHRCb3gpCiAgICAgVGV4dCog
Y29tcG9zaXRpb25Ob2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGlvbk5vZGUuZ2V0KCk7
IH0KKyAgICBOb2RlKiBjb21wb3NpdGlvbkNvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fY29t
cG9zaXRpb25Db250YWluZXIuZ2V0KCk7IH0KICAgICB1bnNpZ25lZCBjb21wb3NpdGlvblN0YXJ0
KCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGlvblN0YXJ0OyB9CiAgICAgdW5zaWduZWQgY29t
cG9zaXRpb25FbmQoKSBjb25zdCB7IHJldHVybiBtX2NvbXBvc2l0aW9uRW5kOyB9CiAgICAgYm9v
bCBjb21wb3NpdGlvblVzZXNDdXN0b21VbmRlcmxpbmVzKCkgY29uc3QgeyByZXR1cm4gIW1fY3Vz
dG9tQ29tcG9zaXRpb25VbmRlcmxpbmVzLmlzRW1wdHkoKTsgfQpAQCAtNjM0LDYgKzYzNSw3IEBA
IHByaXZhdGU6CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgUmVmUHRyPENvbXBvc2l0
ZUVkaXRDb21tYW5kPiBtX2xhc3RFZGl0Q29tbWFuZDsKICAgICBSZWZQdHI8VGV4dD4gbV9jb21w
b3NpdGlvbk5vZGU7CisgICAgUmVmUHRyPE5vZGU+IG1fY29tcG9zaXRpb25Db250YWluZXI7CiAg
ICAgdW5zaWduZWQgbV9jb21wb3NpdGlvblN0YXJ0OwogICAgIHVuc2lnbmVkIG1fY29tcG9zaXRp
b25FbmQ7CiAgICAgVmVjdG9yPENvbXBvc2l0aW9uVW5kZXJsaW5lPiBtX2N1c3RvbUNvbXBvc2l0
aW9uVW5kZXJsaW5lczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcAppbmRleCBiNDU2NTRj
MjliNzQ4MjE2ZDdjNmU3MmU4M2Y3OGFhMTk1M2RhYzYwLi4wMjU0N2IzNDIwOTE0NGMwM2MxZjhl
NmM5NWJjZjYzODE2NzRiMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5oIgogCiAj
aW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRWRpdG9yLmgi
CiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIaWdo
bGlnaHRSZWdpc3Rlci5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yLmgiCkBAIC0yMzcsOCAr
MjM4LDggQEAgc3RhdGljIHZvaWQgcHJpbnRSZWFzb24oQXZvaWRhbmNlUmVhc29uIHJlYXNvbiwg
VGV4dFN0cmVhbSYgc3RyZWFtKQogICAgIGNhc2UgQXZvaWRhbmNlUmVhc29uOjpGbG93SW5jbHVk
ZXNEb2N1bWVudE1hcmtlcnM6CiAgICAgICAgIHN0cmVhbSA8PCAidGV4dCBpbmNsdWRlcyBkb2N1
bWVudCBtYXJrZXJzIjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBdm9pZGFuY2VSZWFzb246
OkZsb3dJbmNsdWRlc0hpZ2hsaWdodHM6Ci0gICAgICAgIHN0cmVhbSA8PCAidGV4dCBpbmNsdWRl
cyBoaWdobGlnaHRzIjsKKyAgICBjYXNlIEF2b2lkYW5jZVJlYXNvbjo6Rmxvd0luY2x1ZGVzSGln
aGxpZ2h0c09yTWFya2VkVGV4dDoKKyAgICAgICAgc3RyZWFtIDw8ICJ0ZXh0IGluY2x1ZGVzIGhp
Z2hsaWdodHMgb3IgbWFya2VkIHRleHQiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEF2b2lk
YW5jZVJlYXNvbjo6Rmxvd0hhc0p1c3RpZmllZE5vbkJyZWFraW5nU3BhY2U6CiAgICAgICAgIHN0
cmVhbSA8PCAianVzdGlmaWVkIHRleHQgaGFzIG5vbi1icmVha2luZy1zcGFjZSBjaGFyYWN0ZXIi
OwpAQCAtNjA1LDEwICs2MDYsMTMgQEAgc3RhdGljIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+
IGNhblVzZUZvckNoaWxkKGNvbnN0IFJlbmRlck9iamVjdCYgY2hpbGQsIEluY2wKICAgICAgICAg
U0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChGbG93Q2hpbGRJc1NlbGVjdGVkLCByZWFz
b25zLCBpbmNsdWRlUmVhc29ucyk7CiAgICAgaWYgKGlzPFJlbmRlckNvdW50ZXI+KGNoaWxkKSkK
ICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChGbG93VGV4dElzUmVuZGVy
Q291bnRlciwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwotICAgIGlmIChpczxSZW5kZXJUZXh0
PihjaGlsZCkpIHsKLSAgICAgICAgY29uc3QgYXV0byYgcmVuZGVyVGV4dCA9IGRvd25jYXN0PFJl
bmRlclRleHQ+KGNoaWxkKTsKLSAgICAgICAgaWYgKHJlbmRlclRleHQudGV4dE5vZGUoKSAmJiAh
cmVuZGVyVGV4dC5kb2N1bWVudCgpLm1hcmtlcnMoKS5tYXJrZXJzRm9yKCpyZW5kZXJUZXh0LnRl
eHROb2RlKCkpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9J
Rl9ORUVERUQoRmxvd0luY2x1ZGVzRG9jdW1lbnRNYXJrZXJzLCByZWFzb25zLCBpbmNsdWRlUmVh
c29ucyk7CisgICAgaWYgKGNvbnN0IGF1dG8mIHJlbmRlclRleHQgPSBkb3duY2FzdDxSZW5kZXJU
ZXh0PihjaGlsZCk7IGlzPFJlbmRlclRleHQ+KGNoaWxkKSkgeworICAgICAgICBpZiAoYXV0byB0
ZXh0Tm9kZSA9IG1ha2VSZWZQdHIocmVuZGVyVGV4dC50ZXh0Tm9kZSgpKSkgeworICAgICAgICAg
ICAgaWYgKCFyZW5kZXJUZXh0LmRvY3VtZW50KCkubWFya2VycygpLm1hcmtlcnNGb3IoKnRleHRO
b2RlKS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lG
X05FRURFRChGbG93SW5jbHVkZXNEb2N1bWVudE1hcmtlcnMsIHJlYXNvbnMsIGluY2x1ZGVSZWFz
b25zKTsKKyAgICAgICAgICAgIGlmIChhdXRvIGNvbXBvc2l0aW9uQ29udGFpbmVyID0gbWFrZVJl
ZlB0cihyZW5kZXJUZXh0LmRvY3VtZW50KCkuZWRpdG9yKCkuY29tcG9zaXRpb25Db250YWluZXIo
KSk7IGNvbXBvc2l0aW9uQ29udGFpbmVyICYmIGNvbXBvc2l0aW9uQ29udGFpbmVyLT5jb250YWlu
cygqdGV4dE5vZGUpKQorICAgICAgICAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9O
RUVERUQoRmxvd0luY2x1ZGVzSGlnaGxpZ2h0c09yTWFya2VkVGV4dCwgcmVhc29ucywgaW5jbHVk
ZVJlYXNvbnMpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiByZWFzb25zOwogICAgIH0KIApA
QCAtNzc2LDEwICs3ODAsMTAgQEAgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9y
TGluZUxheW91dFdpdGhSZWFzb24oY29uc3QgUmVuZGVyQmxvY2tGbG93JgogICAgIGlmIChmbG93
LmRvY3VtZW50KCkucGFnaW5hdGVkKCkpCiAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9J
Rl9ORUVERUQoRmxvd0lzUGFnaW5hdGVkLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CiAgICAg
aWYgKGZsb3cuZG9jdW1lbnQoKS5oaWdobGlnaHRSZWdpc3RlcklmRXhpc3RzKCkgJiYgIWZsb3cu
ZG9jdW1lbnQoKS5oaWdobGlnaHRSZWdpc3RlcklmRXhpc3RzKCktPm1hcCgpLmlzRW1wdHkoKSkK
LSAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChGbG93SW5jbHVkZXNIaWdo
bGlnaHRzLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CisgICAgICAgIFNFVF9SRUFTT05fQU5E
X1JFVFVSTl9JRl9ORUVERUQoRmxvd0luY2x1ZGVzSGlnaGxpZ2h0c09yTWFya2VkVGV4dCwgcmVh
c29ucywgaW5jbHVkZVJlYXNvbnMpOwogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICBp
ZiAoZmxvdy5kb2N1bWVudCgpLmFwcEhpZ2hsaWdodFJlZ2lzdGVySWZFeGlzdHMoKSAmJiAhZmxv
dy5kb2N1bWVudCgpLmFwcEhpZ2hsaWdodFJlZ2lzdGVySWZFeGlzdHMoKS0+bWFwKCkuaXNFbXB0
eSgpKQotICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKEZsb3dJbmNsdWRl
c0hpZ2hsaWdodHMsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKKyAgICAgICAgU0VUX1JFQVNP
Tl9BTkRfUkVUVVJOX0lGX05FRURFRChGbG93SW5jbHVkZXNIaWdobGlnaHRzT3JNYXJrZWRUZXh0
LCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CiAjZW5kaWYKICAgICBpZiAoZmxvdy5maXJzdExp
bmVCbG9jaygpKQogICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKEZsb3dI
YXNQc2V1ZG9GaXJzdExpbmUsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVy
YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25Db3ZlcmFnZS5oCmluZGV4IDZmOGU1NWM0ZWZjYTlhZDNlZjI3ZjY2YTA2ZGRmNTdiYjg5ZDEw
ZDguLjNlYWQ0NzdhZjAzNjdlMTNjZmIzODk5ZmE2ZjhiYjk5ZWRlNDU3ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVy
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uQ292ZXJhZ2UuaApAQCAtODksNyArODksNyBAQCBlbnVtIGNsYXNzIEF2b2lkYW5jZVJl
YXNvbiA6IHVpbnQ2NF90IHsKICAgICBNdWx0aUNvbHVtbkZsb3dWZXJ0aWNhbEFsaWduICAgICAg
ICAgICAgICAgICA9IDFMTFUgIDw8IDQ5LAogICAgIE11bHRpQ29sdW1uRmxvd0lzRmxvYXRpbmcg
ICAgICAgICAgICAgICAgICAgID0gMUxMVSAgPDwgNTAsCiAgICAgRmxvd0luY2x1ZGVzRG9jdW1l
bnRNYXJrZXJzICAgICAgICAgICAgICAgICAgPSAxTExVICA8PCA1MSwKLSAgICBGbG93SW5jbHVk
ZXNIaWdobGlnaHRzICAgICAgICAgICAgICAgICAgICAgICA9IDFMTFUgIDw8IDUyLAorICAgIEZs
b3dJbmNsdWRlc0hpZ2hsaWdodHNPck1hcmtlZFRleHQgICAgICAgICAgID0gMUxMVSAgPDwgNTIs
CiAgICAgRmxvd0hhc0p1c3RpZmllZE5vbkJyZWFraW5nU3BhY2UgICAgICAgICAgICAgPSAxTExV
ICA8PCA1MywKICAgICBVbnN1cHBvcnRlZEZpZWxkc2V0ICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDFMTFUgIDw8IDU0LAogICAgIENoaWxkQm94SXNGbG9hdGluZ09yUG9zaXRpb25lZCAgICAg
ICAgICAgICAgID0gMUxMVSAgPDwgNTUsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjkxMDc3NTBjNDRjMGI3ZDA2ZWE5ZDk4
OTBmOTg5YmQ0NDk5ZTQxNC4uNmZmZjkyM2Y1M2MyNGY2MmU4NzM1MzI1MmM2MzA3OGZmOGVmYWFh
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAzLTIxICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENvbXBvc2l0aW9uIHRleHQgaXMg
bm90IGluaXRpYWxseSBoaWdobGlnaHRlZCB3aGVuIHR5cGluZyBpbiB0ZXh0IGZpZWxkcyB1c2lu
ZyBQaW55aW4ga2V5Ym9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMzU2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU1NjQ1MTY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCB0
byB2ZXJpZnkgdGhhdCBtYXJrZWQgdGV4dCB1bmRlcmxpbmVzIHNob3cgdXAgaW4gc2VhcmNoIGZp
ZWxkcy4KKworICAgICAgICAqIGVkaXRpbmcvaW5wdXQvY29tcG9zaXRpb24tdW5kZXJsaW5lLWlu
LXNlYXJjaC1maWVsZC1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBl
ZGl0aW5nL2lucHV0L2NvbXBvc2l0aW9uLXVuZGVybGluZS1pbi1zZWFyY2gtZmllbGQuaHRtbDog
QWRkZWQuCisKIDIwMjEtMDMtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgW21hY09TXSBDb250ZXh0IG1lbnUgc2hvdWxkIGFjY291bnQgZm9yIGlt
YWdlIG92ZXJsYXkgY29udGVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnB1
dC9jb21wb3NpdGlvbi11bmRlcmxpbmUtaW4tc2VhcmNoLWZpZWxkLWV4cGVjdGVkLW1pc21hdGNo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2lucHV0L2NvbXBvc2l0aW9uLXVuZGVybGluZS1p
bi1zZWFyY2gtZmllbGQtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDA5MzBm
NmE0Nzk4ZjUwMjBkYWJlYWNkMDgxYTlhNTFhZmQ3YWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9pbnB1dC9jb21wb3NpdGlvbi11bmRlcmxpbmUtaW4tc2VhcmNoLWZp
ZWxkLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgoraW5wdXQgeworICAgIGZvbnQtc2l6ZTogMjBw
eDsKKyAgICBvdXRsaW5lOiBub25lOworICAgIGNhcmV0LWNvbG9yOiB0cmFuc3BhcmVudDsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbnB1dCBhdXRvZm9jdXMgdHlwZT0ic2VhcmNo
IiB2YWx1ZT0iZm9vIj48L2lucHV0PgorPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3Qg
dmVyaWZpZXMgdGhhdCBjb21wb3NpdGlvbiB1bmRlcmxpbmVzIGFyZSB2aXNpYmxlIHNldHRpbmcg
bWFya2VkIHRleHQgaW4gYSBzZWFyY2ggZmllbGQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
aW5wdXQvY29tcG9zaXRpb24tdW5kZXJsaW5lLWluLXNlYXJjaC1maWVsZC5odG1sIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9pbnB1dC9jb21wb3NpdGlvbi11bmRlcmxpbmUtaW4tc2VhcmNoLWZpZWxk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGU3YjU0YWZkMTE5MjllZWQxNWI5Njc3Nzg4YmRlMjExYTM1Mzcw
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvaW5wdXQvY29tcG9zaXRp
b24tdW5kZXJsaW5lLWluLXNlYXJjaC1maWVsZC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2lucHV0IHsKKyAgICBmb250LXNp
emU6IDIwcHg7CisgICAgb3V0bGluZTogbm9uZTsKKyAgICBjYXJldC1jb2xvcjogdHJhbnNwYXJl
bnQ7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW5wdXQgYXV0b2ZvY3VzIHR5cGU9
InNlYXJjaCI+PC9pbnB1dD4KKzxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0IHZlcmlm
aWVzIHRoYXQgY29tcG9zaXRpb24gdW5kZXJsaW5lcyBhcmUgdmlzaWJsZSBzZXR0aW5nIG1hcmtl
ZCB0ZXh0IGluIGEgc2VhcmNoIGZpZWxkLjwvcD4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVy
KCJsb2FkIiwgKCkgPT4geworICAgIGlmICh3aW5kb3cudGV4dElucHV0Q29udHJvbGxlcikKKyAg
ICAgICAgdGV4dElucHV0Q29udHJvbGxlci5zZXRNYXJrZWRUZXh0KCJmb28iLCAzLCAzKTsKK30p
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423857</attachid>
            <date>2021-03-21 23:49:17 -0700</date>
            <delta_ts>2021-03-21 23:49:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223563-20210321234916.patch</filename>
            <type>text/plain</type>
            <size>10689</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU5NGYyNzA5NmExZmRl
YWE2YmZmNjM5NTg3N2FjYWI5ZmJlMGY3Yy4uMjFmZWE4ZmMwZmFiNGMzODZiNDhhZjA1ODNmMDVj
ZWFmMzA1M2YxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTAzLTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQ29u
dGV4dCBtZW51IHNob3VsZCBhY2NvdW50IGZvciBpbWFnZSBvdmVybGF5IGNvbnRlbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzUxOAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzU1MDUyMTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4g
Um91c3NvLgorCisgICAgICAgIE1ha2Ugc29tZSBhZGp1c3RtZW50cyB0byBhbGxvdyBjb250ZXh0
IG1lbnUgaXRlbXMgZm9yIHRleHQgc2VsZWN0aW9uIHRvIHNob3cgdXAgd2hlbiByaWdodCBjbGlj
a2luZyBvbiB0ZXh0IGluCisgICAgICAgIGFuIGltYWdlIG92ZXJsYXkuCisKKyAgICAgICAgVGVz
dDogZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRl
eHQtd2l0aC1jb250ZXh0LW1lbnUuaHRtbAorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKworICAgICAg
ICBBZGp1c3QgdGhpcyBsb2dpYyBzbyB0aGF0IHdlIG9ubHkgYXR0ZW1wdCB0byB3cml0ZSBwbGFp
biB0ZXh0IHRvIHRoZSBzeXN0ZW0gcGFzdGVib2FyZCB3aGVuIGNvcHlpbmcgdGV4dCBpbnNpZGUK
KyAgICAgICAgaW1hZ2Ugb3ZlcmxheXMgKHRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgY29w
eWluZyBzZWxlY3RlZCB0ZXh0IGluIGB0ZXh0YXJlYWAgZWxlbWVudHMgYW5kIHRleHQgZmllbGRz
KS4KKworICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnQ6Omhhc0ltYWdlT3ZlcmxheSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpp
bWFnZU92ZXJsYXlIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojppc0luc2lk
ZUltYWdlT3ZlcmxheSk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGRldGVy
bWluZSB3aGV0aGVyIG9yIG5vdCBhIGdpdmVuIHJhbmdlIGluIHRoZSBET00gaXMgaW5zaWRlIGFu
IGltYWdlIG92ZXJsYXkgc2hhZG93CisgICAgICAgIHJvb3QuIFRvIGF2b2lkIGNvZGUgZHVwbGlj
YXRpb24sIHB1bGwgb3V0IHNvbWUgbG9naWMgdG8gZ3JhYiB0aGUgaW1hZ2Ugb3ZlcmxheSdzIGVs
ZW1lbnQgaG9zdCAoaWYgaXQgZXhpc3RzKSBvdXQKKyAgICAgICAgaW50byBhIHNlcGFyYXRlIHN0
YXRpYyBoZWxwZXIgZnVuY3Rpb24gKGBpbWFnZU92ZXJsYXlIb3N0YCksIGFuZCB1c2UgaXQgaGVy
ZSBhbmQgYWxzbyBpbiBgaXNJbWFnZU92ZXJsYXlUZXh0YC4KKworICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnQ6OmlzSW1hZ2VPdmVybGF5VGV4dCk6CisKKyAgICAgICAgTW92ZSB0aGUgVUEg
c2hhZG93IHJvb3QgY2hlY2sgaW50byBgSFRNTEVsZW1lbnQ6Omhhc0ltYWdlT3ZlcmxheWAsIHNv
IHRoYXQgYGhhc0ltYWdlT3ZlcmxheWAgY2FuIGJlIGludm9rZWQgZm9yCisgICAgICAgIGVsZW1l
bnRzIHdpdGggbm9uLVVBIHNoYWRvdyByb290cyB3aXRob3V0IGhpdHRpbmcgYW4gYXNzZXJ0aW9u
LgorCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJv
bGxlcjo6cG9wdWxhdGUpOgorCisgICAgICAgIFB1bGwgbG9naWMgdGhhdCBkZXRlcm1pbmVzIHdo
ZXRoZXIgb3Igbm90IHdlIHNob3VsZCBzaG93IHRleHQtc2VsZWN0aW9uLXJlbGF0ZWQgY29udGV4
dCBtZW51IGl0ZW1zIG91dCBpbnRvIGEKKyAgICAgICAgc2VwYXJhdGUgbGFtYmRhIGZ1bmN0aW9u
LCBzbyB0aGF0IGl0J3MgZWFzaWVyIHRvIHRha2UgYWR2YW50YWdlIG9mIGVhcmx5IHJldHVybnM7
IHRoZW4sIGluIHRoZSBjYXNlIHdoZXJlIHdlCisgICAgICAgIGhhdmUgYW4gaW1hZ2UgVVJMLCBh
ZGRpdGlvbmFsbHkgc2hvdyBzZWxlY3RlZCB0ZXh0IG9wdGlvbnMgaWYgdGhlIHNlbGVjdGlvbiBp
cyBpbnNpZGUgdGhlIGltYWdlIG92ZXJsYXkuCisKIDIwMjEtMDMtMTkgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFueSBtZWRpYS9tZWRpYS1mcmFnbWVudHMv
IHRlc3RzIGFyZSBjcmFzaGluZyBkdWUgdG8gb3RoZXIgdGVzdHMgdGhhdCBydW4gYmVmb3JlIHRo
ZW0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNjI0MjZlZmU4MjcwNDYzYzcyMzZj
OWQ5Y2EzNjUyZDlmZmFmYzU4ZS4uNDE2ZDg0NmI3NDA5ODcxZjZjMzJmNWFkN2QyYjQ0ZDYxZjUz
MmEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQxMSw3ICsxNDExLDcgQEAg
dm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlv
bikKICAgICAgICAgdXBkYXRlTWFya2Vyc0ZvcldvcmRzQWZmZWN0ZWRCeUVkaXRpbmcodHJ1ZSk7
CiAgICAgfQogCi0gICAgaWYgKGVuY2xvc2luZ1RleHRGb3JtQ29udHJvbChtX2RvY3VtZW50LnNl
bGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCkpKQorICAgIGlmIChlbmNsb3NpbmdUZXh0Rm9y
bUNvbnRyb2wobV9kb2N1bWVudC5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFydCgpKSB8fCAo
c2VsZWN0aW9uICYmIEhUTUxFbGVtZW50Ojppc0luc2lkZUltYWdlT3ZlcmxheSgqc2VsZWN0aW9u
KSkpCiAgICAgICAgIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShQYWdlUGFzdGVi
b2FyZENvbnRleHQ6OmNyZWF0ZShtX2RvY3VtZW50LnBhZ2VJRCgpKSktPndyaXRlUGxhaW5UZXh0
KHNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlcigpLCBjYW5TbWFydENvcHlPckRlbGV0ZSgpID8g
UGFzdGVib2FyZDo6Q2FuU21hcnRSZXBsYWNlIDogUGFzdGVib2FyZDo6Q2Fubm90U21hcnRSZXBs
YWNlKTsKICAgICBlbHNlIHsKICAgICAgICAgSFRNTEltYWdlRWxlbWVudCogaW1hZ2VFbGVtZW50
ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggMTVkYjQzYzFk
MzU0YzUzOTNjNjczYTIzNGZjYTA0MTZlNjdjZjllOS4uOGQzNzczZjg3YTQ1ODVjY2ZlMjU1ZGY1
ZGEyNjVhNzUyOTk4MjYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTEy
MjcsMjYgKzEyMjcsNDUgQEAgYm9vbCBIVE1MRWxlbWVudDo6c2hvdWxkRXh0ZW5kU2VsZWN0aW9u
VG9UYXJnZXROb2RlKGNvbnN0IE5vZGUmIHRhcmdldE5vZGUsIGNvbnMKIAogYm9vbCBIVE1MRWxl
bWVudDo6aGFzSW1hZ2VPdmVybGF5KCkgY29uc3QKIHsKLSAgICBhdXRvIHNoYWRvd1Jvb3QgPSB1
c2VyQWdlbnRTaGFkb3dSb290KCk7Ci0gICAgaWYgKExJS0VMWSghc2hhZG93Um9vdCkpCisgICAg
YXV0byBzaGFkb3dSb290ID0gdGhpcy0+c2hhZG93Um9vdCgpOworICAgIGlmIChMSUtFTFkoIXNo
YWRvd1Jvb3QgfHwgc2hhZG93Um9vdC0+bW9kZSgpICE9IFNoYWRvd1Jvb3RNb2RlOjpVc2VyQWdl
bnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gc2hhZG93Um9vdC0+aGFz
RWxlbWVudFdpdGhJZCgqaW1hZ2VPdmVybGF5RWxlbWVudElkZW50aWZpZXIoKS5pbXBsKCkpOwog
fQogCi1ib29sIEhUTUxFbGVtZW50Ojppc0ltYWdlT3ZlcmxheVRleHQoY29uc3QgTm9kZSYgbm9k
ZSkKK3N0YXRpYyBSZWZQdHI8SFRNTEVsZW1lbnQ+IGltYWdlT3ZlcmxheUhvc3QoY29uc3QgTm9k
ZSYgbm9kZSkKK3sKKyAgICBhdXRvIGhvc3QgPSBub2RlLnNoYWRvd0hvc3QoKTsKKyAgICBpZiAo
IWlzPEhUTUxFbGVtZW50Pihob3N0KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBh
dXRvIGVsZW1lbnQgPSBtYWtlUmVmUHRyKGRvd25jYXN0PEhUTUxFbGVtZW50PigqaG9zdCkpOwor
ICAgIHJldHVybiBlbGVtZW50LT5oYXNJbWFnZU92ZXJsYXkoKSA/IGVsZW1lbnQgOiBudWxscHRy
OworfQorCitib29sIEhUTUxFbGVtZW50Ojppc0luc2lkZUltYWdlT3ZlcmxheShjb25zdCBTaW1w
bGVSYW5nZSYgcmFuZ2UpCiB7Ci0gICAgYXV0byBzaGFkb3dIb3N0ID0gbm9kZS5zaGFkb3dIb3N0
KCk7Ci0gICAgaWYgKCFzaGFkb3dIb3N0KQorICAgIGF1dG8gY29tbW9uQW5jZXN0b3IgPSBtYWtl
UmVmUHRyKGNvbW1vbkluY2x1c2l2ZUFuY2VzdG9yPENvbXBvc2VkVHJlZT4ocmFuZ2UpKTsKKyAg
ICBpZiAoIWNvbW1vbkFuY2VzdG9yKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRv
IHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LT5zaGFkb3dSb290KCk7Ci0gICAgaWYgKCFzaGFkb3dS
b290IHx8IHNoYWRvd1Jvb3QtPm1vZGUoKSAhPSBTaGFkb3dSb290TW9kZTo6VXNlckFnZW50IHx8
IHNoYWRvd1Jvb3QgIT0gbm9kZS5jb250YWluaW5nU2hhZG93Um9vdCgpKQorICAgIGF1dG8gaG9z
dCA9IGltYWdlT3ZlcmxheUhvc3QoKmNvbW1vbkFuY2VzdG9yKTsKKyAgICBpZiAoIWhvc3QpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBob3N0LT51c2VyQWdlbnRTaGFkb3dS
b290KCktPmNvbnRhaW5zKCpjb21tb25BbmNlc3Rvcik7Cit9CisKK2Jvb2wgSFRNTEVsZW1lbnQ6
OmlzSW1hZ2VPdmVybGF5VGV4dChjb25zdCBOb2RlJiBub2RlKQoreworICAgIGF1dG8gaG9zdCA9
IGltYWdlT3ZlcmxheUhvc3Qobm9kZSk7CisgICAgaWYgKCFob3N0KQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8SFRNTERpdkVs
ZW1lbnQ+KCpzaGFkb3dSb290KSkgeworICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9m
VHlwZTxIVE1MRGl2RWxlbWVudD4oKmhvc3QtPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkpIHsKICAg
ICAgICAgaWYgKGNoaWxkLmdldElkQXR0cmlidXRlKCkgPT0gaW1hZ2VPdmVybGF5RWxlbWVudElk
ZW50aWZpZXIoKSkKLSAgICAgICAgICAgIHJldHVybiBub2RlLmlzRGVzY2VuZGFudE9mKCZjaGls
ZCk7CisgICAgICAgICAgICByZXR1cm4gbm9kZS5pc0Rlc2NlbmRhbnRPZihjaGlsZCk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCmluZGV4IGJk
OTAyNDZjYmM1ZWMxMjE1ZGQ5ODljZDhhNTYzZTU0Y2NjYmM3ZjUuLmZjM2Q1NjYwMTNhNDU1Y2E2
Y2Y1ODBjN2ZlMWJkOGE3YWNhZjJjNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKQEAg
LTM1LDYgKzM1LDcgQEAgY2xhc3MgRm9ybUFzc29jaWF0ZWRFbGVtZW50OwogY2xhc3MgRm9ybU5h
bWVkSXRlbTsKIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247
CitzdHJ1Y3QgU2ltcGxlUmFuZ2U7CiAKICNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKIHN0
cnVjdCBJbWFnZUV4dHJhY3Rpb25SZXN1bHQ7CkBAIC0xMjgsNiArMTI5LDcgQEAgcHVibGljOgog
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkRXh0ZW5kU2VsZWN0aW9uVG9U
YXJnZXROb2RlKGNvbnN0IE5vZGUmIHRhcmdldE5vZGUsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGVjdGlvbkJlZm9yZVVwZGF0ZSk7CiAgICAgYm9vbCBoYXNJbWFnZU92ZXJsYXkoKSBjb25z
dDsKKyAgICBzdGF0aWMgYm9vbCBpc0luc2lkZUltYWdlT3ZlcmxheShjb25zdCBTaW1wbGVSYW5n
ZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGlzSW1hZ2VPdmVybGF5VGV4dChj
b25zdCBOb2RlJik7CiAKICNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCA3ODMxOTMxM2Y0Y2I2
YTRlMWFlYjk4ZmM4ZGVkNDg4NTM0ZmEwZjkzLi45M2U2MmZkMDBiNmRmZDA2ZDNhZWQwZGUwOGIx
NzAwMzAzZThhZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuY3BwCkBAIC05MTQsNyArOTE0LDI1IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
Ojpwb3B1bGF0ZSgpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoaW1h
Z2VVUkwuaXNFbXB0eSgpICYmIGxpbmtVUkwuaXNFbXB0eSgpICYmIG1lZGlhVVJMLmlzRW1wdHko
KSkgeworICAgICAgICBib29sIHNob3VsZFNob3dJdGVtc0Zvck5vbkVkaXRhYmxlVGV4dCA9IChb
Jl0geworICAgICAgICAgICAgaWYgKCFsaW5rVVJMLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIGlmICghbWVkaWFVUkwuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYgKCFpbWFnZVVS
TC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHNlbGVjdGVkUmFuZ2UgPSBmcmFt
ZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkucmFuZ2UoKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gc2VsZWN0ZWRSYW5nZSAmJiBIVE1MRWxlbWVudDo6aXNJbnNpZGVJbWFnZU92ZXJsYXkoKnNl
bGVjdGVkUmFuZ2UpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfSkoKTsKKworICAgICAgICBpZiAoc2hvdWxkU2hvd0l0ZW1zRm9yTm9uRWRpdGFi
bGVUZXh0KSB7CisgICAgICAgICAgICBpZiAoIWltYWdlVVJMLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgICAgICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCksIG1fY29udGV4dE1lbnUuZ2V0KCkp
OworCiAgICAgICAgICAgICBpZiAobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5pc1NlbGVjdGVk
KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIXNlbGVjdGVkU3RyaW5nLmlzRW1wdHkoKSkgewog
I2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUxODAyZTk2OGJmMjY5NWI4ZjcyZjlkNjY0YWQy
M2MyZWRlNDljNzkuLjI5MTA3NzUwYzQ0YzBiN2QwNmVhOWQ5ODkwZjk4OWJkNDQ5OWU0MTQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMy0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENvbnRleHQgbWVudSBzaG91bGQgYWNj
b3VudCBmb3IgaW1hZ2Ugb3ZlcmxheSBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM1MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1
NTA1MjEwPgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBB
ZGQgYSBsYXlvdXQgdGVzdCB0byBleGVyY2lzZSBjb3B5aW5nIHZpYSB0aGUgY29udGV4dCBtZW51
LgorCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1pbWFn
ZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJs
YXktdGV4dC13aXRoLWNvbnRleHQtbWVudS5odG1sOiBBZGRlZC4KKwogMjAyMS0wMy0xOSAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBNYW55IG1lZGlhL21lZGlh
LWZyYWdtZW50cy8gdGVzdHMgYXJlIGNyYXNoaW5nIGR1ZSB0byBvdGhlciB0ZXN0cyB0aGF0IHJ1
biBiZWZvcmUgdGhlbS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24v
bWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MDIzNGVjMWFhNDcwOTMwMjdhZDVlYmI2NjAwNzZiZjZkOTE4ODc4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBlZGl0b3IudGV4dENvbnRlbnQgaXMgImZvb2JhciIK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9jb3B5
LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQt
d2l0aC1jb250ZXh0LW1lbnUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDUyOWVjNDU4ZjE1NDA4MjBjZjM2
YzVlY2QwOTRiZTU2NjI2MzNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1j
b250ZXh0LW1lbnUuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
dG9wOiAwOworICAgIGxlZnQ6IDA7Cit9CisKK2Rpdltjb250ZW50ZWRpdGFibGVdIHsKKyAgICBi
b3JkZXI6IDFweCBzb2xpZCB0b21hdG87Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8
aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxkaXYg
Y29udGVudGVkaXRhYmxlPjwvZGl2PgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7
CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFt7CisgICAgICAgIHRl
eHQgOiAiZm9vYmFyIiwKKyAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDApLAorICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgIH1dKTsKKwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCAxNTApOworCisgICAgZm9yIChsZXQgaXRl
bSBvZiBldmVudFNlbmRlci5jb250ZXh0Q2xpY2soKSkgeworICAgICAgICBpZiAoaXRlbS50aXRs
ZSA9PT0gIkNvcHkiKQorICAgICAgICAgICAgaXRlbS5jbGljaygpOworICAgIH0KKworICAgIGVk
aXRvciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdltjb250ZW50ZWRpdGFibGVdIik7Cisg
ICAgZWRpdG9yLmZvY3VzKCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7CisK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImVkaXRvci50ZXh0Q29udGVudCIsICJmb29iYXIi
KTsKKyAgICBlZGl0b3IucmVtb3ZlKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423858</attachid>
            <date>2021-03-21 23:58:26 -0700</date>
            <delta_ts>2021-03-22 09:54:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223563-20210321235825.patch</filename>
            <type>text/plain</type>
            <size>13446</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFmZWE4ZmMwZmFiNGMz
ODZiNDhhZjA1ODNmMDVjZWFmMzA1M2YxOS4uMGYxODlhODVmNDEyMDlkOWJhMGIzMDk0YTFmYjk4
OGY3Mzg5N2M4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTAzLTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENvbXBv
c2l0aW9uIHRleHQgaXMgbm90IGluaXRpYWxseSBoaWdobGlnaHRlZCB3aGVuIHR5cGluZyBpbiB0
ZXh0IGZpZWxkcyB1c2luZyBQaW55aW4ga2V5Ym9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzU2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzU1NjQ1MTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2hlbiBlbmFibGluZyBsaW5lIGxheW91dCBpbnRlZ3JhdGlvbiwgY29tcG9zaXRpb24gaGln
aGxpZ2h0cyBvbiBpT1MgZG9uJ3QgYXBwZWFyIHdoZW4gdHlwaW5nIGFuIGlucHV0IHN0cmluZwor
ICAgICAgICB1c2luZyB0aGUgUGlueWluIGtleWJvYXJkIGZvciB0aGUgZmlyc3QgdGltZS4gVGhp
cyBpcyBiZWNhdXNlIHRoZSB0ZXh0IHJlbmRlcmVyIGZvciB0aGUgaW5zZXJ0ZWQgY29tcG9zaXRp
b24KKyAgICAgICAgdGV4dCBkb2VzIG5vdCBjb250YWluIGlubGluZSB0ZXh0IGJveGVzIHdoZW4g
cGFpbnRpbmcgdGhlIGNvbXBvc2l0aW9uIHRleHQgb24gaU9TLCBzbyB0aGUgbWFya2VkIHRleHQg
cGFpbnRpbmcKKyAgICAgICAgY29kZXBhdGggaXMgbmV2ZXIgdHJpZ2dlcmVkLgorCisgICAgICAg
IE9uIG1hY09TLCB0aGlzIGlzbid0IGFuIGlzc3VlIGJlY2F1c2UgdGhlIHByb2Nlc3Mgb2Ygc2V0
dGluZyB0aGUgY29tcG9zaXRpb24gY2hhbmdlcyB0aGUgc2VsZWN0aW9uLCB3aGljaCB0aGVuCisg
ICAgICAgIGNoYW5nZXMgdGhlIGhpZ2hsaWdodCBzdGF0ZSBvZiB0aGUgYFJlbmRlclRleHRgLCB3
aGljaCBzdWJzZXF1ZW50bHkgY2FsbHMgaW50byBgZW5zdXJlTGluZUJveGVzKClgLiBIb3dldmVy
LAorICAgICAgICBzaW5jZSBzZWxlY3Rpb25zIGFyZSBkcmF3biB1c2luZyBVSUtpdCBpbiB0aGUg
VUkgcHJvY2VzcyBvbiBpT1MsIHdlIGRvbid0IGVuZCB1cCBlbnN1cmluZyB0aGF0IGlubGluZSB0
ZXh0IGJveGVzCisgICAgICAgIGFyZSBjb25zdHJ1Y3RlZCBmb3IgdGhlIGluc2VydGVkIHRleHQu
CisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGlzLCB3ZSBhZGQgYSBsaW5lIGxheW91dCBpbnRlZ3Jh
dGlvbiBleGNlcHRpb24gaW4gdGhlIGNhc2Ugd2hlcmUgcmVuZGVyZWQgdGV4dCBpcyBpbnNpZGUg
YSBET00gbm9kZQorICAgICAgICB0aGF0IGlzIGVpdGhlciB0aGUgY29tcG9zaXRpb24gdGV4dCBu
b2RlLCBvciBhZGphY2VudCB0byB0aGUgY29tcG9zaXRpb24gdGV4dCBub2RlLiBTZWUgYmVsb3cg
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL2lucHV0L2NvbXBvc2l0
aW9uLXVuZGVybGluZS1pbi1zZWFyY2gtZmllbGQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnNldENvbXBvc2l0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5oOgorCisgICAgICAgIEFkZCBgbV9jb21wb3NpdGlvbkNvbnRhaW5lcmAsIHdoaWNoIHJlcHJl
c2VudHMgdGhlIGNvbnRhaW5lciBvZiB0aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIGNvbXBvc2l0
aW9uIHJhbmdlLgorICAgICAgICBUaGlzIGhhcyB0aGUgc2FtZSBsaWZldGltZSBhcyB0aGUgZXhp
c3RpbmcgYG1fY29tcG9zaXRpb25Ob2RlYCwgZXhjZXB0IHRoYXQgaXQgaXMgc2V0IHRvIHRoZSBp
bnNlcnRpb24gcG9zaXRpb24KKyAgICAgICAganVzdCBwcmlvciB0byBpbnNlcnRpbmcgdGhlIGNv
bXBvc2l0aW9uIHRleHQuIFRoaXMgZW5zdXJlcyB0aGF0IGxpbmUgbGF5b3V0IGF2b2lkYW5jZSBs
b2dpYyBiZWxvdyBhcHBsaWVzIGR1cmluZworICAgICAgICBpbnRlcm1lZGlhdGUgbGF5b3V0IHBh
c3NlcyB0aGF0IGFyZSB0cmlnZ2VyZWQgZHVyaW5nIHRleHQgaW5zZXJ0aW9uLgorCisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OmNvbXBvc2l0aW9uQ29udGFpbmVyIGNvbnN0KToKKyAgICAgICAg
KiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6cHJpbnRSZWFzb24pOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmNhblVzZUZvckZvbnRBbmRUZXh0KToKKworICAg
ICAgICBBZGQgdGhlIGV4Y2VwdGlvbiBoZXJlLCBieSBjaGVja2luZyBpZiB0aGUgcmVuZGVyZWQg
bm9kZSBpcyBpbiB0aGUgbm9kZSBjb250YWluaW5nIHRoZSBjb21wb3NpdGlvbiB0ZXh0LgorCisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Y2FuVXNlRm9yTGluZUxheW91dFdp
dGhSZWFzb24pOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkNvdmVyYWdlLmg6CisKKyAgICAgICAgUmVuYW1lIGBGbG93SW5jbHVkZXNIaWdobGlnaHRzYCB0
byBgRmxvd0luY2x1ZGVzSGlnaGxpZ2h0c09yTWFya2VkVGV4dGAsIGFuZCBhZGp1c3QgdGhlIHBy
aW50IHJlYXNvbgorICAgICAgICBhY2NvcmRpbmdseS4gVGhpcyBlbnVtIHdpbGwgZW5jb21wYXNz
IGJvdGggQ1NTIGhpZ2hsaWdodHMgYW5kIG1hcmtlZCAoY29tcG9zaXRpb24pIHRleHQgKHVuZm9y
dHVuYXRlbHksIHdlIGNhbid0CisgICAgICAgIGludHJvZHVjZSBhIG5ldyB0eXBlIHNvbGVseSBm
b3IgY29tcG9zaXRpb24gdGV4dCBoZXJlLCBzaW5jZSB3ZSBhbHJlYWR5IHVzZSBhbGwgNjQgYml0
cyBvZiB0aGUgZW51bSkuCisKIDIwMjEtMDMtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBDb250ZXh0IG1lbnUgc2hvdWxkIGFjY291
bnQgZm9yIGltYWdlIG92ZXJsYXkgY29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmlu
ZGV4IDQxNmQ4NDZiNzQwOTg3MWY2YzMyZjVhZDdkMmI0NGQ2MWY1MzJhMGUuLjY3NzliMjc2NTg3
MGI3NTFiMzAwYjlhMjM3OWU5OWFkZWJhOGU2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTEyMjQsNiArMTIyNCw3IEBAIHZvaWQgRWRpdG9yOjpjbGVhcigpCiAgICAgICAgIGlm
IChFZGl0b3JDbGllbnQqIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQogICAgICAgICAgICAgY2xp
ZW50LT5kaXNjYXJkZWRDb21wb3NpdGlvbihtX2RvY3VtZW50LmZyYW1lKCkpOwogICAgIH0KKyAg
ICBtX2NvbXBvc2l0aW9uQ29udGFpbmVyID0gbnVsbHB0cjsKICAgICBtX2N1c3RvbUNvbXBvc2l0
aW9uVW5kZXJsaW5lcy5jbGVhcigpOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25IaWdobGlnaHRz
LmNsZWFyKCk7CiAgICAgbV9zaG91bGRTdHlsZVdpdGhDU1MgPSBmYWxzZTsKQEAgLTIwMTcsNiAr
MjAxOCw3IEBAIHZvaWQgRWRpdG9yOjpzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQs
IFNldENvbXBvc2l0aW9uTW9kZSBtb2RlKQogICAgICAgICBzZWxlY3RDb21wb3NpdGlvbigpOwog
CiAgICAgbV9jb21wb3NpdGlvbk5vZGUgPSBudWxscHRyOworICAgIG1fY29tcG9zaXRpb25Db250
YWluZXIgPSBudWxscHRyOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVzLmNsZWFy
KCk7CiAgICAgbV9jdXN0b21Db21wb3NpdGlvbkhpZ2hsaWdodHMuY2xlYXIoKTsKIApAQCAtMjEx
MSwxMCArMjExMywxMiBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogICAgIH0KIAogICAgIG1f
Y29tcG9zaXRpb25Ob2RlID0gbnVsbHB0cjsKKyAgICBtX2NvbXBvc2l0aW9uQ29udGFpbmVyID0g
bnVsbHB0cjsKICAgICBtX2N1c3RvbUNvbXBvc2l0aW9uVW5kZXJsaW5lcy5jbGVhcigpOwogICAg
IG1fY3VzdG9tQ29tcG9zaXRpb25IaWdobGlnaHRzLmNsZWFyKCk7CiAKICAgICBpZiAoIXRleHQu
aXNFbXB0eSgpKSB7CisgICAgICAgIG1fY29tcG9zaXRpb25Db250YWluZXIgPSBtX2RvY3VtZW50
LnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmJhc2UoKS5kb3duc3RyZWFtKCkuY29udGFpbmVyTm9k
ZSgpOwogICAgICAgICBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGRvY3VtZW50KCksIHRleHQs
IFR5cGluZ0NvbW1hbmQ6OlNlbGVjdEluc2VydGVkVGV4dCB8IFR5cGluZ0NvbW1hbmQ6OlByZXZl
bnRTcGVsbENoZWNraW5nLCBUeXBpbmdDb21tYW5kOjpUZXh0Q29tcG9zaXRpb25QZW5kaW5nKTsK
IAogICAgICAgICAvLyBGaW5kIG91dCB3aGF0IG5vZGUgaGFzIHRoZSBjb21wb3NpdGlvbiBub3cu
CkBAIC0yMTI3LDYgKzIxMzEsNyBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogCiAgICAgICAg
IGlmIChpczxUZXh0PihiYXNlTm9kZSkgJiYgYmFzZU5vZGUgPT0gZXh0ZW50Tm9kZSAmJiBiYXNl
T2Zmc2V0ICsgdGV4dC5sZW5ndGgoKSA9PSBleHRlbnRPZmZzZXQpIHsKICAgICAgICAgICAgIG1f
Y29tcG9zaXRpb25Ob2RlID0gZG93bmNhc3Q8VGV4dD4oYmFzZU5vZGUpOworICAgICAgICAgICAg
bV9jb21wb3NpdGlvbkNvbnRhaW5lciA9IG1fZG9jdW1lbnQuc2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCkuYmFzZSgpLmRvd25zdHJlYW0oKS5jb250YWluZXJOb2RlKCk7CiAgICAgICAgICAgICBtX2Nv
bXBvc2l0aW9uU3RhcnQgPSBiYXNlT2Zmc2V0OwogICAgICAgICAgICAgbV9jb21wb3NpdGlvbkVu
ZCA9IGV4dGVudE9mZnNldDsKICAgICAgICAgICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxp
bmVzID0gdW5kZXJsaW5lczsKQEAgLTIxNDYsNyArMjE1MSw4IEBAIHZvaWQgRWRpdG9yOjpzZXRD
b21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZlY3RvcjxDb21wb3NpdGlvblVu
ZGVybGluCiAgICAgICAgICAgICB1bnNpZ25lZCBlbmQgPSBzdGQ6Om1pbihzdGQ6Om1heChzdGFy
dCwgYmFzZU9mZnNldCArIHNlbGVjdGlvbkVuZCksIGV4dGVudE9mZnNldCk7CiAgICAgICAgICAg
ICBhdXRvIHJhbmdlID0gU2ltcGxlUmFuZ2UgeyB7ICpiYXNlTm9kZSwgc3RhcnQgfSwgeyAqYmFz
ZU5vZGUsIGVuZCB9IH07CiAgICAgICAgICAgICBtX2RvY3VtZW50LnNlbGVjdGlvbigpLnNldFNl
bGVjdGVkUmFuZ2UocmFuZ2UsIEFmZmluaXR5OjpEb3duc3RyZWFtLCBGcmFtZVNlbGVjdGlvbjo6
U2hvdWxkQ2xvc2VUeXBpbmc6Ok5vKTsKLSAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIG1fY29tcG9zaXRpb25Db250YWluZXIgPSBudWxscHRyOwogICAgIH0KIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IGYx
YzFjNWE1YzUyODA0OTllZmY5MjAwZDU4YWMxZDY0YmNkZWIwZGYuLjNmZTUyZGVhOGFiNzY5MDlm
NzVjNDNjNWU2NjIzM2M3ZWIzZmQxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMzg3
LDYgKzM4Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIGdldHRpbmcgaW50ZXJuYXRpb25hbCB0ZXh0
IGlucHV0IGNvbXBvc2l0aW9uIHN0YXRlIChmb3IgdXNlIGJ5IElubGluZVRleHRCb3gpCiAgICAg
VGV4dCogY29tcG9zaXRpb25Ob2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGlvbk5vZGUu
Z2V0KCk7IH0KKyAgICBOb2RlKiBjb21wb3NpdGlvbkNvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJu
IG1fY29tcG9zaXRpb25Db250YWluZXIuZ2V0KCk7IH0KICAgICB1bnNpZ25lZCBjb21wb3NpdGlv
blN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGlvblN0YXJ0OyB9CiAgICAgdW5zaWdu
ZWQgY29tcG9zaXRpb25FbmQoKSBjb25zdCB7IHJldHVybiBtX2NvbXBvc2l0aW9uRW5kOyB9CiAg
ICAgYm9vbCBjb21wb3NpdGlvblVzZXNDdXN0b21VbmRlcmxpbmVzKCkgY29uc3QgeyByZXR1cm4g
IW1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVzLmlzRW1wdHkoKTsgfQpAQCAtNjM0LDYgKzYz
NSw3IEBAIHByaXZhdGU6CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgUmVmUHRyPENv
bXBvc2l0ZUVkaXRDb21tYW5kPiBtX2xhc3RFZGl0Q29tbWFuZDsKICAgICBSZWZQdHI8VGV4dD4g
bV9jb21wb3NpdGlvbk5vZGU7CisgICAgUmVmUHRyPE5vZGU+IG1fY29tcG9zaXRpb25Db250YWlu
ZXI7CiAgICAgdW5zaWduZWQgbV9jb21wb3NpdGlvblN0YXJ0OwogICAgIHVuc2lnbmVkIG1fY29t
cG9zaXRpb25FbmQ7CiAgICAgVmVjdG9yPENvbXBvc2l0aW9uVW5kZXJsaW5lPiBtX2N1c3RvbUNv
bXBvc2l0aW9uVW5kZXJsaW5lczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcAppbmRleCBi
NDU2NTRjMjliNzQ4MjE2ZDdjNmU3MmU4M2Y3OGFhMTk1M2RhYzYwLi45M2I2NjRiZmFmOWNiOTgz
ZGI3ODBmMzUyMjgxZWY1MDY1YTQ2NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3Bw
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5o
IgogCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRWRp
dG9yLmgiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIaWdobGlnaHRSZWdpc3Rlci5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yLmgiCkBAIC0y
MzcsOCArMjM4LDggQEAgc3RhdGljIHZvaWQgcHJpbnRSZWFzb24oQXZvaWRhbmNlUmVhc29uIHJl
YXNvbiwgVGV4dFN0cmVhbSYgc3RyZWFtKQogICAgIGNhc2UgQXZvaWRhbmNlUmVhc29uOjpGbG93
SW5jbHVkZXNEb2N1bWVudE1hcmtlcnM6CiAgICAgICAgIHN0cmVhbSA8PCAidGV4dCBpbmNsdWRl
cyBkb2N1bWVudCBtYXJrZXJzIjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBdm9pZGFuY2VS
ZWFzb246OkZsb3dJbmNsdWRlc0hpZ2hsaWdodHM6Ci0gICAgICAgIHN0cmVhbSA8PCAidGV4dCBp
bmNsdWRlcyBoaWdobGlnaHRzIjsKKyAgICBjYXNlIEF2b2lkYW5jZVJlYXNvbjo6Rmxvd0luY2x1
ZGVzSGlnaGxpZ2h0c09yTWFya2VkVGV4dDoKKyAgICAgICAgc3RyZWFtIDw8ICJ0ZXh0IGluY2x1
ZGVzIGhpZ2hsaWdodHMgb3IgbWFya2VkIHRleHQiOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEF2b2lkYW5jZVJlYXNvbjo6Rmxvd0hhc0p1c3RpZmllZE5vbkJyZWFraW5nU3BhY2U6CiAgICAg
ICAgIHN0cmVhbSA8PCAianVzdGlmaWVkIHRleHQgaGFzIG5vbi1icmVha2luZy1zcGFjZSBjaGFy
YWN0ZXIiOwpAQCAtNTM2LDYgKzUzNywxMCBAQCBzdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJl
YXNvbj4gY2FuVXNlRm9yRm9udEFuZFRleHQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplYwogICAg
ICAgICAgICAgaWYgKHN0eWxlLmZvbnRDYXNjYWRlKCkuY29kZVBhdGgocnVuKSAhPSBGb250Q2Fz
Y2FkZTo6Q29kZVBhdGg6OlNpbXBsZSkKICAgICAgICAgICAgICAgICBTRVRfUkVBU09OX0FORF9S
RVRVUk5fSUZfTkVFREVEKEZsb3dIYXNDb21wbGV4Rm9udENvZGVQYXRoLCByZWFzb25zLCBpbmNs
dWRlUmVhc29ucyk7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8gdGV4dE5vZGUgPSBtYWtl
UmVmUHRyKHRleHRSZW5kZXJlci50ZXh0Tm9kZSgpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8g
Y29tcG9zaXRpb25Db250YWluZXIgPSBtYWtlUmVmUHRyKHRleHRSZW5kZXJlci5kb2N1bWVudCgp
LmVkaXRvcigpLmNvbXBvc2l0aW9uQ29udGFpbmVyKCkpOyBjb21wb3NpdGlvbkNvbnRhaW5lciAm
JiBjb21wb3NpdGlvbkNvbnRhaW5lci0+Y29udGFpbnMoKnRleHROb2RlKSkKKyAgICAgICAgICAg
ICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKEZsb3dJbmNsdWRlc0hpZ2hsaWdo
dHNPck1hcmtlZFRleHQsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKKyAgICAgICAgfQogCiAg
ICAgICAgIGF1dG8gdGV4dFJlYXNvbnMgPSBjYW5Vc2VGb3JUZXh0KHRleHRSZW5kZXJlci5zdHJp
bmdWaWV3KCksIGZvbnRDYXNjYWRlLCBsaW5lSGVpZ2h0Q29uc3RyYWludCwgZmxvd0lzSnVzdGlm
aWVkLCBpbmNsdWRlUmVhc29ucyk7CiAgICAgICAgIGlmICh0ZXh0UmVhc29ucykKQEAgLTc3Niwx
MCArNzgxLDEwIEBAIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvckxpbmVMYXlv
dXRXaXRoUmVhc29uKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYKICAgICBpZiAoZmxvdy5kb2N1bWVu
dCgpLnBhZ2luYXRlZCgpKQogICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVE
KEZsb3dJc1BhZ2luYXRlZCwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwogICAgIGlmIChmbG93
LmRvY3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0ZXJJZkV4aXN0cygpICYmICFmbG93LmRvY3VtZW50
KCkuaGlnaGxpZ2h0UmVnaXN0ZXJJZkV4aXN0cygpLT5tYXAoKS5pc0VtcHR5KCkpCi0gICAgICAg
IFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoRmxvd0luY2x1ZGVzSGlnaGxpZ2h0cywg
cmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOworICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5f
SUZfTkVFREVEKEZsb3dJbmNsdWRlc0hpZ2hsaWdodHNPck1hcmtlZFRleHQsIHJlYXNvbnMsIGlu
Y2x1ZGVSZWFzb25zKTsKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgaWYgKGZsb3cu
ZG9jdW1lbnQoKS5hcHBIaWdobGlnaHRSZWdpc3RlcklmRXhpc3RzKCkgJiYgIWZsb3cuZG9jdW1l
bnQoKS5hcHBIaWdobGlnaHRSZWdpc3RlcklmRXhpc3RzKCktPm1hcCgpLmlzRW1wdHkoKSkKLSAg
ICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChGbG93SW5jbHVkZXNIaWdobGln
aHRzLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CisgICAgICAgIFNFVF9SRUFTT05fQU5EX1JF
VFVSTl9JRl9ORUVERUQoRmxvd0luY2x1ZGVzSGlnaGxpZ2h0c09yTWFya2VkVGV4dCwgcmVhc29u
cywgaW5jbHVkZVJlYXNvbnMpOwogI2VuZGlmCiAgICAgaWYgKGZsb3cuZmlyc3RMaW5lQmxvY2so
KSkKICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChGbG93SGFzUHNldWRv
Rmlyc3RMaW5lLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJh
Z2UuaAppbmRleCA2ZjhlNTVjNGVmY2E5YWQzZWYyN2Y2NmEwNmRkZjU3YmI4OWQxMGQ4Li4zZWFk
NDc3YWYwMzY3ZTEzY2ZiMzg5OWZhNmY4YmI5OWVkZTQ1N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNv
dmVyYWdlLmgKQEAgLTg5LDcgKzg5LDcgQEAgZW51bSBjbGFzcyBBdm9pZGFuY2VSZWFzb24gOiB1
aW50NjRfdCB7CiAgICAgTXVsdGlDb2x1bW5GbG93VmVydGljYWxBbGlnbiAgICAgICAgICAgICAg
ICAgPSAxTExVICA8PCA0OSwKICAgICBNdWx0aUNvbHVtbkZsb3dJc0Zsb2F0aW5nICAgICAgICAg
ICAgICAgICAgICA9IDFMTFUgIDw8IDUwLAogICAgIEZsb3dJbmNsdWRlc0RvY3VtZW50TWFya2Vy
cyAgICAgICAgICAgICAgICAgID0gMUxMVSAgPDwgNTEsCi0gICAgRmxvd0luY2x1ZGVzSGlnaGxp
Z2h0cyAgICAgICAgICAgICAgICAgICAgICAgPSAxTExVICA8PCA1MiwKKyAgICBGbG93SW5jbHVk
ZXNIaWdobGlnaHRzT3JNYXJrZWRUZXh0ICAgICAgICAgICA9IDFMTFUgIDw8IDUyLAogICAgIEZs
b3dIYXNKdXN0aWZpZWROb25CcmVha2luZ1NwYWNlICAgICAgICAgICAgID0gMUxMVSAgPDwgNTMs
CiAgICAgVW5zdXBwb3J0ZWRGaWVsZHNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxTExV
ICA8PCA1NCwKICAgICBDaGlsZEJveElzRmxvYXRpbmdPclBvc2l0aW9uZWQgICAgICAgICAgICAg
ICA9IDFMTFUgIDw8IDU1LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI5MTA3NzUwYzQ0YzBiN2QwNmVhOWQ5ODkwZjk4OWJk
NDQ5OWU0MTQuLjZmZmY5MjNmNTNjMjRmNjJlODczNTMyNTJjNjMwNzhmZjhlZmFhYTEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMy0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDb21wb3NpdGlvbiB0ZXh0IGlzIG5vdCBpbml0
aWFsbHkgaGlnaGxpZ2h0ZWQgd2hlbiB0eXBpbmcgaW4gdGV4dCBmaWVsZHMgdXNpbmcgUGlueWlu
IGtleWJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjM1NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1NTY0NTE2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gdmVyaWZ5
IHRoYXQgbWFya2VkIHRleHQgdW5kZXJsaW5lcyBzaG93IHVwIGluIHNlYXJjaCBmaWVsZHMuCisK
KyAgICAgICAgKiBlZGl0aW5nL2lucHV0L2NvbXBvc2l0aW9uLXVuZGVybGluZS1pbi1zZWFyY2gt
ZmllbGQtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9p
bnB1dC9jb21wb3NpdGlvbi11bmRlcmxpbmUtaW4tc2VhcmNoLWZpZWxkLmh0bWw6IEFkZGVkLgor
CiAyMDIxLTAzLTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gQ29udGV4dCBtZW51IHNob3VsZCBhY2NvdW50IGZvciBpbWFnZSBvdmVy
bGF5IGNvbnRlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvaW5wdXQvY29tcG9z
aXRpb24tdW5kZXJsaW5lLWluLXNlYXJjaC1maWVsZC1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9pbnB1dC9jb21wb3NpdGlvbi11bmRlcmxpbmUtaW4tc2VhcmNo
LWZpZWxkLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQwOTMwZjZhNDc5OGY1
MDIwZGFiZWFjZDA4MWE5YTUxYWZkN2FkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvaW5wdXQvY29tcG9zaXRpb24tdW5kZXJsaW5lLWluLXNlYXJjaC1maWVsZC1leHBl
Y3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2lucHV0IHsKKyAgICBmb250LXNpemU6IDIwcHg7CisgICAg
b3V0bGluZTogbm9uZTsKKyAgICBjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQ7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8aW5wdXQgYXV0b2ZvY3VzIHR5cGU9InNlYXJjaCIgdmFsdWU9
ImZvbyI+PC9pbnB1dD4KKzxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0IHZlcmlmaWVz
IHRoYXQgY29tcG9zaXRpb24gdW5kZXJsaW5lcyBhcmUgdmlzaWJsZSBzZXR0aW5nIG1hcmtlZCB0
ZXh0IGluIGEgc2VhcmNoIGZpZWxkLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2lucHV0L2Nv
bXBvc2l0aW9uLXVuZGVybGluZS1pbi1zZWFyY2gtZmllbGQuaHRtbCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvaW5wdXQvY29tcG9zaXRpb24tdW5kZXJsaW5lLWluLXNlYXJjaC1maWVsZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBlN2I1NGFmZDExOTI5ZWVkMTViOTY3Nzc4OGJkZTIxMWEzNTM3MDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2lucHV0L2NvbXBvc2l0aW9uLXVuZGVy
bGluZS1pbi1zZWFyY2gtZmllbGQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbnB1dCB7CisgICAgZm9udC1zaXplOiAyMHB4
OworICAgIG91dGxpbmU6IG5vbmU7CisgICAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50OworfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IGF1dG9mb2N1cyB0eXBlPSJzZWFyY2gi
PjwvaW5wdXQ+Cis8cCBjbGFzcz0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0
IGNvbXBvc2l0aW9uIHVuZGVybGluZXMgYXJlIHZpc2libGUgc2V0dGluZyBtYXJrZWQgdGV4dCBp
biBhIHNlYXJjaCBmaWVsZC48L3A+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
ICgpID0+IHsKKyAgICBpZiAod2luZG93LnRleHRJbnB1dENvbnRyb2xsZXIpCisgICAgICAgIHRl
eHRJbnB1dENvbnRyb2xsZXIuc2V0TWFya2VkVGV4dCgiZm9vIiwgMywgMyk7Cit9KTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="443371"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423893</attachid>
            <date>2021-03-22 09:04:07 -0700</date>
            <delta_ts>2021-03-22 13:26:19 -0700</delta_ts>
            <desc>Alternate approach</desc>
            <filename>bug-223563-20210322090406.patch</filename>
            <type>text/plain</type>
            <size>6147</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFmZWE4ZmMwZmFiNGMz
ODZiNDhhZjA1ODNmMDVjZWFmMzA1M2YxOS4uMmE1Njk3YWM0ZTY5NDE5MzljYjRhMTY2OTc5NTQ0
N2VmZDE5OGJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAzLTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENvbXBv
c2l0aW9uIHRleHQgaXMgbm90IGluaXRpYWxseSBoaWdobGlnaHRlZCB3aGVuIHR5cGluZyBpbiB0
ZXh0IGZpZWxkcyB1c2luZyBQaW55aW4ga2V5Ym9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzU2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzU1NjQ1MTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2hlbiBlbmFibGluZyBsaW5lIGxheW91dCBpbnRlZ3JhdGlvbiwgY29tcG9zaXRpb24gaGln
aGxpZ2h0cyBvbiBpT1MgZG9uJ3QgYXBwZWFyIHdoZW4gdHlwaW5nIGFuIGlucHV0IHN0cmluZwor
ICAgICAgICB1c2luZyB0aGUgUGlueWluIGtleWJvYXJkIGZvciB0aGUgZmlyc3QgdGltZS4gVGhp
cyBpcyBiZWNhdXNlIHRoZSB0ZXh0IHJlbmRlcmVyIGZvciB0aGUgaW5zZXJ0ZWQgY29tcG9zaXRp
b24KKyAgICAgICAgdGV4dCBkb2VzIG5vdCBjb250YWluIGlubGluZSB0ZXh0IGJveGVzIHdoZW4g
cGFpbnRpbmcgdGhlIGNvbXBvc2l0aW9uIHRleHQgb24gaU9TLCBzbyB0aGUgbWFya2VkIHRleHQg
cGFpbnRpbmcKKyAgICAgICAgY29kZXBhdGggaXMgbmV2ZXIgdHJpZ2dlcmVkLgorCisgICAgICAg
IE9uIG1hY09TLCB0aGlzIGlzbid0IGFuIGlzc3VlIGJlY2F1c2UgdGhlIHByb2Nlc3Mgb2Ygc2V0
dGluZyB0aGUgY29tcG9zaXRpb24gY2hhbmdlcyB0aGUgc2VsZWN0aW9uLCB3aGljaCB0aGVuCisg
ICAgICAgIGNoYW5nZXMgdGhlIGhpZ2hsaWdodCBzdGF0ZSBvZiB0aGUgYFJlbmRlclRleHRgLCB3
aGljaCBzdWJzZXF1ZW50bHkgY2FsbHMgaW50byBgZW5zdXJlTGluZUJveGVzKClgLiBIb3dldmVy
LAorICAgICAgICBzaW5jZSBzZWxlY3Rpb25zIGFyZSBkcmF3biB1c2luZyBVSUtpdCBpbiB0aGUg
VUkgcHJvY2VzcyBvbiBpT1MsIHdlIGRvbid0IGVuZCB1cCBlbnN1cmluZyB0aGF0IGlubGluZSB0
ZXh0IGJveGVzCisgICAgICAgIGFyZSBjb25zdHJ1Y3RlZCBmb3IgdGhlIGluc2VydGVkIHRleHQu
CisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGlzLCB3ZSBmb2xsb3cgbWFjT1MgYmVoYXZpb3IgYnkg
ZW5zdXJpbmcgbGluZSBib3ggY29uc3RydWN0aW9uIG9uIHRoZSByZW5kZXJlZCBjb21wb3NpdGlv
biB0ZXh0CisgICAgICAgIHdoZW4gc2V0dGluZyB0aGUgY29tcG9zaXRpb24uCisKKyAgICAgICAg
VGVzdDogZWRpdGluZy9pbnB1dC9jb21wb3NpdGlvbi11bmRlcmxpbmUtaW4tc2VhcmNoLWZpZWxk
Lmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6c2V0Q29tcG9zaXRpb24pOgorCiAyMDIxLTAzLTE5ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQ29udGV4dCBtZW51IHNo
b3VsZCBhY2NvdW50IGZvciBpbWFnZSBvdmVybGF5IGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAppbmRleCA0MTZkODQ2Yjc0MDk4NzFmNmMzMmY1YWQ3ZDJiNDRkNjFmNTMyYTBlLi41
ZDM0YjIzYTc0NmQ5MWFhNjE3ZGYxMTA5MDc3MDFhNmVhNzRkMmFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCkBAIC04OCw2ICs4OCw3IEBACiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNs
dWRlICJSZW1vdmVGb3JtYXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNp
bmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1h
cmtlci5oIgpAQCAtMTMwLDYgKzEzMSwxMCBAQAogI2luY2x1ZGUgIlByb21pc2VkQXR0YWNobWVu
dEluZm8uaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQp
CisjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgiCisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgYm9vbCBkaXNwYXRjaEJlZm9yZUlucHV0RXZlbnQo
RWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRvbVN0cmluZyYgaW5wdXRUeXBlLCBjb25zdCBTdHJp
bmcmIGRhdGEgPSB7IH0sIFJlZlB0cjxEYXRhVHJhbnNmZXI+JiYgZGF0YVRyYW5zZmVyID0gbnVs
bHB0ciwgY29uc3QgVmVjdG9yPFJlZlB0cjxTdGF0aWNSYW5nZT4+JiB0YXJnZXRSYW5nZXMgPSB7
IH0sIEV2ZW50OjpJc0NhbmNlbGFibGUgY2FuY2VsYWJsZSA9IEV2ZW50OjpJc0NhbmNlbGFibGU6
OlllcykKQEAgLTIxMzksOCArMjE0NCwxNCBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24o
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogICAg
ICAgICAgICAgICAgIGhpZ2hsaWdodC5zdGFydE9mZnNldCArPSBiYXNlT2Zmc2V0OwogICAgICAg
ICAgICAgICAgIGhpZ2hsaWdodC5lbmRPZmZzZXQgKz0gYmFzZU9mZnNldDsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGlmIChiYXNlTm9kZS0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgICAg
ICBiYXNlTm9kZS0+cmVuZGVyZXIoKS0+cmVwYWludCgpOworCisgICAgICAgICAgICBpZiAoYXV0
byByZW5kZXJlciA9IGJhc2VOb2RlLT5yZW5kZXJlcigpKSB7CisjaWYgRU5BQkxFKExBWU9VVF9G
T1JNQVRUSU5HX0NPTlRFWFQpCisgICAgICAgICAgICAgICAgaWYgKGF1dG8gbGluZUxheW91dCA9
IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0Ojpjb250YWluaW5nKCpyZW5kZXJlcikpCisg
ICAgICAgICAgICAgICAgICAgIGxpbmVMYXlvdXQtPmZsb3coKS5lbnN1cmVMaW5lQm94ZXMoKTsK
KyNlbmRpZgorICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7CisgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIHVuc2lnbmVkIHN0YXJ0ID0gc3RkOjptaW4oYmFzZU9mZnNldCAr
IHNlbGVjdGlvblN0YXJ0LCBleHRlbnRPZmZzZXQpOwogICAgICAgICAgICAgdW5zaWduZWQgZW5k
ID0gc3RkOjptaW4oc3RkOjptYXgoc3RhcnQsIGJhc2VPZmZzZXQgKyBzZWxlY3Rpb25FbmQpLCBl
eHRlbnRPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI5MTA3NzUwYzQ0YzBiN2QwNmVhOWQ5ODkwZjk4OWJkNDQ5
OWU0MTQuLjA2OWFkMmM3NWRhOGY2NTE3ZmI3ODgzMTc3YjE3OGM0ODQ0OTBmY2UgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0wMy0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDb21wb3NpdGlvbiB0ZXh0IGlzIG5vdCBpbml0aWFs
bHkgaGlnaGxpZ2h0ZWQgd2hlbiB0eXBpbmcgaW4gdGV4dCBmaWVsZHMgdXNpbmcgUGlueWluIGtl
eWJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjM1NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1NTY0NTE2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gdmVyaWZ5IHRo
YXQgbWFya2VkIHRleHQgdW5kZXJsaW5lcyBzaG93IHVwIGluIHNlYXJjaCBmaWVsZHMuCisKKyAg
ICAgICAgKiBlZGl0aW5nL2lucHV0L2NvbXBvc2l0aW9uLXVuZGVybGluZS1pbi1zZWFyY2gtZmll
bGQtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9pbnB1
dC9jb21wb3NpdGlvbi11bmRlcmxpbmUtaW4tc2VhcmNoLWZpZWxkLmh0bWw6IEFkZGVkLgorCiAy
MDIxLTAzLTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU10gQ29udGV4dCBtZW51IHNob3VsZCBhY2NvdW50IGZvciBpbWFnZSBvdmVybGF5
IGNvbnRlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvaW5wdXQvY29tcG9zaXRp
b24tdW5kZXJsaW5lLWluLXNlYXJjaC1maWVsZC1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9pbnB1dC9jb21wb3NpdGlvbi11bmRlcmxpbmUtaW4tc2VhcmNoLWZp
ZWxkLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQwOTMwZjZhNDc5OGY1MDIw
ZGFiZWFjZDA4MWE5YTUxYWZkN2FkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvaW5wdXQvY29tcG9zaXRpb24tdW5kZXJsaW5lLWluLXNlYXJjaC1maWVsZC1leHBlY3Rl
ZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZT4KK2lucHV0IHsKKyAgICBmb250LXNpemU6IDIwcHg7CisgICAgb3V0
bGluZTogbm9uZTsKKyAgICBjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQ7Cit9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+Cis8aW5wdXQgYXV0b2ZvY3VzIHR5cGU9InNlYXJjaCIgdmFsdWU9ImZv
byI+PC9pbnB1dD4KKzxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0IHZlcmlmaWVzIHRo
YXQgY29tcG9zaXRpb24gdW5kZXJsaW5lcyBhcmUgdmlzaWJsZSBzZXR0aW5nIG1hcmtlZCB0ZXh0
IGluIGEgc2VhcmNoIGZpZWxkLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2lucHV0L2NvbXBv
c2l0aW9uLXVuZGVybGluZS1pbi1zZWFyY2gtZmllbGQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvaW5wdXQvY29tcG9zaXRpb24tdW5kZXJsaW5lLWluLXNlYXJjaC1maWVsZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBlN2I1NGFmZDExOTI5ZWVkMTViOTY3Nzc4OGJkZTIxMWEzNTM3MDMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2lucHV0L2NvbXBvc2l0aW9uLXVuZGVybGlu
ZS1pbi1zZWFyY2gtZmllbGQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbnB1dCB7CisgICAgZm9udC1zaXplOiAyMHB4Owor
ICAgIG91dGxpbmU6IG5vbmU7CisgICAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50OworfQorPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IGF1dG9mb2N1cyB0eXBlPSJzZWFyY2giPjwv
aW5wdXQ+Cis8cCBjbGFzcz0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGNv
bXBvc2l0aW9uIHVuZGVybGluZXMgYXJlIHZpc2libGUgc2V0dGluZyBtYXJrZWQgdGV4dCBpbiBh
IHNlYXJjaCBmaWVsZC48L3A+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgp
ID0+IHsKKyAgICBpZiAod2luZG93LnRleHRJbnB1dENvbnRyb2xsZXIpCisgICAgICAgIHRleHRJ
bnB1dENvbnRyb2xsZXIuc2V0TWFya2VkVGV4dCgiZm9vIiwgMywgMyk7Cit9KTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="443377"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="443424"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>