<?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>223013</bug_id>
          
          <creation_ts>2021-03-09 18:31:18 -0800</creation_ts>
          <short_desc>[Cocoa] Make WebKit API Objective-C objects safe to release on non-main threads</short_desc>
          <delta_ts>2021-03-31 00:58:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=222336</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>joshua.wise</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1737886</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-09 18:31:18 -0800</bug_when>
    <thetext>[Cocoa] Make WebKit API Objective-C objects safe to release on non-main threads</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738091</commentid>
    <comment_count>1</comment_count>
      <attachid>422840</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-10 09:38:36 -0800</bug_when>
    <thetext>Created attachment 422840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738100</commentid>
    <comment_count>2</comment_count>
      <attachid>422840</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-10 09:56:15 -0800</bug_when>
    <thetext>Comment on attachment 422840
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738101</commentid>
    <comment_count>3</comment_count>
      <attachid>422840</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-10 09:58:36 -0800</bug_when>
    <thetext>Comment on attachment 422840
Patch

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

&gt; Source/WTF/wtf/MainThread.cpp:71
&gt; +void ensureOnMainRunLoop(Function&lt;void()&gt;&amp;&amp; function)

Nice name, better than what I had suggested :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738157</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-10 11:58:40 -0800</bug_when>
    <thetext>Committed r274227 (235138@main): &lt;https://commits.webkit.org/235138@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738158</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-10 11:59:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/75275804&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740775</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Wise">joshua.wise</who>
    <bug_when>2021-03-17 10:37:05 -0700</bug_when>
    <thetext>Hi Darin --

As someone who just tripped on a related issue recently, thanks much for thinking about this!  Unfortunately, I don&apos;t think this makes releasing as safe as it appears to.  Bug 222336 has a reproducer that I think will crash even with this fix -- and comment 6 in that bug describes why that crash occurs.

