<?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>226274</bug_id>
          
          <creation_ts>2021-05-26 08:36:42 -0700</creation_ts>
          <short_desc>[macOS] Show context menu when clicking on data detection results in image overlays</short_desc>
          <delta_ts>2021-05-27 22:10:57 -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>
          <dependson>226267</dependson>
    
    <dependson>226292</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>akeerthi</cc>
    
    <cc>bdakin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1763928</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-26 08:36:42 -0700</bug_when>
    <thetext>rdar://75504956</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764339</commentid>
    <comment_count>1</comment_count>
      <attachid>429881</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-27 08:46:20 -0700</bug_when>
    <thetext>Created attachment 429881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764475</commentid>
    <comment_count>2</comment_count>
      <attachid>429918</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-27 13:26:51 -0700</bug_when>
    <thetext>Created attachment 429918
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764490</commentid>
    <comment_count>3</comment_count>
      <attachid>429923</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-27 13:56:21 -0700</bug_when>
    <thetext>Created attachment 429923
Fix non-internal macOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764495</commentid>
    <comment_count>4</comment_count>
      <attachid>429926</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-27 14:07:13 -0700</bug_when>
    <thetext>Created attachment 429926
Fix non-internal macOS build (2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764504</commentid>
    <comment_count>5</comment_count>
      <attachid>429928</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-27 14:29:17 -0700</bug_when>
    <thetext>Created attachment 429928
Fix non-internal build (3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764529</commentid>
    <comment_count>6</comment_count>
      <attachid>429928</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-05-27 15:12:48 -0700</bug_when>
    <thetext>Comment on attachment 429928
Fix non-internal build (3)

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

&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:149
&gt; +#import &lt;pal/cocoa/RevealSoftLink.h&gt;

Nit: Move near the other PAL headers above?

&gt; Source/WebKit/UIProcess/mac/WKRevealItemPresenter.h:41
&gt; +- (instancetype)initWithWebViewImpl:(WebKit::WebViewImpl&amp;)webViewImpl item:(RVItem *)item frame:(CGRect)frameInView menuLocation:(CGPoint)menuLocationInView;

const WebKit::WebViewImpl&amp;?

&gt; Source/WebKit/UIProcess/mac/WKRevealItemPresenter.mm:36
&gt; +#import &lt;pal/cocoa/RevealSoftLink.h&gt;

Nit: Move PAL header before WTF header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764534</commentid>
    <comment_count>7</comment_count>
      <attachid>429928</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-27 15:19:20 -0700</bug_when>
    <thetext>Comment on attachment 429928
Fix non-internal build (3)

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

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:149
&gt;&gt; +#import &lt;pal/cocoa/RevealSoftLink.h&gt;
&gt; 
&gt; Nit: Move near the other PAL headers above?

SoftLinking headers go last, the stylebot enforces it (I think there is a non-style reason, but I don&apos;t remember what it is)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764535</commentid>
    <comment_count>8</comment_count>
      <attachid>429928</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-27 15:21:36 -0700</bug_when>
    <thetext>Comment on attachment 429928
Fix non-internal build (3)

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

Thanks for the reviews!

&gt;&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:149
&gt;&gt;&gt; +#import &lt;pal/cocoa/RevealSoftLink.h&gt;
&gt;&gt; 
&gt;&gt; Nit: Move near the other PAL headers above?
&gt; 
&gt; SoftLinking headers go last, the stylebot enforces it (I think there is a non-style reason, but I don&apos;t remember what it is)

Done!

&gt;&gt; Source/WebKit/UIProcess/mac/WKRevealItemPresenter.h:41
&gt;&gt; +- (instancetype)initWithWebViewImpl:(WebKit::WebViewImpl&amp;)webViewImpl item:(RVItem *)item frame:(CGRect)frameInView menuLocation:(CGPoint)menuLocationInView;
&gt; 
&gt; const WebKit::WebViewImpl&amp;?

👍🏻 Made this `const`

&gt;&gt; Source/WebKit/UIProcess/mac/WKRevealItemPresenter.mm:36
&gt;&gt; +#import &lt;pal/cocoa/RevealSoftLink.h&gt;
&gt; 
&gt; Nit: Move PAL header before WTF header.

So doing this results in this style failure:

```
% check-webkit-style
ERROR: Source/WebKit/UIProcess/mac/WKRevealItemPresenter.mm:35:  *SoftLink.h header should be included after all other headers.  [build/include_order] [4]
ERROR: Source/WebKit/UIProcess/mac/WKRevealItemPresenter.mm:36:  *SoftLink.h header should be included after all other headers.  [build/include_order] [4]
```

…which prompted me to move the header down below the others. I&apos;m not exactly sure why WebViewImpl.mm doesn&apos;t yield a similar error, though 🤔.

I think I&apos;ll leave this one here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764554</commentid>
    <comment_count>9</comment_count>
      <attachid>429944</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-27 15:47:20 -0700</bug_when>
    <thetext>Created attachment 429944
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764642</commentid>
    <comment_count>10</comment_count>
      <attachid>429976</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-27 20:15:26 -0700</bug_when>
    <thetext>Created attachment 429976
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764649</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-27 20:34:52 -0700</bug_when>
    <thetext>Patch 429944 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764670</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-27 22:10:57 -0700</bug_when>
    <thetext>Committed r278190 (238233@main): &lt;https://commits.webkit.org/238233@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429976.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429881</attachid>
            <date>2021-05-27 08:46:20 -0700</date>
            <delta_ts>2021-05-27 13:26:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226274-20210527084619.patch</filename>
            <type>text/plain</type>
            <size>40791</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdmZjg1YzFjYzcyYTRh
YzM5ODBkODM0YmQyMzBlNDE3NTIwMzQ4OS4uMzIyOGE1MGY0NDIwOGZiY2IyYzI1M2FhM2RkOTVl
Y2JjZjc1NjM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA1LTI3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hv
dyBjb250ZXh0IG1lbnUgd2hlbiBjbGlja2luZyBvbiBkYXRhIGRldGVjdGlvbiByZXN1bHRzIGlu
IGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjYyNzQKKyAgICAgICAgcmRhcjovLzc1NTA0OTU2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgY2xpZW50IGhvb2sgdG8gYWxs
b3cgSW1hZ2VPdmVybGF5Q29udHJvbGxlciB0byBjYWxsIG91dCBpbnRvIHRoZSBXZWJLaXQgY2xp
ZW50IGxheWVyIHdoZW4gYSBkYXRhIGRldGVjdG9yCisgICAgICAgIGJ1dHRvbiAod2l0aCBhIGNv
cnJlc3BvbmRpbmcgRERTY2FubmVyUmVzdWx0KSBpcyBjbGlja2VkLiBTZWUgV2ViS2l0IENoYW5n
ZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6
CisgICAgICAgICogcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oOiBBZGRlZC4K
KworICAgICAgICBJbnRyb2R1Y2UgYSBzdHJ1Y3QgdGhhdCB3cmFwcyBhIGRhdGEgZGV0ZWN0aW9u
IHJlc3VsdCBhbmQgdGhlIGFjY29tcGFueWluZyBlbGVtZW50IGJvdW5kaW5nIHJlY3QsIG1haW5s
eSBzbyB0aGF0CisgICAgICAgIHdlIGhhdmUgYSBDKysgc3RydWN0IHdlIGNhbiBwbHVtYiB0aHJv
dWdoIHRoZSBjbGllbnQgbGF5ZXJzIChyYXRoZXIgdGhhbiBkaXJlY3RseSBwYXNzaW5nIE9iamVj
dGl2ZS1DIG9iamVjdHMKKyAgICAgICAgYXJvdW5kKS4KKworICAgICAgICAqIHBhZ2UvbWFjL0lt
YWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU92ZXJs
YXlDb250cm9sbGVyOjpoYW5kbGVEYXRhRGV0ZWN0b3JBY3Rpb24pOgorCiAyMDIxLTA1LTI2ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9y
IHNvbWUgZGF0YSBkZXRlY3RvciBjb2RlIGluIFdlYkNvcmU6OkZyYW1lCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA2
YjhiMzU1NjU1NGEwMzQyMWM4NmZjZDE0OGU0YmRhODg4MTdlMjguLmY5Yjc1MDU4N2FiYWNhNmNl
YjM4NTkxMTNjNDQzNDYwZWZiNmY1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMjEt
MDUtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
W21hY09TXSBTaG93IGNvbnRleHQgbWVudSB3aGVuIGNsaWNraW5nIG9uIGRhdGEgZGV0ZWN0aW9u
IHJlc3VsdHMgaW4gaW1hZ2Ugb3ZlcmxheXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjI3NAorICAgICAgICByZGFyOi8vNzU1MDQ5NTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgYSBX
ZWJLaXQyIGNsaWVudCBob29rIHRvIGhhbmRsZSBhIGNsaWNrIG92ZXIgYSBkYXRhIGRldGVjdGlv
biByZXN1bHQgYnkgdXNpbmcgdGhlIFJldmVhbCBmcmFtZXdvcmsgdG8KKyAgICAgICAgY29sbGVj
dCBhbmQgcHJlc2VudCBhIGNvbnRleHQgbWVudS4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMu
CisKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW06
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RGF0YURldGVjdG9yRWxlbWVudEluZm8+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPERhdGFEZXRlY3RvckVsZW1lbnRJ
bmZvPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6
CisKKyAgICAgICAgQWRkIGVuY29kaW5nIGFuZCBkZWNvZGluZyBzdXBwb3J0IGZvciBEYXRhRGV0
ZWN0b3JFbGVtZW50SW5mby4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjp2aWV3IGNvbnN0KToKKworICAgICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRv
IGdyYWIgdGhlIHZpZXcgKGVpdGhlciBhIFdLVmlldyBvciBXS1dlYlZpZXcpIGZyb20gYSBXZWJW
aWV3SW1wbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJl
c3VsdCk6CisKKyAgICAgICAgQ3JlYXRlIGFuZCBwcmVzZW50IGEgbmV3IFdLUmV2ZWFsSXRlbVBy
ZXNlbnRlciB1c2luZyB0aGUgRERTY2FubmVyUmVzdWx0LgorCisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpkaWRGaW5pc2hQcmVzZW50YXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmhhbmRsZUNsaWNrRm9y
RGF0YURldGVjdGlvblJlc3VsdCk6CisKKyAgICAgICAgQWRkIG1vcmUgcGx1bWJpbmcgdGhyb3Vn
aCB0aGUgVUkgcHJvY2VzcyB0byBoYW5kbGUgY2xpY2tpbmcgb24gYSBkYXRhIGRldGVjdGlvbiBy
ZXN1bHQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmhhbmRsZUNs
aWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1Jl
dmVhbEl0ZW1QcmVzZW50ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1Jl
dmVhbEl0ZW1QcmVzZW50ZXIubW06IEFkZGVkLgorCisgICAgICAgIEFkZCBhIGhlbHBlciBjbGFz
cyB0aGF0IHRha2VzIGFuIFJWSXRlbSBhbmQgaXMgY2FwYWJsZSBvZiBwcmVzZW50aW5nIGEgY29u
dGV4dCBtZW51IGZvciB0aGUgaXRlbSwgb24gYmVoYWxmIG9mCisgICAgICAgIFdlYlZpZXdJbXBs
LiBGb3IgdGhlIHRpbWUgYmVpbmcsIHRoaXMgaXMgb25seSB1c2VkIG9uIG1hY09TIChhbmQgdGh1
cywgZGlyZWN0bHkgaG9sZHMgYSBXZWFrUHRyIHRvIGEKKyAgICAgICAgV2ViVmlld0ltcGwpLiBI
b3dldmVyLCB3ZSBtYXkgd2FudCB0byB1c2UgdGhpcyBpbiB0aGUgZnV0dXJlIGZvciBNYWMgQ2F0
YWx5c3QgYXMgd2VsbCwgaW4gd2hpY2ggY2FzZSB3ZSBzaG91bGQKKyAgICAgICAgbWFrZSB0aGlz
IHdvcmsgdmlhIGEgZ2VuZXJpYyBXS1JldmVhbEl0ZW1QcmVzZW50ZXJEZWxlZ2F0ZSBwcm90b2Nv
bCBpbnN0ZWFkLgorCisgICAgICAgICgtW1dLUmV2ZWFsSXRlbVByZXNlbnRlciBpbml0V2l0aFdl
YlZpZXdJbXBsOml0ZW06ZnJhbWU6bWVudUxvY2F0aW9uOl0pOgorICAgICAgICAoLVtXS1JldmVh
bEl0ZW1QcmVzZW50ZXIgc2hvd0NvbnRleHRNZW51XSk6CisgICAgICAgICgtW1dLUmV2ZWFsSXRl
bVByZXNlbnRlciBfY2FsbERpZEZpbmlzaFByZXNlbnRhdGlvbklmTmVlZGVkXSk6CisKKyAgICAg
ICAgQ2FsbCBvdXQgdG8gdGhlIFdlYlZpZXdJbXBsIHRvIHJlc2V0IGl0cyBjdXJyZW50IHJldmVh
bCBpdGVtIHByZXNlbnRlciBhZnRlciB3ZSd2ZSBmaW5pc2hlZCBwcmVzZW50YXRpb24uIFRoaXMK
KyAgICAgICAgaGFwcGVucyBlaXRoZXIgYWZ0ZXIgd2UndmUgZGlzbWlzc2VkIHRoZSBjb250ZXh0
IG1lbnUgKGlmIG5vIGl0ZW0gaXMgaGlnaGxpZ2h0ZWQpLCBvciBhZnRlciB3ZSd2ZSBmaW5pc2hl
ZAorICAgICAgICBoaWdobGlnaHRpbmcgdGhlIGl0ZW0uCisKKyAgICAgICAgKC1bV0tSZXZlYWxJ
dGVtUHJlc2VudGVyIHJldmVhbENvbnRleHQ6cmVjdHNGb3JJdGVtOl0pOgorICAgICAgICAoLVtX
S1JldmVhbEl0ZW1QcmVzZW50ZXIgcmV2ZWFsQ29udGV4dDpzaG91bGRVc2VEZWZhdWx0SGlnaGxp
Z2h0Rm9ySXRlbTpdKToKKyAgICAgICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIHJldmVhbENv
bnRleHQ6c3RhcnRIaWdobGlnaHRpbmdJdGVtOl0pOgorICAgICAgICAoLVtXS1JldmVhbEl0ZW1Q
cmVzZW50ZXIgcmV2ZWFsQ29udGV4dDpzdG9wSGlnaGxpZ2h0aW5nSXRlbTpdKToKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAyMS0wNS0yNiAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBzb21l
IGRhdGEgZGV0ZWN0b3IgY29kZSBpbiBXZWJDb3JlOjpGcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk5NTA5MzIyYTJiYmRh
NjE5Y2MyM2E5MjA2NGE0YzM5NjljYTVmNGIuLmVhMGMwNTgwNGYzNGY2ZDM3NzgyMjgyOTdmM2I3
MWJjZDhkM2NmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTUzMzksNiArNTMzOSw3IEBACiAJCUY0NDJDMzU5MjNFM0FERDIw
MDQ5OTU4MiAvKiBDb21wb3NpdGlvbkhpZ2hsaWdodC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0MkMzNTcyM0UzQUM1MTAwNDk5NTgyIC8qIENvbXBv
c2l0aW9uSGlnaGxpZ2h0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRjQ0NkVEREYyNjVEQUZFMzAwMzFEQThGIC8qIERhdGFEZXRlY3Rpb25SZXN1
bHRzU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThGIC8qIERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFn
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0
NDZFREUxMjY1REIxRTUwMDMxREE4RiAvKiBJbWFnZU92ZXJsYXlEYXRhRGV0ZWN0aW9uUmVzdWx0
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ0NkVERTAyNjVEQjFFNTAwMzFEQThGIC8qIEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25S
ZXN1bHRJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJRjQ0NkVERTgyNjVERDg5MDAwMzFEQThGIC8qIERhdGFEZXRlY3RvckVsZW1l
bnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDQ2RURFNzI2NUREODkwMDAzMURBOEYgLyogRGF0YURldGVjdG9yRWxlbWVudEluZm8uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDRBNUY1OTFG
RUQzOEYyMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1RjU3MUZFRDM4MzAwMDdGNTk0
NCAvKiBMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0NEVCQkQ5MURCNUQyMTQwMDI3NzMzNCAvKiBTdGF0
aWNSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQ0RUJCRDgxREI1RDIxNDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ1Nzc1Q0UyNDE0MzdENTAwMkRG
MUEwIC8qIElubGluZVBhdGhEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDU3NzVDRDI0MTQzN0Q1MDAyREYxQTAgLyogSW5saW5lUGF0aERhdGEu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTY4
MTAsNiArMTY4MTEsNyBAQAogCQlGNDQyQzM1NzIzRTNBQzUxMDA0OTk1ODIgLyogQ29tcG9zaXRp
b25IaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcG9zaXRpb25IaWdobGlnaHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThGIC8qIERh
dGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhRGV0ZWN0aW9u
UmVzdWx0c1N0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0NkVERTAy
NjVEQjFFNTAwMzFEQThGIC8qIEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVu
dGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NDZFREU3MjY1REQ4OTAw
MDMxREE4RiAvKiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRh
RGV0ZWN0b3JFbGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRB
NUY1NzFGRUQzODMwMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQ0RUJCRDYxREI1RDFCNjAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTdGF0aWNSYW5nZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0NEVCQkQ4MURCNUQyMTQwMDI3NzMzNCAvKiBTdGF0aWNSYW5nZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGF0aWNSYW5nZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjE4OTMsNiArMjE4OTUsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlGNDQ2RURERDI2NURBRTNGMDAzMURBOEYgLyogRGF0YURl
dGVjdGlvblJlc3VsdHNTdG9yYWdlLmggKi8sCisJCQkJRjQ0NkVERTcyNjVERDg5MDAwMzFEQThG
IC8qIERhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmggKi8sCiAJCQkJRjQ0NkVERTAyNjVEQjFFNTAw
MzFEQThGIC8qIEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVudGlmaWVyLmggKi8s
CiAJCQkJNDEzRTAwN0IxREIwRTcwNzAwMjM0MUQyIC8qIE1lbW9yeVJlbGVhc2VDb2NvYS5tbSAq
LywKIAkJCQlBRDVBMEMyMjFERUNBMzdFMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29j
b2EubW0gKi8sCkBAIC0zMjIwMCw2ICszMjIwMyw3IEBACiAJCQkJQkUyMzQ4MEQxOEE5ODcxNDAw
RTRCNkU4IC8qIERhdGFDdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1MjI3REYxMUMzQzZERjEw
MEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDQ2RURERjI2
NURBRkUzMDAzMURBOEYgLyogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNDQ2RURFODI2NUREODkwMDAzMURBOEYgLyogRGF0YURldGVjdG9yRWxlbWVu
dEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUY0QjJBOTA5MjY1MDMwQkEwMDlFNzI4NiAvKiBE
YXRhRGV0ZWN0b3JIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNEE1MzM1MjU2MDVB
NTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNThC
NDVCQTIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGI2ZDkxYTgzMzE3ZTIyMmM5
YzJiMTdiMTY4YzMwNjg4OWQ0NjZiMTMuLmI5ZmRhZjE1NTIxZjhlNDI5MmNiZWU3ZmVmMzU0Nzc1
YTAxOTA2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTI5LDYgKzEyOSwx
MCBAQCBzdHJ1Y3QgVGV4dEluZGljYXRvckRhdGE7CiBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHM7
CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCitz
dHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm87CisjZW5kaWYKKwogZW51bSBjbGFzcyBSb3V0
ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogCiBjbGFzcyBDaHJvbWVDbGllbnQgewpAQCAtNTAy
LDYgKzUwNiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51
bWJlckNsaWNrKGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFBvaW50JikgeyB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQ2xpY2tG
b3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiwgY29u
c3QgSW50UG9pbnQmKSB7IH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMp
CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhGcmFtZVNlbGVj
dGlvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgSW50UG9pbnQmKSB7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIC8qaXNUZXh0T25s
eSovKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmNmE4ZDhiMmIw
NzY4YWY3NTI3NDA4Y2RhYTYzNjk1NTE3NTJkN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL0RhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmgKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQorCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgRERTY2FubmVy
UmVzdWx0OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEludFJlY3Q7CisKK3N0cnVj
dCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyB7CisgICAgUmV0YWluUHRyPEREU2Nhbm5lclJlc3Vs
dD4gcmVzdWx0OworICAgIEludFJlY3QgZWxlbWVudEJvdW5kczsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCmlu
ZGV4IGIxMTVmZmZiMzU3OTA3NDEwZTRkMzE4ZWI0MjBlNjY5OTA0M2M0MzYuLmU4NGVkZjhkMTM2
OWE2ZTRmMGMwNTk5MjZkOTUxMTRiNTE0OTgwYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbQpAQCAtMjksOSArMjksMTIg
QEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkRhdGFEZXRlY3Rpb24uaCIKKyNpbXBv
cnQgIkRhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oIgorI2ltcG9ydCAiRGF0YURldGVjdG9y
RWxlbWVudEluZm8uaCIKICNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiSFRNTEVsZW1l
bnQuaCIKICNpbXBvcnQgIkhUTUxOYW1lcy5oIgorI2ltcG9ydCAiSW1hZ2VPdmVybGF5RGF0YURl
dGVjdGlvblJlc3VsdElkZW50aWZpZXIuaCIKICNpbXBvcnQgIkludFJlY3QuaCIKICNpbXBvcnQg
IlBhZ2UuaCIKICNpbXBvcnQgIlBsYXRmb3JtTW91c2VFdmVudC5oIgpAQCAtMTQ3LDggKzE1MCwy
NyBAQCBib29sIEltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmhhbmRsZURhdGFEZXRlY3RvckFjdGlv
bihjb25zdCBIVE1MRWxlbWVudCYgZWxlbWVudAogICAgIGlmICghZnJhbWVWaWV3KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyBGSVhNRTogQ2FsbCBvdXQgdG8gdGhlIGNsaWVudCBs
YXllciB0byBoYW5kbGUgdGhlIGNsaWNrLgotICAgIFVOVVNFRF9QQVJBTShsb2NhdGlvbkluQ29u
dGVudHMpOworICAgIGF1dG8gaWRlbnRpZmllclZhbHVlID0gcGFyc2VJbnRlZ2VyPHVpbnQ2NF90
PihlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp4X2Fw
cGxlX2RhdGFfZGV0ZWN0b3JzX3Jlc3VsdEF0dHIpKTsKKyAgICBpZiAoIWlkZW50aWZpZXJWYWx1
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBpZGVudGlmaWVyID0gbWFrZU9i
amVjdElkZW50aWZpZXI8SW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50aWZpZXJU
eXBlPigqaWRlbnRpZmllclZhbHVlKTsKKyAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvKiBkYXRhRGV0ZWN0aW9uUmVzdWx0cyA9
IGZyYW1lLT5kYXRhRGV0ZWN0aW9uUmVzdWx0c0lmRXhpc3RzKCk7CisgICAgaWYgKCFkYXRhRGV0
ZWN0aW9uUmVzdWx0cykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBkYXRhRGV0
ZWN0aW9uUmVzdWx0ID0gcmV0YWluUHRyKGRhdGFEZXRlY3Rpb25SZXN1bHRzLT5pbWFnZU92ZXJs
YXlEYXRhRGV0ZWN0aW9uUmVzdWx0KGlkZW50aWZpZXIpKTsKKyAgICBpZiAoIWRhdGFEZXRlY3Rp
b25SZXN1bHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8qIHJlbmRlcmVyID0g
ZWxlbWVudC5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyZXIpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIG1fcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlQ2xpY2tGb3JEYXRh
RGV0ZWN0aW9uUmVzdWx0KHsgV1RGTW92ZShkYXRhRGV0ZWN0aW9uUmVzdWx0KSwgZnJhbWVWaWV3
LT5jb250ZW50c1RvV2luZG93KHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpKSB9
LCBmcmFtZVZpZXctPmNvbnRlbnRzVG9XaW5kb3cobG9jYXRpb25JbkNvbnRlbnRzKSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KaW5kZXggMmI2NjVlZWQxNTk2N2Y5NzBm
ZTZmNDlhOGM3OWVlODc5MmQwZTgyZi4uY2ZhOGIwNzMwYTA1ODAwNzU3ZDYwMzlhYzdiMjExZmUw
NWE5YmRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KQEAgLTU0LDYgKzU0LDEwIEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0ltYWdlRXh0cmFjdGlvblJlc3VsdC5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCisjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmg+
CisjZW5kaWYKKwogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNl
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmg+CkBAIC02
MTQsNiArNjE4LDMwIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3Q+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKK3ZvaWQgQXJndW1lbnRDb2RlcjxE
YXRhRGV0ZWN0b3JFbGVtZW50SW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBE
YXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYgaW5mbykKK3sKKyAgICBlbmNvZGVyIDw8IGluZm8ucmVz
dWx0LmdldCgpOworICAgIGVuY29kZXIgPDwgaW5mby5lbGVtZW50Qm91bmRzOworfQorCitPcHRp
b25hbDxEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbz4gQXJndW1lbnRDb2RlcjxEYXRhRGV0ZWN0b3JF
bGVtZW50SW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGF1dG8gcmVzdWx0
ID0gSVBDOjpkZWNvZGU8RERTY2FubmVyUmVzdWx0PihkZWNvZGVyLCBQQUw6OmdldEREU2Nhbm5l
clJlc3VsdENsYXNzKCkpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgT3B0aW9uYWw8SW50UmVjdD4gZWxlbWVudEJvdW5kczsKKyAgICBkZWNv
ZGVyID4+IGVsZW1lbnRCb3VuZHM7CisgICAgaWYgKCFlbGVtZW50Qm91bmRzKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIG1ha2VPcHRpb25hbDxEYXRhRGV0ZWN0
b3JFbGVtZW50SW5mbz4oeyBXVEZNb3ZlKCpyZXN1bHQpLCBXVEZNb3ZlKCplbGVtZW50Qm91bmRz
KSB9KTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwogI2lmIEVOQUJM
RShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggOTYzZmI0
OGM5YTA5OTk4OTVhYWJmOWZlMjJjYmYzZjQ3NjFiMDJmOC4uNWY2NjZiZjgxZDZmYmM3ZDk2Mzdi
OTZhOGQzYmRhZWYyNWMzZDE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKQEAgLTIxMyw2ICsyMTMsMTAgQEAgc3RydWN0IFNlcmlhbGl6ZWRBdHRh
Y2htZW50RGF0YTsKIHN0cnVjdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50
SW5mbzsKKyNlbmRpZgorCiBuYW1lc3BhY2UgRE9NQ2FjaGVFbmdpbmUgewogc3RydWN0IENhY2hl
SW5mbzsKIHN0cnVjdCBSZWNvcmQ7CkBAIC04MDQsNiArODA4LDE1IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2NyaXB0QnVmZmVyPiB7CiAgICAgc3RhdGljIE9w
dGlvbmFsPFdlYkNvcmU6OlNjcmlwdEJ1ZmZlcj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKKyNp
ZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8+IHsKKyAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvJik7
CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvPiBk
ZWNvZGUoRGVjb2RlciYpOworfTsKKworI2VuZGlmCisKICNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDRE1JbnN0YW5j
ZVNlc3Npb246Ok1lc3NhZ2U+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TWVzc2FnZSYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IGIyNjU5OWJhOGU3MDY0NjU0YjQ4YjQ1ODg4NjBmOTk4ODczYTFjYjAuLmIx
NDgwMTNjOTA0NjVmOTMyZmM2YWQ5NGIxZTdhZjk0OTQxMjM4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKQEAgLTUyNSw2ICs1MjUsNyBAQCBVSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIubW0KIFVJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29u
dHJvbGxlci5tbQogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0K
IFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KK1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJ
dGVtUHJlc2VudGVyLm1tCiBVSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxl
Z2F0ZS5tbQogVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0KIFVJUHJvY2Vzcy9t
YWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IDJkMTAzZjBlZDBhN2Qy
NjE0MWVjMmYzM2IyYmY2NjUwYmM4YzVlMmYuLmIxNmQ1ZjEzYmE5NmY0ZmRlMDEwOTIyMTRmNzY1
ZTE1MThkOGYxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tCkBAIC05NSwxMCArOTUsMTcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
Kwogdm9pZCBXZWJQYWdlUHJveHk6OnNldERhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURl
dGVjdGlvblJlc3VsdCYgZGF0YURldGVjdGlvblJlc3VsdCkKIHsKICAgICBtX2RhdGFEZXRlY3Rp
b25SZXN1bHRzID0gZGF0YURldGVjdGlvblJlc3VsdC5yZXN1bHRzOwogfQorCit2b2lkIFdlYlBh
Z2VQcm94eTo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IERhdGFEZXRl
Y3RvckVsZW1lbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRQb2ludCYgY2xpY2tMb2NhdGlvbikKK3sK
KyAgICBwYWdlQ2xpZW50KCkuaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGluZm8s
IGNsaWNrTG9jYXRpb24pOworfQorCiAjZW5kaWYKIAogdm9pZCBXZWJQYWdlUHJveHk6OnNhdmVS
ZWNlbnRTZWFyY2hlcyhjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpS
ZWNlbnRTZWFyY2g+JiBzZWFyY2hJdGVtcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oCmluZGV4IGJkOGQ4MmM0MTU3MzExNDY0ZjRlYzU1ZDBlMTQ5ZGZlODk4
NzBiYTEuLmE0NDE2NWU0MjNjZjMzMGNjZWRjN2UyMzFjYmFmMjIxZDVkYzlhODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNjEsNiArNjEsNyBA
QCBPQkpDX0NMQVNTIFdLRE9NUGFzdGVNZW51RGVsZWdhdGU7CiBPQkpDX0NMQVNTIFdLRWRpdG9y
VW5kb1RhcmdldDsKIE9CSkNfQ0xBU1MgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsKIE9C
SkNfQ0xBU1MgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyOworT0JKQ19DTEFTUyBXS1JldmVh
bEl0ZW1QcmVzZW50ZXI7CiBPQkpDX0NMQVNTIFdLU2FmZUJyb3dzaW5nV2FybmluZzsKIE9CSkNf
Q0xBU1MgV0tTaGFyZVNoZWV0OwogT0JKQ19DTEFTUyBXS1ZpZXdMYXlvdXRTdHJhdGVneTsKQEAg
LTEwNSw2ICsxMDYsMTAgQEAgc3RydWN0IFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvOwogI2lm
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogc3RydWN0IEltYWdlRXh0cmFjdGlvblJlc3VsdDsK
ICNlbmRpZgorCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorc3RydWN0IERhdGFEZXRlY3Rv
ckVsZW1lbnRJbmZvOworI2VuZGlmCiB9CiAKIEBwcm90b2NvbCBXZWJWaWV3SW1wbERlbGVnYXRl
CkBAIC0xODksNiArMTk0LDcgQEAgcHVibGljOgogICAgIE5TV2luZG93ICp3aW5kb3coKTsKIAog
ICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQorICAgIE5T
VmlldyAqdmlldygpIGNvbnN0IHsgcmV0dXJuIG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKTsgfQog
CiAgICAgdm9pZCBwcm9jZXNzV2lsbFN3YXAoKTsKICAgICB2b2lkIHByb2Nlc3NEaWRFeGl0KCk7
CkBAIC02NjksNiArNjc1LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yRm9yVGVzdGluZyhNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZSop
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgdm9pZCBoYW5kbGVD
bGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxl
bWVudEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOworI2VuZGlmCisKKyNpZiBFTkFC
TEUoUkVWRUFMKQorICAgIHZvaWQgZGlkRmluaXNoUHJlc2VudGF0aW9uKFdLUmV2ZWFsSXRlbVBy
ZXNlbnRlciAqKTsKKyNlbmRpZgorCiBwcml2YXRlOgogI2lmIEhBVkUoVE9VQ0hfQkFSKQogICAg
IHZvaWQgc2V0VXBUZXh0VG91Y2hCYXIoTlNUb3VjaEJhciAqKTsKQEAgLTcwMSw2ICs3MTUsMTAg
QEAgcHJpdmF0ZToKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFH
RVIpCiAjZW5kaWYgLy8gSEFWRShUT1VDSF9CQVIpCiAKKyNpZiBFTkFCTEUoUkVWRUFMKQorICAg
IFJldGFpblB0cjxXS1JldmVhbEl0ZW1QcmVzZW50ZXI+IG1fcmV2ZWFsSXRlbVByZXNlbnRlcjsK
KyNlbmRpZgorCiAgICAgYm9vbCBzdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkgY29uc3Q7
CiAgICAgZmxvYXQgaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2b2lk
IGRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDg4ODgyMTU3YzBiMTc2YzY1YTE2ZjY4YTU4OWQ3
MGJkY2FmNGRhMTIuLmVjZjdkYjRmMTNkYzlmMzRmMzM3MGNiYWMzMzgyYTRkYmViYmZlYTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC02NSw2
ICs2NSw3IEBACiAjaW1wb3J0ICJXS05TVVJMRXh0cmFzLmgiCiAjaW1wb3J0ICJXS1BERkhVRFZp
ZXcuaCIKICNpbXBvcnQgIldLUHJpbnRpbmdWaWV3LmgiCisjaW1wb3J0ICJXS1JldmVhbEl0ZW1Q
cmVzZW50ZXIuaCIKICNpbXBvcnQgIldLU2FmZUJyb3dzaW5nV2FybmluZy5oIgogI2ltcG9ydCA8
V2ViS2l0L1dLU2hhcmVTaGVldC5oPgogI2ltcG9ydCAiV0tUZXh0SW5wdXRXaW5kb3dDb250cm9s
bGVyLmgiCkBAIC0xNDQsNiArMTQ1LDE0IEBACiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eVByaXZhdGUuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQorI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oPgorI2VuZGlmCisK
KyNpZiBFTkFCTEUoUkVWRUFMKQorI2ltcG9ydCA8cGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLmg+
CisjZW5kaWYKKwogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpCiAjaW1wb3J0IDxU
cmFuc2xhdGlvblVJU2VydmljZXMvTFRVSVRyYW5zbGF0aW9uVmlld0NvbnRyb2xsZXIuaD4KIApA
QCAtNTc1MSw2ICs1NzYwLDMyIEBAIHZvaWQgV2ViVmlld0ltcGw6OmVuZFByZXZpZXdQYW5lbENv
bnRyb2woUUxQcmV2aWV3UGFuZWwgKnBhbmVsKQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCisKK3ZvaWQgV2ViVmlld0ltcGw6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVj
dGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYgaW5mbywgY29uc3QgSW50
UG9pbnQmIGNsaWNrTG9jYXRpb24pCit7CisjaWYgRU5BQkxFKFJFVkVBTCkKKyAgICBtX3JldmVh
bEl0ZW1QcmVzZW50ZXIgPSBhZG9wdE5TKFtbV0tSZXZlYWxJdGVtUHJlc2VudGVyIGFsbG9jXSBp
bml0V2l0aFdlYlZpZXdJbXBsOip0aGlzIGl0ZW06YWRvcHROUyhbUEFMOjphbGxvY1JWSXRlbUlu
c3RhbmNlKCkgaW5pdFdpdGhERFJlc3VsdDppbmZvLnJlc3VsdC5nZXQoKV0pLmdldCgpIGZyYW1l
OmluZm8uZWxlbWVudEJvdW5kcyBtZW51TG9jYXRpb246Y2xpY2tMb2NhdGlvbl0pOworICAgIFtt
X3JldmVhbEl0ZW1QcmVzZW50ZXIgc2V0U2hvdWxkVXNlRGVmYXVsdEhpZ2hsaWdodDpOT107Cisg
ICAgW21fcmV2ZWFsSXRlbVByZXNlbnRlciBzaG93Q29udGV4dE1lbnVdOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oaW5mbyk7CisgICAgVU5VU0VEX1BBUkFNKGNsaWNrTG9jYXRpb24pOworI2Vu
ZGlmCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKKyNpZiBFTkFCTEUo
UkVWRUFMKQorCit2b2lkIFdlYlZpZXdJbXBsOjpkaWRGaW5pc2hQcmVzZW50YXRpb24oV0tSZXZl
YWxJdGVtUHJlc2VudGVyICpwcmVzZW50ZXIpCit7CisgICAgaWYgKHByZXNlbnRlciA9PSBtX3Jl
dmVhbEl0ZW1QcmVzZW50ZXIpCisgICAgICAgIG1fcmV2ZWFsSXRlbVByZXNlbnRlciA9IG5pbDsK
K30KKworI2VuZGlmIC8vIEVOQUJMRShSRVZFQUwpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CmluZGV4IDdmOTMzOGMyYTFiM2U3YjhhMzFmMGQ0NTllNGIxM2Q1NGY0MmUxZDcuLjAwZjdkZTE4
ODAzN2FkNGY5ZmI3ZTQwYzVjNTNiNWU4ZDVkZGJlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKQEAgLTEzMSw2ICsxMzEsMTAgQEAgc3RydWN0IFByb21pc2VkQXR0YWNobWVu
dEluZm87CiAjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCiBzdHJ1Y3QgVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm87CiAjZW5kaWYKKwor
I2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5m
bzsKKyNlbmRpZgogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYyNiw2ICs2MzAsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9u
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0
aW9uKGNvbnN0IFdlYkNvcmU6OlRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvJikgPSAwOwogI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JF
bGVtZW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCA2NzZjN2MzMDBjNDQ4NjBmYzgyMjM2YmM2NGFmNmY1MDRiODM1YWU1Li5iZjE1NWY0
NTNmMjAwNzdkYWRkMTdkZTUwNzNlMWVkMDA4MGU5YjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMzA3LDYgKzMwNywxMCBAQCBzdHJ1Y3QgSW1hZ2VFeHRyYWN0
aW9uUmVzdWx0OwogZW51bSBjbGFzcyBEYXRhT3duZXJUeXBlIDogdWludDhfdDsKICNlbmRpZgog
CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorc3RydWN0IERhdGFEZXRlY3RvckVsZW1lbnRJ
bmZvOworI2VuZGlmCisKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBSZWN0RWRnZXM7CiB1c2lu
ZyBGbG9hdEJveEV4dGVudCA9IFJlY3RFZGdlczxmbG9hdD47CiAKQEAgLTg3NSw2ICs4NzksNyBA
QCBwdWJsaWM6CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpZiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCiAgICAgdm9pZCBzZXREYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IERhdGFE
ZXRlY3Rpb25SZXN1bHQmKTsKKyAgICB2b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJl
c3VsdChjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50Jik7CiAjZW5kaWYKICAgICB2b2lkIGRpZENvbW1pdExheWVyVHJlZShjb25z
dCBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJik7CiAgICAgdm9pZCBsYXllclRy
ZWVDb21taXRDb21wbGV0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDY3OTU0NTEyMTRkYWUwZTU5ZDQ0MGY0YWU5YjVlZmMx
ZmVmMjZiM2QuLmIzNDJjMGU2OTY0ZTFjMWZhM2IzM2I1Njk4NzVhMjIyMDQ5MDk1ZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAg
LTE3Nyw2ICsxNzcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAjaWYg
RU5BQkxFKERBVEFfREVURUNUSU9OKQogICAgIFNldERhdGFEZXRlY3Rpb25SZXN1bHQoc3RydWN0
IFdlYktpdDo6RGF0YURldGVjdGlvblJlc3VsdCBkYXRhRGV0ZWN0aW9uUmVzdWx0KQorICAgIEhh
bmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChzdHJ1Y3QgV2ViQ29yZTo6RGF0YURldGVj
dG9yRWxlbWVudEluZm8gaW5mbywgV2ViQ29yZTo6SW50UG9pbnQgbG9jYXRpb24pCiAjZW5kaWYK
IAogICAgIFBhZ2VTY2FsZUZhY3RvckRpZENoYW5nZShkb3VibGUgc2NhbGVGYWN0b3IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDYz
NGQ3MTNkZDFmY2IwNzhkZDlkNjg1ODQ5ZTVhMmE3OWZhMDhhMWEuLjlkNGEwMTMxNDg5NDNmOWJk
MzlhYjdkNzJkMjgzYzAzOGQzNGMzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBAIC0yODcsNiArMjg3LDEwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFdlYkNvcmU6OlRyYW5z
bGF0aW9uQ29udGV4dE1lbnVJbmZvJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShE
QVRBX0RFVEVDVElPTikKKyAgICB2b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3Vs
dChjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JikgZmluYWw7CisjZW5kaWYKKwogICAgIE5TVmlldyAqbV92aWV3OwogICAgIFdl
YWtQdHI8V2ViVmlld0ltcGw+IG1faW1wbDsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0K
aW5kZXggM2RlNjAxNzBmNjA1MzQ1ZjgyZjdlNDRlMjIzZjIzMWIxMzljMGY0OC4uMzM2NDJjMmYz
NTIzZjZhMGNhZmExMzczM2RjYTY5N2U0YzU1MmQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtMTAzMSw2ICsxMDMxLDE1IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oY29uc3Qg
VHJhbnNsYXRpb25Db250ZXh0TWVudUluCiAKICNlbmRpZiAvLyBIQVZFKFRSQU5TTEFUSU9OX1VJ
X1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAorI2lmIEVOQUJMRShEQVRBX0RF
VEVDVElPTikKKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0
aW9uUmVzdWx0KGNvbnN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRQ
b2ludCYgY2xpY2tMb2NhdGlvbikKK3sKKyAgICBtX2ltcGwtPmhhbmRsZUNsaWNrRm9yRGF0YURl
dGVjdGlvblJlc3VsdChpbmZvLCBjbGlja0xvY2F0aW9uKTsKK30KKworI2VuZGlmCisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQwYzMxOGU1YjIyMzNjM2ZhY2QwY2Y3MjhkYTdjNmU3MDk4MDZjOWEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVy
LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoUkVWRUFMKQorCisjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ29y
ZUdyYXBoaWNzLmg+CisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworQGNsYXNz
IFJWSXRlbTsKKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJWaWV3SW1wbDsKK30KKwor
QGludGVyZmFjZSBXS1JldmVhbEl0ZW1QcmVzZW50ZXIgOiBOU09iamVjdAorCistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhXZWJWaWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpd2ViVmlld0lt
cGwgaXRlbTooUlZJdGVtICopaXRlbSBmcmFtZTooQ0dSZWN0KWZyYW1lSW5WaWV3IG1lbnVMb2Nh
dGlvbjooQ0dQb2ludCltZW51TG9jYXRpb25JblZpZXc7CistICh2b2lkKXNob3dDb250ZXh0TWVu
dTsKKworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc2hvdWxkVXNlRGVmYXVsdEhpZ2hsaWdo
dDsKKworQGVuZAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoUkVWRUFMKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNl
bnRlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50
ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTNjMTdmODFlODI1YTNiMDYwNGVlMTI2YmIzZjk0Y2M0MzBhMTc5
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVh
bEl0ZW1QcmVzZW50ZXIubW0KQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1JldmVhbEl0ZW1QcmVzZW50
ZXIuaCIKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFJFVkVBTCkKKworI2ltcG9ydCAi
V2ViVmlld0ltcGwuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9X
ZWFrUHRyLmg+CisjaW1wb3J0IDxwYWwvY29jb2EvUmV2ZWFsU29mdExpbmsuaD4KKworQGludGVy
ZmFjZSBXS1JldmVhbEl0ZW1QcmVzZW50ZXIgKCkgPFJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdh
dGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIgeworICAg
IFdlYWtQdHI8V2ViS2l0OjpXZWJWaWV3SW1wbD4gX2ltcGw7CisgICAgUmV0YWluUHRyPFJWUHJl
c2VudGVyPiBfcHJlc2VudGVyOworICAgIFJldGFpblB0cjxSVlByZXNlbnRpbmdDb250ZXh0PiBf
cHJlc2VudGluZ0NvbnRleHQ7CisgICAgUmV0YWluUHRyPFJWSXRlbT4gX2l0ZW07CisgICAgQ0dS
ZWN0IF9mcmFtZUluVmlldzsKKyAgICBDR1BvaW50IF9tZW51TG9jYXRpb25JblZpZXc7CisgICAg
Qk9PTCBfaXNIaWdobGlnaHRpbmdJdGVtOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhX
ZWJWaWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbCBpdGVtOihSVkl0ZW0gKilpdGVt
IGZyYW1lOihDR1JlY3QpZnJhbWVJblZpZXcgbWVudUxvY2F0aW9uOihDR1BvaW50KW1lbnVMb2Nh
dGlvbkluVmlldworeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICBy
ZXR1cm4gbmlsOworCisgICAgX2ltcGwgPSBtYWtlV2Vha1B0cihpbXBsKTsKKyAgICBfcHJlc2Vu
dGVyID0gYWRvcHROUyhbUEFMOjphbGxvY1JWUHJlc2VudGVySW5zdGFuY2UoKSBpbml0XSk7Cisg
ICAgX3ByZXNlbnRpbmdDb250ZXh0ID0gYWRvcHROUyhbUEFMOjphbGxvY1JWUHJlc2VudGluZ0Nv
bnRleHRJbnN0YW5jZSgpIGluaXRXaXRoUG9pbnRlckxvY2F0aW9uSW5WaWV3Om1lbnVMb2NhdGlv
bkluVmlldyBpblZpZXc6aW1wbC52aWV3KCkgaGlnaGxpZ2h0RGVsZWdhdGU6c2VsZl0pOworICAg
IF9pdGVtID0gaXRlbTsKKyAgICBfZnJhbWVJblZpZXcgPSBmcmFtZUluVmlldzsKKyAgICBfbWVu
dUxvY2F0aW9uSW5WaWV3ID0gbWVudUxvY2F0aW9uSW5WaWV3OworICAgIHJldHVybiBzZWxmOwor
fQorCistICh2b2lkKXNob3dDb250ZXh0TWVudQoreworICAgIGlmICghX2ltcGwpCisgICAgICAg
IHJldHVybjsKKworICAgIGF1dG8gdmlldyA9IF9pbXBsLT52aWV3KCk7CisgICAgaWYgKCF2aWV3
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIG1lbnVJdGVtcyA9IHJldGFpblB0cihbX3By
ZXNlbnRlciBtZW51SXRlbXNGb3JJdGVtOl9pdGVtLmdldCgpIGRvY3VtZW50Q29udGV4dDpuaWwg
cHJlc2VudGluZ0NvbnRleHQ6X3ByZXNlbnRpbmdDb250ZXh0LmdldCgpIG9wdGlvbnM6bmlsXSk7
CisgICAgaWYgKCFbbWVudUl0ZW1zIGNvdW50XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0
byBtZW51ID0gYWRvcHROUyhbW05TTWVudSBhbGxvY10gaW5pdFdpdGhUaXRsZTplbXB0eVN0cmlu
ZygpXSk7CisgICAgW21lbnUgc2V0QXV0b2VuYWJsZXNJdGVtczpOT107CisgICAgW21lbnUgc2V0
SXRlbUFycmF5Om1lbnVJdGVtcy5nZXQoKV07CisKKyAgICBhdXRvIGNsaWNrTG9jYXRpb25Jbldp
bmRvdyA9IFt2aWV3IGNvbnZlcnRQb2ludDpfbWVudUxvY2F0aW9uSW5WaWV3IHRvVmlldzpuaWxd
OworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja0xvY2F0aW9uSW5XaW5kb3cgbW9kaWZp
ZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp2aWV3LndpbmRvdy53aW5kb3dOdW1i
ZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOworICAg
IFtOU01lbnUgcG9wVXBDb250ZXh0TWVudTptZW51LmdldCgpIHdpdGhFdmVudDpldmVudCBmb3JW
aWV3OnZpZXddOworCisgICAgW3NlbGYgX2NhbGxEaWRGaW5pc2hQcmVzZW50YXRpb25JZk5lZWRl
ZF07Cit9CisKKy0gKHZvaWQpX2NhbGxEaWRGaW5pc2hQcmVzZW50YXRpb25JZk5lZWRlZAorewor
ICAgIGlmICghX2ltcGwgfHwgX2lzSGlnaGxpZ2h0aW5nSXRlbSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgX2ltcGwtPmRpZEZpbmlzaFByZXNlbnRhdGlvbihzZWxmKTsKK30KKworI3ByYWdtYSBt
YXJrIC0gUlZQcmVzZW50ZXJIaWdobGlnaHREZWxlZ2F0ZQorCistIChOU0FycmF5PE5TVmFsdWUg
Kj4gKilyZXZlYWxDb250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICopY29udGV4dCByZWN0c0Zv
ckl0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICByZXR1cm4gQFsgW05TVmFsdWUgdmFsdWVXaXRo
UmVjdDpfZnJhbWVJblZpZXddIF07Cit9CisKKy0gKEJPT0wpcmV2ZWFsQ29udGV4dDooUlZQcmVz
ZW50aW5nQ29udGV4dCAqKWNvbnRleHQgc2hvdWxkVXNlRGVmYXVsdEhpZ2hsaWdodEZvckl0ZW06
KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICByZXR1cm4gc2VsZi5zaG91bGRVc2VEZWZhdWx0SGlnaGxp
Z2h0OworfQorCistICh2b2lkKXJldmVhbENvbnRleHQ6KFJWUHJlc2VudGluZ0NvbnRleHQgKilj
b250ZXh0IHN0YXJ0SGlnaGxpZ2h0aW5nSXRlbTooUlZJdGVtICopaXRlbQoreworICAgIF9pc0hp
Z2hsaWdodGluZ0l0ZW0gPSBZRVM7Cit9CisKKy0gKHZvaWQpcmV2ZWFsQ29udGV4dDooUlZQcmVz
ZW50aW5nQ29udGV4dCAqKWNvbnRleHQgc3RvcEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlbSAqKWl0
ZW0KK3sKKyAgICBfaXNIaWdobGlnaHRpbmdJdGVtID0gTk87CisKKyAgICBbc2VsZiBfY2FsbERp
ZEZpbmlzaFByZXNlbnRhdGlvbklmTmVlZGVkXTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoUkVWRUFMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODM5OTllNWYzMjhlYzE0N2VmOWZmNGY1MDNh
NGJlNmRkMGU4Zjg3OC4uMzE5NzkzZTc2OTZjODI2MzVmMzk2MWYyN2ZlNjkwZGY1MjM0ZjMxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yMDI5LDYgKzIwMjksNyBAQAogCQlGNDg1NzBBMzI2NDRCRUM1MDBDMDVGNzEgLyogVGltZW91
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4NTcw
QTIyNjQ0QkVDNDAwQzA1RjcxIC8qIFRpbWVvdXQuaCAqLzsgfTsKIAkJRjQ4RDJBODUyMTU4M0E3
RTAwQzY3NTJCIC8qIEFwcEtpdFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ4RDJBODQyMTU4M0EwMjAwQzY3NTJCIC8qIEFwcEtpdFNQSS5oICov
OyB9OwogCQlGNDk2QTQzMTFGNThBMjcyMDA0QzE3NTcgLyogRHJhZ0Ryb3BJbnRlcmFjdGlvblN0
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDk2
QTQyRjFGNThBMjcyMDA0QzE3NTcgLyogRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmggKi87IH07
CisJCUY0OTc0RTc2MjY1RUNCQkMwMEI0OUI4QyAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDZFREVGMjY1
RUIyQjAwMDMxREE4RiAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCAqLzsgfTsKIAkJRjQ5NzVD
RjIyNjI0QjgwQTAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTc1Q0Yx
MjYyNEI4MEEwMDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmgg
Ki87IH07CiAJCUY0QTZENkJDMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhh
bmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRB
NkQ2QkIyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi87IH07
CiAJCUY0QkEzM0YyMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVS
ZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVj
b2duaXplci5oICovOyB9OwpAQCAtNTk3MCw2ICs1OTcxLDggQEAKIAkJRjQ0MjkxOTExRkE1OTEw
NzAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQXR0YWNobWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQyOTE5MzFGQTU5MzExMDAyQ0M5
M0UgLyogX1dLQXR0YWNobWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0F0dGFjaG1l
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NDI5MTk1MUZBNTk0MkEwMDJD
QzkzRSAvKiBfV0tBdHRhY2htZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQXR0YWNo
bWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NDZFREVGMjY1
RUIyQjAwMDMxREE4RiAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tSZXZlYWxJdGVtUHJlc2VudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0
NDZFREYxMjY1RUIzQjYwMDMxREE4RiAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS1JldmVhbEl0ZW1QcmVzZW50ZXIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0NDgxNTYyMjM4NzgyMDAwMDk4MjY1NyAvKiBXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIuaDsgcGF0aCA9IGlvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NDgxNTYzMjM4NzgyMDAwMDk4MjY1NyAvKiBXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMDFFOUU3
NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJJY29uVXRpbGl0aWVzLmg7IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4NTAsNiArMTA4NTMsOCBAQAog
CQkJCTkzMjFENTg3MUEzOEVFNzQwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIubW0gKi8sCiAJCQkJMEZDQjRFNUMxOEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJpbnRpbmdWaWV3
LmggKi8sCiAJCQkJMEZDQjRFNUQxOEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJpbnRpbmdWaWV3Lm1t
ICovLAorCQkJCUY0NDZFREVGMjY1RUIyQjAwMDMxREE4RiAvKiBXS1JldmVhbEl0ZW1QcmVzZW50
ZXIuaCAqLywKKwkJCQlGNDQ2RURGMTI2NUVCM0I2MDAzMURBOEYgLyogV0tSZXZlYWxJdGVtUHJl
c2VudGVyLm1tICovLAogCQkJCTUxM0U0NjJCMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdT
ZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCAqLywKIAkJCQk1MTNFNDYyQzFBRDgzNzU2MDAxNjIzNEEg
LyogV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tICovLAogCQkJCTJERDY3QTMzMUJE
ODYxMDYwMDUzQjI1MSAvKiBXS1RleHRGaW5kZXJDbGllbnQuaCAqLywKQEAgLTEyOTAyLDYgKzEy
OTA3LDcgQEAKIAkJCQk0OTkwMDAyNDI0RDI0QzI5MDAwNDlDQjQgLyogV0tSZW5kZXJPYmplY3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTMzMzY3NjNCMTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291
cmNlQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhBNTAxNTExNzY1RjU2MDA3
NTc1NzMgLyogV0tSZXRhaW5QdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0OTc0RTc2MjY1RUNC
QkMwMEI0OUI4QyAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDQTI2RDgxMjE3QUJENUIwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dhcm5pbmcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBN0UzNzc5MThFNEE0RkUwMDNEMEZGRiAvKiBXS1NjcmlwdE1lc3Nh
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBN0UzNzc1MThFNEEzM0EwMDNEMEZGRiAvKiBXS1Nj
cmlwdE1lc3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggNGU3Yjk4MWUxMjExYmZmMjllN2Q3MzAyYTIwZDUzY2I3YmZkNzNhNS4uYzUyZGVjZmE0
YjNiN2JiNTlmODc4YWYxYWE4MDk5NTFjMWE3ZTk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTEyOTQsNiArMTI5NCwxNSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlVGVsZXBo
b25lTnVtYmVyQ2xpY2soY29uc3QgU3RyaW5nJiBudW1iZXIsIGNvbnN0IEludAogCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6Omhh
bmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0b3JFbGVtZW50
SW5mbyYgaW5mbywgY29uc3QgSW50UG9pbnQmIGNsaWNrTG9jYXRpb24pCit7CisgICAgbV9wYWdl
LmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChpbmZvLCBjbGlja0xvY2F0aW9uKTsK
K30KKworI2VuZGlmCisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKIAogdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhGcmFtZVNlbGVjdGlvbiYg
c2VsZWN0aW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdGVsZXBob25lTnVtYmVycywgY29uc3Qg
SW50UG9pbnQmIHBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDcyOWNjYjA3NWM2OGRiZTBi
Yzc5YTUwZjU5ZjZkZGNmODU4NzkzNjcuLjg3OGE1ODZiOTc0Zjg0MTkzNzRlZjJmYzNiZjg0ZGQ0
NTlhOTczOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM2Niw2ICszNjYsMTAgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYgbnVt
YmVyLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGZpbmFsOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoREFUQV9ERVRFQ1RJT04pCisgICAgdm9pZCBoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25S
ZXN1bHQoY29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYpIGZpbmFsOworI2VuZGlmCisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05U
Uk9MUykKICAgICB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpIGZpbmFsOwogICAgIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rp
b25TZXJ2aWNlcyhib29sIGlzVGV4dE9ubHkpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCmluZGV4
IGY3YmRiOTU3MDRkYzQ1NjAyMzU5MjYzODFkZjYwNGYwMjgwZDAxMGQuLmI3M2EwZDg5ZGNkMmNl
OGQxZWUxYzhkNjk0NjA5MGRhZDRkNWMxZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KQEAgLTQ0OSw2ICs0NDks
MTUgQEAgUGxhdGZvcm1YUlN5c3RlbVByb3h5JiBXZWJQYWdlOjp4clN5c3RlbVByb3h5KCkKIH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCit2b2lkIFdlYlBhZ2U6Omhh
bmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0b3JFbGVtZW50
SW5mbyYgaW5mbywgY29uc3QgSW50UG9pbnQmIGNsaWNrTG9jYXRpb24pCit7CisgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQo
aW5mbywgY2xpY2tMb2NhdGlvbikpOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAzY2I5N2UzY2MzY2ZjZjBkOTMzMWMzNDI3NzVmOWVj
Mzg3ZGJiOWQwLi5lYjZlOGJjY2Y1NzQ0MTc0MDg0YjE5OTUwNTJmNDE2YTFjNGQ3YmVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yNTIsNiArMjUy
LDEwIEBAIGNsYXNzIEhUTUxBdHRhY2htZW50RWxlbWVudDsKICNpZiBIQVZFKFRSQU5TTEFUSU9O
X1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIHN0cnVjdCBUcmFuc2xhdGlv
bkNvbnRleHRNZW51SW5mbzsKICNlbmRpZgorCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQor
c3RydWN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvOworI2VuZGlmCiB9CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtMTE3NSw2ICsxMTc5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVNl
bGVjdGlvblNlcnZpY2VDbGljayhXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbiYsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgdm9pZCBoYW5kbGVDbGlj
a0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVu
dEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOworI2VuZGlmCisKICAgICB2b2lkIGRp
ZENoYW5nZVNjcm9sbE9mZnNldEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKik7CiAKICAgICB2b2lk
IHNldE1haW5GcmFtZVByb2dyZXNzQ29tcGxldGVkKGJvb2wgY29tcGxldGVkKSB7IG1fbWFpbkZy
YW1lUHJvZ3Jlc3NDb21wbGV0ZWQgPSBjb21wbGV0ZWQ7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429918</attachid>
            <date>2021-05-27 13:26:51 -0700</date>
            <delta_ts>2021-05-27 14:05:36 -0700</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-226274-20210527132651.patch</filename>
            <type>text/plain</type>
            <size>41086</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2YxNWNkMGMyNTQxNGMw
NDJjZjA0NGQ0OWE1ZTkxZjcwZDViOTlmOC4uZjJlYWVkNWI0ZjIxMTllNGQ2MmE0OTE0ZGUyNDM2
NDM5NTE1OGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA1LTI3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hv
dyBjb250ZXh0IG1lbnUgd2hlbiBjbGlja2luZyBvbiBkYXRhIGRldGVjdGlvbiByZXN1bHRzIGlu
IGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjYyNzQKKyAgICAgICAgcmRhcjovLzc1NTA0OTU2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgY2xpZW50IGhvb2sgdG8gYWxs
b3cgSW1hZ2VPdmVybGF5Q29udHJvbGxlciB0byBjYWxsIG91dCBpbnRvIHRoZSBXZWJLaXQgY2xp
ZW50IGxheWVyIHdoZW4gYSBkYXRhIGRldGVjdG9yCisgICAgICAgIGJ1dHRvbiAod2l0aCBhIGNv
cnJlc3BvbmRpbmcgRERTY2FubmVyUmVzdWx0KSBpcyBjbGlja2VkLiBTZWUgV2ViS2l0IENoYW5n
ZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6
CisgICAgICAgICogcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oOiBBZGRlZC4K
KworICAgICAgICBJbnRyb2R1Y2UgYSBzdHJ1Y3QgdGhhdCB3cmFwcyBhIGRhdGEgZGV0ZWN0aW9u
IHJlc3VsdCBhbmQgdGhlIGFjY29tcGFueWluZyBlbGVtZW50IGJvdW5kaW5nIHJlY3QsIG1haW5s
eSBzbyB0aGF0CisgICAgICAgIHdlIGhhdmUgYSBDKysgc3RydWN0IHdlIGNhbiBwbHVtYiB0aHJv
dWdoIHRoZSBjbGllbnQgbGF5ZXJzIChyYXRoZXIgdGhhbiBkaXJlY3RseSBwYXNzaW5nIE9iamVj
dGl2ZS1DIG9iamVjdHMKKyAgICAgICAgYXJvdW5kKS4KKworICAgICAgICAqIHBhZ2UvbWFjL0lt
YWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU92ZXJs
YXlDb250cm9sbGVyOjpoYW5kbGVEYXRhRGV0ZWN0b3JBY3Rpb24pOgorCiAyMDIxLTA1LTI2ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9y
IHNvbWUgZGF0YSBkZXRlY3RvciBjb2RlIGluIFdlYkNvcmU6OkZyYW1lCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1
NDMyZGEwODhjNzUwN2QxZDg0YTE5YWRmYTg2NmViYzA0MTVkNjYuLmI5NTQ2ZDY4ZjdmMjhlNWFk
Yjc3N2IxMjZiNjVlY2YzOWExNGIyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMjEt
MDUtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
W21hY09TXSBTaG93IGNvbnRleHQgbWVudSB3aGVuIGNsaWNraW5nIG9uIGRhdGEgZGV0ZWN0aW9u
IHJlc3VsdHMgaW4gaW1hZ2Ugb3ZlcmxheXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjI3NAorICAgICAgICByZGFyOi8vNzU1MDQ5NTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgYSBX
ZWJLaXQyIGNsaWVudCBob29rIHRvIGhhbmRsZSBhIGNsaWNrIG92ZXIgYSBkYXRhIGRldGVjdGlv
biByZXN1bHQgYnkgdXNpbmcgdGhlIFJldmVhbCBmcmFtZXdvcmsgdG8KKyAgICAgICAgY29sbGVj
dCBhbmQgcHJlc2VudCBhIGNvbnRleHQgbWVudS4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMu
CisKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW06
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RGF0YURldGVjdG9yRWxlbWVudEluZm8+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPERhdGFEZXRlY3RvckVsZW1lbnRJ
bmZvPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6
CisKKyAgICAgICAgQWRkIGVuY29kaW5nIGFuZCBkZWNvZGluZyBzdXBwb3J0IGZvciBEYXRhRGV0
ZWN0b3JFbGVtZW50SW5mby4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjp2aWV3IGNvbnN0KToKKworICAgICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRv
IGdyYWIgdGhlIHZpZXcgKGVpdGhlciBhIFdLVmlldyBvciBXS1dlYlZpZXcpIGZyb20gYSBXZWJW
aWV3SW1wbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJl
c3VsdCk6CisKKyAgICAgICAgQ3JlYXRlIGFuZCBwcmVzZW50IGEgbmV3IFdLUmV2ZWFsSXRlbVBy
ZXNlbnRlciB1c2luZyB0aGUgRERTY2FubmVyUmVzdWx0LgorCisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpkaWRGaW5pc2hQcmVzZW50YXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmhhbmRsZUNsaWNrRm9y
RGF0YURldGVjdGlvblJlc3VsdCk6CisKKyAgICAgICAgQWRkIG1vcmUgcGx1bWJpbmcgdGhyb3Vn
aCB0aGUgVUkgcHJvY2VzcyB0byBoYW5kbGUgY2xpY2tpbmcgb24gYSBkYXRhIGRldGVjdGlvbiBy
ZXN1bHQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmhhbmRsZUNs
aWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1Jl
dmVhbEl0ZW1QcmVzZW50ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1Jl
dmVhbEl0ZW1QcmVzZW50ZXIubW06IEFkZGVkLgorCisgICAgICAgIEFkZCBhIGhlbHBlciBjbGFz
cyB0aGF0IHRha2VzIGFuIFJWSXRlbSBhbmQgaXMgY2FwYWJsZSBvZiBwcmVzZW50aW5nIGEgY29u
dGV4dCBtZW51IGZvciB0aGUgaXRlbSwgb24gYmVoYWxmIG9mCisgICAgICAgIFdlYlZpZXdJbXBs
LiBGb3IgdGhlIHRpbWUgYmVpbmcsIHRoaXMgaXMgb25seSB1c2VkIG9uIG1hY09TIChhbmQgdGh1
cywgZGlyZWN0bHkgaG9sZHMgYSBXZWFrUHRyIHRvIGEKKyAgICAgICAgV2ViVmlld0ltcGwpLiBI
b3dldmVyLCB3ZSBtYXkgd2FudCB0byB1c2UgdGhpcyBpbiB0aGUgZnV0dXJlIGZvciBNYWMgQ2F0
YWx5c3QgYXMgd2VsbCwgaW4gd2hpY2ggY2FzZSB3ZSBzaG91bGQKKyAgICAgICAgbWFrZSB0aGlz
IHdvcmsgdmlhIGEgZ2VuZXJpYyBXS1JldmVhbEl0ZW1QcmVzZW50ZXJEZWxlZ2F0ZSBwcm90b2Nv
bCBpbnN0ZWFkLgorCisgICAgICAgICgtW1dLUmV2ZWFsSXRlbVByZXNlbnRlciBpbml0V2l0aFdl
YlZpZXdJbXBsOml0ZW06ZnJhbWU6bWVudUxvY2F0aW9uOl0pOgorICAgICAgICAoLVtXS1JldmVh
bEl0ZW1QcmVzZW50ZXIgc2hvd0NvbnRleHRNZW51XSk6CisgICAgICAgICgtW1dLUmV2ZWFsSXRl
bVByZXNlbnRlciBfY2FsbERpZEZpbmlzaFByZXNlbnRhdGlvbklmTmVlZGVkXSk6CisKKyAgICAg
ICAgQ2FsbCBvdXQgdG8gdGhlIFdlYlZpZXdJbXBsIHRvIHJlc2V0IGl0cyBjdXJyZW50IHJldmVh
bCBpdGVtIHByZXNlbnRlciBhZnRlciB3ZSd2ZSBmaW5pc2hlZCBwcmVzZW50YXRpb24uIFRoaXMK
KyAgICAgICAgaGFwcGVucyBlaXRoZXIgYWZ0ZXIgd2UndmUgZGlzbWlzc2VkIHRoZSBjb250ZXh0
IG1lbnUgKGlmIG5vIGl0ZW0gaXMgaGlnaGxpZ2h0ZWQpLCBvciBhZnRlciB3ZSd2ZSBmaW5pc2hl
ZAorICAgICAgICBoaWdobGlnaHRpbmcgdGhlIGl0ZW0uCisKKyAgICAgICAgKC1bV0tSZXZlYWxJ
dGVtUHJlc2VudGVyIHJldmVhbENvbnRleHQ6cmVjdHNGb3JJdGVtOl0pOgorICAgICAgICAoLVtX
S1JldmVhbEl0ZW1QcmVzZW50ZXIgcmV2ZWFsQ29udGV4dDpzaG91bGRVc2VEZWZhdWx0SGlnaGxp
Z2h0Rm9ySXRlbTpdKToKKyAgICAgICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIHJldmVhbENv
bnRleHQ6c3RhcnRIaWdobGlnaHRpbmdJdGVtOl0pOgorICAgICAgICAoLVtXS1JldmVhbEl0ZW1Q
cmVzZW50ZXIgcmV2ZWFsQ29udGV4dDpzdG9wSGlnaGxpZ2h0aW5nSXRlbTpdKToKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAyMS0wNS0yNiAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBzb21l
IGRhdGEgZGV0ZWN0b3IgY29kZSBpbiBXZWJDb3JlOjpGcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk5NTA5MzIyYTJiYmRh
NjE5Y2MyM2E5MjA2NGE0YzM5NjljYTVmNGIuLmVhMGMwNTgwNGYzNGY2ZDM3NzgyMjgyOTdmM2I3
MWJjZDhkM2NmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTUzMzksNiArNTMzOSw3IEBACiAJCUY0NDJDMzU5MjNFM0FERDIw
MDQ5OTU4MiAvKiBDb21wb3NpdGlvbkhpZ2hsaWdodC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0MkMzNTcyM0UzQUM1MTAwNDk5NTgyIC8qIENvbXBv
c2l0aW9uSGlnaGxpZ2h0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRjQ0NkVEREYyNjVEQUZFMzAwMzFEQThGIC8qIERhdGFEZXRlY3Rpb25SZXN1
bHRzU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThGIC8qIERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFn
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0
NDZFREUxMjY1REIxRTUwMDMxREE4RiAvKiBJbWFnZU92ZXJsYXlEYXRhRGV0ZWN0aW9uUmVzdWx0
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ0NkVERTAyNjVEQjFFNTAwMzFEQThGIC8qIEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25S
ZXN1bHRJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJRjQ0NkVERTgyNjVERDg5MDAwMzFEQThGIC8qIERhdGFEZXRlY3RvckVsZW1l
bnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDQ2RURFNzI2NUREODkwMDAzMURBOEYgLyogRGF0YURldGVjdG9yRWxlbWVudEluZm8uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDRBNUY1OTFG
RUQzOEYyMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1RjU3MUZFRDM4MzAwMDdGNTk0
NCAvKiBMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0NEVCQkQ5MURCNUQyMTQwMDI3NzMzNCAvKiBTdGF0
aWNSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQ0RUJCRDgxREI1RDIxNDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ1Nzc1Q0UyNDE0MzdENTAwMkRG
MUEwIC8qIElubGluZVBhdGhEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDU3NzVDRDI0MTQzN0Q1MDAyREYxQTAgLyogSW5saW5lUGF0aERhdGEu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTY4
MTAsNiArMTY4MTEsNyBAQAogCQlGNDQyQzM1NzIzRTNBQzUxMDA0OTk1ODIgLyogQ29tcG9zaXRp
b25IaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcG9zaXRpb25IaWdobGlnaHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThGIC8qIERh
dGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhRGV0ZWN0aW9u
UmVzdWx0c1N0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0NkVERTAy
NjVEQjFFNTAwMzFEQThGIC8qIEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVu
dGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NDZFREU3MjY1REQ4OTAw
MDMxREE4RiAvKiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRh
RGV0ZWN0b3JFbGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRB
NUY1NzFGRUQzODMwMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQ0RUJCRDYxREI1RDFCNjAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTdGF0aWNSYW5nZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0NEVCQkQ4MURCNUQyMTQwMDI3NzMzNCAvKiBTdGF0aWNSYW5nZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGF0aWNSYW5nZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjE4OTMsNiArMjE4OTUsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlGNDQ2RURERDI2NURBRTNGMDAzMURBOEYgLyogRGF0YURl
dGVjdGlvblJlc3VsdHNTdG9yYWdlLmggKi8sCisJCQkJRjQ0NkVERTcyNjVERDg5MDAwMzFEQThG
IC8qIERhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmggKi8sCiAJCQkJRjQ0NkVERTAyNjVEQjFFNTAw
MzFEQThGIC8qIEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVudGlmaWVyLmggKi8s
CiAJCQkJNDEzRTAwN0IxREIwRTcwNzAwMjM0MUQyIC8qIE1lbW9yeVJlbGVhc2VDb2NvYS5tbSAq
LywKIAkJCQlBRDVBMEMyMjFERUNBMzdFMDA3MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ29j
b2EubW0gKi8sCkBAIC0zMjIwMCw2ICszMjIwMyw3IEBACiAJCQkJQkUyMzQ4MEQxOEE5ODcxNDAw
RTRCNkU4IC8qIERhdGFDdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1MjI3REYxMUMzQzZERjEw
MEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDQ2RURERjI2
NURBRkUzMDAzMURBOEYgLyogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNDQ2RURFODI2NUREODkwMDAzMURBOEYgLyogRGF0YURldGVjdG9yRWxlbWVu
dEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUY0QjJBOTA5MjY1MDMwQkEwMDlFNzI4NiAvKiBE
YXRhRGV0ZWN0b3JIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNEE1MzM1MjU2MDVB
NTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNThC
NDVCQTIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGI2ZDkxYTgzMzE3ZTIyMmM5
YzJiMTdiMTY4YzMwNjg4OWQ0NjZiMTMuLjUwYTYyYzEzNzhiMjVkYzlmZjFiMGY4N2Y2ZWNmMGI1
ZGExOTVkZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTIxLDYgKzEyMSw3
IEBAIGNsYXNzIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNr
Owogc3RydWN0IEFwcEhpZ2hsaWdodDsKIHN0cnVjdCBDb250YWN0c1JlcXVlc3REYXRhOwogc3Ry
dWN0IENvbnRlbnRSdWxlTGlzdFJlc3VsdHM7CitzdHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudElu
Zm87CiBzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0Rl
dmljZUFkYXB0ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsK
QEAgLTUwMiw2ICs1MDMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVUZWxl
cGhvbmVOdW1iZXJDbGljayhjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRQb2ludCYpIHsgfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5m
byYsIGNvbnN0IEludFBvaW50JikgeyB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NP
TlRST0xTKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soRnJh
bWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IEludFBvaW50JikgeyB9
CiAgICAgdmlydHVhbCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2VydmljZXMoYm9vbCAvKmlz
VGV4dE9ubHkqLykgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvY29jb2EvRGF0YURldGVjdG9yRWxlbWVudEluZm8uaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY29jb2EvRGF0YURldGVjdG9yRWxlbWVudEluZm8uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjZh
OGQ4YjJiMDc2OGFmNzUyNzQwOGNkYWE2MzY5NTUxNzUyZDdmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRB
X0RFVEVDVElPTikKKworI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIERE
U2Nhbm5lclJlc3VsdDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJbnRSZWN0Owor
CitzdHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm8geworICAgIFJldGFpblB0cjxERFNjYW5u
ZXJSZXN1bHQ+IHJlc3VsdDsKKyAgICBJbnRSZWN0IGVsZW1lbnRCb3VuZHM7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVy
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJvbGxlck1h
Yy5tbQppbmRleCBiMTE1ZmZmYjM1NzkwNzQxMGU0ZDMxOGViNDIwZTY2OTkwNDNjNDM2Li5lODRl
ZGY4ZDEzNjlhNmU0ZjBjMDU5OTI2ZDk1MTE0YjUxNDk4MGE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0KQEAgLTI5LDkg
KzI5LDEyIEBACiAjaWYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJEYXRhRGV0ZWN0aW9uLmgi
CisjaW1wb3J0ICJEYXRhRGV0ZWN0aW9uUmVzdWx0c1N0b3JhZ2UuaCIKKyNpbXBvcnQgIkRhdGFE
ZXRlY3RvckVsZW1lbnRJbmZvLmgiCiAjaW1wb3J0ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIkhU
TUxFbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNpbXBvcnQgIkltYWdlT3Zlcmxh
eURhdGFEZXRlY3Rpb25SZXN1bHRJZGVudGlmaWVyLmgiCiAjaW1wb3J0ICJJbnRSZWN0LmgiCiAj
aW1wb3J0ICJQYWdlLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKQEAgLTE0Nyw4
ICsxNTAsMjcgQEAgYm9vbCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVEYXRhRGV0ZWN0
b3JBY3Rpb24oY29uc3QgSFRNTEVsZW1lbnQmIGVsZW1lbnQKICAgICBpZiAoIWZyYW1lVmlldykK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gRklYTUU6IENhbGwgb3V0IHRvIHRoZSBj
bGllbnQgbGF5ZXIgdG8gaGFuZGxlIHRoZSBjbGljay4KLSAgICBVTlVTRURfUEFSQU0obG9jYXRp
b25JbkNvbnRlbnRzKTsKKyAgICBhdXRvIGlkZW50aWZpZXJWYWx1ZSA9IHBhcnNlSW50ZWdlcjx1
aW50NjRfdD4oZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1l
czo6eF9hcHBsZV9kYXRhX2RldGVjdG9yc19yZXN1bHRBdHRyKSk7CisgICAgaWYgKCFpZGVudGlm
aWVyVmFsdWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gaWRlbnRpZmllciA9
IG1ha2VPYmplY3RJZGVudGlmaWVyPEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVu
dGlmaWVyVHlwZT4oKmlkZW50aWZpZXJWYWx1ZSk7CisgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFs
aWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byogZGF0YURldGVjdGlvblJl
c3VsdHMgPSBmcmFtZS0+ZGF0YURldGVjdGlvblJlc3VsdHNJZkV4aXN0cygpOworICAgIGlmICgh
ZGF0YURldGVjdGlvblJlc3VsdHMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8g
ZGF0YURldGVjdGlvblJlc3VsdCA9IHJldGFpblB0cihkYXRhRGV0ZWN0aW9uUmVzdWx0cy0+aW1h
Z2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdChpZGVudGlmaWVyKSk7CisgICAgaWYgKCFkYXRh
RGV0ZWN0aW9uUmVzdWx0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvKiByZW5k
ZXJlciA9IGVsZW1lbnQucmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBtX3BhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRsZUNsaWNr
Rm9yRGF0YURldGVjdGlvblJlc3VsdCh7IFdURk1vdmUoZGF0YURldGVjdGlvblJlc3VsdCksIGZy
YW1lVmlldy0+Y29udGVudHNUb1dpbmRvdyhyZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJl
Y3QoKSkgfSwgZnJhbWVWaWV3LT5jb250ZW50c1RvV2luZG93KGxvY2F0aW9uSW5Db250ZW50cykp
OwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCmluZGV4IDJiNjY1ZWVkMTU5
NjdmOTcwZmU2ZjQ5YThjNzllZTg3OTJkMGU4MmYuLjBiODU4OWE5M2Q4M2YwNTllYzkyZjk3MzJi
YzJhY2FhMDcwN2I1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dl
YkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1w
b3J0ICJBcmd1bWVudENvZGVyc0NvY29hLmgiCiAjaW1wb3J0IDxDb3JlVGV4dC9Db3JlVGV4dC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9BdHRyaWJ1dGVkU3RyaW5nLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0RhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RpY3Rpb25hcnlQ
b3B1cEluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udC5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
b250QXR0cmlidXRlcy5oPgpAQCAtNjE0LDYgKzYxNSwzMCBAQCBib29sIEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRl
Y29kZQogICAgIHJldHVybiB0cnVlOwogfQogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQor
Cit2b2lkIEFyZ3VtZW50Q29kZXI8RGF0YURldGVjdG9yRWxlbWVudEluZm8+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRGF0YURldGVjdG9yRWxlbWVudEluZm8mIGluZm8pCit7Cisg
ICAgZW5jb2RlciA8PCBpbmZvLnJlc3VsdC5nZXQoKTsKKyAgICBlbmNvZGVyIDw8IGluZm8uZWxl
bWVudEJvdW5kczsKK30KKworT3B0aW9uYWw8RGF0YURldGVjdG9yRWxlbWVudEluZm8+IEFyZ3Vt
ZW50Q29kZXI8RGF0YURldGVjdG9yRWxlbWVudEluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBhdXRvIHJlc3VsdCA9IElQQzo6ZGVjb2RlPEREU2Nhbm5lclJlc3VsdD4oZGVj
b2RlciwgUEFMOjpnZXRERFNjYW5uZXJSZXN1bHRDbGFzcygpKTsKKyAgICBpZiAoIXJlc3VsdCkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEludFJlY3Q+IGVs
ZW1lbnRCb3VuZHM7CisgICAgZGVjb2RlciA+PiBlbGVtZW50Qm91bmRzOworICAgIGlmICghZWxl
bWVudEJvdW5kcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiBt
YWtlT3B0aW9uYWw8RGF0YURldGVjdG9yRWxlbWVudEluZm8+KHsgV1RGTW92ZSgqcmVzdWx0KSwg
V1RGTW92ZSgqZWxlbWVudEJvdW5kcykgfSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogdm9pZCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Pjo6ZW5jb2Rl
UGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXRD
b250ZXh0JiB0YXJnZXQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDk2M2ZiNDhjOWEwOTk5ODk1YWFiZjlmZTIyY2JmM2Y0NzYxYjAyZjgu
LmFiMGMyNjM2MzI3M2ZhMjE0MGVhNjU5Yzg2Y2ZjNTA4ZDMyOGRiYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0xNDMsNiArMTQzLDcgQEAg
c3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQ2FjaGVRdWVyeU9wdGlvbnM7CiBzdHJ1
Y3QgQ2hhcmFjdGVyUmFuZ2U7CiBzdHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CitzdHJ1Y3Qg
RGF0YURldGVjdG9yRWxlbWVudEluZm87CiBzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmU7CiBz
dHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFdmVudFRyYWNraW5nUmVnaW9uczsK
QEAgLTgwNCw2ICs4MDUsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpTY3JpcHRCdWZmZXI+IHsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0
QnVmZmVyPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEYXRhRGV0ZWN0
b3JFbGVtZW50SW5mbz4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8
V2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8+IGRlY29kZShEZWNvZGVyJik7Cit9Owor
CisjZW5kaWYKKwogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TWVzc2FnZT4gewog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uOjpNZXNzYWdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYjI2NTk5YmE4
ZTcwNjQ2NTRiNDhiNDU4ODg2MGY5OTg4NzNhMWNiMC4uYjE0ODAxM2M5MDQ2NWY5MzJmYzZhZDk0
YjFlN2FmOTQ5NDEyMzhjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTI1LDYgKzUyNSw3
IEBAIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQogVUlQcm9j
ZXNzL21hYy9XS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1tCiBVSVByb2Nlc3Mv
bWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQogVUlQcm9jZXNzL21hYy9XS1ByaW50
aW5nVmlldy5tbQorVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50ZXIubW0KIFVJUHJv
Y2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tCiBVSVByb2Nlc3MvbWFj
L1dLVGV4dEZpbmRlckNsaWVudC5tbQogVUlQcm9jZXNzL21hYy9XS1RleHRJbnB1dFdpbmRvd0Nv
bnRyb2xsZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0KaW5kZXggMmQxMDNmMGVkMGE3ZDI2MTQxZWMyZjMzYjJiZjY2NTBiYzhj
NWUyZi4uYjE2ZDVmMTNiYTk2ZjRmZGUwMTA5MjIxNGY3NjVlMTUxOGQ4ZjEwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAg
LTk1LDEwICs5NSwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0RGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0aW9uUmVzdWx0JiBkYXRhRGV0
ZWN0aW9uUmVzdWx0KQogewogICAgIG1fZGF0YURldGVjdGlvblJlc3VsdHMgPSBkYXRhRGV0ZWN0
aW9uUmVzdWx0LnJlc3VsdHM7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVDbGlja0Zv
ckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURldGVjdG9yRWxlbWVudEluZm8mIGluZm8s
IGNvbnN0IEludFBvaW50JiBjbGlja0xvY2F0aW9uKQoreworICAgIHBhZ2VDbGllbnQoKS5oYW5k
bGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoaW5mbywgY2xpY2tMb2NhdGlvbik7Cit9CisK
ICNlbmRpZgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJjaD4mIHNlYXJjaEl0
ZW1zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXgg
YmQ4ZDgyYzQxNTczMTE0NjRmNGVjNTVkMGUxNDlkZmU4OTg3MGJhMS4uZmVlMzlmMjhjMDdkNTFl
NDQyMTJiZWNhNTc0YTUxY2MzNGE1YTA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5oCkBAIC02MSw2ICs2MSw3IEBAIE9CSkNfQ0xBU1MgV0tET01QYXN0
ZU1lbnVEZWxlZ2F0ZTsKIE9CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFyZ2V0OwogT0JKQ19DTEFT
UyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOwogT0JKQ19DTEFTUyBXS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXI7CitPQkpDX0NMQVNTIFdLUmV2ZWFsSXRlbVByZXNlbnRlcjsKIE9CSkNf
Q0xBU1MgV0tTYWZlQnJvd3NpbmdXYXJuaW5nOwogT0JKQ19DTEFTUyBXS1NoYXJlU2hlZXQ7CiBP
QkpDX0NMQVNTIFdLVmlld0xheW91dFN0cmF0ZWd5OwpAQCAtOTYsNiArOTcsNyBAQCBjbGFzcyBQ
YWdlQ29uZmlndXJhdGlvbjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERlc3RpbmF0aW9u
Q29sb3JTcGFjZTsKIGNsYXNzIEludFBvaW50Oworc3RydWN0IERhdGFEZXRlY3RvckVsZW1lbnRJ
bmZvOwogc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiAKICNpZiBIQVZFKFRSQU5TTEFU
SU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTE4OSw2ICsxOTEs
NyBAQCBwdWJsaWM6CiAgICAgTlNXaW5kb3cgKndpbmRvdygpOwogCiAgICAgV2ViUGFnZVByb3h5
JiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CisgICAgTlNWaWV3ICp2aWV3KCkgY29u
c3QgeyByZXR1cm4gbV92aWV3LmdldEF1dG9yZWxlYXNlZCgpOyB9CiAKICAgICB2b2lkIHByb2Nl
c3NXaWxsU3dhcCgpOwogICAgIHZvaWQgcHJvY2Vzc0RpZEV4aXQoKTsKQEAgLTY2OSw2ICs2NzIs
MTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JGb3JUZXN0
aW5nKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlKik7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICB2b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURldGVj
dGlvblJlc3VsdChjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50Jik7CisjZW5kaWYKKworI2lmIEVOQUJMRShSRVZFQUwpCisgICAg
dm9pZCBkaWRGaW5pc2hQcmVzZW50YXRpb24oV0tSZXZlYWxJdGVtUHJlc2VudGVyICopOworI2Vu
ZGlmCisKIHByaXZhdGU6CiAjaWYgSEFWRShUT1VDSF9CQVIpCiAgICAgdm9pZCBzZXRVcFRleHRU
b3VjaEJhcihOU1RvdWNoQmFyICopOwpAQCAtNzAxLDYgKzcxMiwxMCBAQCBwcml2YXRlOgogI2Vu
ZGlmIC8vIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikKICNlbmRpZiAvLyBI
QVZFKFRPVUNIX0JBUikKIAorI2lmIEVOQUJMRShSRVZFQUwpCisgICAgUmV0YWluUHRyPFdLUmV2
ZWFsSXRlbVByZXNlbnRlcj4gbV9yZXZlYWxJdGVtUHJlc2VudGVyOworI2VuZGlmCisKICAgICBi
b29sIHN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKSBjb25zdDsKICAgICBmbG9hdCBpbnRy
aW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIHZvaWQgZGlzcGF0Y2hTZXRUb3BD
b250ZW50SW5zZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KaW5kZXggODg4ODIxNTdjMGIxNzZjNjVhMTZmNjhhNTg5ZDcwYmRjYWY0ZGExMi4uM2Fj
ZjRhNTMzNzU4NGI2NDhhNjA5MjE4MGJkYTQwNTg4N2E3MTVmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTY1LDYgKzY1LDcgQEAKICNpbXBv
cnQgIldLTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgIldLUERGSFVEVmlldy5oIgogI2ltcG9ydCAi
V0tQcmludGluZ1ZpZXcuaCIKKyNpbXBvcnQgIldLUmV2ZWFsSXRlbVByZXNlbnRlci5oIgogI2lt
cG9ydCAiV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tTaGFyZVNo
ZWV0Lmg+CiAjaW1wb3J0ICJXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCIKQEAgLTg5LDYg
KzkwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvQ29sb3JNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
Q29sb3JTZXJpYWxpemF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbXBvc2l0aW9uSGlnaGxp
Z2h0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0Rlc3RpbmF0aW9uQ29sb3JTcGFjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9E
aWN0aW9uYXJ5TG9va3VwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+CkBAIC0xNDQs
NiArMTQ2LDggQEAKICNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0
ZS5oIgogI2VuZGlmCiAKKyNpbXBvcnQgPHBhbC9jb2NvYS9SZXZlYWxTb2Z0TGluay5oPgorCiAj
aWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykKICNpbXBvcnQgPFRyYW5zbGF0aW9uVUlT
ZXJ2aWNlcy9MVFVJVHJhbnNsYXRpb25WaWV3Q29udHJvbGxlci5oPgogCkBAIC01NzUxLDYgKzU3
NTUsMzIgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZW5kUHJldmlld1BhbmVsQ29udHJvbChRTFByZXZp
ZXdQYW5lbCAqcGFuZWwpCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
Kwordm9pZCBXZWJWaWV3SW1wbDo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNv
bnN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRQb2ludCYgY2xpY2tM
b2NhdGlvbikKK3sKKyNpZiBFTkFCTEUoUkVWRUFMKQorICAgIG1fcmV2ZWFsSXRlbVByZXNlbnRl
ciA9IGFkb3B0TlMoW1tXS1JldmVhbEl0ZW1QcmVzZW50ZXIgYWxsb2NdIGluaXRXaXRoV2ViVmll
d0ltcGw6KnRoaXMgaXRlbTphZG9wdE5TKFtQQUw6OmFsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0
V2l0aEREUmVzdWx0OmluZm8ucmVzdWx0LmdldCgpXSkuZ2V0KCkgZnJhbWU6aW5mby5lbGVtZW50
Qm91bmRzIG1lbnVMb2NhdGlvbjpjbGlja0xvY2F0aW9uXSk7CisgICAgW21fcmV2ZWFsSXRlbVBy
ZXNlbnRlciBzZXRTaG91bGRVc2VEZWZhdWx0SGlnaGxpZ2h0Ok5PXTsKKyAgICBbbV9yZXZlYWxJ
dGVtUHJlc2VudGVyIHNob3dDb250ZXh0TWVudV07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShp
bmZvKTsKKyAgICBVTlVTRURfUEFSQU0oY2xpY2tMb2NhdGlvbik7CisjZW5kaWYKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKworI2lmIEVOQUJMRShSRVZFQUwpCisKK3Zv
aWQgV2ViVmlld0ltcGw6OmRpZEZpbmlzaFByZXNlbnRhdGlvbihXS1JldmVhbEl0ZW1QcmVzZW50
ZXIgKnByZXNlbnRlcikKK3sKKyAgICBpZiAocHJlc2VudGVyID09IG1fcmV2ZWFsSXRlbVByZXNl
bnRlcikKKyAgICAgICAgbV9yZXZlYWxJdGVtUHJlc2VudGVyID0gbmlsOworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKFJFVkVBTCkKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQ
TEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggN2Y5MzM4
YzJhMWIzZTdiOGEzMWYwZDQ1OWU0YjEzZDU0ZjQyZTFkNy4uMDEzZjUwNzk2YmE0NTZjYmYxYjk4
ZmMzMmM3MjFiOGE1ZTk1MTc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApA
QCAtMTEyLDYgKzExMiw3IEBAIGVudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1h
dGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50
OF90OwogCiBzdHJ1Y3QgQXBwSGlnaGxpZ2h0Oworc3RydWN0IERhdGFEZXRlY3RvckVsZW1lbnRJ
bmZvOwogc3RydWN0IERpY3Rpb25hcnlQb3B1cEluZm87CiBzdHJ1Y3QgVGV4dEluZGljYXRvckRh
dGE7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwpAQCAtNjI2LDYgKzYyNywxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIGNhbkhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24o
Y29uc3QgV2ViQ29yZTo6VHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8mKSA9IDA7CiAjZW5kaWYK
KworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQ2xp
Y2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1l
bnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSB7IH0KKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDY3NmM3YzMwMGM0NDg2MGZjODIyMzZiYzY0YWY2ZjUwNGI4MzVhZTUuLjQ4MDMyZDBkMjJm
YzNmOTYxNGUxM2QxNTQ1YmU1Y2ZiMzg5NWM4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCkBAIC0yNzgsNiArMjc4LDcgQEAgc3RydWN0IENvbXBvc2l0aW9uSGlnaGxp
Z2h0Owogc3RydWN0IENvbnRhY3RJbmZvOwogc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBz
dHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50
SW5mbzsKIHN0cnVjdCBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbjsKIHN0cnVjdCBEYXRl
VGltZUNob29zZXJQYXJhbWV0ZXJzOwogc3RydWN0IERpY3Rpb25hcnlQb3B1cEluZm87CkBAIC04
NzUsNiArODc2LDcgQEAgcHVibGljOgogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAj
aWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogICAgIHZvaWQgc2V0RGF0YURldGVjdGlvblJlc3Vs
dChjb25zdCBEYXRhRGV0ZWN0aW9uUmVzdWx0Jik7CisgICAgdm9pZCBoYW5kbGVDbGlja0ZvckRh
dGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8m
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogI2VuZGlmCiAgICAgdm9pZCBkaWRDb21taXRM
YXllclRyZWUoY29uc3QgV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYpOwogICAg
IHZvaWQgbGF5ZXJUcmVlQ29tbWl0Q29tcGxldGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2Nzk1NDUxMjE0ZGFlMGU1OWQ0
NDBmNGFlOWI1ZWZjMWZlZjI2YjNkLi5iMzQyYzBlNjk2NGUxYzFmYTNiMzNiNTY5ODc1YTIyMjA0
OTA5NWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0xNzcsNiArMTc3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsK
ICNlbmRpZgogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAgICBTZXREYXRhRGV0ZWN0aW9u
UmVzdWx0KHN0cnVjdCBXZWJLaXQ6OkRhdGFEZXRlY3Rpb25SZXN1bHQgZGF0YURldGVjdGlvblJl
c3VsdCkKKyAgICBIYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoc3RydWN0IFdlYkNv
cmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvIGluZm8sIFdlYkNvcmU6OkludFBvaW50IGxvY2F0
aW9uKQogI2VuZGlmCiAKICAgICBQYWdlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoZG91YmxlIHNjYWxl
RmFjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxN
YWMuaAppbmRleCA2MzRkNzEzZGQxZmNiMDc4ZGQ5ZDY4NTg0OWU1YTJhNzlmYTA4YTFhLi45ZDRh
MDEzMTQ4OTQzZjliZDM5YWI3ZDcyZDI4M2MwMzhkMzRjMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApAQCAtMjg3LDYgKzI4NywxMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbihjb25zdCBX
ZWJDb3JlOjpUcmFuc2xhdGlvbkNvbnRleHRNZW51SW5mbyYpIG92ZXJyaWRlOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgdm9pZCBoYW5kbGVDbGlja0ZvckRhdGFE
ZXRlY3Rpb25SZXN1bHQoY29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGZpbmFsOworI2VuZGlmCisKICAgICBOU1ZpZXcgKm1f
dmlldzsKICAgICBXZWFrUHRyPFdlYlZpZXdJbXBsPiBtX2ltcGw7CiAjaWYgVVNFKEFVVE9DT1JS
RUNUSU9OX1BBTkVMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLm1tCmluZGV4IDNkZTYwMTcwZjYwNTM0NWY4MmY3ZTQ0ZTIyM2YyMzFiMTM5YzBm
NDguLjMzNjQyYzJmMzUyM2Y2YTBjYWZhMTM3MzNkY2E2OTdlNGM1NTJkNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTEwMzEs
NiArMTAzMSwxNSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVDb250ZXh0TWVudVRyYW5z
bGF0aW9uKGNvbnN0IFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbgogCiAjZW5kaWYgLy8gSEFWRShU
UkFOU0xBVElPTl9VSV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKKyNpZiBF
TkFCTEUoREFUQV9ERVRFQ1RJT04pCisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZUNsaWNr
Rm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYgaW5m
bywgY29uc3QgSW50UG9pbnQmIGNsaWNrTG9jYXRpb24pCit7CisgICAgbV9pbXBsLT5oYW5kbGVD
bGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoaW5mbywgY2xpY2tMb2NhdGlvbik7Cit9CisKKyNl
bmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVz
ZW50ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MGMzMThlNWIyMjMzYzNmYWNkMGNmNzI4ZGE3YzZlNzA5ODA2Yzlh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUmV2ZWFs
SXRlbVByZXNlbnRlci5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFJFVkVBTCkKKworI2ltcG9ydCA8Q29y
ZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgorI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CisKK0BjbGFzcyBSVkl0ZW07CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViVmll
d0ltcGw7Cit9CisKK0BpbnRlcmZhY2UgV0tSZXZlYWxJdGVtUHJlc2VudGVyIDogTlNPYmplY3QK
KworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0lt
cGwmKXdlYlZpZXdJbXBsIGl0ZW06KFJWSXRlbSAqKWl0ZW0gZnJhbWU6KENHUmVjdClmcmFtZUlu
VmlldyBtZW51TG9jYXRpb246KENHUG9pbnQpbWVudUxvY2F0aW9uSW5WaWV3OworLSAodm9pZClz
aG93Q29udGV4dE1lbnU7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNob3VsZFVzZURl
ZmF1bHRIaWdobGlnaHQ7CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5B
QkxFKFJFVkVBTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Jl
dmVhbEl0ZW1QcmVzZW50ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZl
YWxJdGVtUHJlc2VudGVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzYzE3ZjgxZTgyNWEzYjA2MDRlZTEyNmJi
M2Y5NGNjNDMwYTE3OTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tSZXZl
YWxJdGVtUHJlc2VudGVyLmgiCisKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShSRVZFQUwp
CisKKyNpbXBvcnQgIldlYlZpZXdJbXBsLmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Cisj
aW1wb3J0IDx3dGYvV2Vha1B0ci5oPgorI2ltcG9ydCA8cGFsL2NvY29hL1JldmVhbFNvZnRMaW5r
Lmg+CisKK0BpbnRlcmZhY2UgV0tSZXZlYWxJdGVtUHJlc2VudGVyICgpIDxSVlByZXNlbnRlckhp
Z2hsaWdodERlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tSZXZlYWxJdGVtUHJl
c2VudGVyIHsKKyAgICBXZWFrUHRyPFdlYktpdDo6V2ViVmlld0ltcGw+IF9pbXBsOworICAgIFJl
dGFpblB0cjxSVlByZXNlbnRlcj4gX3ByZXNlbnRlcjsKKyAgICBSZXRhaW5QdHI8UlZQcmVzZW50
aW5nQ29udGV4dD4gX3ByZXNlbnRpbmdDb250ZXh0OworICAgIFJldGFpblB0cjxSVkl0ZW0+IF9p
dGVtOworICAgIENHUmVjdCBfZnJhbWVJblZpZXc7CisgICAgQ0dQb2ludCBfbWVudUxvY2F0aW9u
SW5WaWV3OworICAgIEJPT0wgX2lzSGlnaGxpZ2h0aW5nSXRlbTsKK30KKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKWltcGwgaXRlbToo
UlZJdGVtICopaXRlbSBmcmFtZTooQ0dSZWN0KWZyYW1lSW5WaWV3IG1lbnVMb2NhdGlvbjooQ0dQ
b2ludCltZW51TG9jYXRpb25JblZpZXcKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRd
KSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9pbXBsID0gbWFrZVdlYWtQdHIoaW1wbCk7
CisgICAgX3ByZXNlbnRlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NSVlByZXNlbnRlckluc3RhbmNl
KCkgaW5pdF0pOworICAgIF9wcmVzZW50aW5nQ29udGV4dCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NS
VlByZXNlbnRpbmdDb250ZXh0SW5zdGFuY2UoKSBpbml0V2l0aFBvaW50ZXJMb2NhdGlvbkluVmll
dzptZW51TG9jYXRpb25JblZpZXcgaW5WaWV3OmltcGwudmlldygpIGhpZ2hsaWdodERlbGVnYXRl
OnNlbGZdKTsKKyAgICBfaXRlbSA9IGl0ZW07CisgICAgX2ZyYW1lSW5WaWV3ID0gZnJhbWVJblZp
ZXc7CisgICAgX21lbnVMb2NhdGlvbkluVmlldyA9IG1lbnVMb2NhdGlvbkluVmlldzsKKyAgICBy
ZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClzaG93Q29udGV4dE1lbnUKK3sKKyAgICBpZiAoIV9p
bXBsKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHZpZXcgPSBfaW1wbC0+dmlldygpOwor
ICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBtZW51SXRlbXMgPSBy
ZXRhaW5QdHIoW19wcmVzZW50ZXIgbWVudUl0ZW1zRm9ySXRlbTpfaXRlbS5nZXQoKSBkb2N1bWVu
dENvbnRleHQ6bmlsIHByZXNlbnRpbmdDb250ZXh0Ol9wcmVzZW50aW5nQ29udGV4dC5nZXQoKSBv
cHRpb25zOm5pbF0pOworICAgIGlmICghW21lbnVJdGVtcyBjb3VudF0pCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8gbWVudSA9IGFkb3B0TlMoW1tOU01lbnUgYWxsb2NdIGluaXRXaXRoVGl0
bGU6ZW1wdHlTdHJpbmcoKV0pOworICAgIFttZW51IHNldEF1dG9lbmFibGVzSXRlbXM6Tk9dOwor
ICAgIFttZW51IHNldEl0ZW1BcnJheTptZW51SXRlbXMuZ2V0KCldOworCisgICAgYXV0byBjbGlj
a0xvY2F0aW9uSW5XaW5kb3cgPSBbdmlldyBjb252ZXJ0UG9pbnQ6X21lbnVMb2NhdGlvbkluVmll
dyB0b1ZpZXc6bmlsXTsKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tMb2NhdGlvbklu
V2luZG93IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6dmlldy53aW5k
b3cud2luZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVz
c3VyZToxXTsKKyAgICBbTlNNZW51IHBvcFVwQ29udGV4dE1lbnU6bWVudS5nZXQoKSB3aXRoRXZl
bnQ6ZXZlbnQgZm9yVmlldzp2aWV3XTsKKworICAgIFtzZWxmIF9jYWxsRGlkRmluaXNoUHJlc2Vu
dGF0aW9uSWZOZWVkZWRdOworfQorCistICh2b2lkKV9jYWxsRGlkRmluaXNoUHJlc2VudGF0aW9u
SWZOZWVkZWQKK3sKKyAgICBpZiAoIV9pbXBsIHx8IF9pc0hpZ2hsaWdodGluZ0l0ZW0pCisgICAg
ICAgIHJldHVybjsKKworICAgIF9pbXBsLT5kaWRGaW5pc2hQcmVzZW50YXRpb24oc2VsZik7Cit9
CisKKyNwcmFnbWEgbWFyayAtIFJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGUKKworLSAoTlNB
cnJheTxOU1ZhbHVlICo+ICopcmV2ZWFsQ29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4dCAqKWNv
bnRleHQgcmVjdHNGb3JJdGVtOihSVkl0ZW0gKilpdGVtCit7CisgICAgcmV0dXJuIEBbIFtOU1Zh
bHVlIHZhbHVlV2l0aFJlY3Q6X2ZyYW1lSW5WaWV3XSBdOworfQorCistIChCT09MKXJldmVhbENv
bnRleHQ6KFJWUHJlc2VudGluZ0NvbnRleHQgKiljb250ZXh0IHNob3VsZFVzZURlZmF1bHRIaWdo
bGlnaHRGb3JJdGVtOihSVkl0ZW0gKilpdGVtCit7CisgICAgcmV0dXJuIHNlbGYuc2hvdWxkVXNl
RGVmYXVsdEhpZ2hsaWdodDsKK30KKworLSAodm9pZClyZXZlYWxDb250ZXh0OihSVlByZXNlbnRp
bmdDb250ZXh0ICopY29udGV4dCBzdGFydEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlbSAqKWl0ZW0K
K3sKKyAgICBfaXNIaWdobGlnaHRpbmdJdGVtID0gWUVTOworfQorCistICh2b2lkKXJldmVhbENv
bnRleHQ6KFJWUHJlc2VudGluZ0NvbnRleHQgKiljb250ZXh0IHN0b3BIaWdobGlnaHRpbmdJdGVt
OihSVkl0ZW0gKilpdGVtCit7CisgICAgX2lzSGlnaGxpZ2h0aW5nSXRlbSA9IE5POworCisgICAg
W3NlbGYgX2NhbGxEaWRGaW5pc2hQcmVzZW50YXRpb25JZk5lZWRlZF07Cit9CisKK0BlbmQKKwor
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFJFVkVBTCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgzOTk5ZTVmMzI4ZWMx
NDdlZjlmZjRmNTAzYTRiZTZkZDBlOGY4NzguLjMxOTc5M2U3Njk2YzgyNjM1ZjM5NjFmMjdmZTY5
MGRmNTIzNGYzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjAyOSw2ICsyMDI5LDcgQEAKIAkJRjQ4NTcwQTMyNjQ0QkVDNTAwQzA1
RjcxIC8qIFRpbWVvdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0ODU3MEEyMjY0NEJFQzQwMEMwNUY3MSAvKiBUaW1lb3V0LmggKi87IH07CiAJCUY0
OEQyQTg1MjE1ODNBN0UwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQTg0MjE1ODNBMDIwMEM2NzUyQiAvKiBB
cHBLaXRTUEkuaCAqLzsgfTsKIAkJRjQ5NkE0MzExRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9w
SW50ZXJhY3Rpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ5NkE0MkYxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25T
dGF0ZS5oICovOyB9OworCQlGNDk3NEU3NjI2NUVDQkJDMDBCNDlCOEMgLyogV0tSZXZlYWxJdGVt
UHJlc2VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDQ2RURFRjI2NUVCMkIwMDAzMURBOEYgLyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLmggKi87
IH07CiAJCUY0OTc1Q0YyMjYyNEI4MEEwMDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZp
ZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDk3NUNGMTI2MjRCODBBMDAzQzYyNkUgLyogV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3
Q29udHJvbGxlci5oICovOyB9OwogCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEgLyogU2hhcmVk
RGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0QTZENkJCMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhh
bmRsZS5oICovOyB9OwogCQlGNEJBMzNGMjI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJh
Y3Rpb25HZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VFeHRyYWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIuaCAqLzsgfTsKQEAgLTU5NzAsNiArNTk3MSw4IEBACiAJCUY0
NDI5MTkxMUZBNTkxMDcwMDJDQzkzRSAvKiBfV0tBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IF9XS0F0dGFjaG1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0MjkxOTMx
RkE1OTMxMTAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBfV0tBdHRhY2htZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQyOTE5
NTFGQTU5NDJBMDAyQ0M5M0UgLyogX1dLQXR0YWNobWVudEludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IF9XS0F0dGFjaG1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNDQ2RURFRjI2NUVCMkIwMDAzMURBOEYgLyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNDQ2RURGMTI2NUVCM0I2MDAzMURBOEYgLyogV0tSZXZlYWxJdGVtUHJlc2Vu
dGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQ4MTU2MjIzODc4MjAwMDA5ODI2NTcgLyog
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyLmg7IHBhdGggPSBpb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQ4MTU2MzIzODc4MjAwMDA5
ODI2NTcgLyogV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW07IHBhdGggPSBpb3MvV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQ0REZFQjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSWNvblV0aWxpdGllcy5oOyBwYXRoID0gaW9zL1dl
Ykljb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODUwLDYg
KzEwODUzLDggQEAKIAkJCQk5MzIxRDU4NzFBMzhFRTc0MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLm1tICovLAogCQkJCTBGQ0I0RTVDMThCQkUzRDkwMDBGQ0ZDOSAvKiBX
S1ByaW50aW5nVmlldy5oICovLAogCQkJCTBGQ0I0RTVEMThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1By
aW50aW5nVmlldy5tbSAqLywKKwkJCQlGNDQ2RURFRjI2NUVCMkIwMDAzMURBOEYgLyogV0tSZXZl
YWxJdGVtUHJlc2VudGVyLmggKi8sCisJCQkJRjQ0NkVERjEyNjVFQjNCNjAwMzFEQThGIC8qIFdL
UmV2ZWFsSXRlbVByZXNlbnRlci5tbSAqLywKIAkJCQk1MTNFNDYyQjFBRDgzNzU2MDAxNjIzNEEg
LyogV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmggKi8sCiAJCQkJNTEzRTQ2MkMxQUQ4
Mzc1NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbSAqLywKIAkJ
CQkyREQ2N0EzMzFCRDg2MTA2MDA1M0IyNTEgLyogV0tUZXh0RmluZGVyQ2xpZW50LmggKi8sCkBA
IC0xMjkwMiw2ICsxMjkwNyw3IEBACiAJCQkJNDk5MDAwMjQyNEQyNEMyOTAwMDQ5Q0I0IC8qIFdL
UmVuZGVyT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzM2NzYzQjEzMEM5OURDMDA2QzlE
RTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4QTUw
MTUxMTc2NUY1NjAwNzU3NTczIC8qIFdLUmV0YWluUHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NDk3NEU3NjI2NUVDQkJDMDBCNDlCOEMgLyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0EyNkQ4MTIxN0FCRDVCMDBGOTdBMzUgLyogV0tTYWZlQnJvd3NpbmdX
YXJuaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTdFMzc3OTE4RTRBNEZFMDAzRDBGRkYgLyog
V0tTY3JpcHRNZXNzYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTdFMzc3NTE4RTRBMzNBMDAz
RDBGRkYgLyogV0tTY3JpcHRNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCmluZGV4IDRlN2I5ODFlMTIxMWJmZjI5ZTdkNzMwMmEyMGQ1M2NiN2JmZDcz
YTUuLmM1MmRlY2ZhNGIzYjdiYjU5Zjg3OGFmMWFhODA5OTUxYzFhN2U5NzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCkBAIC0xMjk0LDYgKzEyOTQsMTUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYgbnVtYmVyLCBjb25zdCBJ
bnQKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURl
dGVjdG9yRWxlbWVudEluZm8mIGluZm8sIGNvbnN0IEludFBvaW50JiBjbGlja0xvY2F0aW9uKQor
eworICAgIG1fcGFnZS5oYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoaW5mbywgY2xp
Y2tMb2NhdGlvbik7Cit9CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMp
CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soRnJh
bWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRlbGVwaG9uZU51
bWJlcnMsIGNvbnN0IEludFBvaW50JiBwb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3Mjlj
Y2IwNzVjNjhkYmUwYmM3OWE1MGY1OWY2ZGRjZjg1ODc5MzY3Li44NzhhNTg2Yjk3NGY4NDE5Mzc0
ZWYyZmMzYmY4NGRkNDU5YTk3MzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNjYsNiArMzY2
LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhjb25z
dCBTdHJpbmcmIG51bWJlciwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBmaW5hbDsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIHZvaWQgaGFuZGxlQ2xpY2tGb3JE
YXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZv
JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBmaW5hbDsKKyNlbmRpZgorCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2so
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdGVsZXBob25l
TnVtYmVycywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBmaW5hbDsKICAgICBib29sIGhhc1Jl
bGV2YW50U2VsZWN0aW9uU2VydmljZXMoYm9vbCBpc1RleHRPbmx5KSBjb25zdCBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VD
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VD
b2NvYS5tbQppbmRleCBmN2JkYjk1NzA0ZGM0NTYwMjM1OTI2MzgxZGY2MDRmMDI4MGQwMTBkLi5i
NzNhMGQ4OWRjZDJjZThkMWVlMWM4ZDY5NDYwOTBkYWQ0ZDVjMWQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCkBA
IC00NDksNiArNDQ5LDE1IEBAIFBsYXRmb3JtWFJTeXN0ZW1Qcm94eSYgV2ViUGFnZTo6eHJTeXN0
ZW1Qcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwordm9p
ZCBXZWJQYWdlOjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURl
dGVjdG9yRWxlbWVudEluZm8mIGluZm8sIGNvbnN0IEludFBvaW50JiBjbGlja0xvY2F0aW9uKQor
eworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlQ2xpY2tGb3JEYXRhRGV0
ZWN0aW9uUmVzdWx0KGluZm8sIGNsaWNrTG9jYXRpb24pKTsKK30KKworI2VuZGlmCisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggM2NiOTdlM2NjM2NmY2YwZDkz
MzFjMzQyNzc1ZjllYzM4N2RiYjlkMC4uZWJjZjBhYTUwYWI1ODQwYjdiYWFjNWZhYWU5NTk2MjAz
NTkyZWZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMjMzLDYgKzIzMyw3IEBAIHN0cnVjdCBDb21wb3NpdGlvbkhpZ2hsaWdodDsKIHN0cnVjdCBD
b21wb3NpdGlvblVuZGVybGluZTsKIHN0cnVjdCBDb250YWN0SW5mbzsKIHN0cnVjdCBDb250YWN0
c1JlcXVlc3REYXRhOworc3RydWN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvOwogc3RydWN0IERp
Y3RhdGlvbkFsdGVybmF0aXZlOwogc3RydWN0IEVsZW1lbnRDb250ZXh0Owogc3RydWN0IEdsb2Jh
bEZyYW1lSWRlbnRpZmllcjsKQEAgLTExNzUsNiArMTE3NiwxMCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24mLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdGVsZXBob25lTnVtYmVycywgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIHZvaWQg
aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRl
Y3RvckVsZW1lbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKKyNlbmRpZgorCiAg
ICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxPZmZzZXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSopOwog
CiAgICAgdm9pZCBzZXRNYWluRnJhbWVQcm9ncmVzc0NvbXBsZXRlZChib29sIGNvbXBsZXRlZCkg
eyBtX21haW5GcmFtZVByb2dyZXNzQ29tcGxldGVkID0gY29tcGxldGVkOyB9Cg==
</data>
<flag name="commit-queue"
          id="451221"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429923</attachid>
            <date>2021-05-27 13:56:21 -0700</date>
            <delta_ts>2021-05-27 14:43:00 -0700</delta_ts>
            <desc>Fix non-internal macOS build</desc>
            <filename>bug-226274-20210527135620.patch</filename>
            <type>text/plain</type>
            <size>43207</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2YxNWNkMGMyNTQxNGMw
NDJjZjA0NGQ0OWE1ZTkxZjcwZDViOTlmOC4uZjJlYWVkNWI0ZjIxMTllNGQ2MmE0OTE0ZGUyNDM2
NDM5NTE1OGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA1LTI3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hv
dyBjb250ZXh0IG1lbnUgd2hlbiBjbGlja2luZyBvbiBkYXRhIGRldGVjdGlvbiByZXN1bHRzIGlu
IGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjYyNzQKKyAgICAgICAgcmRhcjovLzc1NTA0OTU2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgY2xpZW50IGhvb2sgdG8gYWxs
b3cgSW1hZ2VPdmVybGF5Q29udHJvbGxlciB0byBjYWxsIG91dCBpbnRvIHRoZSBXZWJLaXQgY2xp
ZW50IGxheWVyIHdoZW4gYSBkYXRhIGRldGVjdG9yCisgICAgICAgIGJ1dHRvbiAod2l0aCBhIGNv
cnJlc3BvbmRpbmcgRERTY2FubmVyUmVzdWx0KSBpcyBjbGlja2VkLiBTZWUgV2ViS2l0IENoYW5n
ZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6
CisgICAgICAgICogcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oOiBBZGRlZC4K
KworICAgICAgICBJbnRyb2R1Y2UgYSBzdHJ1Y3QgdGhhdCB3cmFwcyBhIGRhdGEgZGV0ZWN0aW9u
IHJlc3VsdCBhbmQgdGhlIGFjY29tcGFueWluZyBlbGVtZW50IGJvdW5kaW5nIHJlY3QsIG1haW5s
eSBzbyB0aGF0CisgICAgICAgIHdlIGhhdmUgYSBDKysgc3RydWN0IHdlIGNhbiBwbHVtYiB0aHJv
dWdoIHRoZSBjbGllbnQgbGF5ZXJzIChyYXRoZXIgdGhhbiBkaXJlY3RseSBwYXNzaW5nIE9iamVj
dGl2ZS1DIG9iamVjdHMKKyAgICAgICAgYXJvdW5kKS4KKworICAgICAgICAqIHBhZ2UvbWFjL0lt
YWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU92ZXJs
YXlDb250cm9sbGVyOjpoYW5kbGVEYXRhRGV0ZWN0b3JBY3Rpb24pOgorCiAyMDIxLTA1LTI2ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9y
IHNvbWUgZGF0YSBkZXRlY3RvciBjb2RlIGluIFdlYkNvcmU6OkZyYW1lCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBjYTQxYWNhZjQzZDE3MDQ5NWM3OGE2ZmI5YWUyYThkNmJjNDk5YWU5Li41YTQ2YWNi
MDQ0NmM2OWExZDI2OWEwZmJkOTEwM2MxYWNkNjQ2MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0wNS0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNob3cgY29udGV4dCBtZW51IHdoZW4gY2xpY2tp
bmcgb24gZGF0YSBkZXRlY3Rpb24gcmVzdWx0cyBpbiBpbWFnZSBvdmVybGF5cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2Mjc0CisgICAgICAgIHJk
YXI6Ly83NTUwNDk1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBkZWNsYXJhdGlvbnMgZm9yIHNvbWUgU1BJIG9uIFJWSXRlbSBhbmQgUlZQcmVz
ZW50ZXIuIFNlZSBXZWJLaXQgQ2hhbmdlTG9nIGZvciB3aGVyZSB0aGVzZSBhcmUgdXNlZC4KKwor
ICAgICAgICAqIHBhbC9zcGkvY29jb2EvUmV2ZWFsU1BJLmg6CisKIDIwMjEtMDUtMjYgIENhbWVy
b24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmV2ZW50IHNiaXgg
Z2x5cGhzIGZyb20gYmVpbmcgcmVuZGVyZWQgaW4gdGhlIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGY1NDMyZGEwODhjNzUwN2QxZDg0YTE5YWRmYTg2NmViYzA0MTVkNjYuLmI5NTQ2ZDY4ZjdmMjhl
NWFkYjc3N2IxMjZiNjVlY2YzOWExNGIyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIw
MjEtMDUtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW21hY09TXSBTaG93IGNvbnRleHQgbWVudSB3aGVuIGNsaWNraW5nIG9uIGRhdGEgZGV0ZWN0
aW9uIHJlc3VsdHMgaW4gaW1hZ2Ugb3ZlcmxheXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjI3NAorICAgICAgICByZGFyOi8vNzU1MDQ5NTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQg
YSBXZWJLaXQyIGNsaWVudCBob29rIHRvIGhhbmRsZSBhIGNsaWNrIG92ZXIgYSBkYXRhIGRldGVj
dGlvbiByZXN1bHQgYnkgdXNpbmcgdGhlIFJldmVhbCBmcmFtZXdvcmsgdG8KKyAgICAgICAgY29s
bGVjdCBhbmQgcHJlc2VudCBhIGNvbnRleHQgbWVudS4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2Eu
bW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RGF0YURldGVjdG9yRWxlbWVudEluZm8+
OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPERhdGFEZXRlY3RvckVsZW1l
bnRJbmZvPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Lmg6CisKKyAgICAgICAgQWRkIGVuY29kaW5nIGFuZCBkZWNvZGluZyBzdXBwb3J0IGZvciBEYXRh
RGV0ZWN0b3JFbGVtZW50SW5mby4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjp2aWV3IGNvbnN0KToKKworICAgICAgICBBZGQgYSBoZWxwZXIgbWV0aG9k
IHRvIGdyYWIgdGhlIHZpZXcgKGVpdGhlciBhIFdLVmlldyBvciBXS1dlYlZpZXcpIGZyb20gYSBX
ZWJWaWV3SW1wbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlv
blJlc3VsdCk6CisKKyAgICAgICAgQ3JlYXRlIGFuZCBwcmVzZW50IGEgbmV3IFdLUmV2ZWFsSXRl
bVByZXNlbnRlciB1c2luZyB0aGUgRERTY2FubmVyUmVzdWx0LgorCisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpkaWRGaW5pc2hQcmVzZW50YXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmhhbmRsZUNsaWNr
Rm9yRGF0YURldGVjdGlvblJlc3VsdCk6CisKKyAgICAgICAgQWRkIG1vcmUgcGx1bWJpbmcgdGhy
b3VnaCB0aGUgVUkgcHJvY2VzcyB0byBoYW5kbGUgY2xpY2tpbmcgb24gYSBkYXRhIGRldGVjdGlv
biByZXN1bHQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmhhbmRs
ZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9X
S1JldmVhbEl0ZW1QcmVzZW50ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9X
S1JldmVhbEl0ZW1QcmVzZW50ZXIubW06IEFkZGVkLgorCisgICAgICAgIEFkZCBhIGhlbHBlciBj
bGFzcyB0aGF0IHRha2VzIGFuIFJWSXRlbSBhbmQgaXMgY2FwYWJsZSBvZiBwcmVzZW50aW5nIGEg
Y29udGV4dCBtZW51IGZvciB0aGUgaXRlbSwgb24gYmVoYWxmIG9mCisgICAgICAgIFdlYlZpZXdJ
bXBsLiBGb3IgdGhlIHRpbWUgYmVpbmcsIHRoaXMgaXMgb25seSB1c2VkIG9uIG1hY09TIChhbmQg
dGh1cywgZGlyZWN0bHkgaG9sZHMgYSBXZWFrUHRyIHRvIGEKKyAgICAgICAgV2ViVmlld0ltcGwp
LiBIb3dldmVyLCB3ZSBtYXkgd2FudCB0byB1c2UgdGhpcyBpbiB0aGUgZnV0dXJlIGZvciBNYWMg
Q2F0YWx5c3QgYXMgd2VsbCwgaW4gd2hpY2ggY2FzZSB3ZSBzaG91bGQKKyAgICAgICAgbWFrZSB0
aGlzIHdvcmsgdmlhIGEgZ2VuZXJpYyBXS1JldmVhbEl0ZW1QcmVzZW50ZXJEZWxlZ2F0ZSBwcm90
b2NvbCBpbnN0ZWFkLgorCisgICAgICAgICgtW1dLUmV2ZWFsSXRlbVByZXNlbnRlciBpbml0V2l0
aFdlYlZpZXdJbXBsOml0ZW06ZnJhbWU6bWVudUxvY2F0aW9uOl0pOgorICAgICAgICAoLVtXS1Jl
dmVhbEl0ZW1QcmVzZW50ZXIgc2hvd0NvbnRleHRNZW51XSk6CisgICAgICAgICgtW1dLUmV2ZWFs
SXRlbVByZXNlbnRlciBfY2FsbERpZEZpbmlzaFByZXNlbnRhdGlvbklmTmVlZGVkXSk6CisKKyAg
ICAgICAgQ2FsbCBvdXQgdG8gdGhlIFdlYlZpZXdJbXBsIHRvIHJlc2V0IGl0cyBjdXJyZW50IHJl
dmVhbCBpdGVtIHByZXNlbnRlciBhZnRlciB3ZSd2ZSBmaW5pc2hlZCBwcmVzZW50YXRpb24uIFRo
aXMKKyAgICAgICAgaGFwcGVucyBlaXRoZXIgYWZ0ZXIgd2UndmUgZGlzbWlzc2VkIHRoZSBjb250
ZXh0IG1lbnUgKGlmIG5vIGl0ZW0gaXMgaGlnaGxpZ2h0ZWQpLCBvciBhZnRlciB3ZSd2ZSBmaW5p
c2hlZAorICAgICAgICBoaWdobGlnaHRpbmcgdGhlIGl0ZW0uCisKKyAgICAgICAgKC1bV0tSZXZl
YWxJdGVtUHJlc2VudGVyIHJldmVhbENvbnRleHQ6cmVjdHNGb3JJdGVtOl0pOgorICAgICAgICAo
LVtXS1JldmVhbEl0ZW1QcmVzZW50ZXIgcmV2ZWFsQ29udGV4dDpzaG91bGRVc2VEZWZhdWx0SGln
aGxpZ2h0Rm9ySXRlbTpdKToKKyAgICAgICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIHJldmVh
bENvbnRleHQ6c3RhcnRIaWdobGlnaHRpbmdJdGVtOl0pOgorICAgICAgICAoLVtXS1JldmVhbEl0
ZW1QcmVzZW50ZXIgcmV2ZWFsQ29udGV4dDpzdG9wSGlnaGxpZ2h0aW5nSXRlbTpdKToKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAyMS0wNS0yNiAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBz
b21lIGRhdGEgZGV0ZWN0b3IgY29kZSBpbiBXZWJDb3JlOjpGcmFtZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUmV2ZWFsU1BJLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaAppbmRleCA1ZTY4MzA3ODM5ZDM5ZGI2M2Y3
ZDg2MDdlYzM5YTEwYjM5OTIwMDE3Li43OTYzMzU2NjlmMGU2NTMyNTJhMWQzNWM4YjU5YjUxZTFl
OGFjODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZl
YWxTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZlYWxTUEku
aApAQCAtNDcsNiArNDcsNyBAQAogCiBAaW50ZXJmYWNlIFJWSXRlbSA6IE5TT2JqZWN0IDxOU1Nl
Y3VyZUNvZGluZz4KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFRleHQ6KE5TU3RyaW5nICopdGV4
dCBzZWxlY3RlZFJhbmdlOihOU1JhbmdlKXNlbGVjdGVkUmFuZ2UgTlNfREVTSUdOQVRFRF9JTklU
SUFMSVpFUjsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEREUmVzdWx0OihERFNjYW5uZXJSZXN1
bHQgKilyZXN1bHQgTlNfREVTSUdOQVRFRF9JTklUSUFMSVpFUjsKIEBwcm9wZXJ0eSAocmVhZG9u
bHksIG5vbmF0b21pYykgTlNSYW5nZSBoaWdobGlnaHRSYW5nZTsKIEBlbmQKIApAQCAtNzYsNiAr
NzcsNyBAQAogI2lmIFBMQVRGT1JNKE1BQykKIC0gKGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uQ29udHJvbGxlcj4pYW5pbWF0aW9uQ29udHJvbGxlckZvckl0ZW06KFJWSXRlbSAqKWl0ZW0g
ZG9jdW1lbnRDb250ZXh0OihSVkRvY3VtZW50Q29udGV4dCAqKWRvY3VtZW50Q29udGV4dCBwcmVz
ZW50aW5nQ29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4dCAqKXByZXNlbnRpbmdDb250ZXh0IG9w
dGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnM7CiAtIChCT09MKXJldmVhbEl0ZW06KFJWSXRl
bSAqKWl0ZW0gZG9jdW1lbnRDb250ZXh0OihSVkRvY3VtZW50Q29udGV4dCAqKWRvY3VtZW50Q29u
dGV4dCBwcmVzZW50aW5nQ29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4dCAqKXByZXNlbnRpbmdD
b250ZXh0IG9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnM7CistIChOU0FycmF5PE5TTWVu
dUl0ZW0gKj4gKiltZW51SXRlbXNGb3JJdGVtOihSVkl0ZW0gKilpdGVtIGRvY3VtZW50Q29udGV4
dDooUlZEb2N1bWVudENvbnRleHQgKilkb2N1bWVudENvbnRleHQgcHJlc2VudGluZ0NvbnRleHQ6
KFJWUHJlc2VudGluZ0NvbnRleHQgKilwcmVzZW50aW5nQ29udGV4dCBvcHRpb25zOihOU0RpY3Rp
b25hcnkgKilvcHRpb25zOwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIEBlbmQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk5
NTA5MzIyYTJiYmRhNjE5Y2MyM2E5MjA2NGE0YzM5NjljYTVmNGIuLmVhMGMwNTgwNGYzNGY2ZDM3
NzgyMjgyOTdmM2I3MWJjZDhkM2NmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUzMzksNiArNTMzOSw3IEBACiAJCUY0NDJD
MzU5MjNFM0FERDIwMDQ5OTU4MiAvKiBDb21wb3NpdGlvbkhpZ2hsaWdodC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0MkMzNTcyM0UzQUM1MTAwNDk5
NTgyIC8qIENvbXBvc2l0aW9uSGlnaGxpZ2h0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ0NkVEREYyNjVEQUZFMzAwMzFEQThGIC8qIERhdGFE
ZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThGIC8qIERhdGFEZXRlY3Rpb25S
ZXN1bHRzU3RvcmFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUY0NDZFREUxMjY1REIxRTUwMDMxREE4RiAvKiBJbWFnZU92ZXJsYXlEYXRhRGV0
ZWN0aW9uUmVzdWx0SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ0NkVERTAyNjVEQjFFNTAwMzFEQThGIC8qIEltYWdlT3ZlcmxheURh
dGFEZXRlY3Rpb25SZXN1bHRJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRjQ0NkVERTgyNjVERDg5MDAwMzFEQThGIC8qIERhdGFE
ZXRlY3RvckVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDQ2RURFNzI2NUREODkwMDAzMURBOEYgLyogRGF0YURldGVjdG9yRWxlbWVu
dEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGNDRBNUY1OTFGRUQzOEYyMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1RjU3MUZF
RDM4MzAwMDdGNTk0NCAvKiBMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0NEVCQkQ5MURCNUQyMTQwMDI3
NzMzNCAvKiBTdGF0aWNSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ0RUJCRDgxREI1RDIxNDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ1Nzc1Q0Uy
NDE0MzdENTAwMkRGMUEwIC8qIElubGluZVBhdGhEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDU3NzVDRDI0MTQzN0Q1MDAyREYxQTAgLyogSW5s
aW5lUGF0aERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTY4MTAsNiArMTY4MTEsNyBAQAogCQlGNDQyQzM1NzIzRTNBQzUxMDA0OTk1ODIg
LyogQ29tcG9zaXRpb25IaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcG9zaXRpb25IaWdo
bGlnaHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0NkVEREQyNjVEQUUzRjAw
MzFEQThGIC8qIERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
YXRhRGV0ZWN0aW9uUmVzdWx0c1N0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjQ0NkVERTAyNjVEQjFFNTAwMzFEQThGIC8qIEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25S
ZXN1bHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlT3ZlcmxheURhdGFEZXRlY3Rp
b25SZXN1bHRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NDZF
REU3MjY1REQ4OTAwMDMxREE4RiAvKiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDRBNUY1NzFGRUQzODMwMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlw
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0RUJCRDYxREI1RDFCNjAwMjc3MzM0IC8qIFN0YXRpY1Jh
bmdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdGF0aWNSYW5nZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEVCQkQ4MURCNUQyMTQwMDI3NzMzNCAvKiBTdGF0aWNS
YW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGF0aWNSYW5nZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE4OTMsNiArMjE4OTUsNyBAQAogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlGNDQ2RURERDI2NURBRTNGMDAzMURB
OEYgLyogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdlLmggKi8sCisJCQkJRjQ0NkVERTcyNjVE
RDg5MDAwMzFEQThGIC8qIERhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmggKi8sCiAJCQkJRjQ0NkVE
RTAyNjVEQjFFNTAwMzFEQThGIC8qIEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVu
dGlmaWVyLmggKi8sCiAJCQkJNDEzRTAwN0IxREIwRTcwNzAwMjM0MUQyIC8qIE1lbW9yeVJlbGVh
c2VDb2NvYS5tbSAqLywKIAkJCQlBRDVBMEMyMjFERUNBMzdFMDA3MDcwNTQgLyogUGVyZm9ybWFu
Y2VMb2dnaW5nQ29jb2EubW0gKi8sCkBAIC0zMjIwMCw2ICszMjIwMyw3IEBACiAJCQkJQkUyMzQ4
MEQxOEE5ODcxNDAwRTRCNkU4IC8qIERhdGFDdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1MjI3
REYxMUMzQzZERjEwMEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNDQ2RURERjI2NURBRkUzMDAzMURBOEYgLyogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNDQ2RURFODI2NUREODkwMDAzMURBOEYgLyogRGF0YURl
dGVjdG9yRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUY0QjJBOTA5MjY1MDMwQkEw
MDlFNzI4NiAvKiBEYXRhRGV0ZWN0b3JIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNThCNDVCQTIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGI2ZDkx
YTgzMzE3ZTIyMmM5YzJiMTdiMTY4YzMwNjg4OWQ0NjZiMTMuLjUwYTYyYzEzNzhiMjVkYzlmZjFi
MGY4N2Y2ZWNmMGI1ZGExOTVkZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAt
MTIxLDYgKzEyMSw3IEBAIGNsYXNzIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1
Z2luc0NhbGxiYWNrOwogc3RydWN0IEFwcEhpZ2hsaWdodDsKIHN0cnVjdCBDb250YWN0c1JlcXVl
c3REYXRhOwogc3RydWN0IENvbnRlbnRSdWxlTGlzdFJlc3VsdHM7CitzdHJ1Y3QgRGF0YURldGVj
dG9yRWxlbWVudEluZm87CiBzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVj
dCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29u
ZmlndXJhdGlvbjsKQEAgLTUwMiw2ICs1MDMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRQb2lu
dCYpIHsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0
b3JFbGVtZW50SW5mbyYsIGNvbnN0IEludFBvaW50JikgeyB9CisjZW5kaWYKKwogI2lmIEVOQUJM
RShTRVJWSUNFX0NPTlRST0xTKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2
aWNlQ2xpY2soRnJhbWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IElu
dFBvaW50JikgeyB9CiAgICAgdmlydHVhbCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2Vydmlj
ZXMoYm9vbCAvKmlzVGV4dE9ubHkqLykgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRGF0YURldGVjdG9yRWxlbWVudEluZm8uaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRGF0YURldGVjdG9yRWxlbWVudEluZm8uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42ZjZhOGQ4YjJiMDc2OGFmNzUyNzQwOGNkYWE2MzY5NTUxNzUyZDdmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50
SW5mby5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShEQVRBX0RFVEVDVElPTikKKworI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitP
QkpDX0NMQVNTIEREU2Nhbm5lclJlc3VsdDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBJbnRSZWN0OworCitzdHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm8geworICAgIFJldGFp
blB0cjxERFNjYW5uZXJSZXN1bHQ+IHJlc3VsdDsKKyAgICBJbnRSZWN0IGVsZW1lbnRCb3VuZHM7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJs
YXlDb250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvSW1hZ2VPdmVybGF5
Q29udHJvbGxlck1hYy5tbQppbmRleCBiMTE1ZmZmYjM1NzkwNzQxMGU0ZDMxOGViNDIwZTY2OTkw
NDNjNDM2Li5lODRlZGY4ZDEzNjlhNmU0ZjBjMDU5OTI2ZDk1MTE0YjUxNDk4MGE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMu
bW0KQEAgLTI5LDkgKzI5LDEyIEBACiAjaWYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJEYXRh
RGV0ZWN0aW9uLmgiCisjaW1wb3J0ICJEYXRhRGV0ZWN0aW9uUmVzdWx0c1N0b3JhZ2UuaCIKKyNp
bXBvcnQgIkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmgiCiAjaW1wb3J0ICJGcmFtZVZpZXcuaCIK
ICNpbXBvcnQgIkhUTUxFbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNpbXBvcnQg
IkltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVudGlmaWVyLmgiCiAjaW1wb3J0ICJJ
bnRSZWN0LmgiCiAjaW1wb3J0ICJQYWdlLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybU1vdXNlRXZlbnQu
aCIKQEAgLTE0Nyw4ICsxNTAsMjcgQEAgYm9vbCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpoYW5k
bGVEYXRhRGV0ZWN0b3JBY3Rpb24oY29uc3QgSFRNTEVsZW1lbnQmIGVsZW1lbnQKICAgICBpZiAo
IWZyYW1lVmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gRklYTUU6IENhbGwg
b3V0IHRvIHRoZSBjbGllbnQgbGF5ZXIgdG8gaGFuZGxlIHRoZSBjbGljay4KLSAgICBVTlVTRURf
UEFSQU0obG9jYXRpb25JbkNvbnRlbnRzKTsKKyAgICBhdXRvIGlkZW50aWZpZXJWYWx1ZSA9IHBh
cnNlSW50ZWdlcjx1aW50NjRfdD4oZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKEhUTUxOYW1lczo6eF9hcHBsZV9kYXRhX2RldGVjdG9yc19yZXN1bHRBdHRyKSk7CisgICAg
aWYgKCFpZGVudGlmaWVyVmFsdWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8g
aWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPEltYWdlT3ZlcmxheURhdGFEZXRlY3Rp
b25SZXN1bHRJZGVudGlmaWVyVHlwZT4oKmlkZW50aWZpZXJWYWx1ZSk7CisgICAgaWYgKCFpZGVu
dGlmaWVyLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byogZGF0
YURldGVjdGlvblJlc3VsdHMgPSBmcmFtZS0+ZGF0YURldGVjdGlvblJlc3VsdHNJZkV4aXN0cygp
OworICAgIGlmICghZGF0YURldGVjdGlvblJlc3VsdHMpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGF1dG8gZGF0YURldGVjdGlvblJlc3VsdCA9IHJldGFpblB0cihkYXRhRGV0ZWN0aW9u
UmVzdWx0cy0+aW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdChpZGVudGlmaWVyKSk7Cisg
ICAgaWYgKCFkYXRhRGV0ZWN0aW9uUmVzdWx0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQucmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRlcmVy
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3BhZ2UtPmNocm9tZSgpLmNsaWVudCgp
LmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCh7IFdURk1vdmUoZGF0YURldGVjdGlv
blJlc3VsdCksIGZyYW1lVmlldy0+Y29udGVudHNUb1dpbmRvdyhyZW5kZXJlci0+YWJzb2x1dGVC
b3VuZGluZ0JveFJlY3QoKSkgfSwgZnJhbWVWaWV3LT5jb250ZW50c1RvV2luZG93KGxvY2F0aW9u
SW5Db250ZW50cykpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCmluZGV4
IDJiNjY1ZWVkMTU5NjdmOTcwZmU2ZjQ5YThjNzllZTg3OTJkMGU4MmYuLjBiODU4OWE5M2Q4M2Yw
NTllYzkyZjk3MzJiYzJhY2FhMDcwN2I1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NvY29hLmgiCiAjaW1wb3J0IDxDb3JlVGV4
dC9Db3JlVGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9BdHRyaWJ1dGVkU3RyaW5nLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0RpY3Rpb25hcnlQb3B1cEluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Gb250QXR0cmlidXRlcy5oPgpAQCAtNjE0LDYgKzYxNSwzMCBAQCBib29sIEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRh
KERlY29kZXImIGRlY29kZQogICAgIHJldHVybiB0cnVlOwogfQogCisjaWYgRU5BQkxFKERBVEFf
REVURUNUSU9OKQorCit2b2lkIEFyZ3VtZW50Q29kZXI8RGF0YURldGVjdG9yRWxlbWVudEluZm8+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGF0YURldGVjdG9yRWxlbWVudEluZm8m
IGluZm8pCit7CisgICAgZW5jb2RlciA8PCBpbmZvLnJlc3VsdC5nZXQoKTsKKyAgICBlbmNvZGVy
IDw8IGluZm8uZWxlbWVudEJvdW5kczsKK30KKworT3B0aW9uYWw8RGF0YURldGVjdG9yRWxlbWVu
dEluZm8+IEFyZ3VtZW50Q29kZXI8RGF0YURldGVjdG9yRWxlbWVudEluZm8+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBhdXRvIHJlc3VsdCA9IElQQzo6ZGVjb2RlPEREU2Nhbm5l
clJlc3VsdD4oZGVjb2RlciwgUEFMOjpnZXRERFNjYW5uZXJSZXN1bHRDbGFzcygpKTsKKyAgICBp
ZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFs
PEludFJlY3Q+IGVsZW1lbnRCb3VuZHM7CisgICAgZGVjb2RlciA+PiBlbGVtZW50Qm91bmRzOwor
ICAgIGlmICghZWxlbWVudEJvdW5kcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBtYWtlT3B0aW9uYWw8RGF0YURldGVjdG9yRWxlbWVudEluZm8+KHsgV1RGTW92
ZSgqcmVzdWx0KSwgV1RGTW92ZSgqZWxlbWVudEJvdW5kcykgfSk7Cit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoREFUQV9ERVRFQ1RJT04pCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKQogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE1lZGlhUGxh
eWJhY2tUYXJnZXRDb250ZXh0JiB0YXJnZXQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDk2M2ZiNDhjOWEwOTk5ODk1YWFiZjlmZTIyY2Jm
M2Y0NzYxYjAyZjguLmFiMGMyNjM2MzI3M2ZhMjE0MGVhNjU5Yzg2Y2ZjNTA4ZDMyOGRiYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0xNDMs
NiArMTQzLDcgQEAgc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQ2FjaGVRdWVyeU9w
dGlvbnM7CiBzdHJ1Y3QgQ2hhcmFjdGVyUmFuZ2U7CiBzdHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxp
bmU7CitzdHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm87CiBzdHJ1Y3QgRGljdGF0aW9uQWx0
ZXJuYXRpdmU7CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFdmVudFRyYWNr
aW5nUmVnaW9uczsKQEAgLTgwNCw2ICs4MDUsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpTY3JpcHRCdWZmZXI+IHsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2Vi
Q29yZTo6U2NyaXB0QnVmZmVyPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAorI2lmIEVOQUJMRShE
QVRBX0RFVEVDVElPTikKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbz4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mKTsKKyAgICBzdGF0
aWMgT3B0aW9uYWw8V2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8+IGRlY29kZShEZWNv
ZGVyJik7Cit9OworCisjZW5kaWYKKwogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6
TWVzc2FnZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpNZXNzYWdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggYjI2NTk5YmE4ZTcwNjQ2NTRiNDhiNDU4ODg2MGY5OTg4NzNhMWNiMC4uYjE0ODAxM2M5MDQ2
NWY5MzJmYzZhZDk0YjFlN2FmOTQ5NDEyMzhjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAt
NTI1LDYgKzUyNSw3IEBAIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ci5tbQogVUlQcm9jZXNzL21hYy9XS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1t
CiBVSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQogVUlQcm9jZXNz
L21hYy9XS1ByaW50aW5nVmlldy5tbQorVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50
ZXIubW0KIFVJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tCiBV
SVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQogVUlQcm9jZXNzL21hYy9XS1RleHRJ
bnB1dFdpbmRvd0NvbnRyb2xsZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggMmQxMDNmMGVkMGE3ZDI2MTQxZWMyZjMz
YjJiZjY2NTBiYzhjNWUyZi4uYjE2ZDVmMTNiYTk2ZjRmZGUwMTA5MjIxNGY3NjVlMTUxOGQ4ZjEw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5
Q29jb2EubW0KQEAgLTk1LDEwICs5NSwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCiB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0RGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0aW9uUmVz
dWx0JiBkYXRhRGV0ZWN0aW9uUmVzdWx0KQogewogICAgIG1fZGF0YURldGVjdGlvblJlc3VsdHMg
PSBkYXRhRGV0ZWN0aW9uUmVzdWx0LnJlc3VsdHM7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpo
YW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURldGVjdG9yRWxlbWVu
dEluZm8mIGluZm8sIGNvbnN0IEludFBvaW50JiBjbGlja0xvY2F0aW9uKQoreworICAgIHBhZ2VD
bGllbnQoKS5oYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoaW5mbywgY2xpY2tMb2Nh
dGlvbik7Cit9CisKICNlbmRpZgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2F2ZVJlY2VudFNlYXJj
aGVzKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJj
aD4mIHNlYXJjaEl0ZW1zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKaW5kZXggYmQ4ZDgyYzQxNTczMTE0NjRmNGVjNTVkMGUxNDlkZmU4OTg3MGJhMS4uZmVl
MzlmMjhjMDdkNTFlNDQyMTJiZWNhNTc0YTUxY2MzNGE1YTA0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC02MSw2ICs2MSw3IEBAIE9CSkNfQ0xB
U1MgV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZTsKIE9CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFyZ2V0
OwogT0JKQ19DTEFTUyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOwogT0JKQ19DTEFTUyBX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXI7CitPQkpDX0NMQVNTIFdLUmV2ZWFsSXRlbVByZXNl
bnRlcjsKIE9CSkNfQ0xBU1MgV0tTYWZlQnJvd3NpbmdXYXJuaW5nOwogT0JKQ19DTEFTUyBXS1No
YXJlU2hlZXQ7CiBPQkpDX0NMQVNTIFdLVmlld0xheW91dFN0cmF0ZWd5OwpAQCAtOTYsNiArOTcs
NyBAQCBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERlc3RpbmF0aW9uQ29sb3JTcGFjZTsKIGNsYXNzIEludFBvaW50Oworc3RydWN0IERhdGFEZXRl
Y3RvckVsZW1lbnRJbmZvOwogc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiAKICNpZiBI
QVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAg
LTE4OSw2ICsxOTEsNyBAQCBwdWJsaWM6CiAgICAgTlNXaW5kb3cgKndpbmRvdygpOwogCiAgICAg
V2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CisgICAgTlNWaWV3
ICp2aWV3KCkgY29uc3QgeyByZXR1cm4gbV92aWV3LmdldEF1dG9yZWxlYXNlZCgpOyB9CiAKICAg
ICB2b2lkIHByb2Nlc3NXaWxsU3dhcCgpOwogICAgIHZvaWQgcHJvY2Vzc0RpZEV4aXQoKTsKQEAg
LTY2OSw2ICs2NzIsMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JGb3JUZXN0aW5nKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlKik7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICB2b2lkIGhhbmRsZUNsaWNr
Rm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50
SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CisjZW5kaWYKKworI2lmIEVOQUJMRShS
RVZFQUwpCisgICAgdm9pZCBkaWRGaW5pc2hQcmVzZW50YXRpb24oV0tSZXZlYWxJdGVtUHJlc2Vu
dGVyICopOworI2VuZGlmCisKIHByaXZhdGU6CiAjaWYgSEFWRShUT1VDSF9CQVIpCiAgICAgdm9p
ZCBzZXRVcFRleHRUb3VjaEJhcihOU1RvdWNoQmFyICopOwpAQCAtNzAxLDYgKzcxMiwxMCBAQCBw
cml2YXRlOgogI2VuZGlmIC8vIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikK
ICNlbmRpZiAvLyBIQVZFKFRPVUNIX0JBUikKIAorI2lmIEVOQUJMRShSRVZFQUwpCisgICAgUmV0
YWluUHRyPFdLUmV2ZWFsSXRlbVByZXNlbnRlcj4gbV9yZXZlYWxJdGVtUHJlc2VudGVyOworI2Vu
ZGlmCisKICAgICBib29sIHN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKSBjb25zdDsKICAg
ICBmbG9hdCBpbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIHZvaWQgZGlz
cGF0Y2hTZXRUb3BDb250ZW50SW5zZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KaW5kZXggODg4ODIxNTdjMGIxNzZjNjVhMTZmNjhhNTg5ZDcwYmRj
YWY0ZGExMi4uM2FjZjRhNTMzNzU4NGI2NDhhNjA5MjE4MGJkYTQwNTg4N2E3MTVmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTY1LDYgKzY1
LDcgQEAKICNpbXBvcnQgIldLTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgIldLUERGSFVEVmlldy5o
IgogI2ltcG9ydCAiV0tQcmludGluZ1ZpZXcuaCIKKyNpbXBvcnQgIldLUmV2ZWFsSXRlbVByZXNl
bnRlci5oIgogI2ltcG9ydCAiV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1wb3J0IDxXZWJL
aXQvV0tTaGFyZVNoZWV0Lmg+CiAjaW1wb3J0ICJXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIu
aCIKQEAgLTg5LDYgKzkwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvQ29sb3JNYWMuaD4KICNpbXBv
cnQgPFdlYkNvcmUvQ29sb3JTZXJpYWxpemF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbXBv
c2l0aW9uSGlnaGxpZ2h0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvckVsZW1lbnRJ
bmZvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Rlc3RpbmF0aW9uQ29sb3JTcGFjZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9EaWN0aW9uYXJ5TG9va3VwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRh
Lmg+CkBAIC0xNDQsNiArMTQ2LDggQEAKICNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5UHJpdmF0ZS5oIgogI2VuZGlmCiAKKyNpbXBvcnQgPHBhbC9jb2NvYS9SZXZlYWxTb2Z0
TGluay5oPgorCiAjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykKICNpbXBvcnQgPFRy
YW5zbGF0aW9uVUlTZXJ2aWNlcy9MVFVJVHJhbnNsYXRpb25WaWV3Q29udHJvbGxlci5oPgogCkBA
IC01NzUxLDYgKzU3NTUsMzIgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZW5kUHJldmlld1BhbmVsQ29u
dHJvbChRTFByZXZpZXdQYW5lbCAqcGFuZWwpCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShEQVRB
X0RFVEVDVElPTikKKwordm9pZCBXZWJWaWV3SW1wbDo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0
aW9uUmVzdWx0KGNvbnN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRQ
b2ludCYgY2xpY2tMb2NhdGlvbikKK3sKKyNpZiBFTkFCTEUoUkVWRUFMKQorICAgIG1fcmV2ZWFs
SXRlbVByZXNlbnRlciA9IGFkb3B0TlMoW1tXS1JldmVhbEl0ZW1QcmVzZW50ZXIgYWxsb2NdIGlu
aXRXaXRoV2ViVmlld0ltcGw6KnRoaXMgaXRlbTphZG9wdE5TKFtQQUw6OmFsbG9jUlZJdGVtSW5z
dGFuY2UoKSBpbml0V2l0aEREUmVzdWx0OmluZm8ucmVzdWx0LmdldCgpXSkuZ2V0KCkgZnJhbWU6
aW5mby5lbGVtZW50Qm91bmRzIG1lbnVMb2NhdGlvbjpjbGlja0xvY2F0aW9uXSk7CisgICAgW21f
cmV2ZWFsSXRlbVByZXNlbnRlciBzZXRTaG91bGRVc2VEZWZhdWx0SGlnaGxpZ2h0Ok5PXTsKKyAg
ICBbbV9yZXZlYWxJdGVtUHJlc2VudGVyIHNob3dDb250ZXh0TWVudV07CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShpbmZvKTsKKyAgICBVTlVTRURfUEFSQU0oY2xpY2tMb2NhdGlvbik7CisjZW5k
aWYKK30KKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKworI2lmIEVOQUJMRShS
RVZFQUwpCisKK3ZvaWQgV2ViVmlld0ltcGw6OmRpZEZpbmlzaFByZXNlbnRhdGlvbihXS1JldmVh
bEl0ZW1QcmVzZW50ZXIgKnByZXNlbnRlcikKK3sKKyAgICBpZiAocHJlc2VudGVyID09IG1fcmV2
ZWFsSXRlbVByZXNlbnRlcikKKyAgICAgICAgbV9yZXZlYWxJdGVtUHJlc2VudGVyID0gbmlsOwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKFJFVkVBTCkKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
aW5kZXggN2Y5MzM4YzJhMWIzZTdiOGEzMWYwZDQ1OWU0YjEzZDU0ZjQyZTFkNy4uMDEzZjUwNzk2
YmE0NTZjYmYxYjk4ZmMzMmM3MjFiOGE1ZTk1MTc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaApAQCAtMTEyLDYgKzExMiw3IEBAIGVudW0gY2xhc3MgVGV4dEluZGljYXRvckRp
c21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVz
cG9uc2UgOiB1aW50OF90OwogCiBzdHJ1Y3QgQXBwSGlnaGxpZ2h0Oworc3RydWN0IERhdGFEZXRl
Y3RvckVsZW1lbnRJbmZvOwogc3RydWN0IERpY3Rpb25hcnlQb3B1cEluZm87CiBzdHJ1Y3QgVGV4
dEluZGljYXRvckRhdGE7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwpAQCAtNjI2LDYgKzYy
NywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhbkhhbmRsZUNvbnRleHRNZW51VHJh
bnNsYXRpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUNvbnRleHRNZW51
VHJhbnNsYXRpb24oY29uc3QgV2ViQ29yZTo6VHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8mKSA9
IDA7CiAjZW5kaWYKKworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFE
ZXRlY3RvckVsZW1lbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSB7IH0KKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IDY3NmM3YzMwMGM0NDg2MGZjODIyMzZiYzY0YWY2ZjUwNGI4MzVhZTUu
LjQ4MDMyZDBkMjJmYzNmOTYxNGUxM2QxNTQ1YmU1Y2ZiMzg5NWM4NWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNzgsNiArMjc4LDcgQEAgc3RydWN0IENvbXBv
c2l0aW9uSGlnaGxpZ2h0Owogc3RydWN0IENvbnRhY3RJbmZvOwogc3RydWN0IENvbnRhY3RzUmVx
dWVzdERhdGE7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKK3N0cnVjdCBEYXRhRGV0
ZWN0b3JFbGVtZW50SW5mbzsKIHN0cnVjdCBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbjsK
IHN0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwogc3RydWN0IERpY3Rpb25hcnlQb3B1
cEluZm87CkBAIC04NzUsNiArODc2LDcgQEAgcHVibGljOgogI2VuZGlmIC8vIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogICAgIHZvaWQgc2V0RGF0YURl
dGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0aW9uUmVzdWx0Jik7CisgICAgdm9pZCBoYW5k
bGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9y
RWxlbWVudEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogI2VuZGlmCiAgICAgdm9p
ZCBkaWRDb21taXRMYXllclRyZWUoY29uc3QgV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbiYpOwogICAgIHZvaWQgbGF5ZXJUcmVlQ29tbWl0Q29tcGxldGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2Nzk1NDUx
MjE0ZGFlMGU1OWQ0NDBmNGFlOWI1ZWZjMWZlZjI2YjNkLi5iMzQyYzBlNjk2NGUxYzFmYTNiMzNi
NTY5ODc1YTIyMjA0OTA5NWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xNzcsNiArMTc3LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICNlbmRpZgogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAgICBTZXRE
YXRhRGV0ZWN0aW9uUmVzdWx0KHN0cnVjdCBXZWJLaXQ6OkRhdGFEZXRlY3Rpb25SZXN1bHQgZGF0
YURldGVjdGlvblJlc3VsdCkKKyAgICBIYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQo
c3RydWN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvIGluZm8sIFdlYkNvcmU6Oklu
dFBvaW50IGxvY2F0aW9uKQogI2VuZGlmCiAKICAgICBQYWdlU2NhbGVGYWN0b3JEaWRDaGFuZ2Uo
ZG91YmxlIHNjYWxlRmFjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMuaAppbmRleCA2MzRkNzEzZGQxZmNiMDc4ZGQ5ZDY4NTg0OWU1YTJhNzlm
YTA4YTFhLi45ZDRhMDEzMTQ4OTQzZjliZDM5YWI3ZDcyZDI4M2MwMzhkMzRjMzUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApAQCAtMjg3
LDYgKzI4NywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVUcmFuc2xh
dGlvbihjb25zdCBXZWJDb3JlOjpUcmFuc2xhdGlvbkNvbnRleHRNZW51SW5mbyYpIG92ZXJyaWRl
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgdm9pZCBoYW5kbGVD
bGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxl
bWVudEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGZpbmFsOworI2VuZGlmCisKICAg
ICBOU1ZpZXcgKm1fdmlldzsKICAgICBXZWFrUHRyPFdlYlZpZXdJbXBsPiBtX2ltcGw7CiAjaWYg
VVNFKEFVVE9DT1JSRUNUSU9OX1BBTkVMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDNkZTYwMTcwZjYwNTM0NWY4MmY3ZTQ0ZTIy
M2YyMzFiMTM5YzBmNDguLjMzNjQyYzJmMzUyM2Y2YTBjYWZhMTM3MzNkY2E2OTdlNGM1NTJkNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMu
bW0KQEAgLTEwMzEsNiArMTAzMSwxNSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVDb250
ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbgogCiAjZW5k
aWYgLy8gSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0b3JFbGVt
ZW50SW5mbyYgaW5mbywgY29uc3QgSW50UG9pbnQmIGNsaWNrTG9jYXRpb24pCit7CisgICAgbV9p
bXBsLT5oYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoaW5mbywgY2xpY2tMb2NhdGlv
bik7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Jl
dmVhbEl0ZW1QcmVzZW50ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVh
bEl0ZW1QcmVzZW50ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MGMzMThlNWIyMjMzYzNmYWNkMGNmNzI4ZGE3
YzZlNzA5ODA2YzlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFJFVkVBTCkKKwor
I2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgorI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CisKK0BjbGFzcyBSVkl0ZW07CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Y2xhc3MgV2ViVmlld0ltcGw7Cit9CisKK0BpbnRlcmZhY2UgV0tSZXZlYWxJdGVtUHJlc2VudGVy
IDogTlNPYmplY3QKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6KFdlYktp
dDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIGl0ZW06KFJWSXRlbSAqKWl0ZW0gZnJhbWU6KENH
UmVjdClmcmFtZUluVmlldyBtZW51TG9jYXRpb246KENHUG9pbnQpbWVudUxvY2F0aW9uSW5WaWV3
OworLSAodm9pZClzaG93Q29udGV4dE1lbnU7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IHNob3VsZFVzZURlZmF1bHRIaWdobGlnaHQ7CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFJFVkVBTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzYzE3ZjgxZTgyNWEz
YjA2MDRlZTEyNmJiM2Y5NGNjNDMwYTE3OTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tCkBAIC0wLDAgKzEsMTIz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiV0tSZXZlYWxJdGVtUHJlc2VudGVyLmgiCisKKyNpZiBQTEFURk9STShNQUMpICYmIEVO
QUJMRShSRVZFQUwpCisKKyNpbXBvcnQgIldlYlZpZXdJbXBsLmgiCisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgorI2ltcG9ydCA8cGFsL2NvY29hL1Jl
dmVhbFNvZnRMaW5rLmg+CisKK0BpbnRlcmZhY2UgV0tSZXZlYWxJdGVtUHJlc2VudGVyICgpIDxS
VlByZXNlbnRlckhpZ2hsaWdodERlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tS
ZXZlYWxJdGVtUHJlc2VudGVyIHsKKyAgICBXZWFrUHRyPFdlYktpdDo6V2ViVmlld0ltcGw+IF9p
bXBsOworICAgIFJldGFpblB0cjxSVlByZXNlbnRlcj4gX3ByZXNlbnRlcjsKKyAgICBSZXRhaW5Q
dHI8UlZQcmVzZW50aW5nQ29udGV4dD4gX3ByZXNlbnRpbmdDb250ZXh0OworICAgIFJldGFpblB0
cjxSVkl0ZW0+IF9pdGVtOworICAgIENHUmVjdCBfZnJhbWVJblZpZXc7CisgICAgQ0dQb2ludCBf
bWVudUxvY2F0aW9uSW5WaWV3OworICAgIEJPT0wgX2lzSGlnaGxpZ2h0aW5nSXRlbTsKK30KKwor
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwm
KWltcGwgaXRlbTooUlZJdGVtICopaXRlbSBmcmFtZTooQ0dSZWN0KWZyYW1lSW5WaWV3IG1lbnVM
b2NhdGlvbjooQ0dQb2ludCltZW51TG9jYXRpb25JblZpZXcKK3sKKyAgICBpZiAoIShzZWxmID0g
W3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9pbXBsID0gbWFrZVdl
YWtQdHIoaW1wbCk7CisgICAgX3ByZXNlbnRlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NSVlByZXNl
bnRlckluc3RhbmNlKCkgaW5pdF0pOworICAgIF9wcmVzZW50aW5nQ29udGV4dCA9IGFkb3B0TlMo
W1BBTDo6YWxsb2NSVlByZXNlbnRpbmdDb250ZXh0SW5zdGFuY2UoKSBpbml0V2l0aFBvaW50ZXJM
b2NhdGlvbkluVmlldzptZW51TG9jYXRpb25JblZpZXcgaW5WaWV3OmltcGwudmlldygpIGhpZ2hs
aWdodERlbGVnYXRlOnNlbGZdKTsKKyAgICBfaXRlbSA9IGl0ZW07CisgICAgX2ZyYW1lSW5WaWV3
ID0gZnJhbWVJblZpZXc7CisgICAgX21lbnVMb2NhdGlvbkluVmlldyA9IG1lbnVMb2NhdGlvbklu
VmlldzsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClzaG93Q29udGV4dE1lbnUKK3sK
KyAgICBpZiAoIV9pbXBsKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHZpZXcgPSBfaW1w
bC0+dmlldygpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBt
ZW51SXRlbXMgPSByZXRhaW5QdHIoW19wcmVzZW50ZXIgbWVudUl0ZW1zRm9ySXRlbTpfaXRlbS5n
ZXQoKSBkb2N1bWVudENvbnRleHQ6bmlsIHByZXNlbnRpbmdDb250ZXh0Ol9wcmVzZW50aW5nQ29u
dGV4dC5nZXQoKSBvcHRpb25zOm5pbF0pOworICAgIGlmICghW21lbnVJdGVtcyBjb3VudF0pCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbWVudSA9IGFkb3B0TlMoW1tOU01lbnUgYWxsb2Nd
IGluaXRXaXRoVGl0bGU6ZW1wdHlTdHJpbmcoKV0pOworICAgIFttZW51IHNldEF1dG9lbmFibGVz
SXRlbXM6Tk9dOworICAgIFttZW51IHNldEl0ZW1BcnJheTptZW51SXRlbXMuZ2V0KCldOworCisg
ICAgYXV0byBjbGlja0xvY2F0aW9uSW5XaW5kb3cgPSBbdmlldyBjb252ZXJ0UG9pbnQ6X21lbnVM
b2NhdGlvbkluVmlldyB0b1ZpZXc6bmlsXTsKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xp
Y2tMb2NhdGlvbkluV2luZG93IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1i
ZXI6dmlldy53aW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNr
Q291bnQ6MSBwcmVzc3VyZToxXTsKKyAgICBbTlNNZW51IHBvcFVwQ29udGV4dE1lbnU6bWVudS5n
ZXQoKSB3aXRoRXZlbnQ6ZXZlbnQgZm9yVmlldzp2aWV3XTsKKworICAgIFtzZWxmIF9jYWxsRGlk
RmluaXNoUHJlc2VudGF0aW9uSWZOZWVkZWRdOworfQorCistICh2b2lkKV9jYWxsRGlkRmluaXNo
UHJlc2VudGF0aW9uSWZOZWVkZWQKK3sKKyAgICBpZiAoIV9pbXBsIHx8IF9pc0hpZ2hsaWdodGlu
Z0l0ZW0pCisgICAgICAgIHJldHVybjsKKworICAgIF9pbXBsLT5kaWRGaW5pc2hQcmVzZW50YXRp
b24oc2VsZik7Cit9CisKKyNwcmFnbWEgbWFyayAtIFJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdh
dGUKKworLSAoTlNBcnJheTxOU1ZhbHVlICo+ICopcmV2ZWFsQ29udGV4dDooUlZQcmVzZW50aW5n
Q29udGV4dCAqKWNvbnRleHQgcmVjdHNGb3JJdGVtOihSVkl0ZW0gKilpdGVtCit7CisgICAgcmV0
dXJuIEBbIFtOU1ZhbHVlIHZhbHVlV2l0aFJlY3Q6X2ZyYW1lSW5WaWV3XSBdOworfQorCistIChC
T09MKXJldmVhbENvbnRleHQ6KFJWUHJlc2VudGluZ0NvbnRleHQgKiljb250ZXh0IHNob3VsZFVz
ZURlZmF1bHRIaWdobGlnaHRGb3JJdGVtOihSVkl0ZW0gKilpdGVtCit7CisgICAgcmV0dXJuIHNl
bGYuc2hvdWxkVXNlRGVmYXVsdEhpZ2hsaWdodDsKK30KKworLSAodm9pZClyZXZlYWxDb250ZXh0
OihSVlByZXNlbnRpbmdDb250ZXh0ICopY29udGV4dCBzdGFydEhpZ2hsaWdodGluZ0l0ZW06KFJW
SXRlbSAqKWl0ZW0KK3sKKyAgICBfaXNIaWdobGlnaHRpbmdJdGVtID0gWUVTOworfQorCistICh2
b2lkKXJldmVhbENvbnRleHQ6KFJWUHJlc2VudGluZ0NvbnRleHQgKiljb250ZXh0IHN0b3BIaWdo
bGlnaHRpbmdJdGVtOihSVkl0ZW0gKilpdGVtCit7CisgICAgX2lzSGlnaGxpZ2h0aW5nSXRlbSA9
IE5POworCisgICAgW3NlbGYgX2NhbGxEaWRGaW5pc2hQcmVzZW50YXRpb25JZk5lZWRlZF07Cit9
CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFJFVkVBTCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgz
OTk5ZTVmMzI4ZWMxNDdlZjlmZjRmNTAzYTRiZTZkZDBlOGY4NzguLjMxOTc5M2U3Njk2YzgyNjM1
ZjM5NjFmMjdmZTY5MGRmNTIzNGYzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAyOSw2ICsyMDI5LDcgQEAKIAkJRjQ4NTcwQTMy
NjQ0QkVDNTAwQzA1RjcxIC8qIFRpbWVvdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODU3MEEyMjY0NEJFQzQwMEMwNUY3MSAvKiBUaW1lb3V0Lmgg
Ki87IH07CiAJCUY0OEQyQTg1MjE1ODNBN0UwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQTg0MjE1ODNBMDIw
MEM2NzUyQiAvKiBBcHBLaXRTUEkuaCAqLzsgfTsKIAkJRjQ5NkE0MzExRjU4QTI3MjAwNEMxNzU3
IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5NkE0MkYxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9w
SW50ZXJhY3Rpb25TdGF0ZS5oICovOyB9OworCQlGNDk3NEU3NjI2NUVDQkJDMDBCNDlCOEMgLyog
V0tSZXZlYWxJdGVtUHJlc2VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDQ2RURFRjI2NUVCMkIwMDAzMURBOEYgLyogV0tSZXZlYWxJdGVtUHJl
c2VudGVyLmggKi87IH07CiAJCUY0OTc1Q0YyMjYyNEI4MEEwMDNDNjI2RSAvKiBXS0ltYWdlRXh0
cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDk3NUNGMTI2MjRCODBBMDAzQzYyNkUgLyogV0tJbWFnZUV4dHJh
Y3Rpb25QcmV2aWV3Q29udHJvbGxlci5oICovOyB9OwogCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVG
QUEgLyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QTZENkJCMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWRE
aXNwbGF5TGlzdEhhbmRsZS5oICovOyB9OwogCQlGNEJBMzNGMjI1NzU3RTg5MDAwQTNDRTggLyog
V0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdL
SW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaCAqLzsgfTsKQEAgLTU5NzAsNiArNTk3
MSw4IEBACiAJCUY0NDI5MTkxMUZBNTkxMDcwMDJDQzkzRSAvKiBfV0tBdHRhY2htZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IF9XS0F0dGFjaG1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjQ0MjkxOTMxRkE1OTMxMTAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBfV0tBdHRhY2htZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDQyOTE5NTFGQTU5NDJBMDAyQ0M5M0UgLyogX1dLQXR0YWNobWVudEludGVybmFsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS0F0dGFjaG1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNDQ2RURFRjI2NUVCMkIwMDAzMURBOEYgLyogV0tSZXZlYWxJdGVtUHJl
c2VudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNDQ2RURGMTI2NUVCM0I2MDAzMURBOEYgLyogV0tSZXZl
YWxJdGVtUHJlc2VudGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tSZXZlYWxJdGVtUHJl
c2VudGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQ4MTU2MjIzODc4MjAw
MDA5ODI2NTcgLyogV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmg7IHBhdGggPSBpb3MvV0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQ4MTU2
MzIzODc4MjAwMDA5ODI2NTcgLyogV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW07IHBhdGgg
PSBpb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjQ0REZFQjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSWNvblV0aWxpdGllcy5oOyBw
YXRoID0gaW9zL1dlYkljb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEwODUwLDYgKzEwODUzLDggQEAKIAkJCQk5MzIxRDU4NzFBMzhFRTc0MDA4MDUyQkUgLyog
V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tICovLAogCQkJCTBGQ0I0RTVDMThCQkUzRDkw
MDBGQ0ZDOSAvKiBXS1ByaW50aW5nVmlldy5oICovLAogCQkJCTBGQ0I0RTVEMThCQkUzRDkwMDBG
Q0ZDOSAvKiBXS1ByaW50aW5nVmlldy5tbSAqLywKKwkJCQlGNDQ2RURFRjI2NUVCMkIwMDAzMURB
OEYgLyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLmggKi8sCisJCQkJRjQ0NkVERjEyNjVFQjNCNjAw
MzFEQThGIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRlci5tbSAqLywKIAkJCQk1MTNFNDYyQjFBRDgz
NzU2MDAxNjIzNEEgLyogV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmggKi8sCiAJCQkJ
NTEzRTQ2MkMxQUQ4Mzc1NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0
ZS5tbSAqLywKIAkJCQkyREQ2N0EzMzFCRDg2MTA2MDA1M0IyNTEgLyogV0tUZXh0RmluZGVyQ2xp
ZW50LmggKi8sCkBAIC0xMjkwMiw2ICsxMjkwNyw3IEBACiAJCQkJNDk5MDAwMjQyNEQyNEMyOTAw
MDQ5Q0I0IC8qIFdLUmVuZGVyT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzM2NzYzQjEz
MEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM4QTUwMTUxMTc2NUY1NjAwNzU3NTczIC8qIFdLUmV0YWluUHRyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNDk3NEU3NjI2NUVDQkJDMDBCNDlCOEMgLyogV0tSZXZlYWxJdGVtUHJlc2Vu
dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0EyNkQ4MTIxN0FCRDVCMDBGOTdBMzUgLyogV0tT
YWZlQnJvd3NpbmdXYXJuaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTdFMzc3OTE4RTRBNEZF
MDAzRDBGRkYgLyogV0tTY3JpcHRNZXNzYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTdFMzc3
NTE4RTRBMzNBMDAzRDBGRkYgLyogV0tTY3JpcHRNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDRlN2I5ODFlMTIxMWJmZjI5ZTdkNzMwMmEy
MGQ1M2NiN2JmZDczYTUuLmM1MmRlY2ZhNGIzYjdiYjU5Zjg3OGFmMWFhODA5OTUxYzFhN2U5NzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xMjk0LDYgKzEyOTQsMTUgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYgbnVt
YmVyLCBjb25zdCBJbnQKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQo
Y29uc3QgRGF0YURldGVjdG9yRWxlbWVudEluZm8mIGluZm8sIGNvbnN0IEludFBvaW50JiBjbGlj
a0xvY2F0aW9uKQoreworICAgIG1fcGFnZS5oYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1
bHQoaW5mbywgY2xpY2tMb2NhdGlvbik7Cit9CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYW5kbGVTZWxlY3Rpb25TZXJ2
aWNlQ2xpY2soRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHRlbGVwaG9uZU51bWJlcnMsIGNvbnN0IEludFBvaW50JiBwb2ludCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAppbmRleCA3MjljY2IwNzVjNjhkYmUwYmM3OWE1MGY1OWY2ZGRjZjg1ODc5MzY3Li44NzhhNTg2
Yjk3NGY4NDE5Mzc0ZWYyZmMzYmY4NGRkNDU5YTk3MzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBA
IC0zNjYsNiArMzY2LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVUZWxlcGhvbmVOdW1i
ZXJDbGljayhjb25zdCBTdHJpbmcmIG51bWJlciwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBm
aW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIHZvaWQgaGFu
ZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3Rv
ckVsZW1lbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBmaW5hbDsKKyNlbmRpZgor
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgdm9pZCBoYW5kbGVTZWxlY3Rpb25T
ZXJ2aWNlQ2xpY2soV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgdGVsZXBob25lTnVtYmVycywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBmaW5hbDsKICAg
ICBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2VydmljZXMoYm9vbCBpc1RleHRPbmx5KSBjb25z
dCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
Y29hL1dlYlBhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
Y29hL1dlYlBhZ2VDb2NvYS5tbQppbmRleCBmN2JkYjk1NzA0ZGM0NTYwMjM1OTI2MzgxZGY2MDRm
MDI4MGQwMTBkLi5iNzNhMGQ4OWRjZDJjZThkMWVlMWM4ZDY5NDYwOTBkYWQ0ZDVjMWQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFn
ZUNvY29hLm1tCkBAIC00NDksNiArNDQ5LDE1IEBAIFBsYXRmb3JtWFJTeXN0ZW1Qcm94eSYgV2Vi
UGFnZTo6eHJTeXN0ZW1Qcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKKwordm9pZCBXZWJQYWdlOjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQo
Y29uc3QgRGF0YURldGVjdG9yRWxlbWVudEluZm8mIGluZm8sIGNvbnN0IEludFBvaW50JiBjbGlj
a0xvY2F0aW9uKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlQ2xp
Y2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGluZm8sIGNsaWNrTG9jYXRpb24pKTsKK30KKworI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0Ep
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggM2NiOTdl
M2NjM2NmY2YwZDkzMzFjMzQyNzc1ZjllYzM4N2RiYjlkMC4uZWJjZjBhYTUwYWI1ODQwYjdiYWFj
NWZhYWU5NTk2MjAzNTkyZWZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMjMzLDYgKzIzMyw3IEBAIHN0cnVjdCBDb21wb3NpdGlvbkhpZ2hsaWdo
dDsKIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZTsKIHN0cnVjdCBDb250YWN0SW5mbzsKIHN0
cnVjdCBDb250YWN0c1JlcXVlc3REYXRhOworc3RydWN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZv
Owogc3RydWN0IERpY3RhdGlvbkFsdGVybmF0aXZlOwogc3RydWN0IEVsZW1lbnRDb250ZXh0Owog
c3RydWN0IEdsb2JhbEZyYW1lSWRlbnRpZmllcjsKQEAgLTExNzUsNiArMTE3NiwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdGVsZXBob25lTnVtYmVycywgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQorICAgIHZvaWQgaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNv
cmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsK
KyNlbmRpZgorCiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxPZmZzZXRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZSopOwogCiAgICAgdm9pZCBzZXRNYWluRnJhbWVQcm9ncmVzc0NvbXBsZXRlZChib29s
IGNvbXBsZXRlZCkgeyBtX21haW5GcmFtZVByb2dyZXNzQ29tcGxldGVkID0gY29tcGxldGVkOyB9
Cg==
</data>
<flag name="commit-queue"
          id="451227"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429926</attachid>
            <date>2021-05-27 14:07:13 -0700</date>
            <delta_ts>2021-05-27 14:46:53 -0700</delta_ts>
            <desc>Fix non-internal macOS build (2)</desc>
            <filename>bug-226274-20210527140712.patch</filename>
            <type>text/plain</type>
            <size>43512</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2YxNWNkMGMyNTQxNGMw
NDJjZjA0NGQ0OWE1ZTkxZjcwZDViOTlmOC4uZjJlYWVkNWI0ZjIxMTllNGQ2MmE0OTE0ZGUyNDM2
NDM5NTE1OGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA1LTI3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hv
dyBjb250ZXh0IG1lbnUgd2hlbiBjbGlja2luZyBvbiBkYXRhIGRldGVjdGlvbiByZXN1bHRzIGlu
IGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjYyNzQKKyAgICAgICAgcmRhcjovLzc1NTA0OTU2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgY2xpZW50IGhvb2sgdG8gYWxs
b3cgSW1hZ2VPdmVybGF5Q29udHJvbGxlciB0byBjYWxsIG91dCBpbnRvIHRoZSBXZWJLaXQgY2xp
ZW50IGxheWVyIHdoZW4gYSBkYXRhIGRldGVjdG9yCisgICAgICAgIGJ1dHRvbiAod2l0aCBhIGNv
cnJlc3BvbmRpbmcgRERTY2FubmVyUmVzdWx0KSBpcyBjbGlja2VkLiBTZWUgV2ViS2l0IENoYW5n
ZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6
CisgICAgICAgICogcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oOiBBZGRlZC4K
KworICAgICAgICBJbnRyb2R1Y2UgYSBzdHJ1Y3QgdGhhdCB3cmFwcyBhIGRhdGEgZGV0ZWN0aW9u
IHJlc3VsdCBhbmQgdGhlIGFjY29tcGFueWluZyBlbGVtZW50IGJvdW5kaW5nIHJlY3QsIG1haW5s
eSBzbyB0aGF0CisgICAgICAgIHdlIGhhdmUgYSBDKysgc3RydWN0IHdlIGNhbiBwbHVtYiB0aHJv
dWdoIHRoZSBjbGllbnQgbGF5ZXJzIChyYXRoZXIgdGhhbiBkaXJlY3RseSBwYXNzaW5nIE9iamVj
dGl2ZS1DIG9iamVjdHMKKyAgICAgICAgYXJvdW5kKS4KKworICAgICAgICAqIHBhZ2UvbWFjL0lt
YWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU92ZXJs
YXlDb250cm9sbGVyOjpoYW5kbGVEYXRhRGV0ZWN0b3JBY3Rpb24pOgorCiAyMDIxLTA1LTI2ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9y
IHNvbWUgZGF0YSBkZXRlY3RvciBjb2RlIGluIFdlYkNvcmU6OkZyYW1lCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBjYTQxYWNhZjQzZDE3MDQ5NWM3OGE2ZmI5YWUyYThkNmJjNDk5YWU5Li4yZmFlOTk5
Y2MzZjUxZjgyODU0OWE1MTQ5ZjBhMDQyMTFjMTc5NDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0wNS0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNob3cgY29udGV4dCBtZW51IHdoZW4gY2xpY2tp
bmcgb24gZGF0YSBkZXRlY3Rpb24gcmVzdWx0cyBpbiBpbWFnZSBvdmVybGF5cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2Mjc0CisgICAgICAgIHJk
YXI6Ly83NTUwNDk1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBkZWNsYXJhdGlvbnMgZm9yIHNvbWUgU1BJIG9uIFJWSXRlbSBhbmQgUlZQcmVz
ZW50ZXIuIFNlZSBXZWJLaXQgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgd2hlcmUgdGhlc2Ug
YXJlCisgICAgICAgIHVzZWQuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1JldmVhbFNQSS5o
OgorCiAyMDIxLTA1LTI2ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUHJldmVudCBzYml4IGdseXBocyBmcm9tIGJlaW5nIHJlbmRlcmVkIGluIHRoZSBH
UFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBmNTQzMmRhMDg4Yzc1MDdkMWQ4NGExOWFkZmE4NjZlYmMw
NDE1ZDY2Li5iOTU0NmQ2OGY3ZjI4ZTVhZGI3NzdiMTI2YjY1ZWNmMzlhMTRiMmUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDczIEBACisyMDIxLTA1LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hvdyBjb250ZXh0IG1lbnUgd2hlbiBj
bGlja2luZyBvbiBkYXRhIGRldGVjdGlvbiByZXN1bHRzIGluIGltYWdlIG92ZXJsYXlzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNzQKKyAgICAg
ICAgcmRhcjovLzc1NTA0OTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IGEgV2ViS2l0MiBjbGllbnQgaG9vayB0byBoYW5kbGUgYSBj
bGljayBvdmVyIGEgZGF0YSBkZXRlY3Rpb24gcmVzdWx0IGJ5IHVzaW5nIHRoZSBSZXZlYWwgZnJh
bWV3b3JrIHRvCisgICAgICAgIGNvbGxlY3QgYW5kIHByZXNlbnQgYSBjb250ZXh0IG1lbnUuIFNl
ZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYkNv
cmVBcmd1bWVudENvZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPERh
dGFEZXRlY3RvckVsZW1lbnRJbmZvPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbz46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCisgICAgICAgIEFkZCBlbmNvZGluZyBhbmQgZGVj
b2Rpbmcgc3VwcG9ydCBmb3IgRGF0YURldGVjdG9yRWxlbWVudEluZm8uCisKKyAgICAgICAgKiBT
b3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVDbGlja0ZvckRh
dGFEZXRlY3Rpb25SZXN1bHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dmlldyBjb25zdCk6CisKKyAgICAg
ICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byBncmFiIHRoZSB2aWV3IChlaXRoZXIgYSBXS1ZpZXcg
b3IgV0tXZWJWaWV3KSBmcm9tIGEgV2ViVmlld0ltcGwuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5k
bGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQpOgorCisgICAgICAgIENyZWF0ZSBhbmQgcHJl
c2VudCBhIG5ldyBXS1JldmVhbEl0ZW1QcmVzZW50ZXIgdXNpbmcgdGhlIEREU2Nhbm5lclJlc3Vs
dC4KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlkRmluaXNoUHJlc2VudGF0aW9u
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50OjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQpOgorCisgICAgICAg
IEFkZCBtb3JlIHBsdW1iaW5nIHRocm91Z2ggdGhlIFVJIHByb2Nlc3MgdG8gaGFuZGxlIGNsaWNr
aW5nIG9uIGEgZGF0YSBkZXRlY3Rpb24gcmVzdWx0LgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tOiBBZGRlZC4KKwor
ICAgICAgICBBZGQgYSBoZWxwZXIgY2xhc3MgdGhhdCB0YWtlcyBhbiBSVkl0ZW0gYW5kIGlzIGNh
cGFibGUgb2YgcHJlc2VudGluZyBhIGNvbnRleHQgbWVudSBmb3IgdGhlIGl0ZW0sIG9uIGJlaGFs
ZiBvZgorICAgICAgICBXZWJWaWV3SW1wbC4gRm9yIHRoZSB0aW1lIGJlaW5nLCB0aGlzIGlzIG9u
bHkgdXNlZCBvbiBtYWNPUyAoYW5kIHRodXMsIGRpcmVjdGx5IGhvbGRzIGEgV2Vha1B0ciB0byBh
CisgICAgICAgIFdlYlZpZXdJbXBsKS4gSG93ZXZlciwgd2UgbWF5IHdhbnQgdG8gdXNlIHRoaXMg
aW4gdGhlIGZ1dHVyZSBmb3IgTWFjIENhdGFseXN0IGFzIHdlbGwsIGluIHdoaWNoIGNhc2Ugd2Ug
c2hvdWxkCisgICAgICAgIG1ha2UgdGhpcyB3b3JrIHZpYSBhIGdlbmVyaWMgV0tSZXZlYWxJdGVt
UHJlc2VudGVyRGVsZWdhdGUgcHJvdG9jb2wgaW5zdGVhZC4KKworICAgICAgICAoLVtXS1JldmVh
bEl0ZW1QcmVzZW50ZXIgaW5pdFdpdGhXZWJWaWV3SW1wbDppdGVtOmZyYW1lOm1lbnVMb2NhdGlv
bjpdKToKKyAgICAgICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIHNob3dDb250ZXh0TWVudV0p
OgorICAgICAgICAoLVtXS1JldmVhbEl0ZW1QcmVzZW50ZXIgX2NhbGxEaWRGaW5pc2hQcmVzZW50
YXRpb25JZk5lZWRlZF0pOgorCisgICAgICAgIENhbGwgb3V0IHRvIHRoZSBXZWJWaWV3SW1wbCB0
byByZXNldCBpdHMgY3VycmVudCByZXZlYWwgaXRlbSBwcmVzZW50ZXIgYWZ0ZXIgd2UndmUgZmlu
aXNoZWQgcHJlc2VudGF0aW9uLiBUaGlzCisgICAgICAgIGhhcHBlbnMgZWl0aGVyIGFmdGVyIHdl
J3ZlIGRpc21pc3NlZCB0aGUgY29udGV4dCBtZW51IChpZiBubyBpdGVtIGlzIGhpZ2hsaWdodGVk
KSwgb3IgYWZ0ZXIgd2UndmUgZmluaXNoZWQKKyAgICAgICAgaGlnaGxpZ2h0aW5nIHRoZSBpdGVt
LgorCisgICAgICAgICgtW1dLUmV2ZWFsSXRlbVByZXNlbnRlciByZXZlYWxDb250ZXh0OnJlY3Rz
Rm9ySXRlbTpdKToKKyAgICAgICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIHJldmVhbENvbnRl
eHQ6c2hvdWxkVXNlRGVmYXVsdEhpZ2hsaWdodEZvckl0ZW06XSk6CisgICAgICAgICgtW1dLUmV2
ZWFsSXRlbVByZXNlbnRlciByZXZlYWxDb250ZXh0OnN0YXJ0SGlnaGxpZ2h0aW5nSXRlbTpdKToK
KyAgICAgICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIHJldmVhbENvbnRleHQ6c3RvcEhpZ2hs
aWdodGluZ0l0ZW06XSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmhhbmRsZUNsaWNrRm9yRGF0
YURldGVjdGlvblJlc3VsdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UGFnZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVDbGlja0ZvckRh
dGFEZXRlY3Rpb25SZXN1bHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisKIDIwMjEtMDUtMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVmYWN0b3Igc29tZSBkYXRhIGRldGVjdG9yIGNvZGUgaW4gV2ViQ29yZTo6
RnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVh
bFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUmV2ZWFsU1BJLmgKaW5k
ZXggNWU2ODMwNzgzOWQzOWRiNjNmN2Q4NjA3ZWMzOWExMGIzOTkyMDAxNy4uYzcyMDU2MDdmM2Zm
Zjc2MzEzN2JiOTZjMDI2NzcyY2I5MjJlOWZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY29jb2EvUmV2ZWFsU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvUmV2ZWFsU1BJLmgKQEAgLTQyLDExICs0MiwxMiBAQAogI2ltcG9ydCA8UmV2
ZWFsQ29yZS9SZXZlYWxDb3JlLmg+CiAjZWxzZSAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQog
Ci0KK0BjbGFzcyBERFNjYW5uZXJSZXN1bHQ7CiBAcHJvdG9jb2wgUlZQcmVzZW50ZXJIaWdobGln
aHREZWxlZ2F0ZTsKIAogQGludGVyZmFjZSBSVkl0ZW0gOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rp
bmc+CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQgc2VsZWN0
ZWRSYW5nZTooTlNSYW5nZSlzZWxlY3RlZFJhbmdlIE5TX0RFU0lHTkFURURfSU5JVElBTElaRVI7
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhERFJlc3VsdDooRERTY2FubmVyUmVzdWx0ICopcmVz
dWx0IE5TX0RFU0lHTkFURURfSU5JVElBTElaRVI7CiBAcHJvcGVydHkgKHJlYWRvbmx5LCBub25h
dG9taWMpIE5TUmFuZ2UgaGlnaGxpZ2h0UmFuZ2U7CiBAZW5kCiAKQEAgLTY5LDEzICs3MCwxNCBA
QAogQGVuZAogI2VuZGlmCiAKLUBpbnRlcmZhY2UgUlZEb2N1bWVudENvbnRleHQgOiBOU09iamVj
dCA8IE5TU2VjdXJlQ29kaW5nID4KK0BpbnRlcmZhY2UgUlZEb2N1bWVudENvbnRleHQgOiBOU09i
amVjdCA8TlNTZWN1cmVDb2Rpbmc+CiBAZW5kCiAKIEBpbnRlcmZhY2UgUlZQcmVzZW50ZXIgOiBO
U09iamVjdAogI2lmIFBMQVRGT1JNKE1BQykKIC0gKGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uQ29udHJvbGxlcj4pYW5pbWF0aW9uQ29udHJvbGxlckZvckl0ZW06KFJWSXRlbSAqKWl0ZW0g
ZG9jdW1lbnRDb250ZXh0OihSVkRvY3VtZW50Q29udGV4dCAqKWRvY3VtZW50Q29udGV4dCBwcmVz
ZW50aW5nQ29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4dCAqKXByZXNlbnRpbmdDb250ZXh0IG9w
dGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnM7CiAtIChCT09MKXJldmVhbEl0ZW06KFJWSXRl
bSAqKWl0ZW0gZG9jdW1lbnRDb250ZXh0OihSVkRvY3VtZW50Q29udGV4dCAqKWRvY3VtZW50Q29u
dGV4dCBwcmVzZW50aW5nQ29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4dCAqKXByZXNlbnRpbmdD
b250ZXh0IG9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnM7CistIChOU0FycmF5PE5TTWVu
dUl0ZW0gKj4gKiltZW51SXRlbXNGb3JJdGVtOihSVkl0ZW0gKilpdGVtIGRvY3VtZW50Q29udGV4
dDooUlZEb2N1bWVudENvbnRleHQgKilkb2N1bWVudENvbnRleHQgcHJlc2VudGluZ0NvbnRleHQ6
KFJWUHJlc2VudGluZ0NvbnRleHQgKilwcmVzZW50aW5nQ29udGV4dCBvcHRpb25zOihOU0RpY3Rp
b25hcnkgKilvcHRpb25zOwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIEBlbmQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk5
NTA5MzIyYTJiYmRhNjE5Y2MyM2E5MjA2NGE0YzM5NjljYTVmNGIuLmVhMGMwNTgwNGYzNGY2ZDM3
NzgyMjgyOTdmM2I3MWJjZDhkM2NmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUzMzksNiArNTMzOSw3IEBACiAJCUY0NDJD
MzU5MjNFM0FERDIwMDQ5OTU4MiAvKiBDb21wb3NpdGlvbkhpZ2hsaWdodC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0MkMzNTcyM0UzQUM1MTAwNDk5
NTgyIC8qIENvbXBvc2l0aW9uSGlnaGxpZ2h0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ0NkVEREYyNjVEQUZFMzAwMzFEQThGIC8qIERhdGFE
ZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThGIC8qIERhdGFEZXRlY3Rpb25S
ZXN1bHRzU3RvcmFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUY0NDZFREUxMjY1REIxRTUwMDMxREE4RiAvKiBJbWFnZU92ZXJsYXlEYXRhRGV0
ZWN0aW9uUmVzdWx0SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ0NkVERTAyNjVEQjFFNTAwMzFEQThGIC8qIEltYWdlT3ZlcmxheURh
dGFEZXRlY3Rpb25SZXN1bHRJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRjQ0NkVERTgyNjVERDg5MDAwMzFEQThGIC8qIERhdGFE
ZXRlY3RvckVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDQ2RURFNzI2NUREODkwMDAzMURBOEYgLyogRGF0YURldGVjdG9yRWxlbWVu
dEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGNDRBNUY1OTFGRUQzOEYyMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1RjU3MUZF
RDM4MzAwMDdGNTk0NCAvKiBMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0NEVCQkQ5MURCNUQyMTQwMDI3
NzMzNCAvKiBTdGF0aWNSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ0RUJCRDgxREI1RDIxNDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ1Nzc1Q0Uy
NDE0MzdENTAwMkRGMUEwIC8qIElubGluZVBhdGhEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDU3NzVDRDI0MTQzN0Q1MDAyREYxQTAgLyogSW5s
aW5lUGF0aERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTY4MTAsNiArMTY4MTEsNyBAQAogCQlGNDQyQzM1NzIzRTNBQzUxMDA0OTk1ODIg
LyogQ29tcG9zaXRpb25IaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcG9zaXRpb25IaWdo
bGlnaHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0NkVEREQyNjVEQUUzRjAw
MzFEQThGIC8qIERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
YXRhRGV0ZWN0aW9uUmVzdWx0c1N0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjQ0NkVERTAyNjVEQjFFNTAwMzFEQThGIC8qIEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25S
ZXN1bHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlT3ZlcmxheURhdGFEZXRlY3Rp
b25SZXN1bHRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NDZF
REU3MjY1REQ4OTAwMDMxREE4RiAvKiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDRBNUY1NzFGRUQzODMwMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlw
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0RUJCRDYxREI1RDFCNjAwMjc3MzM0IC8qIFN0YXRpY1Jh
bmdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdGF0aWNSYW5nZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEVCQkQ4MURCNUQyMTQwMDI3NzMzNCAvKiBTdGF0aWNS
YW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGF0aWNSYW5nZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE4OTMsNiArMjE4OTUsNyBAQAogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlGNDQ2RURERDI2NURBRTNGMDAzMURB
OEYgLyogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdlLmggKi8sCisJCQkJRjQ0NkVERTcyNjVE
RDg5MDAwMzFEQThGIC8qIERhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmggKi8sCiAJCQkJRjQ0NkVE
RTAyNjVEQjFFNTAwMzFEQThGIC8qIEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVu
dGlmaWVyLmggKi8sCiAJCQkJNDEzRTAwN0IxREIwRTcwNzAwMjM0MUQyIC8qIE1lbW9yeVJlbGVh
c2VDb2NvYS5tbSAqLywKIAkJCQlBRDVBMEMyMjFERUNBMzdFMDA3MDcwNTQgLyogUGVyZm9ybWFu
Y2VMb2dnaW5nQ29jb2EubW0gKi8sCkBAIC0zMjIwMCw2ICszMjIwMyw3IEBACiAJCQkJQkUyMzQ4
MEQxOEE5ODcxNDAwRTRCNkU4IC8qIERhdGFDdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1MjI3
REYxMUMzQzZERjEwMEY1RUQ1NCAvKiBEYXRhRGV0ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNDQ2RURERjI2NURBRkUzMDAzMURBOEYgLyogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNDQ2RURFODI2NUREODkwMDAzMURBOEYgLyogRGF0YURl
dGVjdG9yRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUY0QjJBOTA5MjY1MDMwQkEw
MDlFNzI4NiAvKiBEYXRhRGV0ZWN0b3JIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NEE1MzM1MjU2MDVBNTYwMDI4QzU5MiAvKiBEYXRhRGV0ZWN0b3JUeXBlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNThCNDVCQTIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGI2ZDkx
YTgzMzE3ZTIyMmM5YzJiMTdiMTY4YzMwNjg4OWQ0NjZiMTMuLjUwYTYyYzEzNzhiMjVkYzlmZjFi
MGY4N2Y2ZWNmMGI1ZGExOTVkZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAt
MTIxLDYgKzEyMSw3IEBAIGNsYXNzIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1
Z2luc0NhbGxiYWNrOwogc3RydWN0IEFwcEhpZ2hsaWdodDsKIHN0cnVjdCBDb250YWN0c1JlcXVl
c3REYXRhOwogc3RydWN0IENvbnRlbnRSdWxlTGlzdFJlc3VsdHM7CitzdHJ1Y3QgRGF0YURldGVj
dG9yRWxlbWVudEluZm87CiBzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVj
dCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29u
ZmlndXJhdGlvbjsKQEAgLTUwMiw2ICs1MDMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRQb2lu
dCYpIHsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0
b3JFbGVtZW50SW5mbyYsIGNvbnN0IEludFBvaW50JikgeyB9CisjZW5kaWYKKwogI2lmIEVOQUJM
RShTRVJWSUNFX0NPTlRST0xTKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2
aWNlQ2xpY2soRnJhbWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IElu
dFBvaW50JikgeyB9CiAgICAgdmlydHVhbCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2Vydmlj
ZXMoYm9vbCAvKmlzVGV4dE9ubHkqLykgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRGF0YURldGVjdG9yRWxlbWVudEluZm8uaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRGF0YURldGVjdG9yRWxlbWVudEluZm8uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42ZjZhOGQ4YjJiMDc2OGFmNzUyNzQwOGNkYWE2MzY5NTUxNzUyZDdmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50
SW5mby5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShEQVRBX0RFVEVDVElPTikKKworI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitP
QkpDX0NMQVNTIEREU2Nhbm5lclJlc3VsdDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBJbnRSZWN0OworCitzdHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm8geworICAgIFJldGFp
blB0cjxERFNjYW5uZXJSZXN1bHQ+IHJlc3VsdDsKKyAgICBJbnRSZWN0IGVsZW1lbnRCb3VuZHM7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJs
YXlDb250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvSW1hZ2VPdmVybGF5
Q29udHJvbGxlck1hYy5tbQppbmRleCBiMTE1ZmZmYjM1NzkwNzQxMGU0ZDMxOGViNDIwZTY2OTkw
NDNjNDM2Li5lODRlZGY4ZDEzNjlhNmU0ZjBjMDU5OTI2ZDk1MTE0YjUxNDk4MGE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMu
bW0KQEAgLTI5LDkgKzI5LDEyIEBACiAjaWYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJEYXRh
RGV0ZWN0aW9uLmgiCisjaW1wb3J0ICJEYXRhRGV0ZWN0aW9uUmVzdWx0c1N0b3JhZ2UuaCIKKyNp
bXBvcnQgIkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmgiCiAjaW1wb3J0ICJGcmFtZVZpZXcuaCIK
ICNpbXBvcnQgIkhUTUxFbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNpbXBvcnQg
IkltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVudGlmaWVyLmgiCiAjaW1wb3J0ICJJ
bnRSZWN0LmgiCiAjaW1wb3J0ICJQYWdlLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybU1vdXNlRXZlbnQu
aCIKQEAgLTE0Nyw4ICsxNTAsMjcgQEAgYm9vbCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpoYW5k
bGVEYXRhRGV0ZWN0b3JBY3Rpb24oY29uc3QgSFRNTEVsZW1lbnQmIGVsZW1lbnQKICAgICBpZiAo
IWZyYW1lVmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gRklYTUU6IENhbGwg
b3V0IHRvIHRoZSBjbGllbnQgbGF5ZXIgdG8gaGFuZGxlIHRoZSBjbGljay4KLSAgICBVTlVTRURf
UEFSQU0obG9jYXRpb25JbkNvbnRlbnRzKTsKKyAgICBhdXRvIGlkZW50aWZpZXJWYWx1ZSA9IHBh
cnNlSW50ZWdlcjx1aW50NjRfdD4oZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKEhUTUxOYW1lczo6eF9hcHBsZV9kYXRhX2RldGVjdG9yc19yZXN1bHRBdHRyKSk7CisgICAg
aWYgKCFpZGVudGlmaWVyVmFsdWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8g
aWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPEltYWdlT3ZlcmxheURhdGFEZXRlY3Rp
b25SZXN1bHRJZGVudGlmaWVyVHlwZT4oKmlkZW50aWZpZXJWYWx1ZSk7CisgICAgaWYgKCFpZGVu
dGlmaWVyLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byogZGF0
YURldGVjdGlvblJlc3VsdHMgPSBmcmFtZS0+ZGF0YURldGVjdGlvblJlc3VsdHNJZkV4aXN0cygp
OworICAgIGlmICghZGF0YURldGVjdGlvblJlc3VsdHMpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGF1dG8gZGF0YURldGVjdGlvblJlc3VsdCA9IHJldGFpblB0cihkYXRhRGV0ZWN0aW9u
UmVzdWx0cy0+aW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdChpZGVudGlmaWVyKSk7Cisg
ICAgaWYgKCFkYXRhRGV0ZWN0aW9uUmVzdWx0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQucmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRlcmVy
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3BhZ2UtPmNocm9tZSgpLmNsaWVudCgp
LmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCh7IFdURk1vdmUoZGF0YURldGVjdGlv
blJlc3VsdCksIGZyYW1lVmlldy0+Y29udGVudHNUb1dpbmRvdyhyZW5kZXJlci0+YWJzb2x1dGVC
b3VuZGluZ0JveFJlY3QoKSkgfSwgZnJhbWVWaWV3LT5jb250ZW50c1RvV2luZG93KGxvY2F0aW9u
SW5Db250ZW50cykpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCmluZGV4
IDJiNjY1ZWVkMTU5NjdmOTcwZmU2ZjQ5YThjNzllZTg3OTJkMGU4MmYuLjBiODU4OWE5M2Q4M2Yw
NTllYzkyZjk3MzJiYzJhY2FhMDcwN2I1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NvY29hLmgiCiAjaW1wb3J0IDxDb3JlVGV4
dC9Db3JlVGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9BdHRyaWJ1dGVkU3RyaW5nLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0RpY3Rpb25hcnlQb3B1cEluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Gb250QXR0cmlidXRlcy5oPgpAQCAtNjE0LDYgKzYxNSwzMCBAQCBib29sIEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRh
KERlY29kZXImIGRlY29kZQogICAgIHJldHVybiB0cnVlOwogfQogCisjaWYgRU5BQkxFKERBVEFf
REVURUNUSU9OKQorCit2b2lkIEFyZ3VtZW50Q29kZXI8RGF0YURldGVjdG9yRWxlbWVudEluZm8+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGF0YURldGVjdG9yRWxlbWVudEluZm8m
IGluZm8pCit7CisgICAgZW5jb2RlciA8PCBpbmZvLnJlc3VsdC5nZXQoKTsKKyAgICBlbmNvZGVy
IDw8IGluZm8uZWxlbWVudEJvdW5kczsKK30KKworT3B0aW9uYWw8RGF0YURldGVjdG9yRWxlbWVu
dEluZm8+IEFyZ3VtZW50Q29kZXI8RGF0YURldGVjdG9yRWxlbWVudEluZm8+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBhdXRvIHJlc3VsdCA9IElQQzo6ZGVjb2RlPEREU2Nhbm5l
clJlc3VsdD4oZGVjb2RlciwgUEFMOjpnZXRERFNjYW5uZXJSZXN1bHRDbGFzcygpKTsKKyAgICBp
ZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFs
PEludFJlY3Q+IGVsZW1lbnRCb3VuZHM7CisgICAgZGVjb2RlciA+PiBlbGVtZW50Qm91bmRzOwor
ICAgIGlmICghZWxlbWVudEJvdW5kcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBtYWtlT3B0aW9uYWw8RGF0YURldGVjdG9yRWxlbWVudEluZm8+KHsgV1RGTW92
ZSgqcmVzdWx0KSwgV1RGTW92ZSgqZWxlbWVudEJvdW5kcykgfSk7Cit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoREFUQV9ERVRFQ1RJT04pCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKQogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE1lZGlhUGxh
eWJhY2tUYXJnZXRDb250ZXh0JiB0YXJnZXQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDk2M2ZiNDhjOWEwOTk5ODk1YWFiZjlmZTIyY2Jm
M2Y0NzYxYjAyZjguLmFiMGMyNjM2MzI3M2ZhMjE0MGVhNjU5Yzg2Y2ZjNTA4ZDMyOGRiYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0xNDMs
NiArMTQzLDcgQEAgc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQ2FjaGVRdWVyeU9w
dGlvbnM7CiBzdHJ1Y3QgQ2hhcmFjdGVyUmFuZ2U7CiBzdHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxp
bmU7CitzdHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm87CiBzdHJ1Y3QgRGljdGF0aW9uQWx0
ZXJuYXRpdmU7CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFdmVudFRyYWNr
aW5nUmVnaW9uczsKQEAgLTgwNCw2ICs4MDUsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpTY3JpcHRCdWZmZXI+IHsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2Vi
Q29yZTo6U2NyaXB0QnVmZmVyPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAorI2lmIEVOQUJMRShE
QVRBX0RFVEVDVElPTikKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbz4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mKTsKKyAgICBzdGF0
aWMgT3B0aW9uYWw8V2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8+IGRlY29kZShEZWNv
ZGVyJik7Cit9OworCisjZW5kaWYKKwogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6
TWVzc2FnZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpNZXNzYWdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggYjI2NTk5YmE4ZTcwNjQ2NTRiNDhiNDU4ODg2MGY5OTg4NzNhMWNiMC4uYjE0ODAxM2M5MDQ2
NWY5MzJmYzZhZDk0YjFlN2FmOTQ5NDEyMzhjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAt
NTI1LDYgKzUyNSw3IEBAIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ci5tbQogVUlQcm9jZXNzL21hYy9XS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1t
CiBVSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQogVUlQcm9jZXNz
L21hYy9XS1ByaW50aW5nVmlldy5tbQorVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50
ZXIubW0KIFVJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tCiBV
SVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQogVUlQcm9jZXNzL21hYy9XS1RleHRJ
bnB1dFdpbmRvd0NvbnRyb2xsZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggMmQxMDNmMGVkMGE3ZDI2MTQxZWMyZjMz
YjJiZjY2NTBiYzhjNWUyZi4uYjE2ZDVmMTNiYTk2ZjRmZGUwMTA5MjIxNGY3NjVlMTUxOGQ4ZjEw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5
Q29jb2EubW0KQEAgLTk1LDEwICs5NSwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCiB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0RGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0aW9uUmVz
dWx0JiBkYXRhRGV0ZWN0aW9uUmVzdWx0KQogewogICAgIG1fZGF0YURldGVjdGlvblJlc3VsdHMg
PSBkYXRhRGV0ZWN0aW9uUmVzdWx0LnJlc3VsdHM7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpo
YW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURldGVjdG9yRWxlbWVu
dEluZm8mIGluZm8sIGNvbnN0IEludFBvaW50JiBjbGlja0xvY2F0aW9uKQoreworICAgIHBhZ2VD
bGllbnQoKS5oYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoaW5mbywgY2xpY2tMb2Nh
dGlvbik7Cit9CisKICNlbmRpZgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2F2ZVJlY2VudFNlYXJj
aGVzKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJj
aD4mIHNlYXJjaEl0ZW1zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKaW5kZXggYmQ4ZDgyYzQxNTczMTE0NjRmNGVjNTVkMGUxNDlkZmU4OTg3MGJhMS4uNzJm
NTAxN2VkMDQ2ZDhlNGQxOWI2NzRlNTJiN2NiYmEyNzcxNDkwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC02MSw2ICs2MSw3IEBAIE9CSkNfQ0xB
U1MgV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZTsKIE9CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFyZ2V0
OwogT0JKQ19DTEFTUyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOwogT0JKQ19DTEFTUyBX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXI7CitPQkpDX0NMQVNTIFdLUmV2ZWFsSXRlbVByZXNl
bnRlcjsKIE9CSkNfQ0xBU1MgV0tTYWZlQnJvd3NpbmdXYXJuaW5nOwogT0JKQ19DTEFTUyBXS1No
YXJlU2hlZXQ7CiBPQkpDX0NMQVNTIFdLVmlld0xheW91dFN0cmF0ZWd5OwpAQCAtOTYsNiArOTcs
NyBAQCBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERlc3RpbmF0aW9uQ29sb3JTcGFjZTsKIGNsYXNzIEludFBvaW50Oworc3RydWN0IERhdGFEZXRl
Y3RvckVsZW1lbnRJbmZvOwogc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiAKICNpZiBI
QVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAg
LTE4OSw2ICsxOTEsNyBAQCBwdWJsaWM6CiAgICAgTlNXaW5kb3cgKndpbmRvdygpOwogCiAgICAg
V2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CisgICAgTlNWaWV3
ICp2aWV3KCkgY29uc3QgeyByZXR1cm4gbV92aWV3LmdldEF1dG9yZWxlYXNlZCgpOyB9CiAKICAg
ICB2b2lkIHByb2Nlc3NXaWxsU3dhcCgpOwogICAgIHZvaWQgcHJvY2Vzc0RpZEV4aXQoKTsKQEAg
LTY2OSw2ICs2NzIsMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JGb3JUZXN0aW5nKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlKik7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICB2b2lkIGhhbmRsZUNsaWNr
Rm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50
SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CisjZW5kaWYKKworI2lmIEVOQUJMRShS
RVZFQUwpCisgICAgdm9pZCBkaWRGaW5pc2hQcmVzZW50YXRpb24oV0tSZXZlYWxJdGVtUHJlc2Vu
dGVyICopOworI2VuZGlmCisKIHByaXZhdGU6CiAjaWYgSEFWRShUT1VDSF9CQVIpCiAgICAgdm9p
ZCBzZXRVcFRleHRUb3VjaEJhcihOU1RvdWNoQmFyICopOwpAQCAtODg1LDYgKzg5NiwxMCBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZT4g
bV9jb29yZGluYXRvckZvclRlc3Rpbmc7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShSRVZFQUwpCisg
ICAgUmV0YWluUHRyPFdLUmV2ZWFsSXRlbVByZXNlbnRlcj4gbV9yZXZlYWxJdGVtUHJlc2VudGVy
OworI2VuZGlmCisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0
QWRkaXRpb25zL1dlYlZpZXdJbXBsQWRkaXRpb25zQWZ0ZXIuaD4KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA4ODg4MjE1N2MwYjE3
NmM2NWExNmY2OGE1ODlkNzBiZGNhZjRkYTEyLi4zYWNmNGE1MzM3NTg0YjY0OGE2MDkyMTgwYmRh
NDA1ODg3YTcxNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbQpAQCAtNjUsNiArNjUsNyBAQAogI2ltcG9ydCAiV0tOU1VSTEV4dHJhcy5oIgogI2lt
cG9ydCAiV0tQREZIVURWaWV3LmgiCiAjaW1wb3J0ICJXS1ByaW50aW5nVmlldy5oIgorI2ltcG9y
dCAiV0tSZXZlYWxJdGVtUHJlc2VudGVyLmgiCiAjaW1wb3J0ICJXS1NhZmVCcm93c2luZ1dhcm5p
bmcuaCIKICNpbXBvcnQgPFdlYktpdC9XS1NoYXJlU2hlZXQuaD4KICNpbXBvcnQgIldLVGV4dElu
cHV0V2luZG93Q29udHJvbGxlci5oIgpAQCAtODksNiArOTAsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9Db2xvck1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvclNlcmlhbGl6YXRpb24uaD4KICNp
bXBvcnQgPFdlYkNvcmUvQ29tcG9zaXRpb25IaWdobGlnaHQuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
RGF0YURldGVjdG9yRWxlbWVudEluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvRGVzdGluYXRpb25D
b2xvclNwYWNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RpY3Rpb25hcnlMb29rdXAuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KQEAgLTE0NCw2ICsxNDYsOCBAQAogI2luY2x1ZGUgIk1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmgiCiAjZW5kaWYKIAorI2ltcG9ydCA8
cGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLmg+CisKICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NF
UlZJQ0VTKQogI2ltcG9ydCA8VHJhbnNsYXRpb25VSVNlcnZpY2VzL0xUVUlUcmFuc2xhdGlvblZp
ZXdDb250cm9sbGVyLmg+CiAKQEAgLTU3NTEsNiArNTc1NSwzMiBAQCB2b2lkIFdlYlZpZXdJbXBs
OjplbmRQcmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmlld1BhbmVsICpwYW5lbCkKICNlbmRpZgog
fQogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCit2b2lkIFdlYlZpZXdJbXBsOjpoYW5k
bGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURldGVjdG9yRWxlbWVudElu
Zm8mIGluZm8sIGNvbnN0IEludFBvaW50JiBjbGlja0xvY2F0aW9uKQoreworI2lmIEVOQUJMRShS
RVZFQUwpCisgICAgbV9yZXZlYWxJdGVtUHJlc2VudGVyID0gYWRvcHROUyhbW1dLUmV2ZWFsSXRl
bVByZXNlbnRlciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3SW1wbDoqdGhpcyBpdGVtOmFkb3B0TlMo
W1BBTDo6YWxsb2NSVkl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoRERSZXN1bHQ6aW5mby5yZXN1bHQu
Z2V0KCldKS5nZXQoKSBmcmFtZTppbmZvLmVsZW1lbnRCb3VuZHMgbWVudUxvY2F0aW9uOmNsaWNr
TG9jYXRpb25dKTsKKyAgICBbbV9yZXZlYWxJdGVtUHJlc2VudGVyIHNldFNob3VsZFVzZURlZmF1
bHRIaWdobGlnaHQ6Tk9dOworICAgIFttX3JldmVhbEl0ZW1QcmVzZW50ZXIgc2hvd0NvbnRleHRN
ZW51XTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGluZm8pOworICAgIFVOVVNFRF9QQVJBTShj
bGlja0xvY2F0aW9uKTsKKyNlbmRpZgorfQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNU
SU9OKQorCisjaWYgRU5BQkxFKFJFVkVBTCkKKwordm9pZCBXZWJWaWV3SW1wbDo6ZGlkRmluaXNo
UHJlc2VudGF0aW9uKFdLUmV2ZWFsSXRlbVByZXNlbnRlciAqcHJlc2VudGVyKQoreworICAgIGlm
IChwcmVzZW50ZXIgPT0gbV9yZXZlYWxJdGVtUHJlc2VudGVyKQorICAgICAgICBtX3JldmVhbEl0
ZW1QcmVzZW50ZXIgPSBuaWw7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoUkVWRUFMKQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA3ZjkzMzhjMmExYjNlN2I4YTMxZjBkNDU5ZTRiMTNk
NTRmNDJlMWQ3Li4wMTNmNTA3OTZiYTQ1NmNiZjFiOThmYzMyYzcyMWI4YTVlOTUxNzgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xMTIsNiArMTEyLDcgQEAgZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdDsKIGVudW0gY2xh
c3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBBcHBIaWdobGln
aHQ7CitzdHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm87CiBzdHJ1Y3QgRGljdGlvbmFyeVBv
cHVwSW5mbzsKIHN0cnVjdCBUZXh0SW5kaWNhdG9yRGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJp
YnV0ZXM7CkBAIC02MjYsNiArNjI3LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2Fu
SGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbihjb25zdCBXZWJDb3JlOjpUcmFuc2xhdGlv
bkNvbnRleHRNZW51SW5mbyYpID0gMDsKICNlbmRpZgorCisjaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQo
Y29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYpIHsgfQorI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNjc2YzdjMzAwYzQ0ODYwZmM4MjIz
NmJjNjRhZjZmNTA0YjgzNWFlNS4uNDgwMzJkMGQyMmZjM2Y5NjE0ZTEzZDE1NDViZTVjZmIzODk1
Yzg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3OCw2ICsy
NzgsNyBAQCBzdHJ1Y3QgQ29tcG9zaXRpb25IaWdobGlnaHQ7CiBzdHJ1Y3QgQ29udGFjdEluZm87
CiBzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKIHN0cnVjdCBDb250ZW50UnVsZUxpc3RSZXN1
bHRzOworc3RydWN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvOwogc3RydWN0IERhdGFMaXN0U3Vn
Z2VzdGlvbkluZm9ybWF0aW9uOwogc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7CiBz
dHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKQEAgLTg3NSw2ICs4NzYsNyBAQCBwdWJsaWM6CiAj
ZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04p
CiAgICAgdm9pZCBzZXREYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IERhdGFEZXRlY3Rpb25SZXN1
bHQmKTsKKyAgICB2b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBX
ZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
Jik7CiAjZW5kaWYKICAgICB2b2lkIGRpZENvbW1pdExheWVyVHJlZShjb25zdCBXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJik7CiAgICAgdm9pZCBsYXllclRyZWVDb21taXRDb21w
bGV0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDY3OTU0NTEyMTRkYWUwZTU5ZDQ0MGY0YWU5YjVlZmMxZmVmMjZiM2QuLmIz
NDJjMGU2OTY0ZTFjMWZhM2IzM2I1Njk4NzVhMjIyMDQ5MDk1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTE3Nyw2ICsxNzcs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFf
REVURUNUSU9OKQogICAgIFNldERhdGFEZXRlY3Rpb25SZXN1bHQoc3RydWN0IFdlYktpdDo6RGF0
YURldGVjdGlvblJlc3VsdCBkYXRhRGV0ZWN0aW9uUmVzdWx0KQorICAgIEhhbmRsZUNsaWNrRm9y
RGF0YURldGVjdGlvblJlc3VsdChzdHJ1Y3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudElu
Zm8gaW5mbywgV2ViQ29yZTo6SW50UG9pbnQgbG9jYXRpb24pCiAjZW5kaWYKIAogICAgIFBhZ2VT
Y2FsZUZhY3RvckRpZENoYW5nZShkb3VibGUgc2NhbGVGYWN0b3IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDYzNGQ3MTNkZDFmY2Iw
NzhkZDlkNjg1ODQ5ZTVhMmE3OWZhMDhhMWEuLjlkNGEwMTMxNDg5NDNmOWJkMzlhYjdkNzJkMjgz
YzAzOGQzNGMzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5oCkBAIC0yODcsNiArMjg3LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5k
bGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFdlYkNvcmU6OlRyYW5zbGF0aW9uQ29udGV4
dE1lbnVJbmZvJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKKyAgICB2b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBXZWJD
b3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jikg
ZmluYWw7CisjZW5kaWYKKwogICAgIE5TVmlldyAqbV92aWV3OwogICAgIFdlYWtQdHI8V2ViVmll
d0ltcGw+IG1faW1wbDsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggM2RlNjAx
NzBmNjA1MzQ1ZjgyZjdlNDRlMjIzZjIzMWIxMzljMGY0OC4uMzM2NDJjMmYzNTIzZjZhMGNhZmEx
MzczM2RjYTY5N2U0YzU1MmQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtMTAzMSw2ICsxMDMxLDE1IEBAIHZvaWQgUGFnZUNs
aWVudEltcGw6OmhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oY29uc3QgVHJhbnNsYXRpb25D
b250ZXh0TWVudUluCiAKICNlbmRpZiAvLyBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAm
JiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNv
bnN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRQb2ludCYgY2xpY2tM
b2NhdGlvbikKK3sKKyAgICBtX2ltcGwtPmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3Vs
dChpbmZvLCBjbGlja0xvY2F0aW9uKTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwYzMxOGU1
YjIyMzNjM2ZhY2QwY2Y3MjhkYTdjNmU3MDk4MDZjOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLmgKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oTUFDKSAm
JiBFTkFCTEUoUkVWRUFMKQorCisjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+
CisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworQGNsYXNzIFJWSXRlbTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJWaWV3SW1wbDsKK30KKworQGludGVyZmFjZSBX
S1JldmVhbEl0ZW1QcmVzZW50ZXIgOiBOU09iamVjdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhXZWJWaWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpd2ViVmlld0ltcGwgaXRlbTooUlZJ
dGVtICopaXRlbSBmcmFtZTooQ0dSZWN0KWZyYW1lSW5WaWV3IG1lbnVMb2NhdGlvbjooQ0dQb2lu
dCltZW51TG9jYXRpb25JblZpZXc7CistICh2b2lkKXNob3dDb250ZXh0TWVudTsKKworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgc2hvdWxkVXNlRGVmYXVsdEhpZ2hsaWdodDsKKworQGVuZAor
CisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoUkVWRUFMKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50ZXIubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTNjMTdmODFlODI1YTNiMDYwNGVlMTI2YmIzZjk0Y2M0MzBhMTc5NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50
ZXIubW0KQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCIKKworI2lm
IFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFJFVkVBTCkKKworI2ltcG9ydCAiV2ViVmlld0ltcGwu
aCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrUHRyLmg+Cisj
aW1wb3J0IDxwYWwvY29jb2EvUmV2ZWFsU29mdExpbmsuaD4KKworQGludGVyZmFjZSBXS1JldmVh
bEl0ZW1QcmVzZW50ZXIgKCkgPFJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGU+CitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIgeworICAgIFdlYWtQdHI8V2Vi
S2l0OjpXZWJWaWV3SW1wbD4gX2ltcGw7CisgICAgUmV0YWluUHRyPFJWUHJlc2VudGVyPiBfcHJl
c2VudGVyOworICAgIFJldGFpblB0cjxSVlByZXNlbnRpbmdDb250ZXh0PiBfcHJlc2VudGluZ0Nv
bnRleHQ7CisgICAgUmV0YWluUHRyPFJWSXRlbT4gX2l0ZW07CisgICAgQ0dSZWN0IF9mcmFtZUlu
VmlldzsKKyAgICBDR1BvaW50IF9tZW51TG9jYXRpb25JblZpZXc7CisgICAgQk9PTCBfaXNIaWdo
bGlnaHRpbmdJdGVtOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWV3SW1wbDoo
V2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbCBpdGVtOihSVkl0ZW0gKilpdGVtIGZyYW1lOihDR1Jl
Y3QpZnJhbWVJblZpZXcgbWVudUxvY2F0aW9uOihDR1BvaW50KW1lbnVMb2NhdGlvbkluVmlldwor
eworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOwor
CisgICAgX2ltcGwgPSBtYWtlV2Vha1B0cihpbXBsKTsKKyAgICBfcHJlc2VudGVyID0gYWRvcHRO
UyhbUEFMOjphbGxvY1JWUHJlc2VudGVySW5zdGFuY2UoKSBpbml0XSk7CisgICAgX3ByZXNlbnRp
bmdDb250ZXh0ID0gYWRvcHROUyhbUEFMOjphbGxvY1JWUHJlc2VudGluZ0NvbnRleHRJbnN0YW5j
ZSgpIGluaXRXaXRoUG9pbnRlckxvY2F0aW9uSW5WaWV3Om1lbnVMb2NhdGlvbkluVmlldyBpblZp
ZXc6aW1wbC52aWV3KCkgaGlnaGxpZ2h0RGVsZWdhdGU6c2VsZl0pOworICAgIF9pdGVtID0gaXRl
bTsKKyAgICBfZnJhbWVJblZpZXcgPSBmcmFtZUluVmlldzsKKyAgICBfbWVudUxvY2F0aW9uSW5W
aWV3ID0gbWVudUxvY2F0aW9uSW5WaWV3OworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lk
KXNob3dDb250ZXh0TWVudQoreworICAgIGlmICghX2ltcGwpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8gdmlldyA9IF9pbXBsLT52aWV3KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvIG1lbnVJdGVtcyA9IHJldGFpblB0cihbX3ByZXNlbnRlciBtZW51
SXRlbXNGb3JJdGVtOl9pdGVtLmdldCgpIGRvY3VtZW50Q29udGV4dDpuaWwgcHJlc2VudGluZ0Nv
bnRleHQ6X3ByZXNlbnRpbmdDb250ZXh0LmdldCgpIG9wdGlvbnM6bmlsXSk7CisgICAgaWYgKCFb
bWVudUl0ZW1zIGNvdW50XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBtZW51ID0gYWRv
cHROUyhbW05TTWVudSBhbGxvY10gaW5pdFdpdGhUaXRsZTplbXB0eVN0cmluZygpXSk7CisgICAg
W21lbnUgc2V0QXV0b2VuYWJsZXNJdGVtczpOT107CisgICAgW21lbnUgc2V0SXRlbUFycmF5Om1l
bnVJdGVtcy5nZXQoKV07CisKKyAgICBhdXRvIGNsaWNrTG9jYXRpb25JbldpbmRvdyA9IFt2aWV3
IGNvbnZlcnRQb2ludDpfbWVudUxvY2F0aW9uSW5WaWV3IHRvVmlldzpuaWxdOworICAgIE5TRXZl
bnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1v
dXNlRG93biBsb2NhdGlvbjpjbGlja0xvY2F0aW9uSW5XaW5kb3cgbW9kaWZpZXJGbGFnczowIHRp
bWVzdGFtcDowIHdpbmRvd051bWJlcjp2aWV3LndpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDow
IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOworICAgIFtOU01lbnUgcG9w
VXBDb250ZXh0TWVudTptZW51LmdldCgpIHdpdGhFdmVudDpldmVudCBmb3JWaWV3OnZpZXddOwor
CisgICAgW3NlbGYgX2NhbGxEaWRGaW5pc2hQcmVzZW50YXRpb25JZk5lZWRlZF07Cit9CisKKy0g
KHZvaWQpX2NhbGxEaWRGaW5pc2hQcmVzZW50YXRpb25JZk5lZWRlZAoreworICAgIGlmICghX2lt
cGwgfHwgX2lzSGlnaGxpZ2h0aW5nSXRlbSkKKyAgICAgICAgcmV0dXJuOworCisgICAgX2ltcGwt
PmRpZEZpbmlzaFByZXNlbnRhdGlvbihzZWxmKTsKK30KKworI3ByYWdtYSBtYXJrIC0gUlZQcmVz
ZW50ZXJIaWdobGlnaHREZWxlZ2F0ZQorCistIChOU0FycmF5PE5TVmFsdWUgKj4gKilyZXZlYWxD
b250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICopY29udGV4dCByZWN0c0Zvckl0ZW06KFJWSXRl
bSAqKWl0ZW0KK3sKKyAgICByZXR1cm4gQFsgW05TVmFsdWUgdmFsdWVXaXRoUmVjdDpfZnJhbWVJ
blZpZXddIF07Cit9CisKKy0gKEJPT0wpcmV2ZWFsQ29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4
dCAqKWNvbnRleHQgc2hvdWxkVXNlRGVmYXVsdEhpZ2hsaWdodEZvckl0ZW06KFJWSXRlbSAqKWl0
ZW0KK3sKKyAgICByZXR1cm4gc2VsZi5zaG91bGRVc2VEZWZhdWx0SGlnaGxpZ2h0OworfQorCist
ICh2b2lkKXJldmVhbENvbnRleHQ6KFJWUHJlc2VudGluZ0NvbnRleHQgKiljb250ZXh0IHN0YXJ0
SGlnaGxpZ2h0aW5nSXRlbTooUlZJdGVtICopaXRlbQoreworICAgIF9pc0hpZ2hsaWdodGluZ0l0
ZW0gPSBZRVM7Cit9CisKKy0gKHZvaWQpcmV2ZWFsQ29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4
dCAqKWNvbnRleHQgc3RvcEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBf
aXNIaWdobGlnaHRpbmdJdGVtID0gTk87CisKKyAgICBbc2VsZiBfY2FsbERpZEZpbmlzaFByZXNl
bnRhdGlvbklmTmVlZGVkXTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAm
JiBFTkFCTEUoUkVWRUFMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggODM5OTllNWYzMjhlYzE0N2VmOWZmNGY1MDNhNGJlNmRkMGU4Zjg3
OC4uMzE5NzkzZTc2OTZjODI2MzVmMzk2MWYyN2ZlNjkwZGY1MjM0ZjMxYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDI5LDYgKzIw
MjksNyBAQAogCQlGNDg1NzBBMzI2NDRCRUM1MDBDMDVGNzEgLyogVGltZW91dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4NTcwQTIyNjQ0QkVDNDAw
QzA1RjcxIC8qIFRpbWVvdXQuaCAqLzsgfTsKIAkJRjQ4RDJBODUyMTU4M0E3RTAwQzY3NTJCIC8q
IEFwcEtpdFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ4RDJBODQyMTU4M0EwMjAwQzY3NTJCIC8qIEFwcEtpdFNQSS5oICovOyB9OwogCQlGNDk2
QTQzMTFGNThBMjcyMDA0QzE3NTcgLyogRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDk2QTQyRjFGNThBMjcy
MDA0QzE3NTcgLyogRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmggKi87IH07CisJCUY0OTc0RTc2
MjY1RUNCQkMwMEI0OUI4QyAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDZFREVGMjY1RUIyQjAwMDMxREE4
RiAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCAqLzsgfTsKIAkJRjQ5NzVDRjIyNjI0QjgwQTAw
M0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTc1Q0YxMjYyNEI4MEEwMDND
NjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmggKi87IH07CiAJCUY0
QTZENkJDMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRBNkQ2QkIyNTRDQTNF
OTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi87IH07CiAJCUY0QkEzM0Yy
MjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEJBMzNGMDI1
NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oICov
OyB9OwpAQCAtNTk3MCw2ICs1OTcxLDggQEAKIAkJRjQ0MjkxOTExRkE1OTEwNzAwMkNDOTNFIC8q
IF9XS0F0dGFjaG1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQXR0YWNobWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQyOTE5MzFGQTU5MzExMDAyQ0M5M0UgLyogX1dLQXR0
YWNobWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0F0dGFjaG1lbnQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NDI5MTk1MUZBNTk0MkEwMDJDQzkzRSAvKiBfV0tB
dHRhY2htZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQXR0YWNobWVudEludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NDZFREVGMjY1RUIyQjAwMDMxREE4
RiAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tSZXZlYWxJdGVt
UHJlc2VudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NDZFREYxMjY1RUIz
QjYwMDMxREE4RiAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS1JldmVhbEl0ZW1QcmVzZW50ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0NDgxNTYyMjM4NzgyMDAwMDk4MjY1NyAvKiBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaDsgcGF0
aCA9IGlvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0NDgxNTYzMjM4NzgyMDAwMDk4MjY1NyAvKiBXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMDFFOUU3NTJGMDAzOEQxOTYg
LyogV2ViSWNvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJJY29uVXRpbGl0aWVzLmg7IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGllcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4NTAsNiArMTA4NTMsOCBAQAogCQkJCTkzMjFENTg3
MUEzOEVFNzQwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gKi8sCiAJ
CQkJMEZDQjRFNUMxOEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJpbnRpbmdWaWV3LmggKi8sCiAJCQkJ
MEZDQjRFNUQxOEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJpbnRpbmdWaWV3Lm1tICovLAorCQkJCUY0
NDZFREVGMjY1RUIyQjAwMDMxREE4RiAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCAqLywKKwkJ
CQlGNDQ2RURGMTI2NUVCM0I2MDAzMURBOEYgLyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tICov
LAogCQkJCTUxM0U0NjJCMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNlUGlja2Vy
RGVsZWdhdGUuaCAqLywKIAkJCQk1MTNFNDYyQzFBRDgzNzU2MDAxNjIzNEEgLyogV0tTaGFyaW5n
U2VydmljZVBpY2tlckRlbGVnYXRlLm1tICovLAogCQkJCTJERDY3QTMzMUJEODYxMDYwMDUzQjI1
MSAvKiBXS1RleHRGaW5kZXJDbGllbnQuaCAqLywKQEAgLTEyOTAyLDYgKzEyOTA3LDcgQEAKIAkJ
CQk0OTkwMDAyNDI0RDI0QzI5MDAwNDlDQjQgLyogV0tSZW5kZXJPYmplY3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMzMzY3NjNCMTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhBNTAxNTExNzY1RjU2MDA3NTc1NzMgLyogV0tS
ZXRhaW5QdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0OTc0RTc2MjY1RUNCQkMwMEI0OUI4QyAv
KiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQTI2RDgxMjE3
QUJENUIwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dhcm5pbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBN0UzNzc5MThFNEE0RkUwMDNEMEZGRiAvKiBXS1NjcmlwdE1lc3NhZ2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBN0UzNzc1MThFNEEzM0EwMDNEMEZGRiAvKiBXS1NjcmlwdE1lc3NhZ2VI
YW5kbGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNGU3Yjk4
MWUxMjExYmZmMjllN2Q3MzAyYTIwZDUzY2I3YmZkNzNhNS4uYzUyZGVjZmE0YjNiN2JiNTlmODc4
YWYxYWE4MDk5NTFjMWE3ZTk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEyOTQsNiAr
MTI5NCwxNSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlVGVsZXBob25lTnVtYmVyQ2xp
Y2soY29uc3QgU3RyaW5nJiBudW1iZXIsIGNvbnN0IEludAogCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShEQVRBX0RFVEVDVElPTikKKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmhhbmRsZUNsaWNrRm9y
RGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYgaW5mbywg
Y29uc3QgSW50UG9pbnQmIGNsaWNrTG9jYXRpb24pCit7CisgICAgbV9wYWdlLmhhbmRsZUNsaWNr
Rm9yRGF0YURldGVjdGlvblJlc3VsdChpbmZvLCBjbGlja0xvY2F0aW9uKTsKK30KKworI2VuZGlm
CisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdGVsZXBob25lTnVtYmVycywgY29uc3QgSW50UG9pbnQmIHBv
aW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDcyOWNjYjA3NWM2OGRiZTBiYzc5YTUwZjU5ZjZk
ZGNmODU4NzkzNjcuLjg3OGE1ODZiOTc0Zjg0MTkzNzRlZjJmYzNiZjg0ZGQ0NTlhOTczOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM2Niw2ICszNjYsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYgbnVtYmVyLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYpIGZpbmFsOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCisgICAgdm9pZCBoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3Qg
V2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYpIGZpbmFsOworI2VuZGlmCisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICB2
b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbiYs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYpIGZpbmFsOwogICAgIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhi
b29sIGlzVGV4dE9ubHkpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCmluZGV4IGY3YmRiOTU3MDRk
YzQ1NjAyMzU5MjYzODFkZjYwNGYwMjgwZDAxMGQuLmI3M2EwZDg5ZGNkMmNlOGQxZWUxYzhkNjk0
NjA5MGRhZDRkNWMxZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KQEAgLTQ0OSw2ICs0NDksMTUgQEAgUGxhdGZv
cm1YUlN5c3RlbVByb3h5JiBXZWJQYWdlOjp4clN5c3RlbVByb3h5KCkKIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCit2b2lkIFdlYlBhZ2U6OmhhbmRsZUNsaWNrRm9y
RGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYgaW5mbywg
Y29uc3QgSW50UG9pbnQmIGNsaWNrTG9jYXRpb24pCit7CisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpIYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoaW5mbywgY2xpY2tM
b2NhdGlvbikpOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCAzY2I5N2UzY2MzY2ZjZjBkOTMzMWMzNDI3NzVmOWVjMzg3ZGJiOWQwLi5l
YmNmMGFhNTBhYjU4NDBiN2JhYWM1ZmFhZTk1OTYyMDM1OTJlZmViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMzMsNiArMjMzLDcgQEAgc3RydWN0
IENvbXBvc2l0aW9uSGlnaGxpZ2h0Owogc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOwogc3Ry
dWN0IENvbnRhY3RJbmZvOwogc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CitzdHJ1Y3QgRGF0
YURldGVjdG9yRWxlbWVudEluZm87CiBzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmU7CiBzdHJ1
Y3QgRWxlbWVudENvbnRleHQ7CiBzdHJ1Y3QgR2xvYmFsRnJhbWVJZGVudGlmaWVyOwpAQCAtMTE3
NSw2ICsxMTc2LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VD
bGljayhXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0ZWxl
cGhvbmVOdW1iZXJzLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgdm9pZCBoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rp
b25SZXN1bHQoY29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYpOworI2VuZGlmCisKICAgICB2b2lkIGRpZENoYW5nZVNjcm9sbE9m
ZnNldEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKik7CiAKICAgICB2b2lkIHNldE1haW5GcmFtZVBy
b2dyZXNzQ29tcGxldGVkKGJvb2wgY29tcGxldGVkKSB7IG1fbWFpbkZyYW1lUHJvZ3Jlc3NDb21w
bGV0ZWQgPSBjb21wbGV0ZWQ7IH0K
</data>
<flag name="commit-queue"
          id="451228"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429928</attachid>
            <date>2021-05-27 14:29:17 -0700</date>
            <delta_ts>2021-05-27 15:47:19 -0700</delta_ts>
            <desc>Fix non-internal build (3)</desc>
            <filename>bug-226274-20210527142917.patch</filename>
            <type>text/plain</type>
            <size>43532</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2YxNWNkMGMyNTQxNGMw
NDJjZjA0NGQ0OWE1ZTkxZjcwZDViOTlmOC4uZjJlYWVkNWI0ZjIxMTllNGQ2MmE0OTE0ZGUyNDM2
NDM5NTE1OGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA1LTI3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hv
dyBjb250ZXh0IG1lbnUgd2hlbiBjbGlja2luZyBvbiBkYXRhIGRldGVjdGlvbiByZXN1bHRzIGlu
IGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjYyNzQKKyAgICAgICAgcmRhcjovLzc1NTA0OTU2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgY2xpZW50IGhvb2sgdG8gYWxs
b3cgSW1hZ2VPdmVybGF5Q29udHJvbGxlciB0byBjYWxsIG91dCBpbnRvIHRoZSBXZWJLaXQgY2xp
ZW50IGxheWVyIHdoZW4gYSBkYXRhIGRldGVjdG9yCisgICAgICAgIGJ1dHRvbiAod2l0aCBhIGNv
cnJlc3BvbmRpbmcgRERTY2FubmVyUmVzdWx0KSBpcyBjbGlja2VkLiBTZWUgV2ViS2l0IENoYW5n
ZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdCk6
CisgICAgICAgICogcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oOiBBZGRlZC4K
KworICAgICAgICBJbnRyb2R1Y2UgYSBzdHJ1Y3QgdGhhdCB3cmFwcyBhIGRhdGEgZGV0ZWN0aW9u
IHJlc3VsdCBhbmQgdGhlIGFjY29tcGFueWluZyBlbGVtZW50IGJvdW5kaW5nIHJlY3QsIG1haW5s
eSBzbyB0aGF0CisgICAgICAgIHdlIGhhdmUgYSBDKysgc3RydWN0IHdlIGNhbiBwbHVtYiB0aHJv
dWdoIHRoZSBjbGllbnQgbGF5ZXJzIChyYXRoZXIgdGhhbiBkaXJlY3RseSBwYXNzaW5nIE9iamVj
dGl2ZS1DIG9iamVjdHMKKyAgICAgICAgYXJvdW5kKS4KKworICAgICAgICAqIHBhZ2UvbWFjL0lt
YWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU92ZXJs
YXlDb250cm9sbGVyOjpoYW5kbGVEYXRhRGV0ZWN0b3JBY3Rpb24pOgorCiAyMDIxLTA1LTI2ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9y
IHNvbWUgZGF0YSBkZXRlY3RvciBjb2RlIGluIFdlYkNvcmU6OkZyYW1lCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBjYTQxYWNhZjQzZDE3MDQ5NWM3OGE2ZmI5YWUyYThkNmJjNDk5YWU5Li4yZmFlOTk5
Y2MzZjUxZjgyODU0OWE1MTQ5ZjBhMDQyMTFjMTc5NDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0wNS0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNob3cgY29udGV4dCBtZW51IHdoZW4gY2xpY2tp
bmcgb24gZGF0YSBkZXRlY3Rpb24gcmVzdWx0cyBpbiBpbWFnZSBvdmVybGF5cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2Mjc0CisgICAgICAgIHJk
YXI6Ly83NTUwNDk1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBkZWNsYXJhdGlvbnMgZm9yIHNvbWUgU1BJIG9uIFJWSXRlbSBhbmQgUlZQcmVz
ZW50ZXIuIFNlZSBXZWJLaXQgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgd2hlcmUgdGhlc2Ug
YXJlCisgICAgICAgIHVzZWQuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1JldmVhbFNQSS5o
OgorCiAyMDIxLTA1LTI2ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUHJldmVudCBzYml4IGdseXBocyBmcm9tIGJlaW5nIHJlbmRlcmVkIGluIHRoZSBH
UFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBmNTQzMmRhMDg4Yzc1MDdkMWQ4NGExOWFkZmE4NjZlYmMw
NDE1ZDY2Li5iOTU0NmQ2OGY3ZjI4ZTVhZGI3NzdiMTI2YjY1ZWNmMzlhMTRiMmUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDczIEBACisyMDIxLTA1LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hvdyBjb250ZXh0IG1lbnUgd2hlbiBj
bGlja2luZyBvbiBkYXRhIGRldGVjdGlvbiByZXN1bHRzIGluIGltYWdlIG92ZXJsYXlzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNzQKKyAgICAg
ICAgcmRhcjovLzc1NTA0OTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IGEgV2ViS2l0MiBjbGllbnQgaG9vayB0byBoYW5kbGUgYSBj
bGljayBvdmVyIGEgZGF0YSBkZXRlY3Rpb24gcmVzdWx0IGJ5IHVzaW5nIHRoZSBSZXZlYWwgZnJh
bWV3b3JrIHRvCisgICAgICAgIGNvbGxlY3QgYW5kIHByZXNlbnQgYSBjb250ZXh0IG1lbnUuIFNl
ZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYkNv
cmVBcmd1bWVudENvZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPERh
dGFEZXRlY3RvckVsZW1lbnRJbmZvPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbz46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCisgICAgICAgIEFkZCBlbmNvZGluZyBhbmQgZGVj
b2Rpbmcgc3VwcG9ydCBmb3IgRGF0YURldGVjdG9yRWxlbWVudEluZm8uCisKKyAgICAgICAgKiBT
b3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVDbGlja0ZvckRh
dGFEZXRlY3Rpb25SZXN1bHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dmlldyBjb25zdCk6CisKKyAgICAg
ICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byBncmFiIHRoZSB2aWV3IChlaXRoZXIgYSBXS1ZpZXcg
b3IgV0tXZWJWaWV3KSBmcm9tIGEgV2ViVmlld0ltcGwuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5k
bGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQpOgorCisgICAgICAgIENyZWF0ZSBhbmQgcHJl
c2VudCBhIG5ldyBXS1JldmVhbEl0ZW1QcmVzZW50ZXIgdXNpbmcgdGhlIEREU2Nhbm5lclJlc3Vs
dC4KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlkRmluaXNoUHJlc2VudGF0aW9u
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50OjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQpOgorCisgICAgICAg
IEFkZCBtb3JlIHBsdW1iaW5nIHRocm91Z2ggdGhlIFVJIHByb2Nlc3MgdG8gaGFuZGxlIGNsaWNr
aW5nIG9uIGEgZGF0YSBkZXRlY3Rpb24gcmVzdWx0LgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tOiBBZGRlZC4KKwor
ICAgICAgICBBZGQgYSBoZWxwZXIgY2xhc3MgdGhhdCB0YWtlcyBhbiBSVkl0ZW0gYW5kIGlzIGNh
cGFibGUgb2YgcHJlc2VudGluZyBhIGNvbnRleHQgbWVudSBmb3IgdGhlIGl0ZW0sIG9uIGJlaGFs
ZiBvZgorICAgICAgICBXZWJWaWV3SW1wbC4gRm9yIHRoZSB0aW1lIGJlaW5nLCB0aGlzIGlzIG9u
bHkgdXNlZCBvbiBtYWNPUyAoYW5kIHRodXMsIGRpcmVjdGx5IGhvbGRzIGEgV2Vha1B0ciB0byBh
CisgICAgICAgIFdlYlZpZXdJbXBsKS4gSG93ZXZlciwgd2UgbWF5IHdhbnQgdG8gdXNlIHRoaXMg
aW4gdGhlIGZ1dHVyZSBmb3IgTWFjIENhdGFseXN0IGFzIHdlbGwsIGluIHdoaWNoIGNhc2Ugd2Ug
c2hvdWxkCisgICAgICAgIG1ha2UgdGhpcyB3b3JrIHZpYSBhIGdlbmVyaWMgV0tSZXZlYWxJdGVt
UHJlc2VudGVyRGVsZWdhdGUgcHJvdG9jb2wgaW5zdGVhZC4KKworICAgICAgICAoLVtXS1JldmVh
bEl0ZW1QcmVzZW50ZXIgaW5pdFdpdGhXZWJWaWV3SW1wbDppdGVtOmZyYW1lOm1lbnVMb2NhdGlv
bjpdKToKKyAgICAgICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIHNob3dDb250ZXh0TWVudV0p
OgorICAgICAgICAoLVtXS1JldmVhbEl0ZW1QcmVzZW50ZXIgX2NhbGxEaWRGaW5pc2hQcmVzZW50
YXRpb25JZk5lZWRlZF0pOgorCisgICAgICAgIENhbGwgb3V0IHRvIHRoZSBXZWJWaWV3SW1wbCB0
byByZXNldCBpdHMgY3VycmVudCByZXZlYWwgaXRlbSBwcmVzZW50ZXIgYWZ0ZXIgd2UndmUgZmlu
aXNoZWQgcHJlc2VudGF0aW9uLiBUaGlzCisgICAgICAgIGhhcHBlbnMgZWl0aGVyIGFmdGVyIHdl
J3ZlIGRpc21pc3NlZCB0aGUgY29udGV4dCBtZW51IChpZiBubyBpdGVtIGlzIGhpZ2hsaWdodGVk
KSwgb3IgYWZ0ZXIgd2UndmUgZmluaXNoZWQKKyAgICAgICAgaGlnaGxpZ2h0aW5nIHRoZSBpdGVt
LgorCisgICAgICAgICgtW1dLUmV2ZWFsSXRlbVByZXNlbnRlciByZXZlYWxDb250ZXh0OnJlY3Rz
Rm9ySXRlbTpdKToKKyAgICAgICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIHJldmVhbENvbnRl
eHQ6c2hvdWxkVXNlRGVmYXVsdEhpZ2hsaWdodEZvckl0ZW06XSk6CisgICAgICAgICgtW1dLUmV2
ZWFsSXRlbVByZXNlbnRlciByZXZlYWxDb250ZXh0OnN0YXJ0SGlnaGxpZ2h0aW5nSXRlbTpdKToK
KyAgICAgICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIHJldmVhbENvbnRleHQ6c3RvcEhpZ2hs
aWdodGluZ0l0ZW06XSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmhhbmRsZUNsaWNrRm9yRGF0
YURldGVjdGlvblJlc3VsdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UGFnZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVDbGlja0ZvckRh
dGFEZXRlY3Rpb25SZXN1bHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisKIDIwMjEtMDUtMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVmYWN0b3Igc29tZSBkYXRhIGRldGVjdG9yIGNvZGUgaW4gV2ViQ29yZTo6
RnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVh
bFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUmV2ZWFsU1BJLmgKaW5k
ZXggNWU2ODMwNzgzOWQzOWRiNjNmN2Q4NjA3ZWMzOWExMGIzOTkyMDAxNy4uNDAwYWJkZmVkOTY5
NGUzOThiMGYyOTZhZWU2ZGFhMjc3ZTFmZjU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY29jb2EvUmV2ZWFsU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvUmV2ZWFsU1BJLmgKQEAgLTQyLDExICs0MiwxMyBAQAogI2ltcG9ydCA8UmV2
ZWFsQ29yZS9SZXZlYWxDb3JlLmg+CiAjZWxzZSAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQog
Ci0KK0BjbGFzcyBERFNjYW5uZXJSZXN1bHQ7CitAY2xhc3MgTlNNZW51SXRlbTsKIEBwcm90b2Nv
bCBSVlByZXNlbnRlckhpZ2hsaWdodERlbGVnYXRlOwogCiBAaW50ZXJmYWNlIFJWSXRlbSA6IE5T
T2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFRleHQ6KE5T
U3RyaW5nICopdGV4dCBzZWxlY3RlZFJhbmdlOihOU1JhbmdlKXNlbGVjdGVkUmFuZ2UgTlNfREVT
SUdOQVRFRF9JTklUSUFMSVpFUjsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEREUmVzdWx0OihE
RFNjYW5uZXJSZXN1bHQgKilyZXN1bHQgTlNfREVTSUdOQVRFRF9JTklUSUFMSVpFUjsKIEBwcm9w
ZXJ0eSAocmVhZG9ubHksIG5vbmF0b21pYykgTlNSYW5nZSBoaWdobGlnaHRSYW5nZTsKIEBlbmQK
IApAQCAtNjksMTMgKzcxLDE0IEBACiBAZW5kCiAjZW5kaWYKIAotQGludGVyZmFjZSBSVkRvY3Vt
ZW50Q29udGV4dCA6IE5TT2JqZWN0IDwgTlNTZWN1cmVDb2RpbmcgPgorQGludGVyZmFjZSBSVkRv
Y3VtZW50Q29udGV4dCA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIEBlbmQKIAogQGludGVy
ZmFjZSBSVlByZXNlbnRlciA6IE5TT2JqZWN0CiAjaWYgUExBVEZPUk0oTUFDKQogLSAoaWQ8TlNJ
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilhbmltYXRpb25Db250cm9sbGVyRm9y
SXRlbTooUlZJdGVtICopaXRlbSBkb2N1bWVudENvbnRleHQ6KFJWRG9jdW1lbnRDb250ZXh0ICop
ZG9jdW1lbnRDb250ZXh0IHByZXNlbnRpbmdDb250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICop
cHJlc2VudGluZ0NvbnRleHQgb3B0aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9uczsKIC0gKEJP
T0wpcmV2ZWFsSXRlbTooUlZJdGVtICopaXRlbSBkb2N1bWVudENvbnRleHQ6KFJWRG9jdW1lbnRD
b250ZXh0ICopZG9jdW1lbnRDb250ZXh0IHByZXNlbnRpbmdDb250ZXh0OihSVlByZXNlbnRpbmdD
b250ZXh0ICopcHJlc2VudGluZ0NvbnRleHQgb3B0aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9u
czsKKy0gKE5TQXJyYXk8TlNNZW51SXRlbSAqPiAqKW1lbnVJdGVtc0Zvckl0ZW06KFJWSXRlbSAq
KWl0ZW0gZG9jdW1lbnRDb250ZXh0OihSVkRvY3VtZW50Q29udGV4dCAqKWRvY3VtZW50Q29udGV4
dCBwcmVzZW50aW5nQ29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4dCAqKXByZXNlbnRpbmdDb250
ZXh0IG9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnM7CiAjZW5kaWYgLy8gUExBVEZPUk0o
TUFDKQogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggOTk1MDkzMjJhMmJiZGE2MTljYzIzYTkyMDY0YTRjMzk2OWNhNWY0
Yi4uZWEwYzA1ODA0ZjM0ZjZkMzc3ODIyODI5N2YzYjcxYmNkOGQzY2Y1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTMzOSw2
ICs1MzM5LDcgQEAKIAkJRjQ0MkMzNTkyM0UzQUREMjAwNDk5NTgyIC8qIENvbXBvc2l0aW9uSGln
aGxpZ2h0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDQyQzM1NzIzRTNBQzUxMDA0OTk1ODIgLyogQ29tcG9zaXRpb25IaWdobGlnaHQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDQ2RURERjI2NURB
RkUzMDAzMURBOEYgLyogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ2RURERDI2NURBRTNGMDAzMURB
OEYgLyogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ0NkVERTEyNjVEQjFFNTAwMzFEQThGIC8q
IEltYWdlT3ZlcmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ2RURFMDI2NURCMUU1MDAzMURB
OEYgLyogSW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50aWZpZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNDQ2RURFODI2NURE
ODkwMDAzMURBOEYgLyogRGF0YURldGVjdG9yRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDZFREU3MjY1REQ4OTAwMDMxREE4RiAv
KiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUY0NEE1RjU5MUZFRDM4RjIwMDdGNTk0NCAvKiBMZWdhY3lO
U1Bhc3RlYm9hcmRUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ0QTVGNTcxRkVEMzgzMDAwN0Y1OTQ0IC8qIExlZ2FjeU5TUGFzdGVib2FyZFR5
cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RjQ0RUJCRDkxREI1RDIxNDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRFQkJEODFEQjVEMjE0MDAyNzczMzQg
LyogU3RhdGljUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlGNDU3NzVDRTI0MTQzN0Q1MDAyREYxQTAgLyogSW5saW5lUGF0aERhdGEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NTc3NUNEMjQx
NDM3RDUwMDJERjFBMCAvKiBJbmxpbmVQYXRoRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNjgxMCw2ICsxNjgxMSw3IEBACiAJCUY0NDJD
MzU3MjNFM0FDNTEwMDQ5OTU4MiAvKiBDb21wb3NpdGlvbkhpZ2hsaWdodC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb21wb3NpdGlvbkhpZ2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNDQ2RURERDI2NURBRTNGMDAzMURBOEYgLyogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQ2RURFMDI2NURCMUU1MDAzMURBOEYgLyogSW1hZ2VP
dmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1h
Z2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjQ0NkVERTcyNjVERDg5MDAwMzFEQThGIC8qIERhdGFEZXRlY3RvckVs
ZW1lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE1RjU3MUZFRDM4MzAwMDdGNTk0NCAvKiBM
ZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lOU1Bhc3RlYm9h
cmRUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRFQkJENjFEQjVEMUI2
MDAyNzczMzQgLyogU3RhdGljUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFN0YXRp
Y1JhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0RUJCRDgxREI1RDIx
NDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0YXRpY1JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTg5Myw2
ICsyMTg5NSw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUY0
NDZFREREMjY1REFFM0YwMDMxREE4RiAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0c1N0b3JhZ2UuaCAq
LywKKwkJCQlGNDQ2RURFNzI2NUREODkwMDAzMURBOEYgLyogRGF0YURldGVjdG9yRWxlbWVudElu
Zm8uaCAqLywKIAkJCQlGNDQ2RURFMDI2NURCMUU1MDAzMURBOEYgLyogSW1hZ2VPdmVybGF5RGF0
YURldGVjdGlvblJlc3VsdElkZW50aWZpZXIuaCAqLywKIAkJCQk0MTNFMDA3QjFEQjBFNzA3MDAy
MzQxRDIgLyogTWVtb3J5UmVsZWFzZUNvY29hLm1tICovLAogCQkJCUFENUEwQzIyMURFQ0EzN0Uw
MDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSAqLywKQEAgLTMyMjAwLDYgKzMy
MjAzLDcgQEAKIAkJCQlCRTIzNDgwRDE4QTk4NzE0MDBFNEI2RTggLyogRGF0YUN1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzUyMjdERjExQzNDNkRGMTAwRjVFRDU0IC8qIERhdGFEZXRlY3Rpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUY0NDZFRERGMjY1REFGRTMwMDMxREE4RiAvKiBEYXRhRGV0
ZWN0aW9uUmVzdWx0c1N0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0NDZFREU4MjY1REQ4
OTAwMDMxREE4RiAvKiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjRCMkE5MDkyNjUwMzBCQTAwOUU3Mjg2IC8qIERhdGFEZXRlY3RvckhpZ2hsaWdodC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM0QTUzMzUyNTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3Rv
clR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU1OEI0NUJBMjBBRDA3REQwMDk5MTAyNSAvKiBE
YXRhTGlzdEJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKaW5kZXggYjZkOTFhODMzMTdlMjIyYzljMmIxN2IxNjhjMzA2ODg5ZDQ2NmIxMy4u
NTBhNjJjMTM3OGIyNWRjOWZmMWIwZjg3ZjZlY2YwYjVkYTE5NWRkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCkBAIC0xMjEsNiArMTIxLDcgQEAgY2xhc3MgTWVkaWFQbGF5ZXJSZXF1
ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2s7CiBzdHJ1Y3QgQXBwSGlnaGxpZ2h0Owog
c3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0
czsKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsKIHN0cnVjdCBEYXRlVGltZUNob29z
ZXJQYXJhbWV0ZXJzOwogc3RydWN0IEdyYXBoaWNzRGV2aWNlQWRhcHRlcjsKIHN0cnVjdCBNb2Nr
V2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwpAQCAtNTAyLDYgKzUwMywxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0
cmluZyYsIGNvbnN0IEludFBvaW50JikgeyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0RF
VEVDVElPTikKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVz
dWx0KGNvbnN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiwgY29uc3QgSW50UG9pbnQmKSB7IH0K
KyNlbmRpZgorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgdmlydHVhbCB2b2lk
IGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhGcmFtZVNlbGVjdGlvbiYsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiwgY29uc3QgSW50UG9pbnQmKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVs
ZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIC8qaXNUZXh0T25seSovKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9EYXRhRGV0
ZWN0b3JFbGVtZW50SW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9EYXRhRGV0ZWN0
b3JFbGVtZW50SW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmNmE4ZDhiMmIwNzY4YWY3NTI3NDA4Y2RhYTYz
Njk1NTE3NTJkN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29h
L0RhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCisjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgRERTY2FubmVyUmVzdWx0OworCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEludFJlY3Q7CisKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVt
ZW50SW5mbyB7CisgICAgUmV0YWluUHRyPEREU2Nhbm5lclJlc3VsdD4gcmVzdWx0OworICAgIElu
dFJlY3QgZWxlbWVudEJvdW5kczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCmluZGV4IGIxMTVmZmZiMzU3OTA3
NDEwZTRkMzE4ZWI0MjBlNjY5OTA0M2M0MzYuLmU4NGVkZjhkMTM2OWE2ZTRmMGMwNTk5MjZkOTUx
MTRiNTE0OTgwYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3Zl
cmxheUNvbnRyb2xsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvSW1hZ2VP
dmVybGF5Q29udHJvbGxlck1hYy5tbQpAQCAtMjksOSArMjksMTIgQEAKICNpZiBQTEFURk9STShN
QUMpCiAKICNpbXBvcnQgIkRhdGFEZXRlY3Rpb24uaCIKKyNpbXBvcnQgIkRhdGFEZXRlY3Rpb25S
ZXN1bHRzU3RvcmFnZS5oIgorI2ltcG9ydCAiRGF0YURldGVjdG9yRWxlbWVudEluZm8uaCIKICNp
bXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiSFRNTEVsZW1lbnQuaCIKICNpbXBvcnQgIkhU
TUxOYW1lcy5oIgorI2ltcG9ydCAiSW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50
aWZpZXIuaCIKICNpbXBvcnQgIkludFJlY3QuaCIKICNpbXBvcnQgIlBhZ2UuaCIKICNpbXBvcnQg
IlBsYXRmb3JtTW91c2VFdmVudC5oIgpAQCAtMTQ3LDggKzE1MCwyNyBAQCBib29sIEltYWdlT3Zl
cmxheUNvbnRyb2xsZXI6OmhhbmRsZURhdGFEZXRlY3RvckFjdGlvbihjb25zdCBIVE1MRWxlbWVu
dCYgZWxlbWVudAogICAgIGlmICghZnJhbWVWaWV3KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICAvLyBGSVhNRTogQ2FsbCBvdXQgdG8gdGhlIGNsaWVudCBsYXllciB0byBoYW5kbGUgdGhl
IGNsaWNrLgotICAgIFVOVVNFRF9QQVJBTShsb2NhdGlvbkluQ29udGVudHMpOworICAgIGF1dG8g
aWRlbnRpZmllclZhbHVlID0gcGFyc2VJbnRlZ2VyPHVpbnQ2NF90PihlbGVtZW50LmF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp4X2FwcGxlX2RhdGFfZGV0ZWN0b3Jz
X3Jlc3VsdEF0dHIpKTsKKyAgICBpZiAoIWlkZW50aWZpZXJWYWx1ZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgYXV0byBpZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8SW1h
Z2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50aWZpZXJUeXBlPigqaWRlbnRpZmllclZh
bHVlKTsKKyAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBhdXRvKiBkYXRhRGV0ZWN0aW9uUmVzdWx0cyA9IGZyYW1lLT5kYXRhRGV0ZWN0
aW9uUmVzdWx0c0lmRXhpc3RzKCk7CisgICAgaWYgKCFkYXRhRGV0ZWN0aW9uUmVzdWx0cykKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBkYXRhRGV0ZWN0aW9uUmVzdWx0ID0gcmV0
YWluUHRyKGRhdGFEZXRlY3Rpb25SZXN1bHRzLT5pbWFnZU92ZXJsYXlEYXRhRGV0ZWN0aW9uUmVz
dWx0KGlkZW50aWZpZXIpKTsKKyAgICBpZiAoIWRhdGFEZXRlY3Rpb25SZXN1bHQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJlcigp
OworICAgIGlmICghcmVuZGVyZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fcGFn
ZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KHsg
V1RGTW92ZShkYXRhRGV0ZWN0aW9uUmVzdWx0KSwgZnJhbWVWaWV3LT5jb250ZW50c1RvV2luZG93
KHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpKSB9LCBmcmFtZVZpZXctPmNvbnRl
bnRzVG9XaW5kb3cobG9jYXRpb25JbkNvbnRlbnRzKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENv
ZGVyc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzQ29jb2EubW0KaW5kZXggMmI2NjVlZWQxNTk2N2Y5NzBmZTZmNDlhOGM3OWVlODc5MmQw
ZTgyZi4uMGI4NTg5YTkzZDgzZjA1OWVjOTJmOTczMmJjMmFjYWEwNzA3YjViMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q29jb2EubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ29jb2Eu
aCIKICNpbXBvcnQgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F0dHJp
YnV0ZWRTdHJpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRGF0YURldGVjdG9yRWxlbWVudEluZm8u
aD4KICNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Gb250Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CkBAIC02MTQs
NiArNjE1LDMwIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+
OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKK3ZvaWQgQXJndW1lbnRDb2RlcjxEYXRh
RGV0ZWN0b3JFbGVtZW50SW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEYXRh
RGV0ZWN0b3JFbGVtZW50SW5mbyYgaW5mbykKK3sKKyAgICBlbmNvZGVyIDw8IGluZm8ucmVzdWx0
LmdldCgpOworICAgIGVuY29kZXIgPDwgaW5mby5lbGVtZW50Qm91bmRzOworfQorCitPcHRpb25h
bDxEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbz4gQXJndW1lbnRDb2RlcjxEYXRhRGV0ZWN0b3JFbGVt
ZW50SW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGF1dG8gcmVzdWx0ID0g
SVBDOjpkZWNvZGU8RERTY2FubmVyUmVzdWx0PihkZWNvZGVyLCBQQUw6OmdldEREU2Nhbm5lclJl
c3VsdENsYXNzKCkpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgT3B0aW9uYWw8SW50UmVjdD4gZWxlbWVudEJvdW5kczsKKyAgICBkZWNvZGVy
ID4+IGVsZW1lbnRCb3VuZHM7CisgICAgaWYgKCFlbGVtZW50Qm91bmRzKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIG1ha2VPcHRpb25hbDxEYXRhRGV0ZWN0b3JF
bGVtZW50SW5mbz4oeyBXVEZNb3ZlKCpyZXN1bHQpLCBXVEZNb3ZlKCplbGVtZW50Qm91bmRzKSB9
KTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwogI2lmIEVOQUJMRShX
SVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TWVk
aWFQbGF5YmFja1RhcmdldENvbnRleHQ+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggOTYzZmI0OGM5
YTA5OTk4OTVhYWJmOWZlMjJjYmYzZjQ3NjFiMDJmOC4uYWIwYzI2MzYzMjczZmEyMTQwZWE2NTlj
ODZjZmM1MDhkMzI4ZGJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsK
IHN0cnVjdCBDYWNoZVF1ZXJ5T3B0aW9uczsKIHN0cnVjdCBDaGFyYWN0ZXJSYW5nZTsKIHN0cnVj
dCBDb21wb3NpdGlvblVuZGVybGluZTsKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsK
IHN0cnVjdCBEaWN0YXRpb25BbHRlcm5hdGl2ZTsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZv
Owogc3RydWN0IEV2ZW50VHJhY2tpbmdSZWdpb25zOwpAQCAtODA0LDYgKzgwNSwxNSBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNjcmlwdEJ1ZmZlcj4gewogICAg
IHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRCdWZmZXI+IGRlY29kZShEZWNvZGVyJik7
CiB9OwogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCit0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvPiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVt
ZW50SW5mbyYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVt
ZW50SW5mbz4gZGVjb2RlKERlY29kZXImKTsKK307CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQSkKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
Q0RNSW5zdGFuY2VTZXNzaW9uOjpNZXNzYWdlPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246Ok1lc3NhZ2UmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dAppbmRleCBiMjY1OTliYThlNzA2NDY1NGI0OGI0NTg4ODYwZjk5ODg3
M2ExY2IwLi5iMTQ4MDEzYzkwNDY1ZjkzMmZjNmFkOTRiMWU3YWY5NDk0MTIzOGM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CkBAIC01MjUsNiArNTI1LDcgQEAgVUlQcm9jZXNzL21hYy9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCiBVSVByb2Nlc3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9u
UHJldmlld0NvbnRyb2xsZXIubW0KIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLm1tCiBVSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCitVSVByb2Nlc3MvbWFj
L1dLUmV2ZWFsSXRlbVByZXNlbnRlci5tbQogVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNl
UGlja2VyRGVsZWdhdGUubW0KIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCiBV
SVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCAyZDEw
M2YwZWQwYTdkMjYxNDFlYzJmMzNiMmJmNjY1MGJjOGM1ZTJmLi5iMTZkNWYxM2JhOTZmNGZkZTAx
MDkyMjE0Zjc2NWUxNTE4ZDhmMTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtOTUsMTAgKzk1LDE3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXREYXRhRGV0ZWN0aW9uUmVzdWx0KGNv
bnN0IERhdGFEZXRlY3Rpb25SZXN1bHQmIGRhdGFEZXRlY3Rpb25SZXN1bHQpCiB7CiAgICAgbV9k
YXRhRGV0ZWN0aW9uUmVzdWx0cyA9IGRhdGFEZXRlY3Rpb25SZXN1bHQucmVzdWx0czsKIH0KKwor
dm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25z
dCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYgaW5mbywgY29uc3QgSW50UG9pbnQmIGNsaWNrTG9j
YXRpb24pCit7CisgICAgcGFnZUNsaWVudCgpLmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJl
c3VsdChpbmZvLCBjbGlja0xvY2F0aW9uKTsKK30KKwogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYgc2VhcmNoSXRlbXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBiZDhkODJjNDE1NzMxMTQ2NGY0ZWM1NWQw
ZTE0OWRmZTg5ODcwYmExLi43MmY1MDE3ZWQwNDZkOGU0ZDE5YjY3NGU1MmI3Y2JiYTI3NzE0OTBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTYx
LDYgKzYxLDcgQEAgT0JKQ19DTEFTUyBXS0RPTVBhc3RlTWVudURlbGVnYXRlOwogT0JKQ19DTEFT
UyBXS0VkaXRvclVuZG9UYXJnZXQ7CiBPQkpDX0NMQVNTIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXI7CiBPQkpDX0NMQVNTIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcjsKK09CSkNfQ0xB
U1MgV0tSZXZlYWxJdGVtUHJlc2VudGVyOwogT0JKQ19DTEFTUyBXS1NhZmVCcm93c2luZ1dhcm5p
bmc7CiBPQkpDX0NMQVNTIFdLU2hhcmVTaGVldDsKIE9CSkNfQ0xBU1MgV0tWaWV3TGF5b3V0U3Ry
YXRlZ3k7CkBAIC05Niw2ICs5Nyw3IEBAIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlOwogY2xhc3MgSW50UG9p
bnQ7CitzdHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm87CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0
aFBhcnNlZFVSTDsKIAogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJM
RShDT05URVhUX01FTlVTKQpAQCAtMTg5LDYgKzE5MSw3IEBAIHB1YmxpYzoKICAgICBOU1dpbmRv
dyAqd2luZG93KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVybiBtX3BhZ2Uu
Z2V0KCk7IH0KKyAgICBOU1ZpZXcgKnZpZXcoKSBjb25zdCB7IHJldHVybiBtX3ZpZXcuZ2V0QXV0
b3JlbGVhc2VkKCk7IH0KIAogICAgIHZvaWQgcHJvY2Vzc1dpbGxTd2FwKCk7CiAgICAgdm9pZCBw
cm9jZXNzRGlkRXhpdCgpOwpAQCAtNjY5LDYgKzY3MiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRNZWRpYVNlc3Npb25Db29yZGluYXRvckZvclRlc3RpbmcoTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eVByaXZhdGUqKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQor
ICAgIHZvaWQgaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6
OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKKyNl
bmRpZgorCisjaWYgRU5BQkxFKFJFVkVBTCkKKyAgICB2b2lkIGRpZEZpbmlzaFByZXNlbnRhdGlv
bihXS1JldmVhbEl0ZW1QcmVzZW50ZXIgKik7CisjZW5kaWYKKwogcHJpdmF0ZToKICNpZiBIQVZF
KFRPVUNIX0JBUikKICAgICB2b2lkIHNldFVwVGV4dFRvdWNoQmFyKE5TVG91Y2hCYXIgKik7CkBA
IC04ODUsNiArODk2LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHlQcml2YXRlPiBtX2Nvb3JkaW5hdG9yRm9yVGVzdGluZzsKICNlbmRpZgogCisj
aWYgRU5BQkxFKFJFVkVBTCkKKyAgICBSZXRhaW5QdHI8V0tSZXZlYWxJdGVtUHJlc2VudGVyPiBt
X3JldmVhbEl0ZW1QcmVzZW50ZXI7CisjZW5kaWYKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViVmlld0ltcGxBZGRpdGlvbnNBZnRlci5o
PgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CmluZGV4IDg4ODgyMTU3YzBiMTc2YzY1YTE2ZjY4YTU4OWQ3MGJkY2FmNGRhMTIuLjNhY2Y0YTUz
Mzc1ODRiNjQ4YTYwOTIxODBiZGE0MDU4ODdhNzE1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC02NSw2ICs2NSw3IEBACiAjaW1wb3J0ICJX
S05TVVJMRXh0cmFzLmgiCiAjaW1wb3J0ICJXS1BERkhVRFZpZXcuaCIKICNpbXBvcnQgIldLUHJp
bnRpbmdWaWV3LmgiCisjaW1wb3J0ICJXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCIKICNpbXBvcnQg
IldLU2FmZUJyb3dzaW5nV2FybmluZy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLU2hhcmVTaGVldC5o
PgogI2ltcG9ydCAiV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmgiCkBAIC04OSw2ICs5MCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9y
U2VyaWFsaXphdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db21wb3NpdGlvbkhpZ2hsaWdodC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oPgogI2ltcG9ydCA8
V2ViQ29yZS9EZXN0aW5hdGlvbkNvbG9yU3BhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGljdGlv
bmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5oPgpAQCAtMTQ0LDYgKzE0
Niw4IEBACiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGUuaCIK
ICNlbmRpZgogCisjaW1wb3J0IDxwYWwvY29jb2EvUmV2ZWFsU29mdExpbmsuaD4KKwogI2lmIEhB
VkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpCiAjaW1wb3J0IDxUcmFuc2xhdGlvblVJU2Vydmlj
ZXMvTFRVSVRyYW5zbGF0aW9uVmlld0NvbnRyb2xsZXIuaD4KIApAQCAtNTc1MSw2ICs1NzU1LDMy
IEBAIHZvaWQgV2ViVmlld0ltcGw6OmVuZFByZXZpZXdQYW5lbENvbnRyb2woUUxQcmV2aWV3UGFu
ZWwgKnBhbmVsKQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKK3Zv
aWQgV2ViVmlld0ltcGw6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBE
YXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYgaW5mbywgY29uc3QgSW50UG9pbnQmIGNsaWNrTG9jYXRp
b24pCit7CisjaWYgRU5BQkxFKFJFVkVBTCkKKyAgICBtX3JldmVhbEl0ZW1QcmVzZW50ZXIgPSBh
ZG9wdE5TKFtbV0tSZXZlYWxJdGVtUHJlc2VudGVyIGFsbG9jXSBpbml0V2l0aFdlYlZpZXdJbXBs
Oip0aGlzIGl0ZW06YWRvcHROUyhbUEFMOjphbGxvY1JWSXRlbUluc3RhbmNlKCkgaW5pdFdpdGhE
RFJlc3VsdDppbmZvLnJlc3VsdC5nZXQoKV0pLmdldCgpIGZyYW1lOmluZm8uZWxlbWVudEJvdW5k
cyBtZW51TG9jYXRpb246Y2xpY2tMb2NhdGlvbl0pOworICAgIFttX3JldmVhbEl0ZW1QcmVzZW50
ZXIgc2V0U2hvdWxkVXNlRGVmYXVsdEhpZ2hsaWdodDpOT107CisgICAgW21fcmV2ZWFsSXRlbVBy
ZXNlbnRlciBzaG93Q29udGV4dE1lbnVdOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaW5mbyk7
CisgICAgVU5VU0VEX1BBUkFNKGNsaWNrTG9jYXRpb24pOworI2VuZGlmCit9CisKKyNlbmRpZiAv
LyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKKyNpZiBFTkFCTEUoUkVWRUFMKQorCit2b2lkIFdl
YlZpZXdJbXBsOjpkaWRGaW5pc2hQcmVzZW50YXRpb24oV0tSZXZlYWxJdGVtUHJlc2VudGVyICpw
cmVzZW50ZXIpCit7CisgICAgaWYgKHByZXNlbnRlciA9PSBtX3JldmVhbEl0ZW1QcmVzZW50ZXIp
CisgICAgICAgIG1fcmV2ZWFsSXRlbVByZXNlbnRlciA9IG5pbDsKK30KKworI2VuZGlmIC8vIEVO
QUJMRShSRVZFQUwpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDdmOTMzOGMyYTFi
M2U3YjhhMzFmMGQ0NTllNGIxM2Q1NGY0MmUxZDcuLjAxM2Y1MDc5NmJhNDU2Y2JmMWI5OGZjMzJj
NzIxYjhhNWU5NTE3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTEx
Miw2ICsxMTIsNyBAQCBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24g
OiB1aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsK
IAogc3RydWN0IEFwcEhpZ2hsaWdodDsKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsK
IHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvOwogc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwog
c3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKQEAgLTYyNiw2ICs2MjcsMTAgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBjYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0
IFdlYkNvcmU6OlRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvJikgPSAwOwogI2VuZGlmCisKKyNp
ZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUNsaWNrRm9y
RGF0YURldGVjdGlvblJlc3VsdChjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5m
byYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9CisjZW5kaWYKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2
NzZjN2MzMDBjNDQ4NjBmYzgyMjM2YmM2NGFmNmY1MDRiODM1YWU1Li40ODAzMmQwZDIyZmMzZjk2
MTRlMTNkMTU0NWJlNWNmYjM4OTVjODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMjc4LDYgKzI3OCw3IEBAIHN0cnVjdCBDb21wb3NpdGlvbkhpZ2hsaWdodDsK
IHN0cnVjdCBDb250YWN0SW5mbzsKIHN0cnVjdCBDb250YWN0c1JlcXVlc3REYXRhOwogc3RydWN0
IENvbnRlbnRSdWxlTGlzdFJlc3VsdHM7CitzdHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm87
CiBzdHJ1Y3QgRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb247CiBzdHJ1Y3QgRGF0ZVRpbWVD
aG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvOwpAQCAtODc1LDYg
Kzg3Niw3IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogI2lmIEVO
QUJMRShEQVRBX0RFVEVDVElPTikKICAgICB2b2lkIHNldERhdGFEZXRlY3Rpb25SZXN1bHQoY29u
c3QgRGF0YURldGVjdGlvblJlc3VsdCYpOworICAgIHZvaWQgaGFuZGxlQ2xpY2tGb3JEYXRhRGV0
ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICNlbmRpZgogICAgIHZvaWQgZGlkQ29tbWl0TGF5ZXJU
cmVlKGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKICAgICB2b2lk
IGxheWVyVHJlZUNvbW1pdENvbXBsZXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjc5NTQ1MTIxNGRhZTBlNTlkNDQwZjRh
ZTliNWVmYzFmZWYyNmIzZC4uYjM0MmMwZTY5NjRlMWMxZmEzYjMzYjU2OTg3NWEyMjIwNDkwOTVk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMTc3LDYgKzE3Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5k
aWYKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgU2V0RGF0YURldGVjdGlvblJlc3Vs
dChzdHJ1Y3QgV2ViS2l0OjpEYXRhRGV0ZWN0aW9uUmVzdWx0IGRhdGFEZXRlY3Rpb25SZXN1bHQp
CisgICAgSGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KHN0cnVjdCBXZWJDb3JlOjpE
YXRhRGV0ZWN0b3JFbGVtZW50SW5mbyBpbmZvLCBXZWJDb3JlOjpJbnRQb2ludCBsb2NhdGlvbikK
ICNlbmRpZgogCiAgICAgUGFnZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKGRvdWJsZSBzY2FsZUZhY3Rv
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgK
aW5kZXggNjM0ZDcxM2RkMWZjYjA3OGRkOWQ2ODU4NDllNWEyYTc5ZmEwOGExYS4uOWQ0YTAxMzE0
ODk0M2Y5YmQzOWFiN2Q3MmQyODNjMDM4ZDM0YzM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTI4Nyw2ICsyODcsMTAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oY29uc3QgV2ViQ29y
ZTo6VHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8mKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYg
RU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIHZvaWQgaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0
aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmKSBmaW5hbDsKKyNlbmRpZgorCiAgICAgTlNWaWV3ICptX3ZpZXc7
CiAgICAgV2Vha1B0cjxXZWJWaWV3SW1wbD4gbV9pbXBsOwogI2lmIFVTRShBVVRPQ09SUkVDVElP
Tl9QQU5FTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5tbQppbmRleCAzZGU2MDE3MGY2MDUzNDVmODJmN2U0NGUyMjNmMjMxYjEzOWMwZjQ4Li4z
MzY0MmMyZjM1MjNmNmEwY2FmYTEzNzMzZGNhNjk3ZTRjNTUyZDQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC0xMDMxLDYgKzEw
MzEsMTUgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlv
bihjb25zdCBUcmFuc2xhdGlvbkNvbnRleHRNZW51SW4KIAogI2VuZGlmIC8vIEhBVkUoVFJBTlNM
QVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQogCisjaWYgRU5BQkxF
KERBVEFfREVURUNUSU9OKQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVDbGlja0ZvckRh
dGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURldGVjdG9yRWxlbWVudEluZm8mIGluZm8sIGNv
bnN0IEludFBvaW50JiBjbGlja0xvY2F0aW9uKQoreworICAgIG1faW1wbC0+aGFuZGxlQ2xpY2tG
b3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGluZm8sIGNsaWNrTG9jYXRpb24pOworfQorCisjZW5kaWYK
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDBjMzE4ZTViMjIzM2MzZmFjZDBjZjcyOGRhN2M2ZTcwOTgwNmM5YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1Q
cmVzZW50ZXIuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShSRVZFQUwpCisKKyNpbXBvcnQgPENvcmVHcmFw
aGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgor
CitAY2xhc3MgUlZJdGVtOworCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlZpZXdJbXBs
OworfQorCitAaW50ZXJmYWNlIFdLUmV2ZWFsSXRlbVByZXNlbnRlciA6IE5TT2JqZWN0CisKKy0g
KGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3
ZWJWaWV3SW1wbCBpdGVtOihSVkl0ZW0gKilpdGVtIGZyYW1lOihDR1JlY3QpZnJhbWVJblZpZXcg
bWVudUxvY2F0aW9uOihDR1BvaW50KW1lbnVMb2NhdGlvbkluVmlldzsKKy0gKHZvaWQpc2hvd0Nv
bnRleHRNZW51OworCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzaG91bGRVc2VEZWZhdWx0
SGlnaGxpZ2h0OworCitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIEVOQUJMRShS
RVZFQUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJ
dGVtUHJlc2VudGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRl
bVByZXNlbnRlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2MxN2Y4MWU4MjVhM2IwNjA0ZWUxMjZiYjNmOTRj
YzQzMGExNzk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLUmV2ZWFsSXRlbVByZXNlbnRlci5tbQpAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLUmV2ZWFsSXRl
bVByZXNlbnRlci5oIgorCisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoUkVWRUFMKQorCisj
aW1wb3J0ICJXZWJWaWV3SW1wbC5oIgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9y
dCA8d3RmL1dlYWtQdHIuaD4KKyNpbXBvcnQgPHBhbC9jb2NvYS9SZXZlYWxTb2Z0TGluay5oPgor
CitAaW50ZXJmYWNlIFdLUmV2ZWFsSXRlbVByZXNlbnRlciAoKSA8UlZQcmVzZW50ZXJIaWdobGln
aHREZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLUmV2ZWFsSXRlbVByZXNlbnRl
ciB7CisgICAgV2Vha1B0cjxXZWJLaXQ6OldlYlZpZXdJbXBsPiBfaW1wbDsKKyAgICBSZXRhaW5Q
dHI8UlZQcmVzZW50ZXI+IF9wcmVzZW50ZXI7CisgICAgUmV0YWluUHRyPFJWUHJlc2VudGluZ0Nv
bnRleHQ+IF9wcmVzZW50aW5nQ29udGV4dDsKKyAgICBSZXRhaW5QdHI8UlZJdGVtPiBfaXRlbTsK
KyAgICBDR1JlY3QgX2ZyYW1lSW5WaWV3OworICAgIENHUG9pbnQgX21lbnVMb2NhdGlvbkluVmll
dzsKKyAgICBCT09MIF9pc0hpZ2hsaWdodGluZ0l0ZW07Cit9CisKKy0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFdlYlZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJilpbXBsIGl0ZW06KFJWSXRl
bSAqKWl0ZW0gZnJhbWU6KENHUmVjdClmcmFtZUluVmlldyBtZW51TG9jYXRpb246KENHUG9pbnQp
bWVudUxvY2F0aW9uSW5WaWV3Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisg
ICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfaW1wbCA9IG1ha2VXZWFrUHRyKGltcGwpOworICAg
IF9wcmVzZW50ZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVzZW50ZXJJbnN0YW5jZSgpIGlu
aXRdKTsKKyAgICBfcHJlc2VudGluZ0NvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVz
ZW50aW5nQ29udGV4dEluc3RhbmNlKCkgaW5pdFdpdGhQb2ludGVyTG9jYXRpb25JblZpZXc6bWVu
dUxvY2F0aW9uSW5WaWV3IGluVmlldzppbXBsLnZpZXcoKSBoaWdobGlnaHREZWxlZ2F0ZTpzZWxm
XSk7CisgICAgX2l0ZW0gPSBpdGVtOworICAgIF9mcmFtZUluVmlldyA9IGZyYW1lSW5WaWV3Owor
ICAgIF9tZW51TG9jYXRpb25JblZpZXcgPSBtZW51TG9jYXRpb25JblZpZXc7CisgICAgcmV0dXJu
IHNlbGY7Cit9CisKKy0gKHZvaWQpc2hvd0NvbnRleHRNZW51Cit7CisgICAgaWYgKCFfaW1wbCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB2aWV3ID0gX2ltcGwtPnZpZXcoKTsKKyAgICBp
ZiAoIXZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbWVudUl0ZW1zID0gcmV0YWlu
UHRyKFtfcHJlc2VudGVyIG1lbnVJdGVtc0Zvckl0ZW06X2l0ZW0uZ2V0KCkgZG9jdW1lbnRDb250
ZXh0Om5pbCBwcmVzZW50aW5nQ29udGV4dDpfcHJlc2VudGluZ0NvbnRleHQuZ2V0KCkgb3B0aW9u
czpuaWxdKTsKKyAgICBpZiAoIVttZW51SXRlbXMgY291bnRdKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIG1lbnUgPSBhZG9wdE5TKFtbTlNNZW51IGFsbG9jXSBpbml0V2l0aFRpdGxlOmVt
cHR5U3RyaW5nKCldKTsKKyAgICBbbWVudSBzZXRBdXRvZW5hYmxlc0l0ZW1zOk5PXTsKKyAgICBb
bWVudSBzZXRJdGVtQXJyYXk6bWVudUl0ZW1zLmdldCgpXTsKKworICAgIGF1dG8gY2xpY2tMb2Nh
dGlvbkluV2luZG93ID0gW3ZpZXcgY29udmVydFBvaW50Ol9tZW51TG9jYXRpb25JblZpZXcgdG9W
aWV3Om5pbF07CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrTG9jYXRpb25JbldpbmRv
dyBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOnZpZXcud2luZG93Lndp
bmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6
MV07CisgICAgW05TTWVudSBwb3BVcENvbnRleHRNZW51Om1lbnUuZ2V0KCkgd2l0aEV2ZW50OmV2
ZW50IGZvclZpZXc6dmlld107CisKKyAgICBbc2VsZiBfY2FsbERpZEZpbmlzaFByZXNlbnRhdGlv
bklmTmVlZGVkXTsKK30KKworLSAodm9pZClfY2FsbERpZEZpbmlzaFByZXNlbnRhdGlvbklmTmVl
ZGVkCit7CisgICAgaWYgKCFfaW1wbCB8fCBfaXNIaWdobGlnaHRpbmdJdGVtKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBfaW1wbC0+ZGlkRmluaXNoUHJlc2VudGF0aW9uKHNlbGYpOworfQorCisj
cHJhZ21hIG1hcmsgLSBSVlByZXNlbnRlckhpZ2hsaWdodERlbGVnYXRlCisKKy0gKE5TQXJyYXk8
TlNWYWx1ZSAqPiAqKXJldmVhbENvbnRleHQ6KFJWUHJlc2VudGluZ0NvbnRleHQgKiljb250ZXh0
IHJlY3RzRm9ySXRlbTooUlZJdGVtICopaXRlbQoreworICAgIHJldHVybiBAWyBbTlNWYWx1ZSB2
YWx1ZVdpdGhSZWN0Ol9mcmFtZUluVmlld10gXTsKK30KKworLSAoQk9PTClyZXZlYWxDb250ZXh0
OihSVlByZXNlbnRpbmdDb250ZXh0ICopY29udGV4dCBzaG91bGRVc2VEZWZhdWx0SGlnaGxpZ2h0
Rm9ySXRlbTooUlZJdGVtICopaXRlbQoreworICAgIHJldHVybiBzZWxmLnNob3VsZFVzZURlZmF1
bHRIaWdobGlnaHQ7Cit9CisKKy0gKHZvaWQpcmV2ZWFsQ29udGV4dDooUlZQcmVzZW50aW5nQ29u
dGV4dCAqKWNvbnRleHQgc3RhcnRIaWdobGlnaHRpbmdJdGVtOihSVkl0ZW0gKilpdGVtCit7Cisg
ICAgX2lzSGlnaGxpZ2h0aW5nSXRlbSA9IFlFUzsKK30KKworLSAodm9pZClyZXZlYWxDb250ZXh0
OihSVlByZXNlbnRpbmdDb250ZXh0ICopY29udGV4dCBzdG9wSGlnaGxpZ2h0aW5nSXRlbTooUlZJ
dGVtICopaXRlbQoreworICAgIF9pc0hpZ2hsaWdodGluZ0l0ZW0gPSBOTzsKKworICAgIFtzZWxm
IF9jYWxsRGlkRmluaXNoUHJlc2VudGF0aW9uSWZOZWVkZWRdOworfQorCitAZW5kCisKKyNlbmRp
ZiAvLyBQTEFURk9STShNQUMpICYmIEVOQUJMRShSRVZFQUwpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4Mzk5OWU1ZjMyOGVjMTQ3ZWY5
ZmY0ZjUwM2E0YmU2ZGQwZThmODc4Li4zMTk3OTNlNzY5NmM4MjYzNWYzOTYxZjI3ZmU2OTBkZjUy
MzRmMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIwMjksNiArMjAyOSw3IEBACiAJCUY0ODU3MEEzMjY0NEJFQzUwMEMwNUY3MSAv
KiBUaW1lb3V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDg1NzBBMjI2NDRCRUM0MDBDMDVGNzEgLyogVGltZW91dC5oICovOyB9OwogCQlGNDhEMkE4
NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE4NDIxNTgzQTAyMDBDNjc1MkIgLyogQXBwS2l0
U1BJLmggKi87IH07CiAJCUY0OTZBNDMxMUY1OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVy
YWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0OTZBNDJGMUY1OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUu
aCAqLzsgfTsKKwkJRjQ5NzRFNzYyNjVFQ0JCQzAwQjQ5QjhDIC8qIFdLUmV2ZWFsSXRlbVByZXNl
bnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0
NkVERUYyNjVFQjJCMDAwMzFEQThGIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oICovOyB9Owog
CQlGNDk3NUNGMjI2MjRCODBBMDAzQzYyNkUgLyogV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQ5NzVDRjEyNjI0QjgwQTAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRy
b2xsZXIuaCAqLzsgfTsKIAkJRjRBNkQ2QkMyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3Bs
YXlMaXN0SGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEE2RDZCQjI1NENBM0U5MDBCNjVGQUEgLyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUu
aCAqLzsgfTsKIAkJRjRCQTMzRjIyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VFeHRyYWN0aW9u
R2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyLmggKi87IH07CkBAIC01OTcwLDYgKzU5NzEsOCBAQAogCQlGNDQyOTE5
MTFGQTU5MTA3MDAyQ0M5M0UgLyogX1dLQXR0YWNobWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tB
dHRhY2htZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NDI5MTkzMUZBNTkz
MTEwMDJDQzkzRSAvKiBfV0tBdHRhY2htZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dL
QXR0YWNobWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0MjkxOTUxRkE1
OTQyQTAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBf
V0tBdHRhY2htZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ0
NkVERUYyNjVFQjJCMDAwMzFEQThGIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjQ0NkVERjEyNjVFQjNCNjAwMzFEQThGIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRlci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLUmV2ZWFsSXRlbVByZXNlbnRlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0ODE1NjIyMzg3ODIwMDAwOTgyNjU3IC8qIFdLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplci5oOyBwYXRoID0gaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0ODE1NjMyMzg3ODIwMDAwOTgyNjU3
IC8qIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0gaW9zL1dLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NERG
RUIwMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkljb25VdGlsaXRpZXMuaDsgcGF0aCA9IGlvcy9XZWJJY29u
VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDg1MCw2ICsxMDg1
Myw4IEBACiAJCQkJOTMyMUQ1ODcxQTM4RUU3NDAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlci5tbSAqLywKIAkJCQkwRkNCNEU1QzE4QkJFM0Q5MDAwRkNGQzkgLyogV0tQcmlu
dGluZ1ZpZXcuaCAqLywKIAkJCQkwRkNCNEU1RDE4QkJFM0Q5MDAwRkNGQzkgLyogV0tQcmludGlu
Z1ZpZXcubW0gKi8sCisJCQkJRjQ0NkVERUYyNjVFQjJCMDAwMzFEQThGIC8qIFdLUmV2ZWFsSXRl
bVByZXNlbnRlci5oICovLAorCQkJCUY0NDZFREYxMjY1RUIzQjYwMDMxREE4RiAvKiBXS1JldmVh
bEl0ZW1QcmVzZW50ZXIubW0gKi8sCiAJCQkJNTEzRTQ2MkIxQUQ4Mzc1NjAwMTYyMzRBIC8qIFdL
U2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5oICovLAogCQkJCTUxM0U0NjJDMUFEODM3NTYw
MDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0gKi8sCiAJCQkJMkRE
NjdBMzMxQkQ4NjEwNjAwNTNCMjUxIC8qIFdLVGV4dEZpbmRlckNsaWVudC5oICovLApAQCAtMTI5
MDIsNiArMTI5MDcsNyBAQAogCQkJCTQ5OTAwMDI0MjREMjRDMjkwMDA0OUNCNCAvKiBXS1JlbmRl
ck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMzNjc2M0IxMzBDOTlEQzAwNkM5REUyIC8q
IFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEE1MDE1MTE3
NjVGNTYwMDc1NzU3MyAvKiBXS1JldGFpblB0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ5NzRF
NzYyNjVFQ0JCQzAwQjQ5QjhDIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNBMjZEODEyMTdBQkQ1QjAwRjk3QTM1IC8qIFdLU2FmZUJyb3dzaW5nV2Fybmlu
Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3RTM3NzkxOEU0QTRGRTAwM0QwRkZGIC8qIFdLU2Ny
aXB0TWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3RTM3NzUxOEU0QTMzQTAwM0QwRkZG
IC8qIFdLU2NyaXB0TWVzc2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAppbmRleCA0ZTdiOTgxZTEyMTFiZmYyOWU3ZDczMDJhMjBkNTNjYjdiZmQ3M2E1Li5j
NTJkZWNmYTRiM2I3YmI1OWY4NzhhZjFhYTgwOTk1MWMxYTdlOTc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtMTI5NCw2ICsxMjk0LDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYW5k
bGVUZWxlcGhvbmVOdW1iZXJDbGljayhjb25zdCBTdHJpbmcmIG51bWJlciwgY29uc3QgSW50CiAK
ICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IERhdGFEZXRlY3Rv
ckVsZW1lbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRQb2ludCYgY2xpY2tMb2NhdGlvbikKK3sKKyAg
ICBtX3BhZ2UuaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGluZm8sIGNsaWNrTG9j
YXRpb24pOworfQorCisjZW5kaWYKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogCiB2
b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKEZyYW1lU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJz
LCBjb25zdCBJbnRQb2ludCYgcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzI5Y2NiMDc1
YzY4ZGJlMGJjNzlhNTBmNTlmNmRkY2Y4NTg3OTM2Ny4uODc4YTU4NmI5NzRmODQxOTM3NGVmMmZj
M2JmODRkZDQ1OWE5NzM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzY2LDYgKzM2NiwxMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlVGVsZXBob25lTnVtYmVyQ2xpY2soY29uc3QgU3Ry
aW5nJiBudW1iZXIsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgZmluYWw7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICB2b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURl
dGVjdGlvblJlc3VsdChjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JikgZmluYWw7CisjZW5kaWYKKwogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQogICAgIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRlbGVwaG9uZU51bWJl
cnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgZmluYWw7CiAgICAgYm9vbCBoYXNSZWxldmFu
dFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0T25seSkgY29uc3QgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0KaW5kZXggZjdiZGI5NTcwNGRjNDU2MDIzNTkyNjM4MWRmNjA0ZjAyODBkMDEwZC4uYjczYTBk
ODlkY2QyY2U4ZDFlZTFjOGQ2OTQ2MDkwZGFkNGQ1YzFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQpAQCAtNDQ5
LDYgKzQ0OSwxNSBAQCBQbGF0Zm9ybVhSU3lzdGVtUHJveHkmIFdlYlBhZ2U6OnhyU3lzdGVtUHJv
eHkoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKK3ZvaWQgV2Vi
UGFnZTo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IERhdGFEZXRlY3Rv
ckVsZW1lbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRQb2ludCYgY2xpY2tMb2NhdGlvbikKK3sKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlv
blJlc3VsdChpbmZvLCBjbGlja0xvY2F0aW9uKSk7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDNjYjk3ZTNjYzNjZmNmMGQ5MzMxYzM0
Mjc3NWY5ZWMzODdkYmI5ZDAuLmViY2YwYWE1MGFiNTg0MGI3YmFhYzVmYWFlOTU5NjIwMzU5MmVm
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIz
Myw2ICsyMzMsNyBAQCBzdHJ1Y3QgQ29tcG9zaXRpb25IaWdobGlnaHQ7CiBzdHJ1Y3QgQ29tcG9z
aXRpb25VbmRlcmxpbmU7CiBzdHJ1Y3QgQ29udGFjdEluZm87CiBzdHJ1Y3QgQ29udGFjdHNSZXF1
ZXN0RGF0YTsKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsKIHN0cnVjdCBEaWN0YXRp
b25BbHRlcm5hdGl2ZTsKIHN0cnVjdCBFbGVtZW50Q29udGV4dDsKIHN0cnVjdCBHbG9iYWxGcmFt
ZUlkZW50aWZpZXI7CkBAIC0xMTc1LDYgKzExNzYsMTAgQEAgcHVibGljOgogICAgIHZvaWQgaGFu
ZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uJiwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHRlbGVwaG9uZU51bWJlcnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
Jik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICB2b2lkIGhhbmRs
ZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JF
bGVtZW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CisjZW5kaWYKKwogICAgIHZv
aWQgZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqKTsKIAogICAg
IHZvaWQgc2V0TWFpbkZyYW1lUHJvZ3Jlc3NDb21wbGV0ZWQoYm9vbCBjb21wbGV0ZWQpIHsgbV9t
YWluRnJhbWVQcm9ncmVzc0NvbXBsZXRlZCA9IGNvbXBsZXRlZDsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429944</attachid>
            <date>2021-05-27 15:47:20 -0700</date>
            <delta_ts>2021-05-27 20:31:29 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-226274-20210527154720.patch</filename>
            <type>text/plain</type>
            <size>43727</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2YxNWNkMGMyNTQxNGMw
NDJjZjA0NGQ0OWE1ZTkxZjcwZDViOTlmOC4uZjAyM2Y1MWZlYjg4YTUzM2E5Njg1ZmVmOGE4YTJl
MzMxNzE0M2QwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA1LTI3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hv
dyBjb250ZXh0IG1lbnUgd2hlbiBjbGlja2luZyBvbiBkYXRhIGRldGVjdGlvbiByZXN1bHRzIGlu
IGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjYyNzQKKyAgICAgICAgcmRhcjovLzc1NTA0OTU2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhvcnRvbiBhbmQgQWRpdHlhIEtlZXJ0aGkuCisKKyAgICAgICAgQWRkIGEgY2xp
ZW50IGhvb2sgdG8gYWxsb3cgSW1hZ2VPdmVybGF5Q29udHJvbGxlciB0byBjYWxsIG91dCBpbnRv
IHRoZSBXZWJLaXQgY2xpZW50IGxheWVyIHdoZW4gYSBkYXRhIGRldGVjdG9yCisgICAgICAgIGJ1
dHRvbiAod2l0aCBhIGNvcnJlc3BvbmRpbmcgRERTY2FubmVyUmVzdWx0KSBpcyBjbGlja2VkLiBT
ZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmhhbmRsZUNsaWNrRm9yRGF0YURl
dGVjdGlvblJlc3VsdCk6CisgICAgICAgICogcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50
SW5mby5oOiBBZGRlZC4KKworICAgICAgICBJbnRyb2R1Y2UgYSBzdHJ1Y3QgdGhhdCB3cmFwcyBh
IGRhdGEgZGV0ZWN0aW9uIHJlc3VsdCBhbmQgdGhlIGFjY29tcGFueWluZyBlbGVtZW50IGJvdW5k
aW5nIHJlY3QsIG1haW5seSBzbyB0aGF0CisgICAgICAgIHdlIGhhdmUgYSBDKysgc3RydWN0IHdl
IGNhbiBwbHVtYiB0aHJvdWdoIHRoZSBjbGllbnQgbGF5ZXJzIChyYXRoZXIgdGhhbiBkaXJlY3Rs
eSBwYXNzaW5nIE9iamVjdGl2ZS1DIG9iamVjdHMKKyAgICAgICAgYXJvdW5kKS4KKworICAgICAg
ICAqIHBhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVEYXRhRGV0ZWN0b3JBY3Rpb24pOgor
CiAyMDIxLTA1LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlZmFjdG9yIHNvbWUgZGF0YSBkZXRlY3RvciBjb2RlIGluIFdlYkNvcmU6OkZyYW1l
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwppbmRleCBjYTQxYWNhZjQzZDE3MDQ5NWM3OGE2ZmI5YWUyYThkNmJj
NDk5YWU5Li5iOTE2YWFmZGY0NDhjNDhkYzZjNTQ4MzNiMTRmNmMxZTliZjAzY2Q1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNS0yNyAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNob3cgY29udGV4dCBt
ZW51IHdoZW4gY2xpY2tpbmcgb24gZGF0YSBkZXRlY3Rpb24gcmVzdWx0cyBpbiBpbWFnZSBvdmVy
bGF5cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2
Mjc0CisgICAgICAgIHJkYXI6Ly83NTUwNDk1NgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBI
b3J0b24gYW5kIEFkaXR5YSBLZWVydGhpLgorCisgICAgICAgIEFkZCBkZWNsYXJhdGlvbnMgZm9y
IHNvbWUgU1BJIG9uIFJWSXRlbSBhbmQgUlZQcmVzZW50ZXIuIFNlZSBXZWJLaXQgZm9yIG1vcmUg
aW5mb3JtYXRpb24gYWJvdXQgd2hlcmUgdGhlc2UgYXJlCisgICAgICAgIHVzZWQuCisKKyAgICAg
ICAgKiBwYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oOgorCiAyMDIxLTA1LTI2ICBDYW1lcm9uIE1j
Q29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUHJldmVudCBzYml4IGdseXBo
cyBmcm9tIGJlaW5nIHJlbmRlcmVkIGluIHRoZSBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmNTQz
MmRhMDg4Yzc1MDdkMWQ4NGExOWFkZmE4NjZlYmMwNDE1ZDY2Li5jZGZkZmU1NWZiMmM3MGE3OTY0
ZTQyYzI4ODJjZWZiZTNjYWMxZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIxLTA1
LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtt
YWNPU10gU2hvdyBjb250ZXh0IG1lbnUgd2hlbiBjbGlja2luZyBvbiBkYXRhIGRldGVjdGlvbiBy
ZXN1bHRzIGluIGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjYyNzQKKyAgICAgICAgcmRhcjovLzc1NTA0OTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbiBhbmQgQWRpdHlhIEtlZXJ0aGkuCisKKyAgICAgICAg
SW1wbGVtZW50IGEgV2ViS2l0MiBjbGllbnQgaG9vayB0byBoYW5kbGUgYSBjbGljayBvdmVyIGEg
ZGF0YSBkZXRlY3Rpb24gcmVzdWx0IGJ5IHVzaW5nIHRoZSBSZXZlYWwgZnJhbWV3b3JrIHRvCisg
ICAgICAgIGNvbGxlY3QgYW5kIHByZXNlbnQgYSBjb250ZXh0IG1lbnUuIFNlZSBiZWxvdyBmb3Ig
bW9yZSBkZXRhaWxzLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENv
ZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPERhdGFEZXRlY3RvckVs
ZW1lbnRJbmZvPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxEYXRhRGV0
ZWN0b3JFbGVtZW50SW5mbz46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oOgorCisgICAgICAgIEFkZCBlbmNvZGluZyBhbmQgZGVjb2Rpbmcgc3VwcG9y
dCBmb3IgRGF0YURldGVjdG9yRWxlbWVudEluZm8uCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25S
ZXN1bHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dmlldyBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgaGVs
cGVyIG1ldGhvZCB0byBncmFiIHRoZSB2aWV3IChlaXRoZXIgYSBXS1ZpZXcgb3IgV0tXZWJWaWV3
KSBmcm9tIGEgV2ViVmlld0ltcGwuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVDbGlja0ZvckRh
dGFEZXRlY3Rpb25SZXN1bHQpOgorCisgICAgICAgIENyZWF0ZSBhbmQgcHJlc2VudCBhIG5ldyBX
S1JldmVhbEl0ZW1QcmVzZW50ZXIgdXNpbmcgdGhlIEREU2Nhbm5lclJlc3VsdC4KKworICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlkRmluaXNoUHJlc2VudGF0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50Ojpo
YW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQpOgorCisgICAgICAgIEFkZCBtb3JlIHBs
dW1iaW5nIHRocm91Z2ggdGhlIFVJIHByb2Nlc3MgdG8gaGFuZGxlIGNsaWNraW5nIG9uIGEgZGF0
YSBkZXRlY3Rpb24gcmVzdWx0LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tOiBBZGRlZC4KKworICAgICAgICBBZGQg
YSBoZWxwZXIgY2xhc3MgdGhhdCB0YWtlcyBhbiBSVkl0ZW0gYW5kIGlzIGNhcGFibGUgb2YgcHJl
c2VudGluZyBhIGNvbnRleHQgbWVudSBmb3IgdGhlIGl0ZW0sIG9uIGJlaGFsZiBvZgorICAgICAg
ICBXZWJWaWV3SW1wbC4gRm9yIHRoZSB0aW1lIGJlaW5nLCB0aGlzIGlzIG9ubHkgdXNlZCBvbiBt
YWNPUyAoYW5kIHRodXMsIGRpcmVjdGx5IGhvbGRzIGEgV2Vha1B0ciB0byBhCisgICAgICAgIFdl
YlZpZXdJbXBsKS4gSG93ZXZlciwgd2UgbWF5IHdhbnQgdG8gdXNlIHRoaXMgaW4gdGhlIGZ1dHVy
ZSBmb3IgTWFjIENhdGFseXN0IGFzIHdlbGwsIGluIHdoaWNoIGNhc2Ugd2Ugc2hvdWxkCisgICAg
ICAgIG1ha2UgdGhpcyB3b3JrIHZpYSBhIGdlbmVyaWMgV0tSZXZlYWxJdGVtUHJlc2VudGVyRGVs
ZWdhdGUgcHJvdG9jb2wgaW5zdGVhZC4KKworICAgICAgICAoLVtXS1JldmVhbEl0ZW1QcmVzZW50
ZXIgaW5pdFdpdGhXZWJWaWV3SW1wbDppdGVtOmZyYW1lOm1lbnVMb2NhdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIHNob3dDb250ZXh0TWVudV0pOgorICAgICAgICAo
LVtXS1JldmVhbEl0ZW1QcmVzZW50ZXIgX2NhbGxEaWRGaW5pc2hQcmVzZW50YXRpb25JZk5lZWRl
ZF0pOgorCisgICAgICAgIENhbGwgb3V0IHRvIHRoZSBXZWJWaWV3SW1wbCB0byByZXNldCBpdHMg
Y3VycmVudCByZXZlYWwgaXRlbSBwcmVzZW50ZXIgYWZ0ZXIgd2UndmUgZmluaXNoZWQgcHJlc2Vu
dGF0aW9uLiBUaGlzCisgICAgICAgIGhhcHBlbnMgZWl0aGVyIGFmdGVyIHdlJ3ZlIGRpc21pc3Nl
ZCB0aGUgY29udGV4dCBtZW51IChpZiBubyBpdGVtIGlzIGhpZ2hsaWdodGVkKSwgb3IgYWZ0ZXIg
d2UndmUgZmluaXNoZWQKKyAgICAgICAgaGlnaGxpZ2h0aW5nIHRoZSBpdGVtLgorCisgICAgICAg
ICgtW1dLUmV2ZWFsSXRlbVByZXNlbnRlciByZXZlYWxDb250ZXh0OnJlY3RzRm9ySXRlbTpdKToK
KyAgICAgICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIHJldmVhbENvbnRleHQ6c2hvdWxkVXNl
RGVmYXVsdEhpZ2hsaWdodEZvckl0ZW06XSk6CisgICAgICAgICgtW1dLUmV2ZWFsSXRlbVByZXNl
bnRlciByZXZlYWxDb250ZXh0OnN0YXJ0SGlnaGxpZ2h0aW5nSXRlbTpdKToKKyAgICAgICAgKC1b
V0tSZXZlYWxJdGVtUHJlc2VudGVyIHJldmVhbENvbnRleHQ6c3RvcEhpZ2hsaWdodGluZ0l0ZW06
XSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJl
c3VsdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25S
ZXN1bHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMjEt
MDUtMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVmYWN0b3Igc29tZSBkYXRhIGRldGVjdG9yIGNvZGUgaW4gV2ViQ29yZTo6RnJhbWUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUmV2ZWFsU1BJLmgKaW5kZXggNWU2ODMwNzgz
OWQzOWRiNjNmN2Q4NjA3ZWMzOWExMGIzOTkyMDAxNy4uNDAwYWJkZmVkOTY5NGUzOThiMGYyOTZh
ZWU2ZGFhMjc3ZTFmZjU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y29jb2EvUmV2ZWFsU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
UmV2ZWFsU1BJLmgKQEAgLTQyLDExICs0MiwxMyBAQAogI2ltcG9ydCA8UmV2ZWFsQ29yZS9SZXZl
YWxDb3JlLmg+CiAjZWxzZSAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCi0KK0BjbGFzcyBE
RFNjYW5uZXJSZXN1bHQ7CitAY2xhc3MgTlNNZW51SXRlbTsKIEBwcm90b2NvbCBSVlByZXNlbnRl
ckhpZ2hsaWdodERlbGVnYXRlOwogCiBAaW50ZXJmYWNlIFJWSXRlbSA6IE5TT2JqZWN0IDxOU1Nl
Y3VyZUNvZGluZz4KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFRleHQ6KE5TU3RyaW5nICopdGV4
dCBzZWxlY3RlZFJhbmdlOihOU1JhbmdlKXNlbGVjdGVkUmFuZ2UgTlNfREVTSUdOQVRFRF9JTklU
SUFMSVpFUjsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEREUmVzdWx0OihERFNjYW5uZXJSZXN1
bHQgKilyZXN1bHQgTlNfREVTSUdOQVRFRF9JTklUSUFMSVpFUjsKIEBwcm9wZXJ0eSAocmVhZG9u
bHksIG5vbmF0b21pYykgTlNSYW5nZSBoaWdobGlnaHRSYW5nZTsKIEBlbmQKIApAQCAtNjksMTMg
KzcxLDE0IEBACiBAZW5kCiAjZW5kaWYKIAotQGludGVyZmFjZSBSVkRvY3VtZW50Q29udGV4dCA6
IE5TT2JqZWN0IDwgTlNTZWN1cmVDb2RpbmcgPgorQGludGVyZmFjZSBSVkRvY3VtZW50Q29udGV4
dCA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIEBlbmQKIAogQGludGVyZmFjZSBSVlByZXNl
bnRlciA6IE5TT2JqZWN0CiAjaWYgUExBVEZPUk0oTUFDKQogLSAoaWQ8TlNJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb25Db250cm9sbGVyPilhbmltYXRpb25Db250cm9sbGVyRm9ySXRlbTooUlZJdGVt
ICopaXRlbSBkb2N1bWVudENvbnRleHQ6KFJWRG9jdW1lbnRDb250ZXh0ICopZG9jdW1lbnRDb250
ZXh0IHByZXNlbnRpbmdDb250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICopcHJlc2VudGluZ0Nv
bnRleHQgb3B0aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9uczsKIC0gKEJPT0wpcmV2ZWFsSXRl
bTooUlZJdGVtICopaXRlbSBkb2N1bWVudENvbnRleHQ6KFJWRG9jdW1lbnRDb250ZXh0ICopZG9j
dW1lbnRDb250ZXh0IHByZXNlbnRpbmdDb250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICopcHJl
c2VudGluZ0NvbnRleHQgb3B0aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9uczsKKy0gKE5TQXJy
YXk8TlNNZW51SXRlbSAqPiAqKW1lbnVJdGVtc0Zvckl0ZW06KFJWSXRlbSAqKWl0ZW0gZG9jdW1l
bnRDb250ZXh0OihSVkRvY3VtZW50Q29udGV4dCAqKWRvY3VtZW50Q29udGV4dCBwcmVzZW50aW5n
Q29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4dCAqKXByZXNlbnRpbmdDb250ZXh0IG9wdGlvbnM6
KE5TRGljdGlvbmFyeSAqKW9wdGlvbnM7CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogQGVuZAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggOTk1MDkzMjJhMmJiZGE2MTljYzIzYTkyMDY0YTRjMzk2OWNhNWY0Yi4uZWEwYzA1ODA0
ZjM0ZjZkMzc3ODIyODI5N2YzYjcxYmNkOGQzY2Y1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTMzOSw2ICs1MzM5LDcgQEAK
IAkJRjQ0MkMzNTkyM0UzQUREMjAwNDk5NTgyIC8qIENvbXBvc2l0aW9uSGlnaGxpZ2h0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQyQzM1NzIzRTNB
QzUxMDA0OTk1ODIgLyogQ29tcG9zaXRpb25IaWdobGlnaHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDQ2RURERjI2NURBRkUzMDAzMURBOEYg
LyogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ2RURERDI2NURBRTNGMDAzMURBOEYgLyogRGF0YURl
dGVjdGlvblJlc3VsdHNTdG9yYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRjQ0NkVERTEyNjVEQjFFNTAwMzFEQThGIC8qIEltYWdlT3Zlcmxh
eURhdGFEZXRlY3Rpb25SZXN1bHRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ2RURFMDI2NURCMUU1MDAzMURBOEYgLyogSW1hZ2VP
dmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNDQ2RURFODI2NUREODkwMDAzMURBOEYg
LyogRGF0YURldGVjdG9yRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDZFREU3MjY1REQ4OTAwMDMxREE4RiAvKiBEYXRhRGV0ZWN0
b3JFbGVtZW50SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUY0NEE1RjU5MUZFRDM4RjIwMDdGNTk0NCAvKiBMZWdhY3lOU1Bhc3RlYm9hcmRU
eXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0
QTVGNTcxRkVEMzgzMDAwN0Y1OTQ0IC8qIExlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ0RUJCRDkxREI1
RDIxNDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRFQkJEODFEQjVEMjE0MDAyNzczMzQgLyogU3RhdGljUmFu
Z2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlG
NDU3NzVDRTI0MTQzN0Q1MDAyREYxQTAgLyogSW5saW5lUGF0aERhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NTc3NUNEMjQxNDM3RDUwMDJERjFB
MCAvKiBJbmxpbmVQYXRoRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNjgxMCw2ICsxNjgxMSw3IEBACiAJCUY0NDJDMzU3MjNFM0FDNTEw
MDQ5OTU4MiAvKiBDb21wb3NpdGlvbkhpZ2hsaWdodC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wb3Np
dGlvbkhpZ2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQ2RURERDI2
NURBRTNGMDAzMURBOEYgLyogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNDQ2RURFMDI2NURCMUU1MDAzMURBOEYgLyogSW1hZ2VPdmVybGF5RGF0YURl
dGVjdGlvblJlc3VsdElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VPdmVybGF5RGF0
YURldGVjdGlvblJlc3VsdElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjQ0NkVERTcyNjVERDg5MDAwMzFEQThGIC8qIERhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0NEE1RjU3MUZFRDM4MzAwMDdGNTk0NCAvKiBMZWdhY3lOU1Bhc3Rl
Ym9hcmRUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRFQkJENjFEQjVEMUI2MDAyNzczMzQgLyog
U3RhdGljUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFN0YXRpY1JhbmdlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0RUJCRDgxREI1RDIxNDAwMjc3MzM0IC8q
IFN0YXRpY1JhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YXRpY1Jh
bmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTg5Myw2ICsyMTg5NSw3IEBA
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUY0NDZFREREMjY1REFF
M0YwMDMxREE4RiAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0c1N0b3JhZ2UuaCAqLywKKwkJCQlGNDQ2
RURFNzI2NUREODkwMDAzMURBOEYgLyogRGF0YURldGVjdG9yRWxlbWVudEluZm8uaCAqLywKIAkJ
CQlGNDQ2RURFMDI2NURCMUU1MDAzMURBOEYgLyogSW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJl
c3VsdElkZW50aWZpZXIuaCAqLywKIAkJCQk0MTNFMDA3QjFEQjBFNzA3MDAyMzQxRDIgLyogTWVt
b3J5UmVsZWFzZUNvY29hLm1tICovLAogCQkJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQ
ZXJmb3JtYW5jZUxvZ2dpbmdDb2NvYS5tbSAqLywKQEAgLTMyMjAwLDYgKzMyMjAzLDcgQEAKIAkJ
CQlCRTIzNDgwRDE4QTk4NzE0MDBFNEI2RTggLyogRGF0YUN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzUyMjdERjExQzNDNkRGMTAwRjVFRDU0IC8qIERhdGFEZXRlY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUY0NDZFRERGMjY1REFGRTMwMDMxREE4RiAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0
c1N0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0NDZFREU4MjY1REQ4OTAwMDMxREE4RiAv
KiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjRCMkE5MDky
NjUwMzBCQTAwOUU3Mjg2IC8qIERhdGFEZXRlY3RvckhpZ2hsaWdodC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM0QTUzMzUyNTYwNUE1NjAwMjhDNTkyIC8qIERhdGFEZXRlY3RvclR5cGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU1OEI0NUJBMjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRv
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5k
ZXggYjZkOTFhODMzMTdlMjIyYzljMmIxN2IxNjhjMzA2ODg5ZDQ2NmIxMy4uNTBhNjJjMTM3OGIy
NWRjOWZmMWIwZjg3ZjZlY2YwYjVkYTE5NWRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCkBAIC0xMjEsNiArMTIxLDcgQEAgY2xhc3MgTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1p
c3NpbmdQbHVnaW5zQ2FsbGJhY2s7CiBzdHJ1Y3QgQXBwSGlnaGxpZ2h0Owogc3RydWN0IENvbnRh
Y3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKK3N0cnVjdCBE
YXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsKIHN0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJz
Owogc3RydWN0IEdyYXBoaWNzRGV2aWNlQWRhcHRlcjsKIHN0cnVjdCBNb2NrV2ViQXV0aGVudGlj
YXRpb25Db25maWd1cmF0aW9uOwpAQCAtNTAyLDYgKzUwMywxMCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYsIGNvbnN0
IEludFBvaW50JikgeyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IERh
dGFEZXRlY3RvckVsZW1lbnRJbmZvJiwgY29uc3QgSW50UG9pbnQmKSB7IH0KKyNlbmRpZgorCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVNlbGVj
dGlvblNlcnZpY2VDbGljayhGcmFtZVNlbGVjdGlvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
Y29uc3QgSW50UG9pbnQmKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rp
b25TZXJ2aWNlcyhib29sIC8qaXNUZXh0T25seSovKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50
SW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5m
by5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZmNmE4ZDhiMmIwNzY4YWY3NTI3NDA4Y2RhYTYzNjk1NTE3NTJkN2YK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL0RhdGFEZXRlY3Rv
ckVsZW1lbnRJbmZvLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisKK09CSkNfQ0xBU1MgRERTY2FubmVyUmVzdWx0OworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEludFJlY3Q7CisKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyB7Cisg
ICAgUmV0YWluUHRyPEREU2Nhbm5lclJlc3VsdD4gcmVzdWx0OworICAgIEludFJlY3QgZWxlbWVu
dEJvdW5kczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShEQVRBX0RFVEVDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0lt
YWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9JbWFn
ZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCmluZGV4IGIxMTVmZmZiMzU3OTA3NDEwZTRkMzE4ZWI0
MjBlNjY5OTA0M2M0MzYuLmU4NGVkZjhkMTM2OWE2ZTRmMGMwNTk5MjZkOTUxMTRiNTE0OTgwYTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xs
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJv
bGxlck1hYy5tbQpAQCAtMjksOSArMjksMTIgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBv
cnQgIkRhdGFEZXRlY3Rpb24uaCIKKyNpbXBvcnQgIkRhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFn
ZS5oIgorI2ltcG9ydCAiRGF0YURldGVjdG9yRWxlbWVudEluZm8uaCIKICNpbXBvcnQgIkZyYW1l
Vmlldy5oIgogI2ltcG9ydCAiSFRNTEVsZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxOYW1lcy5oIgor
I2ltcG9ydCAiSW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50aWZpZXIuaCIKICNp
bXBvcnQgIkludFJlY3QuaCIKICNpbXBvcnQgIlBhZ2UuaCIKICNpbXBvcnQgIlBsYXRmb3JtTW91
c2VFdmVudC5oIgpAQCAtMTQ3LDggKzE1MCwyNyBAQCBib29sIEltYWdlT3ZlcmxheUNvbnRyb2xs
ZXI6OmhhbmRsZURhdGFEZXRlY3RvckFjdGlvbihjb25zdCBIVE1MRWxlbWVudCYgZWxlbWVudAog
ICAgIGlmICghZnJhbWVWaWV3KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyBGSVhN
RTogQ2FsbCBvdXQgdG8gdGhlIGNsaWVudCBsYXllciB0byBoYW5kbGUgdGhlIGNsaWNrLgotICAg
IFVOVVNFRF9QQVJBTShsb2NhdGlvbkluQ29udGVudHMpOworICAgIGF1dG8gaWRlbnRpZmllclZh
bHVlID0gcGFyc2VJbnRlZ2VyPHVpbnQ2NF90PihlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oSFRNTE5hbWVzOjp4X2FwcGxlX2RhdGFfZGV0ZWN0b3JzX3Jlc3VsdEF0dHIp
KTsKKyAgICBpZiAoIWlkZW50aWZpZXJWYWx1ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgYXV0byBpZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8SW1hZ2VPdmVybGF5RGF0
YURldGVjdGlvblJlc3VsdElkZW50aWZpZXJUeXBlPigqaWRlbnRpZmllclZhbHVlKTsKKyAgICBp
ZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBh
dXRvKiBkYXRhRGV0ZWN0aW9uUmVzdWx0cyA9IGZyYW1lLT5kYXRhRGV0ZWN0aW9uUmVzdWx0c0lm
RXhpc3RzKCk7CisgICAgaWYgKCFkYXRhRGV0ZWN0aW9uUmVzdWx0cykKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgYXV0byBkYXRhRGV0ZWN0aW9uUmVzdWx0ID0gcmV0YWluUHRyKGRhdGFE
ZXRlY3Rpb25SZXN1bHRzLT5pbWFnZU92ZXJsYXlEYXRhRGV0ZWN0aW9uUmVzdWx0KGlkZW50aWZp
ZXIpKTsKKyAgICBpZiAoIWRhdGFEZXRlY3Rpb25SZXN1bHQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJlcigpOworICAgIGlmICgh
cmVuZGVyZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fcGFnZS0+Y2hyb21lKCku
Y2xpZW50KCkuaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KHsgV1RGTW92ZShkYXRh
RGV0ZWN0aW9uUmVzdWx0KSwgZnJhbWVWaWV3LT5jb250ZW50c1RvV2luZG93KHJlbmRlcmVyLT5h
YnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpKSB9LCBmcmFtZVZpZXctPmNvbnRlbnRzVG9XaW5kb3co
bG9jYXRpb25JbkNvbnRlbnRzKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2Eu
bW0KaW5kZXggMmI2NjVlZWQxNTk2N2Y5NzBmZTZmNDlhOGM3OWVlODc5MmQwZTgyZi4uMGI4NTg5
YTkzZDgzZjA1OWVjOTJmOTczMmJjMmFjYWEwNzA3YjViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KQEAg
LTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ29jb2EuaCIKICNpbXBvcnQg
PENvcmVUZXh0L0NvcmVUZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJpbmcu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvRGF0YURldGVjdG9yRWxlbWVudEluZm8uaD4KICNpbXBvcnQg
PFdlYkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CkBAIC02MTQsNiArNjE1LDMwIEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+OjpkZWNvZGVQbGF0
Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFC
TEUoREFUQV9ERVRFQ1RJT04pCisKK3ZvaWQgQXJndW1lbnRDb2RlcjxEYXRhRGV0ZWN0b3JFbGVt
ZW50SW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEYXRhRGV0ZWN0b3JFbGVt
ZW50SW5mbyYgaW5mbykKK3sKKyAgICBlbmNvZGVyIDw8IGluZm8ucmVzdWx0LmdldCgpOworICAg
IGVuY29kZXIgPDwgaW5mby5lbGVtZW50Qm91bmRzOworfQorCitPcHRpb25hbDxEYXRhRGV0ZWN0
b3JFbGVtZW50SW5mbz4gQXJndW1lbnRDb2RlcjxEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbz46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGF1dG8gcmVzdWx0ID0gSVBDOjpkZWNvZGU8
RERTY2FubmVyUmVzdWx0PihkZWNvZGVyLCBQQUw6OmdldEREU2Nhbm5lclJlc3VsdENsYXNzKCkp
OworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
T3B0aW9uYWw8SW50UmVjdD4gZWxlbWVudEJvdW5kczsKKyAgICBkZWNvZGVyID4+IGVsZW1lbnRC
b3VuZHM7CisgICAgaWYgKCFlbGVtZW50Qm91bmRzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgcmV0dXJuIG1ha2VPcHRpb25hbDxEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbz4o
eyBXVEZNb3ZlKCpyZXN1bHQpLCBXVEZNb3ZlKCplbGVtZW50Qm91bmRzKSB9KTsKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZ
QkFDS19UQVJHRVQpCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rh
cmdldENvbnRleHQ+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggOTYzZmI0OGM5YTA5OTk4OTVhYWJm
OWZlMjJjYmYzZjQ3NjFiMDJmOC4uYWIwYzI2MzYzMjczZmEyMTQwZWE2NTljODZjZmM1MDhkMzI4
ZGJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgK
QEAgLTE0Myw2ICsxNDMsNyBAQCBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKIHN0cnVjdCBDYWNo
ZVF1ZXJ5T3B0aW9uczsKIHN0cnVjdCBDaGFyYWN0ZXJSYW5nZTsKIHN0cnVjdCBDb21wb3NpdGlv
blVuZGVybGluZTsKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsKIHN0cnVjdCBEaWN0
YXRpb25BbHRlcm5hdGl2ZTsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvOwogc3RydWN0IEV2
ZW50VHJhY2tpbmdSZWdpb25zOwpAQCAtODA0LDYgKzgwNSwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNjcmlwdEJ1ZmZlcj4gewogICAgIHN0YXRpYyBPcHRp
b25hbDxXZWJDb3JlOjpTY3JpcHRCdWZmZXI+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCisjaWYg
RU5BQkxFKERBVEFfREVURUNUSU9OKQorCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvPiB7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYpOwor
ICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbz4gZGVj
b2RlKERlY29kZXImKTsKK307CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q0RNSW5zdGFuY2VT
ZXNzaW9uOjpNZXNzYWdlPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246Ok1lc3NhZ2UmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAppbmRleCBiMjY1OTliYThlNzA2NDY1NGI0OGI0NTg4ODYwZjk5ODg3M2ExY2IwLi5iMTQ4
MDEzYzkwNDY1ZjkzMmZjNmFkOTRiMWU3YWY5NDk0MTIzOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CkBAIC01MjUsNiArNTI1LDcgQEAgVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyLm1tCiBVSVByb2Nlc3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRy
b2xsZXIubW0KIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCiBV
SVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCitVSVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRl
bVByZXNlbnRlci5tbQogVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdh
dGUubW0KIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCiBVSVByb2Nlc3MvbWFj
L1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCAyZDEwM2YwZWQwYTdkMjYx
NDFlYzJmMzNiMmJmNjY1MGJjOGM1ZTJmLi5iMTZkNWYxM2JhOTZmNGZkZTAxMDkyMjE0Zjc2NWUx
NTE4ZDhmMTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
YWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
YWdlUHJveHlDb2NvYS5tbQpAQCAtOTUsMTAgKzk1LDE3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisK
IHZvaWQgV2ViUGFnZVByb3h5OjpzZXREYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IERhdGFEZXRl
Y3Rpb25SZXN1bHQmIGRhdGFEZXRlY3Rpb25SZXN1bHQpCiB7CiAgICAgbV9kYXRhRGV0ZWN0aW9u
UmVzdWx0cyA9IGRhdGFEZXRlY3Rpb25SZXN1bHQucmVzdWx0czsKIH0KKwordm9pZCBXZWJQYWdl
UHJveHk6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0
b3JFbGVtZW50SW5mbyYgaW5mbywgY29uc3QgSW50UG9pbnQmIGNsaWNrTG9jYXRpb24pCit7Cisg
ICAgcGFnZUNsaWVudCgpLmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChpbmZvLCBj
bGlja0xvY2F0aW9uKTsKK30KKwogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzYXZlUmVj
ZW50U2VhcmNoZXMoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UmVj
ZW50U2VhcmNoPiYgc2VhcmNoSXRlbXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwuaAppbmRleCBiZDhkODJjNDE1NzMxMTQ2NGY0ZWM1NWQwZTE0OWRmZTg5ODcw
YmExLi43MmY1MDE3ZWQwNDZkOGU0ZDE5YjY3NGU1MmI3Y2JiYTI3NzE0OTBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTYxLDYgKzYxLDcgQEAg
T0JKQ19DTEFTUyBXS0RPTVBhc3RlTWVudURlbGVnYXRlOwogT0JKQ19DTEFTUyBXS0VkaXRvclVu
ZG9UYXJnZXQ7CiBPQkpDX0NMQVNTIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI7CiBPQkpD
X0NMQVNTIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcjsKK09CSkNfQ0xBU1MgV0tSZXZlYWxJ
dGVtUHJlc2VudGVyOwogT0JKQ19DTEFTUyBXS1NhZmVCcm93c2luZ1dhcm5pbmc7CiBPQkpDX0NM
QVNTIFdLU2hhcmVTaGVldDsKIE9CSkNfQ0xBU1MgV0tWaWV3TGF5b3V0U3RyYXRlZ3k7CkBAIC05
Niw2ICs5Nyw3IEBAIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlOwogY2xhc3MgSW50UG9pbnQ7CitzdHJ1Y3Qg
RGF0YURldGVjdG9yRWxlbWVudEluZm87CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsK
IAogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01F
TlVTKQpAQCAtMTg5LDYgKzE5MSw3IEBAIHB1YmxpYzoKICAgICBOU1dpbmRvdyAqd2luZG93KCk7
CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KKyAg
ICBOU1ZpZXcgKnZpZXcoKSBjb25zdCB7IHJldHVybiBtX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCk7
IH0KIAogICAgIHZvaWQgcHJvY2Vzc1dpbGxTd2FwKCk7CiAgICAgdm9pZCBwcm9jZXNzRGlkRXhp
dCgpOwpAQCAtNjY5LDYgKzY3MiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNZWRpYVNlc3Np
b25Db29yZGluYXRvckZvclRlc3RpbmcoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZh
dGUqKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIHZvaWQgaGFu
ZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3Rv
ckVsZW1lbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKKyNlbmRpZgorCisjaWYg
RU5BQkxFKFJFVkVBTCkKKyAgICB2b2lkIGRpZEZpbmlzaFByZXNlbnRhdGlvbihXS1JldmVhbEl0
ZW1QcmVzZW50ZXIgKik7CisjZW5kaWYKKwogcHJpdmF0ZToKICNpZiBIQVZFKFRPVUNIX0JBUikK
ICAgICB2b2lkIHNldFVwVGV4dFRvdWNoQmFyKE5TVG91Y2hCYXIgKik7CkBAIC04ODUsNiArODk2
LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQ
cml2YXRlPiBtX2Nvb3JkaW5hdG9yRm9yVGVzdGluZzsKICNlbmRpZgogCisjaWYgRU5BQkxFKFJF
VkVBTCkKKyAgICBSZXRhaW5QdHI8V0tSZXZlYWxJdGVtUHJlc2VudGVyPiBtX3JldmVhbEl0ZW1Q
cmVzZW50ZXI7CisjZW5kaWYKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0
IDxXZWJLaXRBZGRpdGlvbnMvV2ViVmlld0ltcGxBZGRpdGlvbnNBZnRlci5oPgogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDg4ODgy
MTU3YzBiMTc2YzY1YTE2ZjY4YTU4OWQ3MGJkY2FmNGRhMTIuLjA3NzBlYzZhMmRlOGQ1MWU1ZThj
ZGRmODg5NmFmNjgyNjA1OWI2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC02NSw2ICs2NSw3IEBACiAjaW1wb3J0ICJXS05TVVJMRXh0cmFz
LmgiCiAjaW1wb3J0ICJXS1BERkhVRFZpZXcuaCIKICNpbXBvcnQgIldLUHJpbnRpbmdWaWV3Lmgi
CisjaW1wb3J0ICJXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCIKICNpbXBvcnQgIldLU2FmZUJyb3dz
aW5nV2FybmluZy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLU2hhcmVTaGVldC5oPgogI2ltcG9ydCAi
V0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmgiCkBAIC04OSw2ICs5MCw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL0NvbG9yTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yU2VyaWFsaXphdGlv
bi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db21wb3NpdGlvbkhpZ2hsaWdodC5oPgorI2ltcG9ydCA8
V2ViQ29yZS9EYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9EZXN0
aW5hdGlvbkNvbG9yU3BhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5oPgpAQCAtMTU1LDYgKzE1Nyw4IEBAIFNPRlRf
TElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChUcmFuc2xhdGlvblVJU2VydmljZXMpCiBT
T0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoVHJhbnNsYXRpb25VSVNlcnZpY2VzLCBMVFVJVHJhbnNs
YXRpb25WaWV3Q29udHJvbGxlcikKICNlbmRpZgogCisjaW1wb3J0IDxwYWwvY29jb2EvUmV2ZWFs
U29mdExpbmsuaD4KKwogI2lmIEhBVkUoVE9VQ0hfQkFSKSAmJiBFTkFCTEUoV0VCX1BMQVlCQUNL
X0NPTlRST0xTX01BTkFHRVIpCiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFWS2l0KQogU09GVF9MSU5L
X0NMQVNTKEFWS2l0LCBBVlRvdWNoQmFyUGxheWJhY2tDb250cm9sc1Byb3ZpZGVyKQpAQCAtNTc1
MSw2ICs1NzU1LDMyIEBAIHZvaWQgV2ViVmlld0ltcGw6OmVuZFByZXZpZXdQYW5lbENvbnRyb2wo
UUxQcmV2aWV3UGFuZWwgKnBhbmVsKQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCisKK3ZvaWQgV2ViVmlld0ltcGw6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJl
c3VsdChjb25zdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYgaW5mbywgY29uc3QgSW50UG9pbnQm
IGNsaWNrTG9jYXRpb24pCit7CisjaWYgRU5BQkxFKFJFVkVBTCkKKyAgICBtX3JldmVhbEl0ZW1Q
cmVzZW50ZXIgPSBhZG9wdE5TKFtbV0tSZXZlYWxJdGVtUHJlc2VudGVyIGFsbG9jXSBpbml0V2l0
aFdlYlZpZXdJbXBsOip0aGlzIGl0ZW06YWRvcHROUyhbUEFMOjphbGxvY1JWSXRlbUluc3RhbmNl
KCkgaW5pdFdpdGhERFJlc3VsdDppbmZvLnJlc3VsdC5nZXQoKV0pLmdldCgpIGZyYW1lOmluZm8u
ZWxlbWVudEJvdW5kcyBtZW51TG9jYXRpb246Y2xpY2tMb2NhdGlvbl0pOworICAgIFttX3JldmVh
bEl0ZW1QcmVzZW50ZXIgc2V0U2hvdWxkVXNlRGVmYXVsdEhpZ2hsaWdodDpOT107CisgICAgW21f
cmV2ZWFsSXRlbVByZXNlbnRlciBzaG93Q29udGV4dE1lbnVdOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oaW5mbyk7CisgICAgVU5VU0VEX1BBUkFNKGNsaWNrTG9jYXRpb24pOworI2VuZGlmCit9
CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKKyNpZiBFTkFCTEUoUkVWRUFM
KQorCit2b2lkIFdlYlZpZXdJbXBsOjpkaWRGaW5pc2hQcmVzZW50YXRpb24oV0tSZXZlYWxJdGVt
UHJlc2VudGVyICpwcmVzZW50ZXIpCit7CisgICAgaWYgKHByZXNlbnRlciA9PSBtX3JldmVhbEl0
ZW1QcmVzZW50ZXIpCisgICAgICAgIG1fcmV2ZWFsSXRlbVByZXNlbnRlciA9IG5pbDsKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShSRVZFQUwpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4
IDdmOTMzOGMyYTFiM2U3YjhhMzFmMGQ0NTllNGIxM2Q1NGY0MmUxZDcuLjAxM2Y1MDc5NmJhNDU2
Y2JmMWI5OGZjMzJjNzIxYjhhNWU5NTE3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKQEAgLTExMiw2ICsxMTIsNyBAQCBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNz
YWxBbmltYXRpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
IDogdWludDhfdDsKIAogc3RydWN0IEFwcEhpZ2hsaWdodDsKK3N0cnVjdCBEYXRhRGV0ZWN0b3JF
bGVtZW50SW5mbzsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvOwogc3RydWN0IFRleHRJbmRp
Y2F0b3JEYXRhOwogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKQEAgLTYyNiw2ICs2MjcsMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5IYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0
aW9uKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVDb250ZXh0TWVudVRyYW5z
bGF0aW9uKGNvbnN0IFdlYkNvcmU6OlRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvJikgPSAwOwog
I2VuZGlmCisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgdmlydHVhbCB2b2lkIGhh
bmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0
b3JFbGVtZW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA2NzZjN2MzMDBjNDQ4NjBmYzgyMjM2YmM2NGFmNmY1MDRiODM1YWU1Li40ODAz
MmQwZDIyZmMzZjk2MTRlMTNkMTU0NWJlNWNmYjM4OTVjODVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjc4LDYgKzI3OCw3IEBAIHN0cnVjdCBDb21wb3NpdGlv
bkhpZ2hsaWdodDsKIHN0cnVjdCBDb250YWN0SW5mbzsKIHN0cnVjdCBDb250YWN0c1JlcXVlc3RE
YXRhOwogc3RydWN0IENvbnRlbnRSdWxlTGlzdFJlc3VsdHM7CitzdHJ1Y3QgRGF0YURldGVjdG9y
RWxlbWVudEluZm87CiBzdHJ1Y3QgRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb247CiBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZv
OwpAQCAtODc1LDYgKzg3Niw3IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFN
SUxZKQogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAgICB2b2lkIHNldERhdGFEZXRlY3Rp
b25SZXN1bHQoY29uc3QgRGF0YURldGVjdGlvblJlc3VsdCYpOworICAgIHZvaWQgaGFuZGxlQ2xp
Y2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1l
bnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICNlbmRpZgogICAgIHZvaWQgZGlk
Q29tbWl0TGF5ZXJUcmVlKGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24m
KTsKICAgICB2b2lkIGxheWVyVHJlZUNvbW1pdENvbXBsZXRlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjc5NTQ1MTIxNGRh
ZTBlNTlkNDQwZjRhZTliNWVmYzFmZWYyNmIzZC4uYjM0MmMwZTY5NjRlMWMxZmEzYjMzYjU2OTg3
NWEyMjIwNDkwOTVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMTc3LDYgKzE3Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAjZW5kaWYKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgU2V0RGF0YURl
dGVjdGlvblJlc3VsdChzdHJ1Y3QgV2ViS2l0OjpEYXRhRGV0ZWN0aW9uUmVzdWx0IGRhdGFEZXRl
Y3Rpb25SZXN1bHQpCisgICAgSGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KHN0cnVj
dCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyBpbmZvLCBXZWJDb3JlOjpJbnRQb2lu
dCBsb2NhdGlvbikKICNlbmRpZgogCiAgICAgUGFnZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKGRvdWJs
ZSBzY2FsZUZhY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLmgKaW5kZXggNjM0ZDcxM2RkMWZjYjA3OGRkOWQ2ODU4NDllNWEyYTc5ZmEwOGEx
YS4uOWQ0YTAxMzE0ODk0M2Y5YmQzOWFiN2Q3MmQyODNjMDM4ZDM0YzM1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTI4Nyw2ICsy
ODcsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24o
Y29uc3QgV2ViQ29yZTo6VHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8mKSBvdmVycmlkZTsKICNl
bmRpZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIHZvaWQgaGFuZGxlQ2xpY2tG
b3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJ
bmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBmaW5hbDsKKyNlbmRpZgorCiAgICAgTlNW
aWV3ICptX3ZpZXc7CiAgICAgV2Vha1B0cjxXZWJWaWV3SW1wbD4gbV9pbXBsOwogI2lmIFVTRShB
VVRPQ09SUkVDVElPTl9QQU5FTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCAzZGU2MDE3MGY2MDUzNDVmODJmN2U0NGUyMjNmMjMx
YjEzOWMwZjQ4Li4zMzY0MmMyZjM1MjNmNmEwY2FmYTEzNzMzZGNhNjk3ZTRjNTUyZDQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBA
IC0xMDMxLDYgKzEwMzEsMTUgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlQ29udGV4dE1l
bnVUcmFuc2xhdGlvbihjb25zdCBUcmFuc2xhdGlvbkNvbnRleHRNZW51SW4KIAogI2VuZGlmIC8v
IEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQog
CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5k
bGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURldGVjdG9yRWxlbWVudElu
Zm8mIGluZm8sIGNvbnN0IEludFBvaW50JiBjbGlja0xvY2F0aW9uKQoreworICAgIG1faW1wbC0+
aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGluZm8sIGNsaWNrTG9jYXRpb24pOwor
fQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJ
dGVtUHJlc2VudGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVt
UHJlc2VudGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y4ZTI0YjVjODM1NzEyNDljNGI5NDU1YjU4NzQ4NDA4
NGNmOTQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S1JldmVhbEl0ZW1QcmVzZW50ZXIuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShSRVZFQUwpCisKKyNpbXBv
cnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgorCitAY2xhc3MgUlZJdGVtOworCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNz
IFdlYlZpZXdJbXBsOworfQorCitAaW50ZXJmYWNlIFdLUmV2ZWFsSXRlbVByZXNlbnRlciA6IE5T
T2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXdJbXBsOihjb25zdCBXZWJL
aXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBpdGVtOihSVkl0ZW0gKilpdGVtIGZyYW1lOihD
R1JlY3QpZnJhbWVJblZpZXcgbWVudUxvY2F0aW9uOihDR1BvaW50KW1lbnVMb2NhdGlvbkluVmll
dzsKKy0gKHZvaWQpc2hvd0NvbnRleHRNZW51OworCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBzaG91bGRVc2VEZWZhdWx0SGlnaGxpZ2h0OworCitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShSRVZFQUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmU0MTRkOThkZTlj
Zjk2ZjQ4NGRlMzc1OWNkMmI2MmQwNmRkZDdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5tbQpAQCAtMCwwICsxLDEy
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIldLUmV2ZWFsSXRlbVByZXNlbnRlci5oIgorCisjaWYgUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoUkVWRUFMKQorCisjaW1wb3J0ICJXZWJWaWV3SW1wbC5oIgorI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtQdHIuaD4KKyNpbXBvcnQgPHBhbC9jb2NvYS9S
ZXZlYWxTb2Z0TGluay5oPgorCitAaW50ZXJmYWNlIFdLUmV2ZWFsSXRlbVByZXNlbnRlciAoKSA8
UlZQcmVzZW50ZXJIaWdobGlnaHREZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdL
UmV2ZWFsSXRlbVByZXNlbnRlciB7CisgICAgV2Vha1B0cjxXZWJLaXQ6OldlYlZpZXdJbXBsPiBf
aW1wbDsKKyAgICBSZXRhaW5QdHI8UlZQcmVzZW50ZXI+IF9wcmVzZW50ZXI7CisgICAgUmV0YWlu
UHRyPFJWUHJlc2VudGluZ0NvbnRleHQ+IF9wcmVzZW50aW5nQ29udGV4dDsKKyAgICBSZXRhaW5Q
dHI8UlZJdGVtPiBfaXRlbTsKKyAgICBDR1JlY3QgX2ZyYW1lSW5WaWV3OworICAgIENHUG9pbnQg
X21lbnVMb2NhdGlvbkluVmlldzsKKyAgICBCT09MIF9pc0hpZ2hsaWdodGluZ0l0ZW07Cit9CisK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXdJbXBsOihjb25zdCBXZWJLaXQ6OldlYlZp
ZXdJbXBsJilpbXBsIGl0ZW06KFJWSXRlbSAqKWl0ZW0gZnJhbWU6KENHUmVjdClmcmFtZUluVmll
dyBtZW51TG9jYXRpb246KENHUG9pbnQpbWVudUxvY2F0aW9uSW5WaWV3Cit7CisgICAgaWYgKCEo
c2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfaW1wbCA9
IG1ha2VXZWFrUHRyKGltcGwpOworICAgIF9wcmVzZW50ZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9j
UlZQcmVzZW50ZXJJbnN0YW5jZSgpIGluaXRdKTsKKyAgICBfcHJlc2VudGluZ0NvbnRleHQgPSBh
ZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVzZW50aW5nQ29udGV4dEluc3RhbmNlKCkgaW5pdFdpdGhQ
b2ludGVyTG9jYXRpb25JblZpZXc6bWVudUxvY2F0aW9uSW5WaWV3IGluVmlldzppbXBsLnZpZXco
KSBoaWdobGlnaHREZWxlZ2F0ZTpzZWxmXSk7CisgICAgX2l0ZW0gPSBpdGVtOworICAgIF9mcmFt
ZUluVmlldyA9IGZyYW1lSW5WaWV3OworICAgIF9tZW51TG9jYXRpb25JblZpZXcgPSBtZW51TG9j
YXRpb25JblZpZXc7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpc2hvd0NvbnRleHRN
ZW51Cit7CisgICAgaWYgKCFfaW1wbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB2aWV3
ID0gX2ltcGwtPnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gbWVudUl0ZW1zID0gcmV0YWluUHRyKFtfcHJlc2VudGVyIG1lbnVJdGVtc0Zvckl0ZW06
X2l0ZW0uZ2V0KCkgZG9jdW1lbnRDb250ZXh0Om5pbCBwcmVzZW50aW5nQ29udGV4dDpfcHJlc2Vu
dGluZ0NvbnRleHQuZ2V0KCkgb3B0aW9uczpuaWxdKTsKKyAgICBpZiAoIVttZW51SXRlbXMgY291
bnRdKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIG1lbnUgPSBhZG9wdE5TKFtbTlNNZW51
IGFsbG9jXSBpbml0V2l0aFRpdGxlOmVtcHR5U3RyaW5nKCldKTsKKyAgICBbbWVudSBzZXRBdXRv
ZW5hYmxlc0l0ZW1zOk5PXTsKKyAgICBbbWVudSBzZXRJdGVtQXJyYXk6bWVudUl0ZW1zLmdldCgp
XTsKKworICAgIGF1dG8gY2xpY2tMb2NhdGlvbkluV2luZG93ID0gW3ZpZXcgY29udmVydFBvaW50
Ol9tZW51TG9jYXRpb25JblZpZXcgdG9WaWV3Om5pbF07CisgICAgTlNFdmVudCAqZXZlbnQgPSBb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0
aW9uOmNsaWNrTG9jYXRpb25JbldpbmRvdyBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2lu
ZG93TnVtYmVyOnZpZXcud2luZG93LndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6
MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV07CisgICAgW05TTWVudSBwb3BVcENvbnRleHRNZW51
Om1lbnUuZ2V0KCkgd2l0aEV2ZW50OmV2ZW50IGZvclZpZXc6dmlld107CisKKyAgICBbc2VsZiBf
Y2FsbERpZEZpbmlzaFByZXNlbnRhdGlvbklmTmVlZGVkXTsKK30KKworLSAodm9pZClfY2FsbERp
ZEZpbmlzaFByZXNlbnRhdGlvbklmTmVlZGVkCit7CisgICAgaWYgKCFfaW1wbCB8fCBfaXNIaWdo
bGlnaHRpbmdJdGVtKQorICAgICAgICByZXR1cm47CisKKyAgICBfaW1wbC0+ZGlkRmluaXNoUHJl
c2VudGF0aW9uKHNlbGYpOworfQorCisjcHJhZ21hIG1hcmsgLSBSVlByZXNlbnRlckhpZ2hsaWdo
dERlbGVnYXRlCisKKy0gKE5TQXJyYXk8TlNWYWx1ZSAqPiAqKXJldmVhbENvbnRleHQ6KFJWUHJl
c2VudGluZ0NvbnRleHQgKiljb250ZXh0IHJlY3RzRm9ySXRlbTooUlZJdGVtICopaXRlbQorewor
ICAgIHJldHVybiBAWyBbTlNWYWx1ZSB2YWx1ZVdpdGhSZWN0Ol9mcmFtZUluVmlld10gXTsKK30K
KworLSAoQk9PTClyZXZlYWxDb250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICopY29udGV4dCBz
aG91bGRVc2VEZWZhdWx0SGlnaGxpZ2h0Rm9ySXRlbTooUlZJdGVtICopaXRlbQoreworICAgIHJl
dHVybiBzZWxmLnNob3VsZFVzZURlZmF1bHRIaWdobGlnaHQ7Cit9CisKKy0gKHZvaWQpcmV2ZWFs
Q29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4dCAqKWNvbnRleHQgc3RhcnRIaWdobGlnaHRpbmdJ
dGVtOihSVkl0ZW0gKilpdGVtCit7CisgICAgX2lzSGlnaGxpZ2h0aW5nSXRlbSA9IFlFUzsKK30K
KworLSAodm9pZClyZXZlYWxDb250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICopY29udGV4dCBz
dG9wSGlnaGxpZ2h0aW5nSXRlbTooUlZJdGVtICopaXRlbQoreworICAgIF9pc0hpZ2hsaWdodGlu
Z0l0ZW0gPSBOTzsKKworICAgIFtzZWxmIF9jYWxsRGlkRmluaXNoUHJlc2VudGF0aW9uSWZOZWVk
ZWRdOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIEVOQUJMRShSRVZF
QUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4Mzk5OWU1ZjMyOGVjMTQ3ZWY5ZmY0ZjUwM2E0YmU2ZGQwZThmODc4Li4zMTk3OTNlNzY5
NmM4MjYzNWYzOTYxZjI3ZmU2OTBkZjUyMzRmMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMjksNiArMjAyOSw3IEBACiAJCUY0
ODU3MEEzMjY0NEJFQzUwMEMwNUY3MSAvKiBUaW1lb3V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDg1NzBBMjI2NDRCRUM0MDBDMDVGNzEgLyogVGlt
ZW91dC5oICovOyB9OwogCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE4NDIx
NTgzQTAyMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggKi87IH07CiAJCUY0OTZBNDMxMUY1OEEyNzIw
MDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTZBNDJGMUY1OEEyNzIwMDRDMTc1NyAvKiBE
cmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCAqLzsgfTsKKwkJRjQ5NzRFNzYyNjVFQ0JCQzAwQjQ5
QjhDIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0NkVERUYyNjVFQjJCMDAwMzFEQThGIC8qIFdLUmV2ZWFs
SXRlbVByZXNlbnRlci5oICovOyB9OwogCQlGNDk3NUNGMjI2MjRCODBBMDAzQzYyNkUgLyogV0tJ
bWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5NzVDRjEyNjI0QjgwQTAwM0M2MjZFIC8qIFdLSW1h
Z2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJRjRBNkQ2QkMyNTRDQTNF
OTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEE2RDZCQjI1NENBM0U5MDBCNjVGQUEgLyog
U2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCAqLzsgfTsKIAkJRjRCQTMzRjIyNTc1N0U4OTAwMEEz
Q0U4IC8qIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QkEzM0YwMjU3NTdFODkwMDBBM0NF
OCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CkBAIC01OTcw
LDYgKzU5NzEsOCBAQAogCQlGNDQyOTE5MTFGQTU5MTA3MDAyQ0M5M0UgLyogX1dLQXR0YWNobWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tBdHRhY2htZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0NDI5MTkzMUZBNTkzMTEwMDJDQzkzRSAvKiBfV0tBdHRhY2htZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLQXR0YWNobWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjQ0MjkxOTUxRkE1OTQyQTAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnRJbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tBdHRhY2htZW50SW50ZXJuYWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ0NkVERUYyNjVFQjJCMDAwMzFEQThGIC8qIFdLUmV2ZWFs
SXRlbVByZXNlbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ0NkVERjEyNjVFQjNCNjAwMzFEQThGIC8q
IFdLUmV2ZWFsSXRlbVByZXNlbnRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLUmV2ZWFs
SXRlbVByZXNlbnRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0ODE1NjIy
Mzg3ODIwMDAwOTgyNjU3IC8qIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oOyBwYXRoID0gaW9zL1dLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQ0ODE1NjMyMzg3ODIwMDAwOTgyNjU3IC8qIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1t
OyBwYXRoID0gaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0NERGRUIwMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRp
bGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkljb25VdGlsaXRp
ZXMuaDsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMDg1MCw2ICsxMDg1Myw4IEBACiAJCQkJOTMyMUQ1ODcxQTM4RUU3NDAwODA1
MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSAqLywKIAkJCQkwRkNCNEU1QzE4
QkJFM0Q5MDAwRkNGQzkgLyogV0tQcmludGluZ1ZpZXcuaCAqLywKIAkJCQkwRkNCNEU1RDE4QkJF
M0Q5MDAwRkNGQzkgLyogV0tQcmludGluZ1ZpZXcubW0gKi8sCisJCQkJRjQ0NkVERUYyNjVFQjJC
MDAwMzFEQThGIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oICovLAorCQkJCUY0NDZFREYxMjY1
RUIzQjYwMDMxREE4RiAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIubW0gKi8sCiAJCQkJNTEzRTQ2
MkIxQUQ4Mzc1NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5oICov
LAogCQkJCTUxM0U0NjJDMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNlUGlja2Vy
RGVsZWdhdGUubW0gKi8sCiAJCQkJMkRENjdBMzMxQkQ4NjEwNjAwNTNCMjUxIC8qIFdLVGV4dEZp
bmRlckNsaWVudC5oICovLApAQCAtMTI5MDIsNiArMTI5MDcsNyBAQAogCQkJCTQ5OTAwMDI0MjRE
MjRDMjkwMDA0OUNCNCAvKiBXS1JlbmRlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMz
Njc2M0IxMzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDOEE1MDE1MTE3NjVGNTYwMDc1NzU3MyAvKiBXS1JldGFpblB0ci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRjQ5NzRFNzYyNjVFQ0JCQzAwQjQ5QjhDIC8qIFdLUmV2ZWFsSXRl
bVByZXNlbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNBMjZEODEyMTdBQkQ1QjAwRjk3QTM1
IC8qIFdLU2FmZUJyb3dzaW5nV2FybmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3RTM3Nzkx
OEU0QTRGRTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE3RTM3NzUxOEU0QTMzQTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZUhhbmRsZXIuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA0ZTdiOTgxZTEyMTFiZmYyOWU3
ZDczMDJhMjBkNTNjYjdiZmQ3M2E1Li5jNTJkZWNmYTRiM2I3YmI1OWY4NzhhZjFhYTgwOTk1MWMx
YTdlOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTI5NCw2ICsxMjk0LDE1IEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpoYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhjb25zdCBTdHJp
bmcmIG51bWJlciwgY29uc3QgSW50CiAKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9u
UmVzdWx0KGNvbnN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRQb2lu
dCYgY2xpY2tMb2NhdGlvbikKK3sKKyAgICBtX3BhZ2UuaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0
aW9uUmVzdWx0KGluZm8sIGNsaWNrTG9jYXRpb24pOworfQorCisjZW5kaWYKKwogI2lmIEVOQUJM
RShTRVJWSUNFX0NPTlRST0xTKQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlU2VsZWN0
aW9uU2VydmljZUNsaWNrKEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBjb25zdCBJbnRQb2ludCYgcG9pbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKaW5kZXggNzI5Y2NiMDc1YzY4ZGJlMGJjNzlhNTBmNTlmNmRkY2Y4NTg3OTM2Ny4u
ODc4YTU4NmI5NzRmODQxOTM3NGVmMmZjM2JmODRkZDQ1OWE5NzM4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtMzY2LDYgKzM2NiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlVGVsZXBo
b25lTnVtYmVyQ2xpY2soY29uc3QgU3RyaW5nJiBudW1iZXIsIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JikgZmluYWw7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICB2
b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBXZWJDb3JlOjpEYXRh
RGV0ZWN0b3JFbGVtZW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgZmluYWw7Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHZvaWQgaGFuZGxlU2Vs
ZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uJiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHRlbGVwaG9uZU51bWJlcnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgZmlu
YWw7CiAgICAgYm9vbCBoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0T25s
eSkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KaW5kZXggZjdiZGI5NTcwNGRjNDU2MDIzNTkyNjM4
MWRmNjA0ZjAyODBkMDEwZC4uYjczYTBkODlkY2QyY2U4ZDFlZTFjOGQ2OTQ2MDkwZGFkNGQ1YzFk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UGFnZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29h
L1dlYlBhZ2VDb2NvYS5tbQpAQCAtNDQ5LDYgKzQ0OSwxNSBAQCBQbGF0Zm9ybVhSU3lzdGVtUHJv
eHkmIFdlYlBhZ2U6OnhyU3lzdGVtUHJveHkoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCisKK3ZvaWQgV2ViUGFnZTo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9u
UmVzdWx0KGNvbnN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRQb2lu
dCYgY2xpY2tMb2NhdGlvbikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Okhh
bmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChpbmZvLCBjbGlja0xvY2F0aW9uKSk7Cit9
CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JN
KENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IDNjYjk3ZTNjYzNjZmNmMGQ5MzMxYzM0Mjc3NWY5ZWMzODdkYmI5ZDAuLmViY2YwYWE1MGFiNTg0
MGI3YmFhYzVmYWFlOTU5NjIwMzU5MmVmZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIzMyw2ICsyMzMsNyBAQCBzdHJ1Y3QgQ29tcG9zaXRpb25I
aWdobGlnaHQ7CiBzdHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CiBzdHJ1Y3QgQ29udGFjdElu
Zm87CiBzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVt
ZW50SW5mbzsKIHN0cnVjdCBEaWN0YXRpb25BbHRlcm5hdGl2ZTsKIHN0cnVjdCBFbGVtZW50Q29u
dGV4dDsKIHN0cnVjdCBHbG9iYWxGcmFtZUlkZW50aWZpZXI7CkBAIC0xMTc1LDYgKzExNzYsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRlbGVwaG9uZU51bWJlcnMs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0RF
VEVDVElPTikKKyAgICB2b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25z
dCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50Jik7CisjZW5kaWYKKwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0Rm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWUqKTsKIAogICAgIHZvaWQgc2V0TWFpbkZyYW1lUHJvZ3Jlc3NDb21wbGV0
ZWQoYm9vbCBjb21wbGV0ZWQpIHsgbV9tYWluRnJhbWVQcm9ncmVzc0NvbXBsZXRlZCA9IGNvbXBs
ZXRlZDsgfQo=
</data>
<flag name="commit-queue"
          id="451287"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429976</attachid>
            <date>2021-05-27 20:15:26 -0700</date>
            <delta_ts>2021-05-27 22:10:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226274-20210527201525.patch</filename>
            <type>text/plain</type>
            <size>43810</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU2YTU2Nzc0Mjc2ZmFi
MjZmNGU4OGU5OTIxY2E1MjEwOWY3YWZmZC4uZDRjZTU3YWY3NWYzMGViNDU4MzUxZTk0YTlmOTc0
ZTE4NmQ0MjljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA1LTI3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hv
dyBjb250ZXh0IG1lbnUgd2hlbiBjbGlja2luZyBvbiBkYXRhIGRldGVjdGlvbiByZXN1bHRzIGlu
IGltYWdlIG92ZXJsYXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjYyNzQKKyAgICAgICAgcmRhcjovLzc1NTA0OTU2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhvcnRvbiBhbmQgQWRpdHlhIEtlZXJ0aGkuCisKKyAgICAgICAgQWRkIGEgY2xp
ZW50IGhvb2sgdG8gYWxsb3cgSW1hZ2VPdmVybGF5Q29udHJvbGxlciB0byBjYWxsIG91dCBpbnRv
IHRoZSBXZWJLaXQgY2xpZW50IGxheWVyIHdoZW4gYSBkYXRhIGRldGVjdG9yCisgICAgICAgIGJ1
dHRvbiAod2l0aCBhIGNvcnJlc3BvbmRpbmcgRERTY2FubmVyUmVzdWx0KSBpcyBjbGlja2VkLiBT
ZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmhhbmRsZUNsaWNrRm9yRGF0YURl
dGVjdGlvblJlc3VsdCk6CisgICAgICAgICogcGFnZS9jb2NvYS9EYXRhRGV0ZWN0b3JFbGVtZW50
SW5mby5oOiBBZGRlZC4KKworICAgICAgICBJbnRyb2R1Y2UgYSBzdHJ1Y3QgdGhhdCB3cmFwcyBh
IGRhdGEgZGV0ZWN0aW9uIHJlc3VsdCBhbmQgdGhlIGFjY29tcGFueWluZyBlbGVtZW50IGJvdW5k
aW5nIHJlY3QsIG1haW5seSBzbyB0aGF0CisgICAgICAgIHdlIGhhdmUgYSBDKysgc3RydWN0IHdl
IGNhbiBwbHVtYiB0aHJvdWdoIHRoZSBjbGllbnQgbGF5ZXJzIChyYXRoZXIgdGhhbiBkaXJlY3Rs
eSBwYXNzaW5nIE9iamVjdGl2ZS1DIG9iamVjdHMKKyAgICAgICAgYXJvdW5kKS4KKworICAgICAg
ICAqIHBhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVEYXRhRGV0ZWN0b3JBY3Rpb24pOgor
CiAyMDIxLTA1LTI3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBO
ZXh0IHN0ZXAgdG93YXJkIHVzaW5nIHN0ZDo6b3B0aW9uYWwgZGlyZWN0bHkgaW5zdGVhZCBvZiB0
aHJvdWdoIFdURjo6T3B0aW9uYWwgdHlwZWRlZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggMzE2YTAz
NGQ0MjFlMTEzYjQyNDllOTRiZTQ0NDhjYjI2YTdjNjJiYy4uNDYzZjA1MWE0ZWI5NTA5OTQxNmEx
YTVhMGU0ZmYyYzFhODJkMDIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjEtMDUtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW21hY09TXSBTaG93IGNvbnRleHQgbWVudSB3aGVuIGNsaWNraW5nIG9uIGRhdGEgZGV0
ZWN0aW9uIHJlc3VsdHMgaW4gaW1hZ2Ugb3ZlcmxheXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjI3NAorICAgICAgICByZGFyOi8vNzU1MDQ5NTYK
KworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uIGFuZCBBZGl0eWEgS2VlcnRoaS4KKwor
ICAgICAgICBBZGQgZGVjbGFyYXRpb25zIGZvciBzb21lIFNQSSBvbiBSVkl0ZW0gYW5kIFJWUHJl
c2VudGVyLiBTZWUgV2ViS2l0IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHdoZXJlIHRoZXNl
IGFyZQorICAgICAgICB1c2VkLgorCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9SZXZlYWxTUEku
aDoKKwogMjAyMS0wNS0yNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgTmV4dCBzdGVwIHRvd2FyZCB1c2luZyBzdGQ6Om9wdGlvbmFsIGRpcmVjdGx5IGluc3RlYWQg
b2YgdGhyb3VnaCBXVEY6Ok9wdGlvbmFsIHR5cGVkZWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjc2MGQ2NDdkNjlj
ZjEyNmE0YjQwMjAwODMxYTM3NmU2YTI2NmUxMC4uOGQ1NjkxYzYxY2VmMjc5YTI3M2U3ZGU0OWEy
MzM1NDJjMTJmOGIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAyMS0wNS0yNyAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNo
b3cgY29udGV4dCBtZW51IHdoZW4gY2xpY2tpbmcgb24gZGF0YSBkZXRlY3Rpb24gcmVzdWx0cyBp
biBpbWFnZSBvdmVybGF5cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI2Mjc0CisgICAgICAgIHJkYXI6Ly83NTUwNDk1NgorCisgICAgICAgIFJldmll
d2VkIGJ5IFRpbSBIb3J0b24gYW5kIEFkaXR5YSBLZWVydGhpLgorCisgICAgICAgIEltcGxlbWVu
dCBhIFdlYktpdDIgY2xpZW50IGhvb2sgdG8gaGFuZGxlIGEgY2xpY2sgb3ZlciBhIGRhdGEgZGV0
ZWN0aW9uIHJlc3VsdCBieSB1c2luZyB0aGUgUmV2ZWFsIGZyYW1ld29yayB0bworICAgICAgICBj
b2xsZWN0IGFuZCBwcmVzZW50IGEgY29udGV4dCBtZW51LiBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0
YWlscy4KKworICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2Nv
YS5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxEYXRhRGV0ZWN0b3JFbGVtZW50SW5m
bz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RGF0YURldGVjdG9yRWxl
bWVudEluZm8+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaDoKKworICAgICAgICBBZGQgZW5jb2RpbmcgYW5kIGRlY29kaW5nIHN1cHBvcnQgZm9yIERh
dGFEZXRlY3RvckVsZW1lbnRJbmZvLgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnZpZXcgY29uc3QpOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRo
b2QgdG8gZ3JhYiB0aGUgdmlldyAoZWl0aGVyIGEgV0tWaWV3IG9yIFdLV2ViVmlldykgZnJvbSBh
IFdlYlZpZXdJbXBsLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0
aW9uUmVzdWx0KToKKworICAgICAgICBDcmVhdGUgYW5kIHByZXNlbnQgYSBuZXcgV0tSZXZlYWxJ
dGVtUHJlc2VudGVyIHVzaW5nIHRoZSBERFNjYW5uZXJSZXN1bHQuCisKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OmRpZEZpbmlzaFByZXNlbnRhdGlvbik6CisgICAgICAgICogVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6aGFuZGxlQ2xp
Y2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KToKKworICAgICAgICBBZGQgbW9yZSBwbHVtYmluZyB0
aHJvdWdoIHRoZSBVSSBwcm9jZXNzIHRvIGhhbmRsZSBjbGlja2luZyBvbiBhIGRhdGEgZGV0ZWN0
aW9uIHJlc3VsdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aGFu
ZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dLUmV2ZWFsSXRlbVByZXNlbnRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dLUmV2ZWFsSXRlbVByZXNlbnRlci5tbTogQWRkZWQuCisKKyAgICAgICAgQWRkIGEgaGVscGVy
IGNsYXNzIHRoYXQgdGFrZXMgYW4gUlZJdGVtIGFuZCBpcyBjYXBhYmxlIG9mIHByZXNlbnRpbmcg
YSBjb250ZXh0IG1lbnUgZm9yIHRoZSBpdGVtLCBvbiBiZWhhbGYgb2YKKyAgICAgICAgV2ViVmll
d0ltcGwuIEZvciB0aGUgdGltZSBiZWluZywgdGhpcyBpcyBvbmx5IHVzZWQgb24gbWFjT1MgKGFu
ZCB0aHVzLCBkaXJlY3RseSBob2xkcyBhIFdlYWtQdHIgdG8gYQorICAgICAgICBXZWJWaWV3SW1w
bCkuIEhvd2V2ZXIsIHdlIG1heSB3YW50IHRvIHVzZSB0aGlzIGluIHRoZSBmdXR1cmUgZm9yIE1h
YyBDYXRhbHlzdCBhcyB3ZWxsLCBpbiB3aGljaCBjYXNlIHdlIHNob3VsZAorICAgICAgICBtYWtl
IHRoaXMgd29yayB2aWEgYSBnZW5lcmljIFdLUmV2ZWFsSXRlbVByZXNlbnRlckRlbGVnYXRlIHBy
b3RvY29sIGluc3RlYWQuCisKKyAgICAgICAgKC1bV0tSZXZlYWxJdGVtUHJlc2VudGVyIGluaXRX
aXRoV2ViVmlld0ltcGw6aXRlbTpmcmFtZTptZW51TG9jYXRpb246XSk6CisgICAgICAgICgtW1dL
UmV2ZWFsSXRlbVByZXNlbnRlciBzaG93Q29udGV4dE1lbnVdKToKKyAgICAgICAgKC1bV0tSZXZl
YWxJdGVtUHJlc2VudGVyIF9jYWxsRGlkRmluaXNoUHJlc2VudGF0aW9uSWZOZWVkZWRdKToKKwor
ICAgICAgICBDYWxsIG91dCB0byB0aGUgV2ViVmlld0ltcGwgdG8gcmVzZXQgaXRzIGN1cnJlbnQg
cmV2ZWFsIGl0ZW0gcHJlc2VudGVyIGFmdGVyIHdlJ3ZlIGZpbmlzaGVkIHByZXNlbnRhdGlvbi4g
VGhpcworICAgICAgICBoYXBwZW5zIGVpdGhlciBhZnRlciB3ZSd2ZSBkaXNtaXNzZWQgdGhlIGNv
bnRleHQgbWVudSAoaWYgbm8gaXRlbSBpcyBoaWdobGlnaHRlZCksIG9yIGFmdGVyIHdlJ3ZlIGZp
bmlzaGVkCisgICAgICAgIGhpZ2hsaWdodGluZyB0aGUgaXRlbS4KKworICAgICAgICAoLVtXS1Jl
dmVhbEl0ZW1QcmVzZW50ZXIgcmV2ZWFsQ29udGV4dDpyZWN0c0Zvckl0ZW06XSk6CisgICAgICAg
ICgtW1dLUmV2ZWFsSXRlbVByZXNlbnRlciByZXZlYWxDb250ZXh0OnNob3VsZFVzZURlZmF1bHRI
aWdobGlnaHRGb3JJdGVtOl0pOgorICAgICAgICAoLVtXS1JldmVhbEl0ZW1QcmVzZW50ZXIgcmV2
ZWFsQ29udGV4dDpzdGFydEhpZ2hsaWdodGluZ0l0ZW06XSk6CisgICAgICAgICgtW1dLUmV2ZWFs
SXRlbVByZXNlbnRlciByZXZlYWxDb250ZXh0OnN0b3BIaWdobGlnaHRpbmdJdGVtOl0pOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDIxLTA1LTI3ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBOZXh0IHN0ZXAgdG93YXJk
IHVzaW5nIHN0ZDo6b3B0aW9uYWwgZGlyZWN0bHkgaW5zdGVhZCBvZiB0aHJvdWdoIFdURjo6T3B0
aW9uYWwgdHlwZWRlZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvUmV2ZWFsU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZlYWxT
UEkuaAppbmRleCA1ZTY4MzA3ODM5ZDM5ZGI2M2Y3ZDg2MDdlYzM5YTEwYjM5OTIwMDE3Li40MDBh
YmRmZWQ5Njk0ZTM5OGIwZjI5NmFlZTZkYWEyNzdlMWZmNTYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaApAQCAtNDIsMTEgKzQyLDEzIEBACiAjaW1w
b3J0IDxSZXZlYWxDb3JlL1JldmVhbENvcmUuaD4KICNlbHNlIC8vIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCiAKLQorQGNsYXNzIEREU2Nhbm5lclJlc3VsdDsKK0BjbGFzcyBOU01lbnVJdGVtOwog
QHByb3RvY29sIFJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGU7CiAKIEBpbnRlcmZhY2UgUlZJ
dGVtIDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
VGV4dDooTlNTdHJpbmcgKil0ZXh0IHNlbGVjdGVkUmFuZ2U6KE5TUmFuZ2Upc2VsZWN0ZWRSYW5n
ZSBOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRERS
ZXN1bHQ6KEREU2Nhbm5lclJlc3VsdCAqKXJlc3VsdCBOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVS
OwogQHByb3BlcnR5IChyZWFkb25seSwgbm9uYXRvbWljKSBOU1JhbmdlIGhpZ2hsaWdodFJhbmdl
OwogQGVuZAogCkBAIC02OSwxMyArNzEsMTQgQEAKIEBlbmQKICNlbmRpZgogCi1AaW50ZXJmYWNl
IFJWRG9jdW1lbnRDb250ZXh0IDogTlNPYmplY3QgPCBOU1NlY3VyZUNvZGluZyA+CitAaW50ZXJm
YWNlIFJWRG9jdW1lbnRDb250ZXh0IDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgogQGVuZAog
CiBAaW50ZXJmYWNlIFJWUHJlc2VudGVyIDogTlNPYmplY3QKICNpZiBQTEFURk9STShNQUMpCiAt
IChpZDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KWFuaW1hdGlvbkNvbnRy
b2xsZXJGb3JJdGVtOihSVkl0ZW0gKilpdGVtIGRvY3VtZW50Q29udGV4dDooUlZEb2N1bWVudENv
bnRleHQgKilkb2N1bWVudENvbnRleHQgcHJlc2VudGluZ0NvbnRleHQ6KFJWUHJlc2VudGluZ0Nv
bnRleHQgKilwcmVzZW50aW5nQ29udGV4dCBvcHRpb25zOihOU0RpY3Rpb25hcnkgKilvcHRpb25z
OwogLSAoQk9PTClyZXZlYWxJdGVtOihSVkl0ZW0gKilpdGVtIGRvY3VtZW50Q29udGV4dDooUlZE
b2N1bWVudENvbnRleHQgKilkb2N1bWVudENvbnRleHQgcHJlc2VudGluZ0NvbnRleHQ6KFJWUHJl
c2VudGluZ0NvbnRleHQgKilwcmVzZW50aW5nQ29udGV4dCBvcHRpb25zOihOU0RpY3Rpb25hcnkg
KilvcHRpb25zOworLSAoTlNBcnJheTxOU01lbnVJdGVtICo+ICopbWVudUl0ZW1zRm9ySXRlbToo
UlZJdGVtICopaXRlbSBkb2N1bWVudENvbnRleHQ6KFJWRG9jdW1lbnRDb250ZXh0ICopZG9jdW1l
bnRDb250ZXh0IHByZXNlbnRpbmdDb250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICopcHJlc2Vu
dGluZ0NvbnRleHQgb3B0aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9uczsKICNlbmRpZiAvLyBQ
TEFURk9STShNQUMpCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MDJkMDliNjQyYjUxMmMzMzc5NTBiYmMyNGMwM2I4
OTU4ZTBkOWM1Li4wYWJkODY0OWNhMDg0YTczYTVjNmJmNWI3ZWFiNTM4NjExMzI2YzgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01MzQwLDYgKzUzNDAsNyBAQAogCQlGNDQyQzM1OTIzRTNBREQyMDA0OTk1ODIgLyogQ29tcG9z
aXRpb25IaWdobGlnaHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0NDJDMzU3MjNFM0FDNTEwMDQ5OTU4MiAvKiBDb21wb3NpdGlvbkhpZ2hsaWdodC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0NDZF
RERGMjY1REFGRTMwMDMxREE4RiAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0c1N0b3JhZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDZFREREMjY1REFF
M0YwMDMxREE4RiAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0c1N0b3JhZ2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDQ2RURFMTI2NURCMUU1MDAz
MURBOEYgLyogSW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDZFREUwMjY1REIx
RTUwMDMxREE4RiAvKiBJbWFnZU92ZXJsYXlEYXRhRGV0ZWN0aW9uUmVzdWx0SWRlbnRpZmllci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUY0NDZF
REU4MjY1REQ4OTAwMDMxREE4RiAvKiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0NkVERTcyNjVERDg5MDAw
MzFEQThGIC8qIERhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ0QTVGNTkxRkVEMzhGMjAwN0Y1OTQ0IC8q
IExlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDRBNUY1NzFGRUQzODMwMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0
ZWJvYXJkVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlGNDRFQkJEOTFEQjVEMjE0MDAyNzczMzQgLyogU3RhdGljUmFuZ2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEVCQkQ4MURCNUQyMTQw
MDI3NzMzNCAvKiBTdGF0aWNSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUY0NTc3NUNFMjQxNDM3RDUwMDJERjFBMCAvKiBJbmxpbmVQYXRo
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1
Nzc1Q0QyNDE0MzdENTAwMkRGMUEwIC8qIElubGluZVBhdGhEYXRhLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE2ODEzLDYgKzE2ODE0LDcgQEAK
IAkJRjQ0MkMzNTcyM0UzQUM1MTAwNDk5NTgyIC8qIENvbXBvc2l0aW9uSGlnaGxpZ2h0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENvbXBvc2l0aW9uSGlnaGxpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0NDZFREREMjY1REFFM0YwMDMxREE4RiAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0
c1N0b3JhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NDZFREUwMjY1REIxRTUwMDMxREE4RiAv
KiBJbWFnZU92ZXJsYXlEYXRhRGV0ZWN0aW9uUmVzdWx0SWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbWFnZU92ZXJsYXlEYXRhRGV0ZWN0aW9uUmVzdWx0SWRlbnRpZmllci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNDQ2RURFNzI2NUREODkwMDAzMURBOEYgLyogRGF0YURl
dGVjdG9yRWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YURldGVjdG9yRWxlbWVudElu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTVGNTcxRkVEMzgzMDAwN0Y1
OTQ0IC8qIExlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeU5T
UGFzdGVib2FyZFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEVCQkQ2
MURCNUQxQjYwMDI3NzMzNCAvKiBTdGF0aWNSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU3RhdGljUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRFQkJE
ODFEQjVEMjE0MDAyNzczMzQgLyogU3RhdGljUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RhdGljUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIxODk2LDYgKzIxODk4LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThGIC8qIERhdGFEZXRlY3Rpb25SZXN1bHRzU3Rv
cmFnZS5oICovLAorCQkJCUY0NDZFREU3MjY1REQ4OTAwMDMxREE4RiAvKiBEYXRhRGV0ZWN0b3JF
bGVtZW50SW5mby5oICovLAogCQkJCUY0NDZFREUwMjY1REIxRTUwMDMxREE4RiAvKiBJbWFnZU92
ZXJsYXlEYXRhRGV0ZWN0aW9uUmVzdWx0SWRlbnRpZmllci5oICovLAogCQkJCTQxM0UwMDdCMURC
MEU3MDcwMDIzNDFEMiAvKiBNZW1vcnlSZWxlYXNlQ29jb2EubW0gKi8sCiAJCQkJQUQ1QTBDMjIx
REVDQTM3RTAwNzA3MDU0IC8qIFBlcmZvcm1hbmNlTG9nZ2luZ0NvY29hLm1tICovLApAQCAtMzIy
MDYsNiArMzIyMDksNyBAQAogCQkJCUJFMjM0ODBEMThBOTg3MTQwMEU0QjZFOCAvKiBEYXRhQ3Vl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTIyN0RGMTFDM0M2REYxMDBGNUVENTQgLyogRGF0YURl
dGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ0NkVEREYyNjVEQUZFMzAwMzFEQThGIC8q
IERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ0NkVE
RTgyNjVERDg5MDAwMzFEQThGIC8qIERhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGNEIyQTkwOTI2NTAzMEJBMDA5RTcyODYgLyogRGF0YURldGVjdG9ySGlnaGxp
Z2h0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzRBNTMzNTI1NjA1QTU2MDAyOEM1OTIgLyogRGF0
YURldGVjdG9yVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTU4QjQ1QkEyMEFEMDdERDAwOTkx
MDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAppbmRleCA2ZWI3NTZlYWZlODQxN2U5YzcxMzFkY2E4N2RlMzdiOGNi
OWM1YzZhLi5jOGY4MTI3YWVmNDQzMjg1MjVkZjIxNGU5NjAzNDEyZTYwMjZkNGJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyMSw2ICsxMjEsNyBAQCBjbGFzcyBNZWRpYVBs
YXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazsKIHN0cnVjdCBBcHBIaWdo
bGlnaHQ7CiBzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKIHN0cnVjdCBDb250ZW50UnVsZUxp
c3RSZXN1bHRzOworc3RydWN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvOwogc3RydWN0IERhdGVU
aW1lQ2hvb3NlclBhcmFtZXRlcnM7CiBzdHJ1Y3QgR3JhcGhpY3NEZXZpY2VBZGFwdGVyOwogc3Ry
dWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CkBAIC01MDIsNiArNTAzLDEw
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGVsZXBob25lTnVtYmVyQ2xpY2so
Y29uc3QgU3RyaW5nJiwgY29uc3QgSW50UG9pbnQmKSB7IH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KERBVEFfREVURUNUSU9OKQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVDbGlja0ZvckRhdGFEZXRl
Y3Rpb25SZXN1bHQoY29uc3QgRGF0YURldGVjdG9yRWxlbWVudEluZm8mLCBjb25zdCBJbnRQb2lu
dCYpIHsgfQorI2VuZGlmCisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKEZyYW1lU2VsZWN0aW9uJiwgY29u
c3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBJbnRQb2ludCYpIHsgfQogICAgIHZpcnR1YWwgYm9v
bCBoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgLyppc1RleHRPbmx5Ki8pIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29h
L0RhdGFEZXRlY3RvckVsZW1lbnRJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL0Rh
dGFEZXRlY3RvckVsZW1lbnRJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY2YThkOGIyYjA3NjhhZjc1Mjc0
MDhjZGFhNjM2OTU1MTc1MmQ3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY29jb2EvRGF0YURldGVjdG9yRWxlbWVudEluZm8uaApAQCAtMCwwICsxLDQ1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKKyNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBERFNjYW5uZXJSZXN1bHQ7CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW50UmVjdDsKKworc3RydWN0IERhdGFEZXRl
Y3RvckVsZW1lbnRJbmZvIHsKKyAgICBSZXRhaW5QdHI8RERTY2FubmVyUmVzdWx0PiByZXN1bHQ7
CisgICAgSW50UmVjdCBlbGVtZW50Qm91bmRzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0KaW5kZXggYjExNWZm
ZmIzNTc5MDc0MTBlNGQzMThlYjQyMGU2Njk5MDQzYzQzNi4uZTg0ZWRmOGQxMzY5YTZlNGYwYzA1
OTkyNmQ5NTExNGI1MTQ5ODBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
SW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCkBAIC0yOSw5ICsyOSwxMiBAQAogI2lmIFBM
QVRGT1JNKE1BQykKIAogI2ltcG9ydCAiRGF0YURldGVjdGlvbi5oIgorI2ltcG9ydCAiRGF0YURl
dGVjdGlvblJlc3VsdHNTdG9yYWdlLmgiCisjaW1wb3J0ICJEYXRhRGV0ZWN0b3JFbGVtZW50SW5m
by5oIgogI2ltcG9ydCAiRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJIVE1MRWxlbWVudC5oIgogI2lt
cG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJJbWFnZU92ZXJsYXlEYXRhRGV0ZWN0aW9uUmVz
dWx0SWRlbnRpZmllci5oIgogI2ltcG9ydCAiSW50UmVjdC5oIgogI2ltcG9ydCAiUGFnZS5oIgog
I2ltcG9ydCAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCkBAIC0xNDcsOCArMTUwLDI3IEBAIGJvb2wg
SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6aGFuZGxlRGF0YURldGVjdG9yQWN0aW9uKGNvbnN0IEhU
TUxFbGVtZW50JiBlbGVtZW50CiAgICAgaWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIC8vIEZJWE1FOiBDYWxsIG91dCB0byB0aGUgY2xpZW50IGxheWVyIHRvIGhh
bmRsZSB0aGUgY2xpY2suCi0gICAgVU5VU0VEX1BBUkFNKGxvY2F0aW9uSW5Db250ZW50cyk7Cisg
ICAgYXV0byBpZGVudGlmaWVyVmFsdWUgPSBwYXJzZUludGVnZXI8dWludDY0X3Q+KGVsZW1lbnQu
YXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnhfYXBwbGVfZGF0YV9k
ZXRlY3RvcnNfcmVzdWx0QXR0cikpOworICAgIGlmICghaWRlbnRpZmllclZhbHVlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRp
ZmllcjxJbWFnZU92ZXJsYXlEYXRhRGV0ZWN0aW9uUmVzdWx0SWRlbnRpZmllclR5cGU+KCppZGVu
dGlmaWVyVmFsdWUpOworICAgIGlmICghaWRlbnRpZmllci5pc1ZhbGlkKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGF1dG8qIGRhdGFEZXRlY3Rpb25SZXN1bHRzID0gZnJhbWUtPmRh
dGFEZXRlY3Rpb25SZXN1bHRzSWZFeGlzdHMoKTsKKyAgICBpZiAoIWRhdGFEZXRlY3Rpb25SZXN1
bHRzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGRhdGFEZXRlY3Rpb25SZXN1
bHQgPSByZXRhaW5QdHIoZGF0YURldGVjdGlvblJlc3VsdHMtPmltYWdlT3ZlcmxheURhdGFEZXRl
Y3Rpb25SZXN1bHQoaWRlbnRpZmllcikpOworICAgIGlmICghZGF0YURldGVjdGlvblJlc3VsdCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LnJl
bmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgbV9wYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25S
ZXN1bHQoeyBXVEZNb3ZlKGRhdGFEZXRlY3Rpb25SZXN1bHQpLCBmcmFtZVZpZXctPmNvbnRlbnRz
VG9XaW5kb3cocmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCkpIH0sIGZyYW1lVmll
dy0+Y29udGVudHNUb1dpbmRvdyhsb2NhdGlvbkluQ29udGVudHMpKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNDb2NvYS5tbQppbmRleCAzNjQzNjg4NmVlN2FhZTdkYmNmZDlmYjE4NjVl
YzkwN2ZjMDFmN2YwLi4wMjMzZmQ3YzcyYzVkMmMwZmFiYzdkYmYwODhiZTJhMmRkNTBlNjQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2Rl
cnNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1l
bnRDb2RlcnNDb2NvYS5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiQXJndW1lbnRDb2Rl
cnNDb2NvYS5oIgogI2ltcG9ydCA8Q29yZVRleHQvQ29yZVRleHQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQXR0cmlidXRlZFN0cmluZy5oPgorI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0b3JFbGVt
ZW50SW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9EaWN0aW9uYXJ5UG9wdXBJbmZvLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0ZvbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZXMuaD4K
QEAgLTYxNCw2ICs2MTUsMzAgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdD46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGUKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwordm9pZCBBcmd1bWVudENv
ZGVyPERhdGFEZXRlY3RvckVsZW1lbnRJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiBpbmZvKQoreworICAgIGVuY29kZXIgPDwgaW5m
by5yZXN1bHQuZ2V0KCk7CisgICAgZW5jb2RlciA8PCBpbmZvLmVsZW1lbnRCb3VuZHM7Cit9CisK
K09wdGlvbmFsPERhdGFEZXRlY3RvckVsZW1lbnRJbmZvPiBBcmd1bWVudENvZGVyPERhdGFEZXRl
Y3RvckVsZW1lbnRJbmZvPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgYXV0byBy
ZXN1bHQgPSBJUEM6OmRlY29kZTxERFNjYW5uZXJSZXN1bHQ+KGRlY29kZXIsIFBBTDo6Z2V0RERT
Y2FubmVyUmVzdWx0Q2xhc3MoKSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxJbnRSZWN0PiBlbGVtZW50Qm91bmRzOworICAg
IGRlY29kZXIgPj4gZWxlbWVudEJvdW5kczsKKyAgICBpZiAoIWVsZW1lbnRCb3VuZHMpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gc3RkOjptYWtlX29wdGlvbmFs
PERhdGFEZXRlY3RvckVsZW1lbnRJbmZvPih7IFdURk1vdmUoKnJlc3VsdCksIFdURk1vdmUoKmVs
ZW1lbnRCb3VuZHMpIH0pOworfQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQor
CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIHZvaWQgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dD46OmVuY29kZVBsYXRmb3JtRGF0
YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFy
Z2V0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApp
bmRleCA5NjNmYjQ4YzlhMDk5OTg5NWFhYmY5ZmUyMmNiZjNmNDc2MWIwMmY4Li5hYjBjMjYzNjMy
NzNmYTIxNDBlYTY1OWM4NmNmYzUwOGQzMjhkYmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTQzLDYgKzE0Myw3IEBAIHN0cnVjdCBBdHRy
aWJ1dGVkU3RyaW5nOwogc3RydWN0IENhY2hlUXVlcnlPcHRpb25zOwogc3RydWN0IENoYXJhY3Rl
clJhbmdlOwogc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOworc3RydWN0IERhdGFEZXRlY3Rv
ckVsZW1lbnRJbmZvOwogc3RydWN0IERpY3RhdGlvbkFsdGVybmF0aXZlOwogc3RydWN0IERpY3Rp
b25hcnlQb3B1cEluZm87CiBzdHJ1Y3QgRXZlbnRUcmFja2luZ1JlZ2lvbnM7CkBAIC04MDQsNiAr
ODA1LDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2NyaXB0
QnVmZmVyPiB7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEJ1ZmZlcj4gZGVj
b2RlKERlY29kZXImKTsKIH07CiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKK3RlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudElu
Zm8+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRh
dGFEZXRlY3RvckVsZW1lbnRJbmZvJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkRh
dGFEZXRlY3RvckVsZW1lbnRJbmZvPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKworI2VuZGlmCisK
ICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246Ok1lc3NhZ2U+IHsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6
TWVzc2FnZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGIyNjU5OWJhOGU3MDY0NjU0YjQ4
YjQ1ODg4NjBmOTk4ODczYTFjYjAuLmIxNDgwMTNjOTA0NjVmOTMyZmM2YWQ5NGIxZTdhZjk0OTQx
MjM4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTUyNSw2ICs1MjUsNyBAQCBVSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KIFVJUHJvY2Vzcy9tYWMvV0tJ
bWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5tbQogVUlQcm9jZXNzL21hYy9XS0ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0K
K1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tCiBVSVByb2Nlc3MvbWFjL1dL
U2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbQogVUlQcm9jZXNzL21hYy9XS1RleHRGaW5k
ZXJDbGllbnQubW0KIFVJUHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCmluZGV4IDM0NjgwM2E5ZThiMDU5NGY4NDAzMDIyMTI3N2E5NzdiYmM3MTAwMzAuLmU3OGVl
YmU3MDU1ZGIwODA3YjdkN2QyNzU0ZTU3ZTI1NGZlZGMyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC05NSwxMCArOTUs
MTcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogI2lm
IEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldERhdGFEZXRl
Y3Rpb25SZXN1bHQoY29uc3QgRGF0YURldGVjdGlvblJlc3VsdCYgZGF0YURldGVjdGlvblJlc3Vs
dCkKIHsKICAgICBtX2RhdGFEZXRlY3Rpb25SZXN1bHRzID0gZGF0YURldGVjdGlvblJlc3VsdC5y
ZXN1bHRzOwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0
aW9uUmVzdWx0KGNvbnN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRQ
b2ludCYgY2xpY2tMb2NhdGlvbikKK3sKKyAgICBwYWdlQ2xpZW50KCkuaGFuZGxlQ2xpY2tGb3JE
YXRhRGV0ZWN0aW9uUmVzdWx0KGluZm8sIGNsaWNrTG9jYXRpb24pOworfQorCiAjZW5kaWYKIAog
dm9pZCBXZWJQYWdlUHJveHk6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpSZWNlbnRTZWFyY2g+JiBzZWFyY2hJdGVtcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IGJkOGQ4MmM0MTU3
MzExNDY0ZjRlYzU1ZDBlMTQ5ZGZlODk4NzBiYTEuLjcyZjUwMTdlZDA0NmQ4ZTRkMTliNjc0ZTUy
YjdjYmJhMjc3MTQ5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaApAQCAtNjEsNiArNjEsNyBAQCBPQkpDX0NMQVNTIFdLRE9NUGFzdGVNZW51RGVsZWdh
dGU7CiBPQkpDX0NMQVNTIFdLRWRpdG9yVW5kb1RhcmdldDsKIE9CSkNfQ0xBU1MgV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlcjsKIE9CSkNfQ0xBU1MgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyOworT0JKQ19DTEFTUyBXS1JldmVhbEl0ZW1QcmVzZW50ZXI7CiBPQkpDX0NMQVNTIFdLU2Fm
ZUJyb3dzaW5nV2FybmluZzsKIE9CSkNfQ0xBU1MgV0tTaGFyZVNoZWV0OwogT0JKQ19DTEFTUyBX
S1ZpZXdMYXlvdXRTdHJhdGVneTsKQEAgLTk2LDYgKzk3LDcgQEAgY2xhc3MgUGFnZUNvbmZpZ3Vy
YXRpb247CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U7
CiBjbGFzcyBJbnRQb2ludDsKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsKIHN0cnVj
dCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogCiAjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJW
SUNFUykgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0xODksNiArMTkxLDcgQEAgcHVibGlj
OgogICAgIE5TV2luZG93ICp3aW5kb3coKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIHsg
cmV0dXJuIG1fcGFnZS5nZXQoKTsgfQorICAgIE5TVmlldyAqdmlldygpIGNvbnN0IHsgcmV0dXJu
IG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKTsgfQogCiAgICAgdm9pZCBwcm9jZXNzV2lsbFN3YXAo
KTsKICAgICB2b2lkIHByb2Nlc3NEaWRFeGl0KCk7CkBAIC02NjksNiArNjcyLDE0IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRm9yVGVzdGluZyhNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZSopOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCisgICAgdm9pZCBoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQo
Y29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYpOworI2VuZGlmCisKKyNpZiBFTkFCTEUoUkVWRUFMKQorICAgIHZvaWQgZGlkRmlu
aXNoUHJlc2VudGF0aW9uKFdLUmV2ZWFsSXRlbVByZXNlbnRlciAqKTsKKyNlbmRpZgorCiBwcml2
YXRlOgogI2lmIEhBVkUoVE9VQ0hfQkFSKQogICAgIHZvaWQgc2V0VXBUZXh0VG91Y2hCYXIoTlNU
b3VjaEJhciAqKTsKQEAgLTg4NSw2ICs4OTYsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGU+IG1fY29vcmRpbmF0b3JGb3JUZXN0aW5n
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVWRUFMKQorICAgIFJldGFpblB0cjxXS1JldmVhbEl0
ZW1QcmVzZW50ZXI+IG1fcmV2ZWFsSXRlbVByZXNlbnRlcjsKKyNlbmRpZgorCiAjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJWaWV3SW1wbEFk
ZGl0aW9uc0FmdGVyLmg+CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KaW5kZXggNWE4YTYzMjFhNGRiOGRmYzNkYTM4NWViYTBkMTE5NjU0MDI3
N2NlYy4uMTZmYmY4ZjhjYjVlOGY0NjMxNzllNzQ2MmQxOTdiOGVjNWJjMmQxYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTY1LDYgKzY1LDcg
QEAKICNpbXBvcnQgIldLTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgIldLUERGSFVEVmlldy5oIgog
I2ltcG9ydCAiV0tQcmludGluZ1ZpZXcuaCIKKyNpbXBvcnQgIldLUmV2ZWFsSXRlbVByZXNlbnRl
ci5oIgogI2ltcG9ydCAiV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1wb3J0IDxXZWJLaXQv
V0tTaGFyZVNoZWV0Lmg+CiAjaW1wb3J0ICJXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCIK
QEAgLTg5LDYgKzkwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvQ29sb3JNYWMuaD4KICNpbXBvcnQg
PFdlYkNvcmUvQ29sb3JTZXJpYWxpemF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbXBvc2l0
aW9uSGlnaGxpZ2h0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvckVsZW1lbnRJbmZv
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Rlc3RpbmF0aW9uQ29sb3JTcGFjZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9EaWN0aW9uYXJ5TG9va3VwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+
CkBAIC0xNTUsNiArMTU3LDggQEAgU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFM
KFRyYW5zbGF0aW9uVUlTZXJ2aWNlcykKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChUcmFuc2xh
dGlvblVJU2VydmljZXMsIExUVUlUcmFuc2xhdGlvblZpZXdDb250cm9sbGVyKQogI2VuZGlmCiAK
KyNpbXBvcnQgPHBhbC9jb2NvYS9SZXZlYWxTb2Z0TGluay5oPgorCiAjaWYgSEFWRShUT1VDSF9C
QVIpICYmIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikKIFNPRlRfTElOS19G
UkFNRVdPUksoQVZLaXQpCiBTT0ZUX0xJTktfQ0xBU1MoQVZLaXQsIEFWVG91Y2hCYXJQbGF5YmFj
a0NvbnRyb2xzUHJvdmlkZXIpCkBAIC01NzUxLDYgKzU3NTUsMzIgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6ZW5kUHJldmlld1BhbmVsQ29udHJvbChRTFByZXZpZXdQYW5lbCAqcGFuZWwpCiAjZW5kaWYK
IH0KIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwordm9pZCBXZWJWaWV3SW1wbDo6aGFu
ZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IERhdGFEZXRlY3RvckVsZW1lbnRJ
bmZvJiBpbmZvLCBjb25zdCBJbnRQb2ludCYgY2xpY2tMb2NhdGlvbikKK3sKKyNpZiBFTkFCTEUo
UkVWRUFMKQorICAgIG1fcmV2ZWFsSXRlbVByZXNlbnRlciA9IGFkb3B0TlMoW1tXS1JldmVhbEl0
ZW1QcmVzZW50ZXIgYWxsb2NdIGluaXRXaXRoV2ViVmlld0ltcGw6KnRoaXMgaXRlbTphZG9wdE5T
KFtQQUw6OmFsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0V2l0aEREUmVzdWx0OmluZm8ucmVzdWx0
LmdldCgpXSkuZ2V0KCkgZnJhbWU6aW5mby5lbGVtZW50Qm91bmRzIG1lbnVMb2NhdGlvbjpjbGlj
a0xvY2F0aW9uXSk7CisgICAgW21fcmV2ZWFsSXRlbVByZXNlbnRlciBzZXRTaG91bGRVc2VEZWZh
dWx0SGlnaGxpZ2h0Ok5PXTsKKyAgICBbbV9yZXZlYWxJdGVtUHJlc2VudGVyIHNob3dDb250ZXh0
TWVudV07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShpbmZvKTsKKyAgICBVTlVTRURfUEFSQU0o
Y2xpY2tMb2NhdGlvbik7CisjZW5kaWYKK30KKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKKworI2lmIEVOQUJMRShSRVZFQUwpCisKK3ZvaWQgV2ViVmlld0ltcGw6OmRpZEZpbmlz
aFByZXNlbnRhdGlvbihXS1JldmVhbEl0ZW1QcmVzZW50ZXIgKnByZXNlbnRlcikKK3sKKyAgICBp
ZiAocHJlc2VudGVyID09IG1fcmV2ZWFsSXRlbVByZXNlbnRlcikKKyAgICAgICAgbV9yZXZlYWxJ
dGVtUHJlc2VudGVyID0gbmlsOworfQorCisjZW5kaWYgLy8gRU5BQkxFKFJFVkVBTCkKKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggYjQ5MTI3MDg5ZDQyODc5NTBmNTRkNjI0ODhjMDlk
OTgwNDM4ZTljOS4uMzFiODA4MDA5YjA3NzdhMWJhMDZkNTI4NmVhZDdmMmYwMDI3M2QxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTEyLDYgKzExMiw3IEBAIGVudW0g
Y2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogCiBzdHJ1Y3QgQXBwSGlnaGxp
Z2h0Oworc3RydWN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvOwogc3RydWN0IERpY3Rpb25hcnlQ
b3B1cEluZm87CiBzdHJ1Y3QgVGV4dEluZGljYXRvckRhdGE7CiBzdHJ1Y3QgVmlld3BvcnRBdHRy
aWJ1dGVzOwpAQCAtNjI2LDYgKzYyNywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNh
bkhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oY29uc3QgV2ViQ29yZTo6VHJhbnNsYXRp
b25Db250ZXh0TWVudUluZm8mKSA9IDA7CiAjZW5kaWYKKworI2lmIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0
KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmKSB7IH0KKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDAzMjNmNjlmMGQ2MTI3MGM3Y2Zh
NzJiNjNiNWZhZjcyOTQ4Nzk0YjcuLjUwNDg1YTNkNmNmYzk2NWRkNGQ5MDJkNDFiZTM2YjkxODky
ODMyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNzgsNiAr
Mjc4LDcgQEAgc3RydWN0IENvbXBvc2l0aW9uSGlnaGxpZ2h0Owogc3RydWN0IENvbnRhY3RJbmZv
Owogc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVz
dWx0czsKK3N0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsKIHN0cnVjdCBEYXRhTGlzdFN1
Z2dlc3Rpb25JbmZvcm1hdGlvbjsKIHN0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwog
c3RydWN0IERpY3Rpb25hcnlQb3B1cEluZm87CkBAIC04NzUsNiArODc2LDcgQEAgcHVibGljOgog
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQogICAgIHZvaWQgc2V0RGF0YURldGVjdGlvblJlc3VsdChjb25zdCBEYXRhRGV0ZWN0aW9uUmVz
dWx0Jik7CisgICAgdm9pZCBoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3Qg
V2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYpOwogI2VuZGlmCiAgICAgdm9pZCBkaWRDb21taXRMYXllclRyZWUoY29uc3QgV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQgbGF5ZXJUcmVlQ29tbWl0Q29t
cGxldGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgppbmRleCA2Nzk1NDUxMjE0ZGFlMGU1OWQ0NDBmNGFlOWI1ZWZjMWZlZjI2YjNkLi5i
MzQyYzBlNjk2NGUxYzFmYTNiMzNiNTY5ODc1YTIyMjA0OTA5NWRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xNzcsNiArMTc3
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogI2lmIEVOQUJMRShEQVRB
X0RFVEVDVElPTikKICAgICBTZXREYXRhRGV0ZWN0aW9uUmVzdWx0KHN0cnVjdCBXZWJLaXQ6OkRh
dGFEZXRlY3Rpb25SZXN1bHQgZGF0YURldGVjdGlvblJlc3VsdCkKKyAgICBIYW5kbGVDbGlja0Zv
ckRhdGFEZXRlY3Rpb25SZXN1bHQoc3RydWN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJ
bmZvIGluZm8sIFdlYkNvcmU6OkludFBvaW50IGxvY2F0aW9uKQogI2VuZGlmCiAKICAgICBQYWdl
U2NhbGVGYWN0b3JEaWRDaGFuZ2UoZG91YmxlIHNjYWxlRmFjdG9yKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA2MzRkNzEzZGQxZmNi
MDc4ZGQ5ZDY4NTg0OWU1YTJhNzlmYTA4YTFhLi45ZDRhMDEzMTQ4OTQzZjliZDM5YWI3ZDcyZDI4
M2MwMzhkMzRjMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaApAQCAtMjg3LDYgKzI4NywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFu
ZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbihjb25zdCBXZWJDb3JlOjpUcmFuc2xhdGlvbkNvbnRl
eHRNZW51SW5mbyYpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCisgICAgdm9pZCBoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgV2Vi
Q29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
IGZpbmFsOworI2VuZGlmCisKICAgICBOU1ZpZXcgKm1fdmlldzsKICAgICBXZWFrUHRyPFdlYlZp
ZXdJbXBsPiBtX2ltcGw7CiAjaWYgVVNFKEFVVE9DT1JSRUNUSU9OX1BBTkVMKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDNkZTYw
MTcwZjYwNTM0NWY4MmY3ZTQ0ZTIyM2YyMzFiMTM5YzBmNDguLjMzNjQyYzJmMzUyM2Y2YTBjYWZh
MTM3MzNkY2E2OTdlNGM1NTJkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTEwMzEsNiArMTAzMSwxNSBAQCB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFRyYW5zbGF0aW9u
Q29udGV4dE1lbnVJbgogCiAjZW5kaWYgLy8gSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykg
JiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChj
b25zdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYgaW5mbywgY29uc3QgSW50UG9pbnQmIGNsaWNr
TG9jYXRpb24pCit7CisgICAgbV9pbXBsLT5oYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1
bHQoaW5mbywgY2xpY2tMb2NhdGlvbik7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjhlMjRi
NWM4MzU3MTI0OWM0Yjk0NTViNTg3NDg0MDg0Y2Y5NDVlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5oCkBAIC0wLDAg
KzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFJFVkVBTCkKKworI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5o
PgorI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK0BjbGFzcyBSVkl0ZW07CisK
K25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViVmlld0ltcGw7Cit9CisKK0BpbnRlcmZhY2Ug
V0tSZXZlYWxJdGVtUHJlc2VudGVyIDogTlNPYmplY3QKKworLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoV2ViVmlld0ltcGw6KGNvbnN0IFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIGl0
ZW06KFJWSXRlbSAqKWl0ZW0gZnJhbWU6KENHUmVjdClmcmFtZUluVmlldyBtZW51TG9jYXRpb246
KENHUG9pbnQpbWVudUxvY2F0aW9uSW5WaWV3OworLSAodm9pZClzaG93Q29udGV4dE1lbnU7CisK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNob3VsZFVzZURlZmF1bHRIaWdobGlnaHQ7CisK
K0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFJFVkVBTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50ZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBmZTQxNGQ5OGRlOWNmOTZmNDg0ZGUzNzU5Y2QyYjYyZDA2ZGRkN2EKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVt
UHJlc2VudGVyLm1tCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tSZXZlYWxJdGVtUHJlc2VudGVyLmgi
CisKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShSRVZFQUwpCisKKyNpbXBvcnQgIldlYlZp
ZXdJbXBsLmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0
ci5oPgorI2ltcG9ydCA8cGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLmg+CisKK0BpbnRlcmZhY2Ug
V0tSZXZlYWxJdGVtUHJlc2VudGVyICgpIDxSVlByZXNlbnRlckhpZ2hsaWdodERlbGVnYXRlPgor
QGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tSZXZlYWxJdGVtUHJlc2VudGVyIHsKKyAgICBXZWFr
UHRyPFdlYktpdDo6V2ViVmlld0ltcGw+IF9pbXBsOworICAgIFJldGFpblB0cjxSVlByZXNlbnRl
cj4gX3ByZXNlbnRlcjsKKyAgICBSZXRhaW5QdHI8UlZQcmVzZW50aW5nQ29udGV4dD4gX3ByZXNl
bnRpbmdDb250ZXh0OworICAgIFJldGFpblB0cjxSVkl0ZW0+IF9pdGVtOworICAgIENHUmVjdCBf
ZnJhbWVJblZpZXc7CisgICAgQ0dQb2ludCBfbWVudUxvY2F0aW9uSW5WaWV3OworICAgIEJPT0wg
X2lzSGlnaGxpZ2h0aW5nSXRlbTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmll
d0ltcGw6KGNvbnN0IFdlYktpdDo6V2ViVmlld0ltcGwmKWltcGwgaXRlbTooUlZJdGVtICopaXRl
bSBmcmFtZTooQ0dSZWN0KWZyYW1lSW5WaWV3IG1lbnVMb2NhdGlvbjooQ0dQb2ludCltZW51TG9j
YXRpb25JblZpZXcKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKworICAgIF9pbXBsID0gbWFrZVdlYWtQdHIoaW1wbCk7CisgICAgX3ByZXNl
bnRlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NSVlByZXNlbnRlckluc3RhbmNlKCkgaW5pdF0pOwor
ICAgIF9wcmVzZW50aW5nQ29udGV4dCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NSVlByZXNlbnRpbmdD
b250ZXh0SW5zdGFuY2UoKSBpbml0V2l0aFBvaW50ZXJMb2NhdGlvbkluVmlldzptZW51TG9jYXRp
b25JblZpZXcgaW5WaWV3OmltcGwudmlldygpIGhpZ2hsaWdodERlbGVnYXRlOnNlbGZdKTsKKyAg
ICBfaXRlbSA9IGl0ZW07CisgICAgX2ZyYW1lSW5WaWV3ID0gZnJhbWVJblZpZXc7CisgICAgX21l
bnVMb2NhdGlvbkluVmlldyA9IG1lbnVMb2NhdGlvbkluVmlldzsKKyAgICByZXR1cm4gc2VsZjsK
K30KKworLSAodm9pZClzaG93Q29udGV4dE1lbnUKK3sKKyAgICBpZiAoIV9pbXBsKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIHZpZXcgPSBfaW1wbC0+dmlldygpOworICAgIGlmICghdmll
dykKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBtZW51SXRlbXMgPSByZXRhaW5QdHIoW19w
cmVzZW50ZXIgbWVudUl0ZW1zRm9ySXRlbTpfaXRlbS5nZXQoKSBkb2N1bWVudENvbnRleHQ6bmls
IHByZXNlbnRpbmdDb250ZXh0Ol9wcmVzZW50aW5nQ29udGV4dC5nZXQoKSBvcHRpb25zOm5pbF0p
OworICAgIGlmICghW21lbnVJdGVtcyBjb3VudF0pCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gbWVudSA9IGFkb3B0TlMoW1tOU01lbnUgYWxsb2NdIGluaXRXaXRoVGl0bGU6ZW1wdHlTdHJp
bmcoKV0pOworICAgIFttZW51IHNldEF1dG9lbmFibGVzSXRlbXM6Tk9dOworICAgIFttZW51IHNl
dEl0ZW1BcnJheTptZW51SXRlbXMuZ2V0KCldOworCisgICAgYXV0byBjbGlja0xvY2F0aW9uSW5X
aW5kb3cgPSBbdmlldyBjb252ZXJ0UG9pbnQ6X21lbnVMb2NhdGlvbkluVmlldyB0b1ZpZXc6bmls
XTsKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tMb2NhdGlvbkluV2luZG93IG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6dmlldy53aW5kb3cud2luZG93TnVt
YmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXTsKKyAg
ICBbTlNNZW51IHBvcFVwQ29udGV4dE1lbnU6bWVudS5nZXQoKSB3aXRoRXZlbnQ6ZXZlbnQgZm9y
Vmlldzp2aWV3XTsKKworICAgIFtzZWxmIF9jYWxsRGlkRmluaXNoUHJlc2VudGF0aW9uSWZOZWVk
ZWRdOworfQorCistICh2b2lkKV9jYWxsRGlkRmluaXNoUHJlc2VudGF0aW9uSWZOZWVkZWQKK3sK
KyAgICBpZiAoIV9pbXBsIHx8IF9pc0hpZ2hsaWdodGluZ0l0ZW0pCisgICAgICAgIHJldHVybjsK
KworICAgIF9pbXBsLT5kaWRGaW5pc2hQcmVzZW50YXRpb24oc2VsZik7Cit9CisKKyNwcmFnbWEg
bWFyayAtIFJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGUKKworLSAoTlNBcnJheTxOU1ZhbHVl
ICo+ICopcmV2ZWFsQ29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4dCAqKWNvbnRleHQgcmVjdHNG
b3JJdGVtOihSVkl0ZW0gKilpdGVtCit7CisgICAgcmV0dXJuIEBbIFtOU1ZhbHVlIHZhbHVlV2l0
aFJlY3Q6X2ZyYW1lSW5WaWV3XSBdOworfQorCistIChCT09MKXJldmVhbENvbnRleHQ6KFJWUHJl
c2VudGluZ0NvbnRleHQgKiljb250ZXh0IHNob3VsZFVzZURlZmF1bHRIaWdobGlnaHRGb3JJdGVt
OihSVkl0ZW0gKilpdGVtCit7CisgICAgcmV0dXJuIHNlbGYuc2hvdWxkVXNlRGVmYXVsdEhpZ2hs
aWdodDsKK30KKworLSAodm9pZClyZXZlYWxDb250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICop
Y29udGV4dCBzdGFydEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBfaXNI
aWdobGlnaHRpbmdJdGVtID0gWUVTOworfQorCistICh2b2lkKXJldmVhbENvbnRleHQ6KFJWUHJl
c2VudGluZ0NvbnRleHQgKiljb250ZXh0IHN0b3BIaWdobGlnaHRpbmdJdGVtOihSVkl0ZW0gKilp
dGVtCit7CisgICAgX2lzSGlnaGxpZ2h0aW5nSXRlbSA9IE5POworCisgICAgW3NlbGYgX2NhbGxE
aWRGaW5pc2hQcmVzZW50YXRpb25JZk5lZWRlZF07Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFJFVkVBTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgzOTk5ZTVmMzI4ZWMxNDdlZjlmZjRmNTAz
YTRiZTZkZDBlOGY4NzguLjMxOTc5M2U3Njk2YzgyNjM1ZjM5NjFmMjdmZTY5MGRmNTIzNGYzMWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjAyOSw2ICsyMDI5LDcgQEAKIAkJRjQ4NTcwQTMyNjQ0QkVDNTAwQzA1RjcxIC8qIFRpbWVv
dXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODU3
MEEyMjY0NEJFQzQwMEMwNUY3MSAvKiBUaW1lb3V0LmggKi87IH07CiAJCUY0OEQyQTg1MjE1ODNB
N0UwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0OEQyQTg0MjE1ODNBMDIwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCAq
LzsgfTsKIAkJRjQ5NkE0MzExRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25T
dGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5
NkE0MkYxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oICovOyB9
OworCQlGNDk3NEU3NjI2NUVDQkJDMDBCNDlCOEMgLyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ2RURFRjI2
NUVCMkIwMDAzMURBOEYgLyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLmggKi87IH07CiAJCUY0OTc1
Q0YyMjYyNEI4MEEwMDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDk3NUNG
MTI2MjRCODBBMDAzQzYyNkUgLyogV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5o
ICovOyB9OwogCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEgLyogU2hhcmVkRGlzcGxheUxpc3RI
YW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
QTZENkJCMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oICovOyB9
OwogCQlGNEJBMzNGMjI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJl
UmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXIuaCAqLzsgfTsKQEAgLTU5NzAsNiArNTk3MSw4IEBACiAJCUY0NDI5MTkxMUZBNTkx
MDcwMDJDQzkzRSAvKiBfV0tBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0F0dGFjaG1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0MjkxOTMxRkE1OTMxMTAwMkND
OTNFIC8qIF9XS0F0dGFjaG1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tBdHRhY2ht
ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQyOTE5NTFGQTU5NDJBMDAy
Q0M5M0UgLyogX1dLQXR0YWNobWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0F0dGFj
aG1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDQ2RURFRjI2
NUVCMkIwMDAzMURBOEYgLyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NDQ2RURGMTI2NUVCM0I2MDAzMURBOEYgLyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDQ4MTU2MjIzODc4MjAwMDA5ODI2NTcgLyogV0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0RlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyLmg7IHBhdGggPSBpb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQ4MTU2MzIzODc4MjAwMDA5ODI2NTcgLyogV0tE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW07IHBhdGggPSBpb3MvV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0REZFQjAxRTlF
NzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViSWNvblV0aWxpdGllcy5oOyBwYXRoID0gaW9zL1dlYkljb25VdGlsaXRp
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODUwLDYgKzEwODUzLDggQEAK
IAkJCQk5MzIxRDU4NzFBMzhFRTc0MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyLm1tICovLAogCQkJCTBGQ0I0RTVDMThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1ByaW50aW5nVmll
dy5oICovLAogCQkJCTBGQ0I0RTVEMThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1ByaW50aW5nVmlldy5t
bSAqLywKKwkJCQlGNDQ2RURFRjI2NUVCMkIwMDAzMURBOEYgLyogV0tSZXZlYWxJdGVtUHJlc2Vu
dGVyLmggKi8sCisJCQkJRjQ0NkVERjEyNjVFQjNCNjAwMzFEQThGIC8qIFdLUmV2ZWFsSXRlbVBy
ZXNlbnRlci5tbSAqLywKIAkJCQk1MTNFNDYyQjFBRDgzNzU2MDAxNjIzNEEgLyogV0tTaGFyaW5n
U2VydmljZVBpY2tlckRlbGVnYXRlLmggKi8sCiAJCQkJNTEzRTQ2MkMxQUQ4Mzc1NjAwMTYyMzRB
IC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbSAqLywKIAkJCQkyREQ2N0EzMzFC
RDg2MTA2MDA1M0IyNTEgLyogV0tUZXh0RmluZGVyQ2xpZW50LmggKi8sCkBAIC0xMjkwMiw2ICsx
MjkwNyw3IEBACiAJCQkJNDk5MDAwMjQyNEQyNEMyOTAwMDQ5Q0I0IC8qIFdLUmVuZGVyT2JqZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzM2NzYzQjEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNv
dXJjZUNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4QTUwMTUxMTc2NUY1NjAw
NzU3NTczIC8qIFdLUmV0YWluUHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNDk3NEU3NjI2NUVD
QkJDMDBCNDlCOEMgLyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0EyNkQ4MTIxN0FCRDVCMDBGOTdBMzUgLyogV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTdFMzc3OTE4RTRBNEZFMDAzRDBGRkYgLyogV0tTY3JpcHRNZXNz
YWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTdFMzc3NTE4RTRBMzNBMDAzRDBGRkYgLyogV0tT
Y3JpcHRNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CmluZGV4IDMyNTNhYTBhYjgzODlmMjk1ZjJlYWU2OTdhMDAyYTQ4NDFjMTEwYzQuLjE4YzE3NTky
ZDRjNDkzOWI5M2VlMzUyOWNiNWNmYjYwNTk4YjQ5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CkBAIC0xMjk0LDYgKzEyOTQsMTUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmhhbmRsZVRlbGVw
aG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYgbnVtYmVyLCBjb25zdCBJbnQKIAogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpo
YW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURldGVjdG9yRWxlbWVu
dEluZm8mIGluZm8sIGNvbnN0IEludFBvaW50JiBjbGlja0xvY2F0aW9uKQoreworICAgIG1fcGFn
ZS5oYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoaW5mbywgY2xpY2tMb2NhdGlvbik7
Cit9CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAKIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soRnJhbWVTZWxlY3Rpb24m
IHNlbGVjdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRlbGVwaG9uZU51bWJlcnMsIGNvbnN0
IEludFBvaW50JiBwb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MjljY2IwNzVjNjhkYmUw
YmM3OWE1MGY1OWY2ZGRjZjg1ODc5MzY3Li44NzhhNTg2Yjk3NGY4NDE5Mzc0ZWYyZmMzYmY4NGRk
NDU5YTk3MzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNjYsNiArMzY2LDEwIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBoYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhjb25zdCBTdHJpbmcmIG51
bWJlciwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBmaW5hbDsKICNlbmRpZgogCisjaWYgRU5B
QkxFKERBVEFfREVURUNUSU9OKQorICAgIHZvaWQgaGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9u
UmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJbmZvJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKSBmaW5hbDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCiAgICAgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdGVsZXBob25lTnVtYmVycywgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmKSBmaW5hbDsKICAgICBib29sIGhhc1JlbGV2YW50U2VsZWN0
aW9uU2VydmljZXMoYm9vbCBpc1RleHRPbmx5KSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQppbmRl
eCBmN2JkYjk1NzA0ZGM0NTYwMjM1OTI2MzgxZGY2MDRmMDI4MGQwMTBkLi5iNzNhMGQ4OWRjZDJj
ZThkMWVlMWM4ZDY5NDYwOTBkYWQ0ZDVjMWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCkBAIC00NDksNiArNDQ5
LDE1IEBAIFBsYXRmb3JtWFJTeXN0ZW1Qcm94eSYgV2ViUGFnZTo6eHJTeXN0ZW1Qcm94eSgpCiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwordm9pZCBXZWJQYWdlOjpo
YW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgRGF0YURldGVjdG9yRWxlbWVu
dEluZm8mIGluZm8sIGNvbnN0IEludFBvaW50JiBjbGlja0xvY2F0aW9uKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0
KGluZm8sIGNsaWNrTG9jYXRpb24pKTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMWM2ZmI4ODE3M2E5NzVkNDYxNWY3NmJlMGE0OTUz
Y2IyYTYzZjA4MC4uZGUzNWFlMTk1YWE0ZDY2MjU5ZjAwNWQ1NDQ0YzE5OTRlYWE0NzA0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjMzLDYgKzIz
Myw3IEBAIHN0cnVjdCBDb21wb3NpdGlvbkhpZ2hsaWdodDsKIHN0cnVjdCBDb21wb3NpdGlvblVu
ZGVybGluZTsKIHN0cnVjdCBDb250YWN0SW5mbzsKIHN0cnVjdCBDb250YWN0c1JlcXVlc3REYXRh
Oworc3RydWN0IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvOwogc3RydWN0IERpY3RhdGlvbkFsdGVy
bmF0aXZlOwogc3RydWN0IEVsZW1lbnRDb250ZXh0Owogc3RydWN0IEdsb2JhbEZyYW1lSWRlbnRp
ZmllcjsKQEAgLTExNzUsNiArMTE3NiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBoYW5kbGVTZWxl
Y3Rpb25TZXJ2aWNlQ2xpY2soV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgdGVsZXBob25lTnVtYmVycywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICNl
bmRpZgogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIHZvaWQgaGFuZGxlQ2xpY2tG
b3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRlY3RvckVsZW1lbnRJ
bmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBkaWRD
aGFuZ2VTY3JvbGxPZmZzZXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSopOwogCiAgICAgdm9pZCBz
ZXRNYWluRnJhbWVQcm9ncmVzc0NvbXBsZXRlZChib29sIGNvbXBsZXRlZCkgeyBtX21haW5GcmFt
ZVByb2dyZXNzQ29tcGxldGVkID0gY29tcGxldGVkOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>