<?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>232899</bug_id>
          
          <creation_ts>2021-11-09 12:13:27 -0800</creation_ts>
          <short_desc>Refactor some image overlay logic to work with built-in media controls</short_desc>
          <delta_ts>2021-11-10 16:03:20 -0800</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>akeerthi</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1813262</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-09 12:13:27 -0800</bug_when>
    <thetext>rdar://83173597</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813378</commentid>
    <comment_count>1</comment_count>
      <attachid>443741</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-09 15:58:47 -0800</bug_when>
    <thetext>Created attachment 443741
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813395</commentid>
    <comment_count>2</comment_count>
      <attachid>443750</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-09 16:20:37 -0800</bug_when>
    <thetext>Created attachment 443750
Remove unnecessary stylesheet change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813437</commentid>
    <comment_count>3</comment_count>
      <attachid>443761</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-09 17:32:12 -0800</bug_when>
    <thetext>Created attachment 443761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813621</commentid>
    <comment_count>4</comment_count>
      <attachid>443761</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-10 08:46:42 -0800</bug_when>
    <thetext>Comment on attachment 443761
Patch

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

r=me for the media controls parts.

&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:350
&gt; +    static MainThreadNeverDestroyed&lt;const AtomString&gt; className(&quot;media-controls-container&quot;, AtomString::ConstructFromLiteral);

Maybe we could expose this through the IDL for the media controls to use?

&gt; Source/WebCore/Modules/modern-media-controls/controls/media-controls.css:94
&gt; +    -webkit-user-select: none;

Should we add the &quot;We always want to prevent the iOS magnifier UI to be shown.&quot; comment removed from `:host`?

&gt; Source/WebCore/Modules/modern-media-controls/controls/media-controls.css:129
&gt; -}
&gt;  \ No newline at end of file
&gt; +}

Nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813638</commentid>
    <comment_count>5</comment_count>
      <attachid>443761</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-10 09:09:58 -0800</bug_when>
    <thetext>Comment on attachment 443761
Patch

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

Thanks for the review!

&gt;&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:350
&gt;&gt; +    static MainThreadNeverDestroyed&lt;const AtomString&gt; className(&quot;media-controls-container&quot;, AtomString::ConstructFromLiteral);
&gt; 
&gt; Maybe we could expose this through the IDL for the media controls to use?

Good call — looking into that now!

&gt;&gt; Source/WebCore/Modules/modern-media-controls/controls/media-controls.css:94
&gt;&gt; +    -webkit-user-select: none;
&gt; 
&gt; Should we add the &quot;We always want to prevent the iOS magnifier UI to be shown.&quot; comment removed from `:host`?

Makes sense! Will add a comment to that effect here.

&gt;&gt; Source/WebCore/Modules/modern-media-controls/controls/media-controls.css:129
&gt;&gt; +}
&gt; 
&gt; Nice.

Xcode is...oddly insistent on this change :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813719</commentid>
    <comment_count>6</comment_count>
      <attachid>443761</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-10 11:25:44 -0800</bug_when>
    <thetext>Comment on attachment 443761
Patch

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

&gt; Source/WebCore/Modules/modern-media-controls/controls/controls-bar.css:31
&gt; +    z-index: 1;

IIRC the only other thing that uses `z-index` is `video::-webkit-media-text-track-container`.  I don&apos;t think there&apos;s ever any overlap (at least there shouldn&apos;t be), but it might be worth testing this on some `&lt;video&gt;` that have subtitles just to be sure :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813726</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-10 11:35:33 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #6)
&gt; Comment on attachment 443761 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=443761&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/controls-bar.css:31
&gt; &gt; +    z-index: 1;
&gt; 
&gt; IIRC the only other thing that uses `z-index` is
&gt; `video::-webkit-media-text-track-container`.  I don&apos;t think there&apos;s ever any
&gt; overlap (at least there shouldn&apos;t be), but it might be worth testing this on
&gt; some `&lt;video&gt;` that have subtitles just to be sure :)

That&apos;s a good point!

From my testing with captions in HTML video (alongside built-in controls), the text track container dodges the bottom controls bar anyways, so I *think* we should be okay here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813741</commentid>
    <comment_count>8</comment_count>
      <attachid>443843</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-10 12:09:26 -0800</bug_when>
    <thetext>Created attachment 443843
Adjust for review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813771</commentid>
    <comment_count>9</comment_count>
      <attachid>443857</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-10 13:24:32 -0800</bug_when>
    <thetext>Created attachment 443857
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813830</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-10 16:03:15 -0800</bug_when>
    <thetext>Committed r285609 (244113@main): &lt;https://commits.webkit.org/244113@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443857.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443741</attachid>
            <date>2021-11-09 15:58:47 -0800</date>
            <delta_ts>2021-11-09 16:20:35 -0800</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-232899-20211109155846.patch</filename>
            <type>text/plain</type>
            <size>21564</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE1YzZhZmVhZTgxYmI5
NmM0YTJjZTE2MGRmOGE3YjQ4M2I1ZGRlYS4uOTQxODU1MTU4NzBhNzA4NDk3MjM5MzQ4MjY0OWYx
ZGU3Yjg4MGZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTExLTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIHNv
bWUgaW1hZ2Ugb3ZlcmxheSBsb2dpYyB0byB3b3JrIHdpdGggYnVpbHQtaW4gbWVkaWEgY29udHJv
bHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg5
OQorICAgICAgICByZGFyOi8vODMxNzM1OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWtlIHZhcmlvdXMgbWlub3IgYWRqdXN0bWVudHMgdG8gYWxs
b3cgYnVpbHQtaW4gbW9kZXJuIG1lZGlhIGNvbnRyb2xzIHRvIHBsYXkgd2VsbCB3aXRoIGltYWdl
IG92ZXJsYXkgY29udGVudC4KKyAgICAgICAgU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6Om1lZGlhQ29udHJvbHNDb250YWlu
ZXJDbGFzcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0Lmg6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGdyYWIgdGhlICJtZWRp
YS1jb250cm9scy1jb250YWluZXIiIGNsYXNzIG5hbWUsIHdoaWNoIGlzIHVzZWQgZm9yIHRoZSBg
ZGl2YCBlbGVtZW50CisgICAgICAgIGNvbnRhaW5pbmcgYnVpbHQtaW4gbW9kZXJuIG1lZGlhIGNv
bnRyb2xzLiBUaGlzIGlzIHVzZWQgYmVsb3cgdG8gaWRlbnRpZnkgZXhpc3RpbmcgbWVkaWEgY29u
dHJvbCBjb250YWluZXIKKyAgICAgICAgZWxlbWVudHMgd2hlbiBkZXRlcm1pbmluZyB3aGVyZSB0
byBpbmplY3QgdGhlIGltYWdlIG92ZXJsYXkgcm9vdCBjb250YWluZXIuCisKKyAgICAgICAgKiBN
b2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9jb250cm9scy1iYXIuY3NzOgor
ICAgICAgICAoLmNvbnRyb2xzLWJhcik6CisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzOgorICAgICAgICAoOmhvc3QpOgor
CisgICAgICAgIFJlbW92ZSBgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtgIGhlcmUuIFRoaXMg
d2FzIGFkZGVkIHRvIHByZXZlbnQgdGhlIGlPUyBtYWduaWZpZXIgVUkgZnJvbSBzaG93aW5nIHVw
IHdoZW4KKyAgICAgICAgbG9uZyBwcmVzc2luZyBpbnNpZGUgYSB2aWRlbyBlbGVtZW50OyB3ZSBj
YW4gYWNoaWV2ZSB0aGUgc2FtZSBlZmZlY3Qgd2l0aG91dCBhcHBseWluZyB0aGlzIHByb3BlcnR5
IG92ZXIgdGhlCisgICAgICAgIGVudGlyZSBob3N0IGVsZW1lbnQgYnkgaW5zdGVhZCBjaGFuZ2lu
ZyBzZWxlY3Rpb24gbG9naWMgaW4gV2ViS2l0Mi4KKworICAgICAgICAoLm1lZGlhLWNvbnRyb2xz
KToKKworICAgICAgICBQdXNoIHRoZSBgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtgIHByb3Bl
cnR5IGRvd24gaW50byB0aGUgbWVkaWEgY29udHJvbCBjaGlsZHJlbiwgaW5zdGVhZCBvZiBvbgor
ICAgICAgICBgLm1lZGlhLWNvbnRyb2xzYCBpdHNlbGYuCisKKyAgICAgICAgKC5tZWRpYS1jb250
cm9scyA+IC5jb250cm9scy1iYXIpOgorCisgICAgICAgIFotb3JkZXIgdGhlIG1lZGlhIGNvbnRy
b2xzIGJhciAod2hpY2ggY29udGFpbnMgYWxsIGludGVyYWN0aWJsZSBtZWRpYSBjb250cm9sIGVs
ZW1lbnRzKSBhYm92ZSBhbnkgaW1hZ2Ugb3ZlcmxheQorICAgICAgICBjb250ZW50IHRoYXQgbWF5
IGNvZXhpc3QgaW4gdGhlIHNhbWUgc2hhZG93IHJvb3QuCisKKyAgICAgICAgKiBodG1sL0hUTUxF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojppc0ltYWdlT3Zlcmxh
eVRleHQpOgorCisgICAgICAgIEFkanVzdCB0aGlzIGhlbHBlciBtZXRob2QgdG8gd29yayBpbiB0
aGUgY2FzZSB3aGVyZSB0aGUgaW1hZ2Ugb3ZlcmxheSBjb250YWluZXIgaXMgaG9zdGVkIHVuZGVy
bmVhdGggdGhlIG1lZGlhCisgICAgICAgIGNvbnRyb2xzIGNvbnRhaW5lci4KKworICAgICAgICAo
V2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQpOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpzZWVrV2l0aFRvbGVyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwpOgorCisgICAgICAgIElmIG5lZWRlZCwgcmVt
b3ZlIHRoZSBpbWFnZSBvdmVybGF5IHdoZW4gc2Vla2luZyBvciBwbGF5aW5nIG1lZGlhLgorCiAy
MDIxLTExLTA5ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAg
ICAgRml4ICFFTkFCTEUoQUNDRVNTSUJJTElUWSkgYWZ0ZXIgcjI4NTQyNwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBj
ZGIxOTU2NWU0MjhjM2YyYjJhNGNhYTEzYzQ3ZDBlYzBhMzBiMDU2Li40ODY4Y2M4MjkzMThhZWU3
YTIwYTU5ZTU5MTg5OTdiYWNhMGYwNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIx
LTExLTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFJlZmFjdG9yIHNvbWUgaW1hZ2Ugb3ZlcmxheSBsb2dpYyB0byB3b3JrIHdpdGggYnVpbHQtaW4g
bWVkaWEgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMjg5OQorICAgICAgICByZGFyOi8vODMxNzM1OTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZS9DaGFuZ2VMb2cgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFNoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKGNhbkF0dGVtcHRUZXh0UmVjb2duaXRpb25Gb3JOb25J
bWFnZUVsZW1lbnRzKToKKworICAgICAgICBBZGQgYSBuZXcgV2ViS2l0QWRkaXRpb25zIGludGVn
cmF0aW9uIHBvaW50LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNpc0dl
c3R1cmVEaWRCZWdpbjpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OnNlbGVjdGlvblBvc2l0aW9uSW5mb3JtYXRpb24p
OgorCisgICAgICAgIEFkanVzdCBmb3IgdGhlIGNoYW5nZXMgdG8gdGhlIGJ1aWx0LWluIG1lZGlh
IGNvbnRyb2xzIHN0eWxlc2hlZXQgYnkgYWRkaW5nIGxvZ2ljIHRvIHByZXZlbnQgdGhlIG1hZ25p
ZmllciBmcm9tCisgICAgICAgIHNob3dpbmcgdXAgd2hlbiBsb25nIHByZXNzaW5nIChvciBsb25n
IHByZXNzaW5nIGluc2lkZSkgdmlkZW8gZWxlbWVudHMgb24gaU9TLgorCiAyMDIxLTExLTA5ICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIy
NzE3MzUpOiBQYXltZW50U2hpcHBpbmdPcHRpb24uc2VsZWN0ZWQgaWdub3JlZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xz
SG9zdC5jcHAKaW5kZXggMWZjZGZmMDMzYmIxM2RmODY0NGI2NzU4NGZjOTlkNGFkYzcwNTIyZS4u
OGFmNTZmYzY0YmZiYjM0YmNiNGQyYTEyMzk1NGQ5YjA1OTliZGNjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuY3BwCkBAIC0zNDUsNiArMzQ1LDEyIEBAIFN0cmluZyBNZWRpYUNvbnRyb2xzSG9zdDo6Z2Vu
ZXJhdGVVVUlEKCkKIAogI2lmIEVOQUJMRShNT0RFUk5fTUVESUFfQ09OVFJPTFMpCiAKK2NvbnN0
IEF0b21TdHJpbmcmIE1lZGlhQ29udHJvbHNIb3N0OjptZWRpYUNvbnRyb2xzQ29udGFpbmVyQ2xh
c3MoKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gY2xhc3NOYW1lKCJtZWRpYS1jb250cm9scy1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgcmV0dXJuIGNsYXNzTmFtZTsKK30KKwogU3RyaW5n
IE1lZGlhQ29udHJvbHNIb3N0OjpzaGFkb3dSb290Q1NTVGV4dCgpCiB7CiAgICAgcmV0dXJuIFJl
bmRlclRoZW1lOjpzaW5nbGV0b24oKS5tZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9s
c0hvc3QuaAppbmRleCA3Y2MyYTU2NDFjZWUwNDM5MTU0MGNiYWNlZTAxY2YyNGE2NWYzZjUyLi4x
ZGY1Y2ZlMDljZGYxMzU1ZWVjMWRjNzJmNzBjMWMzYWZjMGIxMzZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
aApAQCAtOTUsNiArOTUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZVVV
SUQoKTsKIAogI2lmIEVOQUJMRShNT0RFUk5fTUVESUFfQ09OVFJPTFMpCisgICAgc3RhdGljIGNv
bnN0IEF0b21TdHJpbmcmIG1lZGlhQ29udHJvbHNDb250YWluZXJDbGFzcygpOwogICAgIHN0YXRp
YyBTdHJpbmcgc2hhZG93Um9vdENTU1RleHQoKTsKICAgICBzdGF0aWMgU3RyaW5nIGJhc2U2NFN0
cmluZ0Zvckljb25OYW1lQW5kVHlwZShjb25zdCBTdHJpbmcmIGljb25OYW1lLCBjb25zdCBTdHJp
bmcmIGljb25UeXBlKTsKICAgICBzdGF0aWMgU3RyaW5nIGZvcm1hdHRlZFN0cmluZ0ZvckR1cmF0
aW9uKGRvdWJsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1t
ZWRpYS1jb250cm9scy9jb250cm9scy9jb250cm9scy1iYXIuY3NzIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvY29udHJvbHMtYmFyLmNzcwpp
bmRleCAyNjNkMmZhZDkzYzRhYzNhNzYzODE3MDljOTllNDYwODNmNGQyZTNhLi4wOTY4MmU2MzM1
Yjg3ZmIxYWZiZDg5NDNkNWZiZDcxYzc0OThiZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9jb250cm9scy1iYXIuY3Nz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRy
b2xzL2NvbnRyb2xzLWJhci5jc3MKQEAgLTI4LDQgKzI4LDUgQEAKICAgICBjdXJzb3I6IGRlZmF1
bHQ7CiAgICAgZGlyZWN0aW9uOiBsdHI7CiAgICAgd2lsbC1jaGFuZ2U6IHotaW5kZXg7CisgICAg
ei1pbmRleDogMTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xz
LmNzcwppbmRleCA5MGY0OTRkNzBkODkyODEyNWVmNTEwY2JkOTczODFiOTViMzdjMzVmLi43OWEz
NmJjOTU3N2Q2NzY4MGE1ZDQxYzcxNWY5ZDA5ZjNmMzg4OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250
cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzCkBAIC0yNCw4ICsyNCw3IEBACiAgKi8KIAog
Omhvc3QgewotICAgIC8qIFdlIGFsd2F5cyB3YW50IHRvIHByZXZlbnQgaU9TIGRpYWxvZ3MgYW5k
IHRoZSBtYWduaWZpZXIgVUkgdG8gYmUgc2hvd24uICovCi0gICAgLXdlYmtpdC11c2VyLXNlbGVj
dDogbm9uZSAhaW1wb3J0YW50OworICAgIC8qIFdlIGFsd2F5cyB3YW50IHRvIGF2b2lkIHNob3dp
bmcgdGhlIGNvbnRleHQgbWVudSBvbiBpT1MuICovCiAgICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0
OiBub25lICFpbXBvcnRhbnQ7CiB9CiAKQEAgLTgyLDcgKzgxLDYgQEAKIC5tZWRpYS1jb250cm9s
cyB7CiAgICAgaGVpZ2h0OiAxMDAlOwogICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtOwot
ICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsK
ICAgICB0ZXh0LWFsaWduOiBpbml0aWFsOwogICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDsKQEAg
LTkzLDYgKzkxLDcgQEAKIH0KIAogLm1lZGlhLWNvbnRyb2xzID4gKiB7CisgICAgLXdlYmtpdC11
c2VyLXNlbGVjdDogbm9uZTsKICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgbGluZWFyOwog
fQogCkBAIC0xMjYsNCArMTI1LDQgQEAKIEBtZWRpYSAoaW52ZXJ0ZWQtY29sb3JzKSB7CiAgICAg
Omhvc3QgeyBmaWx0ZXI6IGludmVydCgxMDAlKTsgfSAvKiBXZWJLaXQgbmF0aXZlIGF1ZGlvIGFu
ZCB2aWRlby4gKi8KICAgICBwaWN0dXJlIHsgZmlsdGVyOiBub25lOyB9IC8qIERvbid0IGludmVy
dCB0aGUgY29udHJvbCBidXR0b25zLiAqLwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2NvbnRyb2xzL3BsYWNhcmQuY3NzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvcGxhY2FyZC5jc3MKaW5kZXggMDg2ZDRlYjVkNmQyZjM0
ZDEwODI0M2YzOGQ2YmRhNjM5OTRhMTNiZC4uMDhlZTU2MDVlZTQ4NWNhNDIzZTcxYWUzNzk4MDVl
YjIxNjNlZTU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvY29udHJvbHMvcGxhY2FyZC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvcGxhY2FyZC5jc3MKQEAgLTM2LDYg
KzM2LDggQEAKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGp1c3RpZnktY29udGVudDogY2VudGVy
OwogICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisKKyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBu
b25lOwogfQogCiAucGxhY2FyZCAuY29udGFpbmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAKaW5kZXggMTlhNTllYjY0MzNjOGU1MDU1ZmVmODhmNTJmMDdjOGNmM2IyODVkMy4uOTE0
MGJkMThmYzZmNGJmMjhjOWEzZGJiNDI4Y2NhNmRjZjQ5Mzk1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlICJIVE1MU3R5bGVFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiTWVkaWFDb250cm9sc0hvc3QuaCIK
ICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgog
I2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCkBAIC0xMjUwLDYgKzEyNTEsOSBAQCB2b2lkIEhUTUxF
bGVtZW50OjpzZXRFbnRlcktleUhpbnQoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICBzZXRBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGVudGVya2V5aGludEF0dHIsIHZhbHVlKTsKIH0K
IAorLy8gRklYTUU6IFdlIHNob3VsZCBtb3ZlIGFsbCBvZiB0aGlzIGltYWdlIG92ZXJsYXktc3Bl
Y2lmaWMgbG9naWMgb3V0IGludG8gYSBzZXBhcmF0ZSBoZWxwZXIgZmlsZSAocG9zc2libHkgYXMg
c3RhbmRhbG9uZSBmdW5jdGlvbnMpCisvLyB0byBiZXR0ZXIgY29tcGFydG1lbnRhbGl6ZSB0aGlz
IGNvZGUuCisKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBpbWFnZU92ZXJsYXlFbGVtZW50SWRl
bnRpZmllcigpCiB7CiAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBpZGVudGlmaWVyKCJpbWFnZS1vdmVybGF5IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwpAQCAtMTMyMywxMCArMTMyNyw4IEBAIGJvb2wgSFRNTEVsZW1lbnQ6
OmlzSW1hZ2VPdmVybGF5VGV4dChjb25zdCBOb2RlJiBub2RlKQogICAgIGlmICghaG9zdCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZU
eXBlPEhUTUxEaXZFbGVtZW50PigqaG9zdC0+dXNlckFnZW50U2hhZG93Um9vdCgpKSkgewotICAg
ICAgICBpZiAoY2hpbGQuZ2V0SWRBdHRyaWJ1dGUoKSA9PSBpbWFnZU92ZXJsYXlFbGVtZW50SWRl
bnRpZmllcigpKQotICAgICAgICAgICAgcmV0dXJuIG5vZGUuaXNEZXNjZW5kYW50T2YoY2hpbGQp
OwotICAgIH0KKyAgICBpZiAoUmVmUHRyIG92ZXJsYXkgPSBzdGF0aWNfY2FzdDxUcmVlU2NvcGUm
PigqaG9zdC0+dXNlckFnZW50U2hhZG93Um9vdCgpKS5nZXRFbGVtZW50QnlJZChpbWFnZU92ZXJs
YXlFbGVtZW50SWRlbnRpZmllcigpKSkKKyAgICAgICAgcmV0dXJuIG5vZGUuaXNEZXNjZW5kYW50
T2YoKm92ZXJsYXkpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTM5NSwxNSArMTM5Nywz
MCBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KGNv
bnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYgcgogCiAgICAgYm9vbCBoYWRFeGlzdGluZ1RleHRS
ZWNvZ25pdGlvbkVsZW1lbnRzID0gZmFsc2U7CiAgICAgVGV4dFJlY29nbml0aW9uRWxlbWVudHMg
dGV4dFJlY29nbml0aW9uRWxlbWVudHM7Ci0KLSAgICBpZiAoaGFzSW1hZ2VPdmVybGF5KCkpIHsK
LSAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEhUTUxEaXZFbGVtZW50
PigqdXNlckFnZW50U2hhZG93Um9vdCgpKSkgewotICAgICAgICAgICAgaWYgKGNoaWxkLmdldElk
QXR0cmlidXRlKCkgPT0gaW1hZ2VPdmVybGF5RWxlbWVudElkZW50aWZpZXIoKSkgewotICAgICAg
ICAgICAgICAgIHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLnJvb3QgPSAmY2hpbGQ7Ci0gICAgICAg
ICAgICAgICAgaGFkRXhpc3RpbmdUZXh0UmVjb2duaXRpb25FbGVtZW50cyA9IHRydWU7CisgICAg
UmVmUHRyPEhUTUxFbGVtZW50PiBtZWRpYUNvbnRyb2xzQ29udGFpbmVyOworICAgIGlmIChSZWZQ
dHIgc2hhZG93Um9vdCA9IHRoaXMtPnNoYWRvd1Jvb3QoKSkgeworI2lmIEVOQUJMRShNT0RFUk5f
TUVESUFfQ09OVFJPTFMpCisgICAgICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlw
ZTxIVE1MRGl2RWxlbWVudD4oKnNoYWRvd1Jvb3QpKSB7CisgICAgICAgICAgICBpZiAoY2hpbGQu
aGFzQ2xhc3MoKSAmJiBjaGlsZC5jbGFzc05hbWVzKCkuY29udGFpbnMoTWVkaWFDb250cm9sc0hv
c3Q6Om1lZGlhQ29udHJvbHNDb250YWluZXJDbGFzcygpKSkgeworICAgICAgICAgICAgICAgIG1l
ZGlhQ29udHJvbHNDb250YWluZXIgPSAmY2hpbGQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBpZiAoaGFzSW1hZ2VPdmVy
bGF5KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBjb250YWluZXJGb3JJ
bWFnZU92ZXJsYXk7CisgICAgICAgICAgICBpZiAobWVkaWFDb250cm9sc0NvbnRhaW5lcikKKyAg
ICAgICAgICAgICAgICBjb250YWluZXJGb3JJbWFnZU92ZXJsYXkgPSBtZWRpYUNvbnRyb2xzQ29u
dGFpbmVyOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbnRhaW5lckZvcklt
YWdlT3ZlcmxheSA9IHNoYWRvd1Jvb3Q7CisgICAgICAgICAgICBmb3IgKGF1dG8mIGNoaWxkIDog
Y2hpbGRyZW5PZlR5cGU8SFRNTERpdkVsZW1lbnQ+KCpjb250YWluZXJGb3JJbWFnZU92ZXJsYXkp
KSB7CisgICAgICAgICAgICAgICAgaWYgKGNoaWxkLmdldElkQXR0cmlidXRlKCkgPT0gaW1hZ2VP
dmVybGF5RWxlbWVudElkZW50aWZpZXIoKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0UmVj
b2duaXRpb25FbGVtZW50cy5yb290ID0gJmNoaWxkOworICAgICAgICAgICAgICAgICAgICBoYWRF
eGlzdGluZ1RleHRSZWNvZ25pdGlvbkVsZW1lbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CiAgICAgfQogCiAgICAgaWYgKHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLnJvb3QpIHsKQEAgLTE0
NTcsNyArMTQ3NCwxMSBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0
aW9uUmVzdWx0KGNvbnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYgcgogICAgICAgICByb290Q29u
dGFpbmVyLT5zZXRJZEF0dHJpYnV0ZShpbWFnZU92ZXJsYXlFbGVtZW50SWRlbnRpZmllcigpKTsK
ICAgICAgICAgaWYgKGRvY3VtZW50KCkuaXNJbWFnZURvY3VtZW50KCkpCiAgICAgICAgICAgICBy
b290Q29udGFpbmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VXNl
clNlbGVjdCwgQ1NTVmFsdWVUZXh0KTsKLSAgICAgICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQo
cm9vdENvbnRhaW5lcik7CisKKyAgICAgICAgaWYgKG1lZGlhQ29udHJvbHNDb250YWluZXIpCisg
ICAgICAgICAgICBtZWRpYUNvbnRyb2xzQ29udGFpbmVyLT5hcHBlbmRDaGlsZChyb290Q29udGFp
bmVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQo
cm9vdENvbnRhaW5lcik7CiAgICAgICAgIHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLnJvb3QgPSBy
b290Q29udGFpbmVyLmNvcHlSZWYoKTsKICAgICAgICAgdGV4dFJlY29nbml0aW9uRWxlbWVudHMu
bGluZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyZXN1bHQubGluZXMuc2l6ZSgpKTsKICAgICAg
ICAgZm9yIChhdXRvJiBsaW5lIDogcmVzdWx0LmxpbmVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAzNDVhN2UzMTAyNTEwNmM2ZWIwNDRmYmYyMzgyYjc2
YTA0YjA0NmQ4Li4wMzkwNzcxZGJhY2QyYTcwYzc3MjU4MzFiMDEwZDU4MTRhN2VjOTY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTMxMzAsNiArMzEzMCw4
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFU
aW1lJiBpblRpbWUsIGNvbnN0IE1lZGlhVGltCiAKICAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0
dXJlRm9yTWVkaWEoKSkKICAgICAgICAgbWVkaWFTZXNzaW9uKCkucmVtb3ZlQmVoYXZpb3JSZXN0
cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xD
b250cm9sc01hbmFnZXIpOworCisgICAgcmVtb3ZlSW1hZ2VPdmVybGF5U29vbklmTmVlZGVkKCk7
CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vla1Rhc2soKQpAQCAtMzcxMyw2ICszNzE1
LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwoKQogCiAgICAgbV9hdXRv
cGxheWluZyA9IGZhbHNlOwogICAgIHVwZGF0ZVBsYXlTdGF0ZSgpOworCisgICAgcmVtb3ZlSW1h
Z2VPdmVybGF5U29vbklmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGF1
c2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAppbmRleCA5OGRlMzkzYWY2MDVkOGU4ZTI5YWMxODQ4
NWUyYzQzZjE1ZjRiODgxLi44OGMyNTAwNjFmNGNiMzg0MDY1ZGEwMTVkNWVkYjdjODMwNjY0ZDJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaApAQCAtNTksNiArNTksNyBAQCBzdHJ1Y3QgSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gewogICAgICAgICBVbnNlbGVjdGFibGVEdWVUb0Zv
Y3VzYWJsZUVsZW1lbnQsCiAgICAgICAgIFVuc2VsZWN0YWJsZUR1ZVRvTGFyZ2VFbGVtZW50Qm91
bmRzLAogICAgICAgICBVbnNlbGVjdGFibGVEdWVUb1VzZXJTZWxlY3ROb25lLAorICAgICAgICBV
bnNlbGVjdGFibGVEdWVUb01lZGlhQ29udHJvbHMsCiAgICAgfTsKICAgICBTZWxlY3RhYmlsaXR5
IHNlbGVjdGFiaWxpdHkgeyBTZWxlY3RhYmlsaXR5OjpTZWxlY3RhYmxlIH07CiAKQEAgLTEzMiw3
ICsxMzMsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb246OlNlbGVjdGFiaQogICAgICAgICBXZWJLaXQ6OkludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpTZWxlY3RhYmlsaXR5OjpTZWxlY3RhYmxlLAog
ICAgICAgICBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpTZWxlY3Rh
YmlsaXR5OjpVbnNlbGVjdGFibGVEdWVUb0ZvY3VzYWJsZUVsZW1lbnQsCiAgICAgICAgIFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OlNlbGVjdGFiaWxpdHk6OlVuc2Vs
ZWN0YWJsZUR1ZVRvTGFyZ2VFbGVtZW50Qm91bmRzLAotICAgICAgICBXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpTZWxlY3RhYmlsaXR5OjpVbnNlbGVjdGFibGVEdWVU
b1VzZXJTZWxlY3ROb25lCisgICAgICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246OlNlbGVjdGFiaWxpdHk6OlVuc2VsZWN0YWJsZUR1ZVRvVXNlclNlbGVjdE5vbmUs
CisgICAgICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OlNlbGVj
dGFiaWxpdHk6OlVuc2VsZWN0YWJsZUR1ZVRvTWVkaWFDb250cm9scwogICAgID47CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQppbmRleCBhODU1MmRjYThiODk4NDcwZjYwYmIyZTdhZTc1Njg5YjBmMzY0Yjc3
Li4zOTQzOGJmMWQ3NTUzMTk0NTY2MDQwMjA1NTAwYmI3NDhlMTJjMzkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KQEAgLTIyNiw2ICsyMjYsMTkgQEAgQGVuZAogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFk
ZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnMubW0+CisjZWxzZQorCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorc3RhdGljIGJvb2wgY2FuQXR0ZW1wdFRleHRSZWNv
Z25pdGlvbkZvck5vbkltYWdlRWxlbWVudHMoY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbiYgaW5mb3JtYXRpb24sIGNvbnN0IFdlYktpdDo6V2ViUHJlZmVyZW5j
ZXMmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCisKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTEwMTg3LDcgKzEwMjAwLDcgQEAg
LSAodm9pZClpbWFnZUFuYWx5c2lzR2VzdHVyZURpZEJlZ2luOihXS0ltYWdlQW5hbHlzaXNHZXN0
dXJlUmVjb2duaXplciAqKWdlc3R1cmUKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBi
b29sIHNob3VsZEFuYWx5emVJbWFnZUF0TG9jYXRpb24gPSAoWyZdIHsKLSAgICAgICAgICAgIGlm
ICghaW5mb3JtYXRpb24uaXNJbWFnZSkKKyAgICAgICAgICAgIGlmICghaW5mb3JtYXRpb24uaXNJ
bWFnZSAmJiAhY2FuQXR0ZW1wdFRleHRSZWNvZ25pdGlvbkZvck5vbkltYWdlRWxlbWVudHMoaW5m
b3JtYXRpb24sIHN0cm9uZ1NlbGYtPl9wYWdlLT5wcmVmZXJlbmNlcygpKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIGlmICghaW5mb3JtYXRpb24uaW1hZ2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCmluZGV4IGRhOTZmMjE4MDQ2ZGNkNDE3ZGYyYTY4NmE0ZmZlMmE3NzI5OTMxMTAuLmE5NzE1
ZGUzNDAxYTQwZTBiZThkNzhjY2EyNmFjMWI1MmY5MDgyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yOTQwLDYgKzI5
NDAsOSBAQCBzdGF0aWMgdm9pZCBzZWxlY3Rpb25Qb3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2Um
IHBhZ2UsIGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYQogICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBJcyB0aGlzIGhldXJpc3RpYyBzdGlsbCBuZWVkZWQsIG5vdyB0aGF0IGJsb2NrIHNlbGVjdGlv
biBoYXMgYmVlbiByZW1vdmVkPwogICAgICAgICAgICAgICAgIHJldHVybiBJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjo6U2VsZWN0YWJpbGl0eTo6VW5zZWxlY3RhYmxlRHVlVG9MYXJn
ZUVsZW1lbnRCb3VuZHM7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChob3N0Vmlk
ZW9FbGVtZW50SWdub3JpbmdJbWFnZU92ZXJsYXkoKmhpdE5vZGUpKQorICAgICAgICAgICAgICAg
IHJldHVybiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6U2VsZWN0YWJpbGl0eTo6
VW5zZWxlY3RhYmxlRHVlVG9NZWRpYUNvbnRyb2xzOwogICAgICAgICB9CiAKICAgICAgICAgcmV0
dXJuIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpTZWxlY3RhYmlsaXR5OjpTZWxl
Y3RhYmxlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDkwNjIyMDFiNDBjMjhmZWU3MzhkNGJiODkyZTdiMzk0YWFjM2VjNTYu
LmUwNDUwNjNmN2IyYmNmMzU3YzU4ZDIzZjEwNTIwZjk3MTgyMzRlYzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAyMS0xMS0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KKworICAgICAgICBSZWZhY3RvciBzb21lIGltYWdlIG92ZXJsYXkgbG9naWMgdG8gd29yayB3
aXRoIGJ1aWx0LWluIG1lZGlhIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4OTkKKyAgICAgICAgcmRhcjovLzgzMTczNTk3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0IGEgbW9k
ZXJuIG1lZGlhIGNvbnRyb2xzIHRlc3QsIHN1Y2ggdGhhdCBpdCBubyBsb25nZXIgdmVyaWZpZXMg
dGhhdCB0aGUgYC13ZWJraXQtdXNlci1zZWxlY3RgIENTUyBwcm9wZXJ0eQorICAgICAgICBpcyBu
b25lIG9uIGFuIGF1ZGlvIGVsZW1lbnQ7IGluIGxpZXUgb2YgdGhpcywgd2UgYWRkIGEgbmV3IGxh
eW91dCB0ZXN0IGluIGBlZGl0aW5nL3NlbGVjdGlvbmAgdG8gdmVyaWZ5IHRoYXQKKyAgICAgICAg
bG9uZyBwcmVzc2luZyBvdmVyIHRoZSB0aW1lc3RhbXAgb2YgYW4gYXVkaW8gZWxlbWVudCBkb2Vz
IG5vdCB0cmlnZ2VyIHRleHQgc2VsZWN0aW9uLgorCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rp
b24vaW9zL2RvLW5vdC1hbGxvdy10ZXh0LXNlbGVjdGlvbi1pbi1hdWRpby1lbGVtZW50LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vaW9zL2RvLW5vdC1h
bGxvdy10ZXh0LXNlbGVjdGlvbi1pbi1hdWRpby1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9hdWRpby9hdWRpby1jb250cm9scy1zdHls
ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9h
dWRpby9hdWRpby1jb250cm9scy1zdHlsZXMuaHRtbDoKKwogMjAyMS0xMS0wOSAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjcxNzM1KTog
UGF5bWVudFNoaXBwaW5nT3B0aW9uLnNlbGVjdGVkIGlnbm9yZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ctdGV4dC1zZWxlY3Rpb24t
aW4tYXVkaW8tZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9pb3MvZG8tbm90LWFsbG93LXRleHQtc2VsZWN0aW9uLWluLWF1ZGlvLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3YTg4MmVhNWU1YTFhMGVjNDc3Y2VkMzQyYjk2Njk2OGI0
OWI4MTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9p
b3MvZG8tbm90LWFsbG93LXRleHQtc2VsZWN0aW9uLWluLWF1ZGlvLWVsZW1lbnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGxvbmcgcHJlc3Np
bmcgdGhlIHRpbWVzdGFtcCBpbiBhbiBhdWRpbyBlbGVtZW50IGRvZXMgbm90IHN0YXJ0IGEgdGV4
dCBzZWxlY3Rpb24uIFRvIG1hbnVhbGx5IHJ1biB0aGUgdGVzdCwgbG9uZyBwcmVzcyB0aGUgYXVk
aW8gZWxlbWVudCBiZWxvdyBhbmQgdmVyaWZ5IHRoYXQgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdHMubGVuZ3RoIGlzIDAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvZG8tbm90LWFsbG93LXRleHQt
c2VsZWN0aW9uLWluLWF1ZGlvLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ctdGV4dC1zZWxlY3Rpb24taW4tYXVkaW8tZWxlbWVudC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjMxMDVjMGNmY2RlOGU3Y2NiZDNjOTVjZmNiZTdlNGJjNjUzZjdlOGEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvZG8t
bm90LWFsbG93LXRleHQtc2VsZWN0aW9uLWluLWF1ZGlvLWVsZW1lbnQuaHRtbApAQCAtMCwwICsx
LDM0IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4
aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZp
ZXMgdGhhdCBsb25nIHByZXNzaW5nIHRoZSB0aW1lc3RhbXAgaW4gYW4gYXVkaW8gZWxlbWVudCBk
b2VzIG5vdCBzdGFydCBhIHRleHQgc2VsZWN0aW9uLiBUbyBtYW51YWxseSBydW4gdGhlIHRlc3Qs
IGxvbmcgcHJlc3MgdGhlIGF1ZGlvIGVsZW1lbnQgYmVsb3cgYW5kIHZlcmlmeSB0aGF0IG5vIHRl
eHQgaXMgc2VsZWN0ZWQuIik7CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4g
eworICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgcmV0dXJuOworCisgICAgY29u
c3QgYXVkaW9FbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYXVkaW8iKTsKKyAgICBs
ZXQgdGltZUxhYmVsOworICAgIGZvciAobGV0IGxhYmVsIG9mIEFycmF5LmZyb20oaW50ZXJuYWxz
LnNoYWRvd1Jvb3QoYXVkaW9FbGVtZW50KS5xdWVyeVNlbGVjdG9yQWxsKCJkaXYudGltZS1sYWJl
bCIpKSkgeworICAgICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShsYWJlbCkuZGlzcGxheSAhPT0g
Im5vbmUiKQorICAgICAgICAgICAgdGltZUxhYmVsID0gbGFiZWw7CisgICAgfQorCisgICAgY29u
c3QgdGFyZ2V0WCA9IChhdWRpb0VsZW1lbnQub2Zmc2V0TGVmdCArIHRpbWVMYWJlbC5vZmZzZXRM
ZWZ0KSArIHRpbWVMYWJlbC5vZmZzZXRXaWR0aCAvIDI7CisgICAgY29uc3QgdGFyZ2V0WSA9IChh
dWRpb0VsZW1lbnQub2Zmc2V0VG9wICsgdGltZUxhYmVsLm9mZnNldFRvcCkgKyB0aW1lTGFiZWwu
b2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KHRh
cmdldFgsIHRhcmdldFkpOworICAgIHJlY3RzID0gYXdhaXQgVUlIZWxwZXIuZ2V0VUlTZWxlY3Rp
b25WaWV3UmVjdHMoKTsKKworICAgIHNob3VsZEJlKCJyZWN0cy5sZW5ndGgiLCAiMCIpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGF1ZGlv
IGNvbnRyb2xzIHNyYz0iLi4vLi4vLi4vbWVkaWEvY29udGVudC9hdWRpby10cmFja3MubXA0Ij48
L2F1ZGlvPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9hdWRpby9h
dWRpby1jb250cm9scy1zdHlsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxlcy1leHBlY3RlZC50
eHQKaW5kZXggNTE5M2Y3ZGMzOTAwNTIyMTIzNjI2YmJiYTBkYTA2MTlmMjg5ODAyZC4uYmY0NzRm
OTU2MTRkOTM3ODZmMzY4M2E4ZGM3MjYyMTA5NDliMjZkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxl
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxlcy1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw2
IEBAIFRlc3RpbmcgbWVkaWEgZWxlbWVudHMgZGlzYWJsZSBidWlsdC1pbiBicm93c2VyIFVJIGZl
YXR1cmVzIHRvIGNvcHkgY29udGVudC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1Q
QVNTIGdldENvbXB1dGVkU3R5bGUoYXVkaW8pLldlYmtpdFVzZXJTZWxlY3QgaXMgIm5vbmUiCiBQ
QVNTIGdldENvbXB1dGVkU3R5bGUoYXVkaW8pLldlYmtpdFRvdWNoQ2FsbG91dCBpcyAibm9uZSIK
IAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxl
cy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1
ZGlvLWNvbnRyb2xzLXN0eWxlcy5odG1sCmluZGV4IDU2MmVhNTQ5MDhlNGExZmFkNzJjM2M3NDA0
ZThhN2IzMDRkMGNiNjIuLjkyMzM1MjBmNGU3NDg3YmEyMmZkMjYwYmY2YjRjMGVkYjhmZGZmYWIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9hdWRp
by9hdWRpby1jb250cm9scy1zdHlsZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvYXVkaW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLmh0bWwKQEAgLTgs
NyArOCw2IEBAIGRlc2NyaXB0aW9uKCJUZXN0aW5nIG1lZGlhIGVsZW1lbnRzIGRpc2FibGUgYnVp
bHQtaW4gYnJvd3NlciBVSSBmZWF0dXJlcyB0byBjb3B5CiBjb25zdCBhdWRpbyA9IGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYXVkaW8iKSk7CiBhdWRp
by5jb250cm9scyA9IHRydWU7CiAKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q29tcHV0ZWRT
dHlsZShhdWRpbykuV2Via2l0VXNlclNlbGVjdCIsICJub25lIik7CiBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImdldENvbXB1dGVkU3R5bGUoYXVkaW8pLldlYmtpdFRvdWNoQ2FsbG91dCIsICJub25l
Iik7CiAKIGRlYnVnKCIiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443750</attachid>
            <date>2021-11-09 16:20:37 -0800</date>
            <delta_ts>2021-11-09 17:32:34 -0800</delta_ts>
            <desc>Remove unnecessary stylesheet change</desc>
            <filename>bug-232899-20211109162036.patch</filename>
            <type>text/plain</type>
            <size>21021</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE1YzZhZmVhZTgxYmI5
