<?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>226911</bug_id>
          
          <creation_ts>2021-06-10 20:45:49 -0700</creation_ts>
          <short_desc>[Live Text] Text selection inside image elements should not be cleared upon resize</short_desc>
          <delta_ts>2021-06-11 12:56:19 -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>Platform</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>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1768866</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-10 20:45:49 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768869</commentid>
    <comment_count>1</comment_count>
      <attachid>431176</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-10 21:10:59 -0700</bug_when>
    <thetext>Created attachment 431176
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768870</commentid>
    <comment_count>2</comment_count>
      <attachid>431177</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-10 21:12:18 -0700</bug_when>
    <thetext>Created attachment 431177
Remove unnecessary include</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768993</commentid>
    <comment_count>3</comment_count>
      <attachid>431177</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-11 11:06:28 -0700</bug_when>
    <thetext>Comment on attachment 431177
Remove unnecessary include

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

Thanks for the review!

&gt; Source/WebCore/ChangeLog:30
&gt; +        Importantly, in step (1), we avoid regerating shadow DOM content in the case where the DOM elements already

(I just noticed &quot;regerating&quot; here. Will fix this up before landing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768998</commentid>
    <comment_count>4</comment_count>
      <attachid>431212</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-11 11:13:56 -0700</bug_when>
    <thetext>Created attachment 431212
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769036</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-11 12:55:21 -0700</bug_when>
    <thetext>Committed r278775 (238732@main): &lt;https://commits.webkit.org/238732@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431212.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769037</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-11 12:56:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/79211968&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431176</attachid>
            <date>2021-06-10 21:10:59 -0700</date>
            <delta_ts>2021-06-10 21:12:16 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-226911-20210610211058.patch</filename>
            <type>text/plain</type>
            <size>20022</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZhNTQwNTJjNDIzNzFi
OGEwOTQ2NmNlMGY0NWRhNzk3YWFmODk2OS4uOTE0ODBlYzc5YjkzYTY0YmE2ZDY2NWQzMTVkZDk4
NDA2NTRlOWQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA2LTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtMaXZlIFRleHRd
IFRleHQgc2VsZWN0aW9uIGluc2lkZSBpbWFnZSBlbGVtZW50cyBzaG91bGQgbm90IGJlIGNsZWFy
ZWQgdXBvbiByZXNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNjkxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlZmFjdG9yIGBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJl
c3VsdGAsIHN1Y2ggdGhhdCBpdCBkb2Vzbid0IHRlYXIgZG93biBhbmQgcmVjcmVhdGUgdGhlIGhv
c3QKKyAgICAgICAgZWxlbWVudCdzIHNoYWRvdyBET00gc3RydWN0dXJlIGluIHRoZSBjYXNlIHdo
ZXJlIHRoZSBleHRhbnQgRE9NIGVsZW1lbnRzIGFyZSBjb21wYXRpYmxlIHdpdGggdGhlIGdpdmVu
IHRleHQKKyAgICAgICAgcmVjb2duaXRpb24gcmVzdWx0LiBUaGlzIHByZXZlbnRzIHVzIGZyb20g
cmVtb3Zpbmcgb3IgaW5zZXJ0aW5nIERPTSBlbGVtZW50cyBpbiB0aGUgY2FzZSB3aGVyZSBhbiBp
bWFnZSBlbGVtZW50CisgICAgICAgIGlzIHJlc2l6ZWQgKGFuZCB0aHVzIGFkanVzdHMgaXRzIHNo
YWRvdyBET00gY29udGVudCB1c2luZyB0aGUgdXBkYXRlZCBzaXplKSwgd2hpY2ggaW4gdHVybiBw
cmV2ZW50cyB1cyBmcm9tCisgICAgICAgIGNsZWFyaW5nIG91dCB0aGUgdGV4dCBzZWxlY3Rpb24u
CisKKyAgICAgICAgVGVzdDogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Ut
b3ZlcmxheS1tYWludGFpbi1zZWxlY3Rpb24tZHVyaW5nLXNpemUtY2hhbmdlLmh0bWwKKworICAg
ICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcv
Y29jb2EvRGF0YURldGVjdGlvbi5tbToKKworICAgICAgICBNYWtlIHRoaXMgaGVscGVyIG1ldGhv
ZCByZXR1cm4gYW4gSFRNTERpdkVsZW1lbnQgaW5zdGVhZCBvZiBqdXN0IGFuIEhUTUxFbGVtZW50
LgorCisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjcmVhdGVFbGVtZW50Rm9ySW1h
Z2VPdmVybGF5KToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KToKKwor
ICAgICAgICBTcGxpdCB0aGlzIG1ldGhvZCBpbnRvIHR3byBsb2dpY2FsIHBhcnRzOiB0aGUgZmly
c3QgYnVpbGRzIHVwIGEgVGV4dFJlY29nbml0aW9uRWxlbWVudHMgc3RydWN0IHRoYXQgY29udGFp
bnMKKyAgICAgICAgcmVmZXJlbmNlcyB0byBhbGwgY29ubmVjdGVkIGVsZW1lbnRzIGluIHRoZSBp
bWFnZSBlbGVtZW50J3Mgc2hhZG93IERPTSB0aGF0IHJlcXVpcmUgc3R5bGUgdXBkYXRlcyBkdWUg
dG8gdGhlCisgICAgICAgIG5ldyBzaXplOyB0aGUgc2Vjb25kIHVzZXMgdGhpcyBUZXh0UmVjb2du
aXRpb25FbGVtZW50cyBpbmZvcm1hdGlvbiB0byBjb21wdXRlIHRoZSBuZXcgQ1NTIHRyYW5zZm9y
bXMgdG8gYXBwbHkgdG8KKyAgICAgICAgZWFjaCBvZiB0aGUgZGF0YSBkZXRlY3RvciwgbGluZSBj
b250YWluZXJzLCBhbmQgdGV4dCBjb250YWluZXJzIHVuZGVybmVhdGggZWFjaCBsaW5lIGNvbnRh
aW5lciBlbGVtZW50LgorCisgICAgICAgIEltcG9ydGFudGx5LCBpbiBzdGVwICgxKSwgd2UgYXZv
aWQgcmVnZXJhdGluZyBzaGFkb3cgRE9NIGNvbnRlbnQgaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIERP
TSBlbGVtZW50cyBhbHJlYWR5CisgICAgICAgIGV4aXN0IGluIHRoZWlyIGV4cGVjdGVkIHBsYWNl
cyB3aXRoaW4gdGhlIHNoYWRvdyBET00uCisKIDIwMjEtMDYtMTAgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1JFR1JFU1NJT05dW0N1cmxdIE5ldHdv
cms6OlJlc291cmNlVGltaW5nIGFyZSBicm9rZW4gYWZ0ZXIgcjI3ODM5MQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaAppbmRleCA1OGE2OWNjNzg0MzMxZjBi
NDE2ODFlMDkyMzQ3ZDk1ZjQzMWVjNmRhLi45MzFjN2M5Njk1ZmFiOGNiZDQ2NzMyZGRkZGFhYWE5
MmMxZWQxODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFE
ZXRlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rp
b24uaApAQCAtNDAsNyArNDAsNyBAQCBPQkpDX0NMQVNTIE5TRGljdGlvbmFyeTsKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBIVE1MRWxlbWVudDsKK2NsYXNz
IEhUTUxEaXZFbGVtZW50OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIFF1YWxpZmllZE5h
bWU7CiBzdHJ1Y3QgVGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yOwpAQCAtNjcsNyArNjcsNyBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICBzdGF0
aWMgUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVybGF5KERvY3VtZW50
JiwgY29uc3QgVGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yJik7CisgICAgc3RhdGljIFJlZjxI
VE1MRGl2RWxlbWVudD4gY3JlYXRlRWxlbWVudEZvckltYWdlT3ZlcmxheShEb2N1bWVudCYsIGNv
bnN0IFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3RvciYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMg
Y29uc3QgU3RyaW5nJiBkYXRhRGV0ZWN0b3JVUkxQcm90b2NvbCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCmluZGV4IDBiMGJiNmM2MDMwNTc3NzQ2
NjU4YjhkOThmY2VkNmVkZTg1OWFhMzEuLmY3MmFmYzZlMTViMDIyNTBlOTIyZjc2ZTAzZTQ2NDIz
M2Y4MDM1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURl
dGVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rp
b24ubW0KQEAgLTY4OSw3ICs2ODksNyBAQCBib29sIERhdGFEZXRlY3Rpb246OmlzRGF0YURldGVj
dG9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50KQogCiAjaWYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQogCi1SZWY8SFRNTEVsZW1lbnQ+IERhdGFEZXRlY3Rpb246OmNyZWF0ZUVsZW1lbnRG
b3JJbWFnZU92ZXJsYXkoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBUZXh0UmVjb2duaXRpb25E
YXRhRGV0ZWN0b3ImIGluZm8pCitSZWY8SFRNTERpdkVsZW1lbnQ+IERhdGFEZXRlY3Rpb246OmNy
ZWF0ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBUZXh0
UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImIGluZm8pCiB7CiAgICAgYXV0byBjb250YWluZXIgPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBpZiAoYXV0byBmcmFtZSA9IG1h
a2VSZWZQdHIoZG9jdW1lbnQuZnJhbWUoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAKaW5kZXggYzUzMGE1NDg5MTVjYjVmOWYzZTQxM2Y2Y2Y1MDIxNmU3YzA5ZjI4MS4uNTg0YjY1
NWNlMGQ5YzRjN2EwNmQ0MTIxYmI1ZTVlNDgzNDZlZWY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZy
YW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR2VvbWV0
cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJIVE1MQkRJRWxlbWVudC5oIgpAQCAtMTMzMywyMyAr
MTMzNCwxMjEgQEAgYm9vbCBIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KGNvbnN0IE5v
ZGUmIG5vZGUpCiAKIHZvaWQgSFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25S
ZXN1bHQoY29uc3QgVGV4dFJlY29nbml0aW9uUmVzdWx0JiByZXN1bHQsIENhY2hlVGV4dFJlY29n
bml0aW9uUmVzdWx0cyBjYWNoZVRleHRSZWNvZ25pdGlvblJlc3VsdHMpCiB7Ci0gICAgUmVmUHRy
PEhUTUxEaXZFbGVtZW50PiBwcmV2aW91c0NvbnRhaW5lcjsKLSAgICBpZiAoYXV0byBzaGFkb3dS
b290ID0gdXNlckFnZW50U2hhZG93Um9vdCgpOyBzaGFkb3dSb290ICYmIGhhc0ltYWdlT3Zlcmxh
eSgpKSB7Ci0gICAgICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxIVE1MRGl2
RWxlbWVudD4oKnNoYWRvd1Jvb3QpKSB7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbWFnZU92ZXJsYXlMaW5lQ2xhc3MoImltYWdlLW92ZXJs
YXktbGluZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGltYWdlT3ZlcmxheVRl
eHRDbGFzcygiaW1hZ2Utb3ZlcmxheS10ZXh0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworCisgICAgc3RydWN0IFRleHRSZWNvZ25pdGlvbkxpbmVFbGVtZW50cyB7CisgICAg
ICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gbGluZTsKKyAgICAgICAgVmVjdG9yPFJlZjxIVE1MRGl2
RWxlbWVudD4+IGNoaWxkcmVuOworICAgIH07CisKKyAgICBzdHJ1Y3QgVGV4dFJlY29nbml0aW9u
RWxlbWVudHMgeworICAgICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHJvb3Q7CisgICAgICAg
IFZlY3RvcjxUZXh0UmVjb2duaXRpb25MaW5lRWxlbWVudHM+IGxpbmVzOworICAgICAgICBWZWN0
b3I8UmVmPEhUTUxEaXZFbGVtZW50Pj4gZGF0YURldGVjdG9yczsKKyAgICB9OworCisgICAgYm9v
bCBoYWRFeGlzdGluZ1RleHRSZWNvZ25pdGlvbkVsZW1lbnRzID0gZmFsc2U7CisgICAgVGV4dFJl
Y29nbml0aW9uRWxlbWVudHMgdGV4dFJlY29nbml0aW9uRWxlbWVudHM7CisKKyAgICBpZiAoaGFz
SW1hZ2VPdmVybGF5KCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZU
eXBlPEhUTUxEaXZFbGVtZW50PigqdXNlckFnZW50U2hhZG93Um9vdCgpKSkgewogICAgICAgICAg
ICAgaWYgKGNoaWxkLmdldElkQXR0cmlidXRlKCkgPT0gaW1hZ2VPdmVybGF5RWxlbWVudElkZW50
aWZpZXIoKSkgewotICAgICAgICAgICAgICAgIHByZXZpb3VzQ29udGFpbmVyID0gJmNoaWxkOwor
ICAgICAgICAgICAgICAgIHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLnJvb3QgPSAmY2hpbGQ7Cisg
ICAgICAgICAgICAgICAgaGFkRXhpc3RpbmdUZXh0UmVjb2duaXRpb25FbGVtZW50cyA9IHRydWU7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAg
ICAgaWYgKHByZXZpb3VzQ29udGFpbmVyKQotICAgICAgICAgICAgcHJldmlvdXNDb250YWluZXIt
PnJlbW92ZSgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICB9CisKKyAgICBpZiAodGV4dFJlY29nbml0aW9uRWxlbWVudHMucm9vdCkgeworICAg
ICAgICBmb3IgKGF1dG8mIGxpbmVPckRhdGFEZXRlY3RvciA6IGNoaWxkcmVuT2ZUeXBlPEhUTUxE
aXZFbGVtZW50PigqdGV4dFJlY29nbml0aW9uRWxlbWVudHMucm9vdCkpIHsKKyAgICAgICAgICAg
IGlmICghbGluZU9yRGF0YURldGVjdG9yLmhhc0NsYXNzKCkpCisgICAgICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgICAgIGlmIChsaW5lT3JEYXRhRGV0ZWN0b3IuY2xhc3NMaXN0KCku
Y29udGFpbnMoaW1hZ2VPdmVybGF5TGluZUNsYXNzKSkgeworICAgICAgICAgICAgICAgIFRleHRS
ZWNvZ25pdGlvbkxpbmVFbGVtZW50cyBsaW5lRWxlbWVudHMgeyBsaW5lT3JEYXRhRGV0ZWN0b3Ig
fTsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHRleHQgOiBjaGlsZHJlbk9mVHlwZTxIVE1M
RGl2RWxlbWVudD4obGluZU9yRGF0YURldGVjdG9yKSkKKyAgICAgICAgICAgICAgICAgICAgbGlu
ZUVsZW1lbnRzLmNoaWxkcmVuLmFwcGVuZCh0ZXh0KTsKKyAgICAgICAgICAgICAgICB0ZXh0UmVj
b2duaXRpb25FbGVtZW50cy5saW5lcy5hcHBlbmQoV1RGTW92ZShsaW5lRWxlbWVudHMpKTsKKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAobGluZU9yRGF0YURldGVjdG9yLmNsYXNzTGlzdCgpLmNvbnRh
aW5zKGltYWdlT3ZlcmxheURhdGFEZXRlY3RvckNsYXNzTmFtZSgpKSkKKyAgICAgICAgICAgICAg
ICB0ZXh0UmVjb2duaXRpb25FbGVtZW50cy5kYXRhRGV0ZWN0b3JzLmFwcGVuZChsaW5lT3JEYXRh
RGV0ZWN0b3IpOworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBjYW5Vc2VFeGlzdGluZ1RleHRS
ZWNvZ25pdGlvbkVsZW1lbnRzID0gKFsmXSB7CisgICAgICAgICAgICBpZiAocmVzdWx0LmRhdGFE
ZXRlY3RvcnMuc2l6ZSgpICE9IHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLmRhdGFEZXRlY3RvcnMu
c2l6ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYg
KHJlc3VsdC5saW5lcy5zaXplKCkgIT0gdGV4dFJlY29nbml0aW9uRWxlbWVudHMubGluZXMuc2l6
ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgZm9yIChz
aXplX3QgbGluZUluZGV4ID0gMDsgbGluZUluZGV4IDwgcmVzdWx0LmxpbmVzLnNpemUoKTsgKyts
aW5lSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBjaGlsZFJlc3VsdHMgPSByZXN1bHQu
bGluZXNbbGluZUluZGV4XS5jaGlsZHJlbjsKKyAgICAgICAgICAgICAgICBhdXRvJiBjaGlsZFRl
eHRFbGVtZW50cyA9IHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLmxpbmVzW2xpbmVJbmRleF0uY2hp
bGRyZW47CisgICAgICAgICAgICAgICAgaWYgKGNoaWxkUmVzdWx0cy5zaXplKCkgIT0gY2hpbGRU
ZXh0RWxlbWVudHMuc2l6ZSgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBjaGlsZEluZGV4ID0gMDsgY2hpbGRJbmRleCA8
IGNoaWxkUmVzdWx0cy5zaXplKCk7ICsrY2hpbGRJbmRleCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoY2hpbGRSZXN1bHRzW2NoaWxkSW5kZXhdLnRleHQgIT0gY2hpbGRUZXh0RWxlbWVudHNb
Y2hpbGRJbmRleF0tPnRleHRDb250ZW50KCkuc3RyaXBXaGl0ZVNwYWNlKCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSkoKTsKKworICAgICAg
ICBpZiAoIWNhblVzZUV4aXN0aW5nVGV4dFJlY29nbml0aW9uRWxlbWVudHMpIHsKKyAgICAgICAg
ICAgIHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLnJvb3QtPnJlbW92ZSgpOworICAgICAgICAgICAg
dGV4dFJlY29nbml0aW9uRWxlbWVudHMgPSB7IH07CisgICAgICAgIH0KICAgICB9CiAKICAgICBp
ZiAocmVzdWx0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgYXV0byBzaGFkb3dS
b290ID0gbWFrZVJlZihlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkpOworICAgIGJvb2wgaGFz
VXNlclNlbGVjdE5vbmUgPSByZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnN0eWxlKCkudXNlclNl
bGVjdCgpID09IFVzZXJTZWxlY3Q6Ok5vbmU7CisgICAgaWYgKCF0ZXh0UmVjb2duaXRpb25FbGVt
ZW50cy5yb290KSB7CisgICAgICAgIGF1dG8gcm9vdENvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAgIHJvb3RDb250YWluZXItPnNldElkQXR0cmli
dXRlKGltYWdlT3ZlcmxheUVsZW1lbnRJZGVudGlmaWVyKCkpOworICAgICAgICBpZiAoZG9jdW1l
bnQoKS5pc0ltYWdlRG9jdW1lbnQoKSkKKyAgICAgICAgICAgIHJvb3RDb250YWluZXItPnNldElu
bGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRVc2VyU2VsZWN0LCBDU1NWYWx1ZVRl
eHQpOworICAgICAgICBzaGFkb3dSb290LT5hcHBlbmRDaGlsZChyb290Q29udGFpbmVyKTsKKyAg
ICAgICAgdGV4dFJlY29nbml0aW9uRWxlbWVudHMucm9vdCA9IHJvb3RDb250YWluZXIuY29weVJl
ZigpOworICAgICAgICB0ZXh0UmVjb2duaXRpb25FbGVtZW50cy5saW5lcy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHJlc3VsdC5saW5lcy5zaXplKCkpOworICAgICAgICBmb3IgKGF1dG8mIGxpbmUg
OiByZXN1bHQubGluZXMpIHsKKyAgICAgICAgICAgIGF1dG8gbGluZUNvbnRhaW5lciA9IEhUTUxE
aXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBsaW5lQ29udGFpbmVy
LT5jbGFzc0xpc3QoKS5hZGQoaW1hZ2VPdmVybGF5TGluZUNsYXNzKTsKKyAgICAgICAgICAgIHJv
b3RDb250YWluZXItPmFwcGVuZENoaWxkKGxpbmVDb250YWluZXIpOworICAgICAgICAgICAgVGV4
dFJlY29nbml0aW9uTGluZUVsZW1lbnRzIGxpbmVFbGVtZW50cyB7IGxpbmVDb250YWluZXIgfTsK
KyAgICAgICAgICAgIGxpbmVFbGVtZW50cy5jaGlsZHJlbi5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KGxpbmUuY2hpbGRyZW4uc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGNoaWxkSW5k
ZXggPSAwOyBjaGlsZEluZGV4IDwgbGluZS5jaGlsZHJlbi5zaXplKCk7ICsrY2hpbGRJbmRleCkg
eworICAgICAgICAgICAgICAgIGF1dG8mIGNoaWxkID0gbGluZS5jaGlsZHJlbltjaGlsZEluZGV4
XTsKKyAgICAgICAgICAgICAgICBhdXRvIHRleHRDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOworICAgICAgICAgICAgICAgIHRleHRDb250YWluZXItPmNsYXNz
TGlzdCgpLmFkZChpbWFnZU92ZXJsYXlUZXh0Q2xhc3MpOworICAgICAgICAgICAgICAgIGxpbmVD
b250YWluZXItPmFwcGVuZENoaWxkKHRleHRDb250YWluZXIpOworICAgICAgICAgICAgICAgIHRl
eHRDb250YWluZXItPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCBtYWtlU3Ry
aW5nKCdcbicsIGNoaWxkLnRleHQpKSk7CisgICAgICAgICAgICAgICAgbGluZUVsZW1lbnRzLmNo
aWxkcmVuLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKHRleHRDb250YWluZXIpKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpKTsKKyAgICAgICAgICAgIHRleHRSZWNvZ25pdGlvbkVs
ZW1lbnRzLmxpbmVzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKGxpbmVFbGVtZW50cykpOworICAg
ICAgICB9CisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgICAgIHRleHRSZWNvZ25p
dGlvbkVsZW1lbnRzLmRhdGFEZXRlY3RvcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyZXN1bHQu
ZGF0YURldGVjdG9ycy5zaXplKCkpOworICAgICAgICBmb3IgKGF1dG8mIGRhdGFEZXRlY3RvciA6
IHJlc3VsdC5kYXRhRGV0ZWN0b3JzKSB7CisgICAgICAgICAgICBhdXRvIGRhdGFEZXRlY3RvckNv
bnRhaW5lciA9IERhdGFEZXRlY3Rpb246OmNyZWF0ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoZG9j
dW1lbnQoKSwgZGF0YURldGVjdG9yKTsKKyAgICAgICAgICAgIGRhdGFEZXRlY3RvckNvbnRhaW5l
ci0+Y2xhc3NMaXN0KCkuYWRkKGltYWdlT3ZlcmxheURhdGFEZXRlY3RvckNsYXNzTmFtZSgpKTsK
KyAgICAgICAgICAgIHJvb3RDb250YWluZXItPmFwcGVuZENoaWxkKGRhdGFEZXRlY3RvckNvbnRh
aW5lcik7CisgICAgICAgICAgICB0ZXh0UmVjb2duaXRpb25FbGVtZW50cy5kYXRhRGV0ZWN0b3Jz
LnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKGRhdGFEZXRlY3RvckNvbnRhaW5lcikpOworICAgICAg
ICB9CisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQorCisgICAgICAgIGlmIChkb2N1
bWVudCgpLnF1aXJrcygpLm5lZWRzVG9Gb3JjZVVzZXJTZWxlY3RXaGVuSW5zdGFsbGluZ0ltYWdl
T3ZlcmxheSgpKQorICAgICAgICAgICAgc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0
eVdlYmtpdFVzZXJTZWxlY3QsIENTU1ZhbHVlVGV4dCk7CisgICAgfQorCiAgICAgaWYgKGF1dG8q
IHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgewogICAgICAgICBpZiAoIWlzPFJlbmRlcklt
YWdlPihyZW5kZXJlcikpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMzU3LDM5ICsxNDU2LDI0
IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoY29u
c3QgVGV4dFJlY29nbml0aW9uUmVzdWx0JiByCiAgICAgICAgIGRvd25jYXN0PFJlbmRlckltYWdl
PigqcmVuZGVyZXIpLnNldEhhc0ltYWdlT3ZlcmxheSgpOwogICAgIH0KIAotICAgIGF1dG8gc2hh
ZG93Um9vdCA9IG1ha2VSZWYoZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpKTsKLSAgICBpZiAo
IXByZXZpb3VzQ29udGFpbmVyKSB7CisgICAgaWYgKCFoYWRFeGlzdGluZ1RleHRSZWNvZ25pdGlv
bkVsZW1lbnRzKSB7CiAgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgU3RyaW5nPiBzaGFkb3dTdHlsZShTdHJpbmdJbXBsOjpjcmVhdGVXaXRob3V0Q29weWluZyhp
bWFnZU92ZXJsYXlVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2YoaW1hZ2VPdmVybGF5VXNlckFn
ZW50U3R5bGVTaGVldCkpKTsKICAgICAgICAgYXV0byBzdHlsZSA9IEhUTUxTdHlsZUVsZW1lbnQ6
OmNyZWF0ZShIVE1MTmFtZXM6OnN0eWxlVGFnLCBkb2N1bWVudCgpLCBmYWxzZSk7CiAgICAgICAg
IHN0eWxlLT5zZXRUZXh0Q29udGVudChzaGFkb3dTdHlsZSk7CiAgICAgICAgIHNoYWRvd1Jvb3Qt
PmFwcGVuZENoaWxkKFdURk1vdmUoc3R5bGUpKTsKICAgICB9CiAKLSAgICBhdXRvIGNvbnRhaW5l
ciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgY29udGFpbmVyLT5z
ZXRJZEF0dHJpYnV0ZShpbWFnZU92ZXJsYXlFbGVtZW50SWRlbnRpZmllcigpKTsKLSAgICBpZiAo
ZG9jdW1lbnQoKS5pc0ltYWdlRG9jdW1lbnQoKSkKLSAgICAgICAgY29udGFpbmVyLT5zZXRJbmxp
bmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVUZXh0
KTsKLSAgICBzaGFkb3dSb290LT5hcHBlbmRDaGlsZChjb250YWluZXIpOwotCi0gICAgaWYgKGRv
Y3VtZW50KCkucXVpcmtzKCkubmVlZHNUb0ZvcmNlVXNlclNlbGVjdFdoZW5JbnN0YWxsaW5nSW1h
Z2VPdmVybGF5KCkpCi0gICAgICAgIHNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlX
ZWJraXRVc2VyU2VsZWN0LCBDU1NWYWx1ZVRleHQpOwotCi0gICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbWFnZU92ZXJsYXlMaW5lQ2xhc3MoImlt
YWdlLW92ZXJsYXktbGluZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGltYWdl
T3ZlcmxheVRleHRDbGFzcygiaW1hZ2Utb3ZlcmxheS10ZXh0IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotCi0gICAgYm9vbCBoYXNVc2VyU2VsZWN0Tm9uZSA9IHJlbmRlcmVy
KCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS51c2VyU2VsZWN0KCkgPT0gVXNlclNlbGVjdDo6Tm9u
ZTsKICAgICBJbnRTaXplIGNvbnRhaW5lclNpemUgeyBvZmZzZXRXaWR0aCgpLCBvZmZzZXRIZWln
aHQoKSB9OwotICAgIGZvciAoYXV0byYgbGluZSA6IHJlc3VsdC5saW5lcykgeworICAgIGZvciAo
c2l6ZV90IGxpbmVJbmRleCA9IDA7IGxpbmVJbmRleCA8IHJlc3VsdC5saW5lcy5zaXplKCk7ICsr
bGluZUluZGV4KSB7CisgICAgICAgIGF1dG8mIGxpbmVFbGVtZW50cyA9IHRleHRSZWNvZ25pdGlv
bkVsZW1lbnRzLmxpbmVzW2xpbmVJbmRleF07CisgICAgICAgIGF1dG8mIGxpbmVDb250YWluZXIg
PSBsaW5lRWxlbWVudHMubGluZTsKKyAgICAgICAgYXV0byYgbGluZSA9IHJlc3VsdC5saW5lc1ts
aW5lSW5kZXhdOwogICAgICAgICBhdXRvIGxpbmVRdWFkID0gbGluZS5ub3JtYWxpemVkUXVhZDsK
ICAgICAgICAgaWYgKGxpbmVRdWFkLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
CiAgICAgICAgIGxpbmVRdWFkLnNjYWxlKGNvbnRhaW5lclNpemUud2lkdGgoKSwgY29udGFpbmVy
U2l6ZS5oZWlnaHQoKSk7CiAKLSAgICAgICAgYXV0byBsaW5lQ29udGFpbmVyID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICAgICAgbGluZUNvbnRhaW5lci0+Y2xhc3NM
aXN0KCkuYWRkKGltYWdlT3ZlcmxheUxpbmVDbGFzcyk7Ci0gICAgICAgIGNvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQobGluZUNvbnRhaW5lcik7Ci0KICAgICAgICAgYXV0byBsaW5lQm91bmRzID0gcm90
YXRlZEJvdW5kaW5nUmVjdFdpdGhNaW5pbXVtQW5nbGVPZlJvdGF0aW9uKGxpbmVRdWFkLCAwLjAx
KTsKICAgICAgICAgbGluZUNvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9w
ZXJ0eVdpZHRoLCBsaW5lQm91bmRzLnNpemUud2lkdGgoKSwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7
CiAgICAgICAgIGxpbmVDb250YWluZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVy
dHlIZWlnaHQsIGxpbmVCb3VuZHMuc2l6ZS5oZWlnaHQoKSwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7
CkBAIC0xNDE4LDEwICsxNTAyLDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aFRleHRS
ZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVjb2duaXRpb25SZXN1bHQmIHIKICAgICAgICAg
fSk7CiAKICAgICAgICAgZm9yIChzaXplX3QgY2hpbGRJbmRleCA9IDA7IGNoaWxkSW5kZXggPCBs
aW5lLmNoaWxkcmVuLnNpemUoKTsgKytjaGlsZEluZGV4KSB7Ci0gICAgICAgICAgICBhdXRvJiBj
aGlsZCA9IGxpbmUuY2hpbGRyZW5bY2hpbGRJbmRleF07Ci0gICAgICAgICAgICBpZiAoY2hpbGQu
bm9ybWFsaXplZFF1YWQuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCisg
ICAgICAgICAgICBhdXRvJiB0ZXh0Q29udGFpbmVyID0gbGluZUVsZW1lbnRzLmNoaWxkcmVuW2No
aWxkSW5kZXhdOwogICAgICAgICAgICAgYm9vbCBsaW5lSGFzT25lQ2hpbGQgPSBsaW5lLmNoaWxk
cmVuLnNpemUoKSA9PSAxOwogICAgICAgICAgICAgZmxvYXQgaG9yaXpvbnRhbE1hcmdpblRvTWlu
aW1pemVTZWxlY3Rpb25HYXBzID0gbGluZUhhc09uZUNoaWxkID8gMCA6IDAuMTI1OwogICAgICAg
ICAgICAgZmxvYXQgaG9yaXpvbnRhbE9mZnNldCA9IGxpbmVIYXNPbmVDaGlsZCA/IDAgOiAtaG9y
aXpvbnRhbE1hcmdpblRvTWluaW1pemVTZWxlY3Rpb25HYXBzOwpAQCAtMTQ0MiwxMyArMTUyMywx
MCBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KGNv
bnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYgcgogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBGbG9hdFNpemUgdGFyZ2V0U2l6ZSB7IGhvcml6b250YWxFeHRlbnQgLSBob3Jpem9udGFsT2Zm
c2V0LCBsaW5lQm91bmRzLnNpemUuaGVpZ2h0KCkgfTsKLSAgICAgICAgICAgIGlmICh0YXJnZXRT
aXplLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGlmICh0YXJnZXRTaXplLmlzRW1wdHkoKSkgewor
ICAgICAgICAgICAgICAgIHRleHRDb250YWluZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NT
UHJvcGVydHlUcmFuc2Zvcm0sICJzY2FsZSgwLCAwKSIpOwogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotCi0gICAgICAgICAgICBhdXRvIHRleHRDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgICAgICAgICAgdGV4dENvbnRhaW5lci0+Y2xhc3NMaXN0
KCkuYWRkKGltYWdlT3ZlcmxheVRleHRDbGFzcyk7Ci0gICAgICAgICAgICBsaW5lQ29udGFpbmVy
LT5hcHBlbmRDaGlsZCh0ZXh0Q29udGFpbmVyKTsKLSAgICAgICAgICAgIHRleHRDb250YWluZXIt
PmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCBtYWtlU3RyaW5nKCdcbicsIGNo
aWxkLnRleHQpKSk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0SWZEaW1lbnNpb25zT3V0T2ZEYXRlKHRleHRDb250YWluZXIpOwogCkBAIC0xNDYx
LDcgKzE1MzksNyBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9u
UmVzdWx0KGNvbnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYgcgogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBpZiAoc2l6ZUJlZm9yZVRyYW5zZm9ybS5pc0VtcHR5KCkpIHsKLSAgICAgICAg
ICAgICAgICB0ZXh0Q29udGFpbmVyLT5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICB0ZXh0Q29u
dGFpbmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5VHJhbnNmb3JtLCAic2Nh
bGUoMCwgMCkiKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KIApA
QCAtMTQ4MywxNCArMTU2MSwxMiBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJl
Y29nbml0aW9uUmVzdWx0KGNvbnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYgcgogICAgIH0KIAog
I2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICBmb3IgKGF1dG8mIGRhdGFEZXRlY3RvciA6
IHJlc3VsdC5kYXRhRGV0ZWN0b3JzKSB7CisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRl
eCA8IHJlc3VsdC5kYXRhRGV0ZWN0b3JzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICBhdXRv
IGRhdGFEZXRlY3RvckNvbnRhaW5lciA9IHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLmRhdGFEZXRl
Y3RvcnNbaW5kZXhdOworICAgICAgICBhdXRvJiBkYXRhRGV0ZWN0b3IgPSByZXN1bHQuZGF0YURl
dGVjdG9yc1tpbmRleF07CiAgICAgICAgIGlmIChkYXRhRGV0ZWN0b3Iubm9ybWFsaXplZFF1YWRz
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGF1dG8gZGF0YURl
dGVjdG9yQ29udGFpbmVyID0gRGF0YURldGVjdGlvbjo6Y3JlYXRlRWxlbWVudEZvckltYWdlT3Zl
cmxheShkb2N1bWVudCgpLCBkYXRhRGV0ZWN0b3IpOwotICAgICAgICBkYXRhRGV0ZWN0b3JDb250
YWluZXItPmNsYXNzTGlzdCgpLmFkZChpbWFnZU92ZXJsYXlEYXRhRGV0ZWN0b3JDbGFzc05hbWUo
KSk7Ci0gICAgICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZGF0YURldGVjdG9yQ29udGFpbmVy
KTsKLQogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNvbWUgdXAgd2l0aCBhIHdheSB0byBj
b2FsZXNjZSB0aGUgYm91bmRpbmcgcXVhZHMgaW50byBvbmUgb3IgbW9yZSByb3RhdGVkIHJlY3Rz
IHdpdGggdGhlIHNhbWUgYW5nbGUgb2Ygcm90YXRpb24uCiAgICAgICAgIGF1dG8gdGFyZ2V0UXVh
ZCA9IGRhdGFEZXRlY3Rvci5ub3JtYWxpemVkUXVhZHMuZmlyc3QoKTsKICAgICAgICAgdGFyZ2V0
UXVhZC5zY2FsZShjb250YWluZXJTaXplLndpZHRoKCksIGNvbnRhaW5lclNpemUuaGVpZ2h0KCkp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDM1OGIwZjQ2Yzc2NDEyYWFkNmIyZmIwZThiM2MwNjBiMzQ3Nzc1YzcuLmUyZGM4
YzRmZDVmOTQ0OTU4MzlhOWM2NzgyZmRkOTBlZGIwNTMyNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAyMS0wNi0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbTGl2ZSBUZXh0XSBUZXh0IHNlbGVjdGlvbiBpbnNpZGUgaW1hZ2UgZWxlbWVudHMg
c2hvdWxkIG5vdCBiZSBjbGVhcmVkIHVwb24gcmVzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY5MTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
bWFjL2ltYWdlLW92ZXJsYXktbWFpbnRhaW4tc2VsZWN0aW9uLWR1cmluZy1zaXplLWNoYW5nZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vbWFjL2ltYWdlLW92ZXJsYXktbWFpbnRhaW4tc2VsZWN0aW9uLWR1cmluZy1zaXplLWNoYW5n
ZS5odG1sOiBBZGRlZC4KKwogMjAyMS0wNi0xMCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgTm90aGluZyBpcyBrZWVwaW5nIG5hdmlnYXRvci54ciBhbGl2ZSBkdXJp
bmcgR0MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vbWFjL2ltYWdlLW92ZXJsYXktbWFpbnRhaW4tc2VsZWN0aW9uLWR1cmluZy1zaXplLWNoYW5n
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L21hYy9pbWFnZS1vdmVybGF5LW1haW50YWluLXNlbGVjdGlvbi1kdXJpbmctc2l6ZS1jaGFuZ2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NTgxM2NiNzRlZjExY2I5MTRlNDY1M2I5Zjc1NTcy
YjlmMTk0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LW1haW50YWluLXNlbGVjdGlvbi1kdXJpbmct
c2l6ZS1jaGFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1BBU1Mgc2VsZWN0aW9u
V2lkdGggaXMgMjAwCitQQVNTIHNlbGVjdGlvbkhlaWdodCBpcyAyMDAKK1BBU1Mgc2VsZWN0aW9u
V2lkdGggYmVjYW1lIDUwCitQQVNTIHNlbGVjdGlvbkhlaWdodCBpcyA1MAorUEFTUyBzZWxlY3Rp
b25XaWR0aCBiZWNhbWUgMjAwCitQQVNTIHNlbGVjdGlvbkhlaWdodCBpcyAyMDAKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5
LW1haW50YWluLXNlbGVjdGlvbi1kdXJpbmctc2l6ZS1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktbWFpbnRhaW4t
c2VsZWN0aW9uLWR1cmluZy1zaXplLWNoYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ODVkY2IxZmVj
MzljMjY2ZmJjMWY1YWI2OGZjMDU4N2ZjYTY1NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LW1haW50
YWluLXNlbGVjdGlvbi1kdXJpbmctc2l6ZS1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDU5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRy
dWU7CitsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKK2xldCBzZWxl
Y3Rpb25XaWR0aCA9IDA7CitsZXQgc2VsZWN0aW9uSGVpZ2h0ID0gMDsKKworZnVuY3Rpb24gdXBk
YXRlU2VsZWN0aW9uRGltZW5zaW9ucygpIHsKKyAgICBsZXQgc2VsZWN0aW9uQm91bmRzID0gaW50
ZXJuYWxzLnNlbGVjdGlvbkJvdW5kcygpOworICAgIHNlbGVjdGlvbldpZHRoID0gc2VsZWN0aW9u
Qm91bmRzLndpZHRoOworICAgIHNlbGVjdGlvbkhlaWdodCA9IHNlbGVjdGlvbkJvdW5kcy5oZWln
aHQ7Cit9CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgICAgIGludGVybmFscy5pbnN0YWxsSW1h
Z2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgICAg
ICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXh0IDogIkhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICAgICAgICAgICAgICB0
b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwg
MSksCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgfQorICAgICAgICBdKTsKKyAgICB9CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxD
aGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiLmltYWdl
LW92ZXJsYXktdGV4dCIpKTsKKyAgICB1cGRhdGVTZWxlY3Rpb25EaW1lbnNpb25zKCk7CisKKyAg
ICBzaG91bGRCZSgic2VsZWN0aW9uV2lkdGgiLCAiMjAwIik7CisgICAgc2hvdWxkQmUoInNlbGVj
dGlvbkhlaWdodCIsICIyMDAiKTsKKworICAgIGltYWdlLnN0eWxlLndpZHRoID0gIjEwMHB4IjsK
KyAgICBzZXRJbnRlcnZhbCh1cGRhdGVTZWxlY3Rpb25EaW1lbnNpb25zLCAxMCk7CisKKyAgICBh
d2FpdCBzaG91bGRCZWNvbWVFcXVhbCgic2VsZWN0aW9uV2lkdGgiLCAiNTAiKTsKKyAgICBzaG91
bGRCZSgic2VsZWN0aW9uSGVpZ2h0IiwgIjUwIik7CisKKyAgICBpbWFnZS5zdHlsZS53aWR0aCA9
ICIiOworICAgIGF3YWl0IHNob3VsZEJlY29tZUVxdWFsKCJzZWxlY3Rpb25XaWR0aCIsICIyMDAi
KTsKKyAgICBzaG91bGRCZSgic2VsZWN0aW9uSGVpZ2h0IiwgIjIwMCIpOworCisgICAgZmluaXNo
SlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431177</attachid>
            <date>2021-06-10 21:12:18 -0700</date>
            <delta_ts>2021-06-11 10:36:50 -0700</delta_ts>
            <desc>Remove unnecessary include</desc>
            <filename>bug-226911-20210610211217.patch</filename>
            <type>text/plain</type>
            <size>19819</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZhNTQwNTJjNDIzNzFi
OGEwOTQ2NmNlMGY0NWRhNzk3YWFmODk2OS4uOTE0ODBlYzc5YjkzYTY0YmE2ZDY2NWQzMTVkZDk4
NDA2NTRlOWQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA2LTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtMaXZlIFRleHRd
IFRleHQgc2VsZWN0aW9uIGluc2lkZSBpbWFnZSBlbGVtZW50cyBzaG91bGQgbm90IGJlIGNsZWFy
ZWQgdXBvbiByZXNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNjkxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlZmFjdG9yIGBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJl
c3VsdGAsIHN1Y2ggdGhhdCBpdCBkb2Vzbid0IHRlYXIgZG93biBhbmQgcmVjcmVhdGUgdGhlIGhv
c3QKKyAgICAgICAgZWxlbWVudCdzIHNoYWRvdyBET00gc3RydWN0dXJlIGluIHRoZSBjYXNlIHdo
ZXJlIHRoZSBleHRhbnQgRE9NIGVsZW1lbnRzIGFyZSBjb21wYXRpYmxlIHdpdGggdGhlIGdpdmVu
IHRleHQKKyAgICAgICAgcmVjb2duaXRpb24gcmVzdWx0LiBUaGlzIHByZXZlbnRzIHVzIGZyb20g
cmVtb3Zpbmcgb3IgaW5zZXJ0aW5nIERPTSBlbGVtZW50cyBpbiB0aGUgY2FzZSB3aGVyZSBhbiBp
bWFnZSBlbGVtZW50CisgICAgICAgIGlzIHJlc2l6ZWQgKGFuZCB0aHVzIGFkanVzdHMgaXRzIHNo
YWRvdyBET00gY29udGVudCB1c2luZyB0aGUgdXBkYXRlZCBzaXplKSwgd2hpY2ggaW4gdHVybiBw
cmV2ZW50cyB1cyBmcm9tCisgICAgICAgIGNsZWFyaW5nIG91dCB0aGUgdGV4dCBzZWxlY3Rpb24u
CisKKyAgICAgICAgVGVzdDogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Ut
b3ZlcmxheS1tYWludGFpbi1zZWxlY3Rpb24tZHVyaW5nLXNpemUtY2hhbmdlLmh0bWwKKworICAg
ICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcv
Y29jb2EvRGF0YURldGVjdGlvbi5tbToKKworICAgICAgICBNYWtlIHRoaXMgaGVscGVyIG1ldGhv
ZCByZXR1cm4gYW4gSFRNTERpdkVsZW1lbnQgaW5zdGVhZCBvZiBqdXN0IGFuIEhUTUxFbGVtZW50
LgorCisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjcmVhdGVFbGVtZW50Rm9ySW1h
Z2VPdmVybGF5KToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KToKKwor
ICAgICAgICBTcGxpdCB0aGlzIG1ldGhvZCBpbnRvIHR3byBsb2dpY2FsIHBhcnRzOiB0aGUgZmly
c3QgYnVpbGRzIHVwIGEgVGV4dFJlY29nbml0aW9uRWxlbWVudHMgc3RydWN0IHRoYXQgY29udGFp
bnMKKyAgICAgICAgcmVmZXJlbmNlcyB0byBhbGwgY29ubmVjdGVkIGVsZW1lbnRzIGluIHRoZSBp
bWFnZSBlbGVtZW50J3Mgc2hhZG93IERPTSB0aGF0IHJlcXVpcmUgc3R5bGUgdXBkYXRlcyBkdWUg
dG8gdGhlCisgICAgICAgIG5ldyBzaXplOyB0aGUgc2Vjb25kIHVzZXMgdGhpcyBUZXh0UmVjb2du
aXRpb25FbGVtZW50cyBpbmZvcm1hdGlvbiB0byBjb21wdXRlIHRoZSBuZXcgQ1NTIHRyYW5zZm9y
bXMgdG8gYXBwbHkgdG8KKyAgICAgICAgZWFjaCBvZiB0aGUgZGF0YSBkZXRlY3RvciwgbGluZSBj
b250YWluZXJzLCBhbmQgdGV4dCBjb250YWluZXJzIHVuZGVybmVhdGggZWFjaCBsaW5lIGNvbnRh
aW5lciBlbGVtZW50LgorCisgICAgICAgIEltcG9ydGFudGx5LCBpbiBzdGVwICgxKSwgd2UgYXZv
aWQgcmVnZXJhdGluZyBzaGFkb3cgRE9NIGNvbnRlbnQgaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIERP
TSBlbGVtZW50cyBhbHJlYWR5CisgICAgICAgIGV4aXN0IGluIHRoZWlyIGV4cGVjdGVkIHBsYWNl
cyB3aXRoaW4gdGhlIHNoYWRvdyBET00uCisKIDIwMjEtMDYtMTAgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1JFR1JFU1NJT05dW0N1cmxdIE5ldHdv
cms6OlJlc291cmNlVGltaW5nIGFyZSBicm9rZW4gYWZ0ZXIgcjI3ODM5MQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaAppbmRleCA1OGE2OWNjNzg0MzMxZjBi
NDE2ODFlMDkyMzQ3ZDk1ZjQzMWVjNmRhLi45MzFjN2M5Njk1ZmFiOGNiZDQ2NzMyZGRkZGFhYWE5
MmMxZWQxODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFE
ZXRlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rp
b24uaApAQCAtNDAsNyArNDAsNyBAQCBPQkpDX0NMQVNTIE5TRGljdGlvbmFyeTsKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBIVE1MRWxlbWVudDsKK2NsYXNz
IEhUTUxEaXZFbGVtZW50OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIFF1YWxpZmllZE5h
bWU7CiBzdHJ1Y3QgVGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yOwpAQCAtNjcsNyArNjcsNyBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICBzdGF0
aWMgUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVybGF5KERvY3VtZW50
JiwgY29uc3QgVGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yJik7CisgICAgc3RhdGljIFJlZjxI
VE1MRGl2RWxlbWVudD4gY3JlYXRlRWxlbWVudEZvckltYWdlT3ZlcmxheShEb2N1bWVudCYsIGNv
bnN0IFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3RvciYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMg
Y29uc3QgU3RyaW5nJiBkYXRhRGV0ZWN0b3JVUkxQcm90b2NvbCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCmluZGV4IDBiMGJiNmM2MDMwNTc3NzQ2
NjU4YjhkOThmY2VkNmVkZTg1OWFhMzEuLmY3MmFmYzZlMTViMDIyNTBlOTIyZjc2ZTAzZTQ2NDIz
M2Y4MDM1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURl
dGVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rp
b24ubW0KQEAgLTY4OSw3ICs2ODksNyBAQCBib29sIERhdGFEZXRlY3Rpb246OmlzRGF0YURldGVj
dG9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50KQogCiAjaWYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQogCi1SZWY8SFRNTEVsZW1lbnQ+IERhdGFEZXRlY3Rpb246OmNyZWF0ZUVsZW1lbnRG
b3JJbWFnZU92ZXJsYXkoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBUZXh0UmVjb2duaXRpb25E
YXRhRGV0ZWN0b3ImIGluZm8pCitSZWY8SFRNTERpdkVsZW1lbnQ+IERhdGFEZXRlY3Rpb246OmNy
ZWF0ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBUZXh0
UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImIGluZm8pCiB7CiAgICAgYXV0byBjb250YWluZXIgPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBpZiAoYXV0byBmcmFtZSA9IG1h
a2VSZWZQdHIoZG9jdW1lbnQuZnJhbWUoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAKaW5kZXggYzUzMGE1NDg5MTVjYjVmOWYzZTQxM2Y2Y2Y1MDIxNmU3YzA5ZjI4MS4uOTBhY2Yx
YzFiOWY4ZmE4ZmI0YjBlMmU5NzZkZTNjYWVkYTM4YTY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKQEAgLTEzMzMsMjMgKzEzMzMsMTIxIEBAIGJvb2wgSFRNTEVsZW1lbnQ6Omlz
SW1hZ2VPdmVybGF5VGV4dChjb25zdCBOb2RlJiBub2RlKQogCiB2b2lkIEhUTUxFbGVtZW50Ojp1
cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFRleHRSZWNvZ25pdGlvblJlc3Vs
dCYgcmVzdWx0LCBDYWNoZVRleHRSZWNvZ25pdGlvblJlc3VsdHMgY2FjaGVUZXh0UmVjb2duaXRp
b25SZXN1bHRzKQogewotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcHJldmlvdXNDb250YWlu
ZXI7Ci0gICAgaWYgKGF1dG8gc2hhZG93Um9vdCA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsgc2hh
ZG93Um9vdCAmJiBoYXNJbWFnZU92ZXJsYXkoKSkgewotICAgICAgICBmb3IgKGF1dG8mIGNoaWxk
IDogY2hpbGRyZW5PZlR5cGU8SFRNTERpdkVsZW1lbnQ+KCpzaGFkb3dSb290KSkgeworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW1hZ2VPdmVy
bGF5TGluZUNsYXNzKCJpbWFnZS1vdmVybGF5LWxpbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBpbWFnZU92ZXJsYXlUZXh0Q2xhc3MoImltYWdlLW92ZXJsYXktdGV4dCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKworICAgIHN0cnVjdCBUZXh0UmVjb2du
aXRpb25MaW5lRWxlbWVudHMgeworICAgICAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IGxpbmU7Cisg
ICAgICAgIFZlY3RvcjxSZWY8SFRNTERpdkVsZW1lbnQ+PiBjaGlsZHJlbjsKKyAgICB9OworCisg
ICAgc3RydWN0IFRleHRSZWNvZ25pdGlvbkVsZW1lbnRzIHsKKyAgICAgICAgUmVmUHRyPEhUTUxE
aXZFbGVtZW50PiByb290OworICAgICAgICBWZWN0b3I8VGV4dFJlY29nbml0aW9uTGluZUVsZW1l
bnRzPiBsaW5lczsKKyAgICAgICAgVmVjdG9yPFJlZjxIVE1MRGl2RWxlbWVudD4+IGRhdGFEZXRl
Y3RvcnM7CisgICAgfTsKKworICAgIGJvb2wgaGFkRXhpc3RpbmdUZXh0UmVjb2duaXRpb25FbGVt
ZW50cyA9IGZhbHNlOworICAgIFRleHRSZWNvZ25pdGlvbkVsZW1lbnRzIHRleHRSZWNvZ25pdGlv
bkVsZW1lbnRzOworCisgICAgaWYgKGhhc0ltYWdlT3ZlcmxheSgpKSB7CisgICAgICAgIGZvciAo
YXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxIVE1MRGl2RWxlbWVudD4oKnVzZXJBZ2VudFNo
YWRvd1Jvb3QoKSkpIHsKICAgICAgICAgICAgIGlmIChjaGlsZC5nZXRJZEF0dHJpYnV0ZSgpID09
IGltYWdlT3ZlcmxheUVsZW1lbnRJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgICAgICAgICBwcmV2
aW91c0NvbnRhaW5lciA9ICZjaGlsZDsKKyAgICAgICAgICAgICAgICB0ZXh0UmVjb2duaXRpb25F
bGVtZW50cy5yb290ID0gJmNoaWxkOworICAgICAgICAgICAgICAgIGhhZEV4aXN0aW5nVGV4dFJl
Y29nbml0aW9uRWxlbWVudHMgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlmIChwcmV2aW91c0NvbnRhaW5lcikKLSAgICAg
ICAgICAgIHByZXZpb3VzQ29udGFpbmVyLT5yZW1vdmUoKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgaWYgKHRleHRSZWNvZ25p
dGlvbkVsZW1lbnRzLnJvb3QpIHsKKyAgICAgICAgZm9yIChhdXRvJiBsaW5lT3JEYXRhRGV0ZWN0
b3IgOiBjaGlsZHJlbk9mVHlwZTxIVE1MRGl2RWxlbWVudD4oKnRleHRSZWNvZ25pdGlvbkVsZW1l
bnRzLnJvb3QpKSB7CisgICAgICAgICAgICBpZiAoIWxpbmVPckRhdGFEZXRlY3Rvci5oYXNDbGFz
cygpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAobGluZU9y
RGF0YURldGVjdG9yLmNsYXNzTGlzdCgpLmNvbnRhaW5zKGltYWdlT3ZlcmxheUxpbmVDbGFzcykp
IHsKKyAgICAgICAgICAgICAgICBUZXh0UmVjb2duaXRpb25MaW5lRWxlbWVudHMgbGluZUVsZW1l
bnRzIHsgbGluZU9yRGF0YURldGVjdG9yIH07CisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiB0
ZXh0IDogY2hpbGRyZW5PZlR5cGU8SFRNTERpdkVsZW1lbnQ+KGxpbmVPckRhdGFEZXRlY3Rvcikp
CisgICAgICAgICAgICAgICAgICAgIGxpbmVFbGVtZW50cy5jaGlsZHJlbi5hcHBlbmQodGV4dCk7
CisgICAgICAgICAgICAgICAgdGV4dFJlY29nbml0aW9uRWxlbWVudHMubGluZXMuYXBwZW5kKFdU
Rk1vdmUobGluZUVsZW1lbnRzKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGxpbmVPckRhdGFE
ZXRlY3Rvci5jbGFzc0xpc3QoKS5jb250YWlucyhpbWFnZU92ZXJsYXlEYXRhRGV0ZWN0b3JDbGFz
c05hbWUoKSkpCisgICAgICAgICAgICAgICAgdGV4dFJlY29nbml0aW9uRWxlbWVudHMuZGF0YURl
dGVjdG9ycy5hcHBlbmQobGluZU9yRGF0YURldGVjdG9yKTsKKyAgICAgICAgfQorCisgICAgICAg
IGJvb2wgY2FuVXNlRXhpc3RpbmdUZXh0UmVjb2duaXRpb25FbGVtZW50cyA9IChbJl0geworICAg
ICAgICAgICAgaWYgKHJlc3VsdC5kYXRhRGV0ZWN0b3JzLnNpemUoKSAhPSB0ZXh0UmVjb2duaXRp
b25FbGVtZW50cy5kYXRhRGV0ZWN0b3JzLnNpemUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgICAgIGlmIChyZXN1bHQubGluZXMuc2l6ZSgpICE9IHRleHRSZWNv
Z25pdGlvbkVsZW1lbnRzLmxpbmVzLnNpemUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGxpbmVJbmRleCA9IDA7IGxpbmVJbmRleCA8
IHJlc3VsdC5saW5lcy5zaXplKCk7ICsrbGluZUluZGV4KSB7CisgICAgICAgICAgICAgICAgYXV0
byYgY2hpbGRSZXN1bHRzID0gcmVzdWx0LmxpbmVzW2xpbmVJbmRleF0uY2hpbGRyZW47CisgICAg
ICAgICAgICAgICAgYXV0byYgY2hpbGRUZXh0RWxlbWVudHMgPSB0ZXh0UmVjb2duaXRpb25FbGVt
ZW50cy5saW5lc1tsaW5lSW5kZXhdLmNoaWxkcmVuOworICAgICAgICAgICAgICAgIGlmIChjaGls
ZFJlc3VsdHMuc2l6ZSgpICE9IGNoaWxkVGV4dEVsZW1lbnRzLnNpemUoKSkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgY2hp
bGRJbmRleCA9IDA7IGNoaWxkSW5kZXggPCBjaGlsZFJlc3VsdHMuc2l6ZSgpOyArK2NoaWxkSW5k
ZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkUmVzdWx0c1tjaGlsZEluZGV4XS50
ZXh0ICE9IGNoaWxkVGV4dEVsZW1lbnRzW2NoaWxkSW5kZXhdLT50ZXh0Q29udGVudCgpLnN0cmlw
V2hpdGVTcGFjZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0pKCk7CisKKyAgICAgICAgaWYgKCFjYW5Vc2VFeGlzdGluZ1RleHRSZWNvZ25p
dGlvbkVsZW1lbnRzKSB7CisgICAgICAgICAgICB0ZXh0UmVjb2duaXRpb25FbGVtZW50cy5yb290
LT5yZW1vdmUoKTsKKyAgICAgICAgICAgIHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzID0geyB9Owor
ICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKHJlc3VsdC5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIGF1dG8gc2hhZG93Um9vdCA9IG1ha2VSZWYoZW5zdXJlVXNlckFnZW50U2hh
ZG93Um9vdCgpKTsKKyAgICBib29sIGhhc1VzZXJTZWxlY3ROb25lID0gcmVuZGVyZXIoKSAmJiBy
ZW5kZXJlcigpLT5zdHlsZSgpLnVzZXJTZWxlY3QoKSA9PSBVc2VyU2VsZWN0OjpOb25lOworICAg
IGlmICghdGV4dFJlY29nbml0aW9uRWxlbWVudHMucm9vdCkgeworICAgICAgICBhdXRvIHJvb3RD
b250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgICAgICBy
b290Q29udGFpbmVyLT5zZXRJZEF0dHJpYnV0ZShpbWFnZU92ZXJsYXlFbGVtZW50SWRlbnRpZmll
cigpKTsKKyAgICAgICAgaWYgKGRvY3VtZW50KCkuaXNJbWFnZURvY3VtZW50KCkpCisgICAgICAg
ICAgICByb290Q29udGFpbmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2Vi
a2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVUZXh0KTsKKyAgICAgICAgc2hhZG93Um9vdC0+YXBwZW5k
Q2hpbGQocm9vdENvbnRhaW5lcik7CisgICAgICAgIHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLnJv
b3QgPSByb290Q29udGFpbmVyLmNvcHlSZWYoKTsKKyAgICAgICAgdGV4dFJlY29nbml0aW9uRWxl
bWVudHMubGluZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyZXN1bHQubGluZXMuc2l6ZSgpKTsK
KyAgICAgICAgZm9yIChhdXRvJiBsaW5lIDogcmVzdWx0LmxpbmVzKSB7CisgICAgICAgICAgICBh
dXRvIGxpbmVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwor
ICAgICAgICAgICAgbGluZUNvbnRhaW5lci0+Y2xhc3NMaXN0KCkuYWRkKGltYWdlT3ZlcmxheUxp
bmVDbGFzcyk7CisgICAgICAgICAgICByb290Q29udGFpbmVyLT5hcHBlbmRDaGlsZChsaW5lQ29u
dGFpbmVyKTsKKyAgICAgICAgICAgIFRleHRSZWNvZ25pdGlvbkxpbmVFbGVtZW50cyBsaW5lRWxl
bWVudHMgeyBsaW5lQ29udGFpbmVyIH07CisgICAgICAgICAgICBsaW5lRWxlbWVudHMuY2hpbGRy
ZW4ucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShsaW5lLmNoaWxkcmVuLnNpemUoKSk7CisgICAgICAg
ICAgICBmb3IgKHNpemVfdCBjaGlsZEluZGV4ID0gMDsgY2hpbGRJbmRleCA8IGxpbmUuY2hpbGRy
ZW4uc2l6ZSgpOyArK2NoaWxkSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBjaGlsZCA9
IGxpbmUuY2hpbGRyZW5bY2hpbGRJbmRleF07CisgICAgICAgICAgICAgICAgYXV0byB0ZXh0Q29u
dGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICAgICAgICAg
ICAgICB0ZXh0Q29udGFpbmVyLT5jbGFzc0xpc3QoKS5hZGQoaW1hZ2VPdmVybGF5VGV4dENsYXNz
KTsKKyAgICAgICAgICAgICAgICBsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0ZXh0Q29udGFp
bmVyKTsKKyAgICAgICAgICAgICAgICB0ZXh0Q29udGFpbmVyLT5hcHBlbmRDaGlsZChUZXh0Ojpj
cmVhdGUoZG9jdW1lbnQoKSwgbWFrZVN0cmluZygnXG4nLCBjaGlsZC50ZXh0KSkpOworICAgICAg
ICAgICAgICAgIGxpbmVFbGVtZW50cy5jaGlsZHJlbi51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSh0
ZXh0Q29udGFpbmVyKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmVDb250YWlu
ZXItPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSk7CisgICAg
ICAgICAgICB0ZXh0UmVjb2duaXRpb25FbGVtZW50cy5saW5lcy51bmNoZWNrZWRBcHBlbmQoV1RG
TW92ZShsaW5lRWxlbWVudHMpKTsKKyAgICAgICAgfQorCisjaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQorICAgICAgICB0ZXh0UmVjb2duaXRpb25FbGVtZW50cy5kYXRhRGV0ZWN0b3JzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkocmVzdWx0LmRhdGFEZXRlY3RvcnMuc2l6ZSgpKTsKKyAgICAgICAg
Zm9yIChhdXRvJiBkYXRhRGV0ZWN0b3IgOiByZXN1bHQuZGF0YURldGVjdG9ycykgeworICAgICAg
ICAgICAgYXV0byBkYXRhRGV0ZWN0b3JDb250YWluZXIgPSBEYXRhRGV0ZWN0aW9uOjpjcmVhdGVF
bGVtZW50Rm9ySW1hZ2VPdmVybGF5KGRvY3VtZW50KCksIGRhdGFEZXRlY3Rvcik7CisgICAgICAg
ICAgICBkYXRhRGV0ZWN0b3JDb250YWluZXItPmNsYXNzTGlzdCgpLmFkZChpbWFnZU92ZXJsYXlE
YXRhRGV0ZWN0b3JDbGFzc05hbWUoKSk7CisgICAgICAgICAgICByb290Q29udGFpbmVyLT5hcHBl
bmRDaGlsZChkYXRhRGV0ZWN0b3JDb250YWluZXIpOworICAgICAgICAgICAgdGV4dFJlY29nbml0
aW9uRWxlbWVudHMuZGF0YURldGVjdG9ycy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZShkYXRhRGV0
ZWN0b3JDb250YWluZXIpKTsKKyAgICAgICAgfQorI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKKworICAgICAgICBpZiAoZG9jdW1lbnQoKS5xdWlya3MoKS5uZWVkc1RvRm9yY2VVc2Vy
U2VsZWN0V2hlbkluc3RhbGxpbmdJbWFnZU92ZXJsYXkoKSkKKyAgICAgICAgICAgIHNldElubGlu
ZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRVc2VyU2VsZWN0LCBDU1NWYWx1ZVRleHQp
OworICAgIH0KKwogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpIHsK
ICAgICAgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKQogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMTM1NywzOSArMTQ1NSwyNCBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRo
VGV4dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYgcgogICAg
ICAgICBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5zZXRIYXNJbWFnZU92ZXJsYXko
KTsKICAgICB9CiAKLSAgICBhdXRvIHNoYWRvd1Jvb3QgPSBtYWtlUmVmKGVuc3VyZVVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKSk7Ci0gICAgaWYgKCFwcmV2aW91c0NvbnRhaW5lcikgeworICAgIGlmICgh
aGFkRXhpc3RpbmdUZXh0UmVjb2duaXRpb25FbGVtZW50cykgewogICAgICAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gc2hhZG93U3R5bGUoU3RyaW5nSW1w
bDo6Y3JlYXRlV2l0aG91dENvcHlpbmcoaW1hZ2VPdmVybGF5VXNlckFnZW50U3R5bGVTaGVldCwg
c2l6ZW9mKGltYWdlT3ZlcmxheVVzZXJBZ2VudFN0eWxlU2hlZXQpKSk7CiAgICAgICAgIGF1dG8g
c3R5bGUgPSBIVE1MU3R5bGVFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjpzdHlsZVRhZywgZG9j
dW1lbnQoKSwgZmFsc2UpOwogICAgICAgICBzdHlsZS0+c2V0VGV4dENvbnRlbnQoc2hhZG93U3R5
bGUpOwogICAgICAgICBzaGFkb3dSb290LT5hcHBlbmRDaGlsZChXVEZNb3ZlKHN0eWxlKSk7CiAg
ICAgfQogCi0gICAgYXV0byBjb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpOwotICAgIGNvbnRhaW5lci0+c2V0SWRBdHRyaWJ1dGUoaW1hZ2VPdmVybGF5RWxlbWVu
dElkZW50aWZpZXIoKSk7Ci0gICAgaWYgKGRvY3VtZW50KCkuaXNJbWFnZURvY3VtZW50KCkpCi0g
ICAgICAgIGNvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtp
dFVzZXJTZWxlY3QsIENTU1ZhbHVlVGV4dCk7Ci0gICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQo
Y29udGFpbmVyKTsKLQotICAgIGlmIChkb2N1bWVudCgpLnF1aXJrcygpLm5lZWRzVG9Gb3JjZVVz
ZXJTZWxlY3RXaGVuSW5zdGFsbGluZ0ltYWdlT3ZlcmxheSgpKQotICAgICAgICBzZXRJbmxpbmVT
dHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVUZXh0KTsK
LQotICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
aW1hZ2VPdmVybGF5TGluZUNsYXNzKCJpbWFnZS1vdmVybGF5LWxpbmUiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBpbWFnZU92ZXJsYXlUZXh0Q2xhc3MoImltYWdlLW92ZXJsYXkt
dGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLQotICAgIGJvb2wgaGFz
VXNlclNlbGVjdE5vbmUgPSByZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnN0eWxlKCkudXNlclNl
bGVjdCgpID09IFVzZXJTZWxlY3Q6Ok5vbmU7CiAgICAgSW50U2l6ZSBjb250YWluZXJTaXplIHsg
b2Zmc2V0V2lkdGgoKSwgb2Zmc2V0SGVpZ2h0KCkgfTsKLSAgICBmb3IgKGF1dG8mIGxpbmUgOiBy
ZXN1bHQubGluZXMpIHsKKyAgICBmb3IgKHNpemVfdCBsaW5lSW5kZXggPSAwOyBsaW5lSW5kZXgg
PCByZXN1bHQubGluZXMuc2l6ZSgpOyArK2xpbmVJbmRleCkgeworICAgICAgICBhdXRvJiBsaW5l
RWxlbWVudHMgPSB0ZXh0UmVjb2duaXRpb25FbGVtZW50cy5saW5lc1tsaW5lSW5kZXhdOworICAg
ICAgICBhdXRvJiBsaW5lQ29udGFpbmVyID0gbGluZUVsZW1lbnRzLmxpbmU7CisgICAgICAgIGF1
dG8mIGxpbmUgPSByZXN1bHQubGluZXNbbGluZUluZGV4XTsKICAgICAgICAgYXV0byBsaW5lUXVh
ZCA9IGxpbmUubm9ybWFsaXplZFF1YWQ7CiAgICAgICAgIGlmIChsaW5lUXVhZC5pc0VtcHR5KCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBsaW5lUXVhZC5zY2FsZShjb250YWlu
ZXJTaXplLndpZHRoKCksIGNvbnRhaW5lclNpemUuaGVpZ2h0KCkpOwogCi0gICAgICAgIGF1dG8g
bGluZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAg
ICAgIGxpbmVDb250YWluZXItPmNsYXNzTGlzdCgpLmFkZChpbWFnZU92ZXJsYXlMaW5lQ2xhc3Mp
OwotICAgICAgICBjb250YWluZXItPmFwcGVuZENoaWxkKGxpbmVDb250YWluZXIpOwotCiAgICAg
ICAgIGF1dG8gbGluZUJvdW5kcyA9IHJvdGF0ZWRCb3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xl
T2ZSb3RhdGlvbihsaW5lUXVhZCwgMC4wMSk7CiAgICAgICAgIGxpbmVDb250YWluZXItPnNldElu
bGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlXaWR0aCwgbGluZUJvdW5kcy5zaXplLndpZHRo
KCksIENTU1VuaXRUeXBlOjpDU1NfUFgpOwogICAgICAgICBsaW5lQ29udGFpbmVyLT5zZXRJbmxp
bmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SGVpZ2h0LCBsaW5lQm91bmRzLnNpemUuaGVpZ2h0
KCksIENTU1VuaXRUeXBlOjpDU1NfUFgpOwpAQCAtMTQxOCwxMCArMTUwMSw3IEBAIHZvaWQgSFRN
TEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgVGV4dFJlY29n
bml0aW9uUmVzdWx0JiByCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAoc2l6ZV90IGNoaWxk
SW5kZXggPSAwOyBjaGlsZEluZGV4IDwgbGluZS5jaGlsZHJlbi5zaXplKCk7ICsrY2hpbGRJbmRl
eCkgewotICAgICAgICAgICAgYXV0byYgY2hpbGQgPSBsaW5lLmNoaWxkcmVuW2NoaWxkSW5kZXhd
OwotICAgICAgICAgICAgaWYgKGNoaWxkLm5vcm1hbGl6ZWRRdWFkLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLQorICAgICAgICAgICAgYXV0byYgdGV4dENvbnRhaW5lciA9
IGxpbmVFbGVtZW50cy5jaGlsZHJlbltjaGlsZEluZGV4XTsKICAgICAgICAgICAgIGJvb2wgbGlu
ZUhhc09uZUNoaWxkID0gbGluZS5jaGlsZHJlbi5zaXplKCkgPT0gMTsKICAgICAgICAgICAgIGZs
b2F0IGhvcml6b250YWxNYXJnaW5Ub01pbmltaXplU2VsZWN0aW9uR2FwcyA9IGxpbmVIYXNPbmVD
aGlsZCA/IDAgOiAwLjEyNTsKICAgICAgICAgICAgIGZsb2F0IGhvcml6b250YWxPZmZzZXQgPSBs
aW5lSGFzT25lQ2hpbGQgPyAwIDogLWhvcml6b250YWxNYXJnaW5Ub01pbmltaXplU2VsZWN0aW9u
R2FwczsKQEAgLTE0NDIsMTMgKzE1MjIsMTAgQEAgdm9pZCBIVE1MRWxlbWVudDo6dXBkYXRlV2l0
aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVjb2duaXRpb25SZXN1bHQmIHIKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgRmxvYXRTaXplIHRhcmdldFNpemUgeyBob3Jpem9u
dGFsRXh0ZW50IC0gaG9yaXpvbnRhbE9mZnNldCwgbGluZUJvdW5kcy5zaXplLmhlaWdodCgpIH07
Ci0gICAgICAgICAgICBpZiAodGFyZ2V0U2l6ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBpZiAo
dGFyZ2V0U2l6ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICB0ZXh0Q29udGFpbmVyLT5z
ZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5VHJhbnNmb3JtLCAic2NhbGUoMCwgMCki
KTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgYXV0byB0ZXh0Q29u
dGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICAgICAgICAg
IHRleHRDb250YWluZXItPmNsYXNzTGlzdCgpLmFkZChpbWFnZU92ZXJsYXlUZXh0Q2xhc3MpOwot
ICAgICAgICAgICAgbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGV4dENvbnRhaW5lcik7Ci0g
ICAgICAgICAgICB0ZXh0Q29udGFpbmVyLT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoZG9jdW1l
bnQoKSwgbWFrZVN0cmluZygnXG4nLCBjaGlsZC50ZXh0KSkpOworICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElmRGltZW5zaW9uc091dE9mRGF0ZSh0
ZXh0Q29udGFpbmVyKTsKIApAQCAtMTQ2MSw3ICsxNTM4LDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6
dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVjb2duaXRpb25SZXN1
bHQmIHIKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKHNpemVCZWZvcmVUcmFuc2Zv
cm0uaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgdGV4dENvbnRhaW5lci0+cmVtb3ZlKCk7
CisgICAgICAgICAgICAgICAgdGV4dENvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShD
U1NQcm9wZXJ0eVRyYW5zZm9ybSwgInNjYWxlKDAsIDApIik7CiAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICB9CiAKQEAgLTE0ODMsMTQgKzE1NjAsMTIgQEAgdm9pZCBIVE1M
RWxlbWVudDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVjb2du
aXRpb25SZXN1bHQmIHIKICAgICB9CiAKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAg
Zm9yIChhdXRvJiBkYXRhRGV0ZWN0b3IgOiByZXN1bHQuZGF0YURldGVjdG9ycykgeworICAgIGZv
ciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCByZXN1bHQuZGF0YURldGVjdG9ycy5zaXplKCk7
ICsraW5kZXgpIHsKKyAgICAgICAgYXV0byBkYXRhRGV0ZWN0b3JDb250YWluZXIgPSB0ZXh0UmVj
b2duaXRpb25FbGVtZW50cy5kYXRhRGV0ZWN0b3JzW2luZGV4XTsKKyAgICAgICAgYXV0byYgZGF0
YURldGVjdG9yID0gcmVzdWx0LmRhdGFEZXRlY3RvcnNbaW5kZXhdOwogICAgICAgICBpZiAoZGF0
YURldGVjdG9yLm5vcm1hbGl6ZWRRdWFkcy5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICBhdXRvIGRhdGFEZXRlY3RvckNvbnRhaW5lciA9IERhdGFEZXRlY3Rpb246
OmNyZWF0ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoZG9jdW1lbnQoKSwgZGF0YURldGVjdG9yKTsK
LSAgICAgICAgZGF0YURldGVjdG9yQ29udGFpbmVyLT5jbGFzc0xpc3QoKS5hZGQoaW1hZ2VPdmVy
bGF5RGF0YURldGVjdG9yQ2xhc3NOYW1lKCkpOwotICAgICAgICBjb250YWluZXItPmFwcGVuZENo
aWxkKGRhdGFEZXRlY3RvckNvbnRhaW5lcik7Ci0KICAgICAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBjb21lIHVwIHdpdGggYSB3YXkgdG8gY29hbGVzY2UgdGhlIGJvdW5kaW5nIHF1YWRzIGludG8g
b25lIG9yIG1vcmUgcm90YXRlZCByZWN0cyB3aXRoIHRoZSBzYW1lIGFuZ2xlIG9mIHJvdGF0aW9u
LgogICAgICAgICBhdXRvIHRhcmdldFF1YWQgPSBkYXRhRGV0ZWN0b3Iubm9ybWFsaXplZFF1YWRz
LmZpcnN0KCk7CiAgICAgICAgIHRhcmdldFF1YWQuc2NhbGUoY29udGFpbmVyU2l6ZS53aWR0aCgp
LCBjb250YWluZXJTaXplLmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNThiMGY0NmM3NjQxMmFhZDZiMmZi
MGU4YjNjMDYwYjM0Nzc3NWM3Li5lMmRjOGM0ZmQ1Zjk0NDk1ODM5YTljNjc4MmZkZDkwZWRiMDUz
Mjc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDYtMTAgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xpdmUgVGV4dF0gVGV4dCBzZWxlY3Rp
b24gaW5zaWRlIGltYWdlIGVsZW1lbnRzIHNob3VsZCBub3QgYmUgY2xlYXJlZCB1cG9uIHJlc2l6
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2OTEx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LW1haW50YWluLXNlbGVj
dGlvbi1kdXJpbmctc2l6ZS1jaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LW1haW50YWluLXNl
bGVjdGlvbi1kdXJpbmctc2l6ZS1jaGFuZ2UuaHRtbDogQWRkZWQuCisKIDIwMjEtMDYtMTAgIFNh
bSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdGhpbmcgaXMga2VlcGlu
ZyBuYXZpZ2F0b3IueHIgYWxpdmUgZHVyaW5nIEdDCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LW1haW50YWluLXNl
bGVjdGlvbi1kdXJpbmctc2l6ZS1jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS1tYWludGFpbi1zZWxl
Y3Rpb24tZHVyaW5nLXNpemUtY2hhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjU4MTNj
Yjc0ZWYxMWNiOTE0ZTQ2NTNiOWY3NTU3MmI5ZjE5NDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS1t
YWludGFpbi1zZWxlY3Rpb24tZHVyaW5nLXNpemUtY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitQQVNTIHNlbGVjdGlvbldpZHRoIGlzIDIwMAorUEFTUyBzZWxlY3Rpb25IZWln
aHQgaXMgMjAwCitQQVNTIHNlbGVjdGlvbldpZHRoIGJlY2FtZSA1MAorUEFTUyBzZWxlY3Rpb25I
ZWlnaHQgaXMgNTAKK1BBU1Mgc2VsZWN0aW9uV2lkdGggYmVjYW1lIDIwMAorUEFTUyBzZWxlY3Rp
b25IZWlnaHQgaXMgMjAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS1tYWludGFpbi1zZWxlY3Rpb24tZHVyaW5nLXNpemUt
Y2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21h
Yy9pbWFnZS1vdmVybGF5LW1haW50YWluLXNlbGVjdGlvbi1kdXJpbmctc2l6ZS1jaGFuZ2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40Njg1ZGNiMWZlYzM5YzI2NmZiYzFmNWFiNjhmYzA1ODdmY2E2NTQ5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9tYWMvaW1hZ2Utb3ZlcmxheS1tYWludGFpbi1zZWxlY3Rpb24tZHVyaW5nLXNpemUtY2hhbmdl
Lmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4K
KzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNj
cmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigiaW1nIik7CitsZXQgc2VsZWN0aW9uV2lkdGggPSAwOworbGV0IHNlbGVjdGlvbkhl
aWdodCA9IDA7CisKK2Z1bmN0aW9uIHVwZGF0ZVNlbGVjdGlvbkRpbWVuc2lvbnMoKSB7CisgICAg
bGV0IHNlbGVjdGlvbkJvdW5kcyA9IGludGVybmFscy5zZWxlY3Rpb25Cb3VuZHMoKTsKKyAgICBz
ZWxlY3Rpb25XaWR0aCA9IHNlbGVjdGlvbkJvdW5kcy53aWR0aDsKKyAgICBzZWxlY3Rpb25IZWln
aHQgPSBzZWxlY3Rpb25Cb3VuZHMuaGVpZ2h0OworfQorCithZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgYXN5bmMgKCkgPT4geworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAg
ICAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAu
NSksCisgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
LjUpLAorICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMSksCisgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNSwgMSksCisgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJIZWxsbyIsCisgICAgICAgICAg
ICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwLjUpLAorICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAorICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSk7CisgICAgfQorCisgICAg
Z2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1h
Z2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKSk7CisgICAgdXBkYXRlU2Vs
ZWN0aW9uRGltZW5zaW9ucygpOworCisgICAgc2hvdWxkQmUoInNlbGVjdGlvbldpZHRoIiwgIjIw
MCIpOworICAgIHNob3VsZEJlKCJzZWxlY3Rpb25IZWlnaHQiLCAiMjAwIik7CisKKyAgICBpbWFn
ZS5zdHlsZS53aWR0aCA9ICIxMDBweCI7CisgICAgc2V0SW50ZXJ2YWwodXBkYXRlU2VsZWN0aW9u
RGltZW5zaW9ucywgMTApOworCisgICAgYXdhaXQgc2hvdWxkQmVjb21lRXF1YWwoInNlbGVjdGlv
bldpZHRoIiwgIjUwIik7CisgICAgc2hvdWxkQmUoInNlbGVjdGlvbkhlaWdodCIsICI1MCIpOwor
CisgICAgaW1hZ2Uuc3R5bGUud2lkdGggPSAiIjsKKyAgICBhd2FpdCBzaG91bGRCZWNvbWVFcXVh
bCgic2VsZWN0aW9uV2lkdGgiLCAiMjAwIik7CisgICAgc2hvdWxkQmUoInNlbGVjdGlvbkhlaWdo
dCIsICIyMDAiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="452884"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431212</attachid>
            <date>2021-06-11 11:13:56 -0700</date>
            <delta_ts>2021-06-11 12:55:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226911-20210611111355.patch</filename>
            <type>text/plain</type>
            <size>19813</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZhNTQwNTJjNDIzNzFi
OGEwOTQ2NmNlMGY0NWRhNzk3YWFmODk2OS4uMzEzYzFmMmQxNmNlZjIyYmQxZWVjY2UzNjVmYTA3
NDIwZTA0NzdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA2LTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtMaXZlIFRleHRd
IFRleHQgc2VsZWN0aW9uIGluc2lkZSBpbWFnZSBlbGVtZW50cyBzaG91bGQgbm90IGJlIGNsZWFy
ZWQgdXBvbiByZXNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNjkxMQorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAg
ICAgUmVmYWN0b3IgYEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
YCwgc3VjaCB0aGF0IGl0IGRvZXNuJ3QgdGVhciBkb3duIGFuZCByZWNyZWF0ZSB0aGUgaG9zdAor
ICAgICAgICBlbGVtZW50J3Mgc2hhZG93IERPTSBzdHJ1Y3R1cmUgaW4gdGhlIGNhc2Ugd2hlcmUg
dGhlIGV4dGFudCBET00gZWxlbWVudHMgYXJlIGNvbXBhdGlibGUgd2l0aCB0aGUgZ2l2ZW4gdGV4
dAorICAgICAgICByZWNvZ25pdGlvbiByZXN1bHQuIFRoaXMgcHJldmVudHMgdXMgZnJvbSByZW1v
dmluZyBvciBpbnNlcnRpbmcgRE9NIGVsZW1lbnRzIGluIHRoZSBjYXNlIHdoZXJlIGFuIGltYWdl
IGVsZW1lbnQKKyAgICAgICAgaXMgcmVzaXplZCAoYW5kIHRodXMgYWRqdXN0cyBpdHMgc2hhZG93
IERPTSBjb250ZW50IHVzaW5nIHRoZSB1cGRhdGVkIHNpemUpLCB3aGljaCBpbiB0dXJuIHByZXZl
bnRzIHVzIGZyb20KKyAgICAgICAgY2xlYXJpbmcgb3V0IHRoZSB0ZXh0IHNlbGVjdGlvbi4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVy
bGF5LW1haW50YWluLXNlbGVjdGlvbi1kdXJpbmctc2l6ZS1jaGFuZ2UuaHRtbAorCisgICAgICAg
ICogZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLmg6CisgICAgICAgICogZWRpdGluZy9jb2Nv
YS9EYXRhRGV0ZWN0aW9uLm1tOgorCisgICAgICAgIE1ha2UgdGhpcyBoZWxwZXIgbWV0aG9kIHJl
dHVybiBhbiBIVE1MRGl2RWxlbWVudCBpbnN0ZWFkIG9mIGp1c3QgYW4gSFRNTEVsZW1lbnQuCisK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3Rpb246OmNyZWF0ZUVsZW1lbnRGb3JJbWFnZU92
ZXJsYXkpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQpOgorCisgICAg
ICAgIFNwbGl0IHRoaXMgbWV0aG9kIGludG8gdHdvIGxvZ2ljYWwgcGFydHM6IHRoZSBmaXJzdCBi
dWlsZHMgdXAgYSBUZXh0UmVjb2duaXRpb25FbGVtZW50cyBzdHJ1Y3QgdGhhdCBjb250YWlucwor
ICAgICAgICByZWZlcmVuY2VzIHRvIGFsbCBjb25uZWN0ZWQgZWxlbWVudHMgaW4gdGhlIGltYWdl
IGVsZW1lbnQncyBzaGFkb3cgRE9NIHRoYXQgcmVxdWlyZSBzdHlsZSB1cGRhdGVzIGR1ZSB0byB0
aGUKKyAgICAgICAgbmV3IHNpemU7IHRoZSBzZWNvbmQgdXNlcyB0aGlzIFRleHRSZWNvZ25pdGlv
bkVsZW1lbnRzIGluZm9ybWF0aW9uIHRvIGNvbXB1dGUgdGhlIG5ldyBDU1MgdHJhbnNmb3JtcyB0
byBhcHBseSB0bworICAgICAgICBlYWNoIG9mIHRoZSBkYXRhIGRldGVjdG9yLCBsaW5lIGNvbnRh
aW5lcnMsIGFuZCB0ZXh0IGNvbnRhaW5lcnMgdW5kZXJuZWF0aCBlYWNoIGxpbmUgY29udGFpbmVy
IGVsZW1lbnQuCisKKyAgICAgICAgSW1wb3J0YW50bHksIGluIHN0ZXAgKDEpLCB3ZSBhdm9pZCBy
ZWdlbmVyYXRpbmcgc2hhZG93IERPTSBjb250ZW50IGluIHRoZSBjYXNlIHdoZXJlIHRoZSBET00g
ZWxlbWVudHMgYWxyZWFkeQorICAgICAgICBleGlzdCBpbiB0aGVpciBleHBlY3RlZCBwbGFjZXMg
d2l0aGluIHRoZSBzaGFkb3cgRE9NLgorCiAyMDIxLTA2LTEwICBZdXJ5IFNlbWlraGF0c2t5ICA8
eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtSRUdSRVNTSU9OXVtDdXJsXSBOZXR3b3Jr
OjpSZXNvdXJjZVRpbWluZyBhcmUgYnJva2VuIGFmdGVyIHIyNzgzOTEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLmgKaW5kZXggNThhNjljYzc4NDMzMWYwYjQx
NjgxZTA5MjM0N2Q5NWY0MzFlYzZkYS4uOTMxYzdjOTY5NWZhYjhjYmQ0NjczMmRkZGRhYWFhOTJj
MWVkMTg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9u
LmgKQEAgLTQwLDcgKzQwLDcgQEAgT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7CiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgSFRNTEVsZW1lbnQ7CitjbGFzcyBI
VE1MRGl2RWxlbWVudDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBRdWFsaWZpZWROYW1l
Owogc3RydWN0IFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3RvcjsKQEAgLTY3LDcgKzY3LDcgQEAg
cHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gICAgc3RhdGlj
IFJlZjxIVE1MRWxlbWVudD4gY3JlYXRlRWxlbWVudEZvckltYWdlT3ZlcmxheShEb2N1bWVudCYs
IGNvbnN0IFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3RvciYpOworICAgIHN0YXRpYyBSZWY8SFRN
TERpdkVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9jdW1lbnQmLCBjb25z
dCBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImKTsKICNlbmRpZgogCiAgICAgc3RhdGljIGNv
bnN0IFN0cmluZyYgZGF0YURldGVjdG9yVVJMUHJvdG9jb2woKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQppbmRleCAwYjBiYjZjNjAzMDU3Nzc0NjY1
OGI4ZDk4ZmNlZDZlZGU4NTlhYTMxLi5mNzJhZmM2ZTE1YjAyMjUwZTkyMmY3NmUwM2U0NjQyMzNm
ODAzNWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRl
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9u
Lm1tCkBAIC02ODksNyArNjg5LDcgQEAgYm9vbCBEYXRhRGV0ZWN0aW9uOjppc0RhdGFEZXRlY3Rv
ckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKIAotUmVmPEhUTUxFbGVtZW50PiBEYXRhRGV0ZWN0aW9uOjpjcmVhdGVFbGVtZW50Rm9y
SW1hZ2VPdmVybGF5KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVGV4dFJlY29nbml0aW9uRGF0
YURldGVjdG9yJiBpbmZvKQorUmVmPEhUTUxEaXZFbGVtZW50PiBEYXRhRGV0ZWN0aW9uOjpjcmVh
dGVFbGVtZW50Rm9ySW1hZ2VPdmVybGF5KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVGV4dFJl
Y29nbml0aW9uRGF0YURldGVjdG9yJiBpbmZvKQogewogICAgIGF1dG8gY29udGFpbmVyID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgaWYgKGF1dG8gZnJhbWUgPSBtYWtl
UmVmUHRyKGRvY3VtZW50LmZyYW1lKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CmluZGV4IGM1MzBhNTQ4OTE1Y2I1ZjlmM2U0MTNmNmNmNTAyMTZlN2MwOWYyODEuLjkwYWNmMWMx
YjlmOGZhOGZiNGIwZTJlOTc2ZGUzY2FlZGEzOGE2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCkBAIC0xMzMzLDIzICsxMzMzLDEyMSBAQCBib29sIEhUTUxFbGVtZW50Ojppc0lt
YWdlT3ZlcmxheVRleHQoY29uc3QgTm9kZSYgbm9kZSkKIAogdm9pZCBIVE1MRWxlbWVudDo6dXBk
YXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVjb2duaXRpb25SZXN1bHQm
IHJlc3VsdCwgQ2FjaGVUZXh0UmVjb2duaXRpb25SZXN1bHRzIGNhY2hlVGV4dFJlY29nbml0aW9u
UmVzdWx0cykKIHsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHByZXZpb3VzQ29udGFpbmVy
OwotICAgIGlmIChhdXRvIHNoYWRvd1Jvb3QgPSB1c2VyQWdlbnRTaGFkb3dSb290KCk7IHNoYWRv
d1Jvb3QgJiYgaGFzSW1hZ2VPdmVybGF5KCkpIHsKLSAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6
IGNoaWxkcmVuT2ZUeXBlPEhUTUxEaXZFbGVtZW50Pigqc2hhZG93Um9vdCkpIHsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGltYWdlT3Zlcmxh
eUxpbmVDbGFzcygiaW1hZ2Utb3ZlcmxheS1saW5lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gaW1hZ2VPdmVybGF5VGV4dENsYXNzKCJpbWFnZS1vdmVybGF5LXRleHQiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisKKyAgICBzdHJ1Y3QgVGV4dFJlY29nbml0
aW9uTGluZUVsZW1lbnRzIHsKKyAgICAgICAgUmVmPEhUTUxEaXZFbGVtZW50PiBsaW5lOworICAg
ICAgICBWZWN0b3I8UmVmPEhUTUxEaXZFbGVtZW50Pj4gY2hpbGRyZW47CisgICAgfTsKKworICAg
IHN0cnVjdCBUZXh0UmVjb2duaXRpb25FbGVtZW50cyB7CisgICAgICAgIFJlZlB0cjxIVE1MRGl2
RWxlbWVudD4gcm9vdDsKKyAgICAgICAgVmVjdG9yPFRleHRSZWNvZ25pdGlvbkxpbmVFbGVtZW50
cz4gbGluZXM7CisgICAgICAgIFZlY3RvcjxSZWY8SFRNTERpdkVsZW1lbnQ+PiBkYXRhRGV0ZWN0
b3JzOworICAgIH07CisKKyAgICBib29sIGhhZEV4aXN0aW5nVGV4dFJlY29nbml0aW9uRWxlbWVu
dHMgPSBmYWxzZTsKKyAgICBUZXh0UmVjb2duaXRpb25FbGVtZW50cyB0ZXh0UmVjb2duaXRpb25F
bGVtZW50czsKKworICAgIGlmIChoYXNJbWFnZU92ZXJsYXkoKSkgeworICAgICAgICBmb3IgKGF1
dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8SFRNTERpdkVsZW1lbnQ+KCp1c2VyQWdlbnRTaGFk
b3dSb290KCkpKSB7CiAgICAgICAgICAgICBpZiAoY2hpbGQuZ2V0SWRBdHRyaWJ1dGUoKSA9PSBp
bWFnZU92ZXJsYXlFbGVtZW50SWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAgICAgICAgcHJldmlv
dXNDb250YWluZXIgPSAmY2hpbGQ7CisgICAgICAgICAgICAgICAgdGV4dFJlY29nbml0aW9uRWxl
bWVudHMucm9vdCA9ICZjaGlsZDsKKyAgICAgICAgICAgICAgICBoYWRFeGlzdGluZ1RleHRSZWNv
Z25pdGlvbkVsZW1lbnRzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQotICAgICAgICBpZiAocHJldmlvdXNDb250YWluZXIpCi0gICAgICAg
ICAgICBwcmV2aW91c0NvbnRhaW5lci0+cmVtb3ZlKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGlmICh0ZXh0UmVjb2duaXRp
b25FbGVtZW50cy5yb290KSB7CisgICAgICAgIGZvciAoYXV0byYgbGluZU9yRGF0YURldGVjdG9y
IDogY2hpbGRyZW5PZlR5cGU8SFRNTERpdkVsZW1lbnQ+KCp0ZXh0UmVjb2duaXRpb25FbGVtZW50
cy5yb290KSkgeworICAgICAgICAgICAgaWYgKCFsaW5lT3JEYXRhRGV0ZWN0b3IuaGFzQ2xhc3Mo
KSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKGxpbmVPckRh
dGFEZXRlY3Rvci5jbGFzc0xpc3QoKS5jb250YWlucyhpbWFnZU92ZXJsYXlMaW5lQ2xhc3MpKSB7
CisgICAgICAgICAgICAgICAgVGV4dFJlY29nbml0aW9uTGluZUVsZW1lbnRzIGxpbmVFbGVtZW50
cyB7IGxpbmVPckRhdGFEZXRlY3RvciB9OworICAgICAgICAgICAgICAgIGZvciAoYXV0byYgdGV4
dCA6IGNoaWxkcmVuT2ZUeXBlPEhUTUxEaXZFbGVtZW50PihsaW5lT3JEYXRhRGV0ZWN0b3IpKQor
ICAgICAgICAgICAgICAgICAgICBsaW5lRWxlbWVudHMuY2hpbGRyZW4uYXBwZW5kKHRleHQpOwor
ICAgICAgICAgICAgICAgIHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLmxpbmVzLmFwcGVuZChXVEZN
b3ZlKGxpbmVFbGVtZW50cykpOworICAgICAgICAgICAgfSBlbHNlIGlmIChsaW5lT3JEYXRhRGV0
ZWN0b3IuY2xhc3NMaXN0KCkuY29udGFpbnMoaW1hZ2VPdmVybGF5RGF0YURldGVjdG9yQ2xhc3NO
YW1lKCkpKQorICAgICAgICAgICAgICAgIHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLmRhdGFEZXRl
Y3RvcnMuYXBwZW5kKGxpbmVPckRhdGFEZXRlY3Rvcik7CisgICAgICAgIH0KKworICAgICAgICBi
b29sIGNhblVzZUV4aXN0aW5nVGV4dFJlY29nbml0aW9uRWxlbWVudHMgPSAoWyZdIHsKKyAgICAg
ICAgICAgIGlmIChyZXN1bHQuZGF0YURldGVjdG9ycy5zaXplKCkgIT0gdGV4dFJlY29nbml0aW9u
RWxlbWVudHMuZGF0YURldGVjdG9ycy5zaXplKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgICAgICBpZiAocmVzdWx0LmxpbmVzLnNpemUoKSAhPSB0ZXh0UmVjb2du
aXRpb25FbGVtZW50cy5saW5lcy5zaXplKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgICAgICBmb3IgKHNpemVfdCBsaW5lSW5kZXggPSAwOyBsaW5lSW5kZXggPCBy
ZXN1bHQubGluZXMuc2l6ZSgpOyArK2xpbmVJbmRleCkgeworICAgICAgICAgICAgICAgIGF1dG8m
IGNoaWxkUmVzdWx0cyA9IHJlc3VsdC5saW5lc1tsaW5lSW5kZXhdLmNoaWxkcmVuOworICAgICAg
ICAgICAgICAgIGF1dG8mIGNoaWxkVGV4dEVsZW1lbnRzID0gdGV4dFJlY29nbml0aW9uRWxlbWVu
dHMubGluZXNbbGluZUluZGV4XS5jaGlsZHJlbjsKKyAgICAgICAgICAgICAgICBpZiAoY2hpbGRS
ZXN1bHRzLnNpemUoKSAhPSBjaGlsZFRleHRFbGVtZW50cy5zaXplKCkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGNoaWxk
SW5kZXggPSAwOyBjaGlsZEluZGV4IDwgY2hpbGRSZXN1bHRzLnNpemUoKTsgKytjaGlsZEluZGV4
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZFJlc3VsdHNbY2hpbGRJbmRleF0udGV4
dCAhPSBjaGlsZFRleHRFbGVtZW50c1tjaGlsZEluZGV4XS0+dGV4dENvbnRlbnQoKS5zdHJpcFdo
aXRlU3BhY2UoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9KSgpOworCisgICAgICAgIGlmICghY2FuVXNlRXhpc3RpbmdUZXh0UmVjb2duaXRp
b25FbGVtZW50cykgeworICAgICAgICAgICAgdGV4dFJlY29nbml0aW9uRWxlbWVudHMucm9vdC0+
cmVtb3ZlKCk7CisgICAgICAgICAgICB0ZXh0UmVjb2duaXRpb25FbGVtZW50cyA9IHsgfTsKKyAg
ICAgICAgfQogICAgIH0KIAogICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAKKyAgICBhdXRvIHNoYWRvd1Jvb3QgPSBtYWtlUmVmKGVuc3VyZVVzZXJBZ2VudFNoYWRv
d1Jvb3QoKSk7CisgICAgYm9vbCBoYXNVc2VyU2VsZWN0Tm9uZSA9IHJlbmRlcmVyKCkgJiYgcmVu
ZGVyZXIoKS0+c3R5bGUoKS51c2VyU2VsZWN0KCkgPT0gVXNlclNlbGVjdDo6Tm9uZTsKKyAgICBp
ZiAoIXRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLnJvb3QpIHsKKyAgICAgICAgYXV0byByb290Q29u
dGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICAgICAgcm9v
dENvbnRhaW5lci0+c2V0SWRBdHRyaWJ1dGUoaW1hZ2VPdmVybGF5RWxlbWVudElkZW50aWZpZXIo
KSk7CisgICAgICAgIGlmIChkb2N1bWVudCgpLmlzSW1hZ2VEb2N1bWVudCgpKQorICAgICAgICAg
ICAgcm9vdENvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtp
dFVzZXJTZWxlY3QsIENTU1ZhbHVlVGV4dCk7CisgICAgICAgIHNoYWRvd1Jvb3QtPmFwcGVuZENo
aWxkKHJvb3RDb250YWluZXIpOworICAgICAgICB0ZXh0UmVjb2duaXRpb25FbGVtZW50cy5yb290
ID0gcm9vdENvbnRhaW5lci5jb3B5UmVmKCk7CisgICAgICAgIHRleHRSZWNvZ25pdGlvbkVsZW1l
bnRzLmxpbmVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocmVzdWx0LmxpbmVzLnNpemUoKSk7Cisg
ICAgICAgIGZvciAoYXV0byYgbGluZSA6IHJlc3VsdC5saW5lcykgeworICAgICAgICAgICAgYXV0
byBsaW5lQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAg
ICAgICAgICAgIGxpbmVDb250YWluZXItPmNsYXNzTGlzdCgpLmFkZChpbWFnZU92ZXJsYXlMaW5l
Q2xhc3MpOworICAgICAgICAgICAgcm9vdENvbnRhaW5lci0+YXBwZW5kQ2hpbGQobGluZUNvbnRh
aW5lcik7CisgICAgICAgICAgICBUZXh0UmVjb2duaXRpb25MaW5lRWxlbWVudHMgbGluZUVsZW1l
bnRzIHsgbGluZUNvbnRhaW5lciB9OworICAgICAgICAgICAgbGluZUVsZW1lbnRzLmNoaWxkcmVu
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobGluZS5jaGlsZHJlbi5zaXplKCkpOworICAgICAgICAg
ICAgZm9yIChzaXplX3QgY2hpbGRJbmRleCA9IDA7IGNoaWxkSW5kZXggPCBsaW5lLmNoaWxkcmVu
LnNpemUoKTsgKytjaGlsZEluZGV4KSB7CisgICAgICAgICAgICAgICAgYXV0byYgY2hpbGQgPSBs
aW5lLmNoaWxkcmVuW2NoaWxkSW5kZXhdOworICAgICAgICAgICAgICAgIGF1dG8gdGV4dENvbnRh
aW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAgICAgICAg
ICAgdGV4dENvbnRhaW5lci0+Y2xhc3NMaXN0KCkuYWRkKGltYWdlT3ZlcmxheVRleHRDbGFzcyk7
CisgICAgICAgICAgICAgICAgbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGV4dENvbnRhaW5l
cik7CisgICAgICAgICAgICAgICAgdGV4dENvbnRhaW5lci0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3Jl
YXRlKGRvY3VtZW50KCksIG1ha2VTdHJpbmcoJ1xuJywgY2hpbGQudGV4dCkpKTsKKyAgICAgICAg
ICAgICAgICBsaW5lRWxlbWVudHMuY2hpbGRyZW4udW5jaGVja2VkQXBwZW5kKFdURk1vdmUodGV4
dENvbnRhaW5lcikpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsaW5lQ29udGFpbmVy
LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSkpOworICAgICAg
ICAgICAgdGV4dFJlY29nbml0aW9uRWxlbWVudHMubGluZXMudW5jaGVja2VkQXBwZW5kKFdURk1v
dmUobGluZUVsZW1lbnRzKSk7CisgICAgICAgIH0KKworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKKyAgICAgICAgdGV4dFJlY29nbml0aW9uRWxlbWVudHMuZGF0YURldGVjdG9ycy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHJlc3VsdC5kYXRhRGV0ZWN0b3JzLnNpemUoKSk7CisgICAgICAgIGZv
ciAoYXV0byYgZGF0YURldGVjdG9yIDogcmVzdWx0LmRhdGFEZXRlY3RvcnMpIHsKKyAgICAgICAg
ICAgIGF1dG8gZGF0YURldGVjdG9yQ29udGFpbmVyID0gRGF0YURldGVjdGlvbjo6Y3JlYXRlRWxl
bWVudEZvckltYWdlT3ZlcmxheShkb2N1bWVudCgpLCBkYXRhRGV0ZWN0b3IpOworICAgICAgICAg
ICAgZGF0YURldGVjdG9yQ29udGFpbmVyLT5jbGFzc0xpc3QoKS5hZGQoaW1hZ2VPdmVybGF5RGF0
YURldGVjdG9yQ2xhc3NOYW1lKCkpOworICAgICAgICAgICAgcm9vdENvbnRhaW5lci0+YXBwZW5k
Q2hpbGQoZGF0YURldGVjdG9yQ29udGFpbmVyKTsKKyAgICAgICAgICAgIHRleHRSZWNvZ25pdGlv
bkVsZW1lbnRzLmRhdGFEZXRlY3RvcnMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoZGF0YURldGVj
dG9yQ29udGFpbmVyKSk7CisgICAgICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCisKKyAgICAgICAgaWYgKGRvY3VtZW50KCkucXVpcmtzKCkubmVlZHNUb0ZvcmNlVXNlclNl
bGVjdFdoZW5JbnN0YWxsaW5nSW1hZ2VPdmVybGF5KCkpCisgICAgICAgICAgICBzZXRJbmxpbmVT
dHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVUZXh0KTsK
KyAgICB9CisKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7CiAg
ICAgICAgIGlmICghaXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKSkKICAgICAgICAgICAgIHJldHVy
bjsKQEAgLTEzNTcsMzkgKzE0NTUsMjQgQEAgdm9pZCBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aFRl
eHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVjb2duaXRpb25SZXN1bHQmIHIKICAgICAg
ICAgZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikuc2V0SGFzSW1hZ2VPdmVybGF5KCk7
CiAgICAgfQogCi0gICAgYXV0byBzaGFkb3dSb290ID0gbWFrZVJlZihlbnN1cmVVc2VyQWdlbnRT
aGFkb3dSb290KCkpOwotICAgIGlmICghcHJldmlvdXNDb250YWluZXIpIHsKKyAgICBpZiAoIWhh
ZEV4aXN0aW5nVGV4dFJlY29nbml0aW9uRWxlbWVudHMpIHsKICAgICAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHNoYWRvd1N0eWxlKFN0cmluZ0ltcGw6
OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGltYWdlT3ZlcmxheVVzZXJBZ2VudFN0eWxlU2hlZXQsIHNp
emVvZihpbWFnZU92ZXJsYXlVc2VyQWdlbnRTdHlsZVNoZWV0KSkpOwogICAgICAgICBhdXRvIHN0
eWxlID0gSFRNTFN0eWxlRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6c3R5bGVUYWcsIGRvY3Vt
ZW50KCksIGZhbHNlKTsKICAgICAgICAgc3R5bGUtPnNldFRleHRDb250ZW50KHNoYWRvd1N0eWxl
KTsKICAgICAgICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShzdHlsZSkpOwogICAg
IH0KIAotICAgIGF1dG8gY29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCgpKTsKLSAgICBjb250YWluZXItPnNldElkQXR0cmlidXRlKGltYWdlT3ZlcmxheUVsZW1lbnRJ
ZGVudGlmaWVyKCkpOwotICAgIGlmIChkb2N1bWVudCgpLmlzSW1hZ2VEb2N1bWVudCgpKQotICAg
ICAgICBjb250YWluZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRV
c2VyU2VsZWN0LCBDU1NWYWx1ZVRleHQpOwotICAgIHNoYWRvd1Jvb3QtPmFwcGVuZENoaWxkKGNv
bnRhaW5lcik7Ci0KLSAgICBpZiAoZG9jdW1lbnQoKS5xdWlya3MoKS5uZWVkc1RvRm9yY2VVc2Vy
U2VsZWN0V2hlbkluc3RhbGxpbmdJbWFnZU92ZXJsYXkoKSkKLSAgICAgICAgc2V0SW5saW5lU3R5
bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxlY3QsIENTU1ZhbHVlVGV4dCk7Ci0K
LSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlt
YWdlT3ZlcmxheUxpbmVDbGFzcygiaW1hZ2Utb3ZlcmxheS1saW5lIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gaW1hZ2VPdmVybGF5VGV4dENsYXNzKCJpbWFnZS1vdmVybGF5LXRl
eHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0KLSAgICBib29sIGhhc1Vz
ZXJTZWxlY3ROb25lID0gcmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLnVzZXJTZWxl
Y3QoKSA9PSBVc2VyU2VsZWN0OjpOb25lOwogICAgIEludFNpemUgY29udGFpbmVyU2l6ZSB7IG9m
ZnNldFdpZHRoKCksIG9mZnNldEhlaWdodCgpIH07Ci0gICAgZm9yIChhdXRvJiBsaW5lIDogcmVz
dWx0LmxpbmVzKSB7CisgICAgZm9yIChzaXplX3QgbGluZUluZGV4ID0gMDsgbGluZUluZGV4IDwg
cmVzdWx0LmxpbmVzLnNpemUoKTsgKytsaW5lSW5kZXgpIHsKKyAgICAgICAgYXV0byYgbGluZUVs
ZW1lbnRzID0gdGV4dFJlY29nbml0aW9uRWxlbWVudHMubGluZXNbbGluZUluZGV4XTsKKyAgICAg
ICAgYXV0byYgbGluZUNvbnRhaW5lciA9IGxpbmVFbGVtZW50cy5saW5lOworICAgICAgICBhdXRv
JiBsaW5lID0gcmVzdWx0LmxpbmVzW2xpbmVJbmRleF07CiAgICAgICAgIGF1dG8gbGluZVF1YWQg
PSBsaW5lLm5vcm1hbGl6ZWRRdWFkOwogICAgICAgICBpZiAobGluZVF1YWQuaXNFbXB0eSgpKQog
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgbGluZVF1YWQuc2NhbGUoY29udGFpbmVy
U2l6ZS53aWR0aCgpLCBjb250YWluZXJTaXplLmhlaWdodCgpKTsKIAotICAgICAgICBhdXRvIGxp
bmVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgICAg
ICBsaW5lQ29udGFpbmVyLT5jbGFzc0xpc3QoKS5hZGQoaW1hZ2VPdmVybGF5TGluZUNsYXNzKTsK
LSAgICAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChsaW5lQ29udGFpbmVyKTsKLQogICAgICAg
ICBhdXRvIGxpbmVCb3VuZHMgPSByb3RhdGVkQm91bmRpbmdSZWN0V2l0aE1pbmltdW1BbmdsZU9m
Um90YXRpb24obGluZVF1YWQsIDAuMDEpOwogICAgICAgICBsaW5lQ29udGFpbmVyLT5zZXRJbmxp
bmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2lkdGgsIGxpbmVCb3VuZHMuc2l6ZS53aWR0aCgp
LCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsKICAgICAgICAgbGluZUNvbnRhaW5lci0+c2V0SW5saW5l
U3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUhlaWdodCwgbGluZUJvdW5kcy5zaXplLmhlaWdodCgp
LCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsKQEAgLTE0MTgsMTAgKzE1MDEsNyBAQCB2b2lkIEhUTUxF
bGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFRleHRSZWNvZ25p
dGlvblJlc3VsdCYgcgogICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKHNpemVfdCBjaGlsZElu
ZGV4ID0gMDsgY2hpbGRJbmRleCA8IGxpbmUuY2hpbGRyZW4uc2l6ZSgpOyArK2NoaWxkSW5kZXgp
IHsKLSAgICAgICAgICAgIGF1dG8mIGNoaWxkID0gbGluZS5jaGlsZHJlbltjaGlsZEluZGV4XTsK
LSAgICAgICAgICAgIGlmIChjaGlsZC5ub3JtYWxpemVkUXVhZC5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0KKyAgICAgICAgICAgIGF1dG8mIHRleHRDb250YWluZXIgPSBs
aW5lRWxlbWVudHMuY2hpbGRyZW5bY2hpbGRJbmRleF07CiAgICAgICAgICAgICBib29sIGxpbmVI
YXNPbmVDaGlsZCA9IGxpbmUuY2hpbGRyZW4uc2l6ZSgpID09IDE7CiAgICAgICAgICAgICBmbG9h
dCBob3Jpem9udGFsTWFyZ2luVG9NaW5pbWl6ZVNlbGVjdGlvbkdhcHMgPSBsaW5lSGFzT25lQ2hp
bGQgPyAwIDogMC4xMjU7CiAgICAgICAgICAgICBmbG9hdCBob3Jpem9udGFsT2Zmc2V0ID0gbGlu
ZUhhc09uZUNoaWxkID8gMCA6IC1ob3Jpem9udGFsTWFyZ2luVG9NaW5pbWl6ZVNlbGVjdGlvbkdh
cHM7CkBAIC0xNDQyLDEzICsxNTIyLDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhU
ZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgVGV4dFJlY29nbml0aW9uUmVzdWx0JiByCiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIEZsb2F0U2l6ZSB0YXJnZXRTaXplIHsgaG9yaXpvbnRh
bEV4dGVudCAtIGhvcml6b250YWxPZmZzZXQsIGxpbmVCb3VuZHMuc2l6ZS5oZWlnaHQoKSB9Owot
ICAgICAgICAgICAgaWYgKHRhcmdldFNpemUuaXNFbXB0eSgpKQorICAgICAgICAgICAgaWYgKHRh
cmdldFNpemUuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgdGV4dENvbnRhaW5lci0+c2V0
SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVRyYW5zZm9ybSwgInNjYWxlKDAsIDApIik7
CiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGF1dG8gdGV4dENvbnRh
aW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICB0
ZXh0Q29udGFpbmVyLT5jbGFzc0xpc3QoKS5hZGQoaW1hZ2VPdmVybGF5VGV4dENsYXNzKTsKLSAg
ICAgICAgICAgIGxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRleHRDb250YWluZXIpOwotICAg
ICAgICAgICAgdGV4dENvbnRhaW5lci0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50
KCksIG1ha2VTdHJpbmcoJ1xuJywgY2hpbGQudGV4dCkpKTsKKyAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUodGV4
dENvbnRhaW5lcik7CiAKQEAgLTE0NjEsNyArMTUzOCw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnVw
ZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgVGV4dFJlY29nbml0aW9uUmVzdWx0
JiByCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChzaXplQmVmb3JlVHJhbnNmb3Jt
LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIHRleHRDb250YWluZXItPnJlbW92ZSgpOwor
ICAgICAgICAgICAgICAgIHRleHRDb250YWluZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NT
UHJvcGVydHlUcmFuc2Zvcm0sICJzY2FsZSgwLCAwKSIpOwogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgfQogCkBAIC0xNDgzLDE0ICsxNTYwLDEyIEBAIHZvaWQgSFRNTEVs
ZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgVGV4dFJlY29nbml0
aW9uUmVzdWx0JiByCiAgICAgfQogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQotICAgIGZv
ciAoYXV0byYgZGF0YURldGVjdG9yIDogcmVzdWx0LmRhdGFEZXRlY3RvcnMpIHsKKyAgICBmb3Ig
KHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgcmVzdWx0LmRhdGFEZXRlY3RvcnMuc2l6ZSgpOyAr
K2luZGV4KSB7CisgICAgICAgIGF1dG8gZGF0YURldGVjdG9yQ29udGFpbmVyID0gdGV4dFJlY29n
bml0aW9uRWxlbWVudHMuZGF0YURldGVjdG9yc1tpbmRleF07CisgICAgICAgIGF1dG8mIGRhdGFE
ZXRlY3RvciA9IHJlc3VsdC5kYXRhRGV0ZWN0b3JzW2luZGV4XTsKICAgICAgICAgaWYgKGRhdGFE
ZXRlY3Rvci5ub3JtYWxpemVkUXVhZHMuaXNFbXB0eSgpKQogICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgYXV0byBkYXRhRGV0ZWN0b3JDb250YWluZXIgPSBEYXRhRGV0ZWN0aW9uOjpj
cmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVybGF5KGRvY3VtZW50KCksIGRhdGFEZXRlY3Rvcik7Ci0g
ICAgICAgIGRhdGFEZXRlY3RvckNvbnRhaW5lci0+Y2xhc3NMaXN0KCkuYWRkKGltYWdlT3Zlcmxh
eURhdGFEZXRlY3RvckNsYXNzTmFtZSgpKTsKLSAgICAgICAgY29udGFpbmVyLT5hcHBlbmRDaGls
ZChkYXRhRGV0ZWN0b3JDb250YWluZXIpOwotCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
Y29tZSB1cCB3aXRoIGEgd2F5IHRvIGNvYWxlc2NlIHRoZSBib3VuZGluZyBxdWFkcyBpbnRvIG9u
ZSBvciBtb3JlIHJvdGF0ZWQgcmVjdHMgd2l0aCB0aGUgc2FtZSBhbmdsZSBvZiByb3RhdGlvbi4K
ICAgICAgICAgYXV0byB0YXJnZXRRdWFkID0gZGF0YURldGVjdG9yLm5vcm1hbGl6ZWRRdWFkcy5m
aXJzdCgpOwogICAgICAgICB0YXJnZXRRdWFkLnNjYWxlKGNvbnRhaW5lclNpemUud2lkdGgoKSwg
Y29udGFpbmVyU2l6ZS5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzU4YjBmNDZjNzY0MTJhYWQ2YjJmYjBl
OGIzYzA2MGIzNDc3NzVjNy4uMGM3MTE3ZWE4NWY0MDk0NGE1OTA0ODNlNDYwNzE0NmE4YmMxMDJi
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTEwICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtMaXZlIFRleHRdIFRleHQgc2VsZWN0aW9u
IGluc2lkZSBpbWFnZSBlbGVtZW50cyBzaG91bGQgbm90IGJlIGNsZWFyZWQgdXBvbiByZXNpemUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjkxMQor
CisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBmYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LW1haW50YWluLXNlbGVjdGlvbi1k
dXJpbmctc2l6ZS1jaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2lt
YWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LW1haW50YWluLXNlbGVjdGlv
bi1kdXJpbmctc2l6ZS1jaGFuZ2UuaHRtbDogQWRkZWQuCisKIDIwMjEtMDYtMTAgIFNhbSBXZWlu
aWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdGhpbmcgaXMga2VlcGluZyBuYXZp
Z2F0b3IueHIgYWxpdmUgZHVyaW5nIEdDCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LW1haW50YWluLXNlbGVjdGlv
bi1kdXJpbmctc2l6ZS1jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS1tYWludGFpbi1zZWxlY3Rpb24t
ZHVyaW5nLXNpemUtY2hhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjU4MTNjYjc0ZWYx
MWNiOTE0ZTQ2NTNiOWY3NTU3MmI5ZjE5NDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS1tYWludGFp
bi1zZWxlY3Rpb24tZHVyaW5nLXNpemUtY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitQQVNTIHNlbGVjdGlvbldpZHRoIGlzIDIwMAorUEFTUyBzZWxlY3Rpb25IZWlnaHQgaXMg
MjAwCitQQVNTIHNlbGVjdGlvbldpZHRoIGJlY2FtZSA1MAorUEFTUyBzZWxlY3Rpb25IZWlnaHQg
aXMgNTAKK1BBU1Mgc2VsZWN0aW9uV2lkdGggYmVjYW1lIDIwMAorUEFTUyBzZWxlY3Rpb25IZWln
aHQgaXMgMjAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9tYWMvaW1hZ2Utb3ZlcmxheS1tYWludGFpbi1zZWxlY3Rpb24tZHVyaW5nLXNpemUtY2hhbmdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFn
ZS1vdmVybGF5LW1haW50YWluLXNlbGVjdGlvbi1kdXJpbmctc2l6ZS1jaGFuZ2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40Njg1ZGNiMWZlYzM5YzI2NmZiYzFmNWFiNjhmYzA1ODdmY2E2NTQ5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMv
aW1hZ2Utb3ZlcmxheS1tYWludGFpbi1zZWxlY3Rpb24tZHVyaW5nLXNpemUtY2hhbmdlLmh0bWwK
QEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxpbWcg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4K
K2pzVGVzdElzQXN5bmMgPSB0cnVlOworbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaW1nIik7CitsZXQgc2VsZWN0aW9uV2lkdGggPSAwOworbGV0IHNlbGVjdGlvbkhlaWdodCA9
IDA7CisKK2Z1bmN0aW9uIHVwZGF0ZVNlbGVjdGlvbkRpbWVuc2lvbnMoKSB7CisgICAgbGV0IHNl
bGVjdGlvbkJvdW5kcyA9IGludGVybmFscy5zZWxlY3Rpb25Cb3VuZHMoKTsKKyAgICBzZWxlY3Rp
b25XaWR0aCA9IHNlbGVjdGlvbkJvdW5kcy53aWR0aDsKKyAgICBzZWxlY3Rpb25IZWlnaHQgPSBz
ZWxlY3Rpb25Cb3VuZHMuaGVpZ2h0OworfQorCithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5
bmMgKCkgPT4geworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAgICAgICBp
bnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisg
ICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAor
ICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSks
CisgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwg
MSksCisgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJIZWxsbyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUp
LAorICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjUsIDEpLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgXSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSk7CisgICAgfQorCisgICAgZ2V0U2Vs
ZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1
ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKSk7CisgICAgdXBkYXRlU2VsZWN0aW9u
RGltZW5zaW9ucygpOworCisgICAgc2hvdWxkQmUoInNlbGVjdGlvbldpZHRoIiwgIjIwMCIpOwor
ICAgIHNob3VsZEJlKCJzZWxlY3Rpb25IZWlnaHQiLCAiMjAwIik7CisKKyAgICBpbWFnZS5zdHls
ZS53aWR0aCA9ICIxMDBweCI7CisgICAgc2V0SW50ZXJ2YWwodXBkYXRlU2VsZWN0aW9uRGltZW5z
aW9ucywgMTApOworCisgICAgYXdhaXQgc2hvdWxkQmVjb21lRXF1YWwoInNlbGVjdGlvbldpZHRo
IiwgIjUwIik7CisgICAgc2hvdWxkQmUoInNlbGVjdGlvbkhlaWdodCIsICI1MCIpOworCisgICAg
aW1hZ2Uuc3R5bGUud2lkdGggPSAiIjsKKyAgICBhd2FpdCBzaG91bGRCZWNvbWVFcXVhbCgic2Vs
ZWN0aW9uV2lkdGgiLCAiMjAwIik7CisgICAgc2hvdWxkQmUoInNlbGVjdGlvbkhlaWdodCIsICIy
MDAiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>