<?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>139688</bug_id>
          
          <creation_ts>2014-12-16 11:38:40 -0800</creation_ts>
          <short_desc>[iOS] Make it possible to toggle FeatureCounter support at runtime</short_desc>
          <delta_ts>2014-12-18 14:20:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>139652</dependson>
    
    <dependson>139794</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1056028</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-16 11:38:40 -0800</bug_when>
    <thetext>Make it possible to toggle FeatureCounter support at runtime using a setting. Also disable FeatureCounter support when a private session is used.

Radar: &lt;rdar://problem/19266254&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056029</commentid>
    <comment_count>1</comment_count>
      <attachid>243371</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-16 11:46:33 -0800</bug_when>
    <thetext>Created attachment 243371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056118</commentid>
    <comment_count>2</comment_count>
      <attachid>243371</attachid>
    <who name="">mitz</who>
    <bug_when>2014-12-16 13:42:21 -0800</bug_when>
    <thetext>Comment on attachment 243371
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKPreferencesPrivate.h:49
&gt; +@property (nonatomic, setter=_setFeatureCounterEnabled:) BOOL _featureCounterEnabled;

This new SPI needs an availability annotation such as WK_AVAILABLE(WK_TBD, WK_TBD)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056143</commentid>
    <comment_count>3</comment_count>
      <attachid>243395</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-16 14:18:55 -0800</bug_when>
    <thetext>Created attachment 243395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056144</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-16 14:19:28 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 243371 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=243371&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKPreferencesPrivate.h:49
&gt; &gt; +@property (nonatomic, setter=_setFeatureCounterEnabled:) BOOL _featureCounterEnabled;
&gt; 
&gt; This new SPI needs an availability annotation such as WK_AVAILABLE(WK_TBD,
&gt; WK_TBD)

Thanks, done. I used WK_TBA as it seems to be what is used elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056488</commentid>
    <comment_count>5</comment_count>
      <attachid>243447</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-17 11:52:39 -0800</bug_when>
    <thetext>Created attachment 243447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056514</commentid>
    <comment_count>6</comment_count>
      <attachid>243447</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-17 12:58:43 -0800</bug_when>
    <thetext>Comment on attachment 243447
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056515</commentid>
    <comment_count>7</comment_count>
      <attachid>243447</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-17 13:03:04 -0800</bug_when>
    <thetext>Comment on attachment 243447
Patch

Clearing flags on attachment: 243447

Committed r177455: &lt;http://trac.webkit.org/changeset/177455&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056516</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-17 13:03:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243371</attachid>
            <date>2014-12-16 11:46:33 -0800</date>
            <delta_ts>2014-12-16 14:18:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139688-20141216114723.patch</filename>
            <type>text/plain</type>
            <size>33841</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJiNzVhZTFhMjY4ODFkY2Q1Yzc1MGI5