NmM0YTJjZTE2MGRmOGE3YjQ4M2I1ZGRlYS4uOTQxODU1MTU4NzBhNzA4NDk3MjM5MzQ4MjY0OWYx
ZGU3Yjg4MGZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTExLTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIHNv
bWUgaW1hZ2Ugb3ZlcmxheSBsb2dpYyB0byB3b3JrIHdpdGggYnVpbHQtaW4gbWVkaWEgY29udHJv
bHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg5
OQorICAgICAgICByZGFyOi8vODMxNzM1OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWtlIHZhcmlvdXMgbWlub3IgYWRqdXN0bWVudHMgdG8gYWxs
b3cgYnVpbHQtaW4gbW9kZXJuIG1lZGlhIGNvbnRyb2xzIHRvIHBsYXkgd2VsbCB3aXRoIGltYWdl
IG92ZXJsYXkgY29udGVudC4KKyAgICAgICAgU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6Om1lZGlhQ29udHJvbHNDb250YWlu
ZXJDbGFzcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0Lmg6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGdyYWIgdGhlICJtZWRp
YS1jb250cm9scy1jb250YWluZXIiIGNsYXNzIG5hbWUsIHdoaWNoIGlzIHVzZWQgZm9yIHRoZSBg
ZGl2YCBlbGVtZW50CisgICAgICAgIGNvbnRhaW5pbmcgYnVpbHQtaW4gbW9kZXJuIG1lZGlhIGNv
bnRyb2xzLiBUaGlzIGlzIHVzZWQgYmVsb3cgdG8gaWRlbnRpZnkgZXhpc3RpbmcgbWVkaWEgY29u
dHJvbCBjb250YWluZXIKKyAgICAgICAgZWxlbWVudHMgd2hlbiBkZXRlcm1pbmluZyB3aGVyZSB0
byBpbmplY3QgdGhlIGltYWdlIG92ZXJsYXkgcm9vdCBjb250YWluZXIuCisKKyAgICAgICAgKiBN
b2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9jb250cm9scy1iYXIuY3NzOgor
ICAgICAgICAoLmNvbnRyb2xzLWJhcik6CisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzOgorICAgICAgICAoOmhvc3QpOgor
CisgICAgICAgIFJlbW92ZSBgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtgIGhlcmUuIFRoaXMg
d2FzIGFkZGVkIHRvIHByZXZlbnQgdGhlIGlPUyBtYWduaWZpZXIgVUkgZnJvbSBzaG93aW5nIHVw
IHdoZW4KKyAgICAgICAgbG9uZyBwcmVzc2luZyBpbnNpZGUgYSB2aWRlbyBlbGVtZW50OyB3ZSBj
YW4gYWNoaWV2ZSB0aGUgc2FtZSBlZmZlY3Qgd2l0aG91dCBhcHBseWluZyB0aGlzIHByb3BlcnR5
IG92ZXIgdGhlCisgICAgICAgIGVudGlyZSBob3N0IGVsZW1lbnQgYnkgaW5zdGVhZCBjaGFuZ2lu
ZyBzZWxlY3Rpb24gbG9naWMgaW4gV2ViS2l0Mi4KKworICAgICAgICAoLm1lZGlhLWNvbnRyb2xz
KToKKworICAgICAgICBQdXNoIHRoZSBgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtgIHByb3Bl
cnR5IGRvd24gaW50byB0aGUgbWVkaWEgY29udHJvbCBjaGlsZHJlbiwgaW5zdGVhZCBvZiBvbgor
ICAgICAgICBgLm1lZGlhLWNvbnRyb2xzYCBpdHNlbGYuCisKKyAgICAgICAgKC5tZWRpYS1jb250
cm9scyA+IC5jb250cm9scy1iYXIpOgorCisgICAgICAgIFotb3JkZXIgdGhlIG1lZGlhIGNvbnRy
b2xzIGJhciAod2hpY2ggY29udGFpbnMgYWxsIGludGVyYWN0aWJsZSBtZWRpYSBjb250cm9sIGVs
ZW1lbnRzKSBhYm92ZSBhbnkgaW1hZ2Ugb3ZlcmxheQorICAgICAgICBjb250ZW50IHRoYXQgbWF5
IGNvZXhpc3QgaW4gdGhlIHNhbWUgc2hhZG93IHJvb3QuCisKKyAgICAgICAgKiBodG1sL0hUTUxF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojppc0ltYWdlT3Zlcmxh
eVRleHQpOgorCisgICAgICAgIEFkanVzdCB0aGlzIGhlbHBlciBtZXRob2QgdG8gd29yayBpbiB0
aGUgY2FzZSB3aGVyZSB0aGUgaW1hZ2Ugb3ZlcmxheSBjb250YWluZXIgaXMgaG9zdGVkIHVuZGVy
bmVhdGggdGhlIG1lZGlhCisgICAgICAgIGNvbnRyb2xzIGNvbnRhaW5lci4KKworICAgICAgICAo
V2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQpOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpzZWVrV2l0aFRvbGVyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwpOgorCisgICAgICAgIElmIG5lZWRlZCwgcmVt
b3ZlIHRoZSBpbWFnZSBvdmVybGF5IHdoZW4gc2Vla2luZyBvciBwbGF5aW5nIG1lZGlhLgorCiAy
MDIxLTExLTA5ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAg
ICAgRml4ICFFTkFCTEUoQUNDRVNTSUJJTElUWSkgYWZ0ZXIgcjI4NTQyNwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBj
ZGIxOTU2NWU0MjhjM2YyYjJhNGNhYTEzYzQ3ZDBlYzBhMzBiMDU2Li40ODY4Y2M4MjkzMThhZWU3
YTIwYTU5ZTU5MTg5OTdiYWNhMGYwNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIx
LTExLTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFJlZmFjdG9yIHNvbWUgaW1hZ2Ugb3ZlcmxheSBsb2dpYyB0byB3b3JrIHdpdGggYnVpbHQtaW4g
bWVkaWEgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMjg5OQorICAgICAgICByZGFyOi8vODMxNzM1OTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZS9DaGFuZ2VMb2cgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFNoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKGNhbkF0dGVtcHRUZXh0UmVjb2duaXRpb25Gb3JOb25J
bWFnZUVsZW1lbnRzKToKKworICAgICAgICBBZGQgYSBuZXcgV2ViS2l0QWRkaXRpb25zIGludGVn
cmF0aW9uIHBvaW50LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNpc0dl
c3R1cmVEaWRCZWdpbjpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OnNlbGVjdGlvblBvc2l0aW9uSW5mb3JtYXRpb24p
OgorCisgICAgICAgIEFkanVzdCBmb3IgdGhlIGNoYW5nZXMgdG8gdGhlIGJ1aWx0LWluIG1lZGlh
IGNvbnRyb2xzIHN0eWxlc2hlZXQgYnkgYWRkaW5nIGxvZ2ljIHRvIHByZXZlbnQgdGhlIG1hZ25p
ZmllciBmcm9tCisgICAgICAgIHNob3dpbmcgdXAgd2hlbiBsb25nIHByZXNzaW5nIChvciBsb25n
IHByZXNzaW5nIGluc2lkZSkgdmlkZW8gZWxlbWVudHMgb24gaU9TLgorCiAyMDIxLTExLTA5ICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIy
NzE3MzUpOiBQYXltZW50U2hpcHBpbmdPcHRpb24uc2VsZWN0ZWQgaWdub3JlZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xz
SG9zdC5jcHAKaW5kZXggMWZjZGZmMDMzYmIxM2RmODY0NGI2NzU4NGZjOTlkNGFkYzcwNTIyZS4u
OGFmNTZmYzY0YmZiYjM0YmNiNGQyYTEyMzk1NGQ5YjA1OTliZGNjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuY3BwCkBAIC0zNDUsNiArMzQ1LDEyIEBAIFN0cmluZyBNZWRpYUNvbnRyb2xzSG9zdDo6Z2Vu
ZXJhdGVVVUlEKCkKIAogI2lmIEVOQUJMRShNT0RFUk5fTUVESUFfQ09OVFJPTFMpCiAKK2NvbnN0
IEF0b21TdHJpbmcmIE1lZGlhQ29udHJvbHNIb3N0OjptZWRpYUNvbnRyb2xzQ29udGFpbmVyQ2xh
c3MoKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gY2xhc3NOYW1lKCJtZWRpYS1jb250cm9scy1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgcmV0dXJuIGNsYXNzTmFtZTsKK30KKwogU3RyaW5n
IE1lZGlhQ29udHJvbHNIb3N0OjpzaGFkb3dSb290Q1NTVGV4dCgpCiB7CiAgICAgcmV0dXJuIFJl
bmRlclRoZW1lOjpzaW5nbGV0b24oKS5tZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9s
c0hvc3QuaAppbmRleCA3Y2MyYTU2NDFjZWUwNDM5MTU0MGNiYWNlZTAxY2YyNGE2NWYzZjUyLi4x
ZGY1Y2ZlMDljZGYxMzU1ZWVjMWRjNzJmNzBjMWMzYWZjMGIxMzZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
aApAQCAtOTUsNiArOTUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZVVV
SUQoKTsKIAogI2lmIEVOQUJMRShNT0RFUk5fTUVESUFfQ09OVFJPTFMpCisgICAgc3RhdGljIGNv
bnN0IEF0b21TdHJpbmcmIG1lZGlhQ29udHJvbHNDb250YWluZXJDbGFzcygpOwogICAgIHN0YXRp
YyBTdHJpbmcgc2hhZG93Um9vdENTU1RleHQoKTsKICAgICBzdGF0aWMgU3RyaW5nIGJhc2U2NFN0
cmluZ0Zvckljb25OYW1lQW5kVHlwZShjb25zdCBTdHJpbmcmIGljb25OYW1lLCBjb25zdCBTdHJp
bmcmIGljb25UeXBlKTsKICAgICBzdGF0aWMgU3RyaW5nIGZvcm1hdHRlZFN0cmluZ0ZvckR1cmF0
aW9uKGRvdWJsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1t
ZWRpYS1jb250cm9scy9jb250cm9scy9jb250cm9scy1iYXIuY3NzIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvY29udHJvbHMtYmFyLmNzcwpp
bmRleCAyNjNkMmZhZDkzYzRhYzNhNzYzODE3MDljOTllNDYwODNmNGQyZTNhLi4wOTY4MmU2MzM1
Yjg3ZmIxYWZiZDg5NDNkNWZiZDcxYzc0OThiZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9jb250cm9scy1iYXIuY3Nz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRy
b2xzL2NvbnRyb2xzLWJhci5jc3MKQEAgLTI4LDQgKzI4LDUgQEAKICAgICBjdXJzb3I6IGRlZmF1
bHQ7CiAgICAgZGlyZWN0aW9uOiBsdHI7CiAgICAgd2lsbC1jaGFuZ2U6IHotaW5kZXg7CisgICAg
ei1pbmRleDogMTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xz
LmNzcwppbmRleCA5MGY0OTRkNzBkODkyODEyNWVmNTEwY2JkOTczODFiOTViMzdjMzVmLi43OWEz
NmJjOTU3N2Q2NzY4MGE1ZDQxYzcxNWY5ZDA5ZjNmMzg4OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250
cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzCkBAIC0yNCw4ICsyNCw3IEBACiAgKi8KIAog
Omhvc3QgewotICAgIC8qIFdlIGFsd2F5cyB3YW50IHRvIHByZXZlbnQgaU9TIGRpYWxvZ3MgYW5k
IHRoZSBtYWduaWZpZXIgVUkgdG8gYmUgc2hvd24uICovCi0gICAgLXdlYmtpdC11c2VyLXNlbGVj
dDogbm9uZSAhaW1wb3J0YW50OworICAgIC8qIFdlIGFsd2F5cyB3YW50IHRvIGF2b2lkIHNob3dp
bmcgdGhlIGNvbnRleHQgbWVudSBvbiBpT1MuICovCiAgICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0
OiBub25lICFpbXBvcnRhbnQ7CiB9CiAKQEAgLTgyLDcgKzgxLDYgQEAKIC5tZWRpYS1jb250cm9s
cyB7CiAgICAgaGVpZ2h0OiAxMDAlOwogICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtOwot
ICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsK
ICAgICB0ZXh0LWFsaWduOiBpbml0aWFsOwogICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDsKQEAg
LTkzLDYgKzkxLDcgQEAKIH0KIAogLm1lZGlhLWNvbnRyb2xzID4gKiB7CisgICAgLXdlYmtpdC11
c2VyLXNlbGVjdDogbm9uZTsKICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgbGluZWFyOwog
fQogCkBAIC0xMjYsNCArMTI1LDQgQEAKIEBtZWRpYSAoaW52ZXJ0ZWQtY29sb3JzKSB7CiAgICAg
Omhvc3QgeyBmaWx0ZXI6IGludmVydCgxMDAlKTsgfSAvKiBXZWJLaXQgbmF0aXZlIGF1ZGlvIGFu
ZCB2aWRlby4gKi8KICAgICBwaWN0dXJlIHsgZmlsdGVyOiBub25lOyB9IC8qIERvbid0IGludmVy
dCB0aGUgY29udHJvbCBidXR0b25zLiAqLwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggMTlhNTllYjY0MzNjOGU1MDU1
ZmVmODhmNTJmMDdjOGNmM2IyODVkMy4uOTE0MGJkMThmYzZmNGJmMjhjOWEzZGJiNDI4Y2NhNmRj
ZjQ5Mzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTYxLDYgKzYxLDcg
QEAKICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVh
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgiCisjaW5j
bHVkZSAiTWVkaWFDb250cm9sc0hvc3QuaCIKICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAj
aW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCkBAIC0x
MjUwLDYgKzEyNTEsOSBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRFbnRlcktleUhpbnQoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGVu
dGVya2V5aGludEF0dHIsIHZhbHVlKTsKIH0KIAorLy8gRklYTUU6IFdlIHNob3VsZCBtb3ZlIGFs
bCBvZiB0aGlzIGltYWdlIG92ZXJsYXktc3BlY2lmaWMgbG9naWMgb3V0IGludG8gYSBzZXBhcmF0
ZSBoZWxwZXIgZmlsZSAocG9zc2libHkgYXMgc3RhbmRhbG9uZSBmdW5jdGlvbnMpCisvLyB0byBi
ZXR0ZXIgY29tcGFydG1lbnRhbGl6ZSB0aGlzIGNvZGUuCisKIHN0YXRpYyBjb25zdCBBdG9tU3Ry
aW5nJiBpbWFnZU92ZXJsYXlFbGVtZW50SWRlbnRpZmllcigpCiB7CiAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpZGVudGlmaWVyKCJpbWFnZS1v
dmVybGF5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwpAQCAtMTMyMywxMCAr
MTMyNyw4IEBAIGJvb2wgSFRNTEVsZW1lbnQ6OmlzSW1hZ2VPdmVybGF5VGV4dChjb25zdCBOb2Rl
JiBub2RlKQogICAgIGlmICghaG9zdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZm9y
IChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEhUTUxEaXZFbGVtZW50PigqaG9zdC0+dXNl
ckFnZW50U2hhZG93Um9vdCgpKSkgewotICAgICAgICBpZiAoY2hpbGQuZ2V0SWRBdHRyaWJ1dGUo
KSA9PSBpbWFnZU92ZXJsYXlFbGVtZW50SWRlbnRpZmllcigpKQotICAgICAgICAgICAgcmV0dXJu
IG5vZGUuaXNEZXNjZW5kYW50T2YoY2hpbGQpOwotICAgIH0KKyAgICBpZiAoUmVmUHRyIG92ZXJs
YXkgPSBzdGF0aWNfY2FzdDxUcmVlU2NvcGUmPigqaG9zdC0+dXNlckFnZW50U2hhZG93Um9vdCgp
KS5nZXRFbGVtZW50QnlJZChpbWFnZU92ZXJsYXlFbGVtZW50SWRlbnRpZmllcigpKSkKKyAgICAg
ICAgcmV0dXJuIG5vZGUuaXNEZXNjZW5kYW50T2YoKm92ZXJsYXkpOwogCiAgICAgcmV0dXJuIGZh
bHNlOwogfQpAQCAtMTM5NSwxNSArMTM5NywzMCBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVX
aXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYgcgog
CiAgICAgYm9vbCBoYWRFeGlzdGluZ1RleHRSZWNvZ25pdGlvbkVsZW1lbnRzID0gZmFsc2U7CiAg
ICAgVGV4dFJlY29nbml0aW9uRWxlbWVudHMgdGV4dFJlY29nbml0aW9uRWxlbWVudHM7Ci0KLSAg
ICBpZiAoaGFzSW1hZ2VPdmVybGF5KCkpIHsKLSAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNo
aWxkcmVuT2ZUeXBlPEhUTUxEaXZFbGVtZW50PigqdXNlckFnZW50U2hhZG93Um9vdCgpKSkgewot
ICAgICAgICAgICAgaWYgKGNoaWxkLmdldElkQXR0cmlidXRlKCkgPT0gaW1hZ2VPdmVybGF5RWxl
bWVudElkZW50aWZpZXIoKSkgewotICAgICAgICAgICAgICAgIHRleHRSZWNvZ25pdGlvbkVsZW1l
bnRzLnJvb3QgPSAmY2hpbGQ7Ci0gICAgICAgICAgICAgICAgaGFkRXhpc3RpbmdUZXh0UmVjb2du
aXRpb25FbGVtZW50cyA9IHRydWU7CisgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtZWRpYUNvbnRy
b2xzQ29udGFpbmVyOworICAgIGlmIChSZWZQdHIgc2hhZG93Um9vdCA9IHRoaXMtPnNoYWRvd1Jv
b3QoKSkgeworI2lmIEVOQUJMRShNT0RFUk5fTUVESUFfQ09OVFJPTFMpCisgICAgICAgIGZvciAo
YXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxIVE1MRGl2RWxlbWVudD4oKnNoYWRvd1Jvb3Qp
KSB7CisgICAgICAgICAgICBpZiAoY2hpbGQuaGFzQ2xhc3MoKSAmJiBjaGlsZC5jbGFzc05hbWVz
KCkuY29udGFpbnMoTWVkaWFDb250cm9sc0hvc3Q6Om1lZGlhQ29udHJvbHNDb250YWluZXJDbGFz
cygpKSkgeworICAgICAgICAgICAgICAgIG1lZGlhQ29udHJvbHNDb250YWluZXIgPSAmY2hpbGQ7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyNlbmRp
ZgorICAgICAgICBpZiAoaGFzSW1hZ2VPdmVybGF5KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxD
b250YWluZXJOb2RlPiBjb250YWluZXJGb3JJbWFnZU92ZXJsYXk7CisgICAgICAgICAgICBpZiAo
bWVkaWFDb250cm9sc0NvbnRhaW5lcikKKyAgICAgICAgICAgICAgICBjb250YWluZXJGb3JJbWFn
ZU92ZXJsYXkgPSBtZWRpYUNvbnRyb2xzQ29udGFpbmVyOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIGNvbnRhaW5lckZvckltYWdlT3ZlcmxheSA9IHNoYWRvd1Jvb3Q7CisgICAg
ICAgICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8SFRNTERpdkVsZW1lbnQ+
KCpjb250YWluZXJGb3JJbWFnZU92ZXJsYXkpKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoaWxk
LmdldElkQXR0cmlidXRlKCkgPT0gaW1hZ2VPdmVybGF5RWxlbWVudElkZW50aWZpZXIoKSkgewor
ICAgICAgICAgICAgICAgICAgICB0ZXh0UmVjb2duaXRpb25FbGVtZW50cy5yb290ID0gJmNoaWxk
OworICAgICAgICAgICAgICAgICAgICBoYWRFeGlzdGluZ1RleHRSZWNvZ25pdGlvbkVsZW1lbnRz
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKHRleHRSZWNvZ25p
dGlvbkVsZW1lbnRzLnJvb3QpIHsKQEAgLTE0NTcsNyArMTQ3NCwxMSBAQCB2b2lkIEhUTUxFbGVt
ZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFRleHRSZWNvZ25pdGlv
blJlc3VsdCYgcgogICAgICAgICByb290Q29udGFpbmVyLT5zZXRJZEF0dHJpYnV0ZShpbWFnZU92
ZXJsYXlFbGVtZW50SWRlbnRpZmllcigpKTsKICAgICAgICAgaWYgKGRvY3VtZW50KCkuaXNJbWFn
ZURvY3VtZW50KCkpCiAgICAgICAgICAgICByb290Q29udGFpbmVyLT5zZXRJbmxpbmVTdHlsZVBy
b3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVUZXh0KTsKLSAgICAg
ICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQocm9vdENvbnRhaW5lcik7CisKKyAgICAgICAgaWYg
KG1lZGlhQ29udHJvbHNDb250YWluZXIpCisgICAgICAgICAgICBtZWRpYUNvbnRyb2xzQ29udGFp
bmVyLT5hcHBlbmRDaGlsZChyb290Q29udGFpbmVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQocm9vdENvbnRhaW5lcik7CiAgICAgICAgIHRleHRS
ZWNvZ25pdGlvbkVsZW1lbnRzLnJvb3QgPSByb290Q29udGFpbmVyLmNvcHlSZWYoKTsKICAgICAg
ICAgdGV4dFJlY29nbml0aW9uRWxlbWVudHMubGluZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShy
ZXN1bHQubGluZXMuc2l6ZSgpKTsKICAgICAgICAgZm9yIChhdXRvJiBsaW5lIDogcmVzdWx0Lmxp
bmVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAzNDVh
N2UzMTAyNTEwNmM2ZWIwNDRmYmYyMzgyYjc2YTA0YjA0NmQ4Li4wMzkwNzcxZGJhY2QyYTcwYzc3
MjU4MzFiMDEwZDU4MTRhN2VjOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTMxMzAsNiArMzEzMCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vl
a1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFUaW1lJiBpblRpbWUsIGNvbnN0IE1lZGlhVGltCiAK
ICAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgbWVkaWFT
ZXNzaW9uKCkucmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpS
ZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpOworCisgICAgcmVtb3Zl
SW1hZ2VPdmVybGF5U29vbklmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
c2Vla1Rhc2soKQpAQCAtMzcxMyw2ICszNzE1LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpw
bGF5SW50ZXJuYWwoKQogCiAgICAgbV9hdXRvcGxheWluZyA9IGZhbHNlOwogICAgIHVwZGF0ZVBs
YXlTdGF0ZSgpOworCisgICAgcmVtb3ZlSW1hZ2VPdmVybGF5U29vbklmTmVlZGVkKCk7CiB9CiAK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGF1c2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAppbmRl
eCA5OGRlMzkzYWY2MDVkOGU4ZTI5YWMxODQ4NWUyYzQzZjE1ZjRiODgxLi44OGMyNTAwNjFmNGNi
Mzg0MDY1ZGEwMTVkNWVkYjdjODMwNjY0ZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaApAQCAt
NTksNiArNTksNyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gewog
ICAgICAgICBVbnNlbGVjdGFibGVEdWVUb0ZvY3VzYWJsZUVsZW1lbnQsCiAgICAgICAgIFVuc2Vs
ZWN0YWJsZUR1ZVRvTGFyZ2VFbGVtZW50Qm91bmRzLAogICAgICAgICBVbnNlbGVjdGFibGVEdWVU
b1VzZXJTZWxlY3ROb25lLAorICAgICAgICBVbnNlbGVjdGFibGVEdWVUb01lZGlhQ29udHJvbHMs
CiAgICAgfTsKICAgICBTZWxlY3RhYmlsaXR5IHNlbGVjdGFiaWxpdHkgeyBTZWxlY3RhYmlsaXR5
OjpTZWxlY3RhYmxlIH07CiAKQEAgLTEzMiw3ICsxMzMsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OlNlbGVj
dGFiaQogICAgICAgICBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpT
ZWxlY3RhYmlsaXR5OjpTZWxlY3RhYmxlLAogICAgICAgICBXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uOjpTZWxlY3RhYmlsaXR5OjpVbnNlbGVjdGFibGVEdWVUb0ZvY3Vz
YWJsZUVsZW1lbnQsCiAgICAgICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb246OlNlbGVjdGFiaWxpdHk6OlVuc2VsZWN0YWJsZUR1ZVRvTGFyZ2VFbGVtZW50Qm91bmRz
LAotICAgICAgICBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpTZWxl
Y3RhYmlsaXR5OjpVbnNlbGVjdGFibGVEdWVUb1VzZXJTZWxlY3ROb25lCisgICAgICAgIFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OlNlbGVjdGFiaWxpdHk6OlVuc2Vs
ZWN0YWJsZUR1ZVRvVXNlclNlbGVjdE5vbmUsCisgICAgICAgIFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb246OlNlbGVjdGFiaWxpdHk6OlVuc2VsZWN0YWJsZUR1ZVRvTWVk
aWFDb250cm9scwogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBhODU1MmRjYThiODk4
NDcwZjYwYmIyZTdhZTc1Njg5YjBmMzY0Yjc3Li4zOTQzOGJmMWQ3NTUzMTk0NTY2MDQwMjA1NTAw
YmI3NDhlMTJjMzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTIyNiw2ICsyMjYsMTkgQEAgQGVuZAog
CiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCisjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b25BZGRpdGlvbnMubW0+CisjZWxzZQorCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorc3Rh
dGljIGJvb2wgY2FuQXR0ZW1wdFRleHRSZWNvZ25pdGlvbkZvck5vbkltYWdlRWxlbWVudHMoY29u
c3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYgaW5mb3JtYXRpb24s
IGNvbnN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXMmKQoreworICAgIHJldHVybiBmYWxzZTsKK30K
KyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKKyNlbmRpZgorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKQEAgLTEwMTg3LDcgKzEwMjAwLDcgQEAgLSAodm9pZClpbWFnZUFuYWx5c2lzR2VzdHVyZURp
ZEJlZ2luOihXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmUKICAgICAg
ICAgICAgIHJldHVybjsKIAogICAgICAgICBib29sIHNob3VsZEFuYWx5emVJbWFnZUF0TG9jYXRp
b24gPSAoWyZdIHsKLSAgICAgICAgICAgIGlmICghaW5mb3JtYXRpb24uaXNJbWFnZSkKKyAgICAg
ICAgICAgIGlmICghaW5mb3JtYXRpb24uaXNJbWFnZSAmJiAhY2FuQXR0ZW1wdFRleHRSZWNvZ25p
dGlvbkZvck5vbkltYWdlRWxlbWVudHMoaW5mb3JtYXRpb24sIHN0cm9uZ1NlbGYtPl9wYWdlLT5w
cmVmZXJlbmNlcygpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAg
ICAgIGlmICghaW5mb3JtYXRpb24uaW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGRhOTZmMjE4MDQ2ZGNkNDE3ZGYy
YTY4NmE0ZmZlMmE3NzI5OTMxMTAuLmE5NzE1ZGUzNDAxYTQwZTBiZThkNzhjY2EyNmFjMWI1MmY5
MDgyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCkBAIC0yOTQwLDYgKzI5NDAsOSBAQCBzdGF0aWMgdm9pZCBzZWxlY3Rpb25Q
b3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIGNvbnN0IEludGVyYWN0aW9uSW5mb3Jt
YQogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJcyB0aGlzIGhldXJpc3RpYyBzdGlsbCBuZWVk
ZWQsIG5vdyB0aGF0IGJsb2NrIHNlbGVjdGlvbiBoYXMgYmVlbiByZW1vdmVkPwogICAgICAgICAg
ICAgICAgIHJldHVybiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6U2VsZWN0YWJp
bGl0eTo6VW5zZWxlY3RhYmxlRHVlVG9MYXJnZUVsZW1lbnRCb3VuZHM7CiAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmIChob3N0VmlkZW9FbGVtZW50SWdub3JpbmdJbWFnZU92ZXJsYXko
KmhpdE5vZGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbjo6U2VsZWN0YWJpbGl0eTo6VW5zZWxlY3RhYmxlRHVlVG9NZWRpYUNvbnRyb2xz
OwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uOjpTZWxlY3RhYmlsaXR5OjpTZWxlY3RhYmxlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkwNjIyMDFiNDBjMjhm
ZWU3MzhkNGJiODkyZTdiMzk0YWFjM2VjNTYuLmUwNDUwNjNmN2IyYmNmMzU3YzU4ZDIzZjEwNTIw
Zjk3MTgyMzRlYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMS0wOSAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBzb21lIGlt
YWdlIG92ZXJsYXkgbG9naWMgdG8gd29yayB3aXRoIGJ1aWx0LWluIG1lZGlhIGNvbnRyb2xzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4OTkKKyAg
ICAgICAgcmRhcjovLzgzMTczNTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRqdXN0IGEgbW9kZXJuIG1lZGlhIGNvbnRyb2xzIHRlc3QsIHN1Y2gg
dGhhdCBpdCBubyBsb25nZXIgdmVyaWZpZXMgdGhhdCB0aGUgYC13ZWJraXQtdXNlci1zZWxlY3Rg
IENTUyBwcm9wZXJ0eQorICAgICAgICBpcyBub25lIG9uIGFuIGF1ZGlvIGVsZW1lbnQ7IGluIGxp
ZXUgb2YgdGhpcywgd2UgYWRkIGEgbmV3IGxheW91dCB0ZXN0IGluIGBlZGl0aW5nL3NlbGVjdGlv
bmAgdG8gdmVyaWZ5IHRoYXQKKyAgICAgICAgbG9uZyBwcmVzc2luZyBvdmVyIHRoZSB0aW1lc3Rh
bXAgb2YgYW4gYXVkaW8gZWxlbWVudCBkb2VzIG5vdCB0cmlnZ2VyIHRleHQgc2VsZWN0aW9uLgor
CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vaW9zL2RvLW5vdC1hbGxvdy10ZXh0LXNlbGVj
dGlvbi1pbi1hdWRpby1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vaW9zL2RvLW5vdC1hbGxvdy10ZXh0LXNlbGVjdGlvbi1pbi1hdWRpby1l
bGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9hdWRpby9hdWRpby1jb250cm9scy1zdHlsZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9hdWRpby9hdWRpby1jb250cm9scy1zdHlsZXMuaHRt
bDoKKwogMjAyMS0xMS0wOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMjcxNzM1KTogUGF5bWVudFNoaXBwaW5nT3B0aW9uLnNlbGVjdGVk
IGlnbm9yZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9k
by1ub3QtYWxsb3ctdGV4dC1zZWxlY3Rpb24taW4tYXVkaW8tZWxlbWVudC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvZG8tbm90LWFsbG93LXRleHQtc2Vs
ZWN0aW9uLWluLWF1ZGlvLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3YTg4MmVh
NWU1YTFhMGVjNDc3Y2VkMzQyYjk2Njk2OGI0OWI4MTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvZG8tbm90LWFsbG93LXRleHQtc2VsZWN0aW9u
LWluLWF1ZGlvLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVz
dCB2ZXJpZmllcyB0aGF0IGxvbmcgcHJlc3NpbmcgdGhlIHRpbWVzdGFtcCBpbiBhbiBhdWRpbyBl
bGVtZW50IGRvZXMgbm90IHN0YXJ0IGEgdGV4dCBzZWxlY3Rpb24uIFRvIG1hbnVhbGx5IHJ1biB0
aGUgdGVzdCwgbG9uZyBwcmVzcyB0aGUgYXVkaW8gZWxlbWVudCBiZWxvdyBhbmQgdmVyaWZ5IHRo
YXQgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgcmVjdHMubGVuZ3RoIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9pb3MvZG8tbm90LWFsbG93LXRleHQtc2VsZWN0aW9uLWluLWF1ZGlvLWVsZW1lbnQuaHRt
bCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ctdGV4dC1z
ZWxlY3Rpb24taW4tYXVkaW8tZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMDVjMGNmY2RlOGU3
Y2NiZDNjOTVjZmNiZTdlNGJjNjUzZjdlOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvZG8tbm90LWFsbG93LXRleHQtc2VsZWN0aW9uLWluLWF1
ZGlvLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1s
PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5p
dGlhbC1zY2FsZT0xIj4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBsb25nIHByZXNzaW5nIHRoZSB0aW1l
c3RhbXAgaW4gYW4gYXVkaW8gZWxlbWVudCBkb2VzIG5vdCBzdGFydCBhIHRleHQgc2VsZWN0aW9u
LiBUbyBtYW51YWxseSBydW4gdGhlIHRlc3QsIGxvbmcgcHJlc3MgdGhlIGF1ZGlvIGVsZW1lbnQg
YmVsb3cgYW5kIHZlcmlmeSB0aGF0IG5vIHRleHQgaXMgc2VsZWN0ZWQuIik7CithZGRFdmVudExp
c3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgIGlmICghd2luZG93LmludGVybmFscykK
KyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgYXVkaW9FbGVtZW50ID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiYXVkaW8iKTsKKyAgICBsZXQgdGltZUxhYmVsOworICAgIGZvciAobGV0IGxh
YmVsIG9mIEFycmF5LmZyb20oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoYXVkaW9FbGVtZW50KS5xdWVy
eVNlbGVjdG9yQWxsKCJkaXYudGltZS1sYWJlbCIpKSkgeworICAgICAgICBpZiAoZ2V0Q29tcHV0
ZWRTdHlsZShsYWJlbCkuZGlzcGxheSAhPT0gIm5vbmUiKQorICAgICAgICAgICAgdGltZUxhYmVs
ID0gbGFiZWw7CisgICAgfQorCisgICAgY29uc3QgdGFyZ2V0WCA9IChhdWRpb0VsZW1lbnQub2Zm
c2V0TGVmdCArIHRpbWVMYWJlbC5vZmZzZXRMZWZ0KSArIHRpbWVMYWJlbC5vZmZzZXRXaWR0aCAv
IDI7CisgICAgY29uc3QgdGFyZ2V0WSA9IChhdWRpb0VsZW1lbnQub2Zmc2V0VG9wICsgdGltZUxh
YmVsLm9mZnNldFRvcCkgKyB0aW1lTGFiZWwub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBhd2FpdCBV
SUhlbHBlci5sb25nUHJlc3NBdFBvaW50KHRhcmdldFgsIHRhcmdldFkpOworICAgIHJlY3RzID0g
YXdhaXQgVUlIZWxwZXIuZ2V0VUlTZWxlY3Rpb25WaWV3UmVjdHMoKTsKKworICAgIHNob3VsZEJl
KCJyZWN0cy5sZW5ndGgiLCAiMCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGF1ZGlvIGNvbnRyb2xzIHNyYz0iLi4vLi4vLi4vbWVkaWEv
Y29udGVudC9hdWRpby10cmFja3MubXA0Ij48L2F1ZGlvPgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9hdWRpby9hdWRpby1jb250cm9scy1zdHlsZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlv
LWNvbnRyb2xzLXN0eWxlcy1leHBlY3RlZC50eHQKaW5kZXggNTE5M2Y3ZGMzOTAwNTIyMTIzNjI2
YmJiYTBkYTA2MTlmMjg5ODAyZC4uYmY0NzRmOTU2MTRkOTM3ODZmMzY4M2E4ZGM3MjYyMTA5NDli
MjZkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxl
cy1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw2IEBAIFRlc3RpbmcgbWVkaWEgZWxlbWVudHMgZGlz
YWJsZSBidWlsdC1pbiBicm93c2VyIFVJIGZlYXR1cmVzIHRvIGNvcHkgY29udGVudC4KIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGdldENvbXB1dGVkU3R5bGUoYXVkaW8pLldl
YmtpdFVzZXJTZWxlY3QgaXMgIm5vbmUiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoYXVkaW8pLldl
YmtpdFRvdWNoQ2FsbG91dCBpcyAibm9uZSIKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxlcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxlcy5odG1sCmluZGV4
IDU2MmVhNTQ5MDhlNGExZmFkNzJjM2M3NDA0ZThhN2IzMDRkMGNiNjIuLjkyMzM1MjBmNGU3NDg3
YmEyMmZkMjYwYmY2YjRjMGVkYjhmZGZmYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9hdWRpby9hdWRpby1jb250cm9scy1zdHlsZXMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYXVkaW8vYXVkaW8t
Y29udHJvbHMtc3R5bGVzLmh0bWwKQEAgLTgsNyArOCw2IEBAIGRlc2NyaXB0aW9uKCJUZXN0aW5n
IG1lZGlhIGVsZW1lbnRzIGRpc2FibGUgYnVpbHQtaW4gYnJvd3NlciBVSSBmZWF0dXJlcyB0byBj
b3B5CiBjb25zdCBhdWRpbyA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiYXVkaW8iKSk7CiBhdWRpby5jb250cm9scyA9IHRydWU7CiAKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygiZ2V0Q29tcHV0ZWRTdHlsZShhdWRpbykuV2Via2l0VXNlclNlbGVjdCIs
ICJub25lIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldENvbXB1dGVkU3R5bGUoYXVkaW8p
LldlYmtpdFRvdWNoQ2FsbG91dCIsICJub25lIik7CiAKIGRlYnVnKCIiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443761</attachid>
            <date>2021-11-09 17:32:12 -0800</date>
            <delta_ts>2021-11-10 12:09:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232899-20211109173212.patch</filename>
            <type>text/plain</type>
            <size>21823</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE1YzZhZmVhZTgxYmI5
