<?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>234849</bug_id>
          
          <creation_ts>2022-01-04 09:33:00 -0800</creation_ts>
          <short_desc>Remove the `PreferInlineTextSelectionInImages` internal feature flag</short_desc>
          <delta_ts>2022-04-23 22:54:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>hi</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1827975</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-01-04 09:33:00 -0800</bug_when>
    <thetext>This was introduced in r279164 as a mitigation against the power use implications of inline text selection with Live Text on non-ANE Macs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829828</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-11 09:33:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/87403606&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846845</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-28 17:18:07 -0800</bug_when>
    <thetext>Not to be fixed, since this is now used by at least one platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863933</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-23 15:49:15 -0700</bug_when>
    <thetext>...back to being no longer used by any platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863936</commentid>
    <comment_count>4</comment_count>
      <attachid>458224</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-23 16:49:58 -0700</bug_when>
    <thetext>Created attachment 458224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863937</commentid>
    <comment_count>5</comment_count>
      <attachid>458224</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-23 17:33:54 -0700</bug_when>
    <thetext>Comment on attachment 458224
Patch

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

Thanks for the review!

&gt; Source/WebKit/ChangeLog:14
&gt; +        ultimately deemed unnecessary in macOS 15.

(Oops — I clearly meant macOS 12 here!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863938</commentid>
    <comment_count>6</comment_count>
      <attachid>458225</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-23 17:41:33 -0700</bug_when>
    <thetext>Created attachment 458225
For landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863939</commentid>
    <comment_count>7</comment_count>
      <attachid>458226</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-23 18:11:45 -0700</bug_when>
    <thetext>Created attachment 458226
For landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863944</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-23 20:47:01 -0700</bug_when>
    <thetext>Committed r293299 (249924@main): &lt;https://commits.webkit.org/249924@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458226.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458224</attachid>
            <date>2022-04-23 16:49:58 -0700</date>
            <delta_ts>2022-04-23 17:32:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234849-20220423164957.patch</filename>
            <type>text/plain</type>
            <size>45619</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMwYTZkYzU4NjcyYzk4ODZhZjkyNzU5
OTI4ZjVkNmYzYjJjZTYwZTcuLmRjYTQwOTI4ZjI0M2Y4MDhhYjExMzU3NjI4YjU2ZTYxMjEwMTBi
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDQtMjMgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBgUHJlZmVySW5saW5lVGV4
dFNlbGVjdGlvbkluSW1hZ2VzYCBpbnRlcm5hbCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDg0OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBXZWJLaXQvQ2hhbmdlTG9nIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzSW50ZXJuYWwueWFtbDoKKwogMjAyMi0wNC0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtXVEZdIEFkZCBzdHJpbmcgY29uY2F0ZW5hdGUgYWRh
cHRlciBmb3IgVVVJRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg5ZDY5NmEzODMxYjY4ZjQ0MzIyZGQ5NjY4OWQx
MDM0OWY2MzY0NTMuLjVkOWNhOWJjZTYzYzUxYTE1YjA0YThjODA2ZDBjYjFjYTllYjljMWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMi0wNC0yMyAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIGBQcmVmZXJJbmxpbmVU
ZXh0U2VsZWN0aW9uSW5JbWFnZXNgIGludGVybmFsIGZlYXR1cmUgZmxhZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0ODQ5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYktpdC9DaGFuZ2VMb2cg
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmlu
Z3M6CisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJsZUlmTmVl
ZGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNW
YWxpZENvbnRleHRNZW51QWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2VGb3JUZXh0U2VsZWN0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9v
a0ltYWdlRm9yVmlzdWFsU2VhcmNoKTogRGVsZXRlZC4KKwogMjAyMi0wNC0yMiAgQWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIEJveFRy
ZWUgc2hvdWxkIGJlIGFibGUgdG8gYnVpbGQgbm9uLWlubGluZSBjb250ZW50IHRyZWUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZTE0OGIzNjA1ZjEzNTlhYzc4MzM5NGM5ZTgxNWY4OTNjNGU0OTk3Yy4uNTBlN2Q1NDg5
M2NjMGUwNTgwOTNlOTQ0YzYzOWIzMjQ5ZTlhODQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBA
QAorMjAyMi0wNC0yMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmUgdGhlIGBQcmVmZXJJbmxpbmVUZXh0U2VsZWN0aW9uSW5JbWFnZXNgIGlu
dGVybmFsIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM0ODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCByZXZlcnRzIHIyNzkxNjQsIHdoaWNoIGludHJvZHVjZWQg
YW4gaW50ZXJuYWwgZmVhdHVyZSB0byBhdm9pZCBMaXZlIFRleHQgYW5hbHlzaXMgd2hlbiBob3Zl
cmluZyBvdmVyCisgICAgICAgIGltYWdlcywgYW5kIGluc3RlYWQgYWRkZWQgYSBuZXcgY29udGV4
dCBtZW51IGl0ZW0gdG8gcmV2ZWFsIHNlbGVjdGFibGUgdGV4dCBpbiB0aGUgaW1hZ2UgYnkgbGF1
bmNoaW5nIHRoZQorICAgICAgICBRdWlja0xvb2sgcGFuZWwgaW4gTGl2ZSBUZXh0IG1vZGUuCisK
KyAgICAgICAgVGhpcyBhbHRlcm5hdGUgTGl2ZSBUZXh0IGV4cGVyaWVuY2Ugd2FzIG9yaWdpbmFs
bHkgZGV2aXNlZCBhcyBhIHdheSB0byBtaXRpZ2F0ZSB0aGUgcG93ZXIgYW5kIHBlcmZvcm1hbmNl
IGltcGFjdAorICAgICAgICBvZiBwYXNzaXZlbHkgdHJpZ2dlcmluZyBMaXZlIFRleHQgYW5hbHlz
aXMgd2hlbiBob3ZlcmluZyBvdmVyIGltYWdlcyBvbiBwcmUtTTEgZGV2aWNlcywgYnV0IHRoaXMg
bWl0aWdhdGlvbiB3YXMKKyAgICAgICAgdWx0aW1hdGVseSBkZWVtZWQgdW5uZWNlc3NhcnkgaW4g
bWFjT1MgMTUuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKFdlYktpdDo6dG9JbXBsKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvUXVpY2tMb29rUHJldmlld0FjdGl2aXR5Lmg6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnQ6OmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dE1lbnVQcm94eTo6cXVpY2tMb29rUHJldmlld0FjdGl2aXR5IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyk6
IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIubW06Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjptZW51SXRlbUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVu
dVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21JdGVtcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRNZW51UHJveHlNYWM6Omluc2VydE9yVXBkYXRlUXVpY2tMb29rSW1hZ2VJdGVtKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6dXBkYXRl
UXVpY2tMb29rQ29udGV4dE1lbnVJdGVtVGl0bGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmhhbmRsZUNvbnRleHRNZW51TG9va1VwSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51UXVpY2tMb29rSW1hZ2UpOiBEZWxldGVkLgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIyLTA0LTIyICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIGAt
c2VsZWN0V29yZEZvclJlcGxhY2VtZW50YCBzaG91bGQgc2VsZWN0IGRpY3RhdGlvbiBhbHRlcm5h
dGl2ZXMgdGhhdCBzcGFuIG11bHRpcGxlIHdvcmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
aW5kZXggYTgwMDc1MzNmYWIxMDBhMmM0N2NiY2M5MmE1N2UzNjAyZDdhMjNiNi4uZWQxY2Y0MjYx
YmE4MDljMDYxZDc1YmIxM2UxMTk1NzkzNGU4MGI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTA0LTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgYFByZWZlcklubGluZVRleHRT
ZWxlY3Rpb25JbkltYWdlc2AgaW50ZXJuYWwgZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4NDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViS2l0L0NoYW5nZUxvZyBmb3Ig
bW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAg
ICAgKHRvVGFnKToKKwogMjAyMi0wNC0yMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgWFNTIEF1ZGl0b3I6IFBhcnQgNCAoU2V0dGluZ3MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJ
bnRlcm5hbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWwueWFtbAppbmRleCBlMzk4ZDRlMTNmNzIyOGYxY2Q3NmFiY2M2MjExOWU0YzI3
NjcwZjk1Li5lNWQ3N2ExZTViYWIwOGQxODY2YmQ1YzU5YWVjNGI0NzI4NTIzOGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5h
bC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0ludGVybmFsLnlhbWwKQEAgLTczMSwyMiArNzMxLDYgQEAgUHJlZmVyRmFzdGVyQ2xpY2tPdmVy
RG91YmxlVGFwOgogICAgICAgIlBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShXQVRD
SE9TKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLVByZWZlcklubGluZVRleHRTZWxl
Y3Rpb25JbkltYWdlczoKLSAgdHlwZTogYm9vbAotICBodW1hblJlYWRhYmxlTmFtZTogIklubGlu
ZSBUZXh0IFNlbGVjdGlvbiBpbiBJbWFnZXMiCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IlByZWZlciBpbmxpbmUgdGV4dCBzZWxlY3Rpb24gaW4gaW1hZ2VzIG92ZXIgdXNpbmcgdGhlIGNv
bnRleHQgbWVudSIKLSAgY29uZGl0aW9uOiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gIGRlZmF1
bHRWYWx1ZToKLSAgICBXZWJDb3JlOgotICAgICAgIkhBVkUoVUlLSVRfV0VCS0lUX0lOVEVSTkFM
UykiOiBmYWxzZQotICAgICAgZGVmYXVsdDogdHJ1ZQotICAgIFdlYktpdExlZ2FjeToKLSAgICAg
ICJIQVZFKFVJS0lUX1dFQktJVF9JTlRFUk5BTFMpIjogZmFsc2UKLSAgICAgIGRlZmF1bHQ6IHRy
dWUKLSAgICBXZWJLaXQ6Ci0gICAgICAiSEFWRShVSUtJVF9XRUJLSVRfSU5URVJOQUxTKSI6IGZh
bHNlCi0gICAgICBkZWZhdWx0OiB0cnVlCi0KIFByZWZlclNhbmRib3hlZE1lZGlhUGFyc2luZzoK
ICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIlByZWZlciBTYW5kYm94ZWQgUGFy
c2luZyBvZiBNZWRpYSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2Fs
aXphYmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJp
bmdzCmluZGV4IDhhZTg1MzE5YWZiNTZmMjNjYmMxNzBmMmQ3ZGMxMmY3NDA1NDVjY2IuLmQ3YmE2
ZmUyMzk5OGQ2YTU1MDU5NjBhNjhkN2RhZDhlMjZkNjMwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUv
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtNjIyLDkgKzYyMiw2IEBACiAvKiBMb29r
IFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0gKi8KICJMb29rIFVwIGluIERpY3Rp
b25hcnkiID0gIkxvb2sgVXAgaW4gRGljdGlvbmFyeSI7CiAKLS8qIFRpdGxlIGZvciBRdWljayBM
b29rIGFjdGlvbiBidXR0b24gZm9yIGltYWdlcyB3aXRoIHZpc3VhbCBzZWFyY2ggcmVzdWx0cyAq
LwotIkxvb2sgVXAgaW4gUXVpY2sgTG9vayIgPSAiTG9vayBVcCBpbiBRdWljayBMb29rIjsKLQog
LyogTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVkIHdvcmQgKi8KICJMb29r
IFVwIOKAnCVA4oCdIiA9ICJMb29rIFVwIOKAnCVA4oCdIjsKIApAQCAtODAyLDkgKzc5OSw2IEBA
CiAvKiBUaXRsZSBmb3IgZmlsZSB1cGxvYWQgcHJvZ3Jlc3MgdmlldyAqLwogIlByZXBhcmluZyAo
ZmlsZSB1cGxvYWQpIiA9ICJQcmVwYXJpbmfigKYiOwogCi0vKiBUaXRsZSBmb3IgUXVpY2sgTG9v
ayBhY3Rpb24gYnV0dG9uICovCi0iUXVpY2sgTG9vayIgPSAiUXVpY2sgTG9vayI7Ci0KIC8qIFVu
ZG8gYWN0aW9uIG5hbWUgKi8KICJSYWlzZSBCYXNlbGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiID0g
IlJhaXNlIEJhc2VsaW5lIjsKIApAQCAtODQ3LDkgKzg0MSw2IEBACiAvKiBTZWFyY2ggd2l0aCBz
ZWFyY2ggcHJvdmlkZXIgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBwcm92aWRlciBuYW1lIGluc2Vy
dGVkICovCiAiU2VhcmNoIHdpdGggJUAiID0gIlNlYXJjaCB3aXRoICVAIjsKIAotLyogVGl0bGUg
Zm9yIFF1aWNrIExvb2sgYWN0aW9uIGJ1dHRvbiBmb3IgaW1hZ2VzIHdpdGggdGV4dCAqLwotIlNl
bGVjdCBUZXh0IGluIFF1aWNrIExvb2siID0gIlNlbGVjdCBUZXh0IGluIFF1aWNrIExvb2siOwot
CiAvKiBWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZpbGUgaW5wdXRzIHRoYXQgaGF2
ZSBubyB2YWx1ZSAqLwogIlNlbGVjdCBhIGZpbGUiID0gIlNlbGVjdCBhIGZpbGUiOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggZDcxYzNm
Nzg0YjJlZmNiM2ExZTI3NjQ2YTRlZGFkMjkwN2U0NzRhYi4uZDdiNGNjOGUzZWRjYjAyYWU1OTdl
NzI3YTBkY2Q2N2RiYzA0MDgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcApAQCAtNTI3LDcgKzUyNyw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24s
IGNvCiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5hcHBseURpY3RhdGlvbkFsdGVybmF0aXZlKHRp
dGxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5Q3Jv
cHBlZEltYWdlOgotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U6Cisg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKICAgICAgICAgLy8gVGhlc2Ug
c2hvdWxkIGJlIGhhbmRsZWQgYXQgdGhlIGNsaWVudCBsYXllci4KICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwpAQCAtODM2LDYgKzgzNiw5IEBAIHZvaWQgQ29u
dGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgQ29udGV4dE1lbnVJdGVtIFNlbGVj
dEFsbEl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsLCBjb250ZXh0
TWVudUl0ZW1UYWdTZWxlY3RBbGwoKSk7CiAgICAgQ29udGV4dE1lbnVJdGVtIEluc2VydEVtb2pp
SXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdJbnNlcnRFbW9qaSwgY29udGV4dE1l
bnVJdGVtVGFnSW5zZXJ0RW1vamkoKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgICAgQ29udGV4dE1lbnVJdGVtIExvb2tVcEltYWdlSXRlbShBY3Rpb25UeXBlLCBDb250
ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSwgY29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2Uo
KSk7CisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKQogICAgIENv
bnRleHRNZW51SXRlbSBTaGFyZU1lbnVJdGVtOwpAQCAtODY0LDEyICs4NjcsNiBAQCB2b2lkIENv
bnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogICAgICAgICByZXR1cm47CiAjZW5kaWYK
IAotI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICBib29sIHNob3VsZEFwcGVuZFF1aWNr
TG9va0ltYWdlSXRlbSA9IGZhbHNlOwotICAgIGF1dG8gcXVpY2tMb29rSXRlbVRpdGxlID0gZnJh
bWUtPnNldHRpbmdzKCkucHJlZmVySW5saW5lVGV4dFNlbGVjdGlvbkluSW1hZ2VzKCkgPyBjb250
ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpIDogY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29r
SW1hZ2UoKTsKLSAgICBDb250ZXh0TWVudUl0ZW0gUXVpY2tMb29rSW1hZ2VJdGVtIHsgQWN0aW9u
VHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UsIHF1aWNrTG9va0l0ZW1UaXRs
ZSB9OwotI2VuZGlmCi0KICAgICBhdXRvIGFkZFNlbGVjdGVkVGV4dEFjdGlvbnNJZk5lZWRlZCA9
IFsmXSAoY29uc3QgU3RyaW5nJiBzZWxlY3RlZFRleHQpIHsKICAgICAgICAgaWYgKHNlbGVjdGVk
VGV4dC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC05MjMsNyArOTIwLDggQEAg
dm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICAgICAgICAgICAgICAg
ICAgICAgIGFwcGVuZEl0ZW0oY29weUNyb3BwZWRJbWFnZUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0
KCkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAgICAgICAgICAgICAg
ICAgICBzaG91bGRBcHBlbmRRdWlja0xvb2tJbWFnZUl0ZW0gPSBtX2NsaWVudC5zdXBwb3J0c0xv
b2tVcEluSW1hZ2VzKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2NsaWVudC5zdXBwb3J0
c0xvb2tVcEluSW1hZ2VzKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKExv
b2tVcEltYWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CiAjZW5kaWYKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CkBAIC0xMTg4LDE4ICsxMTg2LDYgQEAgdm9pZCBDb250ZXh0
TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICAgICAgICAgIGFwcGVuZEl0ZW0oU2hhcmVN
ZW51SXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CiAgICAgICAgIH0KICAgICB9Ci0KLSNpZiBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gICAgaWYgKHNob3VsZEFwcGVuZFF1aWNrTG9va0ltYWdl
SXRlbSkgewotICAgICAgICBpZiAoIWZyYW1lLT5zZXR0aW5ncygpLnByZWZlcklubGluZVRleHRT
ZWxlY3Rpb25JbkltYWdlcygpKSB7Ci0gICAgICAgICAgICAvLyBJbiB0aGUgY2FzZSB3aGVyZSBp
bmxpbmUgdGV4dCBzZWxlY3Rpb24gaXMgZW5hYmxlZCwgdGhlIExvb2sgVXAgaXRlbSBpcyBvbmx5
IGFkZGVkIGlmCi0gICAgICAgICAgICAvLyB3ZSBkaXNjb3ZlciB2aXN1YWwgbG9vayB1cCByZXN1
bHRzIGFmdGVyIGltYWdlIGFuYWx5c2lzLiBJbiB0aGF0IHNjZW5hcmlvLCBhIHNlcGFyYXRvcgot
ICAgICAgICAgICAgLy8gaXMgb25seSBhZGRlZCBiZWZvcmUgdGhlIExvb2sgVXAgaXRlbSBvbmNl
IHdlJ3JlIGNlcnRhaW4gdGhhdCB3ZSB3YW50IHRvIHNob3cgaXQuCi0gICAgICAgICAgICBhcHBl
bmRJdGVtKCpzZXBhcmF0b3JJdGVtKCksIG1fY29udGV4dE1lbnUuZ2V0KCkpOwotICAgICAgICB9
Ci0gICAgICAgIGFwcGVuZEl0ZW0oUXVpY2tMb29rSW1hZ2VJdGVtLCBtX2NvbnRleHRNZW51Lmdl
dCgpKTsKLSAgICB9Ci0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogfQogCiB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6YWRkSW5zcGVjdEVsZW1lbnRJdGVtKCkKQEAgLTE1MjYs
NyArMTUxMiw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZO
ZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICAgICAgc2hvdWxkRW5h
YmxlID0gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5tZWRpYUhhc0F1ZGlvKCk7CiAgICAgICAg
ICAgICBzaG91bGRDaGVjayA9IHNob3VsZEVuYWJsZSAmJiAgbV9jb250ZXh0LmhpdFRlc3RSZXN1
bHQoKS5tZWRpYU11dGVkKCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdMb29rVXBJbWFnZToKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xh
dGU6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKaW5kZXggMGNhMzJmZTRhZWNkMGFmZTk0ZGYwZTExYjlmZWEwNjY4OTliYjY2Ny4uYjA3
YTIyOWZjYWY0ZjZmNTJkNjlkZTMzNzBkMTIxOGE1NTVlNTAxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcApAQCAtMjU3OCwxMiArMjU3OCwxMCBAQCB2b2lkIEV2ZW50SGFuZGxl
cjo6dXBkYXRlTW91c2VFdmVudFRhcmdldE5vZGUoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBl
LCBOb2RlKgogICAgIG1fZWxlbWVudFVuZGVyTW91c2UgPSB0YXJnZXRFbGVtZW50OwogCiAjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAgIGlmIChtX2ZyYW1lLnNldHRpbmdzKCkucHJlZmVy
SW5saW5lVGV4dFNlbGVjdGlvbkluSW1hZ2VzKCkpIHsKLSAgICAgICAgaWYgKCF0ZXh0UmVjb2du
aXRpb25DYW5kaWRhdGVFbGVtZW50KCkpCi0gICAgICAgICAgICBtX3RleHRSZWNvZ25pdGlvbkhv
dmVyVGltZXIuc3RvcCgpOwotICAgICAgICBlbHNlIGlmICghcGxhdGZvcm1Nb3VzZUV2ZW50Lm1v
dmVtZW50RGVsdGEoKS5pc1plcm8oKSkKLSAgICAgICAgICAgIG1fdGV4dFJlY29nbml0aW9uSG92
ZXJUaW1lci5yZXN0YXJ0KCk7Ci0gICAgfQorICAgIGlmICghdGV4dFJlY29nbml0aW9uQ2FuZGlk
YXRlRWxlbWVudCgpKQorICAgICAgICBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIuc3RvcCgp
OworICAgIGVsc2UgaWYgKCFwbGF0Zm9ybU1vdXNlRXZlbnQubW92ZW1lbnREZWx0YSgpLmlzWmVy
bygpKQorICAgICAgICBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIucmVzdGFydCgpOwogI2Vu
ZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogICAgIGlmIChhdXRvKiBwYWdlID0gbV9m
cmFtZS5wYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNw
cAppbmRleCAxNzA3OTNjOTIxYTU5ODVjYzhhYzE1NWQwNWFkZmI3NzExYTlmYTgzLi40MzVmMjM3
ZGJhOGNjMmQ5MGY3M2ZkMTg5ZDNiMmVmN2JjNDM1YWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAKQEAgLTI1OSw3ICsyNTksNyBAQCBib29sIGlzVmFs
aWRDb250ZXh0TWVudUFjdGlvbihDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBD
b250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9GdWxsc2NyZWVu
OgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVu
dToKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVW
aWRlb0VuaGFuY2VkRnVsbHNjcmVlbjoKLSAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250
ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKKyAgICBjYXNlIENvbnRleHRNZW51QWN0aW9u
OjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKICAgICBjYXNlIENvbnRleHRNZW51QWN0
aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgY2FzZSBDb250ZXh0TWVudUFj
dGlvbjo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZzoKICAgICBjYXNlIENvbnRleHRNZW51
QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAppbmRleCBmODBkMWJlNzQ5MDVhYWY1MzUwOWEyMDA0MWMy
ZGIyNWFlNDUwNTMwLi4xODVhNTFkNjEwOGViNGRmMWJkNjU2YzRjM2RhYTIyZWJiMjIxYWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApAQCAtMTQ3LDcgKzE0
Nyw3IEBAIGVudW0gQ29udGV4dE1lbnVBY3Rpb24gewogICAgIENvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuLAogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhp
Z2hsaWdodFRvQ3VycmVudFF1aWNrTm90ZSwKICAgICBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdo
bGlnaHRUb05ld1F1aWNrTm90ZSwKLSAgICBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFn
ZSwKKyAgICBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSwKICAgICBDb250ZXh0TWVudUl0
ZW1UYWdUcmFuc2xhdGUsCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnQ29weUNyb3BwZWRJbWFnZSwK
ICAgICBDb250ZXh0TWVudUl0ZW1MYXN0Tm9uQ3VzdG9tVGFnID0gQ29udGV4dE1lbnVJdGVtVGFn
Q29weUNyb3BwZWRJbWFnZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuaAppbmRleCBhMjBiNTg4ZTY5MzcxNjlhMTA2N2QzOWQ3YzEwOWYzNDU5ZThjMzk2Li43MDU3
NDY1YzVlZWFkOGViYjVkZjQ3OTIxZTMzYTcwNzQzMTAzNzk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0zNzIsMTAgKzM3Miw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICBXRUJDT1JFX0VY
UE9SVCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UoKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UoKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2VGb3JU
ZXh0U2VsZWN0aW9uKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1F1aWNrTG9va0ltYWdlRm9yVmlzdWFsU2VhcmNoKCk7Ci0jZW5kaWYgLy8gRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQorI2VuZGlmCiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5D
RU1FTlRTKQogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
Q3JvcHBlZEltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KaW5kZXggM2I1MjE4MTc5YjAzM2JlYzJhMGZiMDNj
ZDY5YzI1NDg1ZGYxYTY5NC4uZmZjZTc5MzMyMzRhMDAyYTQ5NTJkMmZhYTg1Y2I5OGJmMzFjYjQ4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3Ry
aW5nc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXpl
ZFN0cmluZ3NDb2NvYS5tbQpAQCAtMzAyLDIyICszMDIsNyBAQCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnTG9va1VwSW1hZ2UoKQogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29rIFVwIiwg
IlRpdGxlIGZvciBMb29rIFVwIGFjdGlvbiBidXR0b24iKTsKIH0KIAotU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
UXVpY2sgTG9vayIsICJUaXRsZSBmb3IgUXVpY2sgTG9vayBhY3Rpb24gYnV0dG9uIik7Ci19Ci0K
LVN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZvclRleHRTZWxlY3Rpb24o
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTZWxlY3QgVGV4dCBpbiBRdWljayBMb29r
IiwgIlRpdGxlIGZvciBRdWljayBMb29rIGFjdGlvbiBidXR0b24gZm9yIGltYWdlcyB3aXRoIHRl
eHQiKTsKLX0KLQotU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlRm9yVmlz
dWFsU2VhcmNoKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCBpbiBRdWlj
ayBMb29rIiwgIlRpdGxlIGZvciBRdWljayBMb29rIGFjdGlvbiBidXR0b24gZm9yIGltYWdlcyB3
aXRoIHZpc3VhbCBzZWFyY2ggcmVzdWx0cyIpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorI2VuZGlmCiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1F
TlRTKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQ
SUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmlu
ZGV4IGE5ZWFlNjczZGEzYzE4ODM4ZjYxMGRmMjQ4NmJlMDMxN2RhZjc4ZTYuLjY2ZjU2ODIxMzQ0
MjM4Mzk5MzU4ZTk5NzVlYTZhYTI2NmIxZTNjYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC01NDMsNyArNTQzLDcgQEAgaW5saW5lIFdLQ29u
dGV4dE1lbnVJdGVtVGFnIHRvQVBJKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikK
ICNlbmRpZgogICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51Ogog
ICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OwotICAgIGNhc2Ug
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U6CisgICAgY2FzZSBXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKICAgICAgICAgcmV0dXJuIGtXS0Nv
bnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOwogICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1l
bnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFn
VHJhbnNsYXRlOwpAQCAtNzQ4LDcgKzc0OCw3IEBAIGlubGluZSBXZWJDb3JlOjpDb250ZXh0TWVu
dUFjdGlvbiB0b0ltcGwoV0tDb250ZXh0TWVudUl0ZW1UYWcgdGFnKQogICAgICAgICByZXR1cm4g
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OwogI2VuZGlmCiAgICAgY2FzZSBr
V0tDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlOworICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U7CiAgICAgY2FzZSBrV0tDb250ZXh0TWVu
dUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0
ZW1UYWdUcmFuc2xhdGU7CiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdDb3B5Q3JvcHBl
ZEltYWdlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUXVpY2tM
b29rUHJldmlld0FjdGl2aXR5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9RdWlj
a0xvb2tQcmV2aWV3QWN0aXZpdHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTBk
MzY1NjNmMWE0OWE4NWE1ODczOTZiYjRmMzE5MWE1ZTYzZjYwZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9RdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotZW51bSBjbGFzcyBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkg
OiB1aW50OF90IHsKLSAgICBOb25lLAotICAgIFZpc3VhbFNlYXJjaCwKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCA5ZmFjYTZkOTVjZGIxOTg5NjE1
NThmZmVkZjJlMmFkOGU4MDVlMDhkLi43MDhkZjQ5OWUyMzcxMTcyN2I1YWUyZjM5YTA2NGY5NDBl
NGMyMDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgK
QEAgLTE3MSw3ICsxNzEsNiBAQCBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiBzdHJ1Y3QgV2ViSGl0
VGVzdFJlc3VsdERhdGE7CiAKIGVudW0gY2xhc3MgQ29udGludWVVbnNhZmVMb2FkIDogYm9vbDsK
LWVudW0gY2xhc3MgSW1hZ2VBbmFseXNpc1R5cGUgOiB1aW50OF90OwogZW51bSBjbGFzcyBVbmRv
T3JSZWRvIDogYm9vbDsKIAogdHlwZWRlZiBpZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRl
bT4gVmFsaWRhdGlvbkl0ZW07CkBAIC01OTYsNyArNTk1LDcgQEAgcHVibGljOgogCiAjaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQogICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25z
dCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRh
LCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKTsKLSAgICB2b2lkIGNvbXB1dGVIYXNJbWFn
ZUFuYWx5c2lzUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGlt
YWdlQml0bWFwLCBJbWFnZUFuYWx5c2lzVHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CisgICAgdm9pZCBjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwm
IGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VO
SEFOQ0VNRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KaW5kZXggN2U0ZTlkNjAzZmZlMTc5ZGZhZGExZmU2ZmQ1ODVmMGNkYzIzZTI0NC4uNGVkMjU1
ZjNiZDQxZGFjNzgyNTVkMzBiODk2ZjFmYTQxM2MyYmNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTI4MCw3ICsyODAsNyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNv
bnN0IFNoYXJlYWJsZUJpdAogICAgIH0pOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRl
SGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0
bWFwJiBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGUgdHlwZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQordm9pZCBXZWJWaWV3SW1wbDo6Y29tcHV0ZUhh
c1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFw
JiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
KQogewogICAgIGlmICghaXNMaXZlVGV4dEF2YWlsYWJsZUFuZEVuYWJsZWQoKSkgewogICAgICAg
ICBjb21wbGV0aW9uKGZhbHNlKTsKQEAgLTI4OCwxMyArMjg4LDEyIEBAIHZvaWQgV2ViVmlld0lt
cGw6OmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBT
aGFyZWFibGVCCiAgICAgfQogCiAgICAgYXV0byBjZ0ltYWdlID0gaW1hZ2VCaXRtYXAubWFrZUNH
SW1hZ2UoKTsKLSAgICBhdXRvIGFuYWx5c2lzVHlwZSA9IHR5cGUgPT0gSW1hZ2VBbmFseXNpc1R5
cGU6OlZpc3VhbFNlYXJjaCA/IFZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoIDogVktBbmFseXNp
c1R5cGVUZXh0OwotICAgIGF1dG8gcmVxdWVzdCA9IGNyZWF0ZUltYWdlQW5hbHl6ZXJSZXF1ZXN0
KGNnSW1hZ2UuZ2V0KCksIGltYWdlVVJMLCBbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOm1f
cGFnZS0+Y3VycmVudFVSTCgpXSwgYW5hbHlzaXNUeXBlKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBj
cmVhdGVJbWFnZUFuYWx5emVyUmVxdWVzdChjZ0ltYWdlLmdldCgpLCBpbWFnZVVSTCwgW05TVVJM
IF93ZWJfVVJMV2l0aFdURlN0cmluZzptX3BhZ2UtPmN1cnJlbnRVUkwoKV0sIFZLQW5hbHlzaXNU
eXBlVmlzdWFsU2VhcmNoKTsKICAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5v
dygpOwotICAgIFtlbnN1cmVJbWFnZUFuYWx5emVyKCkgcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5n
ZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihb
Y29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIHN0YXJ0VGltZSwgYW5hbHlzaXNUeXBl
XSAoQ29jb2FJbWFnZUFuYWx5c2lzICphbmFseXNpcywgTlNFcnJvciAqKSBtdXRhYmxlIHsKLSAg
ICAgICAgQk9PTCByZXN1bHQgPSBbYW5hbHlzaXMgaGFzUmVzdWx0c0ZvckFuYWx5c2lzVHlwZXM6
YW5hbHlzaXNUeXBlXTsKLSAgICAgICAgQ0ZSdW5Mb29wUGVyZm9ybUJsb2NrKENGUnVuTG9vcEdl
dE1haW4oKSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKU5TRXZlbnRUcmFja2luZ1J1bkxvb3BNb2Rl
LCBtYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCByZXN1bHQs
IGFuYWx5c2lzVHlwZSwgc3RhcnRUaW1lXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFJFTEVB
U0VfTE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lzIGNvbXBsZXRlZCBpbiAlLjBmIG1zIChmb3Vu
ZCAlcz8gJWQpIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5taWxsaXNlY29u
ZHMoKSwgYW5hbHlzaXNUeXBlID09IFZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoID8gInZpc3Vh
bCBzZWFyY2ggcmVzdWx0cyIgOiAidGV4dCIsIHJlc3VsdCk7CisgICAgW2Vuc3VyZUltYWdlQW5h
bHl6ZXIoKSBwcm9jZXNzUmVxdWVzdDpyZXF1ZXN0LmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwg
Y29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uID0gV1RGTW92ZShjb21w
bGV0aW9uKSwgc3RhcnRUaW1lXSAoQ29jb2FJbWFnZUFuYWx5c2lzICphbmFseXNpcywgTlNFcnJv
ciAqKSBtdXRhYmxlIHsKKyAgICAgICAgQk9PTCByZXN1bHQgPSBbYW5hbHlzaXMgaGFzUmVzdWx0
c0ZvckFuYWx5c2lzVHlwZXM6VktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2hdOworICAgICAgICBD
RlJ1bkxvb3BQZXJmb3JtQmxvY2soQ0ZSdW5Mb29wR2V0TWFpbigpLCAoX19icmlkZ2UgQ0ZTdHJp
bmdSZWYpTlNFdmVudFRyYWNraW5nUnVuTG9vcE1vZGUsIG1ha2VCbG9ja1B0cihbY29tcGxldGlv
biA9IFdURk1vdmUoY29tcGxldGlvbiksIHJlc3VsdCwgc3RhcnRUaW1lXSAoKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIFJFTEVBU0VfTE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lzIGNvbXBsZXRl
ZCBpbiAlLjBmIG1zIChmb3VuZCB2aXN1YWwgc2VhcmNoIHJlc3VsdHM/ICVkKSIsIChNb25vdG9u
aWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksIHJlc3VsdCk7CiAgICAg
ICAgICAgICBjb21wbGV0aW9uKHJlc3VsdCk7CiAgICAgICAgIH0pLmdldCgpKTsKICAgICAgICAg
Q0ZSdW5Mb29wV2FrZVVwKENGUnVuTG9vcEdldE1haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKaW5kZXggMzViYzQ1ZDhjMmM3YjY5ZWE3ZGUxMmU2YzQzOTQyZmYxYmQxMjA1
My4uOTU0ZDlhZDMwNTY1NmJlMjg5NWUyYTdhOTUyMTZjOWJlNjAyMjU4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTY1LDEwICsxNjUsNiBAQCBjbGFzcyBXZWJQcm9j
ZXNzUHJveHk7CiAKIGVudW0gY2xhc3MgQ29udGludWVVbnNhZmVMb2FkIDogYm9vbCB7IE5vLCBZ
ZXMgfTsKIAotI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLWVudW0gY2xhc3MgSW1hZ2VBbmFs
eXNpc1R5cGUgOiB1aW50OF90IHsgVGV4dCwgVmlzdWFsU2VhcmNoIH07Ci0jZW5kaWYKLQogc3Ry
dWN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb247CiBzdHJ1Y3QgRnJhbWVJbmZvRGF0YTsKIHN0
cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjsKQEAgLTU2MCw3ICs1NTYsNyBA
QCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVh
YmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4m
JiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oeyB9KTsgfQotICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwg
SW1hZ2VBbmFseXNpc1R5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbikgeyBjb21wbGV0aW9uKGZhbHNlKTsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSGFz
VmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmLCBTaGFyZWFibGVCaXRtYXAmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pIHsgY29tcGxldGlvbihmYWxzZSk7
IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYm
IFVTRShVSUNPTlRFWFRNRU5VKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dE1lbnVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dE1lbnVQcm94eS5oCmluZGV4IDYzMGJmMTE3MGRhMTc2ZGNjNjVkNjU5YzFmZGY3YzA1MTg1OTEw
ZTUuLjFiOGZjYzg0NjY0ZjMwOWFmZTVmNGVhY2QyOGI1NDEzYzFiMWI5MDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKQEAgLTMzLDEwICszMyw2
IEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiUXVpY2tMb29rUHJldmlld0FjdGl2
aXR5LmgiCi0jZW5kaWYKLQogT0JKQ19DTEFTUyBOU01lbnU7CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpAQCAtNTUsNyArNTEsNiBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmly
dHVhbCBOU01lbnUgKnBsYXRmb3JtTWVudSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIE5TQXJy
YXkgKnBsYXRmb3JtRGF0YSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFF1aWNrTG9va1ByZXZp
ZXdBY3Rpdml0eSBxdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBRdWlj
a0xvb2tQcmV2aWV3QWN0aXZpdHk6Ok5vbmU7IH07CiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0Ep
CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDBmMzZjYzU0Y2E4MjczOTkwYzA2ODBhOWI3ZDJhY2E2Mjk2OThiZjUuLjJlZjkwMGRmOGUw
NjhiMjY4YTg5YmQ0YzQwMmYzNjRiMjQzNDE2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtMjE2LDcgKzIxNiw2IEBACiAKICNpZiBQTEFURk9STShDT0NP
QSkKICNpbmNsdWRlICJJbnNlcnRUZXh0T3B0aW9ucy5oIgotI2luY2x1ZGUgIlF1aWNrTG9va1By
ZXZpZXdBY3Rpdml0eS5oIgogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHkuaCIKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEu
aCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCkBAIC03MjA2LDEw
ICs3MjA1LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNv
bnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCiAgICAgICAgICsrbV9wZW5kaW5nTGVh
cm5Pcklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKKyAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEltYWdlOgogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICAgICAgaWYg
KG1fYWN0aXZlQ29udGV4dE1lbnUpCi0gICAgICAgICAgICBoYW5kbGVDb250ZXh0TWVudVF1aWNr
TG9va0ltYWdlKG1fYWN0aXZlQ29udGV4dE1lbnUtPnF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSgp
KTsKKyAgICAgICAgaGFuZGxlQ29udGV4dE1lbnVMb29rVXBJbWFnZSgpOwogI2VuZGlmCiAgICAg
ICAgIHJldHVybjsKIApAQCAtODg0Miw5ICs4ODQwLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxl
QmkKICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFRleHRSZWNvZ25pdGlvbihpbWFnZVVSTCwgaW1h
Z2VEYXRhLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5Ojpjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJM
JiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5
cGUgdHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQordm9p
ZCBXZWJQYWdlUHJveHk6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYg
aW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbikKIHsKLSAgICBwYWdlQ2xpZW50KCkuY29tcHV0ZUhh
c0ltYWdlQW5hbHlzaXNSZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcCwgdHlwZSwgV1RGTW92
ZShjb21wbGV0aW9uKSk7CisgICAgcGFnZUNsaWVudCgpLmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hS
ZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcCwgV1RGTW92ZShjb21wbGV0aW9uKSk7CiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFRleHRS
ZWNvZ25pdGlvblJlc3VsdCYmIHJlc3VsdHMsIGNvbnN0IEVsZW1lbnRDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChUZXh0
UmVjb2duaXRpb25VcGRhdGVSZXN1bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5YTEwZWYyZjg5NmFhYTE1MTg1ZDAxZTZk
ZGYyMzMyYjA0YzJiOTBlLi5kM2FkNGYwMzNlMjE5ZTc1MTBjNjY0ZWRlYjcyNDZlZDQ3ODE2Nzgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDIxLDggKzQyMSw2
IEBAIHN0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlOwogc3RydWN0IFdlYlBvcHVwSXRlbTsK
IHN0cnVjdCBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZTsKIAotZW51bSBjbGFzcyBJbWFnZUFuYWx5
c2lzVHlwZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRhcEhhbmRsaW5nUmVzdWx0IDogdWludDhf
dDsKIGVudW0gY2xhc3MgVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IDogdWludDhfdDsKIGVu
dW0gY2xhc3MgTmVnb3RpYXRlZExlZ2FjeVRMUyA6IGJvb2w7CiBlbnVtIGNsYXNzIFByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgOiBib29sOwpAQCAtMTc2Miw3ICsxNzYwLDcgQEAgcHVibGlj
OgogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2du
aXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
IGltYWdlRGF0YSwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCB1cGRh
dGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3Vs
dCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFRleHRSZWNvZ25pdGlvblVw
ZGF0ZVJlc3VsdCk+JiYpOwotICAgIHZvaWQgY29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRz
KGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIEltYWdl
QW5hbHlzaXNUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lk
IGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJl
YWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgc3RhcnRJbWFnZUFuYWx5c2lzKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcik7
CiAjZW5kaWYKIApAQCAtMjAzNCw3ICsyMDMyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAgIHZvaWQgaGFuZGxl
Q29udGV4dE1lbnVRdWlja0xvb2tJbWFnZShRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkpOworICAg
IHZvaWQgaGFuZGxlQ29udGV4dE1lbnVMb29rVXBJbWFnZSgpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKICAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51
Q29weUNyb3BwZWRJbWFnZShTaGFyZWFibGVCaXRtYXAmLCBjb25zdCBTdHJpbmcmIHByZWZlcnJl
ZE1JTUVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsTWFjLmgKaW5kZXggNDFjN2ViYTg4N2Q2ZjcyMGM5ZWIyYzA5ZTk5NjliZTg5OTg5M2Q4MS4u
ZGNlMTU0MTQ1ZjRlM2ViNzRiNzlkMjBlMmFiMjI1OTM4MjMyYjJjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTEzMiw3ICsxMzIs
NyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIHZvaWQgcmVx
dWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKSBv
dmVycmlkZTsKLSAgICB2b2lkIGNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhjb25zdCBV
UkwmLCBTaGFyZWFibGVCaXRtYXAmLCBJbWFnZUFuYWx5c2lzVHlwZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wdXRlSGFzVmlzdWFsU2Vh
cmNoUmVzdWx0cyhjb25zdCBVUkwmLCBTaGFyZWFibGVCaXRtYXAmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgUmVmUHRyPFdlYlBvcHVw
TWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpp
bmRleCBkZTc0M2YyNmQ2ZDhmOWQ0NjkzZWM3NGZhZjY0NzcyYjVlZDkzMzk5Li5mNGUzMTMwZDlk
Mjc2OTg1ZGFlMzIyMjdmMDMyMTRjODdkZGU5N2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC00ODksMTIgKzQ4OSwxMiBAQCB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1h
Z2VVUkwsIGNvbnN0IFNoYXJlYWJsZQogICAgIG1faW1wbC0+cmVxdWVzdFRleHRSZWNvZ25pdGlv
bihpbWFnZVVSTCwgaW1hZ2VEYXRhLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsK
IH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRz
KGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIEltYWdl
QW5hbHlzaXNUeXBlIHR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRz
KGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbikKIHsKLSAgICBtX2ltcGwtPmNv
bXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIHR5cGUs
IFdURk1vdmUoY29tcGxldGlvbikpOworICAgIG1faW1wbC0+Y29tcHV0ZUhhc1Zpc3VhbFNlYXJj
aFJlc3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0K
IAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyNlbmRpZgogCiBSZWZQdHI8V2Vi
UG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQ
YWdlUHJveHkmIHBhZ2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tRdWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaAppbmRleCAxZTI3YzhkM2JjZTll
MWM5MWYwNWU1MzBlZTUyMGM4MDQxNDc3MzQzLi4wMmM3ZDJmMWQ0YjkzZGE0MDY0YjA4NjkyY2Mz
ZTNiYTRkNGNkMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tR
dWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJQYWdlUHJveHk7Ci1lbnVtIGNsYXNzIFF1aWNr
TG9va1ByZXZpZXdBY3Rpdml0eSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFF1aWNrTG9va1ByZXZp
ZXdBY3Rpdml0eSA6IHVpbnQ4X3QgeyBOb25lLCBWaXN1YWxTZWFyY2ggfTsKIH0KIAogQGNsYXNz
IFFMUHJldmlld1BhbmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tRdWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5tbQppbmRleCA1ZjQ5NGU0ZDUzZjE3
MDRjMTBhNzc3NjgyMzhiYmYxMGE2ZTdjMWYwLi4wMGExMGUxNmEwODI5ODUxMTI1ZDhmY2U5NTBh
NmUyNGQ5YzBlZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tR
dWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tRdWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5tbQpAQCAtMjgsNyArMjgsNiBAQAog
CiAjaWYgSEFWRShRVUlDS0xPT0tfUFJFVklFV19JVEVNX0RBVEFfUFJPVklERVIpCiAKLSNpbXBv
cnQgIlF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5Lmgi
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDxwYWwvbWFjL1F1aWNrTG9va1VJ
U29mdExpbmsuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJD
b250ZXh0TWVudVByb3h5TWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5oCmluZGV4IDMxYmMwNzk3YTFiMDg2YjkzNDJlNTQ0OWU0OGNmNWIz
MDUwNDY0ZWIuLjYxYjk1ZjRmNmQ1Yzg0YTJlNjk5MGUwNmNiNTVhODhjNTcxNzQ4MDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFj
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlN
YWMuaApAQCAtNjEsMTMgKzYxLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJDb250ZXh0
TWVudVByb3h5TWFjKE5TVmlldyAqLCBXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHRE
YXRhJiYsIGNvbnN0IFVzZXJEYXRhJik7CiAKLSAgICBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkg
cXVpY2tMb29rUHJldmlld0FjdGl2aXR5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9xdWlja0xv
b2tQcmV2aWV3QWN0aXZpdHk7IH0KLQotI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICB2
b2lkIGluc2VydE9yVXBkYXRlUXVpY2tMb29rSW1hZ2VJdGVtKGNvbnN0IFVSTCYgaW1hZ2VVUkws
IFJlZjxTaGFyZWFibGVCaXRtYXA+JiYgaW1hZ2VCaXRtYXAsIHN0ZDo6b3B0aW9uYWw8V2ViQ29u
dGV4dE1lbnVJdGVtRGF0YT4mJiwgYm9vbCk7Ci0gICAgdm9pZCB1cGRhdGVRdWlja0xvb2tDb250
ZXh0TWVudUl0ZW1UaXRsZShjb25zdCBTdHJpbmcmKTsKLSNlbmRpZgotCiAgICAgdm9pZCBzaG93
KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJl
ZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHVzZUNvbnRleHRN
ZW51SXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKQEAg
LTg3LDcgKzgwLDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNNZW51PiBtX21lbnU7CiAg
ICAgUmV0YWluUHRyPFdLTWVudURlbGVnYXRlPiBtX21lbnVEZWxlZ2F0ZTsKICAgICBXZWFrT2Jq
Q1B0cjxOU1ZpZXc+IG1fd2ViVmlldzsKLSAgICBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgbV9x
dWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgeyBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHk6Ok5vbmUg
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCAzYWE1YzdkNmYz
NzMwZDgxYmJjYzU0Njg4MTkxZjczN2JmMTQ5ZjY1Li4yZmQ5MjkxYzE3ZTU4ZjI2ZDMwOWFjMjMy
MjQ2YjUwNWU4NmNlNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtNDEsNyArNDEsNiBAQAogI2ltcG9ydCAi
V2ViQ29udGV4dE1lbnVJdGVtLmgiCiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgi
CiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKLSNpbXBvcnQgIldlYlByZWZlcmVuY2VzLmgiCiAj
aW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnRS
ZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KQEAgLTUxMyw3ICs1
MTIsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKm1lbnVJdGVtSWRlbnRpZmllcihjb25zdCBXZWJDb3Jl
OjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdS
ZWxvYWQ6CiAgICAgICAgIHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQ7CiAKLSAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlOgorICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CiAgICAgICAgIHJldHVybiBfV0tNZW51SXRlbUlkZW50
aWZpZXJSZXZlYWxJbWFnZTsKIAogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2Vi
OgpAQCAtNjAyLDIyICs2MDEsMTcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRD
b250ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICAgICAg
fSk7CiAgICAgfQogCi0gICAgYm9vbCBzaG91bGRVcGRhdGVRdWlja0xvb2tJdGVtVGl0bGUgPSBm
YWxzZTsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IHF1aWNrTG9v
a0l0ZW1Ub0luc2VydElmTmVlZGVkOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29udGV4dE1lbnVJ
dGVtRGF0YT4gbG9va1VwSW1hZ2VJdGVtOwogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQot
ICAgIGF1dG8gaW5kZXhPZlF1aWNrTG9va0l0ZW0gPSBmaWx0ZXJlZEl0ZW1zLmZpbmRJZihbJl0g
KGF1dG8mIGl0ZW0pIHsKLSAgICAgICAgcmV0dXJuIGl0ZW0uYWN0aW9uKCkgPT0gV2ViQ29yZTo6
Q29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U7Ci0gICAgfSk7CisgICAgZmlsdGVyZWRJ
dGVtcy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmXSAoYXV0byYgaXRlbSkgeworICAgICAgICBpZiAo
aXRlbS5hY3Rpb24oKSAhPSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChpbmRleE9mUXVpY2tMb29rSXRl
bSAhPSBub3RGb3VuZCkgewotICAgICAgICBpZiAoYXV0byBwYWdlID0gdGhpcy0+cGFnZSgpOyBw
YWdlICYmIHBhZ2UtPnByZWZlcmVuY2VzKCkucHJlZmVySW5saW5lVGV4dFNlbGVjdGlvbkluSW1h
Z2VzKCkpIHsKLSAgICAgICAgICAgIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkID0gZmls
dGVyZWRJdGVtc1tpbmRleE9mUXVpY2tMb29rSXRlbV07Ci0gICAgICAgICAgICBmaWx0ZXJlZEl0
ZW1zLnJlbW92ZShpbmRleE9mUXVpY2tMb29rSXRlbSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRpdGxlID0gdHJ1ZTsKLSAgICB9Ci0jZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAgICBsb29rVXBJbWFnZUl0ZW0gPSB7
IGl0ZW0gfTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSk7CisjZW5kaWYKIAogI2lmIEhB
VkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpCiAgICAgaWYgKCFwYWdlKCktPmNhbkhhbmRsZUNv
bnRleHRNZW51VHJhbnNsYXRpb24oKSB8fCBpc1BvcG92ZXIpIHsKQEAgLTYzMyw4ICs2MjcsOCBA
QCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJvbUl0ZW1zKGNv
bnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAgIGF1dG8gaW1hZ2VVUkwgPSBVUkwgeyBoaXRU
ZXN0RGF0YS5hYnNvbHV0ZUltYWdlVVJMIH07CiAgICAgYXV0byBpbWFnZUJpdG1hcCA9IGhpdFRl
c3REYXRhLmltYWdlQml0bWFwOwogCi0gICAgYXV0byBzcGFyc2VNZW51SXRlbXMgPSByZXRhaW5Q
dHIoW05TUG9pbnRlckFycmF5IHN0cm9uZ09iamVjdHNQb2ludGVyQXJyYXldKTsKLSAgICBhdXRv
IGluc2VydE1lbnVJdGVtID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfSwgd2Vha1BhZ2UgPSBXZWFrUHRyIHsgcGFnZSgpIH0sIGltYWdlVVJMID0gV1RGTW92ZShp
bWFnZVVSTCksIGltYWdlQml0bWFwID0gV1RGTW92ZShpbWFnZUJpdG1hcCksIHNob3VsZFVwZGF0
ZVF1aWNrTG9va0l0ZW1UaXRsZSwgcXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQgPSBXVEZN
b3ZlKHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkKSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgaXRlbXNSZW1haW5pbmcgPSBmaWx0ZXJlZEl0ZW1z
LnNpemUoKSwgbWVudSA9IFdURk1vdmUobWVudSksIHNwYXJzZU1lbnVJdGVtc10oTlNNZW51SXRl
bSAqaXRlbSwgTlNVSW50ZWdlciBpbmRleCkgbXV0YWJsZSB7CisgICAgUmV0YWluUHRyIHNwYXJz
ZU1lbnVJdGVtcyA9IFtOU1BvaW50ZXJBcnJheSBzdHJvbmdPYmplY3RzUG9pbnRlckFycmF5XTsK
KyAgICBhdXRvIGluc2VydE1lbnVJdGVtID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfSwgd2Vha1BhZ2UgPSBXZWFrUHRyIHsgcGFnZSgpIH0sIGltYWdlVVJMID0g
V1RGTW92ZShpbWFnZVVSTCksIGltYWdlQml0bWFwID0gV1RGTW92ZShpbWFnZUJpdG1hcCksIGxv
b2tVcEltYWdlSXRlbSA9IFdURk1vdmUobG9va1VwSW1hZ2VJdGVtKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgaXRlbXNSZW1haW5pbmcgPSBmaWx0ZXJl
ZEl0ZW1zLnNpemUoKSwgbWVudSA9IFdURk1vdmUobWVudSksIHNwYXJzZU1lbnVJdGVtc10oTlNN
ZW51SXRlbSAqaXRlbSwgTlNVSW50ZWdlciBpbmRleCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VS
VChpbmRleCA8IFtzcGFyc2VNZW51SXRlbXMgY291bnRdKTsKICAgICAgICAgQVNTRVJUKCFbc3Bh
cnNlTWVudUl0ZW1zIHBvaW50ZXJBdEluZGV4OmluZGV4XSk7CiAgICAgICAgIFtzcGFyc2VNZW51
SXRlbXMgcmVwbGFjZVBvaW50ZXJBdEluZGV4OmluZGV4IHdpdGhQb2ludGVyOml0ZW1dOwpAQCAt
NjQzLDEzICs2MzcsMTQgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0
TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKIAogICAgICAgICBbbWVu
dSBzZXRJdGVtQXJyYXk6W3NwYXJzZU1lbnVJdGVtcyBhbGxPYmplY3RzXV07CiAKLSAgICAgICAg
UmVmUHRyIHBhZ2UgeyB3ZWFrUGFnZS5nZXQoKSB9OwotICAgICAgICBpZiAocGFnZSAmJiBpbWFn
ZUJpdG1hcCkgeworICAgICAgICBSZWZQdHIgcGFnZSA9IHdlYWtQYWdlLmdldCgpOworICAgICAg
ICBpZiAobG9va1VwSW1hZ2VJdGVtICYmIHBhZ2UgJiYgaW1hZ2VCaXRtYXApIHsKICNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCi0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5pbnNlcnRPclVw
ZGF0ZVF1aWNrTG9va0ltYWdlSXRlbShpbWFnZVVSTCwgaW1hZ2VCaXRtYXAucmVsZWFzZU5vbk51
bGwoKSwgV1RGTW92ZShxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCksIHNob3VsZFVwZGF0
ZVF1aWNrTG9va0l0ZW1UaXRsZSk7CisgICAgICAgICAgICBwYWdlLT5jb21wdXRlSGFzVmlzdWFs
U2VhcmNoUmVzdWx0cyhpbWFnZVVSTCwgKmltYWdlQml0bWFwLCBbcHJvdGVjdGVkVGhpcyA9IFdU
Rk1vdmUocHJvdGVjdGVkVGhpcyksIGxvb2tVcEltYWdlSXRlbSA9IFdURk1vdmUoKmxvb2tVcElt
YWdlSXRlbSldIChib29sIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpIG11dGFibGUgeworICAgICAg
ICAgICAgICAgIGlmIChoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKQorICAgICAgICAgICAgICAgICAg
ICBbcHJvdGVjdGVkVGhpcy0+bV9tZW51IGFkZEl0ZW06Y3JlYXRlTWVudUFjdGlvbkl0ZW0obG9v
a1VwSW1hZ2VJdGVtKS5nZXQoKV07CisgICAgICAgICAgICB9KTsKICNlbHNlCi0gICAgICAgICAg
ICBVTlVTRURfUEFSQU0ocXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQpOwotICAgICAgICAg
ICAgVU5VU0VEX1BBUkFNKHNob3VsZFVwZGF0ZVF1aWNrTG9va0l0ZW1UaXRsZSk7CiAgICAgICAg
ICAgICBVTlVTRURfUEFSQU0oaW1hZ2VVUkwpOwogI2VuZGlmCiAgICAgICAgIH0KQEAgLTY2NSw2
MyArNjYwLDYgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZy
b21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICB9CiB9CiAKLSNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCi0KLXZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6aW5zZXJ0
T3JVcGRhdGVRdWlja0xvb2tJbWFnZUl0ZW0oY29uc3QgVVJMJiBpbWFnZVVSTCwgUmVmPFNoYXJl
YWJsZUJpdG1hcD4mJiBpbWFnZUJpdG1hcCwgc3RkOjpvcHRpb25hbDxXZWJDb250ZXh0TWVudUl0
ZW1EYXRhPiYmIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkLCBib29sIHNob3VsZFVwZGF0
ZVF1aWNrTG9va0l0ZW1UaXRsZSkKLXsKLSAgICBSZWYgcGFnZSA9ICp0aGlzLT5wYWdlKCk7Ci0g
ICAgaWYgKHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkKSB7Ci0gICAgICAgIHBhZ2UtPmNv
bXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCks
IEltYWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFyY2gsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCBxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCA9IFdURk1vdmUoKnF1aWNrTG9v
a0l0ZW1Ub0luc2VydElmTmVlZGVkKV0gKGJvb2wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0
YWJsZSB7Ci0gICAgICAgICAgICBpZiAoUmVmUHRyIHByb3RlY3RlZFRoaXMgPSB3ZWFrVGhpcy5n
ZXQoKTsgcHJvdGVjdGVkVGhpcyAmJiBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSB7Ci0gICAgICAg
ICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9xdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgPSBRdWlj
a0xvb2tQcmV2aWV3QWN0aXZpdHk6OlZpc3VhbFNlYXJjaDsKLSAgICAgICAgICAgICAgICBbcHJv
dGVjdGVkVGhpcy0+bV9tZW51IGFkZEl0ZW06TlNNZW51SXRlbS5zZXBhcmF0b3JJdGVtXTsKLSAg
ICAgICAgICAgICAgICBbcHJvdGVjdGVkVGhpcy0+bV9tZW51IGFkZEl0ZW06Y3JlYXRlTWVudUFj
dGlvbkl0ZW0ocXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQpLmdldCgpXTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoc2hv
dWxkVXBkYXRlUXVpY2tMb29rSXRlbVRpdGxlKSB7Ci0gICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNJ
bWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCksIEltYWdlQW5h
bHlzaXNUeXBlOjpWaXN1YWxTZWFyY2gsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3
ZWFrUGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGltYWdlVVJMLCBpbWFnZUJpdG1hcCA9IFdURk1v
dmUoaW1hZ2VCaXRtYXApXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBtdXRhYmxlIHsK
LSAgICAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRUaGlzIHsgd2Vha1RoaXMuZ2V0KCkgfTsKLSAg
ICAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgICAgIFJlZlB0ciBwYWdlIHsgd2Vha1BhZ2UuZ2V0KCkgfTsKLSAgICAgICAgICAg
IGlmICghcGFnZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmICho
YXNWaXN1YWxTZWFyY2hSZXN1bHRzKSB7Ci0gICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+
bV9xdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgPSBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHk6OlZp
c3VhbFNlYXJjaDsKLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT51cGRhdGVRdWlja0xv
b2tDb250ZXh0TWVudUl0ZW1UaXRsZShjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZv
clZpc3VhbFNlYXJjaCgpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFn
ZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCksIEltYWdlQW5hbHlzaXNUeXBlOjpUZXh0LCBbd2Vha1Ro
aXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgd2Vha1BhZ2VdIChib29sIGhhc1RleHQpIG11dGFibGUg
ewotICAgICAgICAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRUaGlzIHsgd2Vha1RoaXMuZ2V0KCkg
fTsKLSAgICAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMpCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICAgICAgICAgIGlmIChSZWZQdHIgcGFnZSA9IHdlYWtQYWdl
LmdldCgpOyBwYWdlICYmIGhhc1RleHQpCi0gICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFRo
aXMtPnVwZGF0ZVF1aWNrTG9va0NvbnRleHRNZW51SXRlbVRpdGxlKGNvbnRleHRNZW51SXRlbVRh
Z1F1aWNrTG9va0ltYWdlRm9yVGV4dFNlbGVjdGlvbigpKTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKLSAgICB9Ci19Ci0KLXZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6dXBkYXRl
UXVpY2tMb29rQ29udGV4dE1lbnVJdGVtVGl0bGUoY29uc3QgU3RyaW5nJiBuZXdUaXRsZSkKLXsK
LSAgICBmb3IgKE5TSW50ZWdlciBpdGVtSW5kZXggPSAwOyBpdGVtSW5kZXggPCBbbV9tZW51IG51
bWJlck9mSXRlbXNdOyArK2l0ZW1JbmRleCkgewotICAgICAgICBhdXRvIGl0ZW0gPSBbbV9tZW51
IGl0ZW1BdEluZGV4Oml0ZW1JbmRleF07Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDxDb250ZXh0
TWVudUFjdGlvbj4oaXRlbS50YWcpID09IENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdl
KSB7Ci0gICAgICAgICAgICBpdGVtLnRpdGxlID0gbmV3VGl0bGU7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgIH0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKLQogdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUl0ZW0oY29u
c3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChO
U01lbnVJdGVtICopPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBh
Z2VQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW0KaW5kZXggZmIwNGVhOWVlZjhhYzBkZWRiZGY5MTIwNzBmZTAzZDg5ZGRhMjQyYy4uYzU4
ZGZiMTE4YWNhMzU0NDgwZTQ4ZjUyZWQzZDU2NGVmMmY5ODEwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC03MzAsNyArNzMwLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlU2hhcmVkUHJldmlld1BhbmVsSWZOZWNlc3NhcnkoKQog
CiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxl
Q29udGV4dE1lbnVRdWlja0xvb2tJbWFnZShRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgYWN0aXZp
dHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQ29udGV4dE1lbnVMb29rVXBJbWFnZSgpCiB7
CiAgICAgQVNTRVJUKG1fYWN0aXZlQ29udGV4dE1lbnVDb250ZXh0RGF0YS53ZWJIaXRUZXN0UmVz
dWx0RGF0YSgpKTsKICAgICAKQEAgLTczOCw3ICs3MzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlQ29udGV4dE1lbnVRdWlja0xvb2tJbWFnZShRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkg
YWN0aQogICAgIGlmICghcmVzdWx0LmltYWdlQml0bWFwKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBzaG93SW1hZ2VJblF1aWNrTG9va1ByZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCBy
ZXN1bHQudG9vbFRpcFRleHQsIFVSTCB7IHJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMIH0sIGFjdGl2
aXR5KTsKKyAgICBzaG93SW1hZ2VJblF1aWNrTG9va1ByZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdl
Qml0bWFwLCByZXN1bHQudG9vbFRpcFRleHQsIFVSTCB7IHJlc3VsdC5hYnNvbHV0ZUltYWdlVVJM
IH0sIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eTo6VmlzdWFsU2VhcmNoKTsKIH0KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OnNob3dJbWFnZUluUXVpY2tMb29rUHJldmlld1BhbmVsKFNoYXJlYWJsZUJp
dG1hcCYgaW1hZ2VCaXRtYXAsIGNvbnN0IFN0cmluZyYgdG9vbHRpcCwgY29uc3QgVVJMJiBpbWFn
ZVVSTCwgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IGFjdGl2aXR5KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjg3MzI0ZjJhNGMyYjAw
MDkyNjljMGExMGVlNDYzMTFmY2ZlMDEyNC4uOWVhOWZjODdmNWJkNzNiOTY4NGZmMTJlMTc5NTk1
OTUzNjdjYTdjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC03MTYxLDcgKzcxNjEsNiBAQAogCQlGNDUxN0Q3QTI2RkJDRDM4MDA0Qzg0
NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlGNDUxQzEwMDI3MDNEODUzMDAy
QkEwM0IgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDY2MEJDMTI1REVGMDgxMDBFODY1OTggLyogUGFzdGVib2FyZEFjY2Vzc0ludGVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZWJvYXJkQWNjZXNzSW50ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUY0N0EwNTE2MjY4MjdBMDkwMDdFNUNGMiAvKiBRdWlja0xvb2tQ
cmV2aWV3QWN0aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVpY2tMb29rUHJldmlld0FjdGl2aXR5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0ODU3MEEyMjY0NEJFQzQwMEMwNUY3
MSAvKiBUaW1lb3V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVvdXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4QkI4REQyNkY5NjM1RDAwMUMxQzQw
IC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjQ4QkI4REUyNkY5NjM1RDAwMUMxQzQwIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODE4MSw3ICs4MTgwLDYgQEAK
IAkJCQlDREEyOUExRjFDQkVCNUZCMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclBy
b3h5Lm1tICovLAogCQkJCUMxNDVDQzBFMjNEQ0E0MjcwMDNBNUVFQiAvKiBQcmVmZXJlbmNlT2Jz
ZXJ2ZXIuaCAqLywKIAkJCQlDMTVDQkIzMzIzRjM0QzM4MDAzMDBDQzcgLyogUHJlZmVyZW5jZU9i
c2VydmVyLm1tICovLAotCQkJCUY0N0EwNTE2MjY4MjdBMDkwMDdFNUNGMiAvKiBRdWlja0xvb2tQ
cmV2aWV3QWN0aXZpdHkuaCAqLywKIAkJCQk1Q0I3QUZERDIzQzUyNzNEMDBFNDlDRjMgLyogUmVz
b3VyY2VMb2FkRGVsZWdhdGUuaCAqLywKIAkJCQk1Q0I3QUZERTIzQzUyNzNEMDBFNDlDRjMgLyog
UmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gKi8sCiAJCQkJNUNBOTg1NEIyMTBCRUI3MzAwNTdFQjZC
IC8qIFNhZmVCcm93c2luZ1dhcm5pbmdDb2NvYS5tbSAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IGQ2YjViMTliZDVhODFiOGMwNDFl
YWM3MmYyZDBmNjVlNWYzNmYxMWMuLmU1YWQ0NDFjNzJiYzJlMDUwOWU1YWU5NGEzYzEzYjk4YzVi
ZDVjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQpAQCAtNTk5LDggKzU5OSw4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE5TSW50ZWdlcj4g
dG9UYWcoV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgICAgICByZXR1cm4g
V2ViTWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVsbHNjcmVlbjsKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToKICAgICAgICAgcmV0dXJuIFdlYk1lbnVJdGVtVGFn
VHJhbnNsYXRlOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U6CiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5Q3JvcHBlZEltYWdlOgorICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAKICAgICBjYXNlIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgLi4uIENvbnRleHRNZW51
SXRlbUxhc3RDdXN0b21UYWc6Cg==
</data>
<flag name="review"
          id="487053"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458225</attachid>
            <date>2022-04-23 17:41:33 -0700</date>
            <delta_ts>2022-04-23 18:07:59 -0700</delta_ts>
            <desc>For landing</desc>
            <filename>bug-234849-20220423174132.patch</filename>
            <type>text/plain</type>
            <size>31611</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxNDhiMzYwNWYxMzU5YWM3
ODMzOTRjOWU4MTVmODkzYzRlNDk5N2MuLjAwY2I2Yzc4ZTgyZDI0ZTk1YTczYWJiYWExZTgxZTE5
ZTk0MWRkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjItMDQtMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBgUHJl
ZmVySW5saW5lVGV4dFNlbGVjdGlvbkluSW1hZ2VzYCBpbnRlcm5hbCBmZWF0dXJlIGZsYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDg0OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXZl
cnRzIHIyNzkxNjQsIHdoaWNoIGludHJvZHVjZWQgYW4gaW50ZXJuYWwgZmVhdHVyZSB0byBhdm9p
ZCBMaXZlIFRleHQgYW5hbHlzaXMgd2hlbiBob3ZlcmluZyBvdmVyCisgICAgICAgIGltYWdlcywg
YW5kIGluc3RlYWQgYWRkZWQgYSBuZXcgY29udGV4dCBtZW51IGl0ZW0gdG8gcmV2ZWFsIHNlbGVj
dGFibGUgdGV4dCBpbiB0aGUgaW1hZ2UgYnkgbGF1bmNoaW5nIHRoZQorICAgICAgICBRdWlja0xv
b2sgcGFuZWwgaW4gTGl2ZSBUZXh0IG1vZGUuCisKKyAgICAgICAgVGhpcyBhbHRlcm5hdGUgTGl2
ZSBUZXh0IGV4cGVyaWVuY2Ugd2FzIG9yaWdpbmFsbHkgZGV2aXNlZCBhcyBhIHdheSB0byBtaXRp
Z2F0ZSB0aGUgcG93ZXIgYW5kIHBlcmZvcm1hbmNlIGltcGFjdAorICAgICAgICBvZiBwYXNzaXZl
bHkgdHJpZ2dlcmluZyBMaXZlIFRleHQgYW5hbHlzaXMgd2hlbiBob3ZlcmluZyBvdmVyIGltYWdl
cyBvbiBwcmUtTTEgZGV2aWNlcywgYnV0IHRoaXMgbWl0aWdhdGlvbiB3YXMKKyAgICAgICAgdWx0
aW1hdGVseSBkZWVtZWQgdW5uZWNlc3NhcnkgaW4gbWFjT1MgMTIuCisKKyAgICAgICAgKiBTaGFy
ZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAg
ICAgICAgKFdlYktpdDo6dG9JbXBsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUXVpY2tM
b29rUHJldmlld0FjdGl2aXR5Lmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJl
c3VsdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29tcHV0ZUhhc0ltYWdlQW5h
bHlzaXNSZXN1bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5o
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVz
dWx0cyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmNvbXB1dGVIYXNJbWFnZUFuYWx5
c2lzUmVzdWx0cyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eTo6cXVpY2tMb29r
UHJldmlld0FjdGl2aXR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZXh0TWVu
dUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZUhh
c1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNv
bXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJl
c3VsdHMpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhhc0ltYWdl
QW5hbHlzaXNSZXN1bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUXVp
Y2tMb29rUHJldmlld0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUXVp
Y2tMb29rUHJldmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJD
b250ZXh0TWVudVByb3h5TWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0
TWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjptZW51SXRlbUlkZW50aWZpZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZy
b21JdGVtcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6Omluc2Vy
dE9yVXBkYXRlUXVpY2tMb29rSW1hZ2VJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6dXBkYXRlUXVpY2tMb29rQ29udGV4dE1lbnVJdGVtVGl0
bGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51TG9va1Vw
SW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51
UXVpY2tMb29rSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDIyLTA0LTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIGAtc2VsZWN0V29yZEZvclJlcGxhY2VtZW50YCBz
aG91bGQgc2VsZWN0IGRpY3RhdGlvbiBhbHRlcm5hdGl2ZXMgdGhhdCBzcGFuIG11bHRpcGxlIHdv
cmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNh
c3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4
IGE5ZWFlNjczZGEzYzE4ODM4ZjYxMGRmMjQ4NmJlMDMxN2RhZjc4ZTYuLjY2ZjU2ODIxMzQ0MjM4
Mzk5MzU4ZTk5NzVlYTZhYTI2NmIxZTNjYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC01NDMsNyArNTQzLDcgQEAgaW5saW5lIFdLQ29udGV4
dE1lbnVJdGVtVGFnIHRvQVBJKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICNl
bmRpZgogICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAg
ICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OwotICAgIGNhc2UgV2Vi
Q29yZTo6Q29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U6CisgICAgY2FzZSBXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKICAgICAgICAgcmV0dXJuIGtXS0NvbnRl
eHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOwogICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJ
dGVtVGFnVHJhbnNsYXRlOgogICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnVHJh
bnNsYXRlOwpAQCAtNzQ4LDcgKzc0OCw3IEBAIGlubGluZSBXZWJDb3JlOjpDb250ZXh0TWVudUFj
dGlvbiB0b0ltcGwoV0tDb250ZXh0TWVudUl0ZW1UYWcgdGFnKQogICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OwogI2VuZGlmCiAgICAgY2FzZSBrV0tD
b250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNv
bnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6
Q29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U7CiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0
ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1U
YWdUcmFuc2xhdGU7CiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdDb3B5Q3JvcHBlZElt
YWdlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUXVpY2tMb29r
UHJldmlld0FjdGl2aXR5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9RdWlja0xv
b2tQcmV2aWV3QWN0aXZpdHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTBkMzY1
NjNmMWE0OWE4NWE1ODczOTZiYjRmMzE5MWE1ZTYzZjYwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9R
dWlja0xvb2tQcmV2aWV3QWN0aXZpdHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotZW51bSBjbGFzcyBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgOiB1
aW50OF90IHsKLSAgICBOb25lLAotICAgIFZpc3VhbFNlYXJjaCwKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCA5ZmFjYTZkOTVjZGIxOTg5NjE1NThm
ZmVkZjJlMmFkOGU4MDVlMDhkLi43MDhkZjQ5OWUyMzcxMTcyN2I1YWUyZjM5YTA2NGY5NDBlNGMy
MDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAg
LTE3MSw3ICsxNzEsNiBAQCBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiBzdHJ1Y3QgV2ViSGl0VGVz
dFJlc3VsdERhdGE7CiAKIGVudW0gY2xhc3MgQ29udGludWVVbnNhZmVMb2FkIDogYm9vbDsKLWVu
dW0gY2xhc3MgSW1hZ2VBbmFseXNpc1R5cGUgOiB1aW50OF90OwogZW51bSBjbGFzcyBVbmRvT3JS
ZWRvIDogYm9vbDsKIAogdHlwZWRlZiBpZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4g
VmFsaWRhdGlvbkl0ZW07CkBAIC01OTYsNyArNTk1LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQogICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBV
UkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBj
b25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKTsKLSAgICB2b2lkIGNvbXB1dGVIYXNJbWFnZUFu
YWx5c2lzUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdl
Qml0bWFwLCBJbWFnZUFuYWx5c2lzVHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CisgICAgdm9pZCBjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGlt
YWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFO
Q0VNRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
aW5kZXggN2U0ZTlkNjAzZmZlMTc5ZGZhZGExZmU2ZmQ1ODVmMGNkYzIzZTI0NC4uNGVkMjU1ZjNi
ZDQxZGFjNzgyNTVkMzBiODk2ZjFmYTQxM2MyYmNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTI4MCw3ICsyODAsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0
IFNoYXJlYWJsZUJpdAogICAgIH0pOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlSGFz
SW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFw
JiBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGUgdHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQordm9pZCBXZWJWaWV3SW1wbDo6Y29tcHV0ZUhhc1Zp
c3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBp
bWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQog
ewogICAgIGlmICghaXNMaXZlVGV4dEF2YWlsYWJsZUFuZEVuYWJsZWQoKSkgewogICAgICAgICBj
b21wbGV0aW9uKGZhbHNlKTsKQEAgLTI4OCwxMyArMjg4LDEyIEBAIHZvaWQgV2ViVmlld0ltcGw6
OmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFy
ZWFibGVCCiAgICAgfQogCiAgICAgYXV0byBjZ0ltYWdlID0gaW1hZ2VCaXRtYXAubWFrZUNHSW1h
Z2UoKTsKLSAgICBhdXRvIGFuYWx5c2lzVHlwZSA9IHR5cGUgPT0gSW1hZ2VBbmFseXNpc1R5cGU6
OlZpc3VhbFNlYXJjaCA/IFZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoIDogVktBbmFseXNpc1R5
cGVUZXh0OwotICAgIGF1dG8gcmVxdWVzdCA9IGNyZWF0ZUltYWdlQW5hbHl6ZXJSZXF1ZXN0KGNn
SW1hZ2UuZ2V0KCksIGltYWdlVVJMLCBbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOm1fcGFn
ZS0+Y3VycmVudFVSTCgpXSwgYW5hbHlzaXNUeXBlKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBjcmVh
dGVJbWFnZUFuYWx5emVyUmVxdWVzdChjZ0ltYWdlLmdldCgpLCBpbWFnZVVSTCwgW05TVVJMIF93
ZWJfVVJMV2l0aFdURlN0cmluZzptX3BhZ2UtPmN1cnJlbnRVUkwoKV0sIFZLQW5hbHlzaXNUeXBl
VmlzdWFsU2VhcmNoKTsKICAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygp
OwotICAgIFtlbnN1cmVJbWFnZUFuYWx5emVyKCkgcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5nZXQo
KSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29t
cGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIHN0YXJ0VGltZSwgYW5hbHlzaXNUeXBlXSAo
Q29jb2FJbWFnZUFuYWx5c2lzICphbmFseXNpcywgTlNFcnJvciAqKSBtdXRhYmxlIHsKLSAgICAg
ICAgQk9PTCByZXN1bHQgPSBbYW5hbHlzaXMgaGFzUmVzdWx0c0ZvckFuYWx5c2lzVHlwZXM6YW5h
bHlzaXNUeXBlXTsKLSAgICAgICAgQ0ZSdW5Mb29wUGVyZm9ybUJsb2NrKENGUnVuTG9vcEdldE1h
aW4oKSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKU5TRXZlbnRUcmFja2luZ1J1bkxvb3BNb2RlLCBt
YWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCByZXN1bHQsIGFu
YWx5c2lzVHlwZSwgc3RhcnRUaW1lXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lzIGNvbXBsZXRlZCBpbiAlLjBmIG1zIChmb3VuZCAl
cz8gJWQpIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5taWxsaXNlY29uZHMo
KSwgYW5hbHlzaXNUeXBlID09IFZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoID8gInZpc3VhbCBz
ZWFyY2ggcmVzdWx0cyIgOiAidGV4dCIsIHJlc3VsdCk7CisgICAgW2Vuc3VyZUltYWdlQW5hbHl6
ZXIoKSBwcm9jZXNzUmVxdWVzdDpyZXF1ZXN0LmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29t
cGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0
aW9uKSwgc3RhcnRUaW1lXSAoQ29jb2FJbWFnZUFuYWx5c2lzICphbmFseXNpcywgTlNFcnJvciAq
KSBtdXRhYmxlIHsKKyAgICAgICAgQk9PTCByZXN1bHQgPSBbYW5hbHlzaXMgaGFzUmVzdWx0c0Zv
ckFuYWx5c2lzVHlwZXM6VktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2hdOworICAgICAgICBDRlJ1
bkxvb3BQZXJmb3JtQmxvY2soQ0ZSdW5Mb29wR2V0TWFpbigpLCAoX19icmlkZ2UgQ0ZTdHJpbmdS
ZWYpTlNFdmVudFRyYWNraW5nUnVuTG9vcE1vZGUsIG1ha2VCbG9ja1B0cihbY29tcGxldGlvbiA9
IFdURk1vdmUoY29tcGxldGlvbiksIHJlc3VsdCwgc3RhcnRUaW1lXSAoKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIFJFTEVBU0VfTE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lzIGNvbXBsZXRlZCBp
biAlLjBmIG1zIChmb3VuZCB2aXN1YWwgc2VhcmNoIHJlc3VsdHM/ICVkKSIsIChNb25vdG9uaWNU
aW1lOjpub3coKSAtIHN0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksIHJlc3VsdCk7CiAgICAgICAg
ICAgICBjb21wbGV0aW9uKHJlc3VsdCk7CiAgICAgICAgIH0pLmdldCgpKTsKICAgICAgICAgQ0ZS
dW5Mb29wV2FrZVVwKENGUnVuTG9vcEdldE1haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmgKaW5kZXggMzViYzQ1ZDhjMmM3YjY5ZWE3ZGUxMmU2YzQzOTQyZmYxYmQxMjA1My4u
OTU0ZDlhZDMwNTY1NmJlMjg5NWUyYTdhOTUyMTZjOWJlNjAyMjU4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTY1LDEwICsxNjUsNiBAQCBjbGFzcyBXZWJQcm9jZXNz
UHJveHk7CiAKIGVudW0gY2xhc3MgQ29udGludWVVbnNhZmVMb2FkIDogYm9vbCB7IE5vLCBZZXMg
fTsKIAotI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLWVudW0gY2xhc3MgSW1hZ2VBbmFseXNp
c1R5cGUgOiB1aW50OF90IHsgVGV4dCwgVmlzdWFsU2VhcmNoIH07Ci0jZW5kaWYKLQogc3RydWN0
IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb247CiBzdHJ1Y3QgRnJhbWVJbmZvRGF0YTsKIHN0cnVj
dCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjsKQEAgLTU2MCw3ICs1NTYsNyBAQCBw
dWJsaWM6CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJiBj
b21wbGV0aW9uKSB7IGNvbXBsZXRpb24oeyB9KTsgfQotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
SGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwgSW1h
Z2VBbmFseXNpc1R5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bikgeyBjb21wbGV0aW9uKGZhbHNlKTsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSGFzVmlz
dWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmLCBTaGFyZWFibGVCaXRtYXAmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pIHsgY29tcGxldGlvbihmYWxzZSk7IH0K
ICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVT
RShVSUNPTlRFWFRNRU5VKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dE1lbnVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1l
bnVQcm94eS5oCmluZGV4IDYzMGJmMTE3MGRhMTc2ZGNjNjVkNjU5YzFmZGY3YzA1MTg1OTEwZTUu
LjFiOGZjYzg0NjY0ZjMwOWFmZTVmNGVhY2QyOGI1NDEzYzFiMWI5MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKQEAgLTMzLDEwICszMyw2IEBA
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgog
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiUXVpY2tMb29rUHJldmlld0FjdGl2aXR5
LmgiCi0jZW5kaWYKLQogT0JKQ19DTEFTUyBOU01lbnU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtNTUsNyArNTEsNiBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVh
bCBOU01lbnUgKnBsYXRmb3JtTWVudSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIE5TQXJyYXkg
KnBsYXRmb3JtRGF0YSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFF1aWNrTG9va1ByZXZpZXdB
Y3Rpdml0eSBxdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBRdWlja0xv
b2tQcmV2aWV3QWN0aXZpdHk6Ok5vbmU7IH07CiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAK
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDBmMzZjYzU0Y2E4MjczOTkwYzA2ODBhOWI3ZDJhY2E2Mjk2OThiZjUuLjJlZjkwMGRmOGUwNjhi
MjY4YTg5YmQ0YzQwMmYzNjRiMjQzNDE2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtMjE2LDcgKzIxNiw2IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkK
ICNpbmNsdWRlICJJbnNlcnRUZXh0T3B0aW9ucy5oIgotI2luY2x1ZGUgIlF1aWNrTG9va1ByZXZp
ZXdBY3Rpdml0eS5oIgogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
aCIKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEuaCIK
ICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCkBAIC03MjA2LDEwICs3
MjA1LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0
IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCiAgICAgICAgICsrbV9wZW5kaW5nTGVhcm5P
cklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z0xvb2tVcEltYWdlOgogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICAgICAgaWYgKG1f
YWN0aXZlQ29udGV4dE1lbnUpCi0gICAgICAgICAgICBoYW5kbGVDb250ZXh0TWVudVF1aWNrTG9v
a0ltYWdlKG1fYWN0aXZlQ29udGV4dE1lbnUtPnF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSgpKTsK
KyAgICAgICAgaGFuZGxlQ29udGV4dE1lbnVMb29rVXBJbWFnZSgpOwogI2VuZGlmCiAgICAgICAg
IHJldHVybjsKIApAQCAtODg0Miw5ICs4ODQwLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVl
c3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQmkK
ICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFRleHRSZWNvZ25pdGlvbihpbWFnZVVSTCwgaW1hZ2VE
YXRhLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5Ojpjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJMJiBp
bWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGUg
dHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQordm9pZCBX
ZWJQYWdlUHJveHk6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYgaW1h
Z2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbikKIHsKLSAgICBwYWdlQ2xpZW50KCkuY29tcHV0ZUhhc0lt
YWdlQW5hbHlzaXNSZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcCwgdHlwZSwgV1RGTW92ZShj
b21wbGV0aW9uKSk7CisgICAgcGFnZUNsaWVudCgpLmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1
bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcCwgV1RGTW92ZShjb21wbGV0aW9uKSk7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFRleHRSZWNv
Z25pdGlvblJlc3VsdCYmIHJlc3VsdHMsIGNvbnN0IEVsZW1lbnRDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChUZXh0UmVj
b2duaXRpb25VcGRhdGVSZXN1bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5YTEwZWYyZjg5NmFhYTE1MTg1ZDAxZTZkZGYy
MzMyYjA0YzJiOTBlLi5kM2FkNGYwMzNlMjE5ZTc1MTBjNjY0ZWRlYjcyNDZlZDQ3ODE2NzgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDIxLDggKzQyMSw2IEBA
IHN0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlOwogc3RydWN0IFdlYlBvcHVwSXRlbTsKIHN0
cnVjdCBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZTsKIAotZW51bSBjbGFzcyBJbWFnZUFuYWx5c2lz
VHlwZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFRhcEhhbmRsaW5nUmVzdWx0IDogdWludDhfdDsK
IGVudW0gY2xhc3MgVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IDogdWludDhfdDsKIGVudW0g
Y2xhc3MgTmVnb3RpYXRlZExlZ2FjeVRMUyA6IGJvb2w7CiBlbnVtIGNsYXNzIFByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQgOiBib29sOwpAQCAtMTc2Miw3ICsxNzYwLDcgQEAgcHVibGljOgog
I2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRp
b24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlRGF0YSwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCB1cGRhdGVX
aXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYm
LCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFRleHRSZWNvZ25pdGlvblVwZGF0
ZVJlc3VsdCk+JiYpOwotICAgIHZvaWQgY29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGNv
bnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIEltYWdlQW5h
bHlzaXNUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGNv
bXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJs
ZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwog
ICAgIHZvaWQgc3RhcnRJbWFnZUFuYWx5c2lzKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcik7CiAj
ZW5kaWYKIApAQCAtMjAzNCw3ICsyMDMyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAgIHZvaWQgaGFuZGxlQ29u
dGV4dE1lbnVRdWlja0xvb2tJbWFnZShRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkpOworICAgIHZv
aWQgaGFuZGxlQ29udGV4dE1lbnVMb29rVXBJbWFnZSgpOwogI2VuZGlmCiAjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKICAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51Q29w
eUNyb3BwZWRJbWFnZShTaGFyZWFibGVCaXRtYXAmLCBjb25zdCBTdHJpbmcmIHByZWZlcnJlZE1J
TUVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLmgKaW5kZXggNDFjN2ViYTg4N2Q2ZjcyMGM5ZWIyYzA5ZTk5NjliZTg5OTg5M2Q4MS4uZGNl
MTU0MTQ1ZjRlM2ViNzRiNzlkMjBlMmFiMjI1OTM4MjMyYjJjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTEzMiw3ICsxMzIsNyBA
QCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIHZvaWQgcmVxdWVz
dFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRt
YXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhjb25zdCBVUkwm
LCBTaGFyZWFibGVCaXRtYXAmLCBJbWFnZUFuYWx5c2lzVHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wdXRlSGFzVmlzdWFsU2VhcmNo
UmVzdWx0cyhjb25zdCBVUkwmLCBTaGFyZWFibGVCaXRtYXAmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgUmVmUHRyPFdlYlBvcHVwTWVu
dVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRl
eCBkZTc0M2YyNmQ2ZDhmOWQ0NjkzZWM3NGZhZjY0NzcyYjVlZDkzMzk5Li5mNGUzMTMwZDlkMjc2
OTg1ZGFlMzIyMjdmMDMyMTRjODdkZGU5N2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC00ODksMTIgKzQ4OSwxMiBAQCB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VV
UkwsIGNvbnN0IFNoYXJlYWJsZQogICAgIG1faW1wbC0+cmVxdWVzdFRleHRSZWNvZ25pdGlvbihp
bWFnZVVSTCwgaW1hZ2VEYXRhLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0K
IAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGNv
bnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIEltYWdlQW5h
bHlzaXNUeXBlIHR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNv
bnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbikKIHsKLSAgICBtX2ltcGwtPmNvbXB1
dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIHR5cGUsIFdU
Rk1vdmUoY29tcGxldGlvbikpOworICAgIG1faW1wbC0+Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJl
c3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAot
I2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyNlbmRpZgogCiBSZWZQdHI8V2ViUG9w
dXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdl
UHJveHkmIHBhZ2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tRdWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaAppbmRleCAxZTI3YzhkM2JjZTllMWM5
MWYwNWU1MzBlZTUyMGM4MDQxNDc3MzQzLi4wMmM3ZDJmMWQ0YjkzZGE0MDY0YjA4NjkyY2MzZTNi
YTRkNGNkMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlj
a0xvb2tQcmV2aWV3Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJQYWdlUHJveHk7Ci1lbnVtIGNsYXNzIFF1aWNrTG9v
a1ByZXZpZXdBY3Rpdml0eSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFF1aWNrTG9va1ByZXZpZXdB
Y3Rpdml0eSA6IHVpbnQ4X3QgeyBOb25lLCBWaXN1YWxTZWFyY2ggfTsKIH0KIAogQGNsYXNzIFFM
UHJldmlld1BhbmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
UXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tRdWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5tbQppbmRleCA1ZjQ5NGU0ZDUzZjE3MDRj
MTBhNzc3NjgyMzhiYmYxMGE2ZTdjMWYwLi4wMGExMGUxNmEwODI5ODUxMTI1ZDhmY2U5NTBhNmUy
NGQ5YzBlZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlj
a0xvb2tQcmV2aWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tRdWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5tbQpAQCAtMjgsNyArMjgsNiBAQAogCiAj
aWYgSEFWRShRVUlDS0xPT0tfUFJFVklFV19JVEVNX0RBVEFfUFJPVklERVIpCiAKLSNpbXBvcnQg
IlF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDxwYWwvbWFjL1F1aWNrTG9va1VJU29m
dExpbmsuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250
ZXh0TWVudVByb3h5TWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4
dE1lbnVQcm94eU1hYy5oCmluZGV4IDMxYmMwNzk3YTFiMDg2YjkzNDJlNTQ0OWU0OGNmNWIzMDUw
NDY0ZWIuLjYxYjk1ZjRmNmQ1Yzg0YTJlNjk5MGUwNmNiNTVhODhjNTcxNzQ4MDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMu
aApAQCAtNjEsMTMgKzYxLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJDb250ZXh0TWVu
dVByb3h5TWFjKE5TVmlldyAqLCBXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRh
JiYsIGNvbnN0IFVzZXJEYXRhJik7CiAKLSAgICBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgcXVp
Y2tMb29rUHJldmlld0FjdGl2aXR5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9xdWlja0xvb2tQ
cmV2aWV3QWN0aXZpdHk7IH0KLQotI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICB2b2lk
IGluc2VydE9yVXBkYXRlUXVpY2tMb29rSW1hZ2VJdGVtKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFJl
ZjxTaGFyZWFibGVCaXRtYXA+JiYgaW1hZ2VCaXRtYXAsIHN0ZDo6b3B0aW9uYWw8V2ViQ29udGV4
dE1lbnVJdGVtRGF0YT4mJiwgYm9vbCk7Ci0gICAgdm9pZCB1cGRhdGVRdWlja0xvb2tDb250ZXh0
TWVudUl0ZW1UaXRsZShjb25zdCBTdHJpbmcmKTsKLSNlbmRpZgotCiAgICAgdm9pZCBzaG93KCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxX
ZWJDb250ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHVzZUNvbnRleHRNZW51
SXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKQEAgLTg3
LDcgKzgwLDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNNZW51PiBtX21lbnU7CiAgICAg
UmV0YWluUHRyPFdLTWVudURlbGVnYXRlPiBtX21lbnVEZWxlZ2F0ZTsKICAgICBXZWFrT2JqQ1B0
cjxOU1ZpZXc+IG1fd2ViVmlldzsKLSAgICBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgbV9xdWlj
a0xvb2tQcmV2aWV3QWN0aXZpdHkgeyBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHk6Ok5vbmUgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCAzYWE1YzdkNmYzNzMw
ZDgxYmJjYzU0Njg4MTkxZjczN2JmMTQ5ZjY1Li4yZmQ5MjkxYzE3ZTU4ZjI2ZDMwOWFjMjMyMjQ2
YjUwNWU4NmNlNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtNDEsNyArNDEsNiBAQAogI2ltcG9ydCAiV2Vi
Q29udGV4dE1lbnVJdGVtLmgiCiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgiCiAj
aW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKLSNpbXBvcnQgIldlYlByZWZlcmVuY2VzLmgiCiAjaW1w
b3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnRSZWN0
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KQEAgLTUxMyw3ICs1MTIs
NyBAQCBzdGF0aWMgTlNTdHJpbmcgKm1lbnVJdGVtSWRlbnRpZmllcihjb25zdCBXZWJDb3JlOjpD
b250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZWxv
YWQ6CiAgICAgICAgIHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQ7CiAKLSAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlOgorICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnTG9va1VwSW1hZ2U6CiAgICAgICAgIHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZp
ZXJSZXZlYWxJbWFnZTsKIAogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViOgpA
QCAtNjAyLDIyICs2MDEsMTcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250
ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICAgICAgfSk7
CiAgICAgfQogCi0gICAgYm9vbCBzaG91bGRVcGRhdGVRdWlja0xvb2tJdGVtVGl0bGUgPSBmYWxz
ZTsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IHF1aWNrTG9va0l0
ZW1Ub0luc2VydElmTmVlZGVkOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29udGV4dE1lbnVJdGVt
RGF0YT4gbG9va1VwSW1hZ2VJdGVtOwogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAg
IGF1dG8gaW5kZXhPZlF1aWNrTG9va0l0ZW0gPSBmaWx0ZXJlZEl0ZW1zLmZpbmRJZihbJl0gKGF1
dG8mIGl0ZW0pIHsKLSAgICAgICAgcmV0dXJuIGl0ZW0uYWN0aW9uKCkgPT0gV2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U7Ci0gICAgfSk7CisgICAgZmlsdGVyZWRJdGVt
cy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmXSAoYXV0byYgaXRlbSkgeworICAgICAgICBpZiAoaXRl
bS5hY3Rpb24oKSAhPSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChpbmRleE9mUXVpY2tMb29rSXRlbSAh
PSBub3RGb3VuZCkgewotICAgICAgICBpZiAoYXV0byBwYWdlID0gdGhpcy0+cGFnZSgpOyBwYWdl
ICYmIHBhZ2UtPnByZWZlcmVuY2VzKCkucHJlZmVySW5saW5lVGV4dFNlbGVjdGlvbkluSW1hZ2Vz
KCkpIHsKLSAgICAgICAgICAgIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkID0gZmlsdGVy
ZWRJdGVtc1tpbmRleE9mUXVpY2tMb29rSXRlbV07Ci0gICAgICAgICAgICBmaWx0ZXJlZEl0ZW1z
LnJlbW92ZShpbmRleE9mUXVpY2tMb29rSXRlbSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRpdGxlID0gdHJ1ZTsKLSAgICB9Ci0jZW5kaWYg
Ly8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAgICBsb29rVXBJbWFnZUl0ZW0gPSB7IGl0
ZW0gfTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSk7CisjZW5kaWYKIAogI2lmIEhBVkUo
VFJBTlNMQVRJT05fVUlfU0VSVklDRVMpCiAgICAgaWYgKCFwYWdlKCktPmNhbkhhbmRsZUNvbnRl
eHRNZW51VHJhbnNsYXRpb24oKSB8fCBpc1BvcG92ZXIpIHsKQEAgLTYzMyw4ICs2MjcsOCBAQCB2
b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJvbUl0ZW1zKGNvbnN0
IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAgIGF1dG8gaW1hZ2VVUkwgPSBVUkwgeyBoaXRUZXN0
RGF0YS5hYnNvbHV0ZUltYWdlVVJMIH07CiAgICAgYXV0byBpbWFnZUJpdG1hcCA9IGhpdFRlc3RE
YXRhLmltYWdlQml0bWFwOwogCi0gICAgYXV0byBzcGFyc2VNZW51SXRlbXMgPSByZXRhaW5QdHIo
W05TUG9pbnRlckFycmF5IHN0cm9uZ09iamVjdHNQb2ludGVyQXJyYXldKTsKLSAgICBhdXRvIGlu
c2VydE1lbnVJdGVtID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fSwgd2Vha1BhZ2UgPSBXZWFrUHRyIHsgcGFnZSgpIH0sIGltYWdlVVJMID0gV1RGTW92ZShpbWFn
ZVVSTCksIGltYWdlQml0bWFwID0gV1RGTW92ZShpbWFnZUJpdG1hcCksIHNob3VsZFVwZGF0ZVF1
aWNrTG9va0l0ZW1UaXRsZSwgcXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQgPSBXVEZNb3Zl
KHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgaXRlbXNSZW1haW5pbmcgPSBmaWx0ZXJlZEl0ZW1zLnNp
emUoKSwgbWVudSA9IFdURk1vdmUobWVudSksIHNwYXJzZU1lbnVJdGVtc10oTlNNZW51SXRlbSAq
aXRlbSwgTlNVSW50ZWdlciBpbmRleCkgbXV0YWJsZSB7CisgICAgUmV0YWluUHRyIHNwYXJzZU1l
bnVJdGVtcyA9IFtOU1BvaW50ZXJBcnJheSBzdHJvbmdPYmplY3RzUG9pbnRlckFycmF5XTsKKyAg
ICBhdXRvIGluc2VydE1lbnVJdGVtID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRUaGlzID0gUmVm
IHsgKnRoaXMgfSwgd2Vha1BhZ2UgPSBXZWFrUHRyIHsgcGFnZSgpIH0sIGltYWdlVVJMID0gV1RG
TW92ZShpbWFnZVVSTCksIGltYWdlQml0bWFwID0gV1RGTW92ZShpbWFnZUJpdG1hcCksIGxvb2tV
cEltYWdlSXRlbSA9IFdURk1vdmUobG9va1VwSW1hZ2VJdGVtKSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgaXRlbXNSZW1haW5pbmcgPSBmaWx0ZXJlZEl0
ZW1zLnNpemUoKSwgbWVudSA9IFdURk1vdmUobWVudSksIHNwYXJzZU1lbnVJdGVtc10oTlNNZW51
SXRlbSAqaXRlbSwgTlNVSW50ZWdlciBpbmRleCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChp
bmRleCA8IFtzcGFyc2VNZW51SXRlbXMgY291bnRdKTsKICAgICAgICAgQVNTRVJUKCFbc3BhcnNl
TWVudUl0ZW1zIHBvaW50ZXJBdEluZGV4OmluZGV4XSk7CiAgICAgICAgIFtzcGFyc2VNZW51SXRl
bXMgcmVwbGFjZVBvaW50ZXJBdEluZGV4OmluZGV4IHdpdGhQb2ludGVyOml0ZW1dOwpAQCAtNjQz
LDEzICs2MzcsMTQgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVu
dUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKIAogICAgICAgICBbbWVudSBz
ZXRJdGVtQXJyYXk6W3NwYXJzZU1lbnVJdGVtcyBhbGxPYmplY3RzXV07CiAKLSAgICAgICAgUmVm
UHRyIHBhZ2UgeyB3ZWFrUGFnZS5nZXQoKSB9OwotICAgICAgICBpZiAocGFnZSAmJiBpbWFnZUJp
dG1hcCkgeworICAgICAgICBSZWZQdHIgcGFnZSA9IHdlYWtQYWdlLmdldCgpOworICAgICAgICBp
ZiAobG9va1VwSW1hZ2VJdGVtICYmIHBhZ2UgJiYgaW1hZ2VCaXRtYXApIHsKICNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCi0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5pbnNlcnRPclVwZGF0
ZVF1aWNrTG9va0ltYWdlSXRlbShpbWFnZVVSTCwgaW1hZ2VCaXRtYXAucmVsZWFzZU5vbk51bGwo
KSwgV1RGTW92ZShxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCksIHNob3VsZFVwZGF0ZVF1
aWNrTG9va0l0ZW1UaXRsZSk7CisgICAgICAgICAgICBwYWdlLT5jb21wdXRlSGFzVmlzdWFsU2Vh
cmNoUmVzdWx0cyhpbWFnZVVSTCwgKmltYWdlQml0bWFwLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyksIGxvb2tVcEltYWdlSXRlbSA9IFdURk1vdmUoKmxvb2tVcEltYWdl
SXRlbSldIChib29sIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpIG11dGFibGUgeworICAgICAgICAg
ICAgICAgIGlmIChoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKQorICAgICAgICAgICAgICAgICAgICBb
cHJvdGVjdGVkVGhpcy0+bV9tZW51IGFkZEl0ZW06Y3JlYXRlTWVudUFjdGlvbkl0ZW0obG9va1Vw
SW1hZ2VJdGVtKS5nZXQoKV07CisgICAgICAgICAgICB9KTsKICNlbHNlCi0gICAgICAgICAgICBV
TlVTRURfUEFSQU0ocXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQpOwotICAgICAgICAgICAg
VU5VU0VEX1BBUkFNKHNob3VsZFVwZGF0ZVF1aWNrTG9va0l0ZW1UaXRsZSk7CiAgICAgICAgICAg
ICBVTlVTRURfUEFSQU0oaW1hZ2VVUkwpOwogI2VuZGlmCiAgICAgICAgIH0KQEAgLTY2NSw2MyAr
NjYwLDYgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21J
dGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICB9CiB9CiAKLSNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCi0KLXZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6aW5zZXJ0T3JV
cGRhdGVRdWlja0xvb2tJbWFnZUl0ZW0oY29uc3QgVVJMJiBpbWFnZVVSTCwgUmVmPFNoYXJlYWJs
ZUJpdG1hcD4mJiBpbWFnZUJpdG1hcCwgc3RkOjpvcHRpb25hbDxXZWJDb250ZXh0TWVudUl0ZW1E
YXRhPiYmIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkLCBib29sIHNob3VsZFVwZGF0ZVF1
aWNrTG9va0l0ZW1UaXRsZSkKLXsKLSAgICBSZWYgcGFnZSA9ICp0aGlzLT5wYWdlKCk7Ci0gICAg
aWYgKHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkKSB7Ci0gICAgICAgIHBhZ2UtPmNvbXB1
dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCksIElt
YWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFyY2gsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LCBxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCA9IFdURk1vdmUoKnF1aWNrTG9va0l0
ZW1Ub0luc2VydElmTmVlZGVkKV0gKGJvb2wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0YWJs
ZSB7Ci0gICAgICAgICAgICBpZiAoUmVmUHRyIHByb3RlY3RlZFRoaXMgPSB3ZWFrVGhpcy5nZXQo
KTsgcHJvdGVjdGVkVGhpcyAmJiBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSB7Ci0gICAgICAgICAg
ICAgICAgcHJvdGVjdGVkVGhpcy0+bV9xdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgPSBRdWlja0xv
b2tQcmV2aWV3QWN0aXZpdHk6OlZpc3VhbFNlYXJjaDsKLSAgICAgICAgICAgICAgICBbcHJvdGVj
dGVkVGhpcy0+bV9tZW51IGFkZEl0ZW06TlNNZW51SXRlbS5zZXBhcmF0b3JJdGVtXTsKLSAgICAg
ICAgICAgICAgICBbcHJvdGVjdGVkVGhpcy0+bV9tZW51IGFkZEl0ZW06Y3JlYXRlTWVudUFjdGlv
bkl0ZW0ocXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQpLmdldCgpXTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoc2hvdWxk
VXBkYXRlUXVpY2tMb29rSXRlbVRpdGxlKSB7Ci0gICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNJbWFn
ZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCksIEltYWdlQW5hbHlz
aXNUeXBlOjpWaXN1YWxTZWFyY2gsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFr
UGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGltYWdlVVJMLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUo
aW1hZ2VCaXRtYXApXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBtdXRhYmxlIHsKLSAg
ICAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRUaGlzIHsgd2Vha1RoaXMuZ2V0KCkgfTsKLSAgICAg
ICAgICAgIGlmICghcHJvdGVjdGVkVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgICAgIFJlZlB0ciBwYWdlIHsgd2Vha1BhZ2UuZ2V0KCkgfTsKLSAgICAgICAgICAgIGlm
ICghcGFnZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChoYXNW
aXN1YWxTZWFyY2hSZXN1bHRzKSB7Ci0gICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9x
dWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgPSBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHk6OlZpc3Vh
bFNlYXJjaDsKLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT51cGRhdGVRdWlja0xvb2tD
b250ZXh0TWVudUl0ZW1UaXRsZShjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZvclZp
c3VhbFNlYXJjaCgpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVS
TCwgaW1hZ2VCaXRtYXAuZ2V0KCksIEltYWdlQW5hbHlzaXNUeXBlOjpUZXh0LCBbd2Vha1RoaXMg
PSBXVEZNb3ZlKHdlYWtUaGlzKSwgd2Vha1BhZ2VdIChib29sIGhhc1RleHQpIG11dGFibGUgewot
ICAgICAgICAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRUaGlzIHsgd2Vha1RoaXMuZ2V0KCkgfTsK
LSAgICAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMpCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICAgICAgICAgIGlmIChSZWZQdHIgcGFnZSA9IHdlYWtQYWdlLmdl
dCgpOyBwYWdlICYmIGhhc1RleHQpCi0gICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMt
PnVwZGF0ZVF1aWNrTG9va0NvbnRleHRNZW51SXRlbVRpdGxlKGNvbnRleHRNZW51SXRlbVRhZ1F1
aWNrTG9va0ltYWdlRm9yVGV4dFNlbGVjdGlvbigpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9KTsKLSAgICB9Ci19Ci0KLXZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6dXBkYXRlUXVp
Y2tMb29rQ29udGV4dE1lbnVJdGVtVGl0bGUoY29uc3QgU3RyaW5nJiBuZXdUaXRsZSkKLXsKLSAg
ICBmb3IgKE5TSW50ZWdlciBpdGVtSW5kZXggPSAwOyBpdGVtSW5kZXggPCBbbV9tZW51IG51bWJl
ck9mSXRlbXNdOyArK2l0ZW1JbmRleCkgewotICAgICAgICBhdXRvIGl0ZW0gPSBbbV9tZW51IGl0
ZW1BdEluZGV4Oml0ZW1JbmRleF07Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDxDb250ZXh0TWVu
dUFjdGlvbj4oaXRlbS50YWcpID09IENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlKSB7
Ci0gICAgICAgICAgICBpdGVtLnRpdGxlID0gbmV3VGl0bGU7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgIH0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
LQogdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUl0ZW0oY29uc3Qg
V2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU01l
bnVJdGVtICopPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShTRVJWSUNFX0NP
TlRST0xTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQ
cm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMu
bW0KaW5kZXggZmIwNGVhOWVlZjhhYzBkZWRiZGY5MTIwNzBmZTAzZDg5ZGRhMjQyYy4uYzU4ZGZi
MTE4YWNhMzU0NDgwZTQ4ZjUyZWQzZDU2NGVmMmY5ODEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC03MzAsNyArNzMwLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmNsb3NlU2hhcmVkUHJldmlld1BhbmVsSWZOZWNlc3NhcnkoKQogCiAj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQ29u
dGV4dE1lbnVRdWlja0xvb2tJbWFnZShRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgYWN0aXZpdHkp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQ29udGV4dE1lbnVMb29rVXBJbWFnZSgpCiB7CiAg
ICAgQVNTRVJUKG1fYWN0aXZlQ29udGV4dE1lbnVDb250ZXh0RGF0YS53ZWJIaXRUZXN0UmVzdWx0
RGF0YSgpKTsKICAgICAKQEAgLTczOCw3ICs3MzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFu
ZGxlQ29udGV4dE1lbnVRdWlja0xvb2tJbWFnZShRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgYWN0
aQogICAgIGlmICghcmVzdWx0LmltYWdlQml0bWFwKQogICAgICAgICByZXR1cm47CiAKLSAgICBz
aG93SW1hZ2VJblF1aWNrTG9va1ByZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCByZXN1
bHQudG9vbFRpcFRleHQsIFVSTCB7IHJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMIH0sIGFjdGl2aXR5
KTsKKyAgICBzaG93SW1hZ2VJblF1aWNrTG9va1ByZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0
bWFwLCByZXN1bHQudG9vbFRpcFRleHQsIFVSTCB7IHJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMIH0s
IFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eTo6VmlzdWFsU2VhcmNoKTsKIH0KIAogdm9pZCBXZWJQ
YWdlUHJveHk6OnNob3dJbWFnZUluUXVpY2tMb29rUHJldmlld1BhbmVsKFNoYXJlYWJsZUJpdG1h
cCYgaW1hZ2VCaXRtYXAsIGNvbnN0IFN0cmluZyYgdG9vbHRpcCwgY29uc3QgVVJMJiBpbWFnZVVS
TCwgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IGFjdGl2aXR5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjg3MzI0ZjJhNGMyYjAwMDky
NjljMGExMGVlNDYzMTFmY2ZlMDEyNC4uOWVhOWZjODdmNWJkNzNiOTY4NGZmMTJlMTc5NTk1OTUz
NjdjYTdjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC03MTYxLDcgKzcxNjEsNiBAQAogCQlGNDUxN0Q3QTI2RkJDRDM4MDA0Qzg0NzUg
LyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlGNDUxQzEwMDI3MDNEODUzMDAyQkEw
M0IgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDY2MEJDMTI1REVGMDgxMDBFODY1OTggLyogUGFzdGVib2FyZEFjY2Vzc0ludGVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQYXN0ZWJvYXJkQWNjZXNzSW50ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUY0N0EwNTE2MjY4MjdBMDkwMDdFNUNGMiAvKiBRdWlja0xvb2tQcmV2
aWV3QWN0aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVpY2tMb29rUHJldmlld0FjdGl2aXR5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0ODU3MEEyMjY0NEJFQzQwMEMwNUY3MSAv
KiBUaW1lb3V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVvdXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4QkI4REQyNkY5NjM1RDAwMUMxQzQwIC8q
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQ4QkI4REUyNkY5NjM1RDAwMUMxQzQwIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODE4MSw3ICs4MTgwLDYgQEAKIAkJ
CQlDREEyOUExRjFDQkVCNUZCMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5
Lm1tICovLAogCQkJCUMxNDVDQzBFMjNEQ0E0MjcwMDNBNUVFQiAvKiBQcmVmZXJlbmNlT2JzZXJ2
ZXIuaCAqLywKIAkJCQlDMTVDQkIzMzIzRjM0QzM4MDAzMDBDQzcgLyogUHJlZmVyZW5jZU9ic2Vy
dmVyLm1tICovLAotCQkJCUY0N0EwNTE2MjY4MjdBMDkwMDdFNUNGMiAvKiBRdWlja0xvb2tQcmV2
aWV3QWN0aXZpdHkuaCAqLywKIAkJCQk1Q0I3QUZERDIzQzUyNzNEMDBFNDlDRjMgLyogUmVzb3Vy
Y2VMb2FkRGVsZWdhdGUuaCAqLywKIAkJCQk1Q0I3QUZERTIzQzUyNzNEMDBFNDlDRjMgLyogUmVz
b3VyY2VMb2FkRGVsZWdhdGUubW0gKi8sCiAJCQkJNUNBOTg1NEIyMTBCRUI3MzAwNTdFQjZCIC8q
IFNhZmVCcm93c2luZ1dhcm5pbmdDb2NvYS5tbSAqLywK
</data>
<flag name="commit-queue"
          id="487054"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458226</attachid>
            <date>2022-04-23 18:11:45 -0700</date>
            <delta_ts>2022-04-23 22:54:54 -0700</delta_ts>
            <desc>For landing</desc>
            <filename>bug-234849-20220423181144.patch</filename>
            <type>text/plain</type>
            <size>45603</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMwYTZkYzU4NjcyYzk4ODZhZjkyNzU5
OTI4ZjVkNmYzYjJjZTYwZTcuLjM4OGEwYWRkNzI3MzM0NzZmNTViZTcyYmFlNDdkZGU0YjgyOWU4
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDQtMjMgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBgUHJlZmVySW5saW5lVGV4
dFNlbGVjdGlvbkluSW1hZ2VzYCBpbnRlcm5hbCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDg0OQorCisgICAgICAgIFJldmll
d2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgU2VlIFdlYktpdC9DaGFuZ2VMb2cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNJbnRlcm5hbC55YW1sOgorCiAyMDIyLTA0LTIwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gQWRkIHN0cmluZyBjb25jYXRlbmF0ZSBhZGFwdGVy
IGZvciBVVUlECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlkNjk2YTM4MzFiNjhmNDQzMjJkZDk2Njg5ZDEwMzQ5
ZjYzNjQ1My4uZjQxNzA3YTVkNjk1YWFhYTRmOTAwYmM0M2Q2NmRkZTM5OTU5YmNkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTA0LTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgYFByZWZlcklubGluZVRleHRT
ZWxlY3Rpb25JbkltYWdlc2AgaW50ZXJuYWwgZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4NDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIFNlZSBXZWJLaXQvQ2hhbmdlTG9nIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorICAg
ICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZCBjb25z
dCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0Tm9kZSk6CisgICAgICAgICogcGxh
dGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRDb250
ZXh0TWVudUFjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlRm9yVGV4dFNlbGVjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZv
clZpc3VhbFNlYXJjaCk6IERlbGV0ZWQuCisKIDIwMjItMDQtMjIgIEFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBCb3hUcmVlIHNob3Vs
ZCBiZSBhYmxlIHRvIGJ1aWxkIG5vbi1pbmxpbmUgY29udGVudCB0cmVlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUx
NDhiMzYwNWYxMzU5YWM3ODMzOTRjOWU4MTVmODkzYzRlNDk5N2MuLjAwY2I2Yzc4ZTgyZDI0ZTk1
YTczYWJiYWExZTgxZTE5ZTk0MWRkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjIt
MDQtMjMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIHRoZSBgUHJlZmVySW5saW5lVGV4dFNlbGVjdGlvbkluSW1hZ2VzYCBpbnRlcm5hbCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNDg0OQorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAg
VGhpcyBwYXRjaCByZXZlcnRzIHIyNzkxNjQsIHdoaWNoIGludHJvZHVjZWQgYW4gaW50ZXJuYWwg
ZmVhdHVyZSB0byBhdm9pZCBMaXZlIFRleHQgYW5hbHlzaXMgd2hlbiBob3ZlcmluZyBvdmVyCisg
ICAgICAgIGltYWdlcywgYW5kIGluc3RlYWQgYWRkZWQgYSBuZXcgY29udGV4dCBtZW51IGl0ZW0g
dG8gcmV2ZWFsIHNlbGVjdGFibGUgdGV4dCBpbiB0aGUgaW1hZ2UgYnkgbGF1bmNoaW5nIHRoZQor
ICAgICAgICBRdWlja0xvb2sgcGFuZWwgaW4gTGl2ZSBUZXh0IG1vZGUuCisKKyAgICAgICAgVGhp
cyBhbHRlcm5hdGUgTGl2ZSBUZXh0IGV4cGVyaWVuY2Ugd2FzIG9yaWdpbmFsbHkgZGV2aXNlZCBh
cyBhIHdheSB0byBtaXRpZ2F0ZSB0aGUgcG93ZXIgYW5kIHBlcmZvcm1hbmNlIGltcGFjdAorICAg
ICAgICBvZiBwYXNzaXZlbHkgdHJpZ2dlcmluZyBMaXZlIFRleHQgYW5hbHlzaXMgd2hlbiBob3Zl
cmluZyBvdmVyIGltYWdlcyBvbiBwcmUtTTEgZGV2aWNlcywgYnV0IHRoaXMgbWl0aWdhdGlvbiB3
YXMKKyAgICAgICAgdWx0aW1hdGVseSBkZWVtZWQgdW5uZWNlc3NhcnkgaW4gbWFjT1MgMTIuCisK
KyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgIChXZWJL
aXQ6OnRvQVBJKToKKyAgICAgICAgKFdlYktpdDo6dG9JbXBsKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvUXVpY2tMb29rUHJldmlld0FjdGl2aXR5Lmg6IFJlbW92ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29tcHV0ZUhh
c1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29t
cHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50Ojpjb21wdXRlSGFz
VmlzdWFsU2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmNvbXB1
dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L1dlYkNvbnRleHRNZW51UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eTo6cXVpY2tMb29rUHJldmlld0FjdGl2aXR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyk6IERlbGV0ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhh
c1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1dLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1dLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmg6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjptZW51SXRl
bUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpn
ZXRDb250ZXh0TWVudUZyb21JdGVtcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51
UHJveHlNYWM6Omluc2VydE9yVXBkYXRlUXVpY2tMb29rSW1hZ2VJdGVtKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6dXBkYXRlUXVpY2tMb29rQ29u
dGV4dE1lbnVJdGVtVGl0bGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2Vi
UGFnZVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUNv
bnRleHRNZW51TG9va1VwSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omhh
bmRsZUNvbnRleHRNZW51UXVpY2tMb29rSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIyLTA0LTIyICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIGAtc2VsZWN0V29yZEZv
clJlcGxhY2VtZW50YCBzaG91bGQgc2VsZWN0IGRpY3RhdGlvbiBhbHRlcm5hdGl2ZXMgdGhhdCBz
cGFuIG11bHRpcGxlIHdvcmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYTgwMDc1
MzNmYWIxMDBhMmM0N2NiY2M5MmE1N2UzNjAyZDdhMjNiNi4uMjYyZmQzYzVlNmQyNjA0Y2YwYjc1
ZDM4ZDE4NzczM2Q5YWM5ODNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDIyLTA0LTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgYFByZWZlcklubGluZVRleHRTZWxlY3Rpb25Jbklt
YWdlc2AgaW50ZXJuYWwgZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4NDkKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vp
bmlnLgorCisgICAgICAgIFNlZSBXZWJLaXQvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAodG9UYWcpOgorCiAy
MDIyLTA0LTIxICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBYU1MgQXVkaXRvcjogUGFydCA0IChTZXR0aW5ncykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwgYi9T
b3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1s
CmluZGV4IGUzOThkNGUxM2Y3MjI4ZjFjZDc2YWJjYzYyMTE5ZTRjMjc2NzBmOTUuLmU1ZDc3YTFl
NWJhYjA4ZDE4NjZiZDVjNTlhZWM0YjQ3Mjg1MjM4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
U2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKKysrIGIvU291
cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbApA
QCAtNzMxLDIyICs3MzEsNiBAQCBQcmVmZXJGYXN0ZXJDbGlja092ZXJEb3VibGVUYXA6CiAgICAg
ICAiUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKFdBVENIT1MpIjogdHJ1ZQogICAg
ICAgZGVmYXVsdDogZmFsc2UKIAotUHJlZmVySW5saW5lVGV4dFNlbGVjdGlvbkluSW1hZ2VzOgot
ICB0eXBlOiBib29sCi0gIGh1bWFuUmVhZGFibGVOYW1lOiAiSW5saW5lIFRleHQgU2VsZWN0aW9u
IGluIEltYWdlcyIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiUHJlZmVyIGlubGluZSB0
ZXh0IHNlbGVjdGlvbiBpbiBpbWFnZXMgb3ZlciB1c2luZyB0aGUgY29udGV4dCBtZW51IgotICBj
b25kaXRpb246IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgZGVmYXVsdFZhbHVlOgotICAgIFdl
YkNvcmU6Ci0gICAgICAiSEFWRShVSUtJVF9XRUJLSVRfSU5URVJOQUxTKSI6IGZhbHNlCi0gICAg
ICBkZWZhdWx0OiB0cnVlCi0gICAgV2ViS2l0TGVnYWN5OgotICAgICAgIkhBVkUoVUlLSVRfV0VC
S0lUX0lOVEVSTkFMUykiOiBmYWxzZQotICAgICAgZGVmYXVsdDogdHJ1ZQotICAgIFdlYktpdDoK
LSAgICAgICJIQVZFKFVJS0lUX1dFQktJVF9JTlRFUk5BTFMpIjogZmFsc2UKLSAgICAgIGRlZmF1
bHQ6IHRydWUKLQogUHJlZmVyU2FuZGJveGVkTWVkaWFQYXJzaW5nOgogICB0eXBlOiBib29sCiAg
IGh1bWFuUmVhZGFibGVOYW1lOiAiUHJlZmVyIFNhbmRib3hlZCBQYXJzaW5nIG9mIE1lZGlhIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBi
L1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXggOGFlODUz
MTlhZmI1NmYyM2NiYzE3MGYyZDdkYzEyZjc0MDU0NWNjYi4uZDdiYTZmZTIzOTk4ZDZhNTUwNTk2
MGE2OGQ3ZGFkOGUyNmQ2MzA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6
YWJsZS5zdHJpbmdzCkBAIC02MjIsOSArNjIyLDYgQEAKIC8qIExvb2sgVXAgaW4gRGljdGlvbmFy
eSBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkxvb2sgVXAgaW4gRGljdGlvbmFyeSIgPSAiTG9vayBV
cCBpbiBEaWN0aW9uYXJ5IjsKIAotLyogVGl0bGUgZm9yIFF1aWNrIExvb2sgYWN0aW9uIGJ1dHRv
biBmb3IgaW1hZ2VzIHdpdGggdmlzdWFsIHNlYXJjaCByZXN1bHRzICovCi0iTG9vayBVcCBpbiBR
dWljayBMb29rIiA9ICJMb29rIFVwIGluIFF1aWNrIExvb2siOwotCiAvKiBMb29rIFVwIGNvbnRl
eHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCAqLwogIkxvb2sgVXAg4oCcJUDigJ0iID0g
Ikxvb2sgVXAg4oCcJUDigJ0iOwogCkBAIC04MDIsOSArNzk5LDYgQEAKIC8qIFRpdGxlIGZvciBm
aWxlIHVwbG9hZCBwcm9ncmVzcyB2aWV3ICovCiAiUHJlcGFyaW5nIChmaWxlIHVwbG9hZCkiID0g
IlByZXBhcmluZ+KApiI7CiAKLS8qIFRpdGxlIGZvciBRdWljayBMb29rIGFjdGlvbiBidXR0b24g
Ki8KLSJRdWljayBMb29rIiA9ICJRdWljayBMb29rIjsKLQogLyogVW5kbyBhY3Rpb24gbmFtZSAq
LwogIlJhaXNlIEJhc2VsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIgPSAiUmFpc2UgQmFzZWxpbmUi
OwogCkBAIC04NDcsOSArODQxLDYgQEAKIC8qIFNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBj
b250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQgKi8KICJTZWFyY2gg
d2l0aCAlQCIgPSAiU2VhcmNoIHdpdGggJUAiOwogCi0vKiBUaXRsZSBmb3IgUXVpY2sgTG9vayBh
Y3Rpb24gYnV0dG9uIGZvciBpbWFnZXMgd2l0aCB0ZXh0ICovCi0iU2VsZWN0IFRleHQgaW4gUXVp
Y2sgTG9vayIgPSAiU2VsZWN0IFRleHQgaW4gUXVpY2sgTG9vayI7Ci0KIC8qIFZhbGlkYXRpb24g
bWVzc2FnZSBmb3IgcmVxdWlyZWQgZmlsZSBpbnB1dHMgdGhhdCBoYXZlIG5vIHZhbHVlICovCiAi
U2VsZWN0IGEgZmlsZSIgPSAiU2VsZWN0IGEgZmlsZSI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCBkNzFjM2Y3ODRiMmVmY2IzYTFlMjc2
NDZhNGVkYWQyOTA3ZTQ3NGFiLi5kN2I0Y2M4ZTNlZGNiMDJhZTU5N2U3MjdhMGRjZDY3ZGJjMDQw
ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
CkBAIC01MjcsNyArNTI3LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRN
ZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICAgICAgZnJh
bWUtPmVkaXRvcigpLmFwcGx5RGljdGF0aW9uQWx0ZXJuYXRpdmUodGl0bGUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlDcm9wcGVkSW1hZ2U6Ci0gICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKKyAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ0xvb2tVcEltYWdlOgogICAgICAgICAvLyBUaGVzZSBzaG91bGQgYmUgaGFuZGxl
ZCBhdCB0aGUgY2xpZW50IGxheWVyLgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgYnJlYWs7CkBAIC04MzYsNiArODM2LDkgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OnBvcHVsYXRlKCkKICAgICBDb250ZXh0TWVudUl0ZW0gU2VsZWN0QWxsSXRlbShBY3Rpb25U
eXBlLCBDb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwsIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVj
dEFsbCgpKTsKICAgICBDb250ZXh0TWVudUl0ZW0gSW5zZXJ0RW1vamlJdGVtKEFjdGlvblR5cGUs
IENvbnRleHRNZW51SXRlbVRhZ0luc2VydEVtb2ppLCBjb250ZXh0TWVudUl0ZW1UYWdJbnNlcnRF
bW9qaSgpKTsKICNlbmRpZgorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBDb250ZXh0
TWVudUl0ZW0gTG9va1VwSW1hZ2VJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0xv
b2tVcEltYWdlLCBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpKTsKKyNlbmRpZgogCiAj
aWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCiAgICAgQ29udGV4dE1lbnVJdGVtIFNo
YXJlTWVudUl0ZW07CkBAIC04NjQsMTIgKzg2Nyw2IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9s
bGVyOjpwb3B1bGF0ZSgpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQotICAgIGJvb2wgc2hvdWxkQXBwZW5kUXVpY2tMb29rSW1hZ2VJdGVtID0g
ZmFsc2U7Ci0gICAgYXV0byBxdWlja0xvb2tJdGVtVGl0bGUgPSBmcmFtZS0+c2V0dGluZ3MoKS5w
cmVmZXJJbmxpbmVUZXh0U2VsZWN0aW9uSW5JbWFnZXMoKSA/IGNvbnRleHRNZW51SXRlbVRhZ0xv
b2tVcEltYWdlKCkgOiBjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZSgpOwotICAgIENv
bnRleHRNZW51SXRlbSBRdWlja0xvb2tJbWFnZUl0ZW0geyBBY3Rpb25UeXBlLCBDb250ZXh0TWVu
dUl0ZW1UYWdRdWlja0xvb2tJbWFnZSwgcXVpY2tMb29rSXRlbVRpdGxlIH07Ci0jZW5kaWYKLQog
ICAgIGF1dG8gYWRkU2VsZWN0ZWRUZXh0QWN0aW9uc0lmTmVlZGVkID0gWyZdIChjb25zdCBTdHJp
bmcmIHNlbGVjdGVkVGV4dCkgewogICAgICAgICBpZiAoc2VsZWN0ZWRUZXh0LmlzRW1wdHkoKSkK
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTkyMyw3ICs5MjAsOCBAQCB2b2lkIENvbnRleHRNZW51
Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kSXRl
bShjb3B5Q3JvcHBlZEltYWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gICAgICAgICAgICAgICAgICAgIHNob3VsZEFwcGVu
ZFF1aWNrTG9va0ltYWdlSXRlbSA9IG1fY2xpZW50LnN1cHBvcnRzTG9va1VwSW5JbWFnZXMoKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG1fY2xpZW50LnN1cHBvcnRzTG9va1VwSW5JbWFnZXMo
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oTG9va1VwSW1hZ2VJdGVtLCBt
X2NvbnRleHRNZW51LmdldCgpKTsKICNlbmRpZgogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KQEAgLTExODgsMTggKzExODYsNiBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6
cG9wdWxhdGUoKQogICAgICAgICAgICAgYXBwZW5kSXRlbShTaGFyZU1lbnVJdGVtLCBtX2NvbnRl
eHRNZW51LmdldCgpKTsKICAgICAgICAgfQogICAgIH0KLQotI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKLSAgICBpZiAoc2hvdWxkQXBwZW5kUXVpY2tMb29rSW1hZ2VJdGVtKSB7Ci0gICAgICAg
IGlmICghZnJhbWUtPnNldHRpbmdzKCkucHJlZmVySW5saW5lVGV4dFNlbGVjdGlvbkluSW1hZ2Vz
KCkpIHsKLSAgICAgICAgICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIGlubGluZSB0ZXh0IHNlbGVj
dGlvbiBpcyBlbmFibGVkLCB0aGUgTG9vayBVcCBpdGVtIGlzIG9ubHkgYWRkZWQgaWYKLSAgICAg
ICAgICAgIC8vIHdlIGRpc2NvdmVyIHZpc3VhbCBsb29rIHVwIHJlc3VsdHMgYWZ0ZXIgaW1hZ2Ug
YW5hbHlzaXMuIEluIHRoYXQgc2NlbmFyaW8sIGEgc2VwYXJhdG9yCi0gICAgICAgICAgICAvLyBp
cyBvbmx5IGFkZGVkIGJlZm9yZSB0aGUgTG9vayBVcCBpdGVtIG9uY2Ugd2UncmUgY2VydGFpbiB0
aGF0IHdlIHdhbnQgdG8gc2hvdyBpdC4KLSAgICAgICAgICAgIGFwcGVuZEl0ZW0oKnNlcGFyYXRv
ckl0ZW0oKSwgbV9jb250ZXh0TWVudS5nZXQoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgYXBwZW5k
SXRlbShRdWlja0xvb2tJbWFnZUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwotICAgIH0KLSNl
bmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiB9CiAKIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjphZGRJbnNwZWN0RWxlbWVudEl0ZW0oKQpAQCAtMTUyNiw3ICsxNTEyLDcgQEAgdm9p
ZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVu
dUl0ZW0mIGl0ZW0pIGNvbnN0CiAgICAgICAgICAgICBzaG91bGRFbmFibGUgPSBtX2NvbnRleHQu
aGl0VGVzdFJlc3VsdCgpLm1lZGlhSGFzQXVkaW8oKTsKICAgICAgICAgICAgIHNob3VsZENoZWNr
ID0gc2hvdWxkRW5hYmxlICYmICBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLm1lZGlhTXV0ZWQo
KTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1F1
aWNrTG9va0ltYWdlOgorICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdl
OgogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToKICAgICAgICAgICAg
IGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwY2Ez
MmZlNGFlY2QwYWZlOTRkZjBlMTFiOWZlYTA2Njg5OWJiNjY3Li5iMDdhMjI5ZmNhZjRmNmY1MmQ2
OWRlMzM3MGQxMjE4YTU1NWU1MDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC0yNTc4LDEyICsyNTc4LDEwIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2
ZW50VGFyZ2V0Tm9kZShjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqCiAgICAgbV9l
bGVtZW50VW5kZXJNb3VzZSA9IHRhcmdldEVsZW1lbnQ7CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCi0gICAgaWYgKG1fZnJhbWUuc2V0dGluZ3MoKS5wcmVmZXJJbmxpbmVUZXh0U2VsZWN0
aW9uSW5JbWFnZXMoKSkgewotICAgICAgICBpZiAoIXRleHRSZWNvZ25pdGlvbkNhbmRpZGF0ZUVs
ZW1lbnQoKSkKLSAgICAgICAgICAgIG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5zdG9wKCk7
Ci0gICAgICAgIGVsc2UgaWYgKCFwbGF0Zm9ybU1vdXNlRXZlbnQubW92ZW1lbnREZWx0YSgpLmlz
WmVybygpKQotICAgICAgICAgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyLnJlc3RhcnQo
KTsKLSAgICB9CisgICAgaWYgKCF0ZXh0UmVjb2duaXRpb25DYW5kaWRhdGVFbGVtZW50KCkpCisg
ICAgICAgIG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5zdG9wKCk7CisgICAgZWxzZSBpZiAo
IXBsYXRmb3JtTW91c2VFdmVudC5tb3ZlbWVudERlbHRhKCkuaXNaZXJvKCkpCisgICAgICAgIG1f
dGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5yZXN0YXJ0KCk7CiAjZW5kaWYgLy8gRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQogCiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCmluZGV4IDE3MDc5M2M5
MjFhNTk4NWNjOGFjMTU1ZDA1YWRmYjc3MTFhOWZhODMuLjQzNWYyMzdkYmE4Y2MyZDkwZjczZmQx
ODlkM2IyZWY3YmM0MzVhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnVJdGVtLmNwcApAQCAtMjU5LDcgKzI1OSw3IEBAIGJvb2wgaXNWYWxpZENvbnRleHRNZW51QWN0
aW9uKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9u
OjpDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0Z1bGxzY3JlZW46CiAgICAgY2FzZSBDb250
ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgIGNhc2UgQ29u
dGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxs
c2NyZWVuOgotICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1F1
aWNrTG9va0ltYWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEltYWdlOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51
SXRlbVRhZ1RyYW5zbGF0ZToKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVu
dUl0ZW1CYXNlQ3VzdG9tVGFnOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRN
ZW51SXRlbUxhc3RDdXN0b21UYWc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51
SXRlbS5oCmluZGV4IGY4MGQxYmU3NDkwNWFhZjUzNTA5YTIwMDQxYzJkYjI1YWU0NTA1MzAuLjE4
NWE1MWQ2MTA4ZWI0ZGYxYmQ2NTZjNGMzZGFhMjJlYmIyMjFhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xNDcsNyArMTQ3LDcgQEAgZW51bSBDb250
ZXh0TWVudUFjdGlvbiB7CiAgICAgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNl
ZEZ1bGxzY3JlZW4sCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9DdXJyZW50
UXVpY2tOb3RlLAogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvTmV3UXVpY2tO
b3RlLAotICAgIENvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlLAorICAgIENvbnRleHRN
ZW51SXRlbVRhZ0xvb2tVcEltYWdlLAogICAgIENvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZSwK
ICAgICBDb250ZXh0TWVudUl0ZW1UYWdDb3B5Q3JvcHBlZEltYWdlLAogICAgIENvbnRleHRNZW51
SXRlbUxhc3ROb25DdXN0b21UYWcgPSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5Q3JvcHBlZEltYWdl
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IGEyMGI1
ODhlNjkzNzE2OWExMDY3ZDM5ZDdjMTA5ZjM0NTllOGMzOTYuLjcwNTc0NjVjNWVlYWQ4ZWJiNWRm
NDc5MjFlMzNhNzA3NDMxMDM3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmgKQEAgLTM3MiwxMCArMzcyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZUZvclRleHRTZWxlY3Rpb24oKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1h
Z2VGb3JWaXN1YWxTZWFyY2goKTsKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisj
ZW5kaWYKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJU19FTkhBTkNFTUVOVFMpCiAgICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlDcm9wcGVkSW1hZ2UoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmlu
Z3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmlu
Z3NDb2NvYS5tbQppbmRleCAzYjUyMTgxNzliMDMzYmVjMmEwZmIwM2NkNjljMjU0ODVkZjFhNjk0
Li5mZmNlNzkzMzIzNGEwMDJhNDk1MmQyZmFhODVjYjk4YmYzMWNiNDgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1t
CkBAIC0zMDIsMjIgKzMwMiw3IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFn
ZSgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAiLCAiVGl0bGUgZm9yIExvb2sg
VXAgYWN0aW9uIGJ1dHRvbiIpOwogfQogCi1TdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUXVpY2tM
b29rSW1hZ2UoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJRdWljayBMb29rIiwgIlRp
dGxlIGZvciBRdWljayBMb29rIGFjdGlvbiBidXR0b24iKTsKLX0KLQotU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlRm9yVGV4dFNlbGVjdGlvbigpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlNlbGVjdCBUZXh0IGluIFF1aWNrIExvb2siLCAiVGl0bGUgZm9yIFF1
aWNrIExvb2sgYWN0aW9uIGJ1dHRvbiBmb3IgaW1hZ2VzIHdpdGggdGV4dCIpOwotfQotCi1TdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2VGb3JWaXN1YWxTZWFyY2goKQotewot
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29rIFVwIGluIFF1aWNrIExvb2siLCAiVGl0bGUg
Zm9yIFF1aWNrIExvb2sgYWN0aW9uIGJ1dHRvbiBmb3IgaW1hZ2VzIHdpdGggdmlzdWFsIHNlYXJj
aCByZXN1bHRzIik7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisjZW5k
aWYKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJU19FTkhBTkNFTUVOVFMpCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggYTllYWU2NzNkYTNj
MTg4MzhmNjEwZGYyNDg2YmUwMzE3ZGFmNzhlNi4uNjZmNTY4MjEzNDQyMzgzOTkzNThlOTk3NWVh
NmFhMjY2YjFlM2NjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tT
aGFyZWRBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRB
UElDYXN0LmgKQEAgLTU0Myw3ICs1NDMsNyBAQCBpbmxpbmUgV0tDb250ZXh0TWVudUl0ZW1UYWcg
dG9BUEkoV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogI2VuZGlmCiAgICAgY2Fz
ZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdTaGFyZU1lbnU6CiAgICAgICAgIHJldHVybiBr
V0tDb250ZXh0TWVudUl0ZW1UYWdTaGFyZU1lbnU7Ci0gICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKKyAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51
SXRlbVRhZ0xvb2tVcEltYWdlOgogICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFn
UmV2ZWFsSW1hZ2U7CiAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xh
dGU6CiAgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU7CkBAIC03
NDgsNyArNzQ4LDcgQEAgaW5saW5lIFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIHRvSW1wbChX
S0NvbnRleHRNZW51SXRlbVRhZyB0YWcpCiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1UYWdTaGFyZU1lbnU7CiAjZW5kaWYKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRl
bVRhZ1JldmVhbEltYWdlOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVt
VGFnUXVpY2tMb29rSW1hZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0
ZW1UYWdMb29rVXBJbWFnZTsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0
ZToKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZTsK
ICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ0NvcHlDcm9wcGVkSW1hZ2U6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9RdWlja0xvb2tQcmV2aWV3QWN0aXZp
dHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1F1aWNrTG9va1ByZXZpZXdBY3Rp
dml0eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMGQzNjU2M2YxYTQ5YTg1YTU4
NzM5NmJiNGYzMTkxYTVlNjNmNjBlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1F1aWNrTG9va1ByZXZp
ZXdBY3Rpdml0eS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1lbnVtIGNsYXNzIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSA6IHVpbnQ4X3QgewotICAg
IE5vbmUsCi0gICAgVmlzdWFsU2VhcmNoLAotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
LSNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oCmluZGV4IDlmYWNhNmQ5NWNkYjE5ODk2MTU1OGZmZWRmMmUyYWQ4ZTgw
NWUwOGQuLjcwOGRmNDk5ZTIzNzExNzI3YjVhZTJmMzlhMDY0Zjk0MGU0YzIwNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtMTcxLDcgKzE3MSw2
IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIHN0cnVjdCBXZWJIaXRUZXN0UmVzdWx0RGF0YTsK
IAogZW51bSBjbGFzcyBDb250aW51ZVVuc2FmZUxvYWQgOiBib29sOwotZW51bSBjbGFzcyBJbWFn
ZUFuYWx5c2lzVHlwZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFVuZG9PclJlZG8gOiBib29sOwog
CiB0eXBlZGVmIGlkIDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPiBWYWxpZGF0aW9uSXRl
bTsKQEAgLTU5Niw3ICs1OTUsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCiAgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkws
IGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIGNvbnN0IFN0cmluZyYg
aWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRp
b25SZXN1bHQmJik+JiYpOwotICAgIHZvaWQgY29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRz
KGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIEltYWdl
QW5hbHlzaXNUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lk
IGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJl
YWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA3ZTRlOWQ2
MDNmZmUxNzlkZmFkYTFmZTZmZDU4NWYwY2RjMjNlMjQ0Li40ZWQyNTVmM2JkNDFkYWM3ODI1NWQz
MGI4OTZmMWZhNDEzYzJiY2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQpAQCAtMjgwLDcgKzI4MCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlcXVl
c3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0
CiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lz
UmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFw
LCBJbWFnZUFuYWx5c2lzVHlwZSB0eXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb24pCit2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVz
dWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCiB7CiAgICAgaWYgKCFp
c0xpdmVUZXh0QXZhaWxhYmxlQW5kRW5hYmxlZCgpKSB7CiAgICAgICAgIGNvbXBsZXRpb24oZmFs
c2UpOwpAQCAtMjg4LDEzICsyODgsMTIgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y29tcHV0ZUhhc0lt
YWdlQW5hbHlzaXNSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUIKICAgICB9
CiAKICAgICBhdXRvIGNnSW1hZ2UgPSBpbWFnZUJpdG1hcC5tYWtlQ0dJbWFnZSgpOwotICAgIGF1
dG8gYW5hbHlzaXNUeXBlID0gdHlwZSA9PSBJbWFnZUFuYWx5c2lzVHlwZTo6VmlzdWFsU2VhcmNo
ID8gVktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2ggOiBWS0FuYWx5c2lzVHlwZVRleHQ7Ci0gICAg
YXV0byByZXF1ZXN0ID0gY3JlYXRlSW1hZ2VBbmFseXplclJlcXVlc3QoY2dJbWFnZS5nZXQoKSwg
aW1hZ2VVUkwsIFtOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6bV9wYWdlLT5jdXJyZW50VVJM
KCldLCBhbmFseXNpc1R5cGUpOworICAgIGF1dG8gcmVxdWVzdCA9IGNyZWF0ZUltYWdlQW5hbHl6
ZXJSZXF1ZXN0KGNnSW1hZ2UuZ2V0KCksIGltYWdlVVJMLCBbTlNVUkwgX3dlYl9VUkxXaXRoV1RG
U3RyaW5nOm1fcGFnZS0+Y3VycmVudFVSTCgpXSwgVktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2gp
OwogICAgIGF1dG8gc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7Ci0gICAgW2Vuc3Vy
ZUltYWdlQW5hbHl6ZXIoKSBwcm9jZXNzUmVxdWVzdDpyZXF1ZXN0LmdldCgpIHByb2dyZXNzSGFu
ZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uID0gV1RG
TW92ZShjb21wbGV0aW9uKSwgc3RhcnRUaW1lLCBhbmFseXNpc1R5cGVdIChDb2NvYUltYWdlQW5h
bHlzaXMgKmFuYWx5c2lzLCBOU0Vycm9yICopIG11dGFibGUgewotICAgICAgICBCT09MIHJlc3Vs
dCA9IFthbmFseXNpcyBoYXNSZXN1bHRzRm9yQW5hbHlzaXNUeXBlczphbmFseXNpc1R5cGVdOwot
ICAgICAgICBDRlJ1bkxvb3BQZXJmb3JtQmxvY2soQ0ZSdW5Mb29wR2V0TWFpbigpLCAoX19icmlk
Z2UgQ0ZTdHJpbmdSZWYpTlNFdmVudFRyYWNraW5nUnVuTG9vcE1vZGUsIG1ha2VCbG9ja1B0cihb
Y29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIHJlc3VsdCwgYW5hbHlzaXNUeXBlLCBz
dGFydFRpbWVdICgpIG11dGFibGUgewotICAgICAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAi
SW1hZ2UgYW5hbHlzaXMgY29tcGxldGVkIGluICUuMGYgbXMgKGZvdW5kICVzPyAlZCkiLCAoTW9u
b3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLm1pbGxpc2Vjb25kcygpLCBhbmFseXNpc1R5
cGUgPT0gVktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2ggPyAidmlzdWFsIHNlYXJjaCByZXN1bHRz
IiA6ICJ0ZXh0IiwgcmVzdWx0KTsKKyAgICBbZW5zdXJlSW1hZ2VBbmFseXplcigpIHByb2Nlc3NS
ZXF1ZXN0OnJlcXVlc3QuZ2V0KCkgcHJvZ3Jlc3NIYW5kbGVyOm5pbCBjb21wbGV0aW9uSGFuZGxl
cjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCBzdGFydFRp
bWVdIChDb2NvYUltYWdlQW5hbHlzaXMgKmFuYWx5c2lzLCBOU0Vycm9yICopIG11dGFibGUgewor
ICAgICAgICBCT09MIHJlc3VsdCA9IFthbmFseXNpcyBoYXNSZXN1bHRzRm9yQW5hbHlzaXNUeXBl
czpWS0FuYWx5c2lzVHlwZVZpc3VhbFNlYXJjaF07CisgICAgICAgIENGUnVuTG9vcFBlcmZvcm1C
bG9jayhDRlJ1bkxvb3BHZXRNYWluKCksIChfX2JyaWRnZSBDRlN0cmluZ1JlZilOU0V2ZW50VHJh
Y2tpbmdSdW5Mb29wTW9kZSwgbWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uID0gV1RGTW92ZShjb21w
bGV0aW9uKSwgcmVzdWx0LCBzdGFydFRpbWVdICgpIG11dGFibGUgeworICAgICAgICAgICAgUkVM
RUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMgY29tcGxldGVkIGluICUuMGYgbXMgKGZv
dW5kIHZpc3VhbCBzZWFyY2ggcmVzdWx0cz8gJWQpIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0g
c3RhcnRUaW1lKS5taWxsaXNlY29uZHMoKSwgcmVzdWx0KTsKICAgICAgICAgICAgIGNvbXBsZXRp
b24ocmVzdWx0KTsKICAgICAgICAgfSkuZ2V0KCkpOwogICAgICAgICBDRlJ1bkxvb3BXYWtlVXAo
Q0ZSdW5Mb29wR2V0TWFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRl
eCAzNWJjNDVkOGMyYzdiNjllYTdkZTEyZTZjNDM5NDJmZjFiZDEyMDUzLi45NTRkOWFkMzA1NjU2
YmUyODk1ZTJhN2E5NTIxNmM5YmU2MDIyNThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCkBAIC0xNjUsMTAgKzE2NSw2IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAogZW51
bSBjbGFzcyBDb250aW51ZVVuc2FmZUxvYWQgOiBib29sIHsgTm8sIFllcyB9OwogCi0jaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQotZW51bSBjbGFzcyBJbWFnZUFuYWx5c2lzVHlwZSA6IHVpbnQ4
X3QgeyBUZXh0LCBWaXN1YWxTZWFyY2ggfTsKLSNlbmRpZgotCiBzdHJ1Y3QgRm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbjsKIHN0cnVjdCBGcmFtZUluZm9EYXRhOwogc3RydWN0IEludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uOwpAQCAtNTYwLDcgKzU1Niw3IEBAIHB1YmxpYzoKIAogI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRleHRSZWNv
Z25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYgaW1hZ2VEYXRhLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pIHsg
Y29tcGxldGlvbih7IH0pOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVIYXNJbWFnZUFuYWx5
c2lzUmVzdWx0cyhjb25zdCBVUkwmLCBTaGFyZWFibGVCaXRtYXAmLCBJbWFnZUFuYWx5c2lzVHlw
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRp
b24oZmFsc2UpOyB9CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1
bHRzKGNvbnN0IFVSTCYsIFNoYXJlYWJsZUJpdG1hcCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbikgeyBjb21wbGV0aW9uKGZhbHNlKTsgfQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1F
TlUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKaW5k
ZXggNjMwYmYxMTcwZGExNzZkY2M2NWQ2NTljMWZkZjdjMDUxODU5MTBlNS4uMWI4ZmNjODQ2NjRm
MzA5YWZlNWY0ZWFjZDI4YjU0MTNjMWIxYjkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaApAQCAtMzMsMTAgKzMzLDYgQEAKICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLSNpZiBQTEFURk9S
TShDT0NPQSkKLSNpbmNsdWRlICJRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkuaCIKLSNlbmRpZgot
CiBPQkpDX0NMQVNTIE5TTWVudTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NSw3ICs1MSw2
IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0dWFsIE5TTWVudSAqcGxh
dGZvcm1NZW51KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgTlNBcnJheSAqcGxhdGZvcm1EYXRh
KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IHF1aWNr
TG9va1ByZXZpZXdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIFF1aWNrTG9va1ByZXZpZXdBY3Rp
dml0eTo6Tm9uZTsgfTsKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAogcHJvdGVjdGVkOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMGYzNmNjNTRjYTgy
NzM5OTBjMDY4MGE5YjdkMmFjYTYyOTY5OGJmNS4uMmVmOTAwZGY4ZTA2OGIyNjhhODliZDRjNDAy
ZjM2NGIyNDM0MTYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0yMTYsNyArMjE2LDYgQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIklu
c2VydFRleHRPcHRpb25zLmgiCi0jaW5jbHVkZSAiUXVpY2tMb29rUHJldmlld0FjdGl2aXR5Lmgi
CiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUg
IlJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YS5oIgogI2luY2x1ZGUgIlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKQEAgLTcyMDYsMTAgKzcyMDUsOSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1l
bnVJdGVtRGF0YSYgaXRlbSkKICAgICAgICAgKyttX3BlbmRpbmdMZWFybk9ySWdub3JlV29yZE1l
c3NhZ2VDb3VudDsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z1F1aWNrTG9va0ltYWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6
CiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAgICAgICBpZiAobV9hY3RpdmVDb250ZXh0
TWVudSkKLSAgICAgICAgICAgIGhhbmRsZUNvbnRleHRNZW51UXVpY2tMb29rSW1hZ2UobV9hY3Rp
dmVDb250ZXh0TWVudS0+cXVpY2tMb29rUHJldmlld0FjdGl2aXR5KCkpOworICAgICAgICBoYW5k
bGVDb250ZXh0TWVudUxvb2tVcEltYWdlKCk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuOwogCkBA
IC04ODQyLDkgKzg4NDAsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFRleHRSZWNvZ25p
dGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaQogICAgIHBhZ2VDbGll
bnQoKS5yZXF1ZXN0VGV4dFJlY29nbml0aW9uKGltYWdlVVJMLCBpbWFnZURhdGEsIGlkZW50aWZp
ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFy
ZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBJbWFnZUFuYWx5c2lzVHlwZSB0eXBlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6
Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVh
YmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uKQogewotICAgIHBhZ2VDbGllbnQoKS5jb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jl
c3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLCB0eXBlLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsK
KyAgICBwYWdlQ2xpZW50KCkuY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoaW1hZ2VVUkws
IGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoVGV4dFJlY29nbml0aW9uUmVzdWx0
JiYgcmVzdWx0cywgY29uc3QgRWxlbWVudENvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9p
bnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFRleHRSZWNvZ25pdGlvblVwZGF0
ZVJlc3VsdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IDlhMTBlZjJmODk2YWFhMTUxODVkMDFlNmRkZjIzMzJiMDRjMmI5MGUu
LmQzYWQ0ZjAzM2UyMTllNzUxMGM2NjRlZGViNzI0NmVkNDc4MTY3ODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00MjEsOCArNDIxLDYgQEAgc3RydWN0IFdlYk5h
dmlnYXRpb25EYXRhU3RvcmU7CiBzdHJ1Y3QgV2ViUG9wdXBJdGVtOwogc3RydWN0IFdlYlNwZWVj
aFN5bnRoZXNpc1ZvaWNlOwogCi1lbnVtIGNsYXNzIEltYWdlQW5hbHlzaXNUeXBlIDogdWludDhf
dDsKLWVudW0gY2xhc3MgVGFwSGFuZGxpbmdSZXN1bHQgOiB1aW50OF90OwogZW51bSBjbGFzcyBU
ZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQgOiB1aW50OF90OwogZW51bSBjbGFzcyBOZWdvdGlh
dGVkTGVnYWN5VExTIDogYm9vbDsKIGVudW0gY2xhc3MgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCA6IGJvb2w7CkBAIC0xNzYyLDcgKzE3NjAsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQogICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwm
IGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBjb25z
dCBTdHJpbmcmIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4
dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKTsKICAgICB2b2lkIHVwZGF0ZVdpdGhUZXh0UmVjb2du
aXRpb25SZXN1bHQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYsIGNvbnN0IFdlYkNv
cmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0KT4mJik7
Ci0gICAgdm9pZCBjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJMJiBpbWFn
ZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgY29tcHV0ZUhhc1Zpc3Vh
bFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFn
ZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzdGFy
dEltYWdlQW5hbHlzaXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKTsKICNlbmRpZgogCkBAIC0y
MDM0LDcgKzIwMzIsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudVF1aWNr
TG9va0ltYWdlKFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSk7CisgICAgdm9pZCBoYW5kbGVDb250
ZXh0TWVudUxvb2tVcEltYWdlKCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNf
RU5IQU5DRU1FTlRTKQogICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVDb3B5Q3JvcHBlZEltYWdl
KFNoYXJlYWJsZUJpdG1hcCYsIGNvbnN0IFN0cmluZyYgcHJlZmVycmVkTUlNRVR5cGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA0
MWM3ZWJhODg3ZDZmNzIwYzllYjJjMDllOTk2OWJlODk5ODkzZDgxLi5kY2UxNTQxNDVmNGUzZWI3
NGI3OWQyMGUyYWIyMjU5MzgyMzJiMmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApAQCAtMTMyLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAK
ICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0
aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBp
bWFnZURhdGEsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgY29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGNvbnN0IFVSTCYsIFNoYXJlYWJsZUJp
dG1hcCYsIEltYWdlQW5hbHlzaXNUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0
IFVSTCYsIFNoYXJlYWJsZUJpdG1hcCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0
ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IGRlNzQzZjI2ZDZk
OGY5ZDQ2OTNlYzc0ZmFmNjQ3NzJiNWVkOTMzOTkuLmY0ZTMxMzBkOWQyNzY5ODVkYWUzMjIyN2Yw
MzIxNGM4N2RkZTk3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMubW0KQEAgLTQ4OSwxMiArNDg5LDEyIEBAIHZvaWQgUGFnZUNsaWVudElt
cGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hh
cmVhYmxlCiAgICAgbV9pbXBsLT5yZXF1ZXN0VGV4dFJlY29nbml0aW9uKGltYWdlVVJMLCBpbWFn
ZURhdGEsIGlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCi12b2lkIFBhZ2VD
bGllbnRJbXBsOjpjb21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoY29uc3QgVVJMJiBpbWFn
ZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgSW1hZ2VBbmFseXNpc1R5cGUgdHlw
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQordm9pZCBQYWdl
Q2xpZW50SW1wbDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFn
ZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uKQogewotICAgIG1faW1wbC0+Y29tcHV0ZUhhc0ltYWdlQW5h
bHlzaXNSZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcCwgdHlwZSwgV1RGTW92ZShjb21wbGV0
aW9uKSk7CisgICAgbV9pbXBsLT5jb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhpbWFnZVVS
TCwgaW1hZ2VCaXRtYXAsIFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCi0jZW5kaWYgLy8gRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQorI2VuZGlmCiAKIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4g
UGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1By
ZXZpZXdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xv
b2tQcmV2aWV3Q29udHJvbGxlci5oCmluZGV4IDFlMjdjOGQzYmNlOWUxYzkxZjA1ZTUzMGVlNTIw
YzgwNDE0NzczNDMuLjAyYzdkMmYxZDRiOTNkYTQwNjRiMDg2OTJjYzNlM2JhNGQ0Y2QxM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUXVpY2tMb29r
UHJldmlld0NvbnRyb2xsZXIuaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKLWVudW0gY2xhc3MgUXVpY2tMb29rUHJldmlld0FjdGl2
aXR5IDogdWludDhfdDsKK2VudW0gY2xhc3MgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IDogdWlu
dDhfdCB7IE5vbmUsIFZpc3VhbFNlYXJjaCB9OwogfQogCiBAY2xhc3MgUUxQcmV2aWV3UGFuZWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQcmV2
aWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9v
a1ByZXZpZXdDb250cm9sbGVyLm1tCmluZGV4IDVmNDk0ZTRkNTNmMTcwNGMxMGE3Nzc2ODIzOGJi
ZjEwYTZlN2MxZjAuLjAwYTEwZTE2YTA4Mjk4NTExMjVkOGZjZTk1MGE2ZTI0ZDljMGVlNjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdD
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1F1aWNrTG9v
a1ByZXZpZXdDb250cm9sbGVyLm1tCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBIQVZFKFFVSUNL
TE9PS19QUkVWSUVXX0lURU1fREFUQV9QUk9WSURFUikKIAotI2ltcG9ydCAiUXVpY2tMb29rUHJl
dmlld0FjdGl2aXR5LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbXBvcnQgPHBhbC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlN
YWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFj
LmgKaW5kZXggMzFiYzA3OTdhMWIwODZiOTM0MmU1NDQ5ZTQ4Y2Y1YjMwNTA0NjRlYi4uNjFiOTVm
NGY2ZDVjODRhMmU2OTkwZTA2Y2I1NWE4OGM1NzE3NDgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oCkBAIC02MSwxMyAr
NjEsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYkNvbnRleHRNZW51UHJveHlNYWMoTlNW
aWV3ICosIFdlYlBhZ2VQcm94eSYsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiwgY29uc3QgVXNl
ckRhdGEmKTsKIAotICAgIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSBxdWlja0xvb2tQcmV2aWV3
QWN0aXZpdHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3F1aWNrTG9va1ByZXZpZXdBY3Rpdml0
eTsgfQotCi0jaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAgIHZvaWQgaW5zZXJ0T3JVcGRh
dGVRdWlja0xvb2tJbWFnZUl0ZW0oY29uc3QgVVJMJiBpbWFnZVVSTCwgUmVmPFNoYXJlYWJsZUJp
dG1hcD4mJiBpbWFnZUJpdG1hcCwgc3RkOjpvcHRpb25hbDxXZWJDb250ZXh0TWVudUl0ZW1EYXRh
PiYmLCBib29sKTsKLSAgICB2b2lkIHVwZGF0ZVF1aWNrTG9va0NvbnRleHRNZW51SXRlbVRpdGxl
KGNvbnN0IFN0cmluZyYpOwotI2VuZGlmCi0KICAgICB2b2lkIHNob3coKSBvdmVycmlkZTsKICAg
ICB2b2lkIHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51
SXRlbT4+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgdXNlQ29udGV4dE1lbnVJdGVtcyhWZWN0b3I8
UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYpIG92ZXJyaWRlOwpAQCAtODcsNyArODAsNiBAQCBw
cml2YXRlOgogICAgIFJldGFpblB0cjxOU01lbnU+IG1fbWVudTsKICAgICBSZXRhaW5QdHI8V0tN
ZW51RGVsZWdhdGU+IG1fbWVudURlbGVnYXRlOwogICAgIFdlYWtPYmpDUHRyPE5TVmlldz4gbV93
ZWJWaWV3OwotICAgIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSBtX3F1aWNrTG9va1ByZXZpZXdB
Y3Rpdml0eSB7IFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eTo6Tm9uZSB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
ZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IDNhYTVjN2Q2ZjM3MzBkODFiYmNjNTQ2ODgx
OTFmNzM3YmYxNDlmNjUuLjJmZDkyOTFjMTdlNThmMjZkMzA5YWMyMzIyNDZiNTA1ZTg2Y2U0ZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVBy
b3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVu
dVByb3h5TWFjLm1tCkBAIC00MSw3ICs0MSw2IEBACiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudUl0
ZW0uaCIKICNpbXBvcnQgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKICNpbXBvcnQgIldlYlBh
Z2VQcm94eS5oIgotI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbXBvcnQgPFdlYkNvcmUv
R3JhcGhpY3NDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgpAQCAtNTEzLDcgKzUxMiw3IEBAIHN0YXRpYyBO
U1N0cmluZyAqbWVudUl0ZW1JZGVudGlmaWVyKGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51QWN0
aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JlbG9hZDoKICAgICAgICAg
cmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZDsKIAotICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnUXVpY2tMb29rSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29r
VXBJbWFnZToKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJldmVhbEltYWdl
OwogCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWI6CkBAIC02MDIsMjIgKzYw
MSwxNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJvbUl0
ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAgICAgICB9KTsKICAgICB9CiAKLSAg
ICBib29sIHNob3VsZFVwZGF0ZVF1aWNrTG9va0l0ZW1UaXRsZSA9IGZhbHNlOwotICAgIHN0ZDo6
b3B0aW9uYWw8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4gcXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZO
ZWVkZWQ7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBsb29rVXBJ
bWFnZUl0ZW07CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gICAgYXV0byBpbmRleE9m
UXVpY2tMb29rSXRlbSA9IGZpbHRlcmVkSXRlbXMuZmluZElmKFsmXSAoYXV0byYgaXRlbSkgewot
ICAgICAgICByZXR1cm4gaXRlbS5hY3Rpb24oKSA9PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1U
YWdRdWlja0xvb2tJbWFnZTsKLSAgICB9KTsKKyAgICBmaWx0ZXJlZEl0ZW1zLnJlbW92ZUZpcnN0
TWF0Y2hpbmcoWyZdIChhdXRvJiBpdGVtKSB7CisgICAgICAgIGlmIChpdGVtLmFjdGlvbigpICE9
IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgaWYgKGluZGV4T2ZRdWlja0xvb2tJdGVtICE9IG5vdEZvdW5kKSB7
Ci0gICAgICAgIGlmIChhdXRvIHBhZ2UgPSB0aGlzLT5wYWdlKCk7IHBhZ2UgJiYgcGFnZS0+cHJl
ZmVyZW5jZXMoKS5wcmVmZXJJbmxpbmVUZXh0U2VsZWN0aW9uSW5JbWFnZXMoKSkgewotICAgICAg
ICAgICAgcXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQgPSBmaWx0ZXJlZEl0ZW1zW2luZGV4
T2ZRdWlja0xvb2tJdGVtXTsKLSAgICAgICAgICAgIGZpbHRlcmVkSXRlbXMucmVtb3ZlKGluZGV4
T2ZRdWlja0xvb2tJdGVtKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzaG91bGRVcGRh
dGVRdWlja0xvb2tJdGVtVGl0bGUgPSB0cnVlOwotICAgIH0KLSNlbmRpZiAvLyBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCisgICAgICAgIGxvb2tVcEltYWdlSXRlbSA9IHsgaXRlbSB9OworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9KTsKKyNlbmRpZgogCiAjaWYgSEFWRShUUkFOU0xBVElPTl9V
SV9TRVJWSUNFUykKICAgICBpZiAoIXBhZ2UoKS0+Y2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xh
dGlvbigpIHx8IGlzUG9wb3ZlcikgewpAQCAtNjMzLDggKzYyNyw4IEBAIHZvaWQgV2ViQ29udGV4
dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNv
bnRleHRNZW51CiAgICAgYXV0byBpbWFnZVVSTCA9IFVSTCB7IGhpdFRlc3REYXRhLmFic29sdXRl
SW1hZ2VVUkwgfTsKICAgICBhdXRvIGltYWdlQml0bWFwID0gaGl0VGVzdERhdGEuaW1hZ2VCaXRt
YXA7CiAKLSAgICBhdXRvIHNwYXJzZU1lbnVJdGVtcyA9IHJldGFpblB0cihbTlNQb2ludGVyQXJy
YXkgc3Ryb25nT2JqZWN0c1BvaW50ZXJBcnJheV0pOwotICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0g
PSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCB3ZWFrUGFnZSA9
IFdlYWtQdHIgeyBwYWdlKCkgfSwgaW1hZ2VVUkwgPSBXVEZNb3ZlKGltYWdlVVJMKSwgaW1hZ2VC
aXRtYXAgPSBXVEZNb3ZlKGltYWdlQml0bWFwKSwgc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRp
dGxlLCBxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCA9IFdURk1vdmUocXVpY2tMb29rSXRl
bVRvSW5zZXJ0SWZOZWVkZWQpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBpdGVtc1JlbWFpbmluZyA9IGZpbHRlcmVkSXRlbXMuc2l6ZSgpLCBtZW51ID0g
V1RGTW92ZShtZW51KSwgc3BhcnNlTWVudUl0ZW1zXShOU01lbnVJdGVtICppdGVtLCBOU1VJbnRl
Z2VyIGluZGV4KSBtdXRhYmxlIHsKKyAgICBSZXRhaW5QdHIgc3BhcnNlTWVudUl0ZW1zID0gW05T
UG9pbnRlckFycmF5IHN0cm9uZ09iamVjdHNQb2ludGVyQXJyYXldOworICAgIGF1dG8gaW5zZXJ0
TWVudUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCB3
ZWFrUGFnZSA9IFdlYWtQdHIgeyBwYWdlKCkgfSwgaW1hZ2VVUkwgPSBXVEZNb3ZlKGltYWdlVVJM
KSwgaW1hZ2VCaXRtYXAgPSBXVEZNb3ZlKGltYWdlQml0bWFwKSwgbG9va1VwSW1hZ2VJdGVtID0g
V1RGTW92ZShsb29rVXBJbWFnZUl0ZW0pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCBpdGVtc1JlbWFpbmluZyA9IGZpbHRlcmVkSXRlbXMuc2l6ZSgpLCBt
ZW51ID0gV1RGTW92ZShtZW51KSwgc3BhcnNlTWVudUl0ZW1zXShOU01lbnVJdGVtICppdGVtLCBO
U1VJbnRlZ2VyIGluZGV4KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGluZGV4IDwgW3NwYXJz
ZU1lbnVJdGVtcyBjb3VudF0pOwogICAgICAgICBBU1NFUlQoIVtzcGFyc2VNZW51SXRlbXMgcG9p
bnRlckF0SW5kZXg6aW5kZXhdKTsKICAgICAgICAgW3NwYXJzZU1lbnVJdGVtcyByZXBsYWNlUG9p
bnRlckF0SW5kZXg6aW5kZXggd2l0aFBvaW50ZXI6aXRlbV07CkBAIC02NDMsMTMgKzYzNywxNCBA
QCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJvbUl0ZW1zKGNv
bnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudQogCiAgICAgICAgIFttZW51IHNldEl0ZW1BcnJheTpb
c3BhcnNlTWVudUl0ZW1zIGFsbE9iamVjdHNdXTsKIAotICAgICAgICBSZWZQdHIgcGFnZSB7IHdl
YWtQYWdlLmdldCgpIH07Ci0gICAgICAgIGlmIChwYWdlICYmIGltYWdlQml0bWFwKSB7CisgICAg
ICAgIFJlZlB0ciBwYWdlID0gd2Vha1BhZ2UuZ2V0KCk7CisgICAgICAgIGlmIChsb29rVXBJbWFn
ZUl0ZW0gJiYgcGFnZSAmJiBpbWFnZUJpdG1hcCkgewogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmluc2VydE9yVXBkYXRlUXVpY2tMb29rSW1h
Z2VJdGVtKGltYWdlVVJMLCBpbWFnZUJpdG1hcC5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKHF1
aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkKSwgc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRp
dGxlKTsKKyAgICAgICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGlt
YWdlVVJMLCAqaW1hZ2VCaXRtYXAsIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKSwgbG9va1VwSW1hZ2VJdGVtID0gV1RGTW92ZSgqbG9va1VwSW1hZ2VJdGVtKV0gKGJvb2wg
aGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGhh
c1Zpc3VhbFNlYXJjaFJlc3VsdHMpCisgICAgICAgICAgICAgICAgICAgIFtwcm90ZWN0ZWRUaGlz
LT5tX21lbnUgYWRkSXRlbTpjcmVhdGVNZW51QWN0aW9uSXRlbShsb29rVXBJbWFnZUl0ZW0pLmdl
dCgpXTsKKyAgICAgICAgICAgIH0pOwogI2Vsc2UKLSAgICAgICAgICAgIFVOVVNFRF9QQVJBTShx
dWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCk7Ci0gICAgICAgICAgICBVTlVTRURfUEFSQU0o
c2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRpdGxlKTsKICAgICAgICAgICAgIFVOVVNFRF9QQVJB
TShpbWFnZVVSTCk7CiAjZW5kaWYKICAgICAgICAgfQpAQCAtNjY1LDYzICs2NjAsNiBAQCB2b2lk
IFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJvbUl0ZW1zKGNvbnN0IFZl
Y3RvcjxXZWJDb250ZXh0TWVudQogICAgIH0KIH0KIAotI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKLQotdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9v
a0ltYWdlSXRlbShjb25zdCBVUkwmIGltYWdlVVJMLCBSZWY8U2hhcmVhYmxlQml0bWFwPiYmIGlt
YWdlQml0bWFwLCBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiYgcXVpY2tM
b29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQsIGJvb2wgc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRp
dGxlKQotewotICAgIFJlZiBwYWdlID0gKnRoaXMtPnBhZ2UoKTsKLSAgICBpZiAocXVpY2tMb29r
SXRlbVRvSW5zZXJ0SWZOZWVkZWQpIHsKLSAgICAgICAgcGFnZS0+Y29tcHV0ZUhhc0ltYWdlQW5h
bHlzaXNSZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcC5nZXQoKSwgSW1hZ2VBbmFseXNpc1R5
cGU6OlZpc3VhbFNlYXJjaCwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHF1aWNrTG9v
a0l0ZW1Ub0luc2VydElmTmVlZGVkID0gV1RGTW92ZSgqcXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZO
ZWVkZWQpXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIGlmIChSZWZQdHIgcHJvdGVjdGVkVGhpcyA9IHdlYWtUaGlzLmdldCgpOyBwcm90ZWN0ZWRU
aGlzICYmIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpIHsKLSAgICAgICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5tX3F1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSA9IFF1aWNrTG9va1ByZXZpZXdBY3Rp
dml0eTo6VmlzdWFsU2VhcmNoOwotICAgICAgICAgICAgICAgIFtwcm90ZWN0ZWRUaGlzLT5tX21l
bnUgYWRkSXRlbTpOU01lbnVJdGVtLnNlcGFyYXRvckl0ZW1dOwotICAgICAgICAgICAgICAgIFtw
cm90ZWN0ZWRUaGlzLT5tX21lbnUgYWRkSXRlbTpjcmVhdGVNZW51QWN0aW9uSXRlbShxdWlja0xv
b2tJdGVtVG9JbnNlcnRJZk5lZWRlZCkuZ2V0KCldOwotICAgICAgICAgICAgfQotICAgICAgICB9
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChzaG91bGRVcGRhdGVRdWlja0xv
b2tJdGVtVGl0bGUpIHsKLSAgICAgICAgcGFnZS0+Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1
bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcC5nZXQoKSwgSW1hZ2VBbmFseXNpc1R5cGU6OlZpc3Vh
bFNlYXJjaCwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtQYWdlID0gV2Vha1B0
ciB7IHBhZ2UgfSwgaW1hZ2VVUkwsIGltYWdlQml0bWFwID0gV1RGTW92ZShpbWFnZUJpdG1hcCld
IChib29sIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpIG11dGFibGUgewotICAgICAgICAgICAgUmVm
UHRyIHByb3RlY3RlZFRoaXMgeyB3ZWFrVGhpcy5nZXQoKSB9OwotICAgICAgICAgICAgaWYgKCFw
cm90ZWN0ZWRUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgUmVm
UHRyIHBhZ2UgeyB3ZWFrUGFnZS5nZXQoKSB9OwotICAgICAgICAgICAgaWYgKCFwYWdlKQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGhhc1Zpc3VhbFNlYXJjaFJl
c3VsdHMpIHsKLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3F1aWNrTG9va1ByZXZp
ZXdBY3Rpdml0eSA9IFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eTo6VmlzdWFsU2VhcmNoOwotICAg
ICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnVwZGF0ZVF1aWNrTG9va0NvbnRleHRNZW51SXRl
bVRpdGxlKGNvbnRleHRNZW51SXRlbVRhZ1F1aWNrTG9va0ltYWdlRm9yVmlzdWFsU2VhcmNoKCkp
OwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
cGFnZS0+Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1h
cC5nZXQoKSwgSW1hZ2VBbmFseXNpc1R5cGU6OlRleHQsIFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vh
a1RoaXMpLCB3ZWFrUGFnZV0gKGJvb2wgaGFzVGV4dCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAg
ICAgUmVmUHRyIHByb3RlY3RlZFRoaXMgeyB3ZWFrVGhpcy5nZXQoKSB9OwotICAgICAgICAgICAg
ICAgIGlmICghcHJvdGVjdGVkVGhpcykKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgICAgICAgICAgaWYgKFJlZlB0ciBwYWdlID0gd2Vha1BhZ2UuZ2V0KCk7IHBhZ2UgJiYg
aGFzVGV4dCkKLSAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+dXBkYXRlUXVpY2tM
b29rQ29udGV4dE1lbnVJdGVtVGl0bGUoY29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2VG
b3JUZXh0U2VsZWN0aW9uKCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0K
LX0KLQotdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjp1cGRhdGVRdWlja0xvb2tDb250ZXh0
TWVudUl0ZW1UaXRsZShjb25zdCBTdHJpbmcmIG5ld1RpdGxlKQotewotICAgIGZvciAoTlNJbnRl
Z2VyIGl0ZW1JbmRleCA9IDA7IGl0ZW1JbmRleCA8IFttX21lbnUgbnVtYmVyT2ZJdGVtc107ICsr
aXRlbUluZGV4KSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IFttX21lbnUgaXRlbUF0SW5kZXg6aXRl
bUluZGV4XTsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PENvbnRleHRNZW51QWN0aW9uPihpdGVt
LnRhZykgPT0gQ29udGV4dE1lbnVJdGVtVGFnUXVpY2tMb29rSW1hZ2UpIHsKLSAgICAgICAgICAg
IGl0ZW0udGl0bGUgPSBuZXdUaXRsZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0g
ICAgfQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQotCiB2b2lkIFdlYkNv
bnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51SXRlbShjb25zdCBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhJiBpdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TTWVudUl0ZW0gKik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCBmYjA0
ZWE5ZWVmOGFjMGRlZGJkZjkxMjA3MGZlMDNkODlkZGEyNDJjLi5jNThkZmIxMThhY2EzNTQ0ODBl
NDhmNTJlZDNkNTY0ZWYyZjk4MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTczMCw3ICs3MzAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Y2xvc2VTaGFyZWRQcmV2aWV3UGFuZWxJZk5lY2Vzc2FyeSgpCiAKICNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudVF1aWNr
TG9va0ltYWdlKFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSBhY3Rpdml0eSkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudUxvb2tVcEltYWdlKCkKIHsKICAgICBBU1NFUlQobV9h
Y3RpdmVDb250ZXh0TWVudUNvbnRleHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCkpOwogICAg
IApAQCAtNzM4LDcgKzczOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVu
dVF1aWNrTG9va0ltYWdlKFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSBhY3RpCiAgICAgaWYgKCFy
ZXN1bHQuaW1hZ2VCaXRtYXApCiAgICAgICAgIHJldHVybjsKIAotICAgIHNob3dJbWFnZUluUXVp
Y2tMb29rUHJldmlld1BhbmVsKCpyZXN1bHQuaW1hZ2VCaXRtYXAsIHJlc3VsdC50b29sVGlwVGV4
dCwgVVJMIHsgcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwgfSwgYWN0aXZpdHkpOworICAgIHNob3dJ
bWFnZUluUXVpY2tMb29rUHJldmlld1BhbmVsKCpyZXN1bHQuaW1hZ2VCaXRtYXAsIHJlc3VsdC50
b29sVGlwVGV4dCwgVVJMIHsgcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwgfSwgUXVpY2tMb29rUHJl
dmlld0FjdGl2aXR5OjpWaXN1YWxTZWFyY2gpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2hv
d0ltYWdlSW5RdWlja0xvb2tQcmV2aWV3UGFuZWwoU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1h
cCwgY29uc3QgU3RyaW5nJiB0b29sdGlwLCBjb25zdCBVUkwmIGltYWdlVVJMLCBRdWlja0xvb2tQ
cmV2aWV3QWN0aXZpdHkgYWN0aXZpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ODczMjRmMmE0YzJiMDAwOTI2OWMwYTEwZWU0NjMx
MWZjZmUwMTI0Li45ZWE5ZmM4N2Y1YmQ3M2I5Njg0ZmYxMmUxNzk1OTU5NTM2N2NhN2M0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcx
NjEsNyArNzE2MSw2IEBACiAJCUY0NTE3RDdBMjZGQkNEMzgwMDRDODQ3NSAvKiBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
UmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCUY0NTFDMTAwMjcwM0Q4NTMwMDJCQTAzQiAvKiBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NjYwQkMx
MjVERUYwODEwMEU4NjU5OCAvKiBQYXN0ZWJvYXJkQWNjZXNzSW50ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBhc3RlYm9hcmRBY2Nlc3NJbnRlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRjQ3QTA1MTYyNjgyN0EwOTAwN0U1Q0YyIC8qIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4NTcwQTIyNjQ0QkVDNDAwQzA1RjcxIC8qIFRpbWVvdXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZW91dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDhCQjhERDI2Rjk2MzVEMDAxQzFDNDAgLyogUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDhCQjhERTI2Rjk2
MzVEMDAxQzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTgxLDcgKzgxODAsNiBAQAogCQkJCUNEQTI5QTFGMUNC
RUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW0gKi8sCiAJCQkJ
QzE0NUNDMEUyM0RDQTQyNzAwM0E1RUVCIC8qIFByZWZlcmVuY2VPYnNlcnZlci5oICovLAogCQkJ
CUMxNUNCQjMzMjNGMzRDMzgwMDMwMENDNyAvKiBQcmVmZXJlbmNlT2JzZXJ2ZXIubW0gKi8sCi0J
CQkJRjQ3QTA1MTYyNjgyN0EwOTAwN0U1Q0YyIC8qIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5o
ICovLAogCQkJCTVDQjdBRkREMjNDNTI3M0QwMEU0OUNGMyAvKiBSZXNvdXJjZUxvYWREZWxlZ2F0
ZS5oICovLAogCQkJCTVDQjdBRkRFMjNDNTI3M0QwMEU0OUNGMyAvKiBSZXNvdXJjZUxvYWREZWxl
Z2F0ZS5tbSAqLywKIAkJCQk1Q0E5ODU0QjIxMEJFQjczMDA1N0VCNkIgLyogU2FmZUJyb3dzaW5n
V2FybmluZ0NvY29hLm1tICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KaW5kZXggZDZiNWIxOWJkNWE4MWI4YzA0MWVhYzcyZjJkMGY2NWU1ZjM2
ZjExYy4uZTVhZDQ0MWM3MmJjMmUwNTA5ZTVhZTk0YTNjMTNiOThjNWJkNWMzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC01OTksOCAr
NTk5LDggQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TlNJbnRlZ2VyPiB0b1RhZyhXZWJDb3JlOjpD
b250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgICAgIHJldHVybiBXZWJNZW51SXRlbVRhZ1Rv
Z2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
VHJhbnNsYXRlOgogICAgICAgICByZXR1cm4gV2ViTWVudUl0ZW1UYWdUcmFuc2xhdGU7Ci0gICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdRdWlja0xvb2tJbWFnZToKICAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ0NvcHlDcm9wcGVkSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdM
b29rVXBJbWFnZToKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyAuLi4gQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRh
ZzoK
</data>
<flag name="commit-queue"
          id="487058"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>