N2U5ZGFiNjExNDViNjU3ZmYuLjZjZDExZDgyMmQ4ZTM1MGI1OTRhZjIxYzRjNjdkMGVlM2FmNTZh
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMTItMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYWtlIGl0IHBvc3NpYmxlIHRvIHRvZ2dsZSBG
ZWF0dXJlQ291bnRlciBzdXBwb3J0IGF0IHJ1bnRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTY4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MTkyNjYyNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgR2V0IHJpZCBvZiB0aGUgY29udmVuaWVuY2UgbWFjcm9zIGZvciBGZWF0dXJlQ291bnRlciBp
biBXVEYgYW5kIG1vdmUKKyAgICAgICAgdGhlbSBmb3IgV2ViQ29yZS9wbGF0Zm9ybS9GZWF0dXJl
Q291bnRlckxvZ2dpbmcuaCB3cmFwcGVyLgorCisgICAgICAgICogd3RmL0ZlYXR1cmVDb3VudGVy
Lmg6CisKIDIwMTQtMTItMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TXSBBZGQgZmVhdHVyZSBjb3VudGluZyBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzg4
ZmI1ZGMxZTVjMmIwZjc5YWVhNzc2NWQ1OGI1MGE1ZmYzNTBhZC4uZDFhOTY4ZWIyNjMwYTg4MmJj
OWIwODVjZDhkMzZlNWM4NDc2YWFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0
LTEyLTE2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10g
TWFrZSBpdCBwb3NzaWJsZSB0byB0b2dnbGUgRmVhdHVyZUNvdW50ZXIgc3VwcG9ydCBhdCBydW50
aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2
ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE5MjY2MjU0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gdG9nZ2xl
IEZlYXR1cmVDb3VudGVyIHN1cHBvcnQgYXQgcnVudGltZSBieSBhZGRpbmcKKyAgICAgICAgYSBz
ZXR0aW5nIChkaXNhYmxlZCBieSBkZWZhdWx0KSBhcyB3ZWxsIGFzIGEgRmVhdHVyZUNvdW50ZXJM
b2dnaW5nCisgICAgICAgIHdyYXBwZXIgdW5kZXIgcGxhdGZvcm0vIHdoaWNoIG9ubHkgbG9ncyBp
ZiB0aGUgc2V0dGluZyBpcyBlbmFibGVkLiBGb3IKKyAgICAgICAgcHJpdmFjeSByZWFzb25zLCBG
ZWF0dXJlQ291bnRlciBsb2dnaW5nIGlzIGFsc28gZGlzYWJsZWQgZm9yIHByaXZhdGUgLworICAg
ICAgICBlcGhlbWVyYWwgc2Vzc2lvbnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhh
dmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bG9nQ2FuQ2FjaGVGcmFtZURlY2lzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Omxv
Z0NhbkNhY2hlUGFnZURlY2lzaW9uKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAg
ICAgICAqIHBsYXRmb3JtL0ZlYXR1cmVDb3VudGVyS2V5cy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZlYXR1cmVDb3VudGVyTG9nZ2luZy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XVEYvd3RmL0Zl
YXR1cmVDb3VudGVyLmguCisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlQ291bnRlckxvZ2dpbmc6
OnNob3VsZFVzZUZlYXR1cmVDb3VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVDb3Vu
dGVyTG9nZ2luZzo6aW5jcmVtZW50RmVhdHVyZUNvdW50ZXJLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6RmVhdHVyZUNvdW50ZXJMb2dnaW5nOjpzZXRGZWF0dXJlQ291bnRlcktleSk6CisgICAgICAg
ICogcGxhdGZvcm0vRmVhdHVyZUNvdW50ZXJMb2dnaW5nLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
VEYvd3RmL0ZlYXR1cmVDb3VudGVyLmguCisKIDIwMTQtMTItMTYgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgRmVhdHVyZUNvdW50ZXJLZXlzLmgg
dG8gdGhlIFhjb2RlIHByb2plY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzg0ODE5YjEwMWE0YWJkOTBjNTRh
ZGY5ZTJkMTk5NDA3MjUwNjZkOS4uMzMyYTE0NDc3ZGFkMjY2NDEzMjRlOWEzMDc1MDU5ZmU1YzFh
YWNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTEyLTE2ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTWFrZSBpdCBwb3NzaWJsZSB0
byB0b2dnbGUgRmVhdHVyZUNvdW50ZXIgc3VwcG9ydCBhdCBydW50aW1lCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2ODgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzE5MjY2MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBwcml2YXRlIHNldHRpbmdzIEFQSSB0byB0b2dnbGUgRmVhdHVyZUNv
dW50ZXIgc3VwcG9ydCBvbiBTYWZhcmkgYW5kCisgICAgICAgIE1vYmlsZVNhZmFyaS4KKworICAg
ICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1Nl
dEZlYXR1cmVDb3VudGVyRW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0RmVhdHVy
ZUNvdW50ZXJFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
c1JlZlByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2ZlYXR1cmVDb3VudGVyRW5hYmxlZF0p
OgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRGZWF0dXJlQ291bnRlckVuYWJsZWQ6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDE0LTEyLTE2ICBEYW4gQmVybnN0
ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXS1dlYlByb2Nlc3NQbHVn
SW5Mb2FkRGVsZWdhdGUgY2Fu4oCZdCB0ZWxsIHdoYXQgdHlwZSBvZiBzYW1lLWRvY3VtZW50IG5h
dmlnYXRpb24gaGFzIGhhcHBlbmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJl
Q291bnRlci5oIGIvU291cmNlL1dURi93dGYvRmVhdHVyZUNvdW50ZXIuaAppbmRleCAwYWE1ZWVi
NjI3ODAwYzIwNDM0YjgyNzY5YTBmYTBhZTMwMDdhMzZhLi5jOTdkMmU1ZWZmZjQ2NDg1NTJlZWIy
YmU0NDEyMzY4MTZkYzFhNmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlQ291
bnRlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVDb3VudGVyLmgKQEAgLTMxLDkgKzMx
LDYgQEAgbmFtZXNwYWNlIFdURiB7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBpbmNyZW1lbnRG
ZWF0dXJlQ291bnRlcktleShjb25zdCBjaGFyKiBjb25zdCBrZXkpOwogV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgc2V0RmVhdHVyZUNvdW50ZXJLZXkoY29uc3QgY2hhciogY29uc3Qga2V5LCBpbnQ2
NF90IHZhbHVlKTsKIAotI2RlZmluZSBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShrZXkp
ICAgV1RGOjppbmNyZW1lbnRGZWF0dXJlQ291bnRlcktleShrZXkpCi0jZGVmaW5lIEZFQVRVUkVf
Q09VTlRFUl9TRVRfS0VZKGtleSwgdmFsdWUpICBXVEY6OnNldEZlYXR1cmVDb3VudGVyS2V5KGtl
eSwgdmFsdWUpCi0KIH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYgLy8gRmVhdHVyZUNvdW50
ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3MmVkZWY2MTJhMDMxYmRhOTI3YWNmZWI4ZTMz
ZTdiODdhNTFhODcwLi44N2E1N2NlMzAzZWEyNGUwZGI3ZDNkZTU5MTZiN2U1ZDljMWJkMmFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTk3OCw2ICsxOTc4LDcgQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIHBsYXRmb3JtL0Rpc3BsYXlTbGVlcERpc2FibGVyLmNwcAogICAgIHBsYXRmb3Jt
L0RyYWdEYXRhLmNwcAogICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5jcHAKKyAgICBwbGF0Zm9ybS9G
ZWF0dXJlQ291bnRlckxvZ2dpbmcuY3BwCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCiAg
ICAgcGxhdGZvcm0vRmlsZVN0cmVhbS5jcHAKICAgICBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXgg
MjU2NjM5MGY3YjlkNjAzZjExYmFjYzQ1OTgxNDQ3Zjg4YzI0YTUyYS4uNjdlNzZmYjQ5MmQ2YTc2
MmQzZDFhZTRhOTkxNDQ0NDAyNDkzMjExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC03NDAzLDYgKzc0MDMsNyBAQAogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cRGlzcGxheVNsZWVwRGlzYWJsZXIuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cRHJhZ0RhdGEuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cRHJhZ0ltYWdlLmNwcCIgLz4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXEZlYXR1cmVDb3VudGVyTG9nZ2luZy5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxGaWxlQ2hvb3Nlci5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxGaWxlU3RyZWFtLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXEZpbGVTeXN0ZW0uY3BwIiAv
PgpAQCAtMTkzNzAsNiArMTkzNzEsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxh
dGZvcm1cRHJhZ0RhdGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3Jt
XERyYWdJbWFnZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cRXZl
bnRMb29wLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxGZWF0dXJl
Q291bnRlckxvZ2dpbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3Jt
XEZpbGVDaG9vc2VyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxG
aWxlTWV0YWRhdGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXEZp
bGVTdHJlYW0uaCIgLz4KQEAgLTIxNDIwLDQgKzIxNDIyLDQgQEAKICAgPEltcG9ydEdyb3VwIExh
YmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRz
UGF0aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdldHMiIC8+CiAgIDwvSW1wb3J0R3Jv
dXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzCmluZGV4IGJmOGFmZGRhZjU1YzBkNDMxZGU5NmI4MWQ1MTQyMmMzODg2YzQxMGYu
LmQ2NTJiNjlmZjAxNmIxMzM0ZWFmY2JlMmQzOTdkZmZhNDEyYmYxMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMK
QEAgLTExMDcsNiArMTEwNyw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxEcmFnSW1hZ2UuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm08L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXEZlYXR1cmVD
b3VudGVyTG9nZ2luZy5jcHAiPgorICAgICAgPEZpbHRlcj5wbGF0Zm9ybTwvRmlsdGVyPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cRmlsZUNo
b29zZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm08L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KQEAgLTgxNzgsNiArODE4MSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxw
bGF0Zm9ybVxEcmFnSW1hZ2UuaCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxGZWF0
dXJlQ291bnRlckxvZ2dpbmcuaCI+CisgICAgICA8RmlsdGVyPnBsYXRmb3JtPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxFdmVu
dExvb3AuaCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CkBAIC0xNTQ5MSw0ICsxNTQ5Nyw0IEBACiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXHdpbjwv
RmlsdGVyPgogICAgIDwvTUFTTT4KICAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM0ZTZlZDQzYjg4YTY4MzZlMTk4
NWRiMjY4MTE0ODM3OTc3ZDg5MTcuLmUyZDgxZGQ5ZjEyMmIzZTU4YWU3YzU4YjhlMjc5NDY3Yjc2
MjA2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE2MTQsNiArMTYxNCw4IEBACiAJCTQ1QkFDMkIwMTM2MEJCQUIwMDVEQTI1
OCAvKiBJY29uVVJMLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NUJBQzJBRjEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ1RkVBNUNGMTU2RERFOEMwMDY1
NDEwMSAvKiBEZWNpbWFsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCAqLzsgfTsK
IAkJNDVGRUE1RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAv
KiBEZWNpbWFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNDY3NzlDRTIxQTQwQjk3MjAwQjY4NjRFIC8qIEZlYXR1cmVDb3VudGVyTG9nZ2luZy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njc3OUNF
MDFBNDBCOTcxMDBCNjg2NEUgLyogRmVhdHVyZUNvdW50ZXJMb2dnaW5nLmNwcCAqLzsgfTsKKwkJ
NDY3NzlDRTMxQTQwQjk3MjAwQjY4NjRFIC8qIEZlYXR1cmVDb3VudGVyTG9nZ2luZy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3NzlDRTExQTQwQjk3
MjAwQjY4NjRFIC8qIEZlYXR1cmVDb3VudGVyTG9nZ2luZy5oICovOyB9OwogCQk0Njg5RjFBRjEy
NjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njg5RjFBRTEyNjdCQUUxMDBFOEQzODAgLyogRmlsZU1l
dGFkYXRhLmggKi87IH07CiAJCTQ5MDcwN0U2MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktp
dEJyaWRnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9
OwogCQk0OTA3MDdFNzEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMw
NDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovOyB9OwpAQCAtODcxMyw2ICs4NzE1
LDggQEAKIAkJNDVCQUMyQUYxMzYwQkJBQjAwNURBMjU4IC8qIEljb25VUkwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvblVSTC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NUZFQTVDRDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWNpbWFsLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDVGRUE1Q0UxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjaW1hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0Njc3OUNFMDFBNDBCOTcxMDBCNjg2NEUgLyogRmVhdHVyZUNvdW50ZXJM
b2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZlYXR1cmVD
b3VudGVyTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2Nzc5Q0Ux
MUE0MEI5NzIwMEI2ODY0RSAvKiBGZWF0dXJlQ291bnRlckxvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRmVhdHVyZUNvdW50ZXJMb2dnaW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmlsZU1ldGFkYXRhLmg7IHBh
dGggPSBwbGF0Zm9ybS9GaWxlTWV0YWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8q
IEFOR0xFV2ViS2l0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFO
R0xFV2ViS2l0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTQ1OSw2
ICsyMTQ2Myw4IEBACiAJCQkJQTdDRkIzRDAwQjdFRDEwQTAwNzBDMzJEIC8qIERyYWdJbWFnZS5o
ICovLAogCQkJCTFDQTE5RTE1MERDMjU1Q0EwMDY1QTk5NCAvKiBFdmVudExvb3AuaCAqLywKIAkJ
CQkxQUJBMzRGRDFBNDA5RkVBMDA1NTcwRUEgLyogRmVhdHVyZUNvdW50ZXJLZXlzLmggKi8sCisJ
CQkJNDY3NzlDRTAxQTQwQjk3MTAwQjY4NjRFIC8qIEZlYXR1cmVDb3VudGVyTG9nZ2luZy5jcHAg
Ki8sCisJCQkJNDY3NzlDRTExQTQwQjk3MjAwQjY4NjRFIC8qIEZlYXR1cmVDb3VudGVyTG9nZ2lu
Zy5oICovLAogCQkJCTkzNEZFOUU0MEI1Q0E1MzkwMDNFNEE3MyAvKiBGaWxlQ2hvb3Nlci5jcHAg
Ki8sCiAJCQkJMDY2Qzc3MkEwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggKi8sCiAJ
CQkJMkVGMUJGRTgxMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVTdHJlYW0uY3BwICovLApAQCAtMjM3
MTYsNiArMjM3MjIsNyBAQAogCQkJCUE4MEU2RDA0MEExOTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjk3OTBFODIwNjkyMDBCMjU5NjUgLyogQ291bnRl
ckNvbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCOTUxMEU4MjA1NkIwMEIyNTk2NSAv
KiBDb3VudGVyRGlyZWN0aXZlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDY3NzlDRTMxQTQwQjk3
MjAwQjY4NjRFIC8qIEZlYXR1cmVDb3VudGVyTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM5MkYxNEMwQUQxODYxQjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlEMEIwNTU2ODA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNEM3NjZFMENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI4NjA1LDYgKzI4NjEyLDcgQEAKIAkJCQk3N0ExN0FBNjEyRjI4
QjJBMDA0RTAyRjYgLyogSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9u
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBOTMyNjYxNjcwM0JBOTAwODk4MkRDIC8q
IEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0Njc3OUNFMjFB
NDBCOTcyMDBCNjg2NEUgLyogRmVhdHVyZUNvdW50ZXJMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZERUE2MjQyMTUyMTAyRTIwMDQ3OURGMCAvKiBKU09zY2lsbGF0b3JOb2RlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZEQkQxREZDMTY3RkUyN0QwMDUxQTExRSAvKiBKU09zY2lsbGF0
b3JOb2RlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMEQ1NzQwMEE1Qzc4NjcwMDdF
REQ0QyAvKiBKU092ZXJmbG93RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L1BhZ2VDYWNoZS5jcHAKaW5kZXggMTI4ZWNhNzFmMTVhMzY5MzA2ZjBlNDkwNDNkN2ZiZDdm
ODQwYjAyOC4uNjdhOWY0YTMyNGZhYTNjNzE3NTVmNzczMzBlZWI4YWM5NWNkNTkxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKLSNpbmNsdWRlICJGZWF0dXJlQ291bnRlcktleXMu
aCIKKyNpbmNsdWRlICJGZWF0dXJlQ291bnRlckxvZ2dpbmcuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXJTdGF0ZU1hY2hpbmUuaCIKQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgdW5zaWduZWQg
bG9nQ2FuQ2FjaGVGcmFtZURlY2lzaW9uKEZyYW1lKiBmcmFtZSwgaW50IGluZGVudExldmVsKQog
ICAgIFBDTE9HKCIrLS0tIik7CiAgICAgaWYgKCFmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKSkgewogICAgICAgICBQQ0xPRygiICAgLVRoZXJlIGlzIG5vIERvY3VtZW50TG9hZGVyIG9i
amVjdCIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291
bnRlclBhZ2VDYWNoZUZhaWx1cmVOb0RvY3VtZW50TG9hZGVyS2V5KTsKKyAgICAgICAgRkVBVFVS
RV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoZnJhbWUtPnBhZ2UoKSwgRmVhdHVyZUNvdW50ZXJQYWdl
Q2FjaGVGYWlsdXJlTm9Eb2N1bWVudExvYWRlcktleSk7CiAgICAgICAgIHJldHVybiAxIDw8IE5v
RG9jdW1lbnRMb2FkZXI7CiAgICAgfQogCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIHVuc2ln
bmVkIGxvZ0NhbkNhY2hlRnJhbWVEZWNpc2lvbihGcmFtZSogZnJhbWUsIGludCBpbmRlbnRMZXZl
bCkKICAgICB1bnNpZ25lZCByZWplY3RSZWFzb25zID0gMDsKICAgICBpZiAoIWZyYW1lLT5sb2Fk
ZXIoKS5kb2N1bWVudExvYWRlcigpLT5tYWluRG9jdW1lbnRFcnJvcigpLmlzTnVsbCgpKSB7CiAg
ICAgICAgIFBDTE9HKCIgICAtTWFpbiBkb2N1bWVudCBoYXMgYW4gZXJyb3IiKTsKLSAgICAgICAg
RkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWls
dXJlTWFpbkRvY3VtZW50RXJyb3JLZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVN
RU5UX0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVNYWlu
RG9jdW1lbnRFcnJvcktleSk7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgcmVqZWN0UmVh
c29ucyB8PSAxIDw8IE1haW5Eb2N1bWVudEVycm9yOwogI2Vsc2UKQEAgLTEyNiw3MSArMTI2LDcx
IEBAIHN0YXRpYyB1bnNpZ25lZCBsb2dDYW5DYWNoZUZyYW1lRGVjaXNpb24oRnJhbWUqIGZyYW1l
LCBpbnQgaW5kZW50TGV2ZWwpCiAgICAgfQogICAgIGlmIChmcmFtZS0+bG9hZGVyKCkuZG9jdW1l
bnRMb2FkZXIoKS0+c3Vic3RpdHV0ZURhdGEoKS5pc1ZhbGlkKCkgJiYgZnJhbWUtPmxvYWRlcigp
LmRvY3VtZW50TG9hZGVyKCktPnN1YnN0aXR1dGVEYXRhKCkuZmFpbGluZ1VSTCgpLmlzRW1wdHko
KSkgewogICAgICAgICBQQ0xPRygiICAgLUZyYW1lIGlzIGFuIGVycm9yIHBhZ2UiKTsKLSAgICAg
ICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVG
YWlsdXJlSXNFcnJvclBhZ2VLZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5U
X0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVJc0Vycm9y
UGFnZUtleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBJc0Vycm9yUGFnZTsKICAg
ICB9CiAgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmNvbnRhaW5zUGx1
Z2lucygpICYmICFmcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLnBhZ2VDYWNoZVN1cHBvcnRzUGx1
Z2lucygpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtRnJhbWUgY29udGFpbnMgcGx1Z2lucyIpOwot
ICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VD
YWNoZUZhaWx1cmVIYXNQbHVnaW5zKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVO
VF9LRVkoZnJhbWUtPnBhZ2UoKSwgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlSGFzUGx1
Z2lucyk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBIYXNQbHVnaW5zOwogICAgIH0K
ICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnByb3RvY29sSXMoImh0dHBzIikKICAg
ICAgICAgJiYgKGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpLmNh
Y2hlQ29udHJvbENvbnRhaW5zTm9DYWNoZSgpCiAgICAgICAgICAgICB8fCBmcmFtZS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKS5jYWNoZUNvbnRyb2xDb250YWluc05vU3Rv
cmUoKSkpIHsKICAgICAgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5y
ZXNwb25zZSgpLmNhY2hlQ29udHJvbENvbnRhaW5zTm9DYWNoZSgpKQotICAgICAgICAgICAgRkVB
VFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJl
SFRUUFNOb0NhY2hlS2V5KTsKKyAgICAgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRf
S0VZKGZyYW1lLT5wYWdlKCksIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUhUVFBTTm9D
YWNoZUtleSk7CiAgICAgICAgIGlmIChmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+
cmVzcG9uc2UoKS5jYWNoZUNvbnRyb2xDb250YWluc05vU3RvcmUoKSkKLSAgICAgICAgICAgIEZF
QVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVy
ZUhUVFBTTm9TdG9yZUtleSk7CisgICAgICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5U
X0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVIVFRQU05v
U3RvcmVLZXkpOwogICAgICAgICBQQ0xPRygiICAgLUZyYW1lIGlzIEhUVFBTLCBhbmQgY2FjaGUg
Y29udHJvbCBwcm9oaWJpdHMgY2FjaGluZyBvciBzdG9yaW5nIik7CiAgICAgICAgIHJlamVjdFJl
YXNvbnMgfD0gMSA8PCBJc0h0dHBzQW5kQ2FjaGVDb250cm9sbGVkOwogICAgIH0KICNpZiBFTkFC
TEUoU1FMX0RBVEFCQVNFKQogICAgIGlmIChEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5oYXNP
cGVuRGF0YWJhc2VzKGZyYW1lLT5kb2N1bWVudCgpKSkgewogICAgICAgICBQQ0xPRygiICAgLUZy
YW1lIGhhcyBvcGVuIGRhdGFiYXNlIGhhbmRsZXMiKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVS
X0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlSGFzT3BlbkRhdGFi
YXNlc0tleSk7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKGZyYW1lLT5w
YWdlKCksIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUhhc09wZW5EYXRhYmFzZXNLZXkp
OwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgSGFzRGF0YWJhc2VIYW5kbGVzOwogICAg
IH0KICNlbmRpZgogI2lmIEVOQUJMRShTSEFSRURfV09SS0VSUykKICAgICBpZiAoU2hhcmVkV29y
a2VyUmVwb3NpdG9yeTo6aGFzU2hhcmVkV29ya2VycyhmcmFtZS0+ZG9jdW1lbnQoKSkpIHsKICAg
ICAgICAgUENMT0coIiAgIC1GcmFtZSBoYXMgYXNzb2NpYXRlZCBTaGFyZWRXb3JrZXJzIik7Ci0g
ICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNh
Y2hlRmFpbHVyZUhhc1NoYXJlZFdvcmtlcnNLZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJf
SU5DUkVNRU5UX0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1
cmVIYXNTaGFyZWRXb3JrZXJzS2V5KTsKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IEhh
c1NoYXJlZFdvcmtlcnM7CiAgICAgfQogI2VuZGlmCiAgICAgaWYgKCFmcmFtZS0+bG9hZGVyKCku
aGlzdG9yeSgpLmN1cnJlbnRJdGVtKCkpIHsKICAgICAgICAgUENMT0coIiAgIC1ObyBjdXJyZW50
IGhpc3RvcnkgaXRlbSIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShG
ZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVOb0N1cnJlbnRIaXN0b3J5SXRlbUtleSk7Cisg
ICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKGZyYW1lLT5wYWdlKCksIEZlYXR1
cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZU5vQ3VycmVudEhpc3RvcnlJdGVtS2V5KTsKICAgICAg
ICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IE5vSGlzdG9yeUl0ZW07CiAgICAgfQogICAgIGlmIChm
cmFtZS0+bG9hZGVyKCkucXVpY2tSZWRpcmVjdENvbWluZygpKSB7CiAgICAgICAgIFBDTE9HKCIg
ICAtUXVpY2sgcmVkaXJlY3QgaXMgY29taW5nIik7Ci0gICAgICAgIEZFQVRVUkVfQ09VTlRFUl9J
TkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZVF1aXJrUmVkaXJlY3RD
b21pbmdLZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShmcmFtZS0+
cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVRdWlya1JlZGlyZWN0Q29taW5n
S2V5KTsKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IFF1aWNrUmVkaXJlY3RDb21pbmc7
CiAgICAgfQogICAgIGlmIChmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+aXNMb2Fk
aW5nSW5BUElTZW5zZSgpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtRG9jdW1lbnRMb2FkZXIgaXMg
c3RpbGwgbG9hZGluZyBpbiBBUEkgc2Vuc2UiKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lO
Q1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlTG9hZGluZ0FQSVNlbnNl
S2V5KTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoZnJhbWUtPnBhZ2Uo
KSwgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlTG9hZGluZ0FQSVNlbnNlS2V5KTsKICAg
ICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IElzTG9hZGluZ0luQVBJU2Vuc2U7CiAgICAgfQog
ICAgIGlmIChmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+aXNTdG9wcGluZygpKSB7
CiAgICAgICAgIFBDTE9HKCIgICAtRG9jdW1lbnRMb2FkZXIgaXMgaW4gdGhlIG1pZGRsZSBvZiBz
dG9wcGluZyIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJl
Q291bnRlclBhZ2VDYWNoZUZhaWx1cmVEb2N1bWVudExvYWRlclN0b3BwaW5nS2V5KTsKKyAgICAg
ICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoZnJhbWUtPnBhZ2UoKSwgRmVhdHVyZUNv
dW50ZXJQYWdlQ2FjaGVGYWlsdXJlRG9jdW1lbnRMb2FkZXJTdG9wcGluZ0tleSk7CiAgICAgICAg
IHJlamVjdFJlYXNvbnMgfD0gMSA8PCBJc1N0b3BwaW5nOwogICAgIH0KICAgICBpZiAoIWZyYW1l
LT5kb2N1bWVudCgpLT5jYW5TdXNwZW5kQWN0aXZlRE9NT2JqZWN0cygpKSB7CiAgICAgICAgIFBD
TE9HKCIgICAtVGhlIGRvY3VtZW50IGNhbm5vdCBzdXNwZW5kIGl0cyBhY3RpdmUgRE9NIE9iamVj
dHMiKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50
ZXJQYWdlQ2FjaGVGYWlsdXJlQ2Fubm90U3VzcGVuZEFjdGl2ZURPTU9iamVjdHNLZXkpOworICAg
ICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJl
Q291bnRlclBhZ2VDYWNoZUZhaWx1cmVDYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0tleSk7
CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBDYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2Jq
ZWN0czsKICAgICB9CiAgICAgaWYgKCFmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+
YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+Y2FuQ2FjaGVJblBhZ2VDYWNoZSgpKSB7CiAgICAgICAg
IFBDTE9HKCIgICAtVGhlIERvY3VtZW50TG9hZGVyIHVzZXMgYW4gYXBwbGljYXRpb24gY2FjaGUi
KTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQ
YWdlQ2FjaGVGYWlsdXJlQXBwbGljYXRpb25DYWNoZUtleSk7CisgICAgICAgIEZFQVRVUkVfQ09V
TlRFUl9JTkNSRU1FTlRfS0VZKGZyYW1lLT5wYWdlKCksIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hl
RmFpbHVyZUFwcGxpY2F0aW9uQ2FjaGVLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEg
PDwgRG9jdW1lbnRMb2FkZXJVc2VzQXBwbGljYXRpb25DYWNoZTsKICAgICB9CiAgICAgaWYgKCFm
cmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuY2FuQ2FjaGVQYWdlKCkpIHsKICAgICAgICAgUENMT0co
IiAgIC1UaGUgY2xpZW50IHNheXMgdGhpcyBmcmFtZSBjYW5ub3QgYmUgY2FjaGVkIik7Ci0gICAg
ICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hl
RmFpbHVyZURlbmllZEJ5Q2xpZW50S2V5KTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JF
TUVOVF9LRVkoZnJhbWUtPnBhZ2UoKSwgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlRGVu
aWVkQnlDbGllbnRLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgQ2xpZW50RGVu
aWVzQ2FjaGluZzsKICAgICB9CiAKQEAgLTI0Miw0NSArMjQyLDQ1IEBAIHN0YXRpYyB2b2lkIGxv
Z0NhbkNhY2hlUGFnZURlY2lzaW9uKFBhZ2UqIHBhZ2UpCiAjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikgJiYgIVBMQVRGT1JNKElPUykKICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxl
cjo6aXNBY3RpdmVBdChwYWdlKSkgewogICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNpbmcg
RGV2aWNlTW90aW9uIik7Ci0gICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZl
YXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZURldmljZU1vdGlvbktleSk7CisgICAgICAgIEZF
QVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hl
RmFpbHVyZURldmljZU1vdGlvbktleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBV
c2VzRGV2aWNlTW90aW9uOwogICAgIH0KICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyOjppc0FjdGl2ZUF0KHBhZ2UpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2lu
ZyBEZXZpY2VPcmllbnRhdGlvbiIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5U
X0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVEZXZpY2VPcmllbnRhdGlvbktleSk7
CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVDb3Vu
dGVyUGFnZUNhY2hlRmFpbHVyZURldmljZU9yaWVudGF0aW9uS2V5KTsKICAgICAgICAgcmVqZWN0
UmVhc29ucyB8PSAxIDw8IFVzZXNEZXZpY2VPcmllbnRhdGlvbjsKICAgICB9CiAjZW5kaWYKICNp
ZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKICAgICBpZiAoRGV2aWNlUHJveGltaXR5Q29udHJv
bGxlcjo6aXNBY3RpdmVBdChwYWdlKSkgewogICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNp
bmcgRGV2aWNlUHJveGltaXR5Iik7Ci0gICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRf
S0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZURldmljZVByb3hpbWl0eUtleSk7Cisg
ICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVDb3VudGVy
UGFnZUNhY2hlRmFpbHVyZURldmljZVByb3hpbWl0eUtleSk7CiAgICAgICAgIHJlamVjdFJlYXNv
bnMgfD0gMSA8PCBVc2VzRGV2aWNlTW90aW9uOwogICAgIH0KICNlbmRpZgogICAgIEZyYW1lTG9h
ZFR5cGUgbG9hZFR5cGUgPSBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5sb2FkVHlwZSgpOwog
ICAgIGlmIChsb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWQpIHsKICAgICAgICAgUENM
T0coIiAgIC1Mb2FkIHR5cGUgaXM6IFJlbG9hZCIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJf
SU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVSZWxvYWRLZXkpOwor
ICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShwYWdlLCBGZWF0dXJlQ291bnRl
clBhZ2VDYWNoZUZhaWx1cmVSZWxvYWRLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEg
PDwgSXNSZWxvYWQ7CiAgICAgfQogICAgIGlmIChsb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpS
ZWxvYWRGcm9tT3JpZ2luKSB7CiAgICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBSZWxv
YWQgZnJvbSBvcmlnaW4iKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVko
RmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlUmVsb2FkRnJvbU9yaWdpbktleSk7CisgICAg
ICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVDb3VudGVyUGFn
ZUNhY2hlRmFpbHVyZVJlbG9hZEZyb21PcmlnaW5LZXkpOwogICAgICAgICByZWplY3RSZWFzb25z
IHw9IDEgPDwgSXNSZWxvYWRGcm9tT3JpZ2luOwogICAgIH0KICAgICBpZiAobG9hZFR5cGUgPT0g
RnJhbWVMb2FkVHlwZTo6U2FtZSkgewogICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczog
U2FtZSIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291
bnRlclBhZ2VDYWNoZUZhaWx1cmVTYW1lTG9hZEtleSk7CisgICAgICAgIEZFQVRVUkVfQ09VTlRF
Ul9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZVNhbWVM
b2FkS2V5KTsKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IElzU2FtZUxvYWQ7CiAgICAg
fQogICAgIAogICAgIGlmIChyZWplY3RSZWFzb25zKSB7CiAgICAgICAgIFBDTE9HKCIgUGFnZSBD
QU5OT1QgYmUgY2FjaGVkXG4tLS0tLS0tLSIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5D
UkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVLZXkpOworICAgICAgICBG
RUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShwYWdlLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNo
ZUZhaWx1cmVLZXkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFBDTE9HKCIgUGFnZSBDQU4gYmUg
Y2FjaGVkXG4tLS0tLS0tLSIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tF
WShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZVN1Y2Nlc3NLZXkpOworICAgICAgICBGRUFUVVJFX0NP
VU5URVJfSU5DUkVNRU5UX0tFWShwYWdlLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZVN1Y2Nlc3NL
ZXkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggMTQ5ZGQyMjU1YWUx
ZTkyNmQ2YThmMTQ5MWIxOWU5NWE2OGVlOTQ4Yi4uYzQyODJjMjhkZjhiNzA1MDA2NzU4NmUwZGI5
YzUzZjA3ZDZhOWQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC03Nyw2ICs3Nyw3IEBA
IGphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogc2NyaXB0TWFya3Vw
RW5hYmxlZCBpbml0aWFsPXRydWUKIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGluaXRpYWw9ZmFs
c2UKIGRvbVRpbWVyc1Rocm90dGxpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQorZmVhdHVyZUNvdW50
ZXJFbmFibGVkIGluaXRpYWw9ZmFsc2UKIHdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkIGluaXRp
YWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVdFQl9BUkNISVZFCiBsb2NhbEZpbGVDb250ZW50U25pZmZp
bmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCkBAIC0yMzcsNCArMjM4LDQgQEAgbG9uZ01vdXNlUHJlc3NFbmFibGVk
IGluaXRpYWw9ZmFsc2UKIAogc2VydmljZUNvbnRyb2xzRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBj
b25kaXRpb25hbD1TRVJWSUNFX0NPTlRST0xTCiAKLWlnbm9yZVZpZXdwb3J0U2NhbGluZ0NvbnN0
cmFpbnRzIGluaXRpYWw9ZmFsc2UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpZ25vcmVW
aWV3cG9ydFNjYWxpbmdDb25zdHJhaW50cyBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GZWF0dXJlQ291bnRlcktleXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ZlYXR1cmVDb3VudGVyS2V5cy5oCmluZGV4IDFiYWUzZTlmOGU4MjAzNGRjYjhk
NThkZDljYTYxMjFiODE3ZTQzNWIuLjJjZmYzODJkNGNkNTM4MmVjMTFmNTZkYjc2ZmI1Mzg2N2Fj
NmQ3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZlYXR1cmVDb3VudGVy
S2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZlYXR1cmVDb3VudGVyS2V5cy5o
CkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEZlYXR1cmVDb3VudGVyS2V5c19oCiAjZGVmaW5l
IEZlYXR1cmVDb3VudGVyS2V5c19oCiAKLSNpbmNsdWRlIDx3dGYvRmVhdHVyZUNvdW50ZXIuaD4K
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBQYWdlIGNhY2hlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmVhdHVyZUNvdW50ZXJMb2dnaW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZlYXR1cmVDb3VudGVyTG9nZ2luZy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFm
MmUzYzFlYTU5MDIzN2Y1NWU0ZTc2NGFlNzQ0ODY5Y2MxMWI3OAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZlYXR1cmVDb3VudGVyTG9nZ2luZy5jcHAKQEAgLTAs
MCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZlYXR1cmVD
b3VudGVyTG9nZ2luZy5oIgorCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNldHRpbmdz
LmgiCisjaW5jbHVkZSA8d3RmL0ZlYXR1cmVDb3VudGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworbmFtZXNwYWNlIEZlYXR1cmVDb3VudGVyTG9nZ2luZyB7CisKK3N0YXRpYyBib29sIHNo
b3VsZFVzZUZlYXR1cmVDb3VudGVyKFBhZ2UqIHBhZ2UpCit7CisgICAgaWYgKCFwYWdlKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBMb2cgb25seSBpZiB0aGUgc2V0dGluZyBpcyBl
bmFibGVkLgorICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKS5mZWF0dXJlQ291bnRlckVuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRG8gbm90IGxvZyBpZiB0aGlzIGlz
IGEgcHJpdmF0ZSBzZXNzaW9uLgorICAgIGlmIChwYWdlLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBp
bmNyZW1lbnRGZWF0dXJlQ291bnRlcktleShQYWdlKiBwYWdlLCBjb25zdCBjaGFyKiBjb25zdCBr
ZXkpCit7CisgICAgaWYgKCFzaG91bGRVc2VGZWF0dXJlQ291bnRlcihwYWdlKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgV1RGOjppbmNyZW1lbnRGZWF0dXJlQ291bnRlcktleShrZXkpOworfQor
Cit2b2lkIHNldEZlYXR1cmVDb3VudGVyS2V5KFBhZ2UqIHBhZ2UsIGNvbnN0IGNoYXIqIGNvbnN0
IGtleSwgaW50NjRfdCB2YWx1ZSkKK3sKKyAgICBpZiAoIXNob3VsZFVzZUZlYXR1cmVDb3VudGVy
KHBhZ2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBXVEY6OnNldEZlYXR1cmVDb3VudGVyS2V5
KGtleSwgdmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBGZWF0dXJlQ291bnRlckxvZ2dpbmcK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmVhdHVyZUNvdW50ZXJMb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
ZWF0dXJlQ291bnRlckxvZ2dpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OWQ0MzUyYTU4ZTUwNjJhMTcyNjM3
YmY4MjEzZGZhMTRiYTFmNGZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmVhdHVyZUNvdW50ZXJMb2dnaW5nLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBGZWF0dXJlQ291bnRlckxvZ2dpbmdfaAorI2RlZmluZSBGZWF0dXJlQ291bnRlckxvZ2dp
bmdfaAorCisjaW5jbHVkZSAiRmVhdHVyZUNvdW50ZXJLZXlzLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgUGFnZTsKKworbmFtZXNwYWNlIEZlYXR1cmVDb3VudGVyTG9nZ2luZyB7
CisKK3ZvaWQgaW5jcmVtZW50RmVhdHVyZUNvdW50ZXJLZXkoUGFnZSosIGNvbnN0IGNoYXIqIGNv
bnN0IGtleSk7Cit2b2lkIHNldEZlYXR1cmVDb3VudGVyS2V5KFBhZ2UqLCBjb25zdCBjaGFyKiBj
b25zdCBrZXksIGludDY0X3QgdmFsdWUpOworCit9IC8vIG5hbWVzcGFjZSBGZWF0dXJlQ291bnRl
ckxvZ2dpbmcKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZGVmaW5lIEZFQVRVUkVfQ09V
TlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIGtleSkgICBXZWJDb3JlOjpGZWF0dXJlQ291bnRlckxv
Z2dpbmc6OmluY3JlbWVudEZlYXR1cmVDb3VudGVyS2V5KHBhZ2UsIGtleSkKKyNkZWZpbmUgRkVB
VFVSRV9DT1VOVEVSX1NFVF9LRVkocGFnZSwga2V5LCB2YWx1ZSkgIFdlYkNvcmU6OkZlYXR1cmVD
b3VudGVyTG9nZ2luZzo6c2V0RmVhdHVyZUNvdW50ZXJLZXkocGFnZSwga2V5LCB2YWx1ZSkKKwor
I2VuZGlmIC8vIEZlYXR1cmVDb3VudGVyTG9nZ2luZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCBiMWRjNzU0NTkwYWNhZTU2
YjgyYzUyZGNmZDVkZjU2ZGQyMTJjYTAzLi5mNjk4Njg0NjJjZDMzOTQ5MjY3ZDJmOTgxOTFhY2I1
MDVjNzk4MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmgKQEAgLTEyMSw2ICsxMjEsNyBAQAogICAgIG1hY3JvKFRhYnNUb0xpbmtz
LCB0YWJzVG9MaW5rcywgQm9vbCwgYm9vbCwgREVGQVVMVF9XRUJLSVRfVEFCU1RPTElOS1NfRU5B
QkxFRCkgXAogICAgIG1hY3JvKEROU1ByZWZldGNoaW5nRW5hYmxlZCwgZG5zUHJlZmV0Y2hpbmdF
bmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKERPTVRpbWVyc1Rocm90dGxp
bmdFbmFibGVkLCBkb21UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkg
XAorICAgIG1hY3JvKEZlYXR1cmVDb3VudGVyRW5hYmxlZCwgZmVhdHVyZUNvdW50ZXJFbmFibGVk
LCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFi
bGVkLCB3ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAg
ICBtYWNybyhMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBsb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKFVzZXNQYWdl
Q2FjaGUsIHVzZXNQYWdlQ2FjaGUsIEJvb2wsIGJvb2wsIHRydWUpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCBhZmIzZjYzMzFh
NzkyNmExZmFkZDA3Njk4YjU5MDVjZWJhOTMxY2YzLi5iN2VjZGVlZThmMmEyYmU5ZmM0MDFjZTkz
ZGIxNDU1ZDJmNDdjOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXMuY3BwCkBAIC01ODksNiArNTg5LDE2IEBAIGJvb2wgV0tQcmVmZXJlbmNl
c0dldERPTVRpbWVyc1Rocm90dGxpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYpCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmRvbVRpbWVyc1Rocm90
dGxpbmdFbmFibGVkKCk7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldEZlYXR1cmVDb3VudGVy
RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCit7
CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RmVhdHVyZUNvdW50ZXJFbmFibGVkKGVu
YWJsZWQpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRGZWF0dXJlQ291bnRlckVuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+ZmVhdHVyZUNvdW50ZXJFbmFibGVkKCk7Cit9CisKIHZvaWQgV0tQcmVm
ZXJlbmNlc1NldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKIHsKICAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5zZXRXZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZChlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgK
aW5kZXggMTQ3YzIwMmZjYWNiMDY4OTA5NTA3N2MwYjMyZDA1OTJjMDM1MjZmMi4uZTFlZDkyNWE5
M2FkNjFmZTNiNjRkNWQ0YjcwMmM5MjlmNmRiNzBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKQEAgLTEy
MSw2ICsxMjEsMTAgQEAgV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldERPTVRpbWVyc1Ro
cm90dGxpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmUKIFdLX0VYUE9SVCBib29sIFdL
UHJlZmVyZW5jZXNHZXRET01UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzKTsKIAogLy8gRGVmYXVsdHMgdG8gZmFsc2UuCitXS19FWFBPUlQgdm9pZCBX
S1ByZWZlcmVuY2VzU2V0RmVhdHVyZUNvdW50ZXJFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXMsIGJvb2wgZW5hYmxlZCk7CitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0
RmVhdHVyZUNvdW50ZXJFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOworCisv
LyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRXZWJB
cmNoaXZlRGVidWdNb2RlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzLCBib29s
IGVuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFdlYkFyY2hpdmVEZWJ1
Z01vZGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXgg
MDdkM2M4NDM3YmVlNjBmYWUxMGRkM2ZiMWYzNzczODEyMTA4MjM2Zi4uM2YyZWFlZmY5YjU4ZGE3
NTJmOTI5YzBlYmJjMDIyOGU4ZTQ3NjNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtMTEzLDYgKzExMywxNiBAQAog
ICAgIF9wcmVmZXJlbmNlcy0+c2V0VGVsZXBob25lTnVtYmVyUGFyc2luZ0VuYWJsZWQodGVsZXBo
b25lTnVtYmVyRGV0ZWN0aW9uSXNFbmFibGVkKTsKIH0KIAorLSAoQk9PTClfZmVhdHVyZUNvdW50
ZXJFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+ZmVhdHVyZUNvdW50ZXJFbmFi
bGVkKCk7Cit9CisKKy0gKHZvaWQpX3NldEZlYXR1cmVDb3VudGVyRW5hYmxlZDooQk9PTClmZWF0
dXJlQ291bnRlckVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEZlYXR1cmVDb3VudGVy
RW5hYmxlZChmZWF0dXJlQ291bnRlckVuYWJsZWQpOworfQorCiBzdGF0aWMgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b1N0b3JhZ2VCbG9ja2luZ1BvbGlj
eShfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggMmEwMWMyMzAwZDE5ODkwYzhlNDk0YTM1MDQ1OTVl
YjJiMjRhZDdmZS4uZjQ0NDc5YzkwZmRiOWVlMGNmYWM2YTk5ODI3NDAxNjlmODlmNGYwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaApAQCAtNDYsNiArNDYsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgX1dLRGVidWdPdmVybGF5UmVnaW9ucykgewogCiAvLyBGSVhNRTogVGhpcyBwcm9w
ZXJ0eSBzaG91bGQgbm90IGhhdmUgdGhlIHZlcmIgImlzIiBpbiBpdC4KIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFRlbGVwaG9uZU51bWJlckRldGVjdGlvbklzRW5hYmxlZDopIEJP
T0wgX3RlbGVwaG9uZU51bWJlckRldGVjdGlvbklzRW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEZlYXR1cmVDb3VudGVyRW5hYmxlZDopIEJPT0wgX2ZlYXR1cmVDb3Vu
dGVyRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN0b3JhZ2VCbG9j
a2luZ1BvbGljeTopIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBfc3RvcmFnZUJsb2NraW5nUG9s
aWN5OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb21wb3NpdGluZ0JvcmRl
cnNWaXNpYmxlOikgQk9PTCBfY29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiZWZkNzg1MWY1NTRi
N2QwZTY0YTAyMmY5M2NhN2NlMjUyZmVhN2ZlLi41YTg2MmJiYjZkNWZiNmU4M2RkZDcxODFmM2Ey
MTA4ODFhODJmOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0yNjg4LDYgKzI2ODgsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZl
cmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLnNl
dEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3Moc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5Ojpmb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzS2V5KCkpKTsKICAgICBzZXR0
aW5ncy5zZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjpkbnNQcmVmZXRjaGluZ0VuYWJsZWRLZXkoKSkpOwogICAgIHNldHRp
bmdzLnNldERPTVRpbWVyc1Rocm90dGxpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6ZG9tVGltZXJzVGhyb3R0bGluZ0VuYWJsZWRLZXkoKSkpOwor
ICAgIHNldHRpbmdzLnNldEZlYXR1cmVDb3VudGVyRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZlYXR1cmVDb3VudGVyRW5hYmxlZEtleSgpKSk7CiAj
aWYgRU5BQkxFKFdFQl9BUkNISVZFKQogICAgIHNldHRpbmdzLnNldFdlYkFyY2hpdmVEZWJ1Z01v
ZGVFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6d2Vi
QXJjaGl2ZURlYnVnTW9kZUVuYWJsZWRLZXkoKSkpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243395</attachid>
            <date>2014-12-16 14:18:55 -0800</date>
            <delta_ts>2014-12-17 11:52:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139688-20141216141945.patch</filename>
            <type>text/plain</type>
            <size>33893</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3Mzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGEzMjEyZTVmNDM2Nzc1Y2YyNjkwNDg1