NmM0YTJjZTE2MGRmOGE3YjQ4M2I1ZGRlYS4uZGU4ZjRkNjA4ODczNzhkYmM0MTI3ZWI2ZDYwOThj
OTMzZjBmYmJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIxLTExLTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIHNv
bWUgaW1hZ2Ugb3ZlcmxheSBsb2dpYyB0byB3b3JrIHdpdGggYnVpbHQtaW4gbWVkaWEgY29udHJv
bHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg5
OQorICAgICAgICByZGFyOi8vODMxNzM1OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWtlIHZhcmlvdXMgbWlub3IgYWRqdXN0bWVudHMgdG8gYWxs
b3cgYnVpbHQtaW4gbW9kZXJuIG1lZGlhIGNvbnRyb2xzIHRvIHBsYXkgd2VsbCB3aXRoIGltYWdl
IG92ZXJsYXkgY29udGVudC4KKyAgICAgICAgU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6Om1lZGlhQ29udHJvbHNDb250YWlu
ZXJDbGFzcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0Lmg6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGdyYWIgdGhlICJtZWRp
YS1jb250cm9scy1jb250YWluZXIiIGNsYXNzIG5hbWUsIHdoaWNoIGlzIHVzZWQgZm9yIHRoZSBg
ZGl2YCBlbGVtZW50CisgICAgICAgIGNvbnRhaW5pbmcgYnVpbHQtaW4gbW9kZXJuIG1lZGlhIGNv
bnRyb2xzLiBUaGlzIGlzIHVzZWQgYmVsb3cgdG8gaWRlbnRpZnkgZXhpc3RpbmcgbWVkaWEgY29u
dHJvbCBjb250YWluZXIKKyAgICAgICAgZWxlbWVudHMgd2hlbiBkZXRlcm1pbmluZyB3aGVyZSB0
byBpbmplY3QgdGhlIGltYWdlIG92ZXJsYXkgcm9vdCBjb250YWluZXIuCisKKyAgICAgICAgKiBN
b2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9jb250cm9scy1iYXIuY3NzOgor
ICAgICAgICAoLmNvbnRyb2xzLWJhcik6CisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzOgorICAgICAgICAoOmhvc3QpOgor
CisgICAgICAgIFJlbW92ZSBgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtgIGhlcmUuIFRoaXMg
d2FzIGFkZGVkIHRvIHByZXZlbnQgdGhlIGlPUyBtYWduaWZpZXIgVUkgZnJvbSBzaG93aW5nIHVw
IHdoZW4KKyAgICAgICAgbG9uZyBwcmVzc2luZyBpbnNpZGUgYSB2aWRlbyBlbGVtZW50OyB3ZSBj
YW4gYWNoaWV2ZSB0aGUgc2FtZSBlZmZlY3Qgd2l0aG91dCBhcHBseWluZyB0aGlzIHByb3BlcnR5
IG92ZXIgdGhlCisgICAgICAgIGVudGlyZSBob3N0IGVsZW1lbnQgYnkgaW5zdGVhZCBjaGFuZ2lu
ZyBzZWxlY3Rpb24gbG9naWMgaW4gV2ViS2l0Mi4KKworICAgICAgICAoLm1lZGlhLWNvbnRyb2xz
KToKKworICAgICAgICBQdXNoIHRoZSBgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtgIHByb3Bl
cnR5IGRvd24gaW50byB0aGUgbWVkaWEgY29udHJvbCBjaGlsZHJlbiwgaW5zdGVhZCBvZiBvbgor
ICAgICAgICBgLm1lZGlhLWNvbnRyb2xzYCBpdHNlbGYuCisKKyAgICAgICAgKC5tZWRpYS1jb250
cm9scyA+IC5jb250cm9scy1iYXIpOgorCisgICAgICAgIFotb3JkZXIgdGhlIG1lZGlhIGNvbnRy
b2xzIGJhciAod2hpY2ggY29udGFpbnMgYWxsIGludGVyYWN0aWJsZSBtZWRpYSBjb250cm9sIGVs
ZW1lbnRzKSBhYm92ZSBhbnkgaW1hZ2Ugb3ZlcmxheQorICAgICAgICBjb250ZW50IHRoYXQgbWF5
IGNvZXhpc3QgaW4gdGhlIHNhbWUgc2hhZG93IHJvb3QuCisKKyAgICAgICAgKiBodG1sL0hUTUxF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojppc0ltYWdlT3Zlcmxh
eVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnJlbW92ZUltYWdlT3Zlcmxh
eVNvb25JZk5lZWRlZCk6CisKKyAgICAgICAgQWRqdXN0IHRoZXNlIGhlbHBlciBtZXRob2RzIHRv
IHdvcmsgaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGltYWdlIG92ZXJsYXkgY29udGFpbmVyIGlzIGhv
c3RlZCB1bmRlcm5lYXRoIHRoZSBtZWRpYQorICAgICAgICBjb250cm9scyBjb250YWluZXIuCisK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9u
UmVzdWx0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFuY2UpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheUludGVybmFsKToKKworICAgICAgICBJZiBu
ZWVkZWQsIHJlbW92ZSB0aGUgaW1hZ2Ugb3ZlcmxheSB3aGVuIHNlZWtpbmcgb3IgcGxheWluZyBt
ZWRpYS4KKwogMjAyMS0xMS0wOSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29t
PgogCiAgICAgICAgIEZpeCAhRU5BQkxFKEFDQ0VTU0lCSUxJVFkpIGFmdGVyIHIyODU0MjcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggY2RiMTk1NjVlNDI4YzNmMmIyYTRjYWExM2M0N2QwZWMwYTMwYjA1Ni4uNDg2OGNj
ODI5MzE4YWVlN2EyMGE1OWU1OTE4OTk3YmFjYTBmMDViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NiBAQAorMjAyMS0xMS0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBSZWZhY3RvciBzb21lIGltYWdlIG92ZXJsYXkgbG9naWMgdG8gd29yayB3aXRo
IGJ1aWx0LWluIG1lZGlhIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzI4OTkKKyAgICAgICAgcmRhcjovLzgzMTczNTk3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUvQ2hh
bmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgIChjYW5BdHRlbXB0VGV4dFJlY29nbml0
aW9uRm9yTm9uSW1hZ2VFbGVtZW50cyk6CisKKyAgICAgICAgQWRkIGEgbmV3IFdlYktpdEFkZGl0
aW9ucyBpbnRlZ3JhdGlvbiBwb2ludC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGltYWdl
QW5hbHlzaXNHZXN0dXJlRGlkQmVnaW46XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpzZWxlY3Rpb25Qb3NpdGlvbklu
Zm9ybWF0aW9uKToKKworICAgICAgICBBZGp1c3QgZm9yIHRoZSBjaGFuZ2VzIHRvIHRoZSBidWls
dC1pbiBtZWRpYSBjb250cm9scyBzdHlsZXNoZWV0IGJ5IGFkZGluZyBsb2dpYyB0byBwcmV2ZW50
IHRoZSBtYWduaWZpZXIgZnJvbQorICAgICAgICBzaG93aW5nIHVwIHdoZW4gbG9uZyBwcmVzc2lu
ZyAob3IgbG9uZyBwcmVzc2luZyBpbnNpZGUpIHZpZGVvIGVsZW1lbnRzIG9uIGlPUy4KKwogMjAy
MS0xMS0wOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTihyMjcxNzM1KTogUGF5bWVudFNoaXBwaW5nT3B0aW9uLnNlbGVjdGVkIGlnbm9yZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVk
aWFDb250cm9sc0hvc3QuY3BwCmluZGV4IDFmY2RmZjAzM2JiMTNkZjg2NDRiNjc1ODRmYzk5ZDRh
ZGM3MDUyMmUuLjhhZjU2ZmM2NGJmYmIzNGJjYjRkMmExMjM5NTRkOWIwNTk5YmRjYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xz
SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlh
Q29udHJvbHNIb3N0LmNwcApAQCAtMzQ1LDYgKzM0NSwxMiBAQCBTdHJpbmcgTWVkaWFDb250cm9s
c0hvc3Q6OmdlbmVyYXRlVVVJRCgpCiAKICNpZiBFTkFCTEUoTU9ERVJOX01FRElBX0NPTlRST0xT
KQogCitjb25zdCBBdG9tU3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9zdDo6bWVkaWFDb250cm9sc0Nv
bnRhaW5lckNsYXNzKCkKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGNsYXNzTmFtZSgibWVkaWEtY29udHJvbHMtY29udGFpbmVyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHJldHVybiBjbGFzc05hbWU7Cit9
CisKIFN0cmluZyBNZWRpYUNvbnRyb2xzSG9zdDo6c2hhZG93Um9vdENTU1RleHQoKQogewogICAg
IHJldHVybiBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkubWVkaWFDb250cm9sc1N0eWxlU2hlZXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01l
ZGlhQ29udHJvbHNIb3N0LmgKaW5kZXggN2NjMmE1NjQxY2VlMDQzOTE1NDBjYmFjZWUwMWNmMjRh
NjVmM2Y1Mi4uMWRmNWNmZTA5Y2RmMTM1NWVlYzFkYzcyZjcwYzFjM2FmYzBiMTM2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29u
dHJvbHNIb3N0LmgKQEAgLTk1LDYgKzk1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcg
Z2VuZXJhdGVVVUlEKCk7CiAKICNpZiBFTkFCTEUoTU9ERVJOX01FRElBX0NPTlRST0xTKQorICAg
IHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBtZWRpYUNvbnRyb2xzQ29udGFpbmVyQ2xhc3MoKTsK
ICAgICBzdGF0aWMgU3RyaW5nIHNoYWRvd1Jvb3RDU1NUZXh0KCk7CiAgICAgc3RhdGljIFN0cmlu
ZyBiYXNlNjRTdHJpbmdGb3JJY29uTmFtZUFuZFR5cGUoY29uc3QgU3RyaW5nJiBpY29uTmFtZSwg
Y29uc3QgU3RyaW5nJiBpY29uVHlwZSk7CiAgICAgc3RhdGljIFN0cmluZyBmb3JtYXR0ZWRTdHJp
bmdGb3JEdXJhdGlvbihkb3VibGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvY29udHJvbHMtYmFyLmNzcyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2NvbnRyb2xz
LWJhci5jc3MKaW5kZXggMjYzZDJmYWQ5M2M0YWMzYTc2MzgxNzA5Yzk5ZTQ2MDgzZjRkMmUzYS4u
MDk2ODJlNjMzNWI4N2ZiMWFmYmQ4OTQzZDVmYmQ3MWM3NDk4YmUzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvY29udHJv
bHMtYmFyLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250
cm9scy9jb250cm9scy9jb250cm9scy1iYXIuY3NzCkBAIC0yOCw0ICsyOCw1IEBACiAgICAgY3Vy
c29yOiBkZWZhdWx0OwogICAgIGRpcmVjdGlvbjogbHRyOwogICAgIHdpbGwtY2hhbmdlOiB6LWlu
ZGV4OworICAgIHotaW5kZXg6IDE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250cm9scy5jc3MgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRp
YS1jb250cm9scy5jc3MKaW5kZXggOTBmNDk0ZDcwZDg5MjgxMjVlZjUxMGNiZDk3MzgxYjk1YjM3
YzM1Zi4uNzlhMzZiYzk1NzdkNjc2ODBhNWQ0MWM3MTVmOWQwOWYzZjM4ODhmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMv
bWVkaWEtY29udHJvbHMuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmNzcwpAQCAtMjQsOCArMjQsNyBA
QAogICovCiAKIDpob3N0IHsKLSAgICAvKiBXZSBhbHdheXMgd2FudCB0byBwcmV2ZW50IGlPUyBk
aWFsb2dzIGFuZCB0aGUgbWFnbmlmaWVyIFVJIHRvIGJlIHNob3duLiAqLwotICAgIC13ZWJraXQt
dXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDsKKyAgICAvKiBXZSBhbHdheXMgd2FudCB0byBh
dm9pZCBzaG93aW5nIHRoZSBjb250ZXh0IG1lbnUgb24gaU9TLiAqLwogICAgIC13ZWJraXQtdG91
Y2gtY2FsbG91dDogbm9uZSAhaW1wb3J0YW50OwogfQogCkBAIC04Miw3ICs4MSw2IEBACiAubWVk
aWEtY29udHJvbHMgewogICAgIGhlaWdodDogMTAwJTsKICAgICBmb250LWZhbWlseTogLWFwcGxl
LXN5c3RlbTsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgIHdoaXRlLXNwYWNl
OiBub3dyYXA7CiAgICAgdGV4dC1hbGlnbjogaW5pdGlhbDsKICAgICB0cmFuc2Zvcm0tb3JpZ2lu
OiAwIDA7CkBAIC05Myw2ICs5MSw3IEBACiB9CiAKIC5tZWRpYS1jb250cm9scyA+ICogeworICAg
IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFz
IGxpbmVhcjsKIH0KIApAQCAtMTI2LDQgKzEyNSw0IEBACiBAbWVkaWEgKGludmVydGVkLWNvbG9y
cykgewogICAgIDpob3N0IHsgZmlsdGVyOiBpbnZlcnQoMTAwJSk7IH0gLyogV2ViS2l0IG5hdGl2
ZSBhdWRpbyBhbmQgdmlkZW8uICovCiAgICAgcGljdHVyZSB7IGZpbHRlcjogbm9uZTsgfSAvKiBE
b24ndCBpbnZlcnQgdGhlIGNvbnRyb2wgYnV0dG9ucy4gKi8KLX0KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDE5YTU5ZWI2
NDMzYzhlNTA1NWZlZjg4ZjUyZjA3YzhjZjNiMjg1ZDMuLjlmYTc3MDViNzIwMjE3MmYwOGExMTJl
OWYwNzFmNWVkOTgzN2FhODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC02
MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxUZXh0QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5oIgorI2luY2x1ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCiAjaW5jbHVkZSAiTm9kZVRyYXZl
cnNhbC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFn
ZS5oIgpAQCAtMTI1MCw2ICsxMjUxLDkgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0RW50ZXJLZXlI
aW50KGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihlbnRlcmtleWhpbnRBdHRyLCB2YWx1ZSk7CiB9CiAKKy8vIEZJWE1FOiBXZSBzaG91
bGQgbW92ZSBhbGwgb2YgdGhpcyBpbWFnZSBvdmVybGF5LXNwZWNpZmljIGxvZ2ljIG91dCBpbnRv
IGEgc2VwYXJhdGUgaGVscGVyIGZpbGUgKHBvc3NpYmx5IGFzIHN0YW5kYWxvbmUgZnVuY3Rpb25z
KQorLy8gdG8gYmV0dGVyIGNvbXBhcnRtZW50YWxpemUgdGhpcyBjb2RlLgorCiBzdGF0aWMgY29u
c3QgQXRvbVN0cmluZyYgaW1hZ2VPdmVybGF5RWxlbWVudElkZW50aWZpZXIoKQogewogICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaWRlbnRpZmll
cigiaW1hZ2Utb3ZlcmxheSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKQEAg
LTEzMjMsMTAgKzEzMjcsOCBAQCBib29sIEhUTUxFbGVtZW50Ojppc0ltYWdlT3ZlcmxheVRleHQo
Y29uc3QgTm9kZSYgbm9kZSkKICAgICBpZiAoIWhvc3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxIVE1MRGl2RWxlbWVudD4o
Kmhvc3QtPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkpIHsKLSAgICAgICAgaWYgKGNoaWxkLmdldElk
QXR0cmlidXRlKCkgPT0gaW1hZ2VPdmVybGF5RWxlbWVudElkZW50aWZpZXIoKSkKLSAgICAgICAg
ICAgIHJldHVybiBub2RlLmlzRGVzY2VuZGFudE9mKGNoaWxkKTsKLSAgICB9CisgICAgaWYgKFJl
ZlB0ciBvdmVybGF5ID0gc3RhdGljX2Nhc3Q8VHJlZVNjb3BlJj4oKmhvc3QtPnVzZXJBZ2VudFNo
YWRvd1Jvb3QoKSkuZ2V0RWxlbWVudEJ5SWQoaW1hZ2VPdmVybGF5RWxlbWVudElkZW50aWZpZXIo
KSkpCisgICAgICAgIHJldHVybiBub2RlLmlzRGVzY2VuZGFudE9mKCpvdmVybGF5KTsKIAogICAg
IHJldHVybiBmYWxzZTsKIH0KQEAgLTEzNDUsMTYgKzEzNDcsOCBAQCB2b2lkIEhUTUxFbGVtZW50
OjpyZW1vdmVJbWFnZU92ZXJsYXlTb29uSWZOZWVkZWQoKQogICAgICAgICBpZiAoIXNoYWRvd1Jv
b3QpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50
PiBjb250YWluZXJUb1JlbW92ZTsKLSAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVu
T2ZUeXBlPEhUTUxEaXZFbGVtZW50Pigqc2hhZG93Um9vdCkpIHsKLSAgICAgICAgICAgIGlmIChj
aGlsZC5nZXRJZEF0dHJpYnV0ZSgpID09IGltYWdlT3ZlcmxheUVsZW1lbnRJZGVudGlmaWVyKCkp
IHsKLSAgICAgICAgICAgICAgICBjb250YWluZXJUb1JlbW92ZSA9ICZjaGlsZDsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChj
b250YWluZXJUb1JlbW92ZSkKLSAgICAgICAgICAgIGNvbnRhaW5lclRvUmVtb3ZlLT5yZW1vdmUo
KTsKKyAgICAgICAgaWYgKFJlZlB0ciBvdmVybGF5ID0gc3RhdGljX2Nhc3Q8VHJlZVNjb3BlJj4o
KnNoYWRvd1Jvb3QpLmdldEVsZW1lbnRCeUlkKGltYWdlT3ZlcmxheUVsZW1lbnRJZGVudGlmaWVy
KCkpKQorICAgICAgICAgICAgb3ZlcmxheS0+cmVtb3ZlKCk7CiAKICNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCiAgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBwcm90ZWN0ZWRUaGlzLT5kb2N1bWVu
dCgpLnBhZ2UoKSkKQEAgLTEzOTUsMTUgKzEzODksMzAgQEAgdm9pZCBIVE1MRWxlbWVudDo6dXBk
YXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVjb2duaXRpb25SZXN1bHQm
IHIKIAogICAgIGJvb2wgaGFkRXhpc3RpbmdUZXh0UmVjb2duaXRpb25FbGVtZW50cyA9IGZhbHNl
OwogICAgIFRleHRSZWNvZ25pdGlvbkVsZW1lbnRzIHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzOwot
Ci0gICAgaWYgKGhhc0ltYWdlT3ZlcmxheSgpKSB7Ci0gICAgICAgIGZvciAoYXV0byYgY2hpbGQg
OiBjaGlsZHJlbk9mVHlwZTxIVE1MRGl2RWxlbWVudD4oKnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkp
IHsKLSAgICAgICAgICAgIGlmIChjaGlsZC5nZXRJZEF0dHJpYnV0ZSgpID09IGltYWdlT3Zlcmxh
eUVsZW1lbnRJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgICAgICAgICB0ZXh0UmVjb2duaXRpb25F
bGVtZW50cy5yb290ID0gJmNoaWxkOwotICAgICAgICAgICAgICAgIGhhZEV4aXN0aW5nVGV4dFJl
Y29nbml0aW9uRWxlbWVudHMgPSB0cnVlOworICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbWVkaWFD
b250cm9sc0NvbnRhaW5lcjsKKyAgICBpZiAoUmVmUHRyIHNoYWRvd1Jvb3QgPSB0aGlzLT5zaGFk
b3dSb290KCkpIHsKKyNpZiBFTkFCTEUoTU9ERVJOX01FRElBX0NPTlRST0xTKQorICAgICAgICBm
b3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8SFRNTERpdkVsZW1lbnQ+KCpzaGFkb3dS
b290KSkgeworICAgICAgICAgICAgaWYgKGNoaWxkLmhhc0NsYXNzKCkgJiYgY2hpbGQuY2xhc3NO
YW1lcygpLmNvbnRhaW5zKE1lZGlhQ29udHJvbHNIb3N0OjptZWRpYUNvbnRyb2xzQ29udGFpbmVy
Q2xhc3MoKSkpIHsKKyAgICAgICAgICAgICAgICBtZWRpYUNvbnRyb2xzQ29udGFpbmVyID0gJmNo
aWxkOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9Cisj
ZW5kaWYKKyAgICAgICAgaWYgKGhhc0ltYWdlT3ZlcmxheSgpKSB7CisgICAgICAgICAgICBSZWZQ
dHI8Q29udGFpbmVyTm9kZT4gY29udGFpbmVyRm9ySW1hZ2VPdmVybGF5OworICAgICAgICAgICAg
aWYgKG1lZGlhQ29udHJvbHNDb250YWluZXIpCisgICAgICAgICAgICAgICAgY29udGFpbmVyRm9y
SW1hZ2VPdmVybGF5ID0gbWVkaWFDb250cm9sc0NvbnRhaW5lcjsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBjb250YWluZXJGb3JJbWFnZU92ZXJsYXkgPSBzaGFkb3dSb290Owor
ICAgICAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEhUTUxEaXZFbGVt
ZW50PigqY29udGFpbmVyRm9ySW1hZ2VPdmVybGF5KSkgeworICAgICAgICAgICAgICAgIGlmIChj
aGlsZC5nZXRJZEF0dHJpYnV0ZSgpID09IGltYWdlT3ZlcmxheUVsZW1lbnRJZGVudGlmaWVyKCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dFJlY29nbml0aW9uRWxlbWVudHMucm9vdCA9ICZj
aGlsZDsKKyAgICAgICAgICAgICAgICAgICAgaGFkRXhpc3RpbmdUZXh0UmVjb2duaXRpb25FbGVt
ZW50cyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmICh0ZXh0UmVj
b2duaXRpb25FbGVtZW50cy5yb290KSB7CkBAIC0xNDU3LDcgKzE0NjYsMTEgQEAgdm9pZCBIVE1M
RWxlbWVudDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBUZXh0UmVjb2du
aXRpb25SZXN1bHQmIHIKICAgICAgICAgcm9vdENvbnRhaW5lci0+c2V0SWRBdHRyaWJ1dGUoaW1h
Z2VPdmVybGF5RWxlbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgIGlmIChkb2N1bWVudCgpLmlz
SW1hZ2VEb2N1bWVudCgpKQogICAgICAgICAgICAgcm9vdENvbnRhaW5lci0+c2V0SW5saW5lU3R5
bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxlY3QsIENTU1ZhbHVlVGV4dCk7Ci0g
ICAgICAgIHNoYWRvd1Jvb3QtPmFwcGVuZENoaWxkKHJvb3RDb250YWluZXIpOworCisgICAgICAg
IGlmIChtZWRpYUNvbnRyb2xzQ29udGFpbmVyKQorICAgICAgICAgICAgbWVkaWFDb250cm9sc0Nv
bnRhaW5lci0+YXBwZW5kQ2hpbGQocm9vdENvbnRhaW5lcik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHNoYWRvd1Jvb3QtPmFwcGVuZENoaWxkKHJvb3RDb250YWluZXIpOwogICAgICAgICB0
ZXh0UmVjb2duaXRpb25FbGVtZW50cy5yb290ID0gcm9vdENvbnRhaW5lci5jb3B5UmVmKCk7CiAg
ICAgICAgIHRleHRSZWNvZ25pdGlvbkVsZW1lbnRzLmxpbmVzLnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkocmVzdWx0LmxpbmVzLnNpemUoKSk7CiAgICAgICAgIGZvciAoYXV0byYgbGluZSA6IHJlc3Vs
dC5saW5lcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXgg
MzQ1YTdlMzEwMjUxMDZjNmViMDQ0ZmJmMjM4MmI3NmEwNGIwNDZkOC4uMDM5MDc3MWRiYWNkMmE3
MGM3NzI1ODMxYjAxMGQ1ODE0YTdlYzk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCkBAIC0zMTMwLDYgKzMxMzAsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYgaW5UaW1lLCBjb25zdCBNZWRpYVRp
bQogCiAgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgICAgIG1l
ZGlhU2Vzc2lvbigpLnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lv
bjo6UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKKworICAgIHJl
bW92ZUltYWdlT3ZlcmxheVNvb25JZk5lZWRlZCgpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnNlZWtUYXNrKCkKQEAgLTM3MTMsNiArMzcxNSw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6cGxheUludGVybmFsKCkKIAogICAgIG1fYXV0b3BsYXlpbmcgPSBmYWxzZTsKICAgICB1cGRh
dGVQbGF5U3RhdGUoKTsKKworICAgIHJlbW92ZUltYWdlT3ZlcmxheVNvb25JZk5lZWRlZCgpOwog
fQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgK
aW5kZXggOThkZTM5M2FmNjA1ZDhlOGUyOWFjMTg0ODVlMmM0M2YxNWY0Yjg4MS4uODhjMjUwMDYx
ZjRjYjM4NDA2NWRhMDE1ZDVlZGI3YzgzMDY2NGQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgK
QEAgLTU5LDYgKzU5LDcgQEAgc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
IHsKICAgICAgICAgVW5zZWxlY3RhYmxlRHVlVG9Gb2N1c2FibGVFbGVtZW50LAogICAgICAgICBV
bnNlbGVjdGFibGVEdWVUb0xhcmdlRWxlbWVudEJvdW5kcywKICAgICAgICAgVW5zZWxlY3RhYmxl
RHVlVG9Vc2VyU2VsZWN0Tm9uZSwKKyAgICAgICAgVW5zZWxlY3RhYmxlRHVlVG9NZWRpYUNvbnRy
b2xzLAogICAgIH07CiAgICAgU2VsZWN0YWJpbGl0eSBzZWxlY3RhYmlsaXR5IHsgU2VsZWN0YWJp
bGl0eTo6U2VsZWN0YWJsZSB9OwogCkBAIC0xMzIsNyArMTMzLDggQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpT
ZWxlY3RhYmkKICAgICAgICAgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
bjo6U2VsZWN0YWJpbGl0eTo6U2VsZWN0YWJsZSwKICAgICAgICAgV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6U2VsZWN0YWJpbGl0eTo6VW5zZWxlY3RhYmxlRHVlVG9G
b2N1c2FibGVFbGVtZW50LAogICAgICAgICBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uOjpTZWxlY3RhYmlsaXR5OjpVbnNlbGVjdGFibGVEdWVUb0xhcmdlRWxlbWVudEJv
dW5kcywKLSAgICAgICAgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6
U2VsZWN0YWJpbGl0eTo6VW5zZWxlY3RhYmxlRHVlVG9Vc2VyU2VsZWN0Tm9uZQorICAgICAgICBX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpTZWxlY3RhYmlsaXR5OjpV
bnNlbGVjdGFibGVEdWVUb1VzZXJTZWxlY3ROb25lLAorICAgICAgICBXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpTZWxlY3RhYmlsaXR5OjpVbnNlbGVjdGFibGVEdWVU
b01lZGlhQ29udHJvbHMKICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYTg1NTJkY2E4
Yjg5ODQ3MGY2MGJiMmU3YWU3NTY4OWIwZjM2NGI3Ny4uMzk0MzhiZjFkNzU1MzE5NDU2NjA0MDIw
NTUwMGJiNzQ4ZTEyYzM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0yMjYsNiArMjI2LDE5IEBAIEBl
bmQKIAogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAorI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uQWRkaXRpb25zLm1tPgorI2Vsc2UKKworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
K3N0YXRpYyBib29sIGNhbkF0dGVtcHRUZXh0UmVjb2duaXRpb25Gb3JOb25JbWFnZUVsZW1lbnRz
KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIGluZm9ybWF0
aW9uLCBjb25zdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzJikKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CkBAIC0xMDE4Nyw3ICsxMDIwMCw3IEBAIC0gKHZvaWQpaW1hZ2VBbmFseXNpc0dlc3R1
cmVEaWRCZWdpbjooV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlCiAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgYm9vbCBzaG91bGRBbmFseXplSW1hZ2VBdExv
Y2F0aW9uID0gKFsmXSB7Ci0gICAgICAgICAgICBpZiAoIWluZm9ybWF0aW9uLmlzSW1hZ2UpCisg
ICAgICAgICAgICBpZiAoIWluZm9ybWF0aW9uLmlzSW1hZ2UgJiYgIWNhbkF0dGVtcHRUZXh0UmVj
b2duaXRpb25Gb3JOb25JbWFnZUVsZW1lbnRzKGluZm9ybWF0aW9uLCBzdHJvbmdTZWxmLT5fcGFn
ZS0+cHJlZmVyZW5jZXMoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
ICAgICAgICBpZiAoIWluZm9ybWF0aW9uLmltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBkYTk2ZjIxODA0NmRjZDQx
N2RmMmE2ODZhNGZmZTJhNzcyOTkzMTEwLi5hOTcxNWRlMzQwMWE0MGUwYmU4ZDc4Y2NhMjZhYzFi
NTJmOTA4MjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQpAQCAtMjk0MCw2ICsyOTQwLDkgQEAgc3RhdGljIHZvaWQgc2VsZWN0
aW9uUG9zaXRpb25JbmZvcm1hdGlvbihXZWJQYWdlJiBwYWdlLCBjb25zdCBJbnRlcmFjdGlvbklu
Zm9ybWEKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSXMgdGhpcyBoZXVyaXN0aWMgc3RpbGwg
bmVlZGVkLCBub3cgdGhhdCBibG9jayBzZWxlY3Rpb24gaGFzIGJlZW4gcmVtb3ZlZD8KICAgICAg
ICAgICAgICAgICByZXR1cm4gSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OlNlbGVj
dGFiaWxpdHk6OlVuc2VsZWN0YWJsZUR1ZVRvTGFyZ2VFbGVtZW50Qm91bmRzOwogICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAoaG9zdFZpZGVvRWxlbWVudElnbm9yaW5nSW1hZ2VPdmVy
bGF5KCpoaXROb2RlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb246OlNlbGVjdGFiaWxpdHk6OlVuc2VsZWN0YWJsZUR1ZVRvTWVkaWFDb250
cm9sczsKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbjo6U2VsZWN0YWJpbGl0eTo6U2VsZWN0YWJsZTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5MDYyMjAxYjQw
YzI4ZmVlNzM4ZDRiYjg5MmU3YjM5NGFhYzNlYzU2Li5lMDQ1MDYzZjdiMmJjZjM1N2M1OGQyM2Yx
MDUyMGY5NzE4MjM0ZWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTEtMDkgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3Igc29t
ZSBpbWFnZSBvdmVybGF5IGxvZ2ljIHRvIHdvcmsgd2l0aCBidWlsdC1pbiBtZWRpYSBjb250cm9s
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODk5
CisgICAgICAgIHJkYXI6Ly84MzE3MzU5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkanVzdCBhIG1vZGVybiBtZWRpYSBjb250cm9scyB0ZXN0LCBz
dWNoIHRoYXQgaXQgbm8gbG9uZ2VyIHZlcmlmaWVzIHRoYXQgdGhlIGAtd2Via2l0LXVzZXItc2Vs
ZWN0YCBDU1MgcHJvcGVydHkKKyAgICAgICAgaXMgbm9uZSBvbiBhbiBhdWRpbyBlbGVtZW50OyBp
biBsaWV1IG9mIHRoaXMsIHdlIGFkZCBhIG5ldyBsYXlvdXQgdGVzdCBpbiBgZWRpdGluZy9zZWxl
Y3Rpb25gIHRvIHZlcmlmeSB0aGF0CisgICAgICAgIGxvbmcgcHJlc3Npbmcgb3ZlciB0aGUgdGlt
ZXN0YW1wIG9mIGFuIGF1ZGlvIGVsZW1lbnQgZG9lcyBub3QgdHJpZ2dlciB0ZXh0IHNlbGVjdGlv
bi4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ctdGV4dC1z
ZWxlY3Rpb24taW4tYXVkaW8tZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGVkaXRpbmcvc2VsZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ctdGV4dC1zZWxlY3Rpb24taW4tYXVk
aW8tZWxlbWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvYXVkaW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYXVkaW8vYXVkaW8tY29udHJvbHMtc3R5bGVz
Lmh0bWw6CisKIDIwMjEtMTEtMDkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04ocjI3MTczNSk6IFBheW1lbnRTaGlwcGluZ09wdGlvbi5zZWxl
Y3RlZCBpZ25vcmVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9p
b3MvZG8tbm90LWFsbG93LXRleHQtc2VsZWN0aW9uLWluLWF1ZGlvLWVsZW1lbnQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2RvLW5vdC1hbGxvdy10ZXh0
LXNlbGVjdGlvbi1pbi1hdWRpby1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2E4
ODJlYTVlNWExYTBlYzQ3N2NlZDM0MmI5NjY5NjhiNDliODEwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2RvLW5vdC1hbGxvdy10ZXh0LXNlbGVj
dGlvbi1pbi1hdWRpby1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlz
IHRlc3QgdmVyaWZpZXMgdGhhdCBsb25nIHByZXNzaW5nIHRoZSB0aW1lc3RhbXAgaW4gYW4gYXVk
aW8gZWxlbWVudCBkb2VzIG5vdCBzdGFydCBhIHRleHQgc2VsZWN0aW9uLiBUbyBtYW51YWxseSBy
dW4gdGhlIHRlc3QsIGxvbmcgcHJlc3MgdGhlIGF1ZGlvIGVsZW1lbnQgYmVsb3cgYW5kIHZlcmlm
eSB0aGF0IG5vIHRleHQgaXMgc2VsZWN0ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHJlY3RzLmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vaW9zL2RvLW5vdC1hbGxvdy10ZXh0LXNlbGVjdGlvbi1pbi1hdWRpby1lbGVtZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvZG8tbm90LWFsbG93LXRl
eHQtc2VsZWN0aW9uLWluLWF1ZGlvLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTA1YzBjZmNk
ZThlN2NjYmQzYzk1Y2ZjYmU3ZTRiYzY1M2Y3ZThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2RvLW5vdC1hbGxvdy10ZXh0LXNlbGVjdGlvbi1p
bi1hdWRpby1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+IDwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8
aHRtbD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MSI+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7
CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbG9uZyBwcmVzc2luZyB0aGUg
dGltZXN0YW1wIGluIGFuIGF1ZGlvIGVsZW1lbnQgZG9lcyBub3Qgc3RhcnQgYSB0ZXh0IHNlbGVj
dGlvbi4gVG8gbWFudWFsbHkgcnVuIHRoZSB0ZXN0LCBsb25nIHByZXNzIHRoZSBhdWRpbyBlbGVt
ZW50IGJlbG93IGFuZCB2ZXJpZnkgdGhhdCBubyB0ZXh0IGlzIHNlbGVjdGVkLiIpOworYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IGF1ZGlvRWxlbWVudCA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoImF1ZGlvIik7CisgICAgbGV0IHRpbWVMYWJlbDsKKyAgICBmb3IgKGxl
dCBsYWJlbCBvZiBBcnJheS5mcm9tKGludGVybmFscy5zaGFkb3dSb290KGF1ZGlvRWxlbWVudCku
cXVlcnlTZWxlY3RvckFsbCgiZGl2LnRpbWUtbGFiZWwiKSkpIHsKKyAgICAgICAgaWYgKGdldENv
bXB1dGVkU3R5bGUobGFiZWwpLmRpc3BsYXkgIT09ICJub25lIikKKyAgICAgICAgICAgIHRpbWVM
YWJlbCA9IGxhYmVsOworICAgIH0KKworICAgIGNvbnN0IHRhcmdldFggPSAoYXVkaW9FbGVtZW50
Lm9mZnNldExlZnQgKyB0aW1lTGFiZWwub2Zmc2V0TGVmdCkgKyB0aW1lTGFiZWwub2Zmc2V0V2lk
dGggLyAyOworICAgIGNvbnN0IHRhcmdldFkgPSAoYXVkaW9FbGVtZW50Lm9mZnNldFRvcCArIHRp
bWVMYWJlbC5vZmZzZXRUb3ApICsgdGltZUxhYmVsLm9mZnNldEhlaWdodCAvIDI7CisgICAgYXdh
aXQgVUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCh0YXJnZXRYLCB0YXJnZXRZKTsKKyAgICByZWN0
cyA9IGF3YWl0IFVJSGVscGVyLmdldFVJU2VsZWN0aW9uVmlld1JlY3RzKCk7CisKKyAgICBzaG91
bGRCZSgicmVjdHMubGVuZ3RoIiwgIjAiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxhdWRpbyBjb250cm9scyBzcmM9Ii4uLy4uLy4uL21l
ZGlhL2NvbnRlbnQvYXVkaW8tdHJhY2tzLm1wNCI+PC9hdWRpbz4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYXVkaW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9hdWRpby9h
dWRpby1jb250cm9scy1zdHlsZXMtZXhwZWN0ZWQudHh0CmluZGV4IDUxOTNmN2RjMzkwMDUyMjEy
MzYyNmJiYmEwZGEwNjE5ZjI4OTgwMmQuLmJmNDc0Zjk1NjE0ZDkzNzg2ZjM2ODNhOGRjNzI2MjEw
OTQ5YjI2ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9hdWRpby9hdWRpby1jb250cm9scy1zdHlsZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9hdWRpby9hdWRpby1jb250cm9scy1z
dHlsZXMtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNiBAQCBUZXN0aW5nIG1lZGlhIGVsZW1lbnRz
IGRpc2FibGUgYnVpbHQtaW4gYnJvd3NlciBVSSBmZWF0dXJlcyB0byBjb3B5IGNvbnRlbnQuCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBnZXRDb21wdXRlZFN0eWxlKGF1ZGlv
KS5XZWJraXRVc2VyU2VsZWN0IGlzICJub25lIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGF1ZGlv
KS5XZWJraXRUb3VjaENhbGxvdXQgaXMgIm5vbmUiCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9hdWRpby9hdWRpby1jb250cm9scy1zdHlsZXMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9hdWRpby9hdWRpby1jb250cm9scy1zdHlsZXMuaHRtbApp
bmRleCA1NjJlYTU0OTA4ZTRhMWZhZDcyYzNjNzQwNGU4YTdiMzA0ZDBjYjYyLi45MjMzNTIwZjRl
NzQ4N2JhMjJmZDI2MGJmNmI0YzBlZGI4ZmRmZmFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYXVkaW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1
ZGlvLWNvbnRyb2xzLXN0eWxlcy5odG1sCkBAIC04LDcgKzgsNiBAQCBkZXNjcmlwdGlvbigiVGVz
dGluZyBtZWRpYSBlbGVtZW50cyBkaXNhYmxlIGJ1aWx0LWluIGJyb3dzZXIgVUkgZmVhdHVyZXMg
dG8gY29weQogY29uc3QgYXVkaW8gPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImF1ZGlvIikpOwogYXVkaW8uY29udHJvbHMgPSB0cnVlOwogCi1zaG91
bGRCZUVxdWFsVG9TdHJpbmcoImdldENvbXB1dGVkU3R5bGUoYXVkaW8pLldlYmtpdFVzZXJTZWxl
Y3QiLCAibm9uZSIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRDb21wdXRlZFN0eWxlKGF1
ZGlvKS5XZWJraXRUb3VjaENhbGxvdXQiLCAibm9uZSIpOwogCiBkZWJ1ZygiIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443843</attachid>
            <date>2021-11-10 12:09:26 -0800</date>
            <delta_ts>2021-11-10 12:35:30 -0800</delta_ts>
            <desc>Adjust for review comments</desc>
            <filename>bug-232899-20211110120925.patch</filename>
            <type>text/plain</type>
            <size>24620</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE1YzZhZmVhZTgxYmI5