Thanks --
joshua</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742355</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2021-03-22 12:06:02 -0700</bug_when>
    <thetext>Have you considered using something like _OBJC_SUPPORTED_INLINE_REFCNT_WITH_DEALLOC2MAIN (see &lt;https://opensource.apple.com/source/objc4/objc4-493.11/runtime/objc-internal.h.auto.html&gt;) here? I believe that would account for cases like bug 222336.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742365</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-22 12:17:56 -0700</bug_when>
    <thetext>I did not know about _OBJC_SUPPORTED_INLINE_REFCNT_WITH_DEALLOC2MAIN.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745544</commentid>
    <comment_count>9</comment_count>
    <who name="Joshua Wise">joshua.wise</who>
    <bug_when>2021-03-31 00:58:49 -0700</bug_when>
    <thetext>I believe that `_OBJC_SUPPORTED_INLINE_REFCNT_LOGIC` is vulnerable to the same weak pointer race condition as bug 222336 (though I have not tried it).  The problem is that `_isDeallocating` causes a weak pointer to fail to store, but `dealloc` causes a weak pointer to be zeroed.  Or, to put it another way, `dealloc2main` is not sufficient: `release2main` is necessary.

But I, also, did not know about `_OBJC_SUPPORTED_INLINE_REFCNT_LOGIC`.  I confess that I find it quite disconcerting that someone would believe this to be common enough of an idiom to make a macro for it, and even more disconcerting that that an invocation variant exists with `release2main == 0`.  It is perhaps fitting that one of the only textual references to this on the web is from seven years ago on, of all places, the SomethingAwful forums.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422840</attachid>
            <date>2021-03-10 09:38:36 -0800</date>
            <delta_ts>2021-03-10 09:56:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223013-20210310093836.patch</filename>
            <type>text/plain</type>
            <size>75861</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI4NjcxMDk1ZDIwMTZlMDlhN2NlMjJj
ZmZkNjlkZDJjODQzMmU1NDYuLjg1NWE5OWNkY2E5NGMzZDU0ZTU2YTdkNmQ1NmYzOGZmM2VhM2Rh
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDMtMDkgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gTWFrZSBXZWJLaXQgQVBJIE9iamVjdGl2ZS1D
IG9iamVjdHMgc2FmZSB0byByZWxlYXNlIG9uIG5vbi1tYWluIHRocmVhZHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzAxMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL01haW5UaHJlYWQuY3Bw
OgorICAgICAgICAoV1RGOjplbnN1cmVPbk1haW5SdW5Mb29wKTogQWRkZWQuIEZvciB1c2UgaW4g
Y2FzZXMgd2hlcmUgd2Ugd2FudCB0byBiZSBtb3JlCisgICAgICAgIGVmZmljaWVudCwgYW5kIHN5
bmNocm9ub3VzLCB3aGVuIGFscmVhZHkgb24gdGhlIG1haW4gcnVuIGxvb3AsIGJ1dCB3ZSBjYW4g
ZG8KKyAgICAgICAgdGhlIHdvcmsgYXN5bmNocm9ub3VzbHkgd2hlbiBjYWxsZWQgYW5kIG5vdCBv
biB0aGUgbWFpbiBydW4gbG9vcC4KKworICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6IEFkZGVk
IGVuc3VyZU9uTWFpblJ1bkxvb3AuCisKIDIwMjEtMDMtMTAgIE1pY2hhZWwgQ2F0YW56YXJvICA8
bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10gUmVlbmFibGUgLWZ2aXNpYmls
aXR5PWhpZGRlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEwYjlkMWUzNDBmMGI3MDJiMGRmYzc4ZjAxNzE3MTk2
MTk4Nzk4MjMuLjZkN2M1YjJkZmI5NWU1ZTFmM2Q1YTFhNDFkY2NlY2YyOTQ2OTczNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wMy0wOSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBNYWtlIFdlYktpdCBBUEkgT2JqZWN0aXZlLUMg
b2JqZWN0cyBzYWZlIHRvIHJlbGVhc2Ugb24gbm9uLW1haW4gdGhyZWFkcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMDEzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViQ29y
ZU9iakNFeHRyYXMuaDogQWRkZWQgV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5S
dW5Mb29wLgorICAgICAgICBVc2UgI3ByYWdtYSBvbmNlLgorCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1dlYkNvcmVPYmpDRXh0cmFzLm1tOgorICAgICAgICAoc2FmZUlzS2luZE9mQ2xhc3MpOiBB
ZGRlZC4gQWxsb3dzIHVzIHRvIHVzZSB0aGUgZnVuY3Rpb25zIGJlbG93IG9uIGNsYXNzZXMgdGhh
dAorICAgICAgICBwbGF5IHByb3h5aW5nIHRyaWNrcyB3aXRoIHRoZSBpc0tpbmRPZkNsYXNzOiBt
ZXRob2QuCisgICAgICAgIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVh
ZCk6IFVzZSBzYWZlSXNLaW5kT2ZDbGFzcy4KKyAgICAgICAgKFdlYkNvcmVPYmpDU2NoZWR1bGVE
ZWFsbG9jYXRlT25NYWluUnVuTG9vcCk6IEFkZGVkLgorCiAyMDIxLTAzLTEwICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgTXVsdGktY29sdW1uIHN0YXRlIHByb3Bh
Z2F0aW9uIHNob3VsZCBmb2xsb3cgY29udGFpbmluZyBibG9jayBydWxlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0
ZjY2ODE1NWYzOWVmN2ZhNDAyOWFkNGM2MDM0Yzg3ZTlkZTVmMWNmLi5lNDM5ZjI1ODRlOWQ1YjRh
ZjU4ZjE5ZThkMjgxOWYwMjlhNDNmM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2NCBAQAorMjAy
MS0wMy0wOSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29h
XSBNYWtlIFdlYktpdCBBUEkgT2JqZWN0aXZlLUMgb2JqZWN0cyBzYWZlIHRvIHJlbGVhc2Ugb24g
bm9uLW1haW4gdGhyZWFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIzMDEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlZCBlbnN1cmVPbk1haW5SdW5Mb29wIGluIGRlYWxsb2MgbWV0aG9kcyB3aGVy
ZSBwb3NzaWJsZSB0byBtYWtlIHRoZW0KKyAgICAgICAgdGhyZWFkLXNhZmUuIFVzZWQgV2ViQ29y
ZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wIGluc3RlYWQgaW4gY2FzZXMKKyAg
ICAgICAgdGhhdCB3ZXJlIHRvbyBjb21wbGV4IHRvIGJlIGRvbmUgd2l0aCBlbnN1cmVPbk1haW5S
dW5Mb29wLgorCisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHA6CisgICAg
ICAgIChBUEk6OkZyYW1lSGFuZGxlOjp+RnJhbWVIYW5kbGUpOiBEZWxldGVkLgorICAgICAgICAq
IFNoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaDogVXNlIHByYWdtYSBvbmNlLiBNYXJrZWQgdGhl
IGNsYXNzIGZpbmFsLgorICAgICAgICBSZW1vdmVkIGV4cGxpY2l0IGRlc3RydWN0b3IgYmVjYXVz
ZSBpdCBpcyBub3QgaGVscGZ1bC4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLRnJh
bWVIYW5kbGUubW06CisgICAgICAgICgtW19XS0ZyYW1lSGFuZGxlIGRlYWxsb2NdKTogVXNlIFdl
YkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcC4KKyAgICAgICAgKiBTaGFy
ZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQubW06CisgICAgICAgICgtW19XS0hpdFRlc3RS
ZXN1bHQgZGVhbGxvY10pOiBEaXR0by4KKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvV0tOU0FycmF5
Lm1tOgorICAgICAgICAoLVtXS05TQXJyYXkgZGVhbGxvY10pOiBEaXR0by4KKyAgICAgICAgKiBT
aGFyZWQvQ29jb2EvV0tOU0RhdGEubW06CisgICAgICAgICgtW1dLTlNEYXRhIGRlYWxsb2NdKTog
RGl0dG8uCisgICAgICAgICogU2hhcmVkL0NvY29hL1dLTlNEaWN0aW9uYXJ5Lm1tOgorICAgICAg
ICAoLVtXS05TRGljdGlvbmFyeSBkZWFsbG9jXSk6IERpdHRvLgorICAgICAgICAqIFNoYXJlZC9D
b2NvYS9XS09iamVjdC5tbToKKyAgICAgICAgKC1bV0tPYmplY3QgZGVhbGxvY10pOiBEaXR0by4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbToKKyAg
ICAgICAgKC1bV0tPYnNlcnZhYmxlUGFnZVN0YXRlIGRlYWxsb2NdKTogVXNlIGVuc3VyZU9uTWFp
blJ1bkxvb3AuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1BhZ2VMb2FkU3RhdGVP
YnNlcnZlci5oOiBBZGRlZCBjbGVhck9iamVjdCBmb3IgdXNlIGluCisgICAgICAgIHRoZSBXS09i
c2VydmFibGVQYWdlU3RhdGUgZGVhbGxjIG1ldGhvZC4gUmVtb3ZlZCBoZWFkZXIgZ3VhcmRzIHNp
bmNlIHRoaXMgaXMKKyAgICAgICAgYW4gT2JqZWN0aXZlLUMgaGVhZGVyIGFuZCAjaW1wb3J0IHRh
a2VzIGNhcmUgb2YgaXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0Zv
cndhcmRMaXN0Lm1tOgorICAgICAgICAoLVtXS0JhY2tGb3J3YXJkTGlzdCBkZWFsbG9jXSk6IFVz
ZSBXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0ubW06CisgICAgICAgICgt
W1dLQmFja0ZvcndhcmRMaXN0SXRlbSBkZWFsbG9jXSk6IERpdHRvLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAgICAo
LVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgZGVhbGxvY10pOiBEaXR0by4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW06CisgICAgICAg
ICgtW1dLQnJvd3NpbmdDb250ZXh0R3JvdXAgZGVhbGxvY10pOiBEaXR0by4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb25uZWN0
aW9uIGRlYWxsb2NdKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nv
bnRlbnRSdWxlTGlzdC5tbToKKyAgICAgICAgKC1bV0tDb250ZW50UnVsZUxpc3QgZGVhbGxvY10p
OiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0
U3RvcmUubW06CisgICAgICAgICgtW1dLQ29udGVudFJ1bGVMaXN0U3RvcmUgZGVhbGxvY10pOiBE
aXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFdvcmxkLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRXb3JsZCBkZWFsbG9jXSk6IERpdHRvLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tEb3dubG9hZC5tbToKKyAgICAgICAgKC1bV0tEb3dubG9hZCBk
ZWFsbG9jXSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUlu
Zm8ubW06CisgICAgICAgICgtW1dLRnJhbWVJbmZvIGRlYWxsb2NdKTogRGl0dG8uCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbToKKyAgICAgICAgKC1b
V0tIVFRQQ29va2llU3RvcmUgZGVhbGxvY10pOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bV0tOYXZpZ2F0aW9uIGRlYWxs
b2NdKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25B
Y3Rpb24ubW06CisgICAgICAgICgtW1dLTmF2aWdhdGlvbkFjdGlvbiBkZWFsbG9jXSk6IERpdHRv
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGF0YS5tbToKKyAg
ICAgICAgKC1bV0tOYXZpZ2F0aW9uRGF0YSBkZWFsbG9jXSk6IERpdHRvLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW06CisgICAgICAgICgtW1dL
TmF2aWdhdGlvblJlc3BvbnNlIGRlYWxsb2NdKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGRl
YWxsb2NdKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIGRlYWxsb2NdKTogRGl0dG8uCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NlY3VyaXR5T3JpZ2luLm1tOgorICAgICAgICAo
LVtXS1NlY3VyaXR5T3JpZ2luIGRlYWxsb2NdKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tVc2Vy
Q29udGVudENvbnRyb2xsZXIgZGVhbGxvY10pOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVXNlclNjcmlwdC5tbToKKyAgICAgICAgKC1bV0tVc2VyU2NyaXB0IGRlYWxs
b2NdKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06
CisgICAgICAgICgtW1dLV2ViVmlldyBkZWFsbG9jXSk6IERpdHRvLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLV2Vi
cGFnZVByZWZlcmVuY2VzIGRlYWxsb2NdKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRh
UmVjb3JkIGRlYWxsb2NdKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWFs
bG9jXSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0
dXJlcy5tbToKKyAgICAgICAgKC1bV0tXaW5kb3dGZWF0dXJlcyBkZWFsbG9jXSk6IERpdHRvLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXBwbGljYXRpb25NYW5pZmVzdC5tbToK
KyAgICAgICAgKC1bX1dLQXBwbGljYXRpb25NYW5pZmVzdCBkZWFsbG9jXSk6IERpdHRvLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbToKKyAgICAgICAgKC1b
X1dLQXR0YWNobWVudCBkZWFsbG9jXSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24ubW06CisgICAgICAgICgtW19XS0F1dG9tYXRpb25T
ZXNzaW9uIGRlYWxsb2NdKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tDb250ZW50UnVsZUxpc3RBY3Rpb24ubW06CisgICAgICAgICgtW19XS0NvbnRlbnRSdWxlTGlz
dEFjdGlvbiBkZWFsbG9jXSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQ3VzdG9tSGVhZGVyRmllbGRzLm1tOgorICAgICAgICAoLVtfV0tDdXN0b21IZWFkZXJGaWVs
ZHMgZGVhbGxvY10pOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4
cGVyaW1lbnRhbEZlYXR1cmUubW06CisgICAgICAgICgtW19XS0V4cGVyaW1lbnRhbEZlYXR1cmUg
ZGVhbGxvY10pOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0ZyYW1l
VHJlZU5vZGUubW06CisgICAgICAgICgtW19XS0ZyYW1lVHJlZU5vZGUgZGVhbGxvY10pOiBEaXR0
by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uUG9zaXRpb24u
bW06CisgICAgICAgICgtW19XS0dlb2xvY2F0aW9uUG9zaXRpb24gZGVhbGxvY10pOiBEaXR0by4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckNvbmZpZ3VyYXRpb24u
bW06CisgICAgICAgICgtW19XS0luc3BlY3RvckNvbmZpZ3VyYXRpb24gZGVhbGxvY10pOiBEaXR0
by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlYnVnZ2FibGVJ
bmZvLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mbyBkZWFsbG9jXSk6
IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5z
aW9uLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0b3JFeHRlbnNpb24gZGVhbGxvY10pOiBEaXR0
by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJl
Lm1tOgorICAgICAgICAoLVtfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSBkZWFsbG9jXSk6IERpdHRv
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLm1tOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gZGVhbGxvY10p
OiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZElu
Zm8ubW06CisgICAgICAgICgtW19XS1Jlc291cmNlTG9hZEluZm8gZGVhbGxvY10pOiBEaXR0by4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NG
aXJzdFBhcnR5Lm1tOgorICAgICAgICAoLVtfV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQ
YXJ0eSBkZWFsbG9jXSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkubW06CisgICAgICAgICgtW19XS1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5IGRlYWxsb2NdKTogRGl0dG8uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VySW5pdGlhdGVkQWN0aW9uLm1tOgorICAgICAgICAo
LVtfV0tVc2VySW5pdGlhdGVkQWN0aW9uIGRlYWxsb2NdKTogRGl0dG8uCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5bGVTaGVldC5tbToKKyAgICAgICAgKC1bX1dLVXNl
clN0eWxlU2hlZXQgZGVhbGxvY10pOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Zpc2l0ZWRMaW5rU3RvcmUubW06CisgICAgICAgICgtW19XS1Zpc2l0ZWRMaW5rU3Rv
cmUgZGVhbGxvY10pOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UubW06CisgICAgICAgICgtW19XS1dlYkF1
dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UgZGVhbGxvY10pOiBEaXR0by4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAg
ICAgICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgZGVhbGxvY10pOiBEaXR0by4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Lm1tOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBkZWFsbG9j
XSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAg
ICAgKC1bV0tWaWV3IGRlYWxsb2NdKTogRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV0tTYWZlQnJvd3NpbmdXYXJuaW5nLm1tOgorICAgICAgICAoLVtXS1NhZmVCcm93c2luZ1dh
cm5pbmcgZGVhbGxvY10pOiBVc2UgZW5zdXJlT25NYWluUnVuTG9vcC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tOgorICAgICAgICAoLVtXS1ByaW50aW5nVmlldyBk
ZWFsbG9jXSk6IERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW06CisgICAgICAgICgtW1dLV2ViUHJv
Y2Vzc1BsdWdJbkZyYW1lIGRlYWxsb2NdKTogVXNlIFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9j
YXRlT25NYWluUnVuTG9vcC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0Lm1tOgorICAgICAgICAoLVtX
S1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0IGRlYWxsb2NdKTogRGl0dG8uCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
Tm9kZUhhbmRsZS5tbToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSBk
ZWFsbG9jXSk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbToKKyAgICAgICAgKC1bV0tXZWJQ
cm9jZXNzUGx1Z0luUGFnZUdyb3VwIGRlYWxsb2NdKTogRGl0dG8uCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5k
bGUubW06CisgICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlIGRlYWxsb2Nd
KTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQubW06CisgICAgICAgICgtW1dLV2ViUHJvY2Vz
c1BsdWdJblNjcmlwdFdvcmxkIGRlYWxsb2NdKTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Ob2RlLm1tOgorICAgICAgICAoLVtXS0RP
TU5vZGUgZGVhbGxvY10pOiBVc2UgZW5zdXJlT25NYWluUnVuTG9vcC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01SYW5nZS5tbToKKyAgICAgICAgKC1b
V0tET01SYW5nZSBkZWFsbG9jXSk6IERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbi5tbToKKyAgICAgICAgKC1bV0tX
ZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciBkZWFsbG9jXSk6IFVzZSBXZWJDb3JlT2JqQ1NjaGVk
dWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyIGRlYWxsb2NdKTogRGl0dG8uCisKIDIwMjEtMDMtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgTG9naWMgZm9yIHVwZGF0aW5nIHRoZSB0ZXh0
IHNlbGVjdGlvbiB3aGVuIGRyYWdnaW5nIHNlbGVjdGlvbiBoYW5kbGVzIHNob3VsZCBhY2NvdW50
IGZvciBpbWFnZSBvdmVybGF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWFpblRocmVh
ZC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAppbmRleCA2Zjc1MWFiMDM1YmE1
ZTc3M2IwYmU4MjlhZGI0ZTc4NjNlOWJiZWY3Li5jNDZjNGIwZTIyNDRmZmIyYjcwMjYxMWRmMWM4
MWU0YzI0MDY5MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAtNjgsNiArNjgsMTQgQEAgdm9p
ZCBjYWxsT25NYWluUnVuTG9vcChGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiAgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAordm9pZCBlbnN1
cmVPbk1haW5SdW5Mb29wKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKK3sKKyAgICBpZiAo
UnVuTG9vcDo6aXNNYWluKCkpCisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgZWxzZQorICAgICAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZShmdW5jdGlvbikpOworfQorCiB2b2lk
IGNhbGxPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogewogI2lmIFVT
RShXRUJfVEhSRUFEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5oIGIv
U291cmNlL1dURi93dGYvTWFpblRocmVhZC5oCmluZGV4IDVjMzJkMTg1MGUzMzNiZjExYzNiMWI2
ZmYyMGUyYzllMzkwNDRlYmQuLjRjMWNjNDJiZjZlNTk2YjFmM2JjY2VjZTNhMzBiZWQ5Y2ExZmZk
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9NYWluVGhyZWFkLmgKQEAgLTU3LDYgKzU3LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRF
IGJvb2wgY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShUaHJlYWQmKTsKIFdU
Rl9FWFBPUlRfUFJJVkFURSBib29sIGlzTWFpblJ1bkxvb3AoKTsKIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIGNhbGxPbk1haW5SdW5Mb29wKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoRnVuY3Rpb248dm9pZCgpPiYm
KTsKK1dURl9FWFBPUlRfUFJJVkFURSB2b2lkIGVuc3VyZU9uTWFpblJ1bkxvb3AoRnVuY3Rpb248
dm9pZCgpPiYmKTsgLy8gU3luYyBpZiBjYWxsZWQgb24gbWFpbiBydW4gbG9vcCwgYXN5bmMgb3Ro
ZXJ3aXNlLgogCiAjaWYgVVNFKFdFQl9USFJFQUQpCiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBp
c1dlYlRocmVhZCgpOwpAQCAtNzksMTYgKzgwLDE5IEBAIHVzaW5nIFdURjo6Y2FsbE9uTWFpblRo
cmVhZDsKIHVzaW5nIFdURjo6Y2FsbE9uTWFpblRocmVhZEFuZFdhaXQ7CiB1c2luZyBXVEY6OmNh
bGxPbk1haW5SdW5Mb29wOwogdXNpbmcgV1RGOjpjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQ7Cit1
c2luZyBXVEY6OmVuc3VyZU9uTWFpblJ1bkxvb3A7CiB1c2luZyBXVEY6OmNhbkN1cnJlbnRUaHJl
YWRBY2Nlc3NUaHJlYWRMb2NhbERhdGE7CiB1c2luZyBXVEY6OmlzTWFpblJ1bkxvb3A7CiB1c2lu
ZyBXVEY6OmlzTWFpblRocmVhZDsKIHVzaW5nIFdURjo6aXNNYWluVGhyZWFkT3JHQ1RocmVhZDsK
IHVzaW5nIFdURjo6aXNVSVRocmVhZDsKIHVzaW5nIFdURjo6aXNXZWJUaHJlYWQ7CisKICNpZiBQ
TEFURk9STShDT0NPQSkKIHVzaW5nIFdURjo6ZGlzcGF0Y2hBc3luY09uTWFpblRocmVhZFdpdGhX
ZWJUaHJlYWRMb2NrSWZOZWVkZWQ7CiB1c2luZyBXVEY6OmNhbGxPbldlYlRocmVhZE9yRGlzcGF0
Y2hBc3luY09uTWFpblRocmVhZDsKICNlbmRpZgorCiAjaWYgVVNFKFdFQl9USFJFQUQpCiB1c2lu
ZyBXVEY6OmluaXRpYWxpemVXZWJUaHJlYWQ7CiB1c2luZyBXVEY6OmluaXRpYWxpemVBcHBsaWNh
dGlvblVJVGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YkNvcmVPYmpDRXh0cmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU9i
akNFeHRyYXMuaAppbmRleCA0OGM5Nzg2ZTExM2M1NmJlMGQ5ZGY4MGU4NWQxYWZhNmVjYzE2MDhi
Li40NWQ5OGE1ZjgzNWJhYzFjMTQ5ZTI2ODdiMDEzYzI4NTM2ZDk2ZjFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDEzICsyNiw4
IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViQ29yZU9iakNFeHRyYXNfaAotI2Rl
ZmluZSBXZWJDb3JlT2JqQ0V4dHJhc19oCisjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPENvcmVG
b3VuZGF0aW9uL0NGQmFzZS5oPgotCi0vLyBUaGUgJ0NsYXNzJyB0aGF0IHNob3VsZCBiZSBwYXNz
ZWQgaW4gaGVyZSBpcyB0aGUgY2xhc3Mgb2YgdGhlCi0vLyBvYmplY3QgdGhhdCBpbXBsZW1lbnRz
IHRoZSBkZWFsbG9jIG1ldGhvZCB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20uCi1X
RUJDT1JFX0VYUE9SVCBib29sIFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluVGhy
ZWFkKENsYXNzIGNscywgaWQpOwotCi0jZW5kaWYgLy8gV2ViQ29yZU9iakNFeHRyYXNfaAorLy8g
VGhlIGNsYXNzIHBhc3NlZCBoZXJlIGlzIHRoZSBjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlIGRl
YWxsb2MgbWV0aG9kIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbS4KK1dFQkNPUkVf
RVhQT1JUIGJvb2wgV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoQ2xh
c3MsIGlkKTsKK1dFQkNPUkVfRVhQT1JUIGJvb2wgV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2Nh
dGVPbk1haW5SdW5Mb29wKENsYXNzLCBpZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViQ29yZU9iakNFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViQ29yZU9iakNFeHRyYXMubW0KaW5kZXggNjRiYzZjY2NkODAzY2Y3ODI2MGFmNTBh
MTUzZmU1NWMxYTg1N2E3NC4uMjI2YmUwNWFkNTg5Mjk1ZDBmMjJlODA2NDI4MDlhZWJiOTViY2U5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVPYmpDRXh0
cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlT2JqQ0V4dHJh
cy5tbQpAQCAtMSwxOCArMSwxOCBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCiAgKiBhcmUgbWV0OgogICoKICAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uIAogICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgogICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMzUsMTgg
KzM1LDQ5IEBACiAjaW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0
Zi9UaHJlYWRpbmcuaD4KIAotYm9vbCBXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFp
blRocmVhZChDbGFzcyBjbHMsIGlkIG9iamVjdCkKKyNpZiBBU1NFUlRfRU5BQkxFRAorCisvLyBU
aGlzIGlzIGxpa2UgdGhlIGlzS2luZE9mQ2xhc3M6IG1ldGhvZCwgYnlwYXNzaW5nIGl0IHRvIGdl
dCB0aGUgY29ycmVjdCBhbnN3ZXIgZm9yIG91ciBwdXJwb3NlcyBldmVuIGZvciBjbGFzc2VzIHRo
YXQgb3ZlcnJpZGUgaXQuCisvLyBBdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcsIHRoYXQgaW5j
bHVkZWQgV2ViS2l0J3MgV0tPYmplY3QgY2xhc3MuCitzdGF0aWMgYm9vbCBzYWZlSXNLaW5kT2ZD
bGFzcyhpZCBvYmplY3QsIENsYXNzIHRlc3RDbGFzcykKK3sKKyAgICBpZiAoIW9iamVjdCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAoYXV0byBhbmNlc3RvckNsYXNzID0gb2JqZWN0
X2dldENsYXNzKG9iamVjdCk7IGFuY2VzdG9yQ2xhc3M7IGFuY2VzdG9yQ2xhc3MgPSBjbGFzc19n
ZXRTdXBlcmNsYXNzKGFuY2VzdG9yQ2xhc3MpKSB7CisgICAgICAgIGlmIChhbmNlc3RvckNsYXNz
ID09IHRlc3RDbGFzcykKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKKyNlbmRpZgorCitib29sIFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9j
YXRlT25NYWluVGhyZWFkKENsYXNzIGRlYWxsb2NNZXRob2RDbGFzcywgaWQgb2JqZWN0KQogewot
ICAgIEFTU0VSVChbb2JqZWN0IGlzS2luZE9mQ2xhc3M6Y2xzXSk7CisgICAgQVNTRVJUKHNhZmVJ
c0tpbmRPZkNsYXNzKG9iamVjdCwgZGVhbGxvY01ldGhvZENsYXNzKSk7CiAKICAgICBpZiAoaXNN
YWluVGhyZWFkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGNhbGxPbk1haW5UaHJl
YWQoW2Nscywgb2JqZWN0XSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbZGVhbGxvY01ldGhvZENs
YXNzLCBvYmplY3RdIHsKICAgICAgICAgYXV0byBkZWFsbG9jU2VsZWN0b3IgPSBzZWxfcmVnaXN0
ZXJOYW1lKCJkZWFsbG9jIik7Ci0gICAgICAgIHd0ZkNhbGxJTVA8dm9pZD4obWV0aG9kX2dldElt
cGxlbWVudGF0aW9uKGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKGNscywgZGVhbGxvY1NlbGVjdG9y
KSksIG9iamVjdCwgZGVhbGxvY1NlbGVjdG9yKTsKKyAgICAgICAgd3RmQ2FsbElNUDx2b2lkPiht
ZXRob2RfZ2V0SW1wbGVtZW50YXRpb24oY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2QoZGVhbGxvY01l
dGhvZENsYXNzLCBkZWFsbG9jU2VsZWN0b3IpKSwgb2JqZWN0LCBkZWFsbG9jU2VsZWN0b3IpOwog
ICAgIH0pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgV2ViQ29yZU9iakNTY2hlZHVs
ZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKENsYXNzIGRlYWxsb2NNZXRob2RDbGFzcywgaWQgb2Jq
ZWN0KQoreworICAgIEFTU0VSVChzYWZlSXNLaW5kT2ZDbGFzcyhvYmplY3QsIGRlYWxsb2NNZXRo
b2RDbGFzcykpOworCisgICAgaWYgKGlzTWFpblJ1bkxvb3AoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW2RlYWxsb2NNZXRob2RDbGFzcywgb2JqZWN0
XSB7CisgICAgICAgIGF1dG8gZGVhbGxvY1NlbGVjdG9yID0gc2VsX3JlZ2lzdGVyTmFtZSgiZGVh
bGxvYyIpOworICAgICAgICB3dGZDYWxsSU1QPHZvaWQ+KG1ldGhvZF9nZXRJbXBsZW1lbnRhdGlv
bihjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChkZWFsbG9jTWV0aG9kQ2xhc3MsIGRlYWxsb2NTZWxl
Y3RvcikpLCBvYmplY3QsIGRlYWxsb2NTZWxlY3Rvcik7CisgICAgfSk7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCmlu
ZGV4IGQxY2MyNWFlMGZmOTUxMzk3N2IwZGYxYjFjN2I4MTc2MDcxNzUwMjAuLmJkNGVmMzU5MTMx
OTI1ODQ1N2EzMDNjZTg2NzcyMGNkNGZjYjkxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0FQSUZyYW1lSGFuZGxlLmNwcApAQCAtNDgsMTAgKzQ4LDYgQEAgRnJhbWVIYW5kbGU6OkZy
YW1lSGFuZGxlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzQXV0b2Nv
bnZlcnRpbmcKIHsKIH0KIAotRnJhbWVIYW5kbGU6On5GcmFtZUhhbmRsZSgpCi17Ci19Ci0KIHZv
aWQgRnJhbWVIYW5kbGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAg
ICAgZW5jb2RlciA8PCBtX2ZyYW1lSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQVBJRnJhbWVIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFt
ZUhhbmRsZS5oCmluZGV4IGM5Y2U5Zjc3MzJhNTMwODAyMzA3MmRmNjFhYjE4NWM4MTg3YWNiMmYu
LmI4ODY4YTE3NWQ2Mzk1NTExZTE1MjUxNmRiNThhMGYwNjI5NWJkMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBUElGcmFtZUhhbmRs
ZV9oCi0jZGVmaW5lIEFQSUZyYW1lSGFuZGxlX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KQEAgLTM3
LDEzICszNiwxMiBAQCBjbGFzcyBFbmNvZGVyOwogCiBuYW1lc3BhY2UgQVBJIHsKIAotY2xhc3Mg
RnJhbWVIYW5kbGUgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OkZyYW1lSGFuZGxl
PiB7CitjbGFzcyBGcmFtZUhhbmRsZSBmaW5hbCA6IHB1YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6
VHlwZTo6RnJhbWVIYW5kbGU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxl
PiBjcmVhdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICBzdGF0aWMgUmVmPEZyYW1l
SGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwog
CiAgICAgZXhwbGljaXQgRnJhbWVIYW5kbGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29s
IGlzQXV0b2NvbnZlcnRpbmcpOwotICAgIHZpcnR1YWwgfkZyYW1lSGFuZGxlKCk7CiAKICAgICBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJ
RDsgfQogICAgIGJvb2wgaXNBdXRvY29udmVydGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBdXRv
Y29udmVydGluZzsgfQpAQCAtNTcsNSArNTUsMyBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgQVBJCi0KLSNlbmRpZiAvLyBBUElGcmFtZUhhbmRsZV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KaW5kZXggNmNlZTcxY2U3NWVl
NGRkMjRmMDM0NDdkYTg0ZDk0ODdhN2FjZWQ5NS4uNjI2YjhkYzVkMDY3ZGJiNDFlY2VkMTU1NjM2
NmNjYmY2NGUwN2QwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS0ZyYW1lSGFuZGxlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9f
V0tGcmFtZUhhbmRsZS5tbQpAQCAtMjcsMTEgKzI3LDE1IEBACiAjaW1wb3J0ICJfV0tGcmFtZUhh
bmRsZUludGVybmFsLmgiCiAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBf
V0tGcmFtZUhhbmRsZQogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNT
Y2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKF9XS0ZyYW1lSGFuZGxlLmNsYXNzLCBzZWxm
KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX2ZyYW1lSGFuZGxlLT5+RnJhbWVIYW5kbGUoKTsK
IAogICAgIFtzdXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9Db2NvYS9fV0tIaXRUZXN0UmVzdWx0Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0NvY29hL19XS0hpdFRlc3RSZXN1bHQubW0KaW5kZXggYTY3MmJmOWQ5OTI4MTJkN2Q5ZTBiMzQ4
MGQ0M2ZhMzQ1ZDk3Y2ExNi4uNGRkOTZhNzRmNzBhNzlhODA5OGY5ZmU2ZmIzNTMwNTU4OGE2Njli
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RS
ZXN1bHQubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RS
ZXN1bHQubW0KQEAgLTI4LDEwICsyOCwxNSBAQAogCiAjaWYgUExBVEZPUk0oTUFDKQogCisjaW1w
b3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CisKIEBpbXBsZW1lbnRhdGlvbiBfV0tI
aXRUZXN0UmVzdWx0CiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1Nj
aGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AoX1dLSGl0VGVzdFJlc3VsdC5jbGFzcywgc2Vs
ZikpCisgICAgICAgIHJldHVybjsKKwogICAgIF9oaXRUZXN0UmVzdWx0LT5+SGl0VGVzdFJlc3Vs
dCgpOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvV0tOU0FycmF5Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV0tO
U0FycmF5Lm1tCmluZGV4IGQ2MWI2NDUzYWExYWNmNmY3NmFjNTI3YmNiMDBmMjNlMTZlODFkNDQu
LjgyZDc3NjY5YzU5ZTYyNDc2OTlkMjhjZTU4YmMxODg1MjVkMTk3NTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dLTlNBcnJheS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9XS05TQXJyYXkubW0KQEAgLTI2LDEyICsyNiwxNyBAQAogI2ltcG9ydCAi
Y29uZmlnLmgiCiAjaW1wb3J0ICJXS05TQXJyYXkuaCIKIAorI2ltcG9ydCA8V2ViQ29yZS9XZWJD
b3JlT2JqQ0V4dHJhcy5oPgorCiBAaW1wbGVtZW50YXRpb24gV0tOU0FycmF5IHsKICAgICBBUEk6
Ok9iamVjdFN0b3JhZ2U8QVBJOjpBcnJheT4gX2FycmF5OwogfQogCiAtICh2b2lkKWRlYWxsb2MK
IHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKFdL
TlNBcnJheS5jbGFzcywgc2VsZikpCisgICAgICAgIHJldHVybjsKKwogICAgIF9hcnJheS0+fkFy
cmF5KCk7CiAKICAgICBbc3VwZXIgZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9XS05TRGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dL
TlNEYXRhLm1tCmluZGV4IDNhYmEzNjdhOTNmMmJiZDVmMzkwN2I2NjhmNTViOGVlZTIwZjI5OGEu
LmQ3ZTczZjllZTFmZWM0ZmQ2M2JjNTJiMWU2MTc0Mzc3YjNmNDgxMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dLTlNEYXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvY29hL1dLTlNEYXRhLm1tCkBAIC0yNiwxMiArMjYsMTcgQEAKICNpbXBvcnQgImNv
bmZpZy5oIgogI2ltcG9ydCAiV0tOU0RhdGEuaCIKIAorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
T2JqQ0V4dHJhcy5oPgorCiBAaW1wbGVtZW50YXRpb24gV0tOU0RhdGEgewogICAgIEFQSTo6T2Jq
ZWN0U3RvcmFnZTxBUEk6OkRhdGE+IF9kYXRhOwogfQogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAg
ICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKFdLTlNEYXRh
LmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX2RhdGEtPn5EYXRhKCk7CiAK
ICAgICBbc3VwZXIgZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9XS05TRGljdGlvbmFyeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dLTlNE
aWN0aW9uYXJ5Lm1tCmluZGV4IDZmZTVjNTVkYmM1NTM2MTExYmRlMDVmNzBmODZkNDg3ZDRkMzkz
MmMuLjdkOThhYzg2MjNhODJiZjE1NmUyOWQ5MDg5NjhiNDc3YTNlZDliOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dLTlNEaWN0aW9uYXJ5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dLTlNEaWN0aW9uYXJ5Lm1tCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW1wb3J0ICJXS05TRGljdGlvbmFyeS5oIgogCiAjaW1wb3J0ICJXS05TQXJyYXkuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIApAQCAtMzYsNiArMzcsOSBAQCBAaW1wbGVtZW50YXRpb24gV0tOU0RpY3Rpb25hcnkg
ewogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxs
b2NhdGVPbk1haW5SdW5Mb29wKFdLTlNEaWN0aW9uYXJ5LmNsYXNzLCBzZWxmKSkKKyAgICAgICAg
cmV0dXJuOworCiAgICAgX2RpY3Rpb25hcnktPn5EaWN0aW9uYXJ5KCk7CiAKICAgICBbc3VwZXIg
ZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XS09iamVj
dC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dLT2JqZWN0Lm1tCmluZGV4IDNhOGUz
NGM0M2M5MjhlYzMxYzc4M2Y4YjVmMDZiZjlhMTQ1MWNkNTcuLmY1Zjc4ZTM3Y2UyYWY5YjVkZDUz
MmViYTUyZWMxYTYwNDc4ZjM1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL1dLT2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dLT2JqZWN0
Lm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXS09iamVjdC5oIgogCiAjaW1wb3J0ICJB
UElPYmplY3QuaCIKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogQGludGVyZmFjZSBOU09iamVjdCAoKQpAQCAtNTEsNiAr
NTIsOSBAQCBAaW1wbGVtZW50YXRpb24gV0tPYmplY3QgewogCiAtICh2b2lkKWRlYWxsb2MKIHsK
KyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKFdLT2Jq
ZWN0LmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgQVBJOjpPYmplY3Q6OmZy
b21XS09iamVjdEV4dHJhU3BhY2Uoc2VsZikufk9iamVjdCgpOwogCiAgICAgW3N1cGVyIGRlYWxs
b2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFn
ZVByaXZhdGVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdl
UHJpdmF0ZU1hYy5tbQppbmRleCA5YmUzMDJkZDI3ZTFlNTNmMjRjMjVkZmM5NWIyNTEwMDJlOGY0
Zjk5Li4zZmQzNzBhMGUwZjU3N2I5ZDI1NGIyODBjOTg4ZmI1Y2Y1NmZmNTUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJX
ZWJQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbXBvcnQgPHd0
Zi9NYWluVGhyZWFkLmg+CiAKIEBpbnRlcmZhY2UgV0tPYnNlcnZhYmxlUGFnZVN0YXRlIDogTlNP
YmplY3QgPF9XS09ic2VydmFibGVQYWdlU3RhdGU+IHsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJQ
YWdlUHJveHk+IF9wYWdlOwpAQCAtNjEsNyArNjIsMTEgQEAgLSAoaWQpaW5pdFdpdGhQYWdlOihS
ZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+JiYpcGFnZQogCiAtICh2b2lkKWRlYWxsb2MKIHsK
LSAgICBfcGFnZS0+cGFnZUxvYWRTdGF0ZSgpLnJlbW92ZU9ic2VydmVyKCpfb2JzZXJ2ZXIpOwor
ICAgIF9vYnNlcnZlci0+Y2xlYXJPYmplY3QoKTsKKworICAgIGVuc3VyZU9uTWFpblJ1bkxvb3Ao
W3BhZ2UgPSBXVEZNb3ZlKF9wYWdlKSwgb2JzZXJ2ZXIgPSBXVEZNb3ZlKF9vYnNlcnZlcildIHsK
KyAgICAgICAgcGFnZS0+cGFnZUxvYWRTdGF0ZSgpLnJlbW92ZU9ic2VydmVyKCpvYnNlcnZlcik7
CisgICAgfSk7CiAKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmgKaW5k
ZXggMDQ3Mjc0MDAyYWI4NDc4YjcxNmViZDA0NmUyMDc4ODQ5YTA3OTU1Ni4uOGJlNmIzOWI0NmM4
ODJmM2M1ZWM5MzY5NWNmMjlkYTAzMzg3MzQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1BhZ2VMb2FkU3RhdGVPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9QYWdlTG9hZFN0YXRlT2JzZXJ2ZXIuaApAQCAtMjMs
OSArMjMsNiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
Zm5kZWYgUGFnZUxvYWRTdGF0ZU9ic2VydmVyX2gKLSNkZWZpbmUgUGFnZUxvYWRTdGF0ZU9ic2Vy
dmVyX2gKLQogI2ltcG9ydCAiUGFnZUxvYWRTdGF0ZS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
QEAgLTM5LDYgKzM2LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCisgICAgdm9pZCBjbGVh
ck9iamVjdCgpCisgICAgeworICAgICAgICBtX29iamVjdCA9IG5pbDsKKyAgICB9CisKIHByaXZh
dGU6CiAgICAgdm9pZCB3aWxsQ2hhbmdlSXNMb2FkaW5nKCkgb3ZlcnJpZGUKICAgICB7CkBAIC0x
MTUsNSArMTE3LDMgQEAgcHJpdmF0ZToKIH07CiAKIH0KLQotI2VuZGlmIC8vIFBhZ2VMb2FkU3Rh
dGVPYnNlcnZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tCYWNrRm9yd2FyZExpc3QubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tCYWNrRm9yd2FyZExpc3QubW0KaW5kZXggMzkxNTYyZDI0YTIxNzA1ZjE3ZWIzMDVhM2E1
ZDhlOGM5MjY5MTg4Yy4uMDM3MGNmMmZkYzNkMTYyMDM2M2QxNWU2MTRmMzE2YWUyZjA1MDZiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0Zvcndh
cmRMaXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tG
b3J3YXJkTGlzdC5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1wb3J0ICJXS0JhY2tGb3J3YXJk
TGlzdEl0ZW1JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tOU0FycmF5LmgiCisjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBXS0JhY2tGb3J3YXJk
TGlzdCB7CiAgICAgQVBJOjpPYmplY3RTdG9yYWdlPFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0
PiBfbGlzdDsKQEAgLTM1LDYgKzM2LDkgQEAgQGltcGxlbWVudGF0aW9uIFdLQmFja0ZvcndhcmRM
aXN0IHsKIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVE
ZWFsbG9jYXRlT25NYWluUnVuTG9vcChXS0JhY2tGb3J3YXJkTGlzdC5jbGFzcywgc2VsZikpCisg
ICAgICAgIHJldHVybjsKKwogICAgIF9saXN0LT5+V2ViQmFja0ZvcndhcmRMaXN0KCk7CiAKICAg
ICBbc3VwZXIgZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5tbQppbmRleCAxMjQ3YjA3OGIxZjRk
YmJjMzY0Y2M4YWFiNGY3NjM1YWI1NjRiOTQ5Li43ZTA5Y2UzNjE0NTdiNWFmYTRhOGM4YWFlZGNj
NWQ4OGE3NjRhYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0ubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNp
bXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SXRlbUludGVybmFsLmgiCiAKICNpbXBvcnQgIldLTlNV
UkxFeHRyYXMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KIAogQGlt
cGxlbWVudGF0aW9uIFdLQmFja0ZvcndhcmRMaXN0SXRlbSB7CiAgICAgQVBJOjpPYmplY3RTdG9y
YWdlPFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0SXRlbT4gX2l0ZW07CkBAIC0zNCw2ICszNSw5
IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gewogCiAtICh2b2lkKWRl
YWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5M
b29wKFdLQmFja0ZvcndhcmRMaXN0SXRlbS5jbGFzcywgc2VsZikpCisgICAgICAgIHJldHVybjsK
KwogICAgIF9pdGVtLT5+V2ViQmFja0ZvcndhcmRMaXN0SXRlbSgpOwogCiAgICAgW3N1cGVyIGRl
YWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggMjAxZDViM2UyZjYz
OTg2YzUyMDMwNWU4ZjE3NzdlNzM4ZmQ2ZjFlNi4uMDUyNTcwZWE1Zjk0ZDUwYmEzODhmNGM2YzNj
ZjMzOWRkZDQ4Y2U5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCkBAIC01Niw2
ICs1Niw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiV2ViUHJvdGVj
dGlvblNwYWNlLmgiCiAjaW1wb3J0ICJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgi
CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogCkBAIC05MCw2ICs5
MSw5IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAtICh2b2lkKWRlYWxs
b2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29w
KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5jbGFzcywgc2VsZikpCisgICAgICAgIHJldHVy
bjsKKwogICAgIEFTU0VSVChicm93c2luZ0NvbnRleHRDb250cm9sbGVyTWFwKCkuZ2V0KF9wYWdl
LmdldCgpKSA9PSBzZWxmKTsKICAgICBicm93c2luZ0NvbnRleHRDb250cm9sbGVyTWFwKCkucmVt
b3ZlKF9wYWdlLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbQppbmRleCAxNGEzYjFkOWY0
OGQ5ZWFhNDY1YjFmZTUyNmY2YWM1ZWJhMTYwMTdkLi44ZjQxYjEyMjc0MDRkZTI2ODM5MmYyNDk4
NWIwZTI1NWUzMzFlZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbQpAQCAtMzgsNiArMzgsNyBA
QAogI2ltcG9ydCAiV0tTdHJpbmdDRi5oIgogI2ltcG9ydCAiV0tVUkwuaCIKICNpbXBvcnQgIldL
VVJMQ0YuaCIKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQg
PHd0Zi9WZWN0b3IuaD4KIAogQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfQkVHSU4K
QEAgLTQ4LDYgKzQ5LDkgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAK
IC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0
ZU9uTWFpblJ1bkxvb3AoV0tCcm93c2luZ0NvbnRleHRHcm91cC5jbGFzcywgc2VsZikpCisgICAg
ICAgIHJldHVybjsKKwogICAgIF9wYWdlR3JvdXAtPn5XZWJQYWdlR3JvdXAoKTsKIAogICAgIFtz
dXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Nvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tDb25uZWN0aW9uLm1tCmluZGV4IGE0MTkzYjdhMmFmMGU3MTEyZWE3NzJhMTk5ZWE3YzMwNzBk
NGRiMzkuLjBmZWUzZWQxNmU4M2EzODVmNTFhZjI5NWMwZGU5ZjNkNTczOWU2NjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nvbm5lY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlvbi5tbQpAQCAt
MzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV0tSZXRhaW5QdHIuaCIKICNpbXBvcnQgIldLU2hhcmVk
QVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tTdHJpbmdDRi5oIgorI2ltcG9ydCA8V2ViQ29yZS9XZWJD
b3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3Rm
L1dlYWtPYmpDUHRyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQyLDYg
KzQzLDkgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAKIC0gKHZvaWQp
ZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1
bkxvb3AoV0tDb25uZWN0aW9uLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
c2VsZi5fY29ubmVjdGlvbi5+V2ViQ29ubmVjdGlvbigpOwogCiAgICAgW3N1cGVyIGRlYWxsb2Nd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVu
dFJ1bGVMaXN0Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVu
dFJ1bGVMaXN0Lm1tCmluZGV4IDFjZTJiZjNhMDFkMmRiMzJmZDUyYzUyMmZlMmQwNWMyNTBkNTIy
YTguLjJlZGJjMTUyMmUxNmMxMjdmMTUyNGVhNTA0MWVjMjJlYWIwM2EyMjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50UnVsZUxpc3Qu
bW0KQEAgLTI3LDExICsyNywxNSBAQAogI2ltcG9ydCAiV0tDb250ZW50UnVsZUxpc3RJbnRlcm5h
bC5oIgogCiAjaW1wb3J0ICJXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oIgorI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogCiBAaW1wbGVtZW50YXRpb24gV0tDb250ZW50
UnVsZUxpc3QKIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1
bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChXS0NvbnRlbnRSdWxlTGlzdC5jbGFzcywgc2VsZikp
CisgICAgICAgIHJldHVybjsKKwogICAgIF9jb250ZW50UnVsZUxpc3QtPn5Db250ZW50UnVsZUxp
c3QoKTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmUubW0KaW5kZXgg
NmYyZjJhNDFkMTM2NTAyN2IwODE1M2U3ZmU2MGJlYmJkM2M0N2FjNS4uNTgyNTE0YzhiZTVjZTcx
MzM3Y2I2MDRkM2MzMjVlYTUwNDM5YWM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmUubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmUubW0KQEAgLTMw
LDYgKzMwLDcgQEAKICNpbXBvcnQgIkFQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgiCiAjaW1wb3J0
ICJOZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmgiCiAjaW1wb3J0ICJXS0Vycm9ySW50ZXJuYWwuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9CbG9j
a1B0ci5oPgogI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW1wb3J0IDx3dGYv
Y29jb2EvVmVjdG9yQ29jb2EuaD4KQEAgLTU1LDYgKzU2LDkgQEAgQGltcGxlbWVudGF0aW9uIFdL
Q29udGVudFJ1bGVMaXN0U3RvcmUKIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAgaWYgKFdlYkNv
cmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChXS0NvbnRlbnRSdWxlTGlzdFN0
b3JlLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX2NvbnRlbnRSdWxlTGlz
dFN0b3JlLT5+Q29udGVudFJ1bGVMaXN0U3RvcmUoKTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRX
b3JsZC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRXb3Js
ZC5tbQppbmRleCAwYjQ1ZGU1NTg4MDA4N2FhZGE1Y2U3ZWQ1ODY3YTQwYjJlOGM3NjYxLi5kMDky
ZTM0M2U4Y2FmNzgzMmQ3ODE0ZjQ0MmJkZWVjMGY2NTBhZjg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50V29ybGQubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFdvcmxkLm1tCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW1wb3J0ICJXS0NvbnRlbnRXb3JsZEludGVybmFsLmgiCiAKICNpbXBvcnQgIl9X
S1VzZXJDb250ZW50V29ybGRJbnRlcm5hbC5oIgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2Jq
Q0V4dHJhcy5oPgogCiBAaW1wbGVtZW50YXRpb24gV0tDb250ZW50V29ybGQKIApAQCAtNDcsNiAr
NDgsOSBAQCArIChXS0NvbnRlbnRXb3JsZCAqKXdvcmxkV2l0aE5hbWU6KE5TU3RyaW5nICopbmFt
ZQogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxs
b2NhdGVPbk1haW5SdW5Mb29wKFdLQ29udGVudFdvcmxkLmNsYXNzLCBzZWxmKSkKKyAgICAgICAg
cmV0dXJuOworCiAgICAgX2NvbnRlbnRXb3JsZC0+fkNvbnRlbnRXb3JsZCgpOwogCiAgICAgW3N1
cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRG93bmxvYWQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tE
b3dubG9hZC5tbQppbmRleCBiZjBjYmRhY2FlNmVhYTRmOTcxM2U2NTU2ZDIyOGIyMTEwMmM5MGJm
Li5mMmU0YTljOTFlOTVkOTA1MWE5OGY2MjA2NGRmYzdiYjlmYWMwOWQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tEb3dubG9hZC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tEb3dubG9hZC5tbQpAQCAtMzQsNiArMzQs
NyBAQAogI2ltcG9ydCAiV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW1wb3J0
ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvV2Vh
a09iakNQdHIuaD4KIAogY2xhc3MgRG93bmxvYWRDbGllbnQgZmluYWwgOiBwdWJsaWMgQVBJOjpE
b3dubG9hZENsaWVudCB7CkBAIC0yNDIsNiArMjQzLDggQEAgLSAoTlNQcm9ncmVzcyAqKXByb2dy
ZXNzCiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVh
bGxvY2F0ZU9uTWFpblJ1bkxvb3AoV0tEb3dubG9hZC5jbGFzcywgc2VsZikpCisgICAgICAgIHJl
dHVybjsKICAgICBfZG93bmxvYWQtPn5Eb3dubG9hZFByb3h5KCk7CiAgICAgW3N1cGVyIGRlYWxs
b2NdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
RnJhbWVJbmZvLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJ
bmZvLm1tCmluZGV4IGUzN2UzZjJhOTAxYjYyMzJkNzg2ODExZDcyMjgwNGFhYjNhOWE2ODAuLmVm
NjM5YjBjMTlhNzk2ZTZkMzRkNDkyMzFiZTkyYWIzYjNmNzdlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8ubW0KQEAgLTI5LDExICsyOSwx
NSBAQAogI2ltcG9ydCAiV0tTZWN1cml0eU9yaWdpbkludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dl
YlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgorI2lt
cG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogCiBAaW1wbGVtZW50YXRpb24gV0tG
cmFtZUluZm8KIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1
bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChXS0ZyYW1lSW5mby5jbGFzcywgc2VsZikpCisgICAg
ICAgIHJldHVybjsKKwogICAgIF9mcmFtZUluZm8tPn5GcmFtZUluZm8oKTsKIAogICAgIFtzdXBl
ciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0hUVFBDb29raWVTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0hUVFBDb29raWVTdG9yZS5tbQppbmRleCBhNDMxYzk1OWZhOGQ2OTA4ZjliOWYzZjYwZDk0
YzMxNzI0N2VmN2Q2Li5iMjJkNTI1MjE3MjE5NDBmMmQzZmY4OTYyNmM1MGU1ZWNlMDlhZDU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2ll
U3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENv
b2tpZVN0b3JlLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0Nvb2tpZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3lDb2NvYS5oPgorI2ltcG9ydCA8V2ViQ29yZS9X
ZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KQEAgLTY3
LDYgKzY4LDkgQEAgQGltcGxlbWVudGF0aW9uIFdLSFRUUENvb2tpZVN0b3JlIHsKIAogLSAodm9p
ZClkZWFsbG9jCiB7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWlu
UnVuTG9vcChXS0hUVFBDb29raWVTdG9yZS5jbGFzcywgc2VsZikpCisgICAgICAgIHJldHVybjsK
KwogICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBfb2JzZXJ2ZXJzLnZhbHVlcygpKQogICAgICAg
ICBfY29va2llU3RvcmUtPnVucmVnaXN0ZXJPYnNlcnZlcigqb2JzZXJ2ZXIpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbi5tbQppbmRleCA3
NzA3NWJkNjY0YmIxYjkxNTdkODAzYTRmYmFlYjEzOGI3M2JmMzQzLi4xZmM0YmJiMDgzZTBkMjZh
Y2IwMjNiZDJkZTc2YmI3NWFkMGI3NDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb24ubW0KQEAgLTI4LDYgKzI4LDcgQEAKICNpbXBvcnQg
IldLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaCIKIAogI2ltcG9ydCAiQVBJTmF2aWdhdGlv
bi5oIgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogCiBAaW1wbGVtZW50
YXRpb24gV0tOYXZpZ2F0aW9uIHsKICAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpOYXZpZ2F0
aW9uPiBfbmF2aWdhdGlvbjsKQEAgLTM1LDYgKzM2LDkgQEAgQGltcGxlbWVudGF0aW9uIFdLTmF2
aWdhdGlvbiB7CiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVk
dWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AoV0tOYXZpZ2F0aW9uLmNsYXNzLCBzZWxmKSkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgX25hdmlnYXRpb24tPn5OYXZpZ2F0aW9uKCk7CiAKICAgICBb
c3VwZXIgZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5tbQppbmRleCAyZDc4ZWVlYzBhMmQ3YWM3MDA3OTg2
YzdjN2Q1ZmUyMWIwMTVhNzE4Li42NWFkMWRkMTU4ZDNlNjBjYWQ3YjI5MTUzZmQzMjMxMzk3NDFh
MDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZp
Z2F0aW9uQWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25BY3Rpb24ubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIldlYkV2ZW50
RmFjdG9yeS5oIgogI2ltcG9ydCAiX1dLVXNlckluaXRpYXRlZEFjdGlvbkludGVybmFsLmgiCiAj
aW1wb3J0IDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9i
akNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCkBAIC03OSw2ICs4MCw5IEBAIHN0YXRpYyBXS1N5bnRoZXRpY0NsaWNrVHlwZSB0
b1dLU3ludGhldGljQ2xpY2tUeXBlKFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhlCiAKIC0g
KHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9u
TWFpblJ1bkxvb3AoV0tOYXZpZ2F0aW9uQWN0aW9uLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0
dXJuOworCiAgICAgX25hdmlnYXRpb25BY3Rpb24tPn5OYXZpZ2F0aW9uQWN0aW9uKCk7CiAKICAg
ICBbc3VwZXIgZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25EYXRhLm1tCmluZGV4IGRiZGMwZDlhNGU2N2M4NzkwZDUyYzIx
ODUzNTI4MGIxOTRmZmE0NzQuLjI4M2Y4YzQ3MGM1NDQ3YjliNGJjZGE4Yjc1N2I2NTVkODI0MDU4
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmln
YXRpb25EYXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05h
dmlnYXRpb25EYXRhLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJXS05TVVJMRXh0cmFz
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFz
Lmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBXS05hdmlnYXRpb25EYXRhIHsKICAgICBBUEk6Ok9iamVj
dFN0b3JhZ2U8QVBJOjpOYXZpZ2F0aW9uRGF0YT4gX2RhdGE7CkBAIC0zNiw2ICszNyw5IEBAIEBp
bXBsZW1lbnRhdGlvbiBXS05hdmlnYXRpb25EYXRhIHsKIAogLSAodm9pZClkZWFsbG9jCiB7Cisg
ICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChXS05hdmln
YXRpb25EYXRhLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX2RhdGEtPn5O
YXZpZ2F0aW9uRGF0YSgpOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLm1t
CmluZGV4IDZjMzcwNjNlMjY4MTEwODFjYmY1ZjBhYzQ1MTBlMmFmN2Y5NDlkMTguLjYyM2E4YWFm
ZWU2MmYxMmIzZGUxZjBiNDM3MWRjZmZjMTYxNjdmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW0KQEAg
LTI3LDExICsyNywxNSBAQAogI2ltcG9ydCAiV0tOYXZpZ2F0aW9uUmVzcG9uc2VJbnRlcm5hbC5o
IgogCiAjaW1wb3J0ICJXS0ZyYW1lSW5mb0ludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVPYmpDRXh0cmFzLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBXS05hdmlnYXRpb25SZXNwb25z
ZQogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxs
b2NhdGVPbk1haW5SdW5Mb29wKFdLTmF2aWdhdGlvblJlc3BvbnNlLmNsYXNzLCBzZWxmKSkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgX25hdmlnYXRpb25SZXNwb25zZS0+fk5hdmlnYXRpb25SZXNw
b25zZSgpOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCAwYzc5YmZmZWQ1YmVkYzc3
OWEyYzk4MTIzZjI4ZTcyMzY2MDU0YzNhLi44ZTA0NjRkOWFiYmEyMGZmMTQxY2Q2ZWE1ZDBkOWRj
OGY2YzhiMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlcy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiX1dLSW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmVJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
T2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBAaW1wbGVtZW50YXRp
b24gV0tQcmVmZXJlbmNlcwpAQCAtNDksNiArNTAsOSBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdAog
CiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2Nh
dGVPbk1haW5SdW5Mb29wKFdLUHJlZmVyZW5jZXMuY2xhc3MsIHNlbGYpKQorICAgICAgICByZXR1
cm47CisKICAgICBfcHJlZmVyZW5jZXMtPn5XZWJQcmVmZXJlbmNlcygpOwogCiAgICAgW3N1cGVy
IGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQppbmRleCBjNDgyZmQ0YjA0NjFkZTgwY2YyODJhNjIzMzk5MWZiNzM5YzIy
NDFkLi44NjcyMDg3YmI2ZTQ0MzNkMTJjMWI4ZDZjMjkwODg2N2Y2NjhjYzNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAt
NTMsNiArNTMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Q29j
b2EuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
ZWdpc3RyYWJsZURvbWFpbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5o
PgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9j
a1B0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtOTksNiArMTAwLDkgQEAgLSAo
aW5zdGFuY2V0eXBlKWluaXQKIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAgaWYgKFdlYkNvcmVP
YmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChXS1Byb2Nlc3NQb29sLmNsYXNzLCBz
ZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX3Byb2Nlc3NQb29sLT5+V2ViUHJvY2Vzc1Bv
b2woKTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NlY3VyaXR5T3JpZ2luLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLU2VjdXJpdHlPcmlnaW4ubW0KaW5kZXggYzUyNWJlNWE2ZTY3
OWZkZTQ3MGNkNGE3YzQwZjdlNTlmMjhlMDRkZi4uNGY5ZjlmZjk5Yjk0ZGMzOWNiY2Y2YWMyZTcx
M2MyNzMyYjg5OGI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLU2VjdXJpdHlPcmlnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLU2VjdXJpdHlPcmlnaW4ubW0KQEAgLTI4LDEyICsyOCwxNiBAQAogCiAjaW1wb3J0
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8
d3RmL1JlZlB0ci5oPgogCiBAaW1wbGVtZW50YXRpb24gV0tTZWN1cml0eU9yaWdpbgogCiAtICh2
b2lkKWRlYWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1h
aW5SdW5Mb29wKFdLU2VjdXJpdHlPcmlnaW4uY2xhc3MsIHNlbGYpKQorICAgICAgICByZXR1cm47
CisKICAgICBfc2VjdXJpdHlPcmlnaW4tPn5TZWN1cml0eU9yaWdpbigpOwogCiAgICAgW3N1cGVy
IGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVXNlckNvbnRlbnRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLm1tCmluZGV4IDBkMzM1MmRmMmU5ODA3NGY4
MWM0YjE3ZTE3MzIyNzIyNDZmMzg4ZmYuLjZiMzE1ZTMzNGUzOWZmZTU2NTFkYWQxOWQzYTM0ZWNk
Y2IzZTcwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VzZXJDb250ZW50Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIubW0KQEAgLTQ2LDYgKzQ2LDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW5EYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogCiBAaW1wbGVtZW50YXRp
b24gV0tVc2VyQ29udGVudENvbnRyb2xsZXIKIApAQCAtNjEsNiArNjIsOSBAQCAtIChpbnN0YW5j
ZXR5cGUpaW5pdAogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hl
ZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLmNsYXNz
LCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX3VzZXJDb250ZW50Q29udHJvbGxlclBy
b3h5LT5+V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkoKTsKIAogICAgIFtzdXBlciBkZWFs
bG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Vz
ZXJTY3JpcHQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2Ny
aXB0Lm1tCmluZGV4IDg5MzgwMGQ1NDc3MzA3ZGU4ZDBlZGJmYTU0YTdmNDVhOGVhYjI3OGYuLjc2
ZGQzY2Y4YzA2YjJhNjAwOTQxN2UwNmRkYjVlZDMzZTBkZDE1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5tbQpAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW1wb3J0ICJXS0NvbnRlbnRXb3JsZEludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tV
c2VyQ29udGVudFdvcmxkSW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogCiBAaW1wbGVtZW50
YXRpb24gV0tVc2VyU2NyaXB0CkBAIC00OSw2ICs1MCw5IEBAIC0gKGluc3RhbmNldHlwZSlpbml0
V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0
SW5qCiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVh
bGxvY2F0ZU9uTWFpblJ1bkxvb3AoV0tVc2VyU2NyaXB0LmNsYXNzLCBzZWxmKSkKKyAgICAgICAg
cmV0dXJuOworCiAgICAgX3VzZXJTY3JpcHQtPn5Vc2VyU2NyaXB0KCk7CiAKICAgICBbc3VwZXIg
ZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCBiYWYyODkxYTgxMjk0ZjQ1ZWI5ZDY1OTJjNjFlNmEzN2NmMjIxMDk3Li42NGU5
NGU2ZTE0OTIxNTNiMzEzNWE3MjZkYTUwNjg0NDA1Zjc4YjliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTEzOCw2ICsxMzgsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1l
bnRzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYlZpZXdWaXN1YWxJZGVudGlmaWNhdGlvbk92ZXJsYXkuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV3JpdGluZ01vZGUuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgpAQCAtNjE2LDYg
KzYxNyw5IEBAIC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKIAogLSAo
dm9pZClkZWFsbG9jCiB7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25N
YWluUnVuTG9vcChXS1dlYlZpZXcuY2xhc3MsIHNlbGYpKQorICAgICAgICByZXR1cm47CisKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgW190ZXh0RmluZGVyQ2xpZW50IHdpbGxEZXN0cm95Vmlldzpz
ZWxmXTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCmluZGV4IGNiNTY0ZGNkYjI2MGRlMmY4NmY3
NGIyODRiZGUxMzE3Zjc5ZWU4Y2EuLjkwZDBmZTIxZTRiODQ3MmMzYmQyMzVjOWNlMTg0MTlhZTk0
NWJiZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnBhZ2VQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIl9X
S0N1c3RvbUhlYWRlckZpZWxkc0ludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRlUG9saWNp
ZXNJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2ltcG9y
dCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEwOSw2ICsxMTAsOSBAQCArIChpbnN0YW5jZXR5
cGUpZGVmYXVsdFByZWZlcmVuY2VzCiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJD
b3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AoV0tXZWJwYWdlUHJlZmVyZW5j
ZXMuY2xhc3MsIHNlbGYpKQorICAgICAgICByZXR1cm47CisKICAgICBfd2Vic2l0ZVBvbGljaWVz
LT5BUEk6OldlYnNpdGVQb2xpY2llczo6fldlYnNpdGVQb2xpY2llcygpOwogCiAgICAgW3N1cGVy
IGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFSZWNvcmQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQppbmRleCBmMzk1YTcxOGExNThhNTQ0M2NjYTUyYzBk
Mjg2YTg5YjVlZGQyMzFiLi42YTM2Zjk4ZGM0MTU5OWUwMmU1NjU0ZTU1MDNlZjE0OGIxYzU1ZDAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVJlY29yZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVJlY29yZC5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1wb3J0ICJfV0tXZWJz
aXRlRGF0YVNpemVJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRh
dGEuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0
Zi9IYXNoU2V0Lmg+CiAKIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVGZXRjaENh
Y2hlID0gQCJXS1dlYnNpdGVEYXRhVHlwZUZldGNoQ2FjaGUiOwpAQCAtNjAsNiArNjEsOSBAQCBA
aW1wbGVtZW50YXRpb24gV0tXZWJzaXRlRGF0YVJlY29yZAogCiAtICh2b2lkKWRlYWxsb2MKIHsK
KyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKFdLV2Vi
c2l0ZURhdGFSZWNvcmQuY2xhc3MsIHNlbGYpKQorICAgICAgICByZXR1cm47CisKICAgICBfd2Vi
c2l0ZURhdGFSZWNvcmQtPkFQSTo6V2Vic2l0ZURhdGFSZWNvcmQ6On5XZWJzaXRlRGF0YVJlY29y
ZCgpOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggNDBkN2Y4NWJm
OWJmODQyNjVkMDZkNDk3MmRjNGQwNmVlMGNlOTUzMS4uNTQyZjAxMTcxYjkwOWJiMTBjOTM4ODRk
MTM2NWZiNTQ1YzBhOTYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC00NCw2ICs0NCw3IEBACiAjaW1w
b3J0IDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVnaXN0cmF0aW9u
RGF0YWJhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgorI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAj
aW1wb3J0IDx3dGYvVVJMLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KQEAgLTEzMSw2
ICsxMzIsOSBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdAogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAg
ICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKFdLV2Vic2l0
ZURhdGFTdG9yZS5jbGFzcywgc2VsZikpCisgICAgICAgIHJldHVybjsKKwogICAgIF93ZWJzaXRl
RGF0YVN0b3JlLT5XZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKCk7
CiAKICAgICBbc3VwZXIgZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLm1tCmluZGV4IDM4ZDc2MWI1NjA2YWY4Y2Zk
YjBhN2ZiNjFlNGQ2MzhlMDFmNjMzMzYuLmJkNzE2NGRjYTI0NDQzOWY5M2U3YTY3NTMxZTZmMzdk
YmMwMDUxOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dpbmRvd0ZlYXR1cmVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dpbmRvd0ZlYXR1cmVzLm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIldLV2luZG93RmVhdHVyZXNJbnRlcm5hbC5oIgogCisjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVz
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTMzLDYgKzM0LDkgQEAgQGltcGxl
bWVudGF0aW9uIFdLV2luZG93RmVhdHVyZXMKIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAgaWYg
KFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChXS1dpbmRvd0ZlYXR1
cmVzLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX3dpbmRvd0ZlYXR1cmVz
LT5BUEk6OldpbmRvd0ZlYXR1cmVzOjp+V2luZG93RmVhdHVyZXMoKTsKIAogICAgIFtzdXBlciBk
ZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBcHBsaWNhdGlvbk1hbmlmZXN0Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0FwcGxpY2F0aW9uTWFuaWZlc3QubW0KaW5kZXggZWE1NTljNWMzMGVmM2FjMTZlNWU0
YTczNzk3OTE1NjIxOWVkOGY0My4uZjU0MDc4MzI1ZGExYmZmZjhkNTdhZTA2NjIzNzg3MzQ1MTNl
YTk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Fw
cGxpY2F0aW9uTWFuaWZlc3QubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0FwcGxpY2F0aW9uTWFuaWZlc3QubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9y
dCA8V2ViQ29yZS9BcHBsaWNhdGlvbk1hbmlmZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxp
Y2F0aW9uTWFuaWZlc3RQYXJzZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRy
YXMuaD4KIAogQGltcGxlbWVudGF0aW9uIF9XS0FwcGxpY2F0aW9uTWFuaWZlc3QKIApAQCAtNjMs
NiArNjQsOSBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWFEZWNv
ZGVyCiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVh
bGxvY2F0ZU9uTWFpblJ1bkxvb3AoX1dLQXBwbGljYXRpb25NYW5pZmVzdC5jbGFzcywgc2VsZikp
CisgICAgICAgIHJldHVybjsKKwogICAgIF9hcHBsaWNhdGlvbk1hbmlmZXN0LT5+QXBwbGljYXRp
b25NYW5pZmVzdCgpOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbQppbmRleCBlZmM2YjNhOTA3
M2VmZWE3MDhmOWE2NzA2ZjZiM2I2M2FjMTViNjdkLi5kZGMyNGI3ZWFjNTJhYTM0NmU4MzgwOWY4
NGYyZjcwOTAyNGI2OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQXR0YWNobWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQXR0YWNobWVudC5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiX1dLQXR0
YWNobWVudEludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNv
cmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9D
b21wbGV0aW9uSGFuZGxlci5oPgogCkBAIC0xMDUsNiArMTA2LDkgQEAgQGltcGxlbWVudGF0aW9u
IF9XS0F0dGFjaG1lbnQKIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAgaWYgKFdlYkNvcmVPYmpD
U2NoZWR1bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChfV0tBdHRhY2htZW50LmNsYXNzLCBzZWxm
KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX2F0dGFjaG1lbnQtPn5BdHRhY2htZW50KCk7CiAK
ICAgICBbc3VwZXIgZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24ubW0KaW5kZXggOTgwNWJiMDQxMmRm
OWQwMzU2OGMwNzgwYmViNTY1YWNkYjkxYTVkOS4uZDVhZTEwNGI1MTJkZTM0ZThkOWQ0YzgyZGNk
ZDIwZDQ4YzRiOTViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0F1dG9tYXRpb25TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2lt
cG9ydCAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIKICNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNz
aW9uQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb25EZWxlZ2F0
ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3Rm
L1dlYWtPYmpDUHRyLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tBdXRvbWF0aW9uU2Vzc2lvbiB7
CkBAIC01OCw2ICs1OSw5IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbmZpZ3VyYXRpb246
KF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbiAqKWNvbmZpCiAKIC0gKHZvaWQpZGVh
bGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxv
b3AoX1dLQXV0b21hdGlvblNlc3Npb24uY2xhc3MsIHNlbGYpKQorICAgICAgICByZXR1cm47CisK
ICAgICBfc2Vzc2lvbi0+c2V0Q2xpZW50KG51bGxwdHIpOwogICAgIF9zZXNzaW9uLT5+V2ViQXV0
b21hdGlvblNlc3Npb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZW50UnVsZUxpc3RBY3Rpb24ubW0KaW5kZXggMjdhMTM1
YjJkZmMzMWRkMGIzOTgwZjRhN2Q1ODgwYzI2NmY1MzNlOC4uOWE3ZmQ1ZWIxYTUyOGQ0NGU0ZTBj
MWNiODQ3ZTg0Nzg4OTkyZmNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLm1tCkBAIC0yNiwx
MiArMjYsMTYgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiX1dLQ29udGVudFJ1bGVM
aXN0QWN0aW9uSW50ZXJuYWwuaCIKIAorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJh
cy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CiAKIEBpbXBsZW1lbnRhdGlv
biBfV0tDb250ZW50UnVsZUxpc3RBY3Rpb24KIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAgaWYg
KFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChfV0tDb250ZW50UnVs
ZUxpc3RBY3Rpb24uY2xhc3MsIHNlbGYpKQorICAgICAgICByZXR1cm47CisKICAgICBfYWN0aW9u
LT5+Q29udGVudFJ1bGVMaXN0QWN0aW9uKCk7CiAgICAgCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0N1c3RvbUhl
YWRlckZpZWxkcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDdXN0
b21IZWFkZXJGaWVsZHMubW0KaW5kZXggNTBlZTg0NWJiZDU4ZDFkMGU4MjEzZDRiYTkzZjVjZWU4
NzhmOWU5OC4uMDUxMzVjNmIyMTU3NWQ5NDlhZDdjOGU2Mjk2YjdiNTMyNzQ1Y2M0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0N1c3RvbUhlYWRlckZp
ZWxkcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ3VzdG9t
SGVhZGVyRmllbGRzLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJfV0tDdXN0b21IZWFk
ZXJGaWVsZHMuaCIKIAogI2ltcG9ydCAiX1dLQ3VzdG9tSGVhZGVyRmllbGRzSW50ZXJuYWwuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9CbG9j
a1B0ci5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CiAKQEAgLTQzLDYgKzQ0
LDggQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQKIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAgaWYg
KFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChfV0tDdXN0b21IZWFk
ZXJGaWVsZHMuY2xhc3MsIHNlbGYpKQorICAgICAgICByZXR1cm47CiAgICAgX2ZpZWxkcy0+QVBJ
OjpDdXN0b21IZWFkZXJGaWVsZHM6On5DdXN0b21IZWFkZXJGaWVsZHMoKTsKICAgICBbc3VwZXIg
ZGVhbGxvY107CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCmluZGV4IDg1OWIwMDljYjgzOTBkMmRk
Y2VlYzE4ZDdjMGE0NWZmYzg2ZWQ4NjcuLjMzMGIzZjkyNTk2NTgzNDVjMGNjODI3NmQzZThmM2U0
MzcxZGNlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCkBAIC0yNiwxMCArMjYsMTUgQEAKICNp
bXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiX1dLRXhwZXJpbWVudGFsRmVhdHVyZUludGVybmFs
LmgiCiAKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KKwogQGltcGxlbWVu
dGF0aW9uIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUKIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAg
aWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChfV0tFeHBlcmlt
ZW50YWxGZWF0dXJlLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX2V4cGVy
aW1lbnRhbEZlYXR1cmUtPkFQSTo6RXhwZXJpbWVudGFsRmVhdHVyZTo6fkV4cGVyaW1lbnRhbEZl
YXR1cmUoKTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGcmFtZVRyZWVOb2RlLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0ZyYW1lVHJlZU5vZGUubW0KaW5kZXggNTcyOTU4YWRj
MjEzODliYWVjOWZhOWQzNjlmMDc3ODVkN2VmMTMyMS4uMTYwYzFhZDFjYTIwNDc5YTUwYTQyOWY3
YTI1MzM3OWRjNDQ0NWQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0ZyYW1lVHJlZU5vZGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0ZyYW1lVHJlZU5vZGUubW0KQEAgLTI5LDEyICsyOSwxNSBAQAogI2ltcG9y
dCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwu
aCIKICNpbXBvcnQgIl9XS0ZyYW1lVHJlZU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+
CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tGcmFtZVRyZWVOb2RlCiAKIC0gKHZvaWQpZGVhbGxvYwog
eworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AoX1dL
RnJhbWVUcmVlTm9kZS5jbGFzcywgc2VsZikpCisgICAgICAgIHJldHVybjsKICAgICBfbm9kZS0+
QVBJOjpGcmFtZVRyZWVOb2RlOjp+RnJhbWVUcmVlTm9kZSgpOwogICAgIFtzdXBlciBkZWFsbG9j
XTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tH
ZW9sb2NhdGlvblBvc2l0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0dlb2xvY2F0aW9uUG9zaXRpb24ubW0KaW5kZXggMDlhMGQ2MDAxYWY3MTk2MWZmYTc5ZDYy
YjkxZTA4ZmI1N2JlZGZhMi4uZDEwMzJlZjgxMGYzNDA0ODQ2YTkyMGQxYWI5ZTI1MWYyNDU3NDM4
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xv
Y2F0aW9uUG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0dlb2xvY2F0aW9uUG9zaXRpb24ubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogCiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ0xMb2NhdGlvbi5oPgorI2lt
cG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogCiBAaW1wbGVtZW50YXRpb24gX1dL
R2VvbG9jYXRpb25Qb3NpdGlvbgogCkBAIC00Miw2ICs0Myw5IEBAICsgKGluc3RhbmNldHlwZSlw
b3NpdGlvbldpdGhMb2NhdGlvbjooQ0xMb2NhdGlvbiAqKWxvY2F0aW9uCiAKIC0gKHZvaWQpZGVh
bGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxv
b3AoX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5jbGFzcywgc2VsZikpCisgICAgICAgIHJldHVybjsK
KwogICAgIF9nZW9sb2NhdGlvblBvc2l0aW9uLT5+V2ViR2VvbG9jYXRpb25Qb3NpdGlvbigpOwog
CiAgICAgW3N1cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3RvckNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbi5tbQppbmRleCA3
MDRkNDA1NmUyODNjMzFjNzEyOWZlMGNjOWU5ZDExNDM5ZTkxZGJlLi5lMjMyZmQ2MTIyNWU3OTU3
ZjQ5MjM5MWQzOGNhZTFlMjQzY2VjZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbi5tbQpA
QCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiV0tQcm9jZXNzUG9vbEludGVybmFsLmgiCiAjaW1w
b3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViVVJMU2No
ZW1lSGFuZGxlckNvY29hLmgiCisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+
CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uCiAKQEAgLTQ0LDYg
KzQ1LDggQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQKIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAg
aWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChfV0tJbnNwZWN0
b3JDb25maWd1cmF0aW9uLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOwogICAgIF9jb25m
aWd1cmF0aW9uLT5BUEk6Okluc3BlY3RvckNvbmZpZ3VyYXRpb246On5JbnNwZWN0b3JDb25maWd1
cmF0aW9uKCk7CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlYnVnZ2FibGVJ
bmZvLm1tCmluZGV4IDJmNjFmMDE0NmY2NWVhZWE3MTQwMDE5NzZjN2U5Y2RhY2M3ZjQ3ZGQuLmEz
ODI0MDBkZjhkZTg5ZmQxNjE1NzVkZjlkODJmOGVmMGQ4ZTBlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mby5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVi
dWdnYWJsZUluZm8ubW0KQEAgLTI2LDYgKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2lt
cG9ydCAiX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oIgogCisjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CisKIEBpbXBsZW1lbnRhdGlvbiBfV0tJbnNwZWN0
b3JEZWJ1Z2dhYmxlSW5mbwogCiAtIChpbnN0YW5jZXR5cGUpaW5pdApAQCAtOTAsNiArOTIsOSBA
QCAtICh2b2lkKXNldFRhcmdldElzU2ltdWxhdG9yOihCT09MKXRhcmdldElzU2ltdWxhdG9yCiAK
IC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0
ZU9uTWFpblJ1bkxvb3AoX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm8uY2xhc3MsIHNlbGYpKQor
ICAgICAgICByZXR1cm47CisKICAgICBfZGVidWdnYWJsZUluZm8tPn5EZWJ1Z2dhYmxlSW5mbygp
OwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KaW5kZXggMjBiNDBh
OTY1MTllNDM0YzVjMThhY2IyYjRlYTZhMzVmMGRjZjVhYS4uZDc0MjA0NTk3Yzc5ZjUwYjZhM2Vj
YWRlZmJiOWNmYzUwMDczZTYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1tCkBAIC0zMyw2ICszMyw3
IEBACiAjaW1wb3J0ICJXS0Vycm9yLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgog
I2ltcG9ydCA8V2ViQ29yZS9FeGNlcHRpb25EZXRhaWxzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0
Zi9VUkwuaD4KIApAQCAtNDAsNiArNDEsOSBAQCBAaW1wbGVtZW50YXRpb24gX1dLSW5zcGVjdG9y
RXh0ZW5zaW9uCiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVk
dWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AoX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLmNsYXNzLCBz
ZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX2V4dGVuc2lvbi0+QVBJOjpJbnNwZWN0b3JF
eHRlbnNpb246On5JbnNwZWN0b3JFeHRlbnNpb24oKTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5h
bERlYnVnRmVhdHVyZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJ
bnRlcm5hbERlYnVnRmVhdHVyZS5tbQppbmRleCAwMjM1ZTJmZWM0MDY4MzQxZTBhOWYzNWNhMTdi
NDgzNDBmMzE1YjRkLi41MWZlYzA0NTJlNmNmZmRmNGFkNGU1MWQ0OTk4YWUyNTI5N2QzYzVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0ludGVybmFsRGVidWdGZWF0dXJlLm1tCkBAIC0yNiwxMCArMjYsMTUgQEAKICNpbXBvcnQgImNv
bmZpZy5oIgogI2ltcG9ydCAiX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVJbnRlcm5hbC5oIgogCisj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CisKIEBpbXBsZW1lbnRhdGlvbiBf
V0tJbnRlcm5hbERlYnVnRmVhdHVyZQogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBpZiAoV2Vi
Q29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKF9XS0ludGVybmFsRGVidWdG
ZWF0dXJlLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX2ludGVybmFsRGVi
dWdGZWF0dXJlLT5BUEk6OkludGVybmFsRGVidWdGZWF0dXJlOjp+SW50ZXJuYWxEZWJ1Z0ZlYXR1
cmUoKTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Lm1tCmluZGV4IDQ1NWQ1YTkyMzRkNTk5Mjc3YzYyODgyMDllZGEyYzc2YzA2ZjE3N2IuLjllMGQ3
OTBhM2QzNTI2MTNlNjJhN2FmNjNlMzU5MzNkZTJiMGFiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5tbQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uSW50ZXJuYWwuaCIKIAogI2ltcG9ydCAiTGVnYWN5R2xvYmFsU2V0dGluZ3Mu
aCIKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPG9iamMv
cnVudGltZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL2NvY29h
L1ZlY3RvckNvY29hLmg+CkBAIC00NSw2ICs0Niw5IEBAIC0gKGluc3RhbmNldHlwZSlpbml0CiAK
IC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0
ZU9uTWFpblJ1bkxvb3AoX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNsYXNzLCBzZWxmKSkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+flByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbigpOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkSW5m
by5tbQppbmRleCA3ZDBmYzY0OTlmM2JiM2RmZjNiZmQxZTEwODI4NWFlZjM3MzVmOWJkLi42YjI5
OWY4ZWM0YjY5OGVhMDA2MTc0NzcwZmQ1M2UyNDc5ZGExNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkSW5mby5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkSW5mby5tbQpA
QCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiUmVzb3VyY2VMb2FkSW5mby5oIgogI2ltcG9ydCAi
X1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLUmVzb3VyY2VMb2FkSW5mb0lu
dGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAKIHN0YXRp
YyBfV0tSZXNvdXJjZUxvYWRJbmZvUmVzb3VyY2VUeXBlIHRvV0tSZXNvdXJjZUxvYWRJbmZvUmVz
b3VyY2VUeXBlKFdlYktpdDo6UmVzb3VyY2VMb2FkSW5mbzo6VHlwZSB0eXBlKQogewpAQCAtNzcs
NiArNzgsOCBAQCBAaW1wbGVtZW50YXRpb24gX1dLUmVzb3VyY2VMb2FkSW5mbwogCiAtICh2b2lk
KWRlYWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5S
dW5Mb29wKF9XS1Jlc291cmNlTG9hZEluZm8uY2xhc3MsIHNlbGYpKQorICAgICAgICByZXR1cm47
CiAgICAgX2luZm8tPkFQSTo6UmVzb3VyY2VMb2FkSW5mbzo6flJlc291cmNlTG9hZEluZm8oKTsK
ICAgICBbc3VwZXIgZGVhbGxvY107CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHkubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0ZpcnN0UGFydHkubW0KaW5kZXggZTQ2MzU2MjQxZTE3YTllZjQ5OGQyODhmY2JmOTAyN2ZiZmI5
YzYwMi4uYzJiMDUzYzlkZWUwNzk3YWFkNzg0MmRiZjgzYjQ3NmIwMDdkMDNhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NGaXJzdFBhcnR5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eS5tbQpAQCAtMjYsMTAgKzI2LDE0
IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIl9XS1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NGaXJzdFBhcnR5SW50ZXJuYWwuaCIKIAorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4
dHJhcy5oPgorCiBAaW1wbGVtZW50YXRpb24gX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0
UGFydHkKIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVE
ZWFsbG9jYXRlT25NYWluUnVuTG9vcChfV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0
eS5jbGFzcywgc2VsZikpCisgICAgICAgIHJldHVybjsKICAgICBfZmlyc3RQYXJ0eS0+QVBJOjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eTo6flJlc291cmNlTG9hZFN0YXRpc3RpY3NG
aXJzdFBhcnR5KCk7CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUaGly
ZFBhcnR5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5Lm1tCmluZGV4IGYwNDZiZGRmM2E1ODI5MTVkYTA3Y2Qy
MTAyMzllODM4NTI1MDI5ZmUuLjA0ZTBmNzFmMzZlMDZmZWI5NzRjNGFiNGQyM2RhODgyY2Y5MmRj
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkubW0KQEAg
LTI3LDEyICsyNywxNSBAQAogI2ltcG9ydCAiX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJk
UGFydHlJbnRlcm5hbC5oIgogCiAjaW1wb3J0ICJBUElBcnJheS5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+
CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eQog
CiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2Nh
dGVPbk1haW5SdW5Mb29wKF9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5LmNsYXNz
LCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOwogICAgIF90aGlyZFBhcnR5LT5BUEk6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5Ojp+UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFy
dHkoKTsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckluaXRpYXRlZEFjdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VySW5pdGlhdGVkQWN0aW9uLm1tCmluZGV4
IDRlZGQ2YTcxMTNiNjgxZjczZGExM2FlMDhmNmI0NWIxOWM1NWNiMjUuLjQ3NTRkN2JhY2Y5ZGJj
OGJjNDQxZDgzZjQzZGJkODJlZTQzYWFlYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VySW5pdGlhdGVkQWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VySW5pdGlhdGVkQWN0aW9uLm1tCkBAIC0y
NiwxMCArMjYsMTUgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiX1dLVXNlckluaXRp
YXRlZEFjdGlvbkludGVybmFsLmgiCiAKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRy
YXMuaD4KKwogQGltcGxlbWVudGF0aW9uIF9XS1VzZXJJbml0aWF0ZWRBY3Rpb24KIAogLSAodm9p
ZClkZWFsbG9jCiB7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWlu
UnVuTG9vcChfV0tVc2VySW5pdGlhdGVkQWN0aW9uLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0
dXJuOworCiAgICAgX3VzZXJJbml0aWF0ZWRBY3Rpb24tPn5Vc2VySW5pdGlhdGVkQWN0aW9uKCk7
CiAKICAgICBbc3VwZXIgZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVXNlclN0eWxlU2hlZXQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVXNlclN0eWxlU2hlZXQubW0KaW5kZXggZGE3NmQzYTgwZmMzZGJl
MWE2NmE0YTc2YTIyNTRmNTkxMjgyODM3Mi4uOGZiNTFkYTRjNjRlNTM1ZTM0OGIyZWEyYzQ1OTBl
ODg0NDliZGNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1VzZXJTdHlsZVNoZWV0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tVc2VyU3R5bGVTaGVldC5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiV2Vi
S2l0MkluaXRpYWxpemUuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiX1dL
VXNlckNvbnRlbnRXb3JsZEludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpD
RXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KIAogQGltcGxlbWVu
dGF0aW9uIF9XS1VzZXJTdHlsZVNoZWV0CkBAIC02Myw2ICs2NCw5IEBAIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgZm9yV0tXZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWCiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVk
dWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AoX1dLVXNlclN0eWxlU2hlZXQuY2xhc3MsIHNlbGYp
KQorICAgICAgICByZXR1cm47CisKICAgICBfdXNlclN0eWxlU2hlZXQtPn5Vc2VyU3R5bGVTaGVl
dCgpOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Zpc2l0ZWRMaW5rU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtTdG9yZS5tbQppbmRleCA0MThiNDli
OGM3YmFlMWFmNzUwYjI1NWYwYTY2Y2ViMDljZWIxMWU2Li45NTY0ZDBmMWEwMWE1ZjQxY2EyN2Uz
MWRjMGFlODlkYjFkMTE4NjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLVmlzaXRlZExpbmtTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtTdG9yZS5tbQpAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW1wb3J0ICJWaXNpdGVkTGlua1N0b3JlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZFN0
cmluZ0hhc2guaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KIAogQGlt
cGxlbWVudGF0aW9uIF9XS1Zpc2l0ZWRMaW5rU3RvcmUKIApAQCAtNDMsNiArNDQsOSBAQCAtIChp
bnN0YW5jZXR5cGUpaW5pdAogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9i
akNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKF9XS1Zpc2l0ZWRMaW5rU3RvcmUuY2xh
c3MsIHNlbGYpKQorICAgICAgICByZXR1cm47CisKICAgICBfdmlzaXRlZExpbmtTdG9yZS0+flZp
c2l0ZWRMaW5rU3RvcmUoKTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvbkFzc2Vy
dGlvblJlc3BvbnNlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UubW0KaW5kZXggZjIyMmE1YWNhMDU0Y2Yw
ZWVhMzRlYjVhMjhkMzYzZDI5MmI3ZmNkNC4uYTEyYzRjMjg0MDcxM2ZiYTYwNmMxNjFkMGQzN2U0
NzJmZjI3ZjIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVz
cG9uc2UubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIl9XS1dlYkF1dGhlbnRpY2F0aW9u
QXNzZXJ0aW9uUmVzcG9uc2VJbnRlcm5hbC5oIgogCiAjaW1wb3J0ICJXS05TRGF0YS5oIgorI2lt
cG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogCiBAaW1wbGVtZW50YXRpb24gX1dL
V2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZQogCkBAIC0zNCw2ICszNSw5IEBAIEBp
bXBsZW1lbnRhdGlvbiBfV0tXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlCiAKIC0g
KHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9u
TWFpblJ1bkxvb3AoX1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZS5jbGFzcywg
c2VsZikpCisgICAgICAgIHJldHVybjsKKwogICAgIF9yZXNwb25zZS0+fldlYkF1dGhlbnRpY2F0
aW9uQXNzZXJ0aW9uUmVzcG9uc2UoKTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW0KaW5kZXggMTU1N2FkMDJhM2NlZmZkNDA2YWYxZGU1YWY0Y2RmODc0
NmNkZTNlNC4uMTQ1MTUxZWYwY2JkMzc1ZmM5NzU0ZDdlYzg2OTM3MTYzNDAxODIyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTUwLDYgKzUwLDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V2ViQXV0aGVudGljYXRpb25Db25zdGFudHMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9i
akNFeHRyYXMuaD4KICNpbXBvcnQgPHBhbC9jcnlwdG8vQ3J5cHRvRGlnZXN0Lmg+CiAjaW1wb3J0
IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwNyw2ICsx
MDgsOSBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdAogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBp
ZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKF9XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwuY2xhc3MsIHNlbGYpKQorICAgICAgICByZXR1cm47CisKICAgICBfcGFu
ZWwtPn5XZWJBdXRoZW50aWNhdGlvblBhbmVsKCk7CiAKICAgICBbc3VwZXIgZGVhbGxvY107CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KaW5kZXggMDE5ODQ1MWMyZTk5
Y2FlNjBiNjQwODIxMWU0NzExMzkyNjM3YjFjOS4uMjVkYjU3NjBhODNjOWZhODU2OWEwZWU2Nzk0
MDg1OGIwZGI5NTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5t
bQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbkludGVybmFsLmgiCiAKKyNpbXBvcnQgPFdlYkNvcmUv
V2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogc3RhdGlj
IHZvaWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAqdXJsKQpAQCAtNjAsNiArNjEsOCBAQCAtIChp
bnN0YW5jZXR5cGUpaW5pdE5vblBlcnNpc3RlbnRDb25maWd1cmF0aW9uCiAKIC0gKHZvaWQpZGVh
bGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxv
b3AoX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY2xhc3MsIHNlbGYpKQorICAgICAg
ICByZXR1cm47CiAgICAgX2NvbmZpZ3VyYXRpb24tPn5XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbigpOwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXcubW0KaW5kZXggMTQzMThlNTc4ZjhjNDBmZTIzMTFmNzliNmFkNjg2YzQ0
ZGEzMWRjMi4uNDY5NDZlMGMyNzJiMjA0NTBjODNmMjg0ZjlhMjM3YmY4YmFmMDJmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTQzLDYgKzQzLDcgQEAK
ICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJXZWJWaWV3SW1wbC5oIgogI2lt
cG9ydCAiX1dLTGlua0ljb25QYXJhbWV0ZXJzSW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUv
V2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViVmlld1Zpc3VhbElkZW50
aWZpY2F0aW9uT3ZlcmxheS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWS2l0U1BJLmg+CkBAIC05MCw2ICs5MSw5
IEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBwcm9jZXNzR3JvdXA6KFdLUHJv
Y2Vzc0dyb3VwICopcHJvY2Vzc0dyb3VwIGJyCiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlm
IChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AoV0tWaWV3LmNsYXNz
LCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX2RhdGEtPl9pbXBsLT5wYWdlKCkuc2V0
SWNvbkxvYWRpbmdDbGllbnQobnVsbHB0cik7CiAgICAgX2RhdGEtPl9pbXBsID0gbnVsbHB0cjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tTYWZlQnJvd3Np
bmdXYXJuaW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tTYWZlQnJvd3Np
bmdXYXJuaW5nLm1tCmluZGV4IGY2YmMzYTQ2MGI1ODc4NjIzZmI3ZTlmMTA3YTcwMmU1N2Q1NTVj
ZjMuLjg0ZDhkMzZjOTcyMzAxMjZiNjU5MmFlYmEyZDA1NzUxZDYxZmI4ZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLU2FmZUJyb3dzaW5nV2FybmluZy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NhZmVCcm93c2luZ1dhcm5pbmcu
bW0KQEAgLTMwLDkgKzMwLDExIEBACiAjaW1wb3J0ICJQYWdlQ2xpZW50LmgiCiAjaW1wb3J0ICJT
YWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3Mu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9V
UkwuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0xhbmd1YWdlLmg+
CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKICNp
bXBvcnQgIlBlcHBlclVJQ29yZVNQSS5oIgpAQCAtNTExLDggKzUxMywxMCBAQCAtICh2b2lkKWRp
ZE1vdmVUb1dpbmRvdwogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSAgICBpZiAoX2NvbXBsZXRpb25I
YW5kbGVyKQotICAgICAgICBfY29tcGxldGlvbkhhbmRsZXIoV2ViS2l0OjpDb250aW51ZVVuc2Fm
ZUxvYWQ6Ok5vKTsKKyAgICBlbnN1cmVPbk1haW5SdW5Mb29wKFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoX2NvbXBsZXRpb25IYW5kbGVyKSwgd2FybmluZyA9IFdURk1vdmUoX3dhcm5pbmcp
XSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQ6Ok5vKTsKKyAg
ICB9KTsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQppbmRleCAzM2JkZGM1MzVhZTdhN2U5ZDBhODBkYjg0
OWYzZDljZjg3MjYwZDI5Li5hOTFiNzJjMjAzYTI3MjNlZWI5NDhlYTc1NDRlMDQ4MGFlNTcyN2Iz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCkBA
IC0zNyw3ICszNyw2IEBACiAjaW1wb3J0IDxRdWFydHovUXVhcnR6Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbERlZmF1bHRTeXN0
ZW1BcHBlYXJhbmNlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAj
aW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiBOU1N0cmluZyAqIGNvbnN0IFdlYktpdE9yaWdpbmFs
VG9wUHJpbnRpbmdNYXJnaW5LZXkgPSBAIldlYktpdE9yaWdpbmFsVG9wTWFyZ2luIjsKQEAgLTYz
LDcgKzYyLDcgQEAgLSAoaWQpaW5pdFdpdGhGcmFtZVByb3h5OihXZWJLaXQ6OldlYkZyYW1lUHJv
eHkmKWZyYW1lIHZpZXc6KE5TVmlldyAqKXdrVmlldwogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSAg
ICBjYWxsT25NYWluUnVuTG9vcChbZnJhbWUgPSBXVEZNb3ZlKF93ZWJGcmFtZSksIHByZXZpZXdz
ID0gV1RGTW92ZShfcGFnZVByZXZpZXdzKV0geworICAgIGVuc3VyZU9uTWFpblJ1bkxvb3AoW2Zy
YW1lID0gV1RGTW92ZShfd2ViRnJhbWUpLCBwcmV2aWV3cyA9IFdURk1vdmUoX3BhZ2VQcmV2aWV3
cyldIHsKICAgICAgICAgLy8gRGVhbGxvY2F0ZSB0aGVzZSBvbiB0aGUgbWFpbiB0aHJlYWQsIG5v
dCB0aGUgY3VycmVudCB0aHJlYWQsIHNpbmNlIHRoZQogICAgICAgICAvLyByZWZlcmVuY2UgY291
bnRpbmcgYW5kIHRoZSBkZXN0cnVjdG9ycyBhcmVuJ3QgdGhyZWFkc2FmZS4KICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCmluZGV4
IDFkM2IxZmE3MzI1YTVmMzIzNWQ1ZmU4NjJmMTQzYTkwMzA5ZTI4ODcuLmY1MzA3NGYxMmQwYzdk
OTUxMjM0NDRlNzI4ODUyZTdjMTUzNWExMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9JbnRQb2ludC5oPgogI2ltcG9ydCA8V2ViQ29yZS9MaW5rSWNvbkNvbGxlY3Rvci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9MaW5rSWNvblR5cGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogCiBA
aW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgewpAQCAtNTksNiArNjAsOCBA
QCArIChpbnN0YW5jZXR5cGUpbG9va1VwRnJhbWVGcm9tSlNDb250ZXh0OihKU0NvbnRleHQgKilj
b250ZXh0CiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxl
RGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AoV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuY2xhc3MsIHNl
bGYpKQorICAgICAgICByZXR1cm47CiAgICAgX2ZyYW1lLT5+V2ViRnJhbWUoKTsKICAgICBbc3Vw
ZXIgZGVhbGxvY107CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQubW0KaW5kZXggZDMzMGNjZThkMTZhNmQ5YmQ0Njgx
NTRjYWYwZjkzYmMzY2M5YWEzZi4uOTBhMTNjODU1MDM3ZTcxNjJhMjFlNWMzOThlOWNhMTVmYWY1
OTQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luSGl0VGVzdFJlc3VsdC5tbQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiV0tXZWJQ
cm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCiAKICNpbXBvcnQgIldLV2ViUHJv
Y2Vzc1BsdWdJbk5vZGVIYW5kbGVJbnRlcm5hbC5oIgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
T2JqQ0V4dHJhcy5oPgogCiBAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVz
dFJlc3VsdCB7CiAgICAgQVBJOjpPYmplY3RTdG9yYWdlPFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVI
aXRUZXN0UmVzdWx0PiBfaGl0VGVzdFJlc3VsdDsKQEAgLTM0LDYgKzM1LDggQEAgQGltcGxlbWVu
dGF0aW9uIFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgewogCiAtICh2b2lkKWRlYWxs
b2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29w
KFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQuY2xhc3MsIHNlbGYpKQorICAgICAgICBy
ZXR1cm47CiAgICAgX2hpdFRlc3RSZXN1bHQtPn5JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQo
KTsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVI
YW5kbGUubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUubW0KaW5kZXggY2YyM2E0NDk3Y2ZhOGMy
MmI1MzQ5ZjA0ZTZkMDk4MzkyYmUwMjI2Yy4uOGM1NzcwOTYyMmVkOTViNTZjNDUxNzU4MWY2NzE0
Mzk5ZTVkOWY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luTm9kZUhhbmRsZS5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW1wb3J0
IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViSW1hZ2Uu
aD4KIAogQGltcGxlbWVudGF0aW9uIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgewpAQCAt
MzksNiArNDAsOCBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRs
ZSB7CiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVh
bGxvY2F0ZU9uTWFpblJ1bkxvb3AoV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5jbGFzcywg
c2VsZikpCisgICAgICAgIHJldHVybjsKICAgICBfbm9kZUhhbmRsZS0+fkluamVjdGVkQnVuZGxl
Tm9kZUhhbmRsZSgpOwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luUGFnZUdyb3VwLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0KaW5kZXggZjI1NDFi
N2Y0YzI2YmJkMDNkYjE3ZmM0MjMwNzA1MzQ5MWUzMzc5MS4uNGY4MDFjNDM5ZjljNTEyMTQxZDU4
YmY3YmEzZDc3NzBiMWNlNGNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQg
IldLTlNTdHJpbmcuaCIKICNpbXBvcnQgIldLUmV0YWluUHRyLmgiCiAjaW1wb3J0ICJXZWJQYWdl
R3JvdXBQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogCiBA
aW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwIHsKICAgICBBUEk6Ok9i
amVjdFN0b3JhZ2U8V2ViS2l0OjpXZWJQYWdlR3JvdXBQcm94eT4gX2J1bmRsZVBhZ2VHcm91cDsK
QEAgLTQzLDYgKzQ0LDggQEAgLSAoTlNTdHJpbmcgKilpZGVudGlmaWVyCiAKIC0gKHZvaWQpZGVh
bGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxv
b3AoV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0
dXJuOwogICAgIF9idW5kbGVQYWdlR3JvdXAtPn5XZWJQYWdlR3JvdXBQcm94eSgpOwogICAgIFtz
dXBlciBkZWFsbG9jXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlLm1tCmluZGV4IDFlZjc4Y2IzNmM2MGE4OGJjNTFiYTUw
NjRiYjMzYjliNGQ4NjVmYjQuLmYyYjNjMWVmYzk5M2IzN2MwZWFhNDUzNWYyN2Q3YzIxYzZjMTZj
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVn
SW5SYW5nZUhhbmRsZS5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0aW9uLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1JhbmdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpD
RXh0cmFzLmg+CiAKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAjaW1wb3J0ICJXS0RhdGFE
ZXRlY3RvclR5cGVzSW50ZXJuYWwuaCIKQEAgLTQxLDYgKzQyLDggQEAgQGltcGxlbWVudGF0aW9u
IFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlIHsKIAogLSAodm9pZClkZWFsbG9jCiB7Cisg
ICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluUnVuTG9vcChXS1dlYlBy
b2Nlc3NQbHVnSW5SYW5nZUhhbmRsZS5jbGFzcywgc2VsZikpCisgICAgICAgIHJldHVybjsKICAg
ICBfcmFuZ2VIYW5kbGUtPn5JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlKCk7CiAgICAgW3N1cGVy
IGRlYWxsb2NdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luU2NyaXB0V29ybGQubW0KaW5kZXggMTg5NDIwMGNlYTc1NjA3NTIyM2M2MmJkMWIw
OGJiYTk3ODY4ZTI4Yi4uMDUzNjkwZWQ0ZWUxODZhMTRmMTEyZjUzOThiM2IyZmViNGMyZmYxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNj
cmlwdFdvcmxkLm1tCkBAIC0yNiw2ICsyNiw4IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBv
cnQgIldLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkSW50ZXJuYWwuaCIKIAorI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgorCiBAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9j
ZXNzUGx1Z0luU2NyaXB0V29ybGQgewogICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlU2NyaXB0V29ybGQ+IF93b3JsZDsKIH0KQEAgLTQyLDYgKzQ0LDggQEAgKyAo
V0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKilub3JtYWxXb3JsZAogCiAtICh2b2lkKWRl
YWxsb2MKIHsKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5M
b29wKFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLmNsYXNzLCBzZWxmKSkKKyAgICAgICAg
cmV0dXJuOwogICAgIF93b3JsZC0+fkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQoKTsKICAgICBb
c3VwZXIgZGVhbGxvY107CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5vZGUubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5vZGUubW0KaW5kZXggNTkwMTYxZjAw
OTI0YjFkMjJmYTlmNWJkNDFlOWZkMzA0MjBjZmE3ZC4uMGIyM2FmMjUxOWQxZTJiMzMyZGI3MWVm
Y2ZjZDFhZGZlNmVjZmQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Ob2RlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NTm9kZS5tbQpAQCAtMzIsNiArMzIs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5k
ZXJPYmplY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2ltcGxlUmFuZ2UuaD4KKyNpbXBvcnQgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KIAogQGlt
cGxlbWVudGF0aW9uIFdLRE9NTm9kZQpAQCAtNTAsNyArNTEsOSBAQCAtIChpZClfaW5pdFdpdGhJ
bXBsOihXZWJDb3JlOjpOb2RlKilpbXBsCiAKIC0gKHZvaWQpZGVhbGxvYwogewotICAgIFdlYktp
dDo6V0tET01Ob2RlQ2FjaGUoKS5yZW1vdmUoX2ltcGwuZ2V0KCkpOworICAgIGVuc3VyZU9uTWFp
blJ1bkxvb3AoW25vZGUgPSBXVEZNb3ZlKF9pbXBsKV0geworICAgICAgICBXZWJLaXQ6OldLRE9N
Tm9kZUNhY2hlKCkucmVtb3ZlKG5vZGUuZ2V0KCkpOworICAgIH0pOwogICAgIFtzdXBlciBkZWFs
bG9jXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tET01SYW5nZS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NUmFuZ2UubW0KaW5kZXggOTBiZDAxMTg0NDg4MWU1
NWQ4MTZhN2YxZWUxMzc4MTAzZjUyYTMzNS4uNDFiZWZlYWY3OTdjOTgxMjU5YmMxMTgyNTQ3NTVj
MjJmNTdiODA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tET01SYW5nZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVJhbmdlLm1tCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJdGVy
YXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9WaXNpYmxlVW5pdHMuaD4KKyNpbXBvcnQgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KIAogQGltcGxl
bWVudGF0aW9uIFdLRE9NUmFuZ2UKQEAgLTU1LDcgKzU2LDkgQEAgLSAoaWQpaW5pdFdpdGhEb2N1
bWVudDooV0tET01Eb2N1bWVudCAqKWRvY3VtZW50CiAKIC0gKHZvaWQpZGVhbGxvYwogewotICAg
IFdlYktpdDo6V0tET01SYW5nZUNhY2hlKCkucmVtb3ZlKF9pbXBsLmdldCgpKTsKKyAgICBlbnN1
cmVPbk1haW5SdW5Mb29wKFtyYW5nZSA9IFdURk1vdmUoX2ltcGwpXSB7CisgICAgICAgIFdlYktp
dDo6V0tET01SYW5nZUNhY2hlKCkucmVtb3ZlKHJhbmdlLmdldCgpKTsKKyAgICB9KTsKICAgICBb
c3VwZXIgZGVhbGxvY107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJ
bi5tbQppbmRleCAyYmVkMzVlNzY5ZmVlZTdkNmM5NGJiN2UxOWViMjczNzA0ZjI0ZjhjLi44ZDM3
YzNkNGY3MWI4MjA1Y2NmZGUzYWFkZTA5OWZlZjUzYmFhMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVn
SW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tXZWJQcm9jZXNzUGx1Z0luLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJXS1Jl
dGFpblB0ci5oIgogI2ltcG9ydCAiV0tTdHJpbmdDRi5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNv
cmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogQGlu
dGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyICgpIHsKQEAgLTQ1LDYgKzQ2LDkg
QEAgQGltcGxlbWVudGF0aW9uIFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIKIAogLSAodm9p
ZClkZWFsbG9jCiB7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWlu
UnVuTG9vcChXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyLmNsYXNzLCBzZWxmKSkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgX2J1bmRsZS0+fkluamVjdGVkQnVuZGxlKCk7CiAKICAgICBbc3Vw
ZXIgZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9X
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggYzEwNmE2
Mjk1YWU5OWNjNmE4Y2M2NDhiMDhlZWExNzc4NmRhZDBjYS4uYTQ1NmU0MTMxMzZjMGQ4ZDczNjM4
MmUzMWE1OWU5YjNiY2JkY2Q4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRD
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQpA
QCAtNjEsNiArNjEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9IVE1MRm9ybUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTElucHV0RWxlbWVu
dC5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3Rm
L1dlYWtPYmpDUHRyLmg+CiAKIEBpbnRlcmZhY2UgTlNPYmplY3QgKFdLRGVwcmVjYXRlZERlbGVn
YXRlTWV0aG9kcykKQEAgLTM2OSw2ICszNzAsOSBAQCAtICh2b2lkKXNldExvYWREZWxlZ2F0ZToo
aWQgPFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZT4pbG9hZERlbGVnYXRlCiAKIC0gKHZv
aWQpZGVhbGxvYwogeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFp
blJ1bkxvb3AoV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLmNsYXNz
LCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKF9yZW1vdGVPYmplY3RSZWdpc3Ry
eSkKICAgICAgICAgW19yZW1vdGVPYmplY3RSZWdpc3RyeSBfaW52YWxpZGF0ZV07CiAK
</data>
<flag name="review"
          id="442031"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>