MmZjMjQ0OTI5ODNhZDIyNmEuLjQyNDFmNTE1Y2I4ZWMxMWQxNDZjOGMwNzRlMWM2MTE1Njk2YzIw
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMTItMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYWtlIGl0IHBvc3NpYmxlIHRvIHRvZ2dsZSBG
ZWF0dXJlQ291bnRlciBzdXBwb3J0IGF0IHJ1bnRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTY4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MTkyNjYyNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgR2V0IHJpZCBvZiB0aGUgY29udmVuaWVuY2UgbWFjcm9zIGZvciBGZWF0dXJlQ291bnRlciBp
biBXVEYgYW5kIG1vdmUKKyAgICAgICAgdGhlbSBmb3IgV2ViQ29yZS9wbGF0Zm9ybS9GZWF0dXJl
Q291bnRlckxvZ2dpbmcuaCB3cmFwcGVyLgorCisgICAgICAgICogd3RmL0ZlYXR1cmVDb3VudGVy
Lmg6CisKIDIwMTQtMTItMTYgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIFdURiBmYWlscyB0byBidWlsZCB3aXRoIHB1YmxpYyBTREsgZHVlIHRvIG1p
c3NpbmcgaGVhZGVyIENQQWdncmVnYXRlRGljdGlvbmFyeS5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA4MTQ5
Y2UwNDY5NTEwYmVlMTNiMDQ4OGQzMmFmZjEzYTY1YjI4Zi4uZWUzMmE2NTQ0MjljZDFhMmEyNDY5
OWMzZWQ3NTFiYzBmYjc2MDc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTEy
LTE2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTWFr
ZSBpdCBwb3NzaWJsZSB0byB0b2dnbGUgRmVhdHVyZUNvdW50ZXIgc3VwcG9ydCBhdCBydW50aW1l
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2ODgK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE5MjY2MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gdG9nZ2xlIEZl
YXR1cmVDb3VudGVyIHN1cHBvcnQgYXQgcnVudGltZSBieSBhZGRpbmcKKyAgICAgICAgYSBzZXR0
aW5nIChkaXNhYmxlZCBieSBkZWZhdWx0KSBhcyB3ZWxsIGFzIGEgRmVhdHVyZUNvdW50ZXJMb2dn
aW5nCisgICAgICAgIHdyYXBwZXIgdW5kZXIgcGxhdGZvcm0vIHdoaWNoIG9ubHkgbG9ncyBpZiB0
aGUgc2V0dGluZyBpcyBlbmFibGVkLiBGb3IKKyAgICAgICAgcHJpdmFjeSByZWFzb25zLCBGZWF0
dXJlQ291bnRlciBsb2dnaW5nIGlzIGFsc28gZGlzYWJsZWQgZm9yIHByaXZhdGUgLworICAgICAg
ICBlcGhlbWVyYWwgc2Vzc2lvbnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlv
ciBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bG9nQ2FuQ2FjaGVGcmFtZURlY2lzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmxvZ0Nh
bkNhY2hlUGFnZURlY2lzaW9uKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAgICAg
ICAqIHBsYXRmb3JtL0ZlYXR1cmVDb3VudGVyS2V5cy5oOgorICAgICAgICAqIHBsYXRmb3JtL0Zl
YXR1cmVDb3VudGVyTG9nZ2luZy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XVEYvd3RmL0ZlYXR1
cmVDb3VudGVyLmguCisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlQ291bnRlckxvZ2dpbmc6OnNo
b3VsZFVzZUZlYXR1cmVDb3VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVDb3VudGVy
TG9nZ2luZzo6aW5jcmVtZW50RmVhdHVyZUNvdW50ZXJLZXkpOgorICAgICAgICAoV2ViQ29yZTo6
RmVhdHVyZUNvdW50ZXJMb2dnaW5nOjpzZXRGZWF0dXJlQ291bnRlcktleSk6CisgICAgICAgICog
cGxhdGZvcm0vRmVhdHVyZUNvdW50ZXJMb2dnaW5nLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XVEYv
d3RmL0ZlYXR1cmVDb3VudGVyLmguCisKIDIwMTQtMTItMTYgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjE3NzM3
NTsgZXhwbGljaXRseSBjYXN0IHRvIE5TVUludGVnZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTc2MzU3ZDhh
MDc1OWRlNzk2ZGNmZDQ3Y2U3NTEzNDkwM2ExNDE4My4uMjIzYWI3YTZmN2E0MWI3MDVmZTFkMDY3
MWUxNWY5YjAwY2VjYzhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTEyLTE2
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTWFrZSBp
dCBwb3NzaWJsZSB0byB0b2dnbGUgRmVhdHVyZUNvdW50ZXIgc3VwcG9ydCBhdCBydW50aW1lCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2ODgKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE5MjY2MjU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwcml2YXRlIHNldHRpbmdzIEFQSSB0byB0b2dn
bGUgRmVhdHVyZUNvdW50ZXIgc3VwcG9ydCBvbiBTYWZhcmkgYW5kCisgICAgICAgIE1vYmlsZVNh
ZmFyaS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQ
cmVmZXJlbmNlc1NldEZlYXR1cmVDb3VudGVyRW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVu
Y2VzR2V0RmVhdHVyZUNvdW50ZXJFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2ZlYXR1cmVDb3Vu
dGVyRW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRGZWF0dXJlQ291bnRl
ckVuYWJsZWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDE0LTEyLTE2
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIFJl
ZiBpbiBhbm90aGVyIFN0b3JhZ2VNYW5hZ2VyIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9GZWF0dXJlQ291bnRlci5oIGIvU291cmNlL1dURi93dGYvRmVhdHVyZUNvdW50ZXIu
aAppbmRleCAwYWE1ZWViNjI3ODAwYzIwNDM0YjgyNzY5YTBmYTBhZTMwMDdhMzZhLi5jOTdkMmU1
ZWZmZjQ2NDg1NTJlZWIyYmU0NDEyMzY4MTZkYzFhNmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9GZWF0dXJlQ291bnRlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVDb3VudGVy
LmgKQEAgLTMxLDkgKzMxLDYgQEAgbmFtZXNwYWNlIFdURiB7CiBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBpbmNyZW1lbnRGZWF0dXJlQ291bnRlcktleShjb25zdCBjaGFyKiBjb25zdCBrZXkpOwog
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0RmVhdHVyZUNvdW50ZXJLZXkoY29uc3QgY2hhciog
Y29uc3Qga2V5LCBpbnQ2NF90IHZhbHVlKTsKIAotI2RlZmluZSBGRUFUVVJFX0NPVU5URVJfSU5D
UkVNRU5UX0tFWShrZXkpICAgV1RGOjppbmNyZW1lbnRGZWF0dXJlQ291bnRlcktleShrZXkpCi0j
ZGVmaW5lIEZFQVRVUkVfQ09VTlRFUl9TRVRfS0VZKGtleSwgdmFsdWUpICBXVEY6OnNldEZlYXR1
cmVDb3VudGVyS2V5KGtleSwgdmFsdWUpCi0KIH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYg
Ly8gRmVhdHVyZUNvdW50ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3MmVkZWY2MTJhMDMx
YmRhOTI3YWNmZWI4ZTMzZTdiODdhNTFhODcwLi44N2E1N2NlMzAzZWEyNGUwZGI3ZDNkZTU5MTZi
N2U1ZDljMWJkMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTk3OCw2ICsxOTc4LDcgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0Rpc3BsYXlTbGVlcERpc2FibGVyLmNw
cAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmNwcAogICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5jcHAK
KyAgICBwbGF0Zm9ybS9GZWF0dXJlQ291bnRlckxvZ2dpbmcuY3BwCiAgICAgcGxhdGZvcm0vRmls
ZUNob29zZXIuY3BwCiAgICAgcGxhdGZvcm0vRmlsZVN0cmVhbS5jcHAKICAgICBwbGF0Zm9ybS9G
aWxlU3lzdGVtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKaW5kZXggMjU2NjM5MGY3YjlkNjAzZjExYmFjYzQ1OTgxNDQ3Zjg4YzI0YTUyYS4u
NjdlNzZmYjQ5MmQ2YTc2MmQzZDFhZTRhOTkxNDQ0NDAyNDkzMjExNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC03NDAzLDYgKzc0MDMs
NyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cRGlzcGxheVNsZWVwRGlz
YWJsZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cRHJhZ0Rh
dGEuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cRHJhZ0ltYWdl
LmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXEZlYXR1cmVDb3Vu
dGVyTG9nZ2luZy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxG
aWxlQ2hvb3Nlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxG
aWxlU3RyZWFtLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXEZp
bGVTeXN0ZW0uY3BwIiAvPgpAQCAtMTkzNzAsNiArMTkzNzEsNyBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccGxhdGZvcm1cRHJhZ0RhdGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXERyYWdJbWFnZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cRXZlbnRMb29wLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxw
bGF0Zm9ybVxGZWF0dXJlQ291bnRlckxvZ2dpbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXEZpbGVDaG9vc2VyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxwbGF0Zm9ybVxGaWxlTWV0YWRhdGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHBsYXRmb3JtXEZpbGVTdHJlYW0uaCIgLz4KQEAgLTIxNDIwLDQgKzIxNDIyLDQgQEAKICAg
PEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVkNUYXJnZXRzUGF0aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdldHMiIC8+
CiAgIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDY3NzJiNTVkYmQ0MzcxNjFjODEyY2RiMDEw
ODc0YzRhOTNhMDRlZDcuLmE5MGMxZjcxYzQ2NmNmZWU0YzY3ZTI2ZDRjMWRlOGQxMTNjYjk1OWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKQEAgLTExMDcsNiArMTEwNyw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxEcmFnSW1hZ2UuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm08
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXEZlYXR1cmVDb3VudGVyTG9nZ2luZy5jcHAiPgorICAgICAgPEZpbHRlcj5wbGF0Zm9y
bTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cRmlsZUNob29zZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm08L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTgxNzgsNiArODE4MSw5IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxEcmFnSW1hZ2UuaCI+CiAgICAgICA8RmlsdGVyPnBsYXRm
b3JtPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxGZWF0dXJlQ291bnRlckxvZ2dpbmcuaCI+CisgICAgICA8RmlsdGVyPnBsYXRm
b3JtPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxFdmVudExvb3AuaCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xNTQ5MSw0ICsxNTQ5Nyw0IEBACiAgICAgICA8RmlsdGVy
PnBsYXRmb3JtXHdpbjwvRmlsdGVyPgogICAgIDwvTUFTTT4KICAgPC9JdGVtR3JvdXA+Ci08L1By
b2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM0ZTZl
ZDQzYjg4YTY4MzZlMTk4NWRiMjY4MTE0ODM3OTc3ZDg5MTcuLmUyZDgxZGQ5ZjEyMmIzZTU4YWU3
YzU4YjhlMjc5NDY3Yjc2MjA2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2MTQsNiArMTYxNCw4IEBACiAJCTQ1QkFDMkIw
MTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJMLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NUJBQzJBRjEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ1RkVB
NUNGMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNp
bWFsLmNwcCAqLzsgfTsKIAkJNDVGRUE1RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNFMTU2
RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDY3NzlDRTIxQTQwQjk3MjAwQjY4NjRFIC8qIEZlYXR1cmVD
b3VudGVyTG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0Njc3OUNFMDFBNDBCOTcxMDBCNjg2NEUgLyogRmVhdHVyZUNvdW50ZXJMb2dnaW5n
LmNwcCAqLzsgfTsKKwkJNDY3NzlDRTMxQTQwQjk3MjAwQjY4NjRFIC8qIEZlYXR1cmVDb3VudGVy
TG9nZ2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDY3NzlDRTExQTQwQjk3MjAwQjY4NjRFIC8qIEZlYXR1cmVDb3VudGVyTG9nZ2luZy5oICovOyB9
OwogCQk0Njg5RjFBRjEyNjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njg5RjFBRTEyNjdCQUUxMDBF
OEQzODAgLyogRmlsZU1ldGFkYXRhLmggKi87IH07CiAJCTQ5MDcwN0U2MTIxOUMwNDMwMEQ5MEU1
MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRC
cmlkZ2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJL
aXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovOyB9OwpA
QCAtODcxMyw2ICs4NzE1LDggQEAKIAkJNDVCQUMyQUYxMzYwQkJBQjAwNURBMjU4IC8qIEljb25V
UkwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvblVSTC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NUZFQTVDRDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1h
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWNpbWFsLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVGRUE1Q0UxNTZEREU4QzAwNjU0MTAxIC8q
IERlY2ltYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjaW1hbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0Njc3OUNFMDFBNDBCOTcxMDBCNjg2NEUgLyog
RmVhdHVyZUNvdW50ZXJMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZlYXR1cmVDb3VudGVyTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQ2Nzc5Q0UxMUE0MEI5NzIwMEI2ODY0RSAvKiBGZWF0dXJlQ291bnRlckxvZ2dpbmcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmVhdHVyZUNvdW50ZXJMb2dnaW5n
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4
MCAvKiBGaWxlTWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmls
ZU1ldGFkYXRhLmg7IHBhdGggPSBwbGF0Zm9ybS9GaWxlTWV0YWRhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0
QnJpZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFOR0xFV2Vi
S2l0QnJpZGdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTUxMjE5
QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMTQ1OSw2ICsyMTQ2Myw4IEBACiAJCQkJQTdDRkIzRDAwQjdFRDEwQTAwNzBDMzJE
IC8qIERyYWdJbWFnZS5oICovLAogCQkJCTFDQTE5RTE1MERDMjU1Q0EwMDY1QTk5NCAvKiBFdmVu
dExvb3AuaCAqLywKIAkJCQkxQUJBMzRGRDFBNDA5RkVBMDA1NTcwRUEgLyogRmVhdHVyZUNvdW50
ZXJLZXlzLmggKi8sCisJCQkJNDY3NzlDRTAxQTQwQjk3MTAwQjY4NjRFIC8qIEZlYXR1cmVDb3Vu
dGVyTG9nZ2luZy5jcHAgKi8sCisJCQkJNDY3NzlDRTExQTQwQjk3MjAwQjY4NjRFIC8qIEZlYXR1
cmVDb3VudGVyTG9nZ2luZy5oICovLAogCQkJCTkzNEZFOUU0MEI1Q0E1MzkwMDNFNEE3MyAvKiBG
aWxlQ2hvb3Nlci5jcHAgKi8sCiAJCQkJMDY2Qzc3MkEwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVD
aG9vc2VyLmggKi8sCiAJCQkJMkVGMUJGRTgxMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVTdHJlYW0u
Y3BwICovLApAQCAtMjM3MTYsNiArMjM3MjIsNyBAQAogCQkJCUE4MEU2RDA0MEExOTg5Q0EwMDdG
QjhDNSAvKiBDb3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjk3OTBFODIwNjkyMDBC
MjU5NjUgLyogQ291bnRlckNvbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCOTUxMEU4
MjA1NkIwMEIyNTk2NSAvKiBDb3VudGVyRGlyZWN0aXZlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDY3NzlDRTMxQTQwQjk3MjAwQjY4NjRFIC8qIEZlYXR1cmVDb3VudGVyTG9nZ2luZy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTM5MkYxNEMwQUQxODYxQjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlEMEIwNTU2ODA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlu
a0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNEM3NjZFMENFOTIzQTEwMDdFRjNDRCAv
KiBDcmVkZW50aWFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI4NjA1LDYgKzI4NjEyLDcgQEAKIAkJ
CQk3N0ExN0FBNjEyRjI4QjJBMDA0RTAyRjYgLyogSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5l
QXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBOTMyNjYxNjcw
M0JBOTAwODk4MkRDIC8qIEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk0Njc3OUNFMjFBNDBCOTcyMDBCNjg2NEUgLyogRmVhdHVyZUNvdW50ZXJMb2dnaW5nLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZERUE2MjQyMTUyMTAyRTIwMDQ3OURGMCAvKiBKU09zY2ls
bGF0b3JOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQkQxREZDMTY3RkUyN0QwMDUxQTEx
RSAvKiBKU09zY2lsbGF0b3JOb2RlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMEQ1
NzQwMEE1Qzc4NjcwMDdFREQ0QyAvKiBKU092ZXJmbG93RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKaW5kZXggMTI4ZWNhNzFmMTVhMzY5MzA2
ZjBlNDkwNDNkN2ZiZDdmODQwYjAyOC4uNjdhOWY0YTMyNGZhYTNjNzE3NTVmNzczMzBlZWI4YWM5
NWNkNTkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcApAQCAtMzYsNyArMzYs
NyBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKLSNpbmNsdWRlICJGZWF0
dXJlQ291bnRlcktleXMuaCIKKyNpbmNsdWRlICJGZWF0dXJlQ291bnRlckxvZ2dpbmcuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCIKQEAgLTEwMCw3ICsxMDAsNyBAQCBz
dGF0aWMgdW5zaWduZWQgbG9nQ2FuQ2FjaGVGcmFtZURlY2lzaW9uKEZyYW1lKiBmcmFtZSwgaW50
IGluZGVudExldmVsKQogICAgIFBDTE9HKCIrLS0tIik7CiAgICAgaWYgKCFmcmFtZS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKSkgewogICAgICAgICBQQ0xPRygiICAgLVRoZXJlIGlzIG5vIERv
Y3VtZW50TG9hZGVyIG9iamVjdCIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5U
X0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVOb0RvY3VtZW50TG9hZGVyS2V5KTsK
KyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoZnJhbWUtPnBhZ2UoKSwgRmVh
dHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlTm9Eb2N1bWVudExvYWRlcktleSk7CiAgICAgICAg
IHJldHVybiAxIDw8IE5vRG9jdW1lbnRMb2FkZXI7CiAgICAgfQogCkBAIC0xMTQsNyArMTE0LDcg
QEAgc3RhdGljIHVuc2lnbmVkIGxvZ0NhbkNhY2hlRnJhbWVEZWNpc2lvbihGcmFtZSogZnJhbWUs
IGludCBpbmRlbnRMZXZlbCkKICAgICB1bnNpZ25lZCByZWplY3RSZWFzb25zID0gMDsKICAgICBp
ZiAoIWZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5tYWluRG9jdW1lbnRFcnJvcigp
LmlzTnVsbCgpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtTWFpbiBkb2N1bWVudCBoYXMgYW4gZXJy
b3IiKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50
ZXJQYWdlQ2FjaGVGYWlsdXJlTWFpbkRvY3VtZW50RXJyb3JLZXkpOworICAgICAgICBGRUFUVVJF
X0NPVU5URVJfSU5DUkVNRU5UX0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VD
YWNoZUZhaWx1cmVNYWluRG9jdW1lbnRFcnJvcktleSk7CiAjaWYgIVBMQVRGT1JNKElPUykKICAg
ICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IE1haW5Eb2N1bWVudEVycm9yOwogI2Vsc2UKQEAg
LTEyNiw3MSArMTI2LDcxIEBAIHN0YXRpYyB1bnNpZ25lZCBsb2dDYW5DYWNoZUZyYW1lRGVjaXNp
b24oRnJhbWUqIGZyYW1lLCBpbnQgaW5kZW50TGV2ZWwpCiAgICAgfQogICAgIGlmIChmcmFtZS0+
bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+c3Vic3RpdHV0ZURhdGEoKS5pc1ZhbGlkKCkgJiYg
ZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnN1YnN0aXR1dGVEYXRhKCkuZmFpbGlu
Z1VSTCgpLmlzRW1wdHkoKSkgewogICAgICAgICBQQ0xPRygiICAgLUZyYW1lIGlzIGFuIGVycm9y
IHBhZ2UiKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNv
dW50ZXJQYWdlQ2FjaGVGYWlsdXJlSXNFcnJvclBhZ2VLZXkpOworICAgICAgICBGRUFUVVJFX0NP
VU5URVJfSU5DUkVNRU5UX0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNo
ZUZhaWx1cmVJc0Vycm9yUGFnZUtleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBJ
c0Vycm9yUGFnZTsKICAgICB9CiAgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRl
cigpLmNvbnRhaW5zUGx1Z2lucygpICYmICFmcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLnBhZ2VD
YWNoZVN1cHBvcnRzUGx1Z2lucygpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtRnJhbWUgY29udGFp
bnMgcGx1Z2lucyIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0
dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVIYXNQbHVnaW5zKTsKKyAgICAgICAgRkVBVFVSRV9D
T1VOVEVSX0lOQ1JFTUVOVF9LRVkoZnJhbWUtPnBhZ2UoKSwgRmVhdHVyZUNvdW50ZXJQYWdlQ2Fj
aGVGYWlsdXJlSGFzUGx1Z2lucyk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBIYXNQ
bHVnaW5zOwogICAgIH0KICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnByb3RvY29s
SXMoImh0dHBzIikKICAgICAgICAgJiYgKGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigp
LT5yZXNwb25zZSgpLmNhY2hlQ29udHJvbENvbnRhaW5zTm9DYWNoZSgpCiAgICAgICAgICAgICB8
fCBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKS5jYWNoZUNvbnRy
b2xDb250YWluc05vU3RvcmUoKSkpIHsKICAgICAgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5kb2N1
bWVudExvYWRlcigpLT5yZXNwb25zZSgpLmNhY2hlQ29udHJvbENvbnRhaW5zTm9DYWNoZSgpKQot
ICAgICAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQ
YWdlQ2FjaGVGYWlsdXJlSFRUUFNOb0NhY2hlS2V5KTsKKyAgICAgICAgICAgIEZFQVRVUkVfQ09V
TlRFUl9JTkNSRU1FTlRfS0VZKGZyYW1lLT5wYWdlKCksIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hl
RmFpbHVyZUhUVFBTTm9DYWNoZUtleSk7CiAgICAgICAgIGlmIChmcmFtZS0+bG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKS5jYWNoZUNvbnRyb2xDb250YWluc05vU3RvcmUoKSkK
LSAgICAgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVy
UGFnZUNhY2hlRmFpbHVyZUhUVFBTTm9TdG9yZUtleSk7CisgICAgICAgICAgICBGRUFUVVJFX0NP
VU5URVJfSU5DUkVNRU5UX0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNo
ZUZhaWx1cmVIVFRQU05vU3RvcmVLZXkpOwogICAgICAgICBQQ0xPRygiICAgLUZyYW1lIGlzIEhU
VFBTLCBhbmQgY2FjaGUgY29udHJvbCBwcm9oaWJpdHMgY2FjaGluZyBvciBzdG9yaW5nIik7CiAg
ICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBJc0h0dHBzQW5kQ2FjaGVDb250cm9sbGVkOwog
ICAgIH0KICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQogICAgIGlmIChEYXRhYmFzZU1hbmFnZXI6
Om1hbmFnZXIoKS5oYXNPcGVuRGF0YWJhc2VzKGZyYW1lLT5kb2N1bWVudCgpKSkgewogICAgICAg
ICBQQ0xPRygiICAgLUZyYW1lIGhhcyBvcGVuIGRhdGFiYXNlIGhhbmRsZXMiKTsKLSAgICAgICAg
RkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWls
dXJlSGFzT3BlbkRhdGFiYXNlc0tleSk7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1F
TlRfS0VZKGZyYW1lLT5wYWdlKCksIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUhhc09w
ZW5EYXRhYmFzZXNLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgSGFzRGF0YWJh
c2VIYW5kbGVzOwogICAgIH0KICNlbmRpZgogI2lmIEVOQUJMRShTSEFSRURfV09SS0VSUykKICAg
ICBpZiAoU2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aGFzU2hhcmVkV29ya2VycyhmcmFtZS0+ZG9j
dW1lbnQoKSkpIHsKICAgICAgICAgUENMT0coIiAgIC1GcmFtZSBoYXMgYXNzb2NpYXRlZCBTaGFy
ZWRXb3JrZXJzIik7Ci0gICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1
cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUhhc1NoYXJlZFdvcmtlcnNLZXkpOworICAgICAgICBG
RUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRl
clBhZ2VDYWNoZUZhaWx1cmVIYXNTaGFyZWRXb3JrZXJzS2V5KTsKICAgICAgICAgcmVqZWN0UmVh
c29ucyB8PSAxIDw8IEhhc1NoYXJlZFdvcmtlcnM7CiAgICAgfQogI2VuZGlmCiAgICAgaWYgKCFm
cmFtZS0+bG9hZGVyKCkuaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCkpIHsKICAgICAgICAgUENMT0co
IiAgIC1ObyBjdXJyZW50IGhpc3RvcnkgaXRlbSIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJf
SU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVOb0N1cnJlbnRIaXN0
b3J5SXRlbUtleSk7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKGZyYW1l
LT5wYWdlKCksIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZU5vQ3VycmVudEhpc3RvcnlJ
dGVtS2V5KTsKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IE5vSGlzdG9yeUl0ZW07CiAg
ICAgfQogICAgIGlmIChmcmFtZS0+bG9hZGVyKCkucXVpY2tSZWRpcmVjdENvbWluZygpKSB7CiAg
ICAgICAgIFBDTE9HKCIgICAtUXVpY2sgcmVkaXJlY3QgaXMgY29taW5nIik7Ci0gICAgICAgIEZF
QVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVy
ZVF1aXJrUmVkaXJlY3RDb21pbmdLZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVN
RU5UX0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVRdWly
a1JlZGlyZWN0Q29taW5nS2V5KTsKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IFF1aWNr
UmVkaXJlY3RDb21pbmc7CiAgICAgfQogICAgIGlmIChmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRM
b2FkZXIoKS0+aXNMb2FkaW5nSW5BUElTZW5zZSgpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtRG9j
dW1lbnRMb2FkZXIgaXMgc3RpbGwgbG9hZGluZyBpbiBBUEkgc2Vuc2UiKTsKLSAgICAgICAgRkVB
VFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJl
TG9hZGluZ0FQSVNlbnNlS2V5KTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9L
RVkoZnJhbWUtPnBhZ2UoKSwgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlTG9hZGluZ0FQ
SVNlbnNlS2V5KTsKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IElzTG9hZGluZ0luQVBJ
U2Vuc2U7CiAgICAgfQogICAgIGlmIChmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+
aXNTdG9wcGluZygpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtRG9jdW1lbnRMb2FkZXIgaXMgaW4g
dGhlIG1pZGRsZSBvZiBzdG9wcGluZyIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVN
RU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVEb2N1bWVudExvYWRlclN0b3Bw
aW5nS2V5KTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoZnJhbWUtPnBh
Z2UoKSwgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlRG9jdW1lbnRMb2FkZXJTdG9wcGlu
Z0tleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBJc1N0b3BwaW5nOwogICAgIH0K
ICAgICBpZiAoIWZyYW1lLT5kb2N1bWVudCgpLT5jYW5TdXNwZW5kQWN0aXZlRE9NT2JqZWN0cygp
KSB7CiAgICAgICAgIFBDTE9HKCIgICAtVGhlIGRvY3VtZW50IGNhbm5vdCBzdXNwZW5kIGl0cyBh
Y3RpdmUgRE9NIE9iamVjdHMiKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9L
RVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlQ2Fubm90U3VzcGVuZEFjdGl2ZURPTU9i
amVjdHNLZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShmcmFtZS0+
cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVDYW5ub3RTdXNwZW5kQWN0aXZl
RE9NT2JqZWN0c0tleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBDYW5ub3RTdXNw
ZW5kQWN0aXZlRE9NT2JqZWN0czsKICAgICB9CiAgICAgaWYgKCFmcmFtZS0+bG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+Y2FuQ2FjaGVJblBhZ2VDYWNo
ZSgpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtVGhlIERvY3VtZW50TG9hZGVyIHVzZXMgYW4gYXBw
bGljYXRpb24gY2FjaGUiKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVko
RmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlQXBwbGljYXRpb25DYWNoZUtleSk7CisgICAg
ICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKGZyYW1lLT5wYWdlKCksIEZlYXR1cmVD
b3VudGVyUGFnZUNhY2hlRmFpbHVyZUFwcGxpY2F0aW9uQ2FjaGVLZXkpOwogICAgICAgICByZWpl
Y3RSZWFzb25zIHw9IDEgPDwgRG9jdW1lbnRMb2FkZXJVc2VzQXBwbGljYXRpb25DYWNoZTsKICAg
ICB9CiAgICAgaWYgKCFmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuY2FuQ2FjaGVQYWdlKCkpIHsK
ICAgICAgICAgUENMT0coIiAgIC1UaGUgY2xpZW50IHNheXMgdGhpcyBmcmFtZSBjYW5ub3QgYmUg
Y2FjaGVkIik7Ci0gICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVD
b3VudGVyUGFnZUNhY2hlRmFpbHVyZURlbmllZEJ5Q2xpZW50S2V5KTsKKyAgICAgICAgRkVBVFVS
RV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoZnJhbWUtPnBhZ2UoKSwgRmVhdHVyZUNvdW50ZXJQYWdl
Q2FjaGVGYWlsdXJlRGVuaWVkQnlDbGllbnRLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9
IDEgPDwgQ2xpZW50RGVuaWVzQ2FjaGluZzsKICAgICB9CiAKQEAgLTI0Miw0NSArMjQyLDQ1IEBA
IHN0YXRpYyB2b2lkIGxvZ0NhbkNhY2hlUGFnZURlY2lzaW9uKFBhZ2UqIHBhZ2UpCiAjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgIVBMQVRGT1JNKElPUykKICAgICBpZiAoRGV2aWNl
TW90aW9uQ29udHJvbGxlcjo6aXNBY3RpdmVBdChwYWdlKSkgewogICAgICAgICBQQ0xPRygiICAg
LVBhZ2UgaXMgdXNpbmcgRGV2aWNlTW90aW9uIik7Ci0gICAgICAgIEZFQVRVUkVfQ09VTlRFUl9J
TkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZURldmljZU1vdGlvbktl
eSk7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVD
b3VudGVyUGFnZUNhY2hlRmFpbHVyZURldmljZU1vdGlvbktleSk7CiAgICAgICAgIHJlamVjdFJl
YXNvbnMgfD0gMSA8PCBVc2VzRGV2aWNlTW90aW9uOwogICAgIH0KICAgICBpZiAoRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyOjppc0FjdGl2ZUF0KHBhZ2UpKSB7CiAgICAgICAgIFBDTE9HKCIg
ICAtUGFnZSBpcyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOwotICAgICAgICBGRUFUVVJFX0NP
VU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVEZXZpY2VP
cmllbnRhdGlvbktleSk7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBh
Z2UsIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZURldmljZU9yaWVudGF0aW9uS2V5KTsK
ICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IFVzZXNEZXZpY2VPcmllbnRhdGlvbjsKICAg
ICB9CiAjZW5kaWYKICNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKICAgICBpZiAoRGV2aWNl
UHJveGltaXR5Q29udHJvbGxlcjo6aXNBY3RpdmVBdChwYWdlKSkgewogICAgICAgICBQQ0xPRygi
ICAgLVBhZ2UgaXMgdXNpbmcgRGV2aWNlUHJveGltaXR5Iik7Ci0gICAgICAgIEZFQVRVUkVfQ09V
TlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZURldmljZVBy
b3hpbWl0eUtleSk7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2Us
IEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZURldmljZVByb3hpbWl0eUtleSk7CiAgICAg
ICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBVc2VzRGV2aWNlTW90aW9uOwogICAgIH0KICNlbmRp
ZgogICAgIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUgPSBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIo
KS5sb2FkVHlwZSgpOwogICAgIGlmIChsb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWQp
IHsKICAgICAgICAgUENMT0coIiAgIC1Mb2FkIHR5cGUgaXM6IFJlbG9hZCIpOwotICAgICAgICBG
RUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1
cmVSZWxvYWRLZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShwYWdl
LCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVSZWxvYWRLZXkpOwogICAgICAgICByZWpl
Y3RSZWFzb25zIHw9IDEgPDwgSXNSZWxvYWQ7CiAgICAgfQogICAgIGlmIChsb2FkVHlwZSA9PSBG
cmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luKSB7CiAgICAgICAgIFBDTE9HKCIgICAtTG9h
ZCB0eXBlIGlzOiBSZWxvYWQgZnJvbSBvcmlnaW4iKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVS
X0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlUmVsb2FkRnJvbU9y
aWdpbktleSk7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZl
YXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZVJlbG9hZEZyb21PcmlnaW5LZXkpOwogICAgICAg
ICByZWplY3RSZWFzb25zIHw9IDEgPDwgSXNSZWxvYWRGcm9tT3JpZ2luOwogICAgIH0KICAgICBp
ZiAobG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZTo6U2FtZSkgewogICAgICAgICBQQ0xPRygiICAg
LUxvYWQgdHlwZSBpczogU2FtZSIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5U
X0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVTYW1lTG9hZEtleSk7CisgICAgICAg
IEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVDb3VudGVyUGFnZUNh
Y2hlRmFpbHVyZVNhbWVMb2FkS2V5KTsKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IElz
U2FtZUxvYWQ7CiAgICAgfQogICAgIAogICAgIGlmIChyZWplY3RSZWFzb25zKSB7CiAgICAgICAg
IFBDTE9HKCIgUGFnZSBDQU5OT1QgYmUgY2FjaGVkXG4tLS0tLS0tLSIpOwotICAgICAgICBGRUFU
VVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVL
ZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShwYWdlLCBGZWF0dXJl
Q291bnRlclBhZ2VDYWNoZUZhaWx1cmVLZXkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFBDTE9H
KCIgUGFnZSBDQU4gYmUgY2FjaGVkXG4tLS0tLS0tLSIpOwotICAgICAgICBGRUFUVVJFX0NPVU5U
RVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZVN1Y2Nlc3NLZXkpOworICAg
ICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShwYWdlLCBGZWF0dXJlQ291bnRlclBh
Z2VDYWNoZVN1Y2Nlc3NLZXkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5k
ZXggMTQ5ZGQyMjU1YWUxZTkyNmQ2YThmMTQ5MWIxOWU5NWE2OGVlOTQ4Yi4uYzQyODJjMjhkZjhi
NzA1MDA2NzU4NmUwZGI5YzUzZjA3ZDZhOWQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBA
IC03Nyw2ICs3Nyw3IEBAIGphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQgaW5pdGlhbD1mYWxz
ZQogc2NyaXB0TWFya3VwRW5hYmxlZCBpbml0aWFsPXRydWUKIG5lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzIGluaXRpYWw9ZmFsc2UKIGRvbVRpbWVyc1Rocm90dGxpbmdFbmFibGVkIGluaXRpYWw9dHJ1
ZQorZmVhdHVyZUNvdW50ZXJFbmFibGVkIGluaXRpYWw9ZmFsc2UKIHdlYkFyY2hpdmVEZWJ1Z01v
ZGVFbmFibGVkIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVdFQl9BUkNISVZFCiBsb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKIG9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZCBpbml0aWFsPWZhbHNlCkBAIC0yMzcsNCArMjM4LDQgQEAgbG9uZ01v
dXNlUHJlc3NFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAogc2VydmljZUNvbnRyb2xzRW5hYmxlZCBp
bml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1TRVJWSUNFX0NPTlRST0xTCiAKLWlnbm9yZVZpZXdw
b3J0U2NhbGluZ0NvbnN0cmFpbnRzIGluaXRpYWw9ZmFsc2UKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCitpZ25vcmVWaWV3cG9ydFNjYWxpbmdDb25zdHJhaW50cyBpbml0aWFsPWZhbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GZWF0dXJlQ291bnRlcktleXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZlYXR1cmVDb3VudGVyS2V5cy5oCmluZGV4IDFiYWUz
ZTlmOGU4MjAzNGRjYjhkNThkZDljYTYxMjFiODE3ZTQzNWIuLjJjZmYzODJkNGNkNTM4MmVjMTFm
NTZkYjc2ZmI1Mzg2N2FjNmQ3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0ZlYXR1cmVDb3VudGVyS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZlYXR1
cmVDb3VudGVyS2V5cy5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEZlYXR1cmVDb3VudGVy
S2V5c19oCiAjZGVmaW5lIEZlYXR1cmVDb3VudGVyS2V5c19oCiAKLSNpbmNsdWRlIDx3dGYvRmVh
dHVyZUNvdW50ZXIuaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBQYWdlIGNhY2hlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmVhdHVyZUNvdW50ZXJMb2dnaW5n
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZlYXR1cmVDb3VudGVyTG9nZ2luZy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjFmMmUzYzFlYTU5MDIzN2Y1NWU0ZTc2NGFlNzQ0ODY5Y2MxMWI3OAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZlYXR1cmVDb3VudGVyTG9n
Z2luZy5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkZlYXR1cmVDb3VudGVyTG9nZ2luZy5oIgorCisjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL0ZlYXR1cmVDb3VudGVyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIEZlYXR1cmVDb3VudGVyTG9nZ2luZyB7CisK
K3N0YXRpYyBib29sIHNob3VsZFVzZUZlYXR1cmVDb3VudGVyKFBhZ2UqIHBhZ2UpCit7CisgICAg
aWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBMb2cgb25seSBpZiB0
aGUgc2V0dGluZyBpcyBlbmFibGVkLgorICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKS5mZWF0dXJl
Q291bnRlckVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRG8gbm90
IGxvZyBpZiB0aGlzIGlzIGEgcHJpdmF0ZSBzZXNzaW9uLgorICAgIGlmIChwYWdlLT51c2VzRXBo
ZW1lcmFsU2Vzc2lvbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwordm9pZCBpbmNyZW1lbnRGZWF0dXJlQ291bnRlcktleShQYWdlKiBwYWdlLCBjb25z
dCBjaGFyKiBjb25zdCBrZXkpCit7CisgICAgaWYgKCFzaG91bGRVc2VGZWF0dXJlQ291bnRlcihw
YWdlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV1RGOjppbmNyZW1lbnRGZWF0dXJlQ291bnRl
cktleShrZXkpOworfQorCit2b2lkIHNldEZlYXR1cmVDb3VudGVyS2V5KFBhZ2UqIHBhZ2UsIGNv
bnN0IGNoYXIqIGNvbnN0IGtleSwgaW50NjRfdCB2YWx1ZSkKK3sKKyAgICBpZiAoIXNob3VsZFVz
ZUZlYXR1cmVDb3VudGVyKHBhZ2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBXVEY6OnNldEZl
YXR1cmVDb3VudGVyS2V5KGtleSwgdmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBGZWF0dXJl
Q291bnRlckxvZ2dpbmcKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmVhdHVyZUNvdW50ZXJMb2dnaW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GZWF0dXJlQ291bnRlckxvZ2dpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OWQ0MzUy
YTU4ZTUwNjJhMTcyNjM3YmY4MjEzZGZhMTRiYTFmNGZkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmVhdHVyZUNvdW50ZXJMb2dnaW5nLmgKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBGZWF0dXJlQ291bnRlckxvZ2dpbmdfaAorI2RlZmluZSBGZWF0
dXJlQ291bnRlckxvZ2dpbmdfaAorCisjaW5jbHVkZSAiRmVhdHVyZUNvdW50ZXJLZXlzLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFnZTsKKworbmFtZXNwYWNlIEZlYXR1cmVD
b3VudGVyTG9nZ2luZyB7CisKK3ZvaWQgaW5jcmVtZW50RmVhdHVyZUNvdW50ZXJLZXkoUGFnZSos
IGNvbnN0IGNoYXIqIGNvbnN0IGtleSk7Cit2b2lkIHNldEZlYXR1cmVDb3VudGVyS2V5KFBhZ2Uq
LCBjb25zdCBjaGFyKiBjb25zdCBrZXksIGludDY0X3QgdmFsdWUpOworCit9IC8vIG5hbWVzcGFj
ZSBGZWF0dXJlQ291bnRlckxvZ2dpbmcKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZGVm
aW5lIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIGtleSkgICBXZWJDb3JlOjpG
ZWF0dXJlQ291bnRlckxvZ2dpbmc6OmluY3JlbWVudEZlYXR1cmVDb3VudGVyS2V5KHBhZ2UsIGtl
eSkKKyNkZWZpbmUgRkVBVFVSRV9DT1VOVEVSX1NFVF9LRVkocGFnZSwga2V5LCB2YWx1ZSkgIFdl
YkNvcmU6OkZlYXR1cmVDb3VudGVyTG9nZ2luZzo6c2V0RmVhdHVyZUNvdW50ZXJLZXkocGFnZSwg
a2V5LCB2YWx1ZSkKKworI2VuZGlmIC8vIEZlYXR1cmVDb3VudGVyTG9nZ2luZ19oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCBi
MWRjNzU0NTkwYWNhZTU2YjgyYzUyZGNmZDVkZjU2ZGQyMTJjYTAzLi5mNjk4Njg0NjJjZDMzOTQ5
MjY3ZDJmOTgxOTFhY2I1MDVjNzk4MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTEyMSw2ICsxMjEsNyBAQAogICAgIG1h
Y3JvKFRhYnNUb0xpbmtzLCB0YWJzVG9MaW5rcywgQm9vbCwgYm9vbCwgREVGQVVMVF9XRUJLSVRf
VEFCU1RPTElOS1NfRU5BQkxFRCkgXAogICAgIG1hY3JvKEROU1ByZWZldGNoaW5nRW5hYmxlZCwg
ZG5zUHJlZmV0Y2hpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKERP
TVRpbWVyc1Rocm90dGxpbmdFbmFibGVkLCBkb21UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZCwgQm9v
bCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKEZlYXR1cmVDb3VudGVyRW5hYmxlZCwgZmVhdHVy
ZUNvdW50ZXJFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKFdlYkFyY2hp
dmVEZWJ1Z01vZGVFbmFibGVkLCB3ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZCwgQm9vbCwgYm9v
bCwgZmFsc2UpIFwKICAgICBtYWNybyhMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBs
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAg
IG1hY3JvKFVzZXNQYWdlQ2FjaGUsIHVzZXNQYWdlQ2FjaGUsIEJvb2wsIGJvb2wsIHRydWUpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApp
bmRleCBhZmIzZjYzMzFhNzkyNmExZmFkZDA3Njk4YjU5MDVjZWJhOTMxY2YzLi5iN2VjZGVlZThm
MmEyYmU5ZmM0MDFjZTkzZGIxNDU1ZDJmNDdjOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC01ODksNiArNTg5LDE2IEBAIGJv
b2wgV0tQcmVmZXJlbmNlc0dldERPTVRpbWVyc1Rocm90dGxpbmdFbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYpCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PmRvbVRpbWVyc1Rocm90dGxpbmdFbmFibGVkKCk7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dEZlYXR1cmVDb3VudGVyRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBi
b29sIGVuYWJsZWQpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RmVhdHVyZUNv
dW50ZXJFbmFibGVkKGVuYWJsZWQpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRGZWF0dXJl
Q291bnRlckVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICBy
ZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+ZmVhdHVyZUNvdW50ZXJFbmFibGVkKCk7Cit9
CisKIHZvaWQgV0tQcmVmZXJlbmNlc1NldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKIHsKICAgICB0b0ltcGwo
cHJlZmVyZW5jZXNSZWYpLT5zZXRXZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZChlbmFibGVkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
UmVmUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXNSZWZQcml2YXRlLmgKaW5kZXggMTQ3YzIwMmZjYWNiMDY4OTA5NTA3N2MwYjMyZDA1OTJjMDM1
MjZmMi4uZTFlZDkyNWE5M2FkNjFmZTNiNjRkNWQ0YjcwMmM5MjlmNmRiNzBmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQ
cml2YXRlLmgKQEAgLTEyMSw2ICsxMjEsMTAgQEAgV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldERPTVRpbWVyc1Rocm90dGxpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmUKIFdL
X0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRET01UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzKTsKIAogLy8gRGVmYXVsdHMgdG8gZmFsc2UuCitX
S19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0RmVhdHVyZUNvdW50ZXJFbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgZW5hYmxlZCk7CitXS19FWFBPUlQgYm9vbCBX
S1ByZWZlcmVuY2VzR2V0RmVhdHVyZUNvdW50ZXJFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXMpOworCisvLyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRXZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzLCBib29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dl
dFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVy
ZW5jZXMubW0KaW5kZXggMDdkM2M4NDM3YmVlNjBmYWUxMGRkM2ZiMWYzNzczODEyMTA4MjM2Zi4u
M2YyZWFlZmY5YjU4ZGE3NTJmOTI5YzBlYmJjMDIyOGU4ZTQ3NjNmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtMTEz
LDYgKzExMywxNiBAQAogICAgIF9wcmVmZXJlbmNlcy0+c2V0VGVsZXBob25lTnVtYmVyUGFyc2lu
Z0VuYWJsZWQodGVsZXBob25lTnVtYmVyRGV0ZWN0aW9uSXNFbmFibGVkKTsKIH0KIAorLSAoQk9P
TClfZmVhdHVyZUNvdW50ZXJFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+ZmVh
dHVyZUNvdW50ZXJFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpX3NldEZlYXR1cmVDb3VudGVyRW5h
YmxlZDooQk9PTClmZWF0dXJlQ291bnRlckVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNl
dEZlYXR1cmVDb3VudGVyRW5hYmxlZChmZWF0dXJlQ291bnRlckVuYWJsZWQpOworfQorCiBzdGF0
aWMgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSB0b1N0b3Jh
Z2VCbG9ja2luZ1BvbGljeShfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KQogewogICAg
IHN3aXRjaCAocG9saWN5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggMmEwMWMyMzAwZDE5ODkw
YzhlNDk0YTM1MDQ1OTVlYjJiMjRhZDdmZS4uZjUxYmUxMDc4NzRjMTEyNzFjYWViOGVmMTZjN2Ni
OWM5ZGMzODA3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNDYsNiArNDYsNyBAQCB0eXBlZGVm
IE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLRGVidWdPdmVybGF5UmVnaW9ucykgewogCiAvLyBG
SVhNRTogVGhpcyBwcm9wZXJ0eSBzaG91bGQgbm90IGhhdmUgdGhlIHZlcmIgImlzIiBpbiBpdC4K
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRlbGVwaG9uZU51bWJlckRldGVjdGlv
bklzRW5hYmxlZDopIEJPT0wgX3RlbGVwaG9uZU51bWJlckRldGVjdGlvbklzRW5hYmxlZDsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZlYXR1cmVDb3VudGVyRW5hYmxlZDopIEJP
T0wgX2ZlYXR1cmVDb3VudGVyRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdG9yYWdlQmxvY2tpbmdQ
b2xpY3k6KSBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsK
IAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlz
aWJsZTopIEJPT0wgX2NvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOGVkNWM5NDdmZmU5NWRlNDU1
NzExMjk3NGQ5YjRiMzI4ZWVjMWRjYS4uOTkwNzhlMWYyNjZkZDA4YTc0ZjIyZGMzZTRhZjE3MjIx
ZGZmNjhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtMjY5OCw2ICsyNjk4LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNl
cyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRGb3Jj
ZUZUUERpcmVjdG9yeUxpc3RpbmdzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6Zm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5nc0tleSgpKSk7CiAgICAgc2V0dGluZ3Mu
c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6ZG5zUHJlZmV0Y2hpbmdFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5z
ZXRET01UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OmRvbVRpbWVyc1Rocm90dGxpbmdFbmFibGVkS2V5KCkpKTsKKyAgICBz
ZXR0aW5ncy5zZXRGZWF0dXJlQ291bnRlckVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjpmZWF0dXJlQ291bnRlckVuYWJsZWRLZXkoKSkpOwogI2lmIEVO
QUJMRShXRUJfQVJDSElWRSkKICAgICBzZXR0aW5ncy5zZXRXZWJBcmNoaXZlRGVidWdNb2RlRW5h
YmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OndlYkFyY2hp
dmVEZWJ1Z01vZGVFbmFibGVkS2V5KCkpKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243447</attachid>
            <date>2014-12-17 11:52:39 -0800</date>
            <delta_ts>2014-12-17 13:03:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139688-20141217115330.patch</filename>
            <type>text/plain</type>
            <size>54778</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3NDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