NmM0YTJjZTE2MGRmOGE3YjQ4M2I1ZGRlYS4uZmUxOTIyNzM0NGNhZDViMjliNTRmMmYxMzFhODdh
ZTBkYjJkYjkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTExLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIHNv
bWUgaW1hZ2Ugb3ZlcmxheSBsb2dpYyB0byB3b3JrIHdpdGggYnVpbHQtaW4gbWVkaWEgY29udHJv
bHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg5
OQorICAgICAgICByZGFyOi8vODMxNzM1OTcKKworICAgICAgICBSZXZpZXdlZCBieSBBbnRvaW5l
IFF1aW50IGFuZCBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHZhcmlvdXMgbWlub3Ig
YWRqdXN0bWVudHMgdG8gYWxsb3cgYnVpbHQtaW4gbW9kZXJuIG1lZGlhIGNvbnRyb2xzIHRvIHBs
YXkgd2VsbCB3aXRoIGltYWdlIG92ZXJsYXkgY29udGVudC4KKyAgICAgICAgU2VlIGJlbG93IGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFD
b250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6Om1l
ZGlhQ29udHJvbHNDb250YWluZXJDbGFzc05hbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFj
b250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBmdW5j
dGlvbiB0byBncmFiIHRoZSAibWVkaWEtY29udHJvbHMtY29udGFpbmVyIiBjbGFzcyBuYW1lLCB3
aGljaCBpcyB1c2VkIGZvciB0aGUgYGRpdmAgZWxlbWVudAorICAgICAgICBjb250YWluaW5nIGJ1
aWx0LWluIG1vZGVybiBtZWRpYSBjb250cm9scy4gVGhpcyBpcyB1c2VkIGJlbG93IHRvIGlkZW50
aWZ5IGV4aXN0aW5nIG1lZGlhIGNvbnRyb2wgY29udGFpbmVyCisgICAgICAgIGVsZW1lbnRzIHdo
ZW4gZGV0ZXJtaW5pbmcgd2hlcmUgdG8gaW5qZWN0IHRoZSBpbWFnZSBvdmVybGF5IHJvb3QgY29u
dGFpbmVyLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9s
cy9jb250cm9scy1iYXIuY3NzOgorICAgICAgICAoLmNvbnRyb2xzLWJhcik6CisKKyAgICAgICAg
Wi1vcmRlciB0aGUgbWVkaWEgY29udHJvbHMgYmFyICh3aGljaCBjb250YWlucyBhbGwgaW50ZXJh
Y3RpYmxlIG1lZGlhIGNvbnRyb2wgZWxlbWVudHMpIGFib3ZlIGFueSBpbWFnZSBvdmVybGF5Cisg
ICAgICAgIGNvbnRlbnQgdGhhdCBtYXkgY29leGlzdCBpbiB0aGUgc2FtZSBzaGFkb3cgcm9vdC4K
KworICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlh
LWNvbnRyb2xzLmNzczoKKyAgICAgICAgKDpob3N0KToKKworICAgICAgICBSZW1vdmUgYC13ZWJr
aXQtdXNlci1zZWxlY3Q6IG5vbmU7YCBoZXJlLiBUaGlzIHdhcyBhZGRlZCB0byBwcmV2ZW50IHRo
ZSBpT1MgbWFnbmlmaWVyIFVJIGZyb20gc2hvd2luZyB1cCB3aGVuCisgICAgICAgIGxvbmcgcHJl
c3NpbmcgaW5zaWRlIGEgdmlkZW8gZWxlbWVudDsgd2UgY2FuIGFjaGlldmUgdGhlIHNhbWUgZWZm
ZWN0IHdpdGhvdXQgYXBwbHlpbmcgdGhpcyBwcm9wZXJ0eSBvdmVyIHRoZQorICAgICAgICBlbnRp
cmUgaG9zdCBlbGVtZW50IGJ5IGluc3RlYWQgY2hhbmdpbmcgc2VsZWN0aW9uIGxvZ2ljIGluIFdl
YktpdDIuCisKKyAgICAgICAgKC5tZWRpYS1jb250cm9scyk6CisKKyAgICAgICAgUHVzaCB0aGUg
YC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7YCBwcm9wZXJ0eSBkb3duIGludG8gdGhlIG1lZGlh
IGNvbnRyb2wgY2hpbGRyZW4sIGluc3RlYWQgb2Ygb24KKyAgICAgICAgYC5tZWRpYS1jb250cm9s
c2AgaXRzZWxmLgorCisgICAgICAgICgubWVkaWEtY29udHJvbHMgPiAqKToKKyAgICAgICAgKiBN
b2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLmpzOgor
ICAgICAgICAoTWVkaWFDb250cm9sbGVyKToKKworICAgICAgICBDaGFuZ2UgdGhpcyB0byBhc2sg
Zm9yIGBtZWRpYUNvbnRyb2xzQ29udGFpbmVyQ2xhc3NOYW1lYCBmcm9tIHRoZSBob3N0LCBpbnN0
ZWFkIG9mIGhhcmQtY29kaW5nIGl0IHRvCisgICAgICAgICJtZWRpYS1jb250cm9scy1jb250YWlu
ZXIiLiBGcm9tIGNvZGUgaW5zcGVjdGlvbiwgdGhlcmUgZG9lcyBub3Qgc2VlbSB0byBiZSBhbnkg
Y29kZXBhdGggdGhhdCBwYXNzZXMgaW4gYW4KKyAgICAgICAgdW5kZWZpbmVkIGBob3N0YCwgZXhj
ZXB0IGZvciB0aGUgbW9kZXJuIG1lZGlhIGNvbnRyb2xzIGxheW91dCB0ZXN0cyAod2hpY2ggc3Rp
bGwgcGFzcyBhZnRlciB0aGlzIGFkanVzdG1lbnQpLgorCisgICAgICAgICogaHRtbC9IVE1MRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpyZW1vdmVJbWFnZU92ZXJsYXlT
b29uSWZOZWVkZWQpOgorCisgICAgICAgIEFkanVzdCB0aGVzZSBoZWxwZXIgbWV0aG9kcyB0byB3
b3JrIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBpbWFnZSBvdmVybGF5IGNvbnRhaW5lciBpcyBob3N0
ZWQgdW5kZXJuZWF0aCB0aGUgbWVkaWEKKyAgICAgICAgY29udHJvbHMgY29udGFpbmVyLgorCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJl
c3VsdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtXaXRoVG9sZXJhbmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCk6CisKKyAgICAgICAgSWYgbmVl
ZGVkLCByZW1vdmUgdGhlIGltYWdlIG92ZXJsYXkgd2hlbiBzZWVraW5nIG9yIHBsYXlpbmcgbWVk
aWEuCisKIDIwMjEtMTEtMDkgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4K
IAogICAgICAgICBGaXggIUVOQUJMRShBQ0NFU1NJQklMSVRZKSBhZnRlciByMjg1NDI3CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGNkYjE5NTY1ZTQyOGMzZjJiMmE0Y2FhMTNjNDdkMGVjMGEzMGIwNTYuLmUzODVjOWE0
OWZjNTFlNjRjZDY2ZDI4YzZhZGVmMTc3NjhlOTVlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMjEtMTEtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVmYWN0b3Igc29tZSBpbWFnZSBvdmVybGF5IGxvZ2ljIHRvIHdvcmsgd2l0aCBi
dWlsdC1pbiBtZWRpYSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyODk5CisgICAgICAgIHJkYXI6Ly84MzE3MzU5NworCisgICAgICAg
IFJldmlld2VkIGJ5IEFudG9pbmUgUXVpbnQgYW5kIE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNlZSBXZWJDb3JlL0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoY2FuQXR0
ZW1wdFRleHRSZWNvZ25pdGlvbkZvck5vbkltYWdlRWxlbWVudHMpOgorCisgICAgICAgIEFkZCBh
IG5ldyBXZWJLaXRBZGRpdGlvbnMgaW50ZWdyYXRpb24gcG9pbnQuCisKKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBpbWFnZUFuYWx5c2lzR2VzdHVyZURpZEJlZ2luOl0pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6c2Vs
ZWN0aW9uUG9zaXRpb25JbmZvcm1hdGlvbik6CisKKyAgICAgICAgQWRqdXN0IGZvciB0aGUgY2hh
bmdlcyB0byB0aGUgYnVpbHQtaW4gbWVkaWEgY29udHJvbHMgc3R5bGVzaGVldCBieSBhZGRpbmcg
bG9naWMgdG8gcHJldmVudCB0aGUgbWFnbmlmaWVyIGZyb20KKyAgICAgICAgc2hvd2luZyB1cCB3
aGVuIGxvbmcgcHJlc3NpbmcgKG9yIGxvbmcgcHJlc3NpbmcgaW5zaWRlKSB2aWRlbyBlbGVtZW50
cyBvbiBpT1MuCisKIDIwMjEtMTEtMDkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI3MTczNSk6IFBheW1lbnRTaGlwcGluZ09wdGlvbi5z
ZWxlY3RlZCBpZ25vcmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
Y29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAppbmRleCAxZmNkZmYwMzNiYjEzZGY4
NjQ0YjY3NTg0ZmM5OWQ0YWRjNzA1MjJlLi5lZWY3OWRiZjUwNDdhNzg1YWI4MjQ5ZTNjYmUxMWRl
MjFjOTk3MzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKQEAgLTEzMyw2ICsxMzMsMTIgQEAgU3Ry
aW5nIE1lZGlhQ29udHJvbHNIb3N0OjpsYXlvdXRUcmFpdHNDbGFzc05hbWUoKSBjb25zdAogI2Vu
ZGlmCiB9CiAKK2NvbnN0IEF0b21TdHJpbmcmIE1lZGlhQ29udHJvbHNIb3N0OjptZWRpYUNvbnRy
b2xzQ29udGFpbmVyQ2xhc3NOYW1lKCkgY29uc3QKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNsYXNzTmFtZSgibWVkaWEtY29udHJvbHMt
Y29udGFpbmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHJldHVy
biBjbGFzc05hbWU7Cit9CisKIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPj4gTWVkaWFDb250cm9s
c0hvc3Q6OnNvcnRlZFRyYWNrTGlzdEZvck1lbnUoVGV4dFRyYWNrTGlzdCYgdHJhY2tMaXN0KQog
ewogICAgIGlmICghbV9tZWRpYUVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCmluZGV4IDdjYzJhNTY0
MWNlZTA0MzkxNTQwY2JhY2VlMDFjZjI0YTY1ZjNmNTIuLjc4MDlhMTUyZWQ1YzNlN2Y5YjIyZGUy
NzI3MmQ0MGY3MDI0OTA5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCkBAIC01NSw2ICs1NSw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgZm9yY2VkT25seUtleXdvcmQoKTsK
IAogICAgIFN0cmluZyBsYXlvdXRUcmFpdHNDbGFzc05hbWUoKSBjb25zdDsKKyAgICBjb25zdCBB
dG9tU3RyaW5nJiBtZWRpYUNvbnRyb2xzQ29udGFpbmVyQ2xhc3NOYW1lKCkgY29uc3Q7CiAKICAg
ICBkb3VibGUgYnJpZ2h0bmVzcygpIGNvbnN0IHsgcmV0dXJuIDE7IH0KICAgICB2b2lkIHNldEJy
aWdodG5lc3MoZG91YmxlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaWRsCmluZGV4IGUyOThjM2Q5ZjEw
N2M3ZTc2OWY1OWEzNjg3NjU2YzVkNzQ0NzZkMDEuLjljOTA4NGI1NWYzYmJkNjRlNDUwMDIzOWI4
YWRjNzBmOTNkZjU5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFj
b250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbApAQCAtMzUsNiArMzUsNyBAQCBl
bnVtIERldmljZVR5cGUgewogICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogXSBpbnRlcmZh
Y2UgTWVkaWFDb250cm9sc0hvc3QgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
bGF5b3V0VHJhaXRzQ2xhc3NOYW1lOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
bWVkaWFDb250cm9sc0NvbnRhaW5lckNsYXNzTmFtZTsKICAgICBhdHRyaWJ1dGUgZG91YmxlIGJy
aWdodG5lc3M7CiAKICAgICBzZXF1ZW5jZTxUZXh0VHJhY2s+IHNvcnRlZFRyYWNrTGlzdEZvck1l
bnUoVGV4dFRyYWNrTGlzdCB0cmFja0xpc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvY29udHJvbHMtYmFyLmNzcyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2Nv
bnRyb2xzLWJhci5jc3MKaW5kZXggMjYzZDJmYWQ5M2M0YWMzYTc2MzgxNzA5Yzk5ZTQ2MDgzZjRk
MmUzYS4uMDk2ODJlNjMzNWI4N2ZiMWFmYmQ4OTQzZDVmYmQ3MWM3NDk4YmUzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMv
Y29udHJvbHMtYmFyLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy9jb250cm9scy1iYXIuY3NzCkBAIC0yOCw0ICsyOCw1IEBACiAg
ICAgY3Vyc29yOiBkZWZhdWx0OwogICAgIGRpcmVjdGlvbjogbHRyOwogICAgIHdpbGwtY2hhbmdl
OiB6LWluZGV4OworICAgIHotaW5kZXg6IDE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250cm9scy5j
c3MgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9s
cy9tZWRpYS1jb250cm9scy5jc3MKaW5kZXggOTBmNDk0ZDcwZDg5MjgxMjVlZjUxMGNiZDk3Mzgx
Yjk1YjM3YzM1Zi4uYmNhZmUwMTk4MDRmZmJjZTAwYjM2OWIwNmQwYTcyOGZiMDE1MzJiYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29u
dHJvbHMvbWVkaWEtY29udHJvbHMuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmNzcwpAQCAtMjQsOCAr
MjQsNyBAQAogICovCiAKIDpob3N0IHsKLSAgICAvKiBXZSBhbHdheXMgd2FudCB0byBwcmV2ZW50
IGlPUyBkaWFsb2dzIGFuZCB0aGUgbWFnbmlmaWVyIFVJIHRvIGJlIHNob3duLiAqLwotICAgIC13
ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDsKKyAgICAvKiBXZSBhbHdheXMgd2Fu
dCB0byBhdm9pZCBzaG93aW5nIHRoZSBjb250ZXh0IG1lbnUgb24gaU9TLiAqLwogICAgIC13ZWJr
aXQtdG91Y2gtY2FsbG91dDogbm9uZSAhaW1wb3J0YW50OwogfQogCkBAIC04Miw3ICs4MSw2IEBA
CiAubWVkaWEtY29udHJvbHMgewogICAgIGhlaWdodDogMTAwJTsKICAgICBmb250LWZhbWlseTog
LWFwcGxlLXN5c3RlbTsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgIHdoaXRl
LXNwYWNlOiBub3dyYXA7CiAgICAgdGV4dC1hbGlnbjogaW5pdGlhbDsKICAgICB0cmFuc2Zvcm0t
b3JpZ2luOiAwIDA7CkBAIC05Myw2ICs5MSw4IEBACiB9CiAKIC5tZWRpYS1jb250cm9scyA+ICog
eworICAgIC8qIFdlIGFsd2F5cyB3YW50IHRvIGF2b2lkIHNob3dpbmcgdGhlIHRleHQgc2VsZWN0
aW9uIG1hZ25pZmllciBvbiBpT1MuICovCisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsK
ICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgbGluZWFyOwogfQogCkBAIC0xMjYsNCArMTI2
LDQgQEAKIEBtZWRpYSAoaW52ZXJ0ZWQtY29sb3JzKSB7CiAgICAgOmhvc3QgeyBmaWx0ZXI6IGlu
dmVydCgxMDAlKTsgfSAvKiBXZWJLaXQgbmF0aXZlIGF1ZGlvIGFuZCB2aWRlby4gKi8KICAgICBw
aWN0dXJlIHsgZmlsdGVyOiBub25lOyB9IC8qIERvbid0IGludmVydCB0aGUgY29udHJvbCBidXR0
b25zLiAqLwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL21lZGlhLWNv
bnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9s
cy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLmpzCmluZGV4IDRhMDU0ODcxZDIyMzFkYTA4MmM3ZWEw
ZWQ4YWM5ZGU2NTU4MDRmMmYuLmEyYjcwYzRkNmM3ZmIwZWZlYWE1YzA4OTNiNmI0YWZmYjFlOWNl
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL21lZGlhL21lZGlhLWNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvbWVkaWEtY29udHJvbGxlci5qcwpAQCAtMzcs
MTIgKzM3LDEyIEBAIGNsYXNzIE1lZGlhQ29udHJvbGxlcgogICAgICAgICB0aGlzLmhhc1BsYXll
ZCA9IGZhbHNlOwogCiAgICAgICAgIHRoaXMuY29udGFpbmVyID0gc2hhZG93Um9vdC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7Ci0gICAgICAgIHRoaXMuY29udGFp
bmVyLmNsYXNzTmFtZSA9ICJtZWRpYS1jb250cm9scy1jb250YWluZXIiOwogCiAgICAgICAgIHRo
aXMuX3VwZGF0ZUNvbnRyb2xzSWZOZWVkZWQoKTsKICAgICAgICAgdGhpcy5fdXNlc0xUUlVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gPSBmYWxzZTsKIAogICAgICAgICBpZiAoaG9zdCkgewor
ICAgICAgICAgICAgdGhpcy5jb250YWluZXIuY2xhc3NOYW1lID0gaG9zdC5tZWRpYUNvbnRyb2xz
Q29udGFpbmVyQ2xhc3NOYW1lOwogICAgICAgICAgICAgaG9zdC5jb250cm9sc0RlcGVuZE9uUGFn
ZVNjYWxlRmFjdG9yID0gdGhpcy5sYXlvdXRUcmFpdHMuY29udHJvbHNEZXBlbmRPblBhZ2VTY2Fs
ZUZhY3RvcigpOwogICAgICAgICAgICAgdGhpcy5jb250YWluZXIuaW5zZXJ0QmVmb3JlKGhvc3Qu
dGV4dFRyYWNrQ29udGFpbmVyLCB0aGlzLmNvbnRyb2xzLmVsZW1lbnQpOwogICAgICAgICAgICAg
aWYgKGhvc3QuaXNJbk1lZGlhRG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CmluZGV4IDE5YTU5ZWI2NDMzYzhlNTA1NWZlZjg4ZjUyZjA3YzhjZjNiMjg1ZDMuLjE1YTQyYmVj
ZjQ5MDRkZTFiODM3YThmYjdlMmRiNGNmOTRjMGE1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxP
cHRpb25FbGVtZW50LmgiCkBAIC02MSw2ICs2Miw3IEBACiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhQ29udHJvbHNIb3N0Lmgi
CiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIK
ICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgpAQCAtMTI1MCw2ICsxMjUyLDkgQEAgdm9pZCBIVE1M
RWxlbWVudDo6c2V0RW50ZXJLZXlIaW50KGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgc2V0QXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihlbnRlcmtleWhpbnRBdHRyLCB2YWx1ZSk7CiB9
CiAKKy8vIEZJWE1FOiBXZSBzaG91bGQgbW92ZSBhbGwgb2YgdGhpcyBpbWFnZSBvdmVybGF5LXNw
ZWNpZmljIGxvZ2ljIG91dCBpbnRvIGEgc2VwYXJhdGUgaGVscGVyIGZpbGUgKHBvc3NpYmx5IGFz
IHN0YW5kYWxvbmUgZnVuY3Rpb25zKQorLy8gdG8gYmV0dGVyIGNvbXBhcnRtZW50YWxpemUgdGhp
cyBjb2RlLgorCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgaW1hZ2VPdmVybGF5RWxlbWVudElk
ZW50aWZpZXIoKQogewogICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gaWRlbnRpZmllcigiaW1hZ2Utb3ZlcmxheSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKQEAgLTEzMjMsMTAgKzEzMjgsOCBAQCBib29sIEhUTUxFbGVtZW50
Ojppc0ltYWdlT3ZlcmxheVRleHQoY29uc3QgTm9kZSYgbm9kZSkKICAgICBpZiAoIWhvc3QpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9m
VHlwZTxIVE1MRGl2RWxlbWVudD4oKmhvc3QtPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkpIHsKLSAg
ICAgICAgaWYgKGNoaWxkLmdldElkQXR0cmlidXRlKCkgPT0gaW1hZ2VPdmVybGF5RWxlbWVudElk
ZW50aWZpZXIoKSkKLSAgICAgICAgICAgIHJldHVybiBub2RlLmlzRGVzY2VuZGFudE9mKGNoaWxk
KTsKLSAgICB9CisgICAgaWYgKFJlZlB0ciBvdmVybGF5ID0gc3RhdGljX2Nhc3Q8VHJlZVNjb3Bl
Jj4oKmhvc3QtPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkuZ2V0RWxlbWVudEJ5SWQoaW1hZ2VPdmVy
bGF5RWxlbWVudElkZW50aWZpZXIoKSkpCisgICAgICAgIHJldHVybiBub2RlLmlzRGVzY2VuZGFu
dE9mKCpvdmVybGF5KTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTEzNDUsMTYgKzEzNDgs
OCBAQCB2b2lkIEhUTUxFbGVtZW50OjpyZW1vdmVJbWFnZU92ZXJsYXlTb29uSWZOZWVkZWQoKQog
ICAgICAgICBpZiAoIXNoYWRvd1Jvb3QpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
UmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjb250YWluZXJUb1JlbW92ZTsKLSAgICAgICAgZm9yIChh
dXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEhUTUxEaXZFbGVtZW50Pigqc2hhZG93Um9vdCkp
IHsKLSAgICAgICAgICAgIGlmIChjaGlsZC5nZXRJZEF0dHJpYnV0ZSgpID09IGltYWdlT3Zlcmxh
eUVsZW1lbnRJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgICAgICAgICBjb250YWluZXJUb1JlbW92
ZSA9ICZjaGlsZDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotCi0gICAgICAgIGlmIChjb250YWluZXJUb1JlbW92ZSkKLSAgICAgICAgICAgIGNvbnRh
aW5lclRvUmVtb3ZlLT5yZW1vdmUoKTsKKyAgICAgICAgaWYgKFJlZlB0ciBvdmVybGF5ID0gc3Rh
dGljX2Nhc3Q8VHJlZVNjb3BlJj4oKnNoYWRvd1Jvb3QpLmdldEVsZW1lbnRCeUlkKGltYWdlT3Zl
cmxheUVsZW1lbnRJZGVudGlmaWVyKCkpKQorICAgICAgICAgICAgb3ZlcmxheS0+cmVtb3ZlKCk7
CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBw
cm90ZWN0ZWRUaGlzLT5kb2N1bWVudCgpLnBhZ2UoKSkKQEAgLTEzOTUsMTMgKzEzOTAsMzMgQEAg
dm9pZCBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBU
ZXh0UmVjb2duaXRpb25SZXN1bHQmIHIKIAogICAgIGJvb2wgaGFkRXhpc3RpbmdUZXh0UmVjb2du
aXRpb25FbGVtZW50cyA9IGZhbHNlOwogICAgIFRleHRSZWNvZ25pdGlvbkVsZW1lbnRzIHRleHRS
ZWNvZ25pdGlvbkVsZW1lbnRzOwotCi0gICAgaWYgKGhhc0ltYWdlT3ZlcmxheSgpKSB7Ci0gICAg
ICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxIVE1MRGl2RWxlbWVudD4oKnVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKSkpIHsKLSAgICAgICAgICAgIGlmIChjaGlsZC5nZXRJZEF0dHJp
YnV0ZSgpID09IGltYWdlT3ZlcmxheUVsZW1lbnRJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgICAg
ICAgICB0ZXh0UmVjb2duaXRpb25FbGVtZW50cy5yb290ID0gJmNoaWxkOwotICAgICAgICAgICAg
ICAgIGhhZEV4aXN0aW5nVGV4dFJlY29nbml0aW9uRWxlbWVudHMgPSB0cnVlOwotICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbWVkaWFDb250cm9sc0NvbnRh
aW5lcjsKKyAgICBpZiAoUmVmUHRyIHNoYWRvd1Jvb3QgPSB0aGlzLT5zaGFkb3dSb290KCkpIHsK
KyNpZiBFTkFCTEUoTU9ERVJOX01FRElBX0NPTlRST0xTKQorICAgICAgICBpZiAoaXM8SFRNTE1l
ZGlhRWxlbWVudD4oKnRoaXMpKSB7CisgICAgICAgICAgICBpZiAoUmVmUHRyIGNvbnRyb2xzSG9z
dCA9IGRvd25jYXN0PEhUTUxNZWRpYUVsZW1lbnQ+KCp0aGlzKS5tZWRpYUNvbnRyb2xzSG9zdCgp
KSB7CisgICAgICAgICAgICAgICAgYXV0byYgY29udGFpbmVyQ2xhc3MgPSBjb250cm9sc0hvc3Qt
Pm1lZGlhQ29udHJvbHNDb250YWluZXJDbGFzc05hbWUoKTsKKyAgICAgICAgICAgICAgICBmb3Ig
KGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8SFRNTERpdkVsZW1lbnQ+KCpzaGFkb3dSb290
KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQuaGFzQ2xhc3MoKSAmJiBjaGlsZC5j
bGFzc05hbWVzKCkuY29udGFpbnMoY29udGFpbmVyQ2xhc3MpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBtZWRpYUNvbnRyb2xzQ29udGFpbmVyID0gJmNoaWxkOworICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBpZiAoaGFzSW1hZ2VP
dmVybGF5KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBjb250YWluZXJG
b3JJbWFnZU92ZXJsYXk7CisgICAgICAgICAgICBpZiAobWVkaWFDb250cm9sc0NvbnRhaW5lcikK
KyAgICAgICAgICAgICAgICBjb250YWluZXJGb3JJbWFnZU92ZXJsYXkgPSBtZWRpYUNvbnRyb2xz
Q29udGFpbmVyOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbnRhaW5lckZv
ckltYWdlT3ZlcmxheSA9IHNoYWRvd1Jvb3Q7CisgICAgICAgICAgICBmb3IgKGF1dG8mIGNoaWxk
IDogY2hpbGRyZW5PZlR5cGU8SFRNTERpdkVsZW1lbnQ+KCpjb250YWluZXJGb3JJbWFnZU92ZXJs
YXkpKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoaWxkLmdldElkQXR0cmlidXRlKCkgPT0gaW1h
Z2VPdmVybGF5RWxlbWVudElkZW50aWZpZXIoKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0
UmVjb2duaXRpb25FbGVtZW50cy5yb290ID0gJmNoaWxkOworICAgICAgICAgICAgICAgICAgICBo
YWRFeGlzdGluZ1RleHRSZWNvZ25pdGlvbkVsZW1lbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQpAQCAtMTQ1Nyw3ICsxNDcyLDExIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnVwZGF0
ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgVGV4dFJlY29nbml0aW9uUmVzdWx0JiBy
CiAgICAgICAgIHJvb3RDb250YWluZXItPnNldElkQXR0cmlidXRlKGltYWdlT3ZlcmxheUVsZW1l
bnRJZGVudGlmaWVyKCkpOwogICAgICAgICBpZiAoZG9jdW1lbnQoKS5pc0ltYWdlRG9jdW1lbnQo
KSkKICAgICAgICAgICAgIHJvb3RDb250YWluZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NT
UHJvcGVydHlXZWJraXRVc2VyU2VsZWN0LCBDU1NWYWx1ZVRleHQpOwotICAgICAgICBzaGFkb3dS
b290LT5hcHBlbmRDaGlsZChyb290Q29udGFpbmVyKTsKKworICAgICAgICBpZiAobWVkaWFDb250
cm9sc0NvbnRhaW5lcikKKyAgICAgICAgICAgIG1lZGlhQ29udHJvbHNDb250YWluZXItPmFwcGVu
ZENoaWxkKHJvb3RDb250YWluZXIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzaGFkb3dS
b290LT5hcHBlbmRDaGlsZChyb290Q29udGFpbmVyKTsKICAgICAgICAgdGV4dFJlY29nbml0aW9u
RWxlbWVudHMucm9vdCA9IHJvb3RDb250YWluZXIuY29weVJlZigpOwogICAgICAgICB0ZXh0UmVj
b2duaXRpb25FbGVtZW50cy5saW5lcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJlc3VsdC5saW5l
cy5zaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8mIGxpbmUgOiByZXN1bHQubGluZXMpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDM0NWE3ZTMxMDI1MTA2
YzZlYjA0NGZiZjIzODJiNzZhMDRiMDQ2ZDguLjAzOTA3NzFkYmFjZDJhNzBjNzcyNTgzMWIwMTBk
NTgxNGE3ZWM5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtMzEzMCw2ICszMTMwLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVrV2l0aFRvbGVy
YW5jZShjb25zdCBNZWRpYVRpbWUmIGluVGltZSwgY29uc3QgTWVkaWFUaW0KIAogICAgIGlmIChw
cm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICAgICBtZWRpYVNlc3Npb24oKS5y
ZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2Vy
R2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7CisKKyAgICByZW1vdmVJbWFnZU92ZXJs
YXlTb29uSWZOZWVkZWQoKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVrVGFzaygp
CkBAIC0zNzEzLDYgKzM3MTUsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5h
bCgpCiAKICAgICBtX2F1dG9wbGF5aW5nID0gZmFsc2U7CiAgICAgdXBkYXRlUGxheVN0YXRlKCk7
CisKKyAgICByZW1vdmVJbWFnZU92ZXJsYXlTb29uSWZOZWVkZWQoKTsKIH0KIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpwYXVzZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9p
b3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCmluZGV4IDk4ZGUzOTNh
ZjYwNWQ4ZThlMjlhYzE4NDg1ZTJjNDNmMTVmNGI4ODEuLjg4YzI1MDA2MWY0Y2IzODQwNjVkYTAx
NWQ1ZWRiN2M4MzA2NjRkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9J
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCkBAIC01OSw2ICs1OSw3
IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7CiAgICAgICAgIFVu
c2VsZWN0YWJsZUR1ZVRvRm9jdXNhYmxlRWxlbWVudCwKICAgICAgICAgVW5zZWxlY3RhYmxlRHVl
VG9MYXJnZUVsZW1lbnRCb3VuZHMsCiAgICAgICAgIFVuc2VsZWN0YWJsZUR1ZVRvVXNlclNlbGVj
dE5vbmUsCisgICAgICAgIFVuc2VsZWN0YWJsZUR1ZVRvTWVkaWFDb250cm9scywKICAgICB9Owog
ICAgIFNlbGVjdGFiaWxpdHkgc2VsZWN0YWJpbGl0eSB7IFNlbGVjdGFiaWxpdHk6OlNlbGVjdGFi
bGUgfTsKIApAQCAtMTMyLDcgKzEzMyw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6U2VsZWN0YWJpCiAgICAg
ICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OlNlbGVjdGFiaWxp
dHk6OlNlbGVjdGFibGUsCiAgICAgICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246OlNlbGVjdGFiaWxpdHk6OlVuc2VsZWN0YWJsZUR1ZVRvRm9jdXNhYmxlRWxlbWVu
dCwKICAgICAgICAgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6U2Vs
ZWN0YWJpbGl0eTo6VW5zZWxlY3RhYmxlRHVlVG9MYXJnZUVsZW1lbnRCb3VuZHMsCi0gICAgICAg
IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OlNlbGVjdGFiaWxpdHk6
OlVuc2VsZWN0YWJsZUR1ZVRvVXNlclNlbGVjdE5vbmUKKyAgICAgICAgV2ViS2l0OjpJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6U2VsZWN0YWJpbGl0eTo6VW5zZWxlY3RhYmxlRHVl
VG9Vc2VyU2VsZWN0Tm9uZSwKKyAgICAgICAgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbjo6U2VsZWN0YWJpbGl0eTo6VW5zZWxlY3RhYmxlRHVlVG9NZWRpYUNvbnRyb2xz
CiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGE4NTUyZGNhOGI4OTg0NzBmNjBiYjJl
N2FlNzU2ODliMGYzNjRiNzcuLjM5NDM4YmYxZDc1NTMxOTQ1NjYwNDAyMDU1MDBiYjc0OGUxMmMz
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMjI2LDYgKzIyNiwxOSBAQCBAZW5kCiAKICNlbmRpZiAv
LyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
I2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9u
cy5tbT4KKyNlbHNlCisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCitzdGF0aWMgYm9vbCBj
YW5BdHRlbXB0VGV4dFJlY29nbml0aW9uRm9yTm9uSW1hZ2VFbGVtZW50cyhjb25zdCBXZWJLaXQ6
OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJiBpbmZvcm1hdGlvbiwgY29uc3QgV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlcyYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMTAx
ODcsNyArMTAyMDAsNyBAQCAtICh2b2lkKWltYWdlQW5hbHlzaXNHZXN0dXJlRGlkQmVnaW46KFdL
SW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZQogICAgICAgICAgICAgcmV0
dXJuOwogCiAgICAgICAgIGJvb2wgc2hvdWxkQW5hbHl6ZUltYWdlQXRMb2NhdGlvbiA9IChbJl0g
ewotICAgICAgICAgICAgaWYgKCFpbmZvcm1hdGlvbi5pc0ltYWdlKQorICAgICAgICAgICAgaWYg
KCFpbmZvcm1hdGlvbi5pc0ltYWdlICYmICFjYW5BdHRlbXB0VGV4dFJlY29nbml0aW9uRm9yTm9u
SW1hZ2VFbGVtZW50cyhpbmZvcm1hdGlvbiwgc3Ryb25nU2VsZi0+X3BhZ2UtPnByZWZlcmVuY2Vz
KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgaWYgKCFp
bmZvcm1hdGlvbi5pbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZGE5NmYyMTgwNDZkY2Q0MTdkZjJhNjg2YTRmZmUy
YTc3Mjk5MzExMC4uYTk3MTVkZTM0MDFhNDBlMGJlOGQ3OGNjYTI2YWMxYjUyZjkwODI0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KQEAgLTI5NDAsNiArMjk0MCw5IEBAIHN0YXRpYyB2b2lkIHNlbGVjdGlvblBvc2l0aW9uSW5m
b3JtYXRpb24oV2ViUGFnZSYgcGFnZSwgY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hCiAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IElzIHRoaXMgaGV1cmlzdGljIHN0aWxsIG5lZWRlZCwgbm93IHRo
YXQgYmxvY2sgc2VsZWN0aW9uIGhhcyBiZWVuIHJlbW92ZWQ/CiAgICAgICAgICAgICAgICAgcmV0
dXJuIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpTZWxlY3RhYmlsaXR5OjpVbnNl
bGVjdGFibGVEdWVUb0xhcmdlRWxlbWVudEJvdW5kczsKICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKGhvc3RWaWRlb0VsZW1lbnRJZ25vcmluZ0ltYWdlT3ZlcmxheSgqaGl0Tm9kZSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
OjpTZWxlY3RhYmlsaXR5OjpVbnNlbGVjdGFibGVEdWVUb01lZGlhQ29udHJvbHM7CiAgICAgICAg
IH0KIAogICAgICAgICByZXR1cm4gSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OlNl
bGVjdGFiaWxpdHk6OlNlbGVjdGFibGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTA2MjIwMWI0MGMyOGZlZTczOGQ0YmI4
OTJlN2IzOTRhYWMzZWM1Ni4uMjQyY2FlZDBhZWQ0ODVjMTg3MGJhMDhiZTFiZmQxNjEwYjhjZTUz
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTExLTEwICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIHNvbWUgaW1hZ2Ugb3Zlcmxh
eSBsb2dpYyB0byB3b3JrIHdpdGggYnVpbHQtaW4gbWVkaWEgY29udHJvbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg5OQorICAgICAgICByZGFy
Oi8vODMxNzM1OTcKKworICAgICAgICBSZXZpZXdlZCBieSBBbnRvaW5lIFF1aW50IGFuZCBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGp1c3QgYSBtb2Rlcm4gbWVkaWEgY29udHJvbHMgdGVz
dCwgc3VjaCB0aGF0IGl0IG5vIGxvbmdlciB2ZXJpZmllcyB0aGF0IHRoZSBgLXdlYmtpdC11c2Vy
LXNlbGVjdGAgQ1NTIHByb3BlcnR5CisgICAgICAgIGlzIG5vbmUgb24gYW4gYXVkaW8gZWxlbWVu
dDsgaW4gbGlldSBvZiB0aGlzLCB3ZSBhZGQgYSBuZXcgbGF5b3V0IHRlc3QgaW4gYGVkaXRpbmcv
c2VsZWN0aW9uYCB0byB2ZXJpZnkgdGhhdAorICAgICAgICBsb25nIHByZXNzaW5nIG92ZXIgdGhl
IHRpbWVzdGFtcCBvZiBhbiBhdWRpbyBlbGVtZW50IGRvZXMgbm90IHRyaWdnZXIgdGV4dCBzZWxl
Y3Rpb24uCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9pb3MvZG8tbm90LWFsbG93LXRl
eHQtc2VsZWN0aW9uLWluLWF1ZGlvLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9pb3MvZG8tbm90LWFsbG93LXRleHQtc2VsZWN0aW9uLWlu
LWF1ZGlvLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxlcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0
eWxlcy5odG1sOgorCiAyMDIxLTExLTA5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzE3MzUpOiBQYXltZW50U2hpcHBpbmdPcHRpb24u
c2VsZWN0ZWQgaWdub3JlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vaW9zL2RvLW5vdC1hbGxvdy10ZXh0LXNlbGVjdGlvbi1pbi1hdWRpby1lbGVtZW50LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ct
dGV4dC1zZWxlY3Rpb24taW4tYXVkaW8tZWxlbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzdhODgyZWE1ZTVhMWEwZWM0NzdjZWQzNDJiOTY2OTY4YjQ5YjgxMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ctdGV4dC1z
ZWxlY3Rpb24taW4tYXVkaW8tZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbG9uZyBwcmVzc2luZyB0aGUgdGltZXN0YW1wIGluIGFu
IGF1ZGlvIGVsZW1lbnQgZG9lcyBub3Qgc3RhcnQgYSB0ZXh0IHNlbGVjdGlvbi4gVG8gbWFudWFs
bHkgcnVuIHRoZSB0ZXN0LCBsb25nIHByZXNzIHRoZSBhdWRpbyBlbGVtZW50IGJlbG93IGFuZCB2
ZXJpZnkgdGhhdCBubyB0ZXh0IGlzIHNlbGVjdGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyByZWN0cy5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ctdGV4dC1zZWxlY3Rpb24taW4tYXVkaW8tZWxl
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2RvLW5vdC1hbGxv
dy10ZXh0LXNlbGVjdGlvbi1pbi1hdWRpby1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEwNWMw
Y2ZjZGU4ZTdjY2JkM2M5NWNmY2JlN2U0YmM2NTNmN2U4YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ctdGV4dC1zZWxlY3Rp
b24taW4tYXVkaW8tZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1s
PiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0t
PgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdp
ZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0
cnVlOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGxvbmcgcHJlc3Npbmcg
dGhlIHRpbWVzdGFtcCBpbiBhbiBhdWRpbyBlbGVtZW50IGRvZXMgbm90IHN0YXJ0IGEgdGV4dCBz
ZWxlY3Rpb24uIFRvIG1hbnVhbGx5IHJ1biB0aGUgdGVzdCwgbG9uZyBwcmVzcyB0aGUgYXVkaW8g
ZWxlbWVudCBiZWxvdyBhbmQgdmVyaWZ5IHRoYXQgbm8gdGV4dCBpcyBzZWxlY3RlZC4iKTsKK2Fk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgaWYgKCF3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBhdWRpb0VsZW1lbnQgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJhdWRpbyIpOworICAgIGxldCB0aW1lTGFiZWw7CisgICAgZm9y
IChsZXQgbGFiZWwgb2YgQXJyYXkuZnJvbShpbnRlcm5hbHMuc2hhZG93Um9vdChhdWRpb0VsZW1l
bnQpLnF1ZXJ5U2VsZWN0b3JBbGwoImRpdi50aW1lLWxhYmVsIikpKSB7CisgICAgICAgIGlmIChn
ZXRDb21wdXRlZFN0eWxlKGxhYmVsKS5kaXNwbGF5ICE9PSAibm9uZSIpCisgICAgICAgICAgICB0
aW1lTGFiZWwgPSBsYWJlbDsKKyAgICB9CisKKyAgICBjb25zdCB0YXJnZXRYID0gKGF1ZGlvRWxl
bWVudC5vZmZzZXRMZWZ0ICsgdGltZUxhYmVsLm9mZnNldExlZnQpICsgdGltZUxhYmVsLm9mZnNl
dFdpZHRoIC8gMjsKKyAgICBjb25zdCB0YXJnZXRZID0gKGF1ZGlvRWxlbWVudC5vZmZzZXRUb3Ag
KyB0aW1lTGFiZWwub2Zmc2V0VG9wKSArIHRpbWVMYWJlbC5vZmZzZXRIZWlnaHQgLyAyOworICAg
IGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0UG9pbnQodGFyZ2V0WCwgdGFyZ2V0WSk7CisgICAg
cmVjdHMgPSBhd2FpdCBVSUhlbHBlci5nZXRVSVNlbGVjdGlvblZpZXdSZWN0cygpOworCisgICAg
c2hvdWxkQmUoInJlY3RzLmxlbmd0aCIsICIwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsK
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8YXVkaW8gY29udHJvbHMgc3JjPSIuLi8uLi8u
Li9tZWRpYS9jb250ZW50L2F1ZGlvLXRyYWNrcy5tcDQiPjwvYXVkaW8+Cis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYXVk
aW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLWV4cGVjdGVkLnR4dAppbmRleCA1MTkzZjdkYzM5MDA1
MjIxMjM2MjZiYmJhMGRhMDYxOWYyODk4MDJkLi5iZjQ3NGY5NTYxNGQ5Mzc4NmYzNjgzYThkYzcy
NjIxMDk0OWIyNmRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvYXVkaW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYXVkaW8vYXVkaW8tY29udHJv
bHMtc3R5bGVzLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDYgQEAgVGVzdGluZyBtZWRpYSBlbGVt
ZW50cyBkaXNhYmxlIGJ1aWx0LWluIGJyb3dzZXIgVUkgZmVhdHVyZXMgdG8gY29weSBjb250ZW50
LgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShh
dWRpbykuV2Via2l0VXNlclNlbGVjdCBpcyAibm9uZSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShh
dWRpbykuV2Via2l0VG91Y2hDYWxsb3V0IGlzICJub25lIgogCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvYXVkaW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYXVkaW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLmh0
bWwKaW5kZXggNTYyZWE1NDkwOGU0YTFmYWQ3MmMzYzc0MDRlOGE3YjMwNGQwY2I2Mi4uOTIzMzUy
MGY0ZTc0ODdiYTIyZmQyNjBiZjZiNGMwZWRiOGZkZmZhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxl
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9hdWRp
by9hdWRpby1jb250cm9scy1zdHlsZXMuaHRtbApAQCAtOCw3ICs4LDYgQEAgZGVzY3JpcHRpb24o
IlRlc3RpbmcgbWVkaWEgZWxlbWVudHMgZGlzYWJsZSBidWlsdC1pbiBicm93c2VyIFVJIGZlYXR1
cmVzIHRvIGNvcHkKIGNvbnN0IGF1ZGlvID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJhdWRpbyIpKTsKIGF1ZGlvLmNvbnRyb2xzID0gdHJ1ZTsKIAot
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRDb21wdXRlZFN0eWxlKGF1ZGlvKS5XZWJraXRVc2Vy
U2VsZWN0IiwgIm5vbmUiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q29tcHV0ZWRTdHls
ZShhdWRpbykuV2Via2l0VG91Y2hDYWxsb3V0IiwgIm5vbmUiKTsKIAogZGVidWcoIiIpOwo=
</data>
<flag name="review"
          id="468667"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443857</attachid>
            <date>2021-11-10 13:24:32 -0800</date>
            <delta_ts>2021-11-10 16:03:17 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232899-20211110132431.patch</filename>
            <type>text/plain</type>
            <size>24608</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE1YzZhZmVhZTgxYmI5
NmM0YTJjZTE2MGRmOGE3YjQ4M2I1ZGRlYS4uMjk1NmU2YjQwNTRmMGQ4NDllMjc2YTJlMTdiMzdj
OWRmZDdiOTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTExLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIHNv
bWUgaW1hZ2Ugb3ZlcmxheSBsb2dpYyB0byB3b3JrIHdpdGggYnVpbHQtaW4gbWVkaWEgY29udHJv
bHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg5
OQorICAgICAgICByZGFyOi8vODMxNzM1OTcKKworICAgICAgICBSZXZpZXdlZCBieSBBbnRvaW5l
IFF1aW50IGFuZCBUaW0gSG9ydG9uLgorCisgICAgICAgIE1ha2UgdmFyaW91cyBtaW5vciBhZGp1
c3RtZW50cyB0byBhbGxvdyBidWlsdC1pbiBtb2Rlcm4gbWVkaWEgY29udHJvbHMgdG8gcGxheSB3
ZWxsIHdpdGggaW1hZ2Ugb3ZlcmxheSBjb250ZW50LgorICAgICAgICBTZWUgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRy
b2xzSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzSG9zdDo6bWVkaWFD
b250cm9sc0NvbnRhaW5lckNsYXNzTmFtZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRy
b2xzL01lZGlhQ29udHJvbHNIb3N0Lmg6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIGZ1bmN0aW9u
IHRvIGdyYWIgdGhlICJtZWRpYS1jb250cm9scy1jb250YWluZXIiIGNsYXNzIG5hbWUsIHdoaWNo
IGlzIHVzZWQgZm9yIHRoZSBgZGl2YCBlbGVtZW50CisgICAgICAgIGNvbnRhaW5pbmcgYnVpbHQt
aW4gbW9kZXJuIG1lZGlhIGNvbnRyb2xzLiBUaGlzIGlzIHVzZWQgYmVsb3cgdG8gaWRlbnRpZnkg
ZXhpc3RpbmcgbWVkaWEgY29udHJvbCBjb250YWluZXIKKyAgICAgICAgZWxlbWVudHMgd2hlbiBk
ZXRlcm1pbmluZyB3aGVyZSB0byBpbmplY3QgdGhlIGltYWdlIG92ZXJsYXkgcm9vdCBjb250YWlu
ZXIuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2Nv
bnRyb2xzLWJhci5jc3M6CisgICAgICAgICguY29udHJvbHMtYmFyKToKKworICAgICAgICBaLW9y
ZGVyIHRoZSBtZWRpYSBjb250cm9scyBiYXIgKHdoaWNoIGNvbnRhaW5zIGFsbCBpbnRlcmFjdGli
bGUgbWVkaWEgY29udHJvbCBlbGVtZW50cykgYWJvdmUgYW55IGltYWdlIG92ZXJsYXkKKyAgICAg
ICAgY29udGVudCB0aGF0IG1heSBjb2V4aXN0IGluIHRoZSBzYW1lIHNoYWRvdyByb290LgorCisg
ICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWVkaWEtY29u
dHJvbHMuY3NzOgorICAgICAgICAoOmhvc3QpOgorCisgICAgICAgIFJlbW92ZSBgLXdlYmtpdC11
c2VyLXNlbGVjdDogbm9uZTtgIGhlcmUuIFRoaXMgd2FzIGFkZGVkIHRvIHByZXZlbnQgdGhlIGlP
UyBtYWduaWZpZXIgVUkgZnJvbSBzaG93aW5nIHVwIHdoZW4KKyAgICAgICAgbG9uZyBwcmVzc2lu
ZyBpbnNpZGUgYSB2aWRlbyBlbGVtZW50OyB3ZSBjYW4gYWNoaWV2ZSB0aGUgc2FtZSBlZmZlY3Qg
d2l0aG91dCBhcHBseWluZyB0aGlzIHByb3BlcnR5IG92ZXIgdGhlCisgICAgICAgIGVudGlyZSBo
b3N0IGVsZW1lbnQgYnkgaW5zdGVhZCBjaGFuZ2luZyBzZWxlY3Rpb24gbG9naWMgaW4gV2ViS2l0
Mi4KKworICAgICAgICAoLm1lZGlhLWNvbnRyb2xzKToKKworICAgICAgICBQdXNoIHRoZSBgLXdl
YmtpdC11c2VyLXNlbGVjdDogbm9uZTtgIHByb3BlcnR5IGRvd24gaW50byB0aGUgbWVkaWEgY29u
dHJvbCBjaGlsZHJlbiwgaW5zdGVhZCBvZiBvbgorICAgICAgICBgLm1lZGlhLWNvbnRyb2xzYCBp
dHNlbGYuCisKKyAgICAgICAgKC5tZWRpYS1jb250cm9scyA+ICopOgorICAgICAgICAqIE1vZHVs
ZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL21lZGlhLWNvbnRyb2xsZXIuanM6CisgICAg
ICAgIChNZWRpYUNvbnRyb2xsZXIpOgorCisgICAgICAgIENoYW5nZSB0aGlzIHRvIGFzayBmb3Ig
YG1lZGlhQ29udHJvbHNDb250YWluZXJDbGFzc05hbWVgIGZyb20gdGhlIGhvc3QsIGluc3RlYWQg
b2YgaGFyZC1jb2RpbmcgaXQgdG8KKyAgICAgICAgIm1lZGlhLWNvbnRyb2xzLWNvbnRhaW5lciIu
IEZyb20gY29kZSBpbnNwZWN0aW9uLCB0aGVyZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGFueSBjb2Rl
cGF0aCB0aGF0IHBhc3NlcyBpbiBhbgorICAgICAgICB1bmRlZmluZWQgYGhvc3RgLCBleGNlcHQg
Zm9yIHRoZSBtb2Rlcm4gbWVkaWEgY29udHJvbHMgbGF5b3V0IHRlc3RzICh3aGljaCBzdGlsbCBw
YXNzIGFmdGVyIHRoaXMgYWRqdXN0bWVudCkuCisKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojppc0ltYWdlT3ZlcmxheVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnJlbW92ZUltYWdlT3ZlcmxheVNvb25J
Zk5lZWRlZCk6CisKKyAgICAgICAgQWRqdXN0IHRoZXNlIGhlbHBlciBtZXRob2RzIHRvIHdvcmsg
aW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGltYWdlIG92ZXJsYXkgY29udGFpbmVyIGlzIGhvc3RlZCB1
bmRlcm5lYXRoIHRoZSBtZWRpYQorICAgICAgICBjb250cm9scyBjb250YWluZXIuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFuY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheUludGVybmFsKToKKworICAgICAgICBJZiBuZWVkZWQs
IHJlbW92ZSB0aGUgaW1hZ2Ugb3ZlcmxheSB3aGVuIHNlZWtpbmcgb3IgcGxheWluZyBtZWRpYS4K
KwogMjAyMS0xMS0wOSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAg
ICAgICAgIEZpeCAhRU5BQkxFKEFDQ0VTU0lCSUxJVFkpIGFmdGVyIHIyODU0MjcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggY2RiMTk1NjVlNDI4YzNmMmIyYTRjYWExM2M0N2QwZWMwYTMwYjA1Ni4uOTUwZDY5MmY4ZTNm
OTMzOWU3MmI2ZTJlNmNhZDFiNjg4MWNmNmFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAor
MjAyMS0xMS0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZWZhY3RvciBzb21lIGltYWdlIG92ZXJsYXkgbG9naWMgdG8gd29yayB3aXRoIGJ1aWx0
LWluIG1lZGlhIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzI4OTkKKyAgICAgICAgcmRhcjovLzgzMTczNTk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQW50b2luZSBRdWludCBhbmQgVGltIEhvcnRvbi4KKworICAgICAgICBTZWUgV2Vi
Q29yZS9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFNoYXJlZC9pb3Mv
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKGNhbkF0dGVtcHRUZXh0
UmVjb2duaXRpb25Gb3JOb25JbWFnZUVsZW1lbnRzKToKKworICAgICAgICBBZGQgYSBuZXcgV2Vi
S2l0QWRkaXRpb25zIGludGVncmF0aW9uIHBvaW50LgorCisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRCZWdpbjpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OnNlbGVjdGlvblBv
c2l0aW9uSW5mb3JtYXRpb24pOgorCisgICAgICAgIEFkanVzdCBmb3IgdGhlIGNoYW5nZXMgdG8g
dGhlIGJ1aWx0LWluIG1lZGlhIGNvbnRyb2xzIHN0eWxlc2hlZXQgYnkgYWRkaW5nIGxvZ2ljIHRv
IHByZXZlbnQgdGhlIG1hZ25pZmllciBmcm9tCisgICAgICAgIHNob3dpbmcgdXAgd2hlbiBsb25n
IHByZXNzaW5nIChvciBsb25nIHByZXNzaW5nIGluc2lkZSkgdmlkZW8gZWxlbWVudHMgb24gaU9T
LgorCiAyMDIxLTExLTA5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OKHIyNzE3MzUpOiBQYXltZW50U2hpcHBpbmdPcHRpb24uc2VsZWN0ZWQg
aWdub3JlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L01lZGlhQ29udHJvbHNIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250
cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKaW5kZXggMWZjZGZmMDMzYmIxM2RmODY0NGI2NzU4
NGZjOTlkNGFkYzcwNTIyZS4uZWVmNzlkYmY1MDQ3YTc4NWFiODI0OWUzY2JlMTFkZTIxYzk5NzMz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlh
Q29udHJvbHNIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCkBAIC0xMzMsNiArMTMzLDEyIEBAIFN0cmluZyBNZWRp
YUNvbnRyb2xzSG9zdDo6bGF5b3V0VHJhaXRzQ2xhc3NOYW1lKCkgY29uc3QKICNlbmRpZgogfQog
Citjb25zdCBBdG9tU3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9zdDo6bWVkaWFDb250cm9sc0NvbnRh
aW5lckNsYXNzTmFtZSgpIGNvbnN0Cit7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBjbGFzc05hbWUoIm1lZGlhLWNvbnRyb2xzLWNvbnRhaW5l
ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICByZXR1cm4gY2xhc3NO
YW1lOworfQorCiBWZWN0b3I8UmVmUHRyPFRleHRUcmFjaz4+IE1lZGlhQ29udHJvbHNIb3N0Ojpz
b3J0ZWRUcmFja0xpc3RGb3JNZW51KFRleHRUcmFja0xpc3QmIHRyYWNrTGlzdCkKIHsKICAgICBp
ZiAoIW1fbWVkaWFFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAppbmRleCA3Y2MyYTU2NDFjZWUwNDM5
MTU0MGNiYWNlZTAxY2YyNGE2NWYzZjUyLi43ODA5YTE1MmVkNWMzZTdmOWIyMmRlMjcyNzJkNDBm
NzAyNDkwOWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
Y29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGZvcmNlZE9ubHlLZXl3b3JkKCk7CiAKICAgICBT
dHJpbmcgbGF5b3V0VHJhaXRzQ2xhc3NOYW1lKCkgY29uc3Q7CisgICAgY29uc3QgQXRvbVN0cmlu
ZyYgbWVkaWFDb250cm9sc0NvbnRhaW5lckNsYXNzTmFtZSgpIGNvbnN0OwogCiAgICAgZG91Ymxl
IGJyaWdodG5lc3MoKSBjb25zdCB7IHJldHVybiAxOyB9CiAgICAgdm9pZCBzZXRCcmlnaHRuZXNz
KGRvdWJsZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29u
dHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbAppbmRleCBlMjk4YzNkOWYxMDdjN2U3Njlm
NTlhMzY4NzY1NmM1ZDc0NDc2ZDAxLi45YzkwODRiNTVmM2JiZDY0ZTQ1MDAyMzliOGFkYzcwZjkz
ZGY1OTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMv
TWVkaWFDb250cm9sc0hvc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFj
b250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwKQEAgLTM1LDYgKzM1LDcgQEAgZW51bSBEZXZp
Y2VUeXBlIHsKICAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwKIF0gaW50ZXJmYWNlIE1lZGlh
Q29udHJvbHNIb3N0IHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxheW91dFRy
YWl0c0NsYXNzTmFtZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lZGlhQ29u
dHJvbHNDb250YWluZXJDbGFzc05hbWU7CiAgICAgYXR0cmlidXRlIGRvdWJsZSBicmlnaHRuZXNz
OwogCiAgICAgc2VxdWVuY2U8VGV4dFRyYWNrPiBzb3J0ZWRUcmFja0xpc3RGb3JNZW51KFRleHRU
cmFja0xpc3QgdHJhY2tMaXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2NvbnRyb2xzLWJhci5jc3MgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9jb250cm9scy1i
YXIuY3NzCmluZGV4IDI2M2QyZmFkOTNjNGFjM2E3NjM4MTcwOWM5OWU0NjA4M2Y0ZDJlM2EuLjA5
NjgyZTYzMzViODdmYjFhZmJkODk0M2Q1ZmJkNzFjNzQ5OGJlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2NvbnRyb2xz
LWJhci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvY29udHJvbHMtYmFyLmNzcwpAQCAtMjgsNCArMjgsNSBAQAogICAgIGN1cnNv
cjogZGVmYXVsdDsKICAgICBkaXJlY3Rpb246IGx0cjsKICAgICB3aWxsLWNoYW5nZTogei1pbmRl
eDsKKyAgICB6LWluZGV4OiAxOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWVkaWEt
Y29udHJvbHMuY3NzCmluZGV4IDkwZjQ5NGQ3MGQ4OTI4MTI1ZWY1MTBjYmQ5NzM4MWI5NWIzN2Mz
NWYuLmJjYWZlMDE5ODA0ZmZiY2UwMGIzNjliMDZkMGE3MjhmYjAxNTMyYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21l
ZGlhLWNvbnRyb2xzLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250cm9scy5jc3MKQEAgLTI0LDggKzI0LDcgQEAK
ICAqLwogCiA6aG9zdCB7Ci0gICAgLyogV2UgYWx3YXlzIHdhbnQgdG8gcHJldmVudCBpT1MgZGlh
bG9ncyBhbmQgdGhlIG1hZ25pZmllciBVSSB0byBiZSBzaG93bi4gKi8KLSAgICAtd2Via2l0LXVz
ZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7CisgICAgLyogV2UgYWx3YXlzIHdhbnQgdG8gYXZv
aWQgc2hvd2luZyB0aGUgY29udGV4dCBtZW51IG9uIGlPUy4gKi8KICAgICAtd2Via2l0LXRvdWNo
LWNhbGxvdXQ6IG5vbmUgIWltcG9ydGFudDsKIH0KIApAQCAtODIsNyArODEsNiBAQAogLm1lZGlh
LWNvbnRyb2xzIHsKICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1z
eXN0ZW07Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICB3aGl0ZS1zcGFjZTog
bm93cmFwOwogICAgIHRleHQtYWxpZ246IGluaXRpYWw7CiAgICAgdHJhbnNmb3JtLW9yaWdpbjog
MCAwOwpAQCAtOTMsNiArOTEsOCBAQAogfQogCiAubWVkaWEtY29udHJvbHMgPiAqIHsKKyAgICAv
KiBXZSBhbHdheXMgd2FudCB0byBhdm9pZCBzaG93aW5nIHRoZSB0ZXh0IHNlbGVjdGlvbiBtYWdu
aWZpZXIgb24gaU9TLiAqLworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgdHJh
bnNpdGlvbjogb3BhY2l0eSAwLjFzIGxpbmVhcjsKIH0KIApAQCAtMTI2LDQgKzEyNiw0IEBACiBA
bWVkaWEgKGludmVydGVkLWNvbG9ycykgewogICAgIDpob3N0IHsgZmlsdGVyOiBpbnZlcnQoMTAw
JSk7IH0gLyogV2ViS2l0IG5hdGl2ZSBhdWRpbyBhbmQgdmlkZW8uICovCiAgICAgcGljdHVyZSB7
IGZpbHRlcjogbm9uZTsgfSAvKiBEb24ndCBpbnZlcnQgdGhlIGNvbnRyb2wgYnV0dG9ucy4gKi8K
LX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVy
LmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEv
bWVkaWEtY29udHJvbGxlci5qcwppbmRleCA0YTA1NDg3MWQyMjMxZGEwODJjN2VhMGVkOGFjOWRl
NjU1ODA0ZjJmLi5hMmI3MGM0ZDZjN2ZiMGVmZWFhNWMwODkzYjZiNGFmZmIxZTljZWRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRp
YS9tZWRpYS1jb250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21lZGlhL21lZGlhLWNvbnRyb2xsZXIuanMKQEAgLTM3LDEyICszNywx
MiBAQCBjbGFzcyBNZWRpYUNvbnRyb2xsZXIKICAgICAgICAgdGhpcy5oYXNQbGF5ZWQgPSBmYWxz
ZTsKIAogICAgICAgICB0aGlzLmNvbnRhaW5lciA9IHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwotICAgICAgICB0aGlzLmNvbnRhaW5lci5jbGFz
c05hbWUgPSAibWVkaWEtY29udHJvbHMtY29udGFpbmVyIjsKIAogICAgICAgICB0aGlzLl91cGRh
dGVDb250cm9sc0lmTmVlZGVkKCk7CiAgICAgICAgIHRoaXMuX3VzZXNMVFJVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uID0gZmFsc2U7CiAKICAgICAgICAgaWYgKGhvc3QpIHsKKyAgICAgICAg
ICAgIHRoaXMuY29udGFpbmVyLmNsYXNzTmFtZSA9IGhvc3QubWVkaWFDb250cm9sc0NvbnRhaW5l
ckNsYXNzTmFtZTsKICAgICAgICAgICAgIGhvc3QuY29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZh
Y3RvciA9IHRoaXMubGF5b3V0VHJhaXRzLmNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3Io
KTsKICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmluc2VydEJlZm9yZShob3N0LnRleHRUcmFj
a0NvbnRhaW5lciwgdGhpcy5jb250cm9scy5lbGVtZW50KTsKICAgICAgICAgICAgIGlmIChob3N0
LmlzSW5NZWRpYURvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCAx
OWE1OWViNjQzM2M4ZTUwNTVmZWY4OGY1MmYwN2M4Y2YzYjI4NWQzLi4xNWE0MmJlY2Y0OTA0ZGUx
YjgzN2E4ZmI3ZTJkYjRjZjk0YzBhNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MT3B0aW9uRWxl
bWVudC5oIgpAQCAtNjEsNiArNjIsNyBAQAogI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYUNvbnRyb2xzSG9zdC5oIgogI2luY2x1
ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiUmVuZGVySW1hZ2UuaCIKQEAgLTEyNTAsNiArMTI1Miw5IEBAIHZvaWQgSFRNTEVsZW1lbnQ6
OnNldEVudGVyS2V5SGludChjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIHNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oZW50ZXJrZXloaW50QXR0ciwgdmFsdWUpOwogfQogCisvLyBG
SVhNRTogV2Ugc2hvdWxkIG1vdmUgYWxsIG9mIHRoaXMgaW1hZ2Ugb3ZlcmxheS1zcGVjaWZpYyBs
b2dpYyBvdXQgaW50byBhIHNlcGFyYXRlIGhlbHBlciBmaWxlIChwb3NzaWJseSBhcyBzdGFuZGFs
b25lIGZ1bmN0aW9ucykKKy8vIHRvIGJldHRlciBjb21wYXJ0bWVudGFsaXplIHRoaXMgY29kZS4K
Kwogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGltYWdlT3ZlcmxheUVsZW1lbnRJZGVudGlmaWVy
KCkKIHsKICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGlkZW50aWZpZXIoImltYWdlLW92ZXJsYXkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CkBAIC0xMzIzLDEwICsxMzI4LDggQEAgYm9vbCBIVE1MRWxlbWVudDo6aXNJbWFn
ZU92ZXJsYXlUZXh0KGNvbnN0IE5vZGUmIG5vZGUpCiAgICAgaWYgKCFob3N0KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8SFRN
TERpdkVsZW1lbnQ+KCpob3N0LT51c2VyQWdlbnRTaGFkb3dSb290KCkpKSB7Ci0gICAgICAgIGlm
IChjaGlsZC5nZXRJZEF0dHJpYnV0ZSgpID09IGltYWdlT3ZlcmxheUVsZW1lbnRJZGVudGlmaWVy
KCkpCi0gICAgICAgICAgICByZXR1cm4gbm9kZS5pc0Rlc2NlbmRhbnRPZihjaGlsZCk7Ci0gICAg
fQorICAgIGlmIChSZWZQdHIgb3ZlcmxheSA9IHN0YXRpY19jYXN0PFRyZWVTY29wZSY+KCpob3N0
LT51c2VyQWdlbnRTaGFkb3dSb290KCkpLmdldEVsZW1lbnRCeUlkKGltYWdlT3ZlcmxheUVsZW1l
bnRJZGVudGlmaWVyKCkpKQorICAgICAgICByZXR1cm4gbm9kZS5pc0Rlc2NlbmRhbnRPZigqb3Zl
cmxheSk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0xMzQ1LDE2ICsxMzQ4LDggQEAgdm9p
ZCBIVE1MRWxlbWVudDo6cmVtb3ZlSW1hZ2VPdmVybGF5U29vbklmTmVlZGVkKCkKICAgICAgICAg
aWYgKCFzaGFkb3dSb290KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIFJlZlB0cjxI
VE1MRGl2RWxlbWVudD4gY29udGFpbmVyVG9SZW1vdmU7Ci0gICAgICAgIGZvciAoYXV0byYgY2hp
bGQgOiBjaGlsZHJlbk9mVHlwZTxIVE1MRGl2RWxlbWVudD4oKnNoYWRvd1Jvb3QpKSB7Ci0gICAg
ICAgICAgICBpZiAoY2hpbGQuZ2V0SWRBdHRyaWJ1dGUoKSA9PSBpbWFnZU92ZXJsYXlFbGVtZW50
SWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAgICAgICAgY29udGFpbmVyVG9SZW1vdmUgPSAmY2hp
bGQ7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoY29udGFpbmVyVG9SZW1vdmUpCi0gICAgICAgICAgICBjb250YWluZXJUb1Jl
bW92ZS0+cmVtb3ZlKCk7CisgICAgICAgIGlmIChSZWZQdHIgb3ZlcmxheSA9IHN0YXRpY19jYXN0
PFRyZWVTY29wZSY+KCpzaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZChpbWFnZU92ZXJsYXlFbGVt
ZW50SWRlbnRpZmllcigpKSkKKyAgICAgICAgICAgIG92ZXJsYXktPnJlbW92ZSgpOwogCiAjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgICAgICBpZiAoYXV0byBwYWdlID0gcHJvdGVjdGVk
VGhpcy0+ZG9jdW1lbnQoKS5wYWdlKCkpCkBAIC0xMzk1LDEzICsxMzkwLDMzIEBAIHZvaWQgSFRN
TEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgVGV4dFJlY29n
bml0aW9uUmVzdWx0JiByCiAKICAgICBib29sIGhhZEV4aXN0aW5nVGV4dFJlY29nbml0aW9uRWxl
bWVudHMgPSBmYWxzZTsKICAgICBUZXh0UmVjb2duaXRpb25FbGVtZW50cyB0ZXh0UmVjb2duaXRp
b25FbGVtZW50czsKLQotICAgIGlmIChoYXNJbWFnZU92ZXJsYXkoKSkgewotICAgICAgICBmb3Ig
KGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8SFRNTERpdkVsZW1lbnQ+KCp1c2VyQWdlbnRT
aGFkb3dSb290KCkpKSB7Ci0gICAgICAgICAgICBpZiAoY2hpbGQuZ2V0SWRBdHRyaWJ1dGUoKSA9
PSBpbWFnZU92ZXJsYXlFbGVtZW50SWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAgICAgICAgdGV4
dFJlY29nbml0aW9uRWxlbWVudHMucm9vdCA9ICZjaGlsZDsKLSAgICAgICAgICAgICAgICBoYWRF
eGlzdGluZ1RleHRSZWNvZ25pdGlvbkVsZW1lbnRzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1lZGlhQ29udHJvbHNDb250YWluZXI7Cisg
ICAgaWYgKFJlZlB0ciBzaGFkb3dSb290ID0gdGhpcy0+c2hhZG93Um9vdCgpKSB7CisjaWYgRU5B
QkxFKE1PREVSTl9NRURJQV9DT05UUk9MUykKKyAgICAgICAgaWYgKGlzPEhUTUxNZWRpYUVsZW1l
bnQ+KCp0aGlzKSkgeworICAgICAgICAgICAgaWYgKFJlZlB0ciBjb250cm9sc0hvc3QgPSBkb3du
Y2FzdDxIVE1MTWVkaWFFbGVtZW50PigqdGhpcykubWVkaWFDb250cm9sc0hvc3QoKSkgeworICAg
ICAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckNsYXNzID0gY29udHJvbHNIb3N0LT5tZWRpYUNv
bnRyb2xzQ29udGFpbmVyQ2xhc3NOYW1lKCk7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBj
aGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEhUTUxEaXZFbGVtZW50Pigqc2hhZG93Um9vdCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLmhhc0NsYXNzKCkgJiYgY2hpbGQuY2xhc3NOYW1l
cygpLmNvbnRhaW5zKGNvbnRhaW5lckNsYXNzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bWVkaWFDb250cm9sc0NvbnRhaW5lciA9ICZjaGlsZDsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgaWYgKGhhc0ltYWdlT3ZlcmxheSgp
KSB7CisgICAgICAgICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gY29udGFpbmVyRm9ySW1hZ2VP
dmVybGF5OworICAgICAgICAgICAgaWYgKG1lZGlhQ29udHJvbHNDb250YWluZXIpCisgICAgICAg
ICAgICAgICAgY29udGFpbmVyRm9ySW1hZ2VPdmVybGF5ID0gbWVkaWFDb250cm9sc0NvbnRhaW5l
cjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjb250YWluZXJGb3JJbWFnZU92
ZXJsYXkgPSBzaGFkb3dSb290OworICAgICAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxk
cmVuT2ZUeXBlPEhUTUxEaXZFbGVtZW50PigqY29udGFpbmVyRm9ySW1hZ2VPdmVybGF5KSkgewor
ICAgICAgICAgICAgICAgIGlmIChjaGlsZC5nZXRJZEF0dHJpYnV0ZSgpID09IGltYWdlT3Zlcmxh
eUVsZW1lbnRJZGVudGlmaWVyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dFJlY29nbml0
aW9uRWxlbWVudHMucm9vdCA9ICZjaGlsZDsKKyAgICAgICAgICAgICAgICAgICAgaGFkRXhpc3Rp
bmdUZXh0UmVjb2duaXRpb25FbGVtZW50cyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KQEAgLTE0NTcsNyArMTQ3MiwxMSBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoVGV4
dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFRleHRSZWNvZ25pdGlvblJlc3VsdCYgcgogICAgICAg
ICByb290Q29udGFpbmVyLT5zZXRJZEF0dHJpYnV0ZShpbWFnZU92ZXJsYXlFbGVtZW50SWRlbnRp
ZmllcigpKTsKICAgICAgICAgaWYgKGRvY3VtZW50KCkuaXNJbWFnZURvY3VtZW50KCkpCiAgICAg
ICAgICAgICByb290Q29udGFpbmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5
V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVUZXh0KTsKLSAgICAgICAgc2hhZG93Um9vdC0+YXBw
ZW5kQ2hpbGQocm9vdENvbnRhaW5lcik7CisKKyAgICAgICAgaWYgKG1lZGlhQ29udHJvbHNDb250
YWluZXIpCisgICAgICAgICAgICBtZWRpYUNvbnRyb2xzQ29udGFpbmVyLT5hcHBlbmRDaGlsZChy
b290Q29udGFpbmVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2hhZG93Um9vdC0+YXBw
ZW5kQ2hpbGQocm9vdENvbnRhaW5lcik7CiAgICAgICAgIHRleHRSZWNvZ25pdGlvbkVsZW1lbnRz
LnJvb3QgPSByb290Q29udGFpbmVyLmNvcHlSZWYoKTsKICAgICAgICAgdGV4dFJlY29nbml0aW9u
RWxlbWVudHMubGluZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyZXN1bHQubGluZXMuc2l6ZSgp
KTsKICAgICAgICAgZm9yIChhdXRvJiBsaW5lIDogcmVzdWx0LmxpbmVzKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAzNDVhN2UzMTAyNTEwNmM2ZWIwNDRm
YmYyMzgyYjc2YTA0YjA0NmQ4Li4wMzkwNzcxZGJhY2QyYTcwYzc3MjU4MzFiMDEwZDU4MTRhN2Vj
OTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTMxMzAs
NiArMzEzMCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFuY2UoY29u
c3QgTWVkaWFUaW1lJiBpblRpbWUsIGNvbnN0IE1lZGlhVGltCiAKICAgICBpZiAocHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgbWVkaWFTZXNzaW9uKCkucmVtb3ZlQmVo
YXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVU
b0NvbnRyb2xDb250cm9sc01hbmFnZXIpOworCisgICAgcmVtb3ZlSW1hZ2VPdmVybGF5U29vbklm
TmVlZGVkKCk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vla1Rhc2soKQpAQCAtMzcx
Myw2ICszNzE1LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwoKQogCiAg
ICAgbV9hdXRvcGxheWluZyA9IGZhbHNlOwogICAgIHVwZGF0ZVBsYXlTdGF0ZSgpOworCisgICAg
cmVtb3ZlSW1hZ2VPdmVybGF5U29vbklmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6cGF1c2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3Mv
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAppbmRleCA5OGRlMzkzYWY2MDVkOGU4
ZTI5YWMxODQ4NWUyYzQzZjE1ZjRiODgxLi44OGMyNTAwNjFmNGNiMzg0MDY1ZGEwMTVkNWVkYjdj
ODMwNjY0ZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3Mv
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaApAQCAtNTksNiArNTksNyBAQCBzdHJ1
Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gewogICAgICAgICBVbnNlbGVjdGFi
bGVEdWVUb0ZvY3VzYWJsZUVsZW1lbnQsCiAgICAgICAgIFVuc2VsZWN0YWJsZUR1ZVRvTGFyZ2VF
bGVtZW50Qm91bmRzLAogICAgICAgICBVbnNlbGVjdGFibGVEdWVUb1VzZXJTZWxlY3ROb25lLAor
ICAgICAgICBVbnNlbGVjdGFibGVEdWVUb01lZGlhQ29udHJvbHMsCiAgICAgfTsKICAgICBTZWxl
Y3RhYmlsaXR5IHNlbGVjdGFiaWxpdHkgeyBTZWxlY3RhYmlsaXR5OjpTZWxlY3RhYmxlIH07CiAK
QEAgLTEzMiw3ICsxMzMsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OlNlbGVjdGFiaQogICAgICAgICBXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpTZWxlY3RhYmlsaXR5OjpTZWxl
Y3RhYmxlLAogICAgICAgICBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
OjpTZWxlY3RhYmlsaXR5OjpVbnNlbGVjdGFibGVEdWVUb0ZvY3VzYWJsZUVsZW1lbnQsCiAgICAg
ICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OlNlbGVjdGFiaWxp
dHk6OlVuc2VsZWN0YWJsZUR1ZVRvTGFyZ2VFbGVtZW50Qm91bmRzLAotICAgICAgICBXZWJLaXQ6
OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpTZWxlY3RhYmlsaXR5OjpVbnNlbGVj
dGFibGVEdWVUb1VzZXJTZWxlY3ROb25lCisgICAgICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb246OlNlbGVjdGFiaWxpdHk6OlVuc2VsZWN0YWJsZUR1ZVRvVXNlclNl
bGVjdE5vbmUsCisgICAgICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b246OlNlbGVjdGFiaWxpdHk6OlVuc2VsZWN0YWJsZUR1ZVRvTWVkaWFDb250cm9scwogICAgID47
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBhODU1MmRjYThiODk4NDcwZjYwYmIyZTdhZTc1Njg5
YjBmMzY0Yjc3Li4zOTQzOGJmMWQ3NTUzMTk0NTY2MDQwMjA1NTAwYmI3NDhlMTJjMzkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KQEAgLTIyNiw2ICsyMjYsMTkgQEAgQGVuZAogCiAjZW5kaWYgLy8gRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQg
PFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnMubW0+Cisj
ZWxzZQorCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorc3RhdGljIGJvb2wgY2FuQXR0ZW1w
dFRleHRSZWNvZ25pdGlvbkZvck5vbkltYWdlRWxlbWVudHMoY29uc3QgV2ViS2l0OjpJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYgaW5mb3JtYXRpb24sIGNvbnN0IFdlYktpdDo6V2Vi
UHJlZmVyZW5jZXMmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTEwMTg3LDcgKzEw
MjAwLDcgQEAgLSAodm9pZClpbWFnZUFuYWx5c2lzR2VzdHVyZURpZEJlZ2luOihXS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmUKICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICBib29sIHNob3VsZEFuYWx5emVJbWFnZUF0TG9jYXRpb24gPSAoWyZdIHsKLSAgICAg
ICAgICAgIGlmICghaW5mb3JtYXRpb24uaXNJbWFnZSkKKyAgICAgICAgICAgIGlmICghaW5mb3Jt
YXRpb24uaXNJbWFnZSAmJiAhY2FuQXR0ZW1wdFRleHRSZWNvZ25pdGlvbkZvck5vbkltYWdlRWxl
bWVudHMoaW5mb3JtYXRpb24sIHN0cm9uZ1NlbGYtPl9wYWdlLT5wcmVmZXJlbmNlcygpKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIGlmICghaW5mb3JtYXRp
b24uaW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCmluZGV4IGRhOTZmMjE4MDQ2ZGNkNDE3ZGYyYTY4NmE0ZmZlMmE3NzI5OTMx
MTAuLmE5NzE1ZGUzNDAxYTQwZTBiZThkNzhjY2EyNmFjMWI1MmY5MDgyNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0y
OTQwLDYgKzI5NDAsOSBAQCBzdGF0aWMgdm9pZCBzZWxlY3Rpb25Qb3NpdGlvbkluZm9ybWF0aW9u
KFdlYlBhZ2UmIHBhZ2UsIGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYQogICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBJcyB0aGlzIGhldXJpc3RpYyBzdGlsbCBuZWVkZWQsIG5vdyB0aGF0IGJsb2Nr
IHNlbGVjdGlvbiBoYXMgYmVlbiByZW1vdmVkPwogICAgICAgICAgICAgICAgIHJldHVybiBJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6U2VsZWN0YWJpbGl0eTo6VW5zZWxlY3RhYmxl
RHVlVG9MYXJnZUVsZW1lbnRCb3VuZHM7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlm
IChob3N0VmlkZW9FbGVtZW50SWdub3JpbmdJbWFnZU92ZXJsYXkoKmhpdE5vZGUpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6U2VsZWN0
YWJpbGl0eTo6VW5zZWxlY3RhYmxlRHVlVG9NZWRpYUNvbnRyb2xzOwogICAgICAgICB9CiAKICAg
ICAgICAgcmV0dXJuIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpTZWxlY3RhYmls
aXR5OjpTZWxlY3RhYmxlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkwNjIyMDFiNDBjMjhmZWU3MzhkNGJiODkyZTdiMzk0
YWFjM2VjNTYuLjhhODQzYTJlOWNmZTI5MTViZjA3NjYzNTc1NjU5MzgyNDE0MDYwYWIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMS0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBzb21lIGltYWdlIG92ZXJsYXkgbG9naWMg
dG8gd29yayB3aXRoIGJ1aWx0LWluIG1lZGlhIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4OTkKKyAgICAgICAgcmRhcjovLzgzMTcz
NTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50b2luZSBRdWludCBhbmQgVGltIEhvcnRvbi4K
KworICAgICAgICBBZGp1c3QgYSBtb2Rlcm4gbWVkaWEgY29udHJvbHMgdGVzdCwgc3VjaCB0aGF0
IGl0IG5vIGxvbmdlciB2ZXJpZmllcyB0aGF0IHRoZSBgLXdlYmtpdC11c2VyLXNlbGVjdGAgQ1NT
IHByb3BlcnR5CisgICAgICAgIGlzIG5vbmUgb24gYW4gYXVkaW8gZWxlbWVudDsgaW4gbGlldSBv
ZiB0aGlzLCB3ZSBhZGQgYSBuZXcgbGF5b3V0IHRlc3QgaW4gYGVkaXRpbmcvc2VsZWN0aW9uYCB0
byB2ZXJpZnkgdGhhdAorICAgICAgICBsb25nIHByZXNzaW5nIG92ZXIgdGhlIHRpbWVzdGFtcCBv
ZiBhbiBhdWRpbyBlbGVtZW50IGRvZXMgbm90IHRyaWdnZXIgdGV4dCBzZWxlY3Rpb24uCisKKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9pb3MvZG8tbm90LWFsbG93LXRleHQtc2VsZWN0aW9u
LWluLWF1ZGlvLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L3NlbGVjdGlvbi9pb3MvZG8tbm90LWFsbG93LXRleHQtc2VsZWN0aW9uLWluLWF1ZGlvLWVsZW1l
bnQuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2F1
ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxlcy5odG1sOgor
CiAyMDIxLTExLTA5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OKHIyNzE3MzUpOiBQYXltZW50U2hpcHBpbmdPcHRpb24uc2VsZWN0ZWQgaWdu
b3JlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2RvLW5v
dC1hbGxvdy10ZXh0LXNlbGVjdGlvbi1pbi1hdWRpby1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ctdGV4dC1zZWxlY3Rp
b24taW4tYXVkaW8tZWxlbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzdhODgyZWE1ZTVh
MWEwZWM0NzdjZWQzNDJiOTY2OTY4YjQ5YjgxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ctdGV4dC1zZWxlY3Rpb24taW4t
YXVkaW8tZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IHZl
cmlmaWVzIHRoYXQgbG9uZyBwcmVzc2luZyB0aGUgdGltZXN0YW1wIGluIGFuIGF1ZGlvIGVsZW1l
bnQgZG9lcyBub3Qgc3RhcnQgYSB0ZXh0IHNlbGVjdGlvbi4gVG8gbWFudWFsbHkgcnVuIHRoZSB0
ZXN0LCBsb25nIHByZXNzIHRoZSBhdWRpbyBlbGVtZW50IGJlbG93IGFuZCB2ZXJpZnkgdGhhdCBu
byB0ZXh0IGlzIHNlbGVjdGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByZWN0cy5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2lvcy9kby1ub3QtYWxsb3ctdGV4dC1zZWxlY3Rpb24taW4tYXVkaW8tZWxlbWVudC5odG1sIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2RvLW5vdC1hbGxvdy10ZXh0LXNlbGVj
dGlvbi1pbi1hdWRpby1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEwNWMwY2ZjZGU4ZTdjY2Jk
M2M5NWNmY2JlN2U0YmM2NTNmN2U4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2lvcy9kby1ub3QtYWxsb3ctdGV4dC1zZWxlY3Rpb24taW4tYXVkaW8t
ZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFs
LXNjYWxlPTEiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGxvbmcgcHJlc3NpbmcgdGhlIHRpbWVzdGFt
cCBpbiBhbiBhdWRpbyBlbGVtZW50IGRvZXMgbm90IHN0YXJ0IGEgdGV4dCBzZWxlY3Rpb24uIFRv
IG1hbnVhbGx5IHJ1biB0aGUgdGVzdCwgbG9uZyBwcmVzcyB0aGUgYXVkaW8gZWxlbWVudCBiZWxv
dyBhbmQgdmVyaWZ5IHRoYXQgbm8gdGV4dCBpcyBzZWxlY3RlZC4iKTsKK2FkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICByZXR1cm47CisKKyAgICBjb25zdCBhdWRpb0VsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJhdWRpbyIpOworICAgIGxldCB0aW1lTGFiZWw7CisgICAgZm9yIChsZXQgbGFiZWwg
b2YgQXJyYXkuZnJvbShpbnRlcm5hbHMuc2hhZG93Um9vdChhdWRpb0VsZW1lbnQpLnF1ZXJ5U2Vs
ZWN0b3JBbGwoImRpdi50aW1lLWxhYmVsIikpKSB7CisgICAgICAgIGlmIChnZXRDb21wdXRlZFN0
eWxlKGxhYmVsKS5kaXNwbGF5ICE9PSAibm9uZSIpCisgICAgICAgICAgICB0aW1lTGFiZWwgPSBs
YWJlbDsKKyAgICB9CisKKyAgICBjb25zdCB0YXJnZXRYID0gKGF1ZGlvRWxlbWVudC5vZmZzZXRM
ZWZ0ICsgdGltZUxhYmVsLm9mZnNldExlZnQpICsgdGltZUxhYmVsLm9mZnNldFdpZHRoIC8gMjsK
KyAgICBjb25zdCB0YXJnZXRZID0gKGF1ZGlvRWxlbWVudC5vZmZzZXRUb3AgKyB0aW1lTGFiZWwu
b2Zmc2V0VG9wKSArIHRpbWVMYWJlbC5vZmZzZXRIZWlnaHQgLyAyOworICAgIGF3YWl0IFVJSGVs
cGVyLmxvbmdQcmVzc0F0UG9pbnQodGFyZ2V0WCwgdGFyZ2V0WSk7CisgICAgcmVjdHMgPSBhd2Fp
dCBVSUhlbHBlci5nZXRVSVNlbGVjdGlvblZpZXdSZWN0cygpOworCisgICAgc2hvdWxkQmUoInJl
Y3RzLmxlbmd0aCIsICIwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8YXVkaW8gY29udHJvbHMgc3JjPSIuLi8uLi8uLi9tZWRpYS9jb250
ZW50L2F1ZGlvLXRyYWNrcy5tcDQiPjwvYXVkaW8+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYXVkaW8vYXVkaW8tY29u
dHJvbHMtc3R5bGVzLWV4cGVjdGVkLnR4dAppbmRleCA1MTkzZjdkYzM5MDA1MjIxMjM2MjZiYmJh
MGRhMDYxOWYyODk4MDJkLi5iZjQ3NGY5NTYxNGQ5Mzc4NmYzNjgzYThkYzcyNjIxMDk0OWIyNmRk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYXVk
aW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYXVkaW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLWV4
cGVjdGVkLnR4dApAQCAtMyw3ICszLDYgQEAgVGVzdGluZyBtZWRpYSBlbGVtZW50cyBkaXNhYmxl
IGJ1aWx0LWluIGJyb3dzZXIgVUkgZmVhdHVyZXMgdG8gY29weSBjb250ZW50LgogT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShhdWRpbykuV2Via2l0
VXNlclNlbGVjdCBpcyAibm9uZSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShhdWRpbykuV2Via2l0
VG91Y2hDYWxsb3V0IGlzICJub25lIgogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYXVk
aW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvYXVkaW8vYXVkaW8tY29udHJvbHMtc3R5bGVzLmh0bWwKaW5kZXggNTYy
ZWE1NDkwOGU0YTFmYWQ3MmMzYzc0MDRlOGE3YjMwNGQwY2I2Mi4uOTIzMzUyMGY0ZTc0ODdiYTIy
ZmQyNjBiZjZiNGMwZWRiOGZkZmZhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2F1ZGlvL2F1ZGlvLWNvbnRyb2xzLXN0eWxlcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9hdWRpby9hdWRpby1jb250
cm9scy1zdHlsZXMuaHRtbApAQCAtOCw3ICs4LDYgQEAgZGVzY3JpcHRpb24oIlRlc3RpbmcgbWVk
aWEgZWxlbWVudHMgZGlzYWJsZSBidWlsdC1pbiBicm93c2VyIFVJIGZlYXR1cmVzIHRvIGNvcHkK
IGNvbnN0IGF1ZGlvID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJhdWRpbyIpKTsKIGF1ZGlvLmNvbnRyb2xzID0gdHJ1ZTsKIAotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJnZXRDb21wdXRlZFN0eWxlKGF1ZGlvKS5XZWJraXRVc2VyU2VsZWN0IiwgIm5v
bmUiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q29tcHV0ZWRTdHlsZShhdWRpbykuV2Vi
a2l0VG91Y2hDYWxsb3V0IiwgIm5vbmUiKTsKIAogZGVidWcoIiIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>