YTNlNGRjNjFmOGYzNDg1NmQ1NTE0YzMyYWY4MGZmNDQ5NGIzZWRjLi43ZmVhYzhjM2E1OGI1NTM0
NTU1YWQxNWMwMjQzOTA3YzgxMjRhMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNC0xMi0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1NdIE1ha2UgaXQgcG9zc2libGUgdG8gdG9nZ2xlIEZlYXR1cmVDb3VudGVy
IHN1cHBvcnQgYXQgcnVudGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM5Njg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTI2NjI1ND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIGxpbmtp
bmcgYWdhaW5zdCBBcHBTdXBwb3J0IGZyYW1ld29yayBhcyB0aGUgZnVuY3Rpb25hbGl0eSBpcyBu
bworICAgICAgICBsb25nZXIgaW4gV1RGIChpdCB3YXMgbW92ZWQgdG8gV2ViQ29yZSkuCisKKyAg
ICAgICAgKiBDb25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZzoKKwogMjAxNC0x
Mi0xNiAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBp
T1MgYnVpbGRlcnMgZm9yIDguMApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBiZTE5M2Y0ODg1YmFjYzQ5OTM4OWNlMmY0ZjljMGQ4
ZjJkNzNjNmMwLi41NGVjYTA4YTQ5OWZlYzg1MjA2ZTQ1YTI3ODhmZmRiM2U4MTFhYTk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDE0LTEyLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgW2lPU10gTWFrZSBpdCBwb3NzaWJsZSB0byB0b2dnbGUgRmVhdHVyZUNv
dW50ZXIgc3VwcG9ydCBhdCBydW50aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzk2ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE5MjY2MjU0
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSBGZWF0dXJlQ291bnRlciBBUEkgZnJvbSBXVEYgYW5kIG1vdmUgaXQgdG8gV2ViQ29yZS9wbGF0
Zm9ybQorICAgICAgICBpbnN0ZWFkIHNvIHRoYXQgaXQgY2FuIGxvZyBjb25kaXRpb25hbGx5IGJh
c2VkIG9uIGEgV2ViQ29yZSBzZXR0aW5nLgorCisgICAgICAgICogV1RGLnZjeHByb2ovV1RGLnZj
eHByb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogd3RmL0NNYWtlTGlzdHMudHh0OgorCiAyMDE0LTEyLTE3ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBSZWY6OmNvcHlSZWYgY29uc3QgYW5k
IHJlZi1xdWFsaWZpZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlZDk3MmEzZGQ5OTdlMjhiYzUzOGI4ZDRhODYw
YTFmZmE1MDZkZDM1Li4wNzE4MDVkNGE2ZTlhOTJmOTIxZGU2NjQ2YTAwNmM0Zjk3ZGQ2MzcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTQtMTItMTcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYWtlIGl0IHBvc3NpYmxlIHRvIHRvZ2ds
ZSBGZWF0dXJlQ291bnRlciBzdXBwb3J0IGF0IHJ1bnRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTY4OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTkyNjYyNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB0b2dnbGUgRmVhdHVyZUNvdW50ZXIgc3VwcG9ydCBh
dCBydW50aW1lIGJ5IGFkZGluZworICAgICAgICBhIHNldHRpbmcgKGRpc2FibGVkIGJ5IGRlZmF1
bHQpIGFuZCBtb3ZpbmcgdGhlIEFQSSB0byBhIG5ldworICAgICAgICBGZWF0dXJlQ291bnRlciBj
bGFzcyB1bmRlciBXZWJDb3JlL3BsYXR0b3JtIHdoaWNoIG9ubHkgbG9ncyBpZiB0aGUKKyAgICAg
ICAgc2V0dGluZyBpcyBlbmFibGVkLiBGb3IgcHJpdmFjeSByZWFzb25zLCBGZWF0dXJlQ291bnRl
ciBsb2dnaW5nIGlzIGFsc28KKyAgICAgICAgZGlzYWJsZWQgZm9yIHByaXZhdGUgLyBlcGhlbWVy
YWwgc2Vzc2lvbnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2Uu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9X
ZWJDb3JlLnhjY29uZmlnOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBo
aXN0b3J5L1BhZ2VDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2dDYW5DYWNoZUZyYW1l
RGVjaXNpb24pOgorICAgICAgICAoV2ViQ29yZTo6bG9nQ2FuQ2FjaGVQYWdlRGVjaXNpb24pOgor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46CisgICAgICAgICogcGxhdGZvcm0vRmVhdHVyZUNv
dW50ZXIuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvRmVhdHVyZUNvdW50ZXIuY3Bw
LgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZUNvdW50ZXI6OnNob3VsZFVzZUZvclBhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZUNvdW50ZXI6OmluY3JlbWVudEtleSk6CisgICAgICAg
IChXZWJDb3JlOjpGZWF0dXJlQ291bnRlcjo6c2V0S2V5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9G
ZWF0dXJlQ291bnRlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dURi93dGYvRmVhdHVyZUNvdW50
ZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9GZWF0dXJlQ291bnRlcktleXMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvRmVhdHVyZUNvdW50ZXIubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RG
L3d0Zi9pb3MvRmVhdHVyZUNvdW50ZXIubW0uCisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlQ291
bnRlcjo6aW5jcmVtZW50S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVDb3VudGVyOjpz
ZXRLZXkpOgorCiAyMDE0LTEyLTE2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkcmVzc2luZyBtb3JlIHBvc3QtcmV2aWV3IGNvbW1lbnRzIGlu
IHIxNzcwMzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyOGQ3YTgwNWY0OWU4MWNmNDljODg0OGU3YWQ2NDVmZjE1
MjdhYThmLi5jYWUxNjU5NmMxMjlhODY3NjYyMWNjNThhYzFkNzZlN2VkOTE1ZDE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTQtMTItMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYWtlIGl0IHBvc3NpYmxlIHRvIHRvZ2dsZSBGZWF0
dXJlQ291bnRlciBzdXBwb3J0IGF0IHJ1bnRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTY4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTky
NjYyNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIHByaXZhdGUgc2V0dGluZ3MgQVBJIHRvIHRvZ2dsZSBGZWF0dXJlQ291bnRlciBzdXBwb3J0
IG9uIFNhZmFyaSBhbmQKKyAgICAgICAgTW9iaWxlU2FmYXJpLgorCisgICAgICAgICogU2hhcmVk
L1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0RmVhdHVyZUNvdW50
ZXJFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRGZWF0dXJlQ291bnRlckVuYWJs
ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAg
ICAgKC1bV0tQcmVmZXJlbmNlcyBfZmVhdHVyZUNvdW50ZXJFbmFibGVkXSk6CisgICAgICAgICgt
W1dLUHJlZmVyZW5jZXMgX3NldEZlYXR1cmVDb3VudGVyRW5hYmxlZDpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1
cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTQtMTItMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeCBHVEsrIGJ1aWxk
IGFmdGVyIHIxNzc0MjcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmln
dXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcKaW5kZXggMDM3YmQ0OThlODU4
NDRhZDJjNTUyODM2OTM4MjZiYjU0YTVmNTkzNC4uMzEwMDlhMWNjMjRkMzljYjk5M2I4ZGNlZTM4
ZDI2ZTU5MjAyZTc0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3Vy
YXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZwpAQCAtMzcsNyArMzcsNyBA
QCBKU1ZBTFVFX01PREVMX3g4Nl82NCA9IDY0OwogT1RIRVJfTERGTEFHU19ISURFX1NZTUJPTFMg
PSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
IC1XbCxfX1pUU1N0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0
OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pkbFB2U18gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19abndtUHYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
TktTdDNfXzE4ZnVuY3Rpb25JRnZ2RUVjbEV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
Wk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVDMUVPUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVds
LF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVDMkVPUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMx
XzEwUmVnaXN0ZXJJREVFRWNsRVMzX1M1XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pO
U3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVnaXN0
ZXJJREVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlv
bklGdlJOM0pTQzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TMV8xMFJlZ2lzdGVySURFRUVEMkV2IC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVEMUV2IC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVEMkV2IC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxF
IC1XbCwtYWxsX2xvYWQ7CiAKIE9USEVSX0xERkxBR1NfQkFTRSA9IC1sb2JqYyAtV2wsLVksMyAk
KE9USEVSX0xERkxBR1NfSElERV9TWU1CT0xTKTsKLU9USEVSX0xERkxBR1Nbc2RrPWlwaG9uZSpd
ID0gJChpbmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIEFwcFN1cHBv
cnQ7CitPVEhFUl9MREZMQUdTW3Nkaz1pcGhvbmUqXSA9ICQoaW5oZXJpdGVkKSAkKE9USEVSX0xE
RkxBR1NfQkFTRSk7CiBPVEhFUl9MREZMQUdTW3Nkaz1tYWNvc3gqXSA9ICQoaW5oZXJpdGVkKSAk
KE9USEVSX0xERkxBR1NfQkFTRSkgLXN1Yl9saWJyYXJ5IGxpYm9iamMgLWZyYW1ld29yayBDb3Jl
U2VydmljZXM7CiAKIFNFQ1RPUkRFUl9GTEFHU1tzZGs9aXBob25lb3MqXSA9ICQoU0VDVE9SREVS
X0ZMQUdTX2lvc18kKENPTkZJR1VSQVRJT04pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RG
LnZjeHByb2ovV1RGLnZjeHByb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9q
CmluZGV4IDJhY2ZjM2U0MWZkNWM5ODFmOWM5NjFlMzUwNzUwNGZhODMyNGQ3ZDYuLjUyYWZhYzhk
MzIzMmMzMzBiZWJlOWJmOGM1OWIwNDExMTQ1M2Q5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
V1RGLnZjeHByb2ovV1RGLnZjeHByb2oKKysrIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYu
dmN4cHJvagpAQCAtNzIsNyArNzIsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3Rm
XGR0b2Fcc3RydG9kLmNjIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXEZhc3RC
aXRWZWN0b3IuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXEZhc3RNYWxs
b2MuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXEZlYXR1cmVDb3VudGVy
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxGaWxlUHJpbnRTdHJlYW0u
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXEZ1bmN0aW9uRGlzcGF0Y2hl
ci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcZ29iamVjdFxHbGliVXRp
bGl0aWVzLmNwcCI+CkBAIC0xOTgsNyArMTk3LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHd0ZlxkdG9hXHV0aWxzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZc
RmFzdEJpdFZlY3Rvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXEZhc3RN
YWxsb2MuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxGZWF0dXJlQ291bnRl
ci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXEZlYXR1cmVEZWZpbmVzLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcRmlsZVByaW50U3RyZWFtLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcRmxpcEJ5dGVzLmgiIC8+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwOThkMWQyZGU3NWFiZTgzYTgx
Y2RjYTdmOTJkYzRiZjE5ODY5MzA3Li5lYTdiMzIzM2ZiZGVjY2QzOWYwNjc1M2Q1OTYzYzAxNWQy
NjFiMGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcz
LDkgKzczLDYgQEAKIAkJMkNERUQwRUYxODExNUMzODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBFRTE4
MTE1QzM4MDA0REJBNzAgLyogUnVuTG9vcENGLmNwcCAqLzsgfTsKIAkJMkNERUQwRjMxODExNUM4
NTAwNERCQTcwIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkNERUQwRjExODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuY3BwICov
OyB9OwogCQkyQ0RFRDBGNDE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNERUQwRjIxODExNUM4NTAwNERC
QTcwIC8qIFJ1bkxvb3AuaCAqLzsgfTsKLQkJNDYzMTExODQxQTNGNzI5QTAwRTkyNUEzIC8qIEZl
YXR1cmVDb3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjMxMTE4MzFBM0Y3MjlBMDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIuaCAqLzsgfTsK
LQkJNDYzMTExODYxQTNGNzJCODAwRTkyNUEzIC8qIEZlYXR1cmVDb3VudGVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzMTExODUxQTNGNzJCODAw
RTkyNUEzIC8qIEZlYXR1cmVDb3VudGVyLm1tICovOyB9OwotCQk0NjMxMTE4ODFBM0Y4OTkxMDBF
OTI1QTMgLyogRmVhdHVyZUNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYzMTExODcxQTNGODk5MTAwRTkyNUEzIC8qIEZlYXR1cmVDb3Vu
dGVyLmNwcCAqLzsgfTsKIAkJN0NCQkEwNzQxOUJCN0ZEQzAwQkJGMDI1IC8qIE9TT2JqZWN0UHRy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0JCQTA3
MzE5QkI3RkRDMDBCQkYwMjUgLyogT1NPYmplY3RQdHIuaCAqLzsgfTsKIAkJN0NERDdGRjgxODZE
MjkxRTAwNzQzM0NEIC8qIEl0ZXJhdG9yQWRhcHRvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDREQ3RkY3MTg2RDI5MUUwMDc0MzNDRCAvKiBJdGVy
YXRvckFkYXB0b3JzLmggKi87IH07CiAJCTdDREQ3RkZBMTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVy
YXRvclJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Q0REN0ZGOTE4NkQyQTU0MDA3NDMzQ0QgLyogSXRlcmF0b3JSYW5nZS5oICovOyB9OwpAQCAt
MzY0LDkgKzM2MSw2IEBACiAJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0Yu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9vcENGLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkNERUQwRjExODExNUM4NTAwNERCQTcwIC8q
IFJ1bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9v
cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDREVEMEYyMTgxMTVDODUwMDRE
QkE3MCAvKiBSdW5Mb29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bkxv
b3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDYzMTExODMxQTNGNzI5QTAwRTky
NUEzIC8qIEZlYXR1cmVDb3VudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZlYXR1cmVDb3VudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2MzExMTg1
MUEzRjcyQjgwMEU5MjVBMyAvKiBGZWF0dXJlQ291bnRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZlYXR1cmVDb3VudGVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk0NjMxMTE4NzFBM0Y4OTkxMDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmVhdHVyZUNvdW50ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDI0N0I2MjE0Njg5Qjg2MDBFNzhC
NzYgLyogbGliV1RGLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYldURi5hOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1RDI0N0I2RTE0Njg5QzQ3MDBF
NzhCNzYgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVi
dWdSZWxlYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IERlYnVnUmVsZWFzZS54Y2NvbmZpZzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYyMiw3ICs2MTYsNiBAQAogCQkxRkE0N0M4
NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKLQkJCQk0NjMxMTE4NTFBM0Y3MkI4MDBFOTI1QTMgLyogRmVhdHVyZUNvdW50
ZXIubW0gKi8sCiAJCQkJMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQu
Y3BwICovLAogCQkJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmgg
Ki8sCiAJCQkpOwpAQCAtNzYxLDggKzc1NCw2IEBACiAJCQkJMEZEODFBQzQxNTRGQjIyRTAwOTgz
RTcyIC8qIEZhc3RCaXRWZWN0b3IuaCAqLywKIAkJCQlBOEE0NzJBMTE1MUE4MjVBMDA0MTIzRkYg
LyogRmFzdE1hbGxvYy5jcHAgKi8sCiAJCQkJQThBNDcyQTIxNTFBODI1QTAwNDEyM0ZGIC8qIEZh
c3RNYWxsb2MuaCAqLywKLQkJCQk0NjMxMTE4NzFBM0Y4OTkxMDBFOTI1QTMgLyogRmVhdHVyZUNv
dW50ZXIuY3BwICovLAotCQkJCTQ2MzExMTgzMUEzRjcyOUEwMEU5MjVBMyAvKiBGZWF0dXJlQ291
bnRlci5oICovLAogCQkJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5l
cy5oICovLAogCQkJCTBGOUQzMzVCMTY1REJBNzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRTdHJlYW0u
Y3BwICovLAogCQkJCTBGOUQzMzVDMTY1REJBNzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRTdHJlYW0u
aCAqLywKQEAgLTExODcsNyArMTE3OCw2IEBACiAJCQkJMUFGREU2NDgxOTUyMDFDMzAwQzQ4RkZB
IC8qIFR5cGVDYXN0c0NGLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQyMzE1MUE4MjVCMDA0
MTIzRkYgLyogU2ltcGxlU3RhdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDI0MTUxQTgy
NUIwMDQxMjNGRiAvKiBTaW5nbHlMaW5rZWRMaXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0NjMx
MTE4NDFBM0Y3MjlBMDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3NDg3NDUzMTdBMEJEQUUwMEZBMDRDQiAvKiBTaXhDaGFyYWN0ZXJIYXNoLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOEE0NzQyNjE1MUE4MjVCMDA0MTIzRkYgLyogU3BlY3RydW0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4QTQ3NDI4MTUxQTgyNUIwMDQxMjNGRiAvKiBTdGFja0JvdW5kcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xMzU1LDcgKzEzNDUsNiBAQAogCQkJCTg2RjQ2RjYwMUEyODQw
RUUwMENDQkYyMiAvKiBSZWZDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlF
MTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3
M0EwMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRlTWF0aC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0
NjMxMTE4NjFBM0Y3MkI4MDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIubW0gaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNBMjE1MUE4MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBOEE0NzNBRTE1MUE4MjVCMDA0MTIzRkYgLyogZGl5LWZwLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQjAxNTFBODI1QjAwNDEyM0ZGIC8qIGRvdWJsZS1jb252
ZXJzaW9uLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xMzc2LDcgKzEzNjUsNiBAQAogCQkJCUNENTQ5
N0FDMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QThBNDczRUMxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThBNDczRjQxNTFBODI1QjAwNDEyM0ZGIC8qIE51bWJlck9mQ29yZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDYzMTExODgxQTNGODk5MTAwRTkyNUEzIC8qIEZlYXR1cmVDb3Vu
dGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y3MTUxQTgyNUIwMDQxMjNGRiAvKiBP
U0FsbG9jYXRvclBvc2l4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5OTNFMTlENzk1OEQw
MEMyMzkwQiAvKiBTdHJpbmdWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y5MTUx
QTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQKaW5kZXggYTk3ZjM4YTQxN2Y3MGRlYWM5YTc0YzYxZGM4YmMzNDhlMjA0NWNk
Ny4uYjllNjY5MTZkZjBhMmI1YWUzZThkOTgxNWRlM2MwYTlmODcxNDJkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQKQEAgLTI0LDcgKzI0LDYgQEAgc2V0KFdURl9IRUFERVJTCiAgICAgRGlzYWxsb3dD
VHlwZS5oCiAgICAgRG91Ymx5TGlua2VkTGlzdC5oCiAgICAgRmFzdE1hbGxvYy5oCi0gICAgRmVh
dHVyZUNvdW50ZXIuaAogICAgIEZlYXR1cmVEZWZpbmVzLmgKICAgICBGaWxlUHJpbnRTdHJlYW0u
aAogICAgIEZsaXBCeXRlcy5oCkBAIC0xNjAsNyArMTU5LDYgQEAgc2V0KFdURl9TT1VSQ0VTCiAg
ICAgRGVjaW1hbE51bWJlci5jcHAKICAgICBGYXN0Qml0VmVjdG9yLmNwcAogICAgIEZhc3RNYWxs
b2MuY3BwCi0gICAgRmVhdHVyZUNvdW50ZXIuY3BwCiAgICAgRmlsZVByaW50U3RyZWFtLmNwcAog
ICAgIEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAKICAgICBHcmVnb3JpYW5EYXRlVGltZS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVDb3VudGVyLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL0ZlYXR1cmVDb3VudGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTY2
MGRiMzEyNDQ0ZmJmNjg0YjNlMTNhZTE4NTU1NWNkNGY3ZmNiMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlQ291bnRl
ci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiRmVhdHVyZUNvdW50ZXIuaCIKLQotbmFtZXNwYWNlIFdURiB7Ci0K
LSNpZiAhUExBVEZPUk0oSU9TKSB8fCAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQotdm9pZCBp
bmNyZW1lbnRGZWF0dXJlQ291bnRlcktleShjb25zdCBjaGFyKiBjb25zdCBrZXkpCi17Ci0gICAg
VU5VU0VEX1BBUkFNKGtleSk7Ci19Ci0KLXZvaWQgc2V0RmVhdHVyZUNvdW50ZXJLZXkoY29uc3Qg
Y2hhciogY29uc3Qga2V5LCBpbnQ2NF90IHZhbHVlKQotewotICAgIFVOVVNFRF9QQVJBTShrZXkp
OwotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci19Ci0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVDb3VudGVyLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9GZWF0dXJlQ291bnRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwYWE1ZWViNjI3ODAwYzIwNDM0YjgyNzY5YTBmYTBhZTMwMDdhMzZhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVD
b3VudGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEZl
YXR1cmVDb3VudGVyX2gKLSNkZWZpbmUgRmVhdHVyZUNvdW50ZXJfaAotCi1uYW1lc3BhY2UgV1RG
IHsKLQotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5jcmVtZW50RmVhdHVyZUNvdW50ZXJLZXko
Y29uc3QgY2hhciogY29uc3Qga2V5KTsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNldEZlYXR1
cmVDb3VudGVyS2V5KGNvbnN0IGNoYXIqIGNvbnN0IGtleSwgaW50NjRfdCB2YWx1ZSk7Ci0KLSNk
ZWZpbmUgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoa2V5KSAgIFdURjo6aW5jcmVtZW50
RmVhdHVyZUNvdW50ZXJLZXkoa2V5KQotI2RlZmluZSBGRUFUVVJFX0NPVU5URVJfU0VUX0tFWShr
ZXksIHZhbHVlKSAgV1RGOjpzZXRGZWF0dXJlQ291bnRlcktleShrZXksIHZhbHVlKQotCi19IC8v
IG5hbWVzcGFjZSBXVEYKLQotI2VuZGlmIC8vIEZlYXR1cmVDb3VudGVyX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL2lvcy9GZWF0dXJlQ291bnRlci5tbSBiL1NvdXJjZS9XVEYvd3RmL2lv
cy9GZWF0dXJlQ291bnRlci5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzFmYWNj
NGY5ZWVmZjQwZjA3MDFkZjZhYTg1ZDY2NzY1NTY2NmJmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9pb3MvRmVhdHVyZUNvdW50
ZXIubW0KKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25m
aWcuaCIKLSNpbXBvcnQgIkZlYXR1cmVDb3VudGVyLmgiCi0KLSNpZiBQTEFURk9STShJT1MpICYm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxBcHBTdXBwb3J0L0NQQWdncmVnYXRl
RGljdGlvbmFyeS5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotdm9pZCBpbmNyZW1lbnRGZWF0dXJl
Q291bnRlcktleShjb25zdCBjaGFyKiBjb25zdCBrZXkpCi17Ci0gICAgTlNTdHJpbmcgKm5zS2V5
ID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhDaGFyYWN0ZXJzTm9Db3B5OnJlaW50ZXJwcmV0
X2Nhc3Q8dW5pY2hhcio+KGNvbnN0X2Nhc3Q8Y2hhcio+KGtleSkpIGxlbmd0aDpzdHJsZW4oa2V5
KSBmcmVlV2hlbkRvbmU6Tk9dOwotICAgIFtbQ1BBZ2dyZWdhdGVEaWN0aW9uYXJ5IHNoYXJlZEFn
Z3JlZ2F0ZURpY3Rpb25hcnldIGluY3JlbWVudEtleTpuc0tleV07Ci19Ci0KLXZvaWQgc2V0RmVh
dHVyZUNvdW50ZXJLZXkoY29uc3QgY2hhciogY29uc3Qga2V5LCBpbnQ2NF90IHZhbHVlKQotewot
ICAgIE5TU3RyaW5nICpuc0tleSA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoQ2hhcmFjdGVy
c05vQ29weTpyZWludGVycHJldF9jYXN0PHVuaWNoYXIqPihjb25zdF9jYXN0PGNoYXIqPihrZXkp
KSBsZW5ndGg6c3RybGVuKGtleSkgZnJlZVdoZW5Eb25lOk5PXTsKLSAgICBbW0NQQWdncmVnYXRl
RGljdGlvbmFyeSBzaGFyZWRBZ2dyZWdhdGVEaWN0aW9uYXJ5XSBzZXRWYWx1ZTp2YWx1ZSBmb3JT
Y2FsYXJLZXk6bnNLZXldOwotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggNzJlZGVmNjEyYTAzMWJkYTkyN2FjZmViOGUzM2U3Yjg3YTUxYTg3MC4uZDRjNWZlMzMy
MTQxNjU5ODgzMTQyZTRjNWE2OWIyZGQwNTlkZWY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE5NzgsNiArMTk3OCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9EaXNw
bGF5U2xlZXBEaXNhYmxlci5jcHAKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAgICBwbGF0
Zm9ybS9EcmFnSW1hZ2UuY3BwCisgICAgcGxhdGZvcm0vRmVhdHVyZUNvdW50ZXIuY3BwCiAgICAg
cGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCiAgICAgcGxhdGZvcm0vRmlsZVN0cmVhbS5jcHAKICAg
ICBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggNzdmOGQ4OTA5MTgyMzg4ODJkZTgxMTE2Mjk3ODA3
MzIxNjJhNTE3OS4uNWQ3NGI0OWUxMzY5OGZkNzUyNWM2YTg5ZDJmNTk2MjZhMWE4YTE5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCkBAIC03
MSw4ICs3MSw4IEBAIElOU1RBTExIRFJTX1NDUklQVF9QSEFTRSA9IFlFUzsKIFBST0RVQ1RfTkFN
RSA9IFdlYkNvcmU7CiBPVEhFUl9MREZMQUdTX0JBU0UgPSAtbHNxbGl0ZTMgLWxvYmpjIC1sQU5H
TEU7CiBPVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU18kKFBMQVRG
T1JNX05BTUUpKTsKLU9USEVSX0xERkxBR1NfaXBob25lb3MgPSAkKE9USEVSX0xERkxBR1NfaXBo
b25lc2ltdWxhdG9yKSAtZnJhbWV3b3JrIElPU3VyZmFjZTsKLU9USEVSX0xERkxBR1NfaXBob25l
c2ltdWxhdG9yID0gJChPVEhFUl9MREZMQUdTX0JBU0UpIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1m
cmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3Vu
ZGF0aW9uIC1mcmFtZXdvcmsgR3JhcGhpY3NTZXJ2aWNlcyAtZnJhbWV3b3JrIEltYWdlSU8gLWZy
YW1ld29yayBPcGVuR0xFUyAtbE1vYmlsZUdlc3RhbHQ7CitPVEhFUl9MREZMQUdTX2lwaG9uZW9z
ID0gJChPVEhFUl9MREZMQUdTX2lwaG9uZXNpbXVsYXRvcikgLWZyYW1ld29yayBJT1N1cmZhY2Ug
LWZyYW1ld29yayBBcHBTdXBwb3J0OworT1RIRVJfTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAk
KE9USEVSX0xERkxBR1NfQkFTRSkgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3Jl
R3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1l
d29yayBHcmFwaGljc1NlcnZpY2VzIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIE9wZW5H
TEVTIC1mcmFtZXdvcmsgQXBwU3VwcG9ydCAtbE1vYmlsZUdlc3RhbHQ7CiBPVEhFUl9MREZMQUdT
X21hY29zeCA9ICQoT1RIRVJfTERGTEFHU19CQVNFKSAtc3ViX2xpYnJhcnkgbGlib2JqYyAtdW1i
cmVsbGEgV2ViS2l0IC1hbGxvd2FibGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dh
YmxlX2NsaWVudCBXZWJLaXQyIC1hbGxvd2FibGVfY2xpZW50IFdlYktpdExlZ2FjeSAtZnJhbWV3
b3JrIEFwcGxpY2F0aW9uU2VydmljZXMgLWZyYW1ld29yayBBdWRpb1VuaXQgLWZyYW1ld29yayBD
YXJib24gLWZyYW1ld29yayBDb2NvYSAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIE9w
ZW5HTDsKIAogU0VDVE9SREVSX0ZMQUdTID0gJChTRUNUT1JERVJfRkxBR1NfJChDT05GSUdVUkFU
SU9OKV8kKFBMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDI1NjYzOTBmN2I5ZDYwM2YxMWJhY2M0NTk4MTQ0N2Y4
OGMyNGE1MmEuLjFiN2NlZTg1YzlmYjdmOWMxMTliNjUzYzk4NGM0OTlhODUwNWE2YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNzQw
Myw2ICs3NDAzLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXERpc3Bs
YXlTbGVlcERpc2FibGVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXERyYWdEYXRhLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3Jt
XERyYWdJbWFnZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxG
ZWF0dXJlQ291bnRlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxGaWxlQ2hvb3Nlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxGaWxlU3RyZWFtLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3Jt
XEZpbGVTeXN0ZW0uY3BwIiAvPgpAQCAtMTkzNzAsNiArMTkzNzEsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cRHJhZ0RhdGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXERyYWdJbWFnZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cRXZlbnRMb29wLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxGZWF0dXJlQ291bnRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cRmlsZUNob29zZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXEZpbGVNZXRhZGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cRmlsZVN0cmVhbS5oIiAvPgpAQCAtMjE0MjAsNCArMjE0MjIsNCBAQAogICA8SW1w
b3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0i
JChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6YXRpb25zXG1hc20udGFyZ2V0cyIgLz4KICAg
PC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8
L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggNjc3MmI1NWRiZDQzNzE2MWM4MTJjZGIwMTA4NzRj
NGE5M2EwNGVkNy4uOTE1Y2YxNTlmODk0OGJiNWFmNjMyMTYxZGQ0NjFhM2UxZDczNmUwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycwpAQCAtMTEwNyw2ICsxMTA3LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHBsYXRmb3JtXERyYWdJbWFnZS5jcHAiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybTwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZv
cm1cRmVhdHVyZUNvdW50ZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cGxhdGZvcm08L0ZpbHRlcj4K
KyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXEZp
bGVDaG9vc2VyLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+CkBAIC04MTc4LDYgKzgxODEsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cRHJhZ0ltYWdlLmgiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybTwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
RmVhdHVyZUNvdW50ZXIuaCI+CisgICAgICA8RmlsdGVyPnBsYXRmb3JtPC9GaWx0ZXI+CisgICAg
PC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxFdmVudExv
b3AuaCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CkBAIC0xNTQ5MSw0ICsxNTQ5Nyw0IEBACiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXHdpbjwvRmls
dGVyPgogICAgIDwvTUFTTT4KICAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk2NjRkNjhlODY5MmViZjczNWJmNjVh
MzMxNTdkYzMxYmQ2YzM0YWUuLmI4MmIzMTYzMTA3NTc1M2ZkNTQ3OTlkZTUzNWFmZmMzNWY0NDhk
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE2MTQsNiArMTYxNCw5IEBACiAJCTQ1QkFDMkIwMTM2MEJCQUIwMDVEQTI1OCAv
KiBJY29uVVJMLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NUJBQzJBRjEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ1RkVBNUNGMTU2RERFOEMwMDY1NDEw
MSAvKiBEZWNpbWFsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCAqLzsgfTsKIAkJ
NDVGRUE1RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAvKiBE
ZWNpbWFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNDY3NDM4NTQxQTQyMTMzMDAwMDQ5NEZCIC8qIEZlYXR1cmVDb3VudGVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3NDM4NTMxQTQyMTMzMDAw
MDQ5NEZCIC8qIEZlYXR1cmVDb3VudGVyLm1tICovOyB9OworCQk0Njc3OUNFMjFBNDBCOTcyMDBC
Njg2NEUgLyogRmVhdHVyZUNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY3NzlDRTAxQTQwQjk3MTAwQjY4NjRFIC8qIEZlYXR1cmVDb3Vu
dGVyLmNwcCAqLzsgfTsKKwkJNDY3NzlDRTMxQTQwQjk3MjAwQjY4NjRFIC8qIEZlYXR1cmVDb3Vu
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njc3
OUNFMTFBNDBCOTcyMDBCNjg2NEUgLyogRmVhdHVyZUNvdW50ZXIuaCAqLzsgfTsKIAkJNDY4OUYx
QUYxMjY3QkFFMTAwRThEMzgwIC8qIEZpbGVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4OUYxQUUxMjY3QkFFMTAwRThEMzgwIC8qIEZp
bGVNZXRhZGF0YS5oICovOyB9OwogCQk0OTA3MDdFNjEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVX
ZWJLaXRCcmlkZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCAq
LzsgfTsKIAkJNDkwNzA3RTcxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNTEy
MTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAqLzsgfTsKQEAgLTg3MTQsNiAr
ODcxNyw5IEBACiAJCTQ1QkFDMkFGMTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJMLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEljb25VUkwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDVGRUE1Q0QxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVjaW1hbC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ1RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlY2ltYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDY3NDM4NTMxQTQyMTMzMDAwMDQ5NEZCIC8qIEZlYXR1cmVDb3Vu
dGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gRmVhdHVyZUNv
dW50ZXIubW07IHBhdGggPSBpb3MvRmVhdHVyZUNvdW50ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQ2Nzc5Q0UwMUE0MEI5NzEwMEI2ODY0RSAvKiBGZWF0dXJlQ291bnRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGZWF0dXJlQ291bnRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2Nzc5Q0UxMUE0MEI5NzIwMEI2ODY0
RSAvKiBGZWF0dXJlQ291bnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
ZWF0dXJlQ291bnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0Njg5RjFBRTEy
NjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEZpbGVNZXRhZGF0YS5oOyBwYXRoID0gcGxhdGZvcm0vRmlsZU1ldGFkYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U0MTIxOUMwNDMwMEQ5MEU1MSAv
KiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBTkdMRVdlYktpdEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTg1ODgsNiArMTg1OTQsNyBAQAogCQkJCTMxNDAzNzlBMTI0
QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSAqLywKIAkJCQkw
RkRBN0MyMjE4ODMzMEE5MDBDOTU0QjUgLyogRHJhZ0ltYWdlSU9TLm1tICovLAogCQkJCTI2RjQw
RDQ5MTQ5MDRBNjMwMENBNjdDNCAvKiBFdmVudExvb3BJT1MubW0gKi8sCisJCQkJNDY3NDM4NTMx
QTQyMTMzMDAwMDQ5NEZCIC8qIEZlYXR1cmVDb3VudGVyLm1tICovLAogCQkJCTI2QzE3QTNDMTQ5
MUQyRDQwMEQxMkJBMiAvKiBGaWxlU3lzdGVtSU9TLmggKi8sCiAJCQkJMjZDMTdBM0QxNDkxRDJE
NDAwRDEyQkEyIC8qIEZpbGVTeXN0ZW1JT1MubW0gKi8sCiAJCQkJMjY1NTQxMzcxNDg5ODExQzAw
MERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLywKQEAgLTIxNDYyLDYgKzIxNDY5LDggQEAK
IAkJCQlBN0NGQjNEMDBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmggKi8sCiAJCQkJMUNB
MTlFMTUwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9vcC5oICovLAogCQkJCTFBQkEzNEZEMUE0
MDlGRUEwMDU1NzBFQSAvKiBGZWF0dXJlQ291bnRlcktleXMuaCAqLywKKwkJCQk0Njc3OUNFMDFB
NDBCOTcxMDBCNjg2NEUgLyogRmVhdHVyZUNvdW50ZXIuY3BwICovLAorCQkJCTQ2Nzc5Q0UxMUE0
MEI5NzIwMEI2ODY0RSAvKiBGZWF0dXJlQ291bnRlci5oICovLAogCQkJCTkzNEZFOUU0MEI1Q0E1
MzkwMDNFNEE3MyAvKiBGaWxlQ2hvb3Nlci5jcHAgKi8sCiAJCQkJMDY2Qzc3MkEwQUI2MDNCNzAw
MjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggKi8sCiAJCQkJMkVGMUJGRTgxMjFDOUY0MjAwQzI3NjI3
IC8qIEZpbGVTdHJlYW0uY3BwICovLApAQCAtMjM3MTksNiArMjM3MjgsNyBAQAogCQkJCUE4MEU2
RDA0MEExOTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVF
Qjk3OTBFODIwNjkyMDBCMjU5NjUgLyogQ291bnRlckNvbnRlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNUVCOTUxMEU4MjA1NkIwMEIyNTk2NSAvKiBDb3VudGVyRGlyZWN0aXZlcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDY3NzlDRTMxQTQwQjk3MjAwQjY4NjRFIC8qIEZlYXR1cmVDb3VudGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzkyRjE0QzBBRDE4NjFCMDA2OTFCRDQgLyogQ291bnRl
ck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwQjA1NTY4MDlDNjcwMDEwMDMwN0U0MyAvKiBD
cmVhdGVMaW5rQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2NkUwQ0U5MjNBMTAw
N0VGM0NEIC8qIENyZWRlbnRpYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjg2MDksNiArMjg2MTks
NyBAQAogCQkJCTc3QTE3QUE2MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2Jq
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERjZCQUY4MTM0QTRDOTgwMDgyMjkyMCAvKiBK
U09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREE5
MzI2NjE2NzAzQkE5MDA4OTgyREMgLyogSlNPZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTQ2Nzc5Q0UyMUE0MEI5NzIwMEI2ODY0RSAvKiBGZWF0dXJlQ291bnRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0MjE1MjEwMkUyMDA0NzlERjAgLyogSlNPc2Np
bGxhdG9yTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREJEMURGQzE2N0ZFMjdEMDA1MUEx
MUUgLyogSlNPc2NpbGxhdG9yTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTBE
NTc0MDBBNUM3ODY3MDA3RURENEMgLyogSlNPdmVyZmxvd0V2ZW50LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjk1NjUsNiArMjk1NzYsNyBAQAogCQkJCUNEM0E0OTY0MTdBOUQwMUIwMDI3NEU0MiAv
KiBTb3VyY2VCdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQzhCNUFBMTgwNDdG
RjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTg0QTgxRjQxMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTQ2NzQzODU0MUE0MjEzMzAwMDA0OTRGQiAvKiBGZWF0dXJlQ291bnRl
ci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3NjMwNkQ3MTdFMTQ5Q0YwMDVBN0M0RSAvKiBTb3Vy
Y2VJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzNkQ1QTI1MTkzRjQwRkMwMENFNENBQiAv
KiBTb3VyY2VTaXplTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDU4RDg1NjFBMTVGNjVG
MDBBNUY3MjYgLyogRGF0YURldGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9QYWdlQ2FjaGUuY3BwCmluZGV4IDEyOGVjYTcxZjE1YTM2OTMwNmYwZTQ5MDQzZDdmYmQ3
Zjg0MGIwMjguLjgwNTg4MzMwZWUxMDYyNzgzNDI5ZDU2YTNkYTEwY2E3ZTdhOGQ1NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCi0jaW5jbHVkZSAiRmVhdHVyZUNvdW50ZXJLZXlz
LmgiCisjaW5jbHVkZSAiRmVhdHVyZUNvdW50ZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJT
dGF0ZU1hY2hpbmUuaCIKQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9nQ2Fu
Q2FjaGVGcmFtZURlY2lzaW9uKEZyYW1lKiBmcmFtZSwgaW50IGluZGVudExldmVsKQogICAgIFBD
TE9HKCIrLS0tIik7CiAgICAgaWYgKCFmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSkg
ewogICAgICAgICBQQ0xPRygiICAgLVRoZXJlIGlzIG5vIERvY3VtZW50TG9hZGVyIG9iamVjdCIp
OwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBh
Z2VDYWNoZUZhaWx1cmVOb0RvY3VtZW50TG9hZGVyS2V5KTsKKyAgICAgICAgRkVBVFVSRV9DT1VO
VEVSX0lOQ1JFTUVOVF9LRVkoZnJhbWUtPnBhZ2UoKSwgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVG
YWlsdXJlTm9Eb2N1bWVudExvYWRlcktleSk7CiAgICAgICAgIHJldHVybiAxIDw8IE5vRG9jdW1l
bnRMb2FkZXI7CiAgICAgfQogCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxv
Z0NhbkNhY2hlRnJhbWVEZWNpc2lvbihGcmFtZSogZnJhbWUsIGludCBpbmRlbnRMZXZlbCkKICAg
ICB1bnNpZ25lZCByZWplY3RSZWFzb25zID0gMDsKICAgICBpZiAoIWZyYW1lLT5sb2FkZXIoKS5k
b2N1bWVudExvYWRlcigpLT5tYWluRG9jdW1lbnRFcnJvcigpLmlzTnVsbCgpKSB7CiAgICAgICAg
IFBDTE9HKCIgICAtTWFpbiBkb2N1bWVudCBoYXMgYW4gZXJyb3IiKTsKLSAgICAgICAgRkVBVFVS
RV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlTWFp
bkRvY3VtZW50RXJyb3JLZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tF
WShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVNYWluRG9jdW1l
bnRFcnJvcktleSk7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgcmVqZWN0UmVhc29ucyB8
PSAxIDw8IE1haW5Eb2N1bWVudEVycm9yOwogI2Vsc2UKQEAgLTEyNiw3MSArMTI2LDcxIEBAIHN0
YXRpYyB1bnNpZ25lZCBsb2dDYW5DYWNoZUZyYW1lRGVjaXNpb24oRnJhbWUqIGZyYW1lLCBpbnQg
aW5kZW50TGV2ZWwpCiAgICAgfQogICAgIGlmIChmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKS0+c3Vic3RpdHV0ZURhdGEoKS5pc1ZhbGlkKCkgJiYgZnJhbWUtPmxvYWRlcigpLmRvY3Vt
ZW50TG9hZGVyKCktPnN1YnN0aXR1dGVEYXRhKCkuZmFpbGluZ1VSTCgpLmlzRW1wdHkoKSkgewog
ICAgICAgICBQQ0xPRygiICAgLUZyYW1lIGlzIGFuIGVycm9yIHBhZ2UiKTsKLSAgICAgICAgRkVB
VFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJl
SXNFcnJvclBhZ2VLZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShm
cmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVJc0Vycm9yUGFnZUtl
eSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBJc0Vycm9yUGFnZTsKICAgICB9CiAg
ICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmNvbnRhaW5zUGx1Z2lucygp
ICYmICFmcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLnBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucygp
KSB7CiAgICAgICAgIFBDTE9HKCIgICAtRnJhbWUgY29udGFpbnMgcGx1Z2lucyIpOwotICAgICAg
ICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZh
aWx1cmVIYXNQbHVnaW5zKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVko
ZnJhbWUtPnBhZ2UoKSwgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlSGFzUGx1Z2lucyk7
CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBIYXNQbHVnaW5zOwogICAgIH0KICAgICBp
ZiAoZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnByb3RvY29sSXMoImh0dHBzIikKICAgICAgICAg
JiYgKGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpLmNhY2hlQ29u
dHJvbENvbnRhaW5zTm9DYWNoZSgpCiAgICAgICAgICAgICB8fCBmcmFtZS0+bG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKS5jYWNoZUNvbnRyb2xDb250YWluc05vU3RvcmUoKSkp
IHsKICAgICAgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25z
ZSgpLmNhY2hlQ29udHJvbENvbnRhaW5zTm9DYWNoZSgpKQotICAgICAgICAgICAgRkVBVFVSRV9D
T1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlSFRUUFNO
b0NhY2hlS2V5KTsKKyAgICAgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKGZy
YW1lLT5wYWdlKCksIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUhUVFBTTm9DYWNoZUtl
eSk7CiAgICAgICAgIGlmIChmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9u
c2UoKS5jYWNoZUNvbnRyb2xDb250YWluc05vU3RvcmUoKSkKLSAgICAgICAgICAgIEZFQVRVUkVf
Q09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUhUVFBT
Tm9TdG9yZUtleSk7CisgICAgICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShm
cmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVIVFRQU05vU3RvcmVL
ZXkpOwogICAgICAgICBQQ0xPRygiICAgLUZyYW1lIGlzIEhUVFBTLCBhbmQgY2FjaGUgY29udHJv
bCBwcm9oaWJpdHMgY2FjaGluZyBvciBzdG9yaW5nIik7CiAgICAgICAgIHJlamVjdFJlYXNvbnMg
fD0gMSA8PCBJc0h0dHBzQW5kQ2FjaGVDb250cm9sbGVkOwogICAgIH0KICNpZiBFTkFCTEUoU1FM
X0RBVEFCQVNFKQogICAgIGlmIChEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5oYXNPcGVuRGF0
YWJhc2VzKGZyYW1lLT5kb2N1bWVudCgpKSkgewogICAgICAgICBQQ0xPRygiICAgLUZyYW1lIGhh
cyBvcGVuIGRhdGFiYXNlIGhhbmRsZXMiKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JF
TUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlSGFzT3BlbkRhdGFiYXNlc0tl
eSk7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKGZyYW1lLT5wYWdlKCks
IEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUhhc09wZW5EYXRhYmFzZXNLZXkpOwogICAg
ICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgSGFzRGF0YWJhc2VIYW5kbGVzOwogICAgIH0KICNl
bmRpZgogI2lmIEVOQUJMRShTSEFSRURfV09SS0VSUykKICAgICBpZiAoU2hhcmVkV29ya2VyUmVw
b3NpdG9yeTo6aGFzU2hhcmVkV29ya2VycyhmcmFtZS0+ZG9jdW1lbnQoKSkpIHsKICAgICAgICAg
UENMT0coIiAgIC1GcmFtZSBoYXMgYXNzb2NpYXRlZCBTaGFyZWRXb3JrZXJzIik7Ci0gICAgICAg
IEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFp
bHVyZUhhc1NoYXJlZFdvcmtlcnNLZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVN
RU5UX0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVIYXNT
aGFyZWRXb3JrZXJzS2V5KTsKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IEhhc1NoYXJl
ZFdvcmtlcnM7CiAgICAgfQogI2VuZGlmCiAgICAgaWYgKCFmcmFtZS0+bG9hZGVyKCkuaGlzdG9y
eSgpLmN1cnJlbnRJdGVtKCkpIHsKICAgICAgICAgUENMT0coIiAgIC1ObyBjdXJyZW50IGhpc3Rv
cnkgaXRlbSIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJl
Q291bnRlclBhZ2VDYWNoZUZhaWx1cmVOb0N1cnJlbnRIaXN0b3J5SXRlbUtleSk7CisgICAgICAg
IEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKGZyYW1lLT5wYWdlKCksIEZlYXR1cmVDb3Vu
dGVyUGFnZUNhY2hlRmFpbHVyZU5vQ3VycmVudEhpc3RvcnlJdGVtS2V5KTsKICAgICAgICAgcmVq
ZWN0UmVhc29ucyB8PSAxIDw8IE5vSGlzdG9yeUl0ZW07CiAgICAgfQogICAgIGlmIChmcmFtZS0+
bG9hZGVyKCkucXVpY2tSZWRpcmVjdENvbWluZygpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtUXVp
Y2sgcmVkaXJlY3QgaXMgY29taW5nIik7Ci0gICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1F
TlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZVF1aXJrUmVkaXJlY3RDb21pbmdL
ZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShmcmFtZS0+cGFnZSgp
LCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVRdWlya1JlZGlyZWN0Q29taW5nS2V5KTsK
ICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IFF1aWNrUmVkaXJlY3RDb21pbmc7CiAgICAg
fQogICAgIGlmIChmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+aXNMb2FkaW5nSW5B
UElTZW5zZSgpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtRG9jdW1lbnRMb2FkZXIgaXMgc3RpbGwg
bG9hZGluZyBpbiBBUEkgc2Vuc2UiKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVO
VF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlTG9hZGluZ0FQSVNlbnNlS2V5KTsK
KyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoZnJhbWUtPnBhZ2UoKSwgRmVh
dHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlTG9hZGluZ0FQSVNlbnNlS2V5KTsKICAgICAgICAg
cmVqZWN0UmVhc29ucyB8PSAxIDw8IElzTG9hZGluZ0luQVBJU2Vuc2U7CiAgICAgfQogICAgIGlm
IChmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+aXNTdG9wcGluZygpKSB7CiAgICAg
ICAgIFBDTE9HKCIgICAtRG9jdW1lbnRMb2FkZXIgaXMgaW4gdGhlIG1pZGRsZSBvZiBzdG9wcGlu
ZyIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRl
clBhZ2VDYWNoZUZhaWx1cmVEb2N1bWVudExvYWRlclN0b3BwaW5nS2V5KTsKKyAgICAgICAgRkVB
VFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoZnJhbWUtPnBhZ2UoKSwgRmVhdHVyZUNvdW50ZXJQ
YWdlQ2FjaGVGYWlsdXJlRG9jdW1lbnRMb2FkZXJTdG9wcGluZ0tleSk7CiAgICAgICAgIHJlamVj
dFJlYXNvbnMgfD0gMSA8PCBJc1N0b3BwaW5nOwogICAgIH0KICAgICBpZiAoIWZyYW1lLT5kb2N1
bWVudCgpLT5jYW5TdXNwZW5kQWN0aXZlRE9NT2JqZWN0cygpKSB7CiAgICAgICAgIFBDTE9HKCIg
ICAtVGhlIGRvY3VtZW50IGNhbm5vdCBzdXNwZW5kIGl0cyBhY3RpdmUgRE9NIE9iamVjdHMiKTsK
LSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdl
Q2FjaGVGYWlsdXJlQ2Fubm90U3VzcGVuZEFjdGl2ZURPTU9iamVjdHNLZXkpOworICAgICAgICBG
RUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShmcmFtZS0+cGFnZSgpLCBGZWF0dXJlQ291bnRl
clBhZ2VDYWNoZUZhaWx1cmVDYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0tleSk7CiAgICAg
ICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBDYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2JqZWN0czsK
ICAgICB9CiAgICAgaWYgKCFmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGlj
YXRpb25DYWNoZUhvc3QoKS0+Y2FuQ2FjaGVJblBhZ2VDYWNoZSgpKSB7CiAgICAgICAgIFBDTE9H
KCIgICAtVGhlIERvY3VtZW50TG9hZGVyIHVzZXMgYW4gYXBwbGljYXRpb24gY2FjaGUiKTsKLSAg
ICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2Fj
aGVGYWlsdXJlQXBwbGljYXRpb25DYWNoZUtleSk7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9J
TkNSRU1FTlRfS0VZKGZyYW1lLT5wYWdlKCksIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVy
ZUFwcGxpY2F0aW9uQ2FjaGVLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgRG9j
dW1lbnRMb2FkZXJVc2VzQXBwbGljYXRpb25DYWNoZTsKICAgICB9CiAgICAgaWYgKCFmcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuY2FuQ2FjaGVQYWdlKCkpIHsKICAgICAgICAgUENMT0coIiAgIC1U
aGUgY2xpZW50IHNheXMgdGhpcyBmcmFtZSBjYW5ub3QgYmUgY2FjaGVkIik7Ci0gICAgICAgIEZF
QVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVy
ZURlbmllZEJ5Q2xpZW50S2V5KTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9L
RVkoZnJhbWUtPnBhZ2UoKSwgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlRGVuaWVkQnlD
bGllbnRLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgQ2xpZW50RGVuaWVzQ2Fj
aGluZzsKICAgICB9CiAKQEAgLTI0Miw0NSArMjQyLDQ1IEBAIHN0YXRpYyB2b2lkIGxvZ0NhbkNh
Y2hlUGFnZURlY2lzaW9uKFBhZ2UqIHBhZ2UpCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikgJiYgIVBMQVRGT1JNKElPUykKICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6aXNB
Y3RpdmVBdChwYWdlKSkgewogICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNpbmcgRGV2aWNl
TW90aW9uIik7Ci0gICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVD
b3VudGVyUGFnZUNhY2hlRmFpbHVyZURldmljZU1vdGlvbktleSk7CisgICAgICAgIEZFQVRVUkVf
Q09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVy
ZURldmljZU1vdGlvbktleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBVc2VzRGV2
aWNlTW90aW9uOwogICAgIH0KICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpp
c0FjdGl2ZUF0KHBhZ2UpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZp
Y2VPcmllbnRhdGlvbiIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShG
ZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVEZXZpY2VPcmllbnRhdGlvbktleSk7CisgICAg
ICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVDb3VudGVyUGFn
ZUNhY2hlRmFpbHVyZURldmljZU9yaWVudGF0aW9uS2V5KTsKICAgICAgICAgcmVqZWN0UmVhc29u
cyB8PSAxIDw8IFVzZXNEZXZpY2VPcmllbnRhdGlvbjsKICAgICB9CiAjZW5kaWYKICNpZiBFTkFC
TEUoUFJPWElNSVRZX0VWRU5UUykKICAgICBpZiAoRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6
aXNBY3RpdmVBdChwYWdlKSkgewogICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNpbmcgRGV2
aWNlUHJveGltaXR5Iik7Ci0gICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZl
YXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZURldmljZVByb3hpbWl0eUtleSk7CisgICAgICAg
IEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVDb3VudGVyUGFnZUNh
Y2hlRmFpbHVyZURldmljZVByb3hpbWl0eUtleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0g
MSA8PCBVc2VzRGV2aWNlTW90aW9uOwogICAgIH0KICNlbmRpZgogICAgIEZyYW1lTG9hZFR5cGUg
bG9hZFR5cGUgPSBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5sb2FkVHlwZSgpOwogICAgIGlm
IChsb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWQpIHsKICAgICAgICAgUENMT0coIiAg
IC1Mb2FkIHR5cGUgaXM6IFJlbG9hZCIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVN
RU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVSZWxvYWRLZXkpOworICAgICAg
ICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShwYWdlLCBGZWF0dXJlQ291bnRlclBhZ2VD
YWNoZUZhaWx1cmVSZWxvYWRLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgSXNS
ZWxvYWQ7CiAgICAgfQogICAgIGlmIChsb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWRG
cm9tT3JpZ2luKSB7CiAgICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBSZWxvYWQgZnJv
bSBvcmlnaW4iKTsKLSAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVy
ZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlUmVsb2FkRnJvbU9yaWdpbktleSk7CisgICAgICAgIEZF
QVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hl
RmFpbHVyZVJlbG9hZEZyb21PcmlnaW5LZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEg
PDwgSXNSZWxvYWRGcm9tT3JpZ2luOwogICAgIH0KICAgICBpZiAobG9hZFR5cGUgPT0gRnJhbWVM
b2FkVHlwZTo6U2FtZSkgewogICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogU2FtZSIp
OwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBh
Z2VDYWNoZUZhaWx1cmVTYW1lTG9hZEtleSk7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNS
RU1FTlRfS0VZKHBhZ2UsIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZVNhbWVMb2FkS2V5
KTsKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IElzU2FtZUxvYWQ7CiAgICAgfQogICAg
IAogICAgIGlmIChyZWplY3RSZWFzb25zKSB7CiAgICAgICAgIFBDTE9HKCIgUGFnZSBDQU5OT1Qg
YmUgY2FjaGVkXG4tLS0tLS0tLSIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5U
X0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVLZXkpOworICAgICAgICBGRUFUVVJF
X0NPVU5URVJfSU5DUkVNRU5UX0tFWShwYWdlLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1
cmVLZXkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFBDTE9HKCIgUGFnZSBDQU4gYmUgY2FjaGVk
XG4tLS0tLS0tLSIpOwotICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0
dXJlQ291bnRlclBhZ2VDYWNoZVN1Y2Nlc3NLZXkpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJf
SU5DUkVNRU5UX0tFWShwYWdlLCBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZVN1Y2Nlc3NLZXkpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggMTQ5ZGQyMjU1YWUxZTkyNmQ2
YThmMTQ5MWIxOWU5NWE2OGVlOTQ4Yi4uYzQyODJjMjhkZjhiNzA1MDA2NzU4NmUwZGI5YzUzZjA3
ZDZhOWQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC03Nyw2ICs3Nyw3IEBAIGphdmFT
Y3JpcHRFeHBlcmltZW50c0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogc2NyaXB0TWFya3VwRW5hYmxl
ZCBpbml0aWFsPXRydWUKIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGluaXRpYWw9ZmFsc2UKIGRv
bVRpbWVyc1Rocm90dGxpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQorZmVhdHVyZUNvdW50ZXJFbmFi
bGVkIGluaXRpYWw9ZmFsc2UKIHdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkIGluaXRpYWw9ZmFs
c2UsIGNvbmRpdGlvbmFsPVdFQl9BUkNISVZFCiBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFi
bGVkIGluaXRpYWw9ZmFsc2UKIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCBpbml0
aWFsPWZhbHNlCkBAIC0yMzcsNCArMjM4LDQgQEAgbG9uZ01vdXNlUHJlc3NFbmFibGVkIGluaXRp
YWw9ZmFsc2UKIAogc2VydmljZUNvbnRyb2xzRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBjb25kaXRp
b25hbD1TRVJWSUNFX0NPTlRST0xTCiAKLWlnbm9yZVZpZXdwb3J0U2NhbGluZ0NvbnN0cmFpbnRz
IGluaXRpYWw9ZmFsc2UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpZ25vcmVWaWV3cG9y
dFNjYWxpbmdDb25zdHJhaW50cyBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GZWF0dXJlQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9GZWF0dXJlQ291bnRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMzN2QyODM1YmQ5ZmNjMjJmNGQwOWQ2
ZDA4YzJjMDAxYWE5NDQxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZlYXR1cmVDb3VudGVyLmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRmVhdHVyZUNvdW50ZXIuaCIKKworI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wg
RmVhdHVyZUNvdW50ZXI6OnNob3VsZFVzZUZvclBhZ2UoUGFnZSogcGFnZSkKK3sKKyAgICBpZiAo
IXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIExvZyBvbmx5IGlmIHRoZSBz
ZXR0aW5nIGlzIGVuYWJsZWQuCisgICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpLmZlYXR1cmVDb3Vu
dGVyRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBEbyBub3QgbG9n
IGlmIHRoaXMgaXMgYSBwcml2YXRlIHNlc3Npb24uCisgICAgaWYgKHBhZ2UtPnVzZXNFcGhlbWVy
YWxTZXNzaW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwor
fQorCisjaWYgIVBMQVRGT1JNKElPUykgfHwgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKK3Zv
aWQgRmVhdHVyZUNvdW50ZXI6OmluY3JlbWVudEtleShQYWdlKiBwYWdlLCBjb25zdCBjaGFyKiBj
b25zdCBrZXkpCit7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTShr
ZXkpOworfQorCit2b2lkIEZlYXR1cmVDb3VudGVyOjpzZXRLZXkoUGFnZSogcGFnZSwgY29uc3Qg
Y2hhciogY29uc3Qga2V5LCBpbnQ2NF90IHZhbHVlKQoreworICAgIFVOVVNFRF9QQVJBTShwYWdl
KTsKKyAgICBVTlVTRURfUEFSQU0oa2V5KTsKKyAgICBVTlVTRURfUEFSQU0odmFsdWUpOworfQor
CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRmVhdHVyZUNvdW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0ZlYXR1cmVDb3VudGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdiYWI5OGMxYjMyNjg4NmJkZTM5MTJiZDdj
NTg0NWQ5NDFlMDMyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0ZlYXR1cmVDb3VudGVyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGZWF0dXJl
Q291bnRlcl9oCisjZGVmaW5lIEZlYXR1cmVDb3VudGVyX2gKKworI2luY2x1ZGUgIkZlYXR1cmVD
b3VudGVyS2V5cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisKK2Ns
YXNzIEZlYXR1cmVDb3VudGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBpbmNyZW1lbnRL
ZXkoUGFnZSosIGNvbnN0IGNoYXIqIGNvbnN0IGtleSk7CisgICAgc3RhdGljIHZvaWQgc2V0S2V5
KFBhZ2UqLCBjb25zdCBjaGFyKiBjb25zdCBrZXksIGludDY0X3QgdmFsdWUpOworCitwcml2YXRl
OgorICAgIHN0YXRpYyBib29sIHNob3VsZFVzZUZvclBhZ2UoUGFnZSopOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZGVmaW5lIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZ
KHBhZ2UsIGtleSkgICBXZWJDb3JlOjpGZWF0dXJlQ291bnRlcjo6aW5jcmVtZW50S2V5KHBhZ2Us
IGtleSkKKyNkZWZpbmUgRkVBVFVSRV9DT1VOVEVSX1NFVF9LRVkocGFnZSwga2V5LCB2YWx1ZSkg
IFdlYkNvcmU6OkZlYXR1cmVDb3VudGVyOjpzZXRLZXkocGFnZSwga2V5LCB2YWx1ZSkKKworI2Vu
ZGlmIC8vIEZlYXR1cmVDb3VudGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZlYXR1cmVDb3VudGVyS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmVhdHVy
ZUNvdW50ZXJLZXlzLmgKaW5kZXggMWJhZTNlOWY4ZTgyMDM0ZGNiOGQ1OGRkOWNhNjEyMWI4MTdl
NDM1Yi4uMmNmZjM4MmQ0Y2Q1MzgyZWMxMWY1NmRiNzZmYjUzODY3YWM2ZDcwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmVhdHVyZUNvdW50ZXJLZXlzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmVhdHVyZUNvdW50ZXJLZXlzLmgKQEAgLTI2LDggKzI2LDYg
QEAKICNpZm5kZWYgRmVhdHVyZUNvdW50ZXJLZXlzX2gKICNkZWZpbmUgRmVhdHVyZUNvdW50ZXJL
ZXlzX2gKIAotI2luY2x1ZGUgPHd0Zi9GZWF0dXJlQ291bnRlci5oPgotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIC8vIFBhZ2UgY2FjaGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvRmVhdHVyZUNvdW50ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
RmVhdHVyZUNvdW50ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjUxZGZmYjU0OWZmMjQ5MWMwODhlOWVhN2Iw
NDcyNDA1ODRjMzk1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9GZWF0dXJlQ291bnRlci5tbQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIkZlYXR1cmVDb3VudGVyLmgiCisKKyNpZiBQTEFURk9STShJT1Mp
ICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxBcHBTdXBwb3J0L0NQQWdncmVn
YXRlRGljdGlvbmFyeS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgRmVhdHVyZUNv
dW50ZXI6OmluY3JlbWVudEtleShQYWdlKiBwYWdlLCBjb25zdCBjaGFyKiBjb25zdCBrZXkpCit7
CisgICAgaWYgKCFzaG91bGRVc2VGb3JQYWdlKHBhZ2UpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBOU1N0cmluZyAqbnNLZXkgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aENoYXJhY3RlcnNO
b0NvcHk6cmVpbnRlcnByZXRfY2FzdDx1bmljaGFyKj4oY29uc3RfY2FzdDxjaGFyKj4oa2V5KSkg
bGVuZ3RoOnN0cmxlbihrZXkpIGZyZWVXaGVuRG9uZTpOT107CisgICAgW1tDUEFnZ3JlZ2F0ZURp
Y3Rpb25hcnkgc2hhcmVkQWdncmVnYXRlRGljdGlvbmFyeV0gaW5jcmVtZW50S2V5Om5zS2V5XTsK
K30KKwordm9pZCBGZWF0dXJlQ291bnRlcjo6c2V0S2V5KFBhZ2UqIHBhZ2UsIGNvbnN0IGNoYXIq
IGNvbnN0IGtleSwgaW50NjRfdCB2YWx1ZSkKK3sKKyAgICBpZiAoIXNob3VsZFVzZUZvclBhZ2Uo
cGFnZSkpCisgICAgICAgIHJldHVybjsKKworICAgIE5TU3RyaW5nICpuc0tleSA9IFtbTlNTdHJp
bmcgYWxsb2NdIGluaXRXaXRoQ2hhcmFjdGVyc05vQ29weTpyZWludGVycHJldF9jYXN0PHVuaWNo
YXIqPihjb25zdF9jYXN0PGNoYXIqPihrZXkpKSBsZW5ndGg6c3RybGVuKGtleSkgZnJlZVdoZW5E
b25lOk5PXTsKKyAgICBbW0NQQWdncmVnYXRlRGljdGlvbmFyeSBzaGFyZWRBZ2dyZWdhdGVEaWN0
aW9uYXJ5XSBzZXRWYWx1ZTp2YWx1ZSBmb3JTY2FsYXJLZXk6bnNLZXldOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpICYmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oCmluZGV4IGIxZGM3NTQ1OTBhY2FlNTZiODJjNTJkY2ZkNWRmNTZkZDIx
MmNhMDMuLmY2OTg2ODQ2MmNkMzM5NDkyNjdkMmY5ODE5MWFjYjUwNWM3OTgyMjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAt
MTIxLDYgKzEyMSw3IEBACiAgICAgbWFjcm8oVGFic1RvTGlua3MsIHRhYnNUb0xpbmtzLCBCb29s
LCBib29sLCBERUZBVUxUX1dFQktJVF9UQUJTVE9MSU5LU19FTkFCTEVEKSBcCiAgICAgbWFjcm8o
RE5TUHJlZmV0Y2hpbmdFbmFibGVkLCBkbnNQcmVmZXRjaGluZ0VuYWJsZWQsIEJvb2wsIGJvb2ws
IGZhbHNlKSBcCiAgICAgbWFjcm8oRE9NVGltZXJzVGhyb3R0bGluZ0VuYWJsZWQsIGRvbVRpbWVy
c1Rocm90dGxpbmdFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oRmVhdHVy
ZUNvdW50ZXJFbmFibGVkLCBmZWF0dXJlQ291bnRlckVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNl
KSBcCiAgICAgbWFjcm8oV2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQsIHdlYkFyY2hpdmVEZWJ1
Z01vZGVFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKExvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQsIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIEJv
b2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oVXNlc1BhZ2VDYWNoZSwgdXNlc1BhZ2VDYWNo
ZSwgQm9vbCwgYm9vbCwgdHJ1ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IGFmYjNmNjMzMWE3OTI2YTFmYWRkMDc2OThiNTkw
NWNlYmE5MzFjZjMuLmI3ZWNkZWVlOGYyYTJiZTlmYzQwMWNlOTNkYjE0NTVkMmY0N2M5NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAK
QEAgLTU4OSw2ICs1ODksMTYgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RE9NVGltZXJzVGhyb3R0
bGluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4g
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+ZG9tVGltZXJzVGhyb3R0bGluZ0VuYWJsZWQoKTsKIH0K
IAordm9pZCBXS1ByZWZlcmVuY2VzU2V0RmVhdHVyZUNvdW50ZXJFbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVy
ZW5jZXNSZWYpLT5zZXRGZWF0dXJlQ291bnRlckVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK2Jvb2wg
V0tQcmVmZXJlbmNlc0dldEZlYXR1cmVDb3VudGVyRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5mZWF0
dXJlQ291bnRlckVuYWJsZWQoKTsKK30KKwogdm9pZCBXS1ByZWZlcmVuY2VzU2V0V2ViQXJjaGl2
ZURlYnVnTW9kZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBl
bmFibGVkKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFdlYkFyY2hpdmVEZWJ1
Z01vZGVFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCAxNDdjMjAyZmNhY2Iw
Njg5MDk1MDc3YzBiMzJkMDU5MmMwMzUyNmYyLi5lMWVkOTI1YTkzYWQ2MWZlM2I2NGQ1ZDRiNzAy
YzkyOWY2ZGI3MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtMTIxLDYgKzEyMSwxMCBAQCBXS19F
WFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0RE9NVGltZXJzVGhyb3R0bGluZ0VuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZQogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldERPTVRp
bWVyc1Rocm90dGxpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogCiAv
LyBEZWZhdWx0cyB0byBmYWxzZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRGZWF0
dXJlQ291bnRlckVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywgYm9vbCBlbmFi
bGVkKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRGZWF0dXJlQ291bnRlckVuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CisKKy8vIERlZmF1bHRzIHRvIGZhbHNl
LgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBP
UlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0V2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCAwN2QzYzg0MzdiZWU2MGZhZTEw
ZGQzZmIxZjM3NzM4MTIxMDgyMzZmLi4zZjJlYWVmZjliNThkYTc1MmY5MjljMGViYmMwMjI4ZThl
NDc2M2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLm1tCkBAIC0xMTMsNiArMTEzLDE2IEBACiAgICAgX3ByZWZlcmVuY2VzLT5z
ZXRUZWxlcGhvbmVOdW1iZXJQYXJzaW5nRW5hYmxlZCh0ZWxlcGhvbmVOdW1iZXJEZXRlY3Rpb25J
c0VuYWJsZWQpOwogfQogCistIChCT09MKV9mZWF0dXJlQ291bnRlckVuYWJsZWQKK3sKKyAgICBy
ZXR1cm4gX3ByZWZlcmVuY2VzLT5mZWF0dXJlQ291bnRlckVuYWJsZWQoKTsKK30KKworLSAodm9p
ZClfc2V0RmVhdHVyZUNvdW50ZXJFbmFibGVkOihCT09MKWZlYXR1cmVDb3VudGVyRW5hYmxlZAor
eworICAgIF9wcmVmZXJlbmNlcy0+c2V0RmVhdHVyZUNvdW50ZXJFbmFibGVkKGZlYXR1cmVDb3Vu
dGVyRW5hYmxlZCk7Cit9CisKIHN0YXRpYyBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFn
ZUJsb2NraW5nUG9saWN5IHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KF9XS1N0b3JhZ2VCbG9ja2lu
Z1BvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aAppbmRleCAyYTAxYzIzMDBkMTk4OTBjOGU0OTRhMzUwNDU5NWViMmIyNGFkN2ZlLi5mNTFiZTEw
Nzg3NGMxMTI3MWNhZWI4ZWYxNmM3Y2I5YzlkYzM4MDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCkBA
IC00Niw2ICs0Niw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tEZWJ1Z092
ZXJsYXlSZWdpb25zKSB7CiAKIC8vIEZJWE1FOiBUaGlzIHByb3BlcnR5IHNob3VsZCBub3QgaGF2
ZSB0aGUgdmVyYiAiaXMiIGluIGl0LgogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
VGVsZXBob25lTnVtYmVyRGV0ZWN0aW9uSXNFbmFibGVkOikgQk9PTCBfdGVsZXBob25lTnVtYmVy
RGV0ZWN0aW9uSXNFbmFibGVkOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RmVh
dHVyZUNvdW50ZXJFbmFibGVkOikgQk9PTCBfZmVhdHVyZUNvdW50ZXJFbmFibGVkIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeTopIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeSBf
c3RvcmFnZUJsb2NraW5nUG9saWN5OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlOikgQk9PTCBfY29tcG9zaXRpbmdCb3JkZXJzVmlz
aWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCA4OTI2MjRjYTMwMDc3NjdiZWNhMWRjODJhN2U2NjlmODYwZDIyOWRlLi4zMDNiOTJlYzA3
MWYwYzA2MDBjMTcxYzUyZTQ5ZWQxNDg5NTJlZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yNzExLDYgKzI3MTEsNyBAQCB2b2lkIFdl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3Jl
KQogICAgIHNldHRpbmdzLnNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3Moc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZUZUUERpcmVjdG9yeUxpc3Rpbmdz
S2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpkbnNQcmVmZXRjaGluZ0VuYWJsZWRL
ZXkoKSkpOwogICAgIHNldHRpbmdzLnNldERPTVRpbWVyc1Rocm90dGxpbmdFbmFibGVkKHN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZG9tVGltZXJzVGhyb3R0bGlu
Z0VuYWJsZWRLZXkoKSkpOworICAgIHNldHRpbmdzLnNldEZlYXR1cmVDb3VudGVyRW5hYmxlZChz
dG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZlYXR1cmVDb3VudGVy
RW5hYmxlZEtleSgpKSk7CiAjaWYgRU5BQkxFKFdFQl9BUkNISVZFKQogICAgIHNldHRpbmdzLnNl
dFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6d2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWRLZXkoKSkpOwogI2VuZGlm